{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "61f81f0c",
   "metadata": {},
   "source": [
    "# Morphology in BrainCell\n",
    "\n",
    "This notebook is a gentle introduction to morphology building in `braincell`.\n",
    "\n",
    "We will cover three common workflows:\n",
    "\n",
    "1. Build individual branches from lengths and radii.\n",
    "2. Assemble several branches into a full `Morphology` tree.\n",
    "3. Import reconstructed morphologies from `SWC` and `ASC` files.\n",
    "\n",
    "The goal here is to understand morphology itself: geometry, topology, simple inspection, and simple visualization."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "e03ff1f1",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2026-04-22T03:24:26.098100200Z",
     "start_time": "2026-04-22T03:24:21.697026400Z"
    },
    "execution": {
     "iopub.execute_input": "2026-05-25T09:54:14.896875Z",
     "iopub.status.busy": "2026-05-25T09:54:14.896435Z",
     "iopub.status.idle": "2026-05-25T09:54:17.107743Z",
     "shell.execute_reply": "2026-05-25T09:54:17.106415Z"
    }
   },
   "outputs": [],
   "source": [
    "import os\n",
    "\n",
    "os.environ.setdefault(\"JAX_PLATFORMS\", \"cpu\")\n",
    "os.environ.setdefault(\"PYVISTA_OFF_SCREEN\", \"true\")\n",
    "import braincell\n",
    "import brainunit as u\n",
    "from braincell import Branch, Soma, Axon, BasalDendrite, ApicalDendrite, Morphology\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "a02a4cee",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-05-25T09:54:17.112255Z",
     "iopub.status.busy": "2026-05-25T09:54:17.112015Z",
     "iopub.status.idle": "2026-05-25T09:54:17.118604Z",
     "shell.execute_reply": "2026-05-25T09:54:17.117480Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "VisDefaults(layout_2d_default='fan', shape_2d_default='frustum', mode_3d_default='geometry', branch_type_colors={'soma': (0, 0, 0), 'axon': (26, 224, 53), 'basal_dendrite': (245, 146, 18), 'apical_dendrite': (242, 97, 7), 'dendrite': (227, 15, 15), 'custom': (154, 164, 175)}, branch_type_edge_colors_2d=None, alpha_2d=0.8, alpha_2d_poly=None, alpha_2d_line=None, frustum_edge_linewidth_2d=0.9, alpha_3d_tube=1.0, highlight_color=(255, 215, 0), highlight_alpha=0.9, marker_color=(30, 144, 255), marker_size_2d=36.0, marker_radius_3d_um=1.5)"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Keep any vis examples in this notebook aligned with the shared 2D/3D palette.\n",
    "braincell.vis.configure_defaults(\n",
    "    branch_type_colors={\n",
    "        \"soma\": \"#000000\",\n",
    "        \"axon\": \"#1AE035\",\n",
    "        \"basal_dendrite\": \"#f59212\",\n",
    "        \"apical_dendrite\": \"#f26107\",\n",
    "        \"dendrite\": \"#e30f0f\",\n",
    "        \"custom\": \"#9aa4af\",\n",
    "    },\n",
    ")\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4eaa5b54",
   "metadata": {},
   "source": [
    "## 1. `Branch`: the basic geometry unit\n",
    "\n",
    "A `Branch` is one unbranched piece of neuronal cable. In BrainCell, a branch is represented as a sequence of frustum segments.\n",
    "\n",
    "You can build a branch in two main ways:\n",
    "\n",
    "- `Branch.from_lengths(...)`: useful when you know segment lengths and radii, but do not have 3D coordinates yet.\n",
    "- `Branch.from_points(...)`: useful when you already have 3D points, as in reconstructed morphologies.\n",
    "\n",
    "We start with `from_lengths(...)`. The key parameter is `lengths=[l0, ..., lN-1]`, which gives one length per segment.\n",
    "\n",
    "Then you choose **one of two mutually exclusive radius styles**:\n",
    "\n",
    "- `Branch.from_lengths(lengths=..., radii=[r0, ..., rN])`\n",
    "- `Branch.from_lengths(lengths=..., radii_proximal=[rp0, ..., rpN-1], radii_distal=[rd0, ..., rdN-1])`\n",
    "\n",
    "Here:\n",
    "\n",
    "- `radii=[r0, ..., rN]` gives the shared radii at segment boundaries, which is the compact form when radius stays continuous across the branch\n",
    "- `radii_proximal` and `radii_distal` give one proximal/distal radius pair per segment, which is more explicit when you want to describe each segment directly\n",
    "\n",
    "So the first conceptual difference is not about branch type, but about how you want to describe radius along the cable."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "680e00b7",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2026-04-22T03:24:26.459515200Z",
     "start_time": "2026-04-22T03:24:26.100099600Z"
    },
    "execution": {
     "iopub.execute_input": "2026-05-25T09:54:17.121905Z",
     "iopub.status.busy": "2026-05-25T09:54:17.121753Z",
     "iopub.status.idle": "2026-05-25T09:54:17.200607Z",
     "shell.execute_reply": "2026-05-25T09:54:17.199456Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Ignoring fixed x limits to fulfill fixed data aspect with adjustable data limits.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "branch_from_paired == branch_from_shared: True\n",
      "\n",
      "-----------------------------------\n",
      "type         | custom\n",
      "n_segments   | 1\n",
      "length       | 20.00 um\n",
      "mean_radius  | 10.00 um\n",
      "area         | 1256.64 um^2\n",
      "volume       | 6283.19 um^3\n",
      "-----------------------------------\n",
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgMAAAGFCAYAAABg2vAPAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAABwdJREFUeJzt2rFtG1EURcEvQ1oSVBGC+3LmyBUpcua+BBYhYrkK1rFDB+IHdWYquNHDCd7Dvu/7AACyvs0eAADMJQYAIE4MAECcGACAODEAAHFiAADixAAAxIkBAIgTAwAQJwYAIE4MAECcGACAODEAAHFiAADixAAAxIkBAIgTAwAQJwYAIE4MAECcGACAODEAAHFiAADixAAAxIkBAIh7nD2gYl3Xcd222TMA7s5hWcbxeJw940sTAzewrut4/f1nvF8us6cA3J3n02n8+vlDEHwiMXAD120b75fLeHn5Pp6WZfYcgLvxsW3jfH4b120TA59IDNzQ07KMw+EwewYA/MMDIQDEiQEAiBMDABAnBgAgTgwAQJwYAIA4MQAAcWIAAOLEAADEiQEAiBMDABAnBgAgTgwAQJwYAIA4MQAAcWIAAOLEAADEiQEAiBMDABAnBgAgTgwAQJwYAIA4MQAAcWIAAOLEAADEiQEAiBMDABAnBgAgTgwAQJwYAIA4MQAAcWIAAOLEAADEiQEAiBMDABAnBgAgTgwAQJwYAIA4MQAAcWIAAOLEAADEiQEAiBMDABAnBgAgTgwAQJwYAIA4MQAAcWIAAOLEAADEiQEAiBMDABAnBgAgTgwAQJwYAIA4MQAAcWIAAOLEAADEiQEAiBMDABAnBgAgTgwAQJwYAIA4MQAAcWIAAOLEAADEiQEAiBMDABAnBgAgTgwAQJwYAIA4MQAAcWIAAOLEAADEiQEAiBMDABAnBgAgTgwAQJwYAIA4MQAAcWIAAOLEAADEiQEAiBMDABAnBgAgTgwAQJwYAIA4MQAAcWIAAOLEAADEiQEAiBMDABAnBgAgTgwAQJwYAIA4MQAAcWIAAOLEAADEiQEAiBMDABAnBgAgTgwAQJwYAIA4MQAAcWIAAOLEAADEiQEAiBMDABAnBgAgTgwAQJwYAIA4MQAAcWIAAOLEAADEiQEAiBMDABAnBgAgTgwAQJwYAIA4MQAAcWIAAOLEAADEiQEAiBMDABAnBgAgTgwAQJwYAIA4MQAAcWIAAOLEAADEiQEAiBMDABAnBgAgTgwAQJwYAIA4MQAAcWIAAOLEAADEiQEAiBMDABAnBgAgTgwAQJwYAIA4MQAAcWIAAOLEAADEiQEAiBMDABAnBgAgTgwAQJwYAIA4MQAAcWIAAOLEAADEiQEAiBMDABAnBgAgTgwAQJwYAIA4MQAAcWIAAOLEAADEiQEAiBMDABAnBgAgTgwAQJwYAIA4MQAAcWIAAOLEAADEiQEAiBMDABAnBgAgTgwAQJwYAIA4MQAAcWIAAOLEAADEiQEAiBMDABAnBgAgTgwAQJwYAIA4MQAAcWIAAOLEAADEiQEAiBMDABAnBgAgTgwAQJwYAIA4MQAAcWIAAOLEAADEiQEAiBMDABAnBgAgTgwAQJwYAIA4MQAAcWIAAOLEAADEiQEAiBMDABAnBgAgTgwAQJwYAIA4MQAAcWIAAOLEAADEiQEAiBMDABAnBgAgTgwAQJwYAIA4MQAAcWIAAOLEAADEiQEAiBMDABAnBgAgTgwAQJwYAIA4MQAAcWIAAOLEAADEiQEAiBMDABAnBgAgTgwAQJwYAIA4MQAAcWIAAOLEAADEiQEAiBMDABAnBgAgTgwAQJwYAIA4MQAAcWIAAOLEAADEiQEAiBMDABAnBgAgTgwAQJwYAIA4MQAAcWIAAOLEAADEiQEAiBMDABAnBgAgTgwAQJwYAIA4MQAAcWIAAOLEAADEiQEAiBMDABAnBgAgTgwAQJwYAIA4MQAAcWIAAOLEAADEiQEAiBMDABAnBgAgTgwAQJwYAIA4MQAAcWIAAOLEAADEiQEAiBMDABAnBgAgTgwAQJwYAIA4MQAAcWIAAOLEAADEiQEAiBMDABAnBgAgTgwAQJwYAIA4MQAAcWIAAOLEAADEiQEAiBMDABAnBgAgTgwAQJwYAIA4MQAAcWIAAOLEAADEiQEAiBMDABAnBgAgTgwAQJwYAIA4MQAAcWIAAOLEAADEiQEAiBMDABAnBgAgTgwAQJwYAIA4MQAAcWIAAOLEAADEiQEAiBMDABAnBgAgTgwAQJwYAIA4MQAAcWIAAOLEAADEiQEAiBMDABAnBgAgTgwAQJwYAIA4MQAAcWIAAOLEAADEiQEAiBMDABAnBgAg7nH2gJKPbZs9AeCuuJu3IQZu4LAs4/l0Gufz2+wpAHfn+XQah2WZPeNLe9j3fZ89omBd13FVuAD/7bAs43g8zp7xpYkBAIjzQAgAcWIAAOLEAADEiQEAiBMDABAnBgAgTgwAQJwYAIA4MQAAcWIAAOLEAADEiQEAiBMDABAnBgAgTgwAQJwYAIA4MQAAcWIAAOLEAADEiQEAiBMDABAnBgAgTgwAQJwYAIC4v59vO+R0VzygAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<Axes: >"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# The following two branches represent the same one-segment geometry.\n",
    "branch_from_paired = Branch.from_lengths(\n",
    "    lengths=[20.0] * u.um,\n",
    "    radii_proximal=[10.0] * u.um,\n",
    "    radii_distal=[10.0] * u.um,\n",
    ")\n",
    "\n",
    "branch_from_shared = Branch.from_lengths(\n",
    "    lengths=[20.0] * u.um,\n",
    "    radii=[10.0, 10.0] * u.um,\n",
    ")\n",
    "\n",
    "print(\"branch_from_paired == branch_from_shared:\", branch_from_paired == branch_from_shared)\n",
    "print()\n",
    "print(branch_from_paired)\n",
    "\n",
    "# Length-based branches use the default schematic 2D layout.\n",
    "branch_from_paired.vis2d()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "6856d20a",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2026-04-22T03:24:26.578371500Z",
     "start_time": "2026-04-22T03:24:26.463678100Z"
    },
    "execution": {
     "iopub.execute_input": "2026-05-25T09:54:17.203863Z",
     "iopub.status.busy": "2026-05-25T09:54:17.203731Z",
     "iopub.status.idle": "2026-05-25T09:54:17.287128Z",
     "shell.execute_reply": "2026-05-25T09:54:17.285992Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Ignoring fixed y limits to fulfill fixed data aspect with adjustable data limits.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-----------------------------------\n",
      "type         | dendrite\n",
      "n_segments   | 3\n",
      "length       | 40.00 um\n",
      "mean_radius  | 2.13 um\n",
      "area         | 535.88 um^2\n",
      "volume       | 598.66 um^3\n",
      "-----------------------------------\n",
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<Axes: >"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# The same idea extends naturally to branches with multiple frustum segments.\n",
    "multi_branch = Branch.from_lengths(\n",
    "    lengths=[12.0, 18.0, 10.0] * u.um,\n",
    "    radii=[3.0, 2.4, 1.8, 1.2] * u.um,\n",
    "    type = 'dendrite'\n",
    ")\n",
    "\n",
    "print(multi_branch)\n",
    "multi_branch.vis2d()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "37cf8bb9",
   "metadata": {},
   "source": [
    "### Why keep both radius styles?\n",
    "\n",
    "So for simple branches, the two radius styles are often interchangeable. The next question is why BrainCell keeps both of them.\n",
    "\n",
    "Most of the time, `radii=[r0, ..., rN]` is the most readable form because adjacent segments share the same radius at each boundary.\n",
    "\n",
    "However, morphology data sometimes contains an abrupt diameter change at a single location. In that case, the shared-node representation is no longer enough by itself, because one node would need two different radii.\n",
    "\n",
    "That is exactly why `radii_proximal` and `radii_distal` exist: they let you describe a radius jump directly.\n",
    "\n",
    "Below, `jump_paired` uses the paired-radius form to encode a discontinuity between the first and second segment. `jump_shared` encodes the same geometry by inserting a zero-length middle segment. The two branches are equivalent, but the paired form is easier to read."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "22e90ce3",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2026-04-22T03:24:26.849834Z",
     "start_time": "2026-04-22T03:24:26.604455100Z"
    },
    "execution": {
     "iopub.execute_input": "2026-05-25T09:54:17.290382Z",
     "iopub.status.busy": "2026-05-25T09:54:17.290243Z",
     "iopub.status.idle": "2026-05-25T09:54:17.320895Z",
     "shell.execute_reply": "2026-05-25T09:54:17.319651Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Ignoring fixed y limits to fulfill fixed data aspect with adjustable data limits.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "jump_paired == jump_shared: True\n",
      "paired proximal radii: [3. 2. 1.] um\n",
      "paired distal radii: [2. 1. 1.] um\n",
      "paired radii: [3. 2. 1. 1.] um\n",
      "shared radii : [3. 2. 1. 1.] um\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<Axes: >"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "jump_paired = Branch.from_lengths(\n",
    "    lengths=[10.0, 20.0] * u.um,\n",
    "    radii_proximal=[3.0, 1.0] * u.um,\n",
    "    radii_distal=[2.0, 1.0] * u.um,\n",
    "    type = 'dendrite'\n",
    ")\n",
    "\n",
    "jump_shared = Branch.from_lengths(\n",
    "    lengths=[10.0, 0.0, 20.0] * u.um,\n",
    "    radii=[3.0, 2.0, 1.0, 1.0] * u.um,\n",
    "    type = 'dendrite'\n",
    ")\n",
    "\n",
    "print(\"jump_paired == jump_shared:\", jump_paired == jump_shared)\n",
    "print(\"paired proximal radii:\", jump_paired.radii_proximal)\n",
    "print(\"paired distal radii:\", jump_paired.radii_distal)\n",
    "print(\"paired radii:\", jump_paired.radii)\n",
    "print(\"shared radii :\", jump_shared.radii)\n",
    "\n",
    "jump_paired.vis2d()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "33f4fe66",
   "metadata": {},
   "source": [
    "## 2. `Branch.from_points(...)`: attach real 3D geometry\n",
    "\n",
    "If you already know the 3D coordinates of a branch, `from_points(...)` is the better starting point.\n",
    "\n",
    "In this case, BrainCell computes segment lengths automatically from consecutive points. Point geometry is what later unlocks projected 2D views, 3D views, and coordinate-based measurements.\n",
    "\n",
    "For now, we still keep the example generic and use the default 2D view."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "220f12d7",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2026-04-22T03:24:27.035926200Z",
     "start_time": "2026-04-22T03:24:26.851836600Z"
    },
    "execution": {
     "iopub.execute_input": "2026-05-25T09:54:17.323749Z",
     "iopub.status.busy": "2026-05-25T09:54:17.323614Z",
     "iopub.status.idle": "2026-05-25T09:54:17.442329Z",
     "shell.execute_reply": "2026-05-25T09:54:17.441135Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Ignoring fixed y limits to fulfill fixed data aspect with adjustable data limits.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-----------------------------------\n",
      "type         | dendrite\n",
      "n_segments   | 3\n",
      "length       | 47.55 um\n",
      "mean_radius  | 2.03 um\n",
      "area         | 606.97 um^2\n",
      "volume       | 652.74 um^3\n",
      "-----------------------------------\n",
      "\n",
      "Computed segment lengths: [12.         18.         17.54992877] um\n",
      "Shared points shape: (4, 3)\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<Axes: >"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "point_branch = Branch.from_points(\n",
    "    points=[(0.0, 0.0, 0.0), (12.0, 0.0, 0.0), (12.0, 18.0, 0.0), (16.0, 34.0, 6.0)] * u.um,\n",
    "    radii=[3.0, 2.4, 1.8, 1.2] * u.um, type = 'dendrite'\n",
    ")\n",
    "\n",
    "print(point_branch)\n",
    "print(\"Computed segment lengths:\", point_branch.lengths)\n",
    "print(\"Shared points shape:\", point_branch.points.shape)\n",
    "\n",
    "point_branch.vis2d()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0a5d768f",
   "metadata": {},
   "source": [
    "### Useful `Branch` attributes\n",
    "\n",
    "At this point we have seen both length-based and point-based branch construction. The table below summarizes the main public attributes you will inspect most often while building morphology.\n",
    "\n",
    "| Attribute | Description |\n",
    "| --- | --- |\n",
    "| `lengths` | Length of each frustum segment (`N` values) |\n",
    "| `length` | Total branch length |\n",
    "| `areas` | Surface area of each segment (`N` values) |\n",
    "| `area` | Total surface area of the branch |\n",
    "| `volumes` | Volume of each segment (`N` values) |\n",
    "| `volume` | Total branch volume |\n",
    "| `mean_radius` | Length-weighted mean radius |\n",
    "| `radii_proximal` | Proximal radius of each segment (`N` values) |\n",
    "| `radii_distal` | Distal radius of each segment (`N` values) |\n",
    "| `radii` | Shared node radii (`N + 1` values) when boundaries are continuous |\n",
    "| `points_proximal` | Start point of each segment (`N` points) |\n",
    "| `points_distal` | End point of each segment (`N` points) |\n",
    "| `points` | Shared node coordinates (`N + 1` points) when point geometry is continuous |\n",
    "| `type` | Branch type such as `soma`, `axon`, or dendrite variants |\n",
    "| `n_segments` | Number of frustum segments |\n",
    "\n",
    "For branches created with `from_lengths(...)`, the point-related attributes are `None`. For branches created with `from_points(...)`, those point-related attributes are populated."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "18757e25",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2026-04-22T03:24:27.090571100Z",
     "start_time": "2026-04-22T03:24:27.038934500Z"
    },
    "execution": {
     "iopub.execute_input": "2026-05-25T09:54:17.445539Z",
     "iopub.status.busy": "2026-05-25T09:54:17.445404Z",
     "iopub.status.idle": "2026-05-25T09:54:17.477797Z",
     "shell.execute_reply": "2026-05-25T09:54:17.476448Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "multi_branch length: "
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "40. um\n",
      "multi_branch lengths: [12. 18. 10.] um\n",
      "multi_branch areas: [203.82951763 237.63631763  94.41727315] um^2\n",
      "multi_branch area: 535.8831 um^2\n",
      "multi_branch volumes: [275.95750804 251.07609135  71.6283122 ] um^3\n",
      "multi_branch volume: 598.6619 um^3\n",
      "multi_branch mean_radius: 2.13 um\n",
      "multi_branch radii: [3.         2.4000001  1.79999995 1.20000005] um\n",
      "multi_branch radii_proximal: [3.         2.4000001  1.79999995] um\n",
      "multi_branch radii_distal: [2.4000001  1.79999995 1.20000005] um\n",
      "multi_branch points: None\n",
      "point_branch points shape: (4, 3)\n",
      "point_branch points_proximal shape: (3, 3)\n",
      "point_branch points_distal shape: (3, 3)\n"
     ]
    }
   ],
   "source": [
    "# Total cable length across all segments.\n",
    "print(\"multi_branch length:\", multi_branch.length)\n",
    "\n",
    "# Length of each individual frustum segment.\n",
    "print(\"multi_branch lengths:\", multi_branch.lengths)\n",
    "\n",
    "# Surface area of each segment and the total area.\n",
    "print(\"multi_branch areas:\", multi_branch.areas)\n",
    "print(\"multi_branch area:\", multi_branch.area)\n",
    "\n",
    "# Volume of each segment and the total volume.\n",
    "print(\"multi_branch volumes:\", multi_branch.volumes)\n",
    "print(\"multi_branch volume:\", multi_branch.volume)\n",
    "\n",
    "# A compact summary of branch thickness.\n",
    "print(\"multi_branch mean_radius:\", multi_branch.mean_radius)\n",
    "\n",
    "# Radius information stored per segment boundary and per segment end.\n",
    "print(\"multi_branch radii:\", multi_branch.radii)\n",
    "print(\"multi_branch radii_proximal:\", multi_branch.radii_proximal)\n",
    "print(\"multi_branch radii_distal:\", multi_branch.radii_distal)\n",
    "\n",
    "# This branch came from from_lengths(...), so explicit point geometry is absent.\n",
    "print(\"multi_branch points:\", multi_branch.points)\n",
    "\n",
    "# For a point-based branch, the shared nodes and segment endpoints are available.\n",
    "print(\"point_branch points shape:\", point_branch.points.shape)\n",
    "print(\"point_branch points_proximal shape:\", point_branch.points_proximal.shape)\n",
    "print(\"point_branch points_distal shape:\", point_branch.points_distal.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "14240bf2",
   "metadata": {},
   "source": [
    "## 3. Build a `Morphology` tree by hand\n",
    "\n",
    "A `Morphology` is a mutable tree whose nodes are branches.\n",
    "\n",
    "At this stage, branch identity starts to matter. BrainCell therefore provides typed branch constructors such as `Soma`, `Axon`, `Dendrite`, `BasalDendrite`, `ApicalDendrite`, and `CustomBranch`. They are convenience wrappers over `Branch(..., type=...)`.\n",
    "\n",
    "The usual pattern is:\n",
    "\n",
    "1. Create a root with `Morphology.from_root(...)`.\n",
    "2. Attach children with one of the supported syntaxes.\n",
    "\n",
    "Below we use three attachment styles on purpose, because you will see all of them in real code:\n",
    "\n",
    "- `tree.soma.basal = branch`\n",
    "- `tree.attach(...)`\n",
    "- `tree.soma[parent_x, child_x].axon = branch`\n",
    "\n",
    "A few rules are worth remembering:\n",
    "\n",
    "- `parent_x` can be `0`, `0.5`, or `1`\n",
    "- `parent_x=0.5` is only allowed on a soma\n",
    "- `child_x` can currently be `0` or `1`"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2e1a1f43",
   "metadata": {},
   "source": [
    "### Understanding `tree.attach(...)`\n",
    "\n",
    "`tree.attach(...)` is the most explicit way to insert a child branch into a morphology tree.\n",
    "\n",
    "Its main parameters are:\n",
    "\n",
    "- `parent`: the existing branch you want to attach onto, usually given by name such as `\"soma\"`\n",
    "- `child_branch`: the branch object being inserted into the tree\n",
    "- `child_name`: the name used inside the tree; if omitted, BrainCell can auto-generate one, but explicit names are easier to read in tutorials\n",
    "- `parent_x`: where the connection is made on the parent branch\n",
    "- `child_x`: which end of the child branch is used for the connection\n",
    "\n",
    "For attachment positions:\n",
    "\n",
    "- `parent_x=0` means the proximal end of the parent branch\n",
    "- `parent_x=0.5` means the midpoint of the parent branch, and this is only allowed for a soma\n",
    "- `parent_x=1` means the distal end of the parent branch\n",
    "- `child_x=0` means attach using the child branch's proximal end\n",
    "- `child_x=1` means attach using the child branch's distal end\n",
    "\n",
    "For example, `tree.attach(parent=\"soma\", child_branch=basal_main, child_name=\"basal_main\", parent_x=1.0)` means: attach the proximal end of `basal_main` to the distal end of `soma`, and store the new branch under the name `basal_main`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "6aed7dfa",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2026-04-22T03:24:27.189838Z",
     "start_time": "2026-04-22T03:24:27.093550100Z"
    },
    "execution": {
     "iopub.execute_input": "2026-05-25T09:54:17.481237Z",
     "iopub.status.busy": "2026-05-25T09:54:17.480974Z",
     "iopub.status.idle": "2026-05-25T09:54:17.610562Z",
     "shell.execute_reply": "2026-05-25T09:54:17.609246Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-----------------------------------\n",
      "root         | soma\n",
      "n_branches   | 6\n",
      "geometry     | complete 3d points\n",
      "length       | 164.47 um\n",
      "area         | 1705.91 um^2\n",
      "volume       | 2311.03 um^3\n",
      "-----------------------------------\n",
      "\n",
      "soma\n",
      "├── basal_main\n",
      "│   ├── apical_upper\n",
      "│   └── apical_lower\n",
      "├── basal_side\n",
      "└── axon\n"
     ]
    }
   ],
   "source": [
    "point_soma = Soma.from_points(\n",
    "    points=[(0.0, 0.0, 0.0), (12.0, 0.0, 0.0)] * u.um,\n",
    "    radii=[6.0, 6.0] * u.um,\n",
    ")\n",
    "\n",
    "basal_main = BasalDendrite.from_points(\n",
    "    points=[(12.0, 0.0, 0.0), (26.0, 8.0, 0.0), (40.0, 14.0, 0.0)] * u.um,\n",
    "    radii=[2.6, 2.0, 1.4] * u.um,\n",
    ")\n",
    "\n",
    "basal_side = BasalDendrite.from_points(\n",
    "    points=[(12.0, 0.0, 0.0), (24.0, -10.0, 0.0), (36.0, -18.0, 0.0)] * u.um,\n",
    "    radii=[2.2, 1.7, 1.2] * u.um,\n",
    ")\n",
    "\n",
    "apical_upper = ApicalDendrite.from_points(\n",
    "    points=[(40.0, 14.0, 0.0), (52.0, 26.0, 4.0), (64.0, 38.0, 8.0)] * u.um,\n",
    "    radii=[1.4, 1.0, 0.7] * u.um,\n",
    ")\n",
    "\n",
    "apical_lower = ApicalDendrite.from_points(\n",
    "    points=[(40.0, 14.0, 0.0), (52.0, 10.0, 4.0), (64.0, 6.0, 8.0)] * u.um,\n",
    "    radii=[1.3, 0.95, 0.7] * u.um,\n",
    ")\n",
    "\n",
    "axon = Axon.from_points(\n",
    "    points=[(0.0, 0.0, 0.0), (-12.0, -6.0, 0.0), (-26.0, -14.0, -2.0)] * u.um,\n",
    "    radii=[1.0, 0.8, 0.6] * u.um,\n",
    ")\n",
    "\n",
    "tree = Morphology.from_root(point_soma, name=\"soma\")\n",
    "\n",
    "tree.attach(parent=\"soma\", child_branch=basal_main, child_name=\"basal_main\", parent_x=1.0)\n",
    "tree.attach(parent=\"soma\", child_branch=basal_side, child_name=\"basal_side\", parent_x=1.0)\n",
    "tree.attach(parent=\"basal_main\", child_branch=apical_upper, child_name=\"apical_upper\", parent_x=1.0)\n",
    "tree.attach(parent=\"basal_main\", child_branch=apical_lower, child_name=\"apical_lower\", parent_x=1.0)\n",
    "\n",
    "# Here the axon is attached to the proximal end of the soma, so it extends to the left.\n",
    "tree.soma[0.0, 0.0].axon = axon\n",
    "\n",
    "print(tree)\n",
    "print(tree.topo())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "13fa2cbd",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2026-04-22T03:24:27.255681Z",
     "start_time": "2026-04-22T03:24:27.191610200Z"
    },
    "execution": {
     "iopub.execute_input": "2026-05-25T09:54:17.613833Z",
     "iopub.status.busy": "2026-05-25T09:54:17.613601Z",
     "iopub.status.idle": "2026-05-25T09:54:17.654220Z",
     "shell.execute_reply": "2026-05-25T09:54:17.653049Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Ignoring fixed y limits to fulfill fixed data aspect with adjustable data limits.\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgMAAAGFCAYAAABg2vAPAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAAQdBJREFUeJzt3Xd8ZWWB//Hvub333JuezGQymT6hKL0IlrU3RF3XsjYYxQrsuv4Uf7LouigCIhZ+gLq7rsCiUkRlBUWkDwNMTzKZln5bktuSW845z++Pm2SSYUqSuSU39/t+ra+ZJPee89wVPJ885zznSEIIASIiIqpamnIPgIiIiMqLMUBERFTlGANERERVjjFARERU5RgDREREVY4xQEREVOUYA0RERFWOMUBERFTlGANERERVjjFARERU5RgDREREVY4xQEREVOUYA0RERFWOMUBERFTlGANERERVjjFARERU5RgDREREVY4xQEREVOUYA0RERFWOMUBERFTlGANERERVjjFARERU5RgDREREVY4xQEREVOUYA0RERFWOMUBERFTlGANERERVjjFARERU5RgDREREVY4xQEREVOUYA0RERFWOMUBERFTlGANERERVjjFARERU5RgDREREVY4xQEREVOUYA0RERFWOMUBERFTlGANERERVjjFARERU5RgDREREVY4xQEREVOUYA0RERFWOMUBERFTlGANERERVjjFARERU5RgDREREVY4xQEREVOUYA0RERFWOMUBERFTlGANERERVjjFARERU5RgDREREVY4xQEREVOUYA0RERFWOMUBERFTlGANERERVjjFARERU5RgDREREVY4xQEREVOUYA0RERFWOMUBERFTlGANERERVjjFARLRIuYlxyNmJcg+D6JQxBoiIFkgIgeFXfofnbn0Ltv7ovchNxss9JKJTwhggIlqATCKMnfd8AT2/vRb1liSk+EH0/P7fIIQo99CIFk1X7gEQEVUCIQRGdv4Bvb//FkxyFJtWemE2GeFypLFrxwMYWXU+6ja/tdzDJFoUSTBniYhOKJMIo/uRb2Ns7x/R6NGjPuCFJEkzPx8KRjGQNOHMK+6DxdtSxpESLQ5jgIjoOIQQCO56FL2//xaMuTDaGr2wmI3HfF3XwREo3tNw+sd/Do3OUIbREi0eY4CI6BgyySh6Hvk3jO555JizAUfL5mTs6A2i9rzPYtUbPl/CkRKdOsYAEdEsQgiE9vwJ+x65AYZsCKsaPbCYTfN673g8ia6BCWz6yF3wtJ1V5JESFQ5jgIhoSjY1ip7ffwfRXQ+jwa1Hfa0XmhPMBhzLoYEQogjgNVf+DwxWT5FGSlRYjAEiqnpCCIT3/hk9v7sehkwQbY0eWC3zmw04mqqq2NU7AtOqN2Lj+2+BpOEKblr6uLSQiKpaNjWKnj/ciMiOB9Hg0aGhuW7BswGzSZIEi0FCZN/TUOUMtAZzAUdLVByMASKqWqGuv2Dfw9dDlx7GxhWLnw2Yls3J2Hc4jEm9H5v+4UaGAFUMniYgoqqTmxhHzx+/i/Arv0GDW4eGWi80pzidH09MoGdgDOams7D+shthctYWaLRExccYIKKqEu7+K3oevh66yUG0Nbphs5zab+9CCAyHRtEXyaLu7I+h/Y1f4n0GqOIwBoioKuQmY9j36PcQevnXqHdq0FjnO+XZAEVRsL8vhHHZhtXvvB61G99coNESlRZjgIiWvUjPU+h++BvQTQyircENm/XUz+VPTGbQ0xcF3Kux4fKbYAu0F2CkROXBGCCiZSs3GUfvn25GcNu9qHNq0FSA2QAAiIzGcGAkBfe6t2HNO78BvclegNESlQ9jgIiWpWjvM+h+6BvQJPvR1uiGvQCzAaoQ6BsIYSSpxYo3XIPmc/6B9xGgZYExQETLSi6dQO+fbkHwxXtQ55DQVF+Y2YBsNoeevjAyhjqse9934W49swCjJVoaGANEtGyM7n8e3Q9dBylxGG0NLthtloJsN55IoWdgHJbmc7DushthcvgLsl2ipYIxQEQVT04n0fv4DzDywi9R65DQXKDZgJllg9Ec6s/9BFZd+jkuG6RliTFARBVt9OAL6H7wOiB+CG0NLjgKNBsgKwr294URU2zoeOe/IrDhTQXZLtFSxBggoookZ1LY//htGH7+P1FrB5oaaqAt0MV8E5Np9PSNQvKswfrLb4LN31aQ7RItVYwBIqo4Y4deRNeD1wHjB9DW4ITDbi3YtsOjMRwcScGz4R1Y8/broDPZCrZtoqWKMUBEFUPOTuDA47dj6LlfIGATaG6ogVZbmNkAVVVxeCCM4IQOK9/0z2g664OQTuHphUSVhDFARBVh7PBL6H7wOqjjvWird8JZwNmATDaHfX1hZEwNWP++78HVfFrBtk1UCRgDRLSkKdlJ7P/LjzH0zN3w21S0NNRAq9UWbPuxeAr7BmOwtJyH9Zd9B0Z7TcG2TVQpGANEtGSN972Crgevgzrag5X1DrgchTt/L4TAUDCK/lEFDed9Em2XXgWNVl+w7RNVEsYAES05Si6NA0/8FINP3wm/VUVzgw+6As4GyLKC3r4QEsKJjnd9C/51lxZs20SViDFAREtKrH8Huh68DnJ0L9rqnHA5C3s1f2oijZ6+KDS+9djw/ptg9a0o6PaJKhFjgIiWBCWXwcG/3oGBp+6Az6KgtbGmoLMBABCOjuNAcAK+Te9Gx9u+Bp2xcBchElUyxgARlV1sYBe6Hvw65MherKxzwF3g2QBVVXFoIITQhB5tf/dVNL72ci4bJJqFMUBEZaPKWRx88k70P/mT/GxAgw86XWFnAzLZHHoOh5EzN2Ld+74HV3NnQbdPtBwwBoioLOJDe9H1wNeQC+3Gyjo73C57wfcxHk+idyAO68oLsO6934HR5i34PoiWA8YAEZWUKmdx6G93o+/JH8NrymFFY03BZwOEEBgciWBgTEXjBVdi5eu2QKPVFXQfRMsJY4CISiY+3IWuB76ObHAnVtbZ4SnCbMDMskG40PHub8O/5nUF3wfRcsMYIKKiU+UsDj39c/Q9cTu8phxaG33Q6wr/m3pqIo3uvih0/o3YcPlNsHhbCr4PouWIMUBERZUY6UHXg19HZng7VtTa4HU7irKfUGQcB0OTqOl8L1a/9avQGSxF2Q/RcsQYIKKiUJUc9j16M/qe/DECLhNWNNZAry/8bICqqjg4EEZkUo+Vb/4/aDzzMi4bJFogXlFDRAWXDPWi64HrMNG/FUo6BqNGW5QQSGey6OmLQLY0o/PjN8HZuLHg+yCqBowBIioYoSroe/aXOPT4zXAZMujsqMPhAQ0ODYXhdjnhcDoLtq+xWBK9Q3HYV16Mzvd+Gwarp2DbJqo2PE1ARAWRihxE14PfwETfC2gNWOHzOCBJElRVxdbtPZBEDqdvXAvdKc4QCCEwMBzB4LhA00WfwcqLr4CkKezSRKJqwxggolMiVBX9L9yDg499Hw5NCm1NPhgMcx8FnM5m8fxLXQi4zVjT0b7ofeVkGb19YSThxpr3fAc1HRee6vCJCIwBIjoFE6P96Hrw/yJ56Gm0+i2o8TqPe/HeSGgUe3sPY+3KOtTW1i54X8nUJHr6x6APbML6y2+CxdN0qsMnoim8ZoCIFkyoKga2/RoH//e7sEkJbF5VA+NRswFHq/V7EB4dR+/hIBx2ByzW+S39E0IgFB3HoVAaNae9Hx1v+Qq0BnMhPgYRTeHMABEtyOT4ELof+ibi+/+Klhoz/D7XvJfyqaqKZ7bthdUAbN64DhrNid+nqioO9IcQTRvR9pavoeGM93DZIFERMAaIaF6EEBh++UHs/+N3YBHjaGvywWQ0LHg7ieQEtu3ch+aAHStXrjzu69KZLHoOR6DYW7H+fTfB0bD+VIZPRCfA0wREdFLpWBDdv/tXjPc8hmafCbU1dYv+Dd1us6ClMYDDAyNwuUbh8bx6SeDYeAK9Qwk4Vl+Kte++AQaL+1Q/AhGdAGcGiOi4hBAY2fF79P7+WzAro2hr8sJsMhZk2y/u6EEum8aZm9ZCP3W9gRAC/cNhDMWA5os/hxUXfgqSRlOQ/RHR8TEGiOiYMokwuh/5Fsb2PoomrwF1fk9Bz9dnZRnPbdsLj12PdWs6oKgK9h0OI6XxYu17vgPf6vMLti8iOjHGABHNIYRAaPf/Yt8jN8CYC6Ot0QuLuTCzAUeLjMawq+sgmmpdiGUN0Neehg3v+y7Mnsai7I+Ijo3XDBDRjGxqFN2P/BtGd/0ODR49GloWf23AfHjdDjgcVvSHkmh53VVY/eZ/glZvKtr+iOjYODNARACA0J7H0fO762HIBNHW5IHVXNyDsqJMLRvMmLDyjdei6awPcNkgUZkwBoiqXG5iHD1/uBHh7b9Fg1uHhjofNEU+KE+mM+jpi0I42rDu8pvgqFtT1P0R0YkxBoiqWLj7SfQ8/E3oJgfR1uiGzVL8O/tFx+LYP5yEa82bsPZd10NvLtyTDIlocRgDRFUoNxlH7/9+H8GX7kO9U4vGOi80RV7CpwqBvsEwRhISWl9/NVrO/QiXDRItEYwBoioT7X0W3Q9dB02yH6sa3bBZiz8bkM3m0NMXRtpQi3WX3QjPitcWfZ9ENH+MAaIqIaeT6H3sVoxs/W/UOSQ01fuKPhsAAPFECj0D4zA3nY31l90IkzNQ9H0S0cIwBoiqwOjBF9D94HVA/BDaGlxw2Ob3xMBTIYTAUDCK/lEZ9ed+EqsuvQoa3cKfZUBExccYoIoRj8eRTCbLPYyisdlscDgcBd2mnJ3A/sduw/Dz/4GAHWiur4FWW/zZAFlW0NsfQlx1oOOdNyCw/g1F3ycRLR5jgCpCPB7HpZdeilAoVO6hFI3f78fjjz9esCAY73sZXQ98HepYL9oanHDarQXZ7smkJtLo6RuFxrcOG95/E6y+FSXZLxEtHu9ASBUhmUwiFArBarVCp1t+/9jKsoxQKIRkMnnKMaBkJ3HgiR9j8Om74bepaGkPQKvVFmikJxaKjONgaAK+Te9Bx9u/Bp2h+KcjiOjULb//VaVlTafTwWDgeefjiQ3sRNcDX4Mc7cKaRidcDltJ9quqKg4OhBGZ1GPlW69H42vex7sJElUQxgDRMqDkMjj45P/DwN9+Cp9FQWt7LXQlmg1IZ7LoORyBbGtB58e/B2fjxpLsl4gKhzFAVOHiQ3vR9cDXkAvtRke9HW6nvWT7Hosl0DuUgL3tEnS+5wYYrJ6S7ZuICocxQFShVDmLQ0//HH1P3A6vKYd17QHodKWZDRBCoH84jKEY0Hzxl7Diwk9C0pRm30RUeIwBogqUGOlB1wNfQ2ZkB9prbfC6vSXbdy4nY19fCCmtDxs+9O/wtZ9Xsn0TUXEwBogqiKrIOPzMf6DvLz+A25DFmnY/9CVcXZFITqBnYAzGujNw5vu+C7O7oWT7JqLiYQwQVYhkaD+6Hvg60kMvoS1ghc9TW7J9CyEwEh5DXySDwGs+gvY3XQOt3liy/RNRcTEGiJY4oSroe/aXOPT4zXAa0ti0yg+DvnT/6iqKgv39YYznLFj9nm+hbvNbS7ZvIioNxgDREpaKHELXg9/ARP/zWOm3wOepLen6/YnJDHr6ooC7Hadd/n3YA+0l2zcRlQ5jgGgJEqqK/hfuxcHHboJDm8KmthoYDfqSjiEyGsOBkRTc696GNe+4DnpzYZ+bQERLB2OAaImZGO1H90PfROLgU1jht6DGW9rZAFVVcXgwjGBKixVv+j9oPvtDkErwqGMiKh/GANESIUEguut36N16J2xSHJtXlX42IJPNYV9fGBljPTZ/9Ltwt55R0v0TUXkwBoiWALtBxjs6JxB58ntYUWtFwFdX8nv7j8eT6B2Mw9JyHs687Dsw2mtKun8iKh/GAFFZCaxxJ3FJYwQBm4oNrR7Y7aV90p8QAoMjUQyMKWg8/zNYeclnoNHyfxqIqgn/jScqE6tOxiVNUazzplDr1MCg1cJozJ8WEALIxIOQJA30Ng80RbrVrywr6O0LIQEX1n3gW/CvvaQo+yGipY0xQFRyAqtdKVzaHEW9XYHXrodWI0FRlJlXKNkJ5JIRSBKQTUWht3phsHqgKeCTCJMTk+jpG4POvxFnXP49WLwtBds2EVUWxgBRCVl0Mi5ujGKDL4U6pwYWowGSJEEIMed12VQUWg1gMuohywqyyRByqSj0Vg8MVu8pR0EoMoaDoTRqTrscq9/yFegMpT01QURLC2OAqITOqx/Fa+tS8Dv10GmPvVxPkbNQJhMwGfMHfJ1OC51OOxUFYeSSUeht0zMFC/tXWFVVHOgPIZo2ou3tN6DhjPeU/EJFIlp6GANEJdQ9ZsPmmiR8qgCO88t9NjkKjUZAe9Ta/mNGgdUDg807ryiYTGfR0xeBam/FaR+6CY6G9YX4SES0DDAGiEqoL2HBc0NOmHQxNHo00Gjm/lYuVAXyxBiM+uPf5GcmChQF2VQEudToSaNgdDyB/UMJOFa/AWvffT0MFndBPxcRVTbGAC2YEAICArIqQxEqFKFAnfpzzteqAnnWz1ShQhYyFFWFCjX/9TG3MbUd9ch7xsbGIJbJP63PjrjR7EjDaszCY9PPmaZX0jFIUKHTnvxmQzqtFjptPgpyqQhSqVHore78NQW66VUJAn1DYQzHJbRceg1az/847yZIRK+yTP7ntTBmH+RUiJmDkxBi1sHqyPdmDnKY+vnUQS7/WjHnIDj93qO3qYgjB0Z11s8VMfd7qlCRVbMITobhN/kgzznwHvn79AFYFjJkVZ76+9yv1envTX09PcackPM/U4+97fzBW4EKNf//L4iZC9/EzHeO86c48vX0dyEBkiRBgnTk71L+74AESQIw9XVmIg1lnQY4XJp/FopJERr84VANvOYhmA0KLMb8v4YSAHlyDEbdws7hz42CKFKpMegsbmiMTvQOjmFS78fGD98Ib9vZRfg0RLQclDUGhBB44NAf0J8amHPwy6n5g5KC/G+O+d8OlZkDlzLrACaL/MHpWL+FKlChTP3mOX3AFuLIwXr2gVoVYs5BLv9/cw90Mz/Dq3+WP9bNHOaOHPCA4x/0pn525MA3/Xpp5u+SBIipL5OZFBLxBGoDtYA0tY+pn8/+GgAkzfT+8tuWJAnQAhKOHHDzf0rIH3OPei0kSBrM2oYWkqSDYer1mPoM0wfsuZ9t9s+lqc/x6s++kAvXhnb0QyyjX2jHMgY83ueBRRdBi08DrUaCSS8gqTJ0BsOitjk7CsbGwtgfHoHkWonOy2+Bu/X0An8CIlpOyhoD8VwCN+z8PjI2GVq99lW/MeaPL7MOXJj6c/ZBKv/NWQelWV/jqIPb1EHz6AOcDke/d3rfeNWBbvr9x9zf7NceNe5CEMERJBNJ1K6pL9g2qXz2jNrRYp+E2TCBWqcOdoMKnVaLU/lHRgiBcEJF36iA0+mCgiS2/+IfETjtPWg5/+OweJoK9wGIaNko+2kCAYGaFj9MFlO5h0JUYhL+POBDvW0QTlMOBlv+4sDFUlSBA6EMxic1WLWiGTVeF4QQiCVSGNh5D154+Tfwb34XWs7/R1h9rYX7GERU8coeA0TVLKNo8YdDNaizDqDOoYFzkdMCExkV+4JZQGvChrXNsE7FtSRJcDlscNqtiCcmMLD7Pmx95bfwb34HWi74BKy+FYX8OERUoRgDRGWWVTTIKRIOR1V4HSqM+oXNDkQSORwMK3C6XVjV2gDdMe5OKEkSnA4rnA5rfqZg76+xdfuDqNn4NrRc8AnY/KsK9XGIqAIxBojKbHNNHDaTBFUA+0M5rK3XzOtaE1UVOBzNIZQQaG6sR33AO6/3Oe3WIzMF3Q/gxR0Pw7fxrWi94JOwBdoL8ZGIqMKUNQZ0kg4WrRmRPcE5FwjOvtJ+9vfF7Cvsj/5z5kp8zLqyXgIgZn4mpPldoHhk/8e6EPHIe499geLc97zqwsSZfcx9zeztvuqK/+nPqOYvsVRVdVFX5NPSY9XL2OhLwmnRQYJAMqvB8HgO9e4TryjI5PKnBbKqHus7muGwWxe8b4fdgnV2CxLJCQzsewgv7nwE3nV/h9YLPwV7XcdiPxIRVSBJHP2ElBI7lOhHcDI0Z2nhkSV/4qh1+rOWBEI97vr/mfdM3TNATC0bnH6/PLV0cfZyxZkb4kxtZ/Z6/On9z37tkXsBTK/DV2eWLub3Nfvz5P+cs8penGSZ4jG+l1WySGUn4DI5X7XyQjO1NBA4ar3+rOWK06spppcqviqgpKl9zXw///c5ywKPcU+AVy1hnBM7cyPpSDgdvQRx+vXH+p6EUPcIoj8+DN9BOwyLXHq3FJ0VGMXfrYyhzqWDqqrwBepxuH8Q6+v1sJmOfbpgPCVjf0iG2WbD6pVNMOhPfoOi+UikJjEQHEcsrYF37RvRcuGn4ahfW5BtE9HSVvYYqCavulGROh0tr74p0dEhoUKFqqpIyRMwaPVTNwY6Rqiox7gT4NTPpm8YNPvugLMDSp66adH0/mZuSnT0zYumblikzPre9A2P8jcuUmdtT4Y852ZKU8GlqhCYfROj/I2JjhdGQhEI33YI3sjyiQG9RsUnN/RjjR8wGbRQFAUdHR04PBhCMj6KjY1GaGfdrlgIgcGxHAbHVdTV+tHcEMhHYIElp6JgLK2Bd83r0Xrhp/kcA6JljjFAZTc7kmQxdyZoOnqCwSDecfHb4HQ6l00MbPDG8Y62CFp8+c+jKArWrFkDjVaDHbt7Yddn0RYwAgByisD+YAaJrBarVjTB63YUfXypiTQGguMYnQQ8qy9B60VXwNm4sej7JaLS4wWEVHaSJEEraaGFFsc7zKtGuaRjKjYJAq8JxOCz5S8WnN3kOq0W7SubsKtrP5wJGSa9hH3BHHQGCzata4LZZCzJGK0WEzpW1OajoP/PeOmOP8O9+mK0XvhpuJo7SzIGIioNxgBRGaxwTMBvycFiPHb+2G0WNDXU4uDQMIQAvF4PVrbUv+qxxqUwHQUTk2kMDD6BV+56Aq62C9By0RVwNZ/Gi1iJlgHGAFHJCZwZiMFnl171COPZGmp9UFQVJqMBfq+r7Addi9mE1a21mJjMYHD4b9h+19/gbDsPrRddAVfLGWUfHxEtHmOAqMRqLZmpRxifeBWAJEloaQiUaFTzZzEb0d5ai8Z0BgMjT2P7z56Co/UctF50BdwrXssoIKpAjAGiElvvScBlEhV/0DSbjkTBYPA57Pj5s3C0noWWi66EZ+VZFf/5iKoJY4CoxHrGbWi0pxHPZOG2SLCZtNBrK/fAaTYZsaqlFo2ZLAZGXsDOXzwPe/OZaLnoSnhXncsoIKoAXFpIFWFoaAjnnHPOMlpaKFBvTWOjL4E17hTsRgGXGdi4vgNWi7ncgzsl6UwWg8ExhBMqbI2nofXiLfC2n88oIFrCGANUEZZfDBxh1ilos4+j0xfDpjYffHYdar122G2Wij6AZjJZDAZHEU4IWBs70XLRlfC1XwCpDCsiiOjEGANUEZZzDABANptFPDaOR++9HdnDTyDa9RhMmiz8zvxKAp1uYU8yXEoy2RyGRkYRSqqw1G1Ey0VXoqbjYkYB0RLCGKCKUA0xEIvF8Oyzz6K+vh7pWBDD2x/G8Iv3IBcbgNeqQcDrgM1qrtjZgkw2h6HgKEIJFebaDWi96ArUrLmEUUC0BDAGqCJUWwxMUxUZ0d5nMLztfoz2/AVmrYyA2wifxwmdtjJnC7K5/ExBMKHC5F+D1ouuhH/d6yFpKvPzEC0HjAGqCNUaA7NNjg1i6JWHMPLifVCSw/nZAp8TNmtlXnCYzckYDkYRjKsw1nSg5aIrEFj/RkYBURkwBqgiMAaOUJUcIt1PYmjb/2C89ylY9AoCbhN8bge0FThbkMvJGApFEYypMHhXoeXiLQisfyM0Wq58JioVxgBVBMbAsU1ED2Po5Qcx8tL9UFMh+GwaBHwuWC2mIo62OHKyjOHgKEZiMgzeNjRfeCVqN/4dNNoT36mRiE4dY4AqAmPgxJRcBpHuJzC49V7EDz0Pm0FFwG2G1+2ApsIu0JNlBcOhKIbHZeg9K9By4ZWo3fhmaHTL7793oqWCMUAVgTEwf8nQfgy9/CCCL98PpMdQY9MgUOMq2aOPCyUfBaMYieWgsdWj9vT3YcWFn2AUEBUBY4AqAmNg4ZTsJEJ7/4yhrfcg3r8NDoNAwGOBx2WvqNkCWVHw7La9gKSFrWETmi+8AnWb38YoICogXqFDtExpDWbUbX4r6ja/FYnhbgy9/FscfOUBHAoGUWPXIFDjhsm49A+oieQEFDmH9e21yMjDOPDwV3H4rz9B84WfRt3mt0Orr6wZD6KliDMDVBE4M1AYciaF0O4/YXDrPUgObofTBAQ8VrhddmiW6M2MXtzRA0nN4bRN66DRSFAUBSPhMQyPZaFxNKL5gk+jrvOdjAKiU8AYoIrAGCgsIQQSQ3sw+NJvEN7+ELRKEjUOLQI+N4yGpXP1fjqdxXMv78Ga1lrU1tXO+dmcKLA35E8fdL4DWn3lraQgKjfGAFUExkDx5CbjCO56FENbf4WJ4F64TBICHitcTlvZb328s+sgkskkXnv6Bmg1xx7L7CiQbPVovuDTqD/tndAaKvNmTETlwBigijAdA1arFTrd8rvURZZlpFKpssTANCEEYv3bMfTSrxHe+Qj06gT8Tj38XhcMZZgtkGUZT23djZX1bjS3NJ/09YqiIhgZw9BoBpKtHk3nfwoNp7+LUUA0D4wBqgjxeByXXnopQqFQuYdSNH6/H48//jgcDke5h4LsxBhGdvwBQ1t/hXR4H9wWCQGvHU67tWSzBfsODiIYiuCs09dBr59/jMyJAmsdmi74FOpPfxd0BksRR0tU2RgDVDHi8TiSyWS5h1E0NpttSYTAbEJVMXZ4G4a2/RqR3X+EUcrA79SjxuuCQV+8GRpVVfHU1t2o91qwalXborahqCqC4ekoqEXjeZ9Ew5nvYRQQHQNjgIjmJZOMYmT7Ixja+itkRw/Bbc3PFjhsloLPFvQPh3Hg0CBe29kBs/nUpvlnRwEsATSd/0k0nPleRgHRLIwBIloQoaoYPfA8hrbdj2jXYzBJWfhdBvi9Luh0hXlQ0jPb9sBl0WLd2o6CbA/IzzYEI+MYiqYhLH40nTcVBUZrwfZBVKkYA0S0aOlYEMPbH8bwi/cgFxvIP1bZ64DNal70bEF0LIadew/gtPUr4HS6Cjtg5KMgFBnH4GgawuxH43mfQOMZ74XOZCv4vogqBWOAiE6ZqsiI9j6D4W33Y7TnLzBrZQRcRvi8TugW+FjlF7Z3wyAp6Ny0rkijzZsTBaYaNJ73cTSceRn0JntR90u0FDEGiKigJscGMfTKQxh58T4oyeH8bIHPCZv15Of+UxNpbH2lC+tW1cPv95dgtFNREM2fPlCMPjSe93E0vuZ9jAKqKowBIioKVckh0v0khrb9D8Z7n4JFryDgNsHndkB7nNmCV/b0IpOexGs6N0BznJsMFW28qopwNIbB6CQUoxeN505FgXlprfAgKgbGABEV3UT0MIZefhAjL90PNRWCz6ZBwOeC1XLk1sHZrIxntu3GqkYvGpsayzbWuVHgQcM5/4im176fUUDLGmOAiEpGyWUQ6X4Cg1vvRfzQ87AZVPjdZvjcDvQcHEA0Oo6zzli/4OsMikFVVYRHp6JA70bDudNR4Cz30IgKjjFARGWRDO3H0MsPIvjy/RCTo5iMR1DvtaK9fXE3GSoWVQhEouMYiExCMbjRcM7H8lFgcZV7aEQFwxggorJSspMI7f0zeh+9EXIiCIdJgt9jgddlh0ajKffwZuSjIIbB6ARknQv153wUTWd9AAaLu9xDIzpljAEiWjISIz0YevkBhF75LaTMGHx2LQI+F8wmY7mHNkMIkT99EJ6ArHeh/uyPoOnsDzIKqKIxBohoyZGzEwjtfgxDW+9BYuAVOEwCAbcFniU0WyCEQGQ0hsHIBLI6JxrO/giazvogDFZPuYdGtGCMASJasoQQSIx0Y+il3yK0/QFosnHU2DXw+9wwmwzlHh6Ao6JA60T92R9G89l/zyigisIYIKKKIKeTCO75E4a23ovk4A44TQIBjxVup21JzBYIIRAZi2MwnEJWa0f9WR9G89kfgsHmLffQiE6KMUBEFUUIgcTQnvxswY6HoMnFUePQIeBzwWQs/2yBEALRsTgGwilkNXbUnfUPaD7nH2BkFNASxhggooqVSycQ2v0nDG39FVJDu+EwCwTcVrhddmgK/FjlhZqOgsFIChnJhrrXTkWB3VfWcREdC2OAiCqeEALxwd0Yeuk3CO94GFoliZqplQjGMs8WzI6CtGRD3Wv+Hi3nfhhGe01Zx0U0G2OAiJaV3GQcwV2PYmjrrzAxshdOMxDw2OB22hb9WOVCEEJgdDyBgXASaVhR99q/R/M5H4bJUZoHMhGdCGOAiJYlIQRiAzsw/NJvEd75O2iVFPwOHfw+F4wGfVnHNScKXvNBNJ/7EUYBlRVjgIiWvdxkDCM7/4ihF36FyVA3XFOzBa4yzhZMR8FgOIVJmFF35gfQfO5HYXIGyjIeqm6MASKqGkIIxPpfwdC2XyO86/fQqxOocerh95ZvtkAIgbFYEgOhBCaFGbVnfgAt530UJmdtWcZD1YkxQERVKTsxhpEdf8Dw1nsxGe6BywIEPHa4HNayzBbMREE4gUnVjNozLkfzeR+D2VVX8rFQ9WEMEFFVE6qK8b6XMLTtN4js/gP0YhJ+pwF+nxMGfelnC4QQGI8lMRBOYkI1IXDG+9By3sdgdtWXfCxUPRgDRERTsqlRjOz4A4a2/jfSkQNwWyQEvDY47aWfLRBCYPdzvYgOx6AaTWg4/8NwreiEuaYRJl8DzL5G6EyWko6Jli/GABHRUYSqYuzwi1OzBX+EQcog4NSjxuuCQa8r2Tief/gVONUMhABUowsT6SxknQlCowe0ehgcXpgDrTDXr4K5pglmXwPMvgaYahphsHvKupSSKgtjgIjoBDLJKEa2P4LhF+9BOnoAHosG/hLMFqiKimcfeAltNhVWmxMik4WamQC0BhhqmpFVNchks0hns0hnc8hAh4wskFUUSFo9tGYbzDXNMNe15YOhJj+bYPLWw+Stg0ZbuqihpY8xQEQ0D0JVMXZwKwa33Y/o3j/BKGXgn1qJoC/CbMFkKoNtj2zHapcEk84EZCdhMuiRyclQJR3MgRZoja8+TaCoaj4SMrmZWMioEjKqBpmcDKHRQdIZYfTWwly7Eua6Nlh8DTz9UOUYA0REC5RJhDG8/XcY3novsmOH4bZKCHjtcNgsBZstiEWSeOVPO7HBo4NOCJgN+qltC2SyMmRJC7O/BTqTdd7bFEIgk8shk8nPJqSzWWRyCjJCi7SsQoUEaPXQOzww+/OnHyz+Zp5+qAKMASKiRRKqitEDz2Fo2/2Idj0Ok5SB32VEjdcJve7UZguGD4Wx7+l92OTRwmzQH/WYZoFsTkZOaGD2N0Nntp/aB0E+FGRFmTOjcOT0g4qsrELS6aE12WCuaYKprg2W2tZ8JPga83/y9EPFYgwQERVAOh7C8CsPY2TbfciOHYbHqkHAa4d9kbMFz/5xO6RoEp21ZmjnhMC06SCQYKppgt7iPPUPcQInP/2gzZ9+8NTBXLsiP6vA0w8VgzFARFRAQlUQ3f8chl68D6Pdf4FJm8vft8Drgk6nndc2BveHsOfpfag1a7DGZz7ha3OyjKwCmHwN0NvchfgIC3bM0w+ygozQIZ1TTn76wdcAg8PL0w9lxBggIiqSdGwEQ688jJEX70UuPgCPRULA54Tdaj7ugS8yOIa9T/fAoCrwGLVodRlPup98EAgYvfUw2L2F/hin5LinH4QWGUXMnH7QmKww1zRB76qF3uGBu/0MmLz1MPvqYfLUQWs8cRTRqWEMEBEVmarIiPY+g+Ft92O05wmYtbn8tQUe55zZgvFwAnv+1g2/TkE8p4NXr6LePr+7IMqKgoyswuCuhdFZU6yPUnD50w85pDNZZLJZHBwchlYCTK4aZHIKhKTJL6d0eGCqacovlaxpgslbB5O3AWZvHYyeWl6rcIoYA0REJTQ5PozhVx7G8Iv3QE4MwWvVIOB1ALLA7r92w6uR4bNq0BOV0GwR8Fnmf5CbDgK9swYmdwBA5U27P7djL3wWHVataocQAjlZRiabm/lPOptFFlpkFCCTkwGtHpLOAKPbD1NNC0x1K/OnH6bup2D2NcDg8EE65nUXNI0xQERUBqqSQ3Tf0xh68T6M9f4NucMjMMSSWOPXQTK6sPPwONa4NXAY53edwTRFUZCWVejtXpi8dai0IHjq5d1o9lrR3Nx60tfOXKswEwtZZHLyrFMQCiSdARqDCUZPPcyBVphqV8Dsq4fZUw/T1CkIvc1V9dcrMAaIiMpscnQAB/98Jw7ffxvschqrW1uxc38fjJKAQQvoJUCnAfQaCTqtBL0G0Gmk/NcaCToN5hzMFFVFOidDZ/PA7GtAJQXBky9ux+pGP2prT/1pjerUKYjMzD0VcsjICrJCh7SsQlbFzN0aTb6G/CoIf+vMjML0qYhqWAXBGCAiWiImIwPYfusWqP07Uee0QFEU5GQFsiwjJ8vI5XJTf1cgKwoAAQgBCZiJAr0G0EmAThIQQoXBbIXV7Yder4dOp4Nep4VOq12SvwnLsoynXtqJze3NcLuLfyGkrChHZhSyOaSzOWRVkV8uOfsmTDYXTDXNMNetnLpeIT+jMH1xo0ZvKPpYi40xQES0hMjpCey+41rEXnwE7bUuOKzH/q1UFeJIGMgycooCWVamoiEfD5lMBrHUJCSjFTqbC5JQAVUBVAU6rRY6rQZ6jYAOCvSSNBMLep32yN+1Ouh0pYmHWDKFV/b24LXrV8Nsmf+dFYthehXEzKzC9KkIISGjSsjmFAiNFtDqYXT6YfJPxYKvMT+j4GuA2VMHoztQEdcrMAaIiJYYoSjoufdGDP3xDqz0WuBzLf6GQplsDl0DYehXn4N1n/gOhJJDLjmObHIMueR4/u+JUWRjYeTGw8jGw8jFo8hNJAAl96p40GkAvVDyf+q00OvysaDX6uZExGLiYTgcxb5DfTj/9E3QaBd2rUSpCZG/6VNmViikc7mZixuzOQXQ6iDpTTB5amEKtMIUaIW5phFmT91MMCyV2zszBoiIliAhBPof/2/0/tc30WgB6v2LvylPLidj70AImpbT0Hn1nTA6Tj4FL1Q1HwupcWST48jFR/MBkYohlxhDNhZGdjyIXCyKbDKKXDIGKDKgyhBT8aCfjgco0Ek4EgvaubMPOp0OGknCgf4hjIQjOPf0TYv6nEuJqqrI5uS5swqygozQIKMI5BQVklYPjdEKk68B7vXnYfUHvlK2WQTGABHREhZ+5S/Y/aMvwIMkVtQHoFlkEMiygq6BIET9enRefRdMntqCjlOoaj4UkmPIJWP5cEiM5kMiOY5sLILs+AhysQhyiVHkUjEIOT/zIFQZOq0WmYkEkEujxuuDXgPo9TroZ05d6Ga+PvbtmSuLoqhTKyGyiCVSCMpGXHzHDmh087uvRKExBoiIlrj4oV3YccsWmOL9aG8MQLfIKXRFUdA9EETW24bTrv0ZLP7mAo90/oSqIjcRz8dDIj8DMRkdxmSoD9BokB0LITs2nJ+BiEWgpCemZh1kaCUJep0Geo0EPRToJcyKhalwmPqPVrv0wyEyFkO/cOL8W58p2xgYA0REFWAyOoQdt1wJtX8HVjf4YDIs7gp2VVXRMxDEpL0RndfeDVtDe4FHWhxKNp2/tiEeRS4xhszUn9l4FJnxILJjI8iOh5GNR6CkU4AyKxy0Gui10szpCsP0dQ56HQy6I7MPGo2mLOfvh0IRjAc24TXX3V/yfU9jDBARVYhcKo5dP/kyEtsfQ0edGzbL4u7Xr6oq9g8GETf50XnNXXC0bijwSMtLyWaQTUTzpymmgmHmz/EQsmMjyIwHkYtHIU8mp8JBgQYCBp0Weq00tcICrzpFMf21toDhcGhwBMrmt2PTZ28tyPYWgzFARFRBVDmH7v/+FoKP/QJtPis8TseitiOEwIHBIMZ0Lmz68p1wt59e4JFWBjWXnZlxyCZGp/4zHQ5hZEeHkR0PIhuPQp5MzAkHvU6bP1UhKdBLYs7piXxAzC8cevpHYHnDFnS8/9oSfvK5GANERBVGCIFDf7wbB+/9NzTbtKj1LW55mhACh4dDCAsrNnz+x/BtOK8Io10+1FwW2eRRMw2J0fxKi3gEmegQsrEQsrEI5In4ccJBhR4qdDodDFPXOAyMTaDhg/8XLW/6aNk+G2OAiKhCBbc+ij13XI0azSRa6/yLDoKBYATDWR3Wf+Y2+M94fRFGWn1UOYdccu61Ddn46Mw9HfIzDvn7Oii5LDqvvhuu9tPKNl7GABFRBRvvfRk7b90Cy0QQ7Q1+aBe50mAoFEX/BLD2099D3TlvL/Ao6USEqpb9LoWMASKiCjcR6sP2W64Ehvago6EGRsPi1qoHo2M4FM9h1Uf+Fc2XfLDAo6SljDFARLQMZJPj2Hn7FzCx56/oqPPAajYtajuRsRj2j05ixQe+itY3f2JJ3CqXio8xQES0TKi5LPb+4jqEn7wX7TV2uBy2RW1nNJZAbySJpnd9EW3v/jyDoAowBoiIlhGhqjjwu5/i8P3fQ6vLgIDXvajtxBJJ9IQSqH3Tp9DxwfLdM59KgzFARLQMDT3zELrv+mcE9Dk019Ys6rf7RGoC3SPj8F3891j70euh0eqKMFJaChgDRETL1GjXVuy8bQscmSjaGgKLesBPajKNrqFRuM5+FzZ86kZo9Iu7DTItbYwBIqJlLDV8ANtv/jS04V50NPih1y/8t/vJdAZ7h6Kwd74JG7bcDJ3JUoSRUjkxBoiIlrlMPIodt12FTM+z6Kj3wmIyLngb6WwWXQMRmNZegE2f/xH0FnsRRkrlwhggIqoCSmYSu+/6Ksae+y3a/U447dYFbyOby6FrIAztijPR+aU7YHB4ijBSKgfGABFRlRCqit7f3IL+h36IFW4T/B7XgreRk2V0DYSAhg047Zq7YXT5Cz9QKjnGABFRlRn46/+g5+dfQ71JQWNg4SsNZEVBd38Qin81Oq+5G+aaxiKNlEqFMUBEVIUiu57G7tuvgjMXQ1uDH5oFrjRQVBX7BoKYdDbjtGt/BmvdyiKNlEqBMUBEVKUS/d3YccsV0I8dwuoGP/S6ha00UFUVvYNBJC212HzN3XA0ry3SSKnYGANERFUsMx7C9lu3QD6wDR0NPpiMC7uPgBAC+weDGNe7sfnLd8K1qnyP4aXFYwwQEVU5OZ3C7jv+CbEXH8HqWhfs1oXdR0AIgUPDIURgw8Yv/BTedWcXaaRULIwBIiKCUBR03/PvGH70Tqz0muFzORf2fiHQHwxjJGfEhqt+iJrO1xVppFQMjAEiIgKQP6D3PfZL7P/lN9FokVDv9y54pcFgMIKBSQnrrrwZtWe9pUgjpUJjDBAR0RzhV/6C3T/6AjxIYUW9H5oFBsFIZBSHEwpW/+O/ofGiy4o0SiokxgAREb1K7OBO7Lh1C8zxAbQ3BqDTahf0/vDoOA6MZbDyQ9eh9U0fLdIoqVAYA0REdEyT0SFsv/kKiIGd6GjwwWhY2EqDaCyO/ZEJNL/3Gqx8x5ZFPUaZSoMxQEREx5VLxbHrJ19GYvtj6Khzw2YxL+j94/Ek9oUTqH/LFrRffg2kRTxGmYqPMUBERCekyjl0/fIGhB7/D7T5rPA4HQt6fzw5ge7gOPyXfBRrP3wdpAWecqDiYwwQEdFJCSFw6A934eC930GzXYtan2dB0/7JiUl0D4/Bfe5lWP+Jb0OjX9gpByouxgAREc3byNY/Yu9Pr0GNdhKtdf4FBcFEOoO9g1E4zngLNm75PrQGUxFHSgvBGCAiogUZ3/cydv5gCywTQbQ3+KFdwLR/OpPF3sEILBteh01X3Qad2VbEkdJ8MQaIiGjBJkJ92H7zFZCG96KjsQYGvX7e781kc+gaCEPffhY6v3QH9NaF3e2QCo8xQEREi5JNjGHn7Z/HxN6/oaPOA6t5/tP+uZyMvQMhaJo70Xn1nTA6fUUcKZ0MY4CIiBZNzWWx5+dfR+Rv96G9xg6XY/7T/rKioLs/CKV2LTqvuQtmb30RR0onwhggIqJTIlQVBx7+CQ7/+ia0ugwIeN3zfq+iKOgZCCLjWYnOa+6Gtba1eAOl42IMEBFRQQw98yC67/oKAvocmmtr5r3SQFVV7BsIImVvQOc1d8PeuLrII6WjMQaIiKhgRrtewM4ffAaOTBSrGgPQzPOOg6oQ2D8QRNzkw+Yv3wnnyk1FHinNxhggIqKCSg7tx45broA23IuOBj/0et283ieEwMGhEEY1Dmz84h3wrHlNkUdK0xgDRERUcJlYBDtuuwqZfc+ho94Li8k4r/cJIdBzeADBRAZn/Mt/w3/G64s8UgIAPjGCiIgKzuj04fRrfwbHWe/GnsFRxJKpeb1vIp1GMDoGi0hj1w+vwsjzvy/ySAngzAARERWRUFX0/voW9D/8Q6x0m1DjcR33telsFlt39cCmBzatXYPweByHEwraP/YtNF18eekGXYUYA0REVHQDf/0f9Pz8a6g3KWgMvHqlgSzLeGFXN/SSis1r22GYem5BeHQcB8bSWPGBr6L1zZ9Y0LMQaP4YA0REVBKRnU9h1+1Xwa3EsbLeP7PSQFVVbN3dAyFn0blmFUxmy5z3jcYS6I0k0fiOz2HVe7/EICgCxgAREZVMoq8L22+9AsaxPqxu8EOjkfBy136kJyeweXUrbPZjP6cglkihJxRH4PUfw5oPfQ3SAh6ORCfHGCAiopJKjwWx49YtkA++BOQmEE8ksaGtCW6394TvS05Momt4DJ5zL8P6T3wbGr2hRCNe/riagIiISsrkDuD0r/wnjBsuwVg8hZaA96QhAAA2ixnrGjwYf/Z+7Lj981AykyUYbXXgzAAREZWFmsth739dj9Bf/gttPiu8Tse83pfOZLF3MALz2guw6XO3Q2+d3/vo+BgDRERUNkIIHP7fX+DAr25As02LWp9nXhcIZnM5dA2EoV1xBjZ/6Q4YHSefWaDjYwwQEVHZBbc+ij0/vRo12km01vnnFQQ5WUb3QAhq3TqcdvVdMHnrSjDS5YkxQERES8L4vpex49YrYUuHsKohAO08HnKkKAq6B4LIelai85q7YK1dUYKRLj+MASIiWjJSIwex4+YroAn1zPshR6qqYt9gEClrHTZffRcczWtLMNLlhTFARERLSiYexY4ffBaZfc9hTb0X5nk85EgIgf2DQYzr3dj8pTvhaj+tBCNdPhgDRES05CiZSey+8ysYe/5BrA644LBZTvoeIQQODYcQEVZs+PyP4dtwXglGujwwBoiIaEkSqoqe+76Lod//BCu9Fvhcx7474Zz3CIGBYBjDWT3WbbkVgTPfWIKRVj7GABERLVlCCPQ99kvs/+U30WiVUF/jnddKg+FwFH0pgdUf/w4aL3hPCUZa2RgDRES05IVeehx7fvxFeKUUVtQH5hUEodFxHBzPYOXfX4fWN320BKOsXIwBIiKqCLH927Hj1ithSQ2jvSEA7TweVhSNxbE/kkLTu69G27s+yyceHgdjgIiIKsZEqA/bb/40pJEudDTUwKDXn/Q944kk9oUSqH3Tp9Dxwa9Amsf9C6oNY4CIiCpKNjGGHT/8HNJdT6Gj3gvLPJYeJlIT6B4Zh+/CD2Dtx/4VGt3JI6KaMAaIiKjiKNkM9tz9VYw+82u0+51w2q0nfU9qMo2uoVE4z3wrNlx5E7QGUwlGWhkYA0REVJGEqqL3N7dg4KEfYoXHhBq366Tvmcxk0DUYhWXD67DpqtugM9uKP9AKwBggIqKK1v+Xe7HvP76OBrNAg9930osEM9kcugbD0Le9Fpu/+FMY7O4SjXTpYgwQEVHFC2//K3b/6PPwiARW1AegOUkQ5GQZXf0hoHEDOq++CyZ3oEQjXZoYA0REtCzED+3C9luuhDk+gPbGAHQnWXooKwp6BoLI+Vah85q7YfE3l2ikSw9jgIiIlo3J8AC233IFxNBudNTXwGg48aoBVVXRMzCCSXsTNl9zF+yNq0s00qWFMUBERMtKLhXDztu/gNTuJ9BR54HVfOJVA6qqYv9gEHGjD5u/fCecbZtLNNKlgzFARETLjprLYs/Pv47I3+5Du98Ol/3EqwaEEDg4FERUsmPjF34K77qzSzTSpYExQEREy5JQVex/8Hb0/fZmrHCb4Pe4Tvx6IdAfDGMkZ8T6z94G/2mXlGagSwBjgIiIlrWBJ3+Nnp99FfUmBY2BmpMuPRwMRTAwIWHNp76L+nPfUaJRlhdjgIiIlr3Izqew6/ar4FbiWFnvh+YkzycIRsdwKJbDqg9/E82v/1CJRlk+jAEiIqoK8b692HHzFTDG+rB6HksPI+Mx7I9OouWya7Hy7Vcu6yceMgaIiKhqpKPD2H7LFVD7d6CjwQejwXDC14/FE9gXTqLhLVvQfvk1y/aJh4wBIiKqKrlUHLt+/CUkdjyONXVuWC3mE74+nkyheyQG/yUfxpqPfAMara5EIy0dxgAREVUdNZfF3v+8HuEnfolVNTa4HfYTvj45MYnu4TG4zn4XNnzqRmj0J55RqDSMASIiqkpCCBx8+Kc4dP930eoyIOA98QOLJtMZ7B2MwLb5Ddj42R9AZ7KUaKTFxxggIqKqNvTMQ+i6859QZ5DRVHvipYeZbBZ7ByIwrD4HnV/8CfRWZwlHWjyMASIiqnrRPc9h1w8/C2d2FG0NgRMuPczlZOwdCEHT3InOL98Bo8tfwpEWB2OAiIgIQGKgBztu/jT0o4fQ0RiATnf8pYeyoqC7Pwgl0IHOq++CuaaxhCMtPMYAERHRlPRYEDtu3QL54EvoaPDBZDz+hYKKoqJncARpZzM6r/kZbPVtJRxpYTEGiIiIZpEnk9j1k6sRf/lRdNS5YTvB0kNVVdE7GETSHMDmq++Eo3VDCUdaOIwBIiKio6iKjO5f3oDgY79Am88Gj/P4Sw+FEDgwGMSYzomNX7gDnjWvKeFIC4MxQEREdAxCCBz6/Z04eN+/o8WhQ63Pc8LX9o2EEVJMWH/V7ajZfFEJR3rqGANEREQnMPzcI+j6f9fCr8+gpdZ/3KWHQggMhiIYTGux7orvo/ast5R4pIvHGCAiIjqJ0a6t2HnbFjgyUaw6ydLDkcgoDicUtH/sW2i6+PISjnLxGANERETzkBzaj+03fxr6yH6sbvRDrzv+MwrCY+M4MJrGivf/C1rf8skl/8RDxgAREdE8ZcbD2P6DLcjtfxEdDV6YjcbjvnY0lkBvJIXGd1yFVe/54pJ+4iFjgIiIaAHk9AR233EtYi8+gtW1Ltitx39GQSyZQk8wjsDrP4o1H/o6JO3xb2RUTowBIiKiBRKKgu57voPhR+9Em9cKr8tx3NcmJybRNTwGz7mXYf0nvr0kn3jIGCAiIloEIQQO/+9/4MCvbkCTTYM6n+e41wZMpDPoGozCfvrfYeOWm6E1Hv9GRuXAGCAiIjoFwa2PYs8dV6NGM4nWuuMvPUxnstg7GIZ57YXY9Lnbobcefzah1BgDREREp2h838vYceuVsE2GsKohAK322BcLZnM5dA2EoV1xBjZ/6Q4YHd4Sj/TYGANEREQFkBo5iB03XwFNqAcdDX7o9cdeepiTZXQPhKDWrUPn1XfC7K0v8UhfjTFARERUINn4KLbf9llkep5FR70XFtOxlx4qioKegSAynhXovOZuWGtXlHikczEGiIiICkjJTGL3nV/B2PMPYnXACYfNeszXqaqKfYNBpCy1OO2f/xO2hlUlHukRS/cOCERERBVIazRj45abUfeWz6ArGEdkLHbM12k0GjT63MhFB5Do21viUR41lrLunYiIaBmSNBq0v/9atH3kBuwfz2IwFMHRE/GZbBbdw6PwX/RB1J711jKNNI+nCYiIiIoo9PKfsefHX4AXKayoD0CSJORkGXv6QjBvej02f/5HZb8REWOAiIioyGL7t2PHrVfCkhxGW70f3YMhSK1n4vR/+jl0Zlu5h8cYICIiKoWJUB+233wF0odegallE07/l1/C6PSVe1gAGANEREQlk02MYeCJ+1B71pth8TeXezgzGANERERVjqsJiIiIqhxjgIiIqMoxBoiIiKocY4CIiKjKMQaIiIiqHGOAiIioyjEGiIiIqhxjgIiIqMoxBoiIiKocY4CIiKjKMQaIiIiqHGOAiIioyjEGiIiIqhxjgIiIqMoxBoiIiKocY4CIiKjKMQaIiIiqHGOAiIioyjEGiIiIqhxjgIiIqMoxBoiIiKocY4CIiKjKMQaIiIiqHGOAiIioyjEGiIiIqhxjgIiIqMoxBoiIiKocY4CIiKjKMQaIiIiqHGOAiIioyjEGiIiIqhxjgIiIqMoxBoiIiKocY4CIiKjKMQaIiIiqHGOAiIioyjEGiIiIqhxjgIiIqMoxBoiIiKocY4CIiKjKMQaIiIiqHGOAiIioyjEGiIiIqhxjgIiIqMoxBoiIiKocY4CIiKjKMQaIiIiqHGOAiIioyjEGiIiIqhxjgIiIqMoxBoiIiKocY4CIiKjKMQaIiIiqHGOAiIioyjEGiIiIqhxjgIiIqMoxBoiIiKocY4CIiKjKMQaIiIiqHGOAiIioyjEGiIiIqhxjgIiIqMoxBoiIiKocY4CIiKjK/X9iaaB4PPKVhgAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<Axes: >"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tree.vis2d()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cbd3ea6c",
   "metadata": {},
   "source": [
    "### Inspect the tree\n",
    "\n",
    "For quick inspection, the most useful tools are usually:\n",
    "\n",
    "- `print(tree)` for a short summary\n",
    "- `tree.metric` for a metric snapshot\n",
    "- `tree.topo()` for a readable topology tree\n",
    "- `tree.branch(...)` and `tree.branch_by_order(...)` for queries"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "47fdc982",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2026-04-22T03:24:27.390526600Z",
     "start_time": "2026-04-22T03:24:27.257680800Z"
    },
    "execution": {
     "iopub.execute_input": "2026-05-25T09:54:17.657341Z",
     "iopub.status.busy": "2026-05-25T09:54:17.657213Z",
     "iopub.status.idle": "2026-05-25T09:54:17.671139Z",
     "shell.execute_reply": "2026-05-25T09:54:17.670107Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-----------------------------------\n",
      "n_branches       | 6\n",
      "n_stems          | 3\n",
      "n_bifurcations   | 2\n",
      "max_branch_order | 2\n",
      "total_length     | 164.47 um\n",
      "mean_radius      | 1.65 um\n",
      "total_area       | 1705.91 um^2\n",
      "total_volume     | 2311.03 um^3\n",
      "max_path_dist    | 78.23 um\n",
      "-----------------------------------\n",
      "\n",
      "Has full point geometry: True\n",
      "Branch names in default order: ['soma', 'basal_main', 'basal_side', 'apical_upper', 'apical_lower', 'axon']\n",
      "Branch 1 in default order: MorphoBranch(name='basal_main', type='basal_dendrite', index=1)\n",
      "Branch named 'apical_upper': MorphoBranch(name='apical_upper', type='apical_dendrite', index=3)\n",
      "Path from the root to branch 3: (0, 1, 3)\n"
     ]
    }
   ],
   "source": [
    "print(tree.metric)\n",
    "print(\"Has full point geometry:\", tree.has_full_point_geometry)\n",
    "print(\"Branch names in default order:\", [branch.name for branch in tree.branches])\n",
    "print(\"Branch 1 in default order:\", tree.branch(index=1))\n",
    "print(\"Branch named 'apical_upper':\", tree.branch(name=\"apical_upper\"))\n",
    "print(\"Path from the root to branch 3:\", tree.path_to_root(3))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a12939ab",
   "metadata": {},
   "source": [
    "### What does `tree.metric` mean?\n",
    "\n",
    "`tree.metric` is a compact snapshot of whole-tree summary measurements.\n",
    "\n",
    "| Field | Meaning |\n",
    "| --- | --- |\n",
    "| `n_branches` | Total number of branches in the morphology |\n",
    "| `n_stems` | Number of primary branches that leave the root |\n",
    "| `n_bifurcations` | Number of branching points in the tree |\n",
    "| `max_branch_order` | Largest branch depth measured from the root |\n",
    "| `total_length` | Sum of the lengths of all branches |\n",
    "| `mean_radius` | Length-weighted mean radius across the whole tree |\n",
    "| `total_area` | Total membrane surface area across all branches |\n",
    "| `total_volume` | Total cable volume across all branches |\n",
    "| `max_path_distance` | Longest path length from the root to any point in the tree |\n",
    "| `max_path_distance_excluding_soma` | Same as above, but excluding the soma contribution |\n",
    "| `max_euclidean_distance` | Largest straight-line distance from the root, available only when full point geometry exists |\n",
    "| `max_euclidean_distance_excluding_soma` | Largest straight-line distance excluding the soma, available only when full point geometry exists |\n",
    "| `x_range` | Span of x coordinates, available only when full point geometry exists |\n",
    "| `y_range` | Span of y coordinates, available only when full point geometry exists |\n",
    "| `z_range` | Span of z coordinates, available only when full point geometry exists |\n",
    "| `has_full_point_geometry` | Whether every branch in the tree carries explicit point geometry |\n",
    "\n",
    "In other words, the path-based fields are always useful for topology-aware cable measurements, while the Euclidean-distance and coordinate-range fields only exist when the full tree has explicit 3D points."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "318640cf",
   "metadata": {},
   "source": [
    "### A note on 3D\n",
    "\n",
    "This hand-built tree already has full point geometry, so the same morphology can be rendered directly in 3D. Because the coordinates were chosen explicitly, the axon extends to the left, while the basal and apical dendrites extend to the right.\n",
    "\n",
    "For notebook-based docs, `notebook=True` embeds the scene in the cell output, and `jupyter_backend=\"html\"` saves a static interactive HTML view that works in headless builds."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "e2d73ebe",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2026-04-22T03:24:29.504245700Z",
     "start_time": "2026-04-22T03:24:27.393527400Z"
    },
    "execution": {
     "iopub.execute_input": "2026-05-25T09:54:17.674422Z",
     "iopub.status.busy": "2026-05-25T09:54:17.674292Z",
     "iopub.status.idle": "2026-05-25T09:54:18.503820Z",
     "shell.execute_reply": "2026-05-25T09:54:18.502567Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<iframe srcdoc=\"&lt;!doctype html&gt;\n",
       "&lt;html lang=&quot;en&quot;&gt;\n",
       "  &lt;head&gt;\n",
       "    &lt;meta charset=&quot;utf-8&quot; /&gt;\n",
       "    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot; /&gt;\n",
       "    &lt;title&gt;VTK.js | Example - OfflineLocalView&lt;/title&gt;\n",
       "    &lt;style&gt;\n",
       "      html, body { margin: 0; padding: 0; height: 100%; }\n",
       "      body { font-family: sans-serif; }\n",
       "    &lt;/style&gt;\n",
       "  &lt;/head&gt;\n",
       "  &lt;body&gt;\n",
       "    &lt;div id=&quot;vtk-root&quot; style=&quot;height:100%; width:100%;&quot;&gt;&lt;/div&gt;\n",
       "    &lt;script&gt;\n",
       "      window.global = window.global || {};\n",
       "    &lt;/script&gt;\n",
       "    &lt;script&gt;var OfflineLocalView=function(e){&quot;use strict&quot;;const t=document.querySelector(&quot;head&quot;);t&amp;&amp;[16,32,96,160,196].forEach((e=&gt;{const n=document.createElement(&quot;link&quot;);n.setAttribute(&quot;rel&quot;,&quot;icon&quot;),n.setAttribute(&quot;href&quot;,`https://kitware.github.io/vtk-js/icon/favicon-${e}x${e}.png`),n.setAttribute(&quot;sizes&quot;,`${e}x${e}`),n.setAttribute(&quot;type&quot;,&quot;image/png&quot;),t.appendChild(n)}));var n=1e-6,r=&quot;undefined&quot;!=typeof Float32Array?Float32Array:Array,o=Math.PI/180;function a(e){return e*o}function i(){var e=new r(9);return r!=Float32Array&amp;&amp;(e[1]=0,e[2]=0,e[3]=0,e[5]=0,e[6]=0,e[7]=0),e[0]=1,e[4]=1,e[8]=1,e}function s(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[4],e[4]=t[5],e[5]=t[6],e[6]=t[8],e[7]=t[9],e[8]=t[10],e}function l(e,t,n,r,o,a,i,s,l,c){return e[0]=t,e[1]=n,e[2]=r,e[3]=o,e[4]=a,e[5]=i,e[6]=s,e[7]=l,e[8]=c,e}function c(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e}function u(e,t){if(e===t){var n=t[1],r=t[2],o=t[5];e[1]=t[3],e[2]=t[6],e[3]=n,e[5]=t[7],e[6]=r,e[7]=o}else e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8];return e}function d(e,t){var n=t[0],r=t[1],o=t[2],a=t[3],i=t[4],s=t[5],l=t[6],c=t[7],u=t[8],d=u*i-s*c,p=-u*a+s*l,f=c*a-i*l,g=n*d+r*p+o*f;return g?(g=1/g,e[0]=d*g,e[1]=(-u*r+o*c)*g,e[2]=(s*r-o*i)*g,e[3]=p*g,e[4]=(u*n-o*l)*g,e[5]=(-s*n+o*a)*g,e[6]=f*g,e[7]=(-c*n+r*l)*g,e[8]=(i*n-r*a)*g,e):null}function p(e,t,n){var r=t[0],o=t[1],a=t[2],i=t[3],s=t[4],l=t[5],c=t[6],u=t[7],d=t[8],p=n[0],f=n[1],g=n[2],m=n[3],h=n[4],v=n[5],T=n[6],x=n[7],y=n[8];return e[0]=p*r+f*i+g*c,e[1]=p*o+f*s+g*u,e[2]=p*a+f*l+g*d,e[3]=m*r+h*i+v*c,e[4]=m*o+h*s+v*u,e[5]=m*a+h*l+v*d,e[6]=T*r+x*i+y*c,e[7]=T*o+x*s+y*u,e[8]=T*a+x*l+y*d,e}function f(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e[3]=t[3]-n[3],e[4]=t[4]-n[4],e[5]=t[5]-n[5],e[6]=t[6]-n[6],e[7]=t[7]-n[7],e[8]=t[8]-n[8],e}Math.hypot||(Math.hypot=function(){for(var e=0,t=arguments.length;t--;)e+=arguments[t]*arguments[t];return Math.sqrt(e)});var g=p,m=f,h=Object.freeze({__proto__:null,create:i,fromMat4:s,clone:function(e){var t=new r(9);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t},copy:function(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},fromValues:function(e,t,n,o,a,i,s,l,c){var u=new r(9);return u[0]=e,u[1]=t,u[2]=n,u[3]=o,u[4]=a,u[5]=i,u[6]=s,u[7]=l,u[8]=c,u},set:l,identity:c,transpose:u,invert:d,adjoint:function(e,t){var n=t[0],r=t[1],o=t[2],a=t[3],i=t[4],s=t[5],l=t[6],c=t[7],u=t[8];return e[0]=i*u-s*c,e[1]=o*c-r*u,e[2]=r*s-o*i,e[3]=s*l-a*u,e[4]=n*u-o*l,e[5]=o*a-n*s,e[6]=a*c-i*l,e[7]=r*l-n*c,e[8]=n*i-r*a,e},determinant:function(e){var t=e[0],n=e[1],r=e[2],o=e[3],a=e[4],i=e[5],s=e[6],l=e[7],c=e[8];return t*(c*a-i*l)+n*(-c*o+i*s)+r*(l*o-a*s)},multiply:p,translate:function(e,t,n){var r=t[0],o=t[1],a=t[2],i=t[3],s=t[4],l=t[5],c=t[6],u=t[7],d=t[8],p=n[0],f=n[1];return e[0]=r,e[1]=o,e[2]=a,e[3]=i,e[4]=s,e[5]=l,e[6]=p*r+f*i+c,e[7]=p*o+f*s+u,e[8]=p*a+f*l+d,e},rotate:function(e,t,n){var r=t[0],o=t[1],a=t[2],i=t[3],s=t[4],l=t[5],c=t[6],u=t[7],d=t[8],p=Math.sin(n),f=Math.cos(n);return e[0]=f*r+p*i,e[1]=f*o+p*s,e[2]=f*a+p*l,e[3]=f*i-p*r,e[4]=f*s-p*o,e[5]=f*l-p*a,e[6]=c,e[7]=u,e[8]=d,e},scale:function(e,t,n){var r=n[0],o=n[1];return e[0]=r*t[0],e[1]=r*t[1],e[2]=r*t[2],e[3]=o*t[3],e[4]=o*t[4],e[5]=o*t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},fromTranslation:function(e,t){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=t[0],e[7]=t[1],e[8]=1,e},fromRotation:function(e,t){var n=Math.sin(t),r=Math.cos(t);return e[0]=r,e[1]=n,e[2]=0,e[3]=-n,e[4]=r,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e},fromScaling:function(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=0,e[4]=t[1],e[5]=0,e[6]=0,e[7]=0,e[8]=1,e},fromMat2d:function(e,t){return e[0]=t[0],e[1]=t[1],e[2]=0,e[3]=t[2],e[4]=t[3],e[5]=0,e[6]=t[4],e[7]=t[5],e[8]=1,e},fromQuat:function(e,t){var n=t[0],r=t[1],o=t[2],a=t[3],i=n+n,s=r+r,l=o+o,c=n*i,u=r*i,d=r*s,p=o*i,f=o*s,g=o*l,m=a*i,h=a*s,v=a*l;return e[0]=1-d-g,e[3]=u-v,e[6]=p+h,e[1]=u+v,e[4]=1-c-g,e[7]=f-m,e[2]=p-h,e[5]=f+m,e[8]=1-c-d,e},normalFromMat4:function(e,t){var n=t[0],r=t[1],o=t[2],a=t[3],i=t[4],s=t[5],l=t[6],c=t[7],u=t[8],d=t[9],p=t[10],f=t[11],g=t[12],m=t[13],h=t[14],v=t[15],T=n*s-r*i,x=n*l-o*i,y=n*c-a*i,b=r*l-o*s,A=r*c-a*s,C=o*c-a*l,S=u*m-d*g,P=u*h-p*g,w=u*v-f*g,I=d*h-p*m,O=d*v-f*m,R=p*v-f*h,M=T*R-x*O+y*I+b*w-A*P+C*S;return M?(M=1/M,e[0]=(s*R-l*O+c*I)*M,e[1]=(l*w-i*R-c*P)*M,e[2]=(i*O-s*w+c*S)*M,e[3]=(o*O-r*R-a*I)*M,e[4]=(n*R-o*w+a*P)*M,e[5]=(r*w-n*O-a*S)*M,e[6]=(m*C-h*A+v*b)*M,e[7]=(h*y-g*C-v*x)*M,e[8]=(g*A-m*y+v*T)*M,e):null},projection:function(e,t,n){return e[0]=2/t,e[1]=0,e[2]=0,e[3]=0,e[4]=-2/n,e[5]=0,e[6]=-1,e[7]=1,e[8]=1,e},str:function(e){return&quot;mat3(&quot;+e[0]+&quot;, &quot;+e[1]+&quot;, &quot;+e[2]+&quot;, &quot;+e[3]+&quot;, &quot;+e[4]+&quot;, &quot;+e[5]+&quot;, &quot;+e[6]+&quot;, &quot;+e[7]+&quot;, &quot;+e[8]+&quot;)&quot;},frob:function(e){return Math.hypot(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},add:function(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e[3]=t[3]+n[3],e[4]=t[4]+n[4],e[5]=t[5]+n[5],e[6]=t[6]+n[6],e[7]=t[7]+n[7],e[8]=t[8]+n[8],e},subtract:f,multiplyScalar:function(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e[4]=t[4]*n,e[5]=t[5]*n,e[6]=t[6]*n,e[7]=t[7]*n,e[8]=t[8]*n,e},multiplyScalarAndAdd:function(e,t,n,r){return e[0]=t[0]+n[0]*r,e[1]=t[1]+n[1]*r,e[2]=t[2]+n[2]*r,e[3]=t[3]+n[3]*r,e[4]=t[4]+n[4]*r,e[5]=t[5]+n[5]*r,e[6]=t[6]+n[6]*r,e[7]=t[7]+n[7]*r,e[8]=t[8]+n[8]*r,e},exactEquals:function(e,t){return e[0]===t[0]&amp;&amp;e[1]===t[1]&amp;&amp;e[2]===t[2]&amp;&amp;e[3]===t[3]&amp;&amp;e[4]===t[4]&amp;&amp;e[5]===t[5]&amp;&amp;e[6]===t[6]&amp;&amp;e[7]===t[7]&amp;&amp;e[8]===t[8]},equals:function(e,t){var r=e[0],o=e[1],a=e[2],i=e[3],s=e[4],l=e[5],c=e[6],u=e[7],d=e[8],p=t[0],f=t[1],g=t[2],m=t[3],h=t[4],v=t[5],T=t[6],x=t[7],y=t[8];return Math.abs(r-p)&lt;=n*Math.max(1,Math.abs(r),Math.abs(p))&amp;&amp;Math.abs(o-f)&lt;=n*Math.max(1,Math.abs(o),Math.abs(f))&amp;&amp;Math.abs(a-g)&lt;=n*Math.max(1,Math.abs(a),Math.abs(g))&amp;&amp;Math.abs(i-m)&lt;=n*Math.max(1,Math.abs(i),Math.abs(m))&amp;&amp;Math.abs(s-h)&lt;=n*Math.max(1,Math.abs(s),Math.abs(h))&amp;&amp;Math.abs(l-v)&lt;=n*Math.max(1,Math.abs(l),Math.abs(v))&amp;&amp;Math.abs(c-T)&lt;=n*Math.max(1,Math.abs(c),Math.abs(T))&amp;&amp;Math.abs(u-x)&lt;=n*Math.max(1,Math.abs(u),Math.abs(x))&amp;&amp;Math.abs(d-y)&lt;=n*Math.max(1,Math.abs(d),Math.abs(y))},mul:g,sub:m});function v(){var e=new r(16);return r!=Float32Array&amp;&amp;(e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0),e[0]=1,e[5]=1,e[10]=1,e[15]=1,e}function T(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function x(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function y(e,t){if(e===t){var n=t[1],r=t[2],o=t[3],a=t[6],i=t[7],s=t[11];e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=n,e[6]=t[9],e[7]=t[13],e[8]=r,e[9]=a,e[11]=t[14],e[12]=o,e[13]=i,e[14]=s}else e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15];return e}function b(e,t){var n=t[0],r=t[1],o=t[2],a=t[3],i=t[4],s=t[5],l=t[6],c=t[7],u=t[8],d=t[9],p=t[10],f=t[11],g=t[12],m=t[13],h=t[14],v=t[15],T=n*s-r*i,x=n*l-o*i,y=n*c-a*i,b=r*l-o*s,A=r*c-a*s,C=o*c-a*l,S=u*m-d*g,P=u*h-p*g,w=u*v-f*g,I=d*h-p*m,O=d*v-f*m,R=p*v-f*h,M=T*R-x*O+y*I+b*w-A*P+C*S;return M?(M=1/M,e[0]=(s*R-l*O+c*I)*M,e[1]=(o*O-r*R-a*I)*M,e[2]=(m*C-h*A+v*b)*M,e[3]=(p*A-d*C-f*b)*M,e[4]=(l*w-i*R-c*P)*M,e[5]=(n*R-o*w+a*P)*M,e[6]=(h*y-g*C-v*x)*M,e[7]=(u*C-p*y+f*x)*M,e[8]=(i*O-s*w+c*S)*M,e[9]=(r*w-n*O-a*S)*M,e[10]=(g*A-m*y+v*T)*M,e[11]=(d*y-u*A-f*T)*M,e[12]=(s*P-i*I-l*S)*M,e[13]=(n*I-r*P+o*S)*M,e[14]=(m*x-g*b-h*T)*M,e[15]=(u*b-d*x+p*T)*M,e):null}function A(e,t,n){var r=t[0],o=t[1],a=t[2],i=t[3],s=t[4],l=t[5],c=t[6],u=t[7],d=t[8],p=t[9],f=t[10],g=t[11],m=t[12],h=t[13],v=t[14],T=t[15],x=n[0],y=n[1],b=n[2],A=n[3];return e[0]=x*r+y*s+b*d+A*m,e[1]=x*o+y*l+b*p+A*h,e[2]=x*a+y*c+b*f+A*v,e[3]=x*i+y*u+b*g+A*T,x=n[4],y=n[5],b=n[6],A=n[7],e[4]=x*r+y*s+b*d+A*m,e[5]=x*o+y*l+b*p+A*h,e[6]=x*a+y*c+b*f+A*v,e[7]=x*i+y*u+b*g+A*T,x=n[8],y=n[9],b=n[10],A=n[11],e[8]=x*r+y*s+b*d+A*m,e[9]=x*o+y*l+b*p+A*h,e[10]=x*a+y*c+b*f+A*v,e[11]=x*i+y*u+b*g+A*T,x=n[12],y=n[13],b=n[14],A=n[15],e[12]=x*r+y*s+b*d+A*m,e[13]=x*o+y*l+b*p+A*h,e[14]=x*a+y*c+b*f+A*v,e[15]=x*i+y*u+b*g+A*T,e}function C(e,t,n){var r,o,a,i,s,l,c,u,d,p,f,g,m=n[0],h=n[1],v=n[2];return t===e?(e[12]=t[0]*m+t[4]*h+t[8]*v+t[12],e[13]=t[1]*m+t[5]*h+t[9]*v+t[13],e[14]=t[2]*m+t[6]*h+t[10]*v+t[14],e[15]=t[3]*m+t[7]*h+t[11]*v+t[15]):(r=t[0],o=t[1],a=t[2],i=t[3],s=t[4],l=t[5],c=t[6],u=t[7],d=t[8],p=t[9],f=t[10],g=t[11],e[0]=r,e[1]=o,e[2]=a,e[3]=i,e[4]=s,e[5]=l,e[6]=c,e[7]=u,e[8]=d,e[9]=p,e[10]=f,e[11]=g,e[12]=r*m+s*h+d*v+t[12],e[13]=o*m+l*h+p*v+t[13],e[14]=a*m+c*h+f*v+t[14],e[15]=i*m+u*h+g*v+t[15]),e}function S(e,t,n){var r=n[0],o=n[1],a=n[2];return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e[3]=t[3]*r,e[4]=t[4]*o,e[5]=t[5]*o,e[6]=t[6]*o,e[7]=t[7]*o,e[8]=t[8]*a,e[9]=t[9]*a,e[10]=t[10]*a,e[11]=t[11]*a,e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function P(e,t,r,o){var a,i,s,l,c,u,d,p,f,g,m,h,v,T,x,y,b,A,C,S,P,w,I,O,R=o[0],M=o[1],D=o[2],E=Math.hypot(R,M,D);return E&lt;n?null:(R*=E=1/E,M*=E,D*=E,a=Math.sin(r),s=1-(i=Math.cos(r)),l=t[0],c=t[1],u=t[2],d=t[3],p=t[4],f=t[5],g=t[6],m=t[7],h=t[8],v=t[9],T=t[10],x=t[11],y=R*R*s+i,b=M*R*s+D*a,A=D*R*s-M*a,C=R*M*s-D*a,S=M*M*s+i,P=D*M*s+R*a,w=R*D*s+M*a,I=M*D*s-R*a,O=D*D*s+i,e[0]=l*y+p*b+h*A,e[1]=c*y+f*b+v*A,e[2]=u*y+g*b+T*A,e[3]=d*y+m*b+x*A,e[4]=l*C+p*S+h*P,e[5]=c*C+f*S+v*P,e[6]=u*C+g*S+T*P,e[7]=d*C+m*S+x*P,e[8]=l*w+p*I+h*O,e[9]=c*w+f*I+v*O,e[10]=u*w+g*I+T*O,e[11]=d*w+m*I+x*O,t!==e&amp;&amp;(e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e)}function w(e,t,n){var r=Math.sin(n),o=Math.cos(n),a=t[4],i=t[5],s=t[6],l=t[7],c=t[8],u=t[9],d=t[10],p=t[11];return t!==e&amp;&amp;(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[4]=a*o+c*r,e[5]=i*o+u*r,e[6]=s*o+d*r,e[7]=l*o+p*r,e[8]=c*o-a*r,e[9]=u*o-i*r,e[10]=d*o-s*r,e[11]=p*o-l*r,e}function I(e,t,n){var r=Math.sin(n),o=Math.cos(n),a=t[0],i=t[1],s=t[2],l=t[3],c=t[8],u=t[9],d=t[10],p=t[11];return t!==e&amp;&amp;(e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=a*o-c*r,e[1]=i*o-u*r,e[2]=s*o-d*r,e[3]=l*o-p*r,e[8]=a*r+c*o,e[9]=i*r+u*o,e[10]=s*r+d*o,e[11]=l*r+p*o,e}function O(e,t,n){var r=Math.sin(n),o=Math.cos(n),a=t[0],i=t[1],s=t[2],l=t[3],c=t[4],u=t[5],d=t[6],p=t[7];return t!==e&amp;&amp;(e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=a*o+c*r,e[1]=i*o+u*r,e[2]=s*o+d*r,e[3]=l*o+p*r,e[4]=c*o-a*r,e[5]=u*o-i*r,e[6]=d*o-s*r,e[7]=p*o-l*r,e}function R(e,t){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=t[0],e[13]=t[1],e[14]=t[2],e[15]=1,e}function M(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=t[1],e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=t[2],e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function D(e,t,r){var o,a,i,s=r[0],l=r[1],c=r[2],u=Math.hypot(s,l,c);return u&lt;n?null:(s*=u=1/u,l*=u,c*=u,o=Math.sin(t),i=1-(a=Math.cos(t)),e[0]=s*s*i+a,e[1]=l*s*i+c*o,e[2]=c*s*i-l*o,e[3]=0,e[4]=s*l*i-c*o,e[5]=l*l*i+a,e[6]=c*l*i+s*o,e[7]=0,e[8]=s*c*i+l*o,e[9]=l*c*i-s*o,e[10]=c*c*i+a,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e)}function E(e,t,n){var r=t[0],o=t[1],a=t[2],i=t[3],s=r+r,l=o+o,c=a+a,u=r*s,d=r*l,p=r*c,f=o*l,g=o*c,m=a*c,h=i*s,v=i*l,T=i*c;return e[0]=1-(f+m),e[1]=d+T,e[2]=p-v,e[3]=0,e[4]=d-T,e[5]=1-(u+m),e[6]=g+h,e[7]=0,e[8]=p+v,e[9]=g-h,e[10]=1-(u+f),e[11]=0,e[12]=n[0],e[13]=n[1],e[14]=n[2],e[15]=1,e}function V(e,t){var n=t[0],r=t[1],o=t[2],a=t[4],i=t[5],s=t[6],l=t[8],c=t[9],u=t[10];return e[0]=Math.hypot(n,r,o),e[1]=Math.hypot(a,i,s),e[2]=Math.hypot(l,c,u),e}function L(e,t){var n=new r(3);V(n,t);var o=1/n[0],a=1/n[1],i=1/n[2],s=t[0]*o,l=t[1]*a,c=t[2]*i,u=t[4]*o,d=t[5]*a,p=t[6]*i,f=t[8]*o,g=t[9]*a,m=t[10]*i,h=s+d+m,v=0;return h&gt;0?(v=2*Math.sqrt(h+1),e[3]=.25*v,e[0]=(p-g)/v,e[1]=(f-c)/v,e[2]=(l-u)/v):s&gt;d&amp;&amp;s&gt;m?(v=2*Math.sqrt(1+s-d-m),e[3]=(p-g)/v,e[0]=.25*v,e[1]=(l+u)/v,e[2]=(f+c)/v):d&gt;m?(v=2*Math.sqrt(1+d-s-m),e[3]=(f-c)/v,e[0]=(l+u)/v,e[1]=.25*v,e[2]=(p+g)/v):(v=2*Math.sqrt(1+m-s-d),e[3]=(l-u)/v,e[0]=(f+c)/v,e[1]=(p+g)/v,e[2]=.25*v),e}function B(e,t,n,r){var o=t[0],a=t[1],i=t[2],s=t[3],l=o+o,c=a+a,u=i+i,d=o*l,p=o*c,f=o*u,g=a*c,m=a*u,h=i*u,v=s*l,T=s*c,x=s*u,y=r[0],b=r[1],A=r[2];return e[0]=(1-(g+h))*y,e[1]=(p+x)*y,e[2]=(f-T)*y,e[3]=0,e[4]=(p-x)*b,e[5]=(1-(d+h))*b,e[6]=(m+v)*b,e[7]=0,e[8]=(f+T)*A,e[9]=(m-v)*A,e[10]=(1-(d+g))*A,e[11]=0,e[12]=n[0],e[13]=n[1],e[14]=n[2],e[15]=1,e}function F(e,t){var n=t[0],r=t[1],o=t[2],a=t[3],i=n+n,s=r+r,l=o+o,c=n*i,u=r*i,d=r*s,p=o*i,f=o*s,g=o*l,m=a*i,h=a*s,v=a*l;return e[0]=1-d-g,e[1]=u+v,e[2]=p-h,e[3]=0,e[4]=u-v,e[5]=1-c-g,e[6]=f+m,e[7]=0,e[8]=p+h,e[9]=f-m,e[10]=1-c-d,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function N(e,t,n,r,o){var a,i=1/Math.tan(t/2);return e[0]=i/n,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=i,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,null!=o&amp;&amp;o!==1/0?(a=1/(r-o),e[10]=(o+r)*a,e[14]=2*o*r*a):(e[10]=-1,e[14]=-2*r),e}var k=N;function G(e,t,n,r,o,a,i){var s=1/(t-n),l=1/(r-o),c=1/(a-i);return e[0]=-2*s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*l,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*c,e[11]=0,e[12]=(t+n)*s,e[13]=(o+r)*l,e[14]=(i+a)*c,e[15]=1,e}var U=G;function _(e,t,r,o){var a,i,s,l,c,u,d,p,f,g,m=t[0],h=t[1],v=t[2],T=o[0],y=o[1],b=o[2],A=r[0],C=r[1],S=r[2];return Math.abs(m-A)&lt;n&amp;&amp;Math.abs(h-C)&lt;n&amp;&amp;Math.abs(v-S)&lt;n?x(e):(d=m-A,p=h-C,f=v-S,a=y*(f*=g=1/Math.hypot(d,p,f))-b*(p*=g),i=b*(d*=g)-T*f,s=T*p-y*d,(g=Math.hypot(a,i,s))?(a*=g=1/g,i*=g,s*=g):(a=0,i=0,s=0),l=p*s-f*i,c=f*a-d*s,u=d*i-p*a,(g=Math.hypot(l,c,u))?(l*=g=1/g,c*=g,u*=g):(l=0,c=0,u=0),e[0]=a,e[1]=l,e[2]=d,e[3]=0,e[4]=i,e[5]=c,e[6]=p,e[7]=0,e[8]=s,e[9]=u,e[10]=f,e[11]=0,e[12]=-(a*m+i*h+s*v),e[13]=-(l*m+c*h+u*v),e[14]=-(d*m+p*h+f*v),e[15]=1,e)}function K(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e[3]=t[3]-n[3],e[4]=t[4]-n[4],e[5]=t[5]-n[5],e[6]=t[6]-n[6],e[7]=t[7]-n[7],e[8]=t[8]-n[8],e[9]=t[9]-n[9],e[10]=t[10]-n[10],e[11]=t[11]-n[11],e[12]=t[12]-n[12],e[13]=t[13]-n[13],e[14]=t[14]-n[14],e[15]=t[15]-n[15],e}var z=A,W=K,H=Object.freeze({__proto__:null,create:v,clone:function(e){var t=new r(16);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t},copy:T,fromValues:function(e,t,n,o,a,i,s,l,c,u,d,p,f,g,m,h){var v=new r(16);return v[0]=e,v[1]=t,v[2]=n,v[3]=o,v[4]=a,v[5]=i,v[6]=s,v[7]=l,v[8]=c,v[9]=u,v[10]=d,v[11]=p,v[12]=f,v[13]=g,v[14]=m,v[15]=h,v},set:function(e,t,n,r,o,a,i,s,l,c,u,d,p,f,g,m,h){return e[0]=t,e[1]=n,e[2]=r,e[3]=o,e[4]=a,e[5]=i,e[6]=s,e[7]=l,e[8]=c,e[9]=u,e[10]=d,e[11]=p,e[12]=f,e[13]=g,e[14]=m,e[15]=h,e},identity:x,transpose:y,invert:b,adjoint:function(e,t){var n=t[0],r=t[1],o=t[2],a=t[3],i=t[4],s=t[5],l=t[6],c=t[7],u=t[8],d=t[9],p=t[10],f=t[11],g=t[12],m=t[13],h=t[14],v=t[15];return e[0]=s*(p*v-f*h)-d*(l*v-c*h)+m*(l*f-c*p),e[1]=-(r*(p*v-f*h)-d*(o*v-a*h)+m*(o*f-a*p)),e[2]=r*(l*v-c*h)-s*(o*v-a*h)+m*(o*c-a*l),e[3]=-(r*(l*f-c*p)-s*(o*f-a*p)+d*(o*c-a*l)),e[4]=-(i*(p*v-f*h)-u*(l*v-c*h)+g*(l*f-c*p)),e[5]=n*(p*v-f*h)-u*(o*v-a*h)+g*(o*f-a*p),e[6]=-(n*(l*v-c*h)-i*(o*v-a*h)+g*(o*c-a*l)),e[7]=n*(l*f-c*p)-i*(o*f-a*p)+u*(o*c-a*l),e[8]=i*(d*v-f*m)-u*(s*v-c*m)+g*(s*f-c*d),e[9]=-(n*(d*v-f*m)-u*(r*v-a*m)+g*(r*f-a*d)),e[10]=n*(s*v-c*m)-i*(r*v-a*m)+g*(r*c-a*s),e[11]=-(n*(s*f-c*d)-i*(r*f-a*d)+u*(r*c-a*s)),e[12]=-(i*(d*h-p*m)-u*(s*h-l*m)+g*(s*p-l*d)),e[13]=n*(d*h-p*m)-u*(r*h-o*m)+g*(r*p-o*d),e[14]=-(n*(s*h-l*m)-i*(r*h-o*m)+g*(r*l-o*s)),e[15]=n*(s*p-l*d)-i*(r*p-o*d)+u*(r*l-o*s),e},determinant:function(e){var t=e[0],n=e[1],r=e[2],o=e[3],a=e[4],i=e[5],s=e[6],l=e[7],c=e[8],u=e[9],d=e[10],p=e[11],f=e[12],g=e[13],m=e[14],h=e[15];return(t*i-n*a)*(d*h-p*m)-(t*s-r*a)*(u*h-p*g)+(t*l-o*a)*(u*m-d*g)+(n*s-r*i)*(c*h-p*f)-(n*l-o*i)*(c*m-d*f)+(r*l-o*s)*(c*g-u*f)},multiply:A,translate:C,scale:S,rotate:P,rotateX:w,rotateY:I,rotateZ:O,fromTranslation:R,fromScaling:M,fromRotation:D,fromXRotation:function(e,t){var n=Math.sin(t),r=Math.cos(t);return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=r,e[6]=n,e[7]=0,e[8]=0,e[9]=-n,e[10]=r,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e},fromYRotation:function(e,t){var n=Math.sin(t),r=Math.cos(t);return e[0]=r,e[1]=0,e[2]=-n,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=n,e[9]=0,e[10]=r,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e},fromZRotation:function(e,t){var n=Math.sin(t),r=Math.cos(t);return e[0]=r,e[1]=n,e[2]=0,e[3]=0,e[4]=-n,e[5]=r,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e},fromRotationTranslation:E,fromQuat2:function(e,t){var n=new r(3),o=-t[0],a=-t[1],i=-t[2],s=t[3],l=t[4],c=t[5],u=t[6],d=t[7],p=o*o+a*a+i*i+s*s;return p&gt;0?(n[0]=2*(l*s+d*o+c*i-u*a)/p,n[1]=2*(c*s+d*a+u*o-l*i)/p,n[2]=2*(u*s+d*i+l*a-c*o)/p):(n[0]=2*(l*s+d*o+c*i-u*a),n[1]=2*(c*s+d*a+u*o-l*i),n[2]=2*(u*s+d*i+l*a-c*o)),E(e,t,n),e},getTranslation:function(e,t){return e[0]=t[12],e[1]=t[13],e[2]=t[14],e},getScaling:V,getRotation:L,fromRotationTranslationScale:B,fromRotationTranslationScaleOrigin:function(e,t,n,r,o){var a=t[0],i=t[1],s=t[2],l=t[3],c=a+a,u=i+i,d=s+s,p=a*c,f=a*u,g=a*d,m=i*u,h=i*d,v=s*d,T=l*c,x=l*u,y=l*d,b=r[0],A=r[1],C=r[2],S=o[0],P=o[1],w=o[2],I=(1-(m+v))*b,O=(f+y)*b,R=(g-x)*b,M=(f-y)*A,D=(1-(p+v))*A,E=(h+T)*A,V=(g+x)*C,L=(h-T)*C,B=(1-(p+m))*C;return e[0]=I,e[1]=O,e[2]=R,e[3]=0,e[4]=M,e[5]=D,e[6]=E,e[7]=0,e[8]=V,e[9]=L,e[10]=B,e[11]=0,e[12]=n[0]+S-(I*S+M*P+V*w),e[13]=n[1]+P-(O*S+D*P+L*w),e[14]=n[2]+w-(R*S+E*P+B*w),e[15]=1,e},fromQuat:F,frustum:function(e,t,n,r,o,a,i){var s=1/(n-t),l=1/(o-r),c=1/(a-i);return e[0]=2*a*s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=2*a*l,e[6]=0,e[7]=0,e[8]=(n+t)*s,e[9]=(o+r)*l,e[10]=(i+a)*c,e[11]=-1,e[12]=0,e[13]=0,e[14]=i*a*2*c,e[15]=0,e},perspectiveNO:N,perspective:k,perspectiveZO:function(e,t,n,r,o){var a,i=1/Math.tan(t/2);return e[0]=i/n,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=i,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,null!=o&amp;&amp;o!==1/0?(a=1/(r-o),e[10]=o*a,e[14]=o*r*a):(e[10]=-1,e[14]=-r),e},perspectiveFromFieldOfView:function(e,t,n,r){var o=Math.tan(t.upDegrees*Math.PI/180),a=Math.tan(t.downDegrees*Math.PI/180),i=Math.tan(t.leftDegrees*Math.PI/180),s=Math.tan(t.rightDegrees*Math.PI/180),l=2/(i+s),c=2/(o+a);return e[0]=l,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=c,e[6]=0,e[7]=0,e[8]=-(i-s)*l*.5,e[9]=(o-a)*c*.5,e[10]=r/(n-r),e[11]=-1,e[12]=0,e[13]=0,e[14]=r*n/(n-r),e[15]=0,e},orthoNO:G,ortho:U,orthoZO:function(e,t,n,r,o,a,i){var s=1/(t-n),l=1/(r-o),c=1/(a-i);return e[0]=-2*s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*l,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=c,e[11]=0,e[12]=(t+n)*s,e[13]=(o+r)*l,e[14]=a*c,e[15]=1,e},lookAt:_,targetTo:function(e,t,n,r){var o=t[0],a=t[1],i=t[2],s=r[0],l=r[1],c=r[2],u=o-n[0],d=a-n[1],p=i-n[2],f=u*u+d*d+p*p;f&gt;0&amp;&amp;(u*=f=1/Math.sqrt(f),d*=f,p*=f);var g=l*p-c*d,m=c*u-s*p,h=s*d-l*u;return(f=g*g+m*m+h*h)&gt;0&amp;&amp;(g*=f=1/Math.sqrt(f),m*=f,h*=f),e[0]=g,e[1]=m,e[2]=h,e[3]=0,e[4]=d*h-p*m,e[5]=p*g-u*h,e[6]=u*m-d*g,e[7]=0,e[8]=u,e[9]=d,e[10]=p,e[11]=0,e[12]=o,e[13]=a,e[14]=i,e[15]=1,e},str:function(e){return&quot;mat4(&quot;+e[0]+&quot;, &quot;+e[1]+&quot;, &quot;+e[2]+&quot;, &quot;+e[3]+&quot;, &quot;+e[4]+&quot;, &quot;+e[5]+&quot;, &quot;+e[6]+&quot;, &quot;+e[7]+&quot;, &quot;+e[8]+&quot;, &quot;+e[9]+&quot;, &quot;+e[10]+&quot;, &quot;+e[11]+&quot;, &quot;+e[12]+&quot;, &quot;+e[13]+&quot;, &quot;+e[14]+&quot;, &quot;+e[15]+&quot;)&quot;},frob:function(e){return Math.hypot(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])},add:function(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e[3]=t[3]+n[3],e[4]=t[4]+n[4],e[5]=t[5]+n[5],e[6]=t[6]+n[6],e[7]=t[7]+n[7],e[8]=t[8]+n[8],e[9]=t[9]+n[9],e[10]=t[10]+n[10],e[11]=t[11]+n[11],e[12]=t[12]+n[12],e[13]=t[13]+n[13],e[14]=t[14]+n[14],e[15]=t[15]+n[15],e},subtract:K,multiplyScalar:function(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e[4]=t[4]*n,e[5]=t[5]*n,e[6]=t[6]*n,e[7]=t[7]*n,e[8]=t[8]*n,e[9]=t[9]*n,e[10]=t[10]*n,e[11]=t[11]*n,e[12]=t[12]*n,e[13]=t[13]*n,e[14]=t[14]*n,e[15]=t[15]*n,e},multiplyScalarAndAdd:function(e,t,n,r){return e[0]=t[0]+n[0]*r,e[1]=t[1]+n[1]*r,e[2]=t[2]+n[2]*r,e[3]=t[3]+n[3]*r,e[4]=t[4]+n[4]*r,e[5]=t[5]+n[5]*r,e[6]=t[6]+n[6]*r,e[7]=t[7]+n[7]*r,e[8]=t[8]+n[8]*r,e[9]=t[9]+n[9]*r,e[10]=t[10]+n[10]*r,e[11]=t[11]+n[11]*r,e[12]=t[12]+n[12]*r,e[13]=t[13]+n[13]*r,e[14]=t[14]+n[14]*r,e[15]=t[15]+n[15]*r,e},exactEquals:function(e,t){return e[0]===t[0]&amp;&amp;e[1]===t[1]&amp;&amp;e[2]===t[2]&amp;&amp;e[3]===t[3]&amp;&amp;e[4]===t[4]&amp;&amp;e[5]===t[5]&amp;&amp;e[6]===t[6]&amp;&amp;e[7]===t[7]&amp;&amp;e[8]===t[8]&amp;&amp;e[9]===t[9]&amp;&amp;e[10]===t[10]&amp;&amp;e[11]===t[11]&amp;&amp;e[12]===t[12]&amp;&amp;e[13]===t[13]&amp;&amp;e[14]===t[14]&amp;&amp;e[15]===t[15]},equals:function(e,t){var r=e[0],o=e[1],a=e[2],i=e[3],s=e[4],l=e[5],c=e[6],u=e[7],d=e[8],p=e[9],f=e[10],g=e[11],m=e[12],h=e[13],v=e[14],T=e[15],x=t[0],y=t[1],b=t[2],A=t[3],C=t[4],S=t[5],P=t[6],w=t[7],I=t[8],O=t[9],R=t[10],M=t[11],D=t[12],E=t[13],V=t[14],L=t[15];return Math.abs(r-x)&lt;=n*Math.max(1,Math.abs(r),Math.abs(x))&amp;&amp;Math.abs(o-y)&lt;=n*Math.max(1,Math.abs(o),Math.abs(y))&amp;&amp;Math.abs(a-b)&lt;=n*Math.max(1,Math.abs(a),Math.abs(b))&amp;&amp;Math.abs(i-A)&lt;=n*Math.max(1,Math.abs(i),Math.abs(A))&amp;&amp;Math.abs(s-C)&lt;=n*Math.max(1,Math.abs(s),Math.abs(C))&amp;&amp;Math.abs(l-S)&lt;=n*Math.max(1,Math.abs(l),Math.abs(S))&amp;&amp;Math.abs(c-P)&lt;=n*Math.max(1,Math.abs(c),Math.abs(P))&amp;&amp;Math.abs(u-w)&lt;=n*Math.max(1,Math.abs(u),Math.abs(w))&amp;&amp;Math.abs(d-I)&lt;=n*Math.max(1,Math.abs(d),Math.abs(I))&amp;&amp;Math.abs(p-O)&lt;=n*Math.max(1,Math.abs(p),Math.abs(O))&amp;&amp;Math.abs(f-R)&lt;=n*Math.max(1,Math.abs(f),Math.abs(R))&amp;&amp;Math.abs(g-M)&lt;=n*Math.max(1,Math.abs(g),Math.abs(M))&amp;&amp;Math.abs(m-D)&lt;=n*Math.max(1,Math.abs(m),Math.abs(D))&amp;&amp;Math.abs(h-E)&lt;=n*Math.max(1,Math.abs(h),Math.abs(E))&amp;&amp;Math.abs(v-V)&lt;=n*Math.max(1,Math.abs(v),Math.abs(V))&amp;&amp;Math.abs(T-L)&lt;=n*Math.max(1,Math.abs(T),Math.abs(L))},mul:z,sub:W});function j(){var e=new r(3);return r!=Float32Array&amp;&amp;(e[0]=0,e[1]=0,e[2]=0),e}function X(e){var t=e[0],n=e[1],r=e[2];return Math.hypot(t,n,r)}function q(e,t,n){var o=new r(3);return o[0]=e,o[1]=t,o[2]=n,o}function Y(e,t,n,r){return e[0]=t,e[1]=n,e[2]=r,e}function J(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e}function Z(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e}function Q(e,t,n){return e[0]=t[0]*n[0],e[1]=t[1]*n[1],e[2]=t[2]*n[2],e}function $(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e}function ee(e,t){return e[0]=1/t[0],e[1]=1/t[1],e[2]=1/t[2],e}function te(e,t){var n=t[0],r=t[1],o=t[2],a=n*n+r*r+o*o;return a&gt;0&amp;&amp;(a=1/Math.sqrt(a)),e[0]=t[0]*a,e[1]=t[1]*a,e[2]=t[2]*a,e}function ne(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function re(e,t,n){var r=t[0],o=t[1],a=t[2],i=n[0],s=n[1],l=n[2];return e[0]=o*l-a*s,e[1]=a*i-r*l,e[2]=r*s-o*i,e}function oe(e,t,n){var r=t[0],o=t[1],a=t[2],i=n[3]*r+n[7]*o+n[11]*a+n[15];return i=i||1,e[0]=(n[0]*r+n[4]*o+n[8]*a+n[12])/i,e[1]=(n[1]*r+n[5]*o+n[9]*a+n[13])/i,e[2]=(n[2]*r+n[6]*o+n[10]*a+n[14])/i,e}function ae(e,t,n){var r=t[0],o=t[1],a=t[2];return e[0]=r*n[0]+o*n[3]+a*n[6],e[1]=r*n[1]+o*n[4]+a*n[7],e[2]=r*n[2]+o*n[5]+a*n[8],e}function ie(e,t){return e[0]===t[0]&amp;&amp;e[1]===t[1]&amp;&amp;e[2]===t[2]}function se(e,t){var r=e[0],o=e[1],a=e[2],i=t[0],s=t[1],l=t[2];return Math.abs(r-i)&lt;=n*Math.max(1,Math.abs(r),Math.abs(i))&amp;&amp;Math.abs(o-s)&lt;=n*Math.max(1,Math.abs(o),Math.abs(s))&amp;&amp;Math.abs(a-l)&lt;=n*Math.max(1,Math.abs(a),Math.abs(l))}var le=Z,ce=Q,ue=function(e,t){var n=t[0]-e[0],r=t[1]-e[1],o=t[2]-e[2];return Math.hypot(n,r,o)};function de(e,t,n){var r=t[0],o=t[1],a=t[2],i=t[3];return e[0]=n[0]*r+n[4]*o+n[8]*a+n[12]*i,e[1]=n[1]*r+n[5]*o+n[9]*a+n[13]*i,e[2]=n[2]*r+n[6]*o+n[10]*a+n[14]*i,e[3]=n[3]*r+n[7]*o+n[11]*a+n[15]*i,e}function pe(){var e=new r(4);return r!=Float32Array&amp;&amp;(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}function fe(e,t,n){n*=.5;var r=Math.sin(n);return e[0]=r*t[0],e[1]=r*t[1],e[2]=r*t[2],e[3]=Math.cos(n),e}function ge(e,t,n){var r=t[0],o=t[1],a=t[2],i=t[3],s=n[0],l=n[1],c=n[2],u=n[3];return e[0]=r*u+i*s+o*c-a*l,e[1]=o*u+i*l+a*s-r*c,e[2]=a*u+i*c+r*l-o*s,e[3]=i*u-r*s-o*l-a*c,e}function me(e,t,r,o){var a,i,s,l,c,u=t[0],d=t[1],p=t[2],f=t[3],g=r[0],m=r[1],h=r[2],v=r[3];return(i=u*g+d*m+p*h+f*v)&lt;0&amp;&amp;(i=-i,g=-g,m=-m,h=-h,v=-v),1-i&gt;n?(a=Math.acos(i),s=Math.sin(a),l=Math.sin((1-o)*a)/s,c=Math.sin(o*a)/s):(l=1-o,c=o),e[0]=l*u+c*g,e[1]=l*d+c*m,e[2]=l*p+c*h,e[3]=l*f+c*v,e}j(),function(){var e,t=(e=new r(4),r!=Float32Array&amp;&amp;(e[0]=0,e[1]=0,e[2]=0,e[3]=0),e)}();var he=function(e,t,n,o){var a=new r(4);return a[0]=e,a[1]=t,a[2]=n,a[3]=o,a};j(),q(1,0,0),q(0,1,0),pe(),pe(),i();var ve,Te=&quot;undefined&quot;!=typeof globalThis?globalThis:&quot;undefined&quot;!=typeof window?window:&quot;undefined&quot;!=typeof global?global:&quot;undefined&quot;!=typeof self?self:{},xe=function e(t,n){if(t===n)return!0;if(t&amp;&amp;n&amp;&amp;&quot;object&quot;==typeof t&amp;&amp;&quot;object&quot;==typeof n){if(t.constructor!==n.constructor)return!1;var r,o,a;if(Array.isArray(t)){if((r=t.length)!=n.length)return!1;for(o=r;0!=o--;)if(!e(t[o],n[o]))return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&amp;&amp;t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if((r=(a=Object.keys(t)).length)!==Object.keys(n).length)return!1;for(o=r;0!=o--;)if(!Object.prototype.hasOwnProperty.call(n,a[o]))return!1;for(o=r;0!=o--;){var i=a[o];if(!e(t[i],n[i]))return!1}return!0}return t!=t&amp;&amp;n!=n},ye=Object.prototype.toString,be=function(e){var t=ye.call(e),n=&quot;[object Arguments]&quot;===t;return n||(n=&quot;[object Array]&quot;!==t&amp;&amp;null!==e&amp;&amp;&quot;object&quot;==typeof e&amp;&amp;&quot;number&quot;==typeof e.length&amp;&amp;e.length&gt;=0&amp;&amp;&quot;[object Function]&quot;===ye.call(e.callee)),n};if(!Object.keys){var Ae=Object.prototype.hasOwnProperty,Ce=Object.prototype.toString,Se=be,Pe=Object.prototype.propertyIsEnumerable,we=!Pe.call({toString:null},&quot;toString&quot;),Ie=Pe.call((function(){}),&quot;prototype&quot;),Oe=[&quot;toString&quot;,&quot;toLocaleString&quot;,&quot;valueOf&quot;,&quot;hasOwnProperty&quot;,&quot;isPrototypeOf&quot;,&quot;propertyIsEnumerable&quot;,&quot;constructor&quot;],Re=function(e){var t=e.constructor;return t&amp;&amp;t.prototype===e},Me={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},De=function(){if(&quot;undefined&quot;==typeof window)return!1;for(var e in window)try{if(!Me[&quot;$&quot;+e]&amp;&amp;Ae.call(window,e)&amp;&amp;null!==window[e]&amp;&amp;&quot;object&quot;==typeof window[e])try{Re(window[e])}catch(e){return!0}}catch(e){return!0}return!1}();ve=function(e){var t=null!==e&amp;&amp;&quot;object&quot;==typeof e,n=&quot;[object Function]&quot;===Ce.call(e),r=Se(e),o=t&amp;&amp;&quot;[object String]&quot;===Ce.call(e),a=[];if(!t&amp;&amp;!n&amp;&amp;!r)throw new TypeError(&quot;Object.keys called on a non-object&quot;);var i=Ie&amp;&amp;n;if(o&amp;&amp;e.length&gt;0&amp;&amp;!Ae.call(e,0))for(var s=0;s&lt;e.length;++s)a.push(String(s));if(r&amp;&amp;e.length&gt;0)for(var l=0;l&lt;e.length;++l)a.push(String(l));else for(var c in e)i&amp;&amp;&quot;prototype&quot;===c||!Ae.call(e,c)||a.push(String(c));if(we)for(var u=function(e){if(&quot;undefined&quot;==typeof window||!De)return Re(e);try{return Re(e)}catch(e){return!1}}(e),d=0;d&lt;Oe.length;++d)u&amp;&amp;&quot;constructor&quot;===Oe[d]||!Ae.call(e,Oe[d])||a.push(Oe[d]);return a}}var Ee=ve,Ve=Array.prototype.slice,Le=be,Be=Object.keys,Fe=Be?function(e){return Be(e)}:Ee,Ne=Object.keys;Fe.shim=function(){if(Object.keys){var e=function(){var e=Object.keys(arguments);return e&amp;&amp;e.length===arguments.length}(1,2);e||(Object.keys=function(e){return Le(e)?Ne(Ve.call(e)):Ne(e)})}else Object.keys=Fe;return Object.keys||Fe};var ke=Fe,Ge=&quot;function&quot;==typeof Symbol&amp;&amp;&quot;symbol&quot;==typeof Symbol(&quot;foo&quot;),Ue=Object.prototype.toString,_e=Array.prototype.concat,Ke=Object.defineProperty,ze=Ke&amp;&amp;function(){var e={};try{for(var t in Ke(e,&quot;x&quot;,{enumerable:!1,value:e}),e)return!1;return e.x===e}catch(e){return!1}}(),We=function(e,t,n,r){var o;(!(t in e)||&quot;function&quot;==typeof(o=r)&amp;&amp;&quot;[object Function]&quot;===Ue.call(o)&amp;&amp;r())&amp;&amp;(ze?Ke(e,t,{configurable:!0,enumerable:!1,value:n,writable:!0}):e[t]=n)},He=function(e,t){var n=arguments.length&gt;2?arguments[2]:{},r=ke(t);Ge&amp;&amp;(r=_e.call(r,Object.getOwnPropertySymbols(t)));for(var o=0;o&lt;r.length;o+=1)We(e,r[o],t[r[o]],n[r[o]])};He.supportsDescriptors=!!ze;var je=He,Xe={exports:{}};&quot;undefined&quot;!=typeof self?Xe.exports=self:&quot;undefined&quot;!=typeof window?Xe.exports=window:Xe.exports=Function(&quot;return this&quot;)();var qe=Xe.exports,Ye=function(){return&quot;object&quot;==typeof Te&amp;&amp;Te&amp;&amp;Te.Math===Math&amp;&amp;Te.Array===Array?Te:qe},Je=je,Ze=Ye,Qe=je,$e=Xe.exports,et=Ye,tt=function(){var e=Ze();if(Je.supportsDescriptors){var t=Object.getOwnPropertyDescriptor(e,&quot;globalThis&quot;);t&amp;&amp;(!t.configurable||!t.enumerable&amp;&amp;t.writable&amp;&amp;globalThis===e)||Object.defineProperty(e,&quot;globalThis&quot;,{configurable:!0,enumerable:!1,value:e,writable:!0})}else&quot;object&quot;==typeof globalThis&amp;&amp;globalThis===e||(e.globalThis=e);return e},nt=et(),rt=function(){return nt};Qe(rt,{getPolyfill:et,implementation:$e,shim:tt});const ot=rt(),at={vtkObject:()=&gt;null};function it(e){if(null==e)return e;if(e.isA)return e;if(!e.vtkClass)return ot.console&amp;&amp;ot.console.error&amp;&amp;ot.console.error(&quot;Invalid VTK object&quot;),null;const t=at[e.vtkClass];if(!t)return ot.console&amp;&amp;ot.console.error&amp;&amp;ot.console.error(`No vtk class found for Object of type ${e.vtkClass}`),null;const n={...e};Object.keys(n).forEach((e=&gt;{n[e]&amp;&amp;&quot;object&quot;==typeof n[e]&amp;&amp;n[e].vtkClass&amp;&amp;(n[e]=it(n[e]))}));const r=t(n);return r&amp;&amp;r.modified&amp;&amp;r.modified(),r}it.register=function(e,t){at[e]=t};class st extends Array{push(){for(let e=0;e&lt;arguments.length;e++)this.includes(arguments[e])||super.push(arguments[e]);return this.length}}let lt=0;const ct=e=&gt;{throw new Error(`Named parameter &#x27;${e}&#x27; is missing`)},ut=Symbol(&quot;void&quot;);const dt={};function pt(){}[&quot;log&quot;,&quot;debug&quot;,&quot;info&quot;,&quot;warn&quot;,&quot;error&quot;,&quot;time&quot;,&quot;timeEnd&quot;,&quot;group&quot;,&quot;groupEnd&quot;].forEach((e=&gt;{dt[e]=pt})),ot.console=console.hasOwnProperty(&quot;log&quot;)?console:dt;const ft={debug:pt,error:ot.console.error||pt,info:ot.console.info||pt,log:ot.console.log||pt,warn:ot.console.warn||pt};function gt(e,t){ft[e]&amp;&amp;(ft[e]=t||pt)}function mt(...e){ft.log(...e)}function ht(...e){ft.info(...e)}function vt(...e){ft.debug(...e)}function Tt(...e){ft.error(...e)}function xt(...e){ft.warn(...e)}const yt={};function bt(e){yt[e]||(ft.error(e),yt[e]=!0)}const At=Object.create(null);At.Float32Array=Float32Array,At.Float64Array=Float64Array,At.Uint8Array=Uint8Array,At.Int8Array=Int8Array,At.Uint16Array=Uint16Array,At.Int16Array=Int16Array,At.Uint32Array=Uint32Array,At.Int32Array=Int32Array,At.Uint8ClampedArray=Uint8ClampedArray;try{At.BigInt64Array=BigInt64Array,At.BigUint64Array=BigUint64Array}catch{}function Ct(e,...t){return new(At[e]||Float64Array)(...t)}function St(e,...t){return(At[e]||Float64Array).from(...t)}function Pt(e){return e.charAt(0).toUpperCase()+e.slice(1)}function wt(e){return Pt(&quot;_&quot;===e[0]?e.slice(1):e)}function It(e){return e.charAt(0).toLowerCase()+e.slice(1)}function Ot(e,t=2,n=1e3){const r=[&quot;TB&quot;,&quot;GB&quot;,&quot;MB&quot;,&quot;KB&quot;];let o=Number(e),a=&quot;B&quot;;for(;o&gt;n;)o/=n,a=r.pop();return`${o.toFixed(t)} ${a}`}function Rt(e,t=&quot; &quot;){const n=[];let r=e;for(;r&gt;1e3;)n.push((&quot;000&quot;+r%1e3).slice(-3)),r=Math.floor(r/1e3);return r&gt;0&amp;&amp;n.push(r),n.reverse(),n.join(t)}function Mt(e){Object.keys(e).forEach((t=&gt;{Array.isArray(e[t])&amp;&amp;(e[t]=[].concat(e[t]))}))}function Dt(e){setTimeout(e,0)}function Et(e,t){const n=performance.now();e.finally((()=&gt;{const e=performance.now()-n;t(e)}))}function Vt(e={},t={}){Mt(t);const n=[];if(Number.isInteger(t.mtime)||(t.mtime=++lt),&quot;classHierarchy&quot;in t){if(!(t.classHierarchy instanceof st)){const e=new st;for(let n=0;n&lt;t.classHierarchy.length;n++)e.push(t.classHierarchy[n]);t.classHierarchy=e}}else t.classHierarchy=new st(&quot;vtkObject&quot;);function r(e){n[e]=null}return e.isDeleted=()=&gt;!!t.deleted,e.modified=r=&gt;{t.deleted?Tt(&quot;instance deleted - cannot call any method&quot;):r&amp;&amp;r&lt;e.getMTime()||(t.mtime=++lt,n.forEach((t=&gt;t&amp;&amp;t(e))))},e.onModified=e=&gt;{if(t.deleted)return Tt(&quot;instance deleted - cannot call any method&quot;),null;const o=n.length;return n.push(e),function(e){return Object.freeze({unsubscribe:function(){r(e)}})}(o)},e.getMTime=()=&gt;t.mtime,e.isA=e=&gt;{let n=t.classHierarchy.length;for(;n--;)if(t.classHierarchy[n]===e)return!0;return!1},e.getClassName=(e=0)=&gt;t.classHierarchy[t.classHierarchy.length-1-e],e.set=(n={},r=!1,o=!1)=&gt;{let a=!1;return Object.keys(n).forEach((i=&gt;{const s=o?null:e[`set${Pt(i)}`];s&amp;&amp;Array.isArray(n[i])&amp;&amp;s.length&gt;1?a=s(...n[i])||a:s?a=s(n[i])||a:(-1!==[&quot;mtime&quot;].indexOf(i)||r||xt(`Warning: Set value to model directly ${i}, ${n[i]}`),a=t[i]!==n[i]||a,t[i]=n[i])})),a},e.get=(...e)=&gt;{if(!e.length)return t;const n={};return e.forEach((e=&gt;{n[e]=t[e]})),n},e.getReferenceByName=e=&gt;t[e],e.delete=()=&gt;{Object.keys(t).forEach((e=&gt;delete t[e])),n.forEach(((e,t)=&gt;r(t))),t.deleted=!0},e.getState=({preserveTypedArrays:n=!1}={})=&gt;{if(t.deleted)return null;const r={preserveTypedArrays:n},o={...t,vtkClass:e.getClassName()};Object.keys(o).forEach((e=&gt;{var t;null===o[e]||void 0===o[e]||&quot;_&quot;===e[0]?delete o[e]:o[e].isA?o[e]=o[e].getState(r):Array.isArray(o[e])?o[e]=o[e].map((e=&gt;e&amp;&amp;e.isA?e.getState(r):e)):(t=o[e],Object.values(At).some((e=&gt;t instanceof e))&amp;&amp;(n||(o[e]=Array.from(o[e]))))}));const a={};return Object.keys(o).sort().forEach((e=&gt;{a[e]=o[e]})),a.mtime&amp;&amp;delete a.mtime,a},e.shallowCopy=(n,r=!1)=&gt;{if(n.getClassName()!==e.getClassName())throw new Error(`Cannot ShallowCopy ${n.getClassName()} into ${e.getClassName()}`);const o=n.get(),a=Object.keys(t).sort();Object.keys(o).sort().forEach((e=&gt;{const n=a.indexOf(e);-1===n?r&amp;&amp;vt(`add ${e} in shallowCopy`):a.splice(n,1),t[e]=o[e]})),a.length&amp;&amp;r&amp;&amp;vt(`Untouched keys: ${a.join(&quot;, &quot;)}`),e.modified()},e.toJSON=function(){return e.getState()},e}const Lt={object:(e,t,n)=&gt;function(){return{...t[n.name]}}};function Bt(e,t,n){n.forEach((n=&gt;{if(&quot;object&quot;==typeof n){const r=Lt[n.type];e[`get${wt(n.name)}`]=r?r(e,t,n):()=&gt;t[n.name]}else e[`get${wt(n)}`]=()=&gt;t[n]}))}const Ft={enum(e,t,n){const r=`_on${wt(n.name)}Changed`;return o=&gt;{if(&quot;string&quot;==typeof o){if(void 0!==n.enum[o])return t[n.name]!==n.enum[o]&amp;&amp;(t[n.name]=n.enum[o],e.modified(),!0);throw Tt(`Set Enum with invalid argument ${n}, ${o}`),new RangeError(&quot;Set Enum with invalid string argument&quot;)}if(&quot;number&quot;==typeof o){if(t[n.name]!==o){if(-1!==Object.keys(n.enum).map((e=&gt;n.enum[e])).indexOf(o)){const a=t[n.name];return t[n.name]=o,t[r]?.(e,t,o,a),e.modified(),!0}throw Tt(`Set Enum outside numeric range ${n}, ${o}`),new RangeError(&quot;Set Enum outside numeric range&quot;)}return!1}throw Tt(`Set Enum with invalid argument (String/Number) ${n}, ${o}`),new TypeError(&quot;Set Enum with invalid argument (String/Number)&quot;)}},object(e,t,n){1===n.params?.length&amp;&amp;xt(&#x27;Setter of type &quot;object&quot; with a single &quot;param&quot; field is not supported&#x27;);const r=`_on${wt(n.name)}Changed`;return(...o)=&gt;{let a;if(a=o.length&gt;1&amp;&amp;n.params?.length?n.params.reduce(((e,t,n)=&gt;Object.assign(e,{[t]:o[n]})),{}):o[0],!xe(t[n.name],a)){const o=t[n.name];return t[n.name]=a,t[r]?.(e,t,a,o),e.modified(),!0}return!1}}};function Nt(e){if(&quot;object&quot;==typeof e){const t=Ft[e.type];if(t)return(n,r)=&gt;t(n,r,e);throw Tt(`No setter for field ${e}`),new TypeError(&quot;No setter for field&quot;)}return function(t,n){const r=`_on${wt(e)}Changed`;return function(o){if(n.deleted)return Tt(&quot;instance deleted - cannot call any method&quot;),!1;if(n[e]!==o){const a=n[e.name];return n[e]=o,n[r]?.(t,n,o,a),t.modified(),!0}return!1}}}function kt(e,t,n){n.forEach((n=&gt;{&quot;object&quot;==typeof n?e[`set${wt(n.name)}`]=Nt(n)(e,t):e[`set${wt(n)}`]=Nt(n)(e,t)}))}function Gt(e,t,n){Bt(e,t,n),kt(e,t,n)}function Ut(e,t,n){n.forEach((n=&gt;{e[`get${wt(n)}`]=()=&gt;t[n]?Array.from(t[n]):t[n],e[`get${wt(n)}ByReference`]=()=&gt;t[n]}))}function _t(e,t,n,r,o=void 0){n.forEach((n=&gt;{if(t[n]&amp;&amp;r&amp;&amp;t[n].length!==r)throw new RangeError(`Invalid initial number of values for array (${n})`);const a=`_on${wt(n)}Changed`;e[`set${wt(n)}`]=(...i)=&gt;{if(t.deleted)return Tt(&quot;instance deleted - cannot call any method&quot;),!1;let s,l=i,c=!1;if(1===l.length&amp;&amp;(null==l[0]||l[0].length&gt;=0)&amp;&amp;(l=l[0],c=!0),null==l)s=t[n]!==l;else{if(r&amp;&amp;l.length!==r){if(!(l.length&lt;r&amp;&amp;void 0!==o))throw new RangeError(`Invalid number of values for array setter (${n})`);for(l=Array.from(l),c=!1;l.length&lt;r;)l.push(o)}s=null==t[n]||t[n].length!==l.length;for(let e=0;!s&amp;&amp;e&lt;l.length;++e)s=t[n][e]!==l[e];s&amp;&amp;c&amp;&amp;(l=Array.from(l))}if(s){const r=t[n.name];t[n]=l,t[a]?.(e,t,l,r),e.modified()}return s},e[`set${wt(n)}From`]=e=&gt;{const r=t[n];e.forEach(((e,t)=&gt;{r[t]=e}))}}))}function Kt(e,t,n,r,o=void 0){Ut(e,t,n),_t(e,t,n,r,o)}function zt(e,t,n){for(let e=0;e&lt;n.length;e++){const r=n[e];void 0!==t[r]&amp;&amp;(t[`_${r}`]=t[r],delete t[r])}}function Wt(e,t,n,r){function o(n,r=0){t.deleted?Tt(&quot;instance deleted - cannot call any method&quot;):r&gt;=t.numberOfInputs?Tt(`algorithm ${e.getClassName()} only has ${t.numberOfInputs} input ports. To add more input ports, use addInputData()`):(t.inputData[r]!==n||t.inputConnection[r])&amp;&amp;(t.inputData[r]=n,t.inputConnection[r]=null,e.modified&amp;&amp;e.modified())}function a(n,r=0){if(t.deleted)Tt(&quot;instance deleted - cannot call any method&quot;);else{if(r&gt;=t.numberOfInputs){let n=`algorithm ${e.getClassName()} only has `;return n+=`${t.numberOfInputs}`,n+=&quot; input ports. To add more input ports, use addInputConnection()&quot;,void Tt(n)}t.inputData[r]=null,t.inputConnection[r]=n}}function i(){let e=t.numberOfInputs;for(;e&amp;&amp;!t.inputData[e-1]&amp;&amp;!t.inputConnection[e-1];)e--;return e===t.numberOfInputs&amp;&amp;t.numberOfInputs++,e}function s(n=0){return t.deleted?(Tt(&quot;instance deleted - cannot call any method&quot;),null):(e.shouldUpdate()&amp;&amp;e.update(),t.output[n])}if(t.inputData?t.inputData=t.inputData.map(it):t.inputData=[],t.inputConnection?t.inputConnection=t.inputConnection.map(it):t.inputConnection=[],t.output?t.output=t.output.map(it):t.output=[],t.inputArrayToProcess?t.inputArrayToProcess=t.inputArrayToProcess.map(it):t.inputArrayToProcess=[],t.numberOfInputs=n,e.shouldUpdate=()=&gt;{const n=e.getMTime();let o=1/0,a=r;for(;a--;){if(!t.output[a]||t.output[a].isDeleted())return!0;const e=t.output[a].getMTime();if(e&lt;n)return!0;e&lt;o&amp;&amp;(o=e)}for(a=t.numberOfInputs;a--;)if(t.inputConnection[a]?.filter.shouldUpdate()||e.getInputData(a)?.getMTime()&gt;o)return!0;return!1},t.numberOfInputs){let n=t.numberOfInputs;for(;n--;)t.inputData.push(null),t.inputConnection.push(null);e.setInputData=o,e.setInputConnection=a,e.addInputData=function(e){t.deleted?Tt(&quot;instance deleted - cannot call any method&quot;):o(e,i())},e.addInputConnection=function(e){t.deleted?Tt(&quot;instance deleted - cannot call any method&quot;):a(e,i())},e.getInputData=function(e=0){return t.inputConnection[e]&amp;&amp;(t.inputData[e]=t.inputConnection[e]()),t.inputData[e]},e.getInputConnection=function(e=0){return t.inputConnection[e]}}r&amp;&amp;(e.getOutputData=s,e.getOutputPort=function(t=0){const n=()=&gt;s(t);return n.filter=e,n}),e.update=()=&gt;{const n=[];if(t.numberOfInputs){let r=0;for(;r&lt;t.numberOfInputs;)n[r]=e.getInputData(r),r++}e.requestData&amp;&amp;!e.isDeleted()&amp;&amp;e.shouldUpdate()&amp;&amp;e.requestData(n,t.output)},e.getNumberOfInputPorts=()=&gt;t.numberOfInputs,e.getNumberOfOutputPorts=()=&gt;r||t.output.length,e.getInputArrayToProcess=e=&gt;{const n=t.inputArrayToProcess[e],r=t.inputData[e];return n&amp;&amp;r?r[`get${n.fieldAssociation}`]().getArray(n.arrayName):null},e.setInputArrayToProcess=(e,n,r,o=&quot;Scalars&quot;)=&gt;{for(;t.inputArrayToProcess.length&lt;e;)t.inputArrayToProcess.push(null);t.inputArrayToProcess[e]={arrayName:n,fieldAssociation:r,attributeType:o}}}const Ht=Symbol(&quot;Event abort&quot;);function jt(e,t,n){const r=[],o=e.delete;let a=1;function i(e){for(let t=0;t&lt;r.length;++t){const[n]=r[t];if(n===e)return void r.splice(t,1)}}e[`invoke${wt(n)}`]=function(){if(t.deleted)return void Tt(&quot;instance deleted - cannot call any method&quot;);const n=r.slice();for(let t=0;t&lt;n.length;++t){const[,r,o]=n[t];if(r)if(o&lt;0)setTimeout((()=&gt;r.apply(e,arguments)),1-o);else{if(r.apply(e,arguments)===Ht)break}}},e[`on${wt(n)}`]=(e,o=0)=&gt;{if(!e.apply)return console.error(`Invalid callback for event ${n}`),null;if(t.deleted)return Tt(&quot;instance deleted - cannot call any method&quot;),null;const s=a++;return r.push([s,e,o]),r.sort(((e,t)=&gt;t[2]-e[2])),function(e){return Object.freeze({unsubscribe:function(){i(e)}})}(s)},e.delete=()=&gt;{o(),r.forEach((([e])=&gt;i(e)))}}function Xt(e,t){const n=(t={})=&gt;{const n={};return e(n,{},t),Object.freeze(n)};return t&amp;&amp;it.register(t,n),n}function qt(...e){return(...t)=&gt;e.filter((e=&gt;!!e)).map((e=&gt;e(...t)))}function Yt(e){return e&amp;&amp;e.isA&amp;&amp;e.isA(&quot;vtkObject&quot;)}function Jt(e,t,n=[],r=[]){if(Yt(e)){if(r.indexOf(e)&gt;=0)return n;r.push(e);const o=t(e);void 0!==o&amp;&amp;n.push(o);const a=e.get();Object.keys(a).forEach((e=&gt;{const o=a[e];Array.isArray(o)?o.forEach((e=&gt;{Jt(e,t,n,r)})):Jt(o,t,n,r)}))}return n}function Zt(e,t,n){let r;const o=(...o)=&gt;{const a=this,i=n&amp;&amp;!r;clearTimeout(r),r=setTimeout((()=&gt;{r=null,n||e.apply(a,o)}),t),i&amp;&amp;e.apply(a,o)};return o.cancel=()=&gt;clearTimeout(r),o}function Qt(e,t){let n=!1,r=null;function o(){n=!1,null!==r&amp;&amp;(a(...r),r=null)}function a(...a){n?r=a:(n=!0,e(...a),setTimeout(o,t))}return a}function $t(e,t,n={}){t.keystore=Object.assign(t.keystore||{},n),e.setKey=(e,n)=&gt;{t.keystore[e]=n},e.getKey=e=&gt;t.keystore[e],e.getAllKeys=()=&gt;Object.keys(t.keystore),e.deleteKey=e=&gt;delete t.keystore[e],e.clearKeystore=()=&gt;e.getAllKeys().forEach((e=&gt;delete t.keystore[e]))}let en=1;const tn=&quot;__root__&quot;;function nn(e,t){$t(e,t);const n=e.delete;t.proxyId=&quot;&quot;+en++,t.ui=JSON.parse(JSON.stringify(t.ui||[])),Bt(e,t,[&quot;proxyId&quot;,&quot;proxyGroup&quot;,&quot;proxyName&quot;]),Gt(e,t,[&quot;proxyManager&quot;]);const r={},o={};function a(e,t){o[t]||(o[t]=[]);const n=o[t];for(let t=0;t&lt;e.length;t++)n.push(e[t].name),r[e[t].name]=e[t],e[t].children&amp;&amp;e[t].children.length&amp;&amp;a(e[t].children,e[t].name)}function i(n=tn){const r=[],a=t.proxyId,s=function(e=tn){return o[e]}(n)||[];for(let t=0;t&lt;s.length;t++){const n=s[t],o=e[`get${wt(n)}`],l={id:a,name:n,value:o?o():void 0},c=i(n);c.length&amp;&amp;(l.children=c),r.push(l)}return r}a(t.ui,tn),e.updateUI=n=&gt;{t.ui=JSON.parse(JSON.stringify(n||[])),Object.keys(r).forEach((e=&gt;delete r[e])),Object.keys(o).forEach((e=&gt;delete o[e])),a(t.ui,tn),e.modified()},e.updateProxyProperty=(e,t)=&gt;{const n=r[e];n?Object.assign(n,t):r[e]={...t}},e.activate=()=&gt;{if(t.proxyManager){const n=`setActive${wt(e.getProxyGroup().slice(0,-1))}`;t.proxyManager[n]&amp;&amp;t.proxyManager[n](e)}},t.propertyLinkSubscribers={},e.registerPropertyLinkForGC=(e,n)=&gt;{n in t.propertyLinkSubscribers||(t.propertyLinkSubscribers[n]=[]),t.propertyLinkSubscribers[n].push(e)},e.gcPropertyLinks=n=&gt;{const r=t.propertyLinkSubscribers[n]||[];for(;r.length;)r.pop().unbind(e)},t.propertyLinkMap={},e.getPropertyLink=(e,n=!1)=&gt;{if(t.propertyLinkMap[e])return t.propertyLinkMap[e];let r=null;const o=[];let a=0,i=!1;function s(n,s=!1){if(i)return null;const l=[];let c=null;for(a=o.length;a--;){const e=o[a];e.instance===n?c=e:l.push(e)}if(!c)return null;const u=c.instance[`get${wt(c.propertyName)}`]();if(!function(e,t){if(e===t)return!0;if(Array.isArray(e)&amp;&amp;Array.isArray(t)){if(e.length!==t.length)return!1;for(let n=0;n&lt;e.length;n++)if(e[n]!==t[n])return!1;return!0}return!1}(u,r)||s){for(r=u,i=!0;l.length;){const e=l.pop();e.instance.set({[e.propertyName]:r})}i=!1}return t.propertyLinkMap[e].persistent&amp;&amp;(t.propertyLinkMap[e].value=u),u}function l(e,t){const n=[];for(a=o.length;a--;){const r=o[a];r.instance!==e||r.propertyName!==t&amp;&amp;void 0!==t||(r.subscription.unsubscribe(),n.push(a))}for(;n.length;)o.splice(n.pop(),1)}const c={bind:function(n,r,a=!1){const i=n.onModified(s),c=o[0];return o.push({instance:n,propertyName:r,subscription:i}),a&amp;&amp;(t.propertyLinkMap[e].persistent&amp;&amp;void 0!==t.propertyLinkMap[e].value?n.set({[r]:t.propertyLinkMap[e].value}):c&amp;&amp;s(c.instance,!0)),{unsubscribe:()=&gt;l(n,r)}},unbind:l,unsubscribe:function(){for(;o.length;)o.pop().subscription.unsubscribe()},persistent:n};return t.propertyLinkMap[e]=c,c},e.listPropertyNames=()=&gt;i().map((e=&gt;e.name)),e.getPropertyByName=e=&gt;i().find((t=&gt;t.name===e)),e.getPropertyDomainByName=e=&gt;(r[e]||{}).domain,e.getProxySection=()=&gt;({id:t.proxyId,name:t.proxyGroup,ui:t.ui,properties:i()}),e.delete=()=&gt;{const r=Object.keys(t.propertyLinkMap);let o=r.length;for(;o--;)t.propertyLinkMap[r[o]].unsubscribe();Object.keys(t.propertyLinkSubscribers).forEach(e.gcPropertyLinks),n()},e.getState=()=&gt;null,Dt((function(){if(t.links)for(let n=0;n&lt;t.links.length;n++){const{link:r,property:o,persistent:a,updateOnBind:i,type:s}=t.links[n];if(&quot;application&quot;===s){const n=t.proxyManager.getPropertyLink(r,a);e.registerPropertyLinkForGC(n,&quot;application&quot;),n.bind(e,o,i)}}}))}function rn(e,t,n){const r=e.delete,o=[],a=Object.keys(n);let i=a.length;for(;i--;){const r=a[i],{modelKey:s,property:l,modified:c=!0}=n[r],u=wt(l),d=wt(r);e[`get${d}`]=t[s][`get${u}`],e[`set${d}`]=t[s][`set${u}`],c&amp;&amp;o.push(t[s].onModified(e.modified))}e.delete=()=&gt;{for(;o.length;)o.pop().unsubscribe();r()}}function on(e,t,n={},r={}){function o(e){const n=Object.keys(e);let r=n.length;for(;r--;){const o=n[r];t[o].set(e[o])}}t.this=e;const a=Object.keys(r);let i=a.length;for(;i--;){const s=a[i];t[s]=r[s];const l=n[s];e[`set${wt(s)}`]=n=&gt;{if(n!==t[s]){t[s]=n;o(l[n]),e.modified()}}}a.length&amp;&amp;Bt(e,t,a)}function an(e){let t=0,n=0,r=0,o=0;return&quot;detail&quot;in e&amp;&amp;(n=e.detail),&quot;wheelDelta&quot;in e&amp;&amp;(n=-e.wheelDelta/120),&quot;wheelDeltaY&quot;in e&amp;&amp;(n=-e.wheelDeltaY/120),&quot;wheelDeltaX&quot;in e&amp;&amp;(t=-e.wheelDeltaX/120),&quot;axis&quot;in e&amp;&amp;e.axis===e.HORIZONTAL_AXIS&amp;&amp;(t=n,n=0),r=10*t,o=10*n,&quot;deltaY&quot;in e&amp;&amp;(o=e.deltaY),&quot;deltaX&quot;in e&amp;&amp;(r=e.deltaX),(r||o)&amp;&amp;e.deltaMode&amp;&amp;(1===e.deltaMode?(r*=40,o*=40):(r*=800,o*=800)),r&amp;&amp;!t&amp;&amp;(t=r&lt;1?-1:1),o&amp;&amp;!n&amp;&amp;(n=o&lt;1?-1:1),{spinX:t,spinY:n||t,pixelX:r,pixelY:o||r}}var sn={algo:Wt,capitalize:Pt,chain:qt,debounce:Zt,enumToString:function(e,t){return Object.keys(e).find((n=&gt;e[n]===t))},event:jt,EVENT_ABORT:Ht,formatBytesToProperUnit:Ot,formatNumbersWithThousandSeparator:Rt,get:Bt,getArray:Ut,getCurrentGlobalMTime:function(){return lt},getStateArrayMapFunc:function(e){return e&amp;&amp;e.isA?e.getState():e},isVtkObject:Yt,keystore:$t,measurePromiseExecution:Et,moveToProtected:zt,newInstance:Xt,newTypedArray:Ct,newTypedArrayFrom:St,normalizeWheel:an,obj:Vt,proxy:nn,proxyPropertyMapping:rn,proxyPropertyState:on,safeArrays:Mt,set:kt,setArray:_t,setGet:Gt,setGetArray:Kt,setImmediate:Dt,setLoggerFunction:gt,throttle:Qt,traverseInstanceTree:Jt,TYPED_ARRAYS:At,uncapitalize:It,VOID:ut,vtkDebugMacro:vt,vtkErrorMacro:Tt,vtkInfoMacro:ht,vtkLogMacro:mt,vtkOnceErrorMacro:bt,vtkWarningMacro:xt,objectSetterMap:Ft,requiredParam:ct},ln=Object.freeze({__proto__:null,requiredParam:ct,VOID:ut,setLoggerFunction:gt,vtkLogMacro:mt,vtkInfoMacro:ht,vtkDebugMacro:vt,vtkErrorMacro:Tt,vtkWarningMacro:xt,vtkOnceErrorMacro:bt,TYPED_ARRAYS:At,newTypedArray:Ct,newTypedArrayFrom:St,capitalize:Pt,_capitalize:wt,uncapitalize:It,formatBytesToProperUnit:Ot,formatNumbersWithThousandSeparator:Rt,setImmediateVTK:Dt,measurePromiseExecution:Et,obj:Vt,get:Bt,set:kt,setGet:Gt,getArray:Ut,setArray:_t,setGetArray:Kt,moveToProtected:zt,algo:Wt,EVENT_ABORT:Ht,event:jt,newInstance:Xt,chain:qt,isVtkObject:Yt,traverseInstanceTree:Jt,debounce:Zt,throttle:Qt,keystore:$t,proxy:nn,proxyPropertyMapping:rn,proxyPropertyState:on,normalizeWheel:an,default:sn});const{vtkErrorMacro:cn}=sn;const un={renderable:null,myFactory:null,children:[],visited:!1};function dn(e,t,n={}){Object.assign(t,un,n),sn.obj(e,t),sn.event(e,t,&quot;event&quot;),t._renderableChildMap=new Map,sn.get(e,t,[&quot;visited&quot;]),sn.setGet(e,t,[&quot;_parent&quot;,&quot;renderable&quot;,&quot;myFactory&quot;]),sn.getArray(e,t,[&quot;children&quot;]),sn.moveToProtected(e,t,[&quot;parent&quot;]),function(e,t){function n(e,n){for(let r=0;r&lt;t.children.length;++r){const o=(n+1+r)%t.children.length;if(t.children[o]===e)return t.children[o]=t.children[n],t.children[n]=e,!0}return!1}t.classHierarchy.push(&quot;vtkViewNode&quot;),e.build=e=&gt;{},e.render=e=&gt;{},e.traverse=n=&gt;{const r=n.getTraverseOperation(),o=e[r];if(o)o(n);else{e.apply(n,!0);for(let e=0;e&lt;t.children.length;e++)t.children[e].traverse(n);e.apply(n,!1)}},e.apply=(t,n)=&gt;{const r=e[t.getOperation()];r&amp;&amp;r(n,t)},e.getViewNodeFor=(n,r=null)=&gt;{if(r&amp;&amp;r.renderable===n)return r;if(t.renderable===n)return e;for(let e=0;e&lt;t.children.length;++e){const r=t.children[e].getViewNodeFor(n);if(r)return r}},e.getFirstAncestorOfType=e=&gt;t._parent?t._parent.isA(e)?t._parent:t._parent.getFirstAncestorOfType(e):null,e.getLastAncestorOfType=e=&gt;{if(!t._parent)return null;return t._parent.getLastAncestorOfType(e)||(t._parent.isA(e)?t._parent:null)},e.addMissingNode=n=&gt;{if(!n)return;const r=t._renderableChildMap.get(n);if(void 0!==r)return r.setVisited(!0),r;const o=e.createViewNode(n);return o?(o.setParent(e),o.setVisited(!0),t._renderableChildMap.set(n,o),t.children.push(o),o):void 0},e.addMissingNodes=(r,o=!1)=&gt;{if(!r||!r.length)return;let a;for(let i=0;i&lt;r.length;++i){const s=r[i],l=e.addMissingNode(s);o&amp;&amp;void 0!==l&amp;&amp;(void 0===a?a=t.children.lastIndexOf(l):t.children[a]!==l&amp;&amp;n(t.children,l),a++)}},e.addMissingChildren=n=&gt;{if(n&amp;&amp;n.length)for(let r=0;r&lt;n.length;++r){const o=n[r];if(-1===t.children.indexOf(o)){o.setParent(e),t.children.push(o);const n=o.getRenderable();n&amp;&amp;t._renderableChildMap.set(n,o)}o.setVisited(!0)}},e.removeNode=e=&gt;{const n=t.children.findIndex((t=&gt;t===e));if(n&lt;0)return!1;const r=e.getRenderable();return r&amp;&amp;t._renderableChildMap.delete(r),e.delete(),t.children.splice(n,1),!0},e.prepareNodes=()=&gt;{for(let e=0;e&lt;t.children.length;++e)t.children[e].setVisited(!1)},e.setVisited=e=&gt;{t.visited=e},e.removeUnusedNodes=()=&gt;{let e=0;for(let n=0;n&lt;t.children.length;++n){const r=t.children[n];if(r.getVisited())t.children[e++]=r,r.setVisited(!1);else{const e=r.getRenderable();e&amp;&amp;t._renderableChildMap.delete(e),r.delete()}}t.children.length=e},e.createViewNode=e=&gt;{if(!t.myFactory)return cn(&quot;Cannot create view nodes without my own factory&quot;),null;const n=t.myFactory.createNode(e);return n&amp;&amp;n.setRenderable(e),n};const r=e.delete;e.delete=()=&gt;{for(let e=0;e&lt;t.children.length;e++)t.children[e].delete();r()}}(e,t)}var pn={newInstance:sn.newInstance(dn,&quot;vtkViewNode&quot;),extend:dn,PASS_TYPES:[&quot;Build&quot;,&quot;Render&quot;]};const fn={};function gn(e,t,n={}){Object.assign(t,fn,n),sn.obj(e,t),function(e,t){t.overrides||(t.overrides={}),t.classHierarchy.push(&quot;vtkViewNodeFactory&quot;),e.createNode=n=&gt;{if(n.isDeleted())return null;let r=0,o=n.getClassName(r++),a=!1;const i=Object.keys(t.overrides);for(;o&amp;&amp;!a;)-1!==i.indexOf(o)?a=!0:o=n.getClassName(r++);if(!a)return null;const s=t.overrides[o]();return s.setMyFactory(e),s}}(e,t)}var mn={newInstance:sn.newInstance(gn,&quot;vtkViewNodeFactory&quot;),extend:gn};const hn=Object.create(null);function vn(e,t){hn[e]=t}const Tn={};function xn(e,t,n={}){Object.assign(t,Tn,n),t.overrides=hn,mn.extend(e,t,n),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLViewNodeFactory&quot;)}(0,t)}var yn={newInstance:sn.newInstance(xn,&quot;vtkOpenGLViewNodeFactory&quot;),extend:xn};const bn={context:null,lastRenderer:null,keyMatrixTime:null,keyMatrices:null};vn(&quot;vtkCamera&quot;,Xt((function(e,t,n={}){Object.assign(t,bn,n),pn.extend(e,t,n),t.keyMatrixTime={},Vt(t.keyMatrixTime),t.keyMatrices={normalMatrix:new Float64Array(9),vcpc:new Float64Array(16),wcvc:new Float64Array(16),wcpc:new Float64Array(16)},Gt(e,t,[&quot;context&quot;,&quot;keyMatrixTime&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLCamera&quot;),e.buildPass=n=&gt;{n&amp;&amp;(t._openGLRenderer=e.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;),t._openGLRenderWindow=t._openGLRenderer.getParent(),t.context=t._openGLRenderWindow.getContext())},e.opaquePass=e=&gt;{if(e){const e=t._openGLRenderer.getTiledSizeAndOrigin();t.context.viewport(e.lowerLeftU,e.lowerLeftV,e.usize,e.vsize),t.context.scissor(e.lowerLeftU,e.lowerLeftV,e.usize,e.vsize)}},e.translucentPass=e.opaquePass,e.zBufferPass=e.opaquePass,e.opaqueZBufferPass=e.opaquePass,e.volumePass=e.opaquePass,e.getKeyMatrices=n=&gt;{if(n!==t.lastRenderer||t._openGLRenderWindow.getMTime()&gt;t.keyMatrixTime.getMTime()||e.getMTime()&gt;t.keyMatrixTime.getMTime()||n.getMTime()&gt;t.keyMatrixTime.getMTime()||t.renderable.getMTime()&gt;t.keyMatrixTime.getMTime()){T(t.keyMatrices.wcvc,t.renderable.getViewMatrix()),s(t.keyMatrices.normalMatrix,t.keyMatrices.wcvc),d(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix),y(t.keyMatrices.wcvc,t.keyMatrices.wcvc);const e=t._openGLRenderer.getAspectRatio();T(t.keyMatrices.vcpc,t.renderable.getProjectionMatrix(e,-1,1)),y(t.keyMatrices.vcpc,t.keyMatrices.vcpc),A(t.keyMatrices.wcpc,t.keyMatrices.vcpc,t.keyMatrices.wcvc),t.keyMatrixTime.modified(),t.lastRenderer=n}return t.keyMatrices}}(e,t)})));const{vtkDebugMacro:An}=ln;const Cn={context:null,_openGLRenderWindow:null,selector:null};vn(&quot;vtkRenderer&quot;,Xt((function(e,t,n={}){Object.assign(t,Cn,n),pn.extend(e,t,n),Bt(e,t,[&quot;shaderCache&quot;]),Gt(e,t,[&quot;selector&quot;]),zt(0,t,[&quot;openGLRenderWindow&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLRenderer&quot;),e.buildPass=n=&gt;{if(n){if(!t.renderable)return;e.updateLights(),e.prepareNodes(),e.addMissingNode(t.renderable.getActiveCamera()),e.addMissingNodes(t.renderable.getViewPropsWithNestedProps(),!0),e.removeUnusedNodes()}},e.updateLights=()=&gt;{let e=0;const n=t.renderable.getLightsByReference();for(let t=0;t&lt;n.length;++t)n[t].getSwitch()&gt;0&amp;&amp;e++;return e||(An(&quot;No lights are on, creating one.&quot;),t.renderable.createLight()),e},e.zBufferPass=n=&gt;{if(n){let n=0;const r=t.context;t.renderable.getTransparent()||(t.context.clearColor(1,0,0,1),n|=r.COLOR_BUFFER_BIT),t.renderable.getPreserveDepthBuffer()||(r.clearDepth(1),n|=r.DEPTH_BUFFER_BIT,t.context.depthMask(!0));const o=e.getTiledSizeAndOrigin();r.enable(r.SCISSOR_TEST),r.scissor(o.lowerLeftU,o.lowerLeftV,o.usize,o.vsize),r.viewport(o.lowerLeftU,o.lowerLeftV,o.usize,o.vsize),r.colorMask(!0,!0,!0,!0),n&amp;&amp;r.clear(n),r.enable(r.DEPTH_TEST)}},e.opaqueZBufferPass=t=&gt;e.zBufferPass(t),e.cameraPass=t=&gt;{t&amp;&amp;e.clear()},e.getAspectRatio=()=&gt;{const e=t._parent.getSizeByReference(),n=t.renderable.getViewportByReference();return e[0]*(n[2]-n[0])/((n[3]-n[1])*e[1])},e.getTiledSizeAndOrigin=()=&gt;{const e=t.renderable.getViewportByReference(),n=[0,0,1,1],r=e[0]-n[0],o=e[1]-n[1],a=t._parent.normalizedDisplayToDisplay(r,o),i=Math.round(a[0]),s=Math.round(a[1]),l=e[2]-n[0],c=e[3]-n[1],u=t._parent.normalizedDisplayToDisplay(l,c);let d=Math.round(u[0])-i,p=Math.round(u[1])-s;return d&lt;0&amp;&amp;(d=0),p&lt;0&amp;&amp;(p=0),{usize:d,vsize:p,lowerLeftU:i,lowerLeftV:s}},e.clear=()=&gt;{let n=0;const r=t.context;if(!t.renderable.getTransparent()){const e=t.renderable.getBackgroundByReference();r.clearColor(e[0],e[1],e[2],e[3]),n|=r.COLOR_BUFFER_BIT}t.renderable.getPreserveDepthBuffer()||(r.clearDepth(1),n|=r.DEPTH_BUFFER_BIT,r.depthMask(!0)),r.colorMask(!0,!0,!0,!0);const o=e.getTiledSizeAndOrigin();r.enable(r.SCISSOR_TEST),r.scissor(o.lowerLeftU,o.lowerLeftV,o.usize,o.vsize),r.viewport(o.lowerLeftU,o.lowerLeftV,o.usize,o.vsize),n&amp;&amp;r.clear(n),r.enable(r.DEPTH_TEST)},e.releaseGraphicsResources=()=&gt;{null!==t.selector&amp;&amp;t.selector.releaseGraphicsResources(),t.renderable&amp;&amp;t.renderable.getViewProps().forEach((e=&gt;{e.modified()}))},e.setOpenGLRenderWindow=n=&gt;{t._openGLRenderWindow!==n&amp;&amp;(e.releaseGraphicsResources(),t._openGLRenderWindow=n,t.context=null,n&amp;&amp;(t.context=t._openGLRenderWindow.getContext()))}}(e,t)}),&quot;vtkOpenGLRenderer&quot;));const Sn={context:null,keyMatrixTime:null,keyMatrices:null,activeTextures:null};vn(&quot;vtkActor&quot;,Xt((function(e,t,n={}){Object.assign(t,Sn,n),pn.extend(e,t,n),t.keyMatrixTime={},Vt(t.keyMatrixTime,{mtime:0}),t.keyMatrices={normalMatrix:c(new Float64Array(9)),mcwc:x(new Float64Array(16))},Gt(e,t,[&quot;context&quot;]),Bt(e,t,[&quot;activeTextures&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLActor&quot;),e.buildPass=n=&gt;{if(n){t._openGLRenderWindow=e.getLastAncestorOfType(&quot;vtkOpenGLRenderWindow&quot;),t._openGLRenderer=e.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;),t.context=t._openGLRenderWindow.getContext(),e.prepareNodes(),e.addMissingNodes(t.renderable.getTextures()),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes(),t.ogltextures=null,t.activeTextures=null;for(let e=0;e&lt;t.children.length;e++){const n=t.children[e];n.isA(&quot;vtkOpenGLTexture&quot;)?(t.ogltextures||(t.ogltextures=[]),t.ogltextures.push(n)):t.oglmapper=n}}},e.traverseZBufferPass=n=&gt;{t.renderable&amp;&amp;t.renderable.getNestedVisibility()&amp;&amp;(!t._openGLRenderer.getSelector()||t.renderable.getNestedPickable())&amp;&amp;(e.apply(n,!0),t.oglmapper.traverse(n),e.apply(n,!1))},e.traverseOpaqueZBufferPass=t=&gt;e.traverseOpaquePass(t),e.traverseOpaquePass=n=&gt;{t.renderable&amp;&amp;t.renderable.getNestedVisibility()&amp;&amp;t.renderable.getIsOpaque()&amp;&amp;(!t._openGLRenderer.getSelector()||t.renderable.getNestedPickable())&amp;&amp;(e.apply(n,!0),t.oglmapper.traverse(n),e.apply(n,!1))},e.traverseTranslucentPass=n=&gt;{!t.renderable||!t.renderable.getNestedVisibility()||t.renderable.getIsOpaque()||t._openGLRenderer.getSelector()&amp;&amp;!t.renderable.getNestedPickable()||(e.apply(n,!0),t.oglmapper.traverse(n),e.apply(n,!1))},e.activateTextures=()=&gt;{if(t.ogltextures){t.activeTextures=[];for(let e=0;e&lt;t.ogltextures.length;e++){const n=t.ogltextures[e];n.render(),n.getHandle()&amp;&amp;t.activeTextures.push(n)}}},e.queryPass=(e,n)=&gt;{if(e){if(!t.renderable||!t.renderable.getVisibility())return;t.renderable.getIsOpaque()?n.incrementOpaqueActorCount():n.incrementTranslucentActorCount()}},e.zBufferPass=(t,n)=&gt;e.opaquePass(t,n),e.opaqueZBufferPass=(t,n)=&gt;e.opaquePass(t,n),e.opaquePass=(n,r)=&gt;{if(n)t.context.depthMask(!0),e.activateTextures();else if(t.activeTextures)for(let e=0;e&lt;t.activeTextures.length;e++)t.activeTextures[e].deactivate()},e.translucentPass=(n,r)=&gt;{if(n)t.context.depthMask(t._openGLRenderer.getSelector()&amp;&amp;t.renderable.getNestedPickable()),e.activateTextures();else if(t.activeTextures)for(let e=0;e&lt;t.activeTextures.length;e++)t.activeTextures[e].deactivate()},e.getKeyMatrices=()=&gt;(t.renderable.getMTime()&gt;t.keyMatrixTime.getMTime()&amp;&amp;(t.renderable.computeMatrix(),T(t.keyMatrices.mcwc,t.renderable.getMatrix()),y(t.keyMatrices.mcwc,t.keyMatrices.mcwc),t.renderable.getIsIdentity()?c(t.keyMatrices.normalMatrix):(s(t.keyMatrices.normalMatrix,t.keyMatrices.mcwc),d(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix),u(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix)),t.keyMatrixTime.modified()),t.keyMatrices)}(e,t)})));const Pn={context:null,activeTextures:null};function wn(e,t){return null==e||null==t?NaN:e&lt;t?-1:e&gt;t?1:e&gt;=t?0:NaN}function In(e){let t=e,n=e,r=e;function o(e,t,o=0,a=e.length){if(o&lt;a){if(0!==n(t,t))return a;do{const n=o+a&gt;&gt;&gt;1;r(e[n],t)&lt;0?o=n+1:a=n}while(o&lt;a)}return o}return 1===e.length&amp;&amp;(t=(t,n)=&gt;e(t)-n,n=wn,r=(t,n)=&gt;wn(e(t),n)),{left:o,center:function(e,n,r=0,a=e.length){const i=o(e,n,r,a-1);return i&gt;r&amp;&amp;t(e[i-1],n)&gt;-t(e[i],n)?i-1:i},right:function(e,t,o=0,a=e.length){if(o&lt;a){if(0!==n(t,t))return a;do{const n=o+a&gt;&gt;&gt;1;r(e[n],t)&lt;=0?o=n+1:a=n}while(o&lt;a)}return o}}}vn(&quot;vtkActor2D&quot;,Xt((function(e,t,n={}){Object.assign(t,Pn,n),pn.extend(e,t,n),Gt(e,t,[&quot;context&quot;]),Bt(e,t,[&quot;activeTextures&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLActor2D&quot;),e.buildPass=n=&gt;{if(n){if(!t.renderable)return;t._openGLRenderWindow=e.getLastAncestorOfType(&quot;vtkOpenGLRenderWindow&quot;),t._openGLRenderer=e.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;),t.context=t._openGLRenderWindow.getContext(),e.prepareNodes(),e.addMissingNodes(t.renderable.getTextures()),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes(),t.ogltextures=null,t.activeTextures=null;for(let e=0;e&lt;t.children.length;e++){const n=t.children[e];n.isA(&quot;vtkOpenGLTexture&quot;)?(t.ogltextures||(t.ogltextures=[]),t.ogltextures.push(n)):t.oglmapper=n}}},e.queryPass=(e,n)=&gt;{if(e){if(!t.renderable||!t.renderable.getVisibility())return;n.incrementOverlayActorCount()}},e.traverseOpaquePass=n=&gt;{t.oglmapper&amp;&amp;t.renderable&amp;&amp;t.renderable.getNestedVisibility()&amp;&amp;t.renderable.getIsOpaque()&amp;&amp;(!t._openGLRenderer.getSelector()||t.renderable.getNestedPickable())&amp;&amp;(e.apply(n,!0),t.oglmapper.traverse(n),e.apply(n,!1))},e.traverseTranslucentPass=n=&gt;{t.oglmapper&amp;&amp;t.renderable&amp;&amp;t.renderable.getNestedVisibility()&amp;&amp;!t.renderable.getIsOpaque()&amp;&amp;(!t._openGLRenderer.getSelector()||t.renderable.getNestedPickable())&amp;&amp;(e.apply(n,!0),t.oglmapper.traverse(n),e.apply(n,!1))},e.traverseOverlayPass=n=&gt;{t.oglmapper&amp;&amp;t.renderable&amp;&amp;t.renderable.getNestedVisibility()&amp;&amp;(!t._openGLRenderer.getSelector()||t.renderable.getNestedPickable)&amp;&amp;(e.apply(n,!0),t.oglmapper.traverse(n),e.apply(n,!1))},e.activateTextures=()=&gt;{if(t.ogltextures){t.activeTextures=[];for(let e=0;e&lt;t.ogltextures.length;e++){const n=t.ogltextures[e];n.render(),n.getHandle()&amp;&amp;t.activeTextures.push(n)}}},e.opaquePass=(n,r)=&gt;{if(n)t.context.depthMask(!0),e.activateTextures();else if(t.activeTextures)for(let e=0;e&lt;t.activeTextures.length;e++)t.activeTextures[e].deactivate()},e.translucentPass=(n,r)=&gt;{if(n)t.context.depthMask(!1),e.activateTextures();else if(t.activeTextures)for(let e=0;e&lt;t.activeTextures.length;e++)t.activeTextures[e].deactivate()},e.overlayPass=(n,r)=&gt;{if(n)t.context.depthMask(!0),e.activateTextures();else if(t.activeTextures)for(let e=0;e&lt;t.activeTextures.length;e++)t.activeTextures[e].deactivate()}}(e,t)})));const On=In(wn).right;In((function(e){return null===e?NaN:+e})).center;var Rn=On,Mn=Math.sqrt(50),Dn=Math.sqrt(10),En=Math.sqrt(2);function Vn(e,t,n){var r=(t-e)/Math.max(0,n),o=Math.floor(Math.log(r)/Math.LN10),a=r/Math.pow(10,o);return o&gt;=0?(a&gt;=Mn?10:a&gt;=Dn?5:a&gt;=En?2:1)*Math.pow(10,o):-Math.pow(10,-o)/(a&gt;=Mn?10:a&gt;=Dn?5:a&gt;=En?2:1)}function Ln(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e)}return this}function Bn(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function Fn(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function Nn(){}var kn=.7,Gn=1/kn,Un=&quot;\\\\s*([+-]?\\\\d+)\\\\s*&quot;,_n=&quot;\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*&quot;,Kn=&quot;\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*&quot;,zn=/^#([0-9a-f]{3,8})$/,Wn=new RegExp(`^rgb\\\\(${Un},${Un},${Un}\\\\)$`),Hn=new RegExp(`^rgb\\\\(${Kn},${Kn},${Kn}\\\\)$`),jn=new RegExp(`^rgba\\\\(${Un},${Un},${Un},${_n}\\\\)$`),Xn=new RegExp(`^rgba\\\\(${Kn},${Kn},${Kn},${_n}\\\\)$`),qn=new RegExp(`^hsl\\\\(${_n},${Kn},${Kn}\\\\)$`),Yn=new RegExp(`^hsla\\\\(${_n},${Kn},${Kn},${_n}\\\\)$`),Jn={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function Zn(){return this.rgb().formatHex()}function Qn(){return this.rgb().formatRgb()}function $n(e){var t,n;return e=(e+&quot;&quot;).trim().toLowerCase(),(t=zn.exec(e))?(n=t[1].length,t=parseInt(t[1],16),6===n?er(t):3===n?new rr(t&gt;&gt;8&amp;15|t&gt;&gt;4&amp;240,t&gt;&gt;4&amp;15|240&amp;t,(15&amp;t)&lt;&lt;4|15&amp;t,1):8===n?tr(t&gt;&gt;24&amp;255,t&gt;&gt;16&amp;255,t&gt;&gt;8&amp;255,(255&amp;t)/255):4===n?tr(t&gt;&gt;12&amp;15|t&gt;&gt;8&amp;240,t&gt;&gt;8&amp;15|t&gt;&gt;4&amp;240,t&gt;&gt;4&amp;15|240&amp;t,((15&amp;t)&lt;&lt;4|15&amp;t)/255):null):(t=Wn.exec(e))?new rr(t[1],t[2],t[3],1):(t=Hn.exec(e))?new rr(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=jn.exec(e))?tr(t[1],t[2],t[3],t[4]):(t=Xn.exec(e))?tr(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=qn.exec(e))?cr(t[1],t[2]/100,t[3]/100,1):(t=Yn.exec(e))?cr(t[1],t[2]/100,t[3]/100,t[4]):Jn.hasOwnProperty(e)?er(Jn[e]):&quot;transparent&quot;===e?new rr(NaN,NaN,NaN,0):null}function er(e){return new rr(e&gt;&gt;16&amp;255,e&gt;&gt;8&amp;255,255&amp;e,1)}function tr(e,t,n,r){return r&lt;=0&amp;&amp;(e=t=n=NaN),new rr(e,t,n,r)}function nr(e,t,n,r){return 1===arguments.length?((o=e)instanceof Nn||(o=$n(o)),o?new rr((o=o.rgb()).r,o.g,o.b,o.opacity):new rr):new rr(e,t,n,null==r?1:r);var o}function rr(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}function or(){return`#${lr(this.r)}${lr(this.g)}${lr(this.b)}`}function ar(){const e=ir(this.opacity);return`${1===e?&quot;rgb(&quot;:&quot;rgba(&quot;}${sr(this.r)}, ${sr(this.g)}, ${sr(this.b)}${1===e?&quot;)&quot;:`, ${e})`}`}function ir(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function sr(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function lr(e){return((e=sr(e))&lt;16?&quot;0&quot;:&quot;&quot;)+e.toString(16)}function cr(e,t,n,r){return r&lt;=0?e=t=n=NaN:n&lt;=0||n&gt;=1?e=t=NaN:t&lt;=0&amp;&amp;(e=NaN),new dr(e,t,n,r)}function ur(e){if(e instanceof dr)return new dr(e.h,e.s,e.l,e.opacity);if(e instanceof Nn||(e=$n(e)),!e)return new dr;if(e instanceof dr)return e;var t=(e=e.rgb()).r/255,n=e.g/255,r=e.b/255,o=Math.min(t,n,r),a=Math.max(t,n,r),i=NaN,s=a-o,l=(a+o)/2;return s?(i=t===a?(n-r)/s+6*(n&lt;r):n===a?(r-t)/s+2:(t-n)/s+4,s/=l&lt;.5?a+o:2-a-o,i*=60):s=l&gt;0&amp;&amp;l&lt;1?0:i,new dr(i,s,l,e.opacity)}function dr(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}function pr(e){return(e=(e||0)%360)&lt;0?e+360:e}function fr(e){return Math.max(0,Math.min(1,e||0))}function gr(e,t,n){return 255*(e&lt;60?t+(n-t)*e/60:e&lt;180?n:e&lt;240?t+(n-t)*(240-e)/60:t)}Bn(Nn,$n,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:Zn,formatHex:Zn,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return ur(this).formatHsl()},formatRgb:Qn,toString:Qn}),Bn(rr,nr,Fn(Nn,{brighter(e){return e=null==e?Gn:Math.pow(Gn,e),new rr(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=null==e?kn:Math.pow(kn,e),new rr(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new rr(sr(this.r),sr(this.g),sr(this.b),ir(this.opacity))},displayable(){return-.5&lt;=this.r&amp;&amp;this.r&lt;255.5&amp;&amp;-.5&lt;=this.g&amp;&amp;this.g&lt;255.5&amp;&amp;-.5&lt;=this.b&amp;&amp;this.b&lt;255.5&amp;&amp;0&lt;=this.opacity&amp;&amp;this.opacity&lt;=1},hex:or,formatHex:or,formatHex8:function(){return`#${lr(this.r)}${lr(this.g)}${lr(this.b)}${lr(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:ar,toString:ar})),Bn(dr,(function(e,t,n,r){return 1===arguments.length?ur(e):new dr(e,t,n,null==r?1:r)}),Fn(Nn,{brighter(e){return e=null==e?Gn:Math.pow(Gn,e),new dr(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?kn:Math.pow(kn,e),new dr(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+360*(this.h&lt;0),t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n&lt;.5?n:1-n)*t,o=2*n-r;return new rr(gr(e&gt;=240?e-240:e+120,o,r),gr(e,o,r),gr(e&lt;120?e+240:e-120,o,r),this.opacity)},clamp(){return new dr(pr(this.h),fr(this.s),fr(this.l),ir(this.opacity))},displayable(){return(0&lt;=this.s&amp;&amp;this.s&lt;=1||isNaN(this.s))&amp;&amp;0&lt;=this.l&amp;&amp;this.l&lt;=1&amp;&amp;0&lt;=this.opacity&amp;&amp;this.opacity&lt;=1},formatHsl(){const e=ir(this.opacity);return`${1===e?&quot;hsl(&quot;:&quot;hsla(&quot;}${pr(this.h)}, ${100*fr(this.s)}%, ${100*fr(this.l)}%${1===e?&quot;)&quot;:`, ${e})`}`}}));var mr=e=&gt;()=&gt;e;function hr(e){return 1==(e=+e)?vr:function(t,n){return n-t?function(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}(t,n,e):mr(isNaN(t)?n:t)}}function vr(e,t){var n=t-e;return n?function(e,t){return function(n){return e+n*t}}(e,n):mr(isNaN(e)?t:e)}var Tr=function e(t){var n=hr(t);function r(e,t){var r=n((e=nr(e)).r,(t=nr(t)).r),o=n(e.g,t.g),a=n(e.b,t.b),i=vr(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=o(t),e.b=a(t),e.opacity=i(t),e+&quot;&quot;}}return r.gamma=e,r}(1);function xr(e,t){t||(t=[]);var n,r=e?Math.min(t.length,e.length):0,o=t.slice();return function(a){for(n=0;n&lt;r;++n)o[n]=e[n]*(1-a)+t[n]*a;return o}}function yr(e,t){var n,r=t?t.length:0,o=e?Math.min(r,e.length):0,a=new Array(o),i=new Array(r);for(n=0;n&lt;o;++n)a[n]=Ir(e[n],t[n]);for(;n&lt;r;++n)i[n]=t[n];return function(e){for(n=0;n&lt;o;++n)i[n]=a[n](e);return i}}function br(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function Ar(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function Cr(e,t){var n,r={},o={};for(n in null!==e&amp;&amp;&quot;object&quot;==typeof e||(e={}),null!==t&amp;&amp;&quot;object&quot;==typeof t||(t={}),t)n in e?r[n]=Ir(e[n],t[n]):o[n]=t[n];return function(e){for(n in r)o[n]=r[n](e);return o}}var Sr=/[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,Pr=new RegExp(Sr.source,&quot;g&quot;);function wr(e,t){var n,r,o,a=Sr.lastIndex=Pr.lastIndex=0,i=-1,s=[],l=[];for(e+=&quot;&quot;,t+=&quot;&quot;;(n=Sr.exec(e))&amp;&amp;(r=Pr.exec(t));)(o=r.index)&gt;a&amp;&amp;(o=t.slice(a,o),s[i]?s[i]+=o:s[++i]=o),(n=n[0])===(r=r[0])?s[i]?s[i]+=r:s[++i]=r:(s[++i]=null,l.push({i:i,x:Ar(n,r)})),a=Pr.lastIndex;return a&lt;t.length&amp;&amp;(o=t.slice(a),s[i]?s[i]+=o:s[++i]=o),s.length&lt;2?l[0]?function(e){return function(t){return e(t)+&quot;&quot;}}(l[0].x):function(e){return function(){return e}}(t):(t=l.length,function(e){for(var n,r=0;r&lt;t;++r)s[(n=l[r]).i]=n.x(e);return s.join(&quot;&quot;)})}function Ir(e,t){var n,r=typeof t;return null==t||&quot;boolean&quot;===r?mr(t):(&quot;number&quot;===r?Ar:&quot;string&quot;===r?(n=$n(t))?(t=n,Tr):wr:t instanceof $n?Tr:t instanceof Date?br:function(e){return ArrayBuffer.isView(e)&amp;&amp;!(e instanceof DataView)}(t)?xr:Array.isArray(t)?yr:&quot;function&quot;!=typeof t.valueOf&amp;&amp;&quot;function&quot;!=typeof t.toString||isNaN(t)?Cr:Ar)(e,t)}function Or(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}function Rr(e){return+e}var Mr=[0,1];function Dr(e){return e}function Er(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:function(e){return function(){return e}}(isNaN(t)?NaN:.5)}function Vr(e,t,n){var r=e[0],o=e[1],a=t[0],i=t[1];return o&lt;r?(r=Er(o,r),a=n(i,a)):(r=Er(r,o),a=n(a,i)),function(e){return a(r(e))}}function Lr(e,t,n){var r=Math.min(e.length,t.length)-1,o=new Array(r),a=new Array(r),i=-1;for(e[r]&lt;e[0]&amp;&amp;(e=e.slice().reverse(),t=t.slice().reverse());++i&lt;r;)o[i]=Er(e[i],e[i+1]),a[i]=n(t[i],t[i+1]);return function(t){var n=Rn(e,t,1,r)-1;return a[n](o[n](t))}}function Br(){var e,t,n,r,o,a,i=Mr,s=Mr,l=Ir,c=Dr;function u(){var e,t,n,l=Math.min(i.length,s.length);return c!==Dr&amp;&amp;(e=i[0],t=i[l-1],e&gt;t&amp;&amp;(n=e,e=t,t=n),c=function(n){return Math.max(e,Math.min(t,n))}),r=l&gt;2?Lr:Vr,o=a=null,d}function d(t){return null==t||isNaN(t=+t)?n:(o||(o=r(i.map(e),s,l)))(e(c(t)))}return d.invert=function(n){return c(t((a||(a=r(s,i.map(e),Ar)))(n)))},d.domain=function(e){return arguments.length?(i=Array.from(e,Rr),u()):i.slice()},d.range=function(e){return arguments.length?(s=Array.from(e),u()):s.slice()},d.rangeRound=function(e){return s=Array.from(e),l=Or,u()},d.clamp=function(e){return arguments.length?(c=!!e||Dr,u()):c!==Dr},d.interpolate=function(e){return arguments.length?(l=e,u()):l},d.unknown=function(e){return arguments.length?(n=e,d):n},function(n,r){return e=n,t=r,u()}}function Fr(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf(&quot;e&quot;))&lt;0)return null;var n,r=e.slice(0,n);return[r.length&gt;1?r[0]+r.slice(2):r,+e.slice(n+1)]}function Nr(e){return(e=Fr(Math.abs(e)))?e[1]:NaN}var kr,Gr=/^(?:(.)?([&lt;&gt;=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;function Ur(e){if(!(t=Gr.exec(e)))throw new Error(&quot;invalid format: &quot;+e);var t;return new _r({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&amp;&amp;t[8].slice(1),trim:t[9],type:t[10]})}function _r(e){this.fill=void 0===e.fill?&quot; &quot;:e.fill+&quot;&quot;,this.align=void 0===e.align?&quot;&gt;&quot;:e.align+&quot;&quot;,this.sign=void 0===e.sign?&quot;-&quot;:e.sign+&quot;&quot;,this.symbol=void 0===e.symbol?&quot;&quot;:e.symbol+&quot;&quot;,this.zero=!!e.zero,this.width=void 0===e.width?void 0:+e.width,this.comma=!!e.comma,this.precision=void 0===e.precision?void 0:+e.precision,this.trim=!!e.trim,this.type=void 0===e.type?&quot;&quot;:e.type+&quot;&quot;}function Kr(e,t){var n=Fr(e,t);if(!n)return e+&quot;&quot;;var r=n[0],o=n[1];return o&lt;0?&quot;0.&quot;+new Array(-o).join(&quot;0&quot;)+r:r.length&gt;o+1?r.slice(0,o+1)+&quot;.&quot;+r.slice(o+1):r+new Array(o-r.length+2).join(&quot;0&quot;)}Ur.prototype=_r.prototype,_r.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?&quot;0&quot;:&quot;&quot;)+(void 0===this.width?&quot;&quot;:Math.max(1,0|this.width))+(this.comma?&quot;,&quot;:&quot;&quot;)+(void 0===this.precision?&quot;&quot;:&quot;.&quot;+Math.max(0,0|this.precision))+(this.trim?&quot;~&quot;:&quot;&quot;)+this.type};var zr={&quot;%&quot;:(e,t)=&gt;(100*e).toFixed(t),b:e=&gt;Math.round(e).toString(2),c:e=&gt;e+&quot;&quot;,d:function(e){return Math.abs(e=Math.round(e))&gt;=1e21?e.toLocaleString(&quot;en&quot;).replace(/,/g,&quot;&quot;):e.toString(10)},e:(e,t)=&gt;e.toExponential(t),f:(e,t)=&gt;e.toFixed(t),g:(e,t)=&gt;e.toPrecision(t),o:e=&gt;Math.round(e).toString(8),p:(e,t)=&gt;Kr(100*e,t),r:Kr,s:function(e,t){var n=Fr(e,t);if(!n)return e+&quot;&quot;;var r=n[0],o=n[1],a=o-(kr=3*Math.max(-8,Math.min(8,Math.floor(o/3))))+1,i=r.length;return a===i?r:a&gt;i?r+new Array(a-i+1).join(&quot;0&quot;):a&gt;0?r.slice(0,a)+&quot;.&quot;+r.slice(a):&quot;0.&quot;+new Array(1-a).join(&quot;0&quot;)+Fr(e,Math.max(0,t+a-1))[0]},X:e=&gt;Math.round(e).toString(16).toUpperCase(),x:e=&gt;Math.round(e).toString(16)};function Wr(e){return e}var Hr,jr,Xr,qr=Array.prototype.map,Yr=[&quot;y&quot;,&quot;z&quot;,&quot;a&quot;,&quot;f&quot;,&quot;p&quot;,&quot;n&quot;,&quot;µ&quot;,&quot;m&quot;,&quot;&quot;,&quot;k&quot;,&quot;M&quot;,&quot;G&quot;,&quot;T&quot;,&quot;P&quot;,&quot;E&quot;,&quot;Z&quot;,&quot;Y&quot;];function Jr(e){var t,n,r=void 0===e.grouping||void 0===e.thousands?Wr:(t=qr.call(e.grouping,Number),n=e.thousands+&quot;&quot;,function(e,r){for(var o=e.length,a=[],i=0,s=t[0],l=0;o&gt;0&amp;&amp;s&gt;0&amp;&amp;(l+s+1&gt;r&amp;&amp;(s=Math.max(1,r-l)),a.push(e.substring(o-=s,o+s)),!((l+=s+1)&gt;r));)s=t[i=(i+1)%t.length];return a.reverse().join(n)}),o=void 0===e.currency?&quot;&quot;:e.currency[0]+&quot;&quot;,a=void 0===e.currency?&quot;&quot;:e.currency[1]+&quot;&quot;,i=void 0===e.decimal?&quot;.&quot;:e.decimal+&quot;&quot;,s=void 0===e.numerals?Wr:function(e){return function(t){return t.replace(/[0-9]/g,(function(t){return e[+t]}))}}(qr.call(e.numerals,String)),l=void 0===e.percent?&quot;%&quot;:e.percent+&quot;&quot;,c=void 0===e.minus?&quot;−&quot;:e.minus+&quot;&quot;,u=void 0===e.nan?&quot;NaN&quot;:e.nan+&quot;&quot;;function d(e){var t=(e=Ur(e)).fill,n=e.align,d=e.sign,p=e.symbol,f=e.zero,g=e.width,m=e.comma,h=e.precision,v=e.trim,T=e.type;&quot;n&quot;===T?(m=!0,T=&quot;g&quot;):zr[T]||(void 0===h&amp;&amp;(h=12),v=!0,T=&quot;g&quot;),(f||&quot;0&quot;===t&amp;&amp;&quot;=&quot;===n)&amp;&amp;(f=!0,t=&quot;0&quot;,n=&quot;=&quot;);var x=&quot;$&quot;===p?o:&quot;#&quot;===p&amp;&amp;/[boxX]/.test(T)?&quot;0&quot;+T.toLowerCase():&quot;&quot;,y=&quot;$&quot;===p?a:/[%p]/.test(T)?l:&quot;&quot;,b=zr[T],A=/[defgprs%]/.test(T);function C(e){var o,a,l,p=x,C=y;if(&quot;c&quot;===T)C=b(e)+C,e=&quot;&quot;;else{var S=(e=+e)&lt;0||1/e&lt;0;if(e=isNaN(e)?u:b(Math.abs(e),h),v&amp;&amp;(e=function(e){e:for(var t,n=e.length,r=1,o=-1;r&lt;n;++r)switch(e[r]){case&quot;.&quot;:o=t=r;break;case&quot;0&quot;:0===o&amp;&amp;(o=r),t=r;break;default:if(!+e[r])break e;o&gt;0&amp;&amp;(o=0)}return o&gt;0?e.slice(0,o)+e.slice(t+1):e}(e)),S&amp;&amp;0==+e&amp;&amp;&quot;+&quot;!==d&amp;&amp;(S=!1),p=(S?&quot;(&quot;===d?d:c:&quot;-&quot;===d||&quot;(&quot;===d?&quot;&quot;:d)+p,C=(&quot;s&quot;===T?Yr[8+kr/3]:&quot;&quot;)+C+(S&amp;&amp;&quot;(&quot;===d?&quot;)&quot;:&quot;&quot;),A)for(o=-1,a=e.length;++o&lt;a;)if(48&gt;(l=e.charCodeAt(o))||l&gt;57){C=(46===l?i+e.slice(o+1):e.slice(o))+C,e=e.slice(0,o);break}}m&amp;&amp;!f&amp;&amp;(e=r(e,1/0));var P=p.length+e.length+C.length,w=P&lt;g?new Array(g-P+1).join(t):&quot;&quot;;switch(m&amp;&amp;f&amp;&amp;(e=r(w+e,w.length?g-C.length:1/0),w=&quot;&quot;),n){case&quot;&lt;&quot;:e=p+e+C+w;break;case&quot;=&quot;:e=p+w+e+C;break;case&quot;^&quot;:e=w.slice(0,P=w.length&gt;&gt;1)+p+e+C+w.slice(P);break;default:e=w+p+e+C}return s(e)}return h=void 0===h?6:/[gprs]/.test(T)?Math.max(1,Math.min(21,h)):Math.max(0,Math.min(20,h)),C.toString=function(){return e+&quot;&quot;},C}return{format:d,formatPrefix:function(e,t){var n=d(((e=Ur(e)).type=&quot;f&quot;,e)),r=3*Math.max(-8,Math.min(8,Math.floor(Nr(t)/3))),o=Math.pow(10,-r),a=Yr[8+r/3];return function(e){return n(o*e)+a}}}}function Zr(e,t,n,r){var o,a=function(e,t,n){var r=Math.abs(t-e)/Math.max(0,n),o=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),a=r/o;return a&gt;=Mn?o*=10:a&gt;=Dn?o*=5:a&gt;=En&amp;&amp;(o*=2),t&lt;e?-o:o}(e,t,n);switch((r=Ur(null==r?&quot;,f&quot;:r)).type){case&quot;s&quot;:var i=Math.max(Math.abs(e),Math.abs(t));return null!=r.precision||isNaN(o=function(e,t){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(Nr(t)/3)))-Nr(Math.abs(e)))}(a,i))||(r.precision=o),Xr(r,i);case&quot;&quot;:case&quot;e&quot;:case&quot;g&quot;:case&quot;p&quot;:case&quot;r&quot;:null!=r.precision||isNaN(o=function(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,Nr(t)-Nr(e))+1}(a,Math.max(Math.abs(e),Math.abs(t))))||(r.precision=o-(&quot;e&quot;===r.type));break;case&quot;f&quot;:case&quot;%&quot;:null!=r.precision||isNaN(o=function(e){return Math.max(0,-Nr(Math.abs(e)))}(a))||(r.precision=o-2*(&quot;%&quot;===r.type))}return jr(r)}function Qr(e){var t=e.domain;return e.ticks=function(e){var n=t();return function(e,t,n){var r,o,a,i,s=-1;if(n=+n,(e=+e)==(t=+t)&amp;&amp;n&gt;0)return[e];if((r=t&lt;e)&amp;&amp;(o=e,e=t,t=o),0===(i=Vn(e,t,n))||!isFinite(i))return[];if(i&gt;0){let n=Math.round(e/i),r=Math.round(t/i);for(n*i&lt;e&amp;&amp;++n,r*i&gt;t&amp;&amp;--r,a=new Array(o=r-n+1);++s&lt;o;)a[s]=(n+s)*i}else{i=-i;let n=Math.round(e*i),r=Math.round(t*i);for(n/i&lt;e&amp;&amp;++n,r/i&gt;t&amp;&amp;--r,a=new Array(o=r-n+1);++s&lt;o;)a[s]=(n+s)/i}return r&amp;&amp;a.reverse(),a}(n[0],n[n.length-1],null==e?10:e)},e.tickFormat=function(e,n){var r=t();return Zr(r[0],r[r.length-1],null==e?10:e,n)},e.nice=function(n){null==n&amp;&amp;(n=10);var r,o,a=t(),i=0,s=a.length-1,l=a[i],c=a[s],u=10;for(c&lt;l&amp;&amp;(o=l,l=c,c=o,o=i,i=s,s=o);u-- &gt;0;){if((o=Vn(l,c,n))===r)return a[i]=l,a[s]=c,t(a);if(o&gt;0)l=Math.floor(l/o)*o,c=Math.ceil(c/o)*o;else{if(!(o&lt;0))break;l=Math.ceil(l*o)/o,c=Math.floor(c*o)/o}r=o}return e},e}function $r(){var e=Br()(Dr,Dr);return e.copy=function(){return t=e,$r().domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown());var t},Ln.apply(e,arguments),Qr(e)}Hr=Jr({thousands:&quot;,&quot;,grouping:[3],currency:[&quot;$&quot;,&quot;&quot;]}),jr=Hr.format,Xr=Hr.formatPrefix;var eo={exports:{}};(function(e,t,n){function r(e){var t=this,n=function(){var e=4022871197,t=function(t){t=String(t);for(var n=0;n&lt;t.length;n++){var r=.02519603282416938*(e+=t.charCodeAt(n));r-=e=r&gt;&gt;&gt;0,e=(r*=e)&gt;&gt;&gt;0,e+=4294967296*(r-=e)}return 2.3283064365386963e-10*(e&gt;&gt;&gt;0)};return t}();t.next=function(){var e=2091639*t.s0+2.3283064365386963e-10*t.c;return t.s0=t.s1,t.s1=t.s2,t.s2=e-(t.c=0|e)},t.c=1,t.s0=n(&quot; &quot;),t.s1=n(&quot; &quot;),t.s2=n(&quot; &quot;),t.s0-=n(e),t.s0&lt;0&amp;&amp;(t.s0+=1),t.s1-=n(e),t.s1&lt;0&amp;&amp;(t.s1+=1),t.s2-=n(e),t.s2&lt;0&amp;&amp;(t.s2+=1),n=null}function o(e,t){return t.c=e.c,t.s0=e.s0,t.s1=e.s1,t.s2=e.s2,t}function a(e,t){var n=new r(e),a=t&amp;&amp;t.state,i=n.next;return i.int32=function(){return 4294967296*n.next()|0},i.double=function(){return i()+11102230246251565e-32*(2097152*i()|0)},i.quick=i,a&amp;&amp;(&quot;object&quot;==typeof a&amp;&amp;o(a,n),i.state=function(){return o(n,{})}),i}t&amp;&amp;t.exports?t.exports=a:n&amp;&amp;n.amd?n((function(){return a})):this.alea=a})(0,eo,!1);var to={exports:{}};!function(e){!function(e,t,n){function r(e){var t=this,n=&quot;&quot;;t.x=0,t.y=0,t.z=0,t.w=0,t.next=function(){var e=t.x^t.x&lt;&lt;11;return t.x=t.y,t.y=t.z,t.z=t.w,t.w^=t.w&gt;&gt;&gt;19^e^e&gt;&gt;&gt;8},e===(0|e)?t.x=e:n+=e;for(var r=0;r&lt;n.length+64;r++)t.x^=0|n.charCodeAt(r),t.next()}function o(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t}function a(e,t){var n=new r(e),a=t&amp;&amp;t.state,i=function(){return(n.next()&gt;&gt;&gt;0)/4294967296};return i.double=function(){do{var e=((n.next()&gt;&gt;&gt;11)+(n.next()&gt;&gt;&gt;0)/4294967296)/(1&lt;&lt;21)}while(0===e);return e},i.int32=n.next,i.quick=i,a&amp;&amp;(&quot;object&quot;==typeof a&amp;&amp;o(a,n),i.state=function(){return o(n,{})}),i}t&amp;&amp;t.exports?t.exports=a:n&amp;&amp;n.amd?n((function(){return a})):this.xor128=a}(0,e,!1)}(to);var no={exports:{}};!function(e){!function(e,t,n){function r(e){var t=this,n=&quot;&quot;;t.next=function(){var e=t.x^t.x&gt;&gt;&gt;2;return t.x=t.y,t.y=t.z,t.z=t.w,t.w=t.v,(t.d=t.d+362437|0)+(t.v=t.v^t.v&lt;&lt;4^e^e&lt;&lt;1)|0},t.x=0,t.y=0,t.z=0,t.w=0,t.v=0,e===(0|e)?t.x=e:n+=e;for(var r=0;r&lt;n.length+64;r++)t.x^=0|n.charCodeAt(r),r==n.length&amp;&amp;(t.d=t.x&lt;&lt;10^t.x&gt;&gt;&gt;4),t.next()}function o(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t.v=e.v,t.d=e.d,t}function a(e,t){var n=new r(e),a=t&amp;&amp;t.state,i=function(){return(n.next()&gt;&gt;&gt;0)/4294967296};return i.double=function(){do{var e=((n.next()&gt;&gt;&gt;11)+(n.next()&gt;&gt;&gt;0)/4294967296)/(1&lt;&lt;21)}while(0===e);return e},i.int32=n.next,i.quick=i,a&amp;&amp;(&quot;object&quot;==typeof a&amp;&amp;o(a,n),i.state=function(){return o(n,{})}),i}t&amp;&amp;t.exports?t.exports=a:n&amp;&amp;n.amd?n((function(){return a})):this.xorwow=a}(0,e,!1)}(no);var ro={exports:{}};!function(e){!function(e,t,n){function r(e){var t=this;t.next=function(){var e,n,r=t.x,o=t.i;return e=r[o],n=(e^=e&gt;&gt;&gt;7)^e&lt;&lt;24,n^=(e=r[o+1&amp;7])^e&gt;&gt;&gt;10,n^=(e=r[o+3&amp;7])^e&gt;&gt;&gt;3,n^=(e=r[o+4&amp;7])^e&lt;&lt;7,e=r[o+7&amp;7],n^=(e^=e&lt;&lt;13)^e&lt;&lt;9,r[o]=n,t.i=o+1&amp;7,n},function(e,t){var n,r=[];if(t===(0|t))r[0]=t;else for(t=&quot;&quot;+t,n=0;n&lt;t.length;++n)r[7&amp;n]=r[7&amp;n]&lt;&lt;15^t.charCodeAt(n)+r[n+1&amp;7]&lt;&lt;13;for(;r.length&lt;8;)r.push(0);for(n=0;n&lt;8&amp;&amp;0===r[n];++n);for(8==n?r[7]=-1:r[n],e.x=r,e.i=0,n=256;n&gt;0;--n)e.next()}(t,e)}function o(e,t){return t.x=e.x.slice(),t.i=e.i,t}function a(e,t){null==e&amp;&amp;(e=+new Date);var n=new r(e),a=t&amp;&amp;t.state,i=function(){return(n.next()&gt;&gt;&gt;0)/4294967296};return i.double=function(){do{var e=((n.next()&gt;&gt;&gt;11)+(n.next()&gt;&gt;&gt;0)/4294967296)/(1&lt;&lt;21)}while(0===e);return e},i.int32=n.next,i.quick=i,a&amp;&amp;(a.x&amp;&amp;o(a,n),i.state=function(){return o(n,{})}),i}t&amp;&amp;t.exports?t.exports=a:n&amp;&amp;n.amd?n((function(){return a})):this.xorshift7=a}(0,e,!1)}(ro);var oo={exports:{}};!function(e){!function(e,t,n){function r(e){var t=this;t.next=function(){var e,n,r=t.w,o=t.X,a=t.i;return t.w=r=r+1640531527|0,n=o[a+34&amp;127],e=o[a=a+1&amp;127],n^=n&lt;&lt;13,e^=e&lt;&lt;17,n^=n&gt;&gt;&gt;15,e^=e&gt;&gt;&gt;12,n=o[a]=n^e,t.i=a,n+(r^r&gt;&gt;&gt;16)|0},function(e,t){var n,r,o,a,i,s=[],l=128;for(t===(0|t)?(r=t,t=null):(t+=&quot;\\0&quot;,r=0,l=Math.max(l,t.length)),o=0,a=-32;a&lt;l;++a)t&amp;&amp;(r^=t.charCodeAt((a+32)%t.length)),0===a&amp;&amp;(i=r),r^=r&lt;&lt;10,r^=r&gt;&gt;&gt;15,r^=r&lt;&lt;4,r^=r&gt;&gt;&gt;13,a&gt;=0&amp;&amp;(i=i+1640531527|0,o=0==(n=s[127&amp;a]^=r+i)?o+1:0);for(o&gt;=128&amp;&amp;(s[127&amp;(t&amp;&amp;t.length||0)]=-1),o=127,a=512;a&gt;0;--a)r=s[o+34&amp;127],n=s[o=o+1&amp;127],r^=r&lt;&lt;13,n^=n&lt;&lt;17,r^=r&gt;&gt;&gt;15,n^=n&gt;&gt;&gt;12,s[o]=r^n;e.w=i,e.X=s,e.i=o}(t,e)}function o(e,t){return t.i=e.i,t.w=e.w,t.X=e.X.slice(),t}function a(e,t){null==e&amp;&amp;(e=+new Date);var n=new r(e),a=t&amp;&amp;t.state,i=function(){return(n.next()&gt;&gt;&gt;0)/4294967296};return i.double=function(){do{var e=((n.next()&gt;&gt;&gt;11)+(n.next()&gt;&gt;&gt;0)/4294967296)/(1&lt;&lt;21)}while(0===e);return e},i.int32=n.next,i.quick=i,a&amp;&amp;(a.X&amp;&amp;o(a,n),i.state=function(){return o(n,{})}),i}t&amp;&amp;t.exports?t.exports=a:n&amp;&amp;n.amd?n((function(){return a})):this.xor4096=a}(0,e,!1)}(oo);var ao={exports:{}};!function(e){!function(e,t,n){function r(e){var t=this,n=&quot;&quot;;t.next=function(){var e=t.b,n=t.c,r=t.d,o=t.a;return e=e&lt;&lt;25^e&gt;&gt;&gt;7^n,n=n-r|0,r=r&lt;&lt;24^r&gt;&gt;&gt;8^o,o=o-e|0,t.b=e=e&lt;&lt;20^e&gt;&gt;&gt;12^n,t.c=n=n-r|0,t.d=r&lt;&lt;16^n&gt;&gt;&gt;16^o,t.a=o-e|0},t.a=0,t.b=0,t.c=-1640531527,t.d=1367130551,e===Math.floor(e)?(t.a=e/4294967296|0,t.b=0|e):n+=e;for(var r=0;r&lt;n.length+20;r++)t.b^=0|n.charCodeAt(r),t.next()}function o(e,t){return t.a=e.a,t.b=e.b,t.c=e.c,t.d=e.d,t}function a(e,t){var n=new r(e),a=t&amp;&amp;t.state,i=function(){return(n.next()&gt;&gt;&gt;0)/4294967296};return i.double=function(){do{var e=((n.next()&gt;&gt;&gt;11)+(n.next()&gt;&gt;&gt;0)/4294967296)/(1&lt;&lt;21)}while(0===e);return e},i.int32=n.next,i.quick=i,a&amp;&amp;(&quot;object&quot;==typeof a&amp;&amp;o(a,n),i.state=function(){return o(n,{})}),i}t&amp;&amp;t.exports?t.exports=a:n&amp;&amp;n.amd?n((function(){return a})):this.tychei=a}(0,e,!1)}(ao);var io={exports:{}};!function(e){!function(t,n,r){var o,a=256,i=&quot;random&quot;,s=r.pow(a,6),l=r.pow(2,52),c=2*l,u=255;function d(e,u,d){var v=[],T=m(g((u=1==u?{entropy:!0}:u||{}).entropy?[e,h(n)]:null==e?function(){try{var e;return o&amp;&amp;(e=o.randomBytes)?e=e(a):(e=new Uint8Array(a),(t.crypto||t.msCrypto).getRandomValues(e)),h(e)}catch(e){var r=t.navigator,i=r&amp;&amp;r.plugins;return[+new Date,t,i,t.screen,h(n)]}}():e,3),v),x=new p(v),y=function(){for(var e=x.g(6),t=s,n=0;e&lt;l;)e=(e+n)*a,t*=a,n=x.g(1);for(;e&gt;=c;)e/=2,t/=2,n&gt;&gt;&gt;=1;return(e+n)/t};return y.int32=function(){return 0|x.g(4)},y.quick=function(){return x.g(4)/4294967296},y.double=y,m(h(x.S),n),(u.pass||d||function(e,t,n,o){return o&amp;&amp;(o.S&amp;&amp;f(o,x),e.state=function(){return f(x,{})}),n?(r[i]=e,t):e})(y,T,&quot;global&quot;in u?u.global:this==r,u.state)}function p(e){var t,n=e.length,r=this,o=0,i=r.i=r.j=0,s=r.S=[];for(n||(e=[n++]);o&lt;a;)s[o]=o++;for(o=0;o&lt;a;o++)s[o]=s[i=u&amp;i+e[o%n]+(t=s[o])],s[i]=t;(r.g=function(e){for(var t,n=0,o=r.i,i=r.j,s=r.S;e--;)t=s[o=u&amp;o+1],n=n*a+s[u&amp;(s[o]=s[i=u&amp;i+t])+(s[i]=t)];return r.i=o,r.j=i,n})(a)}function f(e,t){return t.i=e.i,t.j=e.j,t.S=e.S.slice(),t}function g(e,t){var n,r=[],o=typeof e;if(t&amp;&amp;&quot;object&quot;==o)for(n in e)try{r.push(g(e[n],t-1))}catch(e){}return r.length?r:&quot;string&quot;==o?e:e+&quot;\\0&quot;}function m(e,t){for(var n,r=e+&quot;&quot;,o=0;o&lt;r.length;)t[u&amp;o]=u&amp;(n^=19*t[u&amp;o])+r.charCodeAt(o++);return h(t)}function h(e){return String.fromCharCode.apply(0,e)}if(m(r.random(),n),e.exports){e.exports=d;try{o=require(&quot;crypto&quot;)}catch(e){}}else r[&quot;seed&quot;+i]=d}(&quot;undefined&quot;!=typeof self?self:Te,[],Math)}(io);var so=eo.exports,lo=to.exports,co=no.exports,uo=ro.exports,po=oo.exports,fo=ao.exports,go=io.exports;go.alea=so,go.xor128=lo,go.xorwow=co,go.xorshift7=uo,go.xor4096=po,go.tychei=fo;var mo=go;const ho=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],vo=[1,0,0,0,1,0,0,0,1],To=1e-12,{vtkErrorMacro:xo,vtkWarningMacro:yo}=sn;let bo=0;function Ao(e){return()=&gt;xo(`vtkMath::${e} - NOT IMPLEMENTED`)}function Co(e,t,n,r){let o;for(let a=0;a&lt;t;a++)o=e[n*t+a],e[n*t+a]=e[r*t+a],e[r*t+a]=o}function So(e,t,n,r){let o;for(let a=0;a&lt;t;a++)o=e[a*t+n],e[a*t+n]=e[a*t+r],e[a*t+r]=o}function Po(e=3){const t=Array(e);for(let n=0;n&lt;e;++n)t[n]=0;return t}function wo(e){return e/180*Math.PI}function Io(e){return 180*e/Math.PI}const{round:Oo,floor:Ro,ceil:Mo,min:Do,max:Eo}=Math;const Vo=Ao(&quot;ceilLog2&quot;),Lo=Ao(&quot;factorial&quot;);function Bo(e){let t=1;for(;t&lt;e;)t*=2;return t}function Fo(e){return e===Bo(e)}const No=Ao(&quot;gaussian&quot;);function ko(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n}function Go(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n}function Uo(e,t){return e[0]*=t,e[1]*=t,e[2]*=t,e}function _o(e,t){return e[0]*=t,e[1]*=t,e}function Ko(e,t,n,r){return r[0]=e[0]+t[0]*n,r[1]=e[1]+t[1]*n,r[2]=e[2]+t[2]*n,r}function zo(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function Wo(e,t,n){const r=e[1]*t[2]-e[2]*t[1],o=e[2]*t[0]-e[0]*t[2],a=e[0]*t[1]-e[1]*t[0];return n[0]=r,n[1]=o,n[2]=a,n}function Ho(e,t=3){switch(t){case 1:return Math.abs(e);case 2:return Math.sqrt(e[0]*e[0]+e[1]*e[1]);case 3:return Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);default:{let n=0;for(let r=0;r&lt;t;r++)n+=e[r]*e[r];return Math.sqrt(n)}}}function jo(e){const t=Ho(e);return 0!==t&amp;&amp;(e[0]/=t,e[1]/=t,e[2]/=t),t}function Xo(e){const t=Ho(e,3);return 0!==t&amp;&amp;(e[0]/=t,e[1]/=t,e[2]/=t,e[3]/=t),t}function qo(e,t){return e[0]*t[0]+e[1]*t[1]}function Yo(e,t){return(e[0]-t[0])*(e[0]-t[0])+(e[1]-t[1])*(e[1]-t[1])+(e[2]-t[2])*(e[2]-t[2])}function Jo(e){return Math.sqrt(e[0]*e[0]+e[1]*e[1])}function Zo(e){const t=Jo(e);return 0!==t&amp;&amp;(e[0]/=t,e[1]/=t),t}function Qo(...e){return 2===e.length?e[0][0]*e[1][1]-e[1][0]*e[0][1]:4===e.length?e[0]*e[3]-e[1]*e[2]:Number.NaN}function $o(e,t,n){const r=e[0]*t[0]+e[1]*t[1]+e[2]*t[2],o=e[3]*t[0]+e[4]*t[1]+e[5]*t[2],a=e[6]*t[0]+e[7]*t[1]+e[8]*t[2];n[0]=r,n[1]=o,n[2]=a}function ea(e,t,n){const r=[...e],o=[...t];for(let e=0;e&lt;3;e++)n[e]=r[0]*o[e]+r[1]*o[e+3]+r[2]*o[e+6],n[e+3]=r[3]*o[e]+r[4]*o[e+3]+r[5]*o[e+6],n[e+6]=r[6]*o[e]+r[7]*o[e+3]+r[8]*o[e+6]}function ta(e,t){let n;n=e[3],t[3]=e[1],t[1]=n,n=e[6],t[6]=e[2],t[2]=n,n=e[7],t[7]=e[5],t[5]=n,t[0]=e[0],t[4]=e[4],t[8]=e[8]}function na(e){return e[0]*e[4]*e[8]+e[3]*e[7]*e[2]+e[6]*e[1]*e[5]-e[0]*e[7]*e[5]-e[3]*e[1]*e[8]-e[6]*e[4]*e[2]}function ra(e,t,n=1e-6){if(e.length!==t.length)return!1;return e.every((function(e,r){return Math.abs(e-t[r])&lt;=n}))}const oa=ra;function aa(e){for(let t=0;t&lt;3;t++)e[3*t]=e[3*t+1]=e[3*t+2]=0,e[3*t+t]=1}function ia(e,t){for(let n=0;n&lt;e;n++){for(let r=0;r&lt;e;r++)t[n*e+r]=0;t[n*e+n]=1}return t}function sa(e,t){const n=e[0]*e[0],r=e[0]*e[1],o=e[0]*e[2],a=e[0]*e[3],i=e[1]*e[1],s=e[2]*e[2],l=e[3]*e[3],c=e[1]*e[2],u=e[1]*e[3],d=e[2]*e[3],p=i+s+l;let f=1/(n+p);const g=(n-p)*f;f*=2,t[0]=i*f+g,t[3]=(c+a)*f,t[6]=(u-o)*f,t[1]=(c-a)*f,t[4]=s*f+g,t[7]=(d+r)*f,t[2]=(u+o)*f,t[5]=(d-r)*f,t[8]=l*f+g}function la(e,t=0){if(!`${e}`.includes(&quot;e&quot;))return+`${Math.round(`${e}e+${t}`)}e-${t}`;const n=`${e}`.split(&quot;e&quot;);let r=&quot;&quot;;return+n[1]+t&gt;0&amp;&amp;(r=&quot;+&quot;),+`${Math.round(`${+n[0]}e${r}${+n[1]+t}`)}e-${t}`}function ca(e,t=[0,0,0],n=0){return t[0]=la(e[0],n),t[1]=la(e[1],n),t[2]=la(e[2],n),t}function ua(e,t,n,r){let o,a,i,s,l,c,u,d,p,f,g,m,h,v,T,x;const y=Po(t),b=Po(t),A=(e,t,n)=&gt;{v=e[t],h=e[n],e[t]=v-m*(h+v*f),e[n]=h+m*(v-h*f)};for(ia(t,r),l=0;l&lt;t;l++)y[l]=n[l]=e[l+l*t],b[l]=0;for(o=0;o&lt;20;o++){for(g=0,l=0;l&lt;t-1;l++)for(s=l+1;s&lt;t;s++)g+=Math.abs(e[l*t+s]);if(0===g)break;for(u=o&lt;3?.2*g/(t*t):0,l=0;l&lt;t-1;l++)for(s=l+1;s&lt;t;s++)if(v=100*Math.abs(e[l*t+s]),o&gt;3&amp;&amp;Math.abs(n[l])+v===Math.abs(n[l])&amp;&amp;Math.abs(n[s])+v===Math.abs(n[s]))e[l*t+s]=0;else if(Math.abs(e[l*t+s])&gt;u){for(h=n[s]-n[l],Math.abs(h)+v===Math.abs(h)?p=e[l*t+s]/h:(d=.5*h/e[l*t+s],p=1/(Math.abs(d)+Math.sqrt(1+d*d)),d&lt;0&amp;&amp;(p=-p)),T=1/Math.sqrt(1+p*p),m=p*T,f=m/(1+T),h=p*e[l*t+s],b[l]-=h,b[s]+=h,n[l]-=h,n[s]+=h,e[l*t+s]=0,a=0;a&lt;=l-1;a++)A(e,a*t+l,a*t+s);for(a=l+1;a&lt;=s-1;a++)A(e,l*t+a,a*t+s);for(a=s+1;a&lt;t;a++)A(e,l*t+a,s*t+a);for(a=0;a&lt;t;a++)A(r,a*t+l,a*t+s)}for(l=0;l&lt;t;l++)y[l]+=b[l],n[l]=y[l],b[l]=0}if(o&gt;=20)return yo(&quot;vtkMath::Jacobi: Error extracting eigenfunctions&quot;),0;for(a=0;a&lt;t-1;a++){for(i=a,x=n[i],o=a+1;o&lt;t;o++)(n[o]&gt;=x||Math.abs(n[o]-x)&lt;To)&amp;&amp;(i=o,x=n[i]);i!==a&amp;&amp;(n[i]=n[a],n[a]=x,So(r,t,a,i))}const C=(t&gt;&gt;1)+(1&amp;t);for(c=0,o=0;o&lt;t*t;o++)r[o]&gt;=0&amp;&amp;c++;if(c&lt;C)for(o=0;o&lt;t;o++)r[o*t+a]*=-1;return 1}function da(e,t){const n=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];n[0]=e[0]+e[4]+e[8],n[5]=e[0]-e[4]-e[8],n[10]=-e[0]+e[4]-e[8],n[15]=-e[0]-e[4]+e[8],n[1]=n[4]=e[7]-e[5],n[2]=n[8]=e[2]-e[6],n[3]=n[12]=e[3]-e[1],n[6]=n[9]=e[3]+e[1],n[7]=n[13]=e[2]+e[6],n[11]=n[14]=e[7]+e[5];const r=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];ua([...n],4,[0,0,0,0],r),t[0]=r[0],t[1]=r[4],t[2]=r[8],t[3]=r[12]}function pa(e,t){for(let n=0;n&lt;9;n++)t[n]=e[n];const n=Po(3),r=Po(3);let o;for(let e=0;e&lt;3;e++){const r=Math.abs(t[3*e]),a=Math.abs(t[3*e+1]),i=Math.abs(t[3*e+2]);o=a&gt;r?a:r,o=i&gt;o?i:o,n[e]=1,0!==o&amp;&amp;(n[e]/=o)}const a=Math.abs(t[0])*n[0],i=Math.abs(t[3])*n[1],s=Math.abs(t[6])*n[2];r[0]=0,o=a,i&gt;=o&amp;&amp;(o=i,r[0]=1),s&gt;=o&amp;&amp;(r[0]=2),0!==r[0]&amp;&amp;(So(t,3,r[0],0),n[r[0]]=n[0]);const l=Math.abs(t[4])*n[1],c=Math.abs(t[7])*n[2];r[1]=1,o=l,c&gt;=o&amp;&amp;(r[1]=2,So(t,3,1,2)),r[2]=2;let u=0;if(na(t)&lt;0){u=1;for(let e=0;e&lt;9;e++)t[e]=-t[e]}const d=Po(4);if(da(t,d),sa(d,t),u)for(let e=0;e&lt;9;e++)t[e]=-t[e];1!==r[1]&amp;&amp;So(t,3,r[1],1),0!==r[0]&amp;&amp;So(t,3,r[0],0)}function fa(e,t,n){let r,o,a,i,s,l;if(ua([...e],3,t,n),t[0]!==t[1]||t[0]!==t[2]){for(ta(n,n),r=0;r&lt;3;r++)if(t[(r+1)%3]===t[(r+2)%3]){for(l=Math.abs(n[3*r]),i=0,o=1;o&lt;3;o++)l&lt;(s=Math.abs(n[3*r+o]))&amp;&amp;(l=s,i=o);i!==r&amp;&amp;(s=t[i],t[i]=t[r],t[r]=s,Co(n,3,r,i)),n[3*i+i]&lt;0&amp;&amp;(n[3*i]=-n[3*i],n[3*i+1]=-n[3*i+1],n[3*i+2]=-n[3*i+2]),o=(i+1)%3,a=(i+2)%3,n[3*o]=0,n[3*o+1]=0,n[3*o+2]=0,n[3*o+o]=1;const e=Wo([n[3*i],n[3*i+1],n[3*i+2]],[n[3*o],n[3*o+1],n[3*o+2]],[]);jo(e);const c=Wo(e,[n[3*i],n[3*i+1],n[3*i+2]],[]);for(let t=0;t&lt;3;t++)n[3*a+t]=e[t],n[3*o+t]=c[t];return void ta(n,n)}for(l=Math.abs(n[0]),i=0,r=1;r&lt;3;r++)l&lt;(s=Math.abs(n[3*r]))&amp;&amp;(l=s,i=r);if(0!==i){const e=t[i];t[i]=t[0],t[0]=e,Co(n,3,i,0)}if(Math.abs(n[4])&lt;Math.abs(n[7])){const e=t[2];t[2]=t[1],t[1]=e,Co(n,3,1,2)}for(r=0;r&lt;2;r++)n[3*r+r]&lt;0&amp;&amp;(n[3*r]=-n[3*r],n[3*r+1]=-n[3*r+1],n[3*r+2]=-n[3*r+2]);na(n)&lt;0&amp;&amp;(n[6]=-n[6],n[7]=-n[7],n[8]=-n[8]),ta(n,n)}else aa(n)}function ga(e,t,n){let r,o,a,i,s,l,c,u=0;const d=Po(n);for(r=0;r&lt;n;r++){for(i=0,o=0;o&lt;n;o++)(c=Math.abs(e[r*n+o]))&gt;i&amp;&amp;(i=c);if(0===i)return yo(&quot;Unable to factor linear system&quot;),0;d[r]=1/i}for(o=0;o&lt;n;o++){for(r=0;r&lt;o;r++){for(s=e[r*n+o],a=0;a&lt;r;a++)s-=e[r*n+a]*e[a*n+o];e[r*n+o]=s}for(i=0,r=o;r&lt;n;r++){for(s=e[r*n+o],a=0;a&lt;o;a++)s-=e[r*n+a]*e[a*n+o];e[r*n+o]=s,(l=d[r]*Math.abs(s))&gt;=i&amp;&amp;(i=l,u=r)}if(o!==u){for(a=0;a&lt;n;a++)l=e[u*n+a],e[u*n+a]=e[o*n+a],e[o*n+a]=l;d[u]=d[o]}if(t[o]=u,Math.abs(e[o*n+o])&lt;=To)return yo(&quot;Unable to factor linear system&quot;),0;if(o!==n-1)for(l=1/e[o*n+o],r=o+1;r&lt;n;r++)e[r*n+o]*=l}return 1}function ma(e,t,n,r){let o,a,i,s,l;for(i=-1,o=0;o&lt;r;o++){if(s=t[o],l=n[s],n[s]=n[o],i&gt;=0)for(a=i;a&lt;=o-1;a++)l-=e[o*r+a]*n[a];else 0!==l&amp;&amp;(i=o);n[o]=l}for(o=r-1;o&gt;=0;o--){for(l=n[o],a=o+1;a&lt;r;a++)l-=e[o*r+a]*n[a];n[o]=l/e[o*r+o]}}function ha(e,t,n){if(2===n){const n=Po(2),r=Qo(e[0],e[1],e[2],e[3]);return 0===r?0:(n[0]=(e[3]*t[0]-e[1]*t[1])/r,n[1]=(-e[2]*t[0]+e[0]*t[1])/r,t[0]=n[0],t[1]=n[1],1)}if(1===n)return 0===e[0]?0:(t[0]/=e[0],1);const r=Po(n);return 0===ga(e,r,n)?0:(ma(e,r,t,n),1)}function va(e,t,n,r=null,o=null){const a=r||Po(n),i=o||Po(n);if(0===ga(e,a,n))return null;for(let r=0;r&lt;n;r++){for(let e=0;e&lt;n;e++)i[e]=0;i[r]=1,ma(e,a,i,n);for(let e=0;e&lt;n;e++)t[e*n+r]=i[e]}return t}function Ta(e,t,n,r){if(e&lt;n)return yo(&quot;Insufficient number of samples. Underdetermined.&quot;),0;let o,a,i;const s=Po(n*n),l=Po(n),c=Po(n*n);for(i=0;i&lt;e;i++)for(o=0;o&lt;n;o++)for(a=o;a&lt;n;a++)s[o*n+a]+=t[i*n+o]*t[i*n+a];for(o=0;o&lt;n;o++)for(a=0;a&lt;o;a++)s[o*n+a]=s[a*n+o];for(ua(s,n,l,c),o=0;o&lt;n;o++)r[o]=c[o*n+n-1];return 1}function xa(e,t){let n,r;const[o,a,i]=e,s=1/6;let l=o,c=o;a&gt;l?l=a:a&lt;c&amp;&amp;(c=a),i&gt;l?l=i:i&lt;c&amp;&amp;(c=i);const u=l;r=u&gt;0?(l-c)/l:0,r&gt;0?(n=o===l?s*(a-i)/(l-c):a===l?1/3+s*(i-o)/(l-c):2/3+s*(o-a)/(l-c),n&lt;0&amp;&amp;(n+=1)):n=0,t[0]=n,t[1]=r,t[2]=u}function ya(e,t){const[n,r,o]=e,a=1/3,i=1/6,s=2/3,l=5/6;let c,u,d;n&gt;i&amp;&amp;n&lt;=a?(u=1,c=(a-n)/i,d=0):n&gt;a&amp;&amp;n&lt;=.5?(u=1,d=(n-a)/i,c=0):n&gt;.5&amp;&amp;n&lt;=s?(d=1,u=(s-n)/i,c=0):n&gt;s&amp;&amp;n&lt;=l?(d=1,c=(n-s)/i,u=0):n&gt;l&amp;&amp;n&lt;=1?(c=1,d=(1-n)/i,u=0):(c=1,u=n/i,d=0),c=r*c+(1-r),u=r*u+(1-r),d=r*d+(1-r),c*=o,u*=o,d*=o,t[0]=c,t[1]=u,t[2]=d}function ba(e,t){const[n,r,o]=e;let a=(n+16)/116,i=r/500+a,s=a-o/200;a**3&gt;.008856?a**=3:a=(a-16/116)/7.787,i**3&gt;.008856?i**=3:i=(i-16/116)/7.787,s**3&gt;.008856?s**=3:s=(s-16/116)/7.787;t[0]=.9505*i,t[1]=1*a,t[2]=1.089*s}function Aa(e,t){const[n,r,o]=e;let a=n/.9505,i=r/1,s=o/1.089;a&gt;.008856?a**=1/3:a=7.787*a+16/116,i&gt;.008856?i**=1/3:i=7.787*i+16/116,s&gt;.008856?s**=1/3:s=7.787*s+16/116,t[0]=116*i-16,t[1]=500*(a-i),t[2]=200*(i-s)}function Ca(e,t){const[n,r,o]=e;let a=3.2406*n+-1.5372*r+-.4986*o,i=-.9689*n+1.8758*r+.0415*o,s=.0557*n+-.204*r+1.057*o;a&gt;.0031308?a=1.055*a**(1/2.4)-.055:a*=12.92,i&gt;.0031308?i=1.055*i**(1/2.4)-.055:i*=12.92,s&gt;.0031308?s=1.055*s**(1/2.4)-.055:s*=12.92;let l=a;l&lt;i&amp;&amp;(l=i),l&lt;s&amp;&amp;(l=s),l&gt;1&amp;&amp;(a/=l,i/=l,s/=l),a&lt;0&amp;&amp;(a=0),i&lt;0&amp;&amp;(i=0),s&lt;0&amp;&amp;(s=0),t[0]=a,t[1]=i,t[2]=s}function Sa(e,t){let[n,r,o]=e;n&gt;.04045?n=((n+.055)/1.055)**2.4:n/=12.92,r&gt;.04045?r=((r+.055)/1.055)**2.4:r/=12.92,o&gt;.04045?o=((o+.055)/1.055)**2.4:o/=12.92,t[0]=.4124*n+.3576*r+.1805*o,t[1]=.2126*n+.7152*r+.0722*o,t[2]=.0193*n+.1192*r+.9505*o}function Pa(e,t){const n=[0,0,0];Sa(e,n),Aa(n,t)}function wa(e,t){const n=[0,0,0];ba(e,n),Ca(n,t)}function Ia(e){return e[0]=1,e[1]=-1,e[2]=1,e[3]=-1,e[4]=1,e[5]=-1,e}function Oa(e){return!(e[1]-e[0]&lt;0)}function Ra(e,t,n){return e&lt;t?t:e&gt;n?n:e}function Ma(e,t,n,r=[0,0,0]){return r[0]=Ra(e[0],t[0],n[0]),r[1]=Ra(e[1],t[1],n[1]),r[2]=Ra(e[2],t[2],n[2]),r}const Da=Ao(&quot;GetScalarTypeFittingRange&quot;),Ea=Ao(&quot;GetAdjustedScalarRange&quot;);const Va=1/0,La=-1/0,Ba=e=&gt;!Number.isFinite(e),{isFinite:Fa,isNaN:Na}=Number,ka=Na;function Ga(){return[].concat([Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE])}function Ua(e,t=3){const n=new Array(t),r=new Array(t);for(let e=0;e&lt;t;++e)n[e]=e,r[e]=e;for(let o=t-1;o&gt;0;o--){let a=-1/0,i=0,s=0;for(let l=0;l&lt;=o;++l){const c=n[l];for(let n=0;n&lt;=o;++n){const o=r[n],u=Math.abs(e[c+t*o]);u&gt;a&amp;&amp;(a=u,i=l,s=n)}}[n[o],n[i]]=[n[i],n[o]],[r[o],r[s]]=[r[s],r[o]]}const o=new Array(t*t).fill(0);for(let a=0;a&lt;t;++a){const i=n[a]+t*r[a];o[i]=e[i]&lt;0?-1:1}return o}function _a(e){const t=Math.floor(255*e);return t&gt;15?t.toString(16):`0${t.toString(16)}`}function Ka(e){return Math.round(255*e)}var za={Pi:()=&gt;Math.PI,ldexp:function(e,t){return t&gt;1023?e*2**1023*2**(t-1023):t&lt;-1074?5e-324*e*2**(t+1074):e*2**t},radiansFromDegrees:wo,degreesFromRadians:Io,round:Oo,floor:Ro,ceil:Mo,ceilLog2:Vo,min:Do,max:Eo,arrayMin:function(e,t=0,n=1){let r=1/0;for(let o=t,a=e.length;o&lt;a;o+=n)e[o]&lt;r&amp;&amp;(r=e[o]);return r},arrayMax:function(e,t=0,n=1){let r=-1/0;for(let o=t,a=e.length;o&lt;a;o+=n)r&lt;e[o]&amp;&amp;(r=e[o]);return r},arrayRange:function(e,t=0,n=1){let r=1/0,o=-1/0;for(let a=t,i=e.length;a&lt;i;a+=n)e[a]&lt;r&amp;&amp;(r=e[a]),o&lt;e[a]&amp;&amp;(o=e[a]);return[r,o]},isPowerOfTwo:Fo,nearestPowerOfTwo:Bo,factorial:Lo,binomial:function(e,t){let n=1;for(let r=1;r&lt;=t;++r)n*=(e-r+1)/r;return Math.floor(n)},beginCombination:function(e,t){if(e&lt;t)return 0;const n=Po(t);for(let e=0;e&lt;t;++e)n[e]=e;return n},nextCombination:function(e,t,n){let r=0;for(let o=t-1;o&gt;=0;--o)if(n[o]&lt;e-t+o){let e=n[o]+1;for(;o&lt;t;)n[o++]=e++;r=1;break}return r},randomSeed:function(e){mo(`${e}`,{global:!0}),bo=e},getSeed:function(){return bo},random:function(e=0,t=1){return e+(t-e)*Math.random()},gaussian:No,add:ko,subtract:Go,multiplyScalar:Uo,multiplyScalar2D:_o,multiplyAccumulate:Ko,multiplyAccumulate2D:function(e,t,n,r){return r[0]=e[0]+t[0]*n,r[1]=e[1]+t[1]*n,r},dot:zo,outer:function(e,t,n){n[0]=e[0]*t[0],n[1]=e[0]*t[1],n[2]=e[0]*t[2],n[3]=e[1]*t[0],n[4]=e[1]*t[1],n[5]=e[1]*t[2],n[6]=e[2]*t[0],n[7]=e[2]*t[1],n[8]=e[2]*t[2]},cross:Wo,norm:Ho,normalize:jo,perpendiculars:function(e,t,n,r){const o=e[0]*e[0],a=e[1]*e[1],i=e[2]*e[2],s=Math.sqrt(o+a+i);let l,c,u;o&gt;a&amp;&amp;o&gt;i?(l=0,c=1,u=2):a&gt;i?(l=1,c=2,u=0):(l=2,c=0,u=1);const d=e[l]/s,p=e[c]/s,f=e[u]/s,g=Math.sqrt(d*d+f*f);if(0!==r){const e=Math.sin(r),o=Math.cos(r);t&amp;&amp;(t[l]=(f*o-d*p*e)/g,t[c]=e*g,t[u]=(-d*o-p*f*e)/g),n&amp;&amp;(n[l]=(-f*e-d*p*o)/g,n[c]=o*g,n[u]=(d*e-p*f*o)/g)}else t&amp;&amp;(t[l]=f/g,t[c]=0,t[u]=-d/g),n&amp;&amp;(n[l]=-d*p/g,n[c]=g,n[u]=-p*f/g)},projectVector:function(e,t,n){const r=zo(t,t);if(0===r)return n[0]=0,n[1]=0,n[2]=0,!1;const o=zo(e,t)/r;for(let e=0;e&lt;3;e++)n[e]=t[e];return Uo(n,o),!0},projectVector2D:function(e,t,n){const r=qo(t,t);if(0===r)return n[0]=0,n[1]=0,!1;const o=qo(e,t)/r;for(let e=0;e&lt;2;e++)n[e]=t[e];return _o(n,o),!0},distance2BetweenPoints:Yo,angleBetweenVectors:function(e,t){const n=[0,0,0];return Wo(e,t,n),Math.atan2(Ho(n),zo(e,t))},gaussianAmplitude:function(e,t,n){const r=Math.abs(e-n);return 1/Math.sqrt(2*Math.PI*t)*Math.exp(-(r**2)/(2*t))},gaussianWeight:function(e,t,n){const r=Math.abs(e-n);return Math.exp(-(r**2)/(2*t))},dot2D:qo,outer2D:function(e,t,n){n[0]=e[0]*t[0],n[1]=e[0]*t[1],n[2]=e[1]*t[0],n[3]=e[1]*t[1]},norm2D:Jo,normalize2D:Zo,determinant2x2:Qo,LUFactor3x3:function(e,t){let n,r,o;const a=[0,0,0];for(let t=0;t&lt;3;t++)o=Math.abs(e[3*t]),(r=Math.abs(e[3*t+1]))&gt;o&amp;&amp;(o=r),(r=Math.abs(e[3*t+2]))&gt;o&amp;&amp;(o=r),a[t]=1/o;o=a[0]*Math.abs(e[0]),n=0,(r=a[1]*Math.abs(e[3]))&gt;=o&amp;&amp;(o=r,n=1),(r=a[2]*Math.abs(e[6]))&gt;=o&amp;&amp;(n=2),0!==n&amp;&amp;(Co(e,3,n,0),a[n]=a[0]),t[0]=n,e[3]/=e[0],e[6]/=e[0],e[4]-=e[3]*e[1],e[7]-=e[6]*e[1],o=a[1]*Math.abs(e[4]),n=1,(r=a[2]*Math.abs(e[7]))&gt;=o&amp;&amp;(n=2,Co(e,3,1,2),a[2]=a[1]),t[1]=n,e[7]/=e[4],e[5]-=e[3]*e[2],e[8]-=e[6]*e[2]+e[7]*e[5],t[2]=2},LUSolve3x3:function(e,t,n){let r=n[t[0]];n[t[0]]=n[0],n[0]=r,r=n[t[1]],n[t[1]]=n[1],n[1]=r-e[3]*n[0],r=n[t[2]],n[t[2]]=n[2],n[2]=r-e[6]*n[0]-e[7]*n[1],n[2]/=e[8],n[1]=(n[1]-e[5]*n[2])/e[4],n[0]=(n[0]-e[1]*n[1]-e[2]*n[2])/e[0]},linearSolve3x3:function(e,t,n){const r=e[0],o=e[1],a=e[2],i=e[3],s=e[4],l=e[5],c=e[6],u=e[7],d=e[8],p=+Qo(s,u,l,d),f=-Qo(i,c,l,d),g=+Qo(i,c,s,u),m=-Qo(o,u,a,d),h=+Qo(r,c,a,d),v=-Qo(r,c,o,u),T=+Qo(o,s,a,l),x=-Qo(r,i,a,l),y=+Qo(r,i,o,s),b=r*p+o*f+a*g,A=p*t[0]+m*t[1]+T*t[2],C=f*t[0]+h*t[1]+x*t[2],S=g*t[0]+v*t[1]+y*t[2];n[0]=A/b,n[1]=C/b,n[2]=S/b},multiply3x3_vect3:$o,multiply3x3_mat3:ea,multiplyMatrix:function(e,t,n,r,o,a,i){r!==o&amp;&amp;xo(&quot;Number of columns of A must match number of rows of B.&quot;);const s=[...e],l=[...t];for(let e=0;e&lt;n;e++)for(let t=0;t&lt;a;t++){i[e*a+t]=0;for(let n=0;n&lt;r;n++)i[e*a+t]+=s[e*r+n]*l[t+a*n]}},transpose3x3:ta,invert3x3:function(e,t){const n=e[0],r=e[1],o=e[2],a=e[3],i=e[4],s=e[5],l=e[6],c=e[7],u=e[8],d=+Qo(i,c,s,u),p=-Qo(a,l,s,u),f=+Qo(a,l,i,c),g=-Qo(r,c,o,u),m=+Qo(n,l,o,u),h=-Qo(n,l,r,c),v=+Qo(r,i,o,s),T=-Qo(n,a,o,s),x=+Qo(n,a,r,i),y=n*d+r*p+o*f;0===y&amp;&amp;yo(&quot;Matrix has 0 determinant&quot;),t[0]=d/y,t[3]=p/y,t[6]=f/y,t[1]=g/y,t[4]=m/y,t[7]=h/y,t[2]=v/y,t[5]=T/y,t[8]=x/y},identity3x3:aa,identity:ia,isIdentity:function(e,t=1e-6){return oa(e,ho,t)},isIdentity3x3:function(e,t=1e-6){return oa(e,vo,t)},determinant3x3:na,quaternionToMatrix3x3:sa,areEquals:ra,areMatricesEqual:oa,roundNumber:la,roundVector:ca,matrix3x3ToQuaternion:da,multiplyQuaternion:function(e,t,n){const r=e[0]*t[0],o=e[0]*t[1],a=e[0]*t[2],i=e[0]*t[3],s=e[1]*t[0],l=e[1]*t[1],c=e[1]*t[2],u=e[1]*t[3],d=e[2]*t[0],p=e[2]*t[1],f=e[2]*t[2],g=e[2]*t[3],m=e[3]*t[0],h=e[3]*t[1],v=e[3]*t[2],T=e[3]*t[3];n[0]=r-l-f-T,n[1]=o+s+g-v,n[2]=a-u+d+h,n[3]=i+c-p+m},orthogonalize3x3:pa,diagonalize3x3:fa,singularValueDecomposition3x3:function(e,t,n,r){let o;const a=[...e],i=na(a);if(i&lt;0)for(o=0;o&lt;9;o++)a[o]=-a[o];pa(a,t),ta(a,a),ea(a,t,r),fa(r,n,r),ea(t,r,t),ta(r,r),i&lt;0&amp;&amp;(n[0]=-n[0],n[1]=-n[1],n[2]=-n[2])},solveLinearSystem:ha,invertMatrix:va,luFactorLinearSystem:ga,luSolveLinearSystem:ma,estimateMatrixCondition:function(e,t){let n=+Number.MAX_VALUE,r=-Number.MAX_VALUE;for(let n=0;n&lt;t;n++)for(let o=n;o&lt;t;o++)Math.abs(e[n*t+o])&gt;r&amp;&amp;(r=Math.abs(e[n*t+o]));for(let r=0;r&lt;t;r++)Math.abs(e[r*t+r])&lt;n&amp;&amp;(n=Math.abs(e[r*t+r]));return 0===n?Number.MAX_VALUE:r/n},jacobi:function(e,t,n){return ua(e,3,t,n)},jacobiN:ua,solveHomogeneousLeastSquares:Ta,solveLeastSquares:function(e,t,n,r,o,a,i=!0){if(e&lt;n||e&lt;o)return yo(&quot;Insufficient number of samples. Underdetermined.&quot;),0;const s=Po(o);let l,c,u,d,p=1,f=0,g=0;if(i){for(u=0;u&lt;o;u++)s[u]=1;for(c=0;c&lt;e;c++)for(u=0;u&lt;o;u++)Math.abs(r[c*o+u])&gt;To&amp;&amp;(p=0,s[u]=0);if(p&amp;&amp;1===o)return yo(&quot;Detected homogeneous system (Y=0), calling SolveHomogeneousLeastSquares()&quot;),Ta(e,t,n,a);if(p)g=1;else for(u=0;u&lt;o;u++)s[u]&amp;&amp;(g=1)}g&amp;&amp;(l=Po(n),f=Ta(e,t,n,l));const m=Po(n*n),h=Po(n*n),v=Po(n*o);for(d=0;d&lt;e;d++)for(c=0;c&lt;n;c++){for(u=c;u&lt;n;u++)m[c*n+u]+=t[d*n+c]*t[d*n+u];for(u=0;u&lt;o;u++)v[c*o+u]+=t[d*n+c]*r[d*o+u]}for(c=0;c&lt;n;c++)for(u=0;u&lt;c;u++)m[c*n+u]=m[u*n+c];const T=va(m,h,n);if(T)for(c=0;c&lt;n;c++)for(u=0;u&lt;o;u++)for(a[c*o+u]=0,d=0;d&lt;n;d++)a[c*o+u]+=h[c*n+d]*v[d*o+u];if(g)for(u=0;u&lt;o;u++)if(s[u])for(c=0;c&lt;n;c++)a[c*o+u]=l[c*o];return g?f&amp;&amp;T:T},hex2float:function(e,t=[0,.5,1]){switch(e.length){case 3:return t[0]=17*parseInt(e[0],16)/255,t[1]=17*parseInt(e[1],16)/255,t[2]=17*parseInt(e[2],16)/255,t;case 4:return t[0]=17*parseInt(e[1],16)/255,t[1]=17*parseInt(e[2],16)/255,t[2]=17*parseInt(e[3],16)/255,t;case 6:return t[0]=parseInt(e.substr(0,2),16)/255,t[1]=parseInt(e.substr(2,2),16)/255,t[2]=parseInt(e.substr(4,2),16)/255,t;case 7:return t[0]=parseInt(e.substr(1,2),16)/255,t[1]=parseInt(e.substr(3,2),16)/255,t[2]=parseInt(e.substr(5,2),16)/255,t;case 9:return t[0]=parseInt(e.substr(1,2),16)/255,t[1]=parseInt(e.substr(3,2),16)/255,t[2]=parseInt(e.substr(5,2),16)/255,t[3]=parseInt(e.substr(7,2),16)/255,t;default:return t}},rgb2hsv:xa,hsv2rgb:ya,lab2xyz:ba,xyz2lab:Aa,xyz2rgb:Ca,rgb2xyz:Sa,rgb2lab:Pa,lab2rgb:wa,uninitializeBounds:Ia,areBoundsInitialized:Oa,computeBoundsFromPoints:function(e,t,n){return n[0]=Math.min(e[0],t[0]),n[1]=Math.max(e[0],t[0]),n[2]=Math.min(e[1],t[1]),n[3]=Math.max(e[1],t[1]),n[4]=Math.min(e[2],t[2]),n[5]=Math.max(e[2],t[2]),n},clampValue:Ra,clampVector:Ma,clampAndNormalizeValue:function(e,t){let n=0;return t[0]!==t[1]&amp;&amp;(n=e&lt;t[0]?t[0]:e&gt;t[1]?t[1]:e,n=(n-t[0])/(t[1]-t[0])),n},getScalarTypeFittingRange:Da,getAdjustedScalarRange:Ea,extentIsWithinOtherExtent:function(e,t){if(!e||!t)return 0;for(let n=0;n&lt;6;n+=2)if(e[n]&lt;t[n]||e[n]&gt;t[n+1]||e[n+1]&lt;t[n]||e[n+1]&gt;t[n+1])return 0;return 1},boundsIsWithinOtherBounds:function(e,t,n){if(!e||!t)return 0;for(let r=0;r&lt;6;r+=2)if(e[r]+n[r/2]&lt;t[r]||e[r]-n[r/2]&gt;t[r+1]||e[r+1]+n[r/2]&lt;t[r]||e[r+1]-n[r/2]&gt;t[r+1])return 0;return 1},pointIsWithinBounds:function(e,t,n){if(!e||!t||!n)return 0;for(let r=0;r&lt;3;r++)if(e[r]+n[r]&lt;t[2*r]||e[r]-n[r]&gt;t[2*r+1])return 0;return 1},solve3PointCircle:function(e,t,n,r){const o=Po(3),a=Po(3),i=Po(3),s=Po(3),l=Po(3),c=Po(3);for(let r=0;r&lt;3;++r)o[r]=e[r]-t[r],a[r]=t[r]-n[r],i[r]=n[r]-e[r],s[r]=-o[r],l[r]=-a[r],c[r]=-i[r];const u=Ho(s),d=Ho(l),p=Ho(i),f=Po(3);Wo(o,a,f);const g=Ho(f),m=u*d*p/(2*g),h=2*g*g,v=d*d*zo(o,c)/h,T=p*p*zo(s,a)/h,x=u*u*zo(i,l)/h;for(let o=0;o&lt;3;++o)r[o]=v*e[o]+T*t[o]+x*n[o];return m},inf:Va,negInf:La,isInf:Ba,isNan:Na,isNaN:Na,isFinite:Fa,createUninitializedBounds:Ga,getMajorAxisIndex:function(e){let t=-1,n=-1;for(let r=0;r&lt;e.length;r++){const o=Math.abs(e[r]);o&gt;t&amp;&amp;(n=r,t=o)}return n},getMinorAxisIndex:function(e){let t=1/0,n=-1;for(let r=0;r&lt;e.length;r++){const o=Math.abs(e[r]);o&lt;t&amp;&amp;(n=r,t=o)}return n},getSparseOrthogonalMatrix:Ua,floatToHex2:_a,floatRGB2HexCode:function(e,t=&quot;#&quot;){return`${t}${e.map(_a).join(&quot;&quot;)}`},float2CssRGBA:function(e){return 3===e.length?`rgb(${e.map(Ka).join(&quot;, &quot;)})`:`rgba(${Ka(e[0]||0)}, ${Ka(e[1]||0)}, ${Ka(e[2]||0)}, ${e[3]||0})`}};const Wa={};function Ha(e,t,n={}){Object.assign(t,Wa,n),sn.obj(e,t),sn.setGet(e,t,[&quot;transform&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkImplicitFunction&quot;),e.functionValue=n=&gt;{if(!t.transform)return e.evaluateFunction(n);const r=[];return t.transform.transformPoint(n,r),e.evaluateFunction(r)},e.evaluateFunction=e=&gt;{sn.vtkErrorMacro(&quot;not implemented&quot;)}}(e,t)}var ja={newInstance:sn.newInstance(Ha,&quot;vtkImplicitFunction&quot;),extend:Ha};const Xa=1e-6,qa=&quot;coincide&quot;,Ya=&quot;disjoint&quot;;function Ja(e,t,n){const r=n[0]*(e[0]-t[0])+n[1]*(e[1]-t[1])+n[2]*(e[2]-t[2]);return Math.abs(r)}function Za(e,t,n,r){const o=[];Go(e,t,o);const a=zo(n,o);r[0]=e[0]-a*n[0],r[1]=e[1]-a*n[1],r[2]=e[2]-a*n[2]}function Qa(e,t,n){const r=zo(e,t);let o=zo(t,t);return 0===o&amp;&amp;(o=1),n[0]=e[0]-r*t[0]/o,n[1]=e[1]-r*t[1]/o,n[2]=e[2]-r*t[2]/o,n}function $a(e,t,n,r){const o=[];Go(e,t,o);const a=zo(n,o),i=zo(n,n);0!==i?(r[0]=e[0]-a*n[0]/i,r[1]=e[1]-a*n[1]/i,r[2]=e[2]-a*n[2]/i):(r[0]=e[0],r[1]=e[1],r[2]=e[2])}function ei(e,t,n,r){const o={intersection:!1,betweenPoints:!1,t:Number.MAX_VALUE,x:[]},a=[],i=[];Go(t,e,a),Go(n,e,i);const s=zo(r,i),l=zo(r,a);let c,u;return c=l&lt;0?-l:l,u=s&lt;0?-s*Xa:s*Xa,c&lt;=u||(o.t=s/l,o.x[0]=e[0]+o.t*a[0],o.x[1]=e[1]+o.t*a[1],o.x[2]=e[2]+o.t*a[2],o.intersection=!0,o.betweenPoints=o.t&gt;=0&amp;&amp;o.t&lt;=1),o}function ti(e,t,n,r){const o={intersection:!1,l0:[],l1:[],error:null},a=[];Wo(t,r,a);const i=a.map((e=&gt;Math.abs(e)));if(i[0]+i[1]+i[2]&lt;Xa){const r=[];return Go(e,n,r),0===zo(t,r)?o.error=qa:o.error=Ya,o}let s;s=i[0]&gt;i[1]&amp;&amp;i[0]&gt;i[2]?&quot;x&quot;:i[1]&gt;i[2]?&quot;y&quot;:&quot;z&quot;;const l=[],c=-zo(t,e),u=-zo(r,n);switch(s){case&quot;x&quot;:l[0]=0,l[1]=(u*t[2]-c*r[2])/a[0],l[2]=(c*r[1]-u*t[1])/a[0];break;case&quot;y&quot;:l[0]=(c*r[2]-u*t[2])/a[1],l[1]=0,l[2]=(u*t[0]-c*r[0])/a[1];break;case&quot;z&quot;:l[0]=(u*t[1]-c*r[1])/a[2],l[1]=(c*r[0]-u*t[0])/a[2],l[2]=0}return o.l0=l,ko(l,a,o.l1),o.intersection=!0,o}const ni={evaluate:function(e,t,n){return e[0]*(n[0]-t[0])+e[1]*(n[1]-t[1])+e[2]*(n[2]-t[2])},distanceToPlane:Ja,projectPoint:Za,projectVector:Qa,generalizedProjectPoint:$a,intersectWithLine:ei,intersectWithPlane:ti,DISJOINT:Ya,COINCIDE:qa};const ri={normal:[0,0,1],origin:[0,0,0]};function oi(e,t,n={}){Object.assign(t,ri,n),ja.extend(e,t,n),sn.setGetArray(e,t,[&quot;normal&quot;,&quot;origin&quot;],3),function(e,t){t.classHierarchy.push(&quot;vtkPlane&quot;),e.distanceToPlane=e=&gt;Ja(e,t.origin,t.normal),e.projectPoint=(e,n)=&gt;{Za(e,t.origin,t.normal,n)},e.projectVector=(e,n)=&gt;Qa(e,t.normal,n),e.push=e=&gt;{if(0!==e)for(let n=0;n&lt;3;n++)t.origin[n]+=e*t.normal[n]},e.generalizedProjectPoint=(e,n)=&gt;{$a(e,t.origin,t.normal,n)},e.evaluateFunction=(e,n,r)=&gt;Array.isArray(e)?t.normal[0]*(e[0]-t.origin[0])+t.normal[1]*(e[1]-t.origin[1])+t.normal[2]*(e[2]-t.origin[2]):t.normal[0]*(e-t.origin[0])+t.normal[1]*(n-t.origin[1])+t.normal[2]*(r-t.origin[2]),e.evaluateGradient=e=&gt;[t.normal[0],t.normal[1],t.normal[2]],e.intersectWithLine=(e,n)=&gt;ei(e,n,t.origin,t.normal),e.intersectWithPlane=(e,n)=&gt;ti(e,n,t.origin,t.normal)}(e,t)}var ai={newInstance:sn.newInstance(oi,&quot;vtkPlane&quot;),extend:oi,...ni};const ii=[Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE];function si(e,t){return e[0]===t[0]&amp;&amp;e[1]===t[1]&amp;&amp;e[2]===t[2]&amp;&amp;e[3]===t[3]&amp;&amp;e[4]===t[4]&amp;&amp;e[5]===t[5]}function li(e){return e?.length&gt;=6&amp;&amp;e[0]&lt;=e[1]&amp;&amp;e[2]&lt;=e[3]&amp;&amp;e[4]&lt;=e[5]}function ci(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e}function ui(e){return ci(e,ii)}function di(e,t,n,r){const[o,a,i,s,l,c]=e;return&quot;number&quot;==typeof t?(e[0]=o&lt;t?o:t,e[1]=a&gt;t?a:t,e[2]=i&lt;n?i:n,e[3]=s&gt;n?s:n,e[4]=l&lt;r?l:r,e[5]=c&gt;r?c:r):(e[0]=o&lt;t[0]?o:t[0],e[1]=a&gt;t[0]?a:t[0],e[2]=i&lt;t[1]?i:t[1],e[3]=s&gt;t[1]?s:t[1],e[4]=l&lt;t[2]?l:t[2],e[5]=c&gt;t[2]?c:t[2]),e}function pi(e,t){if(0===t.length)return e;if(Array.isArray(t[0]))for(let n=0;n&lt;t.length;++n)di(e,...t[n]);else for(let n=0;n&lt;t.length;n+=3)di(e,...t.slice(n,n+3));return e}function fi(e,t,n,r,o,a,i){const[s,l,c,u,d,p]=e;return void 0===i?(e[0]=Math.min(t[0],s),e[1]=Math.max(t[1],l),e[2]=Math.min(t[2],c),e[3]=Math.max(t[3],u),e[4]=Math.min(t[4],d),e[5]=Math.max(t[5],p)):(e[0]=Math.min(t,s),e[1]=Math.max(n,l),e[2]=Math.min(r,c),e[3]=Math.max(o,u),e[4]=Math.min(a,d),e[5]=Math.max(i,p)),e}function gi(e,t,n,r){const[o,a,i,s,l,c]=e;return e[0]=t,e[1]=t&gt;a?t:a,e[2]=n,e[3]=n&gt;s?n:s,e[4]=r,e[5]=r&gt;c?r:c,o!==t||i!==n||l!==r}function mi(e,t,n,r){const[o,a,i,s,l,c]=e;return e[0]=t&lt;o?t:o,e[1]=t,e[2]=n&lt;i?n:i,e[3]=n,e[4]=r&lt;l?r:l,e[5]=r,a!==t||s!==n||c!==r}function hi(e,t){return null==t?function(e){const t=[0,0,0];let n=-1,r=0,o=0;for(let a=0;a&lt;3;++a)o=e[2*a+1]-e[2*a],o&gt;r&amp;&amp;(r=o,n=a),t[a]=o&gt;0?1:0;if(n&lt;0)return hi(e,.5);for(let n=0;n&lt;3;++n)if(!t[n]){const t=.005*r;e[2*n]-=t,e[2*n+1]+=t}return e}(e):(e[0]-=t,e[1]+=t,e[2]-=t,e[3]+=t,e[4]-=t,e[5]+=t,e)}function vi(e,t,n,r){return!!li(e)&amp;&amp;(t&gt;=0?(e[0]*=t,e[1]*=t):(e[0]=t*e[1],e[1]=t*e[0]),n&gt;=0?(e[2]*=n,e[3]*=n):(e[2]=n*e[3],e[3]=n*e[2]),r&gt;=0?(e[4]*=r,e[5]*=r):(e[4]=r*e[5],e[5]=r*e[4]),!0)}function Ti(e){return[.5*(e[0]+e[1]),.5*(e[2]+e[3]),.5*(e[4]+e[5])]}function xi(e,t){return e[2*t+1]-e[2*t]}function yi(e){return[xi(e,0),xi(e,1),xi(e,2)]}function bi(e){return e.slice(0,2)}function Ai(e){return e.slice(2,4)}function Ci(e){return e.slice(4,6)}function Si(e){const t=yi(e);return t[0]&gt;t[1]?t[0]&gt;t[2]?t[0]:t[2]:t[1]&gt;t[2]?t[1]:t[2]}function Pi(e){if(li(e)){const t=yi(e);return t[0]*t[0]+t[1]*t[1]+t[2]*t[2]}return null}function wi(e){const t=Pi(e);return null!==t?Math.sqrt(t):null}function Ii(e){return[e[0],e[2],e[4]]}function Oi(e){return[e[1],e[3],e[5]]}function Ri(e,t){return e&lt;=0&amp;&amp;t&gt;=0||e&gt;=0&amp;&amp;t&lt;=0}function Mi(e,t){return t[0]=[e[0],e[2],e[4]],t[1]=[e[0],e[2],e[5]],t[2]=[e[0],e[3],e[4]],t[3]=[e[0],e[3],e[5]],t[4]=[e[1],e[2],e[4]],t[5]=[e[1],e[2],e[5]],t[6]=[e[1],e[3],e[4]],t[7]=[e[1],e[3],e[5]],t}function Di(e,t,n){return t[0]=e[0],t[1]=e[2],t[2]=e[4],n[0]=e[1],n[1]=e[3],n[2]=e[5],t}function Ei(e,t,n=[]){const r=Mi(e,[]);for(let e=0;e&lt;r.length;++e)oe(r[e],r[e],t);return ui(n),pi(n,r)}function Vi(e,t=[]){return t[0]=.5*(e[1]-e[0]),t[1]=.5*(e[3]-e[2]),t[2]=.5*(e[5]-e[4]),t}function Li(e,t,n,r){const o=[].concat(ii),a=e.getData();for(let e=0;e&lt;a.length;e+=3){const i=[a[e],a[e+1],a[e+2]],s=zo(i,t);o[0]=Math.min(s,o[0]),o[1]=Math.max(s,o[1]);const l=zo(i,n);o[2]=Math.min(l,o[2]),o[3]=Math.max(l,o[3]);const c=zo(i,r);o[4]=Math.min(c,o[4]),o[5]=Math.max(c,o[5])}return o}function Bi(e,t,n,r,o){let a=!0;const i=[];let s=0;const l=[],c=[0,0,0];for(let n=0;n&lt;3;n++)t[n]&lt;e[2*n]?(i[n]=1,c[n]=e[2*n],a=!1):t[n]&gt;e[2*n+1]?(i[n]=0,c[n]=e[2*n+1],a=!1):i[n]=2;if(a)return r[0]=t[0],r[1]=t[1],r[2]=t[2],o[0]=0,1;for(let e=0;e&lt;3;e++)2!==i[e]&amp;&amp;0!==n[e]?l[e]=(c[e]-t[e])/n[e]:l[e]=-1;for(let e=0;e&lt;3;e++)l[s]&lt;l[e]&amp;&amp;(s=e);if(l[s]&gt;1||l[s]&lt;0)return 0;o[0]=l[s];for(let o=0;o&lt;3;o++)if(s!==o){if(r[o]=t[o]+l[s]*n[o],r[o]&lt;e[2*o]||r[o]&gt;e[2*o+1])return 0}else r[o]=c[o];return 1}function Fi(e,t,n){const r=[];let o=0,a=1,i=1;for(let s=4;s&lt;=5;++s){r[2]=e[s];for(let s=2;s&lt;=3;++s){r[1]=e[s];for(let s=0;s&lt;=1;++s)if(r[0]=e[s],o=ai.evaluate(n,t,r),i&amp;&amp;(a=o&gt;=0?1:-1,i=0),0===o||a&gt;0&amp;&amp;o&lt;0||a&lt;0&amp;&amp;o&gt;0)return 1}}return 0}function Ni(e,t){if(!li(e)||!li(t))return!1;const n=[0,0,0,0,0,0];let r;for(let o=0;o&lt;3;o++)if(r=!1,t[2*o]&gt;=e[2*o]&amp;&amp;t[2*o]&lt;=e[2*o+1]?(r=!0,n[2*o]=t[2*o]):e[2*o]&gt;=t[2*o]&amp;&amp;e[2*o]&lt;=t[2*o+1]&amp;&amp;(r=!0,n[2*o]=e[2*o]),t[2*o+1]&gt;=e[2*o]&amp;&amp;t[2*o+1]&lt;=e[2*o+1]?(r=!0,n[2*o+1]=t[2*o+1]):e[2*o+1]&gt;=t[2*o]&amp;&amp;e[2*o+1]&lt;=t[2*o+1]&amp;&amp;(r=!0,n[2*o+1]=e[2*o+1]),!r)return!1;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],!0}function ki(e,t){if(!li(e)||!li(t))return!1;for(let n=0;n&lt;3;n++)if(!(t[2*n]&gt;=e[2*n]&amp;&amp;t[2*n]&lt;=e[2*n+1]||e[2*n]&gt;=t[2*n]&amp;&amp;e[2*n]&lt;=t[2*n+1]||t[2*n+1]&gt;=e[2*n]&amp;&amp;t[2*n+1]&lt;=e[2*n+1]||e[2*n+1]&gt;=t[2*n]&amp;&amp;e[2*n+1]&lt;=t[2*n+1]))return!1;return!0}function Gi(e,t,n,r){return!(t&lt;e[0]||t&gt;e[1])&amp;&amp;(!(n&lt;e[2]||n&gt;e[3])&amp;&amp;!(r&lt;e[4]||r&gt;e[5]))}function Ui(e,t,n){const r=[[0,1,2,3,4,5,6,7],[0,1,4,5,2,3,6,7],[0,2,4,6,1,3,5,7]],o=[0,0,0,0,0,0,0,0];let a=0;for(let r=0;r&lt;2;r++)for(let i=2;i&lt;4;i++)for(let s=4;s&lt;6;s++){const l=[e[r],e[i],e[s]];o[a++]=ai.evaluate(n,t,l)}let i=2;for(;i--&amp;&amp;!(Ri(o[r[i][0]],o[r[i][4]])&amp;&amp;Ri(o[r[i][1]],o[r[i][5]])&amp;&amp;Ri(o[r[i][2]],o[r[i][6]])&amp;&amp;Ri(o[r[i][3]],o[r[i][7]])););if(i&lt;0)return!1;const s=Math.sign(n[i]),l=Math.abs((e[2*i+1]-e[2*i])*n[i]);let c=s&gt;0?1:0;for(let e=0;e&lt;4;e++){if(0===l)continue;const t=Math.abs(o[r[i][e]])/l;s&gt;0&amp;&amp;t&lt;c&amp;&amp;(c=t),s&lt;0&amp;&amp;t&gt;c&amp;&amp;(c=t)}const u=(1-c)*e[2*i]+c*e[2*i+1];return s&gt;0?e[2*i]=u:e[2*i+1]=u,!0}function _i(e,t){for(let e=0;e&lt;3;++e)t[e]=t[e]&lt;1?1:t[e];let n=t[0]*t[1]*t[2];for(;n&gt;e;){for(let e=0;e&lt;3;++e)t[e]=t[e]&gt;1?t[e]-1:1;n=t[0]*t[1]*t[2]}}function Ki(e,t,n,r=[]){t=t&lt;=0?1:t;let o=0;const a=[0,0,0];let i=-1,s=0;const l=yi(e),c=l[0]+l[1]+l[2],u=c*(.001/3);for(let e=0;e&lt;3;++e)l[e]&gt;s&amp;&amp;(i=e,s=l[e]),l[e]&gt;u?(a[e]=1,o++):a[e]=0;const d=Ii(e),p=Oi(e);if(o&lt;1)return n[0]=1,n[1]=1,n[2]=1,r[0]=d[0]-.5,r[1]=p[0]+.5,r[2]=d[1]-.5,r[3]=p[1]+.5,r[4]=d[2]-.5,r[5]=p[2]+.5,1;let f=t;f/=a[0]?l[0]/c:1,f/=a[1]?l[1]/c:1,f/=a[2]?l[2]/c:1,f**=1/o;for(let e=0;e&lt;3;++e)n[e]=a[e]?Math.floor(f*l[e]/c):1,n[e]=n[e]&lt;1?1:n[e];_i(t,n);const g=.5*l[i]/n[i];for(let e=0;e&lt;3;++e)a[e]?(r[2*e]=d[e],r[2*e+1]=p[e]):(r[2*e]=d[e]-g,r[2*e+1]=p[e]+g);return n[0]*n[1]*n[2]}function zi(e,t){if(e[0]&gt;=t[0]&amp;&amp;e[0]&lt;=t[1]&amp;&amp;e[1]&gt;=t[2]&amp;&amp;e[1]&lt;=t[3]&amp;&amp;e[2]&gt;=t[4]&amp;&amp;e[2]&lt;=t[5])return 0;const n=[0,0,0];return e[0]&lt;t[0]?n[0]=t[0]-e[0]:e[0]&gt;t[1]&amp;&amp;(n[0]=e[0]-t[1]),e[1]&lt;t[2]?n[1]=t[2]-e[1]:e[1]&gt;t[3]&amp;&amp;(n[1]=e[1]-t[3]),e[2]&lt;t[4]?n[2]=t[4]-e[2]:e[2]&gt;t[5]&amp;&amp;(n[2]=e[2]-t[5]),zo(n,n)}class Wi{constructor(e){this.bounds=e,this.bounds||(this.bounds=new Float64Array(ii))}getBounds(){return this.bounds}equals(e){return si(this.bounds,e)}isValid(){return li(this.bounds)}setBounds(e){return ci(this.bounds,e)}reset(){return ui(this.bounds)}addPoint(...e){return di(this.bounds,...e)}addPoints(e){return pi(this.bounds,e)}addBounds(e,t,n,r,o,a){return fi(this.bounds,e,t,n,r,o,a)}setMinPoint(e,t,n){return gi(this.bounds,e,t,n)}setMaxPoint(e,t,n){return mi(this.bounds,e,t,n)}inflate(e){return hi(this.bounds,e)}scale(e,t,n){return vi(this.bounds,e,t,n)}getCenter(){return Ti(this.bounds)}getLength(e){return xi(this.bounds,e)}getLengths(){return yi(this.bounds)}getMaxLength(){return Si(this.bounds)}getDiagonalLength(){return wi(this.bounds)}getDiagonalLength2(){return Pi(this.bounds)}getMinPoint(){return Ii(this.bounds)}getMaxPoint(){return Oi(this.bounds)}getXRange(){return bi(this.bounds)}getYRange(){return Ai(this.bounds)}getZRange(){return Ci(this.bounds)}getCorners(e){return Mi(this.bounds,e)}computeCornerPoints(e,t){return Di(this.bounds,e,t)}computeLocalBounds(e,t,n){return Li(this.bounds,e,t,n)}transformBounds(e,t=[]){return Ei(this.bounds,e,t)}computeScale3(e){return Vi(this.bounds,e)}cutWithPlane(e,t){return Ui(this.bounds,e,t)}intersectBox(e,t,n,r){return Bi(this.bounds,e,t,n,r)}intersectPlane(e,t){return Fi(this.bounds,e,t)}intersect(e){return Ni(this.bounds,e)}intersects(e){return ki(this.bounds,e)}containsPoint(e,t,n){return Gi(this.bounds,e,t,n)}contains(e){return ki(this.bounds,e)}computeDivisions(e,t,n=[]){return Ki(this.bounds,e,t,n)}distance2ToBounds(e){return zi(e,this.bounds)}}var Hi={newInstance:function(e){const t=e&amp;&amp;e.bounds;return new Wi(t)},...{equals:si,isValid:li,setBounds:ci,reset:ui,addPoint:di,addPoints:pi,addBounds:fi,setMinPoint:gi,setMaxPoint:mi,inflate:hi,scale:vi,scaleAboutCenter:function(e,t,n,r){if(!li(e))return!1;const o=Ti(e);return e[0]-=o[0],e[1]-=o[0],e[2]-=o[1],e[3]-=o[1],e[4]-=o[2],e[5]-=o[2],vi(e,t,n,r),e[0]+=o[0],e[1]+=o[0],e[2]+=o[1],e[3]+=o[1],e[4]+=o[2],e[5]+=o[2],!0},getCenter:Ti,getLength:xi,getLengths:yi,getMaxLength:Si,getDiagonalLength:wi,getDiagonalLength2:Pi,getMinPoint:Ii,getMaxPoint:Oi,getXRange:bi,getYRange:Ai,getZRange:Ci,getCorners:Mi,computeCornerPoints:Di,computeLocalBounds:Li,transformBounds:Ei,computeScale3:Vi,cutWithPlane:Ui,intersectBox:Bi,intersectPlane:Fi,intersect:Ni,intersects:ki,containsPoint:Gi,contains:function(e,t){return!!ki(e,t)&amp;&amp;(!!Gi(e,...Ii(t))&amp;&amp;!!Gi(e,...Oi(t)))},computeDivisions:Ki,clampDivisions:_i,distance2ToBounds:zi,INIT_BOUNDS:ii}};var ji={CoordinateSystem:{DISPLAY:0,WORLD:1}};const{CoordinateSystem:Xi}=ji;function qi(e){return()=&gt;sn.vtkErrorMacro(`vtkProp::${e} - NOT IMPLEMENTED`)}const Yi={allocatedRenderTime:10,coordinateSystem:Xi.WORLD,dragable:!0,estimatedRenderTime:0,paths:null,pickable:!0,renderTimeMultiplier:1,savedEstimatedRenderTime:0,textures:[],useBounds:!0,visibility:!0};function Ji(e,t,n={}){Object.assign(t,Yi,n),sn.obj(e,t),sn.get(e,t,[&quot;estimatedRenderTime&quot;,&quot;allocatedRenderTime&quot;]),sn.setGet(e,t,[&quot;_parentProp&quot;,&quot;coordinateSystem&quot;,&quot;dragable&quot;,&quot;pickable&quot;,&quot;renderTimeMultiplier&quot;,&quot;useBounds&quot;,&quot;visibility&quot;]),sn.moveToProtected(e,t,[&quot;parentProp&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkProp&quot;),e.getMTime=()=&gt;{let e=t.mtime;for(let n=0;n&lt;t.textures.length;++n){const r=t.textures[n].getMTime();r&gt;e&amp;&amp;(e=r)}return e},e.processSelectorPixelBuffers=(e,t)=&gt;{},e.getNestedProps=()=&gt;null,e.getActors=()=&gt;[],e.getActors2D=()=&gt;[],e.getVolumes=()=&gt;[],e.pick=qi(&quot;pick&quot;),e.hasKey=qi(&quot;hasKey&quot;),e.getNestedVisibility=()=&gt;t.visibility&amp;&amp;(!t._parentProp||t._parentProp.getNestedVisibility()),e.getNestedPickable=()=&gt;t.pickable&amp;&amp;(!t._parentProp||t._parentProp.getNestedPickable()),e.getNestedDragable=()=&gt;t.dragable&amp;&amp;(!t._parentProp||t._parentProp.getNestedDragable()),e.getRedrawMTime=()=&gt;t.mtime,e.setEstimatedRenderTime=e=&gt;{t.estimatedRenderTime=e,t.savedEstimatedRenderTime=e},e.restoreEstimatedRenderTime=()=&gt;{t.estimatedRenderTime=t.savedEstimatedRenderTime},e.addEstimatedRenderTime=e=&gt;{t.estimatedRenderTime+=e},e.setAllocatedRenderTime=e=&gt;{t.allocatedRenderTime=e,t.savedEstimatedRenderTime=t.estimatedRenderTime,t.estimatedRenderTime=0},e.getSupportsSelection=()=&gt;!1,e.getTextures=()=&gt;t.textures,e.hasTexture=e=&gt;-1!==t.textures.indexOf(e),e.addTexture=n=&gt;{n&amp;&amp;!e.hasTexture(n)&amp;&amp;(t.textures=t.textures.concat(n),e.modified())},e.removeTexture=n=&gt;{const r=t.textures.filter((e=&gt;e!==n));t.textures.length!==r.length&amp;&amp;(t.textures=r,e.modified())},e.removeAllTextures=()=&gt;{t.textures=[],e.modified()},e.setCoordinateSystemToWorld=()=&gt;e.setCoordinateSystem(Xi.WORLD),e.setCoordinateSystemToDisplay=()=&gt;e.setCoordinateSystem(Xi.DISPLAY)}(e,t)}var Zi={newInstance:sn.newInstance(Ji,&quot;vtkProp&quot;),extend:Ji,...ji};function Qi(e,t){t.classHierarchy.push(&quot;vtkProp3D&quot;),e.addPosition=n=&gt;{t.position=t.position.map(((e,t)=&gt;e+n[t])),e.modified()},e.getOrientationWXYZ=()=&gt;{const e=pe();L(e,t.rotation);const r=new Float64Array(3),o=function(e,t){var r=2*Math.acos(t[3]),o=Math.sin(r/2);return o&gt;n?(e[0]=t[0]/o,e[1]=t[1]/o,e[2]=t[2]/o):(e[0]=1,e[1]=0,e[2]=0),r}(r,e);return[Io(o),r[0],r[1],r[2]]},e.getOrientationQuaternion=(e=[])=&gt;L(e,t.rotation),e.rotateX=n=&gt;{0!==n&amp;&amp;(w(t.rotation,t.rotation,wo(n)),e.modified())},e.rotateY=n=&gt;{0!==n&amp;&amp;(I(t.rotation,t.rotation,wo(n)),e.modified())},e.rotateZ=n=&gt;{0!==n&amp;&amp;(O(t.rotation,t.rotation,wo(n)),e.modified())},e.rotateWXYZ=(n,r,o,a)=&gt;{if(0===n||0===r&amp;&amp;0===o&amp;&amp;0===a)return;const i=wo(n),s=pe();fe(s,[r,o,a],i);const l=new Float64Array(16);F(l,s),A(t.rotation,t.rotation,l),e.modified()},e.rotateQuaternion=n=&gt;{if(Math.abs(n[3])&gt;=.999999)return;const r=F(new Float64Array(16),n);A(t.rotation,t.rotation,r),e.modified()},e.setOrientation=(n,r,o)=&gt;(n!==t.orientation[0]||r!==t.orientation[1]||o!==t.orientation[2])&amp;&amp;(t.orientation=[n,r,o],x(t.rotation),e.rotateZ(o),e.rotateX(n),e.rotateY(r),e.modified(),!0),e.setOrientationFromQuaternion=n=&gt;{const r=v();return F(r,n),!oa(r,t.rotation)&amp;&amp;(t.rotation=r,e.modified(),!0)},e.setUserMatrix=n=&gt;!oa(t.userMatrix,n)&amp;&amp;(T(t.userMatrix,n),e.modified(),!0),e.getMatrix=()=&gt;(e.computeMatrix(),t.matrix),e.computeMatrix=()=&gt;{if(e.getMTime()&gt;t.matrixMTime.getMTime()){x(t.matrix),t.userMatrix&amp;&amp;A(t.matrix,t.matrix,t.userMatrix),C(t.matrix,t.matrix,t.origin),C(t.matrix,t.matrix,t.position),A(t.matrix,t.matrix,t.rotation),S(t.matrix,t.matrix,t.scale),C(t.matrix,t.matrix,[-t.origin[0],-t.origin[1],-t.origin[2]]),y(t.matrix,t.matrix),t.isIdentity=!0;for(let e=0;e&lt;4;++e)for(let n=0;n&lt;4;++n)(e===n?1:0)!==t.matrix[e+4*n]&amp;&amp;(t.isIdentity=!1);t.matrixMTime.modified()}},e.computeBounds=()=&gt;{if(null===t.mapper)return void Hi.reset(t.bounds);const n=t.mapper.getBounds();if(!n||6!==n.length||!Hi.isValid(n))return t.mapperBounds=n,Hi.reset(t.bounds),void t.boundsMTime.modified();if(!t.mapperBounds||!n.every(((e,r)=&gt;n[r]===t.mapperBounds[r]))||e.getMTime()&gt;t.boundsMTime.getMTime()){sn.vtkDebugMacro(&quot;Recomputing bounds...&quot;),t.mapperBounds=n,e.computeMatrix();const r=new Float64Array(16);y(r,t.matrix),Hi.transformBounds(n,r,t.bounds),t.boundsMTime.modified()}};const r=e.getBounds;e.getBounds=()=&gt;(e.computeBounds(),r());const o=e.getBoundsByReference;e.getBoundsByReference=()=&gt;(e.computeBounds(),o()),e.getCenter=()=&gt;Hi.getCenter(e.getBoundsByReference()),e.getLength=()=&gt;Hi.getLength(e.getBoundsByReference()),e.getXRange=()=&gt;Hi.getXRange(e.getBoundsByReference()),e.getYRange=()=&gt;Hi.getYRange(e.getBoundsByReference()),e.getZRange=()=&gt;Hi.getZRange(e.getBoundsByReference()),e.getUserMatrix=()=&gt;t.userMatrix,e.onModified((function(){e.computeMatrix()})),e.getProperty=(n=0)=&gt;(null==t.properties[n]&amp;&amp;(t.properties[n]=e.makeProperty?.()),t.properties[n]),e.getProperties=()=&gt;(0===t.properties.length&amp;&amp;(t.properties[0]=e.makeProperty?.()),t.properties),e.setProperty=(e,n)=&gt;{const r=Number.isInteger(e),[o,a]=r?[e,n]:[0,e];return t.properties[o]!==a&amp;&amp;(t.properties[o]=a,!0)},e.getMTime=()=&gt;{let e=t.mtime;return t.properties.forEach((t=&gt;{if(null!==t){const n=t.getMTime();e=n&gt;e?n:e}})),e}}const $i={bounds:[...Hi.INIT_BOUNDS],origin:[0,0,0],position:[0,0,0],orientation:[0,0,0],rotation:null,scale:[1,1,1],properties:[],userMatrix:null,userMatrixMTime:null,cachedProp3D:null,isIdentity:!0,matrixMTime:null};function es(e,t,n={}){Object.assign(t,$i,n),Zi.extend(e,t,n),t.matrixMTime={},sn.obj(t.matrixMTime),sn.get(e,t,[&quot;isIdentity&quot;]),sn.getArray(e,t,[&quot;orientation&quot;]),sn.setGetArray(e,t,[&quot;origin&quot;,&quot;position&quot;,&quot;scale&quot;],3),sn.setGet(e,t,[&quot;properties&quot;]),sn.getArray(e,t,[&quot;bounds&quot;],6),t.matrix=x(new Float64Array(16)),t.rotation=x(new Float64Array(16)),t.userMatrix=x(new Float64Array(16)),t.transform=null,Qi(e,t)}var ts={newInstance:sn.newInstance(es,&quot;vtkProp3D&quot;),extend:es};const ns={FLAT:0,GOURAUD:1,PHONG:2},rs={POINTS:0,WIREFRAME:1,SURFACE:2};var os={Shading:ns,Representation:rs,Interpolation:ns};const{Representation:as,Interpolation:is}=os;function ss(e){return()=&gt;sn.vtkErrorMacro(`vtkProperty::${e} - NOT IMPLEMENTED`)}const ls={color:[1,1,1],ambientColor:[1,1,1],diffuseColor:[1,1,1],specularColor:[1,1,1],edgeColor:[0,0,0],ambient:0,diffuse:1,metallic:0,roughness:.6,normalStrength:1,emission:1,baseIOR:1.45,specular:0,specularPower:1,opacity:1,edgeOpacity:1,interpolation:is.GOURAUD,representation:as.SURFACE,edgeVisibility:!1,backfaceCulling:!1,frontfaceCulling:!1,pointSize:1,lineWidth:1,lighting:!0,shading:!1,materialName:null,ORMTexture:null,RMTexture:null};function cs(e,t,n={}){Object.assign(t,ls,n),sn.obj(e,t),sn.setGet(e,t,[&quot;lighting&quot;,&quot;interpolation&quot;,&quot;ambient&quot;,&quot;diffuse&quot;,&quot;metallic&quot;,&quot;roughness&quot;,&quot;normalStrength&quot;,&quot;emission&quot;,&quot;baseIOR&quot;,&quot;specular&quot;,&quot;specularPower&quot;,&quot;opacity&quot;,&quot;edgeOpacity&quot;,&quot;edgeVisibility&quot;,&quot;lineWidth&quot;,&quot;pointSize&quot;,&quot;backfaceCulling&quot;,&quot;frontfaceCulling&quot;,&quot;representation&quot;,&quot;diffuseTexture&quot;,&quot;metallicTexture&quot;,&quot;roughnessTexture&quot;,&quot;normalTexture&quot;,&quot;ambientOcclusionTexture&quot;,&quot;emissionTexture&quot;,&quot;ORMTexture&quot;,&quot;RMTexture&quot;]),sn.setGetArray(e,t,[&quot;ambientColor&quot;,&quot;specularColor&quot;,&quot;diffuseColor&quot;,&quot;edgeColor&quot;],3),function(e,t){t.classHierarchy.push(&quot;vtkProperty&quot;),e.setColor=(n,r,o)=&gt;{Array.isArray(n)?t.color[0]===n[0]&amp;&amp;t.color[1]===n[1]&amp;&amp;t.color[2]===n[2]||(t.color[0]=n[0],t.color[1]=n[1],t.color[2]=n[2],e.modified()):t.color[0]===n&amp;&amp;t.color[1]===r&amp;&amp;t.color[2]===o||(t.color[0]=n,t.color[1]=r,t.color[2]=o,e.modified()),e.setDiffuseColor(t.color),e.setAmbientColor(t.color),e.setSpecularColor(t.color)},e.computeCompositeColor=ss(&quot;ComputeCompositeColor&quot;),e.getColor=()=&gt;{let e=0;t.ambient+t.diffuse+t.specular&gt;0&amp;&amp;(e=1/(t.ambient+t.diffuse+t.specular));for(let n=0;n&lt;3;n++)t.color[n]=e*(t.ambient*t.ambientColor[n]+t.diffuse*t.diffuseColor[n]+t.specular*t.specularColor[n]);return[].concat(t.color)},e.setSpecularPower=n=&gt;{const r=1/Math.max(1,n);t.roughness===r&amp;&amp;t.specularPower===n||(t.specularPower=n,t.roughness=r,e.modified())},e.addShaderVariable=ss(&quot;AddShaderVariable&quot;),e.setInterpolationToFlat=()=&gt;e.setInterpolation(is.FLAT),e.setInterpolationToGouraud=()=&gt;e.setInterpolation(is.GOURAUD),e.setInterpolationToPhong=()=&gt;e.setInterpolation(is.PHONG),e.getInterpolationAsString=()=&gt;sn.enumToString(is,t.interpolation),e.setRepresentationToWireframe=()=&gt;e.setRepresentation(as.WIREFRAME),e.setRepresentationToSurface=()=&gt;e.setRepresentation(as.SURFACE),e.setRepresentationToPoints=()=&gt;e.setRepresentation(as.POINTS),e.getRepresentationAsString=()=&gt;sn.enumToString(as,t.representation)}(e,t)}var us={newInstance:sn.newInstance(cs,&quot;vtkProperty&quot;),extend:cs,...os};const ds={mapper:null,backfaceProperty:null,forceOpaque:!1,forceTranslucent:!1};function ps(e,t,n={}){Object.assign(t,ds,n),ts.extend(e,t,n),t.boundsMTime={},sn.obj(t.boundsMTime),sn.setGet(e,t,[&quot;backfaceProperty&quot;,&quot;forceOpaque&quot;,&quot;forceTranslucent&quot;,&quot;mapper&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkActor&quot;);const n={...e};e.getActors=()=&gt;[e],e.getIsOpaque=()=&gt;{if(t.forceOpaque)return!0;if(t.forceTranslucent)return!1;t.properties[0]||e.getProperty();let n=t.properties[0].getOpacity()&gt;=1;return n=n&amp;&amp;(!t.texture||!t.texture.isTranslucent()),n=n&amp;&amp;(!t.mapper||t.mapper.getIsOpaque()),n},e.hasTranslucentPolygonalGeometry=()=&gt;null!==t.mapper&amp;&amp;(t.properties[0]||e.getProperty(),!e.getIsOpaque()),e.makeProperty=us.newInstance,e.getMTime=()=&gt;{let e=n.getMTime();if(null!==t.backfaceProperty){const n=t.backfaceProperty.getMTime();e=n&gt;e?n:e}return e},e.getRedrawMTime=()=&gt;{let e=t.mtime;if(null!==t.mapper){let n=t.mapper.getMTime();e=n&gt;e?n:e,null!==t.mapper.getInput()&amp;&amp;(t.mapper.getInputAlgorithm().update(),n=t.mapper.getInput().getMTime(),e=n&gt;e?n:e)}return e},e.getSupportsSelection=()=&gt;!!t.mapper&amp;&amp;t.mapper.getSupportsSelection(),e.processSelectorPixelBuffers=(e,n)=&gt;{t.mapper&amp;&amp;t.mapper.processSelectorPixelBuffers&amp;&amp;t.mapper.processSelectorPixelBuffers(e,n)}}(e,t)}var fs={newInstance:sn.newInstance(ps,&quot;vtkActor&quot;),extend:ps};const gs={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},ms={VOID:&quot;&quot;,CHAR:&quot;Int8Array&quot;,SIGNED_CHAR:&quot;Int8Array&quot;,UNSIGNED_CHAR:&quot;Uint8Array&quot;,UNSIGNED_CHAR_CLAMPED:&quot;Uint8ClampedArray&quot;,SHORT:&quot;Int16Array&quot;,UNSIGNED_SHORT:&quot;Uint16Array&quot;,INT:&quot;Int32Array&quot;,UNSIGNED_INT:&quot;Uint32Array&quot;,FLOAT:&quot;Float32Array&quot;,DOUBLE:&quot;Float64Array&quot;};var hs={DefaultDataType:ms.FLOAT,DataTypeByteSize:gs,VtkDataTypes:ms};const{vtkErrorMacro:vs}=ln,{DefaultDataType:Ts}=hs;function xs(e,t,n){const r=e.length;let o,a,i=Number.MAX_VALUE,s=-Number.MAX_VALUE;for(a=t;a&lt;r;a+=n)if(!Number.isNaN(e[a])){i=e[a],s=i;break}for(;a&lt;r;a+=n)o=e[a],o&lt;i?i=o:o&gt;s&amp;&amp;(s=o);return{min:i,max:s}}function ys(e,t=0,n=1){if(t&lt;0&amp;&amp;n&gt;1){const t=e.length/n,r=new Float64Array(t);for(let o=0,a=0;o&lt;t;++o){for(let t=a+n;a&lt;t;++a)r[o]+=e[a]*e[a];r[o]**=.5}return xs(r,0,1)}return xs(e,t&lt;0?0:t,n)}function bs(e,t=0){const n=e||[];for(;n.length&lt;=t;)n.push(null);return n}function As(e){return Object.prototype.toString.call(e).slice(8,-1)}const Cs={computeRange:ys,createRangeHelper:function(){let e=Number.MAX_VALUE,t=-Number.MAX_VALUE,n=0,r=0;return{add(o){e&gt;o&amp;&amp;(e=o),t&lt;o&amp;&amp;(t=o),n++,r+=o},get:()=&gt;({min:e,max:t,count:n,sum:r,mean:r/n}),getRange:()=&gt;({min:e,max:t})}},fastComputeRange:xs,getDataType:As,getMaxNorm:function(e){const t=e.getNumberOfComponents();let n=0;const r=new Array(t);for(let o=0;o&lt;e.getNumberOfTuples();++o){e.getTuple(o,r);const a=Ho(r,t);a&gt;n&amp;&amp;(n=a)}return n}};const Ss={name:&quot;&quot;,numberOfComponents:1,dataType:Ts,rangeTuple:[0,0]};function Ps(e,t,n={}){if(Object.assign(t,Ss,n),Array.isArray(n.values)&amp;&amp;void 0===n.dataType&amp;&amp;console.warn(&quot;vtkDataArray.newInstance: no dataType provided, converting to Float32Array&quot;),!t.empty&amp;&amp;!t.values&amp;&amp;!t.size)throw new TypeError(&quot;Cannot create vtkDataArray object without: size &gt; 0, values&quot;);if(t.values?Array.isArray(t.values)&amp;&amp;(t.values=St(t.dataType,t.values)):t.values=Ct(t.dataType,t.size),t.values&amp;&amp;(t.size=t.size??t.values.length,t.dataType=As(t.values)),Vt(e,t),kt(e,t,[&quot;name&quot;,&quot;numberOfComponents&quot;]),t.size%t.numberOfComponents!=0)throw new RangeError(&quot;model.size is not a multiple of model.numberOfComponents&quot;);!function(e,t){function n(n){if(n&lt;0)return!1;const r=e.getNumberOfComponents(),o=t.values.length/(r&gt;0?r:1);if(n===o)return!0;if(n&gt;o){const e=t.values;return t.values=Ct(t.dataType,(n+o)*r),t.values.set(e),!0}return t.size&gt;n*r&amp;&amp;(t.size=n*r,e.dataChange()),!0}t.classHierarchy.push(&quot;vtkDataArray&quot;),e.dataChange=()=&gt;{t.ranges=null,e.modified()},e.allocate=t=&gt;{n(e.getNumberOfTuples()+t)},e.resize=r=&gt;{n(r);const o=r*e.getNumberOfComponents();return t.size!==o&amp;&amp;(t.size=o,e.dataChange(),!0)},e.initialize=()=&gt;(e.resize(0),e),e.getElementComponentSize=()=&gt;t.values.BYTES_PER_ELEMENT,e.getComponent=(e,n=0)=&gt;t.values[e*t.numberOfComponents+n],e.setComponent=(n,r,o)=&gt;{o!==t.values[n*t.numberOfComponents+r]&amp;&amp;(t.values[n*t.numberOfComponents+r]=o,e.dataChange())},e.getValue=n=&gt;{const r=n/t.numberOfComponents,o=n%t.numberOfComponents;return e.getComponent(r,o)},e.setValue=(n,r)=&gt;{const o=n/t.numberOfComponents,a=n%t.numberOfComponents;e.setComponent(o,a,r)},e.getData=()=&gt;t.size===t.values.length?t.values:t.values.subarray(0,t.size),e.getRange=(n=-1)=&gt;{let r=n;r&lt;0&amp;&amp;(r=1===t.numberOfComponents?0:t.numberOfComponents);let o=null;return t.ranges||(t.ranges=bs(t.ranges,t.numberOfComponents)),o=t.ranges[r],o?(t.rangeTuple[0]=o.min,t.rangeTuple[1]=o.max,t.rangeTuple):(o=ys(e.getData(),n,t.numberOfComponents),t.ranges[r]=o,t.rangeTuple[0]=o.min,t.rangeTuple[1]=o.max,t.rangeTuple)},e.setRange=(e,n)=&gt;{t.ranges||(t.ranges=bs(t.ranges,t.numberOfComponents));const r={min:e.min,max:e.max};return t.ranges[n]=r,t.rangeTuple[0]=r.min,t.rangeTuple[1]=r.max,t.rangeTuple},e.getRanges=(n=!0)=&gt;{if(!n)return structuredClone(t.ranges);const r=[];for(let n=0;n&lt;t.numberOfComponents;n++){const[t,o]=e.getRange(n),a={min:t,max:o};r.push(a)}if(t.numberOfComponents&gt;1){const[t,n]=e.getRange(-1),o={min:t,max:n};r.push(o)}return r},e.setTuple=(e,n)=&gt;{const r=e*t.numberOfComponents;for(let e=0;e&lt;t.numberOfComponents;e++)t.values[r+e]=n[e]},e.setTuples=(e,n)=&gt;{let r=e*t.numberOfComponents;const o=Math.min(n.length,t.size-r);for(let e=0;e&lt;o;)t.values[r++]=n[e++]},e.insertTuple=(r,o)=&gt;(t.size&lt;=r*t.numberOfComponents&amp;&amp;(t.size=(r+1)*t.numberOfComponents,n(r+1)),e.setTuple(r,o),r),e.insertTuples=(r,o)=&gt;{const a=r+o.length/t.numberOfComponents;return t.size&lt;a*t.numberOfComponents&amp;&amp;(t.size=a*t.numberOfComponents,n(a)),e.setTuples(r,o),a},e.insertNextTuple=n=&gt;{const r=t.size/t.numberOfComponents;return e.insertTuple(r,n)},e.insertNextTuples=n=&gt;{const r=t.size/t.numberOfComponents;return e.insertTuples(r,n)},e.findTuple=(e,n=1e-6)=&gt;{for(let r=0;r&lt;t.size;r+=t.numberOfComponents)if(Math.abs(e[0]-t.values[r])&lt;=n){let o=!0;for(let a=1;a&lt;t.numberOfComponents;++a)if(Math.abs(e[a]-t.values[r+a])&gt;n){o=!1;break}if(o)return r/t.numberOfComponents}return-1},e.getTuple=(e,n=[])=&gt;{const r=t.numberOfComponents||1,o=e*r;switch(r){case 4:n[3]=t.values[o+3];case 3:n[2]=t.values[o+2];case 2:n[1]=t.values[o+1];case 1:n[0]=t.values[o];break;default:for(let e=r-1;e&gt;=0;--e)n[e]=t.values[o+e]}return n},e.getTuples=(n,r)=&gt;{const o=(n??0)*t.numberOfComponents,a=(r??e.getNumberOfTuples())*t.numberOfComponents,i=e.getData().subarray(o,a);return i.length&gt;0?i:null},e.getTupleLocation=(e=1)=&gt;e*t.numberOfComponents,e.getNumberOfComponents=()=&gt;t.numberOfComponents,e.getNumberOfValues=()=&gt;t.size,e.getNumberOfTuples=()=&gt;t.size/t.numberOfComponents,e.getDataType=()=&gt;t.dataType,e.newClone=()=&gt;ws({empty:!0,name:t.name,dataType:t.dataType,numberOfComponents:t.numberOfComponents}),e.getName=()=&gt;(t.name||(e.modified(),t.name=`vtkDataArray${e.getMTime()}`),t.name),e.setData=(n,r)=&gt;{t.values=n,t.size=n.length,t.dataType=As(n),r&amp;&amp;(t.numberOfComponents=r),t.size%t.numberOfComponents!=0&amp;&amp;(t.numberOfComponents=1),e.dataChange()},e.getState=({preserveTypedArrays:n=!1}={})=&gt;{if(t.deleted)return null;const r={...t,vtkClass:e.getClassName()};n||(r.values=Array.from(r.values)),delete r.buffer,Object.keys(r).forEach((e=&gt;{r[e]||delete r[e]}));const o={};return Object.keys(r).sort().forEach((e=&gt;{o[e]=r[e]})),o.mtime&amp;&amp;delete o.mtime,o},e.deepCopy=n=&gt;{const r=e.getDataType(),o=t.values;e.shallowCopy(n),t.ranges=structuredClone(n.getRanges()),o?.length&gt;=n.getNumberOfValues()&amp;&amp;r===n.getDataType()?(o.set(n.getData()),t.values=o,e.dataChange()):e.setData(n.getData().slice())},e.interpolateTuple=(n,r,o,a,i,s)=&gt;{const l=t.numberOfComponents||1;l===r.getNumberOfComponents()&amp;&amp;l===a.getNumberOfComponents()||vs(&quot;numberOfComponents must match&quot;);const c=r.getTuple(o),u=a.getTuple(i),d=[];switch(d.length=l,l){case 4:d[3]=c[3]+(u[3]-c[3])*s;case 3:d[2]=c[2]+(u[2]-c[2])*s;case 2:d[1]=c[1]+(u[1]-c[1])*s;case 1:d[0]=c[0]+(u[0]-c[0])*s;break;default:for(let e=0;e&lt;l;e++)d[e]=c[e]+(u[e]-c[e])*s}return e.insertTuple(n,d)}}(e,t)}const ws=Xt(Ps,&quot;vtkDataArray&quot;);var Is={newInstance:ws,extend:Ps,...Cs,...hs};const{vtkErrorMacro:Os}=sn,Rs=new Float64Array(16),Ms=new Float64Array(4);function Ds(e,t){const n=e.getNormalByReference(),r=e.getOriginByReference();return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=-(n[0]*r[0]+n[1]*r[1]+n[2]*r[2]),t}const Es={clippingPlanes:[]};var Vs={extend:function(e,t,n={}){Object.assign(t,Es,n),sn.obj(e,t),sn.algo(e,t,1,0),t.clippingPlanes||(t.clippingPlanes=[]),function(e,t){t.classHierarchy.push(&quot;vtkAbstractMapper&quot;),e.update=()=&gt;{e.getInputData()},e.addClippingPlane=n=&gt;!!n.isA(&quot;vtkPlane&quot;)&amp;&amp;!t.clippingPlanes.includes(n)&amp;&amp;(t.clippingPlanes.push(n),e.modified(),!0),e.getNumberOfClippingPlanes=()=&gt;t.clippingPlanes.length,e.removeAllClippingPlanes=()=&gt;0!==t.clippingPlanes.length&amp;&amp;(t.clippingPlanes.length=0,e.modified(),!0),e.removeClippingPlane=n=&gt;{const r=t.clippingPlanes.indexOf(n);return-1!==r&amp;&amp;(t.clippingPlanes.splice(r,1),e.modified(),!0)},e.getClippingPlanes=()=&gt;t.clippingPlanes,e.getClippingPlanesMTime=()=&gt;{let e=0;for(let n=0;n&lt;t.clippingPlanes.length;n++)e=Math.max(e,t.clippingPlanes[n].getMTime());return e},e.setClippingPlanes=t=&gt;{if(t)if(Array.isArray(t)){const n=t.length;for(let r=0;r&lt;n&amp;&amp;r&lt;6;r++)e.addClippingPlane(t[r])}else e.addClippingPlane(t)},e.getClippingPlaneInCoords=(e,n,r)=&gt;{if(n&lt;0||n&gt;=t.clippingPlanes?.length)return void Os(`Clipping plane index ${n} is out of range.`);const o=r||new Float64Array(4);return Ds(t.clippingPlanes[n],Ms),b(Rs,e),y(Rs,Rs),de(o,Ms,Rs),o},e.getClippingPlaneInDataCoords=(e,n,r)=&gt;{const o=t.clippingPlanes;if(o){const t=o.length;if(n&gt;=0&amp;&amp;n&lt;t)return Ds(o[n],Ms),void de(r,Ms,e)}Os(`Clipping plane index ${n} is out of range.`)}}(e,t)}};var Ls={extend:function(e,t,n={}){Object.assign(t,(e=&gt;({bounds:[...Hi.INIT_BOUNDS],center:[0,0,0],viewSpecificProperties:{},...e}))(n)),Vs.extend(e,t,n),sn.setGet(e,t,[&quot;viewSpecificProperties&quot;]),sn.getArray(e,t,[&quot;bounds&quot;],6),function(e,t){e.computeBounds=()=&gt;{sn.vtkErrorMacro(&quot;vtkAbstractMapper3D.computeBounds - NOT IMPLEMENTED&quot;)};const n=e.getBounds;e.getBounds=()=&gt;(e.computeBounds(),n());const r=e.getBoundsByReference;e.getBoundsByReference=()=&gt;(e.computeBounds(),r()),e.getCenter=()=&gt;{const n=e.getBoundsByReference();return t.center=Hi.isValid(n)?Hi.getCenter(n):null,t.center?.slice()},e.getLength=()=&gt;{const t=e.getBoundsByReference();return Hi.getDiagonalLength(t)}}(e,t)}};const{vtkErrorMacro:Bs,vtkWarningMacro:Fs}=sn;const Ns={arrays:[],copyFieldFlags:[],doCopyAllOn:!0,doCopyAllOff:!1};function ks(e,t,n={}){Object.assign(t,Ns,n),sn.obj(e,t),function(e,t){t.classHierarchy.push(&quot;vtkFieldData&quot;);const n=e.getState;t.arrays&amp;&amp;(t.arrays=t.arrays.map((e=&gt;({data:it(e.data)})))),e.initialize=()=&gt;{e.initializeFields(),e.copyAllOn(),e.clearFieldFlags()},e.initializeFields=()=&gt;{t.arrays=[],t.copyFieldFlags={},e.modified()},e.copyStructure=n=&gt;{e.initializeFields(),t.copyFieldFlags=n.getCopyFieldFlags().map((e=&gt;e)),t.arrays=n.getArrays().map((e=&gt;({data:e})))},e.getNumberOfArrays=()=&gt;t.arrays.length,e.getNumberOfActiveArrays=()=&gt;t.arrays.length,e.addArray=n=&gt;{const r=n.getName(),{array:o,index:a}=e.getArrayWithIndex(r);return null!=o?(t.arrays[a]={data:n},a):(t.arrays=[].concat(t.arrays,{data:n}),t.arrays.length-1)},e.removeAllArrays=()=&gt;{t.arrays=[]},e.removeArray=n=&gt;{const r=t.arrays.findIndex((e=&gt;e.data.getName()===n));return e.removeArrayByIndex(r)},e.removeArrayByIndex=e=&gt;-1!==e&amp;&amp;e&lt;t.arrays.length&amp;&amp;(t.arrays.splice(e,1),!0),e.getArrays=()=&gt;t.arrays.map((e=&gt;e.data)),e.getArray=t=&gt;&quot;number&quot;==typeof t?e.getArrayByIndex(t):e.getArrayByName(t),e.getArrayByName=e=&gt;t.arrays.reduce(((t,n,r)=&gt;n.data.getName()===e?n.data:t),null),e.getArrayWithIndex=e=&gt;{const n=t.arrays.findIndex((t=&gt;t.data.getName()===e));return{array:-1!==n?t.arrays[n].data:null,index:n}},e.getArrayByIndex=e=&gt;e&gt;=0&amp;&amp;e&lt;t.arrays.length?t.arrays[e].data:null,e.hasArray=t=&gt;e.getArrayWithIndex(t).index&gt;=0,e.getArrayName=e=&gt;{const n=t.arrays[e];return n?n.data.getName():&quot;&quot;},e.getCopyFieldFlags=()=&gt;t.copyFieldFlags,e.getFlag=e=&gt;t.copyFieldFlags[e],e.passData=(n,r=-1,o=-1)=&gt;{n.getArrays().forEach((a=&gt;{const i=e.getFlag(a.getName());if(!1!==i&amp;&amp;(!t.doCopyAllOff||!0===i)&amp;&amp;a){let t=e.getArrayByName(a.getName());if(t)if(a.getNumberOfComponents()===t.getNumberOfComponents())if(r&gt;-1&amp;&amp;r&lt;a.getNumberOfTuples()){const e=o&gt;-1?o:r;t.insertTuple(e,a.getTuple(r))}else t.insertTuples(0,a.getTuples());else Bs(&quot;Unhandled case in passData&quot;);else if(r&lt;0||r&gt;a.getNumberOfTuples())e.addArray(a),n.getAttributes(a).forEach((t=&gt;{e.setAttribute(a,t)}));else{const i=a.getNumberOfComponents();let s=a.getNumberOfValues();const l=o&gt;-1?o:r;s&lt;=l*i&amp;&amp;(s=(l+1)*i),t=Is.newInstance({name:a.getName(),dataType:a.getDataType(),numberOfComponents:i,values:sn.newTypedArray(a.getDataType(),s),size:0}),t.insertTuple(l,a.getTuple(r)),e.addArray(t),n.getAttributes(a).forEach((n=&gt;{e.setAttribute(t,n)}))}}}))},e.interpolateData=(n,r=-1,o=-1,a=-1,i=.5)=&gt;{n.getArrays().forEach((s=&gt;{const l=e.getFlag(s.getName());if(!1!==l&amp;&amp;(!t.doCopyAllOff||!0===l)&amp;&amp;s){let t=e.getArrayByName(s.getName());if(t)if(s.getNumberOfComponents()===t.getNumberOfComponents())if(r&gt;-1&amp;&amp;r&lt;s.getNumberOfTuples()){const e=a&gt;-1?a:r;t.interpolateTuple(e,s,r,s,o,i),Fs(&quot;Unexpected case in interpolateData&quot;)}else t.insertTuples(s.getTuples());else Bs(&quot;Unhandled case in interpolateData&quot;);else if(r&lt;0||o&lt;0||r&gt;s.getNumberOfTuples())e.addArray(s),n.getAttributes(s).forEach((t=&gt;{e.setAttribute(s,t)}));else{const l=s.getNumberOfComponents();let c=s.getNumberOfValues();const u=a&gt;-1?a:r;c&lt;=u*l&amp;&amp;(c=(u+1)*l),t=Is.newInstance({name:s.getName(),dataType:s.getDataType(),numberOfComponents:l,values:sn.newTypedArray(s.getDataType(),c),size:0}),t.interpolateTuple(u,s,r,s,o,i),e.addArray(t),n.getAttributes(s).forEach((n=&gt;{e.setAttribute(t,n)}))}}}))},e.copyFieldOn=e=&gt;{t.copyFieldFlags[e]=!0},e.copyFieldOff=e=&gt;{t.copyFieldFlags[e]=!1},e.copyAllOn=()=&gt;{t.doCopyAllOn&amp;&amp;!t.doCopyAllOff||(t.doCopyAllOn=!0,t.doCopyAllOff=!1,e.modified())},e.copyAllOff=()=&gt;{!t.doCopyAllOn&amp;&amp;t.doCopyAllOff||(t.doCopyAllOn=!1,t.doCopyAllOff=!0,e.modified())},e.clearFieldFlags=()=&gt;{t.copyFieldFlags={}},e.deepCopy=e=&gt;{t.arrays=e.getArrays().map((e=&gt;{const t=e.newClone();return t.deepCopy(e),{data:t}}))},e.copyFlags=e=&gt;e.getCopyFieldFlags().map((e=&gt;e)),e.reset=()=&gt;t.arrays.forEach((e=&gt;e.data.reset())),e.getMTime=()=&gt;t.arrays.reduce(((e,t)=&gt;t.data.getMTime()&gt;e?t.data.getMTime():e),t.mtime),e.getNumberOfComponents=()=&gt;t.arrays.reduce(((e,t)=&gt;e+t.data.getNumberOfComponents()),0),e.getNumberOfTuples=()=&gt;t.arrays.length&gt;0?t.arrays[0].getNumberOfTuples():0,e.getState=e=&gt;{const r=n(e);return r&amp;&amp;(r.arrays=t.arrays.map((t=&gt;({data:t.data.getState(e)})))),r}}(e,t)}var Gs={newInstance:sn.newInstance(ks,&quot;vtkFieldData&quot;),extend:ks};const Us={DEFAULT:0,SINGLE:1,DOUBLE:2};var _s={AttributeCopyOperations:{COPYTUPLE:0,INTERPOLATE:1,PASSDATA:2,ALLCOPY:3},AttributeLimitTypes:{MAX:0,EXACT:1,NOLIMIT:2},AttributeTypes:{SCALARS:0,VECTORS:1,NORMALS:2,TCOORDS:3,TENSORS:4,GLOBALIDS:5,PEDIGREEIDS:6,EDGEFLAG:7,NUM_ATTRIBUTES:8},CellGhostTypes:{DUPLICATECELL:1,HIGHCONNECTIVITYCELL:2,LOWCONNECTIVITYCELL:4,REFINEDCELL:8,EXTERIORCELL:16,HIDDENCELL:32},DesiredOutputPrecision:Us,PointGhostTypes:{DUPLICATEPOINT:1,HIDDENPOINT:2},ghostArrayName:&quot;vtkGhostType&quot;};const{AttributeTypes:Ks,AttributeCopyOperations:zs}=_s,{vtkWarningMacro:Ws}=sn;const Hs={activeScalars:-1,activeVectors:-1,activeTensors:-1,activeNormals:-1,activeTCoords:-1,activeGlobalIds:-1,activePedigreeIds:-1};function js(e,t,n={}){Object.assign(t,Hs,n),Gs.extend(e,t,n),sn.setGet(e,t,[&quot;activeScalars&quot;,&quot;activeNormals&quot;,&quot;activeTCoords&quot;,&quot;activeVectors&quot;,&quot;activeTensors&quot;,&quot;activeGlobalIds&quot;,&quot;activePedigreeIds&quot;]),t.arrays||(t.arrays={}),function(e,t){const n=[&quot;Scalars&quot;,&quot;Vectors&quot;,&quot;Normals&quot;,&quot;TCoords&quot;,&quot;Tensors&quot;,&quot;GlobalIds&quot;,&quot;PedigreeIds&quot;];function r(e){let t=n.find((t=&gt;Ks[t.toUpperCase()]===e||&quot;number&quot;!=typeof e&amp;&amp;t.toLowerCase()===e.toLowerCase()));return void 0===t&amp;&amp;(t=null),t}t.classHierarchy.push(&quot;vtkDataSetAttributes&quot;);const o={...e};e.checkNumberOfComponents=e=&gt;!0,e.setAttribute=(n,o)=&gt;{const a=r(o);if(n&amp;&amp;&quot;PEDIGREEIDS&quot;===a.toUpperCase()&amp;&amp;!n.isA(&quot;vtkDataArray&quot;))return Ws(`Cannot set attribute ${a}. The attribute must be a vtkDataArray.`),-1;if(n&amp;&amp;!e.checkNumberOfComponents(n,a))return Ws(`Cannot set attribute ${a}. Incorrect number of components.`),-1;if(n){const r=e.addArray(n);t[`active${a}`]=r}else t[`active${a}`]=-1;return e.modified(),t[`active${a}`]},e.getAttributes=t=&gt;n.filter((n=&gt;e[`get${n}`]()===t)),e.setActiveAttributeByName=(t,n)=&gt;e.setActiveAttributeByIndex(e.getArrayWithIndex(t).index,n),e.setActiveAttributeByIndex=(n,o)=&gt;{const a=r(o);if(n&gt;=0&amp;&amp;n&lt;t.arrays.length){if(&quot;PEDIGREEIDS&quot;!==a.toUpperCase()){const t=e.getArrayByIndex(n);if(!t.isA(&quot;vtkDataArray&quot;))return Ws(`Cannot set attribute ${a}. Only vtkDataArray subclasses can be set as active attributes.`),-1;if(!e.checkNumberOfComponents(t,a))return Ws(`Cannot set attribute ${a}. Incorrect number of components.`),-1}return t[`active${a}`]=n,e.modified(),n}return-1===n&amp;&amp;(t[`active${a}`]=n,e.modified()),-1},e.getActiveAttribute=t=&gt;{const n=r(t);return e[`get${n}`]()},e.removeAllArrays=()=&gt;{n.forEach((e=&gt;{t[`active${e}`]=-1})),o.removeAllArrays()},e.removeArrayByIndex=e=&gt;(-1!==e&amp;&amp;n.forEach((n=&gt;{e===t[`active${n}`]?t[`active${n}`]=-1:e&lt;t[`active${n}`]&amp;&amp;(t[`active${n}`]-=1)})),o.removeArrayByIndex(e)),n.forEach((n=&gt;{const r=`active${n}`;e[`get${n}`]=()=&gt;e.getArrayByIndex(t[r]),e[`set${n}`]=t=&gt;e.setAttribute(t,n),e[`setActive${n}`]=t=&gt;e.setActiveAttributeByIndex(e.getArrayWithIndex(t).index,n),e[`copy${n}Off`]=()=&gt;{const e=n.toUpperCase();t.copyAttributeFlags[zs.PASSDATA][Ks[e]]=!1},e[`copy${n}On`]=()=&gt;{const e=n.toUpperCase();t.copyAttributeFlags[zs.PASSDATA][Ks[e]]=!0}})),e.initializeAttributeCopyFlags=()=&gt;{t.copyAttributeFlags=[],Object.keys(zs).filter((e=&gt;&quot;ALLCOPY&quot;!==e)).forEach((e=&gt;{t.copyAttributeFlags[zs[e]]=Object.keys(Ks).filter((e=&gt;&quot;NUM_ATTRIBUTES&quot;!==e)).reduce(((e,t)=&gt;(e[Ks[t]]=!0,e)),[])})),t.copyAttributeFlags[zs.COPYTUPLE][Ks.GLOBALIDS]=!1,t.copyAttributeFlags[zs.INTERPOLATE][Ks.GLOBALIDS]=!1,t.copyAttributeFlags[zs.COPYTUPLE][Ks.PEDIGREEIDS]=!1},e.initialize=sn.chain(e.initialize,e.initializeAttributeCopyFlags),t.dataArrays&amp;&amp;Object.keys(t.dataArrays).length&amp;&amp;Object.keys(t.dataArrays).forEach((n=&gt;{t.dataArrays[n].ref||&quot;vtkDataArray&quot;!==t.dataArrays[n].type||e.addArray(Is.newInstance(t.dataArrays[n]))}));const a=e.shallowCopy;e.shallowCopy=(e,n)=&gt;{a(e,n),t.arrays=e.getArrays().map((e=&gt;{const t=e.newClone();return t.shallowCopy(e,n),{data:t}}))},e.initializeAttributeCopyFlags()}(e,t)}var Xs={newInstance:sn.newInstance(js,&quot;vtkDataSetAttributes&quot;),extend:js,..._s};var qs={FieldDataTypes:{UNIFORM:0,DATA_OBJECT_FIELD:0,COORDINATE:1,POINT_DATA:1,POINT:2,POINT_FIELD_DATA:2,CELL:3,CELL_FIELD_DATA:3,VERTEX:4,VERTEX_FIELD_DATA:4,EDGE:5,EDGE_FIELD_DATA:5,ROW:6,ROW_DATA:6},FieldAssociations:{FIELD_ASSOCIATION_POINTS:0,FIELD_ASSOCIATION_CELLS:1,FIELD_ASSOCIATION_NONE:2,FIELD_ASSOCIATION_POINTS_THEN_CELLS:3,FIELD_ASSOCIATION_VERTICES:4,FIELD_ASSOCIATION_EDGES:5,FIELD_ASSOCIATION_ROWS:6,NUMBER_OF_ASSOCIATIONS:7}};const Ys=[&quot;pointData&quot;,&quot;cellData&quot;,&quot;fieldData&quot;];const Js={};function Zs(e,t,n={}){Object.assign(t,Js,n),sn.obj(e,t),sn.setGet(e,t,Ys),sn.getArray(e,t,[&quot;bounds&quot;],6),function(e,t){t.classHierarchy.push(&quot;vtkDataSet&quot;),Ys.forEach((e=&gt;{t[e]?t[e]=it(t[e]):t[e]=Xs.newInstance()})),e.computeBounds=()=&gt;{if(t.modifiedTime&amp;&amp;t.computeTime&amp;&amp;t.modifiedTime&gt;t.computeTime||!t.computeTime){const n=e.getPoints();n?.getNumberOfPoints()?Hi.setBounds(t.bounds,n.getBoundsByReference()):t.bounds=za.createUninitializedBounds(),t.computeTime=sn.getCurrentGlobalMTime()}},e.getLength2=()=&gt;{const t=e.getBoundsByReference();return t&amp;&amp;6===t.length?Hi.getDiagonalLength2(t):0},e.getLength=()=&gt;Math.sqrt(e.getLength2()),e.getCenter=()=&gt;{const t=e.getBoundsByReference();return t&amp;&amp;6===t.length?Hi.getCenter(t):[0,0,0]},e.getCellBounds=t=&gt;{const n=e.getCell(t);return n?n.getBounds():za.createUninitializedBounds()},e.getBounds=sn.chain((()=&gt;e.computeBounds),e.getBounds),e.getBoundsByReference=sn.chain((()=&gt;e.computeBounds),e.getBoundsByReference);const n=e.shallowCopy;e.shallowCopy=(e,r=!1)=&gt;{n(e,r),Ys.forEach((n=&gt;{t[n]=Xs.newInstance(),t[n].shallowCopy(e.getReferenceByName(n))}))};const r=e.getMTime;e.getMTime=()=&gt;Ys.reduce(((e,n)=&gt;Math.max(e,t[n]?.getMTime()??e)),r()),e.initialize=()=&gt;(Ys.forEach((e=&gt;t[e]?.initialize())),e)}(e,t)}var Qs={newInstance:sn.newInstance(Zs,&quot;vtkDataSet&quot;),extend:Zs,...qs};const $s={UNCHANGED:0,SINGLE_POINT:1,X_LINE:2,Y_LINE:3,Z_LINE:4,XY_PLANE:5,YZ_PLANE:6,XZ_PLANE:7,XYZ_GRID:8,EMPTY:9};var el={StructuredType:$s};const{StructuredType:tl}=el;var nl={getDataDescriptionFromExtent:function(e){let t=0;for(let n=0;n&lt;3;++n)e[2*n]&lt;e[2*n+1]&amp;&amp;t++;return e[0]&gt;e[1]||e[2]&gt;e[3]||e[4]&gt;e[5]?tl.EMPTY:3===t?tl.XYZ_GRID:2===t?e[0]===e[1]?tl.YZ_PLANE:e[2]===e[3]?tl.XZ_PLANE:tl.XY_PLANE:1===t?e[0]&lt;e[1]?tl.X_LINE:e[2]&lt;e[3]?tl.Y_LINE:tl.Z_LINE:tl.SINGLE_POINT},...el};const{vtkErrorMacro:rl}=sn;const ol={direction:null,indexToWorld:null,worldToIndex:null,spacing:[1,1,1],origin:[0,0,0],extent:[0,-1,0,-1,0,-1],dataDescription:$s.EMPTY};function al(e,t,n={}){Object.assign(t,ol,n),Qs.extend(e,t,n),t.direction?Array.isArray(t.direction)&amp;&amp;(t.direction=new Float64Array(t.direction.slice(0,9))):t.direction=c(new Float64Array(9)),t.indexToWorld=new Float64Array(16),t.worldToIndex=new Float64Array(16),sn.get(e,t,[&quot;indexToWorld&quot;,&quot;worldToIndex&quot;]),sn.setGetArray(e,t,[&quot;origin&quot;,&quot;spacing&quot;],3),sn.setGetArray(e,t,[&quot;direction&quot;],9),sn.getArray(e,t,[&quot;extent&quot;],6),function(e,t){t.classHierarchy.push(&quot;vtkImageData&quot;),e.setExtent=(...n)=&gt;{if(t.deleted)return rl(&quot;instance deleted - cannot call any method&quot;),!1;const r=1===n.length?n[0]:n;if(6!==r.length)return!1;const o=t.extent.some(((e,t)=&gt;e!==r[t]));return o&amp;&amp;(t.extent=r.slice(),t.dataDescription=nl.getDataDescriptionFromExtent(t.extent),e.modified()),o},e.setDimensions=(...n)=&gt;{let r,o,a;if(t.deleted)rl(&quot;instance deleted - cannot call any method&quot;);else{if(1===n.length){const e=n[0];r=e[0],o=e[1],a=e[2]}else{if(3!==n.length)return void rl(&quot;Bad dimension specification&quot;);r=n[0],o=n[1],a=n[2]}e.setExtent(0,r-1,0,o-1,0,a-1)}},e.getDimensions=()=&gt;[t.extent[1]-t.extent[0]+1,t.extent[3]-t.extent[2]+1,t.extent[5]-t.extent[4]+1],e.getNumberOfCells=()=&gt;{const t=e.getDimensions();let n=1;for(let e=0;e&lt;3;e++){if(0===t[e])return 0;t[e]&gt;1&amp;&amp;(n*=t[e]-1)}return n},e.getNumberOfPoints=()=&gt;{const t=e.getDimensions();return t[0]*t[1]*t[2]},e.getPoint=n=&gt;{const r=e.getDimensions();if(0===r[0]||0===r[1]||0===r[2])return rl(&quot;Requesting a point from an empty image.&quot;),null;const o=new Float64Array(3);switch(t.dataDescription){case $s.EMPTY:return null;case $s.SINGLE_POINT:break;case $s.X_LINE:o[0]=n;break;case $s.Y_LINE:o[1]=n;break;case $s.Z_LINE:o[2]=n;break;case $s.XY_PLANE:o[0]=n%r[0],o[1]=n/r[0];break;case $s.YZ_PLANE:o[1]=n%r[1],o[2]=n/r[1];break;case $s.XZ_PLANE:o[0]=n%r[0],o[2]=n/r[0];break;case $s.XYZ_GRID:o[0]=n%r[0],o[1]=n/r[0]%r[1],o[2]=n/(r[0]*r[1]);break;default:rl(&quot;Invalid dataDescription&quot;)}const a=[0,0,0];return e.indexToWorld(o,a),a},e.getBounds=()=&gt;e.extentToBounds(e.getSpatialExtent()),e.extentToBounds=e=&gt;Hi.transformBounds(e,t.indexToWorld),e.getSpatialExtent=()=&gt;Hi.inflate([...t.extent],.5),e.computeTransforms=()=&gt;{R(t.indexToWorld,t.origin),t.indexToWorld[0]=t.direction[0],t.indexToWorld[1]=t.direction[1],t.indexToWorld[2]=t.direction[2],t.indexToWorld[4]=t.direction[3],t.indexToWorld[5]=t.direction[4],t.indexToWorld[6]=t.direction[5],t.indexToWorld[8]=t.direction[6],t.indexToWorld[9]=t.direction[7],t.indexToWorld[10]=t.direction[8],S(t.indexToWorld,t.indexToWorld,t.spacing),b(t.worldToIndex,t.indexToWorld)},e.indexToWorld=(e,n=[])=&gt;(oe(n,e,t.indexToWorld),n),e.indexToWorldVec3=e.indexToWorld,e.worldToIndex=(e,n=[])=&gt;(oe(n,e,t.worldToIndex),n),e.worldToIndexVec3=e.worldToIndex,e.indexToWorldBounds=(e,n=[])=&gt;Hi.transformBounds(e,t.indexToWorld,n),e.worldToIndexBounds=(e,n=[])=&gt;Hi.transformBounds(e,t.worldToIndex,n),t._onOriginChanged=e.computeTransforms,t._onDirectionChanged=e.computeTransforms,t._onSpacingChanged=e.computeTransforms,e.computeTransforms(),e.getCenter=()=&gt;Hi.getCenter(e.getBounds()),e.computeHistogram=(t,n=null)=&gt;{const r=[0,0,0,0,0,0];e.worldToIndexBounds(t,r);const o=[0,0,0],a=[0,0,0];Hi.computeCornerPoints(r,o,a),ca(o,o),ca(a,a);const i=e.getDimensions();Ma(o,[0,0,0],[i[0]-1,i[1]-1,i[2]-1],o),Ma(a,[0,0,0],[i[0]-1,i[1]-1,i[2]-1],a);const s=i[0],l=i[0]*i[1],c=e.getPointData().getScalars().getData();let u=-1/0,d=1/0,p=0,f=0,g=0;for(let e=o[2];e&lt;=a[2];e++)for(let t=o[1];t&lt;=a[1];t++){let i=o[0]+t*s+e*l;for(let s=o[0];s&lt;=a[0];s++){if(!n||n([s,t,e],r)){const e=c[i];e&gt;u&amp;&amp;(u=e),e&lt;d&amp;&amp;(d=e),p+=e*e,f+=e,g+=1}++i}}const m=g&gt;0?f/g:0,h=g?Math.abs(p/g-m*m):0;return{minimum:d,maximum:u,average:m,variance:h,sigma:Math.sqrt(h),count:g}},e.computeIncrements=(e,t=1)=&gt;{const n=[];let r=t;for(let t=0;t&lt;3;++t)n[t]=r,r*=e[2*t+1]-e[2*t]+1;return n},e.computeOffsetIndex=([t,n,r])=&gt;{const o=e.getExtent(),a=e.getPointData().getScalars().getNumberOfComponents(),i=e.computeIncrements(o,a);return Math.floor((Math.round(t)-o[0])*i[0]+(Math.round(n)-o[2])*i[1]+(Math.round(r)-o[4])*i[2])},e.getOffsetIndexFromWorld=t=&gt;{const n=e.getExtent(),r=e.worldToIndex(t);for(let e=0;e&lt;3;++e)if(r[e]&lt;n[2*e]||r[e]&gt;n[2*e+1])return rl(`GetScalarPointer: Pixel ${r} is not in memory. Current extent = ${n}`),NaN;return e.computeOffsetIndex(r)},e.getScalarValueFromWorld=(t,n=0)=&gt;{const r=e.getPointData().getScalars().getNumberOfComponents();if(n&lt;0||n&gt;=r)return rl(`GetScalarPointer: Scalar Component ${n} is not within bounds. Current Scalar numberOfComponents: ${r}`),NaN;const o=e.getOffsetIndexFromWorld(t);return Number.isNaN(o)?o:e.getPointData().getScalars().getComponent(o,n)};const n=e.initialize;e.initialize=()=&gt;(e.set({direction:c(t.direction),spacing:[1,1,1],origin:[0,0,0],extent:[0,-1,0,-1,0,-1],dataDescription:$s.EMPTY}),n())}(e,t)}var il={newInstance:sn.newInstance(al,&quot;vtkImageData&quot;),extend:al};const sl={LUMINANCE:1,LUMINANCE_ALPHA:2,RGB:3,RGBA:4};var ll={VectorMode:{MAGNITUDE:0,COMPONENT:1,RGBCOLORS:2},ScalarMappingTarget:sl,Scale:{LINEAR:0,LOG10:1}};var cl={ColorMode:{DEFAULT:0,MAP_SCALARS:1,DIRECT_SCALARS:2},GetArray:{BY_ID:0,BY_NAME:1},ScalarMode:{DEFAULT:0,USE_POINT_DATA:1,USE_CELL_DATA:2,USE_POINT_FIELD_DATA:3,USE_CELL_FIELD_DATA:4,USE_FIELD_DATA:5}};const{ScalarMappingTarget:ul,Scale:dl,VectorMode:pl}=ll,{VtkDataTypes:fl}=Is,{ColorMode:gl}=cl,{vtkErrorMacro:ml}=sn;function hl(e){return e}function vl(e){return Math.floor(255*e+.5)}const Tl={alpha:1,vectorComponent:0,vectorSize:-1,vectorMode:pl.COMPONENT,mappingRange:null,annotationArray:null,annotatedValueMap:null,indexedLookup:!1,scale:dl.LINEAR};function xl(e,t,n={}){Object.assign(t,Tl,n),sn.obj(e,t),t.mappingRange=[0,255],t.annotationArray=[],t.annotatedValueMap=[],sn.setGet(e,t,[&quot;vectorSize&quot;,&quot;vectorComponent&quot;,&quot;vectorMode&quot;,&quot;alpha&quot;,&quot;indexedLookup&quot;]),sn.setArray(e,t,[&quot;mappingRange&quot;],2),sn.getArray(e,t,[&quot;mappingRange&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkScalarsToColors&quot;),e.setVectorModeToMagnitude=()=&gt;e.setVectorMode(pl.MAGNITUDE),e.setVectorModeToComponent=()=&gt;e.setVectorMode(pl.COMPONENT),e.setVectorModeToRGBColors=()=&gt;e.setVectorMode(pl.RGBCOLORS),e.build=()=&gt;{},e.isOpaque=()=&gt;!0,e.setAnnotations=(n,r)=&gt;{if(!(n&amp;&amp;!r||!n&amp;&amp;r))if(n&amp;&amp;r&amp;&amp;n.length!==r.length)ml(&quot;Values and annotations do not have the same number of tuples so ignoring&quot;);else{if(t.annotationArray=[],r&amp;&amp;n){const e=r.length;for(let o=0;o&lt;e;o++)t.annotationArray.push({value:n[o],annotation:String(r[o])})}e.updateAnnotatedValueMap(),e.modified()}},e.setAnnotation=(n,r)=&gt;{let o=e.checkForAnnotatedValue(n),a=!1;return o&gt;=0?t.annotationArray[o].annotation!==r&amp;&amp;(t.annotationArray[o].annotation=r,a=!0):(t.annotationArray.push({value:n,annotation:r}),o=t.annotationArray.length-1,a=!0),a&amp;&amp;(e.updateAnnotatedValueMap(),e.modified()),o},e.getNumberOfAnnotatedValues=()=&gt;t.annotationArray.length,e.getAnnotatedValue=e=&gt;e&lt;0||e&gt;=t.annotationArray.length?null:t.annotationArray[e].value,e.getAnnotation=e=&gt;void 0===t.annotationArray[e]?null:t.annotationArray[e].annotation,e.getAnnotatedValueIndex=n=&gt;t.annotationArray.length?e.checkForAnnotatedValue(n):-1,e.removeAnnotation=n=&gt;{const r=e.checkForAnnotatedValue(n),o=r&gt;=0;return o&amp;&amp;(t.annotationArray.splice(r,1),e.updateAnnotatedValueMap(),e.modified()),o},e.resetAnnotations=()=&gt;{t.annotationArray=[],t.annotatedValueMap=[],e.modified()},e.getAnnotationColor=(n,r)=&gt;{if(t.indexedLookup){const t=e.getAnnotatedValueIndex(n);e.getIndexedColor(t,r)}else e.getColor(parseFloat(n),r),r[3]=1},e.checkForAnnotatedValue=t=&gt;e.getAnnotatedValueIndexInternal(t),e.getAnnotatedValueIndexInternal=e=&gt;{if(void 0!==t.annotatedValueMap[e]){const n=t.annotationArray.length;return t.annotatedValueMap[e]%n}return-1},e.getIndexedColor=(e,t)=&gt;{t[0]=0,t[1]=0,t[2]=0,t[3]=0},e.updateAnnotatedValueMap=()=&gt;{t.annotatedValueMap=[];const e=t.annotationArray.length;for(let n=0;n&lt;e;n++)t.annotatedValueMap[t.annotationArray[n].value]=n},e.mapScalars=(t,n,r)=&gt;{const o=t.getNumberOfComponents();let a=null;if(n===gl.DEFAULT&amp;&amp;(t.getDataType()===fl.UNSIGNED_CHAR||t.getDataType()===fl.UNSIGNED_CHAR_CLAMPED)||n===gl.DIRECT_SCALARS&amp;&amp;t)a=e.convertToRGBA(t,o,t.getNumberOfTuples());else{const n={type:&quot;vtkDataArray&quot;,name:&quot;temp&quot;,numberOfComponents:4,dataType:fl.UNSIGNED_CHAR},i=sn.newTypedArray(n.dataType,4*t.getNumberOfTuples());n.values=i,n.size=i.length,a=Is.newInstance(n);let s=r;s&lt;0&amp;&amp;o&gt;1?e.mapVectorsThroughTable(t,a,ul.RGBA,-1,-1):(s&lt;0&amp;&amp;(s=0),s&gt;=o&amp;&amp;(s=o-1),e.mapScalarsThroughTable(t,a,ul.RGBA,s))}return a},e.mapVectorsToMagnitude=(e,t,n)=&gt;{const r=e.getNumberOfTuples(),o=e.getNumberOfComponents(),a=t.getData(),i=e.getData();for(let e=0;e&lt;r;e++){let t=0;for(let r=0;r&lt;n;r++)t+=i[e*o+r]*i[e*o+r];a[e]=Math.sqrt(t)}},e.mapVectorsThroughTable=(t,n,r,o,a)=&gt;{let i=e.getVectorMode(),s=a,l=o;const c=t.getNumberOfComponents();i===pl.COMPONENT?(-1===l&amp;&amp;(l=e.getVectorComponent()),l&lt;0&amp;&amp;(l=0),l&gt;=c&amp;&amp;(l=c-1)):(-1===s&amp;&amp;(s=e.getVectorSize()),s&lt;=0?(l=0,s=c):(l&lt;0&amp;&amp;(l=0),l&gt;=c&amp;&amp;(l=c-1),l+s&gt;c&amp;&amp;(s=c-l)),i!==pl.MAGNITUDE||1!==c&amp;&amp;1!==s||(i=pl.COMPONENT));let u=0;switch(l&gt;0&amp;&amp;(u=l),i){case pl.COMPONENT:e.mapScalarsThroughTable(t,n,r,u);break;case pl.RGBCOLORS:break;case pl.MAGNITUDE:default:{const o=Is.newInstance({numberOfComponents:1,values:new Float32Array(t.getNumberOfTuples())});e.mapVectorsToMagnitude(t,o,s),e.mapScalarsThroughTable(o,n,r,0);break}}},e.luminanceToRGBA=(e,t,n,r)=&gt;{const o=r(n),a=t.getData(),i=e.getData(),s=a.length;let l=0;for(let e=0;e&lt;s;e+=1){const t=r(a[e]);i[4*l]=t,i[4*l+1]=t,i[4*l+2]=t,i[4*l+3]=o,l++}},e.luminanceAlphaToRGBA=(e,t,n,r)=&gt;{const o=t.getData(),a=e.getData(),i=o.length;let s=0;for(let e=0;e&lt;i;e+=2){const t=r(o[e]);a[s]=t,a[s+1]=t,a[s+2]=t,a[s+3]=r(o[e+1])*n,s+=4}},e.rGBToRGBA=(e,t,n,r)=&gt;{const o=vl(n),a=t.getData(),i=e.getData(),s=a.length;let l=0;for(let e=0;e&lt;s;e+=3)i[4*l]=r(a[e]),i[4*l+1]=r(a[e+1]),i[4*l+2]=r(a[e+2]),i[4*l+3]=o,l++},e.rGBAToRGBA=(e,t,n,r)=&gt;{const o=t.getData(),a=e.getData(),i=o.length;let s=0;for(let e=0;e&lt;i;e+=4)a[4*s]=r(o[e]),a[4*s+1]=r(o[e+1]),a[4*s+2]=r(o[e+2]),a[4*s+3]=r(o[e+3])*n,s++},e.convertToRGBA=(n,r,o)=&gt;{let{alpha:a}=t;if(4===r&amp;&amp;a&gt;=1&amp;&amp;n.getDataType()===fl.UNSIGNED_CHAR)return n;const i=Is.newInstance({numberOfComponents:4,empty:!0,size:4*o,dataType:fl.UNSIGNED_CHAR});if(o&lt;=0)return i;a=a&gt;0?a:0,a=a&lt;1?a:1;let s=hl;switch(n.getDataType()!==fl.FLOAT&amp;&amp;n.getDataType()!==fl.DOUBLE||(s=vl),r){case 1:e.luminanceToRGBA(i,n,a,s);break;case 2:e.luminanceAlphaToRGBA(i,n,s);break;case 3:e.rGBToRGBA(i,n,a,s);break;case 4:e.rGBAToRGBA(i,n,a,s);break;default:return ml(&quot;Cannot convert colors&quot;),null}return i},e.usingLogScale=()=&gt;!1,e.getNumberOfAvailableColors=()=&gt;16777216,e.setRange=(t,n)=&gt;e.setMappingRange(t,n),e.getRange=()=&gt;e.getMappingRange(),e.areScalarsOpaque=(n,r,o)=&gt;{if(!n)return e.isOpaque();const a=n.getNumberOfComponents();return(r!==gl.DEFAULT||n.getDataType()!==fl.UNSIGNED_CHAR)&amp;&amp;r!==gl.DIRECT_SCALARS||(3===a||1===a?t.alpha&gt;=1:255===n.getRange(a-1)[0])}}(e,t)}var yl={newInstance:sn.newInstance(xl,&quot;vtkScalarsToColors&quot;),extend:xl,...ll};const{vtkErrorMacro:bl}=sn;const Al={numberOfColors:256,hueRange:[0,.66667],saturationRange:[1,1],valueRange:[1,1],alphaRange:[1,1],nanColor:[.5,0,0,1],belowRangeColor:[0,0,0,1],aboveRangeColor:[1,1,1,1],useAboveRangeColor:!1,useBelowRangeColor:!1,alpha:1};function Cl(e,t,n={}){Object.assign(t,Al,n),yl.extend(e,t,n),t.table||(t.table=[]),t.buildTime={},sn.obj(t.buildTime),t.opaqueFlagBuildTime={},sn.obj(t.opaqueFlagBuildTime,{mtime:0}),t.insertTime={},sn.obj(t.insertTime,{mtime:0}),sn.get(e,t,[&quot;buildTime&quot;]),sn.setGet(e,t,[&quot;numberOfColors&quot;,&quot;useAboveRangeColor&quot;,&quot;useBelowRangeColor&quot;]),sn.setArray(e,t,[&quot;alphaRange&quot;,&quot;hueRange&quot;,&quot;saturationRange&quot;,&quot;valueRange&quot;],2),sn.setArray(e,t,[&quot;nanColor&quot;,&quot;belowRangeColor&quot;,&quot;aboveRangeColor&quot;],4),sn.getArray(e,t,[&quot;hueRange&quot;,&quot;saturationRange&quot;,&quot;valueRange&quot;,&quot;alphaRange&quot;,&quot;nanColor&quot;,&quot;belowRangeColor&quot;,&quot;aboveRangeColor&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkLookupTable&quot;),e.isOpaque=()=&gt;{if(t.opaqueFlagBuildTime.getMTime()&lt;e.getMTime()){let e=!0;t.nanColor[3]&lt;1&amp;&amp;(e=0),t.useBelowRangeColor&amp;&amp;t.belowRangeColor[3]&lt;1&amp;&amp;(e=0),t.useAboveRangeColor&amp;&amp;t.aboveRangeColor[3]&lt;1&amp;&amp;(e=0);for(let n=3;n&lt;t.table.length&amp;&amp;e;n+=4)t.table[n]&lt;255&amp;&amp;(e=!1);t.opaqueFlag=e,t.opaqueFlagBuildTime.modified()}return t.opaqueFlag},e.usingLogScale=()=&gt;!1,e.getNumberOfAvailableColors=()=&gt;t.table.length/4-3,e.linearIndexLookup=(e,t)=&gt;{let n=0;const r=Number(e);return r&lt;t.range[0]?n=t.maxIndex+0+1.5:r&gt;t.range[1]?n=t.maxIndex+1+1.5:(n=(r+t.shift)*t.scale,n=n&lt;t.maxIndex?n:t.maxIndex),Math.floor(n)},e.linearLookup=(t,n,r)=&gt;{let o=0;o=ka(t)?Math.floor(r.maxIndex+1.5+2):e.linearIndexLookup(t,r);const a=4*o;return n.slice(a,a+4)},e.indexedLookupFunction=(n,r,o)=&gt;{let a=e.getAnnotatedValueIndexInternal(n);-1===a&amp;&amp;(a=t.numberOfColors+2);const i=4*a;return[r[i],r[i+1],r[i+2],r[i+3]]},e.lookupShiftAndScale=(e,t)=&gt;{t.shift=-e[0],t.scale=Number.MAX_VALUE,e[1]&gt;e[0]&amp;&amp;(t.scale=(t.maxIndex+1)/(e[1]-e[0]))},e.mapScalarsThroughTable=(n,r,o,a)=&gt;{let i=e.linearLookup;t.indexedLookup&amp;&amp;(i=e.indexedLookupFunction);const s=e.getMappingRange(),l={maxIndex:e.getNumberOfColors()-1,range:s,shift:0,scale:0};e.lookupShiftAndScale(s,l);const c=e.getAlpha(),u=n.getNumberOfTuples(),d=n.getNumberOfComponents(),p=r.getData(),f=n.getData();if(c&gt;=1){if(o===sl.RGBA)for(let e=0;e&lt;u;e++){const n=i(f[e*d+a],t.table,l);p[4*e]=n[0],p[4*e+1]=n[1],p[4*e+2]=n[2],p[4*e+3]=n[3]}}else if(o===sl.RGBA)for(let e=0;e&lt;u;e++){const n=i(f[e*d+a],t.table,l);p[4*e]=n[0],p[4*e+1]=n[1],p[4*e+2]=n[2],p[4*e+3]=Math.floor(n[3]*c+.5)}},e.forceBuild=()=&gt;{let n=0,r=0,o=0,a=0;const i=t.numberOfColors-1;i&amp;&amp;(n=(t.hueRange[1]-t.hueRange[0])/i,r=(t.saturationRange[1]-t.saturationRange[0])/i,o=(t.valueRange[1]-t.valueRange[0])/i,a=(t.alphaRange[1]-t.alphaRange[0])/i),t.table.length=4*i+16;const s=[],l=[];for(let e=0;e&lt;=i;e++)s[0]=t.hueRange[0]+e*n,s[1]=t.saturationRange[0]+e*r,s[2]=t.valueRange[0]+e*o,ya(s,l),l[3]=t.alphaRange[0]+e*a,t.table[4*e]=255*l[0]+.5,t.table[4*e+1]=255*l[1]+.5,t.table[4*e+2]=255*l[2]+.5,t.table[4*e+3]=255*l[3]+.5;e.buildSpecialColors(),t.buildTime.modified()},e.setTable=n=&gt;{if(Array.isArray(n)){const r=n[0].length;t.numberOfColors=n.length;const o=4-r;let a=0;for(let e=0;e&lt;t.numberOfColors;e++)t.table[4*e]=255,t.table[4*e+1]=255,t.table[4*e+2]=255,t.table[4*e+3]=255;for(let e=0;e&lt;n.length;e++){const i=n[e];for(let e=0;e&lt;r;e++)t.table[a++]=i[e];a+=o}return e.buildSpecialColors(),t.insertTime.modified(),e.modified(),!0}if(4!==n.getNumberOfComponents())return bl(&quot;Expected 4 components for RGBA colors&quot;),!1;if(n.getDataType()!==ms.UNSIGNED_CHAR)return bl(&quot;Expected unsigned char values for RGBA colors&quot;),!1;t.numberOfColors=n.getNumberOfTuples();const r=n.getData();t.table.length=r.length;for(let e=0;e&lt;r.length;e++)t.table[e]=r[e];return e.buildSpecialColors(),t.insertTime.modified(),e.modified(),!0},e.buildSpecialColors=()=&gt;{const{numberOfColors:e}=t,n=t.table;let r=4*(e+0);t.useBelowRangeColor||0===e?(n[r]=255*t.belowRangeColor[0]+.5,n[r+1]=255*t.belowRangeColor[1]+.5,n[r+2]=255*t.belowRangeColor[2]+.5,n[r+3]=255*t.belowRangeColor[3]+.5):(n[r]=n[0],n[r+1]=n[1],n[r+2]=n[2],n[r+3]=n[3]),r=4*(e+1),t.useAboveRangeColor||0===e?(n[r]=255*t.aboveRangeColor[0]+.5,n[r+1]=255*t.aboveRangeColor[1]+.5,n[r+2]=255*t.aboveRangeColor[2]+.5,n[r+3]=255*t.aboveRangeColor[3]+.5):(n[r]=n[4*(e-1)+0],n[r+1]=n[4*(e-1)+1],n[r+2]=n[4*(e-1)+2],n[r+3]=n[4*(e-1)+3]),r=4*(e+2),n[r]=255*t.nanColor[0]+.5,n[r+1]=255*t.nanColor[1]+.5,n[r+2]=255*t.nanColor[2]+.5,n[r+3]=255*t.nanColor[3]+.5},e.build=()=&gt;{(t.table.length&lt;1||e.getMTime()&gt;t.buildTime.getMTime()&amp;&amp;t.insertTime.getMTime()&lt;=t.buildTime.getMTime())&amp;&amp;e.forceBuild()},t.table.length&gt;0&amp;&amp;(e.buildSpecialColors(),t.insertTime.modified())}(e,t)}var Sl={newInstance:sn.newInstance(Cl,&quot;vtkLookupTable&quot;),extend:Cl};const Pl={Off:0,PolygonOffset:1};let wl=Pl.PolygonOffset,Il=Pl.Off;const Ol=[&quot;VTK_RESOLVE_OFF&quot;,&quot;VTK_RESOLVE_POLYGON_OFFSET&quot;];function Rl(e=0){const t=Il===e;return Il=e,t}var Ml={Resolve:Pl,getResolveCoincidentTopologyAsString:function(){return Ol[Il]},getResolveCoincidentTopologyPolygonOffsetFaces:function(){return wl},getResolveCoincidentTopology:function(){return Il},setResolveCoincidentTopology:Rl,setResolveCoincidentTopologyPolygonOffsetFaces:function(e){const t=wl===e;return wl=e,t},setResolveCoincidentTopologyToDefault:function(){return Rl(Pl.Off)},setResolveCoincidentTopologyToOff:function(){return Rl(Pl.Off)},setResolveCoincidentTopologyToPolygonOffset:function(){return Rl(Pl.PolygonOffset)}};function Dl(e,t,n){n.forEach((n=&gt;{e[`get${n.method}`]=()=&gt;t[n.key],e[`set${n.method}`]=sn.objectSetterMap.object(e,t,{name:n.key,params:[&quot;factor&quot;,&quot;offset&quot;]})}))}const El=[&quot;Polygon&quot;,&quot;Line&quot;,&quot;Point&quot;],Vl={modified:()=&gt;{}};Dl(Vl,{Polygon:{factor:2,offset:0},Line:{factor:1,offset:-1},Point:{factor:0,offset:-2}},El.map((e=&gt;({key:e,method:`ResolveCoincidentTopology${e}OffsetParameters`}))));var Ll={implementCoincidentTopologyMethods:function(e,t){void 0===t.resolveCoincidentTopology&amp;&amp;(t.resolveCoincidentTopology=!1),sn.setGet(e,t,[&quot;resolveCoincidentTopology&quot;]),t.topologyOffset={Polygon:{factor:0,offset:0},Line:{factor:0,offset:0},Point:{factor:0,offset:0}},Object.keys(Ml).forEach((t=&gt;{e[t]=Ml[t]})),Object.keys(Vl).filter((e=&gt;&quot;modified&quot;!==e)).forEach((t=&gt;{e[t]=Vl[t]})),Dl(e,t.topologyOffset,El.map((e=&gt;({key:e,method:`RelativeCoincidentTopology${e}OffsetParameters`})))),e.getCoincidentTopologyPolygonOffsetParameters=()=&gt;{const t=Vl.getResolveCoincidentTopologyPolygonOffsetParameters(),n=e.getRelativeCoincidentTopologyPolygonOffsetParameters();return{factor:t.factor+n.factor,offset:t.offset+n.offset}},e.getCoincidentTopologyLineOffsetParameters=()=&gt;{const t=Vl.getResolveCoincidentTopologyLineOffsetParameters(),n=e.getRelativeCoincidentTopologyLineOffsetParameters();return{factor:t.factor+n.factor,offset:t.offset+n.offset}},e.getCoincidentTopologyPointOffsetParameter=()=&gt;{const t=Vl.getResolveCoincidentTopologyPointOffsetParameters(),n=e.getRelativeCoincidentTopologyPointOffsetParameters();return{factor:t.factor+n.factor,offset:t.offset+n.offset}}},staticOffsetAPI:Vl,otherStaticMethods:Ml,CATEGORIES:El,Resolve:Pl};const Bl={MIN_KNOWN_PASS:0,ACTOR_PASS:0,COMPOSITE_INDEX_PASS:1,ID_LOW24:2,ID_HIGH24:3,MAX_KNOWN_PASS:3};var Fl={PassTypes:Bl};const{FieldAssociations:Nl}=Qs,{staticOffsetAPI:kl,otherStaticMethods:Gl}=Ll,{ColorMode:Ul,ScalarMode:_l,GetArray:Kl}=cl,{VectorMode:zl}=ll,{VtkDataTypes:Wl}=Is;function Hl(e){return()=&gt;sn.vtkErrorMacro(`vtkMapper::${e} - NOT IMPLEMENTED`)}function jl(e,t){const n=e[1]%2==0?1:-1;if(e[0]+=n,e[0]&gt;=t[0]||e[0]&lt;0){const r=e[2]%2==0?1:-1;e[0]-=n,e[1]+=r,(e[1]&gt;=t[1]||e[1]&lt;0)&amp;&amp;(e[1]-=r,e[2]++)}}function Xl(e,t,n){const r=Math.floor(t),o=r%(2*n[0]);let a,i;o&lt;n[0]?(e[0]=o,a=1,i=e[0]===n[0]-1):(e[0]=2*n[0]-1-o,a=-1,i=0===e[0]);const s=Math.floor(r/n[0]),l=s%(2*n[1]);let c,u;l&lt;n[1]?(e[1]=l,c=1,u=e[1]===n[1]-1):(e[1]=2*n[1]-1-l,c=-1,u=0===e[1]),e[2]=Math.floor(s/n[1]);const d=t-r;i?u?e[2]+=d:e[1]+=c*d:e[0]+=a*d,e[0]=(e[0]+.5)/n[0],e[1]=(e[1]+.5)/n[1],e[2]=(e[2]+.5)/n[2]}const ql=new WeakMap;function Yl(e,t){t.classHierarchy.push(&quot;vtkMapper&quot;),e.computeBounds=()=&gt;{const n=e.getInputData();n?(t.static||e.update(),Hi.setBounds(t.bounds,n.getBounds())):Hi.reset(t.bounds)},e.setForceCompileOnly=e=&gt;{t.forceCompileOnly=e},e.setSelectionWebGLIdsToVTKIds=e=&gt;{t.selectionWebGLIdsToVTKIds=e},e.createDefaultLookupTable=()=&gt;{t.lookupTable=Sl.newInstance()},e.getColorModeAsString=()=&gt;sn.enumToString(Ul,t.colorMode),e.setColorModeToDefault=()=&gt;e.setColorMode(0),e.setColorModeToMapScalars=()=&gt;e.setColorMode(1),e.setColorModeToDirectScalars=()=&gt;e.setColorMode(2),e.getScalarModeAsString=()=&gt;sn.enumToString(_l,t.scalarMode),e.setScalarModeToDefault=()=&gt;e.setScalarMode(0),e.setScalarModeToUsePointData=()=&gt;e.setScalarMode(1),e.setScalarModeToUseCellData=()=&gt;e.setScalarMode(2),e.setScalarModeToUsePointFieldData=()=&gt;e.setScalarMode(3),e.setScalarModeToUseCellFieldData=()=&gt;e.setScalarMode(4),e.setScalarModeToUseFieldData=()=&gt;e.setScalarMode(5),e.getAbstractScalars=(e,n,r,o,a)=&gt;{if(!e||!t.scalarVisibility)return{scalars:null,cellFlag:!1};let i=null,s=!1;if(n===_l.DEFAULT)i=e.getPointData().getScalars(),i||(i=e.getCellData().getScalars(),s=!0);else if(n===_l.USE_POINT_DATA)i=e.getPointData().getScalars();else if(n===_l.USE_CELL_DATA)i=e.getCellData().getScalars(),s=!0;else if(n===_l.USE_POINT_FIELD_DATA){const t=e.getPointData();i=r===Kl.BY_ID?t.getArrayByIndex(o):t.getArrayByName(a)}else if(n===_l.USE_CELL_FIELD_DATA){const t=e.getCellData();s=!0,i=r===Kl.BY_ID?t.getArrayByIndex(o):t.getArrayByName(a)}else if(n===_l.USE_FIELD_DATA){const t=e.getFieldData();i=r===Kl.BY_ID?t.getArrayByIndex(o):t.getArrayByName(a)}return{scalars:i,cellFlag:s}},e.mapScalars=(n,r)=&gt;{const{scalars:o,cellFlag:a}=e.getAbstractScalars(n,t.scalarMode,t.arrayAccessMode,t.arrayId,t.colorByArrayName);if(t.areScalarsMappedFromCells=a,!o)return t.colorCoordinates=null,t.colorTextureMap=null,void(t.colorMapColors=null);const i=`${e.getMTime()}${o.getMTime()}${r}`;if(t.colorBuildString!==i){if(t.useLookupTableScalarRange||e.getLookupTable().setRange(t.scalarRange[0],t.scalarRange[1]),e.canUseTextureMapForColoring(o,a))t.mapScalarsToTexture(o,a,r);else{t.colorCoordinates=null,t.colorTextureMap=null;const n=e.getLookupTable();n&amp;&amp;(n.build(),t.colorMapColors=n.mapScalars(o,t.colorMode,t.fieldDataTupleId))}t.colorBuildString=`${e.getMTime()}${o.getMTime()}${r}`}},t.mapScalarsToTexture=(n,r,o)=&gt;{const a=t.lookupTable.getRange(),i=t.lookupTable.usingLogScale(),s=t.lookupTable.getAlpha(),l=i?[Math.log10(a[0]),Math.log10(a[1])]:a;if(t.colorMapColors=null,null==t.colorTextureMap||e.getMTime()&gt;t.colorTextureMap.getMTime()||t.lookupTable.getMTime()&gt;t.colorTextureMap.getMTime()||t.lookupTable.getAlpha()!==o){t.lookupTable.setAlpha(o),t.colorTextureMap=null,t.lookupTable.build();const e=t.lookupTable.getNumberOfAvailableColors(),n=2048,a=2,d=r?n**3-3:4096-2;t.numberOfColorsInRange=Math.min(Math.max(e,a),d);const p=t.numberOfColorsInRange+3,f=t.numberOfColorsInRange+2,g=r?[Math.min(Math.ceil(p/n**0),n),Math.min(Math.ceil(p/n**1),n),Math.min(Math.ceil(p/n**2),n)]:[f,2,1],m=g[0]*g[1]*g[2],h=new Float64Array(m);h.fill(NaN);const v=t.numberOfColorsInRange,T=v+2,x=[0,0,0],y=l[0],b=l[1]-l[0];for(let e=0;e&lt;T;++e){const t=y+b*(e-1)/(v-1),n=i?10**t:t;h[(u=g,(c=x)[0]+u[0]*(c[1]+u[1]*c[2]))]=n,jl(x,g)}const A=Is.newInstance({numberOfComponents:1,values:h}),C=t.lookupTable.mapScalars(A,t.colorMode,0);t.colorTextureMap=il.newInstance(),t.colorTextureMap.setDimensions(g),t.colorTextureMap.getPointData().setScalars(C),t.lookupTable.setAlpha(s)}var c,u;const d=t.lookupTable.getVectorMode()===zl.MAGNITUDE&amp;&amp;n.getNumberOfComponents()&gt;1?-1:t.lookupTable.getVectorComponent();t.colorCoordinates=function(e,t,n,r,o,a,i){const s=new Array(arguments.length);for(let e=0;e&lt;arguments.length;++e){const t=arguments[e];s[e]=t.getMTime?.()??t}const l=s.join(&quot;/&quot;),c=ql.get(e);if(c&amp;&amp;c.stringHash===l)return c.textureCoordinates;const u=(n[1]-n[0])/(o-1),[d,p]=[n[0]-u,n[1]+u],f=d-.5*u,g=1/(p-d+u),m=d,h=(o+1)/(p-d),v=e.getData(),T=e.getNumberOfTuples(),x=e.getNumberOfComponents(),y=t&lt;0||t&gt;=x,b=a[2]&lt;=1?2:3,A=Is.newInstance({numberOfComponents:b,values:new Float32Array(T*b)}),C=A.getData(),S=[0,0,0];Xl(S,o+2,a);let P=0,w=0;const I=[.5,.5,.5];for(let e=0;e&lt;T;++e){let e;if(y){let t=0;for(let e=0;e&lt;x;++e){const n=Number(v[P+e]);t+=n*n}e=Math.sqrt(t)}else e=Number(v[P+t]);if(r&amp;&amp;(e=Math.log10(e)),P+=x,ka(e))I[0]=S[0],I[1]=S[1],I[2]=S[2];else if(i){let t=(e-m)*h;t&lt;1?t=0:t&gt;o&amp;&amp;(t=o+1),Xl(I,t,a)}else{I[1]=.49;const t=(e-f)*g;I[0]=t&gt;1e3?1e3:t&lt;-1e3?-1e3:t}for(let e=0;e&lt;b;++e)C[w++]=I[e]}return ql.set(e,{stringHash:l,textureCoordinates:A}),A}(n,d,l,i,t.numberOfColorsInRange,t.colorTextureMap.getDimensions(),r)},e.getIsOpaque=()=&gt;{const n=e.getInputData(),r=e.getAbstractScalars(n,t.scalarMode,t.arrayAccessMode,t.arrayId,t.colorByArrayName).scalars;if(!t.scalarVisibility||null==r)return!0;const o=e.getLookupTable();return!o||(o.build(),o.areScalarsOpaque(r,t.colorMode,-1))},e.canUseTextureMapForColoring=(e,n)=&gt;!(!n||t.colorMode===Ul.DIRECT_SCALARS)||!!t.interpolateScalarsBeforeMapping&amp;&amp;((!t.lookupTable||!t.lookupTable.getIndexedLookup())&amp;&amp;(!!e&amp;&amp;((t.colorMode!==Ul.DEFAULT||e.getDataType()!==Wl.UNSIGNED_CHAR)&amp;&amp;t.colorMode!==Ul.DIRECT_SCALARS))),e.clearColorArrays=()=&gt;{t.colorMapColors=null,t.colorCoordinates=null,t.colorTextureMap=null},e.getLookupTable=()=&gt;(t.lookupTable||e.createDefaultLookupTable(),t.lookupTable),e.getMTime=()=&gt;{let e=t.mtime;if(null!==t.lookupTable){const n=t.lookupTable.getMTime();e=n&gt;e?n:e}return e},e.getPrimitiveCount=()=&gt;{const t=e.getInputData();return{points:t.getPoints().getNumberOfValues()/3,verts:t.getVerts().getNumberOfValues()-t.getVerts().getNumberOfCells(),lines:t.getLines().getNumberOfValues()-2*t.getLines().getNumberOfCells(),triangles:t.getPolys().getNumberOfValues()-3*t.getPolys().getNumberOfCells()}},e.acquireInvertibleLookupTable=Hl(&quot;AcquireInvertibleLookupTable&quot;),e.valueToColor=Hl(&quot;ValueToColor&quot;),e.colorToValue=Hl(&quot;ColorToValue&quot;),e.useInvertibleColorFor=Hl(&quot;UseInvertibleColorFor&quot;),e.clearInvertibleColor=Hl(&quot;ClearInvertibleColor&quot;),e.processSelectorPixelBuffers=(e,n)=&gt;{if(!e||!t.selectionWebGLIdsToVTKIds||!t.populateSelectionSettings)return;const r=e.getRawPixelBuffer(Bl.ID_LOW24),o=e.getRawPixelBuffer(Bl.ID_HIGH24),a=e.getCurrentPass(),i=e.getFieldAssociation();let s=null;i===Nl.FIELD_ASSOCIATION_POINTS?s=t.selectionWebGLIdsToVTKIds.points:i===Nl.FIELD_ASSOCIATION_CELLS&amp;&amp;(s=t.selectionWebGLIdsToVTKIds.cells),s&amp;&amp;n.forEach((t=&gt;{if(a===Bl.ID_LOW24){let n=0;o&amp;&amp;(n+=o[t],n*=256),n+=r[t+2],n*=256,n+=r[t+1],n*=256,n+=r[t];const a=s[n],i=e.getPixelBuffer(Bl.ID_LOW24);i[t]=255&amp;a,i[t+1]=(65280&amp;a)&gt;&gt;8,i[t+2]=(16711680&amp;a)&gt;&gt;16}else if(a===Bl.ID_HIGH24&amp;&amp;o){let n=0;n+=o[t],n*=256,n+=r[t+2],n*=256,n+=r[t+1],n*=256,n+=r[t];const a=s[n];e.getPixelBuffer(Bl.ID_HIGH24)[t]=(4278190080&amp;a)&gt;&gt;24}}))}}const Jl={colorMapColors:null,areScalarsMappedFromCells:!1,static:!1,lookupTable:null,scalarVisibility:!0,scalarRange:[0,1],useLookupTableScalarRange:!1,colorMode:0,scalarMode:0,arrayAccessMode:1,renderTime:0,colorByArrayName:null,fieldDataTupleId:-1,populateSelectionSettings:!0,selectionWebGLIdsToVTKIds:null,interpolateScalarsBeforeMapping:!1,colorCoordinates:null,colorTextureMap:null,numberOfColorsInRange:0,forceCompileOnly:0,useInvertibleColors:!1,invertibleScalars:null,customShaderAttributes:[]};function Zl(e,t,n={}){Object.assign(t,Jl,n),Ls.extend(e,t,n),sn.get(e,t,[&quot;areScalarsMappedFromCells&quot;,&quot;colorCoordinates&quot;,&quot;colorMapColors&quot;,&quot;colorTextureMap&quot;,&quot;numberOfColorsInRange&quot;,&quot;selectionWebGLIdsToVTKIds&quot;]),sn.setGet(e,t,[&quot;colorByArrayName&quot;,&quot;arrayAccessMode&quot;,&quot;colorMode&quot;,&quot;fieldDataTupleId&quot;,&quot;interpolateScalarsBeforeMapping&quot;,&quot;lookupTable&quot;,&quot;populateSelectionSettings&quot;,&quot;renderTime&quot;,&quot;scalarMode&quot;,&quot;scalarVisibility&quot;,&quot;static&quot;,&quot;useLookupTableScalarRange&quot;,&quot;customShaderAttributes&quot;]),sn.setGetArray(e,t,[&quot;scalarRange&quot;],2),Ll.implementCoincidentTopologyMethods(e,t),Yl(e,t)}var Ql={newInstance:sn.newInstance(Zl,&quot;vtkMapper&quot;),extend:Zl,...kl,...Gl,...cl};const{isVtkObject:$l}=sn;function ec(e){const t=[];for(let n=0;n&lt;e.length;n+=e[n]+1)t.push(e[n]);return t}function tc(e){let t=0;for(let n=0;n&lt;e.length;)n+=e[n]+1,t++;return t}const nc={extractCellSizes:ec,getNumberOfCells:tc};function rc(e,t,n={}){Is.extend(e,t,function(e){return{empty:!0,numberOfComponents:1,dataType:ms.UNSIGNED_INT,...e}}(n)),function(e,t){t.classHierarchy.push(&quot;vtkCellArray&quot;);const n={...e};e.getNumberOfCells=n=&gt;void 0===t.numberOfCells||n?(t.cellSizes?t.numberOfCells=t.cellSizes.length:t.numberOfCells=tc(e.getData()),t.numberOfCells):t.numberOfCells,e.getCellSizes=n=&gt;void 0===t.cellSizes||n?(t.cellSizes=ec(e.getData()),t.cellSizes):t.cellSizes,e.resize=r=&gt;{const o=e.getNumberOfTuples();n.resize(r);const a=e.getNumberOfTuples();a&lt;o&amp;&amp;(0===a?(t.numberOfCells=0,t.cellSizes=[]):(t.numberOfCells=void 0,t.cellSizes=void 0))},e.setData=e=&gt;{n.setData(e,1),t.numberOfCells=void 0,t.cellSizes=void 0},e.getCell=e=&gt;{let n=e;const r=t.values[n++];return t.values.subarray(n,n+r)},e.insertNextCell=n=&gt;{let r;r=$l(n)?n.getPointsIds():n;const o=e.getNumberOfCells();return e.insertNextTuples([r.length,...r]),++t.numberOfCells,null!=t.cellSizes&amp;&amp;t.cellSizes.push(r.length),o},e.getMaxCellSize=()=&gt;e.getCellSizes().reduce(((e,t)=&gt;Math.max(e,t)),0)}(e,t)}var oc={newInstance:sn.newInstance(rc,&quot;vtkCellArray&quot;),extend:rc,...nc};const{vtkErrorMacro:ac}=sn;const ic={empty:!0,numberOfComponents:3,dataType:ms.FLOAT,bounds:[1,-1,1,-1,1,-1]};function sc(e,t,n={}){Object.assign(t,ic,n),Is.extend(e,t,n),sn.getArray(e,t,[&quot;bounds&quot;],6),function(e,t){let n=0;t.classHierarchy.push(&quot;vtkPoints&quot;),e.getNumberOfPoints=e.getNumberOfTuples,e.setNumberOfPoints=(n,r=3)=&gt;{e.getNumberOfPoints()!==n&amp;&amp;(t.size=n*r,t.values=sn.newTypedArray(t.dataType,t.size),e.setNumberOfComponents(r),e.modified())},e.setPoint=(t,...n)=&gt;{e.setTuple(t,n)},e.getPoint=e.getTuple,e.findPoint=e.findTuple,e.insertNextPoint=(t,n,r)=&gt;e.insertNextTuple([t,n,r]),e.insertPoint=(t,n)=&gt;e.insertTuple(t,n);const r=e.getBounds;e.getBounds=()=&gt;(n&lt;t.mtime&amp;&amp;e.computeBounds(),r());const o=e.getBoundsByReference;e.getBoundsByReference=()=&gt;(n&lt;t.mtime&amp;&amp;e.computeBounds(),o()),e.computeBounds=()=&gt;{if(3===e.getNumberOfComponents()){const n=e.getRange(0);t.bounds[0]=n[0],t.bounds[1]=n[1];const r=e.getRange(1);t.bounds[2]=r[0],t.bounds[3]=r[1];const o=e.getRange(2);t.bounds[4]=o[0],t.bounds[5]=o[1]}else if(2===e.getNumberOfComponents()){const n=e.getRange(0);t.bounds[0]=n[0],t.bounds[1]=n[1];const r=e.getRange(1);t.bounds[2]=r[0],t.bounds[3]=r[1],t.bounds[4]=0,t.bounds[5]=0}else ac(`getBounds called on an array with components of ${e.getNumberOfComponents()}`),Ia(t.bounds);n=sn.getCurrentGlobalMTime()},e.setNumberOfComponents(t.numberOfComponents&lt;2?3:t.numberOfComponents)}(e,t)}var lc={newInstance:sn.newInstance(sc,&quot;vtkPoints&quot;),extend:sc};const cc={bounds:[-1,-1,-1,-1,-1,-1],pointsIds:[]};function uc(e,t,n={}){Object.assign(t,cc,n),sn.obj(e,t),t.points||(t.points=lc.newInstance()),sn.get(e,t,[&quot;points&quot;,&quot;pointsIds&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkCell&quot;),e.initialize=(e,n=null)=&gt;{if(n){t.pointsIds=n;let r=t.points.getData();r.length!==3*t.pointsIds.length&amp;&amp;(r=sn.newTypedArray(e.getDataType(),3*t.pointsIds.length));const o=e.getData();t.pointsIds.forEach(((e,t)=&gt;{let n=3*e,a=3*t;r[a]=o[n],r[++a]=o[++n],r[++a]=o[++n]})),t.points.setData(r)}else{t.points=e,t.pointsIds=new Array(e.getNumberOfPoints());for(let n=e.getNumberOfPoints()-1;n&gt;=0;--n)t.pointsIds[n]=n}},e.getBounds=()=&gt;t.points.getBounds(),e.getLength2=()=&gt;{const t=Hi.getLengths(e.getBounds());return t[0]*t[0]+t[1]*t[1]+t[2]*t[2]},e.getParametricDistance=e=&gt;{let t,n=0;for(let r=0;r&lt;3;r++)t=e[r]&lt;0?-e[r]:e[r]&gt;1?e[r]-1:0,t&gt;n&amp;&amp;(n=t);return n},e.getNumberOfPoints=()=&gt;t.points.getNumberOfPoints(),e.deepCopy=e=&gt;{e.initialize(t.points,t.pointsIds)},e.getCellDimension=()=&gt;{},e.intersectWithLine=(e,t,n,r,o,a,i)=&gt;{},e.evaluatePosition=(e,t,n,r,o,a)=&gt;{sn.vtkErrorMacro(&quot;vtkCell.evaluatePosition is not implemented.&quot;)}}(e,t)}var dc={newInstance:sn.newInstance(uc,&quot;vtkCell&quot;),extend:uc};const pc={array:null,maxId:0,extend:0};function fc(e,t,n={}){Object.assign(t,pc,n),sn.obj(e,t),function(e,t){t.classHierarchy.push(&quot;vtkCellLinks&quot;),e.buildLinks=n=&gt;{const r=n.getPoints().getNumberOfPoints(),o=n.getNumberOfCells(),a=new Uint32Array(r);if(n.isA(&quot;vtkPolyData&quot;)){for(let t=0;t&lt;o;++t){const{cellPointIds:r}=n.getCellPoints(t);r.forEach((t=&gt;{e.incrementLinkCount(t)}))}e.allocateLinks(r),t.maxId=r-1;for(let t=0;t&lt;o;++t){const{cellPointIds:r}=n.getCellPoints(t);r.forEach((n=&gt;{e.insertCellReference(n,a[n]++,t)}))}}else{for(let t=0;t&lt;o;t++)dc.newInstance().getPointsIds().forEach((t=&gt;{e.incrementLinkCount(t)}));e.allocateLinks(r),t.maxId=r-1;for(let t=0;t&lt;o;++t)dc.newInstance().getPointsIds().forEach((n=&gt;{e.insertCellReference(n,a[n]++,t)}))}},e.allocate=(e,n=1e3)=&gt;{t.array=Array(e).fill().map((()=&gt;({ncells:0,cells:null}))),t.extend=n,t.maxId=-1},e.initialize=()=&gt;{t.array=null},e.getLink=e=&gt;t.array[e],e.getNcells=e=&gt;t.array[e].ncells,e.getCells=e=&gt;t.array[e].cells,e.insertNextPoint=e=&gt;{t.array.push({ncells:e,cells:Array(e)}),++t.maxId},e.insertNextCellReference=(e,n)=&gt;{t.array[e].cells[t.array[e].ncells++]=n},e.deletePoint=e=&gt;{t.array[e].ncells=0,t.array[e].cells=null},e.removeCellReference=(e,n)=&gt;{t.array[n].cells=t.array[n].cells.filter((t=&gt;t!==e)),t.array[n].ncells=t.array[n].cells.length},e.addCellReference=(e,n)=&gt;{t.array[n].cells[t.array[n].ncells++]=e},e.resizeCellList=(e,n)=&gt;{t.array[e].cells.length=n},e.squeeze=()=&gt;{!function(e,t){let n=t;for(t&gt;=e.array.length&amp;&amp;(n+=e.array.length);n&gt;e.array.length;)e.array.push({ncells:0,cells:null});e.array.length=n}(t,t.maxId+1)},e.reset=()=&gt;{t.maxId=-1},e.deepCopy=e=&gt;{t.array=[...e.array],t.extend=e.extend,t.maxId=e.maxId},e.incrementLinkCount=e=&gt;{++t.array[e].ncells},e.allocateLinks=e=&gt;{for(let n=0;n&lt;e;++n)t.array[n].cells=new Array(t.array[n].ncells)},e.insertCellReference=(e,n,r)=&gt;{t.array[e].cells[n]=r}}(e,t)}var gc={newInstance:sn.newInstance(fc,&quot;vtkCellLinks&quot;),extend:fc};const mc=0,hc=1,vc=2,Tc=3,xc=4,yc=5,bc=6,Ac=7,Cc=9,Sc=21,Pc=41,wc=42,Ic=[&quot;vtkEmptyCell&quot;,&quot;vtkVertex&quot;,&quot;vtkPolyVertex&quot;,&quot;vtkLine&quot;,&quot;vtkPolyLine&quot;,&quot;vtkTriangle&quot;,&quot;vtkTriangleStrip&quot;,&quot;vtkPolygon&quot;,&quot;vtkPixel&quot;,&quot;vtkQuad&quot;,&quot;vtkTetra&quot;,&quot;vtkVoxel&quot;,&quot;vtkHexahedron&quot;,&quot;vtkWedge&quot;,&quot;vtkPyramid&quot;,&quot;vtkPentagonalPrism&quot;,&quot;vtkHexagonalPrism&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;vtkQuadraticEdge&quot;,&quot;vtkQuadraticTriangle&quot;,&quot;vtkQuadraticQuad&quot;,&quot;vtkQuadraticTetra&quot;,&quot;vtkQuadraticHexahedron&quot;,&quot;vtkQuadraticWedge&quot;,&quot;vtkQuadraticPyramid&quot;,&quot;vtkBiQuadraticQuad&quot;,&quot;vtkTriQuadraticHexahedron&quot;,&quot;vtkQuadraticLinearQuad&quot;,&quot;vtkQuadraticLinearWedge&quot;,&quot;vtkBiQuadraticQuadraticWedge&quot;,&quot;vtkBiQuadraticQuadraticHexahedron&quot;,&quot;vtkBiQuadraticTriangle&quot;,&quot;vtkCubicLine&quot;,&quot;vtkQuadraticPolygon&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;vtkConvexPointSet&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;vtkParametricCurve&quot;,&quot;vtkParametricSurface&quot;,&quot;vtkParametricTriSurface&quot;,&quot;vtkParametricQuadSurface&quot;,&quot;vtkParametricTetraRegion&quot;,&quot;vtkParametricHexRegion&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;vtkHigherOrderEdge&quot;,&quot;vtkHigherOrderTriangle&quot;,&quot;vtkHigherOrderQuad&quot;,&quot;vtkHigherOrderPolygon&quot;,&quot;vtkHigherOrderTetrahedron&quot;,&quot;vtkHigherOrderWedge&quot;,&quot;vtkHigherOrderPyramid&quot;,&quot;vtkHigherOrderHexahedron&quot;];const Oc={getClassNameFromTypeId:function(e){return e&lt;Ic.length?Ic[e]:&quot;UnknownClass&quot;},getTypeIdFromClassName:function(e){return Ic.findIndex(e)},isLinear:function(e){return e&lt;Sc||e===Pc||e===wc},hasSubCells:function(e){return e===bc||e===xc||e===vc}};const Rc={size:0,maxId:-1,extend:1e3};function Mc(e,t,n={}){Object.assign(t,Rc,n),sn.obj(e,t),sn.get(e,t,[&quot;size&quot;,&quot;maxId&quot;,&quot;extend&quot;]),sn.getArray(e,t,[&quot;typeArray&quot;,&quot;locationArray&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkCellTypes&quot;),e.allocate=(e=512,n=1e3)=&gt;{t.size=e&gt;0?e:1,t.extend=n&gt;0?n:1,t.maxId=-1,t.typeArray=new Uint8Array(e),t.locationArray=new Uint32Array(e)},e.insertCell=(e,n,r)=&gt;{t.typeArray[e]=n,t.locationArray[e]=r,e&gt;t.maxId&amp;&amp;(t.maxId=e)},e.insertNextCell=(n,r)=&gt;(e.insertCell(++t.maxId,n,r),t.maxId),e.setCellTypes=(e,n,r)=&gt;{t.size=e,t.typeArray=n,t.locationArray=r,t.maxId=e-1},e.getCellLocation=e=&gt;t.locationArray[e],e.deleteCell=e=&gt;{t.typeArray[e]=mc},e.getNumberOfTypes=()=&gt;t.maxId+1,e.isType=t=&gt;{const n=e.getNumberOfTypes();for(let r=0;r&lt;n;++r)if(t===e.getCellType(r))return!0;return!1},e.insertNextType=t=&gt;e.insertNextCell(t,-1),e.getCellType=e=&gt;t.typeArray[e],e.reset=()=&gt;{t.maxId=-1},e.deepCopy=n=&gt;{e.allocate(n.getSize(),n.getExtend()),t.typeArray.set(n.getTypeArray()),t.locationArray.set(n.getLocationArray()),t.maxId=n.getMaxId()}}(e,t)}var Dc={newInstance:sn.newInstance(Mc,&quot;vtkCellTypes&quot;),extend:Mc,...Oc};const Ec={NO_INTERSECTION:0,YES_INTERSECTION:1,ON_LINE:2};var Vc={IntersectionState:Ec};const{IntersectionState:Lc}=Vc;function Bc(e,t,n,r=null){const o={t:Number.MIN_VALUE,distance:0},a=[];let i;a[0]=n[0]-t[0],a[1]=n[1]-t[1],a[2]=n[2]-t[2];const s=a[0]*(e[0]-t[0])+a[1]*(e[1]-t[1])+a[2]*(e[2]-t[2]),l=zo(a,a);let c=1e-5*s;return 0!==l&amp;&amp;(o.t=s/l),c&lt;0&amp;&amp;(c=-c),-c&lt;l&amp;&amp;l&lt;c||l&lt;=0||o.t&lt;0?i=t:o.t&gt;1?i=n:(i=a,a[0]=t[0]+o.t*a[0],a[1]=t[1]+o.t*a[1],a[2]=t[2]+o.t*a[2]),r&amp;&amp;(r[0]=i[0],r[1]=i[1],r[2]=i[2]),o.distance=Yo(i,e),o}function Fc(e,t,n,r,o,a){const i=[],s=[],l=[];o[0]=0,a[0]=0,Go(t,e,i),Go(r,n,s),Go(n,e,l);const c=[zo(i,i),-zo(i,s),-zo(i,s),zo(s,s)],u=[];if(u[0]=zo(i,l),u[1]=-zo(s,l),0===ha(c,u,2)){let i=Number.MAX_VALUE;const s=[e,t,n,r],l=[n,n,e,e],c=[r,r,t,t];let u;a[0],a[0],o[0],o[0],o[0],o[0],a[0],a[0];for(let e=0;e&lt;4;e++)u=Bc(s[e],l[e],c[e]),u.distance&lt;i&amp;&amp;(i=u.distance,u.t);return Lc.ON_LINE}return o[0]=u[0],a[0]=u[1],o[0]&gt;=0&amp;&amp;o[0]&lt;=1&amp;&amp;a[0]&gt;=0&amp;&amp;a[0]&lt;=1?Lc.YES_INTERSECTION:Lc.NO_INTERSECTION}const Nc={distanceToLine:Bc,intersection:Fc};const kc={orientations:null};function Gc(e,t,n={}){Object.assign(t,kc,n),dc.extend(e,t,n),sn.setGet(e,t,[&quot;orientations&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkLine&quot;),e.getCellDimension=()=&gt;1,e.intersectWithLine=(e,n,r,o,a)=&gt;{const i={intersect:0,t:Number.MAX_VALUE,subId:0,betweenPoints:null};a[1]=0,a[2]=0;const s=[],l=[],c=[];t.points.getPoint(0,l),t.points.getPoint(1,c);const u=[],d=[],p=Fc(e,n,l,c,u,d);var f;if(i.t=u[0],i.betweenPoints=(f=i.t)&gt;=0&amp;&amp;f&lt;=1,a[0]=d[0],p===Lc.YES_INTERSECTION){for(let t=0;t&lt;3;t++)o[t]=l[t]+a[0]*(c[t]-l[t]),s[t]=e[t]+i.t*(n[t]-e[t]);if(Yo(o,s)&lt;=r*r)return i.intersect=1,i}else{let t;if(i.t&lt;0)return t=Bc(e,l,c,o),t.distance&lt;=r*r?(i.t=0,i.intersect=1,i.betweenPoints=!0,i):i;if(i.t&gt;1)return t=Bc(n,l,c,o),t.distance&lt;=r*r?(i.t=1,i.intersect=1,i.betweenPoints=!0,i):i;if(a[0]&lt;0)return a[0]=0,t=Bc(l,e,n,o),i.t=t.t,t.distance&lt;=r*r?(i.intersect=1,i):i;if(a[0]&gt;1)return a[0]=1,t=Bc(c,e,n,o),i.t=t.t,t.distance&lt;=r*r?(i.intersect=1,i):i}return i},e.evaluateLocation=(e,n,r)=&gt;{const o=[],a=[];t.points.getPoint(0,o),t.points.getPoint(1,a);for(let t=0;t&lt;3;t++)n[t]=o[t]+e[0]*(a[t]-o[t]);r[0]=1-e[0],r[1]=e[0]},e.evaluateOrientation=(e,n,r)=&gt;!!t.orientations&amp;&amp;(me(n,t.orientations[0],t.orientations[1],e[0]),r[0]=1-e[0],r[1]=e[0],!0)}(e,t)}var Uc={newInstance:sn.newInstance(Gc,&quot;vtkLine&quot;),extend:Gc,...Nc,...Vc};const _c={};function Kc(e,t,n={}){Object.assign(t,_c,n),Qs.extend(e,t,n),sn.setGet(e,t,[&quot;points&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkPointSet&quot;),t.points?t.points=it(t.points):t.points=lc.newInstance(),e.getNumberOfPoints=()=&gt;t.points.getNumberOfPoints(),e.getBounds=()=&gt;t.points?.getBounds(),e.computeBounds=()=&gt;{t.points?.computeBounds()};const n=e.shallowCopy;e.shallowCopy=(e,r=!1)=&gt;{n(e,r),t.points=lc.newInstance(),t.points.shallowCopy(e.getPoints())};const r=e.getMTime;e.getMTime=()=&gt;{const e=r();return Math.max(e,t.points?.getMTime()??e)};const o=e.initialize;e.initialize=()=&gt;(t.points?.initialize(),o())}(e,t)}var zc={newInstance:sn.newInstance(Kc,&quot;vtkPointSet&quot;),extend:Kc};const Wc={orientations:null,distanceFunction:ue};function Hc(e,t,n={}){Object.assign(t,Wc,n),dc.extend(e,t,n),sn.setGet(e,t,[&quot;orientations&quot;,&quot;distanceFunction&quot;]),t.distancesTime={},sn.obj(t.distancesTime,{mtime:0}),function(e,t){t.classHierarchy.push(&quot;vtkPolyLine&quot;);const n=Uc.newInstance();n.getPoints().setNumberOfPoints(2),e.getCellDimension=()=&gt;1,e.intersectWithLine=(r,o,a,i,s,l,c)=&gt;{const u={intersect:0,t:Number.MAX_VALUE,subId:0,betweenPoints:null},d=e.getNumberOfPoints()-1;let p=Number.MAX_VALUE;for(let e=0;e&lt;d;e++){const d=[0,0,0];n.getPoints().getData().set(t.points.getData().subarray(3*e,3*(e+2)));const f=n.intersectWithLine(a,i,s,l,c);if(1===f.intersect&amp;&amp;f.t&lt;=u.t+s&amp;&amp;f.t&gt;=r&amp;&amp;f.t&lt;=o){u.intersect=1;const t=n.getParametricDistance(d);if(t&lt;p||t===p&amp;&amp;f.t&lt;u.t){u.subId=e,u.t=f.t,p=t;for(let e=0;e&lt;3;e++)l[e],d[e]}}}return u},e.evaluateLocation=(e,r,o,a)=&gt;(n.getPoints().getData().set(t.points.getData().subarray(3*e,3*(e+2))),n.evaluateLocation(r,o,a)),e.evaluateOrientation=(e,r,o,a)=&gt;(t.orientations?n.setOrientations([t.orientations[e],t.orientations[e+1]]):n.setOrientations(null),n.evaluateOrientation(r,o,a)),e.getDistancesToFirstPoint=()=&gt;{const n=t.distancesTime.getMTime();if(n&lt;t.points.getMTime()||n&lt;e.getMTime()){const n=e.getNumberOfPoints();if(t.distances?t.distances.length=n:t.distances=new Array(n),n&gt;0){const e=new Array(3),a=new Array(3);let i=0;t.distances[0]=i,t.points.getPoint(0,e);for(let s=1;s&lt;n;++s)t.points.getPoint(s,a),i+=t.distanceFunction(e,a),t.distances[s]=i,o=a,(r=e)[0]=o[0],r[1]=o[1],r[2]=o[2]}t.distancesTime.modified()}var r,o;return t.distances},e.findPointIdAtDistanceFromFirstPoint=t=&gt;{const n=e.getDistancesToFirstPoint();if(n.length&lt;2)return-1;let r=0,o=n.length-1;if(t&lt;n[r]||t&gt;n[o]||0===n[o])return-1;for(;o-r&gt;1;){const e=Math.floor((r+o)/2);n[e]&lt;=t?r=e:o=e}return r}}(e,t)}var jc={newInstance:sn.newInstance(Hc,&quot;vtkPolyLine&quot;),extend:Hc};const Xc={elements:[]};function qc(e,t,n={}){Object.assign(t,Xc,n),sn.obj(e,t),function(e,t){t.classHierarchy.push(&quot;vtkPriorityQueue&quot;),e.push=(e,n)=&gt;{const r=t.elements.findIndex((t=&gt;t.priority&gt;e));t.elements.splice(r,0,{priority:e,element:n})},e.pop=()=&gt;t.elements.length&gt;0?t.elements.shift().element:null,e.deleteById=e=&gt;{t.elements=t.elements.filter((({element:t})=&gt;t.id!==e))},e.length=()=&gt;t.elements.length}(e,t)}var Yc={newInstance:sn.newInstance(qc,&quot;vtkPriorityQueue&quot;),extend:qc};const Jc=1e-6,Zc=1.1920929e-7,Qc={FAILURE:-1,OUTSIDE:0,INSIDE:1,INTERSECTION:2,ON_LINE:3};function $c(e,t,n,r,o){return(r[e]-n[e])*(o[t]-n[t])-(o[e]-n[e])*(r[t]-n[t])}const eu={PolygonWithPointIntersectionState:Qc,pointInPolygon:function(e,t,n,r){if(e[0]&lt;n[0]||e[0]&gt;n[1]||e[1]&lt;n[2]||e[1]&gt;n[3]||e[2]&lt;n[4]||e[2]&gt;n[5])return Qc.OUTSIDE;if(jo(r)&lt;=Zc)return Qc.FAILURE;let o=1e-8*((n[1]-n[0])*(n[1]-n[0])+(n[3]-n[2])*(n[3]-n[2])+(n[5]-n[4])*(n[5]-n[4]));o*=o,o=0===o?Zc:o;const a=[],i=[];for(let n=0;n&lt;t.length;){if(a[0]=t[n++],a[1]=t[n++],a[2]=t[n++],Yo(e,a)&lt;=o)return Qc.INSIDE;const{distance:r,t:s}=Uc.distanceToLine(e,a,i);if(r&lt;=o&amp;&amp;s&gt;0&amp;&amp;s&lt;1)return Qc.INSIDE}let s,l;Math.abs(r[0])&gt;Math.abs(r[1])?Math.abs(r[0])&gt;Math.abs(r[2])?(s=1,l=2):(s=0,l=1):Math.abs(r[1])&gt;Math.abs(r[2])?(s=0,l=2):(s=0,l=1);let c=0;for(let n=0;n&lt;t.length;)a[0]=t[n++],a[1]=t[n++],a[2]=t[n++],n&lt;t.length?(i[0]=t[n],i[1]=t[n+1],i[2]=t[n+2]):(i[0]=t[0],i[1]=t[1],i[2]=t[2]),a[l]&lt;=e[l]?i[l]&gt;e[l]&amp;&amp;$c(s,l,a,i,e)&gt;0&amp;&amp;++c:i[l]&lt;=e[l]&amp;&amp;$c(s,l,a,i,e)&lt;0&amp;&amp;--c;return 0===c?Qc.OUTSIDE:Qc.INSIDE},getBounds:function(e,t,n){const r=e.length,o=[];t.getPoint(e[0],o),n[0]=o[0],n[1]=o[0],n[2]=o[1],n[3]=o[1],n[4]=o[2],n[5]=o[2];for(let a=1;a&lt;r;a++)t.getPoint(e[a],o),Hi.addPoint(n,...o);const a=Hi.getLengths(n);return zo(a,a)},getNormal:function(e,t,n){n.length=3,n[0]=0,n[1]=0,n[2]=0;const r=[];let o=[],a=[];const i=[],s=[];t.getPoint(e[0],r),t.getPoint(e[1],o);for(let l=2;l&lt;e.length;l++){t.getPoint(e[l],a),Go(a,o,i),Go(r,o,s);const c=[0,0,0];Wo(i,s,c),ko(n,c,n),[o,a]=[a,o]}return jo(n)},computeCentroid:function(e,t,n=[0,0,0]){n[0]=0,n[1]=0,n[2]=0;const r=e.length,o=[];for(let a=0;a&lt;r;a++)t.getPoint(e[a],o),n[0]+=o[0],n[1]+=o[1],n[2]+=o[2];return n[0]/=r,n[1]/=r,n[2]/=r,n}};function tu(e,t){function n(e){const n=[0,0,0],r=[0,0,0],o=[0,0,0],a=[0,0,0];Go(e.point,e.previous.point,n),Go(e.next.point,e.point,r),Go(e.previous.point,e.next.point,o),Wo(n,r,a);const i=zo(a,t.normal);if(i&lt;=0)return-1;const s=Ho(n)+Ho(r)+Ho(o);return s*s/i}function r(e){if(t.pointCount&lt;=3)return!0;const n=e.previous,r=e.next,o=[0,0,0];Go(r.point,n.point,o);const a=[0,0,0];if(Wo(o,t.normal,a),jo(a),0===Ho(a))return!1;let i=ai.evaluate(a,n.point,r.next.point),s=i&gt;Jc?1:i&lt;-1e-6?-1:0,l=s&lt;0?1:0;for(let e=r.next.next;e.id!==n.id;e=e.next){const t=e.previous;i=ai.evaluate(a,n.point,e.point);const o=i&gt;Jc?1:i&lt;-1e-6?-1:0;if(o!==s){if(l||(l=o&lt;=0?1:0),Uc.intersection(n.point,r.point,e.point,t.point,[0],[0])===Ec.YES_INTERSECTION)return!1;s=o}}return 1===l}function o(e,r){t.pointCount-=1;const o=e.previous,a=e.next;t.tris=t.tris.concat(e.point),t.tris=t.tris.concat(a.point),t.tris=t.tris.concat(o.point),o.next=a,a.previous=o,r.deleteById(o.id),r.deleteById(a.id);const i=n(o);i&gt;0&amp;&amp;r.push(i,o);const s=n(a);s&gt;0&amp;&amp;r.push(s,a),e.id===t.firstPoint.id&amp;&amp;(t.firstPoint=a)}function a(){!function(){const e=[0,0,0],n=[0,0,0];t.normal=[0,0,0];const r=[...t.firstPoint.point];let o=t.firstPoint;for(let a=0;a&lt;t.pointCount;a++){Go(o.point,r,e),Go(o.next.point,r,n);const a=[0,0,0];Wo(e,n,a),ko(t.normal,a,t.normal),o=o.next}jo(t.normal)}();const e=Yc.newInstance();let a=t.firstPoint;for(let r=0;r&lt;t.pointCount;r++){const t=n(a);t&gt;0&amp;&amp;e.push(t,a),a=a.next}for(;t.pointCount&gt;2&amp;&amp;e.length()&gt;0;)if(t.pointCount===e.length()){o(e.pop(),e)}else{const t=e.pop();r(t)&amp;&amp;o(t,e)}return t.pointCount&lt;=2}t.classHierarchy.push(&quot;vtkPolygon&quot;),e.triangulate=()=&gt;t.firstPoint?a():null,e.setPoints=e=&gt;{t.pointCount=e.length,t.firstPoint={id:0,point:e[0],next:null,previous:null};let n=t.firstPoint;for(let r=1;r&lt;t.pointCount;r++)n.next={id:r,point:e[r],next:null,previous:n},n=n.next;t.firstPoint.previous=n,n.next=t.firstPoint},e.getPointArray=()=&gt;t.tris}const nu={firstPoint:null,pointCount:0,tris:[]};function ru(e,t,n={}){Object.assign(t,nu,n),sn.obj(e,t),tu(e,t)}var ou={newInstance:sn.newInstance(ru,&quot;vtkPolygon&quot;),extend:ru,...eu};function au(e,t,n,r){const o=n[0]-t[0],a=n[1]-t[1],i=n[2]-t[2],s=e[0]-t[0],l=e[1]-t[1],c=e[2]-t[2];r[0]=a*c-i*l,r[1]=i*s-o*c,r[2]=o*l-a*s}function iu(e,t,n,r){au(e,t,n,r);const o=Math.sqrt(r[0]*r[0]+r[1]*r[1]+r[2]*r[2]);0!==o&amp;&amp;(r[0]/=o,r[1]/=o,r[2]/=o)}function su(e){e[0]=-1,e[1]=1,e[2]=0,e[3]=-1,e[4]=0,e[5]=1}const lu=[[0,1],[1,2],[2,0]],cu=[1,2,4],uu=[[-1,-1,-1,-1,-1,-1,-1],[0,2,100,-1,-1,-1,-1],[1,0,101,-1,-1,-1,-1],[1,2,100,1,100,101,-1],[2,1,102,-1,-1,-1,-1],[0,1,102,102,100,0,-1],[0,101,2,2,101,102,-1],[100,101,102,-1,-1,-1,-1]],du={computeNormalDirection:au,computeNormal:iu,interpolationDerivs:su,intersectWithTriangle:function(e,t,n,r,o,a,i=1e-6){let s=!1;const l=[],c=[],u=[],d=[],p=[];iu(e,t,n,d),iu(r,o,a,p);const f=-zo(d,e),g=-zo(p,r),m=[zo(p,e)+g,zo(p,t)+g,zo(p,n)+g];if(m[0]*m[1]&gt;i&amp;&amp;m[0]*m[2]&gt;i)return{intersect:!1,coplanar:s,pt1:l,pt2:c,surfaceId:u};const h=[zo(d,r)+f,zo(d,o)+f,zo(d,a)+f];if(h[0]*h[1]&gt;i&amp;&amp;h[0]*h[2]&gt;i)return{intersect:!1,coplanar:s,pt1:l,pt2:c,surfaceId:u};if(Math.abs(d[0]-p[0])&lt;1e-9&amp;&amp;Math.abs(d[1]-p[1])&lt;1e-9&amp;&amp;Math.abs(d[2]-p[2])&lt;1e-9&amp;&amp;Math.abs(f-g)&lt;1e-9)return s=!0,{intersect:!1,coplanar:s,pt1:l,pt2:c,surfaceId:u};const v=[e,t,n],T=[r,o,a],x=zo(d,p),y=(f-g*x)/(x*x-1),b=(g-f*x)/(x*x-1),A=[y*d[0]+b*p[0],y*d[1]+b*p[1],y*d[2]+b*p[2]],C=Wo(d,p,[]);jo(C);let S=0,P=0;const w=[],I=[];let O,R,M=50,D=50;for(let t=0;t&lt;3;t++){const n=t,o=(t+1)%3,a=ai.intersectWithLine(v[n],v[o],r,p);a.intersection&amp;&amp;a.t&gt;0-i&amp;&amp;a.t&lt;1+i&amp;&amp;(a.t&lt;1+i&amp;&amp;a.t&gt;1-i&amp;&amp;(M=S),w[S++]=zo(a.x,C)-zo(A,C));const s=ai.intersectWithLine(T[n],T[o],e,d);s.intersection&amp;&amp;s.t&gt;0-i&amp;&amp;s.t&lt;1+i&amp;&amp;(s.t&lt;1+i&amp;&amp;s.t&gt;1-i&amp;&amp;(D=P),I[P++]=zo(s.x,C)-zo(A,C))}if(S&gt;2){S--;const e=w[2];w[2]=w[M],w[M]=e}if(P&gt;2){P--;const e=I[2];I[2]=I[D],I[D]=e}if(2!==S||2!==P)return{intersect:!1,coplanar:s,pt1:l,pt2:c,surfaceId:u};if(Number.isNaN(w[0])||Number.isNaN(w[1])||Number.isNaN(I[0])||Number.isNaN(I[1]))return{intersect:!1,coplanar:s,pt1:l,pt2:c,surfaceId:u};if(w[0]&gt;w[1]){const e=w[1];w[1]=w[0],w[0]=e}if(I[0]&gt;I[1]){const e=I[1];I[1]=I[0],I[0]=e}return w[1]&lt;I[0]||I[1]&lt;w[0]?{intersect:!1,coplanar:s,pt1:l,pt2:c,surfaceId:u}:(w[0]&lt;I[0]?w[1]&lt;I[1]?(u[0]=2,u[1]=1,O=I[0],R=w[1]):(u[0]=2,u[1]=2,O=I[0],R=I[1]):w[1]&lt;I[1]?(u[0]=1,u[1]=1,O=w[0],R=w[1]):(u[0]=1,u[1]=2,O=w[0],R=I[1]),Ko(A,C,O,l),Ko(A,C,R,c),{intersect:!0,coplanar:s,pt1:l,pt2:c,surfaceId:u})}};const pu={};function fu(e,t,n={}){Object.assign(t,pu,n),dc.extend(e,t,n),function(e,t){t.classHierarchy.push(&quot;vtkTriangle&quot;),e.getCellDimension=()=&gt;2,e.intersectWithLine=(n,r,o,a,i)=&gt;{const s={subId:0,t:Number.MAX_VALUE,intersect:0,betweenPoints:!1};i[2]=0;const l=[],c=o*o,u=[],d=[],p=[];t.points.getPoint(0,u),t.points.getPoint(1,d),t.points.getPoint(2,p);const f=[],g=[];if(iu(u,d,p,f),0!==f[0]||0!==f[1]||0!==f[2]){const t=ai.intersectWithLine(n,r,u,f);if(s.betweenPoints=t.betweenPoints,s.t=t.t,a[0]=t.x[0],a[1]=t.x[1],a[2]=t.x[2],!t.intersection)return i[0]=0,i[1]=0,s.intersect=0,s;const o=e.evaluatePosition(a,l,i,g);if(o.evaluation&gt;=0)return o.dist2&lt;=c?(s.intersect=1,s):(s.intersect=o.evaluation,s)}const m=Yo(u,d),h=Yo(d,p),v=Yo(p,u);t.line||(t.line=Uc.newInstance()),m&gt;h&amp;&amp;m&gt;v?(t.line.getPoints().setPoint(0,u),t.line.getPoints().setPoint(1,d)):h&gt;v&amp;&amp;h&gt;m?(t.line.getPoints().setPoint(0,d),t.line.getPoints().setPoint(1,p)):(t.line.getPoints().setPoint(0,p),t.line.getPoints().setPoint(1,u));const T=t.line.intersectWithLine(n,r,o,a,i);if(s.betweenPoints=T.betweenPoints,s.t=T.t,T.intersect){const e=[],t=[],n=[];for(let r=0;r&lt;3;r++)e[r]=u[r]-p[r],t[r]=d[r]-p[r],n[r]=a[r]-p[r];return i[0]=zo(n,e)/v,i[1]=zo(n,t)/h,s.intersect=1,s}return i[0]=0,i[1]=0,s.intersect=0,s},e.evaluatePosition=(e,n,r,o)=&gt;{const a={subId:0,dist2:0,evaluation:-1};let i,s;const l=[],c=[],u=[],d=[];let p;const f=[],g=[],m=[];let h=0,v=0;const T=[];let x,y,b,A=[];const C=[],S=[],P=[];a.subId=0,r[2]=0,t.points.getPoint(1,l),t.points.getPoint(2,c),t.points.getPoint(0,u),au(l,c,u,d),ai.generalizedProjectPoint(e,l,d,P);let w=0;for(i=0;i&lt;3;i++)p=d[i]&lt;0?-d[i]:d[i],p&gt;w&amp;&amp;(w=p,v=i);for(s=0,i=0;i&lt;3;i++)i!==v&amp;&amp;(T[s++]=i);for(i=0;i&lt;2;i++)f[i]=P[T[i]]-u[T[i]],g[i]=l[T[i]]-u[T[i]],m[i]=c[T[i]]-u[T[i]];if(h=Qo(g,m),0===h)return r[0]=0,r[1]=0,a.evaluation=-1,a;if(r[0]=Qo(f,m)/h,r[1]=Qo(g,f)/h,o[0]=1-(r[0]+r[1]),o[1]=r[0],o[2]=r[1],o[0]&gt;=0&amp;&amp;o[0]&lt;=1&amp;&amp;o[1]&gt;=0&amp;&amp;o[1]&lt;=1&amp;&amp;o[2]&gt;=0&amp;&amp;o[2]&lt;=1)n&amp;&amp;(a.dist2=Yo(P,e),n[0]=P[0],n[1]=P[1],n[2]=P[2]),a.evaluation=1;else{let t;if(n)if(o[1]&lt;0&amp;&amp;o[2]&lt;0)for(x=Yo(e,u),y=Uc.distanceToLine(e,l,u,t,C),b=Uc.distanceToLine(e,u,c,t,S),x&lt;y?(a.dist2=x,A=u):(a.dist2=y,A=C),b&lt;a.dist2&amp;&amp;(a.dist2=b,A=S),i=0;i&lt;3;i++)n[i]=A[i];else if(o[2]&lt;0&amp;&amp;o[0]&lt;0)for(x=Yo(e,l),y=Uc.distanceToLine(e,l,u,t,C),b=Uc.distanceToLine(e,l,c,t,S),x&lt;y?(a.dist2=x,A=l):(a.dist2=y,A=C),b&lt;a.dist2&amp;&amp;(a.dist2=b,A=S),i=0;i&lt;3;i++)n[i]=A[i];else if(o[1]&lt;0&amp;&amp;o[0]&lt;0)for(x=Yo(e,c),y=Uc.distanceToLine(e,c,u,t,C),b=Uc.distanceToLine(e,l,c,t,S),x&lt;y?(a.dist2=x,A=c):(a.dist2=y,A=C),b&lt;a.dist2&amp;&amp;(a.dist2=b,A=S),i=0;i&lt;3;i++)n[i]=A[i];else if(o[0]&lt;0){const t=Uc.distanceToLine(e,l,c,n);a.dist2=t.distance}else if(o[1]&lt;0){const t=Uc.distanceToLine(e,c,u,n);a.dist2=t.distance}else if(o[2]&lt;0){const t=Uc.distanceToLine(e,l,u,n);a.dist2=t.distance}a.evaluation=0}return a},e.evaluateLocation=(e,n,r)=&gt;{const o=[],a=[],i=[];t.points.getPoint(0,o),t.points.getPoint(1,a),t.points.getPoint(2,i);const s=1-e[0]-e[1];for(let t=0;t&lt;3;t++)n[t]=o[t]*s+a[t]*e[0]+i[t]*e[1];r[0]=s,r[1]=e[0],r[2]=e[1]},e.getParametricDistance=e=&gt;{let t,n=0;const r=[];r[0]=e[0],r[1]=e[1],r[2]=1-e[0]-e[1];for(let e=0;e&lt;3;e++)t=r[e]&lt;0?-r[e]:r[e]&gt;1?r[e]-1:0,t&gt;n&amp;&amp;(n=t);return n},e.derivatives=(e,n,r,o,a)=&gt;{const i=t.points.getPoint(0),s=t.points.getPoint(1),l=t.points.getPoint(2),c=[],u=[],d=[],p=[];iu(i,s,l,c),Go(s,i,u),Go(l,i,p),Wo(c,u,d);const f=jo(u);if(f&lt;=0||jo(d)&lt;=0){for(let e=0;e&lt;o;e++)for(let t=0;t&lt;3;t++)a[e*o+t]=0;return}const g=[0,0],m=[f,0],h=[zo(p,u),zo(p,d)],v=new Array(6);su(v);const T=[m[0]-g[0],m[1]-g[1],h[0]-g[0],h[1]-g[1]],x=sn.newTypedArray(At.Float64Array,4);va(T,x,2);for(let e=0;e&lt;o;e++){let t=0,n=0;for(let a=0;a&lt;3;a++)t+=v[a]*r[o*a+e],n+=v[3+a]*r[o*a+e];const i=t*x[0]+n*x[1],s=t*x[2]+n*x[3];a[3*e]=i*u[0]+s*d[0],a[3*e+1]=i*u[1]+s*d[1],a[3*e+2]=i*u[2]+s*d[2]}},e.cellBoundary=(e,n,r)=&gt;{const o=n[0]-n[1],a=.5*(1-n[0])-n[1],i=2*n[0]+n[1]-1;return o&gt;=0&amp;&amp;a&gt;=0?(r[0]=t.pointsIds[0],r[1]=t.pointsIds[1]):a&lt;0&amp;&amp;i&gt;=0?(r[0]=t.pointsIds[1],r[1]=t.pointsIds[2]):(r[0]=t.pointsIds[2],r[1]=t.pointsIds[0]),!(n[0]&lt;0||n[1]&lt;0||n[0]&gt;1||n[1]&gt;1||1-n[0]-n[1]&lt;0)},e.clip=(e,n,r,o,a,i,s,l,c,u)=&gt;{let d=0;for(let t=0;t&lt;3;t++){const r=n.getComponent(t,0);(u&amp;&amp;r&lt;=e||!u&amp;&amp;r&gt;e)&amp;&amp;(d+=cu[t])}const p=uu[d],f=[0,0,0],g=[0,0,0],m=[0,0,0],h=[0,0,0];for(let u=0;p[u]&gt;-1;u+=3){h[0]=0,h[1]=0,h[2]=0;for(let o=0;o&lt;3;o++){const s=p[u+o];if(s&gt;=100){const e=s-100;t.points.getPoint(e,f);const{inserted:n,id:l}=r.insertUniquePoint(f);h[o]=l,n&amp;&amp;i.passData(a,t.pointsIds[e],l)}else{const l=lu[s];let c=l[0],u=l[1],d=n.getComponent(l[1],0)-n.getComponent(l[0],0);d&lt;=0&amp;&amp;(c=l[1],u=l[0],d=-d);const p=0===d?0:(e-n.getComponent(c,0))/d;t.points.getPoint(c,g),t.points.getPoint(u,m);for(let e=0;e&lt;3;e++)f[e]=g[e]+p*(m[e]-g[e]);const{inserted:v,id:T}=r.insertUniquePoint(f);h[o]=T,v&amp;&amp;i.interpolateData(a,t.pointsIds[c],t.pointsIds[u],T,p)}}if(h[0]!==h[1]&amp;&amp;h[0]!==h[2]&amp;&amp;h[1]!==h[2]){const e=o.insertNextCell(h);c.passData(s,l,e)}}}}(e,t)}var gu={newInstance:sn.newInstance(fu,&quot;vtkTriangle&quot;),extend:fu,...du};const mu={};function hu(e,t,n={}){Object.assign(t,mu,n),dc.extend(e,t,n),function(e,t){t.classHierarchy.push(&quot;vtkQuad&quot;),e.getCellDimension=()=&gt;2,e.getCellType=()=&gt;Cc,e.getNumberOfEdges=()=&gt;4,e.getNumberOfFaces=()=&gt;0,e.intersectWithLine=(e,n,r,o,a)=&gt;{let i,s={subId:0,t:Number.MAX_VALUE,intersect:0,betweenPoints:!1};const l=t.points.getPoint(0,[]),c=t.points.getPoint(1,[]),u=t.points.getPoint(2,[]),d=t.points.getPoint(3,[]),p=Yo(l,u),f=Yo(c,d);if(p===f){let e,n=0,r=0;for(let o=0;o&lt;4;o++)e=t.pointsIds[o],e&gt;n&amp;&amp;(n=e,r=o);i=0===r||2===r?0:1}else i=p&lt;f?0:1;let g,m=null;t.triangle?m=t.triangle.getPoints():(t.triangle=gu.newInstance(),m=lc.newInstance(),m.setNumberOfPoints(3),t.triangle.initialize(m));const h={intersected:!1,subId:-1,x:[0,0,0],pCoords:[0,0,0],t:-1};let v;const T={intersected:!1,subId:-1,x:[0,0,0],pCoords:[0,0,0],t:-1};let x,y;switch(i){case 0:m.setPoint(0,...l),m.setPoint(1,...c),m.setPoint(2,...u),g=t.triangle.intersectWithLine(e,n,r,h.x,h.pCoords),m.setPoint(0,...u),m.setPoint(1,...d),m.setPoint(2,...l),v=t.triangle.intersectWithLine(e,n,r,T.x,T.pCoords),x=g.intersect&amp;&amp;v.intersect?g.t&lt;=v.t:g.intersect,y=g.intersect&amp;&amp;v.intersect?v.t&lt;g.t:v.intersect,x?(s=g,o[0]=h.x[0],o[1]=h.x[1],o[2]=h.x[2],a[0]=h.pCoords[0]+h.pCoords[1],a[1]=h.pCoords[1],a[2]=h.pCoords[2]):y&amp;&amp;(s=v,o[0]=T.x[0],o[1]=T.x[1],o[2]=T.x[2],a[0]=1-(T.pCoords[0]+T.pCoords[1]),a[1]=1-T.pCoords[1],a[2]=T.pCoords[2]);break;case 1:m.setPoint(0,...l),m.setPoint(1,...c),m.setPoint(2,...d),g=t.triangle.intersectWithLine(e,n,r,h.x,h.pCoords),m.setPoint(0,...u),m.setPoint(1,...d),m.setPoint(2,...c),v=t.triangle.intersectWithLine(e,n,r,T.x,T.pCoords),x=g.intersect&amp;&amp;v.intersect?g.t&lt;=v.t:g.intersect,y=g.intersect&amp;&amp;v.intersect?v.t&lt;g.t:v.intersect,x?(s=g,o[0]=h.x[0],o[1]=h.x[1],o[2]=h.x[2],a[0]=h.pCoords[0],a[1]=h.pCoords[1],a[2]=h.pCoords[2]):y&amp;&amp;(s=v,o[0]=T.x[0],o[1]=T.x[1],o[2]=T.x[2],a[0]=1-T.pCoords[0],a[1]=1-T.pCoords[1],a[2]=T.pCoords[2])}return s},e.interpolationFunctions=(e,t)=&gt;{const n=1-e[0],r=1-e[1];t[0]=n*r,t[1]=e[0]*r,t[2]=e[0]*e[1],t[3]=n*e[1]},e.evaluateLocation=(n,r,o)=&gt;{const a=[];e.interpolationFunctions(n,o),r[0]=0,r[1]=0,r[2]=0;for(let e=0;e&lt;4;e++){t.points.getPoint(e,a);for(let t=0;t&lt;3;t++)r[t]+=a[t]*o[e]}}}(e,t)}var vu={newInstance:sn.newInstance(hu,&quot;vtkQuad&quot;),extend:hu};const{vtkErrorMacro:Tu}=sn;const xu={decomposeStrip:function(e,t){if(!Array.isArray(e)||e.length&lt;3)return void Tu(&quot;decomposeStrip - Invalid points array&quot;);let n=e[0],r=e[1];for(let o=0;o&lt;e.length-2;o++){const a=e[o+2];o%2?t.insertNextCell([r,n,a]):t.insertNextCell([n,r,a]),n=r,r=a}}};function yu(e,t){t.classHierarchy.push(&quot;vtkTriangleStrip&quot;);const n=e.initialize;e.initialize=(e,r)=&gt;{t.triangle.initialize(e,r),n(e,r)},e.getCellType=()=&gt;bc,e.getCellDimension=()=&gt;2,e.getNumberOfEdges=()=&gt;t.pointsIds.length,e.getNumberOfFaces=()=&gt;0,e.evaluatePosition=(e,n,r,o,a)=&gt;{const i=[0,0,0];let s=Number.MAX_VALUE,l=0;const c=[],u=[],d=[];r[2]=0,u[0]=0,u[1]=0,u[2]=0;const p=t.triangle.getPoints();p.setNumberOfPoints(3);const f=t.triangle.getPointsIds().length;for(let e=0;e&lt;f;e++)a[e]=0;for(let o=0;o&lt;f-2;o++){const a=[];p.getPoint(o,a);const f=[];p.getPoint(o+1,f);const g=[];p.getPoint(o+2,g),p.setData(Float32Array.from([...a,...f,...g]),3);const m=t.triangle.evaluatePosition(e,d,i,c),h=m.dist2;m.evaluation&gt;=0&amp;&amp;(h&lt;s||h===s&amp;&amp;0===l)&amp;&amp;(l=m,n&amp;&amp;(n[0]=d[0],n[1]=d[1],n[2]=d[2]),r[0]=i[0],r[1]=i[1],s=h,u[0]=c[0],u[1]=c[1],u[2]=c[2])}return o[0]=s,a[0]=u[0],a[1]=u[1],a[2]=u[2],l},e.evaluateLocation=(e,n,r,o)=&gt;{const a=[[0,1,2],[1,0,2]],i=e%2,s=t.pointsIds.length;for(let e=0;e&lt;s;e++)o[e]=0;const l=1-n[0]-n[1];o[e]=l,o[e+1]=n[0],o[e+2]=n[1];const c=[];t.points.getPoint(e+a[i][0],c);const u=[];t.points.getPoint(e+a[i][1],u);const d=[];t.points.getPoint(e+a[i][2],d);for(let t=0;t&lt;3;t++)r[t]=c[t]*o[e]+u[t]*o[e+1]+d[t]*o[e+2]},e.cellBoundary=(e,n,r)=&gt;{const o=[[0,1,2],[1,0,2]],a=e%2,i=t.triangle.getPointsIds();return i[0]=t.pointsIds[o[a][0]],i[1]=t.pointsIds[o[a][1]],i[2]=t.pointsIds[o[a][2]],t.triangle.cellBoundary(0,n,r)},e.getEdge=e=&gt;{let n,r;const o=t.pointsIds.length;return 0===e?(n=0,r=1):e===o-1?(n=e-1,r=e):(n=e-1,r=e+1),t.line.getPointsIds()[0]=t.pointsIds[n],t.line.getPointsIds()[1]=t.pointsIds[r],t.line.getPoints().setPoint(0,t.points.getPoint(n)),t.line.getPoints().setPoint(1,t.points.getPoint(r)),t.line},e.intersectWithLine=(e,n,r,o,a)=&gt;{const i=t.pointsIds.length-2,s=t.triangle.getPoints();s.setNumberOfPoints(3);for(let l=0;l&lt;i;l++){const i=[];t.points.getPoint(t.pointsIds[l],i);const c=[];t.points.getPoint(t.pointsIds[l+1],c);const u=[];t.points.getPoint(t.pointsIds[l+2],u),s.setData(Float32Array.from([...i,...c,...u]),3);const d=t.triangle.intersectWithLine(e,n,r,o,a);if(d.intersect)return d}return!1},e.triangulate=()=&gt;{const e=t.points.getNumberOfPoints()-2;t.tris=new Array(3*e);const n=[[0,1,2],[1,0,2]];for(let r=0;r&lt;e;r++){const e=r%2;for(let o=0;o&lt;3;o++)t.tris[3*r+o]=r+n[e][o]}return!0},e.getPointArray=()=&gt;t.tris,e.derivatives=(e,n,r,o,a)=&gt;{const i=[];t.points.getPoint(e,i);const s=[];t.points.getPoint(e+1,s);const l=[];t.points.getPoint(e+2,l);const c=t.triangle.getPoints();c.setPoint(0,...i),c.setPoint(1,...s),c.setPoint(2,...l),t.triangle.derivatives(0,n,r,o,a)},e.getParametricCenter=e=&gt;(e[0]=.333333,e[1]=.333333,e[2]=0,Math.floor((t.pointsIds.length-2)/2)),e.contour=(e,t,n,r,o,a,i,s,l,c,u)=&gt;{return(d=&quot;contour&quot;,()=&gt;Tu(`vtkTriangleStrip.${d} - NOT IMPLEMENTED`))();var d},e.clip=(e,n,r,o,a,i,s,l,c,u)=&gt;{const d=t.points.getNumberOfPoints()-2,p=new Float32Array(3),f=n.newClone();f.setNumberOfComponents(n.getNumberOfComponents()),f.setData(p,n.getNumberOfComponents());const g=t.triangle.getPoints();g.setNumberOfPoints(3);const m=t.triangle.getPointsIds(),h=[0,0,0];for(let v=0;v&lt;d;v++){let d=v,T=v+1,x=v+2;v%2&amp;&amp;(d=v+2,T=v+1,x=v),g.setPoint(0,...t.points.getPoint(d,h)),g.setPoint(1,...t.points.getPoint(T,h)),g.setPoint(2,...t.points.getPoint(x,h)),m[0]=t.pointsIds[d],m[1]=t.pointsIds[T],m[2]=t.pointsIds[x],p[0]=n.getComponent(d,0),p[1]=n.getComponent(T,0),p[2]=n.getComponent(x,0),t.triangle.clip(e,f,r,o,a,i,s,l,c,u)}}}const bu={line:null,triangle:null,tris:null};function Au(e,t,n={}){Object.assign(t,bu,n),dc.extend(e,t,n),t.line||(t.line=Uc.newInstance()),t.triangle||(t.triangle=gu.newInstance()),yu(e,t)}var Cu={newInstance:sn.newInstance(Au,&quot;vtkTriangleStrip&quot;),extend:Au,...xu};const Su=[&quot;verts&quot;,&quot;lines&quot;,&quot;polys&quot;,&quot;strips&quot;],{vtkWarningMacro:Pu}=sn,wu={[Tc]:Uc,[Cc]:vu,[xc]:Uc,[yc]:gu,[bc]:Cu,[xc]:jc,[Ac]:ou};const Iu={};function Ou(e,t,n={}){Object.assign(t,Iu,n),zc.extend(e,t,n),sn.get(e,t,[&quot;cells&quot;,&quot;links&quot;]),sn.setGet(e,t,[&quot;verts&quot;,&quot;lines&quot;,&quot;polys&quot;,&quot;strips&quot;]),function(e,t){function n(e){return e.replace(/(?:^\\w|[A-Z]|\\b\\w)/g,(e=&gt;e.toUpperCase())).replace(/\\s+/g,&quot;&quot;)}function r(){t.cells=void 0,t.links=void 0}t.classHierarchy.push(&quot;vtkPolyData&quot;),Su.forEach((o=&gt;{e[`getNumberOf${n(o)}`]=()=&gt;t[o].getNumberOfCells(),t[o]?t[o]=it(t[o]):t[o]=oc.newInstance(),t[`_on${n(o)}Changed`]=r})),e.getNumberOfCells=()=&gt;Su.reduce(((e,n)=&gt;e+t[n].getNumberOfCells()),0);const o=e.shallowCopy;e.shallowCopy=(e,n=!1)=&gt;{o(e,n),Su.forEach((n=&gt;{t[n]=oc.newInstance(),t[n].shallowCopy(e.getReferenceByName(n))}))};const a=e.getMTime;e.getMTime=()=&gt;Su.reduce(((e,n)=&gt;Math.max(e,t[n]?.getMTime()??e)),a());const i=e.initialize;e.initialize=()=&gt;(Su.forEach((e=&gt;t[e]?.initialize())),r(),i()),e.buildCells=()=&gt;{const n=e.getNumberOfVerts(),r=e.getNumberOfLines(),o=e.getNumberOfPolys(),a=e.getNumberOfStrips(),i=n+r+o+a,s=new Uint8Array(i);let l=s;const c=new Uint32Array(i);let u=c;if(n){let e=0;t.verts.getCellSizes().forEach(((t,n)=&gt;{u[n]=e,l[n]=t&gt;1?vc:hc,e+=t+1})),u=u.subarray(n),l=l.subarray(n)}if(r){let e=0;t.lines.getCellSizes().forEach(((t,n)=&gt;{u[n]=e,l[n]=t&gt;2?xc:Tc,1===t&amp;&amp;Pu(&quot;Building VTK_LINE &quot;,n,&quot; with only one point, but VTK_LINE needs at least two points. Check the input.&quot;),e+=t+1})),u=u.subarray(r),l=l.subarray(r)}if(o){let e=0;t.polys.getCellSizes().forEach(((t,n)=&gt;{switch(u[n]=e,t){case 3:l[n]=yc;break;case 4:l[n]=Cc;break;default:l[n]=Ac}t&lt;3&amp;&amp;Pu(&quot;Building VTK_TRIANGLE &quot;,n,&quot; with less than three points, but VTK_TRIANGLE needs at least three points. Check the input.&quot;),e+=t+1})),u+=u.subarray(o),l+=l.subarray(o)}if(a){let e=0;l.fill(bc,0,a),t.strips.getCellSizes().forEach(((t,n)=&gt;{u[n]=e,e+=t+1}))}t.cells=Dc.newInstance(),t.cells.setCellTypes(i,s,c)},e.buildLinks=(n=0)=&gt;{null==t.cells&amp;&amp;e.buildCells(),t.links=gc.newInstance(),n&gt;0?t.links.allocate(n):t.links.allocate(e.getPoints().getNumberOfPoints()),t.links.buildLinks(e)},e.getCellType=e=&gt;t.cells.getCellType(e),e.getCellPoints=n=&gt;{const r=e.getCellType(n);let o=null;switch(r){case hc:case vc:o=t.verts;break;case Tc:case xc:o=t.lines;break;case yc:case Cc:case Ac:o=t.polys;break;case bc:o=t.strips;break;default:return o=null,{type:0,cellPointIds:null}}const a=t.cells.getCellLocation(n);return{cellType:r,cellPointIds:o.getCell(a)}},e.getPointCells=e=&gt;t.links.getCells(e),e.getCellEdgeNeighbors=(e,n,r)=&gt;{const o=t.links.getLink(n),a=t.links.getLink(r);return o.cells.filter((t=&gt;t!==e&amp;&amp;-1!==a.cells.indexOf(t)))},e.getCell=(t,n=null)=&gt;{const r=e.getCellPoints(t),o=n||wu[r.cellType].newInstance();return o.initialize(e.getPoints(),r.cellPointIds),o},e.getMaxCellSize=()=&gt;Su.reduce(((e,n)=&gt;Math.max(e,t[n]?.getMaxCellSize?.()??0)),0)}(e,t)}var Ru={newInstance:sn.newInstance(Ou,&quot;vtkPolyData&quot;),extend:Ou};const Mu={image:null,canvas:null,jsImageData:null,imageBitmap:null,imageLoaded:!1,repeat:!1,interpolate:!1,edgeClamp:!1,mipLevel:0,resizable:!1};function Du(e,t,n={}){Object.assign(t,Mu,n),sn.obj(e,t),sn.algo(e,t,6,0),sn.get(e,t,[&quot;canvas&quot;,&quot;image&quot;,&quot;jsImageData&quot;,&quot;imageBitmap&quot;,&quot;imageLoaded&quot;,&quot;resizable&quot;]),sn.setGet(e,t,[&quot;repeat&quot;,&quot;edgeClamp&quot;,&quot;interpolate&quot;,&quot;mipLevel&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkTexture&quot;),e.imageLoaded=()=&gt;{t.image.removeEventListener(&quot;load&quot;,e.imageLoaded),t.imageLoaded=!0,e.modified()},e.setJsImageData=n=&gt;{t.jsImageData!==n&amp;&amp;(null!==n&amp;&amp;(e.setInputData(null),e.setInputConnection(null),t.image=null,t.canvas=null,t.imageBitmap=null),t.jsImageData=n,t.imageLoaded=!0,e.modified())},e.setImageBitmap=n=&gt;{t.imageBitmap!==n&amp;&amp;(null!==n&amp;&amp;(e.setInputData(null),e.setInputConnection(null),t.image=null,t.canvas=null,t.jsImageData=null),t.imageBitmap=n,t.imageLoaded=!0,e.modified())},e.setCanvas=n=&gt;{t.canvas!==n&amp;&amp;(null!==n&amp;&amp;(e.setInputData(null),e.setInputConnection(null),t.image=null,t.imageBitmap=null,t.jsImageData=null),t.canvas=n,e.modified())},e.setImage=n=&gt;{t.image!==n&amp;&amp;(null!==n&amp;&amp;(e.setInputData(null),e.setInputConnection(null),t.canvas=null,t.jsImageData=null,t.imageBitmap=null),t.image=n,t.imageLoaded=!1,n.complete?e.imageLoaded():n.addEventListener(&quot;load&quot;,e.imageLoaded),e.modified())},e.getDimensionality=()=&gt;{let n=0,r=0,o=1;if(e.getInputData()){const t=e.getInputData();n=t.getDimensions()[0],r=t.getDimensions()[1],o=t.getDimensions()[2]}return t.jsImageData&amp;&amp;(n=t.jsImageData.width,r=t.jsImageData.height),t.canvas&amp;&amp;(n=t.canvas.width,r=t.canvas.height),t.image&amp;&amp;(n=t.image.width,r=t.image.height),t.imageBitmap&amp;&amp;(n=t.imageBitmap.width,r=t.imageBitmap.height),(n&gt;1)+(r&gt;1)+(o&gt;1)},e.getInputAsJsImageData=()=&gt;{if(!t.imageLoaded||e.getInputData())return null;if(t.jsImageData)return t.jsImageData;if(t.imageBitmap)return t.imageBitmap;if(t.canvas)return t.canvas.getContext(&quot;2d&quot;).getImageData(0,0,t.canvas.width,t.canvas.height);if(t.image){const e=t.image.width,n=t.image.height,r=new OffscreenCanvas(e,n).getContext(&quot;2d&quot;);return r.translate(0,n),r.scale(1,-1),r.drawImage(t.image,0,0,e,n),r.getImageData(0,0,e,n)}return null}}(e,t)}var Eu={newInstance:sn.newInstance(Du,&quot;vtkTexture&quot;),extend:Du,...{generateMipmaps:(e,t,n)=&gt;{const r=e.createShaderModule({code:&quot;\\n    @group(0) @binding(0) var inputTexture: texture_2d&lt;f32&gt;;\\n    @group(0) @binding(1) var outputTexture: texture_storage_2d&lt;rgba8unorm, write&gt;;\\n\\n    @compute @workgroup_size(8, 8)\\n    fn main(@builtin(global_invocation_id) global_id: vec3&lt;u32&gt;) {\\n      let texelCoord = vec2&lt;i32&gt;(global_id.xy);\\n      let outputSize = textureDimensions(outputTexture);\\n\\n      if (texelCoord.x &gt;= i32(outputSize.x) || texelCoord.y &gt;= i32(outputSize.y)) {\\n        return;\\n      }\\n\\n      let inputSize = textureDimensions(inputTexture);\\n      let scale = vec2&lt;f32&gt;(inputSize) / vec2&lt;f32&gt;(outputSize);\\n\\n      // Compute the floating-point source coordinate\\n      let srcCoord = (vec2&lt;f32&gt;(texelCoord) + 0.5) * scale - 0.5;\\n\\n      // Get integer coordinates for the four surrounding texels\\n      let x0 = i32(floor(srcCoord.x));\\n      let x1 = min(x0 + 1, i32(inputSize.x) - 1);\\n      let y0 = i32(floor(srcCoord.y));\\n      let y1 = min(y0 + 1, i32(inputSize.y) - 1);\\n\\n      // Compute the weights\\n      let wx = srcCoord.x - f32(x0);\\n      let wy = srcCoord.y - f32(y0);\\n\\n      // Fetch the four texels\\n      let c00 = textureLoad(inputTexture, vec2&lt;i32&gt;(x0, y0), 0);\\n      let c10 = textureLoad(inputTexture, vec2&lt;i32&gt;(x1, y0), 0);\\n      let c01 = textureLoad(inputTexture, vec2&lt;i32&gt;(x0, y1), 0);\\n      let c11 = textureLoad(inputTexture, vec2&lt;i32&gt;(x1, y1), 0);\\n\\n      // Bilinear interpolation\\n      let color = mix(\\n        mix(c00, c10, wx),\\n        mix(c01, c11, wx),\\n        wy\\n      );\\n\\n      textureStore(outputTexture, texelCoord, color);\\n    }\\n  &quot;}),o=e.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.COMPUTE,texture:{sampleType:&quot;float&quot;}},{binding:1,visibility:GPUShaderStage.COMPUTE,storageTexture:{format:&quot;rgba8unorm&quot;,access:&quot;write-only&quot;}},{binding:2,visibility:GPUShaderStage.COMPUTE,sampler:{type:&quot;filtering&quot;}}]}),a=e.createPipelineLayout({bindGroupLayouts:[o]}),i=e.createComputePipeline({label:&quot;ComputeMipmapPipeline&quot;,layout:a,compute:{module:r,entryPoint:&quot;main&quot;}}),s=e.createSampler({magFilter:&quot;linear&quot;,minFilter:&quot;linear&quot;});for(let r=1;r&lt;n;r++){const n=t.createView({baseMipLevel:r-1,mipLevelCount:1}),o=t.createView({baseMipLevel:r,mipLevelCount:1}),a=e.createBindGroup({layout:i.getBindGroupLayout(0),entries:[{binding:0,resource:n},{binding:1,resource:o},{binding:2,resource:s}]}),l=e.createCommandEncoder({label:&quot;MipmapGenerateCommandEncoder&quot;}),c=l.beginComputePass();c.setPipeline(i),c.setBindGroup(0,a);const u=Math.max(1,t.width&gt;&gt;r),d=Math.max(1,t.height&gt;&gt;r),p=Math.ceil(u/8),f=Math.ceil(d/8);c.dispatchWorkgroups(p,f),c.end(),e.queue.submit([l.finish()])}}}};const Vu=[[-1,0,0],[1,0,0],[0,-1,0],[0,1,0],[0,0,-1],[0,0,1]],Lu=[[8,7,11,3],[9,1,10,5],[4,9,0,8],[2,11,6,10],[0,3,2,1],[4,5,6,7]],Bu=[[0,1],[1,3],[2,3],[0,2],[4,5],[5,7],[6,7],[4,6],[0,4],[1,5],[3,7],[2,6]],Fu=[0,1,0,1,0,1,0,1,2,2,2,2],Nu=[[1,2],[1,2],[0,2],[0,2],[0,1],[0,1]],ku=new Float64Array(3),Gu=new Float64Array(3),Uu=new Float64Array(3),_u=new Float64Array(3),Ku=new Float64Array(3),zu=new Float64Array(3),Wu=new Float64Array(16);function Hu(e,t){e.strokeStyle=t.strokeColor,e.lineWidth=t.strokeSize,e.fillStyle=t.fontColor,e.font=`${t.fontStyle} ${t.fontSize}px ${t.fontFamily}`}function ju(e){const t=[],n=[];for(let r=0;r&lt;3;r++){const o=$r().domain([e[2*r],e[2*r+1]]);t[r]=o.ticks(5);const a=o.tickFormat(5);n[r]=t[r].map(a)}return{ticks:t,tickStrings:n}}const Xu=sn.newInstance(((e,t,n={renderable:null})=&gt;{Object.assign(t,{},n),sn.obj(e,t),t.tmPolyData=Ru.newInstance(),t.tmMapper=Ql.newInstance(),t.tmMapper.setInputData(t.tmPolyData),t.tmActor=fs.newInstance({parentProp:e}),t.tmActor.setMapper(t.tmMapper),sn.setGet(e,t,[&quot;renderable&quot;]),sn.get(e,t,[&quot;lastSize&quot;,&quot;lastAspectRatio&quot;,&quot;axisTextStyle&quot;,&quot;tickTextStyle&quot;,&quot;tmActor&quot;,&quot;ticks&quot;]),t.forceUpdate=!1,t.lastRedrawTime={},sn.obj(t.lastRedrawTime,{mtime:0}),t.lastRebuildTime={},sn.obj(t.lastRebuildTime,{mtime:0}),t.lastSize=[-1,-1],t.lastTickBounds=[],function(e,t){t.classHierarchy.push(&quot;vtkCubeAxesActorHelper&quot;),e.setRenderable=n=&gt;{t.renderable!==n&amp;&amp;(t.renderable=n,t.tmActor.addTexture(t.renderable.getTmTexture()),t.tmActor.setProperty(n.getProperty()),t.tmActor.setParentProp(n),e.modified())},e.createPolyDataForOneLabel=(e,n,r,o,a,i,s)=&gt;{const l=t.renderable.get_tmAtlas().get(e);if(!l)return;const c=t.renderable.getTextPolyData().getPoints().getData(),u=t.lastSize;ku[0]=c[3*n],ku[1]=c[3*n+1],ku[2]=c[3*n+2],oe(Uu,ku,r),Uu[0]+=.1,oe(Gu,Uu,o),Z(Ku,Gu,ku),Uu[0]-=.1,Uu[1]+=.1,oe(Gu,Uu,o),Z(zu,Gu,ku);for(let e=0;e&lt;3;e++)Ku[e]/=.05*u[0],zu[e]/=.05*u[1];let d=s.ptIdx,p=s.cellIdx;ku[0]=c[3*n],ku[1]=c[3*n+1],ku[2]=c[3*n+2],a[0]&lt;-.5?$(Uu,Ku,a[0]*i-l.width):a[0]&gt;.5?$(Uu,Ku,a[0]*i):$(Uu,Ku,a[0]*i-l.width/2),J(ku,ku,Uu),$(Uu,zu,a[1]*i-l.height/2),J(ku,ku,Uu),s.points[3*d]=ku[0],s.points[3*d+1]=ku[1],s.points[3*d+2]=ku[2],s.tcoords[2*d]=l.tcoords[0],s.tcoords[2*d+1]=l.tcoords[1],d++,$(Uu,Ku,l.width),J(ku,ku,Uu),s.points[3*d]=ku[0],s.points[3*d+1]=ku[1],s.points[3*d+2]=ku[2],s.tcoords[2*d]=l.tcoords[2],s.tcoords[2*d+1]=l.tcoords[3],d++,$(Uu,zu,l.height),J(ku,ku,Uu),s.points[3*d]=ku[0],s.points[3*d+1]=ku[1],s.points[3*d+2]=ku[2],s.tcoords[2*d]=l.tcoords[4],s.tcoords[2*d+1]=l.tcoords[5],d++,$(Uu,Ku,l.width),Z(ku,ku,Uu),s.points[3*d]=ku[0],s.points[3*d+1]=ku[1],s.points[3*d+2]=ku[2],s.tcoords[2*d]=l.tcoords[6],s.tcoords[2*d+1]=l.tcoords[7],d++,s.polys[4*p]=3,s.polys[4*p+1]=d-4,s.polys[4*p+2]=d-3,s.polys[4*p+3]=d-2,p++,s.polys[4*p]=3,s.polys[4*p+1]=d-4,s.polys[4*p+2]=d-2,s.polys[4*p+3]=d-1,s.ptIdx+=4,s.cellIdx+=2},e.updateTexturePolyData=()=&gt;{const n=t.camera.getCompositeProjectionMatrix(t.lastAspectRatio,-1,1);y(n,n);const r=t.renderable.getTextValues().length,o=4*r,a=2*r,i=new Float64Array(3*o),s=new Uint16Array(4*a),l=new Float32Array(2*o);b(Wu,n);const c={ptIdx:0,cellIdx:0,polys:s,points:i,tcoords:l};let u=0,d=0,p=0;const f=t.renderable.getTextPolyData().getPoints().getData(),g=t.renderable.getTextValues();for(;u&lt;f.length/3;){ku[0]=f[3*u],ku[1]=f[3*u+1],ku[2]=f[3*u+2],oe(Uu,ku,n),ku[0]=f[3*u+3],ku[1]=f[3*u+4],ku[2]=f[3*u+5],oe(_u,ku,n),Z(Uu,Uu,_u);const r=[Uu[0],Uu[1]];Zo(r),e.createPolyDataForOneLabel(g[d],u,n,Wu,r,t.renderable.getAxisTitlePixelOffset(),c),u+=2,d++;for(let o=0;o&lt;t.renderable.getTickCounts()[p];o++)e.createPolyDataForOneLabel(g[d],u,n,Wu,r,t.renderable.getTickLabelPixelOffset(),c),u++,d++;p++}const m=Is.newInstance({numberOfComponents:2,values:l,name:&quot;TextureCoordinates&quot;});t.tmPolyData.getPointData().setTCoords(m),t.tmPolyData.getPoints().setData(i,3),t.tmPolyData.getPoints().modified(),t.tmPolyData.getPolys().setData(s,1),t.tmPolyData.getPolys().modified(),t.tmPolyData.modified()},e.updateAPISpecificData=(n,r,o)=&gt;{t.lastSize[0]===n[0]&amp;&amp;t.lastSize[1]===n[1]||(t.lastSize[0]=n[0],t.lastSize[1]=n[1],t.lastAspectRatio=n[0]/n[1],t.forceUpdate=!0),t.camera=r,e.updateTexturePolyData()}}(e,t)}),&quot;vtkCubeAxesActorHelper&quot;);function qu(e,t,n={}){fs.extend(e,t,function(e,t,n){return{boundsScaleFactor:1.3,camera:null,dataBounds:[...Hi.INIT_BOUNDS],faceVisibilityAngle:8,gridLines:!0,axisLabels:null,axisTitlePixelOffset:35,tickLabelPixelOffset:12,generateTicks:ju,...n,axisTextStyle:{fontColor:&quot;white&quot;,fontStyle:&quot;normal&quot;,fontSize:18,fontFamily:&quot;serif&quot;,...n?.axisTextStyle},tickTextStyle:{fontColor:&quot;white&quot;,fontStyle:&quot;normal&quot;,fontSize:14,fontFamily:&quot;serif&quot;,...n?.tickTextStyle}}}(0,0,n)),t.lastFacesToDraw=[!1,!1,!1,!1,!1,!1],t.axisLabels=[&quot;X-Axis&quot;,&quot;Y-Axis&quot;,&quot;Z-Axis&quot;],t.tickCounts=[],t.textValues=[],t.lastTickBounds=[],t.tmCanvas=document.createElement(&quot;canvas&quot;),t.tmContext=t.tmCanvas.getContext(&quot;2d&quot;),t._tmAtlas=new Map,t.tmTexture=Eu.newInstance({resizable:!0}),t.tmTexture.setInterpolate(!1),e.getProperty().setDiffuse(0),e.getProperty().setAmbient(1),t.gridMapper=Ql.newInstance(),t.polyData=Ru.newInstance(),t.gridMapper.setInputData(t.polyData),t.gridActor=fs.newInstance(),t.gridActor.setMapper(t.gridMapper),t.gridActor.setProperty(e.getProperty()),t.gridActor.setParentProp(e),t.textPolyData=Ru.newInstance(),sn.setGet(e,t,[&quot;axisTitlePixelOffset&quot;,&quot;boundsScaleFactor&quot;,&quot;faceVisibilityAngle&quot;,&quot;gridLines&quot;,&quot;tickLabelPixelOffset&quot;,&quot;generateTicks&quot;]),sn.setGetArray(e,t,[&quot;dataBounds&quot;],6),sn.setGetArray(e,t,[&quot;axisLabels&quot;],3),sn.get(e,t,[&quot;axisTextStyle&quot;,&quot;tickTextStyle&quot;,&quot;camera&quot;,&quot;tmTexture&quot;,&quot;textValues&quot;,&quot;textPolyData&quot;,&quot;tickCounts&quot;,&quot;gridActor&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkCubeAxesActor&quot;),e.setCamera=n=&gt;{t.camera!==n&amp;&amp;(t.cameraModifiedSub&amp;&amp;(t.cameraModifiedSub.unsubscribe(),t.cameraModifiedSub=null),t.camera=n,n&amp;&amp;(t.cameraModifiedSub=n.onModified(e.update)),e.update(),e.modified())},e.computeFacesToDraw=()=&gt;{const e=t.camera.getViewMatrix();y(e,e);let n=!1;const r=Hi.getDiagonalLength(t.dataBounds),o=Math.sin(t.faceVisibilityAngle*Math.PI/180);for(let a=0;a&lt;6;a++){let i=!1;const s=Math.floor(a/2),l=(s+1)%3,c=(s+2)%3;t.dataBounds[2*l]!==t.dataBounds[2*l+1]&amp;&amp;t.dataBounds[2*c]!==t.dataBounds[2*c+1]&amp;&amp;(ku[s]=t.dataBounds[a]-.1*r*Vu[a][s],ku[l]=.5*(t.dataBounds[2*l]+t.dataBounds[2*l+1]),ku[c]=.5*(t.dataBounds[2*c]+t.dataBounds[2*c+1]),oe(Uu,ku,e),ku[s]=t.dataBounds[a],oe(_u,ku,e),Z(Uu,_u,Uu),te(Uu,Uu),i=Uu[2]&gt;o,t.camera.getParallelProjection()||(te(_u,_u),i=ne(_u,Uu)&gt;o)),i!==t.lastFacesToDraw[a]&amp;&amp;(t.lastFacesToDraw[a]=i,n=!0)}return n},e.updatePolyData=(e,n,r)=&gt;{let o=0,a=0;o+=8;let i=0;for(let e=0;e&lt;12;e++)n[e]&gt;0&amp;&amp;i++;if(a+=i,t.gridLines)for(let t=0;t&lt;6;t++)e[t]&amp;&amp;(o+=2*r[Nu[t][0]].length+2*r[Nu[t][1]].length,a+=r[Nu[t][0]].length+r[Nu[t][1]].length);const s=new Float64Array(3*o),l=new Uint32Array(3*a);let c=0,u=0;for(let e=0;e&lt;2;e++)for(let n=0;n&lt;2;n++)for(let r=0;r&lt;2;r++)s[3*c]=t.dataBounds[r],s[3*c+1]=t.dataBounds[2+n],s[3*c+2]=t.dataBounds[4+e],c++;for(let e=0;e&lt;12;e++)n[e]&gt;0&amp;&amp;(l[3*u]=2,l[3*u+1]=Bu[e][0],l[3*u+2]=Bu[e][1],u++);if(t.gridLines)for(let n=0;n&lt;6;n++)if(e[n]){const e=Math.floor(n/2);let o=r[Nu[n][0]];for(let r=0;r&lt;o.length;r++)s[3*c+e]=t.dataBounds[n],s[3*c+Nu[n][0]]=o[r],s[3*c+Nu[n][1]]=t.dataBounds[2*Nu[n][1]],c++,s[3*c+e]=t.dataBounds[n],s[3*c+Nu[n][0]]=o[r],s[3*c+Nu[n][1]]=t.dataBounds[2*Nu[n][1]+1],c++,l[3*u]=2,l[3*u+1]=c-2,l[3*u+2]=c-1,u++;o=r[Nu[n][1]];for(let r=0;r&lt;o.length;r++)s[3*c+e]=t.dataBounds[n],s[3*c+Nu[n][1]]=o[r],s[3*c+Nu[n][0]]=t.dataBounds[2*Nu[n][0]],c++,s[3*c+e]=t.dataBounds[n],s[3*c+Nu[n][1]]=o[r],s[3*c+Nu[n][0]]=t.dataBounds[2*Nu[n][0]+1],c++,l[3*u]=2,l[3*u+1]=c-2,l[3*u+2]=c-1,u++}t.polyData.getPoints().setData(s,3),t.polyData.getPoints().modified(),t.polyData.getLines().setData(l,1),t.polyData.getLines().modified(),t.polyData.modified()},e.updateTextData=(e,n,r,o)=&gt;{let a=0;for(let e=0;e&lt;12;e++)1===n[e]&amp;&amp;(a+=2,a+=r[Fu[e]].length);const i=t.polyData.getPoints().getData(),s=new Float64Array(3*a);let l=0,c=0,u=0;for(let a=0;a&lt;6;a++)if(e[a])for(let e=0;e&lt;4;e++){const d=Lu[a][e];if(1===n[d]){const e=Fu[d],n=3*Bu[d][0],p=3*Bu[d][1];s[3*l]=.5*(i[n]+i[p]),s[3*l+1]=.5*(i[n+1]+i[p+1]),s[3*l+2]=.5*(i[n+2]+i[p+2]),l++,s[3*l+Math.floor(a/2)]=t.dataBounds[a],s[3*l+Nu[a][0]]=.5*(t.dataBounds[2*Nu[a][0]]+t.dataBounds[2*Nu[a][0]+1]),s[3*l+Nu[a][1]]=.5*(t.dataBounds[2*Nu[a][1]]+t.dataBounds[2*Nu[a][1]+1]),l++,t.textValues[c]=t.axisLabels[e],c++;const f=(e+1)%3,g=(e+2)%3,m=r[e],h=o[e];t.tickCounts[u]=m.length;for(let r=0;r&lt;m.length;r++)s[3*l+e]=m[r],s[3*l+f]=i[n+f],s[3*l+g]=i[n+g],l++,t.textValues[c]=h[r],c++;u++}}t.textPolyData.getPoints().setData(s,3),t.textPolyData.modified()},e.update=()=&gt;{if(!t.camera)return;const n=e.computeFacesToDraw(),r=t.lastFacesToDraw;let o=!1;for(let e=0;e&lt;6;e++)t.dataBounds[e]!==t.lastTickBounds[e]&amp;&amp;(o=!0,t.lastTickBounds[e]=t.dataBounds[e]);if(n||o||t.forceUpdate){const n=new Array(12).fill(0);for(let e=0;e&lt;6;e++)if(r[e])for(let t=0;t&lt;4;t++)n[Lu[e][t]]++;const a=t.generateTicks(t.dataBounds);e.updatePolyData(r,n,a.ticks),e.updateTextData(r,n,a.ticks,a.tickStrings),(o||t.forceUpdate)&amp;&amp;e.updateTextureAtlas(a.tickStrings)}t.forceUpdate=!1},e.updateTextureAtlas=e=&gt;{t.tmContext.textBaseline=&quot;bottom&quot;,t.tmContext.textAlign=&quot;left&quot;,t._tmAtlas.clear();let n=0,r=1;for(let o=0;o&lt;3;o++){if(!t._tmAtlas.has(t.axisLabels[o])){Hu(t.tmContext,t.axisTextStyle);const e=t.tmContext.measureText(t.axisLabels[o]),a={height:e.actualBoundingBoxAscent+2,startingHeight:r,width:e.width+2,textStyle:t.axisTextStyle};t._tmAtlas.set(t.axisLabels[o],a),r+=a.height,n&lt;a.width&amp;&amp;(n=a.width)}Hu(t.tmContext,t.tickTextStyle);for(let a=0;a&lt;e[o].length;a++)if(!t._tmAtlas.has(e[o][a])){const i=t.tmContext.measureText(e[o][a]),s={height:i.actualBoundingBoxAscent+2,startingHeight:r,width:i.width+2,textStyle:t.tickTextStyle};t._tmAtlas.set(e[o][a],s),r+=s.height,n&lt;s.width&amp;&amp;(n=s.width)}}n=Bo(n),r=Bo(r),t._tmAtlas.forEach((e=&gt;{e.tcoords=[0,(r-e.startingHeight-e.height)/r,e.width/n,(r-e.startingHeight-e.height)/r,e.width/n,(r-e.startingHeight)/r,0,(r-e.startingHeight)/r]})),t.tmCanvas.width=n,t.tmCanvas.height=r,t.tmContext.textBaseline=&quot;bottom&quot;,t.tmContext.textAlign=&quot;left&quot;,t.tmContext.clearRect(0,0,n,r),t._tmAtlas.forEach(((e,n)=&gt;{Hu(t.tmContext,e.textStyle),t.tmContext.fillText(n,1,e.startingHeight+e.height-1)})),t.tmTexture.setCanvas(t.tmCanvas),t.tmTexture.modified()},e.onModified((()=&gt;{t.forceUpdate=!0,e.update()})),e.setTickTextStyle=n=&gt;{t.tickTextStyle={...t.tickTextStyle,...n},e.modified()},e.setAxisTextStyle=n=&gt;{t.axisTextStyle={...t.axisTextStyle,...n},e.modified()},e.get_tmAtlas=()=&gt;t._tmAtlas,e.computeBounds=()=&gt;{e.update(),Hi.setBounds(t.bounds,t.gridActor.getBounds()),Hi.scaleAboutCenter(t.bounds,t.boundsScaleFactor,t.boundsScaleFactor,t.boundsScaleFactor)};const n=e.setProperty;e.setProperty=e=&gt;{const r=n(e);return t.gridActor.setProperty(e),r}}(e,t)}var Yu={newInstance:sn.newInstance(qu,&quot;vtkCubeAxesActor&quot;),extend:qu,newCubeAxesActorHelper:Xu,defaultGenerateTicks:ju};const Ju={};vn(&quot;vtkCubeAxesActor&quot;,Xt((function(e,t,n={}){Object.assign(t,Ju,n),pn.extend(e,t,n),t.CubeAxesActorHelper=Yu.newCubeAxesActorHelper(),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLCubeAxesActor&quot;),e.buildPass=n=&gt;{n&amp;&amp;(t._openGLRenderer=e.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;),t._openGLRenderWindow=t._openGLRenderer.getParent(),t.CubeAxesActorHelper.getRenderable()||t.CubeAxesActorHelper.setRenderable(t.renderable),e.prepareNodes(),e.addMissingNode(t.CubeAxesActorHelper.getTmActor()),e.addMissingNode(t.renderable.getGridActor()),e.removeUnusedNodes())},e.opaquePass=(e,n)=&gt;{if(e){const e=t._openGLRenderer?t._openGLRenderer.getRenderable().getActiveCamera():null,n=t._openGLRenderer.getTiledSizeAndOrigin();t.CubeAxesActorHelper.updateAPISpecificData([n.usize,n.vsize],e,t._openGLRenderWindow.getRenderable())}}}(e,t)}),&quot;vtkOpenGLCubeAxesActor&quot;));const Zu={ARRAY_BUFFER:0,ELEMENT_ARRAY_BUFFER:1,TEXTURE_BUFFER:2};var Qu={ObjectType:Zu};const{ObjectType:$u}=Qu;const ed={objectType:$u.ARRAY_BUFFER,context:null,allocatedGPUMemoryInBytes:0};function td(e,t,n={}){Object.assign(t,ed,n),sn.obj(e,t),sn.get(e,t,[&quot;_openGLRenderWindow&quot;,&quot;allocatedGPUMemoryInBytes&quot;]),sn.moveToProtected(e,t,[&quot;openGLRenderWindow&quot;]),function(e,t){function n(e){switch(e){case $u.ELEMENT_ARRAY_BUFFER:return t.context.ELEMENT_ARRAY_BUFFER;case $u.TEXTURE_BUFFER:if(&quot;TEXTURE_BUFFER&quot;in t.context)return t.context.TEXTURE_BUFFER;case $u.ARRAY_BUFFER:default:return t.context.ARRAY_BUFFER}}t.classHierarchy.push(&quot;vtkOpenGLBufferObject&quot;);let r=null,o=null,a=!0,i=&quot;&quot;;e.getType=()=&gt;r,e.setType=e=&gt;{r=e},e.getHandle=()=&gt;o,e.isReady=()=&gt;!1===a,e.generateBuffer=e=&gt;{const a=n(e);return null===o&amp;&amp;(o=t.context.createBuffer(),r=e),n(r)===a},e.upload=(s,l)=&gt;e.generateBuffer(l)?(t.context.bindBuffer(n(r),o),t.context.bufferData(n(r),s,t.context.STATIC_DRAW),t.allocatedGPUMemoryInBytes=s.length*s.BYTES_PER_ELEMENT,a=!1,!0):(i=&quot;Trying to upload array buffer to incompatible buffer.&quot;,!1),e.bind=()=&gt;!!o&amp;&amp;(t.context.bindBuffer(n(r),o),!0),e.release=()=&gt;!!o&amp;&amp;(t.context.bindBuffer(n(r),null),!0),e.releaseGraphicsResources=()=&gt;{null!==o&amp;&amp;(t.context.bindBuffer(n(r),null),t.context.deleteBuffer(o),o=null,t.allocatedGPUMemoryInBytes=0)},e.setOpenGLRenderWindow=n=&gt;{t._openGLRenderWindow!==n&amp;&amp;(e.releaseGraphicsResources(),t._openGLRenderWindow=n,t.context=null,n&amp;&amp;(t.context=t._openGLRenderWindow.getContext()))},e.getError=()=&gt;i}(e,t)}var nd={newInstance:sn.newInstance(td),extend:td,...Qu};function rd(e){let t=0,n=0;for(let r=0;r&lt;3;++r){const o=e.getRange(r),a=o[1]-o[0];t+=a*a;const i=.5*(o[1]+o[0]);n+=i*i}const r=t&gt;0&amp;&amp;(Math.abs(n)/t&gt;1e6||Math.abs(Math.log10(t))&gt;3||0===t&amp;&amp;n&gt;1e6);if(r){const t=new Float64Array(3),n=new Float64Array(3);for(let r=0;r&lt;3;++r){const o=e.getRange(r),a=o[1]-o[0];t[r]=.5*(o[1]+o[0]),n[r]=a&gt;0?1/a:1}return{useShiftAndScale:r,coordShift:t,coordScale:n}}return{useShiftAndScale:r,coordShift:new Float32Array([0,0,0]),coordScale:new Float32Array([1,1,1])}}function od(e,t){const n=new Float64Array(3);ee(n,t);const r=new Float64Array(16);return B(r,pe(),e,n),r}const{vtkErrorMacro:ad}=sn;function id(e,t){t.classHierarchy.push(&quot;vtkOpenGLCellArrayBufferObject&quot;),e.setType(Zu.ARRAY_BUFFER),e.createVBO=(n,r,o,a,i=null)=&gt;{if(!n.getData()||!n.getData().length)return t.elementCount=0,0;t.blockSize=3,t.vertexOffset=0,t.normalOffset=0,t.tCoordOffset=0,t.tCoordComponents=0,t.colorComponents=0,t.colorOffset=0,t.customData=[];const s=a.points.getData();let l=null,c=null,u=null;const d=a.colors?a.colors.getNumberOfComponents():0,p=a.tcoords?a.tcoords.getNumberOfComponents():0;a.normals&amp;&amp;(t.normalOffset=4*t.blockSize,t.blockSize+=3,l=a.normals.getData()),a.customAttributes&amp;&amp;a.customAttributes.forEach((e=&gt;{e&amp;&amp;(t.customData.push({data:e.getData(),offset:4*t.blockSize,components:e.getNumberOfComponents(),name:e.getName()}),t.blockSize+=e.getNumberOfComponents())})),a.tcoords&amp;&amp;(t.tCoordOffset=4*t.blockSize,t.tCoordComponents=p,t.blockSize+=p,c=a.tcoords.getData()),a.colors?(t.colorComponents=a.colors.getNumberOfComponents(),t.colorOffset=0,u=a.colors.getData(),t.colorBO||(t.colorBO=nd.newInstance()),t.colorBO.setOpenGLRenderWindow(t._openGLRenderWindow)):t.colorBO=null,t.stride=4*t.blockSize;let f,g=0,m=0,h=0,v=0,T=0,x=0;const y={anythingToPoints(e,t,n,r){for(let o=0;o&lt;e;++o)f(t[n+o],r)},linesToWireframe(e,t,n,r){for(let o=0;o&lt;e-1;++o)f(t[n+o],r),f(t[n+o+1],r)},polysToWireframe(e,t,n,r){if(e&gt;2)for(let o=0;o&lt;e;++o)f(t[n+o],r),f(t[n+(o+1)%e],r)},stripsToWireframe(e,t,n,r){if(e&gt;2){for(let o=0;o&lt;e-1;++o)f(t[n+o],r),f(t[n+o+1],r);for(let o=0;o&lt;e-2;o++)f(t[n+o],r),f(t[n+o+2],r)}},polysToSurface(e,t,n,r){for(let o=0;o&lt;e-2;o++)f(t[n+0],r),f(t[n+o+1],r),f(t[n+o+2],r)},stripsToSurface(e,t,n,r){for(let o=0;o&lt;e-2;o++)f(t[n+o],r),f(t[n+o+1+o%2],r),f(t[n+o+1+(o+1)%2],r)}},b={anythingToPoints:(e,t)=&gt;e,linesToWireframe:(e,t)=&gt;e&gt;1?2*(e-1):0,polysToWireframe:(e,t)=&gt;e&gt;2?2*e:0,stripsToWireframe:(e,t)=&gt;e&gt;2?4*e-6:0,polysToSurface:(e,t)=&gt;e&gt;2?3*(e-2):0,stripsToSurface:(e,t,n)=&gt;e&gt;2?3*(e-2):0};let A=null,C=null;o===rs.POINTS||&quot;verts&quot;===r?(A=y.anythingToPoints,C=b.anythingToPoints):o===rs.WIREFRAME||&quot;lines&quot;===r?(A=y[`${r}ToWireframe`],C=b[`${r}ToWireframe`]):(A=y[`${r}ToSurface`],C=b[`${r}ToSurface`]);const S=n.getData(),P=S.length;let w=0;for(let e=0;e&lt;P;)w+=C(S[e],S),e+=S[e]+1;let I=null;const O=new Float32Array(w*t.blockSize);u&amp;&amp;(I=new Uint8Array(4*w));let R=0,M=0;const{useShiftAndScale:D,coordShift:E,coordScale:V}=rd(a.points);if(D?e.setCoordShiftAndScale(E,V):!0===t.coordShiftAndScaleEnabled&amp;&amp;e.setCoordShiftAndScale(null,null),i)if(i.points||i.cells){const e=new Int32Array(w+i.points.length);e.set(i.points),i.points=e;const t=new Int32Array(w+i.cells.length);t.set(i.cells),i.cells=t}else i.points=new Int32Array(w),i.cells=new Int32Array(w);let L=a.vertexOffset;f=function(e,n){if(i&amp;&amp;(i.points[L]=e,i.cells[L]=x+a.cellOffset),++L,g=3*e,t.coordShiftAndScaleEnabled?(O[R++]=(s[g++]-t.coordShift[0])*t.coordScale[0],O[R++]=(s[g++]-t.coordShift[1])*t.coordScale[1],O[R++]=(s[g++]-t.coordShift[2])*t.coordScale[2]):(O[R++]=s[g++],O[R++]=s[g++],O[R++]=s[g++]),null!==l&amp;&amp;(m=a.haveCellNormals?3*(x+a.cellOffset):3*e,O[R++]=l[m++],O[R++]=l[m++],O[R++]=l[m++]),t.customData.forEach((t=&gt;{T=e*t.components;for(let e=0;e&lt;t.components;++e)O[R++]=t.data[T++]})),null!==c){h=a.useTCoordsPerCell?n*p:e*p;for(let e=0;e&lt;p;++e)O[R++]=c[h++]}null!==u&amp;&amp;(v=a.haveCellScalars?(x+a.cellOffset)*d:e*d,I[M++]=u[v++],I[M++]=u[v++],I[M++]=u[v++],I[M++]=4===d?u[v++]:255)};for(let e=0;e&lt;P;e+=S[e]+1,x++)A(S[e],S,e+1,x+a.cellOffset);return t.elementCount=w,e.upload(O,Zu.ARRAY_BUFFER),t.colorBO&amp;&amp;(t.colorBOStride=4,t.colorBO.upload(I,Zu.ARRAY_BUFFER)),x},e.setCoordShiftAndScale=(e,n)=&gt;{null===e||e.constructor===Float64Array&amp;&amp;3===e.length?null===n||n.constructor===Float64Array&amp;&amp;3===n.length?(null!==t.coordShift&amp;&amp;null!==e&amp;&amp;se(e,t.coordShift)||(t.coordShift=e),null!==t.coordScale&amp;&amp;null!==n&amp;&amp;se(n,t.coordScale)||(t.coordScale=n),t.coordShiftAndScaleEnabled=function(e,t){return null!==e&amp;&amp;null!==t&amp;&amp;!(ie(e,[0,0,0])&amp;&amp;ie(t,[1,1,1]))}(t.coordShift,t.coordScale),t.coordShiftAndScaleEnabled?t.inverseShiftAndScaleMatrix=od(t.coordShift,t.coordScale):t.inverseShiftAndScaleMatrix=null):ad(&quot;Wrong type for coordScale, expected vec3 or null&quot;):ad(&quot;Wrong type for coordShift, expected vec3 or null&quot;)}}const sd={elementCount:0,stride:0,colorBOStride:0,vertexOffset:0,normalOffset:0,tCoordOffset:0,tCoordComponents:0,colorOffset:0,colorComponents:0,tcoordBO:null,customData:[],coordShift:null,coordScale:null,coordShiftAndScaleEnabled:!1,inverseShiftAndScaleMatrix:null};function ld(e,t,n={}){Object.assign(t,sd,n),nd.extend(e,t,n),sn.setGet(e,t,[&quot;colorBO&quot;,&quot;elementCount&quot;,&quot;stride&quot;,&quot;colorBOStride&quot;,&quot;vertexOffset&quot;,&quot;normalOffset&quot;,&quot;tCoordOffset&quot;,&quot;tCoordComponents&quot;,&quot;colorOffset&quot;,&quot;colorComponents&quot;,&quot;customData&quot;]),sn.get(e,t,[&quot;coordShift&quot;,&quot;coordScale&quot;,&quot;coordShiftAndScaleEnabled&quot;,&quot;inverseShiftAndScaleMatrix&quot;]),id(e,t)}var cd={newInstance:sn.newInstance(ld),extend:ld};const{vtkErrorMacro:ud}=sn;const dd={shaderType:&quot;Unknown&quot;,source:&quot;&quot;,error:&quot;&quot;,handle:0,dirty:!1,context:null};function pd(e,t,n={}){Object.assign(t,dd,n),sn.obj(e,t),sn.setGet(e,t,[&quot;shaderType&quot;,&quot;source&quot;,&quot;error&quot;,&quot;handle&quot;,&quot;context&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkShader&quot;),e.compile=()=&gt;{let e=t.context.VERTEX_SHADER;if(!t.source||!t.source.length||&quot;Unknown&quot;===t.shaderType)return!1;if(0!==t.handle&amp;&amp;(t.context.deleteShader(t.handle),t.handle=0),e=&quot;Fragment&quot;===t.shaderType?t.context.FRAGMENT_SHADER:t.context.VERTEX_SHADER,t.handle=t.context.createShader(e),t.context.shaderSource(t.handle,t.source),t.context.compileShader(t.handle),!t.context.getShaderParameter(t.handle,t.context.COMPILE_STATUS)){const e=t.context.getShaderInfoLog(t.handle);return ud(`Error compiling shader &#x27;${t.source}&#x27;: ${e}`),t.context.deleteShader(t.handle),t.handle=0,!1}return!0},e.cleanup=()=&gt;{&quot;Unknown&quot;!==t.shaderType&amp;&amp;0!==t.handle&amp;&amp;(t.context.deleteShader(t.handle),t.handle=0,t.dirty=!0)}}(e,t)}var fd={newInstance:sn.newInstance(pd,&quot;vtkShader&quot;),extend:pd};const{vtkErrorMacro:gd}=sn;const md={vertexShaderHandle:0,fragmentShaderHandle:0,geometryShaderHandle:0,vertexShader:null,fragmentShader:null,geometryShader:null,linked:!1,bound:!1,compiled:!1,error:&quot;&quot;,handle:0,numberOfOutputs:0,attributesLocs:null,uniformLocs:null,md5Hash:0,context:null,lastCameraMTime:null};function hd(e,t,n={}){Object.assign(t,md,n),t.attributesLocs={},t.uniformLocs={},t.vertexShader=fd.newInstance(),t.vertexShader.setShaderType(&quot;Vertex&quot;),t.fragmentShader=fd.newInstance(),t.fragmentShader.setShaderType(&quot;Fragment&quot;),t.geometryShader=fd.newInstance(),t.geometryShader.setShaderType(&quot;Geometry&quot;),sn.obj(e,t),sn.get(e,t,[&quot;lastCameraMTime&quot;]),sn.setGet(e,t,[&quot;error&quot;,&quot;handle&quot;,&quot;compiled&quot;,&quot;bound&quot;,&quot;md5Hash&quot;,&quot;vertexShader&quot;,&quot;fragmentShader&quot;,&quot;geometryShader&quot;,&quot;linked&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkShaderProgram&quot;),e.compileShader=()=&gt;t.vertexShader.compile()?t.fragmentShader.compile()?e.attachShader(t.vertexShader)&amp;&amp;e.attachShader(t.fragmentShader)?e.link()?(e.setCompiled(!0),1):(gd(`Links failed: ${t.error}`),0):(gd(t.error),0):(gd(t.fragmentShader.getSource().split(&quot;\\n&quot;).map(((e,t)=&gt;`${t}: ${e}`)).join(&quot;\\n&quot;)),gd(t.fragmentShader.getError()),0):(gd(t.vertexShader.getSource().split(&quot;\\n&quot;).map(((e,t)=&gt;`${t}: ${e}`)).join(&quot;\\n&quot;)),gd(t.vertexShader.getError()),0),e.cleanup=()=&gt;{&quot;Unknown&quot;!==t.shaderType&amp;&amp;0!==t.handle&amp;&amp;(e.release(),0!==t.vertexShaderHandle&amp;&amp;(t.context.detachShader(t.handle,t.vertexShaderHandle),t.vertexShaderHandle=0),0!==t.fragmentShaderHandle&amp;&amp;(t.context.detachShader(t.handle,t.fragmentShaderHandle),t.fragmentShaderHandle=0),t.context.deleteProgram(t.handle),t.handle=0,e.setCompiled(!1))},e.bind=()=&gt;!(!t.linked&amp;&amp;!e.link()||(t.context.useProgram(t.handle),e.setBound(!0),0)),e.isBound=()=&gt;!!t.bound,e.release=()=&gt;{t.context.useProgram(null),e.setBound(!1)},e.setContext=e=&gt;{t.vertexShader.setContext(e),t.fragmentShader.setContext(e),t.geometryShader.setContext(e)},e.link=()=&gt;{if(t.linked)return!0;if(0===t.handle)return t.error=&quot;Program has not been initialized, and/or does not have shaders.&quot;,!1;if(t.uniformLocs={},t.context.linkProgram(t.handle),!t.context.getProgramParameter(t.handle,t.context.LINK_STATUS)){const e=t.context.getProgramInfoLog(t.handle);return gd(`Error linking shader ${e}`),t.handle=0,!1}return e.setLinked(!0),t.attributeLocs={},!0},e.setUniformMatrix=(n,r)=&gt;{const o=e.findUniform(n);if(-1===o)return t.error=`Could not set uniform ${n} . No such uniform.`,!1;const a=new Float32Array(r);return t.context.uniformMatrix4fv(o,!1,a),!0},e.setUniformMatrix3x3=(n,r)=&gt;{const o=e.findUniform(n);if(-1===o)return t.error=`Could not set uniform ${n} . No such uniform.`,!1;const a=new Float32Array(r);return t.context.uniformMatrix3fv(o,!1,a),!0},e.setUniformf=(n,r)=&gt;{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform1f(o,r),!0)},e.setUniformfv=(n,r)=&gt;{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform1fv(o,r),!0)},e.setUniformi=(n,r)=&gt;{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform1i(o,r),!0)},e.setUniformiv=(n,r)=&gt;{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform1iv(o,r),!0)},e.setUniform2f=(n,r,o)=&gt;{const a=e.findUniform(n);if(-1===a)return t.error=`Could not set uniform ${n} . No such uniform.`,!1;if(void 0===o)throw new RangeError(&quot;Invalid number of values for array&quot;);return t.context.uniform2f(a,r,o),!0},e.setUniform2fv=(n,r)=&gt;{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform2fv(o,r),!0)},e.setUniform2i=(n,r,o)=&gt;{const a=e.findUniform(n);if(-1===a)return t.error=`Could not set uniform ${n} . No such uniform.`,!1;if(void 0===o)throw new RangeError(&quot;Invalid number of values for array&quot;);return t.context.uniform2i(a,r,o),!0},e.setUniform2iv=(n,r)=&gt;{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform2iv(o,r),!0)},e.setUniform3f=(n,r,o,a)=&gt;{const i=e.findUniform(n);if(-1===i)return t.error=`Could not set uniform ${n} . No such uniform.`,!1;if(void 0===a)throw new RangeError(&quot;Invalid number of values for array&quot;);return t.context.uniform3f(i,r,o,a),!0},e.setUniform3fArray=(n,r)=&gt;{const o=e.findUniform(n);if(-1===o)return t.error=`Could not set uniform ${n} . No such uniform.`,!1;if(!Array.isArray(r)||3!==r.length)throw new RangeError(&quot;Invalid number of values for array&quot;);return t.context.uniform3f(o,r[0],r[1],r[2]),!0},e.setUniform3fv=(n,r)=&gt;{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform3fv(o,r),!0)},e.setUniform3i=(n,...r)=&gt;{const o=e.findUniform(n);if(-1===o)return t.error=`Could not set uniform ${n} . No such uniform.`,!1;let a=r;if(1===a.length&amp;&amp;Array.isArray(a[0])&amp;&amp;(a=a[0]),3!==a.length)throw new RangeError(&quot;Invalid number of values for array&quot;);return t.context.uniform3i(o,a[0],a[1],a[2]),!0},e.setUniform3iv=(n,r)=&gt;{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform3iv(o,r),!0)},e.setUniform4f=(n,...r)=&gt;{const o=e.findUniform(n);if(-1===o)return t.error=`Could not set uniform ${n} . No such uniform.`,!1;let a=r;if(1===a.length&amp;&amp;Array.isArray(a[0])&amp;&amp;(a=a[0]),4!==a.length)throw new RangeError(&quot;Invalid number of values for array&quot;);return t.context.uniform4f(o,a[0],a[1],a[2],a[3]),!0},e.setUniform4fv=(n,r)=&gt;{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform4fv(o,r),!0)},e.setUniform4i=(n,...r)=&gt;{const o=e.findUniform(n);if(-1===o)return t.error=`Could not set uniform ${n} . No such uniform.`,!1;let a=r;if(1===a.length&amp;&amp;Array.isArray(a[0])&amp;&amp;(a=a[0]),4!==a.length)throw new RangeError(&quot;Invalid number of values for array&quot;);return t.context.uniform4i(o,a[0],a[1],a[2],a[3]),!0},e.setUniform4iv=(n,r)=&gt;{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform4iv(o,r),!0)},e.findUniform=e=&gt;{if(!e||!t.linked)return-1;let n=t.uniformLocs[e];return void 0!==n?n:(n=t.context.getUniformLocation(t.handle,e),null===n?(t.error=`Uniform ${e} not found in current shader program.`,t.uniformLocs[e]=-1,-1):(t.uniformLocs[e]=n,n))},e.isUniformUsed=e=&gt;{if(!e)return!1;let n=t.uniformLocs[e];return void 0!==n?null!==n:t.linked?(n=t.context.getUniformLocation(t.handle,e),t.uniformLocs[e]=n,null!==n):(gd(&quot;attempt to find uniform when the shader program is not linked&quot;),!1)},e.isAttributeUsed=e=&gt;{if(!e)return!1;if(e in t.attributeLocs)return!0;if(!t.linked)return gd(&quot;attempt to find uniform when the shader program is not linked&quot;),!1;const n=t.context.getAttribLocation(t.handle,e);return-1!==n&amp;&amp;(t.attributeLocs[e]=n,!0)},e.attachShader=n=&gt;{if(0===n.getHandle())return t.error=&quot;Shader object was not initialized, cannot attach it.&quot;,!1;if(&quot;Unknown&quot;===n.getShaderType())return t.error=&quot;Shader object is of type Unknown and cannot be used.&quot;,!1;if(0===t.handle){const e=t.context.createProgram();if(0===e)return t.error=&quot;Could not create shader program.&quot;,!1;t.handle=e,t.linked=!1}return&quot;Vertex&quot;===n.getShaderType()&amp;&amp;(0!==t.vertexShaderHandle&amp;&amp;t.context.detachShader(t.handle,t.vertexShaderHandle),t.vertexShaderHandle=n.getHandle()),&quot;Fragment&quot;===n.getShaderType()&amp;&amp;(0!==t.fragmentShaderHandle&amp;&amp;t.context.detachShader(t.handle,t.fragmentShaderHandle),t.fragmentShaderHandle=n.getHandle()),t.context.attachShader(t.handle,n.getHandle()),e.setLinked(!1),!0},e.detachShader=e=&gt;{if(0===e.getHandle())return t.error=&quot;shader object was not initialized, cannot attach it.&quot;,!1;if(&quot;Unknown&quot;===e.getShaderType())return t.error=&quot;Shader object is of type Unknown and cannot be used.&quot;,!1;switch(0===t.handle&amp;&amp;(t.error=&quot;This shader program has not been initialized yet.&quot;),e.getShaderType()){case&quot;Vertex&quot;:return t.vertexShaderHandle!==e.getHandle()?(t.error=&quot;The supplied shader was not attached to this program.&quot;,!1):(t.context.detachShader(t.handle,e.getHandle()),t.vertexShaderHandle=0,t.linked=!1,!0);case&quot;Fragment&quot;:return t.fragmentShaderHandle!==e.getHandle()?(t.error=&quot;The supplied shader was not attached to this program.&quot;,!1):(t.context.detachShader(t.handle,e.getHandle()),t.fragmentShaderHandle=0,t.linked=!1,!0);default:return!1}},e.setContext=e=&gt;{t.context=e,t.vertexShader.setContext(e),t.fragmentShader.setContext(e),t.geometryShader.setContext(e)},e.setLastCameraMTime=e=&gt;{t.lastCameraMTime=e}}(e,t)}var vd={newInstance:sn.newInstance(hd,&quot;vtkShaderProgram&quot;),extend:hd,substitute:function(e,t,n,r){const o=&quot;string&quot;==typeof n?n:n.join(&quot;\\n&quot;),a=!1===r?t:new RegExp(t,&quot;g&quot;),i=e.replace(a,o);return{replace:i!==o,result:i}}};const Td={forceEmulation:!1,handleVAO:0,handleProgram:0,supported:!0,buffers:null,context:null};function xd(e,t,n={}){Object.assign(t,Td,n),t.buffers=[],sn.obj(e,t),sn.get(e,t,[&quot;supported&quot;]),sn.setGet(e,t,[&quot;forceEmulation&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLVertexArrayObject&quot;),e.exposedMethod=()=&gt;{},e.initialize=()=&gt;{t.instancingExtension=null,t._openGLRenderWindow.getWebgl2()||(t.instancingExtension=t.context.getExtension(&quot;ANGLE_instanced_arrays&quot;)),!t.forceEmulation&amp;&amp;t._openGLRenderWindow&amp;&amp;t._openGLRenderWindow.getWebgl2()?(t.extension=null,t.supported=!0,t.handleVAO=t.context.createVertexArray()):(t.extension=t.context.getExtension(&quot;OES_vertex_array_object&quot;),!t.forceEmulation&amp;&amp;t.extension?(t.supported=!0,t.handleVAO=t.extension.createVertexArrayOES()):t.supported=!1)},e.isReady=()=&gt;0!==t.handleVAO||!1===t.supported,e.bind=()=&gt;{if(e.isReady()||e.initialize(),e.isReady()&amp;&amp;t.supported)t.extension?t.extension.bindVertexArrayOES(t.handleVAO):t.context.bindVertexArray(t.handleVAO);else if(e.isReady()){const e=t.context;for(let n=0;n&lt;t.buffers.length;++n){const r=t.buffers[n];t.context.bindBuffer(e.ARRAY_BUFFER,r.buffer);for(let n=0;n&lt;r.attributes.length;++n){const o=r.attributes[n],a=o.isMatrix?o.size:1;for(let n=0;n&lt;a;++n)e.enableVertexAttribArray(o.index+n),e.vertexAttribPointer(o.index+n,o.size,o.type,o.normalize,o.stride,o.offset+o.stride*n/o.size),o.divisor&gt;0&amp;&amp;(t.instancingExtension?t.instancingExtension.vertexAttribDivisorANGLE(o.index+n,1):e.vertexAttribDivisor(o.index+n,1))}}}},e.release=()=&gt;{if(e.isReady()&amp;&amp;t.supported)t.extension?t.extension.bindVertexArrayOES(null):t.context.bindVertexArray(null);else if(e.isReady()){const e=t.context;for(let n=0;n&lt;t.buffers.length;++n){const r=t.buffers[n];t.context.bindBuffer(e.ARRAY_BUFFER,r.buffer);for(let n=0;n&lt;r.attributes.length;++n){const o=r.attributes[n],a=o.isMatrix?o.size:1;for(let n=0;n&lt;a;++n)e.enableVertexAttribArray(o.index+n),e.vertexAttribPointer(o.index+n,o.size,o.type,o.normalize,o.stride,o.offset+o.stride*n/o.size),o.divisor&gt;0&amp;&amp;(t.instancingExtension?t.instancingExtension.vertexAttribDivisorANGLE(o.index+n,0):e.vertexAttribDivisor(o.index+n,0)),e.disableVertexAttribArray(o.index+n)}}}},e.shaderProgramChanged=()=&gt;{e.release(),t.handleVAO&amp;&amp;(t.extension?t.extension.deleteVertexArrayOES(t.handleVAO):t.context.deleteVertexArray(t.handleVAO)),t.handleVAO=0,t.handleProgram=0},e.releaseGraphicsResources=()=&gt;{e.shaderProgramChanged(),t.handleVAO&amp;&amp;(t.extension?t.extension.deleteVertexArrayOES(t.handleVAO):t.context.deleteVertexArray(t.handleVAO)),t.handleVAO=0,t.supported=!0,t.handleProgram=0},e.addAttributeArray=(t,n,r,o,a,i,s,l)=&gt;e.addAttributeArrayWithDivisor(t,n,r,o,a,i,s,l,0,!1),e.addAttributeArrayWithDivisor=(n,r,o,a,i,s,l,c,u,d)=&gt;{if(!n)return!1;if(!n.isBound()||0===r.getHandle()||r.getType()!==Zu.ARRAY_BUFFER)return!1;if(0===t.handleProgram&amp;&amp;(t.handleProgram=n.getHandle()),e.isReady()||e.initialize(),!e.isReady()||t.handleProgram!==n.getHandle())return!1;const p=t.context,f={};if(f.name=o,f.index=p.getAttribLocation(t.handleProgram,o),f.offset=a,f.stride=i,f.type=s,f.size=l,f.normalize=c,f.isMatrix=d,f.divisor=u,-1===f.Index)return!1;if(r.bind(),p.enableVertexAttribArray(f.index),p.vertexAttribPointer(f.index,f.size,f.type,f.normalize,f.stride,f.offset),u&gt;0&amp;&amp;(t.instancingExtension?t.instancingExtension.vertexAttribDivisorANGLE(f.index,1):p.vertexAttribDivisor(f.index,1)),f.buffer=r.getHandle(),!t.supported){let e=!1;for(let n=0;n&lt;t.buffers.length;++n){const r=t.buffers[n];if(r.buffer===f.buffer){e=!0;let t=!1;for(let e=0;e&lt;r.attributes.length;++e)r.attributes[e].name===o&amp;&amp;(t=!0,r.attributes[e]=f);t||r.attributes.push(f)}}e||t.buffers.push({buffer:f.buffer,attributes:[f]})}return!0},e.addAttributeMatrixWithDivisor=(n,r,o,a,i,s,l,c,u)=&gt;{const d=e.addAttributeArrayWithDivisor(n,r,o,a,i,s,l,c,u,!0);if(!d)return d;const p=t.context,f=p.getAttribLocation(t.handleProgram,o);for(let e=1;e&lt;l;e++)p.enableVertexAttribArray(f+e),p.vertexAttribPointer(f+e,l,s,c,i,a+i*e/l),u&gt;0&amp;&amp;(t.instancingExtension?t.instancingExtension.vertexAttribDivisorANGLE(f+e,1):p.vertexAttribDivisor(f+e,1));return!0},e.removeAttributeArray=n=&gt;{if(!e.isReady()||0===t.handleProgram)return!1;if(!t.supported)for(let e=0;e&lt;t.buffers.length;++e){const r=t.buffers[e];for(let o=0;o&lt;r.attributes.length;++o)if(r.attributes[o].name===n)return r.attributes.splice(o,1),r.attributes.length||t.buffers.splice(e,1),!0}return!0},e.setOpenGLRenderWindow=n=&gt;{t._openGLRenderWindow!==n&amp;&amp;(e.releaseGraphicsResources(),t._openGLRenderWindow=n,t.context=null,n&amp;&amp;(t.context=t._openGLRenderWindow.getContext()))}}(e,t)}var yd={newInstance:sn.newInstance(xd,&quot;vtkOpenGLVertexArrayObject&quot;),extend:xd};const bd={Start:0,Points:0,Lines:1,Tris:2,TriStrips:3,TrisEdges:4,TriStripsEdges:5,End:6};const Ad={context:null,program:null,shaderSourceTime:null,VAO:null,attributeUpdateTime:null,CABO:null,primitiveType:0,pointPicking:!1};function Cd(e,t,n={}){Object.assign(t,Ad,n),sn.obj(e,t),t.shaderSourceTime={},sn.obj(t.shaderSourceTime),t.attributeUpdateTime={},sn.obj(t.attributeUpdateTime),sn.setGet(e,t,[&quot;program&quot;,&quot;shaderSourceTime&quot;,&quot;VAO&quot;,&quot;attributeUpdateTime&quot;,&quot;CABO&quot;,&quot;primitiveType&quot;,&quot;pointPicking&quot;]),t.program=vd.newInstance(),t.VAO=yd.newInstance(),t.CABO=cd.newInstance(),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLHelper&quot;),e.setOpenGLRenderWindow=e=&gt;{t.context=e.getContext(),t.program.setContext(t.context),t.VAO.setOpenGLRenderWindow(e),t.CABO.setOpenGLRenderWindow(e)},e.releaseGraphicsResources=e=&gt;{t.VAO.releaseGraphicsResources(),t.CABO.releaseGraphicsResources(),t.CABO.setElementCount(0)},e.drawArrays=(n,r,o,a)=&gt;{if(t.CABO.getElementCount()){const i=e.getOpenGLMode(o),s=e.haveWideLines(n,r),l=t.context,c=l.getParameter(l.DEPTH_WRITEMASK);t.pointPicking&amp;&amp;l.depthMask(!1),i===l.LINES&amp;&amp;s?(e.updateShaders(n,r,a),l.drawArraysInstanced(i,0,t.CABO.getElementCount(),2*Math.ceil(r.getProperty().getLineWidth()))):(l.lineWidth(r.getProperty().getLineWidth()),e.updateShaders(n,r,a),l.drawArrays(i,0,t.CABO.getElementCount()),l.lineWidth(1));const u=(i===l.POINTS?1:0)||(i===l.LINES?2:3);return t.pointPicking&amp;&amp;l.depthMask(c),t.CABO.getElementCount()/u}return 0},e.getOpenGLMode=e=&gt;{if(t.pointPicking)return t.context.POINTS;const n=t.primitiveType;return e===rs.POINTS||n===bd.Points?t.context.POINTS:e===rs.WIREFRAME||n===bd.Lines||n===bd.TrisEdges||n===bd.TriStripsEdges?t.context.LINES:t.context.TRIANGLES},e.haveWideLines=(e,n)=&gt;n.getProperty().getLineWidth()&gt;1&amp;&amp;!(t.CABO.getOpenGLRenderWindow()&amp;&amp;t.CABO.getOpenGLRenderWindow().getHardwareMaximumLineWidth()&gt;=n.getProperty().getLineWidth()),e.getNeedToRebuildShaders=(t,n,r)=&gt;!!(r.getNeedToRebuildShaders(e,t,n)||0===e.getProgram()||e.getShaderSourceTime().getMTime()&lt;r.getMTime()||e.getShaderSourceTime().getMTime()&lt;n.getMTime()),e.updateShaders=(n,r,o)=&gt;{if(e.getNeedToRebuildShaders(n,r,o)){const a={Vertex:null,Fragment:null,Geometry:null};o.buildShaders(a,n,r);const i=t.CABO.getOpenGLRenderWindow().getShaderCache().readyShaderProgramArray(a.Vertex,a.Fragment,a.Geometry);i!==e.getProgram()&amp;&amp;(e.setProgram(i),e.getVAO().releaseGraphicsResources()),e.getShaderSourceTime().modified()}else t.CABO.getOpenGLRenderWindow().getShaderCache().readyShaderProgram(e.getProgram());e.getVAO().bind(),o.setMapperShaderParameters(e,n,r),o.setPropertyShaderParameters(e,n,r),o.setCameraShaderParameters(e,n,r),o.setLightingShaderParameters(e,n,r),o.invokeShaderCallbacks(e,n,r)},e.setMapperShaderParameters=(n,r,o)=&gt;{if(e.haveWideLines(n,r)){e.getProgram().setUniform2f(&quot;viewportSize&quot;,o.usize,o.vsize);const t=parseFloat(r.getProperty().getLineWidth()),n=t/2;e.getProgram().setUniformf(&quot;lineWidthStepSize&quot;,t/Math.ceil(t)),e.getProgram().setUniformf(&quot;halfLineWidth&quot;,n)}t.primitiveType===bd.Points||r.getProperty().getRepresentation()===rs.POINTS?e.getProgram().setUniformf(&quot;pointSize&quot;,r.getProperty().getPointSize()):t.pointPicking&amp;&amp;e.getProgram().setUniformf(&quot;pointSize&quot;,e.getPointPickingPrimitiveSize())},e.replaceShaderPositionVC=(n,r,o)=&gt;{let a=n.Vertex;a=vd.substitute(a,&quot;//VTK::PositionVC::Dec&quot;,[&quot;//VTK::PositionVC::Dec&quot;,&quot;uniform float pointSize;&quot;]).result,a=vd.substitute(a,&quot;//VTK::PositionVC::Impl&quot;,[&quot;//VTK::PositionVC::Impl&quot;,&quot;  gl_PointSize = pointSize;&quot;],!1).result,e.getOpenGLMode(o.getProperty().getRepresentation())===t.context.LINES&amp;&amp;e.haveWideLines(r,o)&amp;&amp;(a=vd.substitute(a,&quot;//VTK::PositionVC::Dec&quot;,[&quot;//VTK::PositionVC::Dec&quot;,&quot;uniform vec2 viewportSize;&quot;,&quot;uniform float lineWidthStepSize;&quot;,&quot;uniform float halfLineWidth;&quot;]).result,a=vd.substitute(a,&quot;//VTK::PositionVC::Impl&quot;,[&quot;//VTK::PositionVC::Impl&quot;,&quot; if (halfLineWidth &gt; 0.0)&quot;,&quot;   {&quot;,&quot;   float offset = float(gl_InstanceID / 2) * lineWidthStepSize - halfLineWidth;&quot;,&quot;   vec4 tmpPos = gl_Position;&quot;,&quot;   vec3 tmpPos2 = tmpPos.xyz / tmpPos.w;&quot;,&quot;   tmpPos2.x = tmpPos2.x + 2.0 * mod(float(gl_InstanceID), 2.0) * offset / viewportSize[0];&quot;,&quot;   tmpPos2.y = tmpPos2.y + 2.0 * mod(float(gl_InstanceID + 1), 2.0) * offset / viewportSize[1];&quot;,&quot;   gl_Position = vec4(tmpPos2.xyz * tmpPos.w, tmpPos.w);&quot;,&quot;   }&quot;]).result),n.Vertex=a},e.getPointPickingPrimitiveSize=()=&gt;t.primitiveType===bd.Points?2:t.primitiveType===bd.Lines?4:6,e.getAllocatedGPUMemoryInBytes=()=&gt;e.getCABO().getAllocatedGPUMemoryInBytes()}(e,t)}var Sd={newInstance:sn.newInstance(Cd),extend:Cd,primTypes:bd};const Pd={CLAMP_TO_EDGE:0,REPEAT:1,MIRRORED_REPEAT:2},wd={NEAREST:0,LINEAR:1,NEAREST_MIPMAP_NEAREST:2,NEAREST_MIPMAP_LINEAR:3,LINEAR_MIPMAP_NEAREST:4,LINEAR_MIPMAP_LINEAR:5};var Id={Wrap:Pd,Filter:wd};const Od=new Float32Array(1),Rd=new Int32Array(Od.buffer);var Md={fromHalf:function(e){const t=(32768&amp;e)&gt;&gt;15,n=(31744&amp;e)&gt;&gt;10,r=1023&amp;e;return 0===n?(t?-1:1)*2**-14*(r/1024):31===n?r?NaN:1/0*(t?-1:1):(t?-1:1)*2**(n-15)*(1+r/1024)},toHalf:function(e){Od[0]=e;const t=Rd[0];let n=t&gt;&gt;16&amp;32768,r=t&gt;&gt;12&amp;2047;const o=t&gt;&gt;23&amp;255;return o&lt;103?n:o&gt;142?(n|=31744,n|=(255===o?0:1)&amp;&amp;8388607&amp;t,n):o&lt;113?(r|=2048,n|=(r&gt;&gt;114-o)+(r&gt;&gt;113-o&amp;1),n):(n|=o-112&lt;&lt;10|r&gt;&gt;1,n+=1&amp;r,n)}};let Dd;function Ed(){return void 0===Dd&amp;&amp;(Dd=function(){try{const e=4,t=2,n=1,r=new Int16Array([0,32767]),o=[1,1],a=document.createElement(&quot;canvas&quot;);a.width=e,a.height=e;const i=a.getContext(&quot;webgl2&quot;);if(!i)return!1;const s=i.getExtension(&quot;EXT_texture_norm16&quot;);if(!s)return!1;const l=`#version 300 es\\n    void main() {\\n      gl_PointSize = ${e.toFixed(1)};\\n      gl_Position = vec4(0, 0, 0, 1);\\n    }\\n  `,c=&quot;#version 300 es\\n    precision highp float;\\n    precision highp int;\\n    precision highp sampler2D;\\n\\n    uniform sampler2D u_image;\\n\\n    out vec4 color;\\n\\n    void main() {\\n        vec4 intColor = texture(u_image, gl_PointCoord.xy);\\n        color = vec4(vec3(intColor.rrr), 1);\\n    }\\n    &quot;,u=i.createShader(i.VERTEX_SHADER);if(i.shaderSource(u,l),i.compileShader(u),!i.getShaderParameter(u,i.COMPILE_STATUS))return!1;const d=i.createShader(i.FRAGMENT_SHADER);if(i.shaderSource(d,c),i.compileShader(d),!i.getShaderParameter(d,i.COMPILE_STATUS))return!1;const p=i.createProgram();if(i.attachShader(p,u),i.attachShader(p,d),i.linkProgram(p),!i.getProgramParameter(p,i.LINK_STATUS))return!1;const f=i.createTexture();i.bindTexture(i.TEXTURE_2D,f),i.texImage2D(i.TEXTURE_2D,0,s.R16_SNORM_EXT,t,n,0,i.RED,i.SHORT,r),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.LINEAR),i.useProgram(p),i.drawArrays(i.POINTS,0,1);const g=new Uint8Array(4);i.readPixels(o[0],o[1],1,1,i.RGBA,i.UNSIGNED_BYTE,g);const[m,h,v]=g,T=i.getExtension(&quot;WEBGL_lose_context&quot;);return T&amp;&amp;T.loseContext(),m===h&amp;&amp;h===v&amp;&amp;0!==m}catch(e){return!1}}()),Dd}const{Wrap:Vd,Filter:Ld}=Id,{VtkDataTypes:Bd}=Is,{vtkDebugMacro:Fd,vtkErrorMacro:Nd,vtkWarningMacro:kd,requiredParam:Gd}=ln,{toHalf:Ud}=Md;function _d(e,t){function n(){return{internalFormat:t.internalFormat,format:t.format,openGLDataType:t.openGLDataType,width:t.width,height:t.height}}t.classHierarchy.push(&quot;vtkOpenGLTexture&quot;),e.render=(n=null)=&gt;{if(n?t._openGLRenderWindow=n:(t._openGLRenderer=e.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;),t._openGLRenderWindow=t._openGLRenderer.getLastAncestorOfType(&quot;vtkOpenGLRenderWindow&quot;)),t.context=t._openGLRenderWindow.getContext(),t.renderable.getInterpolate()?(t.generateMipmap?e.setMinificationFilter(Ld.LINEAR_MIPMAP_LINEAR):e.setMinificationFilter(Ld.LINEAR),e.setMagnificationFilter(Ld.LINEAR)):(e.setMinificationFilter(Ld.NEAREST),e.setMagnificationFilter(Ld.NEAREST)),t.renderable.getRepeat()&amp;&amp;(e.setWrapR(Vd.REPEAT),e.setWrapS(Vd.REPEAT),e.setWrapT(Vd.REPEAT)),t.renderable.getInputData()&amp;&amp;t.renderable.setImage(null),!t.handle||t.renderable.getMTime()&gt;t.textureBuildTime.getMTime()){if(null!==t.renderable.getImageBitmap()&amp;&amp;(t.renderable.getInterpolate()&amp;&amp;(t.generateMipmap=!0,e.setMinificationFilter(Ld.LINEAR_MIPMAP_LINEAR)),t.renderable.getImageBitmap()&amp;&amp;t.renderable.getImageLoaded()&amp;&amp;(e.create2DFromImageBitmap(t.renderable.getImageBitmap()),e.activate(),e.sendParameters(),t.textureBuildTime.modified())),null!==t.renderable.getImage()&amp;&amp;(t.renderable.getInterpolate()&amp;&amp;(t.generateMipmap=!0,e.setMinificationFilter(Ld.LINEAR_MIPMAP_LINEAR)),t.renderable.getImage()&amp;&amp;t.renderable.getImageLoaded()&amp;&amp;(e.create2DFromImage(t.renderable.getImage()),e.activate(),e.sendParameters(),t.textureBuildTime.modified())),null!==t.renderable.getCanvas()){t.renderable.getInterpolate()&amp;&amp;(t.generateMipmap=!0,e.setMinificationFilter(Ld.LINEAR_MIPMAP_LINEAR));const n=t.renderable.getCanvas();e.create2DFromRaw({width:n.width,height:n.height,numComps:4,dataType:Bd.UNSIGNED_CHAR,data:n,flip:!0}),e.activate(),e.sendParameters(),t.textureBuildTime.modified()}if(null!==t.renderable.getJsImageData()){const n=t.renderable.getJsImageData();t.renderable.getInterpolate()&amp;&amp;(t.generateMipmap=!0,e.setMinificationFilter(Ld.LINEAR_MIPMAP_LINEAR)),e.create2DFromRaw({width:n.width,height:n.height,numComps:4,dataType:Bd.UNSIGNED_CHAR,data:n.data,flip:!0}),e.activate(),e.sendParameters(),t.textureBuildTime.modified()}const n=t.renderable.getInputData(0);if(n&amp;&amp;n.getPointData().getScalars()){const r=n.getExtent(),o=n.getPointData().getScalars(),a=[];for(let e=0;e&lt;t.renderable.getNumberOfInputPorts();++e){const n=t.renderable.getInputData(e),r=n?n.getPointData().getScalars().getData():null;r&amp;&amp;a.push(r)}t.renderable.getInterpolate()&amp;&amp;4===o.getNumberOfComponents()&amp;&amp;(t.generateMipmap=!0,e.setMinificationFilter(Ld.LINEAR_MIPMAP_LINEAR)),a.length%6==0?e.createCubeFromRaw({width:r[1]-r[0]+1,height:r[3]-r[2]+1,numComps:o.getNumberOfComponents(),dataType:o.getDataType(),data:a}):e.create2DFromRaw({width:r[1]-r[0]+1,height:r[3]-r[2]+1,numComps:o.getNumberOfComponents(),dataType:o.getDataType(),data:o.getData()}),e.activate(),e.sendParameters(),t.textureBuildTime.modified()}}t.handle&amp;&amp;e.activate()};const r=()=&gt;{if(t.minificationFilter!==Ld.LINEAR&amp;&amp;t.magnificationFilter!==Ld.LINEAR||Ed())return t.oglNorm16Ext};function o(e){const[t,n,r,o,a,i]=e;return[n-t+1,o-r+1,i-a+1]}function a(e){const[t,n,r]=o(e);return t*n*r}function i(e,n,r=null){const o=new(r||e.constructor)(n.reduce(((e,t)=&gt;e+a(t)),0)),i=[t.width,t.height,t.depth];let s=0;return n.forEach((t=&gt;{!function(e,t,n,r,o){const[a,i,s,l,c,u]=n,[d,p]=t,f=d*p;let g=o;for(let t=c;t&lt;=u;t++){const n=t*f;for(let t=s;t&lt;=l;t++){const o=n+t*d;for(let t=o+a,n=o+i;t&lt;=n;t++,g++)r[g]=e[t]}}}(e,i,t,o,s),s+=a(t)})),o}function s(e){if(t._openGLRenderWindow.getWebgl2())return e;const n=[],r=t.width,o=t.height,a=t.components;if(e&amp;&amp;(!Fo(r)||!Fo(o))){const i=t.context.getExtension(&quot;OES_texture_half_float&quot;),s=Bo(r),l=Bo(o),c=s*l*t.components;for(let u=0;u&lt;e.length;u++)if(null!==e[u]){let d=null;const p=o/l,f=r/s;let g=!1;t.openGLDataType===t.context.FLOAT?d=new Float32Array(c):i&amp;&amp;t.openGLDataType===i.HALF_FLOAT_OES?(d=new Uint16Array(c),g=!0):d=new Uint8Array(c);for(let t=0;t&lt;l;t++){const n=t*s*a,i=t*p;let l=Math.floor(i),c=Math.ceil(i);c&gt;=o&amp;&amp;(c=o-1);const m=i-l,h=1-m;l=l*r*a,c=c*r*a;for(let t=0;t&lt;s;t++){const o=t*a,i=t*f;let s=Math.floor(i),p=Math.ceil(i);p&gt;=r&amp;&amp;(p=r-1);const v=i-s;s*=a,p*=a;for(let t=0;t&lt;a;t++)d[n+o+t]=g?Md.toHalf(Md.fromHalf(e[u][l+s+t])*h*(1-v)+Md.fromHalf(e[u][l+p+t])*h*v+Md.fromHalf(e[u][c+s+t])*m*(1-v)+Md.fromHalf(e[u][c+p+t])*m*v):e[u][l+s+t]*h*(1-v)+e[u][l+p+t]*h*v+e[u][c+s+t]*m*(1-v)+e[u][c+p+t]*m*v}}n.push(d),t.width=s,t.height=l}else n.push(null)}if(0===n.length)for(let t=0;t&lt;e.length;t++)n.push(e[t]);return n}function l(e){if(t._openGLRenderWindow){if(t.resizable||t.renderable?.getResizable())return!1;if(t._openGLRenderWindow.getWebgl2()){return!(t._openGLRenderWindow.getGLInformations().RENDERER.value.match(/WebKit/gi)&amp;&amp;navigator.platform.match(/Mac/gi)&amp;&amp;r())||e!==Bd.UNSIGNED_SHORT&amp;&amp;e!==Bd.SHORT}return!1}return!1}function c(n,r){const o=n.getNumberOfComponents(),a=n.getDataType(),i=n.getData(),s=new Array(o),l=new Array(o);for(let e=0;e&lt;o;++e){const[t,r]=n.getRange(e);s[e]=t,l[e]=r}const c=function(e,t,n){const r=new Array(n),o=new Array(n);for(let a=0;a&lt;n;++a)r[a]=e[a],o[a]=t[a]-e[a]||1;return{scale:o,offset:r}}(s,l,o);return function(n,r,o,a){e.getOpenGLDataType(n);const i=function(e,t){for(let n=0;n&lt;e.length;n++){const r=e[n],o=t[n]+r;if(r&lt;-2048||r&gt;2048||o&lt;-2048||o&gt;2048)return!1}return!0}(r,o)||a;let s=!1;if(t._openGLRenderWindow.getWebgl2())s=t.openGLDataType===t.context.FLOAT&amp;&amp;null===t.context.getExtension(&quot;OES_texture_float_linear&quot;)&amp;&amp;i||t.openGLDataType===t.context.HALF_FLOAT;else{const e=t.context.getExtension(&quot;OES_texture_half_float&quot;);s=e&amp;&amp;t.openGLDataType===e.HALF_FLOAT_OES}t.canUseHalfFloat=s&amp;&amp;i}(a,c.offset,c.scale,r),e.useHalfFloat()||e.getOpenGLDataType(a,!0),{numComps:o,dataType:a,data:i,scaleOffsets:c}}e.destroyTexture=()=&gt;{e.deactivate(),t.context&amp;&amp;t.handle&amp;&amp;t.context.deleteTexture(t.handle),t._prevTexParams=null,t.handle=0,t.numberOfDimensions=0,t.target=0,t.components=0,t.width=0,t.height=0,t.depth=0,e.resetFormatAndType()},e.createTexture=()=&gt;{t.handle||(t.handle=t.context.createTexture(),t.target&amp;&amp;(t.context.bindTexture(t.target,t.handle),t.context.texParameteri(t.target,t.context.TEXTURE_MIN_FILTER,e.getOpenGLFilterMode(t.minificationFilter)),t.context.texParameteri(t.target,t.context.TEXTURE_MAG_FILTER,e.getOpenGLFilterMode(t.magnificationFilter)),t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_S,e.getOpenGLWrapMode(t.wrapS)),t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_T,e.getOpenGLWrapMode(t.wrapT)),t._openGLRenderWindow.getWebgl2()&amp;&amp;t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_R,e.getOpenGLWrapMode(t.wrapR)),t.context.bindTexture(t.target,null)))},e.getTextureUnit=()=&gt;t._openGLRenderWindow?t._openGLRenderWindow.getTextureUnitForTexture(e):-1,e.activate=()=&gt;{t._openGLRenderWindow.activateTexture(e),e.bind()},e.deactivate=()=&gt;{t._openGLRenderWindow&amp;&amp;t._openGLRenderWindow.deactivateTexture(e)},e.releaseGraphicsResources=n=&gt;{n&amp;&amp;t.handle&amp;&amp;(n.activateTexture(e),n.deactivateTexture(e),t.context.deleteTexture(t.handle),t._prevTexParams=null,t.handle=0,t.numberOfDimensions=0,t.target=0,t.internalFormat=0,t.format=0,t.openGLDataType=0,t.components=0,t.width=0,t.height=0,t.depth=0,t.allocatedGPUMemoryInBytes=0),t.shaderProgram&amp;&amp;(t.shaderProgram.releaseGraphicsResources(n),t.shaderProgram=null)},e.bind=()=&gt;{t.context.bindTexture(t.target,t.handle),t.autoParameters&amp;&amp;e.getMTime()&gt;t.sendParametersTime.getMTime()&amp;&amp;e.sendParameters()},e.isBound=()=&gt;{let e=!1;if(t.context&amp;&amp;t.handle){let n=0;if(t.target===t.context.TEXTURE_2D)n=t.context.TEXTURE_BINDING_2D;else kd(&quot;impossible case&quot;);e=t.context.getIntegerv(n)===t.handle}return e},e.sendParameters=()=&gt;{t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_S,e.getOpenGLWrapMode(t.wrapS)),t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_T,e.getOpenGLWrapMode(t.wrapT)),t._openGLRenderWindow.getWebgl2()&amp;&amp;t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_R,e.getOpenGLWrapMode(t.wrapR)),t.context.texParameteri(t.target,t.context.TEXTURE_MIN_FILTER,e.getOpenGLFilterMode(t.minificationFilter)),t.context.texParameteri(t.target,t.context.TEXTURE_MAG_FILTER,e.getOpenGLFilterMode(t.magnificationFilter)),t._openGLRenderWindow.getWebgl2()&amp;&amp;(t.context.texParameteri(t.target,t.context.TEXTURE_BASE_LEVEL,t.baseLevel),t.context.texParameteri(t.target,t.context.TEXTURE_MAX_LEVEL,t.maxLevel)),t.sendParametersTime.modified()},e.getInternalFormat=(n,r)=&gt;(t._forceInternalFormat||(t.internalFormat=e.getDefaultInternalFormat(n,r)),t.internalFormat||Fd(`Unable to find suitable internal format for T=${n} NC= ${r}`),[t.context.R32F,t.context.RG32F,t.context.RGB32F,t.context.RGBA32F].includes(t.internalFormat)&amp;&amp;!t.context.getExtension(&quot;OES_texture_float_linear&quot;)&amp;&amp;kd(&quot;Failed to load OES_texture_float_linear. Texture filtering is not available for *32F internal formats.&quot;),t.internalFormat),e.getDefaultInternalFormat=(n,o)=&gt;{let a=0;return a=t._openGLRenderWindow.getDefaultTextureInternalFormat(n,o,r(),e.useHalfFloat()),a||(a||(Fd(&quot;Unsupported internal texture type!&quot;),Fd(`Unable to find suitable internal format for T=${n} NC= ${o}`)),a)},e.useHalfFloat=()=&gt;t.enableUseHalfFloat&amp;&amp;t.canUseHalfFloat,e.setInternalFormat=n=&gt;{t._forceInternalFormat=!0,n!==t.internalFormat&amp;&amp;(t.internalFormat=n,e.modified())},e.getFormat=(n,r)=&gt;(t.format=e.getDefaultFormat(n,r),t.format),e.getDefaultFormat=(e,n)=&gt;{if(t._openGLRenderWindow.getWebgl2())switch(n){case 1:return t.context.RED;case 2:return t.context.RG;case 3:default:return t.context.RGB;case 4:return t.context.RGBA}else switch(n){case 1:return t.context.LUMINANCE;case 2:return t.context.LUMINANCE_ALPHA;case 3:default:return t.context.RGB;case 4:return t.context.RGBA}},e.resetFormatAndType=()=&gt;{t._prevTexParams=null,t.format=0,t.internalFormat=0,t._forceInternalFormat=!1,t.openGLDataType=0},e.getDefaultDataType=n=&gt;{const o=e.useHalfFloat();if(t._openGLRenderWindow.getWebgl2())switch(n){case Bd.UNSIGNED_CHAR:return t.context.UNSIGNED_BYTE;case r()&amp;&amp;!o&amp;&amp;Bd.SHORT:return t.context.SHORT;case r()&amp;&amp;!o&amp;&amp;Bd.UNSIGNED_SHORT:return t.context.UNSIGNED_SHORT;case o&amp;&amp;Bd.SHORT:case o&amp;&amp;Bd.UNSIGNED_SHORT:return t.context.HALF_FLOAT;case Bd.FLOAT:case Bd.VOID:default:return t.context.FLOAT}switch(n){case Bd.UNSIGNED_CHAR:return t.context.UNSIGNED_BYTE;case Bd.FLOAT:case Bd.VOID:default:if(t.context.getExtension(&quot;OES_texture_float&quot;)&amp;&amp;t.context.getExtension(&quot;OES_texture_float_linear&quot;))return t.context.FLOAT;{const e=t.context.getExtension(&quot;OES_texture_half_float&quot;);if(e&amp;&amp;t.context.getExtension(&quot;OES_texture_half_float_linear&quot;))return e.HALF_FLOAT_OES}return t.context.UNSIGNED_BYTE}},e.getOpenGLDataType=(n,r=!1)=&gt;(t.openGLDataType&amp;&amp;!r||(t.openGLDataType=e.getDefaultDataType(n)),t.openGLDataType),e.getShiftAndScale=()=&gt;{let e=0,n=1;switch(t.openGLDataType){case t.context.BYTE:n=127.5,e=n-128;break;case t.context.UNSIGNED_BYTE:n=255,e=0;break;case t.context.SHORT:n=32767.5,e=n-32768;break;case t.context.UNSIGNED_SHORT:n=65536,e=0;break;case t.context.INT:n=2147483647.5,e=n-2147483648;break;case t.context.UNSIGNED_INT:n=4294967295,e=0;case t.context.FLOAT:}return{shift:e,scale:n}},e.getOpenGLFilterMode=e=&gt;{switch(e){case Ld.NEAREST:return t.context.NEAREST;case Ld.LINEAR:return t.context.LINEAR;case Ld.NEAREST_MIPMAP_NEAREST:return t.context.NEAREST_MIPMAP_NEAREST;case Ld.NEAREST_MIPMAP_LINEAR:return t.context.NEAREST_MIPMAP_LINEAR;case Ld.LINEAR_MIPMAP_NEAREST:return t.context.LINEAR_MIPMAP_NEAREST;case Ld.LINEAR_MIPMAP_LINEAR:return t.context.LINEAR_MIPMAP_LINEAR;default:return t.context.NEAREST}},e.getOpenGLWrapMode=e=&gt;{switch(e){case Vd.CLAMP_TO_EDGE:return t.context.CLAMP_TO_EDGE;case Vd.REPEAT:return t.context.REPEAT;case Vd.MIRRORED_REPEAT:return t.context.MIRRORED_REPEAT;default:return t.context.CLAMP_TO_EDGE}},e.updateArrayDataTypeForGL=(e,n,r=!1,o=[])=&gt;{const a=[];let s=t.width*t.height*t.components;r&amp;&amp;(s*=t.depth);const l=!!o.length;if(e!==Bd.FLOAT&amp;&amp;t.openGLDataType===t.context.FLOAT)for(let e=0;e&lt;n.length;e++)if(n[e])if(l)a.push(i(n[e],o,Float32Array));else{const t=n[e].length&gt;s?n[e].subarray(0,s):n[e];a.push(new Float32Array(t))}else a.push(null);if(e!==Bd.UNSIGNED_CHAR&amp;&amp;t.openGLDataType===t.context.UNSIGNED_BYTE)for(let e=0;e&lt;n.length;e++)if(n[e])if(l)a.push(i(n[e],o,Uint8Array));else{const t=n[e].length&gt;s?n[e].subarray(0,s):n[e];a.push(new Uint8Array(t))}else a.push(null);let c=!1;if(t._openGLRenderWindow.getWebgl2())c=t.openGLDataType===t.context.HALF_FLOAT;else{const e=t.context.getExtension(&quot;OES_texture_half_float&quot;);c=e&amp;&amp;t.openGLDataType===e.HALF_FLOAT_OES}if(c)for(let e=0;e&lt;n.length;e++)if(n[e]){const t=l?i(n[e],o):n[e],r=new Uint16Array(l?t.length:s),c=r.length;for(let e=0;e&lt;c;e++)r[e]=Ud(t[e]);a.push(r)}else a.push(null);if(0===a.length)for(let e=0;e&lt;n.length;e++)a.push(l&amp;&amp;n[e]?i(n[e],o):n[e]);return a},e.create2DFromRaw=({width:n=Gd(&quot;width&quot;),height:o=Gd(&quot;height&quot;),numComps:a=Gd(&quot;numComps&quot;),dataType:i=Gd(&quot;dataType&quot;),data:c=Gd(&quot;data&quot;),flip:u=!1}={})=&gt;{if(e.getOpenGLDataType(i,!0),e.getInternalFormat(i,a),e.getFormat(i,a),!t.internalFormat||!t.format||!t.openGLDataType)return Nd(&quot;Failed to determine texture parameters.&quot;),!1;t.target=t.context.TEXTURE_2D,t.components=a,t.width=n,t.height=o,t.depth=1,t.numberOfDimensions=2,t._openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind();const d=[c],p=s(e.updateArrayDataTypeForGL(i,d));return t.context.pixelStorei(t.context.UNPACK_FLIP_Y_WEBGL,u),t.context.pixelStorei(t.context.UNPACK_ALIGNMENT,1),l(i)?(t.context.texStorage2D(t.target,1,t.internalFormat,t.width,t.height),null!=p[0]&amp;&amp;t.context.texSubImage2D(t.target,0,0,0,t.width,t.height,t.format,t.openGLDataType,p[0])):t.context.texImage2D(t.target,0,t.internalFormat,t.width,t.height,0,t.format,t.openGLDataType,p[0]),t.generateMipmap&amp;&amp;t.context.generateMipmap(t.target),u&amp;&amp;t.context.pixelStorei(t.context.UNPACK_FLIP_Y_WEBGL,!1),t.allocatedGPUMemoryInBytes=t.width*t.height*t.depth*a*t._openGLRenderWindow.getDefaultTextureByteSize(i,r(),e.useHalfFloat()),e.deactivate(),!0},e.createCubeFromRaw=({width:n=Gd(&quot;width&quot;),height:o=Gd(&quot;height&quot;),numComps:a=Gd(&quot;numComps&quot;),dataType:i=Gd(&quot;dataType&quot;),data:c=Gd(&quot;data&quot;)}={})=&gt;{if(e.getOpenGLDataType(i),e.getInternalFormat(i,a),e.getFormat(i,a),!t.internalFormat||!t.format||!t.openGLDataType)return Nd(&quot;Failed to determine texture parameters.&quot;),!1;t.target=t.context.TEXTURE_CUBE_MAP,t.components=a,t.width=n,t.height=o,t.depth=1,t.numberOfDimensions=2,t._openGLRenderWindow.activateTexture(e),t.maxLevel=c.length/6-1,e.createTexture(),e.bind();const u=s(e.updateArrayDataTypeForGL(i,c)),d=[];let p=t.width,f=t.height;for(let e=0;e&lt;u.length;e++){e%6==0&amp;&amp;0!==e&amp;&amp;(p/=2,f/=2),d[e]=Ct(i,f*p*t.components);for(let n=0;n&lt;f;++n){const r=n*p*t.components,o=(f-n-1)*p*t.components;d[e].set(u[e].slice(o,o+p*t.components),r)}}t.context.pixelStorei(t.context.UNPACK_ALIGNMENT,1),l(i)&amp;&amp;t.context.texStorage2D(t.target,6,t.internalFormat,t.width,t.height);for(let e=0;e&lt;6;e++){let n=0,r=t.width,o=t.height;for(;r&gt;=1&amp;&amp;o&gt;=1;){let a=null;n&lt;=t.maxLevel&amp;&amp;(a=d[6*n+e]),l(i)?null!=a&amp;&amp;t.context.texSubImage2D(t.context.TEXTURE_CUBE_MAP_POSITIVE_X+e,n,0,0,r,o,t.format,t.openGLDataType,a):t.context.texImage2D(t.context.TEXTURE_CUBE_MAP_POSITIVE_X+e,n,t.internalFormat,r,o,0,t.format,t.openGLDataType,a),n++,r/=2,o/=2}}return t.allocatedGPUMemoryInBytes=t.width*t.height*t.depth*a*t._openGLRenderWindow.getDefaultTextureByteSize(i,r(),e.useHalfFloat()),e.deactivate(),!0},e.createDepthFromRaw=({width:n=Gd(&quot;width&quot;),height:o=Gd(&quot;height&quot;),dataType:a=Gd(&quot;dataType&quot;),data:i=Gd(&quot;data&quot;)}={})=&gt;(e.getOpenGLDataType(a),t.format=t.context.DEPTH_COMPONENT,t._openGLRenderWindow.getWebgl2()?a===Bd.FLOAT?t.internalFormat=t.context.DEPTH_COMPONENT32F:t.internalFormat=t.context.DEPTH_COMPONENT16:t.internalFormat=t.context.DEPTH_COMPONENT,t.internalFormat&amp;&amp;t.format&amp;&amp;t.openGLDataType?(t.target=t.context.TEXTURE_2D,t.components=1,t.width=n,t.height=o,t.depth=1,t.numberOfDimensions=2,t._openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind(),t.context.pixelStorei(t.context.UNPACK_ALIGNMENT,1),l(a)?(t.context.texStorage2D(t.target,1,t.internalFormat,t.width,t.height),null!=i&amp;&amp;t.context.texSubImage2D(t.target,0,0,0,t.width,t.height,t.format,t.openGLDataType,i)):t.context.texImage2D(t.target,0,t.internalFormat,t.width,t.height,0,t.format,t.openGLDataType,i),t.generateMipmap&amp;&amp;t.context.generateMipmap(t.target),t.allocatedGPUMemoryInBytes=t.width*t.height*t.depth*t.components*t._openGLRenderWindow.getDefaultTextureByteSize(a,r(),e.useHalfFloat()),e.deactivate(),!0):(Nd(&quot;Failed to determine texture parameters.&quot;),!1)),e.create2DFromImage=n=&gt;{if(e.getOpenGLDataType(Bd.UNSIGNED_CHAR),e.getInternalFormat(Bd.UNSIGNED_CHAR,4),e.getFormat(Bd.UNSIGNED_CHAR,4),!t.internalFormat||!t.format||!t.openGLDataType)return Nd(&quot;Failed to determine texture parameters.&quot;),!1;t.target=t.context.TEXTURE_2D,t.components=4,t.depth=1,t.numberOfDimensions=2,t._openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind();const o=!(t._openGLRenderWindow.getWebgl2()||Fo(n.width)&amp;&amp;Fo(n.height));let a=n,i=n.width,s=n.height,c=!0;const u=window.chrome;if(o||u){const e=new OffscreenCanvas(Bo(n.width),Bo(n.height));i=e.width,s=e.height;const t=e.getContext(&quot;2d&quot;);t.translate(0,e.height),t.scale(1,-1),t.drawImage(n,0,0,n.width,n.height,0,0,e.width,e.height),a=e,c=!1}return t.width=i,t.height=s,t.context.pixelStorei(t.context.UNPACK_FLIP_Y_WEBGL,c),t.context.pixelStorei(t.context.UNPACK_ALIGNMENT,1),l(Bd.UNSIGNED_CHAR)?(t.context.texStorage2D(t.target,1,t.internalFormat,t.width,t.height),t.context.texSubImage2D(t.target,0,0,0,t.width,t.height,t.format,t.openGLDataType,a)):t.context.texImage2D(t.target,0,t.internalFormat,t.width,t.height,0,t.format,t.openGLDataType,a),t.generateMipmap&amp;&amp;t.context.generateMipmap(t.target),t.allocatedGPUMemoryInBytes=t.width*t.height*t.depth*t.components*t._openGLRenderWindow.getDefaultTextureByteSize(Bd.UNSIGNED_CHAR,r(),e.useHalfFloat()),e.deactivate(),!0},e.create2DFromImageBitmap=n=&gt;(e.getOpenGLDataType(Bd.UNSIGNED_CHAR),e.getInternalFormat(Bd.UNSIGNED_CHAR,4),e.getFormat(Bd.UNSIGNED_CHAR,4),t.internalFormat&amp;&amp;t.format&amp;&amp;t.openGLDataType?(t.target=t.context.TEXTURE_2D,t.components=4,t.depth=1,t.numberOfDimensions=2,t._openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind(),t.context.pixelStorei(t.context.UNPACK_ALIGNMENT,1),t.width=n.width,t.height=n.height,l(Bd.UNSIGNED_CHAR)?(t.context.texStorage2D(t.target,1,t.internalFormat,t.width,t.height),t.context.texSubImage2D(t.target,0,0,0,t.width,t.height,t.format,t.openGLDataType,n)):t.context.texImage2D(t.target,0,t.internalFormat,t.width,t.height,0,t.format,t.openGLDataType,n),t.generateMipmap&amp;&amp;t.context.generateMipmap(t.target),t.allocatedGPUMemoryInBytes=t.width*t.height*t.depth*t.components*t._openGLRenderWindow.getDefaultTextureByteSize(Bd.UNSIGNED_CHAR,r(),e.useHalfFloat()),e.deactivate(),!0):(Nd(&quot;Failed to determine texture parameters.&quot;),!1)),e.create2DFilterableFromRaw=({width:t=Gd(&quot;width&quot;),height:n=Gd(&quot;height&quot;),numComps:r=Gd(&quot;numComps&quot;),dataType:o=Gd(&quot;dataType&quot;),data:a=Gd(&quot;data&quot;),preferSizeOverAccuracy:i=!1,ranges:s}={})=&gt;e.create2DFilterableFromDataArray({width:t,height:n,dataArray:Is.newInstance({numberOfComponents:r,dataType:o,values:a,ranges:s}),preferSizeOverAccuracy:i}),e.create2DFilterableFromDataArray=({width:t=Gd(&quot;width&quot;),height:n=Gd(&quot;height&quot;),dataArray:r=Gd(&quot;dataArray&quot;),preferSizeOverAccuracy:o=!1}={})=&gt;{const{numComps:a,dataType:i,data:s}=c(r,o);e.create2DFromRaw({width:t,height:n,numComps:a,dataType:i,data:s})},e.updateVolumeInfoForGL=(n,o)=&gt;{let a=!1;const i=e.useHalfFloat();t.volumeInfo?.scale&amp;&amp;t.volumeInfo?.offset||(t.volumeInfo={scale:new Array(o),offset:new Array(o)});for(let e=0;e&lt;o;++e)t.volumeInfo.scale[e]=1,t.volumeInfo.offset[e]=0;if(r()&amp;&amp;!i&amp;&amp;n===Bd.SHORT){for(let e=0;e&lt;o;++e)t.volumeInfo.scale[e]=32767;a=!0}if(r()&amp;&amp;!i&amp;&amp;n===Bd.UNSIGNED_SHORT){for(let e=0;e&lt;o;++e)t.volumeInfo.scale[e]=65535;a=!0}if(n===Bd.UNSIGNED_CHAR){for(let e=0;e&lt;o;++e)t.volumeInfo.scale[e]=255;a=!0}return(n===Bd.FLOAT||i&amp;&amp;(n===Bd.SHORT||n===Bd.UNSIGNED_SHORT))&amp;&amp;(a=!0),a},e.create3DFromRaw=({width:i=Gd(&quot;width&quot;),height:c=Gd(&quot;height&quot;),depth:u=Gd(&quot;depth&quot;),numComps:d=Gd(&quot;numComps&quot;),dataType:p=Gd(&quot;dataType&quot;),data:f=Gd(&quot;data&quot;),updatedExtents:g=[]}={})=&gt;{let m=p,h=f;if(!e.updateVolumeInfoForGL(m,d)&amp;&amp;h){const e=i*c*u,n=structuredClone(t.volumeInfo),r=new Float32Array(e*d);t.volumeInfo.offset=n.offset,t.volumeInfo.scale=n.scale;let o=0;const a=n.scale.map((e=&gt;1/e));for(let t=0;t&lt;e;t++)for(let e=0;e&lt;d;e++)r[o]=(h[o]-n.offset[e])*a[e],o++;m=Bd.FLOAT,h=r}if(e.getOpenGLDataType(m),e.getInternalFormat(m,d),e.getFormat(m,d),!t.internalFormat||!t.format||!t.openGLDataType)return Nd(&quot;Failed to determine texture parameters.&quot;),!1;t.target=t.context.TEXTURE_3D,t.components=d,t.width=i,t.height=c,t.depth=u,t.numberOfDimensions=3,t._openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind();const v=g.length&gt;0,T=!v||!xe(t._prevTexParams,n()),x=[h],y=s(e.updateArrayDataTypeForGL(m,x,!0,T?[]:g));if(t.context.pixelStorei(t.context.UNPACK_ALIGNMENT,1),T)l(m)?(t.context.texStorage3D(t.target,1,t.internalFormat,t.width,t.height,t.depth),null!=y[0]&amp;&amp;t.context.texSubImage3D(t.target,0,0,0,0,t.width,t.height,t.depth,t.format,t.openGLDataType,y[0])):t.context.texImage3D(t.target,0,t.internalFormat,t.width,t.height,t.depth,0,t.format,t.openGLDataType,y[0]),t._prevTexParams=n();else if(v){const e=y[0];let n=0;for(let r=0;r&lt;g.length;r++){const i=g[r],s=o(i),l=a(i),c=new e.constructor(e.buffer,n,l);n+=c.byteLength,t.context.texSubImage3D(t.target,0,i[0],i[2],i[4],s[0],s[1],s[2],t.format,t.openGLDataType,c)}}return t.generateMipmap&amp;&amp;t.context.generateMipmap(t.target),t.allocatedGPUMemoryInBytes=t.width*t.height*t.depth*t.components*t._openGLRenderWindow.getDefaultTextureByteSize(m,r(),e.useHalfFloat()),e.deactivate(),!0},e.create3DFilterableFromRaw=({width:t=Gd(&quot;width&quot;),height:n=Gd(&quot;height&quot;),depth:r=Gd(&quot;depth&quot;),numComps:o=Gd(&quot;numComps&quot;),dataType:a=Gd(&quot;dataType&quot;),data:i=Gd(&quot;data&quot;),preferSizeOverAccuracy:s=!1,ranges:l,updatedExtents:c=[]}={})=&gt;e.create3DFilterableFromDataArray({width:t,height:n,depth:r,dataArray:Is.newInstance({numberOfComponents:o,dataType:a,values:i,ranges:l}),preferSizeOverAccuracy:s,updatedExtents:c}),e.create3DFilterableFromDataArray=({width:n=Gd(&quot;width&quot;),height:r=Gd(&quot;height&quot;),depth:o=Gd(&quot;depth&quot;),dataArray:a=Gd(&quot;dataArray&quot;),preferSizeOverAccuracy:i=!1,updatedExtents:s=[]}={})=&gt;{const{numComps:u,dataType:d,data:p,scaleOffsets:f}=c(a,i),g=[],m=[];for(let e=0;e&lt;u;++e)g[e]=0,m[e]=1;if(t.volumeInfo={scale:m,offset:g,dataComputedScale:f.scale,dataComputedOffset:f.offset,width:n,height:r,depth:o},t._openGLRenderWindow.getWebgl2())return e.create3DFromRaw({width:n,height:r,depth:o,numComps:u,dataType:d,data:p,updatedExtents:s});const h=n*r*o,v=structuredClone(f);let T=(e,t,n,r,o)=&gt;{e[t]=n},x=Bd.UNSIGNED_CHAR;if(d===Bd.UNSIGNED_CHAR)for(let e=0;e&lt;u;++e)v.offset[e]=0,v.scale[e]=255;else t.context.getExtension(&quot;OES_texture_float&quot;)&amp;&amp;t.context.getExtension(&quot;OES_texture_float_linear&quot;)?(x=Bd.FLOAT,T=(e,t,n,r,o)=&gt;{e[t]=(n-r)/o}):(x=Bd.UNSIGNED_CHAR,T=(e,t,n,r,o)=&gt;{e[t]=255*(n-r)/o});if(e.getOpenGLDataType(x),e.getInternalFormat(x,u),e.getFormat(x,u),!t.internalFormat||!t.format||!t.openGLDataType)return Nd(&quot;Failed to determine texture parameters.&quot;),!1;t.target=t.context.TEXTURE_2D,t.components=u,t.depth=1,t.numberOfDimensions=2;let y=t.context.getParameter(t.context.MAX_TEXTURE_SIZE);y&gt;4096&amp;&amp;(x===Bd.FLOAT||u&gt;=3)&amp;&amp;(y=4096);let b=1,A=1;h&gt;y*y&amp;&amp;(b=Math.ceil(Math.sqrt(h/(y*y))),A=b);let C=Math.sqrt(h)/b;C=Bo(C);const S=Math.floor(C*b/n),P=Math.ceil(o/S),w=Bo(r*P/A);let I;t.width=C,t.height=w,t._openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind(),t.volumeInfo.xreps=S,t.volumeInfo.yreps=P,t.volumeInfo.xstride=b,t.volumeInfo.ystride=A,t.volumeInfo.offset=v.offset,t.volumeInfo.scale=v.scale;const O=C*w*u;I=x===Bd.FLOAT?new Float32Array(O):new Uint8Array(O);let R=0;const M=Math.floor(n/b),D=Math.floor(r/A);for(let e=0;e&lt;P;e++){const a=Math.min(S,o-e*S),i=u*(t.width-a*Math.floor(n/b));for(let t=0;t&lt;D;t++){for(let o=0;o&lt;a;o++){const a=u*((e*S+o)*n*r+A*t*n);for(let e=0;e&lt;M;e++)for(let t=0;t&lt;u;t++)T(I,R,p[a+b*e*u+t],v.offset[t],v.scale[t]),R++}R+=i}}return t.context.pixelStorei(t.context.UNPACK_ALIGNMENT,1),l(x)?(t.context.texStorage2D(t.target,1,t.internalFormat,t.width,t.height),null!=I&amp;&amp;t.context.texSubImage2D(t.target,0,0,0,t.width,t.height,t.format,t.openGLDataType,I)):t.context.texImage2D(t.target,0,t.internalFormat,t.width,t.height,0,t.format,t.openGLDataType,I),e.deactivate(),!0},e.setOpenGLRenderWindow=n=&gt;{t._openGLRenderWindow!==n&amp;&amp;(e.releaseGraphicsResources(),t._openGLRenderWindow=n,t.context=null,n&amp;&amp;(t.context=t._openGLRenderWindow.getContext()))},e.getMaximumTextureSize=e=&gt;e&amp;&amp;e.isCurrent()?e.getIntegerv(e.MAX_TEXTURE_SIZE):-1,e.enableUseHalfFloat=e=&gt;{t.enableUseHalfFloat=e}}const Kd={_openGLRenderWindow:null,_forceInternalFormat:!1,_prevTexParams:null,context:null,handle:0,sendParametersTime:null,textureBuildTime:null,numberOfDimensions:0,target:0,format:0,openGLDataType:0,components:0,width:0,height:0,depth:0,autoParameters:!0,wrapS:Vd.CLAMP_TO_EDGE,wrapT:Vd.CLAMP_TO_EDGE,wrapR:Vd.CLAMP_TO_EDGE,minificationFilter:Ld.NEAREST,magnificationFilter:Ld.NEAREST,minLOD:-1e3,maxLOD:1e3,baseLevel:0,maxLevel:1e3,generateMipmap:!1,oglNorm16Ext:null,allocatedGPUMemoryInBytes:0,enableUseHalfFloat:!0,canUseHalfFloat:!1};function zd(e,t,n={}){Object.assign(t,Kd,n),pn.extend(e,t,n),t.sendParametersTime={},Vt(t.sendParametersTime,{mtime:0}),t.textureBuildTime={},Vt(t.textureBuildTime,{mtime:0}),kt(e,t,[&quot;format&quot;,&quot;openGLDataType&quot;]),Gt(e,t,[&quot;keyMatrixTime&quot;,&quot;minificationFilter&quot;,&quot;magnificationFilter&quot;,&quot;wrapS&quot;,&quot;wrapT&quot;,&quot;wrapR&quot;,&quot;generateMipmap&quot;,&quot;oglNorm16Ext&quot;]),Bt(e,t,[&quot;width&quot;,&quot;height&quot;,&quot;volumeInfo&quot;,&quot;components&quot;,&quot;handle&quot;,&quot;target&quot;,&quot;allocatedGPUMemoryInBytes&quot;]),zt(0,t,[&quot;openGLRenderWindow&quot;]),_d(e,t)}const Wd=Xt(zd,&quot;vtkOpenGLTexture&quot;);var Hd={newInstance:Wd,extend:zd,...Id};vn(&quot;vtkTexture&quot;,Wd);var jd=&quot;//VTK::System::Dec\\n\\n/*=========================================================================\\n\\n  Program:   Visualization Toolkit\\n  Module:    vtkPolyDataVS.glsl\\n\\n  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n  All rights reserved.\\n  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n\\n     This software is distributed WITHOUT ANY WARRANTY; without even\\n     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n     PURPOSE.  See the above copyright notice for more information.\\n\\n=========================================================================*/\\n\\nattribute vec4 vertexMC;\\n\\n// frag position in VC\\n//VTK::PositionVC::Dec\\n\\n// optional normal declaration\\n//VTK::Normal::Dec\\n\\n// extra lighting parameters\\n//VTK::Light::Dec\\n\\n// Texture coordinates\\n//VTK::TCoord::Dec\\n\\n// material property values\\n//VTK::Color::Dec\\n\\n// clipping plane vars\\n//VTK::Clip::Dec\\n\\n// camera and actor matrix values\\n//VTK::Camera::Dec\\n\\n// Apple Bug\\n//VTK::PrimID::Dec\\n\\n// picking support\\n//VTK::Picking::Dec\\n\\nvoid main()\\n{\\n  //VTK::Color::Impl\\n\\n  //VTK::Normal::Impl\\n\\n  //VTK::TCoord::Impl\\n\\n  //VTK::Clip::Impl\\n\\n  //VTK::PrimID::Impl\\n\\n  //VTK::PositionVC::Impl\\n\\n  //VTK::Light::Impl\\n\\n  //VTK::Picking::Impl\\n}\\n&quot;,Xd=&quot;//VTK::System::Dec\\n\\n/*=========================================================================\\n\\n  Program:   Visualization Toolkit\\n  Module:    vtkPolyDataFS.glsl\\n\\n  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n  All rights reserved.\\n  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n\\n     This software is distributed WITHOUT ANY WARRANTY; without even\\n     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n     PURPOSE.  See the above copyright notice for more information.\\n\\n=========================================================================*/\\n// Template for the polydata mappers fragment shader\\n\\nuniform int PrimitiveIDOffset;\\n\\n// VC position of this fragment\\n//VTK::PositionVC::Dec\\n\\n// optional color passed in from the vertex shader, vertexColor\\n//VTK::Color::Dec\\n\\n// optional surface normal declaration\\n//VTK::Normal::Dec\\n\\n// extra lighting parameters\\n//VTK::Light::Dec\\n\\n// define vtkImageLabelOutlineOn\\n//VTK::ImageLabelOutlineOn\\n\\n// Texture coordinates\\n//VTK::TCoord::Dec\\n\\n// picking support\\n//VTK::Picking::Dec\\n\\n// Depth Peeling Support\\n//VTK::DepthPeeling::Dec\\n\\n// clipping plane vars\\n//VTK::Clip::Dec\\n\\n// label outline \\n//VTK::LabelOutline::Dec\\n\\n// the output of this shader\\n//VTK::Output::Dec\\n\\n// Apple Bug\\n//VTK::PrimID::Dec\\n\\n// handle coincident offsets\\n//VTK::Coincident::Dec\\n\\n//VTK::ZBuffer::Dec\\n\\n//VTK::LabelOutlineHelperFunction\\n\\nvoid main()\\n{\\n  // VC position of this fragment. This should not branch/return/discard.\\n  //VTK::PositionVC::Impl\\n\\n  // Place any calls that require uniform flow (e.g. dFdx) here.\\n  //VTK::UniformFlow::Impl\\n\\n  // Set gl_FragDepth here (gl_FragCoord.z by default)\\n  //VTK::Depth::Impl\\n\\n  // Early depth peeling abort:\\n  //VTK::DepthPeeling::PreColor\\n\\n  // Apple Bug\\n  //VTK::PrimID::Impl\\n\\n  //VTK::Clip::Impl\\n\\n  //VTK::Color::Impl\\n\\n  // Generate the normal if we are not passed in one\\n  //VTK::Normal::Impl\\n\\n  //VTK::TCoord::Impl\\n\\n  //VTK::Light::Impl\\n\\n  if (gl_FragData[0].a &lt;= 0.0)\\n    {\\n    discard;\\n    }\\n\\n  //VTK::DepthPeeling::Impl\\n\\n  //VTK::Picking::Impl\\n\\n  // handle coincident offsets\\n  //VTK::Coincident::Impl\\n\\n  //VTK::ZBuffer::Impl\\n\\n  //VTK::RenderPassFragmentShader::Impl\\n}\\n&quot;;var qd={implementReplaceShaderCoincidentOffset:function(e,t,n={}){e.replaceShaderCoincidentOffset=(n,r,o)=&gt;{const a=e.getCoincidentParameters(r,o);if(a&amp;&amp;(0!==a.factor||0!==a.offset)){let e=n.Fragment;e=vd.substitute(e,&quot;//VTK::Coincident::Dec&quot;,[&quot;uniform float cfactor;&quot;,&quot;uniform float coffset;&quot;]).result,t.context.getExtension(&quot;EXT_frag_depth&quot;)&amp;&amp;(0!==a.factor?(e=vd.substitute(e,&quot;//VTK::UniformFlow::Impl&quot;,[&quot;float cscale = length(vec2(dFdx(gl_FragCoord.z),dFdy(gl_FragCoord.z)));&quot;,&quot;//VTK::UniformFlow::Impl&quot;],!1).result,e=vd.substitute(e,&quot;//VTK::Depth::Impl&quot;,&quot;gl_FragDepthEXT = gl_FragCoord.z + cfactor*cscale + 0.000016*coffset;&quot;).result):e=vd.substitute(e,&quot;//VTK::Depth::Impl&quot;,&quot;gl_FragDepthEXT = gl_FragCoord.z + 0.000016*coffset;&quot;).result),t._openGLRenderWindow.getWebgl2()&amp;&amp;(0!==a.factor?(e=vd.substitute(e,&quot;//VTK::UniformFlow::Impl&quot;,[&quot;float cscale = length(vec2(dFdx(gl_FragCoord.z),dFdy(gl_FragCoord.z)));&quot;,&quot;//VTK::UniformFlow::Impl&quot;],!1).result,e=vd.substitute(e,&quot;//VTK::Depth::Impl&quot;,&quot;gl_FragDepth = gl_FragCoord.z + cfactor*cscale + 0.000016*coffset;&quot;).result):e=vd.substitute(e,&quot;//VTK::Depth::Impl&quot;,&quot;gl_FragDepth = gl_FragCoord.z + 0.000016*coffset;&quot;).result),n.Fragment=e}}},implementBuildShadersWithReplacements:function(e,t,n={}){e.applyShaderReplacements=(e,t,n)=&gt;{let r=null;if(t&amp;&amp;(r=t.ShaderReplacements),r)for(let t=0;t&lt;r.length;t++){const o=r[t];if(n&amp;&amp;o.replaceFirst||!n&amp;&amp;!o.replaceFirst){const t=o.shaderType,n=e[t],r=vd.substitute(n,o.originalValue,o.replacementValue,o.replaceAll);e[t]=r.result}}},e.buildShaders=(n,r,o)=&gt;{e.getReplacedShaderTemplate(n,r,o),t.lastRenderPassShaderReplacement=t.currentRenderPass?t.currentRenderPass.getShaderReplacement():null,t.lastRenderPassShaderReplacement&amp;&amp;t.lastRenderPassShaderReplacement(n);const a=t.renderable.getViewSpecificProperties().OpenGL;e.applyShaderReplacements(n,a,!0),e.replaceShaderValues(n,r,o),e.applyShaderReplacements(n,a)},e.getReplacedShaderTemplate=(n,r,o)=&gt;{const a=t.renderable.getViewSpecificProperties().OpenGL;e.getShaderTemplate(n,r,o);let i=n.Vertex;if(a){const e=a.VertexShaderCode;void 0!==e&amp;&amp;&quot;&quot;!==e&amp;&amp;(i=e)}n.Vertex=i;let s=n.Fragment;if(a){const e=a.FragmentShaderCode;void 0!==e&amp;&amp;&quot;&quot;!==e&amp;&amp;(s=e)}n.Fragment=s;let l=n.Geometry;if(a){const e=a.GeometryShaderCode;void 0!==e&amp;&amp;(l=e)}n.Geometry=l}}};const{FieldAssociations:Yd}=Qs,{primTypes:Jd}=Sd,{Representation:Zd,Shading:Qd}=us,{ScalarMode:$d}=Ql,{Filter:ep,Wrap:tp}=Hd,{vtkErrorMacro:np}=ln,rp={type:&quot;StartEvent&quot;},op={type:&quot;EndEvent&quot;},{CoordinateSystem:ap}=Zi;function ip(e,t){function n(e,t,n){return t.identity(n),e.reduce(((e,n,r)=&gt;0===r?n?t.copy(e,n):t.identity(e):n?t.multiply(e,e,n):e),n)}t.classHierarchy.push(&quot;vtkOpenGLPolyDataMapper&quot;),e.buildPass=n=&gt;{n&amp;&amp;(t.currentRenderPass=null,t.openGLActor=e.getFirstAncestorOfType(&quot;vtkOpenGLActor&quot;),t._openGLRenderer=t.openGLActor.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;),t._openGLRenderWindow=t._openGLRenderer.getLastAncestorOfType(&quot;vtkOpenGLRenderWindow&quot;),t.openGLCamera=t._openGLRenderer.getViewNodeFor(t._openGLRenderer.getRenderable().getActiveCamera(),t.openGLCamera))},e.translucentPass=(n,r)=&gt;{n&amp;&amp;(t.currentRenderPass=r,e.render())},e.zBufferPass=n=&gt;{n&amp;&amp;(t.haveSeenDepthRequest=!0,t.renderDepth=!0,e.render(),t.renderDepth=!1)},e.opaqueZBufferPass=t=&gt;e.zBufferPass(t),e.opaquePass=t=&gt;{t&amp;&amp;e.render()},e.render=()=&gt;{const n=t._openGLRenderWindow.getContext();if(t.context!==n){t.context=n;for(let e=Jd.Start;e&lt;Jd.End;e++)t.primitives[e].setOpenGLRenderWindow(t._openGLRenderWindow)}const r=t.openGLActor.getRenderable(),o=t._openGLRenderer.getRenderable();e.renderPiece(o,r)},e.getShaderTemplate=(e,t,n)=&gt;{e.Vertex=jd,e.Fragment=Xd,e.Geometry=&quot;&quot;},e.replaceShaderColor=(e,n,r)=&gt;{let o=e.Vertex,a=e.Geometry,i=e.Fragment;const s=t.lastBoundBO.getReferenceByName(&quot;lastLightComplexity&quot;);let l=[&quot;uniform float ambient;&quot;,&quot;uniform float diffuse;&quot;,&quot;uniform float specular;&quot;,&quot;uniform float opacityUniform; // the fragment opacity&quot;,&quot;uniform vec3 ambientColorUniform;&quot;,&quot;uniform vec3 diffuseColorUniform;&quot;];s&amp;&amp;(l=l.concat([&quot;uniform vec3 specularColorUniform;&quot;,&quot;uniform float specularPowerUniform;&quot;]));let c=[&quot;vec3 ambientColor;&quot;,&quot;  vec3 diffuseColor;&quot;,&quot;  float opacity;&quot;];s&amp;&amp;(c=c.concat([&quot;  vec3 specularColor;&quot;,&quot;  float specularPower;&quot;])),c=c.concat([&quot;  ambientColor = ambientColorUniform;&quot;,&quot;  diffuseColor = diffuseColorUniform;&quot;,&quot;  opacity = opacityUniform;&quot;]),s&amp;&amp;(c=c.concat([&quot;  specularColor = specularColorUniform;&quot;,&quot;  specularPower = specularPowerUniform;&quot;])),0===t.lastBoundBO.getCABO().getColorComponents()||t.drawingEdges||(l=l.concat([&quot;varying vec4 vertexColorVSOutput;&quot;]),o=vd.substitute(o,&quot;//VTK::Color::Dec&quot;,[&quot;attribute vec4 scalarColor;&quot;,&quot;varying vec4 vertexColorVSOutput;&quot;]).result,o=vd.substitute(o,&quot;//VTK::Color::Impl&quot;,[&quot;vertexColorVSOutput =  scalarColor;&quot;]).result,a=vd.substitute(a,&quot;//VTK::Color::Dec&quot;,[&quot;in vec4 vertexColorVSOutput[];&quot;,&quot;out vec4 vertexColorGSOutput;&quot;]).result,a=vd.substitute(a,&quot;//VTK::Color::Impl&quot;,[&quot;vertexColorGSOutput = vertexColorVSOutput[i];&quot;]).result),0===t.lastBoundBO.getCABO().getColorComponents()||t.drawingEdges?(t.renderable.getAreScalarsMappedFromCells()||t.renderable.getInterpolateScalarsBeforeMapping())&amp;&amp;t.renderable.getColorCoordinates()&amp;&amp;!t.drawingEdges?i=vd.substitute(i,&quot;//VTK::Color::Impl&quot;,c.concat([&quot;  vec4 texColor = texture2D(texture1, tcoordVCVSOutput.st);&quot;,&quot;  diffuseColor = texColor.rgb;&quot;,&quot;  ambientColor = texColor.rgb;&quot;,&quot;  opacity = opacity*texColor.a;&quot;])).result:(r.getBackfaceProperty()&amp;&amp;!t.drawingEdges&amp;&amp;(l=l.concat([&quot;uniform float opacityUniformBF; // the fragment opacity&quot;,&quot;uniform float ambientIntensityBF; // the material ambient&quot;,&quot;uniform float diffuseIntensityBF; // the material diffuse&quot;,&quot;uniform vec3 ambientColorUniformBF; // ambient material color&quot;,&quot;uniform vec3 diffuseColorUniformBF; // diffuse material color&quot;]),s?(l=l.concat([&quot;uniform float specularIntensityBF; // the material specular intensity&quot;,&quot;uniform vec3 specularColorUniformBF; // intensity weighted color&quot;,&quot;uniform float specularPowerUniformBF;&quot;]),c=c.concat([&quot;if (gl_FrontFacing == false) {&quot;,&quot;  ambientColor = ambientIntensityBF * ambientColorUniformBF;&quot;,&quot;  diffuseColor = diffuseIntensityBF * diffuseColorUniformBF;&quot;,&quot;  specularColor = specularIntensityBF * specularColorUniformBF;&quot;,&quot;  specularPower = specularPowerUniformBF;&quot;,&quot;  opacity = opacityUniformBF; }&quot;])):c=c.concat([&quot;if (gl_FrontFacing == false) {&quot;,&quot;  ambientColor = ambientIntensityBF * ambientColorUniformBF;&quot;,&quot;  diffuseColor = diffuseIntensityBF * diffuseColorUniformBF;&quot;,&quot;  opacity = opacityUniformBF; }&quot;])),t.haveCellScalars&amp;&amp;!t.drawingEdges&amp;&amp;(l=l.concat([&quot;uniform samplerBuffer texture1;&quot;])),i=vd.substitute(i,&quot;//VTK::Color::Impl&quot;,c).result):i=vd.substitute(i,&quot;//VTK::Color::Impl&quot;,c.concat([&quot;  diffuseColor = vertexColorVSOutput.rgb;&quot;,&quot;  ambientColor = vertexColorVSOutput.rgb;&quot;,&quot;  opacity = opacity*vertexColorVSOutput.a;&quot;])).result,i=vd.substitute(i,&quot;//VTK::Color::Dec&quot;,l).result,e.Vertex=o,e.Geometry=a,e.Fragment=i},e.replaceShaderLight=(e,n,r)=&gt;{let o=e.Fragment;const a=t.lastBoundBO.getReferenceByName(&quot;lastLightComplexity&quot;),i=t.lastBoundBO.getReferenceByName(&quot;lastLightCount&quot;);let s=[];switch(a){case 0:o=vd.substitute(o,&quot;//VTK::Light::Impl&quot;,[&quot;  gl_FragData[0] = vec4(ambientColor * ambient + diffuseColor * diffuse, opacity);&quot;,&quot;  //VTK::Light::Impl&quot;],!1).result;break;case 1:o=vd.substitute(o,&quot;//VTK::Light::Impl&quot;,[&quot;  float df = max(0.0, normalVCVSOutput.z);&quot;,&quot;  float sf = pow(df, specularPower);&quot;,&quot;  vec3 diffuseL = df * diffuseColor;&quot;,&quot;  vec3 specularL = sf * specularColor;&quot;,&quot;  gl_FragData[0] = vec4(ambientColor * ambient + diffuseL * diffuse + specularL * specular, opacity);&quot;,&quot;  //VTK::Light::Impl&quot;],!1).result;break;case 2:for(let e=0;e&lt;i;++e)s=s.concat([`uniform vec3 lightColor${e};`,`uniform vec3 lightDirectionVC${e}; // normalized`,`uniform vec3 lightHalfAngleVC${e}; // normalized`]);o=vd.substitute(o,&quot;//VTK::Light::Dec&quot;,s).result,s=[&quot;vec3 diffuseL = vec3(0,0,0);&quot;,&quot;  vec3 specularL = vec3(0,0,0);&quot;,&quot;  float df;&quot;];for(let e=0;e&lt;i;++e)s=s.concat([`  df = max(0.0, dot(normalVCVSOutput, -lightDirectionVC${e}));`,`  diffuseL += ((df) * lightColor${e});`,`  if (dot(normalVCVSOutput, lightDirectionVC${e}) &lt; 0.0)`,&quot;    {&quot;,`    float sf = sign(df)*pow(max(1e-5,\\n                                              dot(reflect(lightDirectionVC${e},normalVCVSOutput),\\n                                                  normalize(-vertexVC.xyz))),\\n                                         specularPower);`,`    specularL += (sf * lightColor${e});`,&quot;    }&quot;]);s=s.concat([&quot;  diffuseL = diffuseL * diffuseColor;&quot;,&quot;  specularL = specularL * specularColor;&quot;,&quot;  gl_FragData[0] = vec4(ambientColor * ambient + diffuseL * diffuse + specularL * specular, opacity);&quot;,&quot;  //VTK::Light::Impl&quot;]),o=vd.substitute(o,&quot;//VTK::Light::Impl&quot;,s,!1).result;break;case 3:for(let e=0;e&lt;i;++e)s=s.concat([`uniform vec3 lightColor${e};`,`uniform vec3 lightDirectionVC${e}; // normalized`,`uniform vec3 lightHalfAngleVC${e}; // normalized`,`uniform vec3 lightPositionVC${e};`,`uniform vec3 lightAttenuation${e};`,`uniform float lightConeAngle${e};`,`uniform float lightExponent${e};`,`uniform int lightPositional${e};`]);o=vd.substitute(o,&quot;//VTK::Light::Dec&quot;,s).result,s=[&quot;vec3 diffuseL = vec3(0,0,0);&quot;,&quot;  vec3 specularL = vec3(0,0,0);&quot;,&quot;  vec3 vertLightDirectionVC;&quot;,&quot;  float attenuation;&quot;,&quot;  float df;&quot;];for(let e=0;e&lt;i;++e)s=s.concat([&quot;  attenuation = 1.0;&quot;,`  if (lightPositional${e} == 0)`,&quot;    {&quot;,`      vertLightDirectionVC = lightDirectionVC${e};`,&quot;    }&quot;,&quot;  else&quot;,&quot;    {&quot;,`    vertLightDirectionVC = vertexVC.xyz - lightPositionVC${e};`,&quot;    float distanceVC = length(vertLightDirectionVC);&quot;,&quot;    vertLightDirectionVC = normalize(vertLightDirectionVC);&quot;,&quot;    attenuation = 1.0 /&quot;,`      (lightAttenuation${e}.x`,`       + lightAttenuation${e}.y * distanceVC`,`       + lightAttenuation${e}.z * distanceVC * distanceVC);`,&quot;    // per OpenGL standard cone angle is 90 or less for a spot light&quot;,`    if (lightConeAngle${e} &lt;= 90.0)`,&quot;      {&quot;,`      float coneDot = dot(vertLightDirectionVC, lightDirectionVC${e});`,&quot;      // if inside the cone&quot;,`      if (coneDot &gt;= cos(radians(lightConeAngle${e})))`,&quot;        {&quot;,`        attenuation = attenuation * pow(coneDot, lightExponent${e});`,&quot;        }&quot;,&quot;      else&quot;,&quot;        {&quot;,&quot;        attenuation = 0.0;&quot;,&quot;        }&quot;,&quot;      }&quot;,&quot;    }&quot;,&quot;    df = max(0.0, attenuation*dot(normalVCVSOutput, -vertLightDirectionVC));&quot;,`    diffuseL += ((df) * lightColor${e});`,&quot;    if (dot(normalVCVSOutput, vertLightDirectionVC) &lt; 0.0)&quot;,&quot;      {&quot;,`      float sf = sign(df)*attenuation*pow(max(1e-5,\\n                                                           dot(reflect(lightDirectionVC${e},\\n                                                                       normalVCVSOutput),\\n                                                               normalize(-vertexVC.xyz))),\\n                                                       specularPower);`,`    specularL += ((sf) * lightColor${e});`,&quot;    }&quot;]);s=s.concat([&quot;  diffuseL = diffuseL * diffuseColor;&quot;,&quot;  specularL = specularL * specularColor;&quot;,&quot;  gl_FragData[0] = vec4(ambientColor * ambient + diffuseL * diffuse + specularL * specular, opacity);&quot;,&quot;  //VTK::Light::Impl&quot;]),o=vd.substitute(o,&quot;//VTK::Light::Impl&quot;,s,!1).result;break;default:np(&quot;bad light complexity&quot;)}e.Fragment=o},e.replaceShaderNormal=(e,n,r)=&gt;{if(t.lastBoundBO.getReferenceByName(&quot;lastLightComplexity&quot;)&gt;0){let n=e.Vertex,o=e.Geometry,a=e.Fragment;t.lastBoundBO.getCABO().getNormalOffset()?(n=vd.substitute(n,&quot;//VTK::Normal::Dec&quot;,[&quot;attribute vec3 normalMC;&quot;,&quot;uniform mat3 normalMatrix;&quot;,&quot;varying vec3 normalVCVSOutput;&quot;]).result,n=vd.substitute(n,&quot;//VTK::Normal::Impl&quot;,[&quot;normalVCVSOutput = normalMatrix * normalMC;&quot;]).result,o=vd.substitute(o,&quot;//VTK::Normal::Dec&quot;,[&quot;in vec3 normalVCVSOutput[];&quot;,&quot;out vec3 normalVCGSOutput;&quot;]).result,o=vd.substitute(o,&quot;//VTK::Normal::Impl&quot;,[&quot;normalVCGSOutput = normalVCVSOutput[i];&quot;]).result,a=vd.substitute(a,&quot;//VTK::Normal::Dec&quot;,[&quot;varying vec3 normalVCVSOutput;&quot;]).result,a=vd.substitute(a,&quot;//VTK::Normal::Impl&quot;,[&quot;vec3 normalVCVSOutput = normalize(normalVCVSOutput);&quot;,&quot;  if (gl_FrontFacing == false) { normalVCVSOutput = -normalVCVSOutput; }&quot;]).result):t.haveCellNormals?(a=vd.substitute(a,&quot;//VTK::Normal::Dec&quot;,[&quot;uniform mat3 normalMatrix;&quot;,&quot;uniform samplerBuffer textureN;&quot;]).result,a=vd.substitute(a,&quot;//VTK::Normal::Impl&quot;,[&quot;vec3 normalVCVSOutput = normalize(normalMatrix *&quot;,&quot;    texelFetchBuffer(textureN, gl_PrimitiveID + PrimitiveIDOffset).xyz);&quot;,&quot;  if (gl_FrontFacing == false) { normalVCVSOutput = -normalVCVSOutput; }&quot;]).result):t.lastBoundBO.getOpenGLMode(r.getProperty().getRepresentation())===t.context.LINES?(a=vd.substitute(a,&quot;//VTK::UniformFlow::Impl&quot;,[&quot;  vec3 fdx = dFdx(vertexVC.xyz);&quot;,&quot;  vec3 fdy = dFdy(vertexVC.xyz);&quot;,&quot;  //VTK::UniformFlow::Impl&quot;]).result,a=vd.substitute(a,&quot;//VTK::Normal::Impl&quot;,[&quot;vec3 normalVCVSOutput;&quot;,&quot;  if (abs(fdx.x) &gt; 0.0)&quot;,&quot;    { fdx = normalize(fdx); normalVCVSOutput = normalize(cross(vec3(fdx.y, -fdx.x, 0.0), fdx)); }&quot;,&quot;  else { fdy = normalize(fdy); normalVCVSOutput = normalize(cross(vec3(fdy.y, -fdy.x, 0.0), fdy));}&quot;]).result):(a=vd.substitute(a,&quot;//VTK::Normal::Dec&quot;,[&quot;uniform int cameraParallel;&quot;]).result,a=vd.substitute(a,&quot;//VTK::UniformFlow::Impl&quot;,[&quot;  vec3 fdx = dFdx(vertexVC.xyz);&quot;,&quot;  vec3 fdy = dFdy(vertexVC.xyz);&quot;,&quot;  //VTK::UniformFlow::Impl&quot;]).result,a=vd.substitute(a,&quot;//VTK::Normal::Impl&quot;,[&quot;  fdx = normalize(fdx);&quot;,&quot;  fdy = normalize(fdy);&quot;,&quot;  vec3 normalVCVSOutput = normalize(cross(fdx,fdy));&quot;,&quot;  if (cameraParallel == 1 &amp;&amp; normalVCVSOutput.z &lt; 0.0) { normalVCVSOutput = -1.0*normalVCVSOutput; }&quot;,&quot;  if (cameraParallel == 0 &amp;&amp; dot(normalVCVSOutput,vertexVC.xyz) &gt; 0.0) { normalVCVSOutput = -1.0*normalVCVSOutput; }&quot;]).result),e.Vertex=n,e.Geometry=o,e.Fragment=a}},e.replaceShaderPositionVC=(e,n,r)=&gt;{t.lastBoundBO.replaceShaderPositionVC(e,n,r);let o=e.Vertex,a=e.Geometry,i=e.Fragment;t.lastBoundBO.getReferenceByName(&quot;lastLightComplexity&quot;)&gt;0?(o=vd.substitute(o,&quot;//VTK::PositionVC::Dec&quot;,[&quot;varying vec4 vertexVCVSOutput;&quot;]).result,o=vd.substitute(o,&quot;//VTK::PositionVC::Impl&quot;,[&quot;vertexVCVSOutput = MCVCMatrix * vertexMC;&quot;,&quot;  gl_Position = MCPCMatrix * vertexMC;&quot;]).result,o=vd.substitute(o,&quot;//VTK::Camera::Dec&quot;,[&quot;uniform mat4 MCPCMatrix;&quot;,&quot;uniform mat4 MCVCMatrix;&quot;]).result,a=vd.substitute(a,&quot;//VTK::PositionVC::Dec&quot;,[&quot;in vec4 vertexVCVSOutput[];&quot;,&quot;out vec4 vertexVCGSOutput;&quot;]).result,a=vd.substitute(a,&quot;//VTK::PositionVC::Impl&quot;,[&quot;vertexVCGSOutput = vertexVCVSOutput[i];&quot;]).result,i=vd.substitute(i,&quot;//VTK::PositionVC::Dec&quot;,[&quot;varying vec4 vertexVCVSOutput;&quot;]).result,i=vd.substitute(i,&quot;//VTK::PositionVC::Impl&quot;,[&quot;vec4 vertexVC = vertexVCVSOutput;&quot;]).result):(o=vd.substitute(o,&quot;//VTK::Camera::Dec&quot;,[&quot;uniform mat4 MCPCMatrix;&quot;]).result,o=vd.substitute(o,&quot;//VTK::PositionVC::Impl&quot;,[&quot;  gl_Position = MCPCMatrix * vertexMC;&quot;]).result),e.Vertex=o,e.Geometry=a,e.Fragment=i},e.replaceShaderTCoord=(e,n,r)=&gt;{if(t.lastBoundBO.getCABO().getTCoordOffset()){let n=e.Vertex,r=e.Geometry,o=e.Fragment;if(t.drawingEdges)return;n=vd.substitute(n,&quot;//VTK::TCoord::Impl&quot;,&quot;tcoordVCVSOutput = tcoordMC;&quot;).result;const a=t.openGLActor.getActiveTextures();let i=2,s=2;if(a&amp;&amp;a.length&gt;0&amp;&amp;(i=a[0].getComponents(),a[0].getTarget()===t.context.TEXTURE_CUBE_MAP&amp;&amp;(s=3)),t.renderable.getColorTextureMap()&amp;&amp;(i=t.renderable.getColorTextureMap().getPointData().getScalars().getNumberOfComponents(),s=2),2===s){if(n=vd.substitute(n,&quot;//VTK::TCoord::Dec&quot;,&quot;attribute vec2 tcoordMC; varying vec2 tcoordVCVSOutput;&quot;).result,r=vd.substitute(r,&quot;//VTK::TCoord::Dec&quot;,[&quot;in vec2 tcoordVCVSOutput[];&quot;,&quot;out vec2 tcoordVCGSOutput;&quot;]).result,r=vd.substitute(r,&quot;//VTK::TCoord::Impl&quot;,&quot;tcoordVCGSOutput = tcoordVCVSOutput[i];&quot;).result,o=vd.substitute(o,&quot;//VTK::TCoord::Dec&quot;,[&quot;varying vec2 tcoordVCVSOutput;&quot;,&quot;uniform sampler2D texture1;&quot;]).result,a&amp;&amp;a.length&gt;=1)switch(i){case 1:o=vd.substitute(o,&quot;//VTK::TCoord::Impl&quot;,[&quot;  vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);&quot;,&quot;  ambientColor = ambientColor*tcolor.r;&quot;,&quot;  diffuseColor = diffuseColor*tcolor.r;&quot;]).result;break;case 2:o=vd.substitute(o,&quot;//VTK::TCoord::Impl&quot;,[&quot;  vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);&quot;,&quot;  ambientColor = ambientColor*tcolor.r;&quot;,&quot;  diffuseColor = diffuseColor*tcolor.r;&quot;,&quot;  opacity = opacity * tcolor.g;&quot;]).result;break;default:o=vd.substitute(o,&quot;//VTK::TCoord::Impl&quot;,[&quot;  vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);&quot;,&quot;  ambientColor = ambientColor*tcolor.rgb;&quot;,&quot;  diffuseColor = diffuseColor*tcolor.rgb;&quot;,&quot;  opacity = opacity * tcolor.a;&quot;]).result}}else switch(n=vd.substitute(n,&quot;//VTK::TCoord::Dec&quot;,&quot;attribute vec3 tcoordMC; varying vec3 tcoordVCVSOutput;&quot;).result,r=vd.substitute(r,&quot;//VTK::TCoord::Dec&quot;,[&quot;in vec3 tcoordVCVSOutput[];&quot;,&quot;out vec3 tcoordVCGSOutput;&quot;]).result,r=vd.substitute(r,&quot;//VTK::TCoord::Impl&quot;,&quot;tcoordVCGSOutput = tcoordVCVSOutput[i];&quot;).result,o=vd.substitute(o,&quot;//VTK::TCoord::Dec&quot;,[&quot;varying vec3 tcoordVCVSOutput;&quot;,&quot;uniform samplerCube texture1;&quot;]).result,i){case 1:o=vd.substitute(o,&quot;//VTK::TCoord::Impl&quot;,[&quot;  vec4 tcolor = textureCube(texture1, tcoordVCVSOutput);&quot;,&quot;  ambientColor = ambientColor*tcolor.r;&quot;,&quot;  diffuseColor = diffuseColor*tcolor.r;&quot;]).result;break;case 2:o=vd.substitute(o,&quot;//VTK::TCoord::Impl&quot;,[&quot;  vec4 tcolor = textureCube(texture1, tcoordVCVSOutput);&quot;,&quot;  ambientColor = ambientColor*tcolor.r;&quot;,&quot;  diffuseColor = diffuseColor*tcolor.r;&quot;,&quot;  opacity = opacity * tcolor.g;&quot;]).result;break;default:o=vd.substitute(o,&quot;//VTK::TCoord::Impl&quot;,[&quot;  vec4 tcolor = textureCube(texture1, tcoordVCVSOutput);&quot;,&quot;  ambientColor = ambientColor*tcolor.rgb;&quot;,&quot;  diffuseColor = diffuseColor*tcolor.rgb;&quot;,&quot;  opacity = opacity * tcolor.a;&quot;]).result}e.Vertex=n,e.Geometry=r,e.Fragment=o}},e.replaceShaderClip=(e,n,r)=&gt;{let o=e.Vertex,a=e.Fragment;if(t.renderable.getNumberOfClippingPlanes()){const e=t.renderable.getNumberOfClippingPlanes();o=vd.substitute(o,&quot;//VTK::Clip::Dec&quot;,[&quot;uniform int numClipPlanes;&quot;,`uniform vec4 clipPlanes[${e}];`,`varying float clipDistancesVSOutput[${e}];`]).result,o=vd.substitute(o,&quot;//VTK::Clip::Impl&quot;,[`for (int planeNum = 0; planeNum &lt; ${e}; planeNum++)`,&quot;    {&quot;,&quot;    if (planeNum &gt;= numClipPlanes)&quot;,&quot;        {&quot;,&quot;        break;&quot;,&quot;        }&quot;,&quot;    clipDistancesVSOutput[planeNum] = dot(clipPlanes[planeNum], vertexMC);&quot;,&quot;    }&quot;]).result,a=vd.substitute(a,&quot;//VTK::Clip::Dec&quot;,[&quot;uniform int numClipPlanes;&quot;,`varying float clipDistancesVSOutput[${e}];`]).result,a=vd.substitute(a,&quot;//VTK::Clip::Impl&quot;,[`for (int planeNum = 0; planeNum &lt; ${e}; planeNum++)`,&quot;    {&quot;,&quot;    if (planeNum &gt;= numClipPlanes)&quot;,&quot;        {&quot;,&quot;        break;&quot;,&quot;        }&quot;,&quot;    if (clipDistancesVSOutput[planeNum] &lt; 0.0) discard;&quot;,&quot;    }&quot;]).result}e.Vertex=o,e.Fragment=a},e.getCoincidentParameters=(e,n)=&gt;{let r={factor:0,offset:0};const o=n.getProperty();if(t.renderable.getResolveCoincidentTopology()==Pl.PolygonOffset||o.getEdgeVisibility()&amp;&amp;o.getRepresentation()===Zd.SURFACE){const e=t.lastBoundBO.getPrimitiveType();e===Jd.Points||o.getRepresentation()===Zd.POINTS?r=t.renderable.getCoincidentTopologyPointOffsetParameter():e===Jd.Lines||o.getRepresentation()===Zd.WIREFRAME?r=t.renderable.getCoincidentTopologyLineOffsetParameters():e!==Jd.Tris&amp;&amp;e!==Jd.TriStrips||(r=t.renderable.getCoincidentTopologyPolygonOffsetParameters()),e!==Jd.TrisEdges&amp;&amp;e!==Jd.TriStripsEdges||(r=t.renderable.getCoincidentTopologyPolygonOffsetParameters(),r.factor/=2,r.offset/=2)}const a=t._openGLRenderer.getSelector();return a&amp;&amp;a.getFieldAssociation()===Yd.FIELD_ASSOCIATION_POINTS&amp;&amp;(r.offset-=2),r},e.replaceShaderPicking=(e,n,r)=&gt;{let o=e.Fragment,a=e.Vertex;if(o=vd.substitute(o,&quot;//VTK::Picking::Dec&quot;,[&quot;uniform int picking;&quot;,&quot;//VTK::Picking::Dec&quot;]).result,t._openGLRenderer.getSelector()){switch(t.lastSelectionState!==Bl.ID_LOW24&amp;&amp;t.lastSelectionState!==Bl.ID_HIGH24||(a=vd.substitute(a,&quot;//VTK::Picking::Dec&quot;,[&quot;flat out int vertexIDVSOutput;\\n&quot;,&quot;uniform int VertexIDOffset;\\n&quot;]).result,a=vd.substitute(a,&quot;//VTK::Picking::Impl&quot;,&quot;  vertexIDVSOutput = gl_VertexID + VertexIDOffset;\\n&quot;).result,o=vd.substitute(o,&quot;//VTK::Picking::Dec&quot;,&quot;flat in int vertexIDVSOutput;\\n&quot;).result,o=vd.substitute(o,&quot;//VTK::Picking::Impl&quot;,[&quot;  int idx = vertexIDVSOutput;&quot;,&quot;//VTK::Picking::Impl&quot;]).result),t.lastSelectionState){case Bl.ID_LOW24:o=vd.substitute(o,&quot;//VTK::Picking::Impl&quot;,&quot;  gl_FragData[0] = vec4(float(idx%256)/255.0, float((idx/256)%256)/255.0, float((idx/65536)%256)/255.0, 1.0);&quot;).result;break;case Bl.ID_HIGH24:o=vd.substitute(o,&quot;//VTK::Picking::Impl&quot;,&quot;  gl_FragData[0] = vec4(float((idx/16777216)%256)/255.0, 0.0, 0.0, 1.0);&quot;).result;break;default:o=vd.substitute(o,&quot;//VTK::Picking::Dec&quot;,&quot;uniform vec3 mapperIndex;&quot;).result,o=vd.substitute(o,&quot;//VTK::Picking::Impl&quot;,&quot;  gl_FragData[0] = picking != 0 ? vec4(mapperIndex,1.0) : gl_FragData[0];&quot;).result}e.Fragment=o,e.Vertex=a}},e.replaceShaderValues=(n,r,o)=&gt;{if(e.replaceShaderColor(n,r,o),e.replaceShaderNormal(n,r,o),e.replaceShaderLight(n,r,o),e.replaceShaderTCoord(n,r,o),e.replaceShaderPicking(n,r,o),e.replaceShaderClip(n,r,o),e.replaceShaderCoincidentOffset(n,r,o),e.replaceShaderPositionVC(n,r,o),t.haveSeenDepthRequest){let e=n.Fragment;e=vd.substitute(e,&quot;//VTK::ZBuffer::Dec&quot;,&quot;uniform int depthRequest;&quot;).result,e=vd.substitute(e,&quot;//VTK::ZBuffer::Impl&quot;,[&quot;if (depthRequest == 1) {&quot;,&quot;float iz = floor(gl_FragCoord.z*65535.0 + 0.1);&quot;,&quot;float rf = floor(iz/256.0)/255.0;&quot;,&quot;float gf = mod(iz,256.0)/255.0;&quot;,&quot;gl_FragData[0] = vec4(rf, gf, 0.0, 1.0); }&quot;]).result,n.Fragment=e}},e.getNeedToRebuildShaders=(e,n,r)=&gt;{let o=0,a=0;const i=e.getPrimitiveType(),s=t.currentInput;let l=!1;const c=s.getPointData().getNormals(),u=s.getCellData().getNormals(),d=r.getProperty().getInterpolation()===Qd.FLAT,p=r.getProperty().getRepresentation(),f=e.getOpenGLMode(p,i);if(f===t.context.TRIANGLES||u&amp;&amp;!c||!d&amp;&amp;c?l=!0:d||f!==t.context.LINES||(l=!0),r.getProperty().getLighting()&amp;&amp;l){o=0;const e=n.getLightsByReference();for(let t=0;t&lt;e.length;++t){const n=e[t];n.getSwitch()&gt;0&amp;&amp;(a++,0===o&amp;&amp;(o=1)),1===o&amp;&amp;(a&gt;1||1!==n.getIntensity()||!n.lightTypeIsHeadLight())&amp;&amp;(o=2),o&lt;3&amp;&amp;n.getPositional()&amp;&amp;(o=3)}}let g=!1;const m=t.lastBoundBO.getReferenceByName(&quot;lastLightComplexity&quot;),h=t.lastBoundBO.getReferenceByName(&quot;lastLightCount&quot;);return m===o&amp;&amp;h===a||(t.lastBoundBO.set({lastLightComplexity:o},!0),t.lastBoundBO.set({lastLightCount:a},!0),g=!0),(!t.currentRenderPass&amp;&amp;t.lastRenderPassShaderReplacement||t.currentRenderPass&amp;&amp;t.currentRenderPass.getShaderReplacement()!==t.lastRenderPassShaderReplacement)&amp;&amp;(g=!0),!!(t.lastHaveSeenDepthRequest!==t.haveSeenDepthRequest||e.getShaderSourceTime().getMTime()&lt;t.renderable.getMTime()||e.getShaderSourceTime().getMTime()&lt;t.currentInput.getMTime()||e.getShaderSourceTime().getMTime()&lt;t.selectionStateChanged.getMTime()||g)&amp;&amp;(t.lastHaveSeenDepthRequest=t.haveSeenDepthRequest,!0)},e.invokeShaderCallbacks=(e,n,r)=&gt;{const o=t.renderable.getViewSpecificProperties().ShadersCallbacks;o&amp;&amp;o.forEach((t=&gt;{t.callback(t.userData,e,n,r)}))},e.setMapperShaderParameters=(n,r,o)=&gt;{if(n.getProgram().isUniformUsed(&quot;PrimitiveIDOffset&quot;)&amp;&amp;n.getProgram().setUniformi(&quot;PrimitiveIDOffset&quot;,t.primitiveIDOffset),n.getProgram().isUniformUsed(&quot;VertexIDOffset&quot;)&amp;&amp;n.getProgram().setUniformi(&quot;VertexIDOffset&quot;,t.vertexIDOffset),n.getCABO().getElementCount()&amp;&amp;(t.VBOBuildTime.getMTime()&gt;n.getAttributeUpdateTime().getMTime()||n.getShaderSourceTime().getMTime()&gt;n.getAttributeUpdateTime().getMTime())){const e=t.lastBoundBO.getReferenceByName(&quot;lastLightComplexity&quot;);n.getProgram().isAttributeUsed(&quot;vertexMC&quot;)&amp;&amp;(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),&quot;vertexMC&quot;,n.getCABO().getVertexOffset(),n.getCABO().getStride(),t.context.FLOAT,3,!1)||np(&quot;Error setting vertexMC in shader VAO.&quot;)),n.getProgram().isAttributeUsed(&quot;normalMC&quot;)&amp;&amp;n.getCABO().getNormalOffset()&amp;&amp;e&gt;0?n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),&quot;normalMC&quot;,n.getCABO().getNormalOffset(),n.getCABO().getStride(),t.context.FLOAT,3,!1)||np(&quot;Error setting normalMC in shader VAO.&quot;):n.getVAO().removeAttributeArray(&quot;normalMC&quot;),t.renderable.getCustomShaderAttributes().forEach(((e,r)=&gt;{n.getProgram().isAttributeUsed(`${e}MC`)&amp;&amp;(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),`${e}MC`,n.getCABO().getCustomData()[r].offset,n.getCABO().getStride(),t.context.FLOAT,n.getCABO().getCustomData()[r].components,!1)||np(`Error setting ${e}MC in shader VAO.`))})),n.getProgram().isAttributeUsed(&quot;tcoordMC&quot;)&amp;&amp;n.getCABO().getTCoordOffset()?n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),&quot;tcoordMC&quot;,n.getCABO().getTCoordOffset(),n.getCABO().getStride(),t.context.FLOAT,n.getCABO().getTCoordComponents(),!1)||np(&quot;Error setting tcoordMC in shader VAO.&quot;):n.getVAO().removeAttributeArray(&quot;tcoordMC&quot;),n.getProgram().isAttributeUsed(&quot;scalarColor&quot;)&amp;&amp;n.getCABO().getColorComponents()?n.getVAO().addAttributeArray(n.getProgram(),n.getCABO().getColorBO(),&quot;scalarColor&quot;,n.getCABO().getColorOffset(),n.getCABO().getColorBOStride(),t.context.UNSIGNED_BYTE,4,!0)||np(&quot;Error setting scalarColor in shader VAO.&quot;):n.getVAO().removeAttributeArray(&quot;scalarColor&quot;),n.getAttributeUpdateTime().modified()}if(t.renderable.getNumberOfClippingPlanes()){const e=t.renderable.getNumberOfClippingPlanes(),r=[],a=n.getCABO().getCoordShiftAndScaleEnabled()?n.getCABO().getInverseShiftAndScaleMatrix():null,i=a?T(t.tmpMat4,o.getMatrix()):o.getMatrix();a&amp;&amp;(y(i,i),A(i,i,a),y(i,i));for(let n=0;n&lt;e;n++){const e=[];t.renderable.getClippingPlaneInDataCoords(i,n,e);for(let t=0;t&lt;4;t++)r.push(e[t])}n.getProgram().setUniformi(&quot;numClipPlanes&quot;,e),n.getProgram().setUniform4fv(&quot;clipPlanes&quot;,r)}t.internalColorTexture&amp;&amp;n.getProgram().isUniformUsed(&quot;texture1&quot;)&amp;&amp;n.getProgram().setUniformi(&quot;texture1&quot;,t.internalColorTexture.getTextureUnit());const a=t.openGLActor.getActiveTextures();if(a)for(let e=0;e&lt;a.length;++e){const t=a[e].getTextureUnit(),r=`texture${t+1}`;n.getProgram().isUniformUsed(r)&amp;&amp;n.getProgram().setUniformi(r,t)}if(t.haveSeenDepthRequest&amp;&amp;n.getProgram().setUniformi(&quot;depthRequest&quot;,t.renderDepth?1:0),n.getProgram().isUniformUsed(&quot;coffset&quot;)){const t=e.getCoincidentParameters(r,o);n.getProgram().setUniformf(&quot;coffset&quot;,t.offset),n.getProgram().isUniformUsed(&quot;cfactor&quot;)&amp;&amp;n.getProgram().setUniformf(&quot;cfactor&quot;,t.factor)}n.setMapperShaderParameters(r,o,t._openGLRenderer.getTiledSizeAndOrigin());const i=t._openGLRenderer.getSelector();n.getProgram().setUniform3fArray(&quot;mapperIndex&quot;,i?i.getPropColorValue():[0,0,0]),n.getProgram().setUniformi(&quot;picking&quot;,i?i.getCurrentPass()+1:0)},e.setLightingShaderParameters=(e,n,r)=&gt;{const o=t.lastBoundBO.getReferenceByName(&quot;lastLightComplexity&quot;);if(o&lt;2)return;const a=e.getProgram();let i=0;const s=n.getLightsByReference();for(let e=0;e&lt;s.length;++e){const r=s[e];if(r.getSwitch()&gt;0){const e=r.getColorByReference(),o=r.getIntensity();t.lightColor[0]=e[0]*o,t.lightColor[1]=e[1]*o,t.lightColor[2]=e[2]*o;const s=r.getDirection(),l=n.getActiveCamera().getViewMatrix(),c=[...s];r.lightTypeIsSceneLight()&amp;&amp;(c[0]=l[0]*s[0]+l[1]*s[1]+l[2]*s[2],c[1]=l[4]*s[0]+l[5]*s[1]+l[6]*s[2],c[2]=l[8]*s[0]+l[9]*s[1]+l[10]*s[2],jo(c)),t.lightDirection[0]=c[0],t.lightDirection[1]=c[1],t.lightDirection[2]=c[2],jo(t.lightDirection),a.setUniform3fArray(`lightColor${i}`,t.lightColor),a.setUniform3fArray(`lightDirectionVC${i}`,t.lightDirection),i++}}if(o&lt;3)return;const l=n.getActiveCamera().getViewMatrix();y(l,l),i=0;for(let e=0;e&lt;s.length;++e){const t=s[e];if(t.getSwitch()&gt;0){const e=t.getTransformedPosition(),n=new Float64Array(3);oe(n,e,l),a.setUniform3fArray(`lightAttenuation${i}`,t.getAttenuationValuesByReference()),a.setUniformi(`lightPositional${i}`,t.getPositional()),a.setUniformf(`lightExponent${i}`,t.getExponent()),a.setUniformf(`lightConeAngle${i}`,t.getConeAngle()),a.setUniform3fArray(`lightPositionVC${i}`,[n[0],n[1],n[2]]),i++}}},e.setCameraShaderParameters=(e,r,o)=&gt;{const a=e.getProgram(),i=t.openGLCamera.getKeyMatrices(r),s=r.getActiveCamera(),l=t.openGLCamera.getKeyMatrixTime().getMTime(),c=a.getLastCameraMTime(),u=e.getCABO().getCoordShiftAndScaleEnabled()?e.getCABO().getInverseShiftAndScaleMatrix():null,d=o.getIsIdentity(),p=d?{mcwc:null,normalMatrix:null}:t.openGLActor.getKeyMatrices();if(o.getCoordinateSystem()===ap.DISPLAY){const e=t._openGLRenderer.getTiledSizeAndOrigin();x(t.tmpMat4),t.tmpMat4[0]=2/e.usize,t.tmpMat4[12]=-1,t.tmpMat4[5]=2/e.vsize,t.tmpMat4[13]=-1,A(t.tmpMat4,t.tmpMat4,u),a.setUniformMatrix(&quot;MCPCMatrix&quot;,t.tmpMat4)}else a.setUniformMatrix(&quot;MCPCMatrix&quot;,n([i.wcpc,p.mcwc,u],H,t.tmpMat4));a.isUniformUsed(&quot;MCVCMatrix&quot;)&amp;&amp;a.setUniformMatrix(&quot;MCVCMatrix&quot;,n([i.wcvc,p.mcwc,u],H,t.tmpMat4)),a.isUniformUsed(&quot;normalMatrix&quot;)&amp;&amp;a.setUniformMatrix3x3(&quot;normalMatrix&quot;,n([i.normalMatrix,p.normalMatrix],h,t.tmpMat3)),c!==l&amp;&amp;(a.isUniformUsed(&quot;cameraParallel&quot;)&amp;&amp;a.setUniformi(&quot;cameraParallel&quot;,s.getParallelProjection()),a.setLastCameraMTime(l)),d||a.setLastCameraMTime(0)},e.setPropertyShaderParameters=(e,n,r)=&gt;{const o=e.getProgram();let a=r.getProperty();let i=t.drawingEdges||a.getRepresentation()===Zd.WIREFRAME?a.getEdgeOpacity():a.getOpacity(),s=t.drawingEdges?a.getEdgeColorByReference():a.getAmbientColorByReference(),l=t.drawingEdges?a.getEdgeColorByReference():a.getDiffuseColorByReference(),c=t.drawingEdges?1:a.getAmbient(),u=t.drawingEdges?0:a.getDiffuse(),d=t.drawingEdges?0:a.getSpecular();const p=a.getSpecularPower();o.setUniformf(&quot;opacityUniform&quot;,i),o.setUniform3fArray(&quot;ambientColorUniform&quot;,s),o.setUniform3fArray(&quot;diffuseColorUniform&quot;,l),o.setUniformf(&quot;ambient&quot;,c),o.setUniformf(&quot;diffuse&quot;,u);const f=t.lastBoundBO.getReferenceByName(&quot;lastLightComplexity&quot;);if(f&lt;1)return;let g=a.getSpecularColorByReference();if(o.setUniform3fArray(&quot;specularColorUniform&quot;,g),o.setUniformf(&quot;specularPowerUniform&quot;,p),o.setUniformf(&quot;specular&quot;,d),o.isUniformUsed(&quot;ambientIntensityBF&quot;)){if(a=r.getBackfaceProperty(),i=a.getOpacity(),s=a.getAmbientColor(),c=a.getAmbient(),l=a.getDiffuseColor(),u=a.getDiffuse(),g=a.getSpecularColor(),d=a.getSpecular(),o.setUniformf(&quot;ambientIntensityBF&quot;,c),o.setUniformf(&quot;diffuseIntensityBF&quot;,u),o.setUniformf(&quot;opacityUniformBF&quot;,i),o.setUniform3fArray(&quot;ambientColorUniformBF&quot;,s),o.setUniform3fArray(&quot;diffuseColorUniformBF&quot;,l),f&lt;1)return;o.setUniformf(&quot;specularIntensityBF&quot;,d),o.setUniform3fArray(&quot;specularColorUniformBF&quot;,g),o.setUniformf(&quot;specularPowerUniformBF&quot;,p)}},e.updateMaximumPointCellIds=(e,n)=&gt;{const r=t._openGLRenderer.getSelector();if(!r)return;if(t.selectionWebGLIdsToVTKIds?.points?.length){const e=t.selectionWebGLIdsToVTKIds.points.length;r.setMaximumPointId(e-1)}if(t.selectionWebGLIdsToVTKIds?.cells?.length){const e=t.selectionWebGLIdsToVTKIds.cells.length;r.setMaximumCellId(e-1)}r.getFieldAssociation()===Yd.FIELD_ASSOCIATION_POINTS&amp;&amp;(t.pointPicking=!0)},e.renderPieceStart=(n,r)=&gt;{t.primitiveIDOffset=0,t.vertexIDOffset=0;const o=function(e){const t=e.getSelector();return t?t.getCurrentPass():Bl.MIN_KNOWN_PASS-1}(t._openGLRenderer);t.lastSelectionState!==o&amp;&amp;(t.selectionStateChanged.modified(),t.lastSelectionState=o),t._openGLRenderer.getSelector()&amp;&amp;t._openGLRenderer.getSelector().renderProp(r),e.updateBufferObjects(n,r),t.renderable.getColorTextureMap()&amp;&amp;t.internalColorTexture.activate(),t.lastBoundBO=null},e.renderPieceDraw=(n,r)=&gt;{const o=r.getProperty().getRepresentation(),a=r.getProperty().getEdgeVisibility()&amp;&amp;o===Zd.SURFACE,i=t._openGLRenderer.getSelector(),s=i&amp;&amp;i.getFieldAssociation()===Yd.FIELD_ASSOCIATION_POINTS&amp;&amp;(t.lastSelectionState===Bl.ID_LOW24||t.lastSelectionState===Bl.ID_HIGH24);for(let i=Jd.Start;i&lt;Jd.End;i++){t.primitives[i].setPointPicking(s);t.primitives[i].getCABO().getElementCount()&amp;&amp;(t.drawingEdges=a&amp;&amp;(i===Jd.TrisEdges||i===Jd.TriStripsEdges),t.drawingEdges&amp;&amp;(t.renderDepth||t.lastSelectionState&gt;=0)||(t.lastBoundBO=t.primitives[i],t.primitiveIDOffset+=t.primitives[i].drawArrays(n,r,o,e),t.vertexIDOffset+=t.primitives[i].getCABO().getElementCount()))}},e.renderPieceFinish=(e,n)=&gt;{t.LastBoundBO&amp;&amp;t.LastBoundBO.getVAO().release(),t.renderable.getColorTextureMap()&amp;&amp;t.internalColorTexture.deactivate()},e.renderPiece=(n,r)=&gt;{if(e.invokeEvent(rp),t.renderable.getStatic()||t.renderable.update(),t.currentInput=t.renderable.getInputData(),e.invokeEvent(op),!t.currentInput)return void np(&quot;No input!&quot;);if(!t.currentInput.getPoints||!t.currentInput.getPoints().getNumberOfValues())return;const o=t.context,a=r.getProperty().getBackfaceCulling(),i=r.getProperty().getFrontfaceCulling();a||i?i?(t._openGLRenderWindow.enableCullFace(),o.cullFace(o.FRONT)):(t._openGLRenderWindow.enableCullFace(),o.cullFace(o.BACK)):t._openGLRenderWindow.disableCullFace(),e.renderPieceStart(n,r),e.renderPieceDraw(n,r),e.renderPieceFinish(n,r)},e.updateBufferObjects=(t,n)=&gt;{e.getNeedToRebuildBufferObjects(t,n)&amp;&amp;e.buildBufferObjects(t,n),e.updateMaximumPointCellIds()},e.getNeedToRebuildBufferObjects=(n,r)=&gt;{const o=t.VBOBuildTime.getMTime();return o&lt;e.getMTime()||o&lt;t.renderable.getMTime()||o&lt;r.getMTime()||o&lt;t.currentInput.getMTime()},e.buildBufferObjects=(e,n)=&gt;{const r=t.currentInput;if(null===r)return;t.renderable.mapScalars(r,1);const o=t.renderable.getColorMapColors();t.haveCellScalars=!1;const a=t.renderable.getScalarMode();t.renderable.getScalarVisibility()&amp;&amp;(a!==$d.USE_CELL_DATA&amp;&amp;a!==$d.USE_CELL_FIELD_DATA&amp;&amp;a!==$d.USE_FIELD_DATA&amp;&amp;r.getPointData().getScalars()||a===$d.USE_POINT_FIELD_DATA||!o||(t.haveCellScalars=!0));let i=n.getProperty().getInterpolation()!==Qd.FLAT?r.getPointData().getNormals():null;null===i&amp;&amp;r.getCellData().getNormals()&amp;&amp;(t.haveCellNormals=!0,i=r.getCellData().getNormals());const s=n.getProperty().getRepresentation();let l=r.getPointData().getTCoords();t.openGLActor.getActiveTextures()||(l=null);let c=!1;if(t.renderable.getColorCoordinates()){l=t.renderable.getColorCoordinates(),c=t.renderable.getAreScalarsMappedFromCells(),t.internalColorTexture||(t.internalColorTexture=Hd.newInstance({resizable:!0}));const e=t.internalColorTexture;e.setMinificationFilter(ep.NEAREST),e.setMagnificationFilter(ep.NEAREST),e.setWrapS(tp.CLAMP_TO_EDGE),e.setWrapT(tp.CLAMP_TO_EDGE),e.setOpenGLRenderWindow(t._openGLRenderWindow);const n=t.renderable.getColorTextureMap(),r=n.getExtent(),o=n.getPointData().getScalars();e.create2DFromRaw({width:r[1]-r[0]+1,height:r[3]-r[2]+1,numComps:o.getNumberOfComponents(),dataType:o.getDataType(),data:o.getData()}),e.activate(),e.sendParameters(),e.deactivate()}const u=t.renderable.getCustomShaderAttributes().map((e=&gt;r.getPointData().getArrayByName(e))),d=`${r.getMTime()}A${s}B${r.getMTime()}C${i?i.getMTime():1}D${o?o.getMTime():1}E${n.getProperty().getEdgeVisibility()}F${l?l.getMTime():1}G${u.map((e=&gt;e.getMTime())).join(&quot;,&quot;)}`;if(t.VBOBuildString!==d){const e={points:r.getPoints(),normals:i,tcoords:l,colors:o,cellOffset:0,vertexOffset:0,useTCoordsPerCell:c,haveCellScalars:t.haveCellScalars,haveCellNormals:t.haveCellNormals,customAttributes:u};t.renderable.getPopulateSelectionSettings()&amp;&amp;(t.selectionWebGLIdsToVTKIds={points:null,cells:null});const a=[{inRep:&quot;verts&quot;,cells:r.getVerts()},{inRep:&quot;lines&quot;,cells:r.getLines()},{inRep:&quot;polys&quot;,cells:r.getPolys()},{inRep:&quot;strips&quot;,cells:r.getStrips()},{inRep:&quot;polys&quot;,cells:r.getPolys()},{inRep:&quot;strips&quot;,cells:r.getStrips()}],p=n.getProperty().getEdgeVisibility()&amp;&amp;s===Zd.SURFACE;for(let n=Jd.Start;n&lt;Jd.End;n++)n!==Jd.TrisEdges&amp;&amp;n!==Jd.TriStripsEdges?(e.cellOffset+=t.primitives[n].getCABO().createVBO(a[n].cells,a[n].inRep,s,e,t.selectionWebGLIdsToVTKIds),e.vertexOffset+=t.primitives[n].getCABO().getElementCount()):p?t.primitives[n].getCABO().createVBO(a[n].cells,a[n].inRep,Zd.WIREFRAME,{...e,tcoords:null,colors:null,haveCellScalars:!1,haveCellNormals:!1}):t.primitives[n].releaseGraphicsResources();t.renderable.getPopulateSelectionSettings()&amp;&amp;t.renderable.setSelectionWebGLIdsToVTKIds(t.selectionWebGLIdsToVTKIds),t.VBOBuildString=d}t.VBOBuildTime.modified()},e.getAllocatedGPUMemoryInBytes=()=&gt;{let e=0;return t.primitives.forEach((t=&gt;{e+=t.getAllocatedGPUMemoryInBytes()})),e}}const sp={context:null,VBOBuildTime:0,VBOBuildString:null,primitives:null,primTypes:null,shaderRebuildString:null,tmpMat4:null,ambientColor:[],diffuseColor:[],specularColor:[],lightColor:[],lightDirection:[],lastHaveSeenDepthRequest:!1,haveSeenDepthRequest:!1,lastSelectionState:Bl.MIN_KNOWN_PASS-1,selectionStateChanged:null,selectionWebGLIdsToVTKIds:null,pointPicking:!1};function lp(e,t,n={}){Object.assign(t,sp,n),pn.extend(e,t,n),qd.implementReplaceShaderCoincidentOffset(e,t,n),qd.implementBuildShadersWithReplacements(e,t,n),t.primitives=[],t.primTypes=Jd,t.tmpMat3=c(new Float64Array(9)),t.tmpMat4=x(new Float64Array(16));for(let e=Jd.Start;e&lt;Jd.End;e++)t.primitives[e]=Sd.newInstance(),t.primitives[e].setPrimitiveType(e),t.primitives[e].set({lastLightComplexity:0,lastLightCount:0,lastSelectionPass:!1},!0);Gt(e,t,[&quot;context&quot;]),t.VBOBuildTime={},Vt(t.VBOBuildTime,{mtime:0}),t.selectionStateChanged={},Vt(t.selectionStateChanged,{mtime:0}),ip(e,t)}const cp=Xt(lp,&quot;vtkOpenGLPolyDataMapper&quot;);var up={newInstance:cp,extend:lp};vn(&quot;vtkMapper&quot;,cp);const dp=1,{primTypes:pp}=Sd,{Filter:fp,Wrap:gp}=Hd,{vtkErrorMacro:mp}=ln,hp={type:&quot;StartEvent&quot;},vp={type:&quot;EndEvent&quot;};const Tp={context:null,VBOBuildTime:0,VBOBuildString:null,primitives:null,primTypes:null,shaderRebuildString:null};const xp=Xt((function(e,t,n={}){Object.assign(t,Tp,n),pn.extend(e,t,n),qd.implementReplaceShaderCoincidentOffset(e,t,n),qd.implementBuildShadersWithReplacements(e,t,n),t.primitives=[],t.primTypes=pp,t.tmpMat4=x(new Float64Array(16));for(let e=pp.Start;e&lt;pp.End;e++)t.primitives[e]=Sd.newInstance(),t.primitives[e].setPrimitiveType(e),t.primitives[e].set({lastLightComplexity:0,lastLightCount:0,lastSelectionPass:!1},!0);Gt(e,t,[&quot;context&quot;]),t.VBOBuildTime={},Vt(t.VBOBuildTime,{mtime:0}),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLPolyDataMapper2D&quot;),e.buildPass=n=&gt;{n&amp;&amp;(t.openGLActor2D=e.getFirstAncestorOfType(&quot;vtkOpenGLActor2D&quot;),t._openGLRenderer=t.openGLActor2D.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;),t._openGLRenderWindow=t._openGLRenderer.getLastAncestorOfType(&quot;vtkOpenGLRenderWindow&quot;),t.openGLCamera=t._openGLRenderer.getViewNodeFor(t._openGLRenderer.getRenderable().getActiveCamera(),t.openGLCamera))},e.overlayPass=t=&gt;{t&amp;&amp;e.render()},e.getShaderTemplate=(e,t,n)=&gt;{e.Vertex=&quot;//VTK::System::Dec\\n\\n/*=========================================================================\\n\\n  Program:   Visualization Toolkit\\n  Module:    vtkPolyData2DVS.glsl\\n\\n  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n  All rights reserved.\\n  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n\\n     This software is distributed WITHOUT ANY WARRANTY; without even\\n     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n     PURPOSE.  See the above copyright notice for more information.\\n\\n=========================================================================*/\\n\\n// all variables that represent positions or directions have a suffix\\n// indicating the coordinate system they are in. The possible values are\\n// MC - Model Coordinates\\n// WC - WC world coordinates\\n// VC - View Coordinates\\n// DC - Display Coordinates\\n\\nin vec4 vertexWC;\\n\\n// frag position in VC\\n//VTK::PositionVC::Dec\\n\\n// material property values\\n//VTK::Color::Dec\\n\\n// Texture coordinates\\n//VTK::TCoord::Dec\\n\\n// Apple Bug\\n//VTK::PrimID::Dec\\n\\nuniform mat4 WCVCMatrix;  // World to view matrix\\n\\nvoid main()\\n{\\n  // Apple Bug\\n  //VTK::PrimID::Impl\\n\\n  gl_Position = WCVCMatrix*vertexWC;\\n\\n  //VTK::TCoord::Impl\\n\\n  //VTK::Color::Impl\\n\\n  //VTK::PositionVC::Impl\\n}\\n&quot;,e.Fragment=&quot;//VTK::System::Dec\\n\\n/*=========================================================================\\n\\n  Program:   Visualization Toolkit\\n  Module:    vtkPolyData2DFS.glsl\\n\\n  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n  All rights reserved.\\n  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n\\n     This software is distributed WITHOUT ANY WARRANTY; without even\\n     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n     PURPOSE.  See the above copyright notice for more information.\\n\\n=========================================================================*/\\n\\nuniform int PrimitiveIDOffset;\\n\\n// Texture coordinates\\n//VTK::TCoord::Dec\\n\\n// Scalar coloring\\n//VTK::Color::Dec\\n\\n// Depth Peeling\\n//VTK::DepthPeeling::Dec\\n\\n// picking support\\n//VTK::Picking::Dec\\n\\n// the output of this shader\\n//VTK::Output::Dec\\n\\n// Apple Bug\\n//VTK::PrimID::Dec\\n\\nvoid main()\\n{\\n  // Apple Bug\\n  //VTK::PrimID::Impl\\n\\n  //VTK::Color::Impl\\n  //VTK::TCoord::Impl\\n\\n  //VTK::DepthPeeling::Impl\\n  //VTK::Picking::Impl\\n\\n  if (gl_FragData[0].a &lt;= 0.0)\\n    {\\n    discard;\\n    }\\n}\\n&quot;,e.Geometry=&quot;&quot;},e.render=()=&gt;{const n=t._openGLRenderWindow.getContext();if(t.context!==n){t.context=n;for(let e=pp.Start;e&lt;pp.End;e++)t.primitives[e].setOpenGLRenderWindow(t._openGLRenderWindow)}const r=t.openGLActor2D.getRenderable(),o=t._openGLRenderer.getRenderable();e.renderPiece(o,r)},e.renderPiece=(n,r)=&gt;{if(e.invokeEvent(hp),t.renderable.getStatic()||t.renderable.update(),t.currentInput=t.renderable.getInputData(),e.invokeEvent(vp),!t.currentInput)return void mp(&quot;No input!&quot;);if(!t.currentInput.getPoints||!t.currentInput.getPoints().getNumberOfValues())return;const o=t.context;t._openGLRenderWindow.enableCullFace(),o.cullFace(o.BACK),e.renderPieceStart(n,r),e.renderPieceDraw(n,r),e.renderPieceFinish(n,r)},e.renderPieceStart=(n,r)=&gt;{t.primitiveIDOffset=0,t._openGLRenderer.getSelector()&amp;&amp;(t._openGLRenderer.getSelector().getCurrentPass(),t._openGLRenderer.getSelector().renderProp(r)),t.renderable.getColorTextureMap()&amp;&amp;t.internalColorTexture.activate(),e.updateBufferObjects(n,r),t.lastBoundBO=null},e.getNeedToRebuildShaders=(e,n,r)=&gt;e.getShaderSourceTime().getMTime()&lt;t.renderable.getMTime()||e.getShaderSourceTime().getMTime()&lt;t.currentInput.getMTime(),e.updateBufferObjects=(t,n)=&gt;{e.getNeedToRebuildBufferObjects(t,n)&amp;&amp;e.buildBufferObjects(t,n)},e.getNeedToRebuildBufferObjects=(n,r)=&gt;{const o=t.VBOBuildTime.getMTime();return!!(o&lt;e.getMTime()||o&lt;t._openGLRenderWindow.getMTime()||o&lt;t.renderable.getMTime()||o&lt;r.getMTime()||o&lt;t.currentInput.getMTime()||t.renderable.getTransformCoordinate()&amp;&amp;o&lt;n.getMTime())},e.buildBufferObjects=(e,n)=&gt;{const r=t.currentInput;if(null===r)return;t.renderable.mapScalars(r,n.getProperty().getOpacity());const o=t.renderable.getColorMapColors(),a=n.getProperty().getRepresentation();let i=r.getPointData().getTCoords();t.openGLActor2D.getActiveTextures()||(i=null);let s=!1;if(t.renderable.getColorCoordinates()){i=t.renderable.getColorCoordinates(),s=t.renderable.getAreScalarsMappedFromCells(),t.internalColorTexture||(t.internalColorTexture=Hd.newInstance({resizable:!0}));const e=t.internalColorTexture;e.setMinificationFilter(fp.NEAREST),e.setMagnificationFilter(fp.NEAREST),e.setWrapS(gp.CLAMP_TO_EDGE),e.setWrapT(gp.CLAMP_TO_EDGE),e.setOpenGLRenderWindow(t._openGLRenderWindow);const n=t.renderable.getColorTextureMap(),r=n.getExtent(),o=n.getPointData().getScalars();e.create2DFromRaw({width:r[1]-r[0]+1,height:r[3]-r[2]+1,numComps:o.getNumberOfComponents(),dataType:o.getDataType(),data:o.getData()}),e.activate(),e.sendParameters(),e.deactivate()}const l=t.renderable.getTransformCoordinate(),c=e.getRenderWindow().getViews()[0].getViewportSize(e),u=`${r.getMTime()}A${a}B${r.getMTime()}C${o?o.getMTime():1}D${i?i.getMTime():1}E${l?e.getMTime():1}F${c}`;if(t.VBOBuildString!==u){let n=r.getPoints();if(l){const t=lc.newInstance(),r=n.getNumberOfPoints();t.setNumberOfPoints(r);const o=[];for(let a=0;a&lt;r;++a){n.getPoint(a,o),l.setValue(o);const r=l.getComputedDoubleViewportValue(e);t.setPoint(a,r[0],r[1],0)}n=t}const c={points:n,tcoords:i,colors:o,cellOffset:0,useTCoordsPerCell:s,haveCellScalars:t.renderable.getAreScalarsMappedFromCells(),customAttributes:t.renderable.getCustomShaderAttributes().map((e=&gt;r.getPointData().getArrayByName(e)))};c.cellOffset+=t.primitives[pp.Points].getCABO().createVBO(r.getVerts(),&quot;verts&quot;,a,c),c.cellOffset+=t.primitives[pp.Lines].getCABO().createVBO(r.getLines(),&quot;lines&quot;,a,c),c.cellOffset+=t.primitives[pp.Tris].getCABO().createVBO(r.getPolys(),&quot;polys&quot;,a,c),c.cellOffset+=t.primitives[pp.TriStrips].getCABO().createVBO(r.getStrips(),&quot;strips&quot;,a,c),t.VBOBuildTime.modified(),t.VBOBuildString=u}},e.renderPieceDraw=(n,r)=&gt;{const o=r.getProperty().getRepresentation();t.context.depthMask(!0);for(let a=pp.Start;a&lt;pp.End;a++)t.primitives[a].getCABO().getElementCount()&amp;&amp;(t.lastBoundBO=t.primitives[a],t.primitiveIDOffset+=t.primitives[a].drawArrays(n,r,o,e))},e.renderPieceFinish=(e,n)=&gt;{t.lastBoundBO&amp;&amp;t.lastBoundBO.getVAO().release(),t.renderable.getColorTextureMap()&amp;&amp;t.internalColorTexture.deactivate()},e.replaceShaderValues=(t,n,r)=&gt;{e.replaceShaderColor(t,n,r),e.replaceShaderTCoord(t,n,r),e.replaceShaderPicking(t,n,r),e.replaceShaderPositionVC(t,n,r)},e.replaceShaderColor=(e,n,r)=&gt;{let o=e.Vertex,a=e.Geometry,i=e.Fragment,s=[&quot;uniform vec3 diffuseColorUniform;&quot;,&quot;uniform float opacityUniform;&quot;],l=[&quot;vec3 diffuseColor = diffuseColorUniform;&quot;,&quot;float opacity = opacityUniform;&quot;];0!==t.lastBoundBO.getCABO().getColorComponents()?(s=s.concat([&quot;varying vec4 vertexColorVSOutput;&quot;]),o=vd.substitute(o,&quot;//VTK::Color::Dec&quot;,[&quot;attribute vec4 scalarColor;&quot;,&quot;varying vec4 vertexColorVSOutput;&quot;]).result,o=vd.substitute(o,&quot;//VTK::Color::Impl&quot;,[&quot;vertexColorVSOutput =  scalarColor;&quot;]).result,a=vd.substitute(a,&quot;//VTK::Color::Dec&quot;,[&quot;in vec4 vertexColorVSOutput[];&quot;,&quot;out vec4 vertexColorGSOutput;&quot;]).result,a=vd.substitute(a,&quot;//VTK::Color::Impl&quot;,[&quot;vertexColorGSOutput = vertexColorVSOutput[i];&quot;]).result,i=vd.substitute(i,&quot;//VTK::Color::Impl&quot;,l.concat([&quot;  diffuseColor = vertexColorVSOutput.rgb;&quot;,&quot;  opacity = opacity*vertexColorVSOutput.a;&quot;])).result):t.renderable.getAreScalarsMappedFromCells()&amp;&amp;(l=l.concat([&quot;  vec4 texColor = texture2D(texture1, tcoordVCVSOutput.st);&quot;,&quot;  diffuseColor = texColor.rgb;&quot;,&quot;  opacity = opacity*texColor.a;&quot;])),l=l.concat([&quot;gl_FragData[0] = vec4(diffuseColor, opacity);&quot;]),i=vd.substitute(i,&quot;//VTK::Color::Dec&quot;,s).result,i=vd.substitute(i,&quot;//VTK::Color::Impl&quot;,l).result,e.Vertex=o,e.Geometry=a,e.Fragment=i},e.replaceShaderTCoord=(e,n,r)=&gt;{if(t.lastBoundBO.getCABO().getTCoordOffset()){let n=e.Vertex,r=e.Geometry,o=e.Fragment;const a=t.lastBoundBO.getCABO().getTCoordComponents();1===a?(n=vd.substitute(n,&quot;//VTK::TCoord::Dec&quot;,[&quot;in float tcoordMC;&quot;,&quot;out float tcoordVCVSOutput;&quot;]).result,n=vd.substitute(n,&quot;//VTK::TCoord::Impl&quot;,[&quot;tcoordVCVSOutput = tcoordMC;&quot;]).result,r=vd.substitute(r,&quot;//VTK::TCoord::Dec&quot;,[&quot;in float tcoordVCVSOutput[];\\n&quot;,&quot;out float tcoordVCGSOutput;&quot;]).result,r=vd.substitute(r,[&quot;//VTK::TCoord::Impl&quot;,&quot;tcoordVCGSOutput = tcoordVCVSOutput[i];&quot;]).result,o=vd.substitute(o,&quot;//VTK::TCoord::Dec&quot;,[&quot;in float tcoordVCVSOutput;&quot;,&quot;uniform sampler2D texture1;&quot;]).result,o=vd.substitute(o,&quot;//VTK::TCoord::Impl&quot;,[&quot;gl_FragData[0] = gl_FragData[0]*texture2D(texture1, vec2(tcoordVCVSOutput,0));&quot;]).result):2===a&amp;&amp;(n=vd.substitute(n,&quot;//VTK::TCoord::Dec&quot;,[&quot;in vec2 tcoordMC;&quot;,&quot;out vec2 tcoordVCVSOutput;&quot;]).result,n=vd.substitute(n,&quot;//VTK::TCoord::Impl&quot;,[&quot;tcoordVCVSOutput = tcoordMC;&quot;]).result,r=vd.substitute(r,&quot;//VTK::TCoord::Dec&quot;,[&quot;in vec2 tcoordVCVSOutput[];\\n&quot;,&quot;out vec2 tcoordVCGSOutput;&quot;]).result,r=vd.substitute(r,&quot;//VTK::TCoord::Impl&quot;,[&quot;tcoordVCGSOutput = tcoordVCVSOutput[i];&quot;]).result,o=vd.substitute(o,&quot;//VTK::TCoord::Dec&quot;,[&quot;in vec2 tcoordVCVSOutput;&quot;,&quot;uniform sampler2D texture1;&quot;]).result,o=vd.substitute(o,&quot;//VTK::TCoord::Impl&quot;,[&quot;gl_FragData[0] = gl_FragData[0]*texture2D(texture1, tcoordVCVSOutput.st);&quot;]).result),t.renderable.getAreScalarsMappedFromCells()&amp;&amp;(r=vd.substitute(r,&quot;//VTK::PrimID::Impl&quot;,[&quot;gl_PrimitiveID = gl_PrimitiveIDIn;&quot;]).result),e.Vertex=n,e.Geometry=r,e.Fragment=o}},e.replaceShaderPicking=(e,t,n)=&gt;{let r=e.Fragment;r=vd.substitute(r,&quot;//VTK::Picking::Dec&quot;,[&quot;uniform vec3 mapperIndex;&quot;,&quot;uniform int picking;&quot;]).result,r=vd.substitute(r,&quot;//VTK::Picking::Impl&quot;,&quot;  gl_FragData[0] = picking != 0 ? vec4(mapperIndex,1.0) : gl_FragData[0];&quot;).result,e.Fragment=r},e.replaceShaderPositionVC=(e,n,r)=&gt;{t.lastBoundBO.replaceShaderPositionVC(e,n,r)},e.invokeShaderCallbacks=(e,n,r)=&gt;{const o=t.renderable.getViewSpecificProperties().ShadersCallbacks;o&amp;&amp;o.forEach((t=&gt;{t.callback(t.userData,e,n,r)}))},e.setMapperShaderParameters=(e,n,r)=&gt;{if(e.getProgram().isUniformUsed(&quot;PrimitiveIDOffset&quot;)&amp;&amp;e.getProgram().setUniformi(&quot;PrimitiveIDOffset&quot;,t.primitiveIDOffset),e.getProgram().isAttributeUsed(&quot;vertexWC&quot;)&amp;&amp;(e.getVAO().addAttributeArray(e.getProgram(),e.getCABO(),&quot;vertexWC&quot;,e.getCABO().getVertexOffset(),e.getCABO().getStride(),t.context.FLOAT,3,!1)||mp(&quot;Error setting vertexWC in shader VAO.&quot;)),e.getCABO().getElementCount()&amp;&amp;(t.VBOBuildTime.getMTime()&gt;e.getAttributeUpdateTime().getMTime()||e.getShaderSourceTime().getMTime()&gt;e.getAttributeUpdateTime().getMTime())){t.renderable.getCustomShaderAttributes().forEach(((n,r)=&gt;{e.getProgram().isAttributeUsed(`${n}MC`)&amp;&amp;(e.getVAO().addAttributeArray(e.getProgram(),e.getCABO(),`${n}MC`,e.getCABO().getCustomData()[r].offset,e.getCABO().getStride(),t.context.FLOAT,e.getCABO().getCustomData()[r].components,!1)||mp(`Error setting ${n}MC in shader VAO.`))})),e.getProgram().isAttributeUsed(&quot;tcoordMC&quot;)&amp;&amp;e.getCABO().getTCoordOffset()?e.getVAO().addAttributeArray(e.getProgram(),e.getCABO(),&quot;tcoordMC&quot;,e.getCABO().getTCoordOffset(),e.getCABO().getStride(),t.context.FLOAT,e.getCABO().getTCoordComponents(),!1)||mp(&quot;Error setting tcoordMC in shader VAO.&quot;):e.getVAO().removeAttributeArray(&quot;tcoordMC&quot;),e.getProgram().isAttributeUsed(&quot;scalarColor&quot;)&amp;&amp;e.getCABO().getColorComponents()?e.getVAO().addAttributeArray(e.getProgram(),e.getCABO().getColorBO(),&quot;scalarColor&quot;,e.getCABO().getColorOffset(),e.getCABO().getColorBOStride(),t.context.UNSIGNED_BYTE,4,!0)||mp(&quot;Error setting scalarColor in shader VAO.&quot;):e.getVAO().removeAttributeArray(&quot;scalarColor&quot;),t.internalColorTexture&amp;&amp;e.getProgram().isUniformUsed(&quot;texture1&quot;)&amp;&amp;t.internalColorTexture.getTextureUnit()&gt;-1&amp;&amp;e.getProgram().setUniformi(&quot;texture1&quot;,t.internalColorTexture.getTextureUnit());const o=t.openGLActor2D.getActiveTextures();if(o)for(let t=0;t&lt;o.length;++t){const n=o[t].getTextureUnit(),r=`texture${n+1}`;e.getProgram().isUniformUsed(r)&amp;&amp;e.getProgram().setUniformi(r,n)}e.setMapperShaderParameters(n,r,t._openGLRenderer.getTiledSizeAndOrigin());const a=t._openGLRenderer.getSelector();e.getProgram().setUniform3fArray(&quot;mapperIndex&quot;,a?a.getPropColorValue():[0,0,0]),e.getProgram().setUniformi(&quot;picking&quot;,a?a.getCurrentPass()+1:0)}},e.setPropertyShaderParameters=(e,n,r)=&gt;{const o=t.renderable.getColorMapColors();if(!o||0===o.getNumberOfComponents()){const t=e.getProgram(),n=r.getProperty(),o=n.getOpacity();t.setUniformf(&quot;opacityUniform&quot;,o);const a=n.getColor();t.setUniform3fArray(&quot;diffuseColorUniform&quot;,a)}},e.setLightingShaderParameters=(e,t,n)=&gt;{},e.setCameraShaderParameters=(e,n,r)=&gt;{const o=e.getProgram(),a=e.getCABO().getCoordShiftAndScaleEnabled()?e.getCABO().getInverseShiftAndScaleMatrix():null,i=n.getRenderWindow().getViews()[0].getViewportSize(n),s=n.getViewport(),l=r.getActualPositionCoordinate().getComputedDoubleViewportValue(n),c=[0,0,1,1],u=[0,0,1,1];if(u[0]=s[0]&gt;=c[0]?s[0]:c[0],u[1]=s[1]&gt;=c[1]?s[1]:c[1],u[2]=s[2]&lt;=c[2]?s[2]:c[2],u[3]=s[3]&lt;=c[3]?s[3]:c[3],u[0]&gt;=u[2])return;if(u[1]&gt;=u[3])return;i[0]=Oo(i[0]*(u[2]-u[0])/(s[2]-s[0])),i[1]=Oo(i[1]*(u[3]-u[1])/(s[3]-s[1]));const d=t._openGLRenderer.getParent().getSize(),p=Oo(l[0]-(u[0]-s[0])*d[0]),f=Oo(l[1]-(u[1]-s[1])*d[1]),g=-p;let m=-p+i[0];const h=-f;let v=-f+i[1];g===m&amp;&amp;(m=g+1),h===v&amp;&amp;(v=h+1);const T=x(new Float64Array(16));var b,A,C;T[0]=2/(m-g),T[5]=2/(v-h),T[3]=-1*(m+g)/(m-g),T[7]=-1*(v+h)/(v-h),T[10]=0,T[11]=r.getProperty().getDisplayLocation()===dp?-1:1,T[15]=1,y(T,T),o.setUniformMatrix(&quot;WCVCMatrix&quot;,(b=[T,a],A=H,C=t.tmpMat4,A.identity(C),b.reduce(((e,t,n)=&gt;0===n?t?A.copy(e,t):A.identity(e):t?A.multiply(e,e,t):e),C)))},e.getAllocatedGPUMemoryInBytes=()=&gt;{let e=0;return t.primitives.forEach((t=&gt;{e+=t.getAllocatedGPUMemoryInBytes()})),e}}(e,t)}),&quot;vtkOpenGLPolyDataMapper2D&quot;);vn(&quot;vtkMapper2D&quot;,xp);var yp={Orientation:{HORIZONTAL:&quot;horizontal&quot;,VERTICAL:&quot;vertical&quot;,AUTO:&quot;auto&quot;}};const{VectorMode:bp}=yl,{Orientation:Ap}=yp;function Cp(e,t,n){e.strokeStyle=t.strokeColor,e.lineWidth=t.strokeSize,e.fillStyle=t.fontColor;const r=t.fontSize??n;e.font=`${t.fontStyle} ${r}px ${t.fontFamily}`}function Sp(e,t){return e=&gt;{const n=e.getLastSize(),r=(n[0]/700)**.8,o=(n[1]/700)**.8,a=Math.min(r,o),i=e.getAxisTextStyle(),s=e.getTickTextStyle();Object.assign(i,t.axisTextStyle),Object.assign(s,t.tickTextStyle),void 0===i.fontSize&amp;&amp;(i.fontSize=Math.max(24*a,12)),void 0===s.fontSize&amp;&amp;(e.getLastAspectRatio()&gt;1?s.fontSize=Math.max(20*a,10):s.fontSize=Math.max(16*a,10));const l=e.updateTextureAtlas();e.setTopTitle(!1);const c=e.getBoxSizeByReference();let u=!1;if(u=t.orientation===Ap.VERTICAL||t.orientation!==Ap.HORIZONTAL&amp;&amp;e.getLastAspectRatio()&gt;1,u)e.setTickLabelPixelOffset(.3*s.fontSize),l.titleWidth&lt;=l.tickWidth+e.getTickLabelPixelOffset()+.8*s.fontSize?(e.setTopTitle(!0),e.setAxisTitlePixelOffset(.2*s.fontSize),c[0]=2*(l.tickWidth+e.getTickLabelPixelOffset()+.8*s.fontSize)/n[0],e.setBoxPosition([.98-c[0],-.92])):(e.setAxisTitlePixelOffset(.2*s.fontSize),c[0]=2*(l.titleHeight+e.getAxisTitlePixelOffset()+l.tickWidth+e.getTickLabelPixelOffset()+.8*s.fontSize)/n[0],e.setBoxPosition([.99-c[0],-.92])),c[1]=Math.max(1.2,Math.min(1.84/o,1.84));else{e.setAxisTitlePixelOffset(1.2*s.fontSize),e.setTickLabelPixelOffset(.1*s.fontSize);const t=2*(.8*s.fontSize+l.titleHeight+e.getAxisTitlePixelOffset())/n[1],r=2*l.tickWidth/n[0];c[0]=Math.min(1.9,Math.max(1.4,1.4*r*(e.getTicks().length+3))),c[1]=t,e.setBoxPosition([-.5*c[0],-.97])}e.recomputeBarSegments(l)}}function Pp(e,t){return e=&gt;{const t=e.getLastTickBounds(),n=$r().domain([t[0],t[1]]),r=n.ticks(5),o=n.tickFormat(5);e.setTicks(r),e.setTickStrings(r.map(o))}}const wp=sn.newInstance(((e,t,n={renderable:null})=&gt;{Object.assign(t,{},n),sn.obj(e,t),sn.setGet(e,t,[&quot;axisTitlePixelOffset&quot;,&quot;tickLabelPixelOffset&quot;,&quot;renderable&quot;,&quot;topTitle&quot;,&quot;ticks&quot;,&quot;tickStrings&quot;,&quot;tickPositions&quot;]),sn.get(e,t,[&quot;lastSize&quot;,&quot;lastAspectRatio&quot;,&quot;lastTickBounds&quot;,&quot;axisTextStyle&quot;,&quot;tickTextStyle&quot;,&quot;barActor&quot;,&quot;tmActor&quot;]),sn.getArray(e,t,[&quot;boxPosition&quot;,&quot;boxSize&quot;]),sn.setArray(e,t,[&quot;boxPosition&quot;,&quot;boxSize&quot;],2),t.forceUpdate=!1,t.lastRebuildTime={},sn.obj(t.lastRebuildTime,{mtime:0}),t.lastSize=[-1,-1],t.tmCanvas=document.createElement(&quot;canvas&quot;),t.tmContext=t.tmCanvas.getContext(&quot;2d&quot;),t._tmAtlas=new Map,t.barMapper=Ql.newInstance(),t.barMapper.setInterpolateScalarsBeforeMapping(!0),t.barMapper.setUseLookupTableScalarRange(!0),t.polyData=Ru.newInstance(),t.barMapper.setInputData(t.polyData),t.barActor=fs.newInstance(),t.barActor.setMapper(t.barMapper),t.tmPolyData=Ru.newInstance(),t.tmMapper=Ql.newInstance(),t.tmMapper.setInputData(t.tmPolyData),t.tmTexture=Eu.newInstance({resizable:!0}),t.tmTexture.setInterpolate(!1),t.tmActor=fs.newInstance({parentProp:e}),t.tmActor.setMapper(t.tmMapper),t.tmActor.addTexture(t.tmTexture),t.barPosition=[0,0],t.barSize=[0,0],t.boxPosition=[.88,-.92],t.boxSize=[.1,1.1],t.lastTickBounds=[],function(e,t){t.classHierarchy.push(&quot;vtkScalarBarActorHelper&quot;),e.setRenderable=n=&gt;{t.renderable!==n&amp;&amp;(t.renderable=n,t.barActor.setProperty(n.getProperty()),t.barActor.setParentProp(n),t.barActor.setCoordinateSystemToDisplay(),t.tmActor.setProperty(n.getProperty()),t.tmActor.setParentProp(n),t.tmActor.setCoordinateSystemToDisplay(),t.generateTicks=n.generateTicks,t.axisTextStyle={...n.getAxisTextStyle()},t.tickTextStyle={...n.getTickTextStyle()},e.modified())},e.updateAPISpecificData=(n,r,o)=&gt;{t.lastSize[0]===n[0]&amp;&amp;t.lastSize[1]===n[1]||(t.lastSize[0]=n[0],t.lastSize[1]=n[1],t.lastAspectRatio=n[0]/n[1],t.forceUpdate=!0);const a=t.renderable.getScalarsToColors();if(a&amp;&amp;t.renderable.getVisibility()&amp;&amp;(t.barMapper.setLookupTable(a),t.camera=r,t.renderWindow=o,t.forceUpdate||Math.max(a.getMTime(),e.getMTime(),t.renderable.getMTime())&gt;t.lastRebuildTime.getMTime())){const n=a.getMappingRange();if(t.lastTickBounds=[...n],t.renderable.getGenerateTicks()(e),t.renderable.getAutomated())t.renderable.getAutoLayout()(e);else{t.axisTextStyle={...t.renderable.getAxisTextStyle()},t.tickTextStyle={...t.renderable.getTickTextStyle()},t.barPosition=[...t.renderable.getBarPosition()],t.barSize=[...t.renderable.getBarSize()],t.boxPosition=[...t.renderable.getBoxPosition()],t.boxSize=[...t.renderable.getBoxSize()],t.axisTitlePixelOffset=t.renderable.getAxisTitlePixelOffset(),t.tickLabelPixelOffset=t.renderable.getTickLabelPixelOffset();const n=e.updateTextureAtlas();e.recomputeBarSegments(n)}e.updatePolyDataForLabels(),e.updatePolyDataForBarSegments(),t.lastRebuildTime.modified(),t.forceUpdate=!1}},e.updateTextureAtlas=()=&gt;{t.tmContext.textBaseline=&quot;bottom&quot;,t.tmContext.textAlign=&quot;left&quot;;const n={},r=new Map;let o=0,a=1;Cp(t.tmContext,t.axisTextStyle,18);let i=t.tmContext.measureText(t.renderable.getAxisLabel()),s={height:i.actualBoundingBoxAscent+2,startingHeight:a,width:i.width+2,textStyle:t.axisTextStyle};r.set(t.renderable.getAxisLabel(),s),a+=s.height,o=s.width,n.titleWidth=s.width,n.titleHeight=s.height,n.tickWidth=0,n.tickHeight=0,Cp(t.tmContext,t.tickTextStyle,14);const l=[...e.getTickStrings(),&quot;NaN&quot;,&quot;Below&quot;,&quot;Above&quot;];for(let e=0;e&lt;l.length;e++)r.has(l[e])||(i=t.tmContext.measureText(l[e]),s={height:i.actualBoundingBoxAscent+2,startingHeight:a,width:i.width+2,textStyle:t.tickTextStyle},r.set(l[e],s),a+=s.height,o&lt;s.width&amp;&amp;(o=s.width),n.tickWidth&lt;s.width&amp;&amp;(n.tickWidth=s.width),n.tickHeight&lt;s.height&amp;&amp;(n.tickHeight=s.height));return o=Bo(o),a=Bo(a),r.forEach((e=&gt;{e.tcoords=[0,(a-e.startingHeight-e.height)/a,e.width/o,(a-e.startingHeight-e.height)/a,e.width/o,(a-e.startingHeight)/a,0,(a-e.startingHeight)/a]})),t.tmCanvas.width=o,t.tmCanvas.height=a,t.tmContext.textBaseline=&quot;bottom&quot;,t.tmContext.textAlign=&quot;left&quot;,t.tmContext.clearRect(0,0,o,a),r.forEach(((e,n)=&gt;{const r=e.textStyle===t.axisTextStyle?18:14;Cp(t.tmContext,e.textStyle,r),t.tmContext.fillText(n,1,e.startingHeight+e.height-1)})),t.tmTexture.setCanvas(t.tmCanvas),t.tmTexture.modified(),t._tmAtlas=r,n},e.computeBarSize=e=&gt;{t.vertical=t.boxSize[1]&gt;t.boxSize[0];const n=2*e.tickHeight/t.lastSize[1],r=[1,1];if(t.vertical){const o=2*(e.tickWidth+t.tickLabelPixelOffset)/t.lastSize[0];if(t.topTitle){const n=2*(e.titleHeight+t.axisTitlePixelOffset)/t.lastSize[1];t.barSize[0]=t.boxSize[0]-o,t.barSize[1]=t.boxSize[1]-n}else{const n=2*(e.titleHeight+t.axisTitlePixelOffset)/t.lastSize[0];t.barSize[0]=t.boxSize[0]-n-o,t.barSize[1]=t.boxSize[1]}t.barPosition[0]=t.boxPosition[0]+o,t.barPosition[1]=t.boxPosition[1],r[1]=n}else{const n=(2*e.tickWidth-8)/t.lastSize[0],o=2*(e.titleHeight+t.axisTitlePixelOffset)/t.lastSize[1];t.barSize[0]=t.boxSize[0],t.barPosition[0]=t.boxPosition[0],t.barSize[1]=t.boxSize[1]-o,t.barPosition[1]=t.boxPosition[1],r[0]=n}return r},e.recomputeBarSegments=n=&gt;{const r=e.computeBarSize(n);t.barSegments=[];const o=[0,0],a=t.vertical?1:0,i=t.vertical?.01:.02;function s(e,n){t.barSegments.push({corners:[[...o],[o[0]+r[0],o[1]],[o[0]+r[0],o[1]+r[1]],[o[0],o[1]+r[1]]],scalars:n,title:e}),o[a]+=r[a]+i}t.renderable.getDrawNanAnnotation()&amp;&amp;t.renderable.getScalarsToColors().getNanColor()&amp;&amp;s(&quot;NaN&quot;,[NaN,NaN,NaN,NaN]),t.renderable.getDrawBelowRangeSwatch()&amp;&amp;t.renderable.getScalarsToColors().getUseBelowRangeColor?.()&amp;&amp;s(&quot;Below&quot;,[-.1,-.1,-.1,-.1]);const l=t.renderable.getScalarsToColors().getUseAboveRangeColor?.();o[a]+=i;const c=r[a];r[a]=l?1-2*i-r[a]-o[a]:1-i-o[a],s(&quot;ticks&quot;,t.vertical?[0,0,.995,.995]:[0,.995,.995,0]),t.renderable.getDrawAboveRangeSwatch()&amp;&amp;l&amp;&amp;(r[a]=c,o[a]+=i,s(&quot;Above&quot;,[1.1,1.1,1.1,1.1]))};const n=new Float64Array(3);e.createPolyDataForOneLabel=(e,r,o,a,i,s)=&gt;{const l=t._tmAtlas.get(e);if(!l)return;let c=s.ptIdx,u=s.cellIdx;n[0]=(.5*r[0]+.5)*t.lastSize[0],n[1]=(.5*r[1]+.5)*t.lastSize[1],n[2]=r[2],n[0]+=i[0],n[1]+=i[1];const d=[],p=&quot;vertical&quot;===a?[1,0]:[0,1];&quot;vertical&quot;===a?(d[0]=l.width,d[1]=-l.height,&quot;middle&quot;===o[0]?n[1]-=l.width/2:&quot;right&quot;===o[0]&amp;&amp;(n[1]-=l.width),&quot;middle&quot;===o[1]?n[0]+=l.height/2:&quot;top&quot;===o[1]&amp;&amp;(n[0]+=l.height)):(d[0]=l.width,d[1]=l.height,&quot;middle&quot;===o[0]?n[0]-=l.width/2:&quot;right&quot;===o[0]&amp;&amp;(n[0]-=l.width),&quot;middle&quot;===o[1]?n[1]-=l.height/2:&quot;top&quot;===o[1]&amp;&amp;(n[1]-=l.height)),s.points[3*c]=n[0],s.points[3*c+1]=n[1],s.points[3*c+2]=n[2],s.tcoords[2*c]=l.tcoords[0],s.tcoords[2*c+1]=l.tcoords[1],c++,n[p[0]]+=d[0],s.points[3*c]=n[0],s.points[3*c+1]=n[1],s.points[3*c+2]=n[2],s.tcoords[2*c]=l.tcoords[2],s.tcoords[2*c+1]=l.tcoords[3],c++,n[p[1]]+=d[1],s.points[3*c]=n[0],s.points[3*c+1]=n[1],s.points[3*c+2]=n[2],s.tcoords[2*c]=l.tcoords[4],s.tcoords[2*c+1]=l.tcoords[5],c++,n[p[0]]-=d[0],s.points[3*c]=n[0],s.points[3*c+1]=n[1],s.points[3*c+2]=n[2],s.tcoords[2*c]=l.tcoords[6],s.tcoords[2*c+1]=l.tcoords[7],c++,s.polys[4*u]=3,s.polys[4*u+1]=c-4,s.polys[4*u+2]=c-3,s.polys[4*u+3]=c-2,u++,s.polys[4*u]=3,s.polys[4*u+1]=c-4,s.polys[4*u+2]=c-2,s.polys[4*u+3]=c-1,s.ptIdx+=4,s.cellIdx+=2};const r=new Float64Array(3);e.updatePolyDataForLabels=()=&gt;{const n=e.getTickStrings().length+t.barSegments.length,o=4*n,a=2*n,i=new Float64Array(3*o),s=new Uint16Array(4*a),l=new Float32Array(2*o),c={ptIdx:0,cellIdx:0,polys:s,points:i,tcoords:l},u=t.vertical?0:1,d=t.vertical?1:0;r[2]=-.99;const p=t.vertical?[&quot;right&quot;,&quot;middle&quot;]:[&quot;middle&quot;,&quot;bottom&quot;];let f=[0,1];const g=[0,0];t.vertical?(g[0]=-t.tickLabelPixelOffset,t.topTitle?(r[0]=t.boxPosition[0]+.5*t.boxSize[0],r[1]=t.barPosition[1]+t.barSize[1],e.createPolyDataForOneLabel(t.renderable.getAxisLabel(),r,[&quot;middle&quot;,&quot;bottom&quot;],&quot;horizontal&quot;,[0,t.axisTitlePixelOffset],c)):(r[0]=t.barPosition[0]+t.barSize[0],r[1]=t.barPosition[1]+.5*t.barSize[1],e.createPolyDataForOneLabel(t.renderable.getAxisLabel(),r,[&quot;middle&quot;,&quot;top&quot;],&quot;vertical&quot;,[t.axisTitlePixelOffset,0],c)),f=[-1,0]):(g[1]=t.tickLabelPixelOffset,r[0]=t.barPosition[0]+.5*t.barSize[0],r[1]=t.barPosition[1]+t.barSize[1],e.createPolyDataForOneLabel(t.renderable.getAxisLabel(),r,[&quot;middle&quot;,&quot;bottom&quot;],&quot;horizontal&quot;,[0,t.axisTitlePixelOffset],c)),r[u]=t.barPosition[u]+(.5*f[u]+.5)*t.barSize[u],r[d]=t.barPosition[d]+.5*t.barSize[d];let m=null;for(let n=0;n&lt;t.barSegments.length;n++){const o=t.barSegments[n];&quot;ticks&quot;===o.title?m=o:(r[d]=t.barPosition[d]+.5*t.barSize[d]*(o.corners[2][d]+o.corners[0][d]),e.createPolyDataForOneLabel(o.title,r,p,&quot;horizontal&quot;,g,c))}const h=t.barPosition[d]+t.barSize[d]*m.corners[0][d],v=t.barSize[d]*(m.corners[2][d]-m.corners[0][d]),T=e.getTicks(),x=e.getTickStrings(),y=e.getTickPositions();for(let n=0;n&lt;T.length;n++){const o=y?y[n]:(T[n]-t.lastTickBounds[0])/(t.lastTickBounds[1]-t.lastTickBounds[0]);r[d]=h+v*o,e.createPolyDataForOneLabel(x[n],r,p,&quot;horizontal&quot;,g,c)}const b=Is.newInstance({numberOfComponents:2,values:l,name:&quot;TextureCoordinates&quot;});t.tmPolyData.getPointData().setTCoords(b),t.tmPolyData.getPoints().setData(i,3),t.tmPolyData.getPoints().modified(),t.tmPolyData.getPolys().setData(s,1),t.tmPolyData.getPolys().modified(),t.tmPolyData.modified()},e.updatePolyDataForBarSegments=()=&gt;{const e=t.renderable.getScalarsToColors();let n=0;t.renderable.getDrawNanAnnotation()&amp;&amp;e.getNanColor()&amp;&amp;(n+=1),t.renderable.getDrawBelowRangeSwatch()&amp;&amp;e.getUseBelowRangeColor?.()&amp;&amp;(n+=1),t.renderable.getDrawAboveRangeSwatch()&amp;&amp;e.getUseAboveRangeColor?.()&amp;&amp;(n+=1);const o=4*(1+n),a=o;let i=1;e.getVectorMode()===bp.COMPONENT&amp;&amp;(i=e.getVectorComponent()+1);const s=new Float64Array(3*o),l=new Uint16Array(5*a),c=new Float32Array(o*i);let u=0,d=0;for(let e=0;e&lt;t.barSegments.length;e++){const n=t.barSegments[e];for(let e=0;e&lt;4;e++){r[0]=t.barPosition[0]+n.corners[e][0]*t.barSize[0],r[1]=t.barPosition[1]+n.corners[e][1]*t.barSize[1],s[3*u]=(.5*r[0]+.5)*t.lastSize[0],s[3*u+1]=(.5*r[1]+.5)*t.lastSize[1],s[3*u+2]=r[2];for(let r=0;r&lt;i;r++)c[u*i+r]=t.lastTickBounds[0]+n.scalars[e]*(t.lastTickBounds[1]-t.lastTickBounds[0]);u++}l[5*d]=4,l[5*d+1]=u-4,l[5*d+2]=u-3,l[5*d+3]=u-2,l[5*d+4]=u-1,d++}const p=Is.newInstance({numberOfComponents:i,values:c,name:&quot;Scalars&quot;});t.polyData.getPointData().setScalars(p),t.polyData.getPoints().setData(s,3),t.polyData.getPoints().modified(),t.polyData.getPolys().setData(l,1),t.polyData.getPolys().modified(),t.polyData.modified()}}(e,t)}),&quot;vtkScalarBarActorHelper&quot;);function Ip(e,t,n={}){Object.assign(t,function(e){return{automated:!0,autoLayout:null,axisLabel:&quot;Scalar Value&quot;,barPosition:[0,0],barSize:[0,0],boxPosition:[.88,-.92],boxSize:[.1,1.1],scalarToColors:null,axisTitlePixelOffset:36,axisTextStyle:{fontColor:&quot;white&quot;,fontStyle:&quot;normal&quot;,fontSize:void 0,fontFamily:&quot;serif&quot;},tickLabelPixelOffset:14,tickTextStyle:{fontColor:&quot;white&quot;,fontStyle:&quot;normal&quot;,fontSize:void 0,fontFamily:&quot;serif&quot;},generateTicks:null,drawNanAnnotation:!0,drawBelowRangeSwatch:!0,drawAboveRangeSwatch:!0,orientation:null,...e}}(n)),t.autoLayout||(t.autoLayout=Sp(0,t)),t.generateTicks||(t.generateTicks=Pp()),fs.extend(e,t,n),e.getProperty().setDiffuse(0),e.getProperty().setAmbient(1),sn.setGet(e,t,[&quot;automated&quot;,&quot;autoLayout&quot;,&quot;axisTitlePixelOffset&quot;,&quot;axisLabel&quot;,&quot;scalarsToColors&quot;,&quot;tickLabelPixelOffset&quot;,&quot;generateTicks&quot;,&quot;drawNanAnnotation&quot;,&quot;drawBelowRangeSwatch&quot;,&quot;drawAboveRangeSwatch&quot;,&quot;orientation&quot;]),sn.get(e,t,[&quot;axisTextStyle&quot;,&quot;tickTextStyle&quot;]),sn.getArray(e,t,[&quot;barPosition&quot;,&quot;barSize&quot;,&quot;boxPosition&quot;,&quot;boxSize&quot;]),sn.setArray(e,t,[&quot;barPosition&quot;,&quot;barSize&quot;,&quot;boxPosition&quot;,&quot;boxSize&quot;],2),function(e,t){t.classHierarchy.push(&quot;vtkScalarBarActor&quot;),e.setTickTextStyle=n=&gt;{t.tickTextStyle={...t.tickTextStyle,...n},e.modified()},e.setAxisTextStyle=n=&gt;{t.axisTextStyle={...t.axisTextStyle,...n},e.modified()},e.setOrientationToHorizontal=()=&gt;e.setOrientation(Ap.HORIZONTAL),e.setOrientationToVertical=()=&gt;e.setOrientation(Ap.VERTICAL),e.resetAutoLayoutToDefault=()=&gt;{e.setAutoLayout(Sp(0,t))},e.resetGenerateTicksToDefault=()=&gt;{e.setGenerateTicks(Pp())}}(e,t)}var Op={newInstance:sn.newInstance(Ip,&quot;vtkScalarBarActor&quot;),extend:Ip,newScalarBarActorHelper:wp,...yp};const Rp={};vn(&quot;vtkScalarBarActor&quot;,Xt((function(e,t,n={}){Object.assign(t,Rp,n),pn.extend(e,t,n),t.scalarBarActorHelper=Op.newScalarBarActorHelper(),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLScalarBarActor&quot;),e.buildPass=n=&gt;{n&amp;&amp;(t._openGLRenderer=e.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;),t._openGLRenderWindow=t._openGLRenderer.getParent(),t.scalarBarActorHelper.getRenderable()||t.scalarBarActorHelper.setRenderable(t.renderable),e.prepareNodes(),e.addMissingNode(t.scalarBarActorHelper.getBarActor()),e.addMissingNode(t.scalarBarActorHelper.getTmActor()),e.removeUnusedNodes())},e.opaquePass=(e,n)=&gt;{if(e){const e=t._openGLRenderer?t._openGLRenderer.getRenderable().getActiveCamera():null,n=t._openGLRenderer.getTiledSizeAndOrigin();t.scalarBarActorHelper.updateAPISpecificData([n.usize,n.vsize],e,t._openGLRenderWindow.getRenderable())}}}(e,t)}),&quot;vtkOpenGLScalarBarActor&quot;));const{vtkErrorMacro:Mp}=ln;const Dp={context:null};const Ep=Xt((function(e,t,n={}){Object.assign(t,Dp,n),pn.extend(e,t,n),t.openGLTexture=Hd.newInstance(),t.tris=Sd.newInstance(),t.keyMatrixTime={},Vt(t.keyMatrixTime,{mtime:0}),t.keyMatrices={normalMatrix:c(new Float64Array(9)),mcwc:x(new Float64Array(16))},Gt(e,t,[&quot;context&quot;]),Bt(e,t,[&quot;activeTextures&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLSkybox&quot;),e.buildPass=n=&gt;{if(n){t._openGLRenderer=e.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;),t._openGLRenderWindow=t._openGLRenderer.getParent(),t.context=t._openGLRenderWindow.getContext(),t.tris.setOpenGLRenderWindow(t._openGLRenderWindow),t.openGLTexture.setOpenGLRenderWindow(t._openGLRenderWindow);const n=t._openGLRenderer.getRenderable();t.openGLCamera=t._openGLRenderer.getViewNodeFor(n.getActiveCamera(),t.openGLCamera)}},e.queryPass=(e,n)=&gt;{if(e){if(!t.renderable||!t.renderable.getVisibility())return;n.incrementOpaqueActorCount()}},e.opaquePass=(n,r)=&gt;{if(n&amp;&amp;!t._openGLRenderer.getSelector()){e.updateBufferObjects(),t.context.depthMask(!0),t._openGLRenderWindow.getShaderCache().readyShaderProgram(t.tris.getProgram()),t.openGLTexture.render(t._openGLRenderWindow);const n=t.openGLTexture.getTextureUnit();t.tris.getProgram().setUniformi(&quot;sbtexture&quot;,n);const r=t._openGLRenderer.getRenderable(),o=t.openGLCamera.getKeyMatrices(r),a=new Float64Array(16);if(b(a,o.wcpc),t.tris.getProgram().setUniformMatrix(&quot;IMCPCMatrix&quot;,a),&quot;box&quot;===t.lastFormat){const e=r.getActiveCamera().getPosition();t.tris.getProgram().setUniform3f(&quot;camPos&quot;,e[0],e[1],e[2])}t.tris.getVAO().bind(),t.context.drawArrays(t.context.TRIANGLES,0,t.tris.getCABO().getElementCount()),t.tris.getVAO().release(),t.openGLTexture.deactivate()}},e.updateBufferObjects=()=&gt;{if(!t.tris.getCABO().getElementCount()){const e=new Float32Array(12);for(let t=0;t&lt;4;t++)e[3*t]=t%2*2-1,e[3*t+1]=t&gt;1?1:-1,e[3*t+2]=1;const n=Is.newInstance({numberOfComponents:3,values:e});n.setName(&quot;points&quot;);const r=new Uint16Array(8);r[0]=3,r[1]=0,r[2]=1,r[3]=3,r[4]=3,r[5]=0,r[6]=3,r[7]=2;const o=Is.newInstance({numberOfComponents:1,values:r});t.tris.getCABO().createVBO(o,&quot;polys&quot;,rs.SURFACE,{points:n,cellOffset:0})}t.renderable.getFormat()!==t.lastFormat&amp;&amp;(t.lastFormat=t.renderable.getFormat(),&quot;box&quot;===t.lastFormat&amp;&amp;t.tris.setProgram(t._openGLRenderWindow.getShaderCache().readyShaderProgramArray(&quot;//VTK::System::Dec\\n             attribute vec3 vertexMC;\\n             uniform mat4 IMCPCMatrix;\\n             varying vec3 TexCoords;\\n             void main () {\\n              gl_Position = vec4(vertexMC.xyz, 1.0);\\n              vec4 wpos = IMCPCMatrix * gl_Position;\\n              TexCoords = wpos.xyz/wpos.w;\\n             }&quot;,&quot;//VTK::System::Dec\\n             //VTK::Output::Dec\\n             varying vec3 TexCoords;\\n             uniform samplerCube sbtexture;\\n             uniform vec3 camPos;\\n             void main () {\\n               // skybox looks from inside out\\n               // which means we have to adjust\\n               // our tcoords. Otherwise text would\\n               // be flipped\\n               vec3 tc = normalize(TexCoords - camPos);\\n               if (abs(tc.z) &lt; max(abs(tc.x),abs(tc.y)))\\n               {\\n                 tc = vec3(1.0, 1.0, -1.0) * tc;\\n               }\\n               else\\n               {\\n                 tc = vec3(-1.0, 1.0, 1.0) * tc;\\n               }\\n               gl_FragData[0] = textureCube(sbtexture, tc);\\n             }&quot;,&quot;&quot;)),&quot;background&quot;===t.lastFormat&amp;&amp;t.tris.setProgram(t._openGLRenderWindow.getShaderCache().readyShaderProgramArray(&quot;//VTK::System::Dec\\n             attribute vec3 vertexMC;\\n             uniform mat4 IMCPCMatrix;\\n             varying vec2 TexCoords;\\n             void main () {\\n              gl_Position = vec4(vertexMC.xyz, 1.0);\\n              vec4 wpos = IMCPCMatrix * gl_Position;\\n              TexCoords = vec2(vertexMC.x, vertexMC.y)*0.5 + 0.5;\\n             }&quot;,&quot;//VTK::System::Dec\\n             //VTK::Output::Dec\\n             varying vec2 TexCoords;\\n             uniform sampler2D sbtexture;\\n             void main () {\\n               gl_FragData[0] = texture2D(sbtexture, TexCoords);\\n             }&quot;,&quot;&quot;)),t.tris.getShaderSourceTime().modified(),t.tris.getVAO().bind(),t.tris.getVAO().addAttributeArray(t.tris.getProgram(),t.tris.getCABO(),&quot;vertexMC&quot;,t.tris.getCABO().getVertexOffset(),t.tris.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE)||Mp(&quot;Error setting vertexMC in shader VAO.&quot;));const e=t.renderable.getTextures();e.length||Mp(&quot;vtkSkybox requires a texture map&quot;),t.openGLTexture.getRenderable()!==e[0]&amp;&amp;(t.openGLTexture.releaseGraphicsResources(t._openGLRenderWindow),t.openGLTexture.setRenderable(e[0]))}}(e,t)}));vn(&quot;vtkSkybox&quot;,Ep);const{FieldAssociations:Vp}=Qs;const Lp={fieldAssociation:Vp.FIELD_ASSOCIATION_CELLS,captureZValues:!1};function Bp(e,t,n={}){Object.assign(t,Lp,n),sn.obj(e,t),sn.setGet(e,t,[&quot;fieldAssociation&quot;,&quot;captureZValues&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkHardwareSelector&quot;),e.getSourceDataAsync=async(e,t,n,r,o)=&gt;{},e.selectAsync=async(t,n,r,o,a)=&gt;{const i=await e.getSourceDataAsync(t,n,r,o,a);return i?i.generateSelection(n,r,o,a):[]}}(e,t)}var Fp={newInstance:sn.newInstance(Bp,&quot;vtkHardwareSelector&quot;),extend:Bp};const Np={glFramebuffer:null,colorBuffers:null,depthTexture:null,previousDrawBinding:0,previousReadBinding:0,previousDrawBuffer:0,previousReadBuffer:0,previousActiveFramebuffer:null};function kp(e,t,n={}){Object.assign(t,Np,n),Vt(e,t),t.colorBuffers&amp;&amp;Tt(&quot;you cannot initialize colorBuffers through the constructor. You should call setColorBuffer() instead.&quot;),t.colorBuffers=[],Ut(e,t,[&quot;colorBuffers&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkFramebuffer&quot;),e.getBothMode=()=&gt;t.context.FRAMEBUFFER,e.saveCurrentBindingsAndBuffers=t=&gt;{const n=void 0!==t?t:e.getBothMode();e.saveCurrentBindings(n),e.saveCurrentBuffers(n)},e.saveCurrentBindings=e=&gt;{if(!t.context)return void Tt(&quot;you must set the OpenGLRenderWindow before calling saveCurrentBindings&quot;);const n=t.context;t.previousDrawBinding=n.getParameter(t.context.FRAMEBUFFER_BINDING),t.previousActiveFramebuffer=t._openGLRenderWindow.getActiveFramebuffer()},e.saveCurrentBuffers=e=&gt;{},e.restorePreviousBindingsAndBuffers=t=&gt;{const n=void 0!==t?t:e.getBothMode();e.restorePreviousBindings(n),e.restorePreviousBuffers(n)},e.restorePreviousBindings=e=&gt;{if(!t.context)return void Tt(&quot;you must set the OpenGLRenderWindow before calling restorePreviousBindings&quot;);const n=t.context;n.bindFramebuffer(n.FRAMEBUFFER,t.previousDrawBinding),t._openGLRenderWindow.setActiveFramebuffer(t.previousActiveFramebuffer)},e.restorePreviousBuffers=e=&gt;{},e.bind=(n=null)=&gt;{let r=n;null===r&amp;&amp;(r=t.context.FRAMEBUFFER),t.context.bindFramebuffer(r,t.glFramebuffer);for(let e=0;e&lt;t.colorBuffers.length;e++)t.colorBuffers[e].bind();t._openGLRenderWindow.setActiveFramebuffer(e)},e.create=(e,n)=&gt;{t.context?(t.glFramebuffer=t.context.createFramebuffer(),t.glFramebuffer.width=e,t.glFramebuffer.height=n):Tt(&quot;you must set the OpenGLRenderWindow before calling create&quot;)},e.setColorBuffer=(e,n=0)=&gt;{const r=t.context;if(!r)return void Tt(&quot;you must set the OpenGLRenderWindow before calling setColorBuffer&quot;);let o=r.COLOR_ATTACHMENT0;if(n&gt;0){if(!t._openGLRenderWindow.getWebgl2())return void Tt(&quot;Using multiple framebuffer attachments requires WebGL 2&quot;);o+=n}t.colorBuffers[n]=e,r.framebufferTexture2D(r.FRAMEBUFFER,o,r.TEXTURE_2D,e.getHandle(),0)},e.removeColorBuffer=(e=0)=&gt;{const n=t.context;if(!n)return void Tt(&quot;you must set the OpenGLRenderWindow before calling removeColorBuffer&quot;);let r=n.COLOR_ATTACHMENT0;if(e&gt;0){if(!t._openGLRenderWindow.getWebgl2())return void Tt(&quot;Using multiple framebuffer attachments requires WebGL 2&quot;);r+=e}n.framebufferTexture2D(n.FRAMEBUFFER,r,n.TEXTURE_2D,null,0),t.colorBuffers=t.colorBuffers.splice(e,1)},e.setDepthBuffer=e=&gt;{if(t.context)if(t._openGLRenderWindow.getWebgl2()){const n=t.context;n.framebufferTexture2D(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.TEXTURE_2D,e.getHandle(),0)}else Tt(&quot;Attaching depth buffer textures to fbo requires WebGL 2&quot;);else Tt(&quot;you must set the OpenGLRenderWindow before calling setDepthBuffer&quot;)},e.removeDepthBuffer=()=&gt;{if(t.context)if(t._openGLRenderWindow.getWebgl2()){const e=t.context;e.framebufferTexture2D(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.TEXTURE_2D,null,0)}else Tt(&quot;Attaching depth buffer textures to framebuffers requires WebGL 2&quot;);else Tt(&quot;you must set the OpenGLRenderWindow before calling removeDepthBuffer&quot;)},e.getGLFramebuffer=()=&gt;t.glFramebuffer,e.setOpenGLRenderWindow=n=&gt;{t._openGLRenderWindow!==n&amp;&amp;(e.releaseGraphicsResources(),t._openGLRenderWindow=n,t.context=null,n&amp;&amp;(t.context=t._openGLRenderWindow.getContext()))},e.releaseGraphicsResources=()=&gt;{t.glFramebuffer&amp;&amp;t.context.deleteFramebuffer(t.glFramebuffer)},e.getSize=()=&gt;null==t.glFramebuffer?null:[t.glFramebuffer.width,t.glFramebuffer.height],e.populateFramebuffer=()=&gt;{if(!t.context)return void Tt(&quot;you must set the OpenGLRenderWindow before calling populateFrameBuffer&quot;);e.bind();const n=t.context,r=Hd.newInstance();r.setOpenGLRenderWindow(t._openGLRenderWindow),r.setMinificationFilter(wd.LINEAR),r.setMagnificationFilter(wd.LINEAR),r.create2DFromRaw({width:t.glFramebuffer.width,height:t.glFramebuffer.height,numComps:4,dataType:ms.UNSIGNED_CHAR,data:null}),e.setColorBuffer(r),t.depthTexture=n.createRenderbuffer(),n.bindRenderbuffer(n.RENDERBUFFER,t.depthTexture),n.renderbufferStorage(n.RENDERBUFFER,n.DEPTH_COMPONENT16,t.glFramebuffer.width,t.glFramebuffer.height),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.RENDERBUFFER,t.depthTexture)},e.getColorTexture=()=&gt;t.colorBuffers[0]}(e,t)}var Gp={newInstance:Xt(kp,&quot;vtkFramebuffer&quot;),extend:kp};var Up={SelectionContent:{GLOBALIDS:0,PEDIGREEIDS:1,VALUES:2,INDICES:3,FRUSTUM:4,LOCATIONS:5,THRESHOLDS:6,BLOCKS:7,QUERY:8},SelectionField:{CELL:0,POINT:1,FIELD:2,VERTEX:3,EDGE:4,ROW:5}};const _p={contentType:-1,fieldType:-1,properties:null,selectionList:[]};function Kp(e,t,n={}){Object.assign(t,_p,n),sn.obj(e,t),t.properties={},sn.setGet(e,t,[&quot;contentType&quot;,&quot;fieldType&quot;,&quot;properties&quot;,&quot;selectionList&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkSelectionNode&quot;),e.getBounds=()=&gt;t.points.getBounds()}(e,t)}var zp={newInstance:sn.newInstance(Kp,&quot;vtkSelectionNode&quot;),extend:Kp,...Up};const{PassTypes:Wp}=Fl,{SelectionContent:Hp,SelectionField:jp}=zp,{FieldAssociations:Xp}=Qs,{vtkErrorMacro:qp,vtkDebugMacro:Yp}=sn;function Jp(e){return`${e.propID} ${e.compositeID}`}function Zp(e,t,n,r){if(!n)return 0;return n[4*(t*(r[2]-r[0]+1)+e)+3]}function Qp(e,t,n,r,o=null){if(!n)return 0;const a=4*(t*(r[2]-r[0]+1)+e),i=n[a],s=n[a+1];return 256*(256*n[a+2]+s)+i}function $p(e,t){let n=t;return n&lt;&lt;=24,n|=e,n}function ef(e,t,n,r){const o=n&lt;0?0:n;if(0===o){if(r[0]=t[0],r[1]=t[1],t[0]&lt;e.area[0]||t[0]&gt;e.area[2]||t[1]&lt;e.area[1]||t[1]&gt;e.area[3])return null;const n=[t[0]-e.area[0],t[1]-e.area[1]],o=Qp(n[0],n[1],e.pixBuffer[Wp.ACTOR_PASS],e.area,&quot;getPixelInformationWithData1&quot;);if(o&lt;=0||o-1&gt;=e.props.length)return null;const a={valid:!0};a.propID=o-1,a.prop=e.props[a.propID];let i=Qp(n[0],n[1],e.pixBuffer[Wp.COMPOSITE_INDEX_PASS],e.area,&quot;getPixelInformationWithData2&quot;);if((i&lt;0||i&gt;16777215)&amp;&amp;(i=0),a.compositeID=i-1,e.captureZValues){const r=4*(n[1]*(e.area[2]-e.area[0]+1)+n[0]);a.zValue=(256*e.zBuffer[r]+e.zBuffer[r+1])/65535,a.displayPosition=t}if(e.pixBuffer[Wp.ID_LOW24]&amp;&amp;0===Zp(n[0],n[1],e.pixBuffer[Wp.ID_LOW24],e.area))return a;const s=Qp(n[0],n[1],e.pixBuffer[Wp.ID_LOW24],e.area,&quot;getPixelInformationWithData3&quot;),l=Qp(n[0],n[1],e.pixBuffer[Wp.ID_HIGH24],e.area,&quot;getPixelInformationWithData4&quot;);return a.attributeID=$p(s,l),a}const a=[t[0],t[1]],i=[0,0];let s=ef(e,t,0,r);if(s&amp;&amp;s.valid)return s;for(let t=1;t&lt;o;++t){for(let n=a[1]&gt;t?a[1]-t:0;n&lt;=a[1]+t;++n){if(i[1]=n,a[0]&gt;=t&amp;&amp;(i[0]=a[0]-t,s=ef(e,i,0,r),s&amp;&amp;s.valid))return s;if(i[0]=a[0]+t,s=ef(e,i,0,r),s&amp;&amp;s.valid)return s}for(let n=a[0]&gt;=t?a[0]-(t-1):0;n&lt;=a[0]+(t-1);++n){if(i[0]=n,a[1]&gt;=t&amp;&amp;(i[1]=a[1]-t,s=ef(e,i,0,r),s&amp;&amp;s.valid))return s;if(i[1]=a[1]+t,s=ef(e,i,0,r),s&amp;&amp;s.valid)return s}}return r[0]=t[0],r[1]=t[1],null}function tf(e,t,n,r,o){const a=[];let i=0;return t.forEach(((t,s)=&gt;{const l=zp.newInstance();switch(l.setContentType(Hp.INDICES),e){case Xp.FIELD_ASSOCIATION_CELLS:l.setFieldType(jp.CELL);break;case Xp.FIELD_ASSOCIATION_POINTS:l.setFieldType(jp.POINT);break;default:qp(&quot;Unknown field association&quot;)}l.getProperties().propID=t.info.propID,l.getProperties().prop=t.info.prop,l.getProperties().compositeID=t.info.compositeID,l.getProperties().attributeID=t.info.attributeID,l.getProperties().pixelCount=t.pixelCount,n&amp;&amp;(l.getProperties().displayPosition=[t.info.displayPosition[0],t.info.displayPosition[1],t.info.zValue],l.getProperties().worldPosition=o.displayToWorld(t.info.displayPosition[0],t.info.displayPosition[1],t.info.zValue,r)),l.setSelectionList(t.attributeIDs),a[i]=l,i++})),a}function nf(e,t){t.classHierarchy.push(&quot;vtkOpenGLHardwareSelector&quot;),e.releasePixBuffers=()=&gt;{t.rawPixBuffer=[],t.pixBuffer=[],t.zBuffer=null},e.beginSelection=()=&gt;{t._openGLRenderer=t._openGLRenderWindow.getViewNodeFor(t._renderer,t._openGLRenderer),t.maxAttributeId=0;const n=t._openGLRenderWindow.getSize();if(t.framebuffer){t.framebuffer.setOpenGLRenderWindow(t._openGLRenderWindow),t.framebuffer.saveCurrentBindingsAndBuffers();const e=t.framebuffer.getSize();e&amp;&amp;e[0]===n[0]&amp;&amp;e[1]===n[1]?t.framebuffer.bind():(t.framebuffer.create(n[0],n[1]),t.framebuffer.populateFramebuffer())}else t.framebuffer=Gp.newInstance(),t.framebuffer.setOpenGLRenderWindow(t._openGLRenderWindow),t.framebuffer.saveCurrentBindingsAndBuffers(),t.framebuffer.create(n[0],n[1]),t.framebuffer.populateFramebuffer();if(t._openGLRenderer.clear(),t._openGLRenderer.setSelector(e),t.hitProps={},t.propPixels={},t.props=[],e.releasePixBuffers(),t.fieldAssociation===Xp.FIELD_ASSOCIATION_POINTS){const e=t._openGLRenderWindow.getContext(),n=e.isEnabled(e.BLEND);e.disable(e.BLEND),t._openGLRenderWindow.traverseAllPasses(),n&amp;&amp;e.enable(e.BLEND)}},e.endSelection=()=&gt;{t.hitProps={},t._openGLRenderer.setSelector(null),t.framebuffer.restorePreviousBindingsAndBuffers()},e.preCapturePass=()=&gt;{const e=t._openGLRenderWindow.getContext();t.originalBlending=e.isEnabled(e.BLEND),e.disable(e.BLEND)},e.postCapturePass=()=&gt;{const e=t._openGLRenderWindow.getContext();t.originalBlending&amp;&amp;e.enable(e.BLEND)},e.select=()=&gt;{let n=null;return e.captureBuffers()&amp;&amp;(n=e.generateSelection(t.area[0],t.area[1],t.area[2],t.area[3]),e.releasePixBuffers()),n},e.getSourceDataAsync=async(n,r,o,a,i)=&gt;{if(t._renderer=n,void 0===r){const n=t._openGLRenderWindow.getSize();e.setArea(0,0,n[0]-1,n[1]-1)}else e.setArea(r,o,a,i);if(!e.captureBuffers())return!1;const s={area:[...t.area],pixBuffer:[...t.pixBuffer],captureZValues:t.captureZValues,zBuffer:t.zBuffer,props:[...t.props],fieldAssociation:t.fieldAssociation,renderer:n,openGLRenderWindow:t._openGLRenderWindow};return s.generateSelection=(...e)=&gt;function(e,t,n,r,o){const a=Math.floor(t),i=Math.floor(n),s=Math.floor(r),l=Math.floor(o),c=new Map,u=[0,0];for(let t=i;t&lt;=l;t++)for(let n=a;n&lt;=s;n++){const r=ef(e,[n,t],0,u);if(r&amp;&amp;r.valid){const t=Jp(r);if(c.has(t)){const n=c.get(t);n.pixelCount++,e.captureZValues&amp;&amp;r.zValue&lt;n.info.zValue&amp;&amp;(n.info=r),-1===n.attributeIDs.indexOf(r.attributeID)&amp;&amp;n.attributeIDs.push(r.attributeID)}else c.set(t,{info:r,pixelCount:1,attributeIDs:[r.attributeID]})}}return tf(e.fieldAssociation,c,e.captureZValues,e.renderer,e.openGLRenderWindow)}(s,...e),s},e.captureBuffers=()=&gt;{if(!t._renderer||!t._openGLRenderWindow)return qp(&quot;Renderer and view must be set before calling Select.&quot;),!1;t._openGLRenderer=t._openGLRenderWindow.getViewNodeFor(t._renderer,t._openGLRenderer),t._openGLRenderWindow.getRenderable().preRender(),e.invokeEvent({type:&quot;StartEvent&quot;}),t.originalBackground=t._renderer.getBackgroundByReference(),t._renderer.setBackground(0,0,0,0);const n=t._openGLRenderWindow.getRenderPasses();e.beginSelection();const r=[];for(t.currentPass=Wp.MIN_KNOWN_PASS;t.currentPass&lt;=Wp.MAX_KNOWN_PASS;t.currentPass++)e.passRequired(t.currentPass)&amp;&amp;(e.preCapturePass(t.currentPass),t.captureZValues&amp;&amp;t.currentPass===Wp.ACTOR_PASS&amp;&amp;&quot;function&quot;==typeof n[0].requestDepth&amp;&amp;&quot;function&quot;==typeof n[0].getFramebuffer?(n[0].requestDepth(),t._openGLRenderWindow.traverseAllPasses()):t._openGLRenderWindow.traverseAllPasses(),e.postCapturePass(t.currentPass),e.savePixelBuffer(t.currentPass),r.push(t.currentPass));return r.forEach((n=&gt;{t.currentPass=n,e.processPixelBuffers()})),t.currentPass=Wp.MAX_KNOWN_PASS,e.endSelection(),t._renderer.setBackground(t.originalBackground),e.invokeEvent({type:&quot;EndEvent&quot;}),!0},e.processPixelBuffers=()=&gt;{t.props.forEach(((n,r)=&gt;{e.isPropHit(r)&amp;&amp;n.processSelectorPixelBuffers(e,t.propPixels[r])}))},e.passRequired=e=&gt;{if(e===Wp.ID_HIGH24){if(t.fieldAssociation===Xp.FIELD_ASSOCIATION_POINTS)return t.maximumPointId&gt;16777215;if(t.fieldAssociation===Xp.FIELD_ASSOCIATION_CELLS)return t.maximumCellId&gt;16777215}return!0},e.savePixelBuffer=n=&gt;{if(t.pixBuffer[n]=t._openGLRenderWindow.getPixelData(t.area[0],t.area[1],t.area[2],t.area[3]),!t.rawPixBuffer[n]){const e=(t.area[2]-t.area[0]+1)*(t.area[3]-t.area[1]+1)*4;t.rawPixBuffer[n]=new Uint8Array(e),t.rawPixBuffer[n].set(t.pixBuffer[n])}if(n===Wp.ACTOR_PASS){if(t.captureZValues){const e=t._openGLRenderWindow.getRenderPasses();if(&quot;function&quot;==typeof e[0].requestDepth&amp;&amp;&quot;function&quot;==typeof e[0].getFramebuffer){const n=e[0].getFramebuffer();n.saveCurrentBindingsAndBuffers(),n.bind(),t.zBuffer=t._openGLRenderWindow.getPixelData(t.area[0],t.area[1],t.area[2],t.area[3]),n.restorePreviousBindingsAndBuffers()}}e.buildPropHitList(t.rawPixBuffer[n])}},e.buildPropHitList=e=&gt;{let n=0;for(let r=0;r&lt;=t.area[3]-t.area[1];r++)for(let o=0;o&lt;=t.area[2]-t.area[0];o++){let a=Qp(o,r,e,t.area,&quot;buildPropHitList&quot;);a&gt;0&amp;&amp;(a--,a in t.hitProps||(t.hitProps[a]=!0,t.propPixels[a]=[]),t.propPixels[a].push(4*n)),++n}},e.renderProp=n=&gt;{t.currentPass===Wp.ACTOR_PASS&amp;&amp;(e.setPropColorValueFromInt(t.props.length+1),t.props.push(n))},e.renderCompositeIndex=n=&gt;{t.currentPass===Wp.COMPOSITE_INDEX_PASS&amp;&amp;e.setPropColorValueFromInt(n+1)},e.renderAttributeId=e=&gt;{e&lt;0||(t.maxAttributeId=e&gt;t.maxAttributeId?e:t.maxAttributeId)},e.passTypeToString=e=&gt;sn.enumToString(Wp,e),e.isPropHit=e=&gt;Boolean(t.hitProps[e]),e.setPropColorValueFromInt=e=&gt;{t.propColorValue[0]=e%256/255,t.propColorValue[1]=Math.floor(e/256)%256/255,t.propColorValue[2]=Math.floor(e/65536)%256/255},e.getPixelInformation=(n,r,o)=&gt;{const a=r&lt;0?0:r;if(Yp(&quot;getPixelInformation called&quot;,a),0===a){if(o[0]=n[0],o[1]=n[1],n[0]&lt;t.area[0]||n[0]&gt;t.area[2]||n[1]&lt;t.area[1]||n[1]&gt;t.area[3])return null;Yp(n),Yp(t.area);const e=[n[0]-t.area[0],n[1]-t.area[1]];Yp(&quot;adjusted displayPosition&quot;,e);const r=Qp(e[0],e[1],t.pixBuffer[Wp.ACTOR_PASS],t.area,&quot;getPixelInformation&quot;);if(Yp(&quot;actorid&quot;,r),r&lt;=0||r-1&gt;=t.props.length)return null;const a={valid:!0};a.propID=r-1,a.prop=t.props[a.propID];let i=Qp(e[0],e[1],t.pixBuffer[Wp.COMPOSITE_INDEX_PASS],t.area,&quot;getPixelInformation2&quot;);if((i&lt;0||i&gt;16777215)&amp;&amp;(i=0),a.compositeID=i-1,t.captureZValues){const r=4*(e[1]*(t.area[2]-t.area[0]+1)+e[0]);a.zValue=(256*t.zBuffer[r]+t.zBuffer[r+1])/65535,a.displayPosition=n}if(t.pixBuffer[Wp.ID_LOW24]&amp;&amp;0===Zp(e[0],e[1],t.pixBuffer[Wp.ID_LOW24],t.area))return a;const s=Qp(e[0],e[1],t.pixBuffer[Wp.ID_LOW24],t.area,&quot;getPixelInformation3&quot;),l=Qp(e[0],e[1],t.pixBuffer[Wp.ID_HIGH24],t.area,&quot;getPixelInformation4&quot;);return a.attributeID=$p(s,l),a}const i=[n[0],n[1]],s=[0,0];let l=e.getPixelInformation(n,0,o);if(l&amp;&amp;l.valid)return l;for(let t=1;t&lt;a;++t){for(let n=i[1]&gt;t?i[1]-t:0;n&lt;=i[1]+t;++n){if(s[1]=n,i[0]&gt;=t&amp;&amp;(s[0]=i[0]-t,l=e.getPixelInformation(s,0,o),l&amp;&amp;l.valid))return l;if(s[0]=i[0]+t,l=e.getPixelInformation(s,0,o),l&amp;&amp;l.valid)return l}for(let n=i[0]&gt;=t?i[0]-(t-1):0;n&lt;=i[0]+(t-1);++n){if(s[0]=n,i[1]&gt;=t&amp;&amp;(s[1]=i[1]-t,l=e.getPixelInformation(s,0,o),l&amp;&amp;l.valid))return l;if(s[1]=i[1]+t,l=e.getPixelInformation(s,0,o),l&amp;&amp;l.valid)return l}}return o[0]=n[0],o[1]=n[1],null},e.generateSelection=(n,r,o,a)=&gt;{const i=Math.floor(n),s=Math.floor(r),l=Math.floor(o),c=Math.floor(a),u=new Map,d=[0,0];for(let n=s;n&lt;=c;n++)for(let r=i;r&lt;=l;r++){const o=[r,n],a=e.getPixelInformation(o,0,d);if(a&amp;&amp;a.valid){const e=Jp(a);if(u.has(e)){const n=u.get(e);n.pixelCount++,t.captureZValues&amp;&amp;a.zValue&lt;n.info.zValue&amp;&amp;(n.info=a),-1===n.attributeIDs.indexOf(a.attributeID)&amp;&amp;n.attributeIDs.push(a.attributeID)}else u.set(e,{info:a,pixelCount:1,attributeIDs:[a.attributeID]})}}return tf(t.fieldAssociation,u,t.captureZValues,t._renderer,t._openGLRenderWindow)},e.getRawPixelBuffer=e=&gt;t.rawPixBuffer[e],e.getPixelBuffer=e=&gt;t.pixBuffer[e],e.attach=(e,n)=&gt;{t._openGLRenderWindow=e,t._renderer=n};const n=e.setArea;e.setArea=(...e)=&gt;!!n(...e)&amp;&amp;(t.area[0]=Math.floor(t.area[0]),t.area[1]=Math.floor(t.area[1]),t.area[2]=Math.floor(t.area[2]),t.area[3]=Math.floor(t.area[3]),!0)}const rf={area:void 0,currentPass:-1,propColorValue:null,props:null,maximumPointId:0,maximumCellId:0,idOffset:1};function of(e,t,n={}){Object.assign(t,rf,n),Fp.extend(e,t,n),t.propColorValue=[0,0,0],t.props=[],t.area||(t.area=[0,0,0,0]),sn.setGetArray(e,t,[&quot;area&quot;],4),sn.setGet(e,t,[&quot;_renderer&quot;,&quot;currentPass&quot;,&quot;_openGLRenderWindow&quot;,&quot;maximumPointId&quot;,&quot;maximumCellId&quot;]),sn.setGetArray(e,t,[&quot;propColorValue&quot;],3),sn.moveToProtected(e,t,[&quot;renderer&quot;,&quot;openGLRenderWindow&quot;]),sn.event(e,t,&quot;event&quot;),nf(e,t)}var af={newInstance:sn.newInstance(of,&quot;vtkOpenGLHardwareSelector&quot;),extend:of,...Fl};const{vtkErrorMacro:sf}=ln,{Representation:lf}=us,{ObjectType:cf}=nd,{PassTypes:uf}=af,df={type:&quot;StartEvent&quot;},pf={type:&quot;EndEvent&quot;};const ff={normalMatrix:null,mcpcMatrix:null,mcwcMatrix:null};const gf=Xt((function(e,t,n={}){Object.assign(t,ff,n),up.extend(e,t,n),t.tmpMat3=c(new Float64Array(9)),t.normalMatrix=c(new Float64Array(9)),t.mcpcMatrix=x(new Float64Array(16)),t.mcvcMatrix=x(new Float64Array(16)),t.tmpColor=[],t.glyphBOBuildTime={},Vt(t.glyphBOBuildTime,{mtime:0}),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLGlyph3DMapper&quot;);const n={...e};e.renderPiece=(n,r)=&gt;{if(e.invokeEvent(df),t.renderable.getStatic()||t.renderable.update(),t.currentInput=t.renderable.getInputData(1),e.invokeEvent(pf),!t.currentInput)return void sf(&quot;No input!&quot;);if(!t.currentInput.getPoints||!t.currentInput.getPoints().getNumberOfValues())return;const o=t.context;t._openGLRenderWindow.getWebgl2()?(t.hardwareSupport=!0,t.extension=null):t.extension||(t.extension=t.context.getExtension(&quot;ANGLE_instanced_arrays&quot;),t.hardwareSupport=!!t.extension);const a=r.getProperty().getBackfaceCulling(),i=r.getProperty().getFrontfaceCulling();a||i?i?(t._openGLRenderWindow.enableCullFace(),o.cullFace(o.FRONT)):(t._openGLRenderWindow.enableCullFace(),o.cullFace(o.BACK)):t._openGLRenderWindow.disableCullFace(),e.renderPieceStart(n,r),e.renderPieceDraw(n,r),e.renderPieceFinish(n,r)},e.multiply4x4WithOffset=(e,t,n,r)=&gt;{const o=t[0],a=t[1],i=t[2],s=t[3],l=t[4],c=t[5],u=t[6],d=t[7],p=t[8],f=t[9],g=t[10],m=t[11],h=t[12],v=t[13],T=t[14],x=t[15];let y=n[r],b=n[r+1],A=n[r+2],C=n[r+3];e[0]=y*o+b*l+A*p+C*h,e[1]=y*a+b*c+A*f+C*v,e[2]=y*i+b*u+A*g+C*T,e[3]=y*s+b*d+A*m+C*x,y=n[r+4],b=n[r+5],A=n[r+6],C=n[r+7],e[4]=y*o+b*l+A*p+C*h,e[5]=y*a+b*c+A*f+C*v,e[6]=y*i+b*u+A*g+C*T,e[7]=y*s+b*d+A*m+C*x,y=n[r+8],b=n[r+9],A=n[r+10],C=n[r+11],e[8]=y*o+b*l+A*p+C*h,e[9]=y*a+b*c+A*f+C*v,e[10]=y*i+b*u+A*g+C*T,e[11]=y*s+b*d+A*m+C*x,y=n[r+12],b=n[r+13],A=n[r+14],C=n[r+15],e[12]=y*o+b*l+A*p+C*h,e[13]=y*a+b*c+A*f+C*v,e[14]=y*i+b*u+A*g+C*T,e[15]=y*s+b*d+A*m+C*x},e.replaceShaderNormal=(e,r,o)=&gt;{if(t.hardwareSupport&amp;&amp;t.lastBoundBO.getReferenceByName(&quot;lastLightComplexity&quot;)&gt;0){let n=e.Vertex;t.lastBoundBO.getCABO().getNormalOffset()&amp;&amp;(n=vd.substitute(n,&quot;//VTK::Normal::Dec&quot;,[&quot;attribute vec3 normalMC;&quot;,&quot;attribute mat3 gNormal;&quot;,&quot;uniform mat3 normalMatrix;&quot;,&quot;varying vec3 normalVCVSOutput;&quot;]).result,n=vd.substitute(n,&quot;//VTK::Normal::Impl&quot;,[&quot;normalVCVSOutput = normalMatrix * gNormal * normalMC;&quot;]).result),e.Vertex=n}n.replaceShaderNormal(e,r,o)},e.replaceShaderClip=(e,r,o)=&gt;{if(t.hardwareSupport){let n=e.Vertex,r=e.Fragment;if(t.renderable.getNumberOfClippingPlanes()){const e=t.renderable.getNumberOfClippingPlanes();n=vd.substitute(n,&quot;//VTK::Clip::Dec&quot;,[&quot;uniform int numClipPlanes;&quot;,`uniform vec4 clipPlanes[${e}];`,`varying float clipDistancesVSOutput[${e}];`]).result,n=vd.substitute(n,&quot;//VTK::Clip::Impl&quot;,[`for (int planeNum = 0; planeNum &lt; ${e}; planeNum++)`,&quot;    {&quot;,&quot;    if (planeNum &gt;= numClipPlanes)&quot;,&quot;        {&quot;,&quot;        break;&quot;,&quot;        }&quot;,&quot;    vec4 gVertex = gMatrix * vertexMC;&quot;,&quot;    clipDistancesVSOutput[planeNum] = dot(clipPlanes[planeNum], gVertex);&quot;,&quot;    }&quot;]).result,r=vd.substitute(r,&quot;//VTK::Clip::Dec&quot;,[&quot;uniform int numClipPlanes;&quot;,`varying float clipDistancesVSOutput[${e}];`]).result,r=vd.substitute(r,&quot;//VTK::Clip::Impl&quot;,[`for (int planeNum = 0; planeNum &lt; ${e}; planeNum++)`,&quot;    {&quot;,&quot;    if (planeNum &gt;= numClipPlanes)&quot;,&quot;        {&quot;,&quot;        break;&quot;,&quot;        }&quot;,&quot;    if (clipDistancesVSOutput[planeNum] &lt; 0.0) discard;&quot;,&quot;    }&quot;]).result}e.Vertex=n,e.Fragment=r}n.replaceShaderClip(e,r,o)},e.replaceShaderColor=(e,r,o)=&gt;{if(t.hardwareSupport&amp;&amp;t.renderable.getColorArray()){let n=e.Vertex,r=e.Geometry,o=e.Fragment;const a=t.lastBoundBO.getReferenceByName(&quot;lastLightComplexity&quot;);let i=[&quot;uniform float ambient;&quot;,&quot;uniform float diffuse;&quot;,&quot;uniform float specular;&quot;,&quot;uniform float opacityUniform; // the fragment opacity&quot;];a&amp;&amp;(i=i.concat([&quot;uniform vec3 specularColorUniform;&quot;,&quot;uniform float specularPowerUniform;&quot;]));let s=[&quot;vec3 ambientColor;&quot;,&quot;  vec3 diffuseColor;&quot;,&quot;  float opacity;&quot;];a&amp;&amp;(s=s.concat([&quot;  vec3 specularColor;&quot;,&quot;  float specularPower;&quot;])),s=s.concat([&quot;  opacity = opacityUniform;&quot;]),a&amp;&amp;(s=s.concat([&quot;  specularColor = specularColorUniform;&quot;,&quot;  specularPower = specularPowerUniform;&quot;])),t.drawingEdges||(i=i.concat([&quot;varying vec4 vertexColorVSOutput;&quot;]),n=vd.substitute(n,&quot;//VTK::Color::Dec&quot;,[&quot;attribute vec4 gColor;&quot;,&quot;varying vec4 vertexColorVSOutput;&quot;]).result,n=vd.substitute(n,&quot;//VTK::Color::Impl&quot;,[&quot;vertexColorVSOutput = gColor;&quot;]).result,r=vd.substitute(r,&quot;//VTK::Color::Dec&quot;,[&quot;in vec4 vertexColorVSOutput[];&quot;,&quot;out vec4 vertexColorGSOutput;&quot;]).result,r=vd.substitute(r,&quot;//VTK::Color::Impl&quot;,[&quot;vertexColorGSOutput = vertexColorVSOutput[i];&quot;]).result,s=s.concat([&quot;  diffuseColor = vertexColorVSOutput.rgb;&quot;,&quot;  ambientColor = vertexColorVSOutput.rgb;&quot;,&quot;  opacity = opacity*vertexColorVSOutput.a;&quot;])),o=vd.substitute(o,&quot;//VTK::Color::Impl&quot;,s).result,o=vd.substitute(o,&quot;//VTK::Color::Dec&quot;,i).result,e.Vertex=n,e.Geometry=r,e.Fragment=o}n.replaceShaderColor(e,r,o)},e.replaceShaderPositionVC=(e,r,o)=&gt;{if(t.hardwareSupport){let n=e.Vertex;t.lastBoundBO.getReferenceByName(&quot;lastLightComplexity&quot;)&gt;0?(n=vd.substitute(n,&quot;//VTK::PositionVC::Impl&quot;,[&quot;vec4 gVertexMC = gMatrix * vertexMC;&quot;,&quot;vertexVCVSOutput = MCVCMatrix * gVertexMC;&quot;,&quot;  gl_Position = MCPCMatrix * gVertexMC;&quot;]).result,n=vd.substitute(n,&quot;//VTK::Camera::Dec&quot;,[&quot;attribute mat4 gMatrix;&quot;,&quot;uniform mat4 MCPCMatrix;&quot;,&quot;uniform mat4 MCVCMatrix;&quot;]).result):(n=vd.substitute(n,&quot;//VTK::Camera::Dec&quot;,[&quot;attribute mat4 gMatrix;&quot;,&quot;uniform mat4 MCPCMatrix;&quot;]).result,n=vd.substitute(n,&quot;//VTK::PositionVC::Impl&quot;,[&quot;vec4 gVertexMC = gMatrix * vertexMC;&quot;,&quot;  gl_Position = MCPCMatrix * gVertexMC;&quot;]).result),e.Vertex=n}n.replaceShaderPositionVC(e,r,o)},e.replaceShaderPicking=(e,r,o)=&gt;{if(t.hardwareSupport){let t=e.Fragment,n=e.Vertex;n=vd.substitute(n,&quot;//VTK::Picking::Dec&quot;,[&quot;attribute vec3 mapperIndexVS;&quot;,&quot;varying vec3 mapperIndexVSOutput;&quot;]).result,n=vd.substitute(n,&quot;//VTK::Picking::Impl&quot;,&quot;  mapperIndexVSOutput = mapperIndexVS;&quot;).result,e.Vertex=n,t=vd.substitute(t,&quot;//VTK::Picking::Dec&quot;,[&quot;varying vec3 mapperIndexVSOutput;&quot;,&quot;uniform vec3 mapperIndex;&quot;,&quot;uniform int picking;&quot;]).result,t=vd.substitute(t,&quot;//VTK::Picking::Impl&quot;,[&quot;  vec4 pickColor = picking == 2 ? vec4(mapperIndexVSOutput,1.0) : vec4(mapperIndex,1.0);&quot;,&quot;  gl_FragData[0] = picking != 0 ? pickColor : gl_FragData[0];&quot;]).result,e.Fragment=t}else n.replaceShaderPicking(e,r,o)},e.updateGlyphShaderParameters=(n,r,o,a,i,s,l,c)=&gt;{const u=o.getProgram();if(n){const e=t.normalMatrix,n=s,r=9*l,o=t.tmpMat3,a=e[0],i=e[1],c=e[2],d=e[3],p=e[4],f=e[5],g=e[6],m=e[7],h=e[8],v=n[r],T=n[r+1],x=n[r+2],y=n[r+3],b=n[r+4],A=n[r+5],C=n[r+6],S=n[r+7],P=n[r+8];o[0]=v*a+T*d+x*g,o[1]=v*i+T*p+x*m,o[2]=v*c+T*f+x*h,o[3]=y*a+b*d+A*g,o[4]=y*i+b*p+A*m,o[5]=y*c+b*f+A*h,o[6]=C*a+S*d+P*g,o[7]=C*i+S*p+P*m,o[8]=C*c+S*f+P*h,u.setUniformMatrix3x3(&quot;normalMatrix&quot;,t.tmpMat3)}if(e.multiply4x4WithOffset(t.tmpMat4,t.mcpcMatrix,i,16*l),u.setUniformMatrix(&quot;MCPCMatrix&quot;,t.tmpMat4),r&amp;&amp;(e.multiply4x4WithOffset(t.tmpMat4,t.mcvcMatrix,i,16*l),u.setUniformMatrix(&quot;MCVCMatrix&quot;,t.tmpMat4)),a){const e=a.getData();t.tmpColor[0]=e[4*l]/255,t.tmpColor[1]=e[4*l+1]/255,t.tmpColor[2]=e[4*l+2]/255,u.setUniform3fArray(&quot;ambientColorUniform&quot;,t.tmpColor),u.setUniform3fArray(&quot;diffuseColorUniform&quot;,t.tmpColor)}c&amp;&amp;u.setUniform3fArray(&quot;mapperIndex&quot;,c.getPropColorValue())},e.renderPieceDraw=(n,r)=&gt;{const o=r.getProperty().getRepresentation(),a=t.context,i=r.getProperty().getEdgeVisibility()&amp;&amp;o===lf.SURFACE,s=t.openGLCamera.getKeyMatrices(n),l=t.openGLActor.getKeyMatrices();p(t.normalMatrix,s.normalMatrix,l.normalMatrix),A(t.mcpcMatrix,s.wcpc,l.mcwc),A(t.mcvcMatrix,s.wcvc,l.mcwc);const c=t.renderable.getMatrixArray(),u=t.renderable.getNormalArray(),d=t.renderable.getColorArray(),f=c.length/16;let g=!1;t._openGLRenderer.getSelector()&amp;&amp;t._openGLRenderer.getSelector().getCurrentPass()===uf.COMPOSITE_INDEX_PASS&amp;&amp;(g=!0);for(let s=t.primTypes.Start;s&lt;t.primTypes.End;s++){const l=t.primitives[s].getCABO();if(l.getElementCount()){t.drawingEdges=i&amp;&amp;(s===t.primTypes.TrisEdges||s===t.primTypes.TriStripsEdges),t.lastBoundBO=t.primitives[s],t.primitives[s].updateShaders(n,r,e);const p=t.primitives[s].getProgram(),m=t.primitives[s].getOpenGLMode(o),h=p.isUniformUsed(&quot;normalMatrix&quot;),v=p.isUniformUsed(&quot;MCVCMatrix&quot;);if(t.hardwareSupport)t.extension?t.extension.drawArraysInstancedANGLE(m,0,l.getElementCount(),f):a.drawArraysInstanced(m,0,l.getElementCount(),f);else for(let n=0;n&lt;f;++n)g&amp;&amp;t._openGLRenderer.getSelector().renderCompositeIndex(n),e.updateGlyphShaderParameters(h,v,t.primitives[s],d,c,u,n,g?t._openGLRenderer.getSelector():null),a.drawArrays(m,0,l.getElementCount())}}},e.setMapperShaderParameters=(e,r,o)=&gt;{if(e.getCABO().getElementCount()&amp;&amp;(t.glyphBOBuildTime.getMTime()&gt;e.getAttributeUpdateTime().getMTime()||e.getShaderSourceTime().getMTime()&gt;e.getAttributeUpdateTime().getMTime()))return e.getProgram().isAttributeUsed(&quot;gMatrix&quot;)?e.getVAO().addAttributeMatrixWithDivisor(e.getProgram(),t.matrixBuffer,&quot;gMatrix&quot;,0,64,t.context.FLOAT,4,!1,1)||sf(&quot;Error setting gMatrix in shader VAO.&quot;):e.getVAO().removeAttributeArray(&quot;gMatrix&quot;),e.getProgram().isAttributeUsed(&quot;gNormal&quot;)?e.getVAO().addAttributeMatrixWithDivisor(e.getProgram(),t.normalBuffer,&quot;gNormal&quot;,0,36,t.context.FLOAT,3,!1,1)||sf(&quot;Error setting gNormal in shader VAO.&quot;):e.getVAO().removeAttributeArray(&quot;gNormal&quot;),e.getProgram().isAttributeUsed(&quot;gColor&quot;)?e.getVAO().addAttributeArrayWithDivisor(e.getProgram(),t.colorBuffer,&quot;gColor&quot;,0,4,t.context.UNSIGNED_BYTE,4,!0,1,!1)||sf(&quot;Error setting gColor in shader VAO.&quot;):e.getVAO().removeAttributeArray(&quot;gColor&quot;),e.getProgram().isAttributeUsed(&quot;mapperIndexVS&quot;)?e.getVAO().addAttributeArrayWithDivisor(e.getProgram(),t.pickBuffer,&quot;mapperIndexVS&quot;,0,4,t.context.UNSIGNED_BYTE,4,!0,1,!1)||sf(&quot;Error setting mapperIndexVS in shader VAO.&quot;):e.getVAO().removeAttributeArray(&quot;mapperIndexVS&quot;),n.setMapperShaderParameters(e,r,o),void e.getAttributeUpdateTime().modified();n.setMapperShaderParameters(e,r,o)},e.getNeedToRebuildBufferObjects=(e,r)=&gt;(t.renderable.buildArrays(),t.VBOBuildTime.getMTime()&lt;t.renderable.getBuildTime().getMTime()||n.getNeedToRebuildBufferObjects(e,r)),e.getNeedToRebuildShaders=(e,r,o)=&gt;!!(n.getNeedToRebuildShaders(e,r,o)||e.getShaderSourceTime().getMTime()&lt;t.renderable.getMTime()||e.getShaderSourceTime().getMTime()&lt;t.currentInput.getMTime()),e.buildBufferObjects=(e,r)=&gt;{const o=t.renderable.getMatrixArray(),a=t.renderable.getInputData(0).getPoints(),{useShiftAndScale:i,coordShift:s,coordScale:l}=rd(a);if(t.hardwareSupport){const e=t.renderable.getNormalArray(),n=t.renderable.getColorArray();if(t.matrixBuffer||(t.matrixBuffer=nd.newInstance(),t.matrixBuffer.setOpenGLRenderWindow(t._openGLRenderWindow),t.normalBuffer=nd.newInstance(),t.normalBuffer.setOpenGLRenderWindow(t._openGLRenderWindow),t.colorBuffer=nd.newInstance(),t.colorBuffer.setOpenGLRenderWindow(t._openGLRenderWindow),t.pickBuffer=nd.newInstance(),t.pickBuffer.setOpenGLRenderWindow(t._openGLRenderWindow)),i){const e=o.buffer,t=od(s,l);b(t,t);for(let n=0;n&lt;o.byteLength;n+=64){const r=new Float32Array(e,n,16);A(r,t,r)}}if(t.renderable.getBuildTime().getMTime()&gt;t.glyphBOBuildTime.getMTime()){t.matrixBuffer.upload(o,cf.ARRAY_BUFFER),t.normalBuffer.upload(e,cf.ARRAY_BUFFER),n?t.colorBuffer.upload(n.getData(),cf.ARRAY_BUFFER):t.colorBuffer.releaseGraphicsResources();const r=o.length/16,a=new Uint8Array(4*r);for(let e=0;e&lt;r;++e){let t=e+1;const n=4*e;a[n]=t%256,t-=a[n],t/=256,a[n+1]=t%256,t-=a[n+1],t/=256,a[n+2]=t%256,a[n+3]=255}t.pickBuffer.upload(a,cf.ARRAY_BUFFER),t.glyphBOBuildTime.modified()}}if(n.buildBufferObjects(e,r),i)for(let e=bd.Start;e&lt;bd.End;e++)t.primitives[e].getCABO().setCoordShiftAndScale(s,l)}}(e,t)}),&quot;vtkOpenGLGlyph3DMapper&quot;);vn(&quot;vtkGlyph3DMapper&quot;,gf);const{vtkErrorMacro:mf}=sn;class hf{constructor(){this.segmentMapping={},this.segments=[null],this.faces=[]}addSegment(e){const t=e[0],n=e[e.length-1];if(t===n||e.length&lt;2)return;const r=this.segmentMapping[t],o=this.segmentMapping[n];if(void 0!==r&amp;&amp;void 0!==o)if(Math.abs(r)===Math.abs(o)){const a=r&lt;o?o:r,i=this.segments[a];if(r&gt;0)for(let t=1;t&lt;e.length-1;t++)i.push(e[t]);else for(let t=1;t&lt;e.length-1;t++)i.unshift(e[e.length-1-t]);this.faces.push(i),this.segments[a]=null,this.segmentMapping[t]=void 0,this.segmentMapping[n]=void 0}else{const t=Math.abs(r),n=Math.abs(o),a=this.segments[t],i=this.segments[n];this.segments[t]=null,this.segments[n]=null,this.segmentMapping[a[0]]=void 0,this.segmentMapping[i[0]]=void 0,this.segmentMapping[a[a.length-1]]=void 0,this.segmentMapping[i[i.length-1]]=void 0,this.addSegment(e),this.addSegment(a),this.addSegment(i)}else if(void 0!==r){if(r&gt;0){const t=this.segments[r];for(let n=1;n&lt;e.length;n++)t.push(e[n]);this.segmentMapping[n]=r}else{const t=this.segments[-r];this.segmentMapping[n]=r;for(let n=1;n&lt;e.length;n++)t.unshift(e[n])}this.segmentMapping[t]=void 0}else if(void 0!==o){if(o&gt;0){const n=this.segments[o];for(let t=1;t&lt;e.length;t++)n.push(e[e.length-1-t]);this.segmentMapping[t]=o}else{const n=this.segments[-o];this.segmentMapping[t]=o;for(let t=1;t&lt;e.length;t++)n.unshift(e[e.length-t-1])}this.segmentMapping[n]=void 0}else{const r=this.segments.length;this.segments.push(e),this.segmentMapping[t]=-r,this.segmentMapping[n]=r}}}const vf={};function Tf(e,t,n={}){Object.assign(t,vf,n),sn.obj(e,t),sn.algo(e,t,1,1),function(e,t){t.classHierarchy.push(&quot;vtkClosedPolyLineToSurfaceFilter&quot;),e.requestData=(e,t)=&gt;{const n=e[0];if(!n)return void mf(&quot;Invalid or missing input&quot;);const r=t[0]?.initialize()||Ru.newInstance();r.shallowCopy(n);const o=new hf,a=n.getLines().getData();let i=0;for(;i&lt;a.length;){const e=a[i++],t=[];for(let n=0;n&lt;e;n++)t.push(a[i+n]);o.addSegment(t),i+=e}const{faces:s}=o;let l=s.length;for(let e=0;e&lt;s.length;e++)l+=s[e].length;const c=new Uint16Array(l);i=0;for(let e=0;e&lt;s.length;e++){const t=s[e];c[i++]=t.length;for(let e=0;e&lt;t.length;e++)c[i++]=t[e]}r.setPolys(oc.newInstance({values:c,name:&quot;faces&quot;})),t[0]=r}}(e,t)}var xf={newInstance:sn.newInstance(Tf,&quot;vtkClosedPolyLineToSurfaceFilter&quot;),extend:Tf};const{vtkErrorMacro:yf}=ln;function bf(e,t){t.classHierarchy.push(&quot;vtkCutter&quot;);const n={...e};function r(e,n){const r=e.getPoints(),o=r.getData(),a=e.getPointData(),i=r.getNumberOfPoints(),s=[],l=[],c=[],u={},d=a.getNumberOfArrays();for(let e=0;e&lt;d;e++)u[a.getArrayName(e)]=[];(!t.cutScalars||t.cutScalars.length&lt;i)&amp;&amp;(t.cutScalars=new Float32Array(i));let p=0,f=0;for(;p&lt;o.length;)t.cutScalars[f++]=t.cutFunction.evaluateFunction(o[p++],o[p++],o[p++]);const g=[],m=new Array(3),h=new Array(3),v=[];for(const n=function(e){const t=e.getPolys().getData(),n=e.getStrips().getData(),r={cellSize:0,cell:[],done:!1,polyIdx:0,stripIdx:0,remainingStripLength:0,next(){if(r.polyIdx&lt;t.length){r.cellSize=t[r.polyIdx];const e=r.polyIdx+1,n=e+r.cellSize;r.polyIdx=n;let o=0;for(let a=e;a&lt;n;++a)r.cell[o++]=t[a]}else if(r.stripIdx&lt;n.length){r.cellSize=3,0===r.remainingStripLength&amp;&amp;(r.remainingStripLength=n[r.stripIdx]-2,r.stripIdx+=3);const e=r.stripIdx-2,t=r.stripIdx+1;r.stripIdx++,r.remainingStripLength--;let o=0;for(let a=e;a&lt;t;++a)r.cell[o++]=n[a]}else{if(r.done)throw new Error(&quot;Iterator is done&quot;);r.done=!0}}};return r.next(),r}(e);!n.done;n.next()){if(n.cellSize&lt;=2)continue;for(let e=0;e&lt;n.cellSize;)v[e]=t.cutScalars[n.cell[e++]];const e=v[0]&gt;0;let r=!0;for(let t=1;t&lt;n.cell.length;t++){if(v[t]&gt;0!==e){r=!1;break}}if(r)continue;const i=[];for(let e=0;e&lt;n.cellSize;e++){const r=e+1===n.cellSize?0:e+1,s=v[e]&gt;0;if(v[r]&gt;0===s)continue;let l=e,c=r,u=v[c]-v[l];u&lt;=0&amp;&amp;(l=r,c=e,u*=-1);let p=0;0!==u&amp;&amp;(p=(t.cutValue-v[l])/u);const f=n.cell[l],g=n.cell[c];m[0]=o[3*f],m[1]=o[3*f+1],m[2]=o[3*f+2],h[0]=o[3*g],h[1]=o[3*g+1],h[2]=o[3*g+2];const T=[m[0]+p*(h[0]-m[0]),m[1]+p*(h[1]-m[1]),m[2]+p*(h[2]-m[2])],x={};for(let e=0;e&lt;d;e++){const t=a.getArrayByIndex(e),n=a.getArrayName(e),r=t.getData(),o=t.getNumberOfComponents(),i=new Array(o);for(let e=0;e&lt;o;e++){const t=r[o*f+e],n=r[o*g+e];i.push(t+p*(n-t))}x[n]=i}i.push({pointEdge1:f,pointEdge2:g,intersectedPoint:T,intersectedArrays:x,newPointID:-1})}for(let e=0;e&lt;i.length;e++){const t=i[e];let n=!1;for(let r=0;r&lt;g.length;r++){const o=g[r],a=t.pointEdge1===o.pointEdge1&amp;&amp;t.pointEdge2===o.pointEdge2,s=t.intersectedPoint[0]===o.intersectedPoint[0]&amp;&amp;t.intersectedPoint[1]===o.intersectedPoint[1]&amp;&amp;t.intersectedPoint[2]===o.intersectedPoint[2];if(a||s){n=!0,i[e].newPointID=g[r].newPointID;break}}n||(s.push(t.intersectedPoint[0]),s.push(t.intersectedPoint[1]),s.push(t.intersectedPoint[2]),Object.keys(t.intersectedArrays).forEach((e=&gt;{u[e].push(...t.intersectedArrays[e])})),i[e].newPointID=s.length/3-1,g.push(i[e]))}const p=i.length;2===p?l.push(p,i[0].newPointID,i[1].newPointID):p&gt;2&amp;&amp;(c.push(p),i.forEach((e=&gt;{c.push(e.newPointID)})))}n.getPoints().setData(St(r.getDataType(),s),3);const T=n.getPointData();for(let e=0;e&lt;d;e++){const t=a.getArrayName(e),n=Is.newInstance({name:t,dataType:a.getArrayByIndex(e).getDataType(),values:u[t],numberOfComponents:a.getArrayByIndex(e).getNumberOfComponents()});T.addArray(n)}0!==l.length&amp;&amp;n.getLines().setData(Uint16Array.from(l)),0!==c.length&amp;&amp;n.getPolys().setData(Uint16Array.from(c))}e.getMTime=()=&gt;{let e=n.getMTime();return t.cutFunction?(e=Math.max(e,t.cutFunction.getMTime()),e):e},e.requestData=(e,n)=&gt;{const o=e[0];if(!o)return void yf(&quot;Invalid or missing input&quot;);if(!t.cutFunction)return void yf(&quot;Missing cut function&quot;);const a=n[0]?.initialize()||Ru.newInstance();r(o,a),n[0]=a}}const Af={cutFunction:null,cutScalars:null,cutValue:0};function Cf(e,t,n={}){Object.assign(t,Af,n),Vt(e,t),Wt(e,t,1,1),Gt(e,t,[&quot;cutFunction&quot;,&quot;cutValue&quot;]),bf(e,t)}var Sf={newInstance:Xt(Cf,&quot;vtkCutter&quot;),extend:Cf};const Pf=e=&gt;e,wf=1e-6;class If{constructor(e=!1){this.matrix=x(new Float64Array(16)),this.tmp=new Float64Array(3),this.angleConv=e?a:Pf}rotateFromDirections(e,t){const n=new Float64Array(3),r=new Float64Array(3),o=new Float64Array(16);Y(n,e[0],e[1],e[2]),Y(r,t[0],t[1],t[2]),te(n,n),te(r,r);const a=ne(n,r);return a&gt;=1||(re(this.tmp,n,r),X(this.tmp)&lt;wf&amp;&amp;(re(this.tmp,[1,0,0],e),X(this.tmp)&lt;wf&amp;&amp;re(this.tmp,[0,1,0],e)),D(o,Math.acos(a),this.tmp),A(this.matrix,this.matrix,o)),this}rotate(e,t){return Y(this.tmp,...t),te(this.tmp,this.tmp),P(this.matrix,this.matrix,this.angleConv(e),this.tmp),this}rotateX(e){return w(this.matrix,this.matrix,this.angleConv(e)),this}rotateY(e){return I(this.matrix,this.matrix,this.angleConv(e)),this}rotateZ(e){return O(this.matrix,this.matrix,this.angleConv(e)),this}translate(e,t,n){return Y(this.tmp,e,t,n),C(this.matrix,this.matrix,this.tmp),this}scale(e,t,n){return Y(this.tmp,e,t,n),S(this.matrix,this.matrix,this.tmp),this}multiply(e){return A(this.matrix,this.matrix,e),this}multiply3x3(e){return A(this.matrix,this.matrix,[e[0],e[1],e[2],0,e[3],e[4],e[5],0,e[6],e[7],e[8],0,0,0,0,1]),this}invert(){return b(this.matrix,this.matrix),this}identity(){return x(this.matrix),this}apply(e,t=0,n=-1){if(oa(ho,this.matrix))return this;const r=-1===n?e.length:t+3*n;for(let n=t;n&lt;r;n+=3)Y(this.tmp,e[n],e[n+1],e[n+2]),oe(this.tmp,this.tmp,this.matrix),e[n]=this.tmp[0],e[n+1]=this.tmp[1],e[n+2]=this.tmp[2];return this}getMatrix(){return this.matrix}setMatrix(e){return e&amp;&amp;16===e.length&amp;&amp;T(this.matrix,e),this}}var Of={buildFromDegree:function(){return new If(!0)},buildFromRadian:function(){return new If(!1)}};const Rf=[2,0,1,2,2,3,2,4,5,2,6,7,2,0,2,2,1,3,2,4,6,2,5,7,2,0,4,2,1,5,2,2,6,2,3,7],Mf=[4,0,1,3,2,4,4,6,7,5,4,8,10,11,9,4,12,13,15,14,4,16,18,19,17,4,20,21,23,22];const Df={xLength:1,yLength:1,zLength:1,pointType:&quot;Float64Array&quot;,generate3DTextureCoordinates:!1,generateFaces:!0,generateLines:!1};function Ef(e,t,n={}){Object.assign(t,Df,n),sn.obj(e,t),sn.setGet(e,t,[&quot;xLength&quot;,&quot;yLength&quot;,&quot;zLength&quot;,&quot;generate3DTextureCoordinates&quot;,&quot;generateFaces&quot;,&quot;generateLines&quot;]),sn.setGetArray(e,t,[&quot;center&quot;,&quot;rotations&quot;],3),sn.setGetArray(e,t,[&quot;matrix&quot;],16),t._polys=oc.newInstance({values:Uint16Array.from(Mf)}),t._lineCells=oc.newInstance({values:Uint16Array.from(Rf)}),sn.moveToProtected(e,t,[&quot;polys&quot;,&quot;lineCells&quot;]),sn.algo(e,t,0,1),function(e,t){t.classHierarchy.push(&quot;vtkCubeSource&quot;),e.requestData=(e,n)=&gt;{const r=n[0]?.initialize()||Ru.newInstance();n[0]=r;const o=sn.newTypedArray(t.pointType,72);r.getPoints().setData(o,3);const a=sn.newTypedArray(t.pointType,72),i=Is.newInstance({name:&quot;Normals&quot;,values:a,numberOfComponents:3});r.getPointData().setNormals(i);let s=2;!0===t.generate3DTextureCoordinates&amp;&amp;(s=3);const l=sn.newTypedArray(t.pointType,24*s),c=Is.newInstance({name:&quot;TextureCoordinates&quot;,values:l,numberOfComponents:s});r.getPointData().setTCoords(c);const u=[0,0,0],d=[0,0,0],p=[0,0];let f=0;u[0]=-t.xLength/2,d[0]=-1,d[1]=0,d[2]=0;for(let e=0;e&lt;2;e++){u[1]=-t.yLength/2;for(let n=0;n&lt;2;n++){p[1]=u[1]+.5,u[2]=-t.zLength/2;for(let r=0;r&lt;2;r++)p[0]=(u[2]+.5)*(1-2*e),o[3*f]=u[0],o[3*f+1]=u[1],o[3*f+2]=u[2],a[3*f]=d[0],a[3*f+1]=d[1],a[3*f+2]=d[2],2===s?(l[f*s]=p[0],l[f*s+1]=p[1]):(l[f*s]=2*e-1,l[f*s+1]=2*n-1,l[f*s+2]=2*r-1),f++,u[2]+=t.zLength;u[1]+=t.yLength}u[0]+=t.xLength,d[0]+=2}u[1]=-t.yLength/2,d[1]=-1,d[0]=0,d[2]=0;for(let e=0;e&lt;2;e++){u[0]=-t.xLength/2;for(let n=0;n&lt;2;n++){p[0]=(u[0]+.5)*(2*e-1),u[2]=-t.zLength/2;for(let r=0;r&lt;2;r++)p[1]=-1*(u[2]+.5),o[3*f]=u[0],o[3*f+1]=u[1],o[3*f+2]=u[2],a[3*f]=d[0],a[3*f+1]=d[1],a[3*f+2]=d[2],2===s?(l[f*s]=p[0],l[f*s+1]=p[1]):(l[f*s]=2*n-1,l[f*s+1]=2*e-1,l[f*s+2]=2*r-1),f++,u[2]+=t.zLength;u[0]+=t.xLength}u[1]+=t.yLength,d[1]+=2}u[2]=-t.zLength/2,d[2]=-1,d[0]=0,d[1]=0;for(let e=0;e&lt;2;e++){u[1]=-t.yLength/2;for(let n=0;n&lt;2;n++){p[1]=u[1]+.5,u[0]=-t.xLength/2;for(let r=0;r&lt;2;r++)p[0]=(u[0]+.5)*(2*e-1),o[3*f]=u[0],o[3*f+1]=u[1],o[3*f+2]=u[2],a[3*f]=d[0],a[3*f+1]=d[1],a[3*f+2]=d[2],2===s?(l[f*s]=p[0],l[f*s+1]=p[1]):(l[f*s]=2*r-1,l[f*s+1]=2*n-1,l[f*s+2]=2*e-1),f++,u[0]+=t.xLength;u[1]+=t.yLength}u[2]+=t.zLength,d[2]+=2}if(t.rotations&amp;&amp;Of.buildFromDegree().rotateX(t.rotations[0]).rotateY(t.rotations[1]).rotateZ(t.rotations[2]).apply(o).apply(a),t.center&amp;&amp;Of.buildFromRadian().translate(...t.center).apply(o),t.matrix){Of.buildFromRadian().setMatrix(t.matrix).apply(o);const e=[t.matrix[0],t.matrix[1],t.matrix[2],0,t.matrix[4],t.matrix[5],t.matrix[6],0,t.matrix[8],t.matrix[9],t.matrix[10],0,0,0,0,1];Of.buildFromRadian().setMatrix(e).apply(a)}t.generateFaces?r.getPolys().deepCopy(t._polys):r.getPolys().initialize(),t.generateLines?(r.getLines().deepCopy(t._lineCells),r.getPointData().setNormals(null)):r.getLines().initialize(),r.modified()},e.setBounds=(...t)=&gt;{let n=[];if(Array.isArray(t[0]))n=t[0];else for(let e=0;e&lt;t.length;e++)n.push(t[e]);6===n.length&amp;&amp;(e.setXLength(n[1]-n[0]),e.setYLength(n[3]-n[2]),e.setZLength(n[5]-n[4]),e.setCenter([(n[0]+n[1])/2,(n[2]+n[3])/2,(n[4]+n[5])/2]))}}(e,t)}var Vf={newInstance:sn.newInstance(Ef,&quot;vtkCubeSource&quot;),extend:Ef};const{vtkErrorMacro:Lf}=sn;const Bf={};function Ff(e,t,n={}){Object.assign(t,Bf,n),sn.obj(e,t),sn.algo(e,t,1,1),t._cubeSource=Vf.newInstance(),sn.moveToProtected(e,t,[&quot;cubeSource&quot;,&quot;tmpOut&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkImageDataOutlineFilter&quot;);const n={...e};e.requestData=(e,n)=&gt;{const r=e[0];if(!r||!r.isA(&quot;vtkImageData&quot;))return void Lf(&quot;Invalid or missing input&quot;);const o=r.getSpatialExtent();o?(t._cubeSource.setBounds(o),t._cubeSource.setMatrix(r.getIndexToWorld()),n[0]=t._cubeSource.getOutputData()):Lf(&quot;Unable to fetch spatial extents of input image.&quot;)},e.getMTime=()=&gt;Math.max(n.getMTime(),t._cubeSource.getMTime()),e.setGenerateFaces=t._cubeSource.setGenerateFaces,e.setGenerateLines=t._cubeSource.setGenerateLines,e.getGenerateFaces=t._cubeSource.getGenerateFaces,e.getGenerateLines=t._cubeSource.getGenerateLines}(e,t)}var Nf={newInstance:sn.newInstance(Ff,&quot;vtkImageDataOutlineFilter&quot;),extend:Ff};const{vtkWarningMacro:kf}=sn;let Gf;const Uf={preMultiplyFlag:!1,matrix:[...ho]};function _f(e,t,n={}){Object.assign(t,Uf,n),sn.obj(e,t),sn.setGet(e,t,[&quot;preMultiplyFlag&quot;]),sn.setGetArray(e,t,[&quot;matrix&quot;],16),function(e,t){t.classHierarchy.push(&quot;vtkAbstractTransform&quot;,&quot;vtkHomogeneousTransform&quot;,&quot;vtkTransform&quot;),e.transformPoint=(e,n)=&gt;(oe(n,e,t.matrix),n),e.transformPoints=(e,n)=&gt;{const r=new Float64Array(3),o=new Float64Array(3);for(let a=0;a&lt;e.length;a+=3)r[0]=e[a],r[1]=e[a+1],r[2]=e[a+2],oe(o,r,t.matrix),n[a]=o[0],n[a+1]=o[1],n[a+2]=o[2];return n},e.preMultiply=()=&gt;{e.setPreMultiplyFlag(!0)},e.postMultiply=()=&gt;{e.setPreMultiplyFlag(!1)},e.transformMatrix=(e,n)=&gt;(t.preMultiplyFlag?A(n,t.matrix,e):A(n,e,t.matrix),n),e.transformMatrices=(e,n)=&gt;{const r=new Float64Array(16),o=new Float64Array(16),a=t.preMultiplyFlag?()=&gt;A(o,t.matrix,r):()=&gt;A(o,r,t.matrix);for(let t=0;t&lt;e.length;t+=16){for(let n=0;n&lt;16;++n)r[n]=e[t+n];a();for(let e=0;e&lt;16;++e)n[t+e]=o[e]}return n},e.getInverse=()=&gt;Gf({matrix:za.invertMatrix(Array.from(t.matrix),[],4),preMultiplyFlag:t.preMultiplyFlag}),e.translate=(n,r,o)=&gt;{if(0===n&amp;&amp;0===r&amp;&amp;0===o)return;const a=v();R(a,[n,r,o]),t.preMultiplyFlag?A(t.matrix,t.matrix,a):A(t.matrix,a,t.matrix),e.modified()},e.rotateWXYZ=(n,r,o,a)=&gt;{if(0===r&amp;&amp;0===o&amp;&amp;0===a)return void kf(&quot;No rotation applied, axis is zero vector.&quot;);if(0===n)return;const i=za.radiansFromDegrees(n),s=pe();fe(s,[r,o,a],i);const l=new Float64Array(16);F(l,s),t.preMultiplyFlag?A(t.matrix,t.matrix,l):A(t.matrix,l,t.matrix),e.modified()},e.rotateX=t=&gt;{e.rotateWXYZ(t,1,0,0)},e.rotateY=t=&gt;{e.rotateWXYZ(t,0,1,0)},e.rotateZ=t=&gt;{e.rotateWXYZ(t,0,0,1)},e.scale=(n,r,o)=&gt;{if(1===n&amp;&amp;1===r&amp;&amp;1===o)return;const a=v();M(a,[n,r,o]),t.preMultiplyFlag?A(t.matrix,t.matrix,a):A(t.matrix,a,t.matrix),e.modified()},e.transformNormal=(n,r=[])=&gt;{const o=s(i(),t.matrix),a=i();d(a,o);const l=i();return u(l,a),e.transformVector(n,r,l),za.normalize(r),r},e.transformNormals=(n,r)=&gt;{const o=n.getData(),a=r.getData(),l=[0,0,0],c=s(i(),t.matrix),p=i();d(p,c);const f=i();u(f,p);for(let t=0;t&lt;o.length;t+=3)l[0]=o[t],l[1]=o[t+1],l[2]=o[t+2],e.transformVector(l,l,f),za.normalize(l),a[t]=l[0],a[t+1]=l[1],a[t+2]=l[2]},e.transformVector=(e,n=[],r=null)=&gt;(ae(n,e,r||s(i(),t.matrix)),n),e.transformVectors=(t,n)=&gt;{const r=t.getData(),o=n.getData(),a=[0,0,0];for(let t=0;t&lt;r.length;t+=3)a[0]=r[t],a[1]=r[t+1],a[2]=r[t+2],e.transformVector(a,a),za.normalize(a),o[t]=a[0],o[t+1]=a[1],o[t+2]=a[2]},e.transformPointsNormalsVectors=(t,n,r,o,a,i,s=null,l=null)=&gt;{const c=t.getNumberOfPoints(),u=s?.length??0,d=new Float64Array(3),p=new Float64Array(3),f=new Float64Array(3),g=new Float64Array(3);let m=!1,h=!1,v=!1;const T=[];for(let x=0;x&lt;c;x++){if(t.getPoint(x,d),p.set(d),e.transformPoint(d,d),n.setPoint(x,...d),za.areEquals(p,d)||(m=!0),a){const t=a.getData(),n=i.getData();d[0]=t[3*x],d[1]=t[3*x+1],d[2]=t[3*x+2],f.set(d),e.transformVector(d,d),n[3*x]=d[0],n[3*x+1]=d[1],n[3*x+2]=d[2],za.areEquals(f,d)||(h=!0)}if(r){const t=r.getData(),n=o.getData();d[0]=t[3*x],d[1]=t[3*x+1],d[2]=t[3*x+2],g.set(d),e.transformNormal(d,d),n[3*x]=d[0],n[3*x+1]=d[1],n[3*x+2]=d[2],za.areEquals(g,d)||(v=!0)}if(s)for(let t=0;t&lt;u;t++){const n=s[t].getData(),r=l[t].getData();d[0]=n[3*x],d[1]=n[3*x+1],d[2]=n[3*x+2],f.set(d),e.transformVector(d,d),r[3*x]=d[0],r[3*x+1]=d[1],r[3*x+2]=d[2],za.arrayEqual(f,d)||T.includes(t)||T.push(t)}}m&amp;&amp;n.modified(),h&amp;&amp;i.modified(),v&amp;&amp;o.modified(),T.forEach((e=&gt;l[e].modified()))}}(e,t)}Gf=sn.newInstance(_f,&quot;vtkTransform&quot;);var Kf={newInstance:Gf,extend:_f};function zf(e,t,n){return e.length&gt;0?`${e.map((e=&gt;e?.getMTime()??&quot;x&quot;)).join(&quot;/&quot;)}-${t}-${n}`:&quot;0&quot;}function Wf(e,t){return`${t.getMTime()}`}const Hf={NEAREST:0,LINEAR:1};var jf={InterpolationType:Hf};const{vtkErrorMacro:Xf}=ln,qf=e=&gt;e.split(&quot;\\n&quot;).map((e=&gt;e.trim())).filter(Boolean);function Yf(e,t,n){return t.identity(n),e.reduce(((e,n,r)=&gt;0===r?n?t.copy(e,n):t.identity(e):n?t.multiply(e,e,n):e),n)}function Jf(e,t){t.classHierarchy.push(&quot;vtkOpenGLImageResliceMapper&quot;);const n=new Map;function r(t,r,o){r!==o&amp;&amp;(function(t,r){if(!r)return;const o=(n.get(r)??0)-1;o&lt;=0?(t.unregisterGraphicsResourceUser(r,e),n.delete(r)):n.set(r,o)}(t,r),function(t,r){if(!r)return;const o=n.get(r)??0,a=o+1;n.set(r,a),o&lt;=0&amp;&amp;t.registerGraphicsResourceUser(r,e)}(t,o))}function o(t){[...n.keys()].forEach((n=&gt;t.unregisterGraphicsResourceUser(n,e)))}function a(e,n,r,o,a){const i=e.map((e=&gt;e.join(&quot;-&quot;))).join(&quot;|&quot;);i!==t[o]&amp;&amp;(t[o]=i,t[a]&amp;&amp;t[a].releaseGraphicsResources(),t[a]=function(e,n,r){let o=t.renderable.getLabelOutlineTextureWidth();o&lt;=0&amp;&amp;(o=t.context.getParameter(t.context.MAX_TEXTURE_SIZE));const a=e.length,i=new n(o*a);for(let t=0;t&lt;a;t++){const n=e[t];for(let e=0;e&lt;o;e++)i[t*o+e]=n[e]??n[0]}const s=Hd.newInstance({resizable:!1});return s.setOpenGLRenderWindow(t._openGLRenderWindow),s.resetFormatAndType(),s.setMinificationFilter(wd.NEAREST),s.setMagnificationFilter(wd.NEAREST),s.create2DFromRaw({width:o,height:a,numComps:1,dataType:r,data:i}),s}(e,n,r))}e.buildPass=n=&gt;{if(n){t.currentRenderPass=null,t._openGLImageSlice=e.getFirstAncestorOfType(&quot;vtkOpenGLImageSlice&quot;),t._openGLRenderer=e.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;);const n=t._openGLRenderer.getRenderable();t._openGLCamera=t._openGLRenderer.getViewNodeFor(n.getActiveCamera(),t.openGLCamera);const r=t._openGLRenderWindow;t._openGLRenderWindow=t._openGLRenderer.getLastAncestorOfType(&quot;vtkOpenGLRenderWindow&quot;),r&amp;&amp;!r.isDeleted()&amp;&amp;r!==t._openGLRenderWindow&amp;&amp;o(r),t.context=t._openGLRenderWindow.getContext(),t.tris.setOpenGLRenderWindow(t._openGLRenderWindow)}},e.translucentPass=(n,r)=&gt;{n&amp;&amp;(t.currentRenderPass=r,e.render())},e.zBufferPass=n=&gt;{n&amp;&amp;(t.haveSeenDepthRequest=!0,t.renderDepth=!0,e.render(),t.renderDepth=!1)},e.opaqueZBufferPass=t=&gt;e.zBufferPass(t),e.opaquePass=t=&gt;{t&amp;&amp;e.render()},e.getCoincidentParameters=(e,n)=&gt;t.renderable.getResolveCoincidentTopology()==Pl.PolygonOffset?t.renderable.getCoincidentTopologyPolygonOffsetParameters():null,e.render=()=&gt;{const n=t._openGLImageSlice.getRenderable(),r=t._openGLRenderer.getRenderable();e.renderPiece(r,n)},e.renderPiece=(n,r)=&gt;{e.invokeEvent({type:&quot;StartEvent&quot;}),t.renderable.update();const o=t.renderable.getNumberOfInputPorts();t.currentValidInputs=[];for(let e=0;e&lt;o;++e){const n=t.renderable.getInputData(e);n&amp;&amp;!n.isDeleted()&amp;&amp;t.currentValidInputs.push({imageData:n,inputIndex:e})}const a=t.currentValidInputs.length;if(a&lt;=0)return void Xf(&quot;No input!&quot;);t.labelOutlineProperties=function(e,t){const n=[];for(let r=0;r&lt;t.length;r++){const o=e.getProperty(t[r].inputIndex);o?.getUseLabelOutline()&amp;&amp;n.push({property:o,arrayIndex:r})}return n}(r,t.currentValidInputs);const i=t.currentValidInputs[0].imageData.getPointData().getScalars();t.multiTexturePerVolumeEnabled=a&gt;1,t.numberOfComponents=t.multiTexturePerVolumeEnabled?a:i.getNumberOfComponents(),e.updateResliceGeometry(),e.renderPieceStart(n,r),e.renderPieceDraw(n,r),e.renderPieceFinish(n,r),e.invokeEvent({type:&quot;EndEvent&quot;})},e.renderPieceStart=(n,r)=&gt;{e.updateBufferObjects(n,r);const o=r.getProperties();t.currentValidInputs.forEach((({inputIndex:e},n)=&gt;{const r=o[e],a=t.scalarTextures[n];if(!r||!a)return;r.getInterpolationType()===Hf.NEAREST?(a.setMinificationFilter(wd.NEAREST),a.setMagnificationFilter(wd.NEAREST)):(a.setMinificationFilter(wd.LINEAR),a.setMagnificationFilter(wd.LINEAR))}));const a=t.currentValidInputs[0],i=o[a.inputIndex],s=i?.getInterpolationType();s===Hf.NEAREST?(t.colorTexture.setMinificationFilter(wd.NEAREST),t.colorTexture.setMagnificationFilter(wd.NEAREST),t.pwfTexture.setMinificationFilter(wd.NEAREST),t.pwfTexture.setMagnificationFilter(wd.NEAREST)):(t.colorTexture.setMinificationFilter(wd.LINEAR),t.colorTexture.setMagnificationFilter(wd.LINEAR),t.pwfTexture.setMinificationFilter(wd.LINEAR),t.pwfTexture.setMagnificationFilter(wd.LINEAR)),t.lastBoundBO=null},e.renderPieceDraw=(n,r)=&gt;{const o=t.context,a=t.labelOutlineProperties.length&gt;0,i=[...t.scalarTextures,t.colorTexture,t.pwfTexture];a&amp;&amp;(i.push(t.labelOutlineThicknessTexture),i.push(t.labelOutlineOpacityTexture)),i.forEach((e=&gt;e.activate())),e.updateShaders(t.tris,n,r),o.drawArrays(o.TRIANGLES,0,t.tris.getCABO().getElementCount()),t.tris.getVAO().release(),i.forEach((e=&gt;e.deactivate()))},e.renderPieceFinish=(e,t)=&gt;{},e.updateBufferObjects=(t,n)=&gt;{e.getNeedToRebuildBufferObjects(t,n)&amp;&amp;e.buildBufferObjects(t,n)},e.getNeedToRebuildBufferObjects=(n,r)=&gt;{const o=r.getProperty(t.currentValidInputs[0].inputIndex),a=t.labelOutlineProperties.length&gt;0;return t.VBOBuildTime.getMTime()&lt;e.getMTime()||t.VBOBuildTime.getMTime()&lt;r.getMTime()||t.VBOBuildTime.getMTime()&lt;t.renderable.getMTime()||t.VBOBuildTime.getMTime()&lt;o?.getMTime()||t.currentValidInputs.some((({imageData:e})=&gt;t.VBOBuildTime.getMTime()&lt;e.getMTime()))||t.VBOBuildTime.getMTime()&lt;t.resliceGeom.getMTime()||t.scalarTextures.length!==t.currentValidInputs.length||!t.scalarTextures.every((e=&gt;!!e?.getHandle()))||!t.colorTexture?.getHandle()||!t.pwfTexture?.getHandle()||a&amp;&amp;(!t.labelOutlineThicknessTexture?.getHandle()||!t.labelOutlineOpacityTexture?.getHandle())},e.buildBufferObjects=(n,o)=&gt;{const a=o.getProperties();t.currentValidInputs.forEach((({imageData:e,inputIndex:n},o)=&gt;{const i=e.getPointData().getScalars(),s=t._openGLRenderWindow.getGraphicsResourceForObject(i),l=Wf(0,i),c=!s?.oglObject?.getHandle()||s?.hash!==l,u=a[n],d=u?.getUpdatedExtents()??[],p=!!d.length;if(c&amp;&amp;!p){const n=Hd.newInstance();n.setOpenGLRenderWindow(t._openGLRenderWindow);const r=e.getDimensions();n.setOglNorm16Ext(t.context.getExtension(&quot;EXT_texture_norm16&quot;)),n.resetFormatAndType(),n.create3DFilterableFromDataArray({width:r[0],height:r[1],depth:r[2],dataArray:i}),t._openGLRenderWindow.setGraphicsResourceForObject(i,n,l),t.scalarTextures[o]=n}else t.scalarTextures[o]=s.oglObject;if(p){u.setUpdatedExtents([]);const n=e.getDimensions();t.scalarTextures[o].create3DFilterableFromDataArray({width:n[0],height:n[1],depth:n[2],dataArray:i,updatedExtents:d})}r(t._openGLRenderWindow,t._scalarTexturesCore[o],i),t._scalarTexturesCore[o]=i}));const i=t.currentValidInputs[0],s=a[i.inputIndex];if(!s)return void Xf(&quot;Missing property for first input&quot;);const l=s.getIndependentComponents(),c=l?t.numberOfComponents:1,u=l?2*c:1,d=[];for(let e=0;e&lt;c;++e)if(t.multiTexturePerVolumeEnabled){const n=t.currentValidInputs[e],r=n?a[n.inputIndex]:null;d.push(r?.getRGBTransferFunction()||null)}else d.push(s.getRGBTransferFunction(e));const p=zf(d,l,c),f=s.getRGBTransferFunction(),g=t._openGLRenderWindow.getGraphicsResourceForObject(f);if(!g?.oglObject?.getHandle()||g?.hash!==p){let e=t.renderable.getColorTextureWidth();e&lt;=0&amp;&amp;(e=t.context.getParameter(t.context.MAX_TEXTURE_SIZE));const n=new Uint8ClampedArray(e*u*3),r=Hd.newInstance();if(r.setOpenGLRenderWindow(t._openGLRenderWindow),f){const t=new Float32Array(3*e);for(let r=0;r&lt;c;r++){const o=d[r];if(o){const a=o.getRange();if(o.getTable(a[0],a[1],e,t,1),l)for(let o=0;o&lt;3*e;o++)n[r*e*6+o]=255*t[o],n[r*e*6+o+3*e]=255*t[o];else for(let o=0;o&lt;3*e;o++)n[r*e*3+o]=255*t[o]}}r.resetFormatAndType(),r.create2DFromRaw({width:e,height:u,numComps:3,dataType:ms.UNSIGNED_CHAR,data:n})}else{for(let t=0;t&lt;3*e;++t){const r=255*t/(3*(e-1));for(let o=0;o&lt;u;++o)n[o*e*3+t+0]=r,n[o*e*3+t+1]=r,n[o*e*3+t+2]=r}r.resetFormatAndType(),r.create2DFromRaw({width:e,height:1,numComps:3,dataType:ms.UNSIGNED_CHAR,data:n})}f&amp;&amp;t._openGLRenderWindow.setGraphicsResourceForObject(f,r,p),t.colorTexture=r}else t.colorTexture=g.oglObject;r(t._openGLRenderWindow,t._colorTextureCore,f),t._colorTextureCore=f;const m=[];for(let e=0;e&lt;c;++e)if(t.multiTexturePerVolumeEnabled){const n=t.currentValidInputs[e],r=n?a[n.inputIndex]:null;m.push(r?.getPiecewiseFunction()||null)}else m.push(s.getPiecewiseFunction(e));const h=zf(m,l,c),v=s.getPiecewiseFunction(),T=t._openGLRenderWindow.getGraphicsResourceForObject(v);if(!T?.oglObject?.getHandle()||T?.hash!==h){let e=t.renderable.getOpacityTextureWidth();e&lt;=0&amp;&amp;(e=t.context.getParameter(t.context.MAX_TEXTURE_SIZE));const n=e*u,r=new Uint8ClampedArray(n),o=Hd.newInstance();if(o.setOpenGLRenderWindow(t._openGLRenderWindow),v){const t=new Float32Array(n),r=new Float32Array(e);for(let n=0;n&lt;c;++n){const o=m[n];if(null===o)t.fill(1);else{const a=o.getRange();if(o.getTable(a[0],a[1],e,r,1),l)for(let o=0;o&lt;e;o++)t[n*e*2+o]=r[o],t[n*e*2+o+e]=r[o];else for(let n=0;n&lt;e;n++)t[n]=r[n]}}o.resetFormatAndType(),o.create2DFromRaw({width:e,height:u,numComps:1,dataType:ms.FLOAT,data:t})}else r.fill(255),o.resetFormatAndType(),o.create2DFromRaw({width:e,height:u,numComps:1,dataType:ms.UNSIGNED_CHAR,data:r});v&amp;&amp;t._openGLRenderWindow.setGraphicsResourceForObject(v,o,h),t.pwfTexture=o}else t.pwfTexture=T.oglObject;r(t._openGLRenderWindow,t._pwfTextureCore,v),t._pwfTextureCore=v,t.labelOutlineProperties.length&gt;0&amp;&amp;(e.updateLabelOutlineThicknessTexture(t.labelOutlineProperties),e.updateLabelOutlineOpacityTexture(t.labelOutlineProperties));const x=`${t.resliceGeom.getMTime()}A${t.renderable.getSlabThickness()}`;if(!t.tris.getCABO().getElementCount()||t.VBOBuildString!==x){const e=Is.newInstance({numberOfComponents:3,values:t.resliceGeom.getPoints().getData()});e.setName(&quot;points&quot;);const n=Is.newInstance({numberOfComponents:1,values:t.resliceGeom.getPolys().getData()}),r={points:e,cellOffset:0};if(t.renderable.getSlabThickness()&gt;0){const e=t.resliceGeom.getPointData().getNormals();e?r.normals=e:Xf(&quot;Slab mode requested without normals&quot;)}t.tris.getCABO().createVBO(n,&quot;polys&quot;,rs.SURFACE,r)}t.VBOBuildString=x,t.VBOBuildTime.modified()},e.updateShaders=(n,r,o)=&gt;{if(t.lastBoundBO=n,e.getNeedToRebuildShaders(n,r,o)){const a={Vertex:null,Fragment:null,Geometry:null};e.buildShaders(a,r,o);const i=t._openGLRenderWindow.getShaderCache().readyShaderProgramArray(a.Vertex,a.Fragment,a.Geometry);i!==n.getProgram()&amp;&amp;(n.setProgram(i),n.getVAO().releaseGraphicsResources()),n.getShaderSourceTime().modified()}else t._openGLRenderWindow.getShaderCache().readyShaderProgram(n.getProgram());n.getVAO().bind(),e.setMapperShaderParameters(n,r,o),e.setCameraShaderParameters(n,r,o),e.setPropertyShaderParameters(n,r,o)},e.setMapperShaderParameters=(n,r,o)=&gt;{const a=n.getProgram(),i=t.currentValidInputs[0].imageData;if(n.getCABO().getElementCount()&amp;&amp;(t.VBOBuildTime.getMTime()&gt;n.getAttributeUpdateTime().getMTime()||n.getShaderSourceTime().getMTime()&gt;n.getAttributeUpdateTime().getMTime())){t.scalarTextures.forEach(((e,t)=&gt;{a.setUniformi(`volumeTexture[${t}]`,e.getTextureUnit())})),a.isAttributeUsed(&quot;vertexWC&quot;)&amp;&amp;(n.getVAO().addAttributeArray(a,n.getCABO(),&quot;vertexWC&quot;,n.getCABO().getVertexOffset(),n.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE)||Xf(&quot;Error setting vertexWC in shader VAO.&quot;)),a.isAttributeUsed(&quot;normalWC&quot;)&amp;&amp;(n.getVAO().addAttributeArray(a,n.getCABO(),&quot;normalWC&quot;,n.getCABO().getNormalOffset(),n.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE)||Xf(&quot;Error setting normalWC in shader VAO.&quot;)),a.isUniformUsed(&quot;slabThickness&quot;)&amp;&amp;a.setUniformf(&quot;slabThickness&quot;,t.renderable.getSlabThickness()),a.isUniformUsed(&quot;spacing&quot;)&amp;&amp;a.setUniform3fv(&quot;spacing&quot;,i.getSpacing()),a.isUniformUsed(&quot;slabType&quot;)&amp;&amp;a.setUniformi(&quot;slabType&quot;,t.renderable.getSlabType()),a.isUniformUsed(&quot;slabTrapezoid&quot;)&amp;&amp;a.setUniformi(&quot;slabTrapezoid&quot;,t.renderable.getSlabTrapezoidIntegration());const e=n.getCABO().getCoordShiftAndScaleEnabled()?n.getCABO().getInverseShiftAndScaleMatrix():null;for(let n=0;n&lt;t.currentValidInputs.length;n++){const r=`WCTCMatrix${n}`;if(a.isUniformUsed(r)){const o=t.currentValidInputs[n].imageData,i=o.getDimensions();T(t.tmpMat4,o.getIndexToWorld()),C(t.tmpMat4,t.tmpMat4,[-.5,-.5,-.5]),S(t.tmpMat4,t.tmpMat4,i),b(t.tmpMat4,t.tmpMat4),e&amp;&amp;A(t.tmpMat4,t.tmpMat4,e),a.setUniformMatrix(r,t.tmpMat4)}}a.isUniformUsed(&quot;vboScaling&quot;)&amp;&amp;a.setUniform3fv(&quot;vboScaling&quot;,n.getCABO().getCoordScale()??[1,1,1]),n.getAttributeUpdateTime().modified()}if(t.haveSeenDepthRequest&amp;&amp;n.getProgram().setUniformi(&quot;depthRequest&quot;,t.renderDepth?1:0),n.getProgram().isUniformUsed(&quot;coffset&quot;)){const t=e.getCoincidentParameters(r,o);n.getProgram().setUniformf(&quot;coffset&quot;,t.offset),n.getProgram().isUniformUsed(&quot;cfactor&quot;)&amp;&amp;n.getProgram().setUniformf(&quot;cfactor&quot;,t.factor)}},e.setCameraShaderParameters=(e,n,r)=&gt;{const o=t._openGLCamera.getKeyMatrices(n),a=t._openGLImageSlice.getKeyMatrices(),i=e.getCABO().getCoordShiftAndScaleEnabled()?e.getCABO().getInverseShiftAndScaleMatrix():null,s=e.getProgram();s.isUniformUsed(&quot;MCPCMatrix&quot;)&amp;&amp;(x(t.tmpMat4),s.setUniformMatrix(&quot;MCPCMatrix&quot;,Yf([o.wcpc,a.mcwc,i],H,t.tmpMat4))),s.isUniformUsed(&quot;MCVCMatrix&quot;)&amp;&amp;(x(t.tmpMat4),s.setUniformMatrix(&quot;MCVCMatrix&quot;,Yf([o.wcvc,a.mcwc,i],H,t.tmpMat4)))},e.setPropertyShaderParameters=(e,n,r)=&gt;{const o=e.getProgram(),a=r.getProperty(t.currentValidInputs[0].inputIndex),i=t.multiTexturePerVolumeEnabled?1:a.getOpacity();o.setUniformf(&quot;opacity&quot;,i);const s=t.numberOfComponents,c=a.getIndependentComponents(),u=t.multiTexturePerVolumeEnabled,p=r.getProperties();if(c)for(let e=0;e&lt;s;++e){const n=u?p[t.currentValidInputs[e].inputIndex]:a;o.setUniformf(`mix${e}`,n.getComponentWeight(0))}for(let e=0;e&lt;s;e++){const n=u?e:0,r=u?0:e,i=t.scalarTextures[n].getVolumeInfo(),s=i.scale[r],l=i.offset[r],d=c?e:0,f=u?p[t.currentValidInputs[e].inputIndex]:a;let g=f.getColorWindow(),m=f.getColorLevel();const h=f.getRGBTransferFunction(u?0:d);if(h&amp;&amp;f.getUseLookupTableScalarRange()){const e=h.getRange();g=e[1]-e[0],m=.5*(e[1]+e[0])}const v=s/g,T=(l-m)/g+.5;o.setUniformf(`cshift${e}`,T),o.setUniformf(`cscale${e}`,v);let x=1,y=0;const b=f.getPiecewiseFunction(u?0:d);if(b){const e=b.getRange(),t=e[1]-e[0];x=s/t,y=(l-.5*(e[0]+e[1]))/t+.5}o.setUniformf(`pwfshift${e}`,y),o.setUniformf(`pwfscale${e}`,x)}const f=t.colorTexture.getTextureUnit();o.setUniformi(&quot;colorTexture1&quot;,f);const g=t.pwfTexture.getTextureUnit();if(o.setUniformi(&quot;pwfTexture1&quot;,g),o.setUniform4fv(&quot;backgroundColor&quot;,t.renderable.getBackgroundColor()),t.labelOutlineProperties.length&gt;0){const e=t.labelOutlineThicknessTexture.getTextureUnit();o.setUniformi(&quot;labelOutlineThicknessTexture&quot;,e);const n=t.labelOutlineOpacityTexture.getTextureUnit();o.setUniformi(&quot;labelOutlineOpacityTexture&quot;,n);let r=t.renderable.getLabelOutlineTextureWidth();r&lt;=0&amp;&amp;(r=t.context.getParameter(t.context.MAX_TEXTURE_SIZE)),o.setUniformf(&quot;labelOutlineTextureWidth&quot;,r),o.setUniformf(&quot;numLabelmaps&quot;,t.labelOutlineProperties.length);const a=t.renderable.getSlicePlane();if(t._tmpTangent1.fill(0),t._tmpTangent2.fill(0),a){const e=a.getNormal();za.perpendiculars(e,t._tmpTangent1,t._tmpTangent2,0)}else t._tmpTangent1[0]=1,t._tmpTangent2[1]=1;for(let e=0;e&lt;t.currentValidInputs.length;e++){const n=t.currentValidInputs[e].imageData;l(t._tmpMat3,...n.getDirection()),d(t._tmpMat3,t._tmpMat3),ae(t._tmpVec3a,t._tmpTangent1,t._tmpMat3),ae(t._tmpVec3b,t._tmpTangent2,t._tmpMat3);const r=`outlineTangent1_${e}`,a=`outlineTangent2_${e}`;o.isUniformUsed(r)&amp;&amp;o.setUniform3fv(r,t._tmpVec3a),o.isUniformUsed(a)&amp;&amp;o.setUniform3fv(a,t._tmpVec3b)}for(let e=0;e&lt;t.currentValidInputs.length;e++){const n=`texelSize${e}`;if(o.isUniformUsed(n)){const r=t.currentValidInputs[e].imageData,a=r.getDimensions(),i=r.getSpacing(),s=Math.min(Math.abs(i[0]),Math.abs(i[1]),Math.abs(i[2]));t._tmpTexelSize[0]=s/(a[0]*Math.abs(i[0])),t._tmpTexelSize[1]=s/(a[1]*Math.abs(i[1])),t._tmpTexelSize[2]=s/(a[2]*Math.abs(i[2])),o.setUniform3fv(n,t._tmpTexelSize)}}}},e.getNeedToRebuildShaders=(e,n,r)=&gt;{const o=r.getProperty(t.currentValidInputs[0].inputIndex).getIndependentComponents(),a=t.labelOutlineProperties.length&gt;0,i=t.renderable.getSlabThickness(),s=t.renderable.getSlabType(),l=t.renderable.getSlabTrapezoidIntegration();let c=!1;(!t.currentRenderPass&amp;&amp;t.lastRenderPassShaderReplacement||t.currentRenderPass&amp;&amp;t.currentRenderPass.getShaderReplacement()!==t.lastRenderPassShaderReplacement)&amp;&amp;(c=!0);const u=t.currentValidInputs?.length??0;return!(!c&amp;&amp;t.lastHaveSeenDepthRequest===t.haveSeenDepthRequest&amp;&amp;t.lastNumberOfComponents===t.numberOfComponents&amp;&amp;t.lastMultiTexturePerVolumeEnabled===t.multiTexturePerVolumeEnabled&amp;&amp;0!==e.getProgram()?.getHandle()&amp;&amp;t.lastIndependentComponents===o&amp;&amp;t.lastUseLabelOutline===a&amp;&amp;t.lastNumValidInputs===u&amp;&amp;t.lastSlabThickness===i&amp;&amp;t.lastSlabType===s&amp;&amp;t.lastSlabTrapezoidIntegration===l)&amp;&amp;(t.lastHaveSeenDepthRequest=t.haveSeenDepthRequest,t.lastNumberOfComponents=t.numberOfComponents,t.lastMultiTexturePerVolumeEnabled=t.multiTexturePerVolumeEnabled,t.lastIndependentComponents=o,t.lastUseLabelOutline=a,t.lastNumValidInputs=u,t.lastSlabThickness=i,t.lastSlabType=s,t.lastSlabTrapezoidIntegration=l,!0)},e.getShaderTemplate=(e,t,n)=&gt;{e.Vertex=&quot;//VTK::System::Dec\\n\\n/*=========================================================================\\n\\n  Program:   Visualization Toolkit\\n  Module:    vtkImageResliceMapperVS.glsl\\n\\n  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n  All rights reserved.\\n  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n\\n     This software is distributed WITHOUT ANY WARRANTY; without even\\n     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n     PURPOSE.  See the above copyright notice for more information.\\n\\n=========================================================================*/\\n\\n// all variables that represent positions or directions have a suffix\\n// indicating the coordinate system they are in. The possible values are\\n// MC - Model coordinates\\n// WC - World coordinates\\n// VC - View coordinates\\n// DC - Display coordinates\\n// TC - Texture coordinates\\n\\n// frag position in VC\\n//VTK::PositionVC::Dec\\n\\n// Texture coordinates\\n//VTK::TCoord::Dec\\n\\n// picking support\\n//VTK::Picking::Dec\\n\\n// camera and actor matrix values\\n//VTK::Camera::Dec\\n\\nvoid main()\\n{\\n  //VTK::PositionVC::Impl\\n\\n  //VTK::TCoord::Impl\\n\\n  //VTK::Picking::Impl\\n}\\n&quot;,e.Fragment=&quot;//VTK::System::Dec\\n\\n/*=========================================================================\\n\\n  Program:   Visualization Toolkit\\n  Module:    vtkImageResliceMapperFS.glsl\\n\\n  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n  All rights reserved.\\n  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n\\n     This software is distributed WITHOUT ANY WARRANTY; without even\\n     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n     PURPOSE.  See the above copyright notice for more information.\\n\\n=========================================================================*/\\n// Template for the gpu image mapper fragment shader\\n\\n// VC position of this fragment\\n//VTK::PositionVC::Dec\\n\\n// Texture coordinates\\n//VTK::TCoord::Dec\\n\\n// picking support\\n//VTK::Picking::Dec\\n\\n// handle coincident offsets\\n//VTK::Coincident::Dec\\n\\n//VTK::ZBuffer::Dec\\n\\n// the output of this shader\\n//VTK::Output::Dec\\n\\nvoid main()\\n{\\n  // VC position of this fragment. This should not branch/return/discard.\\n  //VTK::PositionVC::Impl\\n\\n  // Place any calls that require uniform flow (e.g. dFdx) here.\\n  //VTK::UniformFlow::Impl\\n\\n  // Set gl_FragDepth here (gl_FragCoord.z by default)\\n  //VTK::Depth::Impl\\n\\n  // Early depth peeling abort:\\n  //VTK::DepthPeeling::PreColor\\n\\n  //VTK::TCoord::Impl\\n\\n  if (gl_FragData[0].a &lt;= 0.0)\\n    {\\n    discard;\\n    }\\n\\n  //VTK::DepthPeeling::Impl\\n\\n  //VTK::Picking::Impl\\n\\n  // handle coincident offsets\\n  //VTK::Coincident::Impl\\n\\n  //VTK::ZBuffer::Impl\\n\\n  //VTK::RenderPassFragmentShader::Impl\\n}\\n&quot;,e.Geometry=&quot;&quot;},e.replaceShaderValues=(n,r,o)=&gt;{if(e.replaceShaderTCoord(n,r,o),e.replaceShaderPositionVC(n,r,o),t.haveSeenDepthRequest){let e=n.Fragment;e=vd.substitute(e,&quot;//VTK::ZBuffer::Dec&quot;,&quot;uniform int depthRequest;&quot;).result,e=vd.substitute(e,&quot;//VTK::ZBuffer::Impl&quot;,[&quot;if (depthRequest == 1) {&quot;,&quot;float iz = floor(gl_FragCoord.z*65535.0 + 0.1);&quot;,&quot;float rf = floor(iz/256.0)/255.0;&quot;,&quot;float gf = mod(iz,256.0)/255.0;&quot;,&quot;gl_FragData[0] = vec4(rf, gf, 0.0, 1.0); }&quot;]).result,n.Fragment=e}e.replaceShaderCoincidentOffset(n,r,o)},e.replaceShaderTCoord=(e,n,r)=&gt;{let o=e.Vertex;const a=e.Geometry;let i=e.Fragment;const s=t.labelOutlineProperties.length&gt;0,l=t.renderable.getSlabThickness();o=vd.substitute(o,&quot;//VTK::TCoord::Dec&quot;,[]).result,o=vd.substitute(o,&quot;//VTK::TCoord::Impl&quot;,[]).result;const c=t.numberOfComponents,u=r.getProperty(t.currentValidInputs[0].inputIndex).getIndependentComponents(),d=t.scalarTextures.length;let p=[`uniform highp sampler3D volumeTexture[${d}];`,&quot;uniform float cshift0;&quot;,&quot;uniform float cscale0;&quot;,&quot;uniform float pwfshift0;&quot;,&quot;uniform float pwfscale0;&quot;,&quot;uniform sampler2D colorTexture1;&quot;,&quot;uniform sampler2D pwfTexture1;&quot;,&quot;uniform float opacity;&quot;,&quot;uniform vec4 backgroundColor;&quot;];for(let e=0;e&lt;d;e++)p.push(`uniform mat4 WCTCMatrix${e};`);if(s){p=p.concat([&quot;uniform sampler2D labelOutlineThicknessTexture;&quot;,&quot;uniform sampler2D labelOutlineOpacityTexture;&quot;,&quot;uniform float labelOutlineTextureWidth;&quot;,&quot;uniform float numLabelmaps;&quot;]);for(let e=0;e&lt;d;e++)p.push(`uniform vec3 outlineTangent1_${e};`),p.push(`uniform vec3 outlineTangent2_${e};`),p.push(`uniform vec3 texelSize${e};`)}if(p.push(&quot;vec4 rawSampleTexture(vec3 worldPos) {&quot;),t.multiTexturePerVolumeEnabled){p.push(&quot;vec4 rawSample;&quot;);for(let e=0;e&lt;d;++e)p.push(`vec3 tc${e} = (WCTCMatrix${e} * vec4(worldPos, 1.0)).xyz;`,`rawSample[${e}] = texture(volumeTexture[${e}], tc${e})[0];`);p.push(&quot;return rawSample;&quot;,&quot;}&quot;)}else p.push(&quot;vec3 tc0 = (WCTCMatrix0 * vec4(worldPos, 1.0)).xyz;&quot;,&quot;return texture(volumeTexture[0], tc0);&quot;,&quot;}&quot;);if(u){for(let e=1;e&lt;c;e++)p=p.concat([`uniform float cshift${e};`,`uniform float cscale${e};`,`uniform float pwfshift${e};`,`uniform float pwfscale${e};`]);switch(c){case 1:p=p.concat([&quot;uniform float mix0;&quot;,&quot;#define height0 0.5&quot;]);break;case 2:p=p.concat([&quot;uniform float mix0;&quot;,&quot;uniform float mix1;&quot;,&quot;#define height0 0.25&quot;,&quot;#define height1 0.75&quot;]);break;case 3:p=p.concat([&quot;uniform float mix0;&quot;,&quot;uniform float mix1;&quot;,&quot;uniform float mix2;&quot;,&quot;#define height0 0.17&quot;,&quot;#define height1 0.5&quot;,&quot;#define height2 0.83&quot;]);break;case 4:p=p.concat([&quot;uniform float mix0;&quot;,&quot;uniform float mix1;&quot;,&quot;uniform float mix2;&quot;,&quot;uniform float mix3;&quot;,&quot;#define height0 0.125&quot;,&quot;#define height1 0.375&quot;,&quot;#define height2 0.625&quot;,&quot;#define height3 0.875&quot;]);break;default:Xf(&quot;Unsupported number of independent coordinates.&quot;)}}l&gt;0&amp;&amp;(p=p.concat([&quot;uniform vec3 spacing;&quot;,&quot;uniform float slabThickness;&quot;,&quot;uniform int slabType;&quot;,&quot;uniform int slabTrapezoid;&quot;,&quot;uniform vec3 vboScaling;&quot;]),p=p.concat([&quot;vec4 compositeValue(vec4 currVal, vec4 valToComp, int trapezoid)&quot;,&quot;{&quot;,&quot;  vec4 retVal = vec4(1.0);&quot;,&quot;  if (slabType == 0) // min&quot;,&quot;  {&quot;,&quot;    retVal = min(currVal, valToComp);&quot;,&quot;  }&quot;,&quot;  else if (slabType == 1) // max&quot;,&quot;  {&quot;,&quot;    retVal = max(currVal, valToComp);&quot;,&quot;  }&quot;,&quot;  else if (slabType == 3) // sum&quot;,&quot;  {&quot;,&quot;    retVal = currVal + (trapezoid &gt; 0 ? 0.5 * valToComp : valToComp); &quot;,&quot;  }&quot;,&quot;  else // mean&quot;,&quot;  {&quot;,&quot;    retVal = currVal + (trapezoid &gt; 0 ? 0.5 * valToComp : valToComp); &quot;,&quot;  }&quot;,&quot;  return retVal;&quot;,&quot;}&quot;])),i=vd.substitute(i,&quot;//VTK::TCoord::Dec&quot;,p).result;let f=[&quot;vec3 fragWorldPos = vertexWCVSOutput.xyz;&quot;,&quot;vec3 fragTexCoord = (WCTCMatrix0 * vec4(fragWorldPos, 1.0)).xyz;&quot;,&quot;if (any(greaterThan(fragTexCoord, vec3(1.0))) || any(lessThan(fragTexCoord, vec3(0.0))))&quot;,&quot;{&quot;,&quot;  // set the background color and exit&quot;,&quot;  gl_FragData[0] = backgroundColor;&quot;,&quot;  return;&quot;,&quot;}&quot;,&quot;vec4 tvalue = rawSampleTexture(fragWorldPos);&quot;];if(l&gt;0&amp;&amp;(f=f.concat([&quot;// Get the first and last samples&quot;,&quot;int numSlices = 1;&quot;,&quot;float scaling = min(min(spacing.x, spacing.y), spacing.z) * 0.5;&quot;,&quot;vec3 normalxspacing = scaling * normalWCVSOutput;&quot;,&quot;float distTraveled = length(normalxspacing);&quot;,&quot;int trapezoid = 0;&quot;,&quot;while (distTraveled &lt; slabThickness * 0.5)&quot;,&quot;{&quot;,&quot;  distTraveled += length(normalxspacing);&quot;,&quot;  float fnumSlices = float(numSlices);&quot;,&quot;  if (distTraveled &gt; slabThickness * 0.5)&quot;,&quot;  {&quot;,&quot;    // Before stepping outside the slab, sample at the boundaries&quot;,&quot;    normalxspacing = normalWCVSOutput * slabThickness * 0.5 / fnumSlices;&quot;,&quot;    trapezoid = slabTrapezoid;&quot;,&quot;  }&quot;,&quot;  vec3 worldPosNeg = vertexWCVSOutput.xyz - fnumSlices * normalxspacing * vboScaling;&quot;,&quot;  vec3 fragTCoordNeg = (WCTCMatrix0 * vec4(worldPosNeg, 1.0)).xyz;&quot;,&quot;  if (!any(greaterThan(fragTCoordNeg, vec3(1.0))) &amp;&amp; !any(lessThan(fragTCoordNeg, vec3(0.0))))&quot;,&quot;  {&quot;,&quot;    vec4 newVal = rawSampleTexture(worldPosNeg);&quot;,&quot;    tvalue = compositeValue(tvalue, newVal, trapezoid);&quot;,&quot;    numSlices += 1;&quot;,&quot;  }&quot;,&quot;  vec3 worldPosPos = vertexWCVSOutput.xyz + fnumSlices * normalxspacing * vboScaling;&quot;,&quot;  vec3 fragTCoordPos = (WCTCMatrix0 * vec4(worldPosPos, 1.0)).xyz;&quot;,&quot;  if (!any(greaterThan(fragTCoordPos, vec3(1.0))) &amp;&amp; !any(lessThan(fragTCoordPos, vec3(0.0))))&quot;,&quot;  {&quot;,&quot;    vec4 newVal = rawSampleTexture(worldPosPos);&quot;,&quot;    tvalue = compositeValue(tvalue, newVal, trapezoid);&quot;,&quot;    numSlices += 1;&quot;,&quot;  }&quot;,&quot;}&quot;,&quot;// Finally, if slab type is *mean*, divide the sum by the numSlices&quot;,&quot;if (slabType == 2)&quot;,&quot;{&quot;,&quot;  tvalue = tvalue / float(numSlices);&quot;,&quot;}&quot;])),u){const e=[&quot;r&quot;,&quot;g&quot;,&quot;b&quot;,&quot;a&quot;];for(let t=0;t&lt;c;++t)f=f.concat([`vec3 tcolor${t} = texture2D(colorTexture1, vec2(tvalue.${e[t]} * cscale${t} + cshift${t}, height${t})).rgb;`,`float compWeight${t} = mix${t} * texture2D(pwfTexture1, vec2(tvalue.${e[t]} * pwfscale${t} + pwfshift${t}, height${t})).r;`]);const n=[];if(s)for(let e=0;e&lt;c;e++){const o=r.getProperty(t.currentValidInputs[e].inputIndex);o?.getUseLabelOutline()&amp;&amp;n.push(e)}const o=e=&gt;{if(1===e)return[&quot;gl_FragData[0] = vec4(tcolor0.rgb, compWeight0 * opacity);&quot;];const t=Array.from({length:e},((e,t)=&gt;t)),n=t.map((e=&gt;`compWeight${e}`)).join(&quot; + &quot;),r=t.map((e=&gt;`(tcolor${e}.rgb * (compWeight${e} / weightSum))`)).join(&quot; + &quot;);return[`float weightSum = ${n};`,`gl_FragData[0] = vec4(vec3(${r}), opacity);`]};f=n.length&gt;0?f.concat(function(e,t){const n=[&quot;r&quot;,&quot;g&quot;,&quot;b&quot;,&quot;a&quot;],r=Array.from({length:t},((e,t)=&gt;t)),o=r.filter((t=&gt;!e.includes(t))),a=e.map((e=&gt;`vec3 labelTexCoord${e} = (WCTCMatrix${e} * vec4(fragWorldPos, 1.0)).xyz;`)).join(&quot;\\n                &quot;),i=0===e.length?&quot;&quot;:`float neighborLabel = ${e.map(((e,t)=&gt;0===t?`(labelInputIdx == ${t}) ? texture(volumeTexture[${e}], neighborTexCoord).r`:` : (labelInputIdx == ${t}) ? texture(volumeTexture[${e}], neighborTexCoord).r`)).join(&quot;&quot;)} : 0.0;`,s=[...o,...e].map((t=&gt;{const r=e.includes(t),o=e.indexOf(t);return r?`\\n        // Process input ${t} as labelmap\\n        {\\n          float labelValue = tvalue.${n[t]};\\n          int segmentIndex = int(labelValue * 255.0);\\n\\n          if (segmentIndex &gt; 0) {\\n            float textureCoordinate = float(segmentIndex - 1) / labelOutlineTextureWidth;\\n            float labelmapRow = (float(${o}) + 0.5) / numLabelmaps;\\n            float thicknessValue = texture2D(labelOutlineThicknessTexture, vec2(textureCoordinate, labelmapRow)).r;\\n            float labelOutlineOpacityValue = texture2D(labelOutlineOpacityTexture, vec2(textureCoordinate, labelmapRow)).r;\\n            int actualThickness = int(thicknessValue * 255.0);\\n\\n            vec3 currentLabelTC = labelTexCoord${t};\\n            vec3 currentTexelSize = texelSize${t};\\n            vec3 currentTangent1 = outlineTangent1_${t};\\n            vec3 currentTangent2 = outlineTangent2_${t};\\n\\n            bool pixelOnBorder = false;\\n            int labelInputIdx = ${o};\\n            for (int i = -actualThickness; i &lt;= actualThickness; i++) {\\n              for (int j = -actualThickness; j &lt;= actualThickness; j++) {\\n                if (i == 0 &amp;&amp; j == 0) continue;\\n                vec3 neighborTexCoord = currentLabelTC + float(i) * currentTangent1 * currentTexelSize + float(j) * currentTangent2 * currentTexelSize;\\n                if (any(greaterThan(neighborTexCoord, vec3(1.0))) || any(lessThan(neighborTexCoord, vec3(0.0)))) {\\n                  pixelOnBorder = true;\\n                  break;\\n                }\\n                ${i}\\n                if (neighborLabel != labelValue) {\\n                  pixelOnBorder = true;\\n                  break;\\n                }\\n              }\\n              if (pixelOnBorder) break;\\n            }\\n\\n            if (pixelOnBorder) {\\n              convergentColor.rgb = mix(convergentColor.rgb, tcolor${t}.rgb, labelOutlineOpacityValue);\\n              convergentColor.a = max(convergentColor.a, labelOutlineOpacityValue);\\n            } else if (compWeight${t} &gt; 0.0) {\\n              float fillAlpha = compWeight${t} * opacity;\\n              convergentColor.rgb = mix(convergentColor.rgb, tcolor${t}.rgb, fillAlpha);\\n              convergentColor.a = max(convergentColor.a, fillAlpha);\\n            }\\n          }\\n        }`:`\\n        // Process input ${t} as background image\\n        {\\n          float bgAlpha = compWeight${t} * opacity;\\n          convergentColor.rgb = mix(convergentColor.rgb, tcolor${t}.rgb, bgAlpha);\\n          convergentColor.a = max(convergentColor.a, bgAlpha);\\n        }`})).join(&quot;\\n        &quot;),l=e.length&gt;0?`labelmaps at input${e.length&gt;1?&quot;s&quot;:&quot;&quot;} ${e.join(&quot;, &quot;)}`:&quot;no labelmaps&quot;,c=o.length&gt;0?`background at input${o.length&gt;1?&quot;s&quot;:&quot;&quot;} ${o.join(&quot;, &quot;)}`:&quot;no background&quot;;return qf(`\\n      // Multi-texture mode: ${l}, ${c}\\n      vec4 convergentColor = vec4(0.0, 0.0, 0.0, 0.0);\\n\\n      // Compute labelmap texture coordinates\\n      ${a}\\n\\n      // Process each input in order\\n      ${s}\\n\\n      gl_FragData[0] = convergentColor;\\n    `)}(n,c)):f.concat(o(c))}else switch(c){case 1:f=s?f.concat([...qf(&quot;\\n                // Label outline mode for single component\\n                float centerValue = tvalue.r;\\n                int segmentIndex = int(centerValue * 255.0);\\n\\n                // Skip background (segment 0)\\n                if (segmentIndex == 0) {\\n                  gl_FragData[0] = vec4(0.0, 0.0, 0.0, 0.0);\\n                  return;\\n                }\\n\\n                // Get outline parameters for this segment (row 0 for single labelmap)\\n                float textureCoordinate = float(segmentIndex - 1) / labelOutlineTextureWidth;\\n                float labelmapRow = 0.5 / numLabelmaps;\\n                float thicknessValue = texture2D(labelOutlineThicknessTexture, vec2(textureCoordinate, labelmapRow)).r;\\n                float outlineOpacity = texture2D(labelOutlineOpacityTexture, vec2(textureCoordinate, labelmapRow)).r;\\n                int actualThickness = int(thicknessValue * 255.0);\\n\\n                // Get color for this segment\\n                vec3 tColor = texture2D(colorTexture1, vec2(centerValue * cscale0 + cshift0, 0.5)).rgb;\\n                float scalarOpacity = texture2D(pwfTexture1, vec2(centerValue * pwfscale0 + pwfshift0, 0.5)).r;\\n                float opacityToUse = scalarOpacity * opacity;\\n\\n                // Check neighbors for border detection\\n                bool pixelOnBorder = false;\\n                for (int i = -actualThickness; i &lt;= actualThickness; i++) {\\n                  for (int j = -actualThickness; j &lt;= actualThickness; j++) {\\n                    if (i == 0 &amp;&amp; j == 0) {\\n                      continue;\\n                    }\\n                    // Sample neighbor using tangent vectors in texture space\\n                    vec3 neighborTexCoord = fragTexCoord + float(i) * outlineTangent1_0 * texelSize0 + float(j) * outlineTangent2_0 * texelSize0;\\n\\n                    // Skip if outside texture bounds\\n                    if (any(greaterThan(neighborTexCoord, vec3(1.0))) || any(lessThan(neighborTexCoord, vec3(0.0)))) {\\n                      pixelOnBorder = true;\\n                      break;\\n                    }\\n\\n                    float neighborValue = texture(volumeTexture[0], neighborTexCoord).r;\\n                    if (neighborValue != centerValue) {\\n                      pixelOnBorder = true;\\n                      break;\\n                    }\\n                  }\\n                  if (pixelOnBorder) {\\n                    break;\\n                  }\\n                }\\n\\n                if (pixelOnBorder) {\\n                  gl_FragData[0] = vec4(tColor, outlineOpacity);\\n                } else {\\n                  gl_FragData[0] = vec4(tColor, opacityToUse);\\n                }\\n              &quot;)]):f.concat([&quot;// Dependent components&quot;,&quot;float intensity = tvalue.r;&quot;,&quot;vec3 tcolor = texture2D(colorTexture1, vec2(intensity * cscale0 + cshift0, 0.5)).rgb;&quot;,&quot;float scalarOpacity = texture2D(pwfTexture1, vec2(intensity * pwfscale0 + pwfshift0, 0.5)).r;&quot;,&quot;gl_FragData[0] = vec4(tcolor, scalarOpacity * opacity);&quot;]);break;case 2:f=f.concat([&quot;float intensity = tvalue.r*cscale0 + cshift0;&quot;,&quot;gl_FragData[0] = vec4(texture2D(colorTexture1, vec2(intensity, 0.5)).rgb, pwfscale0*tvalue.g + pwfshift0);&quot;]);break;case 3:f=f.concat([&quot;vec4 tcolor = cscale0*tvalue + cshift0;&quot;,&quot;gl_FragData[0] = vec4(texture2D(colorTexture1, vec2(tcolor.r,0.5)).r,&quot;,&quot;  texture2D(colorTexture1, vec2(tcolor.g,0.5)).r,&quot;,&quot;  texture2D(colorTexture1, vec2(tcolor.b,0.5)).r, opacity);&quot;]);break;default:f=f.concat([&quot;vec4 tcolor = cscale0*tvalue + cshift0;&quot;,&quot;gl_FragData[0] = vec4(texture2D(colorTexture1, vec2(tcolor.r,0.5)).r,&quot;,&quot;  texture2D(colorTexture1, vec2(tcolor.g,0.5)).r,&quot;,&quot;  texture2D(colorTexture1, vec2(tcolor.b,0.5)).r, tcolor.a);&quot;])}i=vd.substitute(i,&quot;//VTK::TCoord::Impl&quot;,f).result,e.Vertex=o,e.Fragment=i,e.Geometry=a},e.replaceShaderPositionVC=(n,r,o)=&gt;{let a=n.Vertex;const i=n.Geometry;let s=n.Fragment;const l=t.renderable.getSlabThickness();let c=[&quot;attribute vec4 vertexWC;&quot;,&quot;varying vec4 vertexWCVSOutput;&quot;];c=c.concat([`//${e.getMTime()}${t.resliceGeomUpdateString}`]),l&gt;0&amp;&amp;(c=c.concat([&quot;attribute vec3 normalWC;&quot;,&quot;varying vec3 normalWCVSOutput;&quot;])),a=vd.substitute(a,&quot;//VTK::PositionVC::Dec&quot;,c).result;let u=[&quot;gl_Position = MCPCMatrix * vertexWC;&quot;,&quot;vertexWCVSOutput = vertexWC;&quot;];l&gt;0&amp;&amp;(u=u.concat([&quot;normalWCVSOutput = normalWC;&quot;])),a=vd.substitute(a,&quot;//VTK::PositionVC::Impl&quot;,u).result,a=vd.substitute(a,&quot;//VTK::Camera::Dec&quot;,[&quot;uniform mat4 MCPCMatrix;&quot;,&quot;uniform mat4 MCVCMatrix;&quot;]).result;let d=[&quot;varying vec4 vertexWCVSOutput;&quot;];l&gt;0&amp;&amp;(d=d.concat([&quot;varying vec3 normalWCVSOutput;&quot;])),s=vd.substitute(s,&quot;//VTK::PositionVC::Dec&quot;,d).result,n.Vertex=a,n.Geometry=i,n.Fragment=s},e.updateResliceGeometry=()=&gt;{let e=&quot;&quot;;const n=t.currentValidInputs[0].imageData,r=n?.getBounds();let o=!0,a=2;const s=t.renderable.getSlicePolyData(),c=t.renderable.getSlicePlane();if(s)e=e.concat(`PolyData${s.getMTime()}`);else if(c){e=e.concat(`Plane${c.getMTime()}`);const t=i();n&amp;&amp;(e=e.concat(`Image${n.getMTime()}`),l(t,...n.getDirection()),d(t,t));const r=[...c.getNormal()];ae(r,r,t),[o,a]=function(e){za.normalize(e);const t=[0,0,0];for(let r=0;r&lt;3;++r){(n=t)[0]=0,n[1]=0,n[2]=0,t[r]=1;const o=za.dot(e,t);if(o&lt;-.999999||o&gt;.999999)return[!0,r]}var n;return[!1,2]}(r)}else{const o=ai.newInstance();o.setNormal(0,0,1);let a=[0,1,0,1,0,1];n&amp;&amp;(a=r),o.setOrigin(a[0],a[2],.5*(a[5]+a[4])),t.renderable.setSlicePlane(o),e=e.concat(`Plane${c?.getMTime()}`),n&amp;&amp;(e=e.concat(`Image${n.getMTime()}`))}if(!t.resliceGeom||t.resliceGeomUpdateString!==e){if(s)t.resliceGeom||(t.resliceGeom=Ru.newInstance()),t.resliceGeom.getPoints().setData(s.getPoints().getData(),3),t.resliceGeom.getPolys().setData(s.getPolys().getData(),1),t.resliceGeom.getPointData().setNormals(s.getPointData().getNormals());else if(c)if(o){const e=new Float32Array(12),r=n.worldToIndex(c.getOrigin(),[0,0,0]),o=[(a+1)%3,(a+2)%3].sort(),i=n.getSpatialExtent();let s=0;for(let t=0;t&lt;2;++t)for(let n=0;n&lt;2;++n)e[s+a]=r[a],e[s+o[0]]=i[2*o[0]+n],e[s+o[1]]=i[2*o[1]+t],s+=3;t.transform.setMatrix(n.getIndexToWorld()),t.transform.transformPoints(e,e);const l=new Uint16Array(8);l[0]=3,l[1]=0,l[2]=1,l[3]=3,l[4]=3,l[5]=0,l[6]=3,l[7]=2;const u=c.getNormal();za.normalize(u);const d=new Float32Array(12);for(let e=0;e&lt;4;++e)d[3*e]=u[0],d[3*e+1]=u[1],d[3*e+2]=u[2];t.resliceGeom||(t.resliceGeom=Ru.newInstance()),t.resliceGeom.getPoints().setData(e,3),t.resliceGeom.getPolys().setData(l,1);const p=Is.newInstance({numberOfComponents:3,values:d,name:&quot;Normals&quot;});t.resliceGeom.getPointData().setNormals(p)}else{t.outlineFilter.setInputData(n),t.cutter.setInputConnection(t.outlineFilter.getOutputPort()),t.cutter.setCutFunction(c),t.lineToSurfaceFilter.setInputConnection(t.cutter.getOutputPort()),t.lineToSurfaceFilter.update(),t.resliceGeom||(t.resliceGeom=Ru.newInstance());const e=t.lineToSurfaceFilter.getOutputData();t.resliceGeom.getPoints().setData(e.getPoints().getData(),3),t.resliceGeom.getPolys().setData(e.getPolys().getData(),1),t.resliceGeom.getPointData().setNormals(e.getPointData().getNormals());const r=c.getNormal(),o=t.resliceGeom.getNumberOfPoints();za.normalize(r);const a=new Float32Array(3*o);for(let e=0;e&lt;o;++e)a[3*e]=r[0],a[3*e+1]=r[1],a[3*e+2]=r[2];const i=Is.newInstance({numberOfComponents:3,values:a,name:&quot;Normals&quot;});t.resliceGeom.getPointData().setNormals(i)}else Xf(&quot;Something went wrong.&quot;,&quot;A default slice plane should have been created in the beginning of&quot;,&quot;updateResliceGeometry.&quot;);t.resliceGeomUpdateString=e,t.resliceGeom?.modified()}},e.updateLabelOutlineThicknessTexture=e=&gt;{a(e.map((({property:e})=&gt;e.getLabelOutlineThicknessByReference())),Uint8Array,ms.UNSIGNED_CHAR,&quot;_labelOutlineThicknessHash&quot;,&quot;labelOutlineThicknessTexture&quot;)},e.updateLabelOutlineOpacityTexture=e=&gt;{a(e.map((({property:e})=&gt;{let t=e.getLabelOutlineOpacity();return&quot;number&quot;==typeof t&amp;&amp;(t=[t]),t})),Float32Array,ms.FLOAT,&quot;_labelOutlineOpacityHash&quot;,&quot;labelOutlineOpacityTexture&quot;)},e.setScalarTextures=e=&gt;{t.scalarTextures=[...e],t._externalOpenGLTexture=!0},e.delete=qt((()=&gt;{t._openGLRenderWindow&amp;&amp;o(t._openGLRenderWindow),t.labelOutlineThicknessTexture&amp;&amp;(t.labelOutlineThicknessTexture.releaseGraphicsResources(),t.labelOutlineThicknessTexture=null),t.labelOutlineOpacityTexture&amp;&amp;(t.labelOutlineOpacityTexture.releaseGraphicsResources(),t.labelOutlineOpacityTexture=null)}),e.delete)}const Zf={VBOBuildTime:{},VBOBuildString:null,haveSeenDepthRequest:!1,lastHaveSeenDepthRequest:!1,lastIndependentComponents:!1,lastUseLabelOutline:!1,lastNumValidInputs:0,lastNumberOfComponents:0,lastMultiTexturePerVolumeEnabled:!1,lastSlabThickness:0,lastSlabTrapezoidIntegration:0,lastSlabType:-1,scalarTextures:[],_scalarTexturesCore:[],colorTexture:null,_colorTextureCore:null,pwfTexture:null,_pwfTextureCore:null,labelOutlineProperties:[],labelOutlineThicknessTexture:null,_labelOutlineThicknessHash:null,labelOutlineOpacityTexture:null,_labelOutlineOpacityHash:null,_externalOpenGLTexture:!1,resliceGeom:null,resliceGeomUpdateString:null,tris:null};vn(&quot;vtkImageResliceMapper&quot;,Xt((function(e,t,n={}){Object.assign(t,Zf,n),pn.extend(e,t,n),qd.implementReplaceShaderCoincidentOffset(e,t,n),qd.implementBuildShadersWithReplacements(e,t,n),t.tris=Sd.newInstance(),t.scalarTextures=[],t.colorTexture=null,t.pwfTexture=null,t.VBOBuildTime={},Vt(t.VBOBuildTime),t.tmpMat4=x(new Float64Array(16)),t._tmpMat3=i(),t._tmpVec3a=j(),t._tmpVec3b=j(),t._tmpTangent1=[0,0,0],t._tmpTangent2=[0,0,0],t._tmpTexelSize=[0,0,0],t.outlineFilter=Nf.newInstance(),t.outlineFilter.setGenerateFaces(!0),t.outlineFilter.setGenerateLines(!1),t.cubePolyData=Ru.newInstance(),t.cutter=Sf.newInstance(),t.lineToSurfaceFilter=xf.newInstance(),t.transform=Kf.newInstance(),Bt(e,t,[&quot;scalarTextures&quot;]),Jf(e,t)}),&quot;vtkOpenGLImageResliceMapper&quot;));var Qf={SlicingMode:{NONE:-1,I:0,J:1,K:2,X:3,Y:4,Z:5}};const{vtkErrorMacro:$f}=ln,{SlicingMode:eg}=Qf;function tg(e){const t=e.split(&quot;\\n&quot;),n=[];for(let e=0;e&lt;t.length;++e){const r=t[e].trim();r.length&gt;0&amp;&amp;n.push(r)}return n}const ng={VBOBuildTime:0,VBOBuildString:null,openGLTexture:null,tris:null,imagemat:null,imagematinv:null,colorTexture:null,pwfTexture:null,labelOutlineThicknessTexture:null,labelOutlineOpacityTexture:null,lastHaveSeenDepthRequest:!1,haveSeenDepthRequest:!1,lastTextureComponents:0};const rg=Xt((function(e,t,n={}){Object.assign(t,ng,n),pn.extend(e,t,n),qd.implementReplaceShaderCoincidentOffset(e,t,n),qd.implementBuildShadersWithReplacements(e,t,n),t.tris=Sd.newInstance(),t.imagemat=x(new Float64Array(16)),t.imagematinv=x(new Float64Array(16)),t.projectionToWorld=x(new Float64Array(16)),t.idxToView=x(new Float64Array(16)),t.idxNormalMatrix=c(new Float64Array(9)),t.modelToView=x(new Float64Array(16)),t.projectionToView=x(new Float64Array(16)),Gt(e,t,[]),t.VBOBuildTime={},Vt(t.VBOBuildTime),function(e,t){function n(n){t.openGLTexture.releaseGraphicsResources(n),[t._colorTransferFunc,t._pwFunc,t._labelOutlineThicknessArray,t._labelOutlineOpacity].forEach((t=&gt;n.unregisterGraphicsResourceUser(t,e)))}t.classHierarchy.push(&quot;vtkOpenGLImageMapper&quot;),e.buildPass=r=&gt;{if(r){t.currentRenderPass=null,t.openGLImageSlice=e.getFirstAncestorOfType(&quot;vtkOpenGLImageSlice&quot;),t._openGLRenderer=e.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;);const r=t._openGLRenderWindow;t._openGLRenderWindow=t._openGLRenderer.getLastAncestorOfType(&quot;vtkOpenGLRenderWindow&quot;),r&amp;&amp;!r.isDeleted()&amp;&amp;r!==t._openGLRenderWindow&amp;&amp;n(r),t.context=t._openGLRenderWindow.getContext(),t.tris.setOpenGLRenderWindow(t._openGLRenderWindow);const o=t._openGLRenderer.getRenderable();t.openGLCamera=t._openGLRenderer.getViewNodeFor(o.getActiveCamera(),t.openGLCamera),t.renderable.isA(&quot;vtkImageMapper&quot;)&amp;&amp;t.renderable.getSliceAtFocalPoint()&amp;&amp;t.renderable.setSliceFromCamera(o.getActiveCamera())}},e.translucentPass=(n,r)=&gt;{n&amp;&amp;(t.currentRenderPass=r,e.render())},e.zBufferPass=n=&gt;{n&amp;&amp;(t.haveSeenDepthRequest=!0,t.renderDepth=!0,e.render(),t.renderDepth=!1)},e.opaqueZBufferPass=t=&gt;e.zBufferPass(t),e.opaquePass=t=&gt;{t&amp;&amp;e.render()},e.getCoincidentParameters=(e,n)=&gt;t.renderable.getResolveCoincidentTopology()==Pl.PolygonOffset?t.renderable.getCoincidentTopologyPolygonOffsetParameters():null,e.render=()=&gt;{const n=t.openGLImageSlice.getRenderable(),r=t._openGLRenderer.getRenderable();e.renderPiece(r,n)},e.getShaderTemplate=(e,t,n)=&gt;{e.Vertex=jd,e.Fragment=Xd,e.Geometry=&quot;&quot;},e.replaceShaderValues=(n,r,o)=&gt;{let a=n.Vertex,i=n.Fragment;a=vd.substitute(a,&quot;//VTK::Camera::Dec&quot;,[&quot;uniform mat4 MCPCMatrix;&quot;]).result,a=vd.substitute(a,&quot;//VTK::PositionVC::Impl&quot;,[&quot;  gl_Position = MCPCMatrix * vertexMC;&quot;]).result,a=vd.substitute(a,&quot;//VTK::TCoord::Impl&quot;,&quot;tcoordVCVSOutput = tcoordMC;&quot;).result,a=vd.substitute(a,&quot;//VTK::TCoord::Dec&quot;,&quot;attribute vec2 tcoordMC; varying vec2 tcoordVCVSOutput;&quot;).result;const s=t.openGLTexture.getComponents(),l=o.getProperty().getIndependentComponents();let c=[&quot;varying vec2 tcoordVCVSOutput;&quot;,&quot;uniform float cshift0;&quot;,&quot;uniform float cscale0;&quot;,&quot;uniform float pwfshift0;&quot;,&quot;uniform float pwfscale0;&quot;,&quot;uniform sampler2D texture1;&quot;,&quot;uniform sampler2D colorTexture1;&quot;,&quot;uniform sampler2D pwfTexture1;&quot;,&quot;uniform float opacity;&quot;];if(o.getProperty().getUseLabelOutline()&amp;&amp;(c=c.concat([&quot;uniform sampler2D labelOutlineTexture1;&quot;,&quot;uniform sampler2D labelOutlineOpacityTexture1;&quot;])),l){for(let e=1;e&lt;s;e++)c=c.concat([`uniform float cshift${e};`,`uniform float cscale${e};`,`uniform float pwfshift${e};`,`uniform float pwfscale${e};`]);switch(s){case 1:c=c.concat([&quot;uniform float mix0;&quot;,&quot;#define height0 0.5&quot;]);break;case 2:c=c.concat([&quot;uniform float mix0;&quot;,&quot;uniform float mix1;&quot;,&quot;#define height0 0.25&quot;,&quot;#define height1 0.75&quot;]);break;case 3:c=c.concat([&quot;uniform float mix0;&quot;,&quot;uniform float mix1;&quot;,&quot;uniform float mix2;&quot;,&quot;#define height0 0.17&quot;,&quot;#define height1 0.5&quot;,&quot;#define height2 0.83&quot;]);break;case 4:c=c.concat([&quot;uniform float mix0;&quot;,&quot;uniform float mix1;&quot;,&quot;uniform float mix2;&quot;,&quot;uniform float mix3;&quot;,&quot;#define height0 0.125&quot;,&quot;#define height1 0.375&quot;,&quot;#define height2 0.625&quot;,&quot;#define height3 0.875&quot;]);break;default:$f(&quot;Unsupported number of independent coordinates.&quot;)}}if(i=vd.substitute(i,&quot;//VTK::TCoord::Dec&quot;,c).result,!0===o.getProperty().getUseLabelOutline()&amp;&amp;(i=vd.substitute(i,&quot;//VTK::LabelOutline::Dec&quot;,[&quot;uniform float vpWidth;&quot;,&quot;uniform float vpHeight;&quot;,&quot;uniform float vpOffsetX;&quot;,&quot;uniform float vpOffsetY;&quot;,&quot;uniform mat4 PCWCMatrix;&quot;,&quot;uniform mat4 vWCtoIDX;&quot;,&quot;uniform ivec3 imageDimensions;&quot;,&quot;uniform int sliceAxis;&quot;]).result,i=vd.substitute(i,&quot;//VTK::ImageLabelOutlineOn&quot;,&quot;#define vtkImageLabelOutlineOn&quot;).result,i=vd.substitute(i,&quot;//VTK::LabelOutlineHelperFunction&quot;,[&quot;#ifdef vtkImageLabelOutlineOn&quot;,&quot;vec3 fragCoordToIndexSpace(vec4 fragCoord) {&quot;,&quot;  vec4 pcPos = vec4(&quot;,&quot;    (fragCoord.x / vpWidth - vpOffsetX - 0.5) * 2.0,&quot;,&quot;    (fragCoord.y / vpHeight - vpOffsetY - 0.5) * 2.0,&quot;,&quot;    (fragCoord.z - 0.5) * 2.0,&quot;,&quot;    1.0);&quot;,&quot;&quot;,&quot;  vec4 worldCoord = PCWCMatrix * pcPos;&quot;,&quot;  vec4 vertex = (worldCoord/worldCoord.w);&quot;,&quot;&quot;,&quot;  vec3 index = (vWCtoIDX * vertex).xyz;&quot;,&quot;&quot;,&quot;  // half voxel fix for labelmapOutline&quot;,&quot;  return (index + vec3(0.5)) / vec3(imageDimensions);&quot;,&quot;}&quot;,&quot;vec2 getSliceCoords(vec3 coord, int axis) {&quot;,&quot;  if (axis == 0) return coord.yz;&quot;,&quot;  if (axis == 1) return coord.xz;&quot;,&quot;  if (axis == 2) return coord.xy;&quot;,&quot;}&quot;,&quot;#endif&quot;]).result),l){const e=[&quot;r&quot;,&quot;g&quot;,&quot;b&quot;,&quot;a&quot;];let t=[&quot;vec4 tvalue = texture2D(texture1, tcoordVCVSOutput);&quot;];for(let n=0;n&lt;s;n++)t=t.concat([`vec3 tcolor${n} = mix${n} * texture2D(colorTexture1, vec2(tvalue.${e[n]} * cscale${n} + cshift${n}, height${n})).rgb;`,`float compWeight${n} = mix${n} * texture2D(pwfTexture1, vec2(tvalue.${e[n]} * pwfscale${n} + pwfshift${n}, height${n})).r;`]);switch(s){case 1:t=t.concat([&quot;gl_FragData[0] = vec4(tcolor0.rgb, opacity);&quot;]);break;case 2:t=t.concat([&quot;float weightSum = compWeight0 + compWeight1;&quot;,&quot;gl_FragData[0] = vec4(vec3((tcolor0.rgb * (compWeight0 / weightSum)) + (tcolor1.rgb * (compWeight1 / weightSum))), opacity);&quot;]);break;case 3:t=t.concat([&quot;float weightSum = compWeight0 + compWeight1 + compWeight2;&quot;,&quot;gl_FragData[0] = vec4(vec3((tcolor0.rgb * (compWeight0 / weightSum)) + (tcolor1.rgb * (compWeight1 / weightSum)) + (tcolor2.rgb * (compWeight2 / weightSum))), opacity);&quot;]);break;case 4:t=t.concat([&quot;float weightSum = compWeight0 + compWeight1 + compWeight2 + compWeight3;&quot;,&quot;gl_FragData[0] = vec4(vec3((tcolor0.rgb * (compWeight0 / weightSum)) + (tcolor1.rgb * (compWeight1 / weightSum)) + (tcolor2.rgb * (compWeight2 / weightSum)) + (tcolor3.rgb * (compWeight3 / weightSum))), opacity);&quot;]);break;default:$f(&quot;Unsupported number of independent coordinates.&quot;)}i=vd.substitute(i,&quot;//VTK::TCoord::Impl&quot;,t).result}else switch(s){case 1:i=vd.substitute(i,&quot;//VTK::TCoord::Impl&quot;,[...tg(&quot;\\n                #ifdef vtkImageLabelOutlineOn\\n                  vec3 centerPosIS = fragCoordToIndexSpace(gl_FragCoord);\\n                  float centerValue = texture2D(texture1, getSliceCoords(centerPosIS, sliceAxis)).r;\\n                  bool pixelOnBorder = false;\\n                  vec3 tColor = texture2D(colorTexture1, vec2(centerValue * cscale0 + cshift0, 0.5)).rgb;\\n                  float scalarOpacity = texture2D(pwfTexture1, vec2(centerValue * pwfscale0 + pwfshift0, 0.5)).r;\\n                  float opacityToUse = scalarOpacity * opacity;\\n                  int segmentIndex = int(centerValue * 255.0);\\n                  float textureCoordinate = float(segmentIndex - 1) / 1024.0;\\n                  float textureValue = texture2D(labelOutlineTexture1, vec2(textureCoordinate, 0.5)).r;\\n                  float outlineOpacity = texture2D(labelOutlineOpacityTexture1, vec2(textureCoordinate, 0.5)).r;\\n                  int actualThickness = int(textureValue * 255.0);\\n\\n                  if (segmentIndex == 0){\\n                    gl_FragData[0] = vec4(0.0, 0.0, 0.0, 0.0);\\n                    return;\\n                  }\\n\\n                  for (int i = -actualThickness; i &lt;= actualThickness; i++) {\\n                    for (int j = -actualThickness; j &lt;= actualThickness; j++) {\\n                      if (i == 0 &amp;&amp; j == 0) {\\n                        continue;\\n                      }\\n                      vec4 neighborPixelCoord = vec4(gl_FragCoord.x + float(i),\\n                        gl_FragCoord.y + float(j),\\n                        gl_FragCoord.z, gl_FragCoord.w);\\n                      vec3 neighborPosIS = fragCoordToIndexSpace(neighborPixelCoord);\\n                      float value = texture2D(texture1, getSliceCoords(neighborPosIS, sliceAxis)).r;\\n                      if (value != centerValue) {\\n                        pixelOnBorder = true;\\n                        break;\\n                      }\\n                    }\\n                    if (pixelOnBorder == true) {\\n                      break;\\n                    }\\n                  }\\n                  if (pixelOnBorder == true) {\\n                    gl_FragData[0] = vec4(tColor, outlineOpacity);\\n                  }\\n                  else {\\n                    gl_FragData[0] = vec4(tColor, opacityToUse);\\n                  }\\n                #else\\n                  float intensity = texture2D(texture1, tcoordVCVSOutput).r;\\n                  vec3 tcolor = texture2D(colorTexture1, vec2(intensity * cscale0 + cshift0, 0.5)).rgb;\\n                  float scalarOpacity = texture2D(pwfTexture1, vec2(intensity * pwfscale0 + pwfshift0, 0.5)).r;\\n                  gl_FragData[0] = vec4(tcolor, scalarOpacity * opacity);\\n                #endif\\n                &quot;)]).result;break;case 2:i=vd.substitute(i,&quot;//VTK::TCoord::Impl&quot;,[&quot;vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);&quot;,&quot;float intensity = tcolor.r*cscale0 + cshift0;&quot;,&quot;gl_FragData[0] = vec4(texture2D(colorTexture1, vec2(intensity, 0.5)).rgb, pwfscale0*tcolor.g + pwfshift0);&quot;]).result;break;case 3:i=vd.substitute(i,&quot;//VTK::TCoord::Impl&quot;,[&quot;vec4 tcolor = cscale0*texture2D(texture1, tcoordVCVSOutput.st) + cshift0;&quot;,&quot;gl_FragData[0] = vec4(texture2D(colorTexture1, vec2(tcolor.r,0.5)).r,&quot;,&quot;  texture2D(colorTexture1, vec2(tcolor.g,0.5)).r,&quot;,&quot;  texture2D(colorTexture1, vec2(tcolor.b,0.5)).r, opacity);&quot;]).result;break;default:i=vd.substitute(i,&quot;//VTK::TCoord::Impl&quot;,[&quot;vec4 tcolor = cscale0*texture2D(texture1, tcoordVCVSOutput.st) + cshift0;&quot;,&quot;gl_FragData[0] = vec4(texture2D(colorTexture1, vec2(tcolor.r,0.5)).r,&quot;,&quot;  texture2D(colorTexture1, vec2(tcolor.g,0.5)).r,&quot;,&quot;  texture2D(colorTexture1, vec2(tcolor.b,0.5)).r, tcolor.a);&quot;]).result}t.haveSeenDepthRequest&amp;&amp;(i=vd.substitute(i,&quot;//VTK::ZBuffer::Dec&quot;,&quot;uniform int depthRequest;&quot;).result,i=vd.substitute(i,&quot;//VTK::ZBuffer::Impl&quot;,[&quot;if (depthRequest == 1) {&quot;,&quot;float iz = floor(gl_FragCoord.z*65535.0 + 0.1);&quot;,&quot;float rf = floor(iz/256.0)/255.0;&quot;,&quot;float gf = mod(iz,256.0)/255.0;&quot;,&quot;gl_FragData[0] = vec4(rf, gf, 0.0, 1.0); }&quot;]).result),n.Vertex=a,n.Fragment=i,e.replaceShaderClip(n,r,o),e.replaceShaderCoincidentOffset(n,r,o)},e.replaceShaderClip=(e,n,r)=&gt;{let o=e.Vertex,a=e.Fragment;if(t.renderable.getNumberOfClippingPlanes()){let e=t.renderable.getNumberOfClippingPlanes();e&gt;6&amp;&amp;(Tt(&quot;OpenGL has a limit of 6 clipping planes&quot;),e=6),o=vd.substitute(o,&quot;//VTK::Clip::Dec&quot;,[&quot;uniform int numClipPlanes;&quot;,&quot;uniform vec4 clipPlanes[6];&quot;,&quot;varying float clipDistancesVSOutput[6];&quot;]).result,o=vd.substitute(o,&quot;//VTK::Clip::Impl&quot;,[&quot;for (int planeNum = 0; planeNum &lt; 6; planeNum++)&quot;,&quot;    {&quot;,&quot;    if (planeNum &gt;= numClipPlanes)&quot;,&quot;        {&quot;,&quot;        break;&quot;,&quot;        }&quot;,&quot;    clipDistancesVSOutput[planeNum] = dot(clipPlanes[planeNum], vertexMC);&quot;,&quot;    }&quot;]).result,a=vd.substitute(a,&quot;//VTK::Clip::Dec&quot;,[&quot;uniform int numClipPlanes;&quot;,&quot;varying float clipDistancesVSOutput[6];&quot;]).result,a=vd.substitute(a,&quot;//VTK::Clip::Impl&quot;,[&quot;for (int planeNum = 0; planeNum &lt; 6; planeNum++)&quot;,&quot;    {&quot;,&quot;    if (planeNum &gt;= numClipPlanes)&quot;,&quot;        {&quot;,&quot;        break;&quot;,&quot;        }&quot;,&quot;    if (clipDistancesVSOutput[planeNum] &lt; 0.0) discard;&quot;,&quot;    }&quot;]).result}e.Vertex=o,e.Fragment=a},e.getNeedToRebuildShaders=(e,n,r)=&gt;{const o=t.openGLTexture.getComponents(),a=r.getProperty().getIndependentComponents();let i=!1;return(!t.currentRenderPass&amp;&amp;t.lastRenderPassShaderReplacement||t.currentRenderPass&amp;&amp;t.currentRenderPass.getShaderReplacement()!==t.lastRenderPassShaderReplacement)&amp;&amp;(i=!0),!!(i||t.lastHaveSeenDepthRequest!==t.haveSeenDepthRequest||0===e.getProgram()?.getHandle()||e.getShaderSourceTime().getMTime()&lt;t.renderable.getMTime()||e.getShaderSourceTime().getMTime()&lt;t.currentInput.getMTime()||e.getShaderSourceTime().getMTime()&lt;r.getProperty().getMTime()||t.lastTextureComponents!==o||t.lastIndependentComponents!==a)&amp;&amp;(t.lastHaveSeenDepthRequest=t.haveSeenDepthRequest,t.lastTextureComponents=o,t.lastIndependentComponents=a,!0)},e.updateShaders=(n,r,o)=&gt;{if(t.lastBoundBO=n,e.getNeedToRebuildShaders(n,r,o)){const a={Vertex:null,Fragment:null,Geometry:null};e.buildShaders(a,r,o);const i=t._openGLRenderWindow.getShaderCache().readyShaderProgramArray(a.Vertex,a.Fragment,a.Geometry);i!==n.getProgram()&amp;&amp;(n.setProgram(i),n.getVAO().releaseGraphicsResources()),n.getShaderSourceTime().modified()}else t._openGLRenderWindow.getShaderCache().readyShaderProgram(n.getProgram());n.getVAO().bind(),e.setMapperShaderParameters(n,r,o),e.setCameraShaderParameters(n,r,o),e.setPropertyShaderParameters(n,r,o)},e.setMapperShaderParameters=(n,r,o)=&gt;{n.getCABO().getElementCount()&amp;&amp;(t.VBOBuildTime&gt;n.getAttributeUpdateTime().getMTime()||n.getShaderSourceTime().getMTime()&gt;n.getAttributeUpdateTime().getMTime())&amp;&amp;(n.getProgram().isAttributeUsed(&quot;vertexMC&quot;)&amp;&amp;(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),&quot;vertexMC&quot;,n.getCABO().getVertexOffset(),n.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE)||$f(&quot;Error setting vertexMC in shader VAO.&quot;)),n.getProgram().isAttributeUsed(&quot;tcoordMC&quot;)&amp;&amp;n.getCABO().getTCoordOffset()&amp;&amp;(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),&quot;tcoordMC&quot;,n.getCABO().getTCoordOffset(),n.getCABO().getStride(),t.context.FLOAT,n.getCABO().getTCoordComponents(),t.context.FALSE)||$f(&quot;Error setting tcoordMC in shader VAO.&quot;)),n.getAttributeUpdateTime().modified());const a=t.openGLTexture.getTextureUnit();n.getProgram().setUniformi(&quot;texture1&quot;,a);const i=t.openGLTexture.getComponents(),s=o.getProperty().getIndependentComponents();if(s)for(let e=0;e&lt;i;e++)n.getProgram().setUniformf(`mix${e}`,o.getProperty().getComponentWeight(e));const l=t.openGLTexture.getShiftAndScale();for(let e=0;e&lt;i;e++){let t=o.getProperty().getColorWindow(),r=o.getProperty().getColorLevel();const a=s?e:0,i=o.getProperty().getRGBTransferFunction(a);if(i&amp;&amp;o.getProperty().getUseLookupTableScalarRange()){const e=i.getRange();t=e[1]-e[0],r=.5*(e[1]+e[0])}const c=l.scale/t,u=(l.shift-r)/t+.5;n.getProgram().setUniformf(`cshift${e}`,u),n.getProgram().setUniformf(`cscale${e}`,c)}for(let e=0;e&lt;i;e++){let t=1,r=0;const a=s?e:0,i=o.getProperty().getPiecewiseFunction(a);if(i){const e=i.getRange(),n=e[1]-e[0],o=.5*(e[0]+e[1]);t=l.scale/n,r=(l.shift-o)/n+.5}n.getProgram().setUniformf(`pwfshift${e}`,r),n.getProgram().setUniformf(`pwfscale${e}`,t)}if(t.haveSeenDepthRequest&amp;&amp;n.getProgram().setUniformi(&quot;depthRequest&quot;,t.renderDepth?1:0),n.getProgram().isUniformUsed(&quot;coffset&quot;)){const t=e.getCoincidentParameters(r,o);n.getProgram().setUniformf(&quot;coffset&quot;,t.offset),n.getProgram().isUniformUsed(&quot;cfactor&quot;)&amp;&amp;n.getProgram().setUniformf(&quot;cfactor&quot;,t.factor)}const c=t.colorTexture.getTextureUnit();n.getProgram().setUniformi(&quot;colorTexture1&quot;,c);const u=t.pwfTexture.getTextureUnit();if(n.getProgram().setUniformi(&quot;pwfTexture1&quot;,u),o.getProperty().getUseLabelOutline()){const e=t.labelOutlineThicknessTexture.getTextureUnit();n.getProgram().setUniformi(&quot;labelOutlineTexture1&quot;,e);const r=t.labelOutlineOpacityTexture.getTextureUnit();n.getProgram().setUniformi(&quot;labelOutlineOpacityTexture1&quot;,r)}if(t.renderable.getNumberOfClippingPlanes()){let e=t.renderable.getNumberOfClippingPlanes();e&gt;6&amp;&amp;(Tt(&quot;OpenGL has a limit of 6 clipping planes&quot;),e=6);const r=n.getCABO().getCoordShiftAndScaleEnabled()?n.getCABO().getInverseShiftAndScaleMatrix():null,a=r?T(t.imagematinv,o.getMatrix()):o.getMatrix();r&amp;&amp;(y(a,a),A(a,a,r),y(a,a)),y(t.imagemat,t.currentInput.getIndexToWorld()),A(t.imagematinv,a,t.imagemat);const i=[];for(let n=0;n&lt;e;n++){const e=[];t.renderable.getClippingPlaneInDataCoords(t.imagematinv,n,e);for(let t=0;t&lt;4;t++)i.push(e[t])}n.getProgram().setUniformi(&quot;numClipPlanes&quot;,e),n.getProgram().setUniform4fv(&quot;clipPlanes&quot;,i)}},e.setCameraShaderParameters=(n,r,o)=&gt;{const a=n.getProgram(),i=t.openGLImageSlice.getKeyMatrices(),s=t.currentInput,l=s.getIndexToWorld();A(t.imagemat,i.mcwc,l);const c=t.openGLCamera.getKeyMatrices(r);if(A(t.imagemat,c.wcpc,t.imagemat),n.getCABO().getCoordShiftAndScaleEnabled()){const e=n.getCABO().getInverseShiftAndScaleMatrix();A(t.imagemat,t.imagemat,e)}if(a.setUniformMatrix(&quot;MCPCMatrix&quot;,t.imagemat),!0===o.getProperty().getUseLabelOutline()){const n=s.getWorldToIndex(),o=s.getDimensions();let i=t.renderable.getClosestIJKAxis().ijkMode;i===eg.NONE&amp;&amp;(i=eg.K),a.setUniform3i(&quot;imageDimensions&quot;,o[0],o[1],o[2]),a.setUniformi(&quot;sliceAxis&quot;,i),a.setUniformMatrix(&quot;vWCtoIDX&quot;,n);const l=t.openGLCamera.getKeyMatrices(r);b(t.projectionToWorld,l.wcpc),t.openGLCamera.getKeyMatrices(r),a.setUniformMatrix(&quot;PCWCMatrix&quot;,t.projectionToWorld);const c=e.getRenderTargetSize();a.setUniformf(&quot;vpWidth&quot;,c[0]),a.setUniformf(&quot;vpHeight&quot;,c[1]);const u=e.getRenderTargetOffset();a.setUniformf(&quot;vpOffsetX&quot;,u[0]/c[0]),a.setUniformf(&quot;vpOffsetY&quot;,u[1]/c[1])}},e.setPropertyShaderParameters=(e,t,n)=&gt;{const r=e.getProgram(),o=n.getProperty().getOpacity();r.setUniformf(&quot;opacity&quot;,o)},e.renderPieceStart=(n,r)=&gt;{e.updateBufferObjects(n,r),t.lastBoundBO=null},e.renderPieceDraw=(n,r)=&gt;{const o=t.context;t.openGLTexture.activate(),t.colorTexture.activate(),r.getProperty().getUseLabelOutline()&amp;&amp;(t.labelOutlineThicknessTexture.activate(),t.labelOutlineOpacityTexture.activate()),t.pwfTexture.activate(),t.tris.getCABO().getElementCount()&amp;&amp;(e.updateShaders(t.tris,n,r),o.drawArrays(o.TRIANGLES,0,t.tris.getCABO().getElementCount()),t.tris.getVAO().release()),t.openGLTexture.deactivate(),t.colorTexture.deactivate(),r.getProperty().getUseLabelOutline()&amp;&amp;(t.labelOutlineThicknessTexture.deactivate(),t.labelOutlineOpacityTexture.deactivate()),t.pwfTexture.deactivate()},e.renderPieceFinish=(e,t)=&gt;{},e.renderPiece=(n,r)=&gt;{e.invokeEvent({type:&quot;StartEvent&quot;}),t.renderable.update(),t.currentInput=t.renderable.getCurrentImage(),e.invokeEvent({type:&quot;EndEvent&quot;}),t.currentInput?(e.renderPieceStart(n,r),e.renderPieceDraw(n,r),e.renderPieceFinish(n,r)):$f(&quot;No input!&quot;)},e.updateBufferObjects=(t,n)=&gt;{e.getNeedToRebuildBufferObjects(t,n)&amp;&amp;e.buildBufferObjects(t,n)},e.getNeedToRebuildBufferObjects=(n,r)=&gt;t.VBOBuildTime.getMTime()&lt;e.getMTime()||t.VBOBuildTime.getMTime()&lt;r.getMTime()||t.VBOBuildTime.getMTime()&lt;t.renderable.getMTime()||t.VBOBuildTime.getMTime()&lt;r.getProperty().getMTime()||t.VBOBuildTime.getMTime()&lt;t.currentInput.getMTime()||!t.openGLTexture?.getHandle()||!t.colorTexture?.getHandle()||r.getProperty().getUseLabelOutline()&amp;&amp;(!t.labelOutlineThicknessTexture?.getHandle()||!t.labelOutlineOpacityTexture?.getHandle())||!t.pwfTexture?.getHandle(),e.buildBufferObjects=(n,r)=&gt;{const o=t.currentInput;if(!o)return;const a=o.getPointData()&amp;&amp;o.getPointData().getScalars();if(!a)return;const i=a.getDataType(),s=a.getNumberOfComponents(),l=r.getProperty(),c=l.getInterpolationType(),u=l.getIndependentComponents(),d=u?s:1,p=u?2*d:1,f=[];for(let e=0;e&lt;d;++e)f.push(l.getRGBTransferFunction(e));const g=zf(f,u,d),m=l.getRGBTransferFunction(),h=t._openGLRenderWindow.getGraphicsResourceForObject(m);if(h?.oglObject?.getHandle()&amp;&amp;h?.hash===g)t.colorTexture=h.oglObject;else{t.colorTexture=Hd.newInstance({resizable:!0}),t.colorTexture.setOpenGLRenderWindow(t._openGLRenderWindow);let n=t.renderable.getColorTextureWidth();n&lt;=0&amp;&amp;(n=t.context.getParameter(t.context.MAX_TEXTURE_SIZE));const r=new Uint8ClampedArray(n*p*3);if(c===Hf.NEAREST?(t.colorTexture.setMinificationFilter(wd.NEAREST),t.colorTexture.setMagnificationFilter(wd.NEAREST)):(t.colorTexture.setMinificationFilter(wd.LINEAR),t.colorTexture.setMagnificationFilter(wd.LINEAR)),m){const e=new Float32Array(3*n);for(let t=0;t&lt;d;t++){const o=l.getRGBTransferFunction(t),a=o.getRange();if(o.getTable(a[0],a[1],n,e,1),u)for(let o=0;o&lt;3*n;o++)r[t*n*6+o]=255*e[o],r[t*n*6+o+3*n]=255*e[o];else for(let o=0;o&lt;3*n;o++)r[t*n*6+o]=255*e[o]}t.colorTexture.resetFormatAndType(),t.colorTexture.create2DFromRaw({width:n,height:p,numComps:3,dataType:ms.UNSIGNED_CHAR,data:r})}else{for(let e=0;e&lt;3*n;++e)r[e]=255*e/(3*(n-1)),r[e+1]=255*e/(3*(n-1)),r[e+2]=255*e/(3*(n-1));t.colorTexture.create2DFromRaw({width:n,height:1,numComps:3,dataType:ms.UNSIGNED_CHAR,data:r})}m&amp;&amp;(t._openGLRenderWindow.setGraphicsResourceForObject(m,t.colorTexture,g),m!==t._colorTransferFunc&amp;&amp;(t._openGLRenderWindow.registerGraphicsResourceUser(m,e),t._openGLRenderWindow.unregisterGraphicsResourceUser(t._colorTransferFunc,e)),t._colorTransferFunc=m)}const v=[];for(let e=0;e&lt;d;++e)v.push(l.getPiecewiseFunction(e));const T=zf(v,u,d),x=l.getPiecewiseFunction(),y=t._openGLRenderWindow.getGraphicsResourceForObject(x);if(y?.oglObject?.getHandle()&amp;&amp;y?.hash===T)t.pwfTexture=y.oglObject;else{let n=t.renderable.getOpacityTextureWidth();n&lt;=0&amp;&amp;(n=t.context.getParameter(t.context.MAX_TEXTURE_SIZE));const r=n*p,o=new Uint8ClampedArray(r);if(t.pwfTexture=Hd.newInstance({resizable:!0}),t.pwfTexture.setOpenGLRenderWindow(t._openGLRenderWindow),c===Hf.NEAREST?(t.pwfTexture.setMinificationFilter(wd.NEAREST),t.pwfTexture.setMagnificationFilter(wd.NEAREST)):(t.pwfTexture.setMinificationFilter(wd.LINEAR),t.pwfTexture.setMagnificationFilter(wd.LINEAR)),x){const e=new Float32Array(r),o=new Float32Array(n);for(let t=0;t&lt;d;++t){const r=l.getPiecewiseFunction(t);if(null===r)e.fill(1);else{const a=r.getRange();if(r.getTable(a[0],a[1],n,o,1),u)for(let r=0;r&lt;n;r++)e[t*n*2+r]=o[r],e[t*n*2+r+n]=o[r];else for(let r=0;r&lt;n;r++)e[t*n*2+r]=o[r]}}t.pwfTexture.resetFormatAndType(),t.pwfTexture.create2DFromRaw({width:n,height:p,numComps:1,dataType:ms.FLOAT,data:e})}else o.fill(255),t.pwfTexture.create2DFromRaw({width:n,height:1,numComps:1,dataType:ms.UNSIGNED_CHAR,data:o});x&amp;&amp;(t._openGLRenderWindow.setGraphicsResourceForObject(x,t.pwfTexture,T),x!==t._pwFunc&amp;&amp;(t._openGLRenderWindow.registerGraphicsResourceUser(x,e),t._openGLRenderWindow.unregisterGraphicsResourceUser(t._pwFunc,e)),t._pwFunc=x)}r.getProperty().getUseLabelOutline()&amp;&amp;(e.updatelabelOutlineThicknessTexture(r),e.updateLabelOutlineOpacityTexture(r));const{ijkMode:b}=t.renderable.getClosestIJKAxis();let A=t.renderable.getSlice();b!==t.renderable.getSlicingMode()&amp;&amp;(A=t.renderable.getSliceAtPosition(A));const C=t.renderable.isA(&quot;vtkImageArrayMapper&quot;)?t.renderable.getSubSlice():Math.round(A),S=o.getExtent();let P;b===eg.I&amp;&amp;(P=C-S[0]),b===eg.J&amp;&amp;(P=C-S[2]),b!==eg.K&amp;&amp;b!==eg.NONE||(P=C-S[4]);const w=`${A}A${o.getMTime()}A${a.getMTime()}B${e.getMTime()}C${t.renderable.getSlicingMode()}D${r.getProperty().getInterpolationType()}`;if(t.VBOBuildString!==w){const e=o.getDimensions();t.openGLTexture||(t.openGLTexture=Hd.newInstance({resizable:!0})),t.openGLTexture.setOpenGLRenderWindow(t._openGLRenderWindow),t.openGLTexture.setOglNorm16Ext(t.context.getExtension(&quot;EXT_texture_norm16&quot;)),c===Hf.NEAREST?(new Set([1,3,4]).has(s)&amp;&amp;i===ms.UNSIGNED_CHAR&amp;&amp;!u?(t.openGLTexture.setGenerateMipmap(!0),t.openGLTexture.setMinificationFilter(wd.NEAREST)):t.openGLTexture.setMinificationFilter(wd.NEAREST),t.openGLTexture.setMagnificationFilter(wd.NEAREST)):(4!==s||i!==ms.UNSIGNED_CHAR||u?t.openGLTexture.setMinificationFilter(wd.LINEAR):(t.openGLTexture.setGenerateMipmap(!0),t.openGLTexture.setMinificationFilter(wd.LINEAR_MIPMAP_LINEAR)),t.openGLTexture.setMagnificationFilter(wd.LINEAR)),t.openGLTexture.setWrapS(Pd.CLAMP_TO_EDGE),t.openGLTexture.setWrapT(Pd.CLAMP_TO_EDGE);const n=e[0]*e[1]*s,r=new Float32Array(12),l=new Float32Array(8);for(let e=0;e&lt;4;e++)l[2*e]=e%2?1:0,l[2*e+1]=e&gt;1?1:0;const d=[eg.X,eg.Y,eg.Z].includes(t.renderable.getSlicingMode())?A:C,p=o.getSpatialExtent(),f=a.getData();let g=null;if(b===eg.I){g=new f.constructor(e[2]*e[1]*s);let t=0;for(let n=0;n&lt;e[2];n++)for(let r=0;r&lt;e[1];r++){let o=(P+r*e[0]+n*e[0]*e[1])*s;t=(n*e[1]+r)*s;const a=o+s;for(;o&lt;a;)g[t++]=f[o++]}e[0]=e[1],e[1]=e[2],r[0]=d,r[1]=p[2],r[2]=p[4],r[3]=d,r[4]=p[3],r[5]=p[4],r[6]=d,r[7]=p[2],r[8]=p[5],r[9]=d,r[10]=p[3],r[11]=p[5]}else if(b===eg.J){g=new f.constructor(e[2]*e[0]*s);let t=0;for(let n=0;n&lt;e[2];n++)for(let r=0;r&lt;e[0];r++){let o=(r+P*e[0]+n*e[0]*e[1])*s;t=(n*e[0]+r)*s;const a=o+s;for(;o&lt;a;)g[t++]=f[o++]}e[1]=e[2],r[0]=p[0],r[1]=d,r[2]=p[4],r[3]=p[1],r[4]=d,r[5]=p[4],r[6]=p[0],r[7]=d,r[8]=p[5],r[9]=p[1],r[10]=d,r[11]=p[5]}else b===eg.K||b===eg.NONE?(g=f.subarray(P*n,(P+1)*n),r[0]=p[0],r[1]=p[2],r[2]=d,r[3]=p[1],r[4]=p[2],r[5]=d,r[6]=p[0],r[7]=p[3],r[8]=d,r[9]=p[1],r[10]=p[3],r[11]=d):$f(&quot;Reformat slicing not yet supported.&quot;);const m=a.getRanges();t.openGLTexture.resetFormatAndType(),t.openGLTexture.create2DFilterableFromRaw({width:e[0],height:e[1],numComps:s,dataType:a.getDataType(),data:g,preferSizeOverAccuracy:!!t.renderable.getPreferSizeOverAccuracy?.(),ranges:m}),t.openGLTexture.activate(),t.openGLTexture.sendParameters(),t.openGLTexture.deactivate();const h=Is.newInstance({numberOfComponents:3,values:r});h.setName(&quot;points&quot;);const v=Is.newInstance({numberOfComponents:2,values:l});v.setName(&quot;tcoords&quot;);const T=new Uint16Array(8);T[0]=3,T[1]=0,T[2]=1,T[3]=3,T[4]=3,T[5]=0,T[6]=3,T[7]=2;const x=Is.newInstance({numberOfComponents:1,values:T});t.tris.getCABO().createVBO(x,&quot;polys&quot;,rs.SURFACE,{points:h,tcoords:v,cellOffset:0}),t.VBOBuildTime.modified(),t.VBOBuildString=w}},e.updateLabelOutlineOpacityTexture=n=&gt;{let r=n.getProperty().getLabelOutlineOpacity();&quot;number&quot;==typeof r&amp;&amp;(r=t._cachedLabelOutlineOpacityObj?.[0]===r?t._cachedLabelOutlineOpacityObj:[r],t._cachedLabelOutlineOpacityObj=r);const o=t._openGLRenderWindow.getGraphicsResourceForObject(r),a=`${r.join(&quot;-&quot;)}`;if(o?.oglObject?.getHandle()&amp;&amp;o?.hash===a)t.labelOutlineOpacityTexture=o.oglObject;else{let n=t.renderable.getLabelOutlineTextureWidth();n&lt;=0&amp;&amp;(n=t.context.getParameter(t.context.MAX_TEXTURE_SIZE));const o=1,i=new Float32Array(n*o);for(let e=0;e&lt;n;++e)i[e]=r[e]??r[0];t.labelOutlineOpacityTexture=Hd.newInstance({resizable:!1}),t.labelOutlineOpacityTexture.setOpenGLRenderWindow(t._openGLRenderWindow),t.labelOutlineOpacityTexture.resetFormatAndType(),t.labelOutlineOpacityTexture.setMinificationFilter(wd.NEAREST),t.labelOutlineOpacityTexture.setMagnificationFilter(wd.NEAREST),t.labelOutlineOpacityTexture.create2DFromRaw({width:n,height:o,numComps:1,dataType:ms.FLOAT,data:i}),r&amp;&amp;(t._openGLRenderWindow.setGraphicsResourceForObject(r,t.labelOutlineOpacityTexture,a),r!==t._labelOutlineOpacity&amp;&amp;(t._openGLRenderWindow.registerGraphicsResourceUser(r,e),t._openGLRenderWindow.unregisterGraphicsResourceUser(t._labelOutlineOpacity,e)),t._labelOutlineOpacity=r)}},e.updatelabelOutlineThicknessTexture=n=&gt;{const r=n.getProperty().getLabelOutlineThicknessByReference(),o=t._openGLRenderWindow.getGraphicsResourceForObject(r),a=`${r.join(&quot;-&quot;)}`;if(o?.oglObject?.getHandle()&amp;&amp;o?.hash===a)t.labelOutlineThicknessTexture=o.oglObject;else{let n=t.renderable.getLabelOutlineTextureWidth();n&lt;=0&amp;&amp;(n=t.context.getParameter(t.context.MAX_TEXTURE_SIZE));const o=1,i=new Uint8Array(n*o);for(let e=0;e&lt;n;++e){const t=void 0!==r[e]?r[e]:r[0];i[e]=t}t.labelOutlineThicknessTexture=Hd.newInstance({resizable:!1}),t.labelOutlineThicknessTexture.setOpenGLRenderWindow(t._openGLRenderWindow),t.labelOutlineThicknessTexture.resetFormatAndType(),t.labelOutlineThicknessTexture.setMinificationFilter(wd.NEAREST),t.labelOutlineThicknessTexture.setMagnificationFilter(wd.NEAREST),t.labelOutlineThicknessTexture.create2DFromRaw({width:n,height:o,numComps:1,dataType:ms.UNSIGNED_CHAR,data:i}),r&amp;&amp;(t._openGLRenderWindow.setGraphicsResourceForObject(r,t.labelOutlineThicknessTexture,a),r!==t._labelOutlineThicknessArray&amp;&amp;(t._openGLRenderWindow.registerGraphicsResourceUser(r,e),t._openGLRenderWindow.unregisterGraphicsResourceUser(t._labelOutlineThicknessArray,e)),t._labelOutlineThicknessArray=r)}},e.getRenderTargetSize=()=&gt;{if(t._useSmallViewport)return[t._smallViewportWidth,t._smallViewportHeight];const{usize:e,vsize:n}=t._openGLRenderer.getTiledSizeAndOrigin();return[e,n]},e.getRenderTargetOffset=()=&gt;{const{lowerLeftU:e,lowerLeftV:n}=t._openGLRenderer.getTiledSizeAndOrigin();return[e,n]},e.delete=qt((()=&gt;{t._openGLRenderWindow&amp;&amp;n(t._openGLRenderWindow)}),e.delete)}(e,t)}),&quot;vtkOpenGLImageMapper&quot;);vn(&quot;vtkAbstractImageMapper&quot;,rg);const og=0,ag=1,ig=2,{vtkErrorMacro:sg}=sn;const lg={currentRenderPass:null,volumeTexture:null,colorTexture:null,pwfTexture:null,tris:null,lastHaveSeenDepthRequest:!1,haveSeenDepthRequest:!1,lastTextureComponents:0,lastIndependentComponents:0,imagemat:null,imagematinv:null};const cg=sn.newInstance((function(e,t,n={}){Object.assign(t,lg,n),pn.extend(e,t,n),qd.implementReplaceShaderCoincidentOffset(e,t,n),sn.algo(e,t,2,0),t.tris=Sd.newInstance(),t.volumeTexture=null,t.colorTexture=null,t.pwfTexture=null,t.imagemat=x(new Float64Array(16)),t.imagematinv=x(new Float64Array(16)),t.VBOBuildTime={},sn.obj(t.VBOBuildTime,{mtime:0}),function(e,t){function n(n){[t._scalars,t._colorTransferFunc,t._pwFunc].forEach((t=&gt;n.unregisterGraphicsResourceUser(t,e)))}t.classHierarchy.push(&quot;vtkOpenGLImageCPRMapper&quot;),e.buildPass=r=&gt;{if(r){t.currentRenderPass=null,t.openGLImageSlice=e.getFirstAncestorOfType(&quot;vtkOpenGLImageSlice&quot;),t._openGLRenderer=e.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;);const r=t._openGLRenderWindow;t._openGLRenderWindow=t._openGLRenderer.getLastAncestorOfType(&quot;vtkOpenGLRenderWindow&quot;),r&amp;&amp;!r.isDeleted()&amp;&amp;r!==t._openGLRenderWindow&amp;&amp;n(r),t.context=t._openGLRenderWindow.getContext(),t.openGLCamera=t._openGLRenderer.getViewNodeFor(t._openGLRenderer.getRenderable().getActiveCamera(),t.openGLCamera),t.tris.setOpenGLRenderWindow(t._openGLRenderWindow)}},e.opaquePass=(n,r)=&gt;{n&amp;&amp;(t.currentRenderPass=r,e.render())},e.opaqueZBufferPass=n=&gt;{n&amp;&amp;(t.haveSeenDepthRequest=!0,t.renderDepth=!0,e.render(),t.renderDepth=!1)},e.getCoincidentParameters=(e,n)=&gt;t.renderable.getResolveCoincidentTopology()===Pl.PolygonOffset?t.renderable.getCoincidentTopologyPolygonOffsetParameters():null,e.render=()=&gt;{const n=t.openGLImageSlice.getRenderable(),r=t._openGLRenderer.getRenderable();e.renderPiece(r,n)},e.renderPiece=(n,r)=&gt;{e.invokeEvent({type:&quot;StartEvent&quot;}),t.renderable.update(),e.invokeEvent({type:&quot;EndEvent&quot;}),t.renderable.preRenderCheck()&amp;&amp;(t.currentImageDataInput=t.renderable.getInputData(0),t.currentCenterlineInput=t.renderable.getOrientedCenterline(),e.renderPieceStart(n,r),e.renderPieceDraw(n,r),e.renderPieceFinish(n,r))},e.renderPieceStart=(t,n)=&gt;{e.updateBufferObjects(t,n)},e.renderPieceDraw=(n,r)=&gt;{const o=t.context;t.volumeTexture.activate(),t.colorTexture.activate(),t.pwfTexture.activate(),t.tris.getCABO().getElementCount()&amp;&amp;(e.updateShaders(t.tris,n,r),o.drawArrays(o.TRIANGLES,0,t.tris.getCABO().getElementCount()),t.tris.getVAO().release()),t.volumeTexture.deactivate(),t.colorTexture.deactivate(),t.pwfTexture.deactivate()},e.renderPieceFinish=(e,t)=&gt;{},e.updateBufferObjects=(n,r)=&gt;{e.getNeedToRebuildBufferObjects(n,r)&amp;&amp;e.buildBufferObjects(n,r),r.getProperty().getInterpolationType()===Hf.NEAREST?(t.volumeTexture.setMinificationFilter(wd.NEAREST),t.volumeTexture.setMagnificationFilter(wd.NEAREST),t.colorTexture.setMinificationFilter(wd.NEAREST),t.colorTexture.setMagnificationFilter(wd.NEAREST),t.pwfTexture.setMinificationFilter(wd.NEAREST),t.pwfTexture.setMagnificationFilter(wd.NEAREST)):(t.volumeTexture.setMinificationFilter(wd.LINEAR),t.volumeTexture.setMagnificationFilter(wd.LINEAR),t.colorTexture.setMinificationFilter(wd.LINEAR),t.colorTexture.setMagnificationFilter(wd.LINEAR),t.pwfTexture.setMinificationFilter(wd.LINEAR),t.pwfTexture.setMagnificationFilter(wd.LINEAR))},e.getNeedToRebuildBufferObjects=(n,r)=&gt;{const o=t.VBOBuildTime.getMTime();return o&lt;e.getMTime()||o&lt;t.renderable.getMTime()||o&lt;r.getMTime()||o&lt;t.currentImageDataInput.getMTime()||o&lt;t.currentCenterlineInput.getMTime()||!t.volumeTexture?.getHandle()},e.buildBufferObjects=(n,r)=&gt;{const o=t.currentImageDataInput,a=t.currentCenterlineInput,i=r.getProperty(),s=o?.getPointData()?.getScalars();if(!s)return;const l=t._openGLRenderWindow.getGraphicsResourceForObject(s),c=Wf(0,s),u=!l?.oglObject?.getHandle()||l?.hash!==c,d=i.getUpdatedExtents(),p=!!d.length;if(u){t.volumeTexture=Hd.newInstance(),t.volumeTexture.setOpenGLRenderWindow(t._openGLRenderWindow);const n=o.getDimensions();t.volumeTexture.setOglNorm16Ext(t.context.getExtension(&quot;EXT_texture_norm16&quot;)),t.volumeTexture.resetFormatAndType(),t.volumeTexture.create3DFilterableFromDataArray({width:n[0],height:n[1],depth:n[2],dataArray:s,preferSizeOverAccuracy:t.renderable.getPreferSizeOverAccuracy()}),t._openGLRenderWindow.setGraphicsResourceForObject(s,t.volumeTexture,c),s!==t._scalars&amp;&amp;(t._openGLRenderWindow.registerGraphicsResourceUser(s,e),t._openGLRenderWindow.unregisterGraphicsResourceUser(t._scalars,e)),t._scalars=s}else t.volumeTexture=l.oglObject;if(p){i.setUpdatedExtents([]);const e=o.getDimensions();t.volumeTexture.create3DFilterableFromDataArray({width:e[0],height:e[1],depth:e[2],dataArray:s,updatedExtents:d})}const f=s.getNumberOfComponents(),g=r.getProperty(),m=g.getIndependentComponents(),h=m?f:1,v=m?2*h:1,T=[];for(let e=0;e&lt;h;++e)T.push(g.getRGBTransferFunction(e));const x=zf(T,m,h),y=g.getRGBTransferFunction(),b=t._openGLRenderWindow.getGraphicsResourceForObject(y);if(b?.oglObject?.getHandle()&amp;&amp;b?.hash===x)t.colorTexture=b.oglObject;else{let n=t.renderable.getColorTextureWidth();n&lt;=0&amp;&amp;(n=t.context.getParameter(t.context.MAX_TEXTURE_SIZE));const r=new Uint8ClampedArray(n*v*3);if(t.colorTexture=Hd.newInstance(),t.colorTexture.setOpenGLRenderWindow(t._openGLRenderWindow),y){const e=new Float32Array(3*n);for(let t=0;t&lt;h;t++){const o=g.getRGBTransferFunction(t),a=o.getRange();if(o.getTable(a[0],a[1],n,e,1),m)for(let o=0;o&lt;3*n;o++)r[t*n*6+o]=255*e[o],r[t*n*6+o+3*n]=255*e[o];else for(let o=0;o&lt;3*n;o++)r[t*n*6+o]=255*e[o]}t.colorTexture.resetFormatAndType(),t.colorTexture.create2DFromRaw({width:n,height:v,numComps:3,dataType:ms.UNSIGNED_CHAR,data:r})}else{for(let e=0;e&lt;3*n;++e)r[e]=255*e/(3*(n-1)),r[e+1]=255*e/(3*(n-1)),r[e+2]=255*e/(3*(n-1));t.colorTexture.resetFormatAndType(),t.colorTexture.create2DFromRaw({width:n,height:1,numComps:3,dataType:ms.UNSIGNED_CHAR,data:r})}y&amp;&amp;(t._openGLRenderWindow.setGraphicsResourceForObject(y,t.colorTexture,x),y!==t._colorTransferFunc&amp;&amp;(t._openGLRenderWindow.registerGraphicsResourceUser(y,e),t._openGLRenderWindow.unregisterGraphicsResourceUser(t._colorTransferFunc,e)),t._colorTransferFunc=y)}const A=[];for(let e=0;e&lt;h;++e)A.push(g.getPiecewiseFunction(e));const C=zf(A,m,h),S=g.getPiecewiseFunction(),P=t._openGLRenderWindow.getGraphicsResourceForObject(S);if(P?.oglObject?.getHandle()&amp;&amp;P?.hash===C)t.pwfTexture=P.oglObject;else{let n=t.renderable.getOpacityTextureWidth();n&lt;=0&amp;&amp;(n=t.context.getParameter(t.context.MAX_TEXTURE_SIZE));const r=n*v,o=new Uint8ClampedArray(r);if(t.pwfTexture=Hd.newInstance(),t.pwfTexture.setOpenGLRenderWindow(t._openGLRenderWindow),S){const e=new Float32Array(r),o=new Float32Array(n);for(let t=0;t&lt;h;++t){const r=g.getPiecewiseFunction(t);if(null===r)e.fill(1);else{const a=r.getRange();if(r.getTable(a[0],a[1],n,o,1),m)for(let r=0;r&lt;n;r++)e[t*n*2+r]=o[r],e[t*n*2+r+n]=o[r];else for(let r=0;r&lt;n;r++)e[t*n*2+r]=o[r]}}t.pwfTexture.resetFormatAndType(),t.pwfTexture.create2DFromRaw({width:n,height:v,numComps:1,dataType:ms.FLOAT,data:e})}else o.fill(255),t.pwfTexture.resetFormatAndType(),t.pwfTexture.create2DFromRaw({width:n,height:1,numComps:1,dataType:ms.UNSIGNED_CHAR,data:o});S&amp;&amp;(t._openGLRenderWindow.setGraphicsResourceForObject(S,t.pwfTexture,C),S!==t._pwFunc&amp;&amp;(t._openGLRenderWindow.registerGraphicsResourceUser(S,e),t._openGLRenderWindow.unregisterGraphicsResourceUser(t._pwFunc,e)),t._pwFunc=S)}if(t.VBOBuildTime.getMTime()&lt;t.renderable.getMTime()||t.VBOBuildTime.getMTime()&lt;a.getMTime()){const e=a.getNumberOfPoints(),n=e&lt;=1?0:e-1,r=a.getDistancesToFirstPoint(),o=t.renderable.getHeight(),i=4*n,s=new Float32Array(3*i),l=t.renderable.getWidth();for(let e=0,t=0;e&lt;n;++e)s.set([0,o-r[e],0],t),t+=3,s.set([l,o-r[e],0],t),t+=3,s.set([l,o-r[e+1],0],t),t+=3,s.set([0,o-r[e+1],0],t),t+=3;const c=Is.newInstance({numberOfComponents:3,values:s});c.setName(&quot;points&quot;);const u=new Uint16Array(5*n);for(let e=0,t=0,r=0;e&lt;n;++e)u.set([4,r+3,r+2,r+1,r],t),t+=5,r+=4;const d=Is.newInstance({numberOfComponents:1,values:u}),p=a.getPoints(),f=new Float32Array(3*i),g=new Array(3),m=new Array(3);for(let e=0,t=0;e&lt;n;++e)p.getPoint(e,g),p.getPoint(e+1,m),f.set(g,t),t+=3,f.set(g,t),t+=3,f.set(m,t),t+=3,f.set(m,t),t+=3;const h=Is.newInstance({numberOfComponents:3,values:f,name:&quot;centerlinePosition&quot;}),v=new Float32Array(i);for(let e=0,t=0;e&lt;n;++e)v.set([0,1,3,2],t),t+=4;const T=[h,Is.newInstance({numberOfComponents:1,values:v,name:&quot;quadIndex&quot;})];if(!t.renderable.getUseUniformOrientation()){const e=t.renderable.getOrientedCenterline().getOrientations()??[],r=new Float32Array(4*i),o=new Float32Array(4*i);for(let t=0;t&lt;n;++t){const n=e[t],a=e[t+1];for(let e=0;e&lt;4;++e){const i=4*(e+4*t);r.set(n,i),o.set(a,i)}}const a=Is.newInstance({numberOfComponents:4,values:r,name:&quot;centerlineTopOrientation&quot;}),s=Is.newInstance({numberOfComponents:4,values:o,name:&quot;centerlineBotOrientation&quot;});T.push(a,s)}t.tris.getCABO().createVBO(d,&quot;polys&quot;,rs.SURFACE,{points:c,customAttributes:T}),t.VBOBuildTime.modified()}},e.getNeedToRebuildShaders=(e,n,r)=&gt;{const o=t.volumeTexture.getComponents(),a=r.getProperty().getIndependentComponents(),i=!!t.renderable.getCenterPoint(),s=t.renderable.getUseUniformOrientation(),l=t.renderable.isProjectionEnabled()&amp;&amp;t.renderable.getProjectionMode();return(0===e.getProgram()||t.lastUseCenterPoint!==i||t.lastUseUniformOrientation!==s||t.lastProjectionMode!==l||t.lastHaveSeenDepthRequest!==t.haveSeenDepthRequest||t.lastTextureComponents!==o||t.lastIndependentComponents!==a)&amp;&amp;(t.lastUseCenterPoint=i,t.lastUseUniformOrientation=s,t.lastProjectionMode=l,t.lastHaveSeenDepthRequest=t.haveSeenDepthRequest,t.lastTextureComponents=o,t.lastIndependentComponents=a,!0)},e.buildShaders=(t,n,r)=&gt;{e.getShaderTemplate(t,n,r),e.replaceShaderValues(t,n,r)},e.replaceShaderValues=(n,r,o)=&gt;{let a=n.Vertex,i=n.Fragment;const s=[&quot;vec3 applyQuaternionToVec(vec4 q, vec3 v) {&quot;,&quot;  float uvx = q.y * v.z - q.z * v.y;&quot;,&quot;  float uvy = q.z * v.x - q.x * v.z;&quot;,&quot;  float uvz = q.x * v.y - q.y * v.x;&quot;,&quot;  float uuvx = q.y * uvz - q.z * uvy;&quot;,&quot;  float uuvy = q.z * uvx - q.x * uvz;&quot;,&quot;  float uuvz = q.x * uvy - q.y * uvx;&quot;,&quot;  float w2 = q.w * 2.0;&quot;,&quot;  uvx *= w2;&quot;,&quot;  uvy *= w2;&quot;,&quot;  uvz *= w2;&quot;,&quot;  uuvx *= 2.0;&quot;,&quot;  uuvy *= 2.0;&quot;,&quot;  uuvz *= 2.0;&quot;,&quot;  return vec3(v.x + uvx + uuvx, v.y + uvy + uuvy, v.z + uvz + uuvz);&quot;,&quot;}&quot;];a=vd.substitute(a,&quot;//VTK::Camera::Dec&quot;,[&quot;uniform mat4 MCPCMatrix;&quot;]).result,a=vd.substitute(a,&quot;//VTK::PositionVC::Impl&quot;,[&quot;  gl_Position = MCPCMatrix * vertexMC;&quot;]).result;const l=[&quot;attribute vec3 centerlinePosition;&quot;,&quot;attribute float quadIndex;&quot;,&quot;uniform float width;&quot;,&quot;out vec2 quadOffsetVSOutput;&quot;,&quot;out vec3 centerlinePosVSOutput;&quot;],c=t.renderable.isProjectionEnabled(),u=t.renderable.getUseUniformOrientation();u?(l.push(&quot;out vec3 samplingDirVSOutput;&quot;,&quot;uniform vec4 centerlineOrientation;&quot;,&quot;uniform vec3 tangentDirection;&quot;,...s),c&amp;&amp;l.push(&quot;out vec3 projectionDirVSOutput;&quot;,&quot;uniform vec3 bitangentDirection;&quot;)):l.push(&quot;out vec4 centerlineTopOrientationVSOutput;&quot;,&quot;out vec4 centerlineBotOrientationVSOutput;&quot;,&quot;attribute vec4 centerlineTopOrientation;&quot;,&quot;attribute vec4 centerlineBotOrientation;&quot;),a=vd.substitute(a,&quot;//VTK::Color::Dec&quot;,l).result;const d=[&quot;quadOffsetVSOutput = vec2(width * (mod(quadIndex, 2.0) == 0.0 ? -0.5 : 0.5), quadIndex &gt; 1.0 ? 0.0 : 1.0);&quot;,&quot;centerlinePosVSOutput = centerlinePosition;&quot;];u?(d.push(&quot;samplingDirVSOutput = applyQuaternionToVec(centerlineOrientation, tangentDirection);&quot;),c&amp;&amp;d.push(&quot;projectionDirVSOutput = applyQuaternionToVec(centerlineOrientation, bitangentDirection);&quot;)):d.push(&quot;centerlineTopOrientationVSOutput = centerlineTopOrientation;&quot;,&quot;centerlineBotOrientationVSOutput = centerlineBotOrientation;&quot;),a=vd.substitute(a,&quot;//VTK::Color::Impl&quot;,d).result;const p=t.volumeTexture.getComponents(),f=o.getProperty().getIndependentComponents();let g=[&quot;uniform mat4 MCTCMatrix; // Model coordinates to texture coordinates&quot;,&quot;in vec2 quadOffsetVSOutput;&quot;,&quot;in vec3 centerlinePosVSOutput;&quot;,&quot;uniform highp sampler3D volumeTexture;&quot;,&quot;uniform sampler2D colorTexture1;&quot;,&quot;uniform sampler2D pwfTexture1;&quot;,&quot;uniform float opacity;&quot;,&quot;uniform vec4 backgroundColor;&quot;,&quot;uniform float cshift0;&quot;,&quot;uniform float cscale0;&quot;,&quot;uniform float pwfshift0;&quot;,&quot;uniform float pwfscale0;&quot;];c&amp;&amp;g.push(&quot;uniform vec3 volumeSizeMC;&quot;,&quot;uniform int projectionSlabNumberOfSamples;&quot;,&quot;uniform float projectionConstantOffset;&quot;,&quot;uniform float projectionStepLength;&quot;),u?(g.push(&quot;in vec3 samplingDirVSOutput;&quot;),c&amp;&amp;g.push(&quot;in vec3 projectionDirVSOutput;&quot;)):(g.push(&quot;uniform vec3 tangentDirection;&quot;,&quot;in vec4 centerlineTopOrientationVSOutput;&quot;,&quot;in vec4 centerlineBotOrientationVSOutput;&quot;,...s),c&amp;&amp;g.push(&quot;uniform vec3 bitangentDirection;&quot;));const m=t.renderable.getCenterPoint();if(m&amp;&amp;g.push(&quot;uniform vec3 globalCenterPoint;&quot;),f){for(let e=1;e&lt;p;e++)g=g.concat([`uniform float cshift${e};`,`uniform float cscale${e};`,`uniform float pwfshift${e};`,`uniform float pwfscale${e};`]);switch(p){case 1:g=g.concat([&quot;uniform float mix0;&quot;,&quot;#define height0 0.5&quot;]);break;case 2:g=g.concat([&quot;uniform float mix0;&quot;,&quot;uniform float mix1;&quot;,&quot;#define height0 0.25&quot;,&quot;#define height1 0.75&quot;]);break;case 3:g=g.concat([&quot;uniform float mix0;&quot;,&quot;uniform float mix1;&quot;,&quot;uniform float mix2;&quot;,&quot;#define height0 0.17&quot;,&quot;#define height1 0.5&quot;,&quot;#define height2 0.83&quot;]);break;case 4:g=g.concat([&quot;uniform float mix0;&quot;,&quot;uniform float mix1;&quot;,&quot;uniform float mix2;&quot;,&quot;uniform float mix3;&quot;,&quot;#define height0 0.125&quot;,&quot;#define height1 0.375&quot;,&quot;#define height2 0.625&quot;,&quot;#define height3 0.875&quot;]);break;default:sg(&quot;Unsupported number of independent coordinates.&quot;)}}i=vd.substitute(i,&quot;//VTK::TCoord::Dec&quot;,g).result;let h=[];if(u?(h.push(&quot;vec3 samplingDirection = samplingDirVSOutput;&quot;),c&amp;&amp;h.push(&quot;vec3 projectionDirection = projectionDirVSOutput;&quot;)):(h.push(&quot;vec4 q0 = centerlineBotOrientationVSOutput;&quot;,&quot;vec4 q1 = centerlineTopOrientationVSOutput;&quot;,&quot;float qCosAngle = dot(q0, q1);&quot;,&quot;vec4 interpolatedOrientation;&quot;,&quot;if (qCosAngle &gt; 0.999 || qCosAngle &lt; -0.999) {&quot;,&quot;  // Use LERP instead of SLERP when the two quaternions are close or opposite&quot;,&quot;  interpolatedOrientation = normalize(mix(q0, q1, quadOffsetVSOutput.y));&quot;,&quot;} else {&quot;,&quot;  float omega = acos(qCosAngle);&quot;,&quot;  interpolatedOrientation = normalize(sin((1.0 - quadOffsetVSOutput.y) * omega) * q0 + sin(quadOffsetVSOutput.y * omega) * q1);&quot;,&quot;}&quot;,&quot;vec3 samplingDirection = applyQuaternionToVec(interpolatedOrientation, tangentDirection);&quot;),c&amp;&amp;h.push(&quot;vec3 projectionDirection = applyQuaternionToVec(interpolatedOrientation, bitangentDirection);&quot;)),m?h.push(&quot;float baseOffset = dot(samplingDirection, globalCenterPoint - centerlinePosVSOutput);&quot;,&quot;float horizontalOffset = quadOffsetVSOutput.x + baseOffset;&quot;):h.push(&quot;float horizontalOffset = quadOffsetVSOutput.x;&quot;),h.push(&quot;vec3 volumePosMC = centerlinePosVSOutput + horizontalOffset * samplingDirection;&quot;,&quot;vec3 volumePosTC = (MCTCMatrix * vec4(volumePosMC, 1.0)).xyz;&quot;,&quot;if (any(lessThan(volumePosTC, vec3(0.0))) || any(greaterThan(volumePosTC, vec3(1.0))))&quot;,&quot;{&quot;,&quot;  // set the background color and exit&quot;,&quot;  gl_FragData[0] = backgroundColor;&quot;,&quot;  return;&quot;,&quot;}&quot;),c){const e=t.renderable.getProjectionMode();switch(e===ag?h.push(&quot;const vec4 initialProjectionTextureValue = vec4(1.0);&quot;):h.push(&quot;const vec4 initialProjectionTextureValue = vec4(0.0);&quot;),h.push(&quot;vec3 projectionScaledDirection = projectionDirection / volumeSizeMC;&quot;,&quot;vec3 projectionStep = projectionStepLength * projectionScaledDirection;&quot;,&quot;vec3 projectionStartPosition = volumePosTC + projectionConstantOffset * projectionScaledDirection;&quot;,&quot;vec4 tvalue = initialProjectionTextureValue;&quot;,&quot;for (int projectionSampleIdx = 0; projectionSampleIdx &lt; projectionSlabNumberOfSamples; ++projectionSampleIdx) {&quot;,&quot;  vec3 projectionSamplePosition = projectionStartPosition + float(projectionSampleIdx) * projectionStep;&quot;,&quot;  vec4 sampledTextureValue = texture(volumeTexture, projectionSamplePosition);&quot;),e){case og:h.push(&quot;  tvalue = max(tvalue, sampledTextureValue);&quot;);break;case ag:h.push(&quot;  tvalue = min(tvalue, sampledTextureValue);&quot;);break;default:h.push(&quot;  tvalue = tvalue + sampledTextureValue;&quot;)}h.push(&quot;}&quot;),e===ig&amp;&amp;h.push(&quot;tvalue = tvalue / float(projectionSlabNumberOfSamples);&quot;)}else h.push(&quot;vec4 tvalue = texture(volumeTexture, volumePosTC);&quot;);if(f){const e=[&quot;r&quot;,&quot;g&quot;,&quot;b&quot;,&quot;a&quot;];for(let t=0;t&lt;p;++t)h=h.concat([`vec3 tcolor${t} = mix${t} * texture2D(colorTexture1, vec2(tvalue.${e[t]} * cscale${t} + cshift${t}, height${t})).rgb;`,`float compWeight${t} = mix${t} * texture2D(pwfTexture1, vec2(tvalue.${e[t]} * pwfscale${t} + pwfshift${t}, height${t})).r;`]);switch(p){case 1:h=h.concat([&quot;gl_FragData[0] = vec4(tcolor0.rgb, compWeight0 * opacity);&quot;]);break;case 2:h=h.concat([&quot;float weightSum = compWeight0 + compWeight1;&quot;,&quot;gl_FragData[0] = vec4(vec3((tcolor0.rgb * (compWeight0 / weightSum)) + (tcolor1.rgb * (compWeight1 / weightSum))), opacity);&quot;]);break;case 3:h=h.concat([&quot;float weightSum = compWeight0 + compWeight1 + compWeight2;&quot;,&quot;gl_FragData[0] = vec4(vec3((tcolor0.rgb * (compWeight0 / weightSum)) + (tcolor1.rgb * (compWeight1 / weightSum)) + (tcolor2.rgb * (compWeight2 / weightSum))), opacity);&quot;]);break;case 4:h=h.concat([&quot;float weightSum = compWeight0 + compWeight1 + compWeight2 + compWeight3;&quot;,&quot;gl_FragData[0] = vec4(vec3((tcolor0.rgb * (compWeight0 / weightSum)) + (tcolor1.rgb * (compWeight1 / weightSum)) + (tcolor2.rgb * (compWeight2 / weightSum)) + (tcolor3.rgb * (compWeight3 / weightSum))), opacity);&quot;]);break;default:sg(&quot;Unsupported number of independent coordinates.&quot;)}}else switch(p){case 1:h=h.concat([&quot;// Dependent components&quot;,&quot;float intensity = tvalue.r;&quot;,&quot;vec3 tcolor = texture2D(colorTexture1, vec2(intensity * cscale0 + cshift0, 0.5)).rgb;&quot;,&quot;float scalarOpacity = texture2D(pwfTexture1, vec2(intensity * pwfscale0 + pwfshift0, 0.5)).r;&quot;,&quot;gl_FragData[0] = vec4(tcolor, scalarOpacity * opacity);&quot;]);break;case 2:h=h.concat([&quot;float intensity = tvalue.r*cscale0 + cshift0;&quot;,&quot;gl_FragData[0] = vec4(texture2D(colorTexture1, vec2(intensity, 0.5)).rgb, pwfscale0*tvalue.g + pwfshift0);&quot;]);break;case 3:h=h.concat([&quot;vec4 tcolor = cscale0*tvalue + cshift0;&quot;,&quot;gl_FragData[0] = vec4(texture2D(colorTexture1, vec2(tcolor.r,0.5)).r,&quot;,&quot;  texture2D(colorTexture1, vec2(tcolor.g,0.5)).r,&quot;,&quot;  texture2D(colorTexture1, vec2(tcolor.b,0.5)).r, opacity);&quot;]);break;default:h=h.concat([&quot;vec4 tcolor = cscale0*tvalue + cshift0;&quot;,&quot;gl_FragData[0] = vec4(texture2D(colorTexture1, vec2(tcolor.r,0.5)).r,&quot;,&quot;  texture2D(colorTexture1, vec2(tcolor.g,0.5)).r,&quot;,&quot;  texture2D(colorTexture1, vec2(tcolor.b,0.5)).r, tcolor.a);&quot;])}i=vd.substitute(i,&quot;//VTK::TCoord::Impl&quot;,h).result,t.haveSeenDepthRequest&amp;&amp;(i=vd.substitute(i,&quot;//VTK::ZBuffer::Dec&quot;,&quot;uniform int depthRequest;&quot;).result,i=vd.substitute(i,&quot;//VTK::ZBuffer::Impl&quot;,[&quot;if (depthRequest == 1) {&quot;,&quot;float iz = floor(gl_FragCoord.z*65535.0 + 0.1);&quot;,&quot;float rf = floor(iz/256.0)/255.0;&quot;,&quot;float gf = mod(iz,256.0)/255.0;&quot;,&quot;gl_FragData[0] = vec4(rf, gf, 0.0, 1.0); }&quot;]).result),n.Vertex=a,n.Fragment=i,e.replaceShaderClip(n,r,o),e.replaceShaderCoincidentOffset(n,r,o)},e.replaceShaderClip=(e,n,r)=&gt;{let o=e.Vertex,a=e.Fragment;if(t.renderable.getNumberOfClippingPlanes()){let e=t.renderable.getNumberOfClippingPlanes();e&gt;6&amp;&amp;(sn.vtkErrorMacro(&quot;OpenGL has a limit of 6 clipping planes&quot;),e=6),o=vd.substitute(o,&quot;//VTK::Clip::Dec&quot;,[&quot;uniform int numClipPlanes;&quot;,&quot;uniform vec4 clipPlanes[6];&quot;,&quot;varying float clipDistancesVSOutput[6];&quot;]).result,o=vd.substitute(o,&quot;//VTK::Clip::Impl&quot;,[&quot;for (int planeNum = 0; planeNum &lt; 6; planeNum++)&quot;,&quot;    {&quot;,&quot;    if (planeNum &gt;= numClipPlanes)&quot;,&quot;        {&quot;,&quot;        break;&quot;,&quot;        }&quot;,&quot;    clipDistancesVSOutput[planeNum] = dot(clipPlanes[planeNum], vertexMC);&quot;,&quot;    }&quot;]).result,a=vd.substitute(a,&quot;//VTK::Clip::Dec&quot;,[&quot;uniform int numClipPlanes;&quot;,&quot;varying float clipDistancesVSOutput[6];&quot;]).result,a=vd.substitute(a,&quot;//VTK::Clip::Impl&quot;,[&quot;for (int planeNum = 0; planeNum &lt; 6; planeNum++)&quot;,&quot;    {&quot;,&quot;    if (planeNum &gt;= numClipPlanes)&quot;,&quot;        {&quot;,&quot;        break;&quot;,&quot;        }&quot;,&quot;    if (clipDistancesVSOutput[planeNum] &lt; 0.0) discard;&quot;,&quot;    }&quot;]).result}e.Vertex=o,e.Fragment=a},e.getShaderTemplate=(e,t,n)=&gt;{e.Vertex=jd,e.Fragment=Xd,e.Geometry=&quot;&quot;},e.setMapperShaderParameters=(n,r,o)=&gt;{const a=n.getProgram(),i=n.getCABO();i.getElementCount()&amp;&amp;(t.VBOBuildTime.getMTime()&gt;n.getAttributeUpdateTime().getMTime()||n.getShaderSourceTime().getMTime()&gt;n.getAttributeUpdateTime().getMTime())&amp;&amp;(a.isAttributeUsed(&quot;vertexMC&quot;)&amp;&amp;(n.getVAO().addAttributeArray(a,i,&quot;vertexMC&quot;,i.getVertexOffset(),i.getStride(),t.context.FLOAT,3,t.context.FALSE)||sg(&quot;Error setting vertexMC in shader VAO.&quot;)),n.getCABO().getCustomData().forEach((e=&gt;{e&amp;&amp;a.isAttributeUsed(e.name)&amp;&amp;!n.getVAO().addAttributeArray(a,i,e.name,e.offset,i.getStride(),t.context.FLOAT,e.components,t.context.FALSE)&amp;&amp;sg(`Error setting ${e.name} in shader VAO.`)})),n.getAttributeUpdateTime().modified());const s=t.volumeTexture.getTextureUnit();if(a.setUniformi(&quot;volumeTexture&quot;,s),a.setUniformf(&quot;width&quot;,t.renderable.getWidth()),n.getProgram().setUniform4fv(&quot;backgroundColor&quot;,t.renderable.getBackgroundColor()),a.isUniformUsed(&quot;tangentDirection&quot;)){const e=t.renderable.getTangentDirection();n.getProgram().setUniform3fArray(&quot;tangentDirection&quot;,e)}if(a.isUniformUsed(&quot;bitangentDirection&quot;)){const e=t.renderable.getBitangentDirection();n.getProgram().setUniform3fArray(&quot;bitangentDirection&quot;,e)}if(a.isUniformUsed(&quot;centerlineOrientation&quot;)){const e=t.renderable.getUniformOrientation();n.getProgram().setUniform4fv(&quot;centerlineOrientation&quot;,e)}if(a.isUniformUsed(&quot;globalCenterPoint&quot;)){const e=t.renderable.getCenterPoint();a.setUniform3fArray(&quot;globalCenterPoint&quot;,e)}if(t.renderable.isProjectionEnabled()){const e=t.currentImageDataInput,n=e.getSpacing(),r=e.getDimensions(),o=t.renderable.getProjectionSlabThickness(),i=t.renderable.getProjectionSlabNumberOfSamples(),s=ce([],n,r);a.setUniform3fArray(&quot;volumeSizeMC&quot;,s),a.setUniformi(&quot;projectionSlabNumberOfSamples&quot;,i);const l=-.5*o;a.setUniformf(&quot;projectionConstantOffset&quot;,l);const c=o/(i-1);a.setUniformf(&quot;projectionStepLength&quot;,c)}const l=t.currentImageDataInput,c=l.getWorldToIndex(),u=M(new Float32Array(16),ee([],l.getDimensions())),d=z(u,u,c);if(a.setUniformMatrix(&quot;MCTCMatrix&quot;,d),t.haveSeenDepthRequest&amp;&amp;n.getProgram().setUniformi(&quot;depthRequest&quot;,t.renderDepth?1:0),t.renderable.getNumberOfClippingPlanes()){let e=t.renderable.getNumberOfClippingPlanes();e&gt;6&amp;&amp;(sn.vtkErrorMacro(&quot;OpenGL has a limit of 6 clipping planes&quot;),e=6);const n=i.getCoordShiftAndScaleEnabled()?i.getInverseShiftAndScaleMatrix():null,r=n?T(t.imagematinv,o.getMatrix()):o.getMatrix();n&amp;&amp;(y(r,r),A(r,r,n),y(r,r)),y(t.imagemat,t.currentImageDataInput.getIndexToWorld()),A(t.imagematinv,r,t.imagemat);const s=[];for(let n=0;n&lt;e;n++){const e=[];t.renderable.getClippingPlaneInDataCoords(t.imagematinv,n,e);for(let t=0;t&lt;4;t++)s.push(e[t])}a.setUniformi(&quot;numClipPlanes&quot;,e),a.setUniform4fv(&quot;clipPlanes&quot;,s)}if(a.isUniformUsed(&quot;coffset&quot;)){const t=e.getCoincidentParameters(r,o);a.setUniformf(&quot;coffset&quot;,t.offset),a.isUniformUsed(&quot;cfactor&quot;)&amp;&amp;a.setUniformf(&quot;cfactor&quot;,t.factor)}},e.setCameraShaderParameters=(e,n,r)=&gt;{const o=t.openGLImageSlice.getKeyMatrices().mcwc,a=t.openGLCamera.getKeyMatrices(n).wcpc;if(A(t.imagemat,a,o),e.getCABO().getCoordShiftAndScaleEnabled()){const n=e.getCABO().getInverseShiftAndScaleMatrix();A(t.imagemat,t.imagemat,n)}e.getProgram().setUniformMatrix(&quot;MCPCMatrix&quot;,t.imagemat)},e.setPropertyShaderParameters=(e,n,r)=&gt;{const o=e.getProgram(),a=r.getProperty(),i=a.getOpacity();o.setUniformf(&quot;opacity&quot;,i);const s=t.volumeTexture.getComponents(),l=a.getIndependentComponents();if(l)for(let e=0;e&lt;s;++e)o.setUniformf(`mix${e}`,a.getComponentWeight(e));const c=t.volumeTexture.getVolumeInfo();for(let e=0;e&lt;s;e++){let t=a.getColorWindow(),n=a.getColorLevel();const r=l?e:0,i=a.getRGBTransferFunction(r);if(i&amp;&amp;a.getUseLookupTableScalarRange()){const e=i.getRange();t=e[1]-e[0],n=.5*(e[1]+e[0])}const s=c.scale[e]/t,u=(c.offset[e]-n)/t+.5;o.setUniformf(`cshift${e}`,u),o.setUniformf(`cscale${e}`,s)}const u=t.colorTexture.getTextureUnit();o.setUniformi(&quot;colorTexture1&quot;,u);for(let e=0;e&lt;s;e++){let t=1,n=0;const r=l?e:0,i=a.getPiecewiseFunction(r);if(i){const r=i.getRange(),o=r[1]-r[0],a=.5*(r[0]+r[1]);t=c.scale[e]/o,n=(c.offset[e]-a)/o+.5}o.setUniformf(`pwfshift${e}`,n),o.setUniformf(`pwfscale${e}`,t)}const d=t.pwfTexture.getTextureUnit();o.setUniformi(&quot;pwfTexture1&quot;,d)},e.updateShaders=(n,r,o)=&gt;{if(e.getNeedToRebuildShaders(n,r,o)){const a={Vertex:null,Fragment:null,Geometry:null};e.buildShaders(a,r,o);const i=t._openGLRenderWindow.getShaderCache().readyShaderProgramArray(a.Vertex,a.Fragment,a.Geometry);i!==n.getProgram()&amp;&amp;(n.setProgram(i),n.getVAO().releaseGraphicsResources()),n.getShaderSourceTime().modified()}else t._openGLRenderWindow.getShaderCache().readyShaderProgram(n.getProgram());n.getVAO().bind(),e.setMapperShaderParameters(n,r,o),e.setCameraShaderParameters(n,r,o),e.setPropertyShaderParameters(n,r,o)},e.delete=sn.chain((()=&gt;{t._openGLRenderWindow&amp;&amp;n(t._openGLRenderWindow)}),e.delete)}(e,t)}),&quot;vtkOpenGLImageCPRMapper&quot;);vn(&quot;vtkImageCPRMapper&quot;,cg);const ug={context:null,keyMatrixTime:null,keyMatrices:null};vn(&quot;vtkImageSlice&quot;,Xt((function(e,t,n={}){Object.assign(t,ug,n),pn.extend(e,t,n),t.keyMatrixTime={},Vt(t.keyMatrixTime,{mtime:0}),t.keyMatrices={mcwc:x(new Float64Array(16))},Gt(e,t,[&quot;context&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLImageSlice&quot;),e.buildPass=n=&gt;{if(t.renderable&amp;&amp;t.renderable.getVisibility()&amp;&amp;n){if(!t.renderable)return;t._openGLRenderWindow=e.getLastAncestorOfType(&quot;vtkOpenGLRenderWindow&quot;),t._openGLRenderer=e.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;),t.context=t._openGLRenderWindow.getContext(),e.prepareNodes(),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes()}},e.traverseZBufferPass=n=&gt;{t.renderable&amp;&amp;t.renderable.getNestedVisibility()&amp;&amp;(!t._openGLRenderer.getSelector()||t.renderable.getNestedPickable())&amp;&amp;(e.apply(n,!0),t.children.forEach((e=&gt;{e.traverse(n)})),e.apply(n,!1))},e.traverseOpaqueZBufferPass=t=&gt;e.traverseOpaquePass(t),e.traverseOpaquePass=n=&gt;{t.renderable&amp;&amp;t.renderable.getNestedVisibility()&amp;&amp;t.renderable.getIsOpaque()&amp;&amp;(!t._openGLRenderer.getSelector()||t.renderable.getNestedPickable())&amp;&amp;(e.apply(n,!0),t.children.forEach((e=&gt;{e.traverse(n)})),e.apply(n,!1))},e.traverseTranslucentPass=n=&gt;{!t.renderable||!t.renderable.getNestedVisibility()||t.renderable.getIsOpaque()||t._openGLRenderer.getSelector()&amp;&amp;!t.renderable.getNestedPickable()||(e.apply(n,!0),t.children.forEach((e=&gt;{e.traverse(n)})),e.apply(n,!1))},e.queryPass=(e,n)=&gt;{if(e){if(!t.renderable||!t.renderable.getVisibility())return;t.renderable.getIsOpaque()?n.incrementOpaqueActorCount():n.incrementTranslucentActorCount()}},e.zBufferPass=(t,n)=&gt;e.opaquePass(t,n),e.opaqueZBufferPass=(t,n)=&gt;e.opaquePass(t,n),e.opaquePass=(e,n)=&gt;{e&amp;&amp;t.context.depthMask(!0)},e.translucentPass=(e,n)=&gt;{t.context.depthMask(!e)},e.getKeyMatrices=()=&gt;(t.renderable.getMTime()&gt;t.keyMatrixTime.getMTime()&amp;&amp;(T(t.keyMatrices.mcwc,t.renderable.getMatrix()),y(t.keyMatrices.mcwc,t.keyMatrices.mcwc),t.keyMatrixTime.modified()),t.keyMatrices)}(e,t)}),&quot;vtkOpenGLImageSlice&quot;));const dg={};vn(&quot;vtkVolume&quot;,Xt((function(e,t,n={}){Object.assign(t,dg,n),pn.extend(e,t,n),t.keyMatrixTime={},Vt(t.keyMatrixTime,{mtime:0}),t.normalMatrix=new Float64Array(9),t.MCWCMatrix=new Float64Array(16),Gt(e,t,[&quot;context&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLVolume&quot;),e.buildPass=n=&gt;{t.renderable&amp;&amp;t.renderable.getVisibility()&amp;&amp;n&amp;&amp;(t._openGLRenderWindow=e.getLastAncestorOfType(&quot;vtkOpenGLRenderWindow&quot;),t._openGLRenderer=e.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;),t.context=t._openGLRenderWindow.getContext(),e.prepareNodes(),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes())},e.queryPass=(e,n)=&gt;{if(e){if(!t.renderable||!t.renderable.getVisibility())return;n.incrementVolumeCount()}},e.traverseVolumePass=n=&gt;{t.renderable&amp;&amp;t.renderable.getNestedVisibility()&amp;&amp;(!t._openGLRenderer.getSelector()||t.renderable.getNestedPickable())&amp;&amp;(e.apply(n,!0),t.children[0].traverse(n),e.apply(n,!1))},e.volumePass=e=&gt;{t.renderable&amp;&amp;t.renderable.getVisibility()&amp;&amp;t.context.depthMask(!e)},e.getKeyMatrices=()=&gt;(t.renderable.getMTime()&gt;t.keyMatrixTime.getMTime()&amp;&amp;(t.renderable.computeMatrix(),T(t.MCWCMatrix,t.renderable.getMatrix()),y(t.MCWCMatrix,t.MCWCMatrix),t.renderable.getIsIdentity()?c(t.normalMatrix):(s(t.normalMatrix,t.MCWCMatrix),d(t.normalMatrix,t.normalMatrix),u(t.normalMatrix,t.normalMatrix)),t.keyMatrixTime.modified()),{mcwc:t.MCWCMatrix,normalMatrix:t.normalMatrix})}(e,t)}),&quot;vtkOpenGLVolume&quot;));const pg={NEAREST:0,LINEAR:1,FAST_LINEAR:2},fg={FRACTIONAL:0,PROPORTIONAL:1},gg={DEFAULT:0,ADDITIVE:1,COLORIZE:2,CUSTOM:3};var mg={InterpolationType:pg,OpacityMode:fg,ColorMixPreset:gg,FilterMode:{OFF:0,NORMALIZED:1,RAW:2}};const hg={COMPOSITE_BLEND:0,MAXIMUM_INTENSITY_BLEND:1,MINIMUM_INTENSITY_BLEND:2,AVERAGE_INTENSITY_BLEND:3,ADDITIVE_INTENSITY_BLEND:4,RADON_TRANSFORM_BLEND:5,LABELMAP_EDGE_PROJECTION_BLEND:6};var vg={BlendMode:hg};const{vtkWarningMacro:Tg,vtkErrorMacro:xg}=ln,yg={idxToView:x(new Float64Array(16)),vecISToVCMatrix:c(new Float64Array(9)),modelToView:x(new Float64Array(16)),projectionToView:x(new Float64Array(16)),projectionToWorld:x(new Float64Array(16))};function bg(e,t){function n(e){return e.getUseLabelOutline()||t.renderable.getBlendMode()===hg.LABELMAP_EDGE_PROJECTION_BLEND}t.classHierarchy.push(&quot;vtkOpenGLVolumeMapper&quot;);const r=new Map;function o(t,n,o){n!==o&amp;&amp;(function(t,n){if(!n)return;const o=(r.get(n)??0)-1;o&lt;=0?(t.unregisterGraphicsResourceUser(n,e),r.delete(n)):r.set(n,o)}(t,n),function(t,n){if(!n)return;const o=r.get(n)??0,a=o+1;r.set(n,a),o&lt;=0&amp;&amp;t.registerGraphicsResourceUser(n,e)}(t,o))}function a(t){[...r.keys()].forEach((n=&gt;t.unregisterGraphicsResourceUser(n,e)))}e.buildPass=()=&gt;{t.zBufferTexture=null},e.zBufferPass=(e,n)=&gt;{if(e){const e=n.getZBufferTexture();e!==t.zBufferTexture&amp;&amp;(t.zBufferTexture=e)}},e.opaqueZBufferPass=(t,n)=&gt;e.zBufferPass(t,n),e.volumePass=(n,r)=&gt;{if(n){const n=t._openGLRenderWindow;t._openGLRenderWindow=e.getLastAncestorOfType(&quot;vtkOpenGLRenderWindow&quot;),n&amp;&amp;!n.isDeleted()&amp;&amp;n!==t._openGLRenderWindow&amp;&amp;a(n),t.context=t._openGLRenderWindow.getContext(),t.tris.setOpenGLRenderWindow(t._openGLRenderWindow),t.jitterTexture.setOpenGLRenderWindow(t._openGLRenderWindow),t.framebuffer.setOpenGLRenderWindow(t._openGLRenderWindow),t.openGLVolume=e.getFirstAncestorOfType(&quot;vtkOpenGLVolume&quot;);const r=t.openGLVolume.getRenderable();t._openGLRenderer=e.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;);const o=t._openGLRenderer.getRenderable();t.openGLCamera=t._openGLRenderer.getViewNodeFor(o.getActiveCamera(),t.openGLCamera),e.renderPiece(o,r)}},e.getShaderTemplate=(e,t,n)=&gt;{e.Vertex=&quot;//VTK::System::Dec\\n\\n/*=========================================================================\\n\\n  Program:   Visualization Toolkit\\n  Module:    vtkVolumeVS.glsl\\n\\n  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n  All rights reserved.\\n  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n\\n     This software is distributed WITHOUT ANY WARRANTY; without even\\n     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n     PURPOSE.  See the above copyright notice for more information.\\n\\n=========================================================================*/\\n\\nattribute vec4 vertexDC;\\n\\nvarying vec3 vertexVCVSOutput;\\nuniform mat4 PCVCMatrix;\\n\\nuniform float dcxmin;\\nuniform float dcxmax;\\nuniform float dcymin;\\nuniform float dcymax;\\n\\nvoid main()\\n{\\n  // dcsmall is the device coords reduced to the\\n  // x y area covered by the volume\\n  vec4 dcsmall = vec4(\\n    dcxmin + 0.5 * (vertexDC.x + 1.0) * (dcxmax - dcxmin),\\n    dcymin + 0.5 * (vertexDC.y + 1.0) * (dcymax - dcymin),\\n    vertexDC.z,\\n    vertexDC.w);\\n  vec4 vcpos = PCVCMatrix * dcsmall;\\n  vertexVCVSOutput = vcpos.xyz/vcpos.w;\\n  gl_Position = dcsmall;\\n}\\n&quot;,e.Fragment=&quot;//VTK::System::Dec\\n\\n/*=========================================================================\\n\\n  Program:   Visualization Toolkit\\n  Module:    vtkVolumeFS.glsl\\n\\n  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n  All rights reserved.\\n  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n\\n     This software is distributed WITHOUT ANY WARRANTY; without even\\n     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n     PURPOSE.  See the above copyright notice for more information.\\n\\n=========================================================================*/\\n// Template for the volume mappers fragment shader\\n\\nconst float infinity = 3.402823466e38;\\n\\n// the output of this shader\\n//VTK::Output::Dec\\n\\nin vec3 vertexVCVSOutput;\\n\\n// From Sources\\\\Rendering\\\\Core\\\\VolumeProperty\\\\Constants.js\\n#define COMPOSITE_BLEND 0\\n#define MAXIMUM_INTENSITY_BLEND 1\\n#define MINIMUM_INTENSITY_BLEND 2\\n#define AVERAGE_INTENSITY_BLEND 3\\n#define ADDITIVE_INTENSITY_BLEND 4\\n#define RADON_TRANSFORM_BLEND 5\\n#define LABELMAP_EDGE_PROJECTION_BLEND 6\\n\\n#define vtkNumberOfLights //VTK::NumberOfLights\\n#define vtkMaxLaoKernelSize //VTK::MaxLaoKernelSize\\n#define vtkNumberOfComponents //VTK::NumberOfComponents\\n#define vtkBlendMode //VTK::BlendMode\\n#define vtkMaximumNumberOfSamples //VTK::MaximumNumberOfSamples\\n\\n//VTK::EnabledColorFunctions\\n\\n//VTK::EnabledLightings\\n\\n//VTK::EnabledMultiTexturePerVolume\\n\\n//VTK::EnabledGradientOpacity\\n\\n//VTK::EnabledIndependentComponents\\n\\n//VTK::vtkProportionalComponents\\n\\n//VTK::vtkForceNearestComponents\\n\\nuniform int twoSidedLighting;\\n\\n#if vtkMaxLaoKernelSize &gt; 0\\n  vec2 kernelSample[vtkMaxLaoKernelSize];\\n#endif\\n\\n// Textures\\n#ifdef EnabledMultiTexturePerVolume\\n  #define vtkNumberOfVolumeTextures vtkNumberOfComponents\\n#else\\n  #define vtkNumberOfVolumeTextures 1\\n#endif\\nuniform highp sampler3D volumeTexture[vtkNumberOfVolumeTextures];\\nuniform sampler2D colorTexture;\\nuniform sampler2D opacityTexture;\\nuniform sampler2D jtexture;\\nuniform sampler2D labelOutlineThicknessTexture;\\n\\nstruct Volume {\\n  // ---- Volume geometry settings ----\\n\\n  vec3 originVC;          // in VC\\n  vec3 spacing;           // in VC per IC\\n  vec3 inverseSpacing;    // 1/spacing\\n  ivec3 dimensions;       // in IC\\n  vec3 inverseDimensions; // 1/vec3(dimensions)\\n  mat3 vecISToVCMatrix;   // convert from IS to VC without translation\\n  mat3 vecVCToISMatrix;   // convert from VC to IS without translation\\n  mat4 PCWCMatrix;\\n  mat4 worldToIndex;\\n  float diagonalLength; // in VC, this is: length(size)\\n\\n  // ---- Texture settings ----\\n\\n  // Texture shift and scale\\n  vec4 colorTextureScale;\\n  vec4 colorTextureShift;\\n  vec4 opacityTextureScale;\\n  vec4 opacityTextureShift;\\n\\n  // The heights defined below are the locations for the up to four components\\n  // of the transfer functions. The transfer functions have a height of (2 *\\n  // numberOfComponents) pixels so the values are computed to hit the middle of\\n  // the two rows for that component\\n  vec4 transferFunctionsSampleHeight;\\n\\n  // ---- Mode specific settings ----\\n\\n  // Independent component default preset settings per component\\n  vec4 independentComponentMix;\\n\\n  // Additive / average blending mode settings\\n  vec4 ipScalarRangeMin;\\n  vec4 ipScalarRangeMax;\\n\\n  // ---- Rendering settings ----\\n\\n  // Lighting\\n  float ambient;\\n  float diffuse;\\n  float specular;\\n  float specularPower;\\n  int computeNormalFromOpacity;\\n\\n  // Gradient opacity\\n  vec4 gradientOpacityScale;\\n  vec4 gradientOpacityShift;\\n  vec4 gradientOpacityMin;\\n  vec4 gradientOpacityMax;\\n\\n  // Volume shadow\\n  float volumetricScatteringBlending;\\n  float globalIlluminationReach;\\n  float anisotropy;\\n  float anisotropySquared;\\n\\n  // LAO\\n  int kernelSize;\\n  int kernelRadius;\\n\\n  // Label outline\\n  float outlineOpacity;\\n};\\nuniform Volume volume;\\n\\nstruct Light {\\n  vec3 color;\\n  vec3 positionVC;\\n  vec3 directionVC; // normalized\\n  vec3 halfAngleVC;\\n  vec3 attenuation;\\n  float exponent;\\n  float coneAngle;\\n  int isPositional;\\n};\\n#if vtkNumberOfLights &gt; 0\\n  uniform Light lights[vtkNumberOfLights];\\n#endif\\n\\nuniform float vpWidth;\\nuniform float vpHeight;\\nuniform float vpOffsetX;\\nuniform float vpOffsetY;\\n\\n// Bitmasks for label outline\\nconst int MAX_SEGMENT_INDEX = 256; // Define as per expected maximum\\n#define MAX_SEGMENTS 256\\n#define UINT_SIZE 32\\n// We add UINT_SIZE - 1, as we want the ceil of the division instead of the\\n// floor\\n#define BITMASK_SIZE ((MAX_SEGMENTS + UINT_SIZE - 1) / UINT_SIZE)\\nuint labelOutlineBitmasks[BITMASK_SIZE];\\n\\n// Set the corresponding bit in the bitmask\\nvoid setLabelOutlineBit(int segmentIndex) {\\n  int arrayIndex = segmentIndex / UINT_SIZE;\\n  int bitIndex = segmentIndex % UINT_SIZE;\\n  labelOutlineBitmasks[arrayIndex] |= 1u &lt;&lt; bitIndex;\\n}\\n\\n// Check if a bit is set in the bitmask\\nbool isLabelOutlineBitSet(int segmentIndex) {\\n  int arrayIndex = segmentIndex / UINT_SIZE;\\n  int bitIndex = segmentIndex % UINT_SIZE;\\n  return ((labelOutlineBitmasks[arrayIndex] &amp; (1u &lt;&lt; bitIndex)) != 0u);\\n}\\n\\n// if you want to see the raw tiled\\n// data in webgl1 uncomment the following line\\n// #define debugtile\\n\\n// camera values\\nuniform float camThick;\\nuniform float camNear;\\nuniform float camFar;\\nuniform int cameraParallel;\\n\\n//VTK::ClipPlane::Dec\\n\\n// A random number between 0 and 1 that only depends on the fragment\\n// It uses the jtexture, so this random seed repeats by blocks of 32 fragments\\n// in screen space\\nfloat fragmentSeed;\\n\\n// sample texture is global\\nuniform float sampleDistance;\\nuniform float volumeShadowSampleDistance;\\n\\n// declaration for intermixed geometry\\n//VTK::ZBuffer::Dec\\n\\n//=======================================================================\\n// global and custom variables (a temporary section before photorealistics\\n// rendering module is complete)\\nvec3 rayDirVC;\\n\\n#define INV4PI 0.0796\\n#define EPSILON 0.001\\n#define PI 3.1415\\n#define PI2 9.8696\\n\\nvec4 rawSampleTexture(vec3 pos) {\\n  #ifdef EnabledMultiTexturePerVolume\\n    vec4 rawSample;\\n    rawSample[0] = texture(volumeTexture[0], pos)[0];\\n  #if vtkNumberOfComponents &gt; 1\\n    rawSample[1] = texture(volumeTexture[1], pos)[0];\\n  #endif\\n  #if vtkNumberOfComponents &gt; 2\\n    rawSample[2] = texture(volumeTexture[2], pos)[0];\\n  #endif\\n  #if vtkNumberOfComponents &gt; 3\\n    rawSample[3] = texture(volumeTexture[3], pos)[0];\\n  #endif\\n    return rawSample;\\n  #else\\n    return texture(volumeTexture[0], pos);\\n  #endif\\n}\\n\\nvec4 rawFetchTexture(ivec3 pos) {\\n  #ifdef EnabledMultiTexturePerVolume\\n    vec4 rawSample;\\n    #if vtkNumberOfComponents &gt; 0\\n      rawSample[0] = texelFetch(volumeTexture[0], pos, 0)[0];\\n    #endif\\n    #if vtkNumberOfComponents &gt; 1\\n      rawSample[1] = texelFetch(volumeTexture[1], pos, 0)[0];\\n    #endif\\n    #if vtkNumberOfComponents &gt; 2\\n      rawSample[2] = texelFetch(volumeTexture[2], pos, 0)[0];\\n    #endif\\n    #if vtkNumberOfComponents &gt; 3\\n      rawSample[3] = texelFetch(volumeTexture[3], pos, 0)[0];\\n    #endif\\n    return rawSample;\\n  #else\\n    return texelFetch(volumeTexture[0], pos, 0);\\n  #endif\\n}\\n\\nvec4 getTextureValue(vec3 pos) {\\n  vec4 tmp = rawSampleTexture(pos);\\n\\n  // Force nearest\\n  #if defined(vtkComponent0ForceNearest) || \\\\\\n      defined(vtkComponent1ForceNearest) || \\\\\\n      defined(vtkComponent2ForceNearest) || \\\\\\n      defined(vtkComponent3ForceNearest)\\n    vec3 nearestPos = (floor(pos * vec3(volume.dimensions)) + 0.5) *\\n                      volume.inverseDimensions;\\n    vec4 nearestValue = rawSampleTexture(nearestPos);\\n    #ifdef vtkComponent0ForceNearest\\n      tmp[0] = nearestValue[0];\\n    #endif\\n    #ifdef vtkComponent1ForceNearest\\n      tmp[1] = nearestValue[1];\\n    #endif\\n    #ifdef vtkComponent2ForceNearest\\n      tmp[2] = nearestValue[2];\\n    #endif\\n    #ifdef vtkComponent3ForceNearest\\n      tmp[3] = nearestValue[3];\\n    #endif\\n  #endif\\n\\n  // Set alpha when using dependent components\\n  #ifndef EnabledIndependentComponents\\n    #if vtkNumberOfComponents == 1\\n      tmp.a = tmp.r;\\n    #endif\\n    #if vtkNumberOfComponents == 2\\n      tmp.a = tmp.g;\\n    #endif\\n    #if vtkNumberOfComponents == 3\\n      tmp.a = length(tmp.rgb);\\n    #endif\\n  #endif\\n\\n  return tmp;\\n}\\n\\n// `height` is usually `volume.transferFunctionsSampleHeight[component]`\\n// when using independent component and `0.5` otherwise. Don&#x27;t move the if\\n// statement in these function, as the callers usually already knows if it is\\n// using independent component or not\\nfloat getOpacityFromTexture(float scalar, int component, float height) {\\n  float scaledScalar = scalar * volume.opacityTextureScale[component] +\\n                       volume.opacityTextureShift[component];\\n  return texture2D(opacityTexture, vec2(scaledScalar, height)).r;\\n}\\nvec3 getColorFromTexture(float scalar, int component, float height) {\\n  float scaledScalar = scalar * volume.colorTextureScale[component] +\\n                       volume.colorTextureShift[component];\\n  return texture2D(colorTexture, vec2(scaledScalar, height)).rgb;\\n}\\n\\n//=======================================================================\\n// transformation between VC and IS space\\n\\n// convert vector position from idx to vc\\nvec3 posIStoVC(vec3 posIS) {\\n  return volume.vecISToVCMatrix * posIS + volume.originVC;\\n}\\n\\n// convert vector position from vc to idx\\nvec3 posVCtoIS(vec3 posVC) {\\n  return volume.vecVCToISMatrix * (posVC - volume.originVC);\\n}\\n\\n// Rotate vector to view coordinate\\nvec3 vecISToVC(vec3 dirIS) {\\n  return volume.vecISToVCMatrix * dirIS;\\n}\\n\\n// Rotate vector to idx coordinate\\nvec3 vecVCToIS(vec3 dirVC) {\\n  return volume.vecVCToISMatrix * dirVC;\\n}\\n\\n//=======================================================================\\n// Given a normal compute the gradient opacity factors\\nfloat computeGradientOpacityFactor(float normalMag, int component) {\\n  float goscale = volume.gradientOpacityScale[component];\\n  float goshift = volume.gradientOpacityShift[component];\\n  float gomin = volume.gradientOpacityMin[component];\\n  float gomax = volume.gradientOpacityMax[component];\\n  return clamp(normalMag * goscale + goshift, gomin, gomax);\\n}\\n\\n#ifdef vtkClippingPlanesOn\\n  bool isPointClipped(vec3 posVC) {\\n    for (int i = 0; i &lt; clip_numPlanes; ++i) {\\n      if (dot(vec3(vClipPlaneOrigins[i] - posVC), vClipPlaneNormals[i]) &gt; 0.0) {\\n        return true;\\n      }\\n    }\\n    return false;\\n  }\\n#endif\\n\\n//=======================================================================\\n// compute the normal and gradient magnitude for a position, uses forward\\n// difference\\n\\n// The output normal is in VC\\nvec4 computeDensityNormal(vec3 opacityUCoords[2], float opacityTextureHeight,\\n                          float gradientOpacity, int component) {\\n  // Pass the scalars through the opacity functions\\n  vec4 opacityG;\\n  opacityG.x += getOpacityFromTexture(opacityUCoords[0].x, component,\\n                                      opacityTextureHeight);\\n  opacityG.y += getOpacityFromTexture(opacityUCoords[0].y, component,\\n                                      opacityTextureHeight);\\n  opacityG.z += getOpacityFromTexture(opacityUCoords[0].z, component,\\n                                      opacityTextureHeight);\\n  opacityG.x -= getOpacityFromTexture(opacityUCoords[1].x, component,\\n                                      opacityTextureHeight);\\n  opacityG.y -= getOpacityFromTexture(opacityUCoords[1].y, component,\\n                                      opacityTextureHeight);\\n  opacityG.z -= getOpacityFromTexture(opacityUCoords[1].z, component,\\n                                      opacityTextureHeight);\\n\\n  // Divide by spacing and convert to VC\\n  opacityG.xyz *= gradientOpacity * volume.inverseSpacing;\\n  opacityG.w = length(opacityG.xyz);\\n  if (opacityG.w == 0.0) {\\n    return vec4(0.0);\\n  }\\n\\n  // Normalize\\n  opacityG.xyz = normalize(vecISToVC(opacityG.xyz));\\n\\n  return opacityG;\\n}\\n\\n// The output normal is in VC\\nvec4 computeNormalForDensity(vec3 posIS, out vec3 scalarInterp[2],\\n                             const int opacityComponent) {\\n  vec3 offsetedPosIS;\\n  for (int axis = 0; axis &lt; 3; ++axis) {\\n    // Positive direction\\n    offsetedPosIS = posIS;\\n    offsetedPosIS[axis] += volume.inverseDimensions[axis];\\n    scalarInterp[0][axis] =\\n        getTextureValue(offsetedPosIS)[opacityComponent];\\n    #ifdef vtkClippingPlanesOn\\n      if (isPointClipped(posIStoVC(offsetedPosIS))) {\\n        scalarInterp[0][axis] = 0.0;\\n      }\\n    #endif\\n\\n    // Negative direction\\n    offsetedPosIS = posIS;\\n    offsetedPosIS[axis] -= volume.inverseDimensions[axis];\\n    scalarInterp[1][axis] =\\n        getTextureValue(offsetedPosIS)[opacityComponent];\\n    #ifdef vtkClippingPlanesOn\\n      if (isPointClipped(posIStoVC(offsetedPosIS))) {\\n        scalarInterp[1][axis] = 0.0;\\n      }\\n    #endif\\n  }\\n\\n  vec4 result;\\n  result.xyz = (scalarInterp[0] - scalarInterp[1]) * volume.inverseSpacing;\\n  result.w = length(result.xyz);\\n  if (result.w == 0.0) {\\n    return vec4(0.0);\\n  }\\n  result.xyz = normalize(vecISToVC(result.xyz));\\n  return result;\\n}\\n\\nvec4 fragCoordToPCPos(vec4 fragCoord) {\\n  return vec4((fragCoord.x / vpWidth - vpOffsetX - 0.5) * 2.0,\\n              (fragCoord.y / vpHeight - vpOffsetY - 0.5) * 2.0,\\n              (fragCoord.z - 0.5) * 2.0, 1.0);\\n}\\n\\nvec4 pcPosToWorldCoord(vec4 pcPos) {\\n  return volume.PCWCMatrix * pcPos;\\n}\\n\\nvec3 fragCoordToIndexSpace(vec4 fragCoord) {\\n  vec4 pcPos = fragCoordToPCPos(fragCoord);\\n  vec4 worldCoord = pcPosToWorldCoord(pcPos);\\n  vec4 vertex = (worldCoord / worldCoord.w);\\n\\n  vec3 index = (volume.worldToIndex * vertex).xyz;\\n\\n  // half voxel fix for labelmapOutline\\n  return (index + vec3(0.5)) * volume.inverseDimensions;\\n}\\n\\nvec3 fragCoordToWorld(vec4 fragCoord) {\\n  vec4 pcPos = fragCoordToPCPos(fragCoord);\\n  vec4 worldCoord = pcPosToWorldCoord(pcPos);\\n  return worldCoord.xyz;\\n}\\n\\n//=======================================================================\\n// Compute the normals and gradient magnitudes for a position for independent\\n// components The output normals are in VC\\nmat4 computeMat4Normal(vec3 posIS, vec4 tValue) {\\n  vec3 xvec = vec3(volume.inverseDimensions.x, 0.0, 0.0);\\n  vec3 yvec = vec3(0.0, volume.inverseDimensions.y, 0.0);\\n  vec3 zvec = vec3(0.0, 0.0, volume.inverseDimensions.z);\\n\\n  vec4 distX = getTextureValue(posIS + xvec) - getTextureValue(posIS - xvec);\\n  vec4 distY = getTextureValue(posIS + yvec) - getTextureValue(posIS - yvec);\\n  vec4 distZ = getTextureValue(posIS + zvec) - getTextureValue(posIS - zvec);\\n\\n  // divide by spacing\\n  distX *= 0.5 * volume.inverseSpacing.x;\\n  distY *= 0.5 * volume.inverseSpacing.y;\\n  distZ *= 0.5 * volume.inverseSpacing.z;\\n\\n  mat4 result;\\n\\n  // optionally compute the 1st component\\n  #if vtkNumberOfComponents &gt; 0 &amp;&amp; !defined(vtkComponent0Proportional)\\n    {\\n      const int component = 0;\\n      vec3 normal = vec3(distX[component], distY[component], distZ[component]);\\n      float normalLength = length(normal);\\n      if (normalLength &gt; 0.0) {\\n        normal = normalize(vecISToVC(normal));\\n      }\\n      result[component] = vec4(normal, normalLength);\\n    }\\n  #endif\\n\\n  // optionally compute the 2nd component\\n  #if vtkNumberOfComponents &gt; 1 &amp;&amp; !defined(vtkComponent1Proportional)\\n    {\\n      const int component = 1;\\n      vec3 normal = vec3(distX[component], distY[component], distZ[component]);\\n      float normalLength = length(normal);\\n      if (normalLength &gt; 0.0) {\\n        normal = normalize(vecISToVC(normal));\\n      }\\n      result[component] = vec4(normal, normalLength);\\n    }\\n  #endif\\n\\n  // optionally compute the 3rd component\\n  #if vtkNumberOfComponents &gt; 2 &amp;&amp; !defined(vtkComponent2Proportional)\\n    {\\n      const int component = 2;\\n      vec3 normal = vec3(distX[component], distY[component], distZ[component]);\\n      float normalLength = length(normal);\\n      if (normalLength &gt; 0.0) {\\n        normal = normalize(vecISToVC(normal));\\n      }\\n      result[component] = vec4(normal, normalLength);\\n    }\\n  #endif\\n\\n  // optionally compute the 4th component\\n  #if vtkNumberOfComponents &gt; 3 &amp;&amp; !defined(vtkComponent3Proportional)\\n    {\\n      const int component = 3;\\n      vec3 normal = vec3(distX[component], distY[component], distZ[component]);\\n      float normalLength = length(normal);\\n      if (normalLength &gt; 0.0) {\\n        normal = normalize(vecISToVC(normal));\\n      }\\n      result[component] = vec4(normal, normalLength);\\n    }\\n  #endif\\n\\n  return result;\\n}\\n\\n//=======================================================================\\n// global shadow - secondary ray\\n\\n// henyey greenstein phase function\\nfloat phaseFunction(float cos_angle) {\\n  // divide by 2.0 instead of 4pi to increase intensity\\n  float anisotropy = volume.anisotropy;\\n  if (abs(anisotropy) &lt;= EPSILON) {\\n    // isotropic scatter returns 0.5 instead of 1/4pi to increase intensity\\n    return 0.5;\\n  }\\n  float anisotropy2 = volume.anisotropySquared;\\n  return ((1.0 - anisotropy2) /\\n          pow(1.0 + anisotropy2 - 2.0 * anisotropy * cos_angle, 1.5)) /\\n         2.0;\\n}\\n\\n// Compute the two intersection distances of the ray with the volume in VC\\n// The entry point is `rayOriginVC + distanceMin * rayDirVC` and the exit point\\n// is `rayOriginVC + distanceMax * rayDirVC` If distanceMin &lt; distanceMax, the\\n// volume is not intersected The ray origin is inside the box when distanceMin &lt;\\n// 0.0 &lt; distanceMax\\nvec2 rayIntersectVolumeDistances(vec3 rayOriginVC, vec3 rayDirVC) {\\n  // Compute origin and direction in IS\\n  vec3 rayOriginIS = posVCtoIS(rayOriginVC);\\n  vec3 rayDirIS = vecVCToIS(rayDirVC);\\n  // Don&#x27;t check for infinity as the min/max combination afterward will always\\n  // find an intersection before infinity\\n  vec3 invDir = 1.0 / rayDirIS;\\n\\n  // We have: bound = origin + t * dir\\n  // So: t = (1/dir) * (bound - origin)\\n  vec3 distancesTo0 = invDir * (vec3(0.0) - rayOriginIS);\\n  vec3 distancesTo1 = invDir * (vec3(1.0) - rayOriginIS);\\n  // Min and max distances to plane intersection per plane\\n  vec3 dMinPerAxis = min(distancesTo0, distancesTo1);\\n  vec3 dMaxPerAxis = max(distancesTo0, distancesTo1);\\n  // Overall first and last intersection\\n  float distanceMin = max(dMinPerAxis.x, max(dMinPerAxis.y, dMinPerAxis.z));\\n  float distanceMax = min(dMaxPerAxis.x, min(dMaxPerAxis.y, dMaxPerAxis.z));\\n  return vec2(distanceMin, distanceMax);\\n}\\n\\n//=======================================================================\\n// local ambient occlusion\\n#if vtkMaxLaoKernelSize &gt; 0\\n\\n  // Return a random point on the unit sphere\\n  vec3 sampleDirectionUniform(int rayIndex) {\\n    // Each ray of each fragment should be different, two sources of randomness\\n    // are used. Only depends on ray index\\n    vec2 rayRandomness = kernelSample[rayIndex];\\n    // Only depends on fragment\\n    float fragmentRandomness = fragmentSeed;\\n    // Merge both source of randomness in a single uniform random variable using\\n    // the formula (x+y &lt; 1 ? x+y : x+y-1). The simpler formula (x+y)/2 doesn&#x27;t\\n    // result in a uniform distribution\\n    vec2 mergedRandom = rayRandomness + vec2(fragmentRandomness);\\n    mergedRandom -= vec2(greaterThanEqual(mergedRandom, vec2(1.0)));\\n\\n    // Insipred by:\\n    // https://karthikkaranth.me/blog/generating-random-points-in-a-sphere/#better-choice-of-spherical-coordinates\\n    float u = mergedRandom[0];\\n    float v = mergedRandom[1];\\n    float theta = u * 2.0 * PI;\\n    float phi = acos(2.0 * v - 1.0);\\n    float sinTheta = sin(theta);\\n    float cosTheta = cos(theta);\\n    float sinPhi = sin(phi);\\n    float cosPhi = cos(phi);\\n    return vec3(sinPhi * cosTheta, sinPhi * sinTheta, cosPhi);\\n  }\\n\\n  float computeLAO(vec3 posVC, vec4 normalVC, float originalOpacity) {\\n    // apply LAO only at selected locations, otherwise return full brightness\\n    if (normalVC.w &lt;= 0.0 || originalOpacity &lt;= 0.05) {\\n      return 1.0;\\n    }\\n\\n    #ifdef EnabledGradientOpacity\\n      float gradientOpacityFactor = computeGradientOpacityFactor(normalVC.w, 0);\\n    #endif\\n\\n    float visibilitySum = 0.0;\\n    float weightSum = 0.0;\\n    for (int i = 0; i &lt; volume.kernelSize; i++) {\\n      // Only sample on an hemisphere around the normalVC.xyz axis, so\\n      // normalDotRay should be negative\\n      vec3 rayDirectionVC = sampleDirectionUniform(i);\\n      float normalDotRay = dot(normalVC.xyz, rayDirectionVC);\\n      if (normalDotRay &gt; 0.0) {\\n        // Flip rayDirectionVC when it is in the wrong hemisphere\\n        rayDirectionVC = -rayDirectionVC;\\n        normalDotRay = -normalDotRay;\\n      }\\n\\n      vec3 currPosIS = posVCtoIS(posVC);\\n      float visibility = 1.0;\\n      vec3 randomDirStepIS = vecVCToIS(rayDirectionVC * sampleDistance);\\n      for (int j = 0; j &lt; volume.kernelRadius; j++) {\\n        currPosIS += randomDirStepIS;\\n        // If out of the volume, we are done\\n        if (any(lessThan(currPosIS, vec3(0.0))) ||\\n            any(greaterThan(currPosIS, vec3(1.0)))) {\\n          break;\\n        }\\n        float opacity = getOpacityFromTexture(getTextureValue(currPosIS).r, 0, 0.5);\\n        #ifdef EnabledGradientOpacity\\n          opacity *= gradientOpacityFactor;\\n        #endif\\n        visibility *= 1.0 - opacity;\\n        // If visibility is less than EPSILON, consider it to be 0\\n        if (visibility &lt; EPSILON) {\\n          visibility = 0.0;\\n          break;\\n        }\\n      }\\n      float rayWeight = -normalDotRay;\\n      visibilitySum += visibility * rayWeight;\\n      weightSum += rayWeight;\\n    }\\n\\n    // If no sample, LAO factor is one\\n    if (weightSum == 0.0) {\\n      return 1.0;\\n    }\\n\\n    // LAO factor is the average visibility:\\n    // - visibility low =&gt; ambient low\\n    // - visibility high =&gt; ambient high\\n    float lao = visibilitySum / weightSum;\\n\\n    // Reduce variance by clamping\\n    return clamp(lao, 0.3, 1.0);\\n  }\\n#endif\\n\\n//=======================================================================\\n// Volume shadows\\n#if vtkNumberOfLights &gt; 0\\n\\n  // Non-memoised version\\n  float computeVolumeShadowWithoutCache(vec3 posVC, vec3 lightDirNormVC) {\\n    // modify sample distance with a random number between 1.5 and 3.0\\n    float rayStepLength =\\n        volumeShadowSampleDistance * mix(1.5, 3.0, fragmentSeed);\\n\\n    // in case the first sample near surface has a very tiled light ray, we need\\n    // to offset start position\\n    vec3 initialPosVC = posVC + rayStepLength * lightDirNormVC;\\n\\n    #ifdef vtkClippingPlanesOn\\n      float clippingPlanesMaxDistance = infinity;\\n      for (int i = 0; i &lt; clip_numPlanes; ++i) {\\n        // Find distance of intersection with the plane\\n        // Points are clipped when:\\n        // dot(planeOrigin - (rayOrigin + distance * rayDirection), planeNormal) &gt; 0\\n        // This is equivalent to:\\n        // dot(planeOrigin - rayOrigin, planeNormal) - distance * dot(rayDirection,\\n        // planeNormal) &gt; 0.0\\n        // We precompute the dot products, so we clip ray points when:\\n        // dotOrigin - distance * dotDirection &gt; 0.0\\n        float dotOrigin =\\n            dot(vClipPlaneOrigins[i] - initialPosVC, vClipPlaneNormals[i]);\\n        if (dotOrigin &gt; 0.0) {\\n          // The initialPosVC is clipped by this plane\\n          return 1.0;\\n        }\\n        float dotDirection = dot(lightDirNormVC, vClipPlaneNormals[i]);\\n        if (dotDirection &lt; 0.0) {\\n          // We only hit the plane if dotDirection is negative, as (distance is\\n          // positive)\\n          float intersectionDistance =\\n              dotOrigin / dotDirection; // negative divided by negative =&gt; positive\\n          clippingPlanesMaxDistance =\\n              min(clippingPlanesMaxDistance, intersectionDistance);\\n        }\\n      }\\n    #endif\\n\\n    vec2 intersectionDistances =\\n        rayIntersectVolumeDistances(initialPosVC, lightDirNormVC);\\n\\n    if (intersectionDistances[1] &lt;= intersectionDistances[0] ||\\n        intersectionDistances[1] &lt;= 0.0) {\\n      // Volume not hit or behind the ray\\n      return 1.0;\\n    }\\n\\n    // When globalIlluminationReach is 0, no sample at all\\n    // When globalIlluminationReach is 1, the ray will go through the whole\\n    // volume\\n    float maxTravelDistance = mix(0.0, volume.diagonalLength,\\n                                  volume.globalIlluminationReach);\\n    float startDistance = max(intersectionDistances[0], 0.0);\\n    float endDistance = min(intersectionDistances[1], startDistance + maxTravelDistance);\\n    #ifdef vtkClippingPlanesOn\\n      endDistance = min(endDistance, clippingPlanesMaxDistance);\\n    #endif\\n    if (endDistance - startDistance &lt; 0.0) {\\n      return 1.0;\\n    }\\n\\n    // These two variables are used to compute posIS, without having to call\\n    // VCtoIS at each step\\n    vec3 initialPosIS = posVCtoIS(initialPosVC);\\n    // The light dir is scaled and rotated, but not translated, as it is a\\n    // vector (w = 0)\\n    vec3 scaledLightDirIS = vecVCToIS(lightDirNormVC);\\n\\n    float shadow = 1.0;\\n    for (float currentDistance = startDistance; currentDistance &lt;= endDistance;\\n          currentDistance += rayStepLength) {\\n      vec3 posIS = initialPosIS + currentDistance * scaledLightDirIS;\\n      vec4 scalar = getTextureValue(posIS);\\n      float opacity = getOpacityFromTexture(scalar.r, 0, 0.5);\\n      #if defined(EnabledGradientOpacity) &amp;&amp; !defined(EnabledIndependentComponents)\\n        vec3 scalarInterp[2];\\n        vec4 normal = computeNormalForDensity(posIS, scalarInterp, 3);\\n        float opacityFactor = computeGradientOpacityFactor(normal.w, 0);\\n        opacity *= opacityFactor;\\n      #endif\\n      shadow *= 1.0 - opacity;\\n\\n      // Early termination if shadow coeff is near 0.0\\n      if (shadow &lt; EPSILON) {\\n        return 0.0;\\n      }\\n    }\\n    return shadow;\\n  }\\n\\n  // Some cache for volume shadows\\n  struct {\\n    vec3 posVC;\\n    float shadow;\\n  } cachedShadows[vtkNumberOfLights];\\n\\n  // Memoised version\\n  float computeVolumeShadow(vec3 posVC, vec3 lightDirNormVC, int lightIdx) {\\n    if (posVC == cachedShadows[lightIdx].posVC) {\\n      return cachedShadows[lightIdx].shadow;\\n    }\\n    float shadow = computeVolumeShadowWithoutCache(posVC, lightDirNormVC);\\n    cachedShadows[lightIdx].posVC = posVC;\\n    cachedShadows[lightIdx].shadow = shadow;\\n    return shadow;\\n  }\\n\\n#endif\\n\\n//=======================================================================\\n// surface light contribution\\n#if vtkNumberOfLights &gt; 0\\n  vec3 applyLighting(vec3 tColor, vec4 normalVC) {\\n    vec3 diffuse = vec3(0.0, 0.0, 0.0);\\n    vec3 specular = vec3(0.0, 0.0, 0.0);\\n    for (int lightIdx = 0; lightIdx &lt; vtkNumberOfLights; lightIdx++) {\\n      float df = dot(normalVC.xyz, lights[lightIdx].directionVC);\\n      if (df &gt; 0.0) {\\n        diffuse += df * lights[lightIdx].color;\\n        float sf = dot(normalVC.xyz, -lights[lightIdx].halfAngleVC);\\n        if (sf &gt; 0.0) {\\n          specular += pow(sf, volume.specularPower) * lights[lightIdx].color;\\n        }\\n      }\\n    }\\n    return tColor * (diffuse * volume.diffuse + volume.ambient) +\\n          specular * volume.specular;\\n  }\\n\\n  vec3 applySurfaceShadowLighting(vec3 tColor, float alpha, vec3 posVC,\\n                                  vec4 normalVC) {\\n    // everything in VC\\n    vec3 diffuse = vec3(0.0);\\n    vec3 specular = vec3(0.0);\\n    for (int ligthIdx = 0; ligthIdx &lt; vtkNumberOfLights; ligthIdx++) {\\n      vec3 vertLightDirection;\\n      float attenuation;\\n      if (lights[ligthIdx].isPositional == 1) {\\n        vertLightDirection = posVC - lights[ligthIdx].positionVC;\\n        float lightDistance = length(vertLightDirection);\\n        // Normalize with precomputed length\\n        vertLightDirection = vertLightDirection / lightDistance;\\n        // Base attenuation\\n        vec3 attenuationPolynom = lights[ligthIdx].attenuation;\\n        attenuation =\\n            1.0 / (attenuationPolynom[0] +\\n                  lightDistance * (attenuationPolynom[1] +\\n                                    lightDistance * attenuationPolynom[2]));\\n        // Cone attenuation\\n        float coneDot = dot(vertLightDirection, lights[ligthIdx].directionVC);\\n        // Per OpenGL standard cone angle is 90 or less for a spot light\\n        if (lights[ligthIdx].coneAngle &lt;= 90.0) {\\n          if (coneDot &gt;= cos(radians(lights[ligthIdx].coneAngle))) {\\n            // Inside the cone\\n            attenuation *= pow(coneDot, lights[ligthIdx].exponent);\\n          } else {\\n            // Outside the cone\\n            attenuation = 0.0;\\n          }\\n        }\\n      } else {\\n        vertLightDirection = lights[ligthIdx].directionVC;\\n        attenuation = 1.0;\\n      }\\n\\n      float ndotL = dot(normalVC.xyz, vertLightDirection);\\n      if (ndotL &lt; 0.0 &amp;&amp; twoSidedLighting == 1) {\\n        ndotL = -ndotL;\\n      }\\n      if (ndotL &gt; 0.0) {\\n        // Diffuse\\n        diffuse += ndotL * attenuation * lights[ligthIdx].color;\\n        // Specular\\n        float vdotR =\\n            dot(-rayDirVC, normalize(vertLightDirection - 2.0 * ndotL * normalVC.xyz));\\n        if (vdotR &gt; 0.0) {\\n          specular += pow(vdotR, volume.specularPower) * attenuation *\\n                      lights[ligthIdx].color;\\n        }\\n      }\\n    }\\n    #if vtkMaxLaoKernelSize &gt; 0\\n      float laoFactor = computeLAO(posVC, normalVC, alpha);\\n    #else\\n      const float laoFactor = 1.0;\\n    #endif\\n    return tColor * (diffuse * volume.diffuse +\\n                    volume.ambient * laoFactor) +\\n          specular * volume.specular;\\n  }\\n\\n  vec3 applyVolumeShadowLighting(vec3 tColor, vec3 posVC) {\\n    // Here we have no effect of cones and no attenuation\\n    vec3 diffuse = vec3(0.0);\\n    for (int lightIdx = 0; lightIdx &lt; vtkNumberOfLights; lightIdx++) {\\n      vec3 lightDirVC = lights[lightIdx].isPositional == 1\\n                            ? normalize(lights[lightIdx].positionVC - posVC)\\n                            : -lights[lightIdx].directionVC;\\n      float shadowCoeff = computeVolumeShadow(posVC, lightDirVC, lightIdx);\\n      float phaseAttenuation = phaseFunction(dot(rayDirVC, lightDirVC));\\n      diffuse += phaseAttenuation * shadowCoeff * lights[lightIdx].color;\\n    }\\n    return tColor * (diffuse * volume.diffuse + volume.ambient);\\n  }\\n#endif\\n\\n// LAO of surface shadows and volume shadows only work with dependent components\\nvec3 applyAllLightning(vec3 tColor, float alpha, vec3 posVC,\\n                       vec4 surfaceNormalVC) {\\n  #if vtkNumberOfLights &gt; 0\\n    // 0 &lt;= volCoeff &lt; EPSILON =&gt; only surface shadows\\n    // EPSILON &lt;= volCoeff &lt; 1 - EPSILON =&gt; mix of surface and volume shadows\\n    // 1 - EPSILON &lt;= volCoeff =&gt; only volume shadows\\n    float volCoeff = volume.volumetricScatteringBlending *\\n                    (1.0 - alpha / 2.0) *\\n                    (1.0 - atan(surfaceNormalVC.w) * INV4PI);\\n\\n    // Compute surface lighting if needed\\n    vec3 surfaceShadedColor = tColor;\\n    #ifdef EnableSurfaceLighting\\n      if (volCoeff &lt; 1.0 - EPSILON) {\\n        surfaceShadedColor =\\n            applySurfaceShadowLighting(tColor, alpha, posVC, surfaceNormalVC);\\n      }\\n    #endif\\n\\n    // Compute volume lighting if needed\\n    vec3 volumeShadedColor = tColor;\\n    #ifdef EnableVolumeLighting\\n      if (volCoeff &gt;= EPSILON) {\\n        volumeShadedColor = applyVolumeShadowLighting(tColor, posVC);\\n      }\\n    #endif\\n\\n    // Return the right mix\\n    if (volCoeff &lt; EPSILON) {\\n      // Surface shadows\\n      return surfaceShadedColor;\\n    }\\n    if (volCoeff &gt;= 1.0 - EPSILON) {\\n      // Volume shadows\\n      return volumeShadedColor;\\n    }\\n    // Mix of surface and volume shadows\\n    return mix(surfaceShadedColor, volumeShadedColor, volCoeff);\\n  #endif\\n  return tColor;\\n}\\n\\nvec4 getColorForLabelOutline() {\\n  vec3 centerPosIS =\\n      fragCoordToIndexSpace(gl_FragCoord); // pos in texture space\\n  vec4 centerValue = getTextureValue(centerPosIS);\\n  bool pixelOnBorder = false;\\n  vec4 tColor = vec4(getColorFromTexture(centerValue.r, 0, 0.5),\\n                     getOpacityFromTexture(centerValue.r, 0, 0.5));\\n\\n  int segmentIndex = int(centerValue.r * 255.0);\\n\\n  // Use texture sampling for outlineThickness\\n  float textureCoordinate = float(segmentIndex - 1) / 1024.0;\\n  float textureValue =\\n      texture2D(labelOutlineThicknessTexture, vec2(textureCoordinate, 0.5)).r;\\n  int actualThickness = int(textureValue * 255.0);\\n\\n  // If it is the background (segment index 0), we should quickly bail out.\\n  // Previously, this was determined by tColor.a, which was incorrect as it\\n  // prevented the outline from appearing when the fill is 0.\\n  if (segmentIndex == 0) {\\n    return vec4(0, 0, 0, 0);\\n  }\\n\\n  // Only perform outline check on fragments rendering voxels that aren&#x27;t\\n  // invisible. Saves a bunch of needless checks on the background.\\n  // TODO define epsilon when building shader?\\n  for (int i = -actualThickness; i &lt;= actualThickness; i++) {\\n    for (int j = -actualThickness; j &lt;= actualThickness; j++) {\\n      if (i == 0 &amp;&amp; j == 0) {\\n        continue;\\n      }\\n\\n      vec4 neighborPixelCoord =\\n          vec4(gl_FragCoord.x + float(i), gl_FragCoord.y + float(j),\\n               gl_FragCoord.z, gl_FragCoord.w);\\n\\n      vec3 neighborPosIS = fragCoordToIndexSpace(neighborPixelCoord);\\n      vec4 value = getTextureValue(neighborPosIS);\\n\\n      // If any of my neighbours are not the same value as I\\n      // am, this means I am on the border of the segment.\\n      // We can break the loops\\n      if (any(notEqual(value, centerValue))) {\\n        pixelOnBorder = true;\\n        break;\\n      }\\n    }\\n\\n    if (pixelOnBorder == true) {\\n      break;\\n    }\\n  }\\n\\n  // If I am on the border, I am displayed at full opacity\\n  if (pixelOnBorder == true) {\\n    tColor.a = volume.outlineOpacity;\\n  }\\n\\n  return tColor;\\n}\\n\\nvec4 getColorForAdditivePreset(vec4 tValue, vec3 posVC, vec3 posIS) {\\n  // compute normals\\n  mat4 normalMat = computeMat4Normal(posIS, tValue);\\n  vec4 normalLights[2];\\n  normalLights[0] = normalMat[0];\\n  normalLights[1] = normalMat[1];\\n  #if vtkNumberOfLights &gt; 0\\n    if (volume.computeNormalFromOpacity == 1) {\\n      for (int component = 0; component &lt; 2; ++component) {\\n        vec3 scalarInterp[2];\\n        float height = volume.transferFunctionsSampleHeight[component];\\n        computeNormalForDensity(posIS, scalarInterp, component);\\n        normalLights[component] =\\n            computeDensityNormal(scalarInterp, height, 1.0, component);\\n      }\\n    }\\n  #endif\\n\\n  // compute opacities\\n  float opacities[2];\\n  opacities[0] = getOpacityFromTexture(\\n      tValue[0], 0, volume.transferFunctionsSampleHeight[0]);\\n  opacities[1] = getOpacityFromTexture(\\n      tValue[1], 1, volume.transferFunctionsSampleHeight[1]);\\n  #ifdef EnabledGradientOpacity\\n    for (int component = 0; component &lt; 2; ++component) {\\n      opacities[component] *=\\n          computeGradientOpacityFactor(normalMat[component].a, component);\\n    }\\n  #endif\\n  float opacitySum = opacities[0] + opacities[1];\\n  if (opacitySum &lt;= 0.0) {\\n    return vec4(0.0);\\n  }\\n\\n  // mix the colors and opacities\\n  vec3 colors[2];\\n  for (int component = 0; component &lt; 2; ++component) {\\n    float sampleHeight = volume.transferFunctionsSampleHeight[component];\\n    vec3 color = getColorFromTexture(tValue[component], component, sampleHeight);\\n    color = applyAllLightning(color, opacities[component], posVC,\\n                              normalLights[component]);\\n    colors[component] = color;\\n  }\\n  vec3 mixedColor =\\n      (opacities[0] * colors[0] + opacities[1] * colors[1]) / opacitySum;\\n  return vec4(mixedColor, min(1.0, opacitySum));\\n}\\n\\nvec4 getColorForColorizePreset(vec4 tValue, vec3 posVC, vec3 posIS) {\\n  // compute normals\\n  mat4 normalMat = computeMat4Normal(posIS, tValue);\\n  vec4 normalLight = normalMat[0];\\n  #if vtkNumberOfLights &gt; 0\\n    if (volume.computeNormalFromOpacity == 1) {\\n      vec3 scalarInterp[2];\\n      float height = volume.transferFunctionsSampleHeight[0];\\n      computeNormalForDensity(posIS, scalarInterp, 0);\\n      normalLight = computeDensityNormal(scalarInterp, height, 1.0, 0);\\n    }\\n  #endif\\n\\n  // compute opacities\\n  float opacity = getOpacityFromTexture(\\n      tValue[0], 0, volume.transferFunctionsSampleHeight[0]);\\n  #ifdef EnabledGradientOpacity\\n    opacity *= computeGradientOpacityFactor(normalMat[0].a, 0);\\n  #endif\\n\\n  // colorizing component\\n  vec3 colorizingColor = getColorFromTexture(\\n      tValue[0], 1, volume.transferFunctionsSampleHeight[1]);\\n  float colorizingOpacity = getOpacityFromTexture(\\n      tValue[1], 1, volume.transferFunctionsSampleHeight[1]);\\n\\n  // mix the colors and opacities\\n  vec3 color =\\n      getColorFromTexture(tValue[0], 0,\\n                          volume.transferFunctionsSampleHeight[0]) *\\n      mix(vec3(1.0), colorizingColor, colorizingOpacity);\\n  color = applyAllLightning(color, opacity, posVC, normalLight);\\n  return vec4(color, opacity);\\n}\\n\\nvec4 getColorForDefaultIndependentPreset(vec4 tValue, vec3 posIS) {\\n\\n  // compute the normal vectors as needed\\n  #if defined(EnabledGradientOpacity) || vtkNumberOfLights &gt; 0\\n    mat4 normalMat = computeMat4Normal(posIS, tValue);\\n  #endif\\n\\n  // process color and opacity for each component\\n  // initial value of alpha is determined by wether the first component is\\n  // proportional or not\\n  #if defined(vtkComponent0Proportional)\\n    // when it is proportional, it starts at 1 (neutral for multiplications)\\n    float alpha = 1.0;\\n  #else\\n    // when it is not proportional, it starts at 0 (neutral for additions)\\n    float alpha = 0.0;\\n  #endif\\n\\n  vec3 mixedColor = vec3(0.0);\\n  #if vtkNumberOfComponents &gt; 0\\n    {\\n      const int component = 0;\\n      vec3 color = getColorFromTexture(\\n          tValue[component], component,\\n          volume.transferFunctionsSampleHeight[component]);\\n      float opacity = getOpacityFromTexture(\\n          tValue[component], component,\\n          volume.transferFunctionsSampleHeight[component]);\\n      #if !defined(vtkComponent0Proportional)\\n        float alphaContribution = volume.independentComponentMix[component] * opacity;\\n        #ifdef EnabledGradientOpacity\\n          alphaContribution *= computeGradientOpacityFactor(normalMat[component].a, component);\\n        #endif\\n        alpha += alphaContribution;\\n        #if vtkNumberOfLights &gt; 0\\n          color = applyLighting(color, normalMat[component]);\\n        #endif\\n      #else\\n        color *= opacity;\\n        alpha *= mix(opacity, 1.0,\\n                    (1.0 - volume.independentComponentMix[component]));\\n      #endif\\n      mixedColor += volume.independentComponentMix[component] * color;\\n    }\\n  #endif\\n  #if vtkNumberOfComponents &gt; 1\\n    {\\n      const int component = 1;\\n      vec3 color = getColorFromTexture(\\n          tValue[component], component,\\n          volume.transferFunctionsSampleHeight[component]);\\n      float opacity = getOpacityFromTexture(\\n          tValue[component], component,\\n          volume.transferFunctionsSampleHeight[component]);\\n      #if !defined(vtkComponent1Proportional)\\n        float alphaContribution = volume.independentComponentMix[component] * opacity;\\n        #ifdef EnabledGradientOpacity\\n          alphaContribution *= computeGradientOpacityFactor(normalMat[component].a, component);\\n        #endif\\n        alpha += alphaContribution;\\n        #if vtkNumberOfLights &gt; 0\\n          color = applyLighting(color, normalMat[component]);\\n        #endif\\n      #else\\n        color *= opacity;\\n        alpha *= mix(opacity, 1.0,\\n                    (1.0 - volume.independentComponentMix[component]));\\n      #endif\\n      mixedColor += volume.independentComponentMix[component] * color;\\n    }\\n  #endif\\n  #if vtkNumberOfComponents &gt; 2\\n    {\\n      const int component = 2;\\n      vec3 color = getColorFromTexture(\\n          tValue[component], component,\\n          volume.transferFunctionsSampleHeight[component]);\\n      float opacity = getOpacityFromTexture(\\n          tValue[component], component,\\n          volume.transferFunctionsSampleHeight[component]);\\n      #if !defined(vtkComponent2Proportional)\\n        float alphaContribution = volume.independentComponentMix[component] * opacity;\\n        #ifdef EnabledGradientOpacity\\n          alphaContribution *= computeGradientOpacityFactor(normalMat[component].a, component);\\n        #endif\\n        alpha += alphaContribution;\\n        #if vtkNumberOfLights &gt; 0\\n          color = applyLighting(color, normalMat[component]);\\n        #endif\\n      #else\\n        color *= opacity;\\n        alpha *= mix(opacity, 1.0,\\n                    (1.0 - volume.independentComponentMix[component]));\\n      #endif\\n      mixedColor += volume.independentComponentMix[component] * color;\\n    }\\n  #endif\\n  #if vtkNumberOfComponents &gt; 3\\n    {\\n      const int component = 3;\\n      vec3 color = getColorFromTexture(\\n          tValue[component], component,\\n          volume.transferFunctionsSampleHeight[component]);\\n      float opacity = getOpacityFromTexture(\\n          tValue[component], component,\\n          volume.transferFunctionsSampleHeight[component]);\\n      #if !defined(vtkComponent3Proportional)\\n        float alphaContribution = volume.independentComponentMix[component] * opacity;\\n        #ifdef EnabledGradientOpacity\\n          alphaContribution *= computeGradientOpacityFactor(normalMat[component].a, component);\\n        #endif\\n        alpha += alphaContribution;\\n        #if vtkNumberOfLights &gt; 0\\n          color = applyLighting(color, normalMat[component]);\\n        #endif\\n      #else\\n        color *= opacity;\\n        alpha *= mix(opacity, 1.0,\\n                    (1.0 - volume.independentComponentMix[component]));\\n      #endif\\n      mixedColor += volume.independentComponentMix[component] * color;\\n    }\\n  #endif\\n\\n  return vec4(mixedColor, alpha);\\n}\\n\\nvec4 getColorForDependentComponents(vec4 tValue, vec3 posVC, vec3 posIS) {\\n  #if defined(EnabledGradientOpacity) || vtkNumberOfLights &gt; 0\\n    // use component 3 of the opacity texture as getTextureValue() sets alpha to\\n    // the opacity value\\n    vec3 scalarInterp[2];\\n    vec4 normal0 = computeNormalForDensity(posIS, scalarInterp, 3);\\n    float gradientOpacity = computeGradientOpacityFactor(normal0.a, 0);\\n  #endif\\n\\n  // get color and opacity\\n  #if vtkNumberOfComponents == 1\\n    vec3 tColor = getColorFromTexture(tValue.r, 0, 0.5);\\n    float alpha = getOpacityFromTexture(tValue.r, 0, 0.5);\\n  #endif\\n  #if vtkNumberOfComponents == 2\\n    vec3 tColor = vec3(tValue.r * volume.colorTextureScale[0] +\\n                  volume.colorTextureShift[0]);\\n    float alpha = getOpacityFromTexture(tValue.a, 1, 0.5);\\n  #endif\\n  #if vtkNumberOfComponents == 3\\n      vec3 tColor = tValue.rgb * volume.colorTextureScale.rgb +\\n              volume.colorTextureShift.rgb;\\n      float alpha = getOpacityFromTexture(tValue.a, 0, 0.5);\\n  #endif\\n  #if vtkNumberOfComponents == 4\\n      vec3 tColor = tValue.rgb * volume.colorTextureScale.rgb +\\n              volume.colorTextureShift.rgb;\\n      float alpha = getOpacityFromTexture(tValue.a, 3, 0.5);\\n  #endif\\n\\n  // Apply gradient opacity\\n  #if defined(EnabledGradientOpacity)\\n    alpha *= gradientOpacity;\\n  #endif\\n\\n  #if vtkNumberOfComponents == 1\\n    if (alpha &lt; EPSILON) {\\n      return vec4(0.0);\\n    }\\n  #endif\\n\\n  // lighting\\n  #if vtkNumberOfLights &gt; 0\\n    vec4 normalLight;\\n    if (volume.computeNormalFromOpacity == 1) {\\n      if (normal0[3] != 0.0) {\\n        normalLight =\\n            computeDensityNormal(scalarInterp, 0.5, gradientOpacity, 0);\\n        if (normalLight[3] == 0.0) {\\n          normalLight = normal0;\\n        }\\n      }\\n    } else {\\n      normalLight = normal0;\\n    }\\n    tColor = applyAllLightning(tColor, alpha, posVC, normalLight);\\n  #endif\\n\\n  return vec4(tColor, alpha);\\n}\\n\\nvec4 getColorForValue(vec4 tValue, vec3 posVC, vec3 posIS) {\\n  #ifdef EnableColorForValueFunctionId0\\n    return getColorForDependentComponents(tValue, posVC, posIS);\\n  #endif\\n\\n  #ifdef EnableColorForValueFunctionId1\\n    return getColorForAdditivePreset(tValue, posVC, posIS);\\n  #endif\\n\\n  #ifdef EnableColorForValueFunctionId2\\n    return getColorForColorizePreset(tValue, posVC, posIS);\\n  #endif\\n\\n  #ifdef EnableColorForValueFunctionId3\\n    /*\\n      * Mix the color information from all the independent components to get a\\n      * single rgba output. See other shader functions like\\n      * `getColorForAdditivePreset` to learn how to create a custom color mix.\\n      * The custom color mix should return a value, but if it doesn&#x27;t, it will\\n      * fallback on the default shading\\n      */\\n    //VTK::CustomColorMix\\n  #endif\\n\\n  #if defined(EnableColorForValueFunctionId4) || defined(EnableColorForValueFunctionId3)\\n    return getColorForDefaultIndependentPreset(tValue, posIS);\\n  #endif\\n\\n  #ifdef EnableColorForValueFunctionId5\\n    return getColorForLabelOutline();\\n  #endif\\n}\\n\\nbool valueWithinScalarRange(vec4 val) {\\n  #if vtkNumberOfComponents &gt; 1 &amp;&amp; !defined(EnabledIndependentComponents)\\n    return false;\\n  #endif\\n  vec4 rangeMin = volume.ipScalarRangeMin;\\n  vec4 rangeMax = volume.ipScalarRangeMax;\\n  for (int component = 0; component &lt; vtkNumberOfComponents; ++component) {\\n    if (val[component] &lt; rangeMin[component] ||\\n        rangeMax[component] &lt; val[component]) {\\n      return false;\\n    }\\n  }\\n  return true;\\n}\\n\\n#if vtkBlendMode == LABELMAP_EDGE_PROJECTION_BLEND\\n  bool checkOnEdgeForNeighbor(int xFragmentOffset, int yFragmentOffset,\\n                              int segmentIndex, vec3 stepIS) {\\n    vec3 volumeDimensions = vec3(volume.dimensions);\\n    vec4 neighborPixelCoord = vec4(gl_FragCoord.x + float(xFragmentOffset),\\n                                  gl_FragCoord.y + float(yFragmentOffset),\\n                                  gl_FragCoord.z, gl_FragCoord.w);\\n    vec3 originalNeighborPosIS = fragCoordToIndexSpace(neighborPixelCoord);\\n\\n    vec3 neighborPosIS = originalNeighborPosIS;\\n    for (int k = 0; k &lt; vtkMaximumNumberOfSamples / 2; ++k) {\\n      ivec3 texCoord = ivec3(neighborPosIS * volumeDimensions);\\n      vec4 texValue = rawFetchTexture(texCoord);\\n      if (int(texValue.g) == segmentIndex) {\\n        // not on edge\\n        return false;\\n      }\\n      neighborPosIS += stepIS;\\n    }\\n\\n    neighborPosIS = originalNeighborPosIS;\\n    for (int k = 0; k &lt; vtkMaximumNumberOfSamples / 2; ++k) {\\n      ivec3 texCoord = ivec3(neighborPosIS * volumeDimensions);\\n      vec4 texValue = rawFetchTexture(texCoord);\\n      if (int(texValue.g) == segmentIndex) {\\n        // not on edge\\n        return false;\\n      }\\n      neighborPosIS -= stepIS;\\n    }\\n\\n    // onedge\\n    float sampleHeight = volume.transferFunctionsSampleHeight[1];\\n    vec3 tColorSegment =\\n        getColorFromTexture(float(segmentIndex), 1, sampleHeight);\\n    float pwfValueSegment =\\n        getOpacityFromTexture(float(segmentIndex), 1, sampleHeight);\\n    gl_FragData[0] = vec4(tColorSegment, pwfValueSegment);\\n    return true;\\n  }\\n#endif\\n\\nvec4 getColorAtPos(vec3 posVC) {\\n  vec3 posIS = posVCtoIS(posVC);\\n  vec4 texValue = getTextureValue(posIS);\\n  return getColorForValue(texValue, posVC, posIS);\\n}\\n\\n//=======================================================================\\n// Apply the specified blend mode operation along the ray&#x27;s path.\\n//\\nvoid applyBlend(vec3 rayOriginVC, vec3 rayDirVC, float minDistance,\\n                float maxDistance) {\\n  // start slightly inside and apply some jitter\\n  vec3 stepVC = rayDirVC * sampleDistance;\\n  float raySteps = (maxDistance - minDistance) / sampleDistance;\\n\\n  // Avoid 0.0 jitter\\n  float jitter = 0.01 + 0.99 * fragmentSeed;\\n\\n  #if vtkBlendMode == COMPOSITE_BLEND\\n    // now map through opacity and color\\n    vec3 firstPosVC = rayOriginVC + minDistance * rayDirVC;\\n    vec4 firstColor = getColorAtPos(firstPosVC);\\n\\n    // handle very thin volumes\\n    if (raySteps &lt;= 1.0) {\\n      firstColor.a = 1.0 - pow(1.0 - firstColor.a, raySteps);\\n      gl_FragData[0] = firstColor;\\n      return;\\n    }\\n\\n    // first color only counts for `jitter` factor of the step\\n    firstColor.a = 1.0 - pow(1.0 - firstColor.a, jitter);\\n    vec4 color = vec4(firstColor.rgb * firstColor.a, firstColor.a);\\n    vec3 posVC = firstPosVC + jitter * stepVC;\\n    float stepsTraveled = jitter;\\n\\n    for (int i = 0; i &lt; vtkMaximumNumberOfSamples; ++i) {\\n      // If we have reached the last step, break\\n      if (stepsTraveled + 1.0 &gt;= raySteps) {\\n        break;\\n      }\\n      vec4 tColor = getColorAtPos(posVC);\\n\\n      color = color + vec4(tColor.rgb * tColor.a, tColor.a) * (1.0 - color.a);\\n      stepsTraveled++;\\n      posVC += stepVC;\\n      if (color.a &gt; 0.99) {\\n        color.a = 1.0;\\n        break;\\n      }\\n    }\\n\\n    if (color.a &lt; 0.99 &amp;&amp; (raySteps - stepsTraveled) &gt; 0.0) {\\n      vec3 endPosVC = rayOriginVC + maxDistance * rayDirVC;\\n      vec4 tColor = getColorAtPos(endPosVC);\\n      tColor.a = 1.0 - pow(1.0 - tColor.a, raySteps - stepsTraveled);\\n\\n      float mix = (1.0 - color.a);\\n      color = color + vec4(tColor.rgb * tColor.a, tColor.a) * mix;\\n    }\\n\\n    gl_FragData[0] = vec4(color.rgb / color.a, color.a);\\n  #endif\\n\\n  #if vtkBlendMode == MAXIMUM_INTENSITY_BLEND ||                                 \\\\\\n      vtkBlendMode == MINIMUM_INTENSITY_BLEND\\n    // Find maximum/minimum intensity along the ray.\\n\\n    // Define the operation we will use (min or max)\\n    #if vtkBlendMode == MAXIMUM_INTENSITY_BLEND\\n      #define OP max\\n    #else\\n      #define OP min\\n    #endif\\n\\n    vec3 posVC = rayOriginVC + minDistance * rayDirVC;\\n    float stepsTraveled = 0.0;\\n\\n    // Find a value to initialize the selected variables\\n    vec4 selectedValue;\\n    vec3 selectedPosVC;\\n    vec3 selectedPosIS;\\n    {\\n      vec3 posIS = posVCtoIS(posVC);\\n      selectedValue = getTextureValue(posIS);\\n      selectedPosVC = posVC;\\n      selectedPosIS = posIS;\\n    }\\n\\n    // If the clipping range is shorter than the sample distance\\n    // we can skip the sampling loop along the ray.\\n    if (raySteps &lt;= 1.0) {\\n      gl_FragData[0] = getColorForValue(selectedValue, selectedPosVC, selectedPosIS);\\n      return;\\n    }\\n\\n    posVC += jitter * stepVC;\\n    stepsTraveled += jitter;\\n\\n    // Sample along the ray until vtkMaximumNumberOfSamples,\\n    // ending slightly inside the total distance\\n    for (int i = 0; i &lt; vtkMaximumNumberOfSamples; ++i) {\\n      // If we have reached the last step, break\\n      if (stepsTraveled + 1.0 &gt;= raySteps) {\\n        break;\\n      }\\n\\n      // Get selected values\\n      vec3 posIS = posVCtoIS(posVC);\\n      vec4 previousSelectedValue = selectedValue;\\n      vec4 currentValue = getTextureValue(posIS);\\n      selectedValue = OP(selectedValue, currentValue);\\n      if (previousSelectedValue != selectedValue) {\\n        selectedPosVC = posVC;\\n        selectedPosIS = posIS;\\n      }\\n\\n      // Otherwise, continue along the ray\\n      stepsTraveled++;\\n      posVC += stepVC;\\n    }\\n\\n    // Perform the last step along the ray using the\\n    // residual distance\\n    posVC = rayOriginVC + maxDistance * rayDirVC;\\n    {\\n      vec3 posIS = posVCtoIS(posVC);\\n      vec4 previousSelectedValue = selectedValue;\\n      vec4 currentValue = getTextureValue(posIS);\\n      selectedValue = OP(selectedValue, currentValue);\\n      if (previousSelectedValue != selectedValue) {\\n        selectedPosVC = posVC;\\n        selectedPosIS = posIS;\\n      }\\n    }\\n\\n    gl_FragData[0] = getColorForValue(selectedValue, selectedPosVC, selectedPosIS);\\n  #endif\\n\\n  #if vtkBlendMode == ADDITIVE_INTENSITY_BLEND ||                                \\\\\\n      vtkBlendMode == AVERAGE_INTENSITY_BLEND\\n    vec4 sum = vec4(0.);\\n    #if vtkBlendMode == AVERAGE_INTENSITY_BLEND\\n      float totalWeight = 0.0;\\n    #endif\\n    vec3 posVC = rayOriginVC + minDistance * rayDirVC;\\n    float stepsTraveled = 0.0;\\n\\n    vec3 posIS = posVCtoIS(posVC);\\n    vec4 value = getTextureValue(posIS);\\n\\n    if (raySteps &lt;= 1.0) {\\n      gl_FragData[0] = getColorForValue(value * raySteps, posVC, posIS);\\n      return;\\n    }\\n\\n    if (valueWithinScalarRange(value)) {\\n      sum += value * jitter;\\n      #if vtkBlendMode == AVERAGE_INTENSITY_BLEND\\n        totalWeight += jitter;\\n      #endif\\n    }\\n    posVC += jitter * stepVC;\\n    stepsTraveled += jitter;\\n\\n    // Sample along the ray until vtkMaximumNumberOfSamples,\\n    // ending slightly inside the total distance\\n    for (int i = 0; i &lt; vtkMaximumNumberOfSamples; ++i) {\\n      // If we have reached the last step, break\\n      if (stepsTraveled + 1.0 &gt;= raySteps) {\\n        break;\\n      }\\n\\n      posIS = posVCtoIS(posVC);\\n      value = getTextureValue(posIS);\\n      // One can control the scalar range by setting the AverageIPScalarRange to\\n      // disregard scalar values, not in the range of interest, from the average\\n      // computation. Notes:\\n      // - We are comparing all values in the texture to see if any of them\\n      //   are outside of the scalar range. In the future we might want to allow\\n      //   scalar ranges for each component.\\n      if (valueWithinScalarRange(value)) {\\n        sum += value;\\n        #if vtkBlendMode == AVERAGE_INTENSITY_BLEND\\n          totalWeight++;\\n        #endif\\n      }\\n\\n      stepsTraveled++;\\n      posVC += stepVC;\\n    }\\n\\n    // Perform the last step along the ray using the\\n    // residual distance\\n    posVC = rayOriginVC + maxDistance * rayDirVC;\\n    posIS = posVCtoIS(posVC);\\n    value = getTextureValue(posIS);\\n    if (valueWithinScalarRange(value)) {\\n      sum += value;\\n      #if vtkBlendMode == AVERAGE_INTENSITY_BLEND\\n        totalWeight += raySteps - stepsTraveled;\\n      #endif\\n    }\\n\\n    #if vtkBlendMode == AVERAGE_INTENSITY_BLEND\\n      sum /= vec4(totalWeight, totalWeight, totalWeight, 1.0);\\n    #endif\\n\\n    gl_FragData[0] = getColorForValue(sum, posVC, posIS);\\n  #endif\\n\\n  #if vtkBlendMode == RADON_TRANSFORM_BLEND\\n    float normalizedRayIntensity = 1.0;\\n    vec3 posVC = rayOriginVC + minDistance * rayDirVC;\\n    float stepsTraveled = 0.0;\\n\\n    // handle very thin volumes\\n    if (raySteps &lt;= 1.0) {\\n      vec3 posIS = posVCtoIS(posVC);\\n      vec4 tValue = getTextureValue(posIS);\\n      normalizedRayIntensity -= raySteps * sampleDistance *\\n                                getOpacityFromTexture(tValue.r, 0, 0.5);\\n      gl_FragData[0] =\\n          vec4(getColorFromTexture(normalizedRayIntensity, 0, 0.5), 1.0);\\n      return;\\n    }\\n\\n    posVC += jitter * stepVC;\\n    stepsTraveled += jitter;\\n\\n    for (int i = 0; i &lt; vtkMaximumNumberOfSamples; ++i) {\\n      if (stepsTraveled + 1.0 &gt;= raySteps) {\\n        break;\\n      }\\n\\n      vec3 posIS = posVCtoIS(posVC);\\n      vec4 value = getTextureValue(posIS);\\n      // Convert scalar value to normalizedRayIntensity coefficient and\\n      // accumulate normalizedRayIntensity\\n      normalizedRayIntensity -=\\n          sampleDistance * getOpacityFromTexture(value.r, 0, 0.5);\\n\\n      posVC += stepVC;\\n      stepsTraveled++;\\n    }\\n\\n    // map normalizedRayIntensity to color\\n    gl_FragData[0] =\\n        vec4(getColorFromTexture(normalizedRayIntensity, 0, 0.5), 1.0);\\n  #endif\\n\\n  #if vtkBlendMode == LABELMAP_EDGE_PROJECTION_BLEND\\n    // Only works with a single volume\\n    vec3 posVC = rayOriginVC + minDistance * rayDirVC;\\n    float stepsTraveled = 0.0;\\n    vec3 posIS = posVCtoIS(posVC);\\n    vec4 tValue = getTextureValue(posIS);\\n    if (raySteps &lt;= 1.0) {\\n      gl_FragData[0] = getColorForValue(tValue, posVC, posIS);\\n      return;\\n    }\\n\\n    vec3 stepIS = vecVCToIS(stepVC);\\n    vec4 value = tValue;\\n    posIS += jitter * stepIS;\\n    stepsTraveled += jitter;\\n    vec3 maxPosIS = posIS; // Store the position of the max value\\n    int segmentIndex = int(value.g);\\n    bool originalPosHasSeenNonZero = false;\\n\\n    if (segmentIndex != 0) {\\n      // Tried using the segment index in an boolean array but reading\\n      // from the array by dynamic indexing was horrondously slow\\n      // so use bit masking instead and assign 1 to the bit corresponding to the\\n      // segment index and later check if the bit is set via bit operations\\n      setLabelOutlineBit(segmentIndex);\\n    }\\n\\n    // Sample along the ray until vtkMaximumNumberOfSamples,\\n    // ending slightly inside the total distance\\n    for (int i = 0; i &lt; vtkMaximumNumberOfSamples; ++i) {\\n      // If we have reached the last step, break\\n      if (stepsTraveled + 1.0 &gt;= raySteps) {\\n        break;\\n      }\\n\\n      // compute the scalar\\n      tValue = getTextureValue(posIS);\\n      segmentIndex = int(tValue.g);\\n\\n      if (segmentIndex != 0) {\\n        originalPosHasSeenNonZero = true;\\n        setLabelOutlineBit(segmentIndex);\\n      }\\n\\n      if (tValue.r &gt; value.r) {\\n        value = tValue;   // Update the max value\\n        maxPosIS = posIS; // Update the position where max occurred\\n      }\\n\\n      // Otherwise, continue along the ray\\n      stepsTraveled++;\\n      posIS += stepIS;\\n    }\\n\\n    // Perform the last step along the ray using the\\n    // residual distance\\n    posIS = posVCtoIS(rayOriginVC + maxDistance * rayDirVC);\\n    tValue = getTextureValue(posIS);\\n\\n    if (tValue.r &gt; value.r) {\\n      value = tValue;   // Update the max value\\n      maxPosIS = posIS; // Update the position where max occurred\\n    }\\n\\n    // If we have not seen any non-zero segments, we can return early\\n    // and grab color from the actual center value first component (image)\\n    if (!originalPosHasSeenNonZero) {\\n      vec3 maxPosVC = posIStoVC(maxPosIS);\\n      gl_FragData[0] = getColorForValue(value, maxPosVC, maxPosIS);\\n      return;\\n    }\\n\\n    vec3 neighborRayStepsIS = stepIS;\\n    float neighborRaySteps = raySteps;\\n    bool shouldLookInAllNeighbors = false;\\n\\n    vec3 volumeSpacings = volume.spacing;\\n    float minVoxelSpacing =\\n        min(volumeSpacings[0], min(volumeSpacings[1], volumeSpacings[2]));\\n    vec4 base =\\n        vec4(gl_FragCoord.x, gl_FragCoord.y, gl_FragCoord.z, gl_FragCoord.w);\\n\\n    vec4 baseXPlus = vec4(gl_FragCoord.x + 1.0, gl_FragCoord.y, gl_FragCoord.z,\\n                          gl_FragCoord.w);\\n    vec4 baseYPlus = vec4(gl_FragCoord.x, gl_FragCoord.y + 1.0, gl_FragCoord.z,\\n                          gl_FragCoord.w);\\n\\n    vec3 baseWorld = fragCoordToWorld(base);\\n    vec3 baseXPlusWorld = fragCoordToWorld(baseXPlus);\\n    vec3 baseYPlusWorld = fragCoordToWorld(baseYPlus);\\n\\n    float XPlusDiff = length(baseXPlusWorld - baseWorld);\\n    float YPlusDiff = length(baseYPlusWorld - baseWorld);\\n\\n    float minFragSpacingWorld = min(XPlusDiff, YPlusDiff);\\n\\n    for (int s = 1; s &lt; MAX_SEGMENT_INDEX; s++) {\\n      // bail out quickly if the segment index has not\\n      // been seen by the center segment\\n      if (!isLabelOutlineBitSet(s)) {\\n        continue;\\n      }\\n\\n      // Use texture sampling for outlineThickness so that we can have\\n      // per segment thickness\\n      float textureCoordinate = float(s - 1) / 1024.0;\\n      float textureValue =\\n          texture2D(labelOutlineThicknessTexture, vec2(textureCoordinate, 0.5)).r;\\n\\n      int actualThickness = int(textureValue * 255.0);\\n\\n      // check the extreme points in the neighborhood since there is a better\\n      // chance of finding the edge there, so that we can bail out\\n      // faster if we find the edge\\n      bool onEdge = checkOnEdgeForNeighbor(-actualThickness, -actualThickness, s,\\n                                          stepIS) ||\\n                    checkOnEdgeForNeighbor(actualThickness, actualThickness, s,\\n                                          stepIS) ||\\n                    checkOnEdgeForNeighbor(actualThickness, -actualThickness, s,\\n                                          stepIS) ||\\n                    checkOnEdgeForNeighbor(-actualThickness, +actualThickness, s,\\n                                          stepIS);\\n\\n      if (onEdge) {\\n        return;\\n      }\\n\\n      // since the next step is computationally expensive, we need to perform\\n      // some optimizations to avoid it if possible. One of the optimizations\\n      // is to check the whether the minimum of the voxel spacing is greater than\\n      // the 2 * the thickness of the outline segment. If that is the case\\n      // then we can safely skip the next step since we can be sure that the\\n      // the previous 4 checks on the extreme points would caught the entirety\\n      // of the all the fragments inside. i.e., this happens when we zoom out,\\n      if (minVoxelSpacing &gt;\\n          (2.0 * float(actualThickness) - 1.0) * minFragSpacingWorld) {\\n        continue;\\n      }\\n\\n      // Loop through the rest, skipping the processed extremes and the center\\n      for (int i = -actualThickness; i &lt;= actualThickness; i++) {\\n        for (int j = -actualThickness; j &lt;= actualThickness; j++) {\\n          if (i == 0 &amp;&amp; j == 0)\\n            continue; // Skip the center\\n          if (abs(i) == actualThickness &amp;&amp; abs(j) == actualThickness)\\n            continue; // Skip corners\\n          if (checkOnEdgeForNeighbor(i, j, s, stepIS)) {\\n            return;\\n          }\\n        }\\n      }\\n    }\\n\\n    float sampleHeight = volume.transferFunctionsSampleHeight[0];\\n    vec3 tColor0 = getColorFromTexture(value.r, 0, sampleHeight);\\n    float pwfValue0 = getOpacityFromTexture(value.r, 0, sampleHeight);\\n    gl_FragData[0] = vec4(tColor0, pwfValue0);\\n  #endif\\n}\\n\\n//=======================================================================\\n// given a\\n// - ray direction (rayDir)\\n// - starting point (vertexVCVSOutput)\\n// - bounding planes of the volume\\n// - optionally depth buffer values\\n// - far clipping plane\\n// compute the start/end distances of the ray we need to cast\\nvec2 computeRayDistances(vec3 rayOriginVC, vec3 rayDirVC) {\\n  vec2 dists = rayIntersectVolumeDistances(rayOriginVC, rayDirVC);\\n\\n  //VTK::ClipPlane::Impl\\n\\n  // do not go behind front clipping plane\\n  dists.x = max(0.0, dists.x);\\n\\n  // do not go PAST far clipping plane\\n  float farDist = -camThick / rayDirVC.z;\\n  dists.y = min(farDist, dists.y);\\n\\n  // Do not go past the zbuffer value if set\\n  // This is used for intermixing opaque geometry\\n  //VTK::ZBuffer::Impl\\n\\n  return dists;\\n}\\n\\nfloat getFragmentSeed() {\\n  // This first noise has a diagonal pattern\\n  float firstNoise =\\n      fract(sin(dot(gl_FragCoord.xy, vec2(12.9898, 78.233))) * 43758.5453);\\n  // This second noise is made out of blocks of CPU generated noise\\n  float secondNoise = texture2D(jtexture, gl_FragCoord.xy / 32.0).r;\\n  // Combine the two sources of noise in a way that the distribution is uniform\\n  // in [0,1[\\n  float noiseSum = firstNoise + secondNoise;\\n  return noiseSum &lt; 1.0 ? noiseSum : noiseSum - 1.0;\\n}\\n\\nvoid main() {\\n  fragmentSeed = getFragmentSeed();\\n\\n  if (cameraParallel == 1) {\\n    // Camera is parallel, so the rayDir is just the direction of the camera.\\n    rayDirVC = vec3(0.0, 0.0, -1.0);\\n  } else {\\n    // camera is at 0,0,0 so rayDir for perspective is just the vc coord\\n    rayDirVC = normalize(vertexVCVSOutput);\\n  }\\n\\n  vec3 rayOriginVC = vertexVCVSOutput;\\n  vec2 rayStartEndDistancesVC = computeRayDistances(rayOriginVC, rayDirVC);\\n  if (rayStartEndDistancesVC[1] &lt;= rayStartEndDistancesVC[0] ||\\n      rayStartEndDistancesVC[1] &lt;= 0.0) {\\n    // Volume not hit or behind the ray\\n    discard;\\n  }\\n\\n  // Perform the blending operation along the ray\\n  applyBlend(rayOriginVC, rayDirVC, rayStartEndDistancesVC[0], rayStartEndDistancesVC[1]);\\n}\\n&quot;,e.Geometry=&quot;&quot;},e.replaceShaderValues=(e,n,r)=&gt;{let o=e.Fragment;o=vd.substitute(o,&quot;//VTK::EnabledColorFunctions&quot;,`#define EnableColorForValueFunctionId${t.previousState.colorForValueFunctionId}`).result;const a=[];t.previousState.surfaceLightingEnabled&amp;&amp;a.push(&quot;Surface&quot;),t.previousState.volumeLightingEnabled&amp;&amp;a.push(&quot;Volume&quot;),o=vd.substitute(o,&quot;//VTK::EnabledLightings&quot;,a.map((e=&gt;`#define Enable${e}Lighting`))).result,t.previousState.multiTexturePerVolumeEnabled&amp;&amp;(o=vd.substitute(o,&quot;//VTK::EnabledMultiTexturePerVolume&quot;,&quot;#define EnabledMultiTexturePerVolume&quot;).result),t.previousState.useIndependentComponents&amp;&amp;(o=vd.substitute(o,&quot;//VTK::EnabledIndependentComponents&quot;,&quot;#define EnabledIndependentComponents&quot;).result),t.previousState.gradientOpacityEnabled&amp;&amp;(o=vd.substitute(o,&quot;//VTK::EnabledGradientOpacity&quot;,&quot;#define EnabledGradientOpacity&quot;).result),o=vd.substitute(o,&quot;//VTK::vtkProportionalComponents&quot;,t.previousState.proportionalComponents.map((e=&gt;`#define vtkComponent${e}Proportional`)).join(&quot;\\n&quot;)).result,o=vd.substitute(o,&quot;//VTK::vtkForceNearestComponents&quot;,t.previousState.forceNearestComponents.map((e=&gt;`#define vtkComponent${e}ForceNearest`)).join(&quot;\\n&quot;)).result,t.previousState.hasZBufferTexture&amp;&amp;(o=vd.substitute(o,&quot;//VTK::ZBuffer::Dec&quot;,[&quot;uniform sampler2D zBufferTexture;&quot;,&quot;uniform float vpZWidth;&quot;,&quot;uniform float vpZHeight;&quot;]).result,o=vd.substitute(o,&quot;//VTK::ZBuffer::Impl&quot;,[&quot;vec4 depthVec = texture2D(zBufferTexture, vec2(gl_FragCoord.x / vpZWidth, gl_FragCoord.y/vpZHeight));&quot;,&quot;float zdepth = (depthVec.r*256.0 + depthVec.g)/257.0;&quot;,&quot;zdepth = zdepth * 2.0 - 1.0;&quot;,&quot;if (cameraParallel == 0) {&quot;,&quot;zdepth = -2.0 * camFar * camNear / (zdepth*(camFar-camNear)-(camFar+camNear)) - camNear;}&quot;,&quot;else {&quot;,&quot;zdepth = (zdepth + 1.0) * 0.5 * (camFar - camNear);}\\n&quot;,&quot;zdepth = -zdepth/rayDirVC.z;&quot;,&quot;dists.y = min(zdepth,dists.y);&quot;]).result),o=vd.substitute(o,&quot;//VTK::BlendMode&quot;,`${t.previousState.blendMode}`).result,o=vd.substitute(o,&quot;//VTK::NumberOfLights&quot;,`${t.previousState.numberOfLights}`).result,o=vd.substitute(o,&quot;//VTK::MaxLaoKernelSize&quot;,`${t.previousState.maxLaoKernelSize}`).result,o=vd.substitute(o,&quot;//VTK::NumberOfComponents&quot;,`${t.previousState.numberOfComponents}`).result,o=vd.substitute(o,&quot;//VTK::MaximumNumberOfSamples&quot;,`${t.previousState.maximumNumberOfSamples}`).result,e.Fragment=o;const i=t.previousState.numberOfClippingPlanes;i&gt;0&amp;&amp;(o=vd.substitute(o,&quot;//VTK::ClipPlane::Dec&quot;,[&quot;uniform vec3 vClipPlaneNormals[6];&quot;,&quot;uniform float vClipPlaneDistances[6];&quot;,&quot;uniform vec3 vClipPlaneOrigins[6];&quot;,&quot;uniform int clip_numPlanes;&quot;,&quot;//VTK::ClipPlane::Dec&quot;,&quot;#define vtkClippingPlanesOn&quot;],!1).result,o=vd.substitute(o,&quot;//VTK::ClipPlane::Impl&quot;,[`for(int i = 0; i &lt; ${i}; i++) {`,&quot;  float rayDirRatio = dot(rayDirVC, vClipPlaneNormals[i]);&quot;,&quot;  float equationResult = dot(vertexVCVSOutput, vClipPlaneNormals[i]) + vClipPlaneDistances[i];&quot;,&quot;  if (rayDirRatio == 0.0)&quot;,&quot;  {&quot;,&quot;    if (equationResult &lt; 0.0) dists.x = dists.y;&quot;,&quot;    continue;&quot;,&quot;  }&quot;,&quot;  float result = -1.0 * equationResult / rayDirRatio;&quot;,&quot;  if (rayDirRatio &lt; 0.0) dists.y = min(dists.y, result);&quot;,&quot;  else dists.x = max(dists.x, result);&quot;,&quot;}&quot;,&quot;//VTK::ClipPlane::Impl&quot;],!1).result),e.Fragment=o},e.getNeedToRebuildShaders=(r,o,a)=&gt;{const i=!!t.zBufferTexture,s=t.currentValidInputs.length,l=t.numberOfLights,c=t.numberOfComponents,u=t.useIndependentComponents,d=a.getProperties(),p=t.currentValidInputs[0],f=d[p.inputIndex],g=s&gt;1,m=p.imageData.getBounds(),h=Hi.getDiagonalLength(m),v=Math.ceil(h/e.getCurrentSampleDistance(o));v&gt;t.renderable.getMaximumSamplesPerRay()&amp;&amp;Tg(`The number of steps required ${v} is larger than the specified maximum number of steps ${t.renderable.getMaximumSamplesPerRay()}.\\nPlease either change the volumeMapper sampleDistance or its maximum number of samples.`);const T=u?c:1;let x=!1;for(let e=0;e&lt;T;++e)if(f.getUseGradientOpacity(e)){x=!0;break}let y=0;const b=f.getLAOKernelSize();b&gt;y&amp;&amp;f.getLocalAmbientOcclusion()&amp;&amp;f.getAmbient()&gt;0&amp;&amp;(y=b);const A=t.renderable.getClippingPlanes().length,C=t.renderable.getViewSpecificProperties().OpenGL?.ShaderReplacements,S=t.currentRenderPass?.getShaderReplacement(),P=t.renderable.getBlendMode(),w=(()=&gt;{if(P!==hg.LABELMAP_EDGE_PROJECTION_BLEND&amp;&amp;n(f))return 5;if(u)switch(f.getColorMixPreset()){case gg.ADDITIVE:return 1;case gg.COLORIZE:return 2;case gg.CUSTOM:return 3;default:return 4}return 0})(),I=f.getVolumetricScatteringBlending()&lt;1,O=f.getVolumetricScatteringBlending()&gt;0;let R=!1;for(let e=0;e&lt;c;++e)if(f.getForceNearestInterpolation(e)){R=!0;break}const M=[],D=[];for(let e=0;e&lt;c;e++)f.getOpacityMode(e)===fg.PROPORTIONAL&amp;&amp;M.push(e),f.getForceNearestInterpolation(e)&amp;&amp;D.push(e);const E={numberOfComponents:c,useIndependentComponents:u,proportionalComponents:M,forceNearestComponents:D,blendMode:P,numberOfLights:l,numberOfValidInputs:s,maximumNumberOfSamples:v,hasZBufferTexture:i,maxLaoKernelSize:y,numberOfClippingPlanes:A,mapperShaderReplacements:C,renderPassShaderReplacements:S,colorForValueFunctionId:w,surfaceLightingEnabled:I,volumeLightingEnabled:O,forceNearestInterpolationEnabled:R,multiTexturePerVolumeEnabled:g,gradientOpacityEnabled:x};return(0===r.getProgram()?.getHandle()||!t.previousState||!xe(t.previousState,E))&amp;&amp;(t.previousState=E,!0)},e.updateShaders=(n,r,o)=&gt;{if(e.getNeedToRebuildShaders(n,r,o)){const a={Vertex:null,Fragment:null,Geometry:null};e.buildShaders(a,r,o);const i=t._openGLRenderWindow.getShaderCache().readyShaderProgramArray(a.Vertex,a.Fragment,a.Geometry);i!==n.getProgram()&amp;&amp;(n.setProgram(i),n.getVAO().releaseGraphicsResources()),n.getShaderSourceTime().modified()}else t._openGLRenderWindow.getShaderCache().readyShaderProgram(n.getProgram());n.getVAO().bind(),e.setMapperShaderParameters(n,r,o),e.setCameraShaderParameters(n,r,o),e.setPropertyShaderParameters(n,r,o),e.getClippingPlaneShaderParameters(n,r,o)},e.setMapperShaderParameters=(n,r,o)=&gt;{const a=n.getProgram();n.getCABO().getElementCount()&amp;&amp;(t.VBOBuildTime.getMTime()&gt;n.getAttributeUpdateTime().getMTime()||n.getShaderSourceTime().getMTime()&gt;n.getAttributeUpdateTime().getMTime())&amp;&amp;(a.isAttributeUsed(&quot;vertexDC&quot;)&amp;&amp;(n.getVAO().addAttributeArray(a,n.getCABO(),&quot;vertexDC&quot;,n.getCABO().getVertexOffset(),n.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE)||xg(&quot;Error setting vertexDC in shader VAO.&quot;)),n.getAttributeUpdateTime().modified());const i=e.getCurrentSampleDistance(r);a.setUniformf(&quot;sampleDistance&quot;,i);const s=i*t.renderable.getVolumeShadowSamplingDistFactor();a.setUniformf(&quot;volumeShadowSampleDistance&quot;,s),t.scalarTextures.forEach(((e,t)=&gt;{a.setUniformi(`volumeTexture[${t}]`,e.getTextureUnit())}));const l=o.getProperties()[t.currentValidInputs[0].inputIndex].getIpScalarRange(),c=new Float32Array(4),u=new Float32Array(4),d=(e,t,n)=&gt;{t?.dataComputedScale?.length&amp;&amp;(c[e]=l[0]*t.dataComputedScale[n]+t.dataComputedOffset[n],u[e]=l[1]*t.dataComputedScale[n]+t.dataComputedOffset[n],c[e]=(c[e]-t.offset[n])/t.scale[n],u[e]=(u[e]-t.offset[n])/t.scale[n])};if(t.previousState.multiTexturePerVolumeEnabled)t.scalarTextures.forEach(((e,t)=&gt;{const n=e.getVolumeInfo();d(t,n,0)}));else{const e=t.scalarTextures[0].getVolumeInfo();for(let t=0;t&lt;4;++t)d(t,e,t)}const p=&quot;volume&quot;;if(a.setUniform4f(`${p}.ipScalarRangeMin`,c[0],c[1],c[2],c[3]),a.setUniform4f(`${p}.ipScalarRangeMax`,u[0],u[1],u[2],u[3]),null!==t.zBufferTexture){a.setUniformi(&quot;zBufferTexture&quot;,t.zBufferTexture.getTextureUnit());const e=t._useSmallViewport?[t._smallViewportWidth,t._smallViewportHeight]:t._openGLRenderWindow.getFramebufferSize();a.setUniformf(&quot;vpZWidth&quot;,e[0]),a.setUniformf(&quot;vpZHeight&quot;,e[1])}},e.setCameraShaderParameters=(r,o,a)=&gt;{const{idxToView:i,vecISToVCMatrix:s,modelToView:l,projectionToView:c,projectionToWorld:u}=yg,f=t.openGLCamera.getKeyMatrices(o),g=t.openGLVolume.getKeyMatrices();A(l,f.wcvc,g.mcwc);const m=r.getProgram(),h=t.openGLCamera.getRenderable(),v=h.getParallelProjection(),T=h.getClippingRange();m.setUniformf(&quot;camThick&quot;,T[1]-T[0]),m.setUniformf(&quot;camNear&quot;,T[0]),m.setUniformf(&quot;camFar&quot;,T[1]),m.setUniformi(&quot;cameraParallel&quot;,v);const x=t.currentValidInputs[0],y=x.imageData.getBounds(),C=Hi.getCorners(y,[]).map((e=&gt;{if(oe(e,e,l),!v){$(e,e,-T[0]/(e[2]*X(e)))}return oe(e,e,f.vcpc),e})),S=Hi.addPoints([...Hi.INIT_BOUNDS],C);m.setUniformf(&quot;dcxmin&quot;,S[0]),m.setUniformf(&quot;dcxmax&quot;,S[1]),m.setUniformf(&quot;dcymin&quot;,S[2]),m.setUniformf(&quot;dcymax&quot;,S[3]);const P=e.getRenderTargetSize();m.setUniformf(&quot;vpWidth&quot;,P[0]),m.setUniformf(&quot;vpHeight&quot;,P[1]);const w=e.getRenderTargetOffset();m.setUniformf(&quot;vpOffsetX&quot;,w[0]/P[0]),m.setUniformf(&quot;vpOffsetY&quot;,w[1]/P[1]),b(c,f.vcpc),m.setUniformMatrix(&quot;PCVCMatrix&quot;,c),m.setUniformi(&quot;twoSidedLighting&quot;,o.getTwoSidedLighting());const I=new Array(2*t.previousState.maxLaoKernelSize);for(let e=0;e&lt;t.previousState.maxLaoKernelSize;e++)I[2*e]=Math.random(),I[2*e+1]=Math.random();if(m.setUniform2fv(&quot;kernelSample&quot;,I),t.numberOfLights&gt;0){let e=0;o.getLights().forEach((t=&gt;{if(t.getSwitch()&gt;0){const n=`lights[${e}]`,r=$([],t.getColor(),t.getIntensity());m.setUniform3fv(`${n}.color`,r);const o=t.getTransformedPosition();oe(o,o,l),m.setUniform3fv(`${n}.positionVC`,o);const a=[...t.getDirection()];ae(a,a,f.normalMatrix),te(a,a),m.setUniform3fv(`${n}.directionVC`,a);const i=[-.5*a[0],-.5*a[1],-.5*(a[2]-1)];m.setUniform3fv(`${n}.halfAngleVC`,i);const s=t.getAttenuationValues();m.setUniform3fv(`${n}.attenuation`,s);const c=t.getExponent();m.setUniformf(`${n}.exponent`,c);const u=t.getConeAngle();m.setUniformf(`${n}.coneAngle`,u);const d=t.getPositional();m.setUniformi(`${n}.isPositional`,d),e++}}))}const O=&quot;volume&quot;,R=a.getProperties()[x.inputIndex],M=x.imageData,D=M.getSpatialExtent(),E=M.getSpacing(),V=M.getDimensions(),L=M.getIndexToWorld(),B=M.getWorldToIndex(),F=M.getDirectionByReference();A(i,l,L),m.setUniform3fv(`${O}.spacing`,E);const N=ee([],E);m.setUniform3fv(`${O}.inverseSpacing`,N),m.setUniform3iv(`${O}.dimensions`,V),m.setUniform3fv(`${O}.inverseDimensions`,ee([],V)),m.setUniformMatrix(`${O}.worldToIndex`,B),s.fill(0);const k=Q(new Float64Array(3),V,E);s[0]=k[0],s[4]=k[1],s[8]=k[2],p(s,F,s),p(s,g.normalMatrix,s),p(s,f.normalMatrix,s),m.setUniformMatrix3x3(`${O}.vecISToVCMatrix`,s),m.setUniformMatrix3x3(`${O}.vecVCToISMatrix`,d(new Float32Array(9),s));const G=q(D[0],D[2],D[4]),U=oe(new Float64Array(3),G,i);m.setUniform3fv(`${O}.originVC`,U);const _=X(k);if(m.setUniformf(`${O}.diagonalLength`,_),n(R)){const e=h.getDistance();h.setClippingRange(e,e+.1);b(u,t.openGLCamera.getKeyMatrices(o).wcpc),h.setClippingRange(T[0],T[1]),t.openGLCamera.getKeyMatrices(o),m.setUniformMatrix(`${O}.PCWCMatrix`,u)}if(R.getVolumetricScatteringBlending()&gt;0&amp;&amp;(m.setUniformf(`${O}.globalIlluminationReach`,R.getGlobalIlluminationReach()),m.setUniformf(`${O}.volumetricScatteringBlending`,R.getVolumetricScatteringBlending()),m.setUniformf(`${O}.anisotropy`,R.getAnisotropy()),m.setUniformf(`${O}.anisotropySquared`,R.getAnisotropy()**2)),R.getLocalAmbientOcclusion()&amp;&amp;R.getAmbient()&gt;0){const e=R.getLAOKernelSize();m.setUniformi(`${O}.kernelSize`,e);const t=R.getLAOKernelRadius();m.setUniformi(`${O}.kernelRadius`,t)}else m.setUniformi(`${O}.kernelSize`,0)},e.setPropertyShaderParameters=(e,n,r)=&gt;{const o=e.getProgram();o.setUniformi(&quot;jtexture&quot;,t.jitterTexture.getTextureUnit());const a=r.getProperties();o.setUniformi(&quot;labelOutlineThicknessTexture&quot;,t.labelOutlineThicknessTexture.getTextureUnit()),o.setUniformi(&quot;opacityTexture&quot;,t.opacityTexture.getTextureUnit()),o.setUniformi(&quot;colorTexture&quot;,t.colorTexture.getTextureUnit());const i=&quot;volume&quot;,s=a[t.currentValidInputs[0].inputIndex],l=t.previousState.numberOfComponents,c=t.previousState.useIndependentComponents;if(c){const e=new Float32Array(4);for(let t=0;t&lt;l;t++)e[t]=s.getComponentWeight(t);o.setUniform4fv(`${i}.independentComponentMix`,e);const t=new Float32Array(4),n=1/l;for(let e=0;e&lt;l;++e)t[e]=(e+.5)*n;o.setUniform4fv(`${i}.transferFunctionsSampleHeight`,t)}const u=t.colorForValueFunctionId;o.setUniformi(`${i}.colorForValueFunctionId`,u);const d=s.getComputeNormalFromOpacity();o.setUniformi(`${i}.computeNormalFromOpacity`,d);const p=new Float32Array(4),f=new Float32Array(4),g=new Float32Array(4),m=new Float32Array(4);for(let e=0;e&lt;l;e++){const n=t.previousState.multiTexturePerVolumeEnabled,r=n?e:0,o=n?0:e,a=t.scalarTextures[r].getVolumeInfo(),i=c?e:0,l=a.scale[o],u=s.getRGBTransferFunction(i).getRange();p[e]=l/(u[1]-u[0]),f[e]=(a.offset[o]-u[0])/(u[1]-u[0]);const d=s.getScalarOpacity(i).getRange();g[e]=l/(d[1]-d[0]),m[e]=(a.offset[o]-d[0])/(d[1]-d[0])}if(o.setUniform4fv(`${i}.colorTextureScale`,p),o.setUniform4fv(`${i}.colorTextureShift`,f),o.setUniform4fv(`${i}.opacityTextureScale`,g),o.setUniform4fv(`${i}.opacityTextureShift`,m),t.previousState.gradientOpacityEnabled){const e=new Array(4),n=new Array(4),r=new Array(4),a=new Array(4);if(c)for(let o=0;o&lt;l;++o){const i=t.previousState.multiTexturePerVolumeEnabled,l=i?o:0,c=i?0:o,u=t.scalarTextures[l].getVolumeInfo().scale[c];if(s.getUseGradientOpacity(o)){const t=[s.getGradientOpacityMinimumOpacity(o),s.getGradientOpacityMaximumOpacity(o)],i=[s.getGradientOpacityMinimumValue(o),s.getGradientOpacityMaximumValue(o)];r[o]=t[0],a[o]=t[1],e[o]=u*(t[1]-t[0])/(i[1]-i[0]),n[o]=-i[0]*(t[1]-t[0])/(i[1]-i[0])+t[0]}else r[o]=1,a[o]=1,e[o]=0,n[o]=1}else{const o=l-1,i=t.previousState.multiTexturePerVolumeEnabled,c=i?o:0,u=i?0:o,d=t.scalarTextures[c].getVolumeInfo().scale[u],p=[s.getGradientOpacityMinimumOpacity(0),s.getGradientOpacityMaximumOpacity(0)],f=[s.getGradientOpacityMinimumValue(0),s.getGradientOpacityMaximumValue(0)];r[0]=p[0],a[0]=p[1],e[0]=d*(p[1]-p[0])/(f[1]-f[0]),n[0]=-f[0]*(p[1]-p[0])/(f[1]-f[0])+p[0]}o.setUniform4f(`${i}.gradientOpacityScale`,e),o.setUniform4f(`${i}.gradientOpacityShift`,n),o.setUniform4f(`${i}.gradientOpacityMin`,r),o.setUniform4f(`${i}.gradientOpacityMax`,a)}const h=s.getLabelOutlineOpacity();if(o.setUniformf(`${i}.outlineOpacity`,h),t.numberOfLights&gt;0){o.setUniformf(`${i}.ambient`,s.getAmbient()),o.setUniformf(`${i}.diffuse`,s.getDiffuse()),o.setUniformf(`${i}.specular`,s.getSpecular());const e=s.getSpecularPower();o.setUniformf(`${i}.specularPower`,0===e?1:e)}},e.getClippingPlaneShaderParameters=(e,n,r)=&gt;{if(t.renderable.getClippingPlanes().length&gt;0){const r=t.openGLCamera.getKeyMatrices(n),o=[],a=[],i=[],s=t.renderable.getClippingPlanes(),l=s.length;for(let e=0;e&lt;l;++e){const t=s[e].getNormal(),n=s[e].getOrigin();ae(t,t,r.normalMatrix),oe(n,n,r.wcvc);const l=-1*ne(n,t);o.push(t[0]),o.push(t[1]),o.push(t[2]),a.push(l),i.push(n[0]),i.push(n[1]),i.push(n[2])}const c=e.getProgram();c.setUniform3fv(&quot;vClipPlaneNormals&quot;,o),c.setUniformfv(&quot;vClipPlaneDistances&quot;,a),c.setUniform3fv(&quot;vClipPlaneOrigins&quot;,i),c.setUniformi(&quot;clip_numPlanes&quot;,l)}},e.delete=qt((()=&gt;{t._animationRateSubscription&amp;&amp;(t._animationRateSubscription.unsubscribe(),t._animationRateSubscription=null)}),(()=&gt;{t._openGLRenderWindow&amp;&amp;a(t._openGLRenderWindow)}),e.delete),e.getRenderTargetSize=()=&gt;{if(t._useSmallViewport)return[t._smallViewportWidth,t._smallViewportHeight];const{usize:e,vsize:n}=t._openGLRenderer.getTiledSizeAndOrigin();return[e,n]},e.getRenderTargetOffset=()=&gt;{const{lowerLeftU:e,lowerLeftV:n}=t._openGLRenderer.getTiledSizeAndOrigin();return[e,n]},e.getCurrentSampleDistance=e=&gt;{const n=e.getVTKWindow().getInteractor(),r=t.renderable.getSampleDistance();if(n.isAnimating()){return r*t.renderable.getInteractionSampleDistanceFactor()}return r},e.renderPieceStart=(n,r)=&gt;{const o=n.getVTKWindow().getInteractor();if(t._lastScale||(t._lastScale=t.renderable.getInitialInteractionScale()),t._useSmallViewport=!1,o.isAnimating()&amp;&amp;t._lastScale&gt;1.5&amp;&amp;(t._useSmallViewport=!0),t._animationRateSubscription||(t._animationRateSubscription=o.onAnimationFrameRateUpdate((()=&gt;{if(t.renderable.getAutoAdjustSampleDistances()){const e=o.getRecentAnimationFrameRate(),n=o.getDesiredUpdateRate()/e;(n&gt;1.15||n&lt;.85)&amp;&amp;(t._lastScale*=n),t._lastScale&gt;400&amp;&amp;(t._lastScale=400),t._lastScale&lt;1.5&amp;&amp;(t._lastScale=1.5)}else t._lastScale=t.renderable.getImageSampleDistance()*t.renderable.getImageSampleDistance()}))),t._useSmallViewport){const e=t._openGLRenderWindow.getFramebufferSize(),n=1/Math.sqrt(t._lastScale);if(t._smallViewportWidth=Math.ceil(n*e[0]),t._smallViewportHeight=Math.ceil(n*e[1]),t._smallViewportHeight&gt;e[1]&amp;&amp;(t._smallViewportHeight=e[1]),t._smallViewportWidth&gt;e[0]&amp;&amp;(t._smallViewportWidth=e[0]),t.framebuffer.saveCurrentBindingsAndBuffers(),null===t.framebuffer.getGLFramebuffer())t.framebuffer.create(e[0],e[1]),t.framebuffer.populateFramebuffer();else{const n=t.framebuffer.getSize();n&amp;&amp;n[0]===e[0]&amp;&amp;n[1]===e[1]||(t.framebuffer.create(e[0],e[1]),t.framebuffer.populateFramebuffer())}t.framebuffer.bind();const r=t.context;r.clearColor(0,0,0,0),r.colorMask(!0,!0,!0,!0),r.clear(r.COLOR_BUFFER_BIT),r.viewport(0,0,t._smallViewportWidth,t._smallViewportHeight),t.fvp=[t._smallViewportWidth/e[0],t._smallViewportHeight/e[1]]}t.context.disable(t.context.DEPTH_TEST),e.updateBufferObjects(n,r);const a=r.getProperties();t.currentValidInputs.forEach((({inputIndex:e})=&gt;{const n=a[e].getInterpolationType(),r=t.scalarTextures[e];n===pg.NEAREST?(r.setMinificationFilter(wd.NEAREST),r.setMagnificationFilter(wd.NEAREST)):(r.setMinificationFilter(wd.LINEAR),r.setMagnificationFilter(wd.LINEAR))})),null!==t.zBufferTexture&amp;&amp;t.zBufferTexture.activate()},e.renderPieceDraw=(n,r)=&gt;{const o=t.context,a=[...t.scalarTextures,t.colorTexture,t.opacityTexture,t.labelOutlineThicknessTexture,t.jitterTexture];a.forEach((e=&gt;e.activate())),e.updateShaders(t.tris,n,r),o.drawArrays(o.TRIANGLES,0,t.tris.getCABO().getElementCount()),t.tris.getVAO().release(),a.forEach((e=&gt;e.deactivate()))},e.renderPieceFinish=(e,n)=&gt;{if(null!==t.zBufferTexture&amp;&amp;t.zBufferTexture.deactivate(),t._useSmallViewport){if(t.framebuffer.restorePreviousBindingsAndBuffers(),null===t.copyShader){t.copyShader=t._openGLRenderWindow.getShaderCache().readyShaderProgramArray([&quot;//VTK::System::Dec&quot;,&quot;attribute vec4 vertexDC;&quot;,&quot;uniform vec2 tfactor;&quot;,&quot;varying vec2 tcoord;&quot;,&quot;void main() { tcoord = vec2(vertexDC.x*0.5 + 0.5, vertexDC.y*0.5 + 0.5) * tfactor; gl_Position = vertexDC; }&quot;].join(&quot;\\n&quot;),[&quot;//VTK::System::Dec&quot;,&quot;//VTK::Output::Dec&quot;,&quot;uniform sampler2D texture1;&quot;,&quot;varying vec2 tcoord;&quot;,&quot;void main() { gl_FragData[0] = texture2D(texture1,tcoord); }&quot;].join(&quot;\\n&quot;),&quot;&quot;);const e=t.copyShader;t.copyVAO=yd.newInstance(),t.copyVAO.setOpenGLRenderWindow(t._openGLRenderWindow),t.tris.getCABO().bind(),t.copyVAO.addAttributeArray(e,t.tris.getCABO(),&quot;vertexDC&quot;,t.tris.getCABO().getVertexOffset(),t.tris.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE)||xg(&quot;Error setting vertexDC in copy shader VAO.&quot;)}else t._openGLRenderWindow.getShaderCache().readyShaderProgram(t.copyShader);const e=t._openGLRenderWindow.getFramebufferSize();t.context.viewport(0,0,e[0],e[1]);const n=t.framebuffer.getColorTexture();n.activate(),t.copyShader.setUniformi(&quot;texture&quot;,n.getTextureUnit()),t.copyShader.setUniform2f(&quot;tfactor&quot;,t.fvp[0],t.fvp[1]);const r=t.context;r.blendFuncSeparate(r.ONE,r.ONE_MINUS_SRC_ALPHA,r.ONE,r.ONE_MINUS_SRC_ALPHA),t.context.drawArrays(t.context.TRIANGLES,0,t.tris.getCABO().getElementCount()),n.deactivate(),r.blendFuncSeparate(r.SRC_ALPHA,r.ONE_MINUS_SRC_ALPHA,r.ONE,r.ONE_MINUS_SRC_ALPHA)}},e.renderPiece=(n,r)=&gt;{e.invokeEvent({type:&quot;StartEvent&quot;}),t.renderable.update();const o=t.renderable.getNumberOfInputPorts();t.currentValidInputs=[];for(let e=0;e&lt;o;++e){const n=t.renderable.getInputData(e);n&amp;&amp;!n.isDeleted()&amp;&amp;t.currentValidInputs.push({imageData:n,inputIndex:e})}let a=0;if(t.currentValidInputs.length&gt;0){const e=r.getProperties(),o=t.currentValidInputs[0],i=o.imageData.getPointData().getScalars(),s=e[o.inputIndex];s.getShade()&amp;&amp;t.renderable.getBlendMode()===hg.COMPOSITE_BLEND&amp;&amp;n.getLights().forEach((e=&gt;{e.getSwitch()&gt;0&amp;&amp;a++}));const l=t.currentValidInputs.length,c=l&gt;1;t.numberOfComponents=c?l:i.getNumberOfComponents(),t.useIndependentComponents=function(e,t){const n=e.getIndependentComponents(),r=e.getColorMixPreset();return n&amp;&amp;t&gt;=2||!!r}(s,t.numberOfComponents)}a!==t.numberOfLights&amp;&amp;(t.numberOfLights=a,e.modified()),e.invokeEvent({type:&quot;EndEvent&quot;}),0!==t.currentValidInputs.length&amp;&amp;(e.renderPieceStart(n,r),e.renderPieceDraw(n,r),e.renderPieceFinish(n,r))},e.updateBufferObjects=(t,n)=&gt;{e.getNeedToRebuildBufferObjects(t,n)&amp;&amp;e.buildBufferObjects(t,n)},e.getNeedToRebuildBufferObjects=(n,r)=&gt;t.VBOBuildTime.getMTime()&lt;e.getMTime()||t.VBOBuildTime.getMTime()&lt;r.getMTime()||t.VBOBuildTime.getMTime()&lt;r.getProperty(t.currentValidInputs[0].inputIndex)?.getMTime()||t.VBOBuildTime.getMTime()&lt;t.renderable.getMTime()||t.currentValidInputs.some((({imageData:e})=&gt;t.VBOBuildTime.getMTime()&lt;e.getMTime()))||t.scalarTextures.length!==t.currentValidInputs.length||!t.scalarTextures.every((e=&gt;!!e?.getHandle()))||!t.colorTexture?.getHandle()||!t.opacityTexture?.getHandle()||!t.labelOutlineThicknessTexture?.getHandle()||!t.jitterTexture?.getHandle(),e.buildBufferObjects=(n,r)=&gt;{if(!t.jitterTexture.getHandle()){const e=new Float32Array(1024);for(let t=0;t&lt;1024;++t)e[t]=Math.random();t.jitterTexture.setMinificationFilter(wd.NEAREST),t.jitterTexture.setMagnificationFilter(wd.NEAREST),t.jitterTexture.create2DFromRaw({width:32,height:32,numComps:1,dataType:ms.FLOAT,data:e})}const a=r.getProperties(),i=t.currentValidInputs[0],s=a[i.inputIndex],l=t.numberOfComponents,c=t.useIndependentComponents,u=c?l:1,d=[];for(let e=0;e&lt;u;++e)d.push(s.getScalarOpacity(e));const p=zf(d,c,u),f=s.getScalarOpacity(),g=t._openGLRenderWindow.getGraphicsResourceForObject(f);if(!g?.oglObject?.getHandle()||g.hash!==p){const r=Hd.newInstance();r.setOpenGLRenderWindow(t._openGLRenderWindow);let o=t.renderable.getOpacityTextureWidth();o&lt;=0&amp;&amp;(o=t.context.getParameter(t.context.MAX_TEXTURE_SIZE));const a=2*o*u,i=new Float32Array(a),l=new Float32Array(o);for(let t=0;t&lt;u;++t){const r=s.getScalarOpacity(t),a=e.getCurrentSampleDistance(n)/s.getScalarOpacityUnitDistance(t),c=r.getRange();r.getTable(c[0],c[1],o,l,1);for(let e=0;e&lt;o;++e)i[t*o*2+e]=1-(1-l[e])**a,i[t*o*2+e+o]=i[t*o*2+e]}if(r.resetFormatAndType(),r.setMinificationFilter(wd.LINEAR),r.setMagnificationFilter(wd.LINEAR),t._openGLRenderWindow.getWebgl2()||t.context.getExtension(&quot;OES_texture_float&quot;)&amp;&amp;t.context.getExtension(&quot;OES_texture_float_linear&quot;))r.create2DFromRaw({width:o,height:2*u,numComps:1,dataType:ms.FLOAT,data:i});else{const e=new Uint8ClampedArray(a);for(let t=0;t&lt;a;++t)e[t]=255*i[t];r.create2DFromRaw({width:o,height:2*u,numComps:1,dataType:ms.UNSIGNED_CHAR,data:e})}f&amp;&amp;t._openGLRenderWindow.setGraphicsResourceForObject(f,r,p),t.opacityTexture=r}else t.opacityTexture=g.oglObject;o(t._openGLRenderWindow,t._opacityTextureCore,f),t._opacityTextureCore=f;const m=[];for(let e=0;e&lt;u;++e)m.push(s.getRGBTransferFunction(e));const h=zf(m,c,u),v=s.getRGBTransferFunction(),T=t._openGLRenderWindow.getGraphicsResourceForObject(v);if(!T?.oglObject?.getHandle()||T?.hash!==h){const e=Hd.newInstance();e.setOpenGLRenderWindow(t._openGLRenderWindow);let n=t.renderable.getColorTextureWidth();n&lt;=0&amp;&amp;(n=t.context.getParameter(t.context.MAX_TEXTURE_SIZE));const r=new Uint8ClampedArray(2*n*u*3),o=new Float32Array(3*n);for(let e=0;e&lt;u;++e){const t=s.getRGBTransferFunction(e),a=t.getRange();t.getTable(a[0],a[1],n,o,1);for(let t=0;t&lt;3*n;++t)r[e*n*6+t]=255*o[t],r[e*n*6+t+3*n]=255*o[t]}e.resetFormatAndType(),e.setMinificationFilter(wd.LINEAR),e.setMagnificationFilter(wd.LINEAR),e.create2DFromRaw({width:n,height:2*u,numComps:3,dataType:ms.UNSIGNED_CHAR,data:r}),t._openGLRenderWindow.setGraphicsResourceForObject(v,e,h),t.colorTexture=e}else t.colorTexture=T.oglObject;o(t._openGLRenderWindow,t._colorTextureCore,v),t._colorTextureCore=v,t.currentValidInputs.forEach((({imageData:e,inputIndex:n},r)=&gt;{const i=a[n],s=e.getPointData().getScalars(),l=t._openGLRenderWindow.getGraphicsResourceForObject(s),c=Wf(0,s),u=!l?.oglObject?.getHandle()||l?.hash!==c,d=i.getUpdatedExtents(),p=!!d.length;if(u&amp;&amp;!p){const n=Hd.newInstance();n.setOpenGLRenderWindow(t._openGLRenderWindow);const o=e.getDimensions();n.setOglNorm16Ext(t.context.getExtension(&quot;EXT_texture_norm16&quot;)),n.resetFormatAndType(),n.create3DFilterableFromDataArray({width:o[0],height:o[1],depth:o[2],dataArray:s,preferSizeOverAccuracy:i.getPreferSizeOverAccuracy()}),t._openGLRenderWindow.setGraphicsResourceForObject(s,n,c),t.scalarTextures[r]=n}else t.scalarTextures[r]=l.oglObject;if(p){i.setUpdatedExtents([]);const n=e.getDimensions();t.scalarTextures[r].create3DFilterableFromDataArray({width:n[0],height:n[1],depth:n[2],dataArray:s,updatedExtents:d})}o(t._openGLRenderWindow,t._scalarTexturesCore[r],s),t._scalarTexturesCore[r]=s}));const x=s.getLabelOutlineThickness(),y=t._openGLRenderWindow.getGraphicsResourceForObject(x),b=x.join(&quot;-&quot;);if(!y?.oglObject?.getHandle()||y?.hash!==b){const e=Hd.newInstance();e.setOpenGLRenderWindow(t._openGLRenderWindow);let n=t.renderable.getLabelOutlineTextureWidth();n&lt;=0&amp;&amp;(n=t.context.getParameter(t.context.MAX_TEXTURE_SIZE));const r=1,o=new Uint8Array(n*r);for(let e=0;e&lt;n;++e){const t=void 0!==x[e]?x[e]:x[0];o[e]=t}e.resetFormatAndType(),e.setMinificationFilter(wd.NEAREST),e.setMagnificationFilter(wd.NEAREST),e.create2DFromRaw({width:n,height:r,numComps:1,dataType:ms.UNSIGNED_CHAR,data:o}),x&amp;&amp;t._openGLRenderWindow.setGraphicsResourceForObject(x,e,b),t.labelOutlineThicknessTexture=e}else t.labelOutlineThicknessTexture=y.oglObject;if(o(t._openGLRenderWindow,t._labelOutlineThicknessTextureCore,x),t._labelOutlineThicknessTextureCore=x,!t.tris.getCABO().getElementCount()){const e=new Float32Array(12);for(let t=0;t&lt;4;t++)e[3*t]=t%2*2-1,e[3*t+1]=t&gt;1?1:-1,e[3*t+2]=-1;const n=new Uint16Array(8);n[0]=3,n[1]=0,n[2]=1,n[3]=3,n[4]=3,n[5]=0,n[6]=3,n[7]=2;const r=Is.newInstance({numberOfComponents:3,values:e});r.setName(&quot;points&quot;);const o=Is.newInstance({numberOfComponents:1,values:n});t.tris.getCABO().createVBO(o,&quot;polys&quot;,rs.SURFACE,{points:r,cellOffset:0})}t.VBOBuildTime.modified()}}const Ag={context:null,VBOBuildTime:null,scalarTextures:[],_scalarTexturesCore:[],opacityTexture:null,_opacityTextureCore:null,colorTexture:null,_colorTextureCore:null,labelOutlineThicknessTexture:null,_labelOutlineThicknessTextureCore:null,jitterTexture:null,tris:null,framebuffer:null,copyShader:null,copyVAO:null,lastXYF:1,targetXYF:1,zBufferTexture:null,lastZBufferTexture:null,fullViewportTime:1,idxToView:null,vecISToVCMatrix:null,modelToView:null,projectionToView:null,avgWindowArea:0,avgFrameTime:0};vn(&quot;vtkVolumeMapper&quot;,Xt((function(e,t,n={}){Object.assign(t,Ag,n),pn.extend(e,t,n),qd.implementBuildShadersWithReplacements(e,t,n),t.VBOBuildTime={},Vt(t.VBOBuildTime,{mtime:0}),t.tris=Sd.newInstance(),t.jitterTexture=Hd.newInstance(),t.jitterTexture.setWrapS(Pd.REPEAT),t.jitterTexture.setWrapT(Pd.REPEAT),t.framebuffer=Gp.newInstance(),Gt(e,t,[&quot;context&quot;]),bg(e,t)}),&quot;vtkOpenGLVolumeMapper&quot;));const{vtkDebugMacro:Cg}=ln;const Sg={};vn(&quot;vtkPixelSpaceCallbackMapper&quot;,Xt((function(e,t,n={}){Object.assign(t,Sg,n),pn.extend(e,t,n),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLPixelSpaceCallbackMapper&quot;),e.opaquePass=(n,r)=&gt;{t._openGLRenderer=e.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;),t._openGLRenderWindow=t._openGLRenderer.getLastAncestorOfType(&quot;vtkOpenGLRenderWindow&quot;);const o=t._openGLRenderer.getAspectRatio(),a=t._openGLRenderer?t._openGLRenderer.getRenderable().getActiveCamera():null,i=t._openGLRenderer.getTiledSizeAndOrigin();let s=null;if(t.renderable.getUseZValues()){const e=r.getZBufferTexture(),n=Math.floor(e.getWidth()),o=Math.floor(e.getHeight()),a=t._openGLRenderWindow.getContext();e.bind();const i=r.getFramebuffer();i?i.saveCurrentBindingsAndBuffers():Cg(&quot;No framebuffer to save/restore&quot;);const l=a.createFramebuffer();a.bindFramebuffer(a.FRAMEBUFFER,l),a.framebufferTexture2D(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0,a.TEXTURE_2D,e.getHandle(),0),a.checkFramebufferStatus(a.FRAMEBUFFER)===a.FRAMEBUFFER_COMPLETE&amp;&amp;(s=new Uint8Array(n*o*4),a.viewport(0,0,n,o),a.readPixels(0,0,n,o,a.RGBA,a.UNSIGNED_BYTE,s)),i&amp;&amp;i.restorePreviousBindingsAndBuffers(),a.deleteFramebuffer(l)}t.renderable.invokeCallback(t.renderable.getInputData(),a,o,i,s)},e.queryPass=(e,n)=&gt;{e&amp;&amp;t.renderable.getUseZValues()&amp;&amp;n.requestDepth()}}(e,t)}),&quot;vtkOpenGLPixelSpaceCallbackMapper&quot;));var Pg=&quot;//VTK::System::Dec\\n\\n/*=========================================================================\\n\\n  Program:   Visualization Toolkit\\n  Module:    vtktextureObjectVS.glsl\\n\\n  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n  All rights reserved.\\n  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n\\n     This software is distributed WITHOUT ANY WARRANTY; without even\\n     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n     PURPOSE.  See the above copyright notice for more information.\\n\\n=========================================================================*/\\n\\nattribute vec4 vertexDC;\\nattribute vec2 tcoordDC;\\nvarying vec2 tcoordVC;\\n\\nvoid main()\\n{\\n  tcoordVC = tcoordDC;\\n  gl_Position = vertexDC;\\n}\\n&quot;;const{Representation:wg}=us;function Ig(e,[t,n],r,o){const a=e.getContext(),i=Hd.newInstance({autoParameters:!1,wrapS:o,wrapT:o,minificationFilter:r,magnificationFilter:r,generateMipmap:!1,openGLDataType:a.FLOAT,baseLevel:0,maxLevel:0});return i.setOpenGLRenderWindow(e),i.setInternalFormat(a.RGBA32F),i.create2DFromRaw({width:t,height:n,numComps:4,dataType:&quot;Float32Array&quot;,data:null}),i.activate(),i.sendParameters(),i.deactivate(),i}function Og(e,t){return Ig(e,t,Hd.Filter.NEAREST,Hd.Wrap.CLAMP_TO_EDGE)}function Rg(e,t){var n,r;(t.classHierarchy.push(&quot;vtkLICPingPongBufferManager&quot;),t._openGLRenderWindow)?(t.quad=function(e){const t=Sd.newInstance();t.setOpenGLRenderWindow(e);const n=new Float32Array(12);for(let e=0;e&lt;4;e++)n[3*e]=e%2*2-1,n[3*e+1]=e&gt;1?1:-1,n[3*e+2]=0;const r=new Float32Array([0,0,1,0,0,1,1,1]),o=new Uint16Array(8);o[0]=3,o[1]=0,o[2]=1,o[3]=3,o[4]=3,o[5]=0,o[6]=3,o[7]=2;const a=Is.newInstance({numberOfComponents:3,values:n});a.setName(&quot;points&quot;);const i=Is.newInstance({numberOfComponents:1,values:o}),s=Is.newInstance({numberOfComponents:2,values:r});return t.getCABO().createVBO(i,&quot;polys&quot;,wg.SURFACE,{points:a,cellOffset:0,tcoords:s}),t}(t._openGLRenderWindow),t.context=t._openGLRenderWindow.getContext(),t.licTexture0=Og(t._openGLRenderWindow,t.size),t.seedTexture0=Og(t._openGLRenderWindow,t.size),t.licTexture1=Og(t._openGLRenderWindow,t.size),t.seedTexture1=Og(t._openGLRenderWindow,t.size),t.eeTexture=t.doEEPass?(n=t._openGLRenderWindow,r=t.size,Ig(n,r,Hd.Filter.NEAREST,Hd.Wrap.CLAMP_TO_EDGE)):null,t.imageVectorTexture=t.doVTPass?function(e,t){return Ig(e,t,Hd.Filter.LINEAR,Hd.Wrap.CLAMP_TO_EDGE)}(t._openGLRenderWindow,t.size):null,t.pingTextures[0]=t.licTexture0,t.pingTextures[1]=t.seedTexture0,t.pongTextures[0]=t.licTexture1,t.pongTextures[1]=t.seedTexture1,t.textures[0]=t.pingTextures,t.textures[1]=t.pongTextures,e.swap=()=&gt;{t.readIndex=1-t.readIndex},e.renderQuad=(e,n)=&gt;{const r=t.quad,o=t.context;let a=t.quadVAO;a||(a=yd.newInstance(),a.setOpenGLRenderWindow(t._openGLRenderWindow),t.quadVAO=a),t.previousProgramHash!==n.getMd5Hash()&amp;&amp;(a.shaderProgramChanged(),r.getCABO().bind(),a.addAttributeArray(n,r.getCABO(),&quot;vertexDC&quot;,r.getCABO().getVertexOffset(),r.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE),a.addAttributeArray(n,r.getCABO(),&quot;tcoordDC&quot;,r.getCABO().getTCoordOffset(),r.getCABO().getStride(),t.context.FLOAT,2,t.context.FALSE),t.previousProgramHash=n.getMd5Hash()),o.drawArrays(o.TRIANGLES,0,r.getCABO().getElementCount()),a.release()},e.getLastLICBuffer=()=&gt;0===t.readIndex?t.licTexture0:t.licTexture1,e.getLastSeedBuffer=()=&gt;0===t.readIndex?t.seedTexture0:t.seedTexture1,e.getLICBuffer=()=&gt;1-t.readIndex==0?t.licTexture0:t.licTexture1,e.getSeedBuffer=()=&gt;1-t.readIndex==0?t.seedTexture0:t.seedTexture1,e.getLICTextureUnit=()=&gt;{const e=t.textures[t.readIndex][0];return e.activate(),e.getTextureUnit()},e.getSeedTextureUnit=()=&gt;{const e=t.textures[t.readIndex][1];return e.activate(),e.getTextureUnit()},e.getNoiseTextureUnit=(e=0)=&gt;0===e?(t.noiseTexture.activate(),t.noiseTexture.getTextureUnit()):(t.eeTexture.activate(),t.eeTexture.getTextureUnit()),e.getVectorTextureUnit=()=&gt;(t.vectorTexture.activate(),t.vectorTexture.getTextureUnit()),e.getImageVectorTextureUnit=()=&gt;t.imageVectorTexture?(t.imageVectorTexture.activate(),t.imageVectorTexture.getTextureUnit()):e.getVectorTextureUnit(),e.getMaskVectorTextureUnit=()=&gt;t.maskVectorTexture?(t.maskVectorTexture.activate(),t.maskVectorTexture.getTextureUnit()):e.getImageVectorTextureUnit(),e.clearBuffers=(e=!1)=&gt;{const n=t.framebuffer,r=t.context;n.removeColorBuffer(0),n.removeColorBuffer(1),n.removeColorBuffer(2),n.removeColorBuffer(3),n.setColorBuffer(t.licTexture0,0),n.setColorBuffer(t.seedTexture0,1),n.setColorBuffer(t.licTexture1,2),n.setColorBuffer(t.seedTexture1,3);const o=[r.COLOR_ATTACHMENT0,r.COLOR_ATTACHMENT1,r.COLOR_ATTACHMENT2,r.COLOR_ATTACHMENT3];e&amp;&amp;(n.removeColorBuffer(4),n.setColorBuffer(t.eeTexture,4),o.push(r.COLOR_ATTACHMENT4)),r.drawBuffers(o),r.clearColor(0,1,0,0),r.disable(r.SCISSOR_TEST),r.disable(r.BLEND),r.clear(r.COLOR_BUFFER_BIT),n.removeColorBuffer(0),n.removeColorBuffer(1),n.removeColorBuffer(2),n.removeColorBuffer(3),e&amp;&amp;n.removeColorBuffer(4),r.drawBuffers([r.NONE])},e.clearBuffer=e=&gt;{const n=t.framebuffer,r=t.context;n.removeColorBuffer(0),n.setColorBuffer(e,0),r.drawBuffers([r.COLOR_ATTACHMENT0]),r.clearColor(0,1,0,0),r.disable(r.SCISSOR_TEST),r.disable(r.BLEND),r.clear(r.COLOR_BUFFER_BIT),n.removeColorBuffer(e,0),r.drawBuffers([r.NONE])},e.activateVectorTextures=()=&gt;{t.imageVectorTexture?t.imageVectorTexture.activate():t.vectorTexture.activate(),t.maskVectorTexture&amp;&amp;t.maskVectorTexture.activate()},e.deactivateVectorTextures=()=&gt;{t.imageVectorTexture?t.imageVectorTexture.deactivate():t.vectorTexture.deactivate(),t.maskVectorTexture&amp;&amp;t.maskVectorTexture.deactivate()},e.activateNoiseTexture=(e=0)=&gt;{switch(e){case 0:t.noiseTexture.activate();break;case 1:t.eeTexture.activate();break;default:console.error(&quot;Wrong LIC pass number&quot;)}},e.deactivateNoiseTexture=(e=0)=&gt;{switch(e){case 0:t.noiseTexture.deactivate();break;case 1:t.eeTexture.deactivate();break;default:console.error(&quot;Wrong LIC pass number&quot;)}},e.attachLICBuffers=()=&gt;{const e=t.textures[t.readIndex],n=t.textures[1-t.readIndex],r=t.framebuffer,o=t.context;e[0].activate(),e[1].activate(),r.removeColorBuffer(0),r.removeColorBuffer(1),r.setColorBuffer(n[0],0),r.setColorBuffer(n[1],1),o.drawBuffers([o.COLOR_ATTACHMENT0,o.COLOR_ATTACHMENT1])},e.detachLICBuffers=()=&gt;{const e=t.textures[t.readIndex],n=t.context,r=t.framebuffer;e[0].deactivate(),e[1].deactivate(),r.removeColorBuffer(0),r.removeColorBuffer(1),n.drawBuffers([n.NONE])},e.attachImageVectorBuffer=()=&gt;{const e=t.framebuffer,n=t.context;t.vectorTexture.activate(),e.removeColorBuffer(0),e.setColorBuffer(t.imageVectorTexture,0),n.drawBuffers([n.COLOR_ATTACHMENT0])},e.detachImageVectorBuffer=()=&gt;{const e=t.context,n=t.framebuffer;t.vectorTexture.deactivate(),n.removeColorBuffer(0),e.drawBuffers([e.NONE])},e.attachEEBuffer=()=&gt;{t.textures[t.readIndex][0].activate(),t.framebuffer.removeColorBuffer(0),t.framebuffer.setColorBuffer(t.eeTexture,0);const e=t.context;e.drawBuffers([e.COLOR_ATTACHMENT0])},e.detachEEBuffer=()=&gt;{const e=t.context;t.framebuffer.removeColorBuffer(0),e.drawBuffers([e.NONE]);t.textures[t.readIndex][0].deactivate()},e.detachBuffers=()=&gt;{const e=t.context,n=t.framebuffer;n.removeColorBuffer(0),n.removeColorBuffer(1),e.drawBuffers([e.NONE]);const r=t.textures[t.readIndex],o=t.textures[1-t.readIndex];r[0]&amp;&amp;r[0].deactivate(),r[1]&amp;&amp;r[1].deactivate(),o[0]&amp;&amp;o[0].deactivate(),o[1]&amp;&amp;o[1].deactivate(),t.eeTexture&amp;&amp;t.eeTexture.deactivate(),t.noiseTexture&amp;&amp;t.noiseTexture.deactivate()},e.getWriteIndex=()=&gt;1-t.readIndex,e.detachBuffers()):console.error(&quot;Pass renderwindow to ping pong manager&quot;)}const Mg={vectorTexture:null,maskVectorTexture:null,noiseTexture:null,doEEPass:!1,doVTPass:!1,readIndex:0,quad:null,lastProgramHash:null,framebuffer:null,size:null,pingTextures:[],pongTextures:[],textures:[]};function Dg(e,t,n={}){Object.assign(t,Mg,n),sn.obj(e,t),sn.get(e,t,[&quot;readIndex&quot;]),sn.setGet(e,t,[&quot;doEEPass&quot;,&quot;doVTPass&quot;,&quot;_openGLRenderWindow&quot;,&quot;vectorTexture&quot;,&quot;maskVectorTexture&quot;,&quot;noiseTexture&quot;,&quot;framebuffer&quot;,&quot;size&quot;]),sn.moveToProtected(e,t,[&quot;openGLRenderWindow&quot;]),Rg(e,t)}var Eg={newInstance:sn.newInstance(Dg,&quot;vtkLICPingPongBufferManager&quot;),extend:Dg};const Vg=0,Lg=1,Bg=2,Fg=3,Ng=1;const kg={shadersNeedBuild:!0,stepSize:1,numberOfSteps:10,enhancedLIC:!0,enhanceContrast:!1,lowContrastEnhancementFactor:0,highContrastEnhancementFactor:0,antiAlias:0,componentIds:[0,1],normalizeVectors:!0,maskThreshold:0,transformVectors:!0,bufs:null,isComposite:!0};function Gg(e,t,n={}){Object.assign(t,kg,n),sn.obj(e,t),sn.setGet(e,t,[&quot;context&quot;,&quot;_openGLRenderWindow&quot;,&quot;nuberOfSteps&quot;,&quot;stepSize&quot;,&quot;normalizeVectors&quot;,&quot;maskThreshold&quot;,&quot;enhancedLIC&quot;,&quot;enhanceContrast&quot;,&quot;lowLICContrastEnhancementFactor&quot;,&quot;highLICContrastEnhancementFactor&quot;,&quot;antiAlias&quot;,&quot;componentIds&quot;,&quot;isComposite&quot;]),sn.moveToProtected(e,t,[&quot;openGLRenderWindow&quot;]),function(e,t){function n(e,t){e.setUniformi(&quot;texLIC&quot;,t.getLICTextureUnit()),e.setUniformi(&quot;texSeedPts&quot;,t.getSeedTextureUnit())}function r(e,t,n){e.attachLICBuffers(),e.renderQuad(t,n),e.detachLICBuffers(),e.swap()}t.classHierarchy.push(&quot;vtkLineIntegralConvolution2D&quot;),e.buildAShader=e=&gt;t._openGLRenderWindow.getShaderCache().readyShaderProgramArray(Pg,e,&quot;&quot;),e.dumpTextureValues=(e,[n,r],o=t.context,a=t._openGLRenderWindow,i=4)=&gt;{const s=Gp.newInstance(),l=o;let c=null;return s.setOpenGLRenderWindow(a),s.saveCurrentBindingsAndBuffers(),s.create(n,r),s.populateFramebuffer(),s.setColorBuffer(e),c=new Float32Array(n*r*i),l.readPixels(0,0,n,r,4===i?l.RGBA:l.RGB,l.FLOAT,c),s.restorePreviousBindingsAndBuffers(),c},e.getTextureMinMax=(n,r,o=t.context,a=t._openGLRenderWindow)=&gt;{const i=e.dumpTextureValues(n,r,o,a,4);let s=Number.MAX_VALUE,l=Number.MIN_VALUE;for(let e=0;e&lt;i.length;e+=4)if(0===i[e+1]){const t=i[e];t&lt;s&amp;&amp;(s=t),t&gt;l&amp;&amp;(l=t)}return{min:s,max:l}},e.getComponentSelectionProgram=e=&gt;{const t=&quot;xyzw&quot;;return`.${t[e[0]]}${t[e[1]]}`},e.buildShaders=()=&gt;{t.LIC0ShaderProgram=e.buildAShader(&quot;//VTK::System::Dec\\n\\n//=========================================================================\\n//\\n//  Program:   Visualization Toolkit\\n//  Module:    vtkLineIntegralConvolution2D_LIC0.glsl\\n//\\n//  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n//  All rights reserved.\\n//  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n//\\n//     This software is distributed WITHOUT ANY WARRANTY; without even\\n//     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n//     PURPOSE.  See the above copyright notice for more information.\\n//\\n//=========================================================================\\n\\n/**\\nThis shader initializes the convolution for the LIC computation.\\n*/\\n\\n// the output of this shader\\nlayout(location = 0) out vec4 LICOutput;\\nlayout(location = 1) out vec4 SeedOutput;\\n\\nuniform sampler2D texMaskVectors;\\nuniform sampler2D texNoise;\\nuniform sampler2D texLIC;\\n\\nuniform int   uStepNo;         // in step 0 initialize lic and seeds, else just seeds\\nuniform int   uPassNo;         // in pass 1 hpf of pass 0 is convolved.\\nuniform float uMaskThreshold;  // if |V| &lt; uMaskThreshold render transparent\\nuniform vec2  uNoiseBoundsPt1; // tc of upper right pt of noise texture\\n\\nin vec2 tcoordVC;\\n\\n// convert from vector coordinate space to noise coordinate space.\\n// the noise texture is tiled across the *whole* domain\\nvec2 VectorTCToNoiseTC(vec2 vectc)\\n{\\n  return vectc/uNoiseBoundsPt1;\\n}\\n\\n// get the texture coordidnate to lookup noise value. this\\n// depends on the pass number.\\nvec2 getNoiseTC(vec2 vectc)\\n{\\n  // in pass 1 : convert from vector tc to noise tc\\n  // in pass 2 : use vector tc\\n  if (uPassNo == 0)\\n    {\\n    return VectorTCToNoiseTC(vectc);\\n    }\\n  else\\n    {\\n    return vectc;\\n    }\\n}\\n\\n// look up noise value at the given location. The location\\n// is supplied in vector texture coordinates, hence the\\n// need to convert to noise texture coordinates.\\nfloat getNoise(vec2 vectc)\\n{\\n  return texture2D(texNoise, getNoiseTC(vectc)).r;\\n}\\n\\nvoid main(void)\\n{\\n  vec2 vectc = tcoordVC.st;\\n\\n  // lic =&gt; (convolution, mask, 0, step count)\\n  if (uStepNo == 0)\\n    {\\n    float maskCriteria = length(texture2D(texMaskVectors, vectc).xyz);\\n    float maskFlag;\\n    if (maskCriteria &lt;= uMaskThreshold)\\n      {\\n      maskFlag = 1.0;\\n      }\\n    else\\n      {\\n      maskFlag = 0.0;\\n      }\\n    float noise = getNoise(vectc);\\n    LICOutput = vec4(noise, maskFlag, 0.0, 1.0);\\n    }\\n  else\\n    {\\n    LICOutput = texture2D(texLIC, vectc);\\n    }\\n\\n  // initial seed\\n  SeedOutput = vec4(vectc, 0.0, 1.0);\\n}\\n&quot;);const n=vd.substitute(&quot;//VTK::System::Dec\\n\\n//=========================================================================\\n//\\n//  Program:   Visualization Toolkit\\n//  Module:    vtkLineIntegralConvolution2D_VT.glsl\\n//\\n//  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n//  All rights reserved.\\n//  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n//\\n//     This software is distributed WITHOUT ANY WARRANTY; without even\\n//     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n//     PURPOSE.  See the above copyright notice for more information.\\n//\\n//=========================================================================\\n\\n// move vector field to normalized image space\\n// pre-processing for vtkLineIntegralConvolution2D\\n\\n// the output of this shader\\n//VTK::Output::Dec\\n\\n// Fragment shader used by the gaussian blur filter render pass.\\n\\nuniform sampler2D texVectors; // input texture\\nuniform vec2      uTexSize;   // size of texture\\n\\nin vec2 tcoordVC;\\n\\nvoid main(void)\\n{\\n  //VTK::LICComponentSelection::Impl\\n  V = V/uTexSize;\\n  gl_FragData[0] = vec4(V, 0.0, 1.0);\\n}\\n&quot;,&quot;//VTK::LICComponentSelection::Impl&quot;,`vec2 V = texture2D(texVectors, tcoordVC.st)${e.getComponentSelectionProgram(t.componentIds)};`).result;t.VTProgram=e.buildAShader(n);const r=vd.substitute(&quot;//VTK::System::Dec\\n\\n//=========================================================================\\n//\\n//  Program:   Visualization Toolkit\\n//  Module:    vtkLineIntegralConvolution2D_fs1.glsl\\n//\\n//  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n//  All rights reserved.\\n//  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n//\\n//     This software is distributed WITHOUT ANY WARRANTY; without even\\n//     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n//     PURPOSE.  See the above copyright notice for more information.\\n//\\n//=========================================================================\\n\\n// the output of this shader\\nlayout(location = 0) out vec4 LICOutput;\\nlayout(location = 1) out vec4 SeedOutput;\\n\\nuniform sampler2D  texVectors;\\nuniform sampler2D  texNoise;\\nuniform sampler2D  texLIC;\\nuniform sampler2D  texSeedPts;\\n\\nuniform int   uPassNo;          // in pass 1 hpf of pass 0 is convolved.\\nuniform float uStepSize;        // step size in parametric space\\n\\nuniform vec2  uNoiseBoundsPt1;  // tc of upper right pt of noise texture\\n\\nin vec2 tcoordVC;\\n\\n//VTK::LICVectorLookup::Impl\\n\\n// We need to do this manually since CLAMP_TO_BORDER and and borderColor\\n// are very poorly supported in webgl\\nvec2 clampToBorder(vec2 uv){\\n  if(uv.x &lt; 0.0 || uv.x &gt; 1.0 || uv.y &lt; 0.0 || uv.y &gt; 1.0)\\n  {\\n    return vec2(0.0, 0.0);\\n  }\\n  return getVector(uv);\\n}\\n\\n// convert from vector coordinate space to noise coordinate space.\\n// the noise texture is tiled across the whole domain\\nvec2 VectorTCToNoiseTC(vec2 vectc)\\n{\\n  return vectc/uNoiseBoundsPt1;\\n}\\n\\n// get the texture coordidnate to lookup noise value.\\n// in pass 1 repeatedly tile the noise texture across\\n// the computational domain.\\nvec2 getNoiseTC(vec2 tc)\\n{\\n  if (uPassNo == 0)\\n    {\\n    return VectorTCToNoiseTC(tc);\\n    }\\n  else\\n    {\\n    return tc;\\n    }\\n}\\n\\n// look up noise value at the given location. The location\\n// is supplied in vector texture coordinates, hence the need\\n// to convert to either noise or lic texture coordinates in\\n// pass 1 and 2 respectively.\\nfloat getNoise(vec2 vectc)\\n{\\n  return texture2D(texNoise, getNoiseTC(vectc)).r;\\n}\\n\\n// fourth-order Runge-Kutta streamline integration\\n// no bounds checks are made, therefore it&#x27;s essential\\n// to have the entire texture initialized to 0\\n// and set clamp to border and have border color 0\\n// an integer is set if the step was taken, keeping\\n// an accurate step count is necessary to prevent\\n// boundary artifacts. Don&#x27;t count the step if\\n// all vector lookups are identically 0. This is\\n// a proxy for \\&quot;stepped outside valid domain\\&quot;\\nvec2 rk4(vec2 pt0, float dt, out bool count)\\n{\\n  count=true;\\n  float dtHalf = dt * 0.5;\\n  vec2 pt1;\\n\\n  vec2 v0 = clampToBorder(pt0);\\n  pt1 = pt0 + v0 * dtHalf;\\n\\n  vec2 v1 = clampToBorder(pt1);\\n  pt1 = pt0 + v1 * dtHalf;\\n\\n  vec2 v2 = clampToBorder(pt1);\\n  pt1 = pt0 + v2 * dt;\\n\\n  vec2 v3 = clampToBorder(pt1);\\n  vec2 vSum = v0 + v1 + v1 + v2 + v2 + v3;\\n\\n  if (vSum == vec2(0.0, 0.0))\\n    {\\n      count = false;\\n    }\\n\\n  pt1 = pt0 + (vSum) * (dt * (1.0/6.0));\\n\\n return pt1;\\n}\\n\\nvoid main(void)\\n{\\n  vec2 lictc = tcoordVC.st;\\n  vec4 lic = texture2D(texLIC, lictc);\\n  vec2 pt0 = texture2D(texSeedPts, lictc).st;\\n\\n  bool count;\\n  vec2 pt1 = rk4(pt0, uStepSize, count);\\n\\n  if (count)\\n    {\\n    // accumulate lic step\\n    // (lic, mask, 0, step count)\\n    float noise = getNoise(pt1);\\n    LICOutput = vec4(lic.r + noise, lic.g, 0.0, lic.a + 1.0);\\n    SeedOutput = vec4(pt1, 0.0, 1.0);\\n    }\\n  else\\n    {\\n    // keep existing values\\n    LICOutput = lic;\\n    SeedOutput = vec4(pt0, 0.0, 1.0);\\n    }\\n}\\n&quot;,&quot;//VTK::LICVectorLookup::Impl&quot;,function(e=!0){return e?&quot;\\n    vec2 getVector( vec2 vectc )\\n\\n      {\\n\\n      vec2 V = texture2D( texVectors, vectc ).xy;\\n\\n      // normalize if |V| not 0\\n\\n      float lenV = length( V );\\n\\n      if ( lenV &gt; 1.0e-8 )\\n\\n        {\\n\\n        return V/lenV;\\n\\n        }\\n\\n      else\\n\\n        {\\n\\n        return vec2( 0.0, 0.0 );\\n\\n        }\\n\\n      }\\n\\n    &quot;:&quot;\\n    vec2 getVector( vec2 vectc )\\n\\n      {\\n\\n      return texture2D( texVectors, vectc ).xy;\\n\\n      }\\n\\n    &quot;}(t.normalizeVectors),!0).result;t.LICIShaderProgram=e.buildAShader(r),t.LICNShaderProgram=e.buildAShader(&quot; //VTK::System::Dec\\n\\n//=========================================================================\\n//\\n//  Program:   Visualization Toolkit\\n//  Module:    vtkLineIntegralConvolution2D_LICN.glsl\\n//\\n//  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n//  All rights reserved.\\n//  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n//\\n//     This software is distributed WITHOUT ANY WARRANTY; without even\\n//     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n//     PURPOSE.  See the above copyright notice for more information.\\n//\\n//=========================================================================\\n\\n// the output of this shader\\nlayout(location = 0) out vec4 LICOutput;\\nlayout(location = 1) out vec4 SeedOutput;\\n\\n/**\\nThis shader finalizes the convolution for the LIC computation\\napplying the normalization. eg. if box kernel is used the this\\nis the number of steps taken.\\n*/\\n\\nuniform sampler2D texLIC;\\n\\nin vec2 tcoordVC;\\n\\nvoid main(void)\\n{\\n  vec4 conv = texture2D(texLIC, tcoordVC.st);\\n  conv.r = conv.r/conv.a;\\n  // lic =&gt; (convolution, mask, 0, 1)\\n  LICOutput = vec4(conv.rg , 0.0, 1.0);\\n  SeedOutput = vec4(0.0, 0.0, 0.0, 0.0);\\n}\\n&quot;),t.CEProgram=e.buildAShader(&quot;//VTK::System::Dec\\n\\n//=========================================================================\\n//\\n//  Program:   Visualization Toolkit\\n//  Module:    vtkLineIntegralConvolution2D_CE.glsl\\n//\\n//  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n//  All rights reserved.\\n//  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n//\\n//     This software is distributed WITHOUT ANY WARRANTY; without even\\n//     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n//     PURPOSE.  See the above copyright notice for more information.\\n//\\n//=========================================================================\\n\\n// gray scale contrast enhance stage implemented via histogram stretching\\n// if the min and max are tweaked it can generate out-of-range values\\n// these will be clamped in 0 to 1\\n\\n// the output of this shader\\nlayout(location = 0) out vec4 LICOutput;\\nlayout(location = 1) out vec4 SeedOutput;\\n\\n\\nuniform sampler2D texLIC;  // most recent lic pass\\nuniform float uMin;        // min gray scale color value\\nuniform float uMaxMinDiff; // max-min\\n\\nin vec2 tcoordVC;\\n\\nvoid main( void )\\n{\\n  vec4 lic = texture2D(texLIC, tcoordVC.st);\\n  if (lic.g!=0.0)\\n    {\\n    LICOutput = lic;\\n    }\\n  else\\n    {\\n    float CElic = clamp((lic.r - uMin)/uMaxMinDiff, 0.0, 1.0);\\n    LICOutput = vec4(CElic, lic.gb, 1.0);\\n    }\\n    SeedOutput = vec4(0.0, 0.0, 0.0, 0.0);\\n}\\n&quot;),t.EEProgram=e.buildAShader(&quot;//VTK::System::Dec\\n\\n//=========================================================================\\n//\\n//  Program:   Visualization Toolkit\\n//  Module:    vtkLineIntegralConvolution2D_fs2.glsl\\n//\\n//  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n//  All rights reserved.\\n//  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n//\\n//     This software is distributed WITHOUT ANY WARRANTY; without even\\n//     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n//     PURPOSE.  See the above copyright notice for more information.\\n//\\n//=========================================================================\\n\\n// high-pass filter stage employed by vtkLineIntegralConvolution2D\\n// between LIC pass 1 and LIC pass 2. filtered LIC pass 1, becomes\\n// noise for pass2.\\n\\n// the output of this shader\\nlayout(location = 0) out vec4 EEOutput;\\n\\nuniform sampler2D texLIC; // most recent lic pass\\nuniform float     uDx;    // fragment size\\nuniform float     uDy;    // fragment size\\n\\nin vec2 tcoordVC;\\n\\n// kernel for simple laplace edge enhancement.\\n// p=Laplace(p)+p\\nfloat K[9] = float[9](\\n  -1.0, -1.0, -1.0,\\n  -1.0,  9.0, -1.0,\\n  -1.0, -1.0, -1.0\\n  );\\n\\n// determine if the fragment was masked\\nbool Masked(float val) { return val != 0.0; }\\n\\nvoid main(void)\\n{\\n  // tex coord neighbor offsets\\n  vec2 fragDx[9] = vec2[9](\\n    vec2(-uDx, uDy), vec2(0.0, uDy), vec2(uDx, uDy),\\n    vec2(-uDx, 0.0), vec2(0.0, 0.0), vec2(uDx, 0.0),\\n    vec2(-uDx,-uDy), vec2(0.0,-uDy), vec2(uDx,-uDy)\\n    );\\n\\n  vec2 lictc = tcoordVC.st;\\n\\n  // compute the convolution but don&#x27;t use convovled values if\\n  // any masked fragments on the stencil. Fragments outside\\n  // the valid domain are masked during initialization, and\\n  // texture wrap parameters are clamp to border with border\\n  // color that contains masked flag\\n  float conv = 0.0;\\n  bool dontUse = false;\\n  for (int i=0; i&lt;9; ++i)\\n    {\\n    vec2 tc = lictc + fragDx[i];\\n    vec4 lic = texture2D(texLIC, tc);\\n    dontUse = dontUse || Masked(lic.g);\\n    conv = conv + K[i] * lic.r;\\n    }\\n\\n  if (dontUse)\\n    {\\n    EEOutput = vec4(texture2D(texLIC, lictc).rg, 0.0, 1.0);\\n    }\\n  else\\n    {\\n    conv = clamp(conv, 0.0, 1.0);\\n    EEOutput = vec4(conv,texture2D(texLIC, lictc).g, 0.0, 1.0);\\n    }\\n\\n}\\n&quot;),t.AAHProgram=e.buildAShader(&quot;//VTK::System::Dec\\n\\n//=========================================================================\\n//\\n//  Program:   Visualization Toolkit\\n//  Module:    vtkLineIntegralConvolution2D_AAH.glsl\\n//\\n//  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n//  All rights reserved.\\n//  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n//\\n//     This software is distributed WITHOUT ANY WARRANTY; without even\\n//     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n//     PURPOSE.  See the above copyright notice for more information.\\n//\\n//=========================================================================\\n\\n// Anti-alias stage in vtkLineIntegralConvolution2D\\n// horizontal pass of a Gaussian convolution\\n\\n// the output of this shader\\nlayout(location = 0) out vec4 LICOutput;\\nlayout(location = 1) out vec4 SeedOutput;\\n\\nuniform sampler2D texLIC; // input texture\\nuniform float     uDx;    // fragment size\\n\\nin vec2 tcoordVC;\\n\\n// factored 3x3 Gaussian kernel\\n// K^T*K = G\\nfloat K[3] = float[3](0.141421356, 0.707106781, 0.141421356);\\n\\n// determine if the fragment was masked\\nbool Masked(float val){ return val != 0.0; }\\n\\nvoid main(void)\\n{\\n// neighbor offsets\\nvec2 fragDx[3] = vec2[3](vec2(-uDx,0.0), vec2(0.0,0.0), vec2(uDx,0.0));\\n\\n  vec2 lictc = tcoordVC.st;\\n  vec4 lic[3];\\n  bool dontUse = false;\\n  float conv = 0.0;\\n  for (int i=0; i&lt;3; ++i)\\n    {\\n    vec2 tc = lictc + fragDx[i];\\n    lic[i] = texture2D(texLIC, tc);\\n    dontUse = dontUse || Masked(lic[i].g);\\n    conv = conv + K[i] * lic[i].r;\\n    }\\n  // output is (conv, mask, skip, 1)\\n  if (dontUse)\\n    {\\n    LICOutput = vec4(lic[1].rg, 1.0, 1.0);\\n    }\\n  else\\n    {\\n    LICOutput = vec4(conv, lic[1].gb, 1.0);\\n    }\\n  SeedOutput = vec4(0.0, 0.0, 0.0, 0.0);\\n}\\n&quot;),t.AAVProgram=e.buildAShader(&quot;//VTK::System::Dec\\n\\n//=========================================================================\\n//\\n//  Program:   Visualization Toolkit\\n//  Module:    vtkLineIntegralConvolution2D_AAV.glsl\\n//\\n//  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n//  All rights reserved.\\n//  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n//\\n//     This software is distributed WITHOUT ANY WARRANTY; without even\\n//     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n//     PURPOSE.  See the above copyright notice for more information.\\n//\\n//=========================================================================\\n\\n// Anti-alias stage in vtkLineIntegralConvolution2D\\n// vertical pass of a Gaussian convolution\\n\\n// the output of this shader\\nlayout(location = 0) out vec4 LICOutput;\\nlayout(location = 1) out vec4 SeedOutput;\\n\\nuniform sampler2D texLIC; // input texture\\nuniform float     uDy;    // fragment size\\n\\nin vec2 tcoordVC;\\n\\n\\n// factored 3x3 Gaussian kernel\\n// K^T*K = G\\nfloat K[3] = float[3](0.141421356, 0.707106781, 0.141421356);\\n\\n// determine if the fragment was masked\\nbool Masked(float val){ return val != 0.0; }\\n\\nvoid main(void)\\n{\\n// neighbor offsets\\nvec2 fragDy[3] = vec2[3](vec2(0.0,-uDy), vec2(0.0,0.0), vec2(0.0,uDy));\\n\\n\\n  vec2 lictc = tcoordVC.st;\\n  vec4 lic[3];\\n  bool dontUse = false;\\n  float conv = 0.0;\\n  for (int i=0; i&lt;3; ++i)\\n    {\\n    vec2 tc = lictc + fragDy[i];\\n    lic[i] = texture2D(texLIC, tc);\\n    dontUse = dontUse || Masked(lic[i].g);\\n    conv = conv + K[i] * lic[i].r;\\n    }\\n  // output is (conv, mask, skip, 1)\\n  if (dontUse)\\n    {\\n    LICOutput = vec4(lic[1].rg, 1.0, 1.0);\\n    }\\n  else\\n    {\\n    LICOutput = vec4(conv, lic[1].gb, 1.0);\\n    }\\n  SeedOutput = vec4(0.0, 0.0, 0.0, 0.0);\\n}\\n&quot;)},e.executeLIC=(o,a,i,s,l,c)=&gt;{if(t._openGLRenderWindow=l,t.context=l.getContext(),Object.assign(t,c),o[0]&lt;=0||o[1]&lt;=0)return null;const u=[1/o[0],1/o[1]];let d=t.stepSize*Math.sqrt(u[0]*u[0]+u[1]*u[1]);d&lt;=0&amp;&amp;(d=1e-10);const p=t.context;let f=t.framebuffer;const g=f?.getSize();f&amp;&amp;g&amp;&amp;o[0]===g&amp;&amp;o[1]===g||(f=Gp.newInstance(),f.setOpenGLRenderWindow(t._openGLRenderWindow),f.saveCurrentBindingsAndBuffers(),f.create(...o),f.populateFramebuffer(),f.restorePreviousBindingsAndBuffers(),t.framebuffer=f),f.saveCurrentBindingsAndBuffers(),f.bind(),p.viewport(0,0,...o),p.scissor(0,0,...o),t.shadersNeedBuild&amp;&amp;(e.buildShaders(),t.shadersNeedBuild=!1),t.bufs?(t.bufs.setVectorTexture(a),t.bufs.setMaskVectorTexture(i),t.bufs.setNoiseTexture(s)):t.bufs=Eg.newInstance({openGLRenderWindow:l,doEEPass:t.enhancedLIC,doVTPass:t.transformVectors,vectorTexture:a,maskVectorTexture:i,noiseTexture:s,framebuffer:f,size:o});const m=[(s.getWidth()+1)/o[0],(s.getHeight()+1)/o[1]],h=1/o[0],v=1/o[1],T=t._openGLRenderWindow.getShaderCache();if(t.transformVectors){const e=t.VTProgram;T.readyShaderProgram(e),t.bufs.attachImageVectorBuffer(),e.setUniform2f(&quot;uTexSize&quot;,...o),e.setUniformi(&quot;texVectors&quot;,t.bufs.getVectorTextureUnit()),p.clearColor(0,0,0,0),p.clear(p.COLOR_BUFFER_BIT),t.bufs.renderQuad(o,e),t.bufs.detachImageVectorBuffer()}t.bufs.clearBuffers(t.enhancedLIC),t.bufs.activateVectorTextures(),t.bufs.activateNoiseTexture(0);const{LIC0ShaderProgram:x}=t;T.readyShaderProgram(x),x.setUniformi(&quot;uStepNo&quot;,0),x.setUniformi(&quot;uPassNo&quot;,0),x.setUniformf(&quot;uMaskThreshold&quot;,t.maskThreshold),x.setUniform2f(&quot;uNoiseBoundsPt1&quot;,...m),x.setUniformi(&quot;texMaskVectors&quot;,t.bufs.getMaskVectorTextureUnit()),x.setUniformi(&quot;texLIC&quot;,t.bufs.getLICTextureUnit()),x.setUniformi(&quot;texNoise&quot;,t.bufs.getNoiseTextureUnit(0)),r(t.bufs,o,x);const{LICIShaderProgram:y}=t;T.readyShaderProgram(y),y.setUniformi(&quot;uPassNo&quot;,0),y.setUniformf(&quot;uStepSize&quot;,-d),y.setUniform2f(&quot;uNoiseBoundsPt1&quot;,...m),y.setUniformi(&quot;texVectors&quot;,t.bufs.getImageVectorTextureUnit()),y.setUniformi(&quot;texNoise&quot;,t.bufs.getNoiseTextureUnit(0));for(let e=0;e&lt;t.numberOfSteps;++e)n(y,t.bufs),r(t.bufs,o,y);T.readyShaderProgram(x),x.setUniformi(&quot;uStepNo&quot;,1),n(x,t.bufs),r(t.bufs,o,x),T.readyShaderProgram(y),y.setUniformf(&quot;uStepSize&quot;,d);for(let e=0;e&lt;t.numberOfSteps;++e)n(y,t.bufs),r(t.bufs,o,y);t.bufs.deactivateNoiseTexture(0),t.bufs.deactivateVectorTextures();const{LICNShaderProgram:b}=t;if(T.readyShaderProgram(b),b.setUniformi(&quot;texLIC&quot;,t.bufs.getLICTextureUnit()),r(t.bufs,o,b),t.enhancedLIC){t.enhanceContrast!==Lg&amp;&amp;t.enhanceContrast!==Fg||e.contrastEnhance(!1,o),t.bufs.attachEEBuffer();const{EEProgram:a}=t;T.readyShaderProgram(a),a.setUniformi(&quot;texLIC&quot;,t.bufs.getLICTextureUnit()),a.setUniformf(&quot;uDx&quot;,h),a.setUniformf(&quot;uDy&quot;,v),t.bufs.renderQuad(o,a),t.bufs.detachEEBuffer(),t.bufs.detachBuffers(),t.bufs.clearBuffers(!1),t.bufs.activateVectorTextures(),t.bufs.activateNoiseTexture(1),T.readyShaderProgram(x),x.setUniformi(&quot;uStepNo&quot;,0),x.setUniformi(&quot;uPassNo&quot;,1),n(x,t.bufs),x.setUniformi(&quot;texNoise&quot;,t.bufs.getNoiseTextureUnit(1)),r(t.bufs,o,x),T.readyShaderProgram(y),y.setUniformi(&quot;uPassNo&quot;,1),y.setUniformf(&quot;uStepSize&quot;,-d),y.setUniformi(&quot;texNoise&quot;,t.bufs.getNoiseTextureUnit(1));const i=t.numberOfSteps/2;for(let e=0;e&lt;i;++e)n(y,t.bufs),r(t.bufs,o,y);T.readyShaderProgram(x),x.setUniformi(&quot;uStepNo&quot;,1),n(x,t.bufs),r(t.bufs,o,x),T.readyShaderProgram(y),y.setUniformf(&quot;uStepSize&quot;,d);for(let e=0;e&lt;i;++e)n(y,t.bufs),r(t.bufs,o,y);t.bufs.deactivateNoiseTexture(1),t.bufs.deactivateVectorTextures(),T.readyShaderProgram(b),b.setUniformi(&quot;texLIC&quot;,t.bufs.getLICTextureUnit()),b.setUniformi(&quot;texSeedPts&quot;,t.bufs.getSeedTextureUnit()),r(t.bufs,o,b)}if(t.antiAlias){const e=t.AAHProgram;T.readyShaderProgram(e),e.setUniformi(&quot;texLIC&quot;,t.bufs.getLICTextureUnit()),e.setUniformf(&quot;uDx&quot;,h);const a=t.AAVProgram;T.readyShaderProgram(a),a.setUniformi(&quot;texLIC&quot;,t.bufs.getLICTextureUnit()),a.setUniformf(&quot;uDy&quot;,v);for(let i=0;i&lt;t.antiAlias;++i)T.readyShaderProgram(e),n(e,t.bufs),r(t.bufs,o,e),T.readyShaderProgram(a),n(a,t.bufs),r(t.bufs,o,a)}return t.enhanceContrast!==Lg&amp;&amp;t.enhanceContrast!==Fg||e.contrastEnhance(!0,o),t.bufs.detachBuffers(),f.restorePreviousBindingsAndBuffers(),t.bufs.getLastLICBuffer()},e.contrastEnhance=(n,o)=&gt;{const a=t._openGLRenderWindow.getShaderCache();let{min:i,max:s}=e.getTextureMinMax(t.bufs.getLastLICBuffer(),o,t.context,t._openGLRenderWindow);(s&lt;=i||s&gt;1||i&lt;0)&amp;&amp;(console.error(&quot;Invalid color range: &quot;,i,s),i=0,s=1);let l=s-i;n&amp;&amp;(i+=l*t.lowLICContrastEnhancementFactor,s-=l*t.highLICContrastEnhancementFactor,l=s-i);const{CEProgram:c}=t;a.readyShaderProgram(c),c.setUniformi(&quot;texLIC&quot;,t.bufs.getLICTextureUnit()),c.setUniformf(&quot;uMin&quot;,i),c.setUniformf(&quot;uMaxMinDiff&quot;,l),r(t.bufs,o,c)}}(e,t)}var Ug={newInstance:sn.newInstance(Gg,&quot;vtkLineIntegralConvolution2D&quot;),extend:Gg};const _g={enableLIC:!1,nuberOfSteps:40,stepSize:.25,transformVectors:!0,normalizeVectors:!0,maskOnSurface:!1,maskThreshold:0,maskColor:[0,0,0],maskIntensity:0,enhancedLIC:!0,enhanceContrast:Vg,lowLICContrastEnhancementFactor:0,highLICContrastEnhancementFactor:0,lowColorContrastEnhancementFactor:0,highColorContrastEnhancementFactor:0,antiAlias:0,colorMode:0,LICIntensity:1,mapModeBias:0,noiseTextureSize:200,noiseTextureType:Ng,noiseGrainSize:8,noiseImpulseProbability:.1,noiseImpulseBackgroundValue:0,noiseGeneratorSeed:0,minNoiseValue:0,maxNoiseValue:1,numberOfNoiseLevels:2,shadersNeedBuilding:!0,reallocateTextures:!0,rebuildNoiseTexture:!1,viewPortScale:1};function Kg(e,t,n={}){Object.assign(t,_g,n),sn.obj(e,t),sn.setGet(e,t,[&quot;enableLIC&quot;,&quot;numberOfSteps&quot;,&quot;stepSize&quot;,&quot;normalizeVectors&quot;,&quot;transformVectors&quot;,&quot;maskOnSurface&quot;,&quot;maskThreshold&quot;,&quot;maskColor&quot;,&quot;maskIntensity&quot;,&quot;enhancedLIC&quot;,&quot;enhanceContrast&quot;,&quot;lowLICContrastEnhancementFactor&quot;,&quot;highLICContrastEnhancementFactor&quot;,&quot;lowColorContrastEnhancementFactor&quot;,&quot;highColorContrastEnhancementFactor&quot;,&quot;antiAlias&quot;,&quot;colorMode&quot;,&quot;LICIntensity&quot;,&quot;mapModeBias&quot;,&quot;noiseTextureSize&quot;,&quot;noiseTextureType&quot;,&quot;noiseGrainSize&quot;,&quot;minNoiseValue&quot;,&quot;maxNoiseValue&quot;,&quot;numberOfNoiseLevels&quot;,&quot;noiseImpulseProbability&quot;,&quot;noiseImpulseBackgroundValue&quot;,&quot;noiseGeneratorSeed&quot;,&quot;viewPortScale&quot;,&quot;rebuildNoiseTexture&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkSurfaceLICInterface&quot;)}(0,t)}var zg={newInstance:sn.newInstance(Kg,&quot;vtkSurfaceLICInterface&quot;),extend:Kg};const{Representation:Wg}=us;function Hg(e,t){t.classHierarchy.push(&quot;vtkOpenGLSurfaceLICInterface&quot;),e.renderQuad=(e,n)=&gt;{const r=t.licQuad,o=t.context;let a=t.licQuadVAO;a||(a=yd.newInstance(),a.setOpenGLRenderWindow(t._openGLRenderWindow),t.licQuadVAO=a),t.previousProgramHash!==n.getMd5Hash()&amp;&amp;(a.shaderProgramChanged(),r.getCABO().bind(),a.addAttributeArray(n,r.getCABO(),&quot;vertexDC&quot;,r.getCABO().getVertexOffset(),r.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE),a.addAttributeArray(n,r.getCABO(),&quot;tcoordDC&quot;,r.getCABO().getTCoordOffset(),r.getCABO().getStride(),t.context.FLOAT,2,t.context.FALSE),t.previousProgramHash=n.getMd5Hash()),o.drawArrays(o.TRIANGLES,0,r.getCABO().getElementCount()),a.release()},e.generateNoiseTexture=e=&gt;{if(!t.noiseTexture||t.licInterface.getRebuildNoiseTexture()){t.licInterface.setRebuildNoiseTexture(!1),t.noiseTexture&amp;&amp;t.noiseTexture.releaseGraphicsResources(),mo(t.noiseGeneratorSeed,{global:!0});let n=[];const{noiseTextureType:r,noiseGrainSize:o,numberOfNoiseLevels:a,noiseImpulseProbability:i,noiseImpulseBackgroundValue:s,minNoiseValue:l,maxNoiseValue:c}=t.licInterface.get(&quot;noiseTextureType&quot;,&quot;noiseGrainSize&quot;,&quot;numberOfNoiseLevels&quot;,&quot;noiseImpulseProbability&quot;,&quot;noiseImpulseBackgroundValue&quot;,&quot;minNoiseValue&quot;,&quot;maxNoiseValue&quot;);if(r===Ng)n=function(e,t,n,r,o,a){const i=Math.max(0,Math.min(1,n)),s=Float32Array.from({length:e*e},(()=&gt;{let e=0;if(1===i||Math.random()&gt;1-i)for(let t=0;t&lt;2048;++t)e+=Math.random();return e}));let l=0,c=2049;s.forEach((e=&gt;{c=1===i?e&lt;c?e:c:e&lt;c&amp;&amp;e&gt;0?e:c,l=e&gt;l?e:l}));let u=l-c;0===u&amp;&amp;(c=0,u=0===l?1:l);const d=t-1,p=0!==d?1/d:0,f=a-o;return s.map((e=&gt;{const n=e&lt;c?e:(e-c)/u,i=Math.floor(n*t);return e&gt;=c?1===t?a:o+(i&gt;d?d:i)*p*f:r}))}(Math.floor(e/o),a,i,s,l,c);else n=function([e,t],n,r,o){const a=o-r;return Float32Array.from({length:e*t},(()=&gt;{let e=Math.random();return e=Math.floor(e*n)/n,e=e*a+r,e&gt;1?1:e&lt;0?0:e}))}([Math.ceil(e/o),Math.ceil(e/o)],a,l,c);const u=1/o,d=Float32Array.from({length:e*e*4},((t,r)=&gt;{const a=r/4;if(r%4==0){const t=Math.floor(a%e*u),r=Math.floor(a/e*u);return n[r*(e/o)+t]}return r%4==1||r%4==3?1:0})),p=Hd.newInstance({wrapS:Hd.Wrap.REPEAT,wrapT:Hd.Wrap.REPEAT,minificationFilter:Hd.Filter.NEAREST,magnificationFilter:Hd.Filter.NEAREST,generateMipMap:!1,openGLDataType:t.context.FLOAT,baseLevel:0,maxLevel:0,autoParameters:!1});p.setOpenGLRenderWindow(t._openGLRenderWindow),p.create2DFromRaw({width:e,height:e,numComps:4,dataType:&quot;Float32Array&quot;,data:d}),p.activate(),p.sendParameters(),p.deactivate(),t.noiseTexture=p}},e.buildAShader=e=&gt;t._openGLRenderWindow.getShaderCache().readyShaderProgramArray(Pg,e,&quot;&quot;),e.allocateTextures=()=&gt;{const n=Hd.Filter.NEAREST,r=Hd.Filter.LINEAR,o=t._openGLRenderWindow;t.geometryImage||(t.geometryImage=e.allocateTexture(o,n)),t.vectorImage||(t.vectorImage=e.allocateTexture(o,r)),t.maskVectorImage||(t.maskVectorImage=e.allocateTexture(o,r)),t.LICImage||(t.LICImage=e.allocateTexture(o,n)),t.RGBColorImage||(t.RGBColorImage=e.allocateTexture(o,n)),t.HSLColorImage||(t.HSLColorImage=e.allocateTexture(o,n)),t.depthTexture||(t.depthTexture=e.allocateDepthTexture(o))},e.allocateTexture=(e,n)=&gt;{const r=t.context,o=Hd.newInstance({wrapS:Hd.Wrap.CLAMP_TO_EDGE,wrapT:Hd.Wrap.CLAMP_TO_EDGE,minificationFilter:n,magnificationFilter:n,generateMipmap:!1,openGLDataType:r.FLOAT,baseLevel:0,maxLevel:0,autoParameters:!1});return o.setOpenGLRenderWindow(e),o.setInternalFormat(r.RGBA32F),o.create2DFromRaw({width:t.size[0],height:t.size[1],numComps:4,dataType:&quot;Float32Array&quot;,data:null}),o.activate(),o.sendParameters(),o.deactivate(),o},e.allocateDepthTexture=e=&gt;{const n=t.context,r=Hd.newInstance({generateMipmap:!1,openGLDataType:n.FLOAT,autoParameters:!1});return r.setOpenGLRenderWindow(e),r.createDepthFromRaw({width:t.size[0],height:t.size[1],dataType:&quot;Float32Array&quot;,data:null}),r.activate(),r.sendParameters(),r.deactivate(),r},e.createFBO=()=&gt;{if(!t.framebuffer){t.licHelper=null;const e=Gp.newInstance();e.setOpenGLRenderWindow(t._openGLRenderWindow),e.saveCurrentBindingsAndBuffers(),e.create(...t.size),e.populateFramebuffer(),t.framebuffer=e,e.restorePreviousBindingsAndBuffers()}},e.completedGeometry=()=&gt;{const e=t.context,n=t.framebuffer;n.removeColorBuffer(0),n.removeColorBuffer(1),n.removeColorBuffer(2),n.removeDepthBuffer(),e.drawBuffers([e.NONE]),n.restorePreviousBindingsAndBuffers()},e.buildAllShaders=()=&gt;{t.shadersNeedBuilding&amp;&amp;(t.licColorPass=e.buildAShader(&quot;//VTK::System::Dec\\n\\n//=========================================================================\\n//\\n//  Program:   Visualization Toolkit\\n//  Module:    vtkSurfaceLICMapper_fs2.glsl\\n//\\n//  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n//  All rights reserved.\\n//  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n//\\n//     This software is distributed WITHOUT ANY WARRANTY; without even\\n//     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n//     PURPOSE.  See the above copyright notice for more information.\\n//\\n//=========================================================================\\n\\n// This shader combines surface geometry, LIC, and  scalar colors.\\n\\n// the output of this shader\\nlayout(location = 0) out vec4 RGBOutput;\\nlayout(location = 1) out vec4 HSLOutput;\\n\\nuniform sampler2D texVectors;       // vectors, depth\\nuniform sampler2D texGeomColors;    // scalar colors + lighting\\nuniform sampler2D texLIC;           // image lic\\nuniform int       uScalarColorMode; // select between blend, and map shader\\nuniform float     uLICIntensity;    // blend shader: blending factor for lic&#x27;d colors\\nuniform float     uMapBias;         // map shader: adjust the brightness of the result\\nuniform float     uMaskIntensity;   // blending factor for mask color\\nuniform vec3      uMaskColor;       // color for the masked out fragments\\n\\nin vec2 tcoordVC;\\n\\n/**\\nConvert from RGB color space into HSL colorspace.\\n*/\\nvec3 RGBToHSL(vec3 RGB)\\n{\\n  vec3 HSL = vec3(0.0, 0.0, 0.0);\\n\\n  float RGBMin = min(min(RGB.r, RGB.g), RGB.b);\\n  float RGBMax = max(max(RGB.r, RGB.g), RGB.b);\\n  float RGBMaxMinDiff = RGBMax - RGBMin;\\n\\n  HSL.z = (RGBMax + RGBMin) / 2.0;\\n\\n  if (RGBMaxMinDiff == 0.0)\\n    {\\n    // Gray scale\\n    HSL.x = 0.0;\\n    HSL.y = 0.0;\\n    }\\n  else\\n    {\\n    // Color\\n    if (HSL.z &lt; 0.5)\\n      HSL.y = RGBMaxMinDiff / (RGBMax + RGBMin);\\n    else\\n      HSL.y = RGBMaxMinDiff / (2.0 - RGBMax - RGBMin);\\n\\n    float dR\\n      = (((RGBMax - RGB.r) / 6.0) + (RGBMaxMinDiff / 2.0)) / RGBMaxMinDiff;\\n    float dG\\n      = (((RGBMax - RGB.g) / 6.0) + (RGBMaxMinDiff / 2.0)) / RGBMaxMinDiff;\\n    float dB\\n      = (((RGBMax - RGB.b) / 6.0) + (RGBMaxMinDiff / 2.0)) / RGBMaxMinDiff;\\n\\n    if (RGB.r == RGBMax)\\n      HSL.x = dB - dG;\\n    else\\n    if (RGB.g == RGBMax)\\n      HSL.x = (1.0 / 3.0) + dR - dB;\\n    else\\n    if (RGB.b == RGBMax)\\n      HSL.x = (2.0 / 3.0) + dG - dR;\\n\\n    if (HSL.x &lt; 0.0)\\n      HSL.x += 1.0;\\n\\n    if (HSL.x &gt; 1.0)\\n      HSL.x -= 1.0;\\n    }\\n\\n  return HSL;\\n}\\n\\n/**\\nHelper for HSL to RGB conversion.\\n*/\\nfloat Util(float v1, float v2, float vH)\\n{\\n  if (vH &lt; 0.0)\\n    vH += 1.0;\\n\\n  if (vH &gt; 1.0)\\n     vH -= 1.0;\\n\\n  if ((6.0 * vH) &lt; 1.0)\\n    return (v1 + (v2 - v1) * 6.0 * vH);\\n\\n  if ((2.0 * vH) &lt; 1.0)\\n    return (v2);\\n\\n  if ((3.0 * vH) &lt; 2.0)\\n    return (v1 + (v2 - v1) * ((2.0 / 3.0) - vH) * 6.0);\\n\\n  return v1;\\n}\\n\\n/**\\nConvert from HSL space into RGB space.\\n*/\\nvec3 HSLToRGB(vec3 HSL)\\n{\\n  vec3 RGB;\\n  if (HSL.y == 0.0)\\n    {\\n    // Gray\\n    RGB.r = HSL.z;\\n    RGB.g = HSL.z;\\n    RGB.b = HSL.z;\\n    }\\n  else\\n    {\\n    // Chromatic\\n    float v2;\\n    if (HSL.z &lt; 0.5)\\n      v2 = HSL.z * (1.0 + HSL.y);\\n    else\\n      v2 = (HSL.z + HSL.y) - (HSL.y * HSL.z);\\n\\n    float v1 = 2.0 * HSL.z - v2;\\n\\n    RGB.r = Util(v1, v2, HSL.x + (1.0 / 3.0));\\n    RGB.g = Util(v1, v2, HSL.x);\\n    RGB.b = Util(v1, v2, HSL.x - (1.0 / 3.0));\\n    }\\n\\n  return RGB.rgb;\\n}\\n\\nvoid main()\\n{\\n  vec4 lic = texture2D(texLIC, tcoordVC.st);\\n  vec4 geomColor = texture2D(texGeomColors, tcoordVC.st);\\n\\n  // depth is used to determine which fragment belong to us\\n  // and we can change\\n  float depth = texture2D(texVectors, tcoordVC.st).a;\\n\\n  vec3 fragColorRGB;\\n  float valid;\\n  if (depth &gt; 1.0e-3)\\n    {\\n    // we own it\\n    // shade LIC&#x27;ed geometry, or apply mask\\n    if (lic.g!=0.0)\\n      {\\n      // it&#x27;s masked\\n      // apply fragment mask\\n      fragColorRGB = uMaskIntensity * uMaskColor + (1.0 - uMaskIntensity) * geomColor.rgb;\\n      valid = 0.0;\\n      }\\n    else\\n      {\\n      if (uScalarColorMode==0)\\n        {\\n        // blend with scalars\\n        fragColorRGB = lic.rrr * uLICIntensity + geomColor.rgb * (1.0 - uLICIntensity);\\n        }\\n      else\\n        {\\n        // multiply with scalars\\n        fragColorRGB = geomColor.rgb * clamp((uMapBias + lic.r), 0.0, 1.0);\\n        }\\n      if (lic.b != 0.0)\\n        {\\n        // didn&#x27;t have the required guard pixels\\n        // don&#x27;t consider it in min max estimation\\n        // for histpgram stretching\\n        valid = 0.0;\\n        }\\n      else\\n        {\\n        // ok to use in min/max estimates for histogram\\n        // stretching\\n        valid = 1.0;\\n        }\\n      }\\n    }\\n  else\\n    {\\n    // we don&#x27;t own it\\n    // pass through scalars\\n    fragColorRGB = geomColor.rgb;\\n    valid = 0.0;\\n    }\\n\\n  // if no further stages this texture is\\n  // copied to the screen\\n  RGBOutput = vec4(fragColorRGB, geomColor.a);\\n\\n  // if further stages, move to hsl space for contrast\\n  // enhancement. encoding validity saves moving a texture to the cpu\\n  vec3 fragColorHSL = RGBToHSL(fragColorRGB);\\n  HSLOutput = vec4(fragColorHSL, valid);\\n}\\n&quot;),t.licCopyPass=e.buildAShader(&quot;//VTK::System::Dec\\n\\n//=========================================================================\\n//\\n//  Program:   Visualization Toolkit\\n//  Module:    vtkSurfaceLICMapper_DCpy.glsl\\n//\\n//  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n//  All rights reserved.\\n//  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n//\\n//     This software is distributed WITHOUT ANY WARRANTY; without even\\n//     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n//     PURPOSE.  See the above copyright notice for more information.\\n//\\n//=========================================================================\\n\\n// This shader copies fragments and depths to the output buffer\\n\\n// the output of this shader\\n//VTK::Output::Dec\\n\\nuniform sampler2D texDepth;     // z values from vertex shader\\nuniform sampler2D texRGBColors; // final rgb LIC colors\\n\\nin vec2 tcoordVC;\\n\\nvoid main()\\n{\\n  gl_FragDepth = texture2D(texDepth, tcoordVC).x;\\n  gl_FragData[0] = texture2D(texRGBColors, tcoordVC);\\n\\n  // since we render a screen aligned quad\\n  // we&#x27;re going to be writing fragments\\n  // not touched by the original geometry\\n  // it&#x27;s critical not to modify those\\n  // fragments.\\n  if (gl_FragDepth == 1.0)\\n    {\\n    discard;\\n    }\\n}\\n&quot;),t.enhanceContrastPass=e.buildAShader(&quot;//VTK::System::Dec\\n\\n//=========================================================================\\n//\\n//  Program:   Visualization Toolkit\\n//  Module:    vtkSurfaceLICMapper_CE.glsl\\n//\\n//  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n//  All rights reserved.\\n//  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n//\\n//     This software is distributed WITHOUT ANY WARRANTY; without even\\n//     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n//     PURPOSE.  See the above copyright notice for more information.\\n//\\n//=========================================================================\\n\\n// color contrast enhance stage implemented via histogram stretching\\n// on lightness channel. if the min and max are tweaked it can generate\\n// out-of-range values these will be clamped in 0 to 1\\n\\n// the output of this shader\\n//VTK::Output::Dec\\n\\nuniform sampler2D texGeomColors; // scalars + lighting\\nuniform sampler2D texLIC;        // image lic, mask\\nuniform sampler2D texHSLColors;  // hsla colors\\n\\nuniform float     uLMin;         // min lightness over all fragments\\nuniform float     uLMaxMinDiff;  // max - min lightness over all fragments\\n\\nin vec2 tcoordVC;\\n\\nvec3 HSLToRGB(vec3 HSL)\\n{\\n  vec3 RGB;\\n  float v;\\n  float h = HSL.x;\\n  float sl = HSL.y;\\n  float l = HSL.z;\\n\\n  v = (l &lt;= 0.5) ? (l * (1.0 + sl)) : (l + sl - l * sl);\\n  if (v &lt;= 0.0) {\\n    RGB = vec3(0.0,0.0,0.0);\\n  } else {\\n    float m;\\n    int sextant;\\n    float fract, vsf, mid1, mid2;\\n\\n    m = l + l - v;\\n    h *= 6.0;\\n    sextant = int(h);\\n    fract = h - float(sextant);\\n\\n    vsf = (v - m) * fract;\\n    mid1 = m + vsf;\\n    mid2 = v - vsf;\\n    switch (sextant) {\\n      case 0: RGB.r = v; RGB.g = mid1; RGB.b = m; break;\\n      case 1: RGB.r = mid2; RGB.g = v; RGB.b = m; break;\\n      case 2: RGB.r = m; RGB.g = v; RGB.b = mid1; break;\\n      case 3: RGB.r = m; RGB.g = mid2; RGB.b = v; break;\\n      case 4: RGB.r = mid1; RGB.g = m; RGB.b = v; break;\\n      case 5: RGB.r = v; RGB.g = m; RGB.b = mid2; break;\\n    }\\n  }\\n  return RGB;\\n}\\n\\nvoid main()\\n{\\n  // lookup hsl color , mask\\n  vec4 fragColor = texture2D(texHSLColors, tcoordVC.st);\\n\\n  // don&#x27;t modify masked fragments (masked =&gt; lic.g==1)\\n  vec4 lic = texture2D(texLIC, tcoordVC.st);\\n  if (lic.g==0.0)\\n    {\\n    // normalize lightness channel\\n    fragColor.z = clamp((fragColor.z - uLMin)/uLMaxMinDiff, 0.0, 1.0);\\n    }\\n\\n  // back into rgb space\\n  fragColor.rgb = HSLToRGB(fragColor.xyz);\\n\\n  // add alpha\\n  vec4 geomColor = texture2D(texGeomColors, tcoordVC.st);\\n  fragColor.a = geomColor.a;\\n\\n  gl_FragData[0] = fragColor;\\n}\\n&quot;),t.shadersNeedBuilding=!1)},e.initializeResources=()=&gt;{e.createFBO(),e.generateNoiseTexture(t.licInterface.getNoiseTextureSize()),e.allocateTextures(),e.buildAllShaders(),t.licQuad||(t.licQuad=function(e){const t=Sd.newInstance();t.setOpenGLRenderWindow(e);const n=new Float32Array(12);for(let e=0;e&lt;4;e++)n[3*e]=e%2*2-1,n[3*e+1]=e&gt;1?1:-1,n[3*e+2]=0;const r=new Float32Array([0,0,1,0,0,1,1,1]),o=new Uint16Array(8);o[0]=3,o[1]=0,o[2]=1,o[3]=3,o[4]=3,o[5]=0,o[6]=3,o[7]=2;const a=Is.newInstance({numberOfComponents:3,values:n});a.setName(&quot;points&quot;);const i=Is.newInstance({numberOfComponents:1,values:o}),s=Is.newInstance({numberOfComponents:2,values:r});return t.getCABO().createVBO(i,&quot;polys&quot;,Wg.SURFACE,{points:a,cellOffset:0,tcoords:s}),t}(t._openGLRenderWindow)),t.licHelper||(t.licHelper=Ug.newInstance())},e.prepareForGeometry=()=&gt;{const e=t.framebuffer;e.saveCurrentBindingsAndBuffers(),e.bind(),t.geometryImage.activate(),t.vectorImage.activate(),t.maskVectorImage.activate(),e.removeColorBuffer(0),e.removeColorBuffer(2),e.removeColorBuffer(3),e.setColorBuffer(t.geometryImage,0),e.setColorBuffer(t.vectorImage,2),e.setColorBuffer(t.maskVectorImage,3),e.setDepthBuffer(t.depthTexture);const n=t.context;n.drawBuffers([n.COLOR_ATTACHMENT0,n.NONE,n.COLOR_ATTACHMENT2,n.COLOR_ATTACHMENT3]),n.viewport(0,0,...t.size),n.scissor(0,0,...t.size),n.disable(n.BLEND),n.disable(n.DEPTH_TEST),n.disable(n.SCISSOR_TEST),n.clearColor(0,0,0,0),n.clear(n.DEPTH_BUFFER_BIT|n.COLOR_BUFFER_BIT)},e.copyToScreen=n=&gt;{t.RGBColorImage.activate(),t.depthTexture.activate(),t.licCopyPass||e.initializeResources();const r=t.licCopyPass;t._openGLRenderWindow.getShaderCache().readyShaderProgram(r);const o=t.context;o.viewport(0,0,...n),o.scissor(0,0,...n),o.disable(o.BLEND),o.enable(o.DEPTH_TEST),o.disable(o.SCISSOR_TEST),r.setUniformi(&quot;texDepth&quot;,t.depthTexture.getTextureUnit()),r.setUniformi(&quot;texRGBColors&quot;,t.RGBColorImage.getTextureUnit()),e.renderQuad(n,r),t.RGBColorImage.deactivate(),t.depthTexture.deactivate()},e.combineColorsAndLIC=()=&gt;{const n=t.context,r=t.framebuffer;r.saveCurrentBindingsAndBuffers(),r.bind(),r.create(...t.size),r.removeColorBuffer(0),r.removeColorBuffer(1),r.setColorBuffer(t.RGBColorImage,0),r.setColorBuffer(t.HSLColorImage,1),n.drawBuffers([n.COLOR_ATTACHMENT0,n.COLOR_ATTACHMENT1]),n.disable(n.DEPTH_TEST),n.clearColor(0,0,0,0),n.clear(n.COLOR_BUFFER_BIT),t.vectorImage.activate(),t.geometryImage.activate(),t.LICImage.activate(),t.licColorPass||e.initializeResources();const o=t.licColorPass;t._openGLRenderWindow.getShaderCache().readyShaderProgram(o),o.setUniformi(&quot;texVectors&quot;,t.vectorImage.getTextureUnit()),o.setUniformi(&quot;texGeomColors&quot;,t.geometryImage.getTextureUnit());const{colorMode:a,LICIntensity:i,mapModeBias:s,maskIntensity:l,maskColor:c,enhanceContrast:u,lowColorContrastEnhancementFactor:d,highColorContrastEnhancementFactor:p}=t.licInterface.get(&quot;colorMode&quot;,&quot;LICIntensity&quot;,&quot;mapModeBias&quot;,&quot;maskIntensity&quot;,&quot;maskColor&quot;,&quot;enhanceContrast&quot;,&quot;lowColorContrastEnhancementFactor&quot;,&quot;highColorContrastEnhancementFactor&quot;);if(o.setUniformi(&quot;texLIC&quot;,t.LICImage.getTextureUnit()),o.setUniformi(&quot;uScalarColorMode&quot;,a),o.setUniformf(&quot;uLICIntensity&quot;,i),o.setUniformf(&quot;uMapBias&quot;,s),o.setUniformf(&quot;uMaskIntensity&quot;,l),o.setUniform3f(&quot;uMaskColor&quot;,...c),e.renderQuad(t.size,o),t.vectorImage.deactivate(),t.geometryImage.deactivate(),t.LICImage.deactivate(),r.removeColorBuffer(0),r.removeColorBuffer(1),n.drawBuffers([n.NONE]),u===Bg||u===Fg){let o=0,a=1,i=a-o;o+=i*d,a-=i*p,i=a-o,r.setColorBuffer(t.RGBColorImage),n.drawBuffers([n.COLOR_ATTACHMENT0]),t.geometryImage.activate(),t.HSLColorImage.activate(),t.LICImage.activate(),t.enhanceContrastPass||e.initializeResources();const{enhanceContrastPass:s}=t;t._openGLRenderWindow.getShaderCache().readyShaderProgram(s),s.setUniformi(&quot;texGeomColors&quot;,t.geometryImage.getTextureUnit()),s.setUniformi(&quot;texHSLColors&quot;,t.HSLColorImage.getTextureUnit()),s.setUniformi(&quot;texLIC&quot;,t.LICImage.getTextureUnit()),s.setUniformf(&quot;uLMin&quot;,o),s.setUniformf(&quot;uLMaxMinDiff&quot;,i),e.renderQuad(t.size,s),t.geometryImage.deactivate(),t.HSLColorImage.deactivate(),t.LICImage.deactivate(),r.removeColorBuffer(0),n.drawBuffers([n.NONE])}r.restorePreviousBindingsAndBuffers()},e.applyLIC=()=&gt;{const e=t.licInterface.get(&quot;stepSize&quot;,&quot;numberOfSteps&quot;,&quot;enhancedLIC&quot;,&quot;enhanceContrast&quot;,&quot;lowLICContrastEnhancementFactor&quot;,&quot;highLICContrastEnhancementFactor&quot;,&quot;antiAlias&quot;,&quot;normalizeVectors&quot;,&quot;maskThreshold&quot;,&quot;transformVectors&quot;),n=t.licHelper.executeLIC(t.size,t.vectorImage,t.maskVectorImage,t.noiseTexture,t._openGLRenderWindow,e);if(!n)return console.error(&quot;Failed to compute image LIC&quot;),void(t.LICImage=null);t.LICImage=n},e.setSize=n=&gt;{Array.isArray(n)&amp;&amp;2===n.length&amp;&amp;(t.size&amp;&amp;t.size[0]===n[0]&amp;&amp;t.size[1]===n[1]||(t.size=n,e.releaseGraphicsResources()))},e.releaseGraphicsResources=()=&gt;{t.geometryImage&amp;&amp;(t.geometryImage.releaseGraphicsResources(),t.geometryImage=null),t.vectorImage&amp;&amp;(t.vectorImage.releaseGraphicsResources(),t.vectorImage=null),t.maskVectorImage&amp;&amp;(t.maskVectorImage.releaseGraphicsResources(),t.maskVectorImage=null),t.LICImage&amp;&amp;(t.LICImage.releaseGraphicsResources(),t.LICImage=null),t.RGBColorImage&amp;&amp;(t.RGBColorImage.releaseGraphicsResources(),t.RGBColorImage=null),t.HSLColorImage&amp;&amp;(t.HSLColorImage.releaseGraphicsResources(),t.HSLColorImage=null),t.depthTexture&amp;&amp;(t.depthTexture.releaseGraphicsResources(),t.depthTexture=null),t.framebuffer&amp;&amp;(t.framebuffer.releaseGraphicsResources(),t.framebuffer=null)}}const jg={context:null,shadersNeedBuilding:!0,reallocateTextures:!0,size:null,licInterface:null};function Xg(e,t,n={}){Object.assign(t,jg,n),zg.extend(e,t,n),sn.obj(e,t),sn.setGet(e,t,[&quot;context&quot;,&quot;_openGLRenderWindow&quot;,&quot;reallocateTextures&quot;,&quot;licInterface&quot;,&quot;size&quot;]),sn.moveToProtected(e,t,[&quot;openGLRenderWindow&quot;]),Hg(e,t)}var qg={newInstance:sn.newInstance(Xg,&quot;vtkSurfaceLICInterface&quot;),extend:Xg};const{vtkErrorMacro:Yg}=ln;const Jg={canDrawLIC:!1,rebuildLICShaders:!1,rebuildLICBuffers:!1,openGLLicInterface:null};const Zg=Xt((function(e,t,n={}){Object.assign(t,Jg,n),up.extend(e,t,n),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLSurfaceLICMapper&quot;);const n={...e};e.getNeedToRebuildShaders=(e,r,o)=&gt;t.rebuildLICShaders||n.getNeedToRebuildShaders(e,r,o),e.replaceShaderValues=(e,r,o)=&gt;{const a=t.lastBoundBO.getReferenceByName(&quot;lastLightComplexity&quot;);let i=e.Vertex,s=e.Fragment;const l=t.renderable.getInputArrayToProcess(0);if(l&amp;&amp;t.canDrawLIC){s=vd.substitute(s,&quot;//VTK::Output::Dec&quot;,[&quot;//VTK::Output::Dec&quot;,&quot;layout(location = 2) out vec4 vectorTexture;&quot;,&quot;layout(location = 3) out vec4 maskVectorTexture;&quot;]).result;const n=`${l.getName()}MC`;0===a&amp;&amp;t.lastBoundBO.set({lastLightComplexity:1},!0),i=vd.substitute(i,&quot;//VTK::TCoord::Dec&quot;,[`attribute vec3 ${n};`,&quot;out vec3 licOutput;&quot;,&quot;//VTK::TCoord::Dec&quot;]).result,i=vd.substitute(i,&quot;//VTK::TCoord::Impl&quot;,[`licOutput = ${n};`,&quot;//VTK::TCoord::Impl&quot;]).result,s=vd.substitute(s,&quot;//VTK::TCoord::Dec&quot;,[&quot;uniform int uMaskOnSurface;&quot;,&quot;uniform mat3 normalMatrix;&quot;,&quot;in vec3 licOutput;&quot;,&quot;//VTK::TCoord::Dec&quot;]).result,s=vd.substitute(s,&quot;//VTK::TCoord::Impl&quot;,[&quot;// projected vectors&quot;,&quot;  vec3 tcoordLIC = normalMatrix * licOutput;&quot;,&quot;  vec3 normN = normalize(normalVCVSOutput);&quot;,&quot;  float k = dot(tcoordLIC, normN);&quot;,&quot;  vec3 projected = (tcoordLIC - k*normN);&quot;,&quot;  vectorTexture = vec4(projected.x, projected.y, 0.0 , 1.0);&quot;,&quot;// vectors for fragment masking&quot;,&quot;  if (uMaskOnSurface == 0)&quot;,&quot;    {&quot;,&quot;    maskVectorTexture = vec4(licOutput, 1.0);&quot;,&quot;    }&quot;,&quot;  else&quot;,&quot;    {&quot;,&quot;    maskVectorTexture = vec4(projected.x, projected.y, 0.0 , 1.0);&quot;,&quot;    }&quot;,&quot;//VTK::TCoord::Impl&quot;],!1).result,e.Vertex=i}t.rebuildLICShaders=!1,e.Fragment=s,n.replaceShaderValues(e,r,o),a&gt;0&amp;&amp;t.lastBoundBO.set({lastLightComplexity:a},!0)},e.setMapperShaderParameters=(e,r,o)=&gt;{n.setMapperShaderParameters(e,r,o),t.canDrawLIC&amp;&amp;e.getProgram().setUniformi(&quot;uMaskOnSurface&quot;,t.maskOnSurface)},e.getNeedToRebuildBufferObjects=(e,r)=&gt;t.rebuildLICBuffers||n.getNeedToRebuildBufferObjects(e,r),e.buildBufferObjects=(e,r)=&gt;{if(t.canDrawLIC){const e=t.renderable.getInputArrayToProcess(0);e&amp;&amp;e.getNumberOfComponents()&gt;1&amp;&amp;t.renderable.setCustomShaderAttributes([e.getName()])}t.rebuildLICBuffers=!1,n.buildBufferObjects(e,r)},e.pushState=e=&gt;{t.stateCache={[e.BLEND]:e.isEnabled(e.BLEND),[e.DEPTH_TEST]:e.isEnabled(e.DEPTH_TEST),[e.SCISSOR_TEST]:e.isEnabled(e.SCISSOR_TEST),[e.CULL_FACE]:e.isEnabled(e.CULL_FACE)}},e.popState=e=&gt;{const n=n=&gt;t.stateCache[n]?e.enable(n):e.disable(n);n(e.BLEND),n(e.DEPTH_TEST),n(e.SCISSOR_TEST),n(e.CULL_FACE)},e.renderPiece=(r,o)=&gt;{let a=!0;t._openGLRenderWindow.getWebgl2()||(Yg(&quot;SurfaceLICMapper Requires WebGL 2&quot;),a=!1),t.context.getExtension(&quot;EXT_color_buffer_float&quot;)&amp;&amp;t.context.getExtension(&quot;OES_texture_float_linear&quot;)||(Yg(&quot;SurfaceLICMapper requires the EXT_color_buffer_float and OES_texture_float_linear WebGL2 extensions.&quot;),a=!1),t.currentInput=t.renderable.getInputData(),t.currentInput||(Yg(&quot;No input&quot;),a=!1);let i=t.renderable.getLicInterface();i||(i=zg.newInstance(),t.renderable.setLicInterface(i)),t.openGLLicInterface||(t.openGLLicInterface=qg.newInstance()),i!==t.openGLLicInterface.getLicInterface()&amp;&amp;t.openGLLicInterface.setLicInterface(i);const s=t.renderable.getInputArrayToProcess(0);if(i.getEnableLIC()&amp;&amp;(!s||s.getNumberOfComponents()&lt;2)&amp;&amp;(Yg(&quot;No vector input array&quot;),a=!1),i.getEnableLIC()||(a=!1),t.canDrawLIC!==a&amp;&amp;(t.rebuildLICShaders=!0,t.rebuildLICBuffers=!0),t.canDrawLIC=a,!a||!i.getEnableLIC())return void n.renderPiece(r,o);const l=t.context,c=o.getProperty().getBackfaceCulling(),u=o.getProperty().getFrontfaceCulling();c||u?u?(t._openGLRenderWindow.enableCullFace(),l.cullFace(l.FRONT)):(t._openGLRenderWindow.enableCullFace(),l.cullFace(l.BACK)):t._openGLRenderWindow.disableCullFace();const d=t._openGLRenderWindow.getSize(),p=d.map((e=&gt;Math.round(e*i.getViewPortScale())));t.openGLLicInterface.setSize(p),t.openGLLicInterface.setOpenGLRenderWindow(t._openGLRenderWindow),t.openGLLicInterface.setContext(t.context),e.pushState(t.context),t.openGLLicInterface.initializeResources(),t.openGLLicInterface.prepareForGeometry(),e.popState(t.context),n.renderPieceStart(r,o),n.renderPieceDraw(r,o),n.renderPieceFinish(r,o),e.pushState(t.context),t.VBOBuildTime.modified(),t.openGLLicInterface.completedGeometry(),t.context.disable(t.context.CULL_FACE),t.openGLLicInterface.applyLIC(),t.openGLLicInterface.combineColorsAndLIC(),t.openGLLicInterface.copyToScreen(d),e.popState(t.context)}}(e,t),Gt(e,t,[&quot;openGLLicInterface&quot;])}),&quot;vtkOpenGLSurfaceLICMapper&quot;);vn(&quot;vtkSurfaceLICMapper&quot;,Zg);const{vtkErrorMacro:Qg}=ln;const $g={};const em=Xt((function(e,t,n={}){Object.assign(t,$g,n),up.extend(e,t,n),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLSphereMapper&quot;);const n={...e};e.getShaderTemplate=(e,t,n)=&gt;{e.Vertex=&quot;//VTK::System::Dec\\n\\n/*=========================================================================\\n\\n  Program:   Visualization Toolkit\\n  Module:    vtkSphereMapperVS.glsl\\n\\n  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n  All rights reserved.\\n  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n\\n     This software is distributed WITHOUT ANY WARRANTY; without even\\n     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n     PURPOSE.  See the above copyright notice for more information.\\n\\n=========================================================================*/\\n// this shader implements imposters in OpenGL for Spheres\\n\\nattribute vec4 vertexMC;\\nattribute vec2 offsetMC;\\n\\n// optional normal declaration\\n//VTK::Normal::Dec\\n\\n//VTK::Picking::Dec\\n\\n// Texture coordinates\\n//VTK::TCoord::Dec\\n\\nuniform mat3 normalMatrix; // transform model coordinate directions to view coordinates\\n\\n// material property values\\n//VTK::Color::Dec\\n\\n// clipping plane vars\\n//VTK::Clip::Dec\\n\\n// camera and actor matrix values\\n//VTK::Camera::Dec\\n\\nvarying vec4 vertexVCVSOutput;\\nvarying float radiusVCVSOutput;\\nvarying vec3 centerVCVSOutput;\\n\\nuniform int cameraParallel;\\nuniform float scaleFactor;\\n\\nvoid main()\\n{\\n  //VTK::Picking::Impl\\n\\n  //VTK::Color::Impl\\n\\n  //VTK::Normal::Impl\\n\\n  //VTK::TCoord::Impl\\n\\n  //VTK::Clip::Impl\\n\\n  // compute the projected vertex position\\n  vec2 scaledOffsetMC = scaleFactor * offsetMC;\\n  vertexVCVSOutput = MCVCMatrix * vertexMC;\\n  centerVCVSOutput = vertexVCVSOutput.xyz;\\n  radiusVCVSOutput = length(scaledOffsetMC)*0.5;\\n\\n  // make the triangle face the camera\\n  if (cameraParallel == 0)\\n    {\\n    vec3 dir = normalize(-vertexVCVSOutput.xyz);\\n    vec3 base2 = normalize(cross(dir,vec3(1.0,0.0,0.0)));\\n    vec3 base1 = cross(base2,dir);\\n    vertexVCVSOutput.xyz = vertexVCVSOutput.xyz + scaledOffsetMC.x*base1 + scaledOffsetMC.y*base2;\\n    }\\n  else\\n    {\\n    // add in the offset\\n    vertexVCVSOutput.xy = vertexVCVSOutput.xy + scaledOffsetMC;\\n    }\\n\\n  gl_Position = VCPCMatrix * vertexVCVSOutput;\\n}\\n&quot;,e.Fragment=Xd,e.Geometry=&quot;&quot;},e.replaceShaderValues=(e,r,o)=&gt;{let a=e.Vertex,i=e.Fragment;a=vd.substitute(a,&quot;//VTK::Camera::Dec&quot;,[&quot;uniform mat4 VCPCMatrix;\\n&quot;,&quot;uniform mat4 MCVCMatrix;&quot;]).result,i=vd.substitute(i,&quot;//VTK::PositionVC::Dec&quot;,[&quot;varying vec4 vertexVCVSOutput;&quot;]).result,i=vd.substitute(i,&quot;//VTK::PositionVC::Impl&quot;,[&quot;vec4 vertexVC = vertexVCVSOutput;\\n&quot;]).result,i=vd.substitute(i,&quot;//VTK::Normal::Dec&quot;,[&quot;uniform float invertedDepth;\\n&quot;,&quot;uniform int cameraParallel;\\n&quot;,&quot;varying float radiusVCVSOutput;\\n&quot;,&quot;varying vec3 centerVCVSOutput;\\n&quot;,&quot;uniform mat4 VCPCMatrix;\\n&quot;]).result;let s=&quot;&quot;;t.context.getExtension(&quot;EXT_frag_depth&quot;)&amp;&amp;(s=&quot;gl_FragDepthEXT = (pos.z / pos.w + 1.0) / 2.0;\\n&quot;),t._openGLRenderWindow.getWebgl2()&amp;&amp;(s=&quot;gl_FragDepth = (pos.z / pos.w + 1.0) / 2.0;\\n&quot;),i=vd.substitute(i,&quot;//VTK::Depth::Impl&quot;,[&quot;  vec3 EyePos;\\n&quot;,&quot;  vec3 EyeDir;\\n&quot;,&quot;  if (cameraParallel != 0) {\\n&quot;,&quot;    EyePos = vec3(vertexVC.x, vertexVC.y, vertexVC.z + 3.0*radiusVCVSOutput);\\n&quot;,&quot;    EyeDir = vec3(0.0,0.0,-1.0); }\\n&quot;,&quot;  else {\\n&quot;,&quot;    EyeDir = vertexVC.xyz;\\n&quot;,&quot;    EyePos = vec3(0.0,0.0,0.0);\\n&quot;,&quot;    float lengthED = length(EyeDir);\\n&quot;,&quot;    EyeDir = normalize(EyeDir);\\n&quot;,&quot;    if (lengthED &gt; radiusVCVSOutput*3.0) {\\n&quot;,&quot;      EyePos = vertexVC.xyz - EyeDir*3.0*radiusVCVSOutput; }\\n&quot;,&quot;    }\\n&quot;,&quot;  EyePos = EyePos - centerVCVSOutput;\\n&quot;,&quot;  EyePos = EyePos/radiusVCVSOutput;\\n&quot;,&quot;  float b = 2.0*dot(EyePos,EyeDir);\\n&quot;,&quot;  float c = dot(EyePos,EyePos) - 1.0;\\n&quot;,&quot;  float d = b*b - 4.0*c;\\n&quot;,&quot;  vec3 normalVCVSOutput = vec3(0.0,0.0,1.0);\\n&quot;,&quot;  if (d &lt; 0.0) { discard; }\\n&quot;,&quot;  else {\\n&quot;,&quot;    float t = (-b - invertedDepth*sqrt(d))*0.5;\\n&quot;,&quot;    normalVCVSOutput = invertedDepth*normalize(EyePos + t*EyeDir);\\n&quot;,&quot;    vertexVC.xyz = normalVCVSOutput*radiusVCVSOutput + centerVCVSOutput;\\n&quot;,&quot;    }\\n&quot;,&quot;  vec4 pos = VCPCMatrix * vertexVC;\\n&quot;,s]).result,i=vd.substitute(i,&quot;//VTK::Normal::Impl&quot;,&quot;&quot;).result,t.haveSeenDepthRequest&amp;&amp;(i=vd.substitute(i,&quot;//VTK::ZBuffer::Impl&quot;,[&quot;if (depthRequest == 1) {&quot;,&quot;float computedZ = (pos.z / pos.w + 1.0) / 2.0;&quot;,&quot;float iz = floor(computedZ * 65535.0 + 0.1);&quot;,&quot;float rf = floor(iz/256.0)/255.0;&quot;,&quot;float gf = mod(iz,256.0)/255.0;&quot;,&quot;gl_FragData[0] = vec4(rf, gf, 0.0, 1.0); }&quot;]).result),e.Vertex=a,e.Fragment=i,n.replaceShaderValues(e,r,o)},e.setMapperShaderParameters=(e,r,o)=&gt;{if(e.getCABO().getElementCount()&amp;&amp;(t.VBOBuildTime&gt;e.getAttributeUpdateTime().getMTime()||e.getShaderSourceTime().getMTime()&gt;e.getAttributeUpdateTime().getMTime())&amp;&amp;e.getProgram().isAttributeUsed(&quot;offsetMC&quot;)&amp;&amp;(e.getVAO().addAttributeArray(e.getProgram(),e.getCABO(),&quot;offsetMC&quot;,12,e.getCABO().getStride(),t.context.FLOAT,2,!1)||Qg(&quot;Error setting &#x27;offsetMC&#x27; in shader VAO.&quot;)),e.getProgram().isUniformUsed(&quot;invertedDepth&quot;)&amp;&amp;e.getProgram().setUniformf(&quot;invertedDepth&quot;,t.invert?-1:1),e.getProgram().isUniformUsed(&quot;scaleFactor&quot;)){const n=t.currentInput.getPointData();null!=t.renderable.getScaleArray()&amp;&amp;n.hasArray(t.renderable.getScaleArray())?e.getProgram().setUniformf(&quot;scaleFactor&quot;,t.renderable.getScaleFactor()):e.getProgram().setUniformf(&quot;scaleFactor&quot;,1)}n.setMapperShaderParameters(e,r,o)},e.setCameraShaderParameters=(e,n,r)=&gt;{const o=e.getProgram(),a=n.getActiveCamera(),i=t.openGLCamera.getKeyMatrices(n);o.isUniformUsed(&quot;VCPCMatrix&quot;)&amp;&amp;o.setUniformMatrix(&quot;VCPCMatrix&quot;,i.vcpc);const s=new Float64Array(16);if(o.isUniformUsed(&quot;MCVCMatrix&quot;))if(r.getIsIdentity())T(s,i.wcvc),e.getCABO().getCoordShiftAndScaleEnabled()&amp;&amp;A(s,s,e.getCABO().getInverseShiftAndScaleMatrix()),o.setUniformMatrix(&quot;MCVCMatrix&quot;,s);else{const n=t.openGLActor.getKeyMatrices();A(s,i.wcvc,n.mcwc),e.getCABO().getCoordShiftAndScaleEnabled()&amp;&amp;A(s,s,e.getCABO().getInverseShiftAndScaleMatrix()),o.setUniformMatrix(&quot;MCVCMatrix&quot;,s)}o.isUniformUsed(&quot;cameraParallel&quot;)&amp;&amp;e.getProgram().setUniformi(&quot;cameraParallel&quot;,a.getParallelProjection())},e.getOpenGLMode=(e,n)=&gt;t.context.TRIANGLES,e.buildBufferObjects=(e,n)=&gt;{const r=t.currentInput;if(null===r)return;t.renderable.mapScalars(r,1);const o=t.renderable.getColorMapColors(),a=t.primitives[t.primTypes.Tris].getCABO(),i=r.getPointData(),s=r.getPoints(),l=s.getNumberOfPoints(),c=s.getData();let u=null;null!=t.renderable.getScaleArray()&amp;&amp;i.hasArray(t.renderable.getScaleArray())&amp;&amp;(u=i.getArray(t.renderable.getScaleArray()).getData());let d=null,p=0,f=null;o?(p=o.getNumberOfComponents(),a.setColorOffset(0),a.setColorBOStride(4),d=o.getData(),f=new Uint8Array(3*l*4),a.getColorBO()||a.setColorBO(nd.newInstance()),a.getColorBO().setOpenGLRenderWindow(t._openGLRenderWindow)):a.getColorBO()&amp;&amp;a.setColorBO(null),a.setColorComponents(p);const g=new Float32Array(5*l*3);a.setStride(20);const m=Math.cos(wo(30));let h=0,v=0;const{useShiftAndScale:T,coordShift:x,coordScale:y}=rd(s);T&amp;&amp;a.setCoordShiftAndScale(x,y);let b=0,A=0;for(let e=0;e&lt;l;++e){let n=t.renderable.getRadius();u&amp;&amp;(n=u[e]),h=3*e;const r=(c[h++]-x[0])*y[0],o=(c[h++]-x[1])*y[1],a=(c[h++]-x[2])*y[2];g[b++]=r,g[b++]=o,g[b++]=a,g[b++]=-2*n*m,g[b++]=-n,d&amp;&amp;(v=e*p,f[A++]=d[v],f[A++]=d[v+1],f[A++]=d[v+2],f[A++]=d[v+3]),g[b++]=r,g[b++]=o,g[b++]=a,g[b++]=2*n*m,g[b++]=-n,d&amp;&amp;(f[A++]=d[v],f[A++]=d[v+1],f[A++]=d[v+2],f[A++]=d[v+3]),g[b++]=r,g[b++]=o,g[b++]=a,g[b++]=0,g[b++]=2*n,d&amp;&amp;(f[A++]=d[v],f[A++]=d[v+1],f[A++]=d[v+2],f[A++]=d[v+3])}a.setElementCount(b/5),a.upload(g,Zu.ARRAY_BUFFER),o&amp;&amp;a.getColorBO().upload(f,Zu.ARRAY_BUFFER),t.VBOBuildTime.modified()}}(e,t)}),&quot;vtkOpenGLSphereMapper&quot;);vn(&quot;vtkSphereMapper&quot;,em);const{vtkErrorMacro:tm}=ln;const nm={};const rm=Xt((function(e,t,n={}){Object.assign(t,nm,n),up.extend(e,t,n),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLStickMapper&quot;);const n={...e};e.getShaderTemplate=(e,t,n)=&gt;{e.Vertex=&quot;//VTK::System::Dec\\n\\n/*=========================================================================\\n\\n  Program:   Visualization Toolkit\\n  Module:    vtkStickMapperVS.glsl\\n\\n  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n  All rights reserved.\\n  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n\\n     This software is distributed WITHOUT ANY WARRANTY; without even\\n     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n     PURPOSE.  See the above copyright notice for more information.\\n\\n=========================================================================*/\\n// this shader implements imposters in OpenGL for Sticks\\n\\nattribute vec4 vertexMC;\\nattribute vec3 orientMC;\\nattribute vec4 offsetMC;\\nattribute float radiusMC;\\n\\n// optional normal declaration\\n//VTK::Normal::Dec\\n\\n//VTK::Picking::Dec\\n\\n// Texture coordinates\\n//VTK::TCoord::Dec\\n\\nuniform mat3 normalMatrix; // transform model coordinate directions to view coordinates\\n\\n// material property values\\n//VTK::Color::Dec\\n\\n// clipping plane vars\\n//VTK::Clip::Dec\\n\\n// camera and actor matrix values\\n//VTK::Camera::Dec\\n\\nvarying vec4 vertexVCVSOutput;\\nvarying float radiusVCVSOutput;\\nvarying float lengthVCVSOutput;\\nvarying vec3 centerVCVSOutput;\\nvarying vec3 orientVCVSOutput;\\n\\nuniform int cameraParallel;\\n\\nvoid main()\\n{\\n  //VTK::Picking::Impl\\n\\n  //VTK::Color::Impl\\n\\n  //VTK::Normal::Impl\\n\\n  //VTK::TCoord::Impl\\n\\n  //VTK::Clip::Impl\\n\\n  vertexVCVSOutput = MCVCMatrix * vertexMC;\\n  centerVCVSOutput = vertexVCVSOutput.xyz;\\n  radiusVCVSOutput = radiusMC;\\n  lengthVCVSOutput = length(orientMC);\\n  orientVCVSOutput = normalMatrix * normalize(orientMC);\\n\\n  // make sure it is pointing out of the screen\\n  if (orientVCVSOutput.z &lt; 0.0)\\n    {\\n    orientVCVSOutput = -orientVCVSOutput;\\n    }\\n\\n  // make the basis\\n  vec3 xbase;\\n  vec3 ybase;\\n  vec3 dir = vec3(0.0,0.0,1.0);\\n  if (cameraParallel == 0)\\n    {\\n    dir = normalize(-vertexVCVSOutput.xyz);\\n    }\\n  if (abs(dot(dir,orientVCVSOutput)) == 1.0)\\n    {\\n    xbase = normalize(cross(vec3(0.0,1.0,0.0),orientVCVSOutput));\\n    ybase = cross(xbase,orientVCVSOutput);\\n    }\\n  else\\n    {\\n    xbase = normalize(cross(orientVCVSOutput,dir));\\n    ybase = cross(orientVCVSOutput,xbase);\\n    }\\n\\n  vec3 offsets = offsetMC.xyz*2.0-1.0;\\n  vertexVCVSOutput.xyz = vertexVCVSOutput.xyz +\\n    radiusVCVSOutput*offsets.x*xbase +\\n    radiusVCVSOutput*offsets.y*ybase +\\n    0.5*lengthVCVSOutput*offsets.z*orientVCVSOutput;\\n\\n  gl_Position = VCPCMatrix * vertexVCVSOutput;\\n}\\n&quot;,e.Fragment=Xd,e.Geometry=&quot;&quot;},e.replaceShaderValues=(e,r,o)=&gt;{let a=e.Vertex,i=e.Fragment;a=vd.substitute(a,&quot;//VTK::Camera::Dec&quot;,[&quot;uniform mat4 VCPCMatrix;\\n&quot;,&quot;uniform mat4 MCVCMatrix;&quot;]).result,i=vd.substitute(i,&quot;//VTK::PositionVC::Dec&quot;,&quot;varying vec4 vertexVCVSOutput;&quot;).result,i=vd.substitute(i,&quot;//VTK::PositionVC::Impl&quot;,&quot;  vec4 vertexVC = vertexVCVSOutput;\\n&quot;).result,i=vd.substitute(i,&quot;//VTK::Normal::Dec&quot;,[&quot;uniform int cameraParallel;\\n&quot;,&quot;varying float radiusVCVSOutput;\\n&quot;,&quot;varying vec3 orientVCVSOutput;\\n&quot;,&quot;varying float lengthVCVSOutput;\\n&quot;,&quot;varying vec3 centerVCVSOutput;\\n&quot;,&quot;uniform mat4 VCPCMatrix;\\n&quot;]).result;let s=&quot;&quot;;t.context.getExtension(&quot;EXT_frag_depth&quot;)&amp;&amp;(s=&quot;  gl_FragDepthEXT = (pos.z / pos.w + 1.0) / 2.0;\\n&quot;),t._openGLRenderWindow.getWebgl2()&amp;&amp;(s=&quot;gl_FragDepth = (pos.z / pos.w + 1.0) / 2.0;\\n&quot;),i=vd.substitute(i,&quot;//VTK::Depth::Impl&quot;,[&quot;  vec3 EyePos;\\n&quot;,&quot;  vec3 EyeDir;\\n&quot;,&quot;  if (cameraParallel != 0) {\\n&quot;,&quot;    EyePos = vec3(vertexVC.x, vertexVC.y, vertexVC.z + 3.0*radiusVCVSOutput);\\n&quot;,&quot;    EyeDir = vec3(0.0,0.0,-1.0); }\\n&quot;,&quot;  else {\\n&quot;,&quot;    EyeDir = vertexVC.xyz;\\n&quot;,&quot;    EyePos = vec3(0.0,0.0,0.0);\\n&quot;,&quot;    float lengthED = length(EyeDir);\\n&quot;,&quot;    EyeDir = normalize(EyeDir);\\n&quot;,&quot;    if (lengthED &gt; radiusVCVSOutput*3.0) {\\n&quot;,&quot;      EyePos = vertexVC.xyz - EyeDir*3.0*radiusVCVSOutput; }\\n&quot;,&quot;    }\\n&quot;,&quot;  EyePos = EyePos - centerVCVSOutput;\\n&quot;,&quot;  vec3 base1;\\n&quot;,&quot;  if (abs(orientVCVSOutput.z) &lt; 0.99) {\\n&quot;,&quot;    base1 = normalize(cross(orientVCVSOutput,vec3(0.0,0.0,1.0))); }\\n&quot;,&quot;  else {\\n&quot;,&quot;    base1 = normalize(cross(orientVCVSOutput,vec3(0.0,1.0,0.0))); }\\n&quot;,&quot;  vec3 base2 = cross(orientVCVSOutput,base1);\\n&quot;,&quot;  EyePos = vec3(dot(EyePos,base1),dot(EyePos,base2),dot(EyePos,orientVCVSOutput));\\n&quot;,&quot;  EyeDir = vec3(dot(EyeDir,base1),dot(EyeDir,base2),dot(EyeDir,orientVCVSOutput));\\n&quot;,&quot;  EyePos = EyePos/radiusVCVSOutput;\\n&quot;,&quot;  float a = EyeDir.x*EyeDir.x + EyeDir.y*EyeDir.y;\\n&quot;,&quot;  float b = 2.0*(EyePos.x*EyeDir.x + EyePos.y*EyeDir.y);\\n&quot;,&quot;  float c = EyePos.x*EyePos.x + EyePos.y*EyePos.y - 1.0;\\n&quot;,&quot;  float d = b*b - 4.0*a*c;\\n&quot;,&quot;  vec3 normalVCVSOutput = vec3(0.0,0.0,1.0);\\n&quot;,&quot;  if (d &lt; 0.0) { discard; }\\n&quot;,&quot;  else {\\n&quot;,&quot;    float t =  (-b - sqrt(d))/(2.0*a);\\n&quot;,&quot;    float tz = EyePos.z + t*EyeDir.z;\\n&quot;,&quot;    vec3 iPoint = EyePos + t*EyeDir;\\n&quot;,&quot;    if (abs(iPoint.z)*radiusVCVSOutput &gt; lengthVCVSOutput*0.5) {\\n&quot;,&quot;      float t2 = (-b + sqrt(d))/(2.0*a);\\n&quot;,&quot;      float tz2 = EyePos.z + t2*EyeDir.z;\\n&quot;,&quot;      if (tz2*radiusVCVSOutput &gt; lengthVCVSOutput*0.5 || tz*radiusVCVSOutput &lt; -0.5*lengthVCVSOutput) { discard; }\\n&quot;,&quot;      else {\\n&quot;,&quot;        normalVCVSOutput = orientVCVSOutput;\\n&quot;,&quot;        float t3 = (lengthVCVSOutput*0.5/radiusVCVSOutput - EyePos.z)/EyeDir.z;\\n&quot;,&quot;        iPoint = EyePos + t3*EyeDir;\\n&quot;,&quot;        vertexVC.xyz = radiusVCVSOutput*(iPoint.x*base1 + iPoint.y*base2 + iPoint.z*orientVCVSOutput) + centerVCVSOutput;\\n&quot;,&quot;        }\\n&quot;,&quot;      }\\n&quot;,&quot;    else {\\n&quot;,&quot;      normalVCVSOutput = iPoint.x*base1 + iPoint.y*base2;\\n&quot;,&quot;      vertexVC.xyz = radiusVCVSOutput*(normalVCVSOutput + iPoint.z*orientVCVSOutput) + centerVCVSOutput;\\n&quot;,&quot;      }\\n&quot;,&quot;    }\\n&quot;,&quot;  vec4 pos = VCPCMatrix * vertexVC;\\n&quot;,s]).result,i=vd.substitute(i,&quot;//VTK::Normal::Impl&quot;,&quot;&quot;).result,t.haveSeenDepthRequest&amp;&amp;(i=vd.substitute(i,&quot;//VTK::ZBuffer::Impl&quot;,[&quot;if (depthRequest == 1) {&quot;,&quot;float computedZ = (pos.z / pos.w + 1.0) / 2.0;&quot;,&quot;float iz = floor(computedZ * 65535.0 + 0.1);&quot;,&quot;float rf = floor(iz/256.0)/255.0;&quot;,&quot;float gf = mod(iz,256.0)/255.0;&quot;,&quot;gl_FragData[0] = vec4(rf, gf, 0.0, 1.0); }&quot;]).result),e.Vertex=a,e.Fragment=i,n.replaceShaderValues(e,r,o)},e.setMapperShaderParameters=(e,r,o)=&gt;{e.getCABO().getElementCount()&amp;&amp;(t.VBOBuildTime&gt;e.getAttributeUpdateTime().getMTime()||e.getShaderSourceTime().getMTime()&gt;e.getAttributeUpdateTime().getMTime())&amp;&amp;(e.getProgram().isAttributeUsed(&quot;orientMC&quot;)&amp;&amp;(e.getVAO().addAttributeArray(e.getProgram(),e.getCABO(),&quot;orientMC&quot;,12,e.getCABO().getStride(),t.context.FLOAT,3,!1)||tm(&quot;Error setting &#x27;orientMC&#x27; in shader VAO.&quot;)),e.getProgram().isAttributeUsed(&quot;offsetMC&quot;)&amp;&amp;(e.getVAO().addAttributeArray(e.getProgram(),e.getCABO().getColorBO(),&quot;offsetMC&quot;,0,e.getCABO().getColorBOStride(),t.context.UNSIGNED_BYTE,3,!0)||tm(&quot;Error setting &#x27;offsetMC&#x27; in shader VAO.&quot;)),e.getProgram().isAttributeUsed(&quot;radiusMC&quot;)&amp;&amp;(e.getVAO().addAttributeArray(e.getProgram(),e.getCABO(),&quot;radiusMC&quot;,24,e.getCABO().getStride(),t.context.FLOAT,1,!1)||tm(&quot;Error setting &#x27;radiusMC&#x27; in shader VAO.&quot;))),n.setMapperShaderParameters(e,r,o)},e.setCameraShaderParameters=(e,n,r)=&gt;{const o=e.getProgram(),a=n.getActiveCamera(),i=t.openGLCamera.getKeyMatrices(n);if(o.isUniformUsed(&quot;VCPCMatrix&quot;)&amp;&amp;o.setUniformMatrix(&quot;VCPCMatrix&quot;,i.vcpc),r.getIsIdentity())o.isUniformUsed(&quot;MCVCMatrix&quot;)&amp;&amp;o.setUniformMatrix(&quot;MCVCMatrix&quot;,i.wcvc),o.isUniformUsed(&quot;normalMatrix&quot;)&amp;&amp;o.setUniformMatrix3x3(&quot;normalMatrix&quot;,i.normalMatrix);else{const e=t.openGLActor.getKeyMatrices();if(o.isUniformUsed(&quot;MCVCMatrix&quot;)){const t=new Float64Array(16);A(t,i.wcvc,e.mcwc),o.setUniformMatrix(&quot;MCVCMatrix&quot;,t)}if(o.isUniformUsed(&quot;normalMatrix&quot;)){const t=new Float64Array(9);p(t,i.normalMatrix,e.normalMatrix),o.setUniformMatrix3x3(&quot;normalMatrix&quot;,t)}}o.isUniformUsed(&quot;cameraParallel&quot;)&amp;&amp;e.getProgram().setUniformi(&quot;cameraParallel&quot;,a.getParallelProjection())},e.getOpenGLMode=(e,n)=&gt;t.context.TRIANGLES,e.buildBufferObjects=(e,n)=&gt;{const r=t.currentInput;if(null===r)return;t.renderable.mapScalars(r,1);const o=t.renderable.getColorMapColors(),a=t.primitives[t.primTypes.Tris].getCABO(),i=r.getPointData(),s=r.getPoints(),l=s.getNumberOfPoints(),c=s.getData();let u=3;u+=4;let d=null,p=0;a.setColorBOStride(4),a.getColorBO()||a.setColorBO(nd.newInstance()),a.getColorBO().setOpenGLRenderWindow(t._openGLRenderWindow),o&amp;&amp;(p=o.getNumberOfComponents(),a.setColorOffset(4),d=o.getData(),a.setColorBOStride(8)),a.setColorComponents(p),a.setStride(28);const f=new Float32Array(7*l*12),g=new Uint8Array(12*l*(d?8:4));let m=null,h=null;null!=t.renderable.getScaleArray()&amp;&amp;i.hasArray(t.renderable.getScaleArray())&amp;&amp;(m=i.getArray(t.renderable.getScaleArray()).getData()),null!=t.renderable.getOrientationArray()&amp;&amp;i.hasArray(t.renderable.getOrientationArray())?h=i.getArray(t.renderable.getOrientationArray()).getData():tm([&quot;Error setting orientationArray.\\n&quot;,&quot;You have to specify the stick orientation&quot;]);const v=[0,1,3,0,3,2,2,3,5,2,5,4];let T=0,x=0,y=0,b=0;for(let e=0;e&lt;l;++e){let n=t.renderable.getLength(),r=t.renderable.getRadius();m&amp;&amp;(n=m[2*e],r=m[2*e+1]);for(let t=0;t&lt;v.length;++t)T=3*e,f[y++]=c[T++],f[y++]=c[T++],f[y++]=c[T++],T=3*e,f[y++]=h[T++]*n,f[y++]=h[T++]*n,f[y++]=h[T++]*n,f[y++]=r,g[b++]=v[t]%2*255,g[b++]=v[t]&gt;=4?255:0,g[b++]=v[t]&gt;=2?255:0,g[b++]=255,x=e*p,d&amp;&amp;(g[b++]=d[x],g[b++]=d[x+1],g[b++]=d[x+2],g[b++]=d[x+3])}a.setElementCount(y/7),a.upload(f,Zu.ARRAY_BUFFER),a.getColorBO().upload(g,Zu.ARRAY_BUFFER),t.VBOBuildTime.modified()}}(e,t)}),&quot;vtkOpenGLStickMapper&quot;);vn(&quot;vtkStickMapper&quot;,rm);const om=[];om[&quot;-&quot;.charCodeAt(0)]=62,om[&quot;_&quot;.charCodeAt(0)]=63;const am=&quot;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/&quot;;for(let e=0;e&lt;64;e++)om[am.charCodeAt(e)]=e;function im(e){return void 0!==om[e.charCodeAt(0)]}function sm(e,t,n,r){const{start:o,count:a}=t,i=a%4,s=Math.floor(a/4);let l=o,c=null,u=n;for(let t=0;t&lt;s;t++){for(;!im(e[l]);)l++;for(c=om[e.charCodeAt(l++)]&lt;&lt;18;!im(e[l]);)l++;for(c|=om[e.charCodeAt(l++)]&lt;&lt;12;!im(e[l]);)l++;for(c|=om[e.charCodeAt(l++)]&lt;&lt;6;!im(e[l]);)l++;c|=om[e.charCodeAt(l++)],r[u++]=c&gt;&gt;16&amp;255,r[u++]=c&gt;&gt;8&amp;255,r[u++]=255&amp;c}switch(i){case 3:for(;!im(e[l]);)l++;for(c=om[e.charCodeAt(l++)]&lt;&lt;10;!im(e[l]);)l++;for(c|=om[e.charCodeAt(l++)]&lt;&lt;4;!im(e[l]);)l++;c|=om[e.charCodeAt(l++)]&gt;&gt;2,r[u++]=c&gt;&gt;8&amp;255,r[u++]=255&amp;c;break;case 2:for(;!im(e[l]);)l++;for(c=om[e.charCodeAt(l++)]&lt;&lt;2;!im(e[l]);)l++;c|=om[e.charCodeAt(l++)]&gt;&gt;4,r[u++]=255&amp;c;break;case 1:throw new Error(&quot;BASE64: remain 1 should not happen&quot;)}return u}function lm(e,t,n){const r=(e&lt;&lt;16)+(t&lt;&lt;8)+n;return am[r&gt;&gt;18]+am[r&gt;&gt;12&amp;63]+am[r&gt;&gt;6&amp;63]+am[63&amp;r]}function cm(e){const t=new Uint8Array(e),n=e.byteLength%3,r=e.byteLength-n,o=Array(r/3);for(let e=0;e&lt;o.length;e++){const n=3*e;o[e]=lm(t[n],t[n+1],t[n+2])}if(n&gt;0){const e=lm(t[r],t[r+1]||0,t[r+2]||0);1===n?o.push(`${e.substr(0,2)}==`):2===n&amp;&amp;o.push(`${e.substr(0,3)}=`)}return o.join(&quot;&quot;)}var um={toArrayBuffer:function(e){const t=function(e){const t=e.length,n=[];let r=null;for(let o=0;o&lt;t;o++)im(e[o])?(r||(r={start:o,count:0}),r.count++,r.end=o):&quot;=&quot;===e[o]&amp;&amp;r&amp;&amp;(n.push(r),r=null);return r&amp;&amp;n.push(r),n}(e),n=t[t.length-1].end+1,r=(4-n%4)%4,o=new ArrayBuffer(3*(n+r)/4-r),a=new Uint8Array(o);let i=0;for(let n=0;n&lt;t.length;n++)i+=sm(e,t[n],i,a),i+=(4-t[n].count%4)%4;return o},fromArrayBuffer:cm};const dm={};function pm(e,t){dm[e]=t}var fm={get:function(e=&quot;http&quot;,t={}){return dm[e](t)},has:function(e){return!!dm[e]},registerType:pm},gm=Uint8Array,mm=Uint16Array,hm=Uint32Array,vm=new gm([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),Tm=new gm([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),xm=new gm([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),ym=function(e,t){for(var n=new mm(31),r=0;r&lt;31;++r)n[r]=t+=1&lt;&lt;e[r-1];var o=new hm(n[30]);for(r=1;r&lt;30;++r)for(var a=n[r];a&lt;n[r+1];++a)o[a]=a-n[r]&lt;&lt;5|r;return[n,o]},bm=ym(vm,2),Am=bm[0],Cm=bm[1];Am[28]=258,Cm[258]=28;for(var Sm=ym(Tm,0)[0],Pm=new mm(32768),wm=0;wm&lt;32768;++wm){var Im=(43690&amp;wm)&gt;&gt;&gt;1|(21845&amp;wm)&lt;&lt;1;Im=(61680&amp;(Im=(52428&amp;Im)&gt;&gt;&gt;2|(13107&amp;Im)&lt;&lt;2))&gt;&gt;&gt;4|(3855&amp;Im)&lt;&lt;4,Pm[wm]=((65280&amp;Im)&gt;&gt;&gt;8|(255&amp;Im)&lt;&lt;8)&gt;&gt;&gt;1}var Om=function(e,t,n){for(var r=e.length,o=0,a=new mm(t);o&lt;r;++o)e[o]&amp;&amp;++a[e[o]-1];var i,s=new mm(t);for(o=0;o&lt;t;++o)s[o]=s[o-1]+a[o-1]&lt;&lt;1;if(n){i=new mm(1&lt;&lt;t);var l=15-t;for(o=0;o&lt;r;++o)if(e[o])for(var c=o&lt;&lt;4|e[o],u=t-e[o],d=s[e[o]-1]++&lt;&lt;u,p=d|(1&lt;&lt;u)-1;d&lt;=p;++d)i[Pm[d]&gt;&gt;&gt;l]=c}else for(i=new mm(r),o=0;o&lt;r;++o)e[o]&amp;&amp;(i[o]=Pm[s[e[o]-1]++]&gt;&gt;&gt;15-e[o]);return i},Rm=new gm(288);for(wm=0;wm&lt;144;++wm)Rm[wm]=8;for(wm=144;wm&lt;256;++wm)Rm[wm]=9;for(wm=256;wm&lt;280;++wm)Rm[wm]=7;for(wm=280;wm&lt;288;++wm)Rm[wm]=8;var Mm=new gm(32);for(wm=0;wm&lt;32;++wm)Mm[wm]=5;var Dm=Om(Rm,9,1),Em=Om(Mm,5,1),Vm=function(e){for(var t=e[0],n=1;n&lt;e.length;++n)e[n]&gt;t&amp;&amp;(t=e[n]);return t},Lm=function(e,t,n){var r=t/8|0;return(e[r]|e[r+1]&lt;&lt;8)&gt;&gt;(7&amp;t)&amp;n},Bm=function(e,t){var n=t/8|0;return(e[n]|e[n+1]&lt;&lt;8|e[n+2]&lt;&lt;16)&gt;&gt;(7&amp;t)},Fm=function(e,t,n){(null==t||t&lt;0)&amp;&amp;(t=0),(null==n||n&gt;e.length)&amp;&amp;(n=e.length);var r=new(2==e.BYTES_PER_ELEMENT?mm:4==e.BYTES_PER_ELEMENT?hm:gm)(n-t);return r.set(e.subarray(t,n)),r},Nm=[&quot;unexpected EOF&quot;,&quot;invalid block type&quot;,&quot;invalid length/literal&quot;,&quot;invalid distance&quot;,&quot;stream finished&quot;,&quot;no stream handler&quot;,,&quot;no callback&quot;,&quot;invalid UTF-8 data&quot;,&quot;extra field too long&quot;,&quot;date not in range 1980-2099&quot;,&quot;filename too long&quot;,&quot;stream finishing&quot;,&quot;invalid zip data&quot;],km=function(e,t,n){var r=new Error(t||Nm[e]);if(r.code=e,Error.captureStackTrace&amp;&amp;Error.captureStackTrace(r,km),!n)throw r;return r},Gm=function(e,t,n){var r=e.length;if(!r||n&amp;&amp;n.f&amp;&amp;!n.l)return t||new gm(0);var o=!t||n,a=!n||n.i;n||(n={}),t||(t=new gm(3*r));var i=function(e){var n=t.length;if(e&gt;n){var r=new gm(Math.max(2*n,e));r.set(t),t=r}},s=n.f||0,l=n.p||0,c=n.b||0,u=n.l,d=n.d,p=n.m,f=n.n,g=8*r;do{if(!u){s=Lm(e,l,1);var m=Lm(e,l+1,3);if(l+=3,!m){var h=e[(I=4+((l+7)/8|0))-4]|e[I-3]&lt;&lt;8,v=I+h;if(v&gt;r){a&amp;&amp;km(0);break}o&amp;&amp;i(c+h),t.set(e.subarray(I,v),c),n.b=c+=h,n.p=l=8*v,n.f=s;continue}if(1==m)u=Dm,d=Em,p=9,f=5;else if(2==m){var T=Lm(e,l,31)+257,x=Lm(e,l+10,15)+4,y=T+Lm(e,l+5,31)+1;l+=14;for(var b=new gm(y),A=new gm(19),C=0;C&lt;x;++C)A[xm[C]]=Lm(e,l+3*C,7);l+=3*x;var S=Vm(A),P=(1&lt;&lt;S)-1,w=Om(A,S,1);for(C=0;C&lt;y;){var I,O=w[Lm(e,l,P)];if(l+=15&amp;O,(I=O&gt;&gt;&gt;4)&lt;16)b[C++]=I;else{var R=0,M=0;for(16==I?(M=3+Lm(e,l,3),l+=2,R=b[C-1]):17==I?(M=3+Lm(e,l,7),l+=3):18==I&amp;&amp;(M=11+Lm(e,l,127),l+=7);M--;)b[C++]=R}}var D=b.subarray(0,T),E=b.subarray(T);p=Vm(D),f=Vm(E),u=Om(D,p,1),d=Om(E,f,1)}else km(1);if(l&gt;g){a&amp;&amp;km(0);break}}o&amp;&amp;i(c+131072);for(var V=(1&lt;&lt;p)-1,L=(1&lt;&lt;f)-1,B=l;;B=l){var F=(R=u[Bm(e,l)&amp;V])&gt;&gt;&gt;4;if((l+=15&amp;R)&gt;g){a&amp;&amp;km(0);break}if(R||km(2),F&lt;256)t[c++]=F;else{if(256==F){B=l,u=null;break}var N=F-254;if(F&gt;264){var k=vm[C=F-257];N=Lm(e,l,(1&lt;&lt;k)-1)+Am[C],l+=k}var G=d[Bm(e,l)&amp;L],U=G&gt;&gt;&gt;4;G||km(3),l+=15&amp;G;E=Sm[U];if(U&gt;3){k=Tm[U];E+=Bm(e,l)&amp;(1&lt;&lt;k)-1,l+=k}if(l&gt;g){a&amp;&amp;km(0);break}o&amp;&amp;i(c+131072);for(var _=c+N;c&lt;_;c+=4)t[c]=t[c-E],t[c+1]=t[c+1-E],t[c+2]=t[c+2-E],t[c+3]=t[c+3-E];c=_}}n.l=u,n.p=B,n.b=c,n.f=s,u&amp;&amp;(s=1,n.m=p,n.d=d,n.n=f)}while(!s);return c==t.length?t:Fm(t,0,c)},Um=new gm(0),_m=function(e,t){return e[t]|e[t+1]&lt;&lt;8},Km=function(e,t){return(e[t]|e[t+1]&lt;&lt;8|e[t+2]&lt;&lt;16|e[t+3]&lt;&lt;24)&gt;&gt;&gt;0},zm=function(e,t){return Km(e,t)+4294967296*Km(e,t+4)};function Wm(e,t){return Gm(e,t)}function Hm(e,t){return Gm(e.subarray(function(e){31==e[0]&amp;&amp;139==e[1]&amp;&amp;8==e[2]||km(6,&quot;invalid gzip data&quot;);var t=e[3],n=10;4&amp;t&amp;&amp;(n+=e[10]|2+(e[11]&lt;&lt;8));for(var r=(t&gt;&gt;3&amp;1)+(t&gt;&gt;4&amp;1);r&gt;0;r-=!e[n++]);return n+(2&amp;t)}(e),-8),t||new gm((r=(n=e).length,(n[r-4]|n[r-3]&lt;&lt;8|n[r-2]&lt;&lt;16|n[r-1]&lt;&lt;24)&gt;&gt;&gt;0)));var n,r}function jm(e,t){return Gm(((8!=(15&amp;(n=e)[0])||n[0]&gt;&gt;&gt;4&gt;7||(n[0]&lt;&lt;8|n[1])%31)&amp;&amp;km(6,&quot;invalid zlib data&quot;),32&amp;n[1]&amp;&amp;km(6,&quot;invalid zlib data: preset dictionaries not supported&quot;),e.subarray(2,-4)),t);var n}function Xm(e,t){return 31==e[0]&amp;&amp;139==e[1]&amp;&amp;8==e[2]?Hm(e,t):8!=(15&amp;e[0])||e[0]&gt;&gt;4&gt;7||(e[0]&lt;&lt;8|e[1])%31?Wm(e,t):jm(e,t)}var qm=&quot;undefined&quot;!=typeof TextEncoder&amp;&amp;new TextEncoder,Ym=&quot;undefined&quot;!=typeof TextDecoder&amp;&amp;new TextDecoder;try{Ym.decode(Um,{stream:!0})}catch(e){}function Jm(e,t){if(t){for(var n=&quot;&quot;,r=0;r&lt;e.length;r+=16384)n+=String.fromCharCode.apply(null,e.subarray(r,r+16384));return n}if(Ym)return Ym.decode(e);var o=function(e){for(var t=&quot;&quot;,n=0;;){var r=e[n++],o=(r&gt;127)+(r&gt;223)+(r&gt;239);if(n+o&gt;e.length)return[t,Fm(e,n-1)];o?3==o?(r=((15&amp;r)&lt;&lt;18|(63&amp;e[n++])&lt;&lt;12|(63&amp;e[n++])&lt;&lt;6|63&amp;e[n++])-65536,t+=String.fromCharCode(55296|r&gt;&gt;10,56320|1023&amp;r)):t+=1&amp;o?String.fromCharCode((31&amp;r)&lt;&lt;6|63&amp;e[n++]):String.fromCharCode((15&amp;r)&lt;&lt;12|(63&amp;e[n++])&lt;&lt;6|63&amp;e[n++]):t+=String.fromCharCode(r)}}(e),a=o[0];return o[1].length&amp;&amp;km(8),a}var Zm=function(e,t){return t+30+_m(e,t+26)+_m(e,t+28)},Qm=function(e,t,n){var r=_m(e,t+28),o=Jm(e.subarray(t+46,t+46+r),!(2048&amp;_m(e,t+8))),a=t+46+r,i=Km(e,t+20),s=n&amp;&amp;4294967295==i?$m(e,a):[i,Km(e,t+24),Km(e,t+42)],l=s[0],c=s[1],u=s[2];return[_m(e,t+10),l,c,o,a+_m(e,t+30)+_m(e,t+32),u]},$m=function(e,t){for(;1!=_m(e,t);t+=4+_m(e,t+2));return[zm(e,t+12),zm(e,t+4),zm(e,t+20)]};function eh(e,t){for(var n={},r=e.length-22;101010256!=Km(e,r);--r)(!r||e.length-r&gt;65558)&amp;&amp;km(13);var o=_m(e,r+8);if(!o)return{};var a=Km(e,r+16),i=4294967295==a;i&amp;&amp;(r=Km(e,r-12),101075792!=Km(e,r)&amp;&amp;km(13),o=Km(e,r+32),a=Km(e,r+48));for(var s=t&amp;&amp;t.filter,l=0;l&lt;o;++l){var c=Qm(e,a,i),u=c[0],d=c[1],p=c[2],f=c[3],g=c[4],m=c[5],h=Zm(e,m);a=g,s&amp;&amp;!s({name:f,size:d,originalSize:p,compression:u})||(u?8==u?n[f]=Wm(e.subarray(h,h+d),new gm(p)):km(14,&quot;unknown compression type &quot;+u):n[f]=Fm(e,h,h+d))}return n}function th(){const e=new ArrayBuffer(4),t=new Uint8Array(e),n=new Uint32Array(e);return t[0]=161,t[1]=178,t[2]=195,t[3]=212,3569595041===n[0]?&quot;LittleEndian&quot;:2712847316===n[0]?&quot;BigEndian&quot;:null}var nh={ENDIANNESS:th(),getEndianness:th,swapBytes:function(e,t){if(t&lt;2)return;const n=new Int8Array(e),r=n.length,o=[];for(let e=0;e&lt;r;e+=t){for(let r=0;r&lt;t;r++)o.push(n[e+r]);for(let r=0;r&lt;t;r++)n[e+r]=o.pop()}}};const{vtkErrorMacro:rh,vtkDebugMacro:oh}=sn;let ah=0;function ih(e,t,n={}){const r=new XMLHttpRequest;return r.open(e,t,!0),n.headers&amp;&amp;Object.entries(n.headers).forEach((([e,t])=&gt;r.setRequestHeader(e,t))),n.progressCallback&amp;&amp;r.addEventListener(&quot;progress&quot;,n.progressCallback),r}const sh={fetchArray:function(e,t,n,r={}){return n.ref&amp;&amp;!n.ref.pending?new Promise(((o,a)=&gt;{let i=null;i=n.ref.url?n.ref.url:[t,n.ref.basepath,r.compression?`${n.ref.id}.gz`:n.ref.id].join(&quot;/&quot;);const s=ih(&quot;GET&quot;,i,r);s.onreadystatechange=t=&gt;{1===s.readyState&amp;&amp;(n.ref.pending=!0,1==++ah&amp;&amp;e?.invokeBusy&amp;&amp;e.invokeBusy(!0)),4===s.readyState&amp;&amp;(n.ref.pending=!1,200===s.status||0===s.status?(n.buffer=s.response,r.compression&amp;&amp;(&quot;string&quot;===n.dataType||&quot;JSON&quot;===n.dataType?n.buffer=Jm(Xm(new Uint8Array(n.buffer))):n.buffer=Xm(new Uint8Array(n.buffer)).buffer),&quot;JSON&quot;===n.ref.encode?n.values=JSON.parse(n.buffer):(nh.ENDIANNESS!==n.ref.encode&amp;&amp;nh.ENDIANNESS&amp;&amp;(oh(`Swap bytes of ${n.name}`),nh.swapBytes(n.buffer,gs[n.dataType])),n.values=sn.newTypedArray(n.dataType,n.buffer)),n.values.length!==n.size&amp;&amp;rh(`Error in FetchArray: ${n.name}, does not have the proper array size. Got ${n.values.length}, instead of ${n.size}`),delete n.ref,0==--ah&amp;&amp;e?.invokeBusy&amp;&amp;e.invokeBusy(!1),e?.modified&amp;&amp;e.modified(),o(n)):a({xhr:s,e:t}))},s.responseType=r.compression||&quot;string&quot;!==n.dataType?&quot;arraybuffer&quot;:&quot;text&quot;,s.send()})):Promise.resolve(n)},fetchJSON:function(e,t,n={}){return new Promise(((r,o)=&gt;{const a=ih(&quot;GET&quot;,t,n);a.onreadystatechange=t=&gt;{1===a.readyState&amp;&amp;1==++ah&amp;&amp;e?.invokeBusy&amp;&amp;e.invokeBusy(!0),4===a.readyState&amp;&amp;(0==--ah&amp;&amp;e?.invokeBusy&amp;&amp;e.invokeBusy(!1),200===a.status||0===a.status?n.compression?r(JSON.parse(Jm(Xm(new Uint8Array(a.response))))):r(JSON.parse(a.responseText)):o({xhr:a,e:t}))},a.responseType=n.compression?&quot;arraybuffer&quot;:&quot;text&quot;,a.send()}))},fetchText:function(e,t,n={}){return n&amp;&amp;n.compression&amp;&amp;&quot;gz&quot;!==n.compression&amp;&amp;(rh(&quot;Supported algorithms are: [gz]&quot;),rh(`Unkown compression algorithm: ${n.compression}`)),new Promise(((r,o)=&gt;{const a=ih(&quot;GET&quot;,t,n);a.onreadystatechange=t=&gt;{1===a.readyState&amp;&amp;1==++ah&amp;&amp;e?.invokeBusy&amp;&amp;e.invokeBusy(!0),4===a.readyState&amp;&amp;(0==--ah&amp;&amp;e?.invokeBusy&amp;&amp;e.invokeBusy(!1),200===a.status||0===a.status?n.compression?r(Jm(Xm(new Uint8Array(a.response)))):r(a.responseText):o({xhr:a,e:t}))},a.responseType=n.compression?&quot;arraybuffer&quot;:&quot;text&quot;,a.send()}))},fetchBinary:function(e,t={}){return t&amp;&amp;t.compression&amp;&amp;&quot;gz&quot;!==t.compression&amp;&amp;(rh(&quot;Supported algorithms are: [gz]&quot;),rh(`Unkown compression algorithm: ${t.compression}`)),new Promise(((n,r)=&gt;{const o=ih(&quot;GET&quot;,e,t);o.onreadystatechange=e=&gt;{4===o.readyState&amp;&amp;(200===o.status||0===o.status?t.compression?n(Xm(new Uint8Array(o.response)).buffer):n(o.response):r({xhr:o,e:e}))},o.responseType=&quot;arraybuffer&quot;,o.send()}))},fetchImage:function(e,t,n={}){return new Promise(((e,r)=&gt;{const o=new Image;n.crossOrigin&amp;&amp;(o.crossOrigin=n.crossOrigin),o.onload=()=&gt;e(o),o.onerror=r,o.src=t}))}};pm(&quot;http&quot;,(e=&gt;sh));const{vtkDebugMacro:lh}=sn;const ch={position:[0,0,1],focalPoint:[0,0,0],viewUp:[0,1,0],directionOfProjection:[0,0,-1],parallelProjection:!1,useHorizontalViewAngle:!1,viewAngle:30,parallelScale:1,clippingRange:[.01,1000.01],windowCenter:[0,0],viewPlaneNormal:[0,0,1],useOffAxisProjection:!1,screenBottomLeft:[-.5,-.5,-.5],screenBottomRight:[.5,-.5,-.5],screenTopRight:[.5,.5,-.5],freezeFocalPoint:!1,projectionMatrix:null,viewMatrix:null,modelTransformMatrix:null,cameraLightTransform:v(),physicalTranslation:[0,0,0],physicalScale:1,physicalViewUp:[0,1,0],physicalViewNorth:[0,0,-1]};function uh(e,t,n={}){Object.assign(t,ch,n),sn.obj(e,t),sn.get(e,t,[&quot;distance&quot;]),sn.setGet(e,t,[&quot;parallelProjection&quot;,&quot;useHorizontalViewAngle&quot;,&quot;viewAngle&quot;,&quot;parallelScale&quot;,&quot;useOffAxisProjection&quot;,&quot;freezeFocalPoint&quot;,&quot;physicalScale&quot;]),sn.getArray(e,t,[&quot;directionOfProjection&quot;,&quot;viewPlaneNormal&quot;,&quot;position&quot;,&quot;focalPoint&quot;]),sn.setGetArray(e,t,[&quot;clippingRange&quot;,&quot;windowCenter&quot;],2),sn.setGetArray(e,t,[&quot;viewUp&quot;,&quot;screenBottomLeft&quot;,&quot;screenBottomRight&quot;,&quot;screenTopRight&quot;,&quot;physicalTranslation&quot;,&quot;physicalViewUp&quot;,&quot;physicalViewNorth&quot;],3),function(e,t){t.classHierarchy.push(&quot;vtkCamera&quot;);const n=new Float64Array(3),r=new Float64Array([0,0,-1]),o=new Float64Array([0,1,0]),a=x(new Float64Array(16)),i=x(new Float64Array(16)),s=new Float64Array(3),l=new Float64Array(3),c=new Float64Array(3),u=x(new Float64Array(16)),d=x(new Float64Array(16)),p=new Float64Array(3),f=new Float64Array(3);function g(){t.viewPlaneNormal[0]=-t.directionOfProjection[0],t.viewPlaneNormal[1]=-t.directionOfProjection[1],t.viewPlaneNormal[2]=-t.directionOfProjection[2]}e.orthogonalizeViewUp=()=&gt;{const n=e.getViewMatrix();t.viewUp[0]=n[4],t.viewUp[1]=n[5],t.viewUp[2]=n[6],e.modified()},e.setPosition=(n,r,o)=&gt;{n===t.position[0]&amp;&amp;r===t.position[1]&amp;&amp;o===t.position[2]||(t.position[0]=n,t.position[1]=r,t.position[2]=o,e.computeDistance(),e.modified())},e.setFocalPoint=(n,r,o)=&gt;{n===t.focalPoint[0]&amp;&amp;r===t.focalPoint[1]&amp;&amp;o===t.focalPoint[2]||(t.focalPoint[0]=n,t.focalPoint[1]=r,t.focalPoint[2]=o,e.computeDistance(),e.modified())},e.setDistance=n=&gt;{if(t.distance===n)return;t.distance=n,t.distance&lt;1e-20&amp;&amp;(t.distance=1e-20,lh(&quot;Distance is set to minimum.&quot;));const r=t.directionOfProjection;t.focalPoint[0]=t.position[0]+r[0]*t.distance,t.focalPoint[1]=t.position[1]+r[1]*t.distance,t.focalPoint[2]=t.position[2]+r[2]*t.distance,e.modified()},e.computeDistance=()=&gt;{const e=t.focalPoint[0]-t.position[0],n=t.focalPoint[1]-t.position[1],r=t.focalPoint[2]-t.position[2];if(t.distance=Math.sqrt(e*e+n*n+r*r),t.distance&lt;1e-20){t.distance=1e-20,lh(&quot;Distance is set to minimum.&quot;);const e=t.directionOfProjection;t.focalPoint[0]=t.position[0]+e[0]*t.distance,t.focalPoint[1]=t.position[1]+e[1]*t.distance,t.focalPoint[2]=t.position[2]+e[2]*t.distance}t.directionOfProjection[0]=e/t.distance,t.directionOfProjection[1]=n/t.distance,t.directionOfProjection[2]=r/t.distance,g()},e.dolly=n=&gt;{if(n&lt;=0)return;const r=t.distance/n;e.setPosition(t.focalPoint[0]-r*t.directionOfProjection[0],t.focalPoint[1]-r*t.directionOfProjection[1],t.focalPoint[2]-r*t.directionOfProjection[2])},e.roll=n=&gt;{const r=t.position,o=t.focalPoint,a=t.viewUp,i=new Float64Array([a[0],a[1],a[2],0]);x(u);const s=new Float64Array([o[0]-r[0],o[1]-r[1],o[2]-r[2]]);P(u,u,wo(n),s),de(i,i,u),t.viewUp[0]=i[0],t.viewUp[1]=i[1],t.viewUp[2]=i[2],e.modified()},e.azimuth=n=&gt;{const r=t.focalPoint;x(d),C(d,d,r),P(d,d,wo(n),t.viewUp),C(d,d,[-r[0],-r[1],-r[2]]),oe(p,t.position,d),e.setPosition(p[0],p[1],p[2])},e.yaw=n=&gt;{const r=t.position;x(d),C(d,d,r),P(d,d,wo(n),t.viewUp),C(d,d,[-r[0],-r[1],-r[2]]),oe(f,t.focalPoint,d),e.setFocalPoint(f[0],f[1],f[2])},e.elevation=n=&gt;{const r=t.focalPoint,o=e.getViewMatrix(),a=[-o[0],-o[1],-o[2]];x(d),C(d,d,r),P(d,d,wo(n),a),C(d,d,[-r[0],-r[1],-r[2]]),oe(p,t.position,d),e.setPosition(p[0],p[1],p[2])},e.pitch=n=&gt;{const r=t.position,o=e.getViewMatrix(),a=[o[0],o[1],o[2]];x(d),C(d,d,r),P(d,d,wo(n),a),C(d,d,[-r[0],-r[1],-r[2]]),oe(f,t.focalPoint,d),e.setFocalPoint(...f)},e.zoom=n=&gt;{n&lt;=0||(t.parallelProjection?t.parallelScale/=n:t.viewAngle/=n,e.modified())},e.translate=(n,r,o)=&gt;{const a=[n,r,o];ko(t.position,a,t.position),ko(t.focalPoint,a,t.focalPoint),e.computeDistance(),e.modified()},e.applyTransform=n=&gt;{const r=[...t.viewUp,1],o=[],a=[],i=[];r[0]+=t.position[0],r[1]+=t.position[1],r[2]+=t.position[2],de(o,[...t.position,1],n),de(a,[...t.focalPoint,1],n),de(i,r,n),i[0]-=o[0],i[1]-=o[1],i[2]-=o[2],e.setPosition(...o.slice(0,3)),e.setFocalPoint(...a.slice(0,3)),e.setViewUp(...i.slice(0,3))},e.getThickness=()=&gt;t.clippingRange[1]-t.clippingRange[0],e.setThickness=n=&gt;{let r=n;r&lt;1e-20&amp;&amp;(r=1e-20,lh(&quot;Thickness is set to minimum.&quot;)),e.setClippingRange(t.clippingRange[0],t.clippingRange[0]+r)},e.setThicknessFromFocalPoint=n=&gt;{let r=n;r&lt;1e-20&amp;&amp;(r=1e-20,lh(&quot;Thickness is set to minimum.&quot;)),e.setClippingRange(t.distance-r/2,t.distance+r/2)},e.setRoll=e=&gt;{},e.getRoll=()=&gt;{},e.setObliqueAngles=(e,t)=&gt;{},e.getOrientation=()=&gt;{},e.getOrientationWXYZ=()=&gt;{},e.getFrustumPlanes=(t=1,n=new Float64Array(24))=&gt;{const r=[[1,0,0,1],[-1,0,0,1],[0,1,0,1],[0,-1,0,1],[0,0,1,1],[0,0,-1,1]],o=e.getCompositeProjectionMatrix(t,-1,1);for(let e=0;e&lt;6;e++)de(r[e],r[e],o),Xo(r[e]),n[4*e+0]=r[e][0],n[4*e+1]=r[e][1],n[4*e+2]=r[e][2],n[4*e+3]=r[e][3];return n},e.getCameraLightTransformMatrix=e=&gt;(T(e,t.cameraLightTransform),e),e.computeCameraLightTransform=()=&gt;{T(a,e.getViewMatrix()),b(a,a),M(i,[t.distance,t.distance,t.distance]),A(a,a,i),x(t.cameraLightTransform),C(t.cameraLightTransform,a,[0,0,-1])},e.deepCopy=e=&gt;{},e.physicalOrientationToWorldDirection=e=&gt;{const t=he(e[0],e[1],e[2],e[3]),n=pe(),r=he(0,0,1,0);var o,a;return a=t,(o=n)[0]=-a[0],o[1]=-a[1],o[2]=-a[2],o[3]=a[3],ge(r,t,r),ge(r,r,n),[r[0],r[1],r[2]]},e.getPhysicalToWorldMatrix=t=&gt;{e.getWorldToPhysicalMatrix(t),b(t,t)},e.getWorldToPhysicalMatrix=e=&gt;{x(e);const n=[3];Wo(t.physicalViewNorth,t.physicalViewUp,n),e[0]=n[0],e[1]=n[1],e[2]=n[2],e[4]=t.physicalViewUp[0],e[5]=t.physicalViewUp[1],e[6]=t.physicalViewUp[2],e[8]=-t.physicalViewNorth[0],e[9]=-t.physicalViewNorth[1],e[10]=-t.physicalViewNorth[2],y(e,e),Y(s,1/t.physicalScale,1/t.physicalScale,1/t.physicalScale),S(e,e,s),C(e,e,t.physicalTranslation)},e.computeViewParametersFromViewMatrix=i=&gt;{b(a,i),oe(s,n,a),e.computeDistance();const u=t.distance;e.setPosition(s[0],s[1],s[2]),oe(l,r,a),Z(l,l,s),te(l,l),e.setDirectionOfProjection(l[0],l[1],l[2]),oe(c,o,a),Z(c,c,s),te(c,c),e.setViewUp(c[0],c[1],c[2]),e.setDistance(u)},e.computeViewParametersFromPhysicalMatrix=t=&gt;{e.getWorldToPhysicalMatrix(a),A(a,t,a),e.computeViewParametersFromViewMatrix(a)},e.setModelTransformMatrix=e=&gt;{t.modelTransformMatrix=e},e.getModelTransformMatrix=()=&gt;t.modelTransformMatrix,e.setViewMatrix=n=&gt;{t.viewMatrix=n,t.viewMatrix&amp;&amp;(T(a,t.viewMatrix),e.computeViewParametersFromViewMatrix(a),y(t.viewMatrix,t.viewMatrix))},e.getViewMatrix=()=&gt;{if(t.viewMatrix)return t.modelTransformMatrix?(A(a,t.viewMatrix,t.modelTransformMatrix),a):t.viewMatrix;_(a,t.position,t.focalPoint,t.viewUp),y(a,a);const e=new Float64Array(16);return t.modelTransformMatrix?A(e,a,t.modelTransformMatrix):T(e,a),e},e.setProjectionMatrix=e=&gt;{t.projectionMatrix=e},e.getProjectionMatrix=(e,n,r)=&gt;{const o=new Float64Array(16);if(x(o),t.projectionMatrix){const e=1/t.physicalScale;return Y(s,e,e,e),T(o,t.projectionMatrix),S(o,o,s),y(o,o),o}x(a);const i=t.clippingRange[1]-t.clippingRange[0],l=[t.clippingRange[0]+(n+1)*i/2,t.clippingRange[0]+(r+1)*i/2];if(t.parallelProjection){const n=t.parallelScale*e,r=t.parallelScale,o=(t.windowCenter[0]-1)*n,i=(t.windowCenter[0]+1)*n,s=(t.windowCenter[1]-1)*r,c=(t.windowCenter[1]+1)*r;U(a,o,i,s,c,l[0],l[1]),y(a,a)}else{if(t.useOffAxisProjection)throw new Error(&quot;Off-Axis projection is not supported at this time&quot;);{const n=Math.tan(wo(t.viewAngle)/2);let r,o;!0===t.useHorizontalViewAngle?(r=t.clippingRange[0]*n,o=t.clippingRange[0]*n/e):(r=t.clippingRange[0]*n*e,o=t.clippingRange[0]*n);const i=(t.windowCenter[0]-1)*r,s=(t.windowCenter[0]+1)*r,c=(t.windowCenter[1]-1)*o,u=(t.windowCenter[1]+1)*o,d=l[0],p=l[1];a[0]=2*d/(s-i),a[5]=2*d/(u-c),a[2]=(i+s)/(s-i),a[6]=(c+u)/(u-c),a[10]=-(d+p)/(p-d),a[14]=-1,a[11]=-2*d*p/(p-d),a[15]=0}}return T(o,a),o},e.getCompositeProjectionMatrix=(t,n,r)=&gt;{const o=e.getViewMatrix(),a=e.getProjectionMatrix(t,n,r);return A(a,o,a),a},e.setDirectionOfProjection=(e,n,r)=&gt;{if(t.directionOfProjection[0]===e&amp;&amp;t.directionOfProjection[1]===n&amp;&amp;t.directionOfProjection[2]===r)return;t.directionOfProjection[0]=e,t.directionOfProjection[1]=n,t.directionOfProjection[2]=r;const o=t.directionOfProjection;t.focalPoint[0]=t.position[0]+o[0]*t.distance,t.focalPoint[1]=t.position[1]+o[1]*t.distance,t.focalPoint[2]=t.position[2]+o[2]*t.distance,g()},e.setDeviceAngles=(n,r,o,a)=&gt;{const i=[3];Wo(t.physicalViewNorth,t.physicalViewUp,i);const s=x(new Float64Array(16));P(s,s,wo(n),t.physicalViewUp),P(s,s,wo(r),i),P(s,s,wo(o),t.physicalViewNorth),P(s,s,wo(-a),t.physicalViewUp);const l=new Float64Array([-t.physicalViewUp[0],-t.physicalViewUp[1],-t.physicalViewUp[2]]),c=new Float64Array(t.physicalViewNorth);oe(l,l,s),oe(c,c,s),e.setDirectionOfProjection(l[0],l[1],l[2]),e.setViewUp(c[0],c[1],c[2]),e.modified()},e.setOrientationWXYZ=(t,n,r,o)=&gt;{const a=x(new Float64Array(16));if(0!==t&amp;&amp;(0!==n||0!==r||0!==o)){const e=wo(t),i=pe();fe(i,[n,r,o],e),F(a,i)}const i=new Float64Array(3);oe(i,[0,0,-1],a);const s=new Float64Array(3);oe(s,[0,1,0],a),e.setDirectionOfProjection(...i),e.setViewUp(...s),e.modified()},e.computeClippingRange=e=&gt;{let n=null,r=null;n=t.viewPlaneNormal,r=t.position;const o=-n[0],a=-n[1],i=-n[2],s=-(o*r[0]+a*r[1]+i*r[2]),l=[o*e[0]+a*e[2]+i*e[4]+s,1e-18];for(let t=0;t&lt;2;t++)for(let n=0;n&lt;2;n++)for(let r=0;r&lt;2;r++){const c=o*e[r]+a*e[2+n]+i*e[4+t]+s;l[0]=c&lt;l[0]?c:l[0],l[1]=c&gt;l[1]?c:l[1]}return l}}(e,t)}var dh={newInstance:sn.newInstance(uh,&quot;vtkCamera&quot;),extend:uh};const ph={switch:!0,intensity:1,color:[1,1,1],position:[0,0,1],focalPoint:[0,0,0],positional:!1,exponent:1,coneAngle:30,coneFalloff:5,attenuationValues:[1,0,0],transformMatrix:null,lightType:&quot;SceneLight&quot;,shadowAttenuation:1,direction:[0,0,0],directionMTime:0};function fh(e,t,n={}){Object.assign(t,ph,n),sn.obj(e,t),sn.setGet(e,t,[&quot;intensity&quot;,&quot;switch&quot;,&quot;positional&quot;,&quot;exponent&quot;,&quot;coneAngle&quot;,&quot;coneFalloff&quot;,&quot;transformMatrix&quot;,&quot;lightType&quot;,&quot;shadowAttenuation&quot;,&quot;attenuationValues&quot;]),sn.setGetArray(e,t,[&quot;color&quot;,&quot;position&quot;,&quot;focalPoint&quot;,&quot;attenuationValues&quot;],3),function(e,t){t.classHierarchy.push(&quot;vtkLight&quot;);const n=new Float64Array(3);e.getTransformedPosition=()=&gt;(t.transformMatrix?oe(n,t.position,t.transformMatrix):Y(n,t.position[0],t.position[1],t.position[2]),n),e.getTransformedFocalPoint=()=&gt;(t.transformMatrix?oe(n,t.focalPoint,t.transformMatrix):Y(n,t.focalPoint[0],t.focalPoint[1],t.focalPoint[2]),n),e.getDirection=()=&gt;(t.directionMTime&lt;t.mtime&amp;&amp;(le(t.direction,t.focalPoint,t.position),jo(t.direction),t.directionMTime=t.mtime),t.direction),e.setDirection=e=&gt;{const n=new Float64Array(3);le(n,t.position,e),t.focalPoint=n},e.setDirectionAngle=(t,n)=&gt;{const r=wo(t),o=wo(n);e.setPosition(Math.cos(r)*Math.sin(o),Math.sin(r),Math.cos(r)*Math.cos(o)),e.setFocalPoint(0,0,0),e.setPositional(0)},e.setLightTypeToHeadLight=()=&gt;{e.setLightType(&quot;HeadLight&quot;)},e.setLightTypeToCameraLight=()=&gt;{e.setLightType(&quot;CameraLight&quot;)},e.setLightTypeToSceneLight=()=&gt;{e.setTransformMatrix(null),e.setLightType(&quot;SceneLight&quot;)},e.lightTypeIsHeadLight=()=&gt;&quot;HeadLight&quot;===t.lightType,e.lightTypeIsSceneLight=()=&gt;&quot;SceneLight&quot;===t.lightType,e.lightTypeIsCameraLight=()=&gt;&quot;CameraLight&quot;===t.lightType}(e,t)}var gh={newInstance:sn.newInstance(fh,&quot;vtkLight&quot;),extend:fh,LIGHT_TYPES:[&quot;HeadLight&quot;,&quot;CameraLight&quot;,&quot;SceneLight&quot;]};const{vtkErrorMacro:mh}=sn;function hh(e,t){function n(e,t=[]){t.push(e);const r=e.getNestedProps();if(r&amp;&amp;r.length)for(let e=0;e&lt;r.length;e++)n(r[e],t);return t}var r;t.classHierarchy.push(&quot;vtkViewport&quot;),e.getViewProps=()=&gt;t.props,e.hasViewProp=e=&gt;t.props.includes(e),e.addViewProp=n=&gt;{n&amp;&amp;!e.hasViewProp(n)&amp;&amp;t.props.push(n)},e.removeViewProp=e=&gt;{const n=t.props.filter((t=&gt;t!==e));t.props.length!==n.length&amp;&amp;(t.props=n)},e.removeAllViewProps=()=&gt;{t.props=[]},e.getViewPropsWithNestedProps=()=&gt;{let e=[];t.actors2D=[];for(let r=0;r&lt;t.props.length;r++){const o=t.props[r].getActors2D();o&amp;&amp;(!Array.isArray(o)||o.length&gt;0)?t.actors2D=t.actors2D.concat(o):n(t.props[r],e)}return t.actors2D.sort(((e,t)=&gt;e.getLayerNumber()-t.getLayerNumber())),e=e.concat(t.actors2D),e},e.addActor2D=e.addViewProp,e.removeActor2D=t=&gt;{e.removeViewProp(t)},e.getActors2D=()=&gt;(t.actors2D=[],t.props.forEach((e=&gt;{t.actors2D=t.actors2D.concat(e.getActors2D())})),t.actors2D),e.displayToView=()=&gt;mh(&quot;call displayToView on your view instead&quot;),e.viewToDisplay=()=&gt;mh(&quot;callviewtodisplay on your view instead&quot;),e.getSize=()=&gt;mh(&quot;call getSize on your View instead&quot;),e.normalizedDisplayToProjection=(t,n,r)=&gt;{const o=e.normalizedDisplayToNormalizedViewport(t,n,r);return e.normalizedViewportToProjection(o[0],o[1],o[2])},e.normalizedDisplayToNormalizedViewport=(e,n,r)=&gt;{const o=[t.viewport[2]-t.viewport[0],t.viewport[3]-t.viewport[1]];return[(e-t.viewport[0])/o[0],(n-t.viewport[1])/o[1],r]},e.normalizedViewportToProjection=(e,t,n)=&gt;[2*e-1,2*t-1,2*n-1],e.projectionToNormalizedDisplay=(t,n,r)=&gt;{const o=e.projectionToNormalizedViewport(t,n,r);return e.normalizedViewportToNormalizedDisplay(o[0],o[1],o[2])},e.normalizedViewportToNormalizedDisplay=(e,n,r)=&gt;{const o=[t.viewport[2]-t.viewport[0],t.viewport[3]-t.viewport[1]];return[e*o[0]+t.viewport[0],n*o[1]+t.viewport[1],r]},e.projectionToNormalizedViewport=(e,t,n)=&gt;[.5*(e+1),.5*(t+1),.5*(n+1)],e.PickPropFrom=(r=&quot;PickPropFrom&quot;,()=&gt;mh(`vtkViewport::${r} - NOT IMPLEMENTED`))}const vh={background:[0,0,0],background2:[.2,.2,.2],gradientBackground:!1,viewport:[0,0,1,1],aspect:[1,1],pixelAspect:[1,1],props:[],actors2D:[]};function Th(e,t,n={}){Object.assign(t,vh,n),sn.obj(e,t),sn.event(e,t,&quot;event&quot;),sn.setGetArray(e,t,[&quot;viewport&quot;],4),sn.setGetArray(e,t,[&quot;background&quot;,&quot;background2&quot;],3),hh(e,t)}var xh={newInstance:sn.newInstance(Th,&quot;vtkViewport&quot;),extend:Th};const{vtkDebugMacro:yh,vtkErrorMacro:bh,vtkWarningMacro:Ah}=ln;function Ch(e){return()=&gt;bh(`vtkRenderer::${e} - NOT IMPLEMENTED`)}const Sh={pickedProp:null,activeCamera:null,allBounds:[],ambient:[1,1,1],allocatedRenderTime:100,timeFactor:1,automaticLightCreation:!0,twoSidedLighting:!0,lastRenderTimeInSeconds:-1,renderWindow:null,lights:[],actors:[],volumes:[],lightFollowCamera:!0,numberOfPropsRendered:0,propArray:null,pathArray:null,layer:0,preserveColorBuffer:!1,preserveDepthBuffer:!1,computeVisiblePropBounds:Ga(),interactive:!0,nearClippingPlaneTolerance:0,clippingRangeExpansion:.05,erase:!0,draw:!0,useShadows:!1,useDepthPeeling:!1,occlusionRatio:0,maximumNumberOfPeels:4,selector:null,delegate:null,texturedBackground:!1,backgroundTexture:null,environmentTexture:null,environmentTextureDiffuseStrength:1,environmentTextureSpecularStrength:1,useEnvironmentTextureAsBackground:!1,pass:0};function Ph(e,t,n={}){for(Object.assign(t,Sh,n),xh.extend(e,t,n),t.background||(t.background=[0,0,0,1]);t.background.length&lt;3;)t.background.push(0);3===t.background.length&amp;&amp;t.background.push(1),Bt(e,t,[&quot;_renderWindow&quot;,&quot;allocatedRenderTime&quot;,&quot;timeFactor&quot;,&quot;lastRenderTimeInSeconds&quot;,&quot;numberOfPropsRendered&quot;,&quot;lastRenderingUsedDepthPeeling&quot;,&quot;selector&quot;]),Gt(e,t,[&quot;twoSidedLighting&quot;,&quot;lightFollowCamera&quot;,&quot;automaticLightCreation&quot;,&quot;erase&quot;,&quot;draw&quot;,&quot;nearClippingPlaneTolerance&quot;,&quot;clippingRangeExpansion&quot;,&quot;backingStore&quot;,&quot;interactive&quot;,&quot;layer&quot;,&quot;preserveColorBuffer&quot;,&quot;preserveDepthBuffer&quot;,&quot;useDepthPeeling&quot;,&quot;occlusionRatio&quot;,&quot;maximumNumberOfPeels&quot;,&quot;delegate&quot;,&quot;backgroundTexture&quot;,&quot;texturedBackground&quot;,&quot;environmentTexture&quot;,&quot;environmentTextureDiffuseStrength&quot;,&quot;environmentTextureSpecularStrength&quot;,&quot;useEnvironmentTextureAsBackground&quot;,&quot;useShadows&quot;,&quot;pass&quot;]),Ut(e,t,[&quot;actors&quot;,&quot;volumes&quot;,&quot;lights&quot;]),Kt(e,t,[&quot;background&quot;],4,1),zt(0,t,[&quot;renderWindow&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkRenderer&quot;);const n={type:&quot;ComputeVisiblePropBoundsEvent&quot;,renderer:e},r={type:&quot;ResetCameraClippingRangeEvent&quot;,renderer:e},o={type:&quot;ResetCameraEvent&quot;,renderer:e};e.updateCamera=()=&gt;(t.activeCamera||(yh(&quot;No cameras are on, creating one.&quot;),e.getActiveCameraAndResetIfCreated()),t.activeCamera.render(e),!0),e.updateLightsGeometryToFollowCamera=()=&gt;{const n=e.getActiveCameraAndResetIfCreated();t.lights.forEach((e=&gt;{e.lightTypeIsSceneLight()||(e.lightTypeIsHeadLight()?(e.setPositionFrom(n.getPositionByReference()),e.setFocalPointFrom(n.getFocalPointByReference()),e.modified(n.getMTime())):e.lightTypeIsCameraLight()?e.setTransformMatrix(n.getCameraLightTransformMatrix(v())):bh(&quot;light has unknown light type&quot;,e.get()))}))},e.updateLightGeometry=()=&gt;!t.lightFollowCamera||e.updateLightsGeometryToFollowCamera(),e.allocateTime=Ch(&quot;allocateTime&quot;),e.updateGeometry=Ch(&quot;updateGeometry&quot;),e.getVTKWindow=()=&gt;t._renderWindow,e.setLayer=n=&gt;{yh(e.getClassName(),e,&quot;setting Layer to &quot;,n),t.layer!==n&amp;&amp;(t.layer=n,e.modified()),e.setPreserveColorBuffer(!!n)},e.setActiveCamera=n=&gt;t.activeCamera!==n&amp;&amp;(t.activeCamera=n,e.modified(),e.invokeEvent({type:&quot;ActiveCameraEvent&quot;,camera:n}),!0),e.makeCamera=()=&gt;{const t=dh.newInstance();return e.invokeEvent({type:&quot;CreateCameraEvent&quot;,camera:t}),t},e.getActiveCamera=()=&gt;(t.activeCamera||(t.activeCamera=e.makeCamera()),t.activeCamera),e.getActiveCameraAndResetIfCreated=()=&gt;(t.activeCamera||(e.getActiveCamera(),e.resetCamera()),t.activeCamera),e.getActors=()=&gt;(t.actors=[],t.props.forEach((e=&gt;{t.actors=t.actors.concat(e.getActors())})),t.actors),e.addActor=e.addViewProp,e.removeActor=n=&gt;{t.actors=t.actors.filter((e=&gt;e!==n)),e.removeViewProp(n),e.modified()},e.removeAllActors=()=&gt;{e.getActors().forEach((t=&gt;{e.removeViewProp(t)})),t.actors=[],e.modified()},e.getVolumes=()=&gt;(t.volumes=[],t.props.forEach((e=&gt;{t.volumes=t.volumes.concat(e.getVolumes())})),t.volumes),e.addVolume=e.addViewProp,e.removeVolume=n=&gt;{t.volumes=t.volumes.filter((e=&gt;e!==n)),e.removeViewProp(n),e.modified()},e.removeAllVolumes=()=&gt;{e.getVolumes().forEach((t=&gt;{e.removeViewProp(t)})),t.volumes=[],e.modified()},e.hasLight=e=&gt;t.lights.includes(e),e.addLight=n=&gt;{n&amp;&amp;!e.hasLight(n)&amp;&amp;(t.lights.push(n),e.modified())},e.removeLight=n=&gt;{t.lights=t.lights.filter((e=&gt;e!==n)),e.modified()},e.removeAllLights=()=&gt;{t.lights=[],e.modified()},e.setLightCollection=n=&gt;{t.lights=n,e.modified()},e.makeLight=gh.newInstance,e.createLight=()=&gt;{t.automaticLightCreation&amp;&amp;(t._createdLight&amp;&amp;(e.removeLight(t._createdLight),t._createdLight.delete(),t._createdLight=null),t._createdLight=e.makeLight(),e.addLight(t._createdLight),t._createdLight.setLightTypeToHeadLight(),t._createdLight.setPosition(e.getActiveCamera().getPosition()),t._createdLight.setFocalPoint(e.getActiveCamera().getFocalPoint()))},e.normalizedDisplayToWorld=(t,n,r,o)=&gt;{let a=e.normalizedDisplayToProjection(t,n,r);return a=e.projectionToView(a[0],a[1],a[2],o),e.viewToWorld(a[0],a[1],a[2])},e.worldToNormalizedDisplay=(t,n,r,o)=&gt;{let a=e.worldToView(t,n,r);return a=e.viewToProjection(a[0],a[1],a[2],o),e.projectionToNormalizedDisplay(a[0],a[1],a[2])},e.viewToWorld=(e,n,r)=&gt;{if(null===t.activeCamera)return bh(&quot;ViewToWorld: no active camera, cannot compute view to world, returning 0,0,0&quot;),[0,0,0];const o=t.activeCamera.getViewMatrix();b(o,o),y(o,o);const a=new Float64Array([e,n,r]);return oe(a,a,o),a},e.projectionToView=(e,n,r,o)=&gt;{if(null===t.activeCamera)return bh(&quot;ProjectionToView: no active camera, cannot compute projection to view, returning 0,0,0&quot;),[0,0,0];const a=t.activeCamera.getProjectionMatrix(o,-1,1);b(a,a),y(a,a);const i=new Float64Array([e,n,r]);return oe(i,i,a),i},e.worldToView=(e,n,r)=&gt;{if(null===t.activeCamera)return bh(&quot;WorldToView: no active camera, cannot compute view to world, returning 0,0,0&quot;),[0,0,0];const o=t.activeCamera.getViewMatrix();y(o,o);const a=new Float64Array([e,n,r]);return oe(a,a,o),a},e.viewToProjection=(e,n,r,o)=&gt;{if(null===t.activeCamera)return bh(&quot;ViewToProjection: no active camera, cannot compute view to projection, returning 0,0,0&quot;),[0,0,0];const a=t.activeCamera.getProjectionMatrix(o,-1,1);y(a,a);const i=new Float64Array([e,n,r]);return oe(i,i,a),i},e.computeVisiblePropBounds=()=&gt;{t.allBounds[0]=Hi.INIT_BOUNDS[0],t.allBounds[1]=Hi.INIT_BOUNDS[1],t.allBounds[2]=Hi.INIT_BOUNDS[2],t.allBounds[3]=Hi.INIT_BOUNDS[3],t.allBounds[4]=Hi.INIT_BOUNDS[4],t.allBounds[5]=Hi.INIT_BOUNDS[5];let r=!0;e.invokeEvent(n);for(let e=0;e&lt;t.props.length;++e){const n=t.props[e];if(n.getVisibility()&amp;&amp;n.getUseBounds()){const e=n.getBounds();e&amp;&amp;Oa(e)&amp;&amp;(r=!1,e[0]&lt;t.allBounds[0]&amp;&amp;(t.allBounds[0]=e[0]),e[1]&gt;t.allBounds[1]&amp;&amp;(t.allBounds[1]=e[1]),e[2]&lt;t.allBounds[2]&amp;&amp;(t.allBounds[2]=e[2]),e[3]&gt;t.allBounds[3]&amp;&amp;(t.allBounds[3]=e[3]),e[4]&lt;t.allBounds[4]&amp;&amp;(t.allBounds[4]=e[4]),e[5]&gt;t.allBounds[5]&amp;&amp;(t.allBounds[5]=e[5]))}}return r&amp;&amp;(Ia(t.allBounds),yh(&quot;Can&#x27;t compute bounds, no 3D props are visible&quot;)),t.allBounds},e.resetCamera=(n=null)=&gt;{const r=n||e.computeVisiblePropBounds(),a=[0,0,0];if(!Oa(r))return yh(&quot;Cannot reset camera!&quot;),!1;let i=null;if(!e.getActiveCamera())return bh(&quot;Trying to reset non-existent camera&quot;),!1;i=t.activeCamera.getViewPlaneNormal(),t.activeCamera.setViewAngle(30),a[0]=(r[0]+r[1])/2,a[1]=(r[2]+r[3])/2,a[2]=(r[4]+r[5])/2;let s=r[1]-r[0],l=r[3]-r[2],c=r[5]-r[4];s*=s,l*=l,c*=c;let u=s+l+c;u=0===u?1:u,u=.5*Math.sqrt(u);const d=wo(t.activeCamera.getViewAngle()),p=u,f=u/Math.sin(.5*d),g=t.activeCamera.getViewUp();return Math.abs(zo(g,i))&gt;.999&amp;&amp;(Ah(&quot;Resetting view-up since view plane normal is parallel&quot;),t.activeCamera.setViewUp(-g[2],g[0],g[1])),t.activeCamera.setFocalPoint(a[0],a[1],a[2]),t.activeCamera.setPosition(a[0]+f*i[0],a[1]+f*i[1],a[2]+f*i[2]),e.resetCameraClippingRange(r),t.activeCamera.setParallelScale(p),t.activeCamera.setPhysicalScale(u),t.activeCamera.setPhysicalTranslation(-a[0],-a[1],-a[2]),e.invokeEvent(o),!0},e.resetCameraClippingRange=(n=null)=&gt;{const o=n||e.computeVisiblePropBounds();if(!Oa(o))return yh(&quot;Cannot reset camera clipping range!&quot;),!1;if(e.getActiveCameraAndResetIfCreated(),!t.activeCamera)return bh(&quot;Trying to reset clipping range of non-existent camera&quot;),!1;const a=t.activeCamera.computeClippingRange(o);let i=0;if(t.activeCamera.getParallelProjection())i=.2*t.activeCamera.getParallelScale();else{const e=wo(t.activeCamera.getViewAngle());i=.2*Math.tan(e/2)*a[1]}return a[1]-a[0]&lt;i&amp;&amp;(i=i-a[1]+a[0],a[1]+=i/2,a[0]-=i/2),a[0]&lt;0&amp;&amp;(a[0]=0),a[0]=.99*a[0]-(a[1]-a[0])*t.clippingRangeExpansion,a[1]=1.01*a[1]+(a[1]-a[0])*t.clippingRangeExpansion,a[0]=a[0]&gt;=a[1]?.01*a[1]:a[0],t.nearClippingPlaneTolerance||(t.nearClippingPlaneTolerance=.01),a[0]&lt;t.nearClippingPlaneTolerance*a[1]&amp;&amp;(a[0]=t.nearClippingPlaneTolerance*a[1]),t.activeCamera.setClippingRange(a[0],a[1]),e.invokeEvent(r),!1},e.setRenderWindow=e=&gt;{e!==t._renderWindow&amp;&amp;(t._vtkWindow=e,t._renderWindow=e)},e.visibleActorCount=()=&gt;t.props.filter((e=&gt;e.getVisibility())).length,e.visibleVolumeCount=e.visibleActorCount,e.getMTime=()=&gt;{let e=t.mtime;const n=t.activeCamera?t.activeCamera.getMTime():0;n&gt;e&amp;&amp;(e=n);const r=t._createdLight?t._createdLight.getMTime():0;return r&gt;e&amp;&amp;(e=r),e},e.getTransparent=()=&gt;!!t.preserveColorBuffer,e.isActiveCameraCreated=()=&gt;!!t.activeCamera}(e,t)}var wh={newInstance:Xt(Ph,&quot;vtkRenderer&quot;),extend:Ph};const Ih=Object.create(null);function Oh(e,t){Ih[e]=t}function Rh(e,t={}){return Ih[e]&amp;&amp;Ih[e](t)}const Mh={defaultViewAPI:&quot;WebGL&quot;,renderers:[],views:[],interactor:null,neverRendered:!0,numberOfLayers:1,childRenderWindows:[]};function Dh(e,t,n={}){Object.assign(t,Mh,n),sn.obj(e,t),sn.setGet(e,t,[&quot;interactor&quot;,&quot;numberOfLayers&quot;,&quot;_views&quot;,&quot;defaultViewAPI&quot;]),sn.get(e,t,[&quot;neverRendered&quot;]),sn.getArray(e,t,[&quot;renderers&quot;,&quot;childRenderWindows&quot;]),sn.moveToProtected(e,t,[&quot;views&quot;]),sn.event(e,t,&quot;completion&quot;),function(e,t){t.classHierarchy.push(&quot;vtkRenderWindow&quot;),e.addRenderer=n=&gt;{e.hasRenderer(n)||(n.setRenderWindow(e),t.renderers.push(n),e.modified())},e.removeRenderer=n=&gt;{t.renderers=t.renderers.filter((e=&gt;e!==n)),e.modified()},e.hasRenderer=e=&gt;-1!==t.renderers.indexOf(e),e.newAPISpecificView=(e,n={})=&gt;Rh(e||t.defaultViewAPI,n),e.addView=n=&gt;{e.hasView(n)||(n.setRenderable(e),t._views.push(n),e.modified())},e.removeView=n=&gt;{t._views=t._views.filter((e=&gt;e!==n)),e.modified()},e.hasView=e=&gt;-1!==t._views.indexOf(e),e.preRender=()=&gt;{t.renderers.forEach((e=&gt;{e.isActiveCameraCreated()||e.resetCamera()}))},e.render=()=&gt;{e.preRender(),t.interactor?t.interactor.render():t._views.forEach((e=&gt;e.traverseAllPasses()))},e.getStatistics=()=&gt;{const e={propCount:0,invisiblePropCount:0,gpuMemoryMB:0};return t._views.forEach((t=&gt;{t.getGraphicsMemoryInfo&amp;&amp;(e.gpuMemoryMB+=t.getGraphicsMemoryInfo()/1e6)})),t.renderers.forEach((n=&gt;{const r=n.getViewProps(),o=t._views[0].getViewNodeFor(n);r.forEach((t=&gt;{if(t.getVisibility()){e.propCount+=1;const n=t.getMapper&amp;&amp;t.getMapper();if(n&amp;&amp;n.getPrimitiveCount){const t=o.getViewNodeFor(n);if(t){t.getAllocatedGPUMemoryInBytes&amp;&amp;(e.gpuMemoryMB+=t.getAllocatedGPUMemoryInBytes()/1e6);const r=n.getPrimitiveCount();Object.keys(r).forEach((t=&gt;{e[t]||(e[t]=0),e[t]+=r[t]}))}}}else e.invisiblePropCount+=1}))})),e.str=Object.keys(e).map((t=&gt;`${t}: ${e[t]}`)).join(&quot;\\n&quot;),e},e.captureImages=(n=&quot;image/png&quot;,r={})=&gt;(sn.setImmediate(e.render),t._views.map((e=&gt;e.captureNextImage?e.captureNextImage(n,r):void 0)).filter((e=&gt;!!e))),e.addRenderWindow=n=&gt;!t.childRenderWindows.includes(n)&amp;&amp;(t.childRenderWindows.push(n),e.modified(),!0),e.removeRenderWindow=n=&gt;{const r=t.childRenderWindows.findIndex((e=&gt;e===n));return!(r&lt;0||(t.childRenderWindows.splice(r,1),e.modified(),0))}}(e,t)}var Eh={newInstance:sn.newInstance(Dh,&quot;vtkRenderWindow&quot;),extend:Dh,registerViewConstructor:Oh,listViewAPIs:function(){return Object.keys(Ih)},newAPISpecificView:Rh};const Vh={Unknown:0,LeftController:1,RightController:2},Lh={Unknown:0,Trigger:1,TrackPad:2,Grip:3,Thumbstick:4,A:5,B:6,ApplicationMenu:7};var Bh={Device:Vh,Input:Lh,Axis:{Unknown:0,TouchpadX:1,TouchpadY:2,ThumbstickX:3,ThumbstickY:4},MouseButton:{LeftButton:1,MiddleButton:2,RightButton:3}};const{Device:Fh,Input:Nh}=Bh,{vtkWarningMacro:kh,vtkErrorMacro:Gh,normalizeWheel:Uh,vtkOnceErrorMacro:_h}=sn,Kh={ctrlKey:!1,altKey:!1,shiftKey:!1},zh={&quot;xr-standard&quot;:[Nh.Trigger,Nh.Grip,Nh.TrackPad,Nh.Thumbstick,Nh.A,Nh.B]},Wh=[&quot;StartAnimation&quot;,&quot;Animation&quot;,&quot;EndAnimation&quot;,&quot;PointerEnter&quot;,&quot;PointerLeave&quot;,&quot;MouseEnter&quot;,&quot;MouseLeave&quot;,&quot;StartMouseMove&quot;,&quot;MouseMove&quot;,&quot;EndMouseMove&quot;,&quot;LeftButtonPress&quot;,&quot;LeftButtonRelease&quot;,&quot;MiddleButtonPress&quot;,&quot;MiddleButtonRelease&quot;,&quot;RightButtonPress&quot;,&quot;RightButtonRelease&quot;,&quot;KeyPress&quot;,&quot;KeyDown&quot;,&quot;KeyUp&quot;,&quot;StartMouseWheel&quot;,&quot;MouseWheel&quot;,&quot;EndMouseWheel&quot;,&quot;StartPinch&quot;,&quot;Pinch&quot;,&quot;EndPinch&quot;,&quot;StartPan&quot;,&quot;Pan&quot;,&quot;EndPan&quot;,&quot;StartRotate&quot;,&quot;Rotate&quot;,&quot;EndRotate&quot;,&quot;Button3D&quot;,&quot;Move3D&quot;,&quot;StartPointerLock&quot;,&quot;EndPointerLock&quot;,&quot;StartInteraction&quot;,&quot;Interaction&quot;,&quot;EndInteraction&quot;,&quot;AnimationFrameRateUpdate&quot;];function Hh(e){e.cancelable&amp;&amp;e.preventDefault()}function jh(e){const t=Object.create(null);return e.forEach((({pointerId:e,position:n})=&gt;{t[e]=n})),t}const Xh={renderWindow:null,interactorStyle:null,picker:null,pickingManager:null,initialized:!1,enabled:!1,enableRender:!0,currentRenderer:null,lightFollowCamera:!0,desiredUpdateRate:30,stillUpdateRate:2,container:null,recognizeGestures:!0,currentGesture:&quot;Start&quot;,animationRequest:null,lastFrameTime:.1,recentAnimationFrameRate:10,wheelTimeoutID:0,moveTimeoutID:0,lastGamepadValues:{},preventDefaultOnPointerDown:!1,preventDefaultOnPointerUp:!1,mouseScrollDebounceByPass:!1};function qh(e,t,n={}){Object.assign(t,Xh,n),sn.obj(e,t),t._animationExtendedEnd=0,sn.event(e,t,&quot;RenderEvent&quot;),Wh.forEach((n=&gt;sn.event(e,t,n))),sn.get(e,t,[&quot;initialized&quot;,&quot;interactorStyle&quot;,&quot;lastFrameTime&quot;,&quot;recentAnimationFrameRate&quot;,&quot;_view&quot;]),sn.setGet(e,t,[&quot;container&quot;,&quot;lightFollowCamera&quot;,&quot;enabled&quot;,&quot;enableRender&quot;,&quot;recognizeGestures&quot;,&quot;desiredUpdateRate&quot;,&quot;stillUpdateRate&quot;,&quot;picker&quot;,&quot;preventDefaultOnPointerDown&quot;,&quot;preventDefaultOnPointerUp&quot;,&quot;mouseScrollDebounceByPass&quot;]),sn.moveToProtected(e,t,[&quot;view&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkRenderWindowInteractor&quot;);const n={...e},r=new Set,o=new Map;let a=1,i=0;function s(n,r){t._forcedRenderer||(t.currentRenderer=e.findPokedRenderer(n,r))}e.start=()=&gt;{(t.initialized||(e.initialize(),t.initialized))&amp;&amp;e.startEventLoop()},e.setRenderWindow=e=&gt;{Gh(&quot;you want to call setView(view) instead of setRenderWindow on a vtk.js interactor&quot;)},e.setInteractorStyle=n=&gt;{t.interactorStyle!==n&amp;&amp;(null!=t.interactorStyle&amp;&amp;t.interactorStyle.setInteractor(null),t.interactorStyle=n,null!=t.interactorStyle&amp;&amp;t.interactorStyle.getInteractor()!==e&amp;&amp;t.interactorStyle.setInteractor(e))},e.initialize=()=&gt;{t.initialized=!0,e.enable(),e.render()},e.enable=()=&gt;e.setEnabled(!0),e.disable=()=&gt;e.setEnabled(!1),e.startEventLoop=()=&gt;kh(&quot;empty event loop&quot;),e.getCurrentRenderer=()=&gt;(t.currentRenderer||s(0,0),t.currentRenderer);const l=t._getScreenEventPositionFor||function(e){const n=t._view.getCanvas(),r=n.getBoundingClientRect(),a=n.width/r.width,i=n.height/r.height,l={x:a*(e.clientX-r.left),y:i*(r.height-e.clientY+r.top),z:0,movementX:a*e.movementX,movementY:i*e.movementY};return(o.size&lt;=1||!t.currentRenderer)&amp;&amp;s(l.x,l.y),l};function c(e){return{controlKey:e.ctrlKey,altKey:e.altKey,shiftKey:e.shiftKey}}function u(e){const t=c(e);return{key:e.key,keyCode:e.charCode,...t}}function d(e){return e.pointerType||&quot;&quot;}const p=()=&gt;{if(null===t.container)return;const{container:n}=t;n.addEventListener(&quot;contextmenu&quot;,Hh),n.addEventListener(&quot;wheel&quot;,e.handleWheel),n.addEventListener(&quot;DOMMouseScroll&quot;,e.handleWheel),n.addEventListener(&quot;pointerenter&quot;,e.handlePointerEnter),n.addEventListener(&quot;pointerleave&quot;,e.handlePointerLeave),n.addEventListener(&quot;pointermove&quot;,e.handlePointerMove,{passive:!1}),n.addEventListener(&quot;pointerdown&quot;,e.handlePointerDown,{passive:!1}),n.addEventListener(&quot;pointerup&quot;,e.handlePointerUp),n.addEventListener(&quot;pointercancel&quot;,e.handlePointerCancel),n.addEventListener(&quot;keypress&quot;,e.handleKeyPress),n.addEventListener(&quot;keydown&quot;,e.handleKeyDown),document.addEventListener(&quot;keyup&quot;,e.handleKeyUp),document.addEventListener(&quot;pointerlockchange&quot;,e.handlePointerLockChange),n.tabIndex=0,n.style.touchAction=&quot;none&quot;,n.style.userSelect=&quot;none&quot;,n.style.webkitTapHighlightColor=&quot;rgba(0,0,0,0)&quot;};e.bindEvents=e=&gt;{null!==e&amp;&amp;n.setContainer(e)&amp;&amp;p()};const f=()=&gt;{clearTimeout(t.moveTimeoutID),clearTimeout(t.wheelTimeoutID),t.moveTimeoutID=0,t.wheelTimeoutID=0,a=1;const{container:n}=t;n&amp;&amp;(n.removeEventListener(&quot;contextmenu&quot;,Hh),n.removeEventListener(&quot;wheel&quot;,e.handleWheel),n.removeEventListener(&quot;DOMMouseScroll&quot;,e.handleWheel),n.removeEventListener(&quot;pointerenter&quot;,e.handlePointerEnter),n.removeEventListener(&quot;pointerleave&quot;,e.handlePointerLeave),n.removeEventListener(&quot;pointermove&quot;,e.handlePointerMove,{passive:!1}),n.removeEventListener(&quot;pointerdown&quot;,e.handlePointerDown,{passive:!1}),n.removeEventListener(&quot;pointerup&quot;,e.handlePointerUp),n.removeEventListener(&quot;pointercancel&quot;,e.handlePointerCancel),n.removeEventListener(&quot;keypress&quot;,e.handleKeyPress),n.removeEventListener(&quot;keydown&quot;,e.handleKeyDown)),document.removeEventListener(&quot;keyup&quot;,e.handleKeyUp),document.removeEventListener(&quot;pointerlockchange&quot;,e.handlePointerLockChange),o.clear(),i=0};function g(t,n,r){n&amp;~r&amp;1&amp;&amp;e.leftButtonReleaseEvent(t),n&amp;~r&amp;4&amp;&amp;e.middleButtonReleaseEvent(t),n&amp;~r&amp;2&amp;&amp;e.rightButtonReleaseEvent(t),~n&amp;r&amp;1&amp;&amp;e.leftButtonPressEvent(t),~n&amp;r&amp;4&amp;&amp;e.middleButtonPressEvent(t),~n&amp;r&amp;2&amp;&amp;e.rightButtonPressEvent(t)}function m(){t._view&amp;&amp;t.enabled&amp;&amp;t.enableRender&amp;&amp;(t.inRender=!0,t._view.traverseAllPasses(),t.inRender=!1),e.invokeRenderEvent()}e.unbindEvents=()=&gt;{f(),n.setContainer(null)},e.handleKeyPress=t=&gt;{const n=u(t);e.keyPressEvent(n)},e.handleKeyDown=t=&gt;{const n=u(t);e.keyDownEvent(n)},e.handleKeyUp=t=&gt;{const n=u(t);e.keyUpEvent(n)},e.handlePointerEnter=t=&gt;{const n={...c(t),position:l(t),deviceType:d(t)};e.pointerEnterEvent(n),&quot;mouse&quot;===n.deviceType&amp;&amp;e.mouseEnterEvent(n)},e.handlePointerLeave=t=&gt;{const n={...c(t),position:l(t),deviceType:d(t)};e.pointerLeaveEvent(n),&quot;mouse&quot;===n.deviceType&amp;&amp;e.mouseLeaveEvent(n)},e.handlePointerDown=n=&gt;{if(!(n.button&gt;2||e.isPointerLocked()))switch(t.preventDefaultOnPointerDown&amp;&amp;Hh(n),n.target.hasPointerCapture(n.pointerId)&amp;&amp;n.target.releasePointerCapture(n.pointerId),t.container.setPointerCapture(n.pointerId),o.has(n.pointerId)&amp;&amp;kh(&quot;[RenderWindowInteractor] duplicate pointerId detected&quot;),o.set(n.pointerId,{pointerId:n.pointerId,position:l(n)}),n.pointerType){case&quot;pen&quot;:case&quot;touch&quot;:e.handleTouchStart(n);break;default:e.handleMouseDown(n),i=n.buttons}},e.handlePointerUp=n=&gt;{if(o.has(n.pointerId))switch(t.preventDefaultOnPointerUp&amp;&amp;Hh(n),o.delete(n.pointerId),t.container.releasePointerCapture(n.pointerId),n.pointerType){case&quot;pen&quot;:case&quot;touch&quot;:e.handleTouchEnd(n);break;default:{const t=[1,4,2][n.button]??0;g({...c(n),position:l(n),deviceType:d(n)},i&amp;~t,n.buttons&amp;~t),e.handleMouseUp(n),i=n.buttons;break}}},e.handlePointerCancel=t=&gt;{if(o.has(t.pointerId))switch(o.delete(t.pointerId),t.pointerType){case&quot;pen&quot;:case&quot;touch&quot;:e.handleTouchEnd(t);break;default:g({...c(t),position:l(t),deviceType:d(t)},i,0),i=0}},e.handlePointerMove=t=&gt;{switch(o.has(t.pointerId)&amp;&amp;(o.get(t.pointerId).position=l(t)),t.pointerType){case&quot;pen&quot;:case&quot;touch&quot;:e.handleTouchMove(t);break;default:{const n=t.buttons;n!==i&amp;&amp;(g({...c(t),position:l(t),deviceType:d(t)},i,n),i=n),e.handleMouseMove(t);break}}},e.handleMouseDown=t=&gt;{const n={...c(t),position:l(t),deviceType:d(t)};switch(t.button){case 0:e.leftButtonPressEvent(n);break;case 1:e.middleButtonPressEvent(n);break;case 2:e.rightButtonPressEvent(n);break;default:Gh(`Unknown mouse button pressed: ${t.button}`)}},e.requestPointerLock=()=&gt;{t.container&amp;&amp;t.container.requestPointerLock()},e.exitPointerLock=()=&gt;document.exitPointerLock?.(),e.isPointerLocked=()=&gt;!!t.container&amp;&amp;document.pointerLockElement===t.container,e.handlePointerLockChange=()=&gt;{e.isPointerLocked()?e.startPointerLockEvent():e.endPointerLockEvent()},e.requestAnimation=n=&gt;{void 0!==n?r.has(n)?kh(&quot;requester is already registered for animating&quot;):(r.add(n),t.animationRequest||1!==r.size||t.xrAnimation||(t._animationStartTime=Date.now(),t._animationFrameCount=0,t.animationRequest=requestAnimationFrame(e.handleAnimation),e.startAnimationEvent())):Gh(&quot;undefined requester, can not start animating&quot;)},e.extendAnimation=n=&gt;{const o=Date.now()+n;t._animationExtendedEnd=Math.max(t._animationExtendedEnd,o),t.animationRequest||0!==r.size||t.xrAnimation||(t._animationStartTime=Date.now(),t._animationFrameCount=0,t.animationRequest=requestAnimationFrame(e.handleAnimation),e.startAnimationEvent())},e.isAnimating=()=&gt;t.xrAnimation||null!==t.animationRequest,e.cancelAnimation=(n,o=!1)=&gt;{if(r.has(n))r.delete(n),t.animationRequest&amp;&amp;0===r.size&amp;&amp;Date.now()&gt;t._animationExtendedEnd&amp;&amp;(cancelAnimationFrame(t.animationRequest),t.animationRequest=null,e.endAnimationEvent(),e.render());else if(!o){const e=n&amp;&amp;n.getClassName?n.getClassName():n;kh(`${e} did not request an animation`)}},e.switchToXRAnimation=()=&gt;{t.animationRequest&amp;&amp;(cancelAnimationFrame(t.animationRequest),t.animationRequest=null),t.xrAnimation=!0},e.returnFromXRAnimation=()=&gt;{t.xrAnimation=!1,0!==r.size&amp;&amp;(t.recentAnimationFrameRate=10,t.animationRequest=requestAnimationFrame(e.handleAnimation))},e.updateXRGamepads=(n,r,o)=&gt;{n.inputSources.forEach((n=&gt;{const a=null==n.gripSpace?null:r.getPose(n.gripSpace,o),i=null==n.gripSpace?null:r.getPose(n.targetRaySpace,o),s=n.gamepad,l=n.handedness;if(s){s.index in t.lastGamepadValues||(t.lastGamepadValues[s.index]={left:{buttons:{}},right:{buttons:{}},none:{buttons:{}}});for(let r=0;r&lt;s.buttons.length;++r)r in t.lastGamepadValues[s.index][l].buttons||(t.lastGamepadValues[s.index][l].buttons[r]=!1),t.lastGamepadValues[s.index][l].buttons[r]!==s.buttons[r].pressed&amp;&amp;null!=a&amp;&amp;(e.button3DEvent({gamepad:s,position:a.transform.position,orientation:a.transform.orientation,targetPosition:i.transform.position,targetOrientation:i.transform.orientation,pressed:s.buttons[r].pressed,device:&quot;left&quot;===n.handedness?Fh.LeftController:Fh.RightController,input:zh[s.mapping]&amp;&amp;zh[s.mapping][r]?zh[s.mapping][r]:Nh.Trigger}),t.lastGamepadValues[s.index][l].buttons[r]=s.buttons[r].pressed),t.lastGamepadValues[s.index][l].buttons[r]&amp;&amp;null!=a&amp;&amp;e.move3DEvent({gamepad:s,position:a.transform.position,orientation:a.transform.orientation,targetPosition:i.transform.position,targetOrientation:i.transform.orientation,device:&quot;left&quot;===n.handedness?Fh.LeftController:Fh.RightController})}}))},e.handleMouseMove=n=&gt;{const r={...c(n),position:l(n),deviceType:d(n)};0===t.moveTimeoutID?e.startMouseMoveEvent(r):(e.mouseMoveEvent(r),clearTimeout(t.moveTimeoutID)),t.moveTimeoutID=setTimeout((()=&gt;{e.endMouseMoveEvent(),t.moveTimeoutID=0}),200)},e.handleAnimation=()=&gt;{const n=Date.now();t._animationFrameCount++,n-t._animationStartTime&gt;1e3&amp;&amp;t._animationFrameCount&gt;1&amp;&amp;(t.recentAnimationFrameRate=1e3*(t._animationFrameCount-1)/(n-t._animationStartTime),t.lastFrameTime=1/t.recentAnimationFrameRate,e.animationFrameRateUpdateEvent(),t._animationStartTime=n,t._animationFrameCount=1),e.animationEvent(),m(),r.size&gt;0||Date.now()&lt;t._animationExtendedEnd?t.animationRequest=requestAnimationFrame(e.handleAnimation):(cancelAnimationFrame(t.animationRequest),t.animationRequest=null,e.endAnimationEvent(),e.render())},e.handleWheel=n=&gt;{Hh(n);const r={...Uh(n),...c(n),position:l(n),deviceType:d(n)};0===t.wheelTimeoutID&amp;&amp;(a=Math.abs(r.spinY)&gt;=.3?Math.abs(r.spinY):1),r.spinY/=a,0===t.wheelTimeoutID?(e.startMouseWheelEvent(r),e.mouseWheelEvent(r)):(e.mouseWheelEvent(r),clearTimeout(t.wheelTimeoutID)),t.mouseScrollDebounceByPass?(e.extendAnimation(600),e.endMouseWheelEvent(),t.wheelTimeoutID=0):t.wheelTimeoutID=setTimeout((()=&gt;{e.extendAnimation(600),e.endMouseWheelEvent(),t.wheelTimeoutID=0}),200)},e.handleMouseUp=t=&gt;{const n={...c(t),position:l(t),deviceType:d(t)};switch(t.button){case 0:e.leftButtonReleaseEvent(n);break;case 1:e.middleButtonReleaseEvent(n);break;case 2:e.rightButtonReleaseEvent(n);break;default:Gh(`Unknown mouse button released: ${t.button}`)}},e.handleTouchStart=n=&gt;{const r=[...o.values()];if(t.recognizeGestures&amp;&amp;r.length&gt;1){const t=jh(o);if(2===r.length){const t={...c(Kh),position:r[0].position,deviceType:d(n)};e.leftButtonReleaseEvent(t)}e.recognizeGesture(&quot;TouchStart&quot;,t)}else if(1===r.length){const t={...c(Kh),position:l(n),deviceType:d(n)};e.leftButtonPressEvent(t)}},e.handleTouchMove=n=&gt;{const r=[...o.values()];if(t.recognizeGestures&amp;&amp;r.length&gt;1){const t=jh(o);e.recognizeGesture(&quot;TouchMove&quot;,t)}else if(1===r.length){const t={...c(Kh),position:r[0].position,deviceType:d(n)};e.mouseMoveEvent(t)}},e.handleTouchEnd=n=&gt;{const r=[...o.values()];if(t.recognizeGestures)if(0===r.length){const t={...c(Kh),position:l(n),deviceType:d(n)};e.leftButtonReleaseEvent(t)}else if(1===r.length){const t=jh(o);e.recognizeGesture(&quot;TouchEnd&quot;,t);const a={...c(Kh),position:r[0].position,deviceType:d(n)};e.leftButtonPressEvent(a)}else{const t=jh(o);e.recognizeGesture(&quot;TouchMove&quot;,t)}else if(1===r.length){const t={...c(Kh),position:r[0].position,deviceType:d(n)};e.leftButtonReleaseEvent(t)}},e.setView=n=&gt;{t._view!==n&amp;&amp;(t._view=n,t._view.getRenderable().setInteractor(e),e.modified())},e.getFirstRenderer=()=&gt;t._view?.getRenderable()?.getRenderersByReference()?.[0],e.findPokedRenderer=(e=0,n=0)=&gt;{if(!t._view)return null;const r=t._view?.getRenderable()?.getRenderers();if(!r||0===r.length)return null;r.sort(((e,t)=&gt;e.getLayer()-t.getLayer()));let o=null,a=null,i=null,s=r.length;for(;s--;){const l=r[s];if(t._view.isInViewport(e,n,l)&amp;&amp;l.getInteractive()){i=l;break}null===o&amp;&amp;l.getInteractive()&amp;&amp;(o=l),null===a&amp;&amp;t._view.isInViewport(e,n,l)&amp;&amp;(a=l)}return null===i&amp;&amp;(i=o),null===i&amp;&amp;(i=a),null==i&amp;&amp;(i=r[0]),i},e.render=()=&gt;{e.isAnimating()||t.inRender||m()},Wh.forEach((n=&gt;{const r=n.charAt(0).toLowerCase()+n.slice(1);e[`${r}Event`]=r=&gt;{if(!t.enabled)return;if(!e.getCurrentRenderer())return void _h(&quot;\\n          Can not forward events without a current renderer on the interactor.\\n        &quot;);const o={type:n,pokedRenderer:t.currentRenderer,firstRenderer:e.getFirstRenderer(),...r};e[`invoke${n}`](o)}})),e.recognizeGesture=(n,r)=&gt;{if(Object.keys(r).length&gt;2)return;if(t.startingEventPositions||(t.startingEventPositions={}),&quot;TouchStart&quot;===n)return Object.keys(r).forEach((e=&gt;{t.startingEventPositions[e]=r[e]})),void(t.currentGesture=&quot;Start&quot;);if(&quot;TouchEnd&quot;===n)return&quot;Pinch&quot;===t.currentGesture&amp;&amp;(e.render(),e.endPinchEvent()),&quot;Rotate&quot;===t.currentGesture&amp;&amp;(e.render(),e.endRotateEvent()),&quot;Pan&quot;===t.currentGesture&amp;&amp;(e.render(),e.endPanEvent()),t.currentGesture=&quot;Start&quot;,void(t.startingEventPositions={});let o=0;const a=[],i=[];Object.keys(r).forEach((e=&gt;{a[o]=r[e],i[o]=t.startingEventPositions[e],o++}));const s=Math.sqrt((i[0].x-i[1].x)*(i[0].x-i[1].x)+(i[0].y-i[1].y)*(i[0].y-i[1].y)),l=Math.sqrt((a[0].x-a[1].x)*(a[0].x-a[1].x)+(a[0].y-a[1].y)*(a[0].y-a[1].y));let c=Io(Math.atan2(i[1].y-i[0].y,i[1].x-i[0].x)),u=Io(Math.atan2(a[1].y-a[0].y,a[1].x-a[0].x)),d=u-c;u=u+180&gt;=360?u-180:u+180,c=c+180&gt;=360?c-180:c+180,Math.abs(u-c)&lt;Math.abs(d)&amp;&amp;(d=u-c);const p=[];if(p[0]=(a[0].x-i[0].x+a[1].x-i[1].x)/2,p[1]=(a[0].y-i[0].y+a[1].y-i[1].y)/2,&quot;TouchMove&quot;===n)if(&quot;Start&quot;===t.currentGesture){let n=.01*Math.sqrt(t.container.clientWidth*t.container.clientWidth+t.container.clientHeight*t.container.clientHeight);n&lt;15&amp;&amp;(n=15);const o=Math.abs(l-s),a=3.1415926*l*Math.abs(d)/360,i=Math.sqrt(p[0]*p[0]+p[1]*p[1]);if(o&gt;n&amp;&amp;o&gt;a&amp;&amp;o&gt;i){t.currentGesture=&quot;Pinch&quot;;const n={scale:1,touches:r};e.startPinchEvent(n)}else if(a&gt;n&amp;&amp;a&gt;i){t.currentGesture=&quot;Rotate&quot;;const n={rotation:0,touches:r};e.startRotateEvent(n)}else if(i&gt;n){t.currentGesture=&quot;Pan&quot;;const n={translation:[0,0],touches:r};e.startPanEvent(n)}}else{if(&quot;Rotate&quot;===t.currentGesture){const t={rotation:d,touches:r};e.rotateEvent(t)}if(&quot;Pinch&quot;===t.currentGesture){const t={scale:l/s,touches:r};e.pinchEvent(t)}if(&quot;Pan&quot;===t.currentGesture){const t={translation:p,touches:r};e.panEvent(t)}}},e.handleVisibilityChange=()=&gt;{t._animationStartTime=Date.now(),t._animationFrameCount=0},e.setCurrentRenderer=e=&gt;{t._forcedRenderer=!!e,t.currentRenderer=e},e.setContainer=e=&gt;{f();const t=n.setContainer(e??null);return t&amp;&amp;p(),t},e.delete=()=&gt;{for(;r.size;)e.cancelAnimation(r.values().next().value);void 0!==document.hidden&amp;&amp;document.removeEventListener(&quot;visibilitychange&quot;,e.handleVisibilityChange),t.container&amp;&amp;e.setContainer(null),n.delete()},void 0!==document.hidden&amp;&amp;document.addEventListener(&quot;visibilitychange&quot;,e.handleVisibilityChange,!1)}(e,t)}var Yh={newInstance:sn.newInstance(qh,&quot;vtkRenderWindowInteractor&quot;),extend:qh,handledEvents:Wh,...Bh};const{vtkErrorMacro:Jh,VOID:Zh}=sn;const Qh={computeWorldToDisplay:function(e,t,n,r){return e.getRenderWindow().getViews()[0].worldToDisplay(t,n,r,e)},computeDisplayToWorld:function(e,t,n,r){return e.getRenderWindow().getViews()[0].displayToWorld(t,n,r,e)}};const $h={enabled:!0,priority:0,processEvents:!0,subscribedEvents:[]};function ev(e,t,n={}){Object.assign(t,$h,n),sn.obj(e,t),sn.event(e,t,&quot;InteractionEvent&quot;),sn.event(e,t,&quot;StartInteractionEvent&quot;),sn.event(e,t,&quot;EndInteractionEvent&quot;),sn.get(e,t,[&quot;_interactor&quot;,&quot;enabled&quot;]),sn.setGet(e,t,[&quot;priority&quot;,&quot;processEvents&quot;]),sn.moveToProtected(e,t,[&quot;interactor&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkInteractorObserver&quot;);const n={...e};function r(){for(;t.subscribedEvents.length;)t.subscribedEvents.pop().unsubscribe()}function o(){Yh.handledEvents.forEach((n=&gt;{e[`handle${n}`]&amp;&amp;t.subscribedEvents.push(t._interactor[`on${n}`]((r=&gt;t.processEvents?e[`handle${n}`](r):Zh),t.priority))}))}e.setInteractor=n=&gt;{n!==t._interactor&amp;&amp;(r(),t._interactor=n,n&amp;&amp;t.enabled&amp;&amp;o(),e.modified())},e.setEnabled=n=&gt;{n!==t.enabled&amp;&amp;(r(),n&amp;&amp;(t._interactor?o():Jh(&quot;\\n          The interactor must be set before subscribing to events\\n        &quot;)),t.enabled=n,e.modified())},e.computeDisplayToWorld=(e,n,r,o)=&gt;e?t._interactor.getView().displayToWorld(n,r,o,e):null,e.computeWorldToDisplay=(e,n,r,o)=&gt;e?t._interactor.getView().worldToDisplay(n,r,o,e):null,e.setPriority=e=&gt;{n.setPriority(e)&amp;&amp;t._interactor&amp;&amp;(r(),o())}}(e,t)}var tv={newInstance:sn.newInstance(ev,&quot;vtkInteractorObserver&quot;),extend:ev,...Qh};var nv={States:{IS_START:0,IS_NONE:0,IS_ROTATE:1,IS_PAN:2,IS_SPIN:3,IS_DOLLY:4,IS_CAMERA_POSE:11,IS_WINDOW_LEVEL:1024,IS_SLICE:1025}};const{States:rv}=nv,ov={Rotate:rv.IS_ROTATE,Pan:rv.IS_PAN,Spin:rv.IS_SPIN,Dolly:rv.IS_DOLLY,CameraPose:rv.IS_CAMERA_POSE,WindowLevel:rv.IS_WINDOW_LEVEL,Slice:rv.IS_SLICE};const av={state:rv.IS_NONE,handleObservers:1,autoAdjustCameraClippingRange:1};function iv(e,t,n={}){Object.assign(t,av,n),tv.extend(e,t,n),sn.setGet(e,t,[&quot;focusedRenderer&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkInteractorStyle&quot;),Object.keys(ov).forEach((n=&gt;{sn.event(e,t,`Start${n}Event`),e[`start${n}`]=()=&gt;{t.state===rv.IS_NONE&amp;&amp;(t.state=ov[n],t._interactor.requestAnimation(e),e.invokeStartInteractionEvent({type:&quot;StartInteractionEvent&quot;}),e[`invokeStart${n}Event`]({type:`Start${n}Event`}))},sn.event(e,t,`End${n}Event`),e[`end${n}`]=()=&gt;{t.state===ov[n]&amp;&amp;(t.state=rv.IS_NONE,t._interactor.cancelAnimation(e),e.invokeEndInteractionEvent({type:&quot;EndInteractionEvent&quot;}),e[`invokeEnd${n}Event`]({type:`End${n}Event`}),t._interactor.render())}})),t.getRenderer=e=&gt;t.focusedRenderer||e.pokedRenderer,e.handleKeyPress=e=&gt;{const n=t._interactor;let r=null;switch(e.key){case&quot;r&quot;:case&quot;R&quot;:t.getRenderer(e).resetCamera(),n.render();break;case&quot;w&quot;:case&quot;W&quot;:r=t.getRenderer(e).getActors(),r.forEach((e=&gt;{const t=e.getProperty();t.setRepresentationToWireframe&amp;&amp;t.setRepresentationToWireframe()})),n.render();break;case&quot;s&quot;:case&quot;S&quot;:r=t.getRenderer(e).getActors(),r.forEach((e=&gt;{const t=e.getProperty();t.setRepresentationToSurface&amp;&amp;t.setRepresentationToSurface()})),n.render();break;case&quot;v&quot;:case&quot;V&quot;:r=t.getRenderer(e).getActors(),r.forEach((e=&gt;{const t=e.getProperty();t.setRepresentationToPoints&amp;&amp;t.setRepresentationToPoints()})),n.render()}}}(e,t)}var sv={newInstance:sn.newInstance(iv,&quot;vtkInteractorStyle&quot;),extend:iv,...nv};const{States:lv}=nv;const cv={motionFactor:10,zoomFactor:10};function uv(e,t,n={}){Object.assign(t,cv,n),sv.extend(e,t,n),sn.setGet(e,t,[&quot;motionFactor&quot;,&quot;zoomFactor&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkInteractorStyleTrackballCamera&quot;),e.handleMouseMove=n=&gt;{const r=n.position,o=t.getRenderer(n);switch(t.state){case lv.IS_ROTATE:e.handleMouseRotate(o,r),e.invokeInteractionEvent({type:&quot;InteractionEvent&quot;});break;case lv.IS_PAN:e.handleMousePan(o,r),e.invokeInteractionEvent({type:&quot;InteractionEvent&quot;});break;case lv.IS_DOLLY:e.handleMouseDolly(o,r),e.invokeInteractionEvent({type:&quot;InteractionEvent&quot;});break;case lv.IS_SPIN:e.handleMouseSpin(o,r),e.invokeInteractionEvent({type:&quot;InteractionEvent&quot;})}t.previousPosition=r},e.handleButton3D=n=&gt;{!n||!n.pressed||n.device!==Vh.RightController||n.input!==Lh.Trigger&amp;&amp;n.input!==Lh.TrackPad?!n||n.pressed||n.device!==Vh.RightController||n.input!==Lh.Trigger&amp;&amp;n.input!==Lh.TrackPad||t.state!==lv.IS_CAMERA_POSE||e.endCameraPose():e.startCameraPose()},e.handleMove3D=n=&gt;{t.state===lv.IS_CAMERA_POSE&amp;&amp;e.updateCameraPose(n)},e.updateCameraPose=e=&gt;{const n=t.getRenderer(e).getActiveCamera(),r=n.getPhysicalTranslation(),o=.025*n.getPhysicalScale(),a=n.physicalOrientationToWorldDirection([e.orientation.x,e.orientation.y,e.orientation.z,e.orientation.w]);n.setPhysicalTranslation(r[0]+a[0]*o,r[1]+a[1]*o,r[2]+a[2]*o)},e.handleLeftButtonPress=n=&gt;{const r=n.position;t.previousPosition=r,n.shiftKey?n.controlKey||n.altKey?e.startDolly():e.startPan():n.controlKey||n.altKey?e.startSpin():e.startRotate()},e.handleLeftButtonRelease=()=&gt;{switch(t.state){case lv.IS_DOLLY:e.endDolly();break;case lv.IS_PAN:e.endPan();break;case lv.IS_SPIN:e.endSpin();break;case lv.IS_ROTATE:e.endRotate()}},e.handleStartMouseWheel=()=&gt;{e.startDolly()},e.handleEndMouseWheel=()=&gt;{e.endDolly()},e.handleStartPinch=n=&gt;{t.previousScale=n.scale,e.startDolly()},e.handleEndPinch=()=&gt;{e.endDolly()},e.handleStartRotate=n=&gt;{t.previousRotation=n.rotation,e.startRotate()},e.handleEndRotate=()=&gt;{e.endRotate()},e.handleStartPan=n=&gt;{t.previousTranslation=n.translation,e.startPan()},e.handleEndPan=()=&gt;{e.endPan()},e.handlePinch=n=&gt;{e.dollyByFactor(t.getRenderer(n),n.scale/t.previousScale),t.previousScale=n.scale},e.handlePan=n=&gt;{const r=t.getRenderer(n).getActiveCamera();let o=r.getFocalPoint();o=e.computeWorldToDisplay(t.getRenderer(n),o[0],o[1],o[2]);const a=o[2],i=n.translation,s=t.previousTranslation,l=e.computeDisplayToWorld(t.getRenderer(n),o[0]+i[0]-s[0],o[1]+i[1]-s[1],a),c=e.computeDisplayToWorld(t.getRenderer(n),o[0],o[1],a),u=[];u[0]=c[0]-l[0],u[1]=c[1]-l[1],u[2]=c[2]-l[2],o=r.getFocalPoint();const d=r.getPosition();r.setFocalPoint(u[0]+o[0],u[1]+o[1],u[2]+o[2]),r.setPosition(u[0]+d[0],u[1]+d[1],u[2]+d[2]),t._interactor.getLightFollowCamera()&amp;&amp;t.getRenderer(n).updateLightsGeometryToFollowCamera(),r.orthogonalizeViewUp(),t.previousTranslation=n.translation},e.handleRotate=e=&gt;{const n=t.getRenderer(e).getActiveCamera();n.roll(e.rotation-t.previousRotation),n.orthogonalizeViewUp(),t.previousRotation=e.rotation},e.handleMouseRotate=(e,n)=&gt;{if(!t.previousPosition)return;const r=t._interactor,o=n.x-t.previousPosition.x,a=n.y-t.previousPosition.y,i=r.getView().getViewportSize(e);let s=-.1,l=-.1;i[0]&amp;&amp;i[1]&amp;&amp;(s=-20/i[1],l=-20/i[0]);const c=o*l*t.motionFactor,u=a*s*t.motionFactor,d=e.getActiveCamera();Number.isNaN(c)||Number.isNaN(u)||(d.azimuth(c),d.elevation(u),d.orthogonalizeViewUp()),t.autoAdjustCameraClippingRange&amp;&amp;e.resetCameraClippingRange(),r.getLightFollowCamera()&amp;&amp;e.updateLightsGeometryToFollowCamera()},e.handleMouseSpin=(e,n)=&gt;{if(!t.previousPosition)return;const r=t._interactor,o=e.getActiveCamera(),a=r.getView().getViewportCenter(e),i=Io(Math.atan2(t.previousPosition.y-a[1],t.previousPosition.x-a[0])),s=Io(Math.atan2(n.y-a[1],n.x-a[0]))-i;Number.isNaN(s)||(o.roll(s),o.orthogonalizeViewUp())},e.handleMousePan=(n,r)=&gt;{if(!t.previousPosition)return;const o=n.getActiveCamera();let a=o.getFocalPoint();a=e.computeWorldToDisplay(n,a[0],a[1],a[2]);const i=a[2],s=e.computeDisplayToWorld(n,r.x,r.y,i),l=e.computeDisplayToWorld(n,t.previousPosition.x,t.previousPosition.y,i),c=[];c[0]=l[0]-s[0],c[1]=l[1]-s[1],c[2]=l[2]-s[2],a=o.getFocalPoint();const u=o.getPosition();o.setFocalPoint(c[0]+a[0],c[1]+a[1],c[2]+a[2]),o.setPosition(c[0]+u[0],c[1]+u[1],c[2]+u[2]),t._interactor.getLightFollowCamera()&amp;&amp;n.updateLightsGeometryToFollowCamera()},e.handleMouseDolly=(n,r)=&gt;{if(!t.previousPosition)return;const o=r.y-t.previousPosition.y,a=t._interactor.getView().getViewportCenter(n),i=t.motionFactor*o/a[1];e.dollyByFactor(n,1.1**i)},e.handleMouseWheel=n=&gt;{const r=1-n.spinY/t.zoomFactor;e.dollyByFactor(t.getRenderer(n),r)},e.dollyByFactor=(e,n)=&gt;{if(Number.isNaN(n))return;const r=e.getActiveCamera();r.getParallelProjection()?r.setParallelScale(r.getParallelScale()/n):(r.dolly(n),t.autoAdjustCameraClippingRange&amp;&amp;e.resetCameraClippingRange()),t._interactor.getLightFollowCamera()&amp;&amp;e.updateLightsGeometryToFollowCamera()}}(e,t)}var dv={newInstance:sn.newInstance(uv,&quot;vtkInteractorStyleTrackballCamera&quot;),extend:uv};function pv(e){return e}function fv(e){return null===e||&quot;null&quot;===e?null:&quot;true&quot;===e||&quot;false&quot;!==e&amp;&amp;(void 0!==e&amp;&amp;&quot;undefined&quot;!==e?&quot;[&quot;===e[0]&amp;&amp;&quot;]&quot;===e[e.length-1]?e.substring(1,e.length-1).split(&quot;,&quot;).map((e=&gt;fv(e.trim()))):&quot;&quot;===e||Number.isNaN(Number(e))?e:Number(e):void 0)}var gv={toNativeType:fv,extractURLParameters:function(e=!0,t=window.location.search){const n={},r=e?fv:pv;return new URLSearchParams(t).forEach(((e,t)=&gt;{t&amp;&amp;(n[t]=!e||r(e))})),n}};const mv={delegates:[],currentOperation:null,preDelegateOperations:[],postDelegateOperations:[],currentParent:null};function hv(e,t,n={}){Object.assign(t,mv,n),sn.obj(e,t),sn.get(e,t,[&quot;currentOperation&quot;]),sn.setGet(e,t,[&quot;delegates&quot;,&quot;_currentParent&quot;,&quot;preDelegateOperations&quot;,&quot;postDelegateOperations&quot;]),sn.moveToProtected(e,t,[&quot;currentParent&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkRenderPass&quot;),e.getOperation=()=&gt;t.currentOperation,e.setCurrentOperation=e=&gt;{t.currentOperation=e,t.currentTraverseOperation=`traverse${sn.capitalize(t.currentOperation)}`},e.getTraverseOperation=()=&gt;t.currentTraverseOperation,e.traverse=(n,r=null)=&gt;{t.deleted||(t._currentParent=r,t.preDelegateOperations.forEach((t=&gt;{e.setCurrentOperation(t),n.traverse(e)})),t.delegates.forEach((t=&gt;{t.traverse(n,e)})),t.postDelegateOperations.forEach((t=&gt;{e.setCurrentOperation(t),n.traverse(e)})))}}(e,t)}var vv={newInstance:sn.newInstance(hv,&quot;vtkRenderPass&quot;),extend:hv};const{Representation:Tv}=us,{vtkErrorMacro:xv}=sn;function yv(e){const t=vd.substitute(e.Fragment,&quot;//VTK::RenderPassFragmentShader::Impl&quot;,&quot;\\n      float weight = gl_FragData[0].a * pow(max(1.1 - gl_FragCoord.z, 0.0), 2.0);\\n      gl_FragData[0] = vec4(gl_FragData[0].rgb*weight, gl_FragData[0].a);\\n      gl_FragData[1].r = weight;\\n    &quot;,!1);e.Fragment=t.result}const bv={framebuffer:null,copyShader:null,tris:null};function Av(e,t,n={}){Object.assign(t,bv,n),vv.extend(e,t,n),t.VBOBuildTime={},sn.obj(t.VBOBuildTime,{mtime:0}),t.tris=Sd.newInstance(),sn.get(e,t,[&quot;framebuffer&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLOrderIndependentTranslucentPass&quot;),e.createVertexBuffer=()=&gt;{const e=new Float32Array([-1,-1,-1,1,-1,-1,-1,1,-1,1,1,-1]),n=new Float32Array([0,0,1,0,0,1,1,1]),r=new Uint16Array([4,0,1,3,2]),o=Is.newInstance({numberOfComponents:3,values:e});o.setName(&quot;points&quot;);const a=Is.newInstance({numberOfComponents:2,values:n});a.setName(&quot;tcoords&quot;);const i=Is.newInstance({numberOfComponents:1,values:r});t.tris.getCABO().createVBO(i,&quot;polys&quot;,Tv.SURFACE,{points:o,tcoords:a,cellOffset:0}),t.VBOBuildTime.modified()},e.createFramebuffer=e=&gt;{const n=e.getSize(),r=e.getContext();t.framebuffer=Gp.newInstance(),t.framebuffer.setOpenGLRenderWindow(e),t.framebuffer.create(...n),t.framebuffer.saveCurrentBindingsAndBuffers(),t.framebuffer.bind(),t.translucentRGBATexture=Hd.newInstance(),t.translucentRGBATexture.setInternalFormat(r.RGBA16F),t.translucentRGBATexture.setFormat(r.RGBA),t.translucentRGBATexture.setOpenGLDataType(r.HALF_FLOAT),t.translucentRGBATexture.setOpenGLRenderWindow(e),t.translucentRGBATexture.create2DFromRaw({width:n[0],height:n[1],numComps:4,dataType:&quot;Float32Array&quot;,data:null}),t.translucentRTexture=Hd.newInstance(),t.translucentRTexture.setInternalFormat(r.R16F),t.translucentRTexture.setFormat(r.RED),t.translucentRTexture.setOpenGLDataType(r.HALF_FLOAT),t.translucentRTexture.setOpenGLRenderWindow(e),t.translucentRTexture.create2DFromRaw({width:n[0],height:n[1],numComps:1,dataType:&quot;Float32Array&quot;,data:null}),t.translucentZTexture=Hd.newInstance(),t.translucentZTexture.setOpenGLRenderWindow(e),t.translucentZTexture.createDepthFromRaw({width:n[0],height:n[1],dataType:&quot;Float32Array&quot;,data:null}),t.framebuffer.setColorBuffer(t.translucentRGBATexture,0),t.framebuffer.setColorBuffer(t.translucentRTexture,1),t.framebuffer.setDepthBuffer(t.translucentZTexture)},e.createCopyShader=e=&gt;{t.copyShader=e.getShaderCache().readyShaderProgramArray([&quot;//VTK::System::Dec&quot;,&quot;attribute vec4 vertexDC;&quot;,&quot;attribute vec2 tcoordTC;&quot;,&quot;varying vec2 tcoord;&quot;,&quot;void main() { tcoord = tcoordTC; gl_Position = vertexDC; }&quot;].join(&quot;\\n&quot;),&quot;//VTK::System::Dec\\n\\nin vec2 tcoord;\\n\\nuniform sampler2D translucentRTexture;\\nuniform sampler2D translucentRGBATexture;\\n\\n// the output of this shader\\n//VTK::Output::Dec\\n\\nvoid main()\\n{\\n  vec4 t1Color = texture(translucentRGBATexture, tcoord);\\n  float t2Color = texture(translucentRTexture, tcoord).r;\\n  gl_FragData[0] = vec4(t1Color.rgb/max(t2Color,0.01), 1.0 - t1Color.a);\\n}\\n&quot;,&quot;&quot;)},e.createVBO=n=&gt;{const r=n.getContext();t.tris.setOpenGLRenderWindow(n),e.createVertexBuffer();const o=t.copyShader;t.tris.getCABO().bind(),t.copyVAO.addAttributeArray(o,t.tris.getCABO(),&quot;vertexDC&quot;,t.tris.getCABO().getVertexOffset(),t.tris.getCABO().getStride(),r.FLOAT,3,r.FALSE)||xv(&quot;Error setting vertexDC in copy shader VAO.&quot;),t.copyVAO.addAttributeArray(o,t.tris.getCABO(),&quot;tcoordTC&quot;,t.tris.getCABO().getTCoordOffset(),t.tris.getCABO().getStride(),r.FLOAT,2,r.FALSE)||xv(&quot;Error setting vertexDC in copy shader VAO.&quot;)},e.traverse=(n,r,o)=&gt;{if(t.deleted)return;const a=n.getSize(),i=n.getContext();if(t._supported=!1,r.getSelector()||!i||!n.getWebgl2()||!i.getExtension(&quot;EXT_color_buffer_half_float&quot;)&amp;&amp;!i.getExtension(&quot;EXT_color_buffer_float&quot;))return e.setCurrentOperation(&quot;translucentPass&quot;),void r.traverse(e);if(t._supported=!0,null===t.framebuffer)e.createFramebuffer(n);else{const r=t.framebuffer.getSize();null===r||r[0]!==a[0]||r[1]!==a[1]?(t.framebuffer.releaseGraphicsResources(),t.translucentRGBATexture.releaseGraphicsResources(n),t.translucentRTexture.releaseGraphicsResources(n),t.translucentZTexture.releaseGraphicsResources(n),e.createFramebuffer(n)):(t.framebuffer.saveCurrentBindingsAndBuffers(),t.framebuffer.bind())}i.drawBuffers([i.COLOR_ATTACHMENT0]),i.clearBufferfv(i.COLOR,0,[0,0,0,0]),i.clearBufferfv(i.DEPTH,0,[1]),i.colorMask(!1,!1,!1,!1),o.getOpaqueActorCount()&gt;0&amp;&amp;(o.setCurrentOperation(&quot;opaqueZBufferPass&quot;),r.traverse(o)),i.colorMask(!0,!0,!0,!0),i.drawBuffers([i.COLOR_ATTACHMENT0,i.COLOR_ATTACHMENT1]),i.viewport(0,0,a[0],a[1]),i.scissor(0,0,a[0],a[1]),i.clearBufferfv(i.COLOR,0,[0,0,0,1]),i.clearBufferfv(i.COLOR,1,[0,0,0,0]),i.enable(i.DEPTH_TEST),i.enable(i.BLEND),i.blendFuncSeparate(i.ONE,i.ONE,i.ZERO,i.ONE_MINUS_SRC_ALPHA),e.setCurrentOperation(&quot;translucentPass&quot;),r.traverse(e),i.drawBuffers([i.NONE]),t.framebuffer.restorePreviousBindingsAndBuffers(),null===t.copyShader?e.createCopyShader(n):n.getShaderCache().readyShaderProgram(t.copyShader),t.copyVAO||(t.copyVAO=yd.newInstance(),t.copyVAO.setOpenGLRenderWindow(n)),t.copyVAO.bind(),t.VBOBuildTime.getMTime()&lt;e.getMTime()&amp;&amp;e.createVBO(n),i.blendFuncSeparate(i.SRC_ALPHA,i.ONE_MINUS_SRC_ALPHA,i.ONE,i.ONE_MINUS_SRC_ALPHA),i.depthMask(!1),i.depthFunc(i.ALWAYS),i.viewport(0,0,a[0],a[1]),i.scissor(0,0,a[0],a[1]),t.translucentRGBATexture.activate(),t.copyShader.setUniformi(&quot;translucentRGBATexture&quot;,t.translucentRGBATexture.getTextureUnit()),t.translucentRTexture.activate(),t.copyShader.setUniformi(&quot;translucentRTexture&quot;,t.translucentRTexture.getTextureUnit()),i.drawArrays(i.TRIANGLES,0,t.tris.getCABO().getElementCount()),i.depthMask(!0),i.depthFunc(i.LEQUAL),t.translucentRGBATexture.deactivate(),t.translucentRTexture.deactivate();const s=r.getTiledSizeAndOrigin();i.scissor(s.lowerLeftU,s.lowerLeftV,s.usize,s.vsize),i.viewport(s.lowerLeftU,s.lowerLeftV,s.usize,s.vsize)},e.getShaderReplacement=()=&gt;t._supported?yv:null,e.releaseGraphicsResources=n=&gt;{t.framebuffer&amp;&amp;(t.framebuffer.releaseGraphicsResources(n),t.framebuffer=null),t.translucentRGBATexture&amp;&amp;(t.translucentRGBATexture.releaseGraphicsResources(n),t.translucentRGBATexture=null),t.translucentRTexture&amp;&amp;(t.translucentRTexture.releaseGraphicsResources(n),t.translucentRTexture=null),t.translucentZTexture&amp;&amp;(t.translucentZTexture.releaseGraphicsResources(n),t.translucentZTexture=null),t.copyVAO&amp;&amp;(t.copyVAO.releaseGraphicsResources(n),t.copyVAO=null),t.copyShader&amp;&amp;(t.copyShader.releaseGraphicsResources(n),t.copyShader=null),t.tris&amp;&amp;(t.tris.releaseGraphicsResources(n),t.tris=null),e.modified()}}(e,t)}var Cv={newInstance:sn.newInstance(Av,&quot;vtkOpenGLOrderIndependentTranslucentPass&quot;),extend:Av};const Sv={opaqueActorCount:0,translucentActorCount:0,volumeCount:0,overlayActorCount:0,framebuffer:null,depthRequested:!1};function Pv(e,t,n={}){Object.assign(t,Sv,n),vv.extend(e,t,n),sn.get(e,t,[&quot;framebuffer&quot;,&quot;opaqueActorCount&quot;,&quot;translucentActorCount&quot;,&quot;volumeCount&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkForwardPass&quot;),e.traverse=(n,r=null)=&gt;{if(t.deleted)return;t._currentParent=r,e.setCurrentOperation(&quot;buildPass&quot;),n.traverse(e);const o=n.getRenderable().getNumberOfLayers(),a=n.getRenderable().getRenderersByReference();for(let r=0;r&lt;o;r++)for(let o=0;o&lt;a.length;o++){const i=a[o],s=n.getViewNodeFor(i);if(i.getDraw()&amp;&amp;i.getLayer()===r){if(t.opaqueActorCount=0,t.translucentActorCount=0,t.volumeCount=0,t.overlayActorCount=0,e.setCurrentOperation(&quot;queryPass&quot;),s.traverse(e),(t.opaqueActorCount&gt;0||t.translucentActorCount&gt;0)&amp;&amp;t.volumeCount&gt;0||t.depthRequested){const r=n.getFramebufferSize();null===t.framebuffer&amp;&amp;(t.framebuffer=Gp.newInstance()),t.framebuffer.setOpenGLRenderWindow(n),t.framebuffer.saveCurrentBindingsAndBuffers();const o=t.framebuffer.getSize();null!==o&amp;&amp;o[0]===r[0]&amp;&amp;o[1]===r[1]||(t.framebuffer.create(r[0],r[1]),t.framebuffer.populateFramebuffer()),t.framebuffer.bind(),e.setCurrentOperation(&quot;zBufferPass&quot;),s.traverse(e),t.framebuffer.restorePreviousBindingsAndBuffers(),t.depthRequested=!1}e.setCurrentOperation(&quot;cameraPass&quot;),s.traverse(e),t.opaqueActorCount&gt;0&amp;&amp;(e.setCurrentOperation(&quot;opaquePass&quot;),s.traverse(e)),t.translucentActorCount&gt;0&amp;&amp;(t.translucentPass||(t.translucentPass=Cv.newInstance()),t.translucentPass.traverse(n,s,e)),t.volumeCount&gt;0&amp;&amp;(e.setCurrentOperation(&quot;volumePass&quot;),s.traverse(e)),t.overlayActorCount&gt;0&amp;&amp;(e.setCurrentOperation(&quot;overlayPass&quot;),s.traverse(e))}}},e.getZBufferTexture=()=&gt;t.framebuffer?t.framebuffer.getColorTexture():null,e.requestDepth=()=&gt;{t.depthRequested=!0},e.incrementOpaqueActorCount=()=&gt;t.opaqueActorCount++,e.incrementTranslucentActorCount=()=&gt;t.translucentActorCount++,e.incrementVolumeCount=()=&gt;t.volumeCount++,e.incrementOverlayActorCount=()=&gt;t.overlayActorCount++}(e,t)}var wv={newInstance:sn.newInstance(Pv,&quot;vtkForwardPass&quot;),extend:Pv},Iv={exports:{}};!function(e){e.exports=function(e){var t=[&quot;0&quot;,&quot;1&quot;,&quot;2&quot;,&quot;3&quot;,&quot;4&quot;,&quot;5&quot;,&quot;6&quot;,&quot;7&quot;,&quot;8&quot;,&quot;9&quot;,&quot;a&quot;,&quot;b&quot;,&quot;c&quot;,&quot;d&quot;,&quot;e&quot;,&quot;f&quot;];function n(e,t){var n=e[0],r=e[1],o=e[2],a=e[3];r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&amp;o|~r&amp;a)+t[0]-680876936|0)&lt;&lt;7|n&gt;&gt;&gt;25)+r|0)&amp;r|~n&amp;o)+t[1]-389564586|0)&lt;&lt;12|a&gt;&gt;&gt;20)+n|0)&amp;n|~a&amp;r)+t[2]+606105819|0)&lt;&lt;17|o&gt;&gt;&gt;15)+a|0)&amp;a|~o&amp;n)+t[3]-1044525330|0)&lt;&lt;22|r&gt;&gt;&gt;10)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&amp;o|~r&amp;a)+t[4]-176418897|0)&lt;&lt;7|n&gt;&gt;&gt;25)+r|0)&amp;r|~n&amp;o)+t[5]+1200080426|0)&lt;&lt;12|a&gt;&gt;&gt;20)+n|0)&amp;n|~a&amp;r)+t[6]-1473231341|0)&lt;&lt;17|o&gt;&gt;&gt;15)+a|0)&amp;a|~o&amp;n)+t[7]-45705983|0)&lt;&lt;22|r&gt;&gt;&gt;10)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&amp;o|~r&amp;a)+t[8]+1770035416|0)&lt;&lt;7|n&gt;&gt;&gt;25)+r|0)&amp;r|~n&amp;o)+t[9]-1958414417|0)&lt;&lt;12|a&gt;&gt;&gt;20)+n|0)&amp;n|~a&amp;r)+t[10]-42063|0)&lt;&lt;17|o&gt;&gt;&gt;15)+a|0)&amp;a|~o&amp;n)+t[11]-1990404162|0)&lt;&lt;22|r&gt;&gt;&gt;10)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&amp;o|~r&amp;a)+t[12]+1804603682|0)&lt;&lt;7|n&gt;&gt;&gt;25)+r|0)&amp;r|~n&amp;o)+t[13]-40341101|0)&lt;&lt;12|a&gt;&gt;&gt;20)+n|0)&amp;n|~a&amp;r)+t[14]-1502002290|0)&lt;&lt;17|o&gt;&gt;&gt;15)+a|0)&amp;a|~o&amp;n)+t[15]+1236535329|0)&lt;&lt;22|r&gt;&gt;&gt;10)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&amp;a|o&amp;~a)+t[1]-165796510|0)&lt;&lt;5|n&gt;&gt;&gt;27)+r|0)&amp;o|r&amp;~o)+t[6]-1069501632|0)&lt;&lt;9|a&gt;&gt;&gt;23)+n|0)&amp;r|n&amp;~r)+t[11]+643717713|0)&lt;&lt;14|o&gt;&gt;&gt;18)+a|0)&amp;n|a&amp;~n)+t[0]-373897302|0)&lt;&lt;20|r&gt;&gt;&gt;12)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&amp;a|o&amp;~a)+t[5]-701558691|0)&lt;&lt;5|n&gt;&gt;&gt;27)+r|0)&amp;o|r&amp;~o)+t[10]+38016083|0)&lt;&lt;9|a&gt;&gt;&gt;23)+n|0)&amp;r|n&amp;~r)+t[15]-660478335|0)&lt;&lt;14|o&gt;&gt;&gt;18)+a|0)&amp;n|a&amp;~n)+t[4]-405537848|0)&lt;&lt;20|r&gt;&gt;&gt;12)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&amp;a|o&amp;~a)+t[9]+568446438|0)&lt;&lt;5|n&gt;&gt;&gt;27)+r|0)&amp;o|r&amp;~o)+t[14]-1019803690|0)&lt;&lt;9|a&gt;&gt;&gt;23)+n|0)&amp;r|n&amp;~r)+t[3]-187363961|0)&lt;&lt;14|o&gt;&gt;&gt;18)+a|0)&amp;n|a&amp;~n)+t[8]+1163531501|0)&lt;&lt;20|r&gt;&gt;&gt;12)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&amp;a|o&amp;~a)+t[13]-1444681467|0)&lt;&lt;5|n&gt;&gt;&gt;27)+r|0)&amp;o|r&amp;~o)+t[2]-51403784|0)&lt;&lt;9|a&gt;&gt;&gt;23)+n|0)&amp;r|n&amp;~r)+t[7]+1735328473|0)&lt;&lt;14|o&gt;&gt;&gt;18)+a|0)&amp;n|a&amp;~n)+t[12]-1926607734|0)&lt;&lt;20|r&gt;&gt;&gt;12)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r^o^a)+t[5]-378558|0)&lt;&lt;4|n&gt;&gt;&gt;28)+r|0)^r^o)+t[8]-2022574463|0)&lt;&lt;11|a&gt;&gt;&gt;21)+n|0)^n^r)+t[11]+1839030562|0)&lt;&lt;16|o&gt;&gt;&gt;16)+a|0)^a^n)+t[14]-35309556|0)&lt;&lt;23|r&gt;&gt;&gt;9)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r^o^a)+t[1]-1530992060|0)&lt;&lt;4|n&gt;&gt;&gt;28)+r|0)^r^o)+t[4]+1272893353|0)&lt;&lt;11|a&gt;&gt;&gt;21)+n|0)^n^r)+t[7]-155497632|0)&lt;&lt;16|o&gt;&gt;&gt;16)+a|0)^a^n)+t[10]-1094730640|0)&lt;&lt;23|r&gt;&gt;&gt;9)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r^o^a)+t[13]+681279174|0)&lt;&lt;4|n&gt;&gt;&gt;28)+r|0)^r^o)+t[0]-358537222|0)&lt;&lt;11|a&gt;&gt;&gt;21)+n|0)^n^r)+t[3]-722521979|0)&lt;&lt;16|o&gt;&gt;&gt;16)+a|0)^a^n)+t[6]+76029189|0)&lt;&lt;23|r&gt;&gt;&gt;9)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r^o^a)+t[9]-640364487|0)&lt;&lt;4|n&gt;&gt;&gt;28)+r|0)^r^o)+t[12]-421815835|0)&lt;&lt;11|a&gt;&gt;&gt;21)+n|0)^n^r)+t[15]+530742520|0)&lt;&lt;16|o&gt;&gt;&gt;16)+a|0)^a^n)+t[2]-995338651|0)&lt;&lt;23|r&gt;&gt;&gt;9)+o|0,r=((r+=((a=((a+=(r^((n=((n+=(o^(r|~a))+t[0]-198630844|0)&lt;&lt;6|n&gt;&gt;&gt;26)+r|0)|~o))+t[7]+1126891415|0)&lt;&lt;10|a&gt;&gt;&gt;22)+n|0)^((o=((o+=(n^(a|~r))+t[14]-1416354905|0)&lt;&lt;15|o&gt;&gt;&gt;17)+a|0)|~n))+t[5]-57434055|0)&lt;&lt;21|r&gt;&gt;&gt;11)+o|0,r=((r+=((a=((a+=(r^((n=((n+=(o^(r|~a))+t[12]+1700485571|0)&lt;&lt;6|n&gt;&gt;&gt;26)+r|0)|~o))+t[3]-1894986606|0)&lt;&lt;10|a&gt;&gt;&gt;22)+n|0)^((o=((o+=(n^(a|~r))+t[10]-1051523|0)&lt;&lt;15|o&gt;&gt;&gt;17)+a|0)|~n))+t[1]-2054922799|0)&lt;&lt;21|r&gt;&gt;&gt;11)+o|0,r=((r+=((a=((a+=(r^((n=((n+=(o^(r|~a))+t[8]+1873313359|0)&lt;&lt;6|n&gt;&gt;&gt;26)+r|0)|~o))+t[15]-30611744|0)&lt;&lt;10|a&gt;&gt;&gt;22)+n|0)^((o=((o+=(n^(a|~r))+t[6]-1560198380|0)&lt;&lt;15|o&gt;&gt;&gt;17)+a|0)|~n))+t[13]+1309151649|0)&lt;&lt;21|r&gt;&gt;&gt;11)+o|0,r=((r+=((a=((a+=(r^((n=((n+=(o^(r|~a))+t[4]-145523070|0)&lt;&lt;6|n&gt;&gt;&gt;26)+r|0)|~o))+t[11]-1120210379|0)&lt;&lt;10|a&gt;&gt;&gt;22)+n|0)^((o=((o+=(n^(a|~r))+t[2]+718787259|0)&lt;&lt;15|o&gt;&gt;&gt;17)+a|0)|~n))+t[9]-343485551|0)&lt;&lt;21|r&gt;&gt;&gt;11)+o|0,e[0]=n+e[0]|0,e[1]=r+e[1]|0,e[2]=o+e[2]|0,e[3]=a+e[3]|0}function r(e){var t,n=[];for(t=0;t&lt;64;t+=4)n[t&gt;&gt;2]=e.charCodeAt(t)+(e.charCodeAt(t+1)&lt;&lt;8)+(e.charCodeAt(t+2)&lt;&lt;16)+(e.charCodeAt(t+3)&lt;&lt;24);return n}function o(e){var t,n=[];for(t=0;t&lt;64;t+=4)n[t&gt;&gt;2]=e[t]+(e[t+1]&lt;&lt;8)+(e[t+2]&lt;&lt;16)+(e[t+3]&lt;&lt;24);return n}function a(e){var t,o,a,i,s,l,c=e.length,u=[1732584193,-271733879,-1732584194,271733878];for(t=64;t&lt;=c;t+=64)n(u,r(e.substring(t-64,t)));for(o=(e=e.substring(t-64)).length,a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],t=0;t&lt;o;t+=1)a[t&gt;&gt;2]|=e.charCodeAt(t)&lt;&lt;(t%4&lt;&lt;3);if(a[t&gt;&gt;2]|=128&lt;&lt;(t%4&lt;&lt;3),t&gt;55)for(n(u,a),t=0;t&lt;16;t+=1)a[t]=0;return i=(i=8*c).toString(16).match(/(.*?)(.{0,8})$/),s=parseInt(i[2],16),l=parseInt(i[1],16)||0,a[14]=s,a[15]=l,n(u,a),u}function i(e){var t,r,a,i,s,l,c=e.length,u=[1732584193,-271733879,-1732584194,271733878];for(t=64;t&lt;=c;t+=64)n(u,o(e.subarray(t-64,t)));for(r=(e=t-64&lt;c?e.subarray(t-64):new Uint8Array(0)).length,a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],t=0;t&lt;r;t+=1)a[t&gt;&gt;2]|=e[t]&lt;&lt;(t%4&lt;&lt;3);if(a[t&gt;&gt;2]|=128&lt;&lt;(t%4&lt;&lt;3),t&gt;55)for(n(u,a),t=0;t&lt;16;t+=1)a[t]=0;return i=(i=8*c).toString(16).match(/(.*?)(.{0,8})$/),s=parseInt(i[2],16),l=parseInt(i[1],16)||0,a[14]=s,a[15]=l,n(u,a),u}function s(e){var n,r=&quot;&quot;;for(n=0;n&lt;4;n+=1)r+=t[e&gt;&gt;8*n+4&amp;15]+t[e&gt;&gt;8*n&amp;15];return r}function l(e){var t;for(t=0;t&lt;e.length;t+=1)e[t]=s(e[t]);return e.join(&quot;&quot;)}function c(e){return/[\\u0080-\\uFFFF]/.test(e)&amp;&amp;(e=unescape(encodeURIComponent(e))),e}function u(e,t){var n,r=e.length,o=new ArrayBuffer(r),a=new Uint8Array(o);for(n=0;n&lt;r;n+=1)a[n]=e.charCodeAt(n);return t?a:o}function d(e){return String.fromCharCode.apply(null,new Uint8Array(e))}function p(e,t,n){var r=new Uint8Array(e.byteLength+t.byteLength);return r.set(new Uint8Array(e)),r.set(new Uint8Array(t),e.byteLength),n?r:r.buffer}function f(e){var t,n=[],r=e.length;for(t=0;t&lt;r-1;t+=2)n.push(parseInt(e.substr(t,2),16));return String.fromCharCode.apply(String,n)}function g(){this.reset()}return l(a(&quot;hello&quot;)),&quot;undefined&quot;==typeof ArrayBuffer||ArrayBuffer.prototype.slice||function(){function t(e,t){return(e=0|e||0)&lt;0?Math.max(e+t,0):Math.min(e,t)}ArrayBuffer.prototype.slice=function(n,r){var o,a,i,s,l=this.byteLength,c=t(n,l),u=l;return r!==e&amp;&amp;(u=t(r,l)),c&gt;u?new ArrayBuffer(0):(o=u-c,a=new ArrayBuffer(o),i=new Uint8Array(a),s=new Uint8Array(this,c,o),i.set(s),a)}}(),g.prototype.append=function(e){return this.appendBinary(c(e)),this},g.prototype.appendBinary=function(e){this._buff+=e,this._length+=e.length;var t,o=this._buff.length;for(t=64;t&lt;=o;t+=64)n(this._hash,r(this._buff.substring(t-64,t)));return this._buff=this._buff.substring(t-64),this},g.prototype.end=function(e){var t,n,r=this._buff,o=r.length,a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(t=0;t&lt;o;t+=1)a[t&gt;&gt;2]|=r.charCodeAt(t)&lt;&lt;(t%4&lt;&lt;3);return this._finish(a,o),n=l(this._hash),e&amp;&amp;(n=f(n)),this.reset(),n},g.prototype.reset=function(){return this._buff=&quot;&quot;,this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},g.prototype.getState=function(){return{buff:this._buff,length:this._length,hash:this._hash.slice()}},g.prototype.setState=function(e){return this._buff=e.buff,this._length=e.length,this._hash=e.hash,this},g.prototype.destroy=function(){delete this._hash,delete this._buff,delete this._length},g.prototype._finish=function(e,t){var r,o,a,i=t;if(e[i&gt;&gt;2]|=128&lt;&lt;(i%4&lt;&lt;3),i&gt;55)for(n(this._hash,e),i=0;i&lt;16;i+=1)e[i]=0;r=(r=8*this._length).toString(16).match(/(.*?)(.{0,8})$/),o=parseInt(r[2],16),a=parseInt(r[1],16)||0,e[14]=o,e[15]=a,n(this._hash,e)},g.hash=function(e,t){return g.hashBinary(c(e),t)},g.hashBinary=function(e,t){var n=l(a(e));return t?f(n):n},g.ArrayBuffer=function(){this.reset()},g.ArrayBuffer.prototype.append=function(e){var t,r=p(this._buff.buffer,e,!0),a=r.length;for(this._length+=e.byteLength,t=64;t&lt;=a;t+=64)n(this._hash,o(r.subarray(t-64,t)));return this._buff=t-64&lt;a?new Uint8Array(r.buffer.slice(t-64)):new Uint8Array(0),this},g.ArrayBuffer.prototype.end=function(e){var t,n,r=this._buff,o=r.length,a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(t=0;t&lt;o;t+=1)a[t&gt;&gt;2]|=r[t]&lt;&lt;(t%4&lt;&lt;3);return this._finish(a,o),n=l(this._hash),e&amp;&amp;(n=f(n)),this.reset(),n},g.ArrayBuffer.prototype.reset=function(){return this._buff=new Uint8Array(0),this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},g.ArrayBuffer.prototype.getState=function(){var e=g.prototype.getState.call(this);return e.buff=d(e.buff),e},g.ArrayBuffer.prototype.setState=function(e){return e.buff=u(e.buff,!0),g.prototype.setState.call(this,e)},g.ArrayBuffer.prototype.destroy=g.prototype.destroy,g.ArrayBuffer.prototype._finish=g.prototype._finish,g.ArrayBuffer.hash=function(e,t){var n=l(i(new Uint8Array(e)));return t?f(n):n},g}()}(Iv);var Ov=Iv.exports;const Rv=[&quot;lastShaderProgramBound&quot;,&quot;context&quot;,&quot;_openGLRenderWindow&quot;];const Mv={lastShaderProgramBound:null,shaderPrograms:null,context:null};function Dv(e,t,n={}){Object.assign(t,Mv,n),t.shaderPrograms={},sn.obj(e,t),sn.setGet(e,t,Rv),sn.moveToProtected(e,t,[&quot;openGLRenderWindow&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkShaderCache&quot;),e.replaceShaderValues=(e,n,r)=&gt;{let o=n;r.length&gt;0&amp;&amp;(o=vd.substitute(o,&quot;VSOut&quot;,&quot;GSOut&quot;).result);const a=t._openGLRenderWindow.getWebgl2();let i=&quot;\\n&quot;,s=&quot;#version 100\\n&quot;;a?s=&quot;#version 300 es\\n#define attribute in\\n#define textureCube texture\\n#define texture2D texture\\n#define textureCubeLod textureLod\\n#define texture2DLod textureLod\\n&quot;:(t.context.getExtension(&quot;OES_standard_derivatives&quot;),t.context.getExtension(&quot;EXT_frag_depth&quot;)&amp;&amp;(i=&quot;#extension GL_EXT_frag_depth : enable\\n&quot;),t.context.getExtension(&quot;EXT_shader_texture_lod&quot;)&amp;&amp;(i+=&quot;#extension GL_EXT_shader_texture_lod : enable\\n#define textureCubeLod textureCubeLodEXT\\n#define texture2DLod texture2DLodEXT&quot;)),o=vd.substitute(o,&quot;//VTK::System::Dec&quot;,[`${s}\\n`,a?&quot;&quot;:&quot;#extension GL_OES_standard_derivatives : enable\\n&quot;,i,&quot;#ifdef GL_FRAGMENT_PRECISION_HIGH&quot;,&quot;precision highp float;&quot;,&quot;precision highp int;&quot;,&quot;#else&quot;,&quot;precision mediump float;&quot;,&quot;precision mediump int;&quot;,&quot;#endif&quot;]).result;let l=vd.substitute(e,&quot;//VTK::System::Dec&quot;,[`${s}\\n`,&quot;#ifdef GL_FRAGMENT_PRECISION_HIGH&quot;,&quot;precision highp float;&quot;,&quot;precision highp int;&quot;,&quot;#else&quot;,&quot;precision mediump float;&quot;,&quot;precision mediump int;&quot;,&quot;#endif&quot;]).result;if(a){l=vd.substitute(l,&quot;varying&quot;,&quot;out&quot;).result,o=vd.substitute(o,&quot;varying&quot;,&quot;in&quot;).result;let e=&quot;&quot;,t=0;for(;o.includes(`gl_FragData[${t}]`);)o=vd.substitute(o,`gl_FragData\\\\[${t}\\\\]`,`fragOutput${t}`).result,e+=`layout(location = ${t}) out vec4 fragOutput${t};\\n`,t++;o=vd.substitute(o,&quot;//VTK::Output::Dec&quot;,e).result}return{VSSource:l,FSSource:o,GSSource:vd.substitute(r,&quot;//VTK::System::Dec&quot;,s).result}},e.readyShaderProgramArray=(t,n,r)=&gt;{const o=e.replaceShaderValues(t,n,r),a=e.getShaderProgram(o.VSSource,o.FSSource,o.GSSource);return e.readyShaderProgram(a)},e.readyShaderProgram=t=&gt;t&amp;&amp;(t.getCompiled()||t.compileShader())&amp;&amp;e.bindShaderProgram(t)?t:null,e.getShaderProgram=(e,n,r)=&gt;{const o=`${e}${n}${r}`,a=Ov.hash(o);if(!(a in t.shaderPrograms)){const o=vd.newInstance();return o.setContext(t.context),o.getVertexShader().setSource(e),o.getFragmentShader().setSource(n),r&amp;&amp;o.getGeometryShader().setSource(r),o.setMd5Hash(a),t.shaderPrograms[a]=o,o}return t.shaderPrograms[a]},e.releaseGraphicsResources=n=&gt;{e.releaseCurrentShaderProgram(),Object.keys(t.shaderPrograms).map((e=&gt;t.shaderPrograms[e])).forEach((e=&gt;e.cleanup())),t.shaderPrograms={}},e.releaseCurrentShaderProgram=()=&gt;{t.lastShaderProgramBound&amp;&amp;(t.lastShaderProgramBound.cleanup(),t.lastShaderProgramBound=null)},e.bindShaderProgram=e=&gt;(t.lastShaderProgramBound===e||(t.lastShaderProgramBound&amp;&amp;t.lastShaderProgramBound.release(),e.bind(),t.lastShaderProgramBound=e),1)}(e,t)}var Ev={newInstance:sn.newInstance(Dv,&quot;vtkShaderCache&quot;),extend:Dv};const{vtkErrorMacro:Vv}=sn;const Lv={context:null,numberOfTextureUnits:0,textureUnits:0};function Bv(e,t,n={}){Object.assign(t,Lv,n),sn.obj(e,t),t.textureUnits=[],sn.get(e,t,[&quot;numberOfTextureUnits&quot;]),sn.setGet(e,t,[&quot;context&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLTextureUnitManager&quot;),e.deleteTable=()=&gt;{for(let e=0;e&lt;t.numberOfTextureUnits;++e)!0===t.textureUnits[e]&amp;&amp;Vv(&quot;some texture units  were not properly released&quot;);t.textureUnits=[],t.numberOfTextureUnits=0},e.setContext=n=&gt;{if(t.context!==n){if(0!==t.context&amp;&amp;e.deleteTable(),t.context=n,t.context){t.numberOfTextureUnits=n.getParameter(n.MAX_TEXTURE_IMAGE_UNITS);for(let e=0;e&lt;t.numberOfTextureUnits;++e)t.textureUnits[e]=!1}e.modified()}},e.allocate=()=&gt;{for(let n=0;n&lt;t.numberOfTextureUnits;n++)if(!e.isAllocated(n))return t.textureUnits[n]=!0,n;return-1},e.allocateUnit=n=&gt;e.isAllocated(n)?-1:(t.textureUnits[n]=!0,n),e.isAllocated=e=&gt;t.textureUnits[e],e.free=e=&gt;{t.textureUnits[e]=!1},e.freeAll=()=&gt;{for(let e=0;e&lt;t.numberOfTextureUnits;++e)t.textureUnits[e]=!1}}(e,t)}var Fv={newInstance:sn.newInstance(Bv,&quot;vtkOpenGLTextureUnitManager&quot;),extend:Bv};const Nv={size:void 0,selector:void 0};function kv(e,t,n={}){Object.assign(t,Nv,n),t.size||(t.size=[300,300]),sn.getArray(e,t,[&quot;size&quot;],2),sn.get(e,t,[&quot;selector&quot;]),pn.extend(e,t,n),function(e,t){t.classHierarchy.push(&quot;vtkRenderWindowViewNode&quot;),e.getViewNodeFactory=()=&gt;null,e.getAspectRatio=()=&gt;t.size[0]/t.size[1],e.getAspectRatioForRenderer=e=&gt;{const n=e.getViewportByReference();return t.size[0]*(n[2]-n[0])/((n[3]-n[1])*t.size[1])},e.isInViewport=(t,n,r)=&gt;{const o=r.getViewportByReference(),a=e.getFramebufferSize();return o[0]*a[0]&lt;=t&amp;&amp;o[2]*a[0]&gt;=t&amp;&amp;o[1]*a[1]&lt;=n&amp;&amp;o[3]*a[1]&gt;=n},e.getViewportSize=t=&gt;{const n=t.getViewportByReference(),r=e.getFramebufferSize();return[(n[2]-n[0])*r[0],(n[3]-n[1])*r[1]]},e.getViewportCenter=t=&gt;{const n=e.getViewportSize(t);return[.5*n[0],.5*n[1]]},e.displayToNormalizedDisplay=(t,n,r)=&gt;{const o=e.getFramebufferSize();return[t/o[0],n/o[1],r]},e.normalizedDisplayToDisplay=(t,n,r)=&gt;{const o=e.getFramebufferSize();return[t*o[0],n*o[1],r]},e.worldToView=(e,t,n,r)=&gt;r.worldToView(e,t,n),e.viewToWorld=(e,t,n,r)=&gt;r.viewToWorld(e,t,n),e.worldToDisplay=(t,n,r,o)=&gt;{const a=o.worldToView(t,n,r),i=e.getViewportSize(o),s=o.viewToProjection(a[0],a[1],a[2],i[0]/i[1]),l=o.projectionToNormalizedDisplay(s[0],s[1],s[2]);return e.normalizedDisplayToDisplay(l[0],l[1],l[2])},e.displayToWorld=(t,n,r,o)=&gt;{const a=e.displayToNormalizedDisplay(t,n,r),i=o.normalizedDisplayToProjection(a[0],a[1],a[2]),s=e.getViewportSize(o),l=o.projectionToView(i[0],i[1],i[2],s[0]/s[1]);return o.viewToWorld(l[0],l[1],l[2])},e.normalizedDisplayToViewport=(t,n,r,o)=&gt;{let a=o.getViewportByReference();a=e.normalizedDisplayToDisplay(a[0],a[1],0);const i=e.normalizedDisplayToDisplay(t,n,r);return[i[0]-a[0]-.5,i[1]-a[1]-.5,r]},e.viewportToNormalizedViewport=(t,n,r,o)=&gt;{const a=e.getViewportSize(o);return a&amp;&amp;0!==a[0]&amp;&amp;0!==a[1]?[t/(a[0]-1),n/(a[1]-1),r]:[t,n,r]},e.normalizedViewportToViewport=(t,n,r,o)=&gt;{const a=e.getViewportSize(o);return[t*(a[0]-1),n*(a[1]-1),r]},e.displayToLocalDisplay=(t,n,r)=&gt;[t,e.getFramebufferSize()[1]-n-1,r],e.viewportToNormalizedDisplay=(t,n,r,o)=&gt;{let a=o.getViewportByReference();a=e.normalizedDisplayToDisplay(a[0],a[1],0);const i=t+a[0]+.5,s=n+a[1]+.5;return e.displayToNormalizedDisplay(i,s,r)},e.getComputedDevicePixelRatio=()=&gt;t.size[0]/e.getContainerSize()[0],e.getContainerSize=()=&gt;{sn.vtkErrorMacro(&quot;not implemented&quot;)},e.getPixelData=(e,t,n,r)=&gt;{sn.vtkErrorMacro(&quot;not implemented&quot;)},e.createSelector=()=&gt;{sn.vtkErrorMacro(&quot;not implemented&quot;)}}(e,t)}var Gv={newInstance:sn.newInstance(kv,&quot;vtkRenderWindowViewNode&quot;),extend:kv};function Uv(){const e=new Map,t={apply:(t,n,r)=&gt;e.has(r[0])?e.get(r[0]):t.apply(n,r)};const n=Object.create(null);return n.getParameter=(e,n,r,o)=&gt;new Proxy(o.bind(e),t),n.depthMask=(t,n,r,o)=&gt;{return new Proxy(o.bind(t),(a=t.DEPTH_WRITEMASK,{apply:(t,n,r)=&gt;(e.set(a,r[0]),t.apply(n,r))}));var a},{get(e,t,r){if(&quot;__getUnderlyingContext&quot;===t)return()=&gt;e;let o=Reflect.get(e,t,e);o instanceof Function&amp;&amp;(o=o.bind(e));const a=n[t];return a?a(e,t,r,o):o}}}const{vtkDebugMacro:_v,vtkErrorMacro:Kv}=sn,zv={position:&quot;absolute&quot;,top:0,left:0,width:&quot;100%&quot;,height:&quot;100%&quot;},Wv=[&quot;activateTexture&quot;,&quot;deactivateTexture&quot;,&quot;disableCullFace&quot;,&quot;enableCullFace&quot;,&quot;get3DContext&quot;,&quot;getActiveFramebuffer&quot;,&quot;getContext&quot;,&quot;getDefaultTextureByteSize&quot;,&quot;getDefaultTextureInternalFormat&quot;,&quot;getDefaultToWebgl2&quot;,&quot;getGLInformations&quot;,&quot;getGraphicsMemoryInfo&quot;,&quot;getGraphicsResourceForObject&quot;,&quot;getHardwareMaximumLineWidth&quot;,&quot;getPixelData&quot;,&quot;getShaderCache&quot;,&quot;getTextureUnitForTexture&quot;,&quot;getTextureUnitManager&quot;,&quot;getWebgl2&quot;,&quot;makeCurrent&quot;,&quot;releaseGraphicsResources&quot;,&quot;registerGraphicsResourceUser&quot;,&quot;unregisterGraphicsResourceUser&quot;,&quot;restoreContext&quot;,&quot;setActiveFramebuffer&quot;,&quot;setContext&quot;,&quot;setDefaultToWebgl2&quot;,&quot;setGraphicsResourceForObject&quot;];function Hv(e,t,n){const r=e.createFramebuffer(),o=e.createTexture();e.bindTexture(e.TEXTURE_2D,o),e.texImage2D(e.TEXTURE_2D,0,t,2,2,0,t,n,null),e.bindFramebuffer(e.FRAMEBUFFER,r),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,o,0);const a=e.checkFramebufferStatus(e.FRAMEBUFFER);return e.bindFramebuffer(e.FRAMEBUFFER,null),e.bindTexture(e.TEXTURE_2D,null),a===e.FRAMEBUFFER_COMPLETE}let jv=0;const Xv=[];function qv(e){e.preventDefault()}function Yv(e,t){let n;t.classHierarchy.push(&quot;vtkOpenGLRenderWindow&quot;),e.getViewNodeFactory=()=&gt;t.myFactory,t.canvas.addEventListener(&quot;webglcontextlost&quot;,qv,!1),t.canvas.addEventListener(&quot;webglcontextrestored&quot;,e.restoreContext,!1);const r=[0,0];let o;e.onModified((function(){t.renderable&amp;&amp;(t.size[0]===r[0]&amp;&amp;t.size[1]===r[1]||(r[0]=t.size[0],r[1]=t.size[1],t.canvas.setAttribute(&quot;width&quot;,t.size[0]),t.canvas.setAttribute(&quot;height&quot;,t.size[1]))),t.viewStream&amp;&amp;t.viewStream.setSize(t.size[0],t.size[1]),t.canvas.style.display=t.useOffScreen?&quot;none&quot;:&quot;block&quot;,t.el&amp;&amp;(t.el.style.cursor=t.cursorVisibility?t.cursor:&quot;none&quot;),t.containerSize=null})),e.buildPass=n=&gt;{if(n){if(!t.renderable)return;e.prepareNodes(),e.addMissingNodes(t.renderable.getRenderersByReference()),e.addMissingNodes(t.renderable.getChildRenderWindowsByReference()),e.removeUnusedNodes(),e.initialize(),t.children.forEach((t=&gt;{t.setOpenGLRenderWindow?.(e)}))}},e.initialize=()=&gt;{if(!t.initialized){if(t.rootOpenGLRenderWindow=e.getLastAncestorOfType(&quot;vtkOpenGLRenderWindow&quot;),t.rootOpenGLRenderWindow)t.context2D=e.get2DContext();else{t.context=e.get3DContext(),e.resizeFromChildRenderWindows(),t.context&amp;&amp;(jv++,Xv.forEach((e=&gt;e(jv)))),t.textureUnitManager=Fv.newInstance(),t.textureUnitManager.setContext(t.context),t.shaderCache.setContext(t.context);const n=t.context;n.blendFuncSeparate(n.SRC_ALPHA,n.ONE_MINUS_SRC_ALPHA,n.ONE,n.ONE_MINUS_SRC_ALPHA),n.depthFunc(n.LEQUAL),n.enable(n.BLEND)}t.initialized=!0}},e.makeCurrent=()=&gt;{t.context.makeCurrent()},e.setContainer=n=&gt;{t.el&amp;&amp;t.el!==n&amp;&amp;(t.canvas.parentNode!==t.el&amp;&amp;Kv(&quot;Error: canvas parent node does not match container&quot;),t.el.removeChild(t.canvas),t.el.contains(t.bgImage)&amp;&amp;t.el.removeChild(t.bgImage)),t.el!==n&amp;&amp;(t.el=n,t.el&amp;&amp;(t.el.appendChild(t.canvas),t.useBackgroundImage&amp;&amp;t.el.appendChild(t.bgImage)),e.modified())},e.getContainer=()=&gt;t.el,e.getContainerSize=()=&gt;{if(!t.containerSize&amp;&amp;t.el){const{width:e,height:n}=t.el.getBoundingClientRect();t.containerSize=[e,n]}return t.containerSize||t.size},e.getFramebufferSize=()=&gt;{const e=t.activeFramebuffer?.getSize();return e||t.size},e.getPixelData=(e,n,r,o)=&gt;{const a=new Uint8Array((r-e+1)*(o-n+1)*4);return t.context.readPixels(e,n,r-e+1,o-n+1,t.context.RGBA,t.context.UNSIGNED_BYTE,a),a},e.get3DContext=(e={preserveDrawingBuffer:!1,depth:!0,alpha:!0,powerPreference:&quot;high-performance&quot;})=&gt;{let r=null;const o=&quot;undefined&quot;!=typeof WebGL2RenderingContext;return t.webgl2=!1,t.defaultToWebgl2&amp;&amp;o&amp;&amp;(r=t.canvas.getContext(&quot;webgl2&quot;,e),r&amp;&amp;(t.webgl2=!0,_v(&quot;using webgl2&quot;))),r||(_v(&quot;using webgl1&quot;),r=t.canvas.getContext(&quot;webgl&quot;,e)||t.canvas.getContext(&quot;experimental-webgl&quot;,e)),r||Kv(&quot;no webgl context&quot;),new Proxy(r,(n||(n=Uv()),n))},e.get2DContext=(e={})=&gt;t.canvas.getContext(&quot;2d&quot;,e),e.restoreContext=()=&gt;{const t=vv.newInstance();t.setCurrentOperation(&quot;Release&quot;),t.traverse(e,null)},e.activateTexture=n=&gt;{const r=t._textureResourceIds.get(n);if(void 0!==r)return void t.context.activeTexture(t.context.TEXTURE0+r);const o=e.getTextureUnitManager().allocate();o&lt;0?Kv(&quot;Hardware does not support the number of textures defined.&quot;):(t._textureResourceIds.set(n,o),t.context.activeTexture(t.context.TEXTURE0+o))},e.deactivateTexture=n=&gt;{const r=t._textureResourceIds.get(n);void 0!==r&amp;&amp;(e.getTextureUnitManager().free(r),t._textureResourceIds.delete(n))},e.getTextureUnitForTexture=e=&gt;{const n=t._textureResourceIds.get(e);return void 0!==n?n:-1},e.getDefaultTextureByteSize=(e,n=null,r=!1)=&gt;{if(t.webgl2)switch(e){case ms.CHAR:case ms.SIGNED_CHAR:case ms.UNSIGNED_CHAR:return 1;case n:case r:case ms.UNSIGNED_SHORT:case ms.SHORT:case ms.VOID:return 2;default:return 4}return 1},e.getDefaultTextureInternalFormat=(e,n,r=null,o=!1)=&gt;{if(t.webgl2)switch(e){case ms.UNSIGNED_CHAR:switch(n){case 1:return t.context.R8;case 2:return t.context.RG8;case 3:return t.context.RGB8;default:return t.context.RGBA8}case r&amp;&amp;!o&amp;&amp;ms.UNSIGNED_SHORT:switch(n){case 1:return r.R16_EXT;case 2:return r.RG16_EXT;case 3:return r.RGB16_EXT;default:return r.RGBA16_EXT}case r&amp;&amp;!o&amp;&amp;ms.SHORT:switch(n){case 1:return r.R16_SNORM_EXT;case 2:return r.RG16_SNORM_EXT;case 3:return r.RGB16_SNORM_EXT;default:return r.RGBA16_SNORM_EXT}default:switch(n){case 1:return o?t.context.R16F:t.context.R32F;case 2:return o?t.context.RG16F:t.context.RG32F;case 3:return o?t.context.RGB16F:t.context.RGB32F;default:return o?t.context.RGBA16F:t.context.RGBA32F}}switch(n){case 1:return t.context.LUMINANCE;case 2:return t.context.LUMINANCE_ALPHA;case 3:return t.context.RGB;default:return t.context.RGBA}},e.setBackgroundImage=e=&gt;{t.bgImage.src=e.src},e.setUseBackgroundImage=e=&gt;{t.useBackgroundImage=e,t.useBackgroundImage&amp;&amp;!t.el.contains(t.bgImage)?t.el.appendChild(t.bgImage):!t.useBackgroundImage&amp;&amp;t.el.contains(t.bgImage)&amp;&amp;t.el.removeChild(t.bgImage)},e.captureNextImage=(n=&quot;image/png&quot;,{resetCamera:r=!1,size:o=null,scale:a=1}={})=&gt;{if(t.deleted)return null;t.imageFormat=n;const i=t.notifyStartCaptureImage;return t.notifyStartCaptureImage=!0,t._screenshot={size:o||1!==a?o||t.size.map((e=&gt;e*a)):null},new Promise(((n,o)=&gt;{const a=e.onImageReady((o=&gt;{if(null===t._screenshot.size)t.notifyStartCaptureImage=i,a.unsubscribe(),t._screenshot.placeHolder&amp;&amp;(t.size=t._screenshot.originalSize,e.modified(),t._screenshot.cameras&amp;&amp;t._screenshot.cameras.forEach((({restoreParamsFn:e,arg:t})=&gt;e(t))),e.traverseAllPasses(),t.el.removeChild(t._screenshot.placeHolder),t._screenshot.placeHolder.remove(),t._screenshot=null),n(o);else{const n=document.createElement(&quot;img&quot;);if(n.style=zv,n.src=o,t._screenshot.placeHolder=t.el.appendChild(n),t.canvas.style.display=&quot;none&quot;,t._screenshot.originalSize=t.size,t.size=t._screenshot.size,t.rootOpenGLRenderWindow?.resizeFromChildRenderWindows(),t._screenshot.size=null,e.modified(),r){const e=!0!==r;t._screenshot.cameras=t.renderable.getRenderers().map((t=&gt;{const n=t.getActiveCamera(),o=n.get(&quot;focalPoint&quot;,&quot;position&quot;,&quot;parallelScale&quot;);return{resetCameraArgs:e?{renderer:t}:void 0,resetCameraFn:e?r:t.resetCamera,restoreParamsFn:n.set,arg:JSON.parse(JSON.stringify(o))}})),t._screenshot.cameras.forEach((({resetCameraFn:e,resetCameraArgs:t})=&gt;e(t)))}e.traverseAllPasses()}}))}))},e.getHardwareMaximumLineWidth=()=&gt;{if(null!=o)return o;const t=e.get3DContext(),n=t.getParameter(t.ALIASED_LINE_WIDTH_RANGE);return o=n[1],n[1]},e.getGLInformations=()=&gt;{if(t._glInformation)return t._glInformation;const n=e.get3DContext(),r=n.getExtension(&quot;OES_texture_float&quot;),o=n.getExtension(&quot;OES_texture_half_float&quot;),a=n.getExtension(&quot;WEBGL_debug_renderer_info&quot;),i=n.getExtension(&quot;WEBGL_draw_buffers&quot;),s=n.getExtension(&quot;EXT_texture_filter_anisotropic&quot;)||n.getExtension(&quot;WEBKIT_EXT_texture_filter_anisotropic&quot;),l=[[&quot;Max Vertex Attributes&quot;,&quot;MAX_VERTEX_ATTRIBS&quot;,n.getParameter(n.MAX_VERTEX_ATTRIBS)],[&quot;Max Varying Vectors&quot;,&quot;MAX_VARYING_VECTORS&quot;,n.getParameter(n.MAX_VARYING_VECTORS)],[&quot;Max Vertex Uniform Vectors&quot;,&quot;MAX_VERTEX_UNIFORM_VECTORS&quot;,n.getParameter(n.MAX_VERTEX_UNIFORM_VECTORS)],[&quot;Max Fragment Uniform Vectors&quot;,&quot;MAX_FRAGMENT_UNIFORM_VECTORS&quot;,n.getParameter(n.MAX_FRAGMENT_UNIFORM_VECTORS)],[&quot;Max Fragment Texture Image Units&quot;,&quot;MAX_TEXTURE_IMAGE_UNITS&quot;,n.getParameter(n.MAX_TEXTURE_IMAGE_UNITS)],[&quot;Max Vertex Texture Image Units&quot;,&quot;MAX_VERTEX_TEXTURE_IMAGE_UNITS&quot;,n.getParameter(n.MAX_VERTEX_TEXTURE_IMAGE_UNITS)],[&quot;Max Combined Texture Image Units&quot;,&quot;MAX_COMBINED_TEXTURE_IMAGE_UNITS&quot;,n.getParameter(n.MAX_COMBINED_TEXTURE_IMAGE_UNITS)],[&quot;Max 2D Texture Size&quot;,&quot;MAX_TEXTURE_SIZE&quot;,n.getParameter(n.MAX_TEXTURE_SIZE)],[&quot;Max Cube Texture Size&quot;,&quot;MAX_CUBE_MAP_TEXTURE_SIZE&quot;,n.getParameter(n.MAX_CUBE_MAP_TEXTURE_SIZE)],[&quot;Max Texture Anisotropy&quot;,&quot;MAX_TEXTURE_MAX_ANISOTROPY_EXT&quot;,s&amp;&amp;n.getParameter(s.MAX_TEXTURE_MAX_ANISOTROPY_EXT)],[&quot;Point Size Range&quot;,&quot;ALIASED_POINT_SIZE_RANGE&quot;,n.getParameter(n.ALIASED_POINT_SIZE_RANGE).join(&quot; - &quot;)],[&quot;Line Width Range&quot;,&quot;ALIASED_LINE_WIDTH_RANGE&quot;,n.getParameter(n.ALIASED_LINE_WIDTH_RANGE).join(&quot; - &quot;)],[&quot;Max Viewport Dimensions&quot;,&quot;MAX_VIEWPORT_DIMS&quot;,n.getParameter(n.MAX_VIEWPORT_DIMS).join(&quot; - &quot;)],[&quot;Max Renderbuffer Size&quot;,&quot;MAX_RENDERBUFFER_SIZE&quot;,n.getParameter(n.MAX_RENDERBUFFER_SIZE)],[&quot;Framebuffer Red Bits&quot;,&quot;RED_BITS&quot;,n.getParameter(n.RED_BITS)],[&quot;Framebuffer Green Bits&quot;,&quot;GREEN_BITS&quot;,n.getParameter(n.GREEN_BITS)],[&quot;Framebuffer Blue Bits&quot;,&quot;BLUE_BITS&quot;,n.getParameter(n.BLUE_BITS)],[&quot;Framebuffer Alpha Bits&quot;,&quot;ALPHA_BITS&quot;,n.getParameter(n.ALPHA_BITS)],[&quot;Framebuffer Depth Bits&quot;,&quot;DEPTH_BITS&quot;,n.getParameter(n.DEPTH_BITS)],[&quot;Framebuffer Stencil Bits&quot;,&quot;STENCIL_BITS&quot;,n.getParameter(n.STENCIL_BITS)],[&quot;Framebuffer Subpixel Bits&quot;,&quot;SUBPIXEL_BITS&quot;,n.getParameter(n.SUBPIXEL_BITS)],[&quot;MSAA Samples&quot;,&quot;SAMPLES&quot;,n.getParameter(n.SAMPLES)],[&quot;MSAA Sample Buffers&quot;,&quot;SAMPLE_BUFFERS&quot;,n.getParameter(n.SAMPLE_BUFFERS)],[&quot;Supported Formats for UByte Render Targets     &quot;,&quot;UNSIGNED_BYTE RENDER TARGET FORMATS&quot;,[r&amp;&amp;Hv(n,n.RGBA,n.UNSIGNED_BYTE)?&quot;RGBA&quot;:&quot;&quot;,r&amp;&amp;Hv(n,n.RGB,n.UNSIGNED_BYTE)?&quot;RGB&quot;:&quot;&quot;,r&amp;&amp;Hv(n,n.LUMINANCE,n.UNSIGNED_BYTE)?&quot;LUMINANCE&quot;:&quot;&quot;,r&amp;&amp;Hv(n,n.ALPHA,n.UNSIGNED_BYTE)?&quot;ALPHA&quot;:&quot;&quot;,r&amp;&amp;Hv(n,n.LUMINANCE_ALPHA,n.UNSIGNED_BYTE)?&quot;LUMINANCE_ALPHA&quot;:&quot;&quot;].join(&quot; &quot;)],[&quot;Supported Formats for Half Float Render Targets&quot;,&quot;HALF FLOAT RENDER TARGET FORMATS&quot;,[o&amp;&amp;Hv(n,n.RGBA,o.HALF_FLOAT_OES)?&quot;RGBA&quot;:&quot;&quot;,o&amp;&amp;Hv(n,n.RGB,o.HALF_FLOAT_OES)?&quot;RGB&quot;:&quot;&quot;,o&amp;&amp;Hv(n,n.LUMINANCE,o.HALF_FLOAT_OES)?&quot;LUMINANCE&quot;:&quot;&quot;,o&amp;&amp;Hv(n,n.ALPHA,o.HALF_FLOAT_OES)?&quot;ALPHA&quot;:&quot;&quot;,o&amp;&amp;Hv(n,n.LUMINANCE_ALPHA,o.HALF_FLOAT_OES)?&quot;LUMINANCE_ALPHA&quot;:&quot;&quot;].join(&quot; &quot;)],[&quot;Supported Formats for Full Float Render Targets&quot;,&quot;FLOAT RENDER TARGET FORMATS&quot;,[r&amp;&amp;Hv(n,n.RGBA,n.FLOAT)?&quot;RGBA&quot;:&quot;&quot;,r&amp;&amp;Hv(n,n.RGB,n.FLOAT)?&quot;RGB&quot;:&quot;&quot;,r&amp;&amp;Hv(n,n.LUMINANCE,n.FLOAT)?&quot;LUMINANCE&quot;:&quot;&quot;,r&amp;&amp;Hv(n,n.ALPHA,n.FLOAT)?&quot;ALPHA&quot;:&quot;&quot;,r&amp;&amp;Hv(n,n.LUMINANCE_ALPHA,n.FLOAT)?&quot;LUMINANCE_ALPHA&quot;:&quot;&quot;].join(&quot; &quot;)],[&quot;Max Multiple Render Targets Buffers&quot;,&quot;MAX_DRAW_BUFFERS_WEBGL&quot;,i?n.getParameter(i.MAX_DRAW_BUFFERS_WEBGL):0],[&quot;High Float Precision in Vertex Shader&quot;,&quot;HIGH_FLOAT VERTEX_SHADER&quot;,[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_FLOAT).precision,&quot; (-2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_FLOAT).rangeMin,&quot;&lt;/sup&gt; - 2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_FLOAT).rangeMax,&quot;&lt;/sup&gt;)&quot;].join(&quot;&quot;)],[&quot;Medium Float Precision in Vertex Shader&quot;,&quot;MEDIUM_FLOAT VERTEX_SHADER&quot;,[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).precision,&quot; (-2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).rangeMin,&quot;&lt;/sup&gt; - 2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).rangeMax,&quot;&lt;/sup&gt;)&quot;].join(&quot;&quot;)],[&quot;Low Float Precision in Vertex Shader&quot;,&quot;LOW_FLOAT VERTEX_SHADER&quot;,[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_FLOAT).precision,&quot; (-2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_FLOAT).rangeMin,&quot;&lt;/sup&gt; - 2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_FLOAT).rangeMax,&quot;&lt;/sup&gt;)&quot;].join(&quot;&quot;)],[&quot;High Float Precision in Fragment Shader&quot;,&quot;HIGH_FLOAT FRAGMENT_SHADER&quot;,[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).precision,&quot; (-2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).rangeMin,&quot;&lt;/sup&gt; - 2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).rangeMax,&quot;&lt;/sup&gt;)&quot;].join(&quot;&quot;)],[&quot;Medium Float Precision in Fragment Shader&quot;,&quot;MEDIUM_FLOAT FRAGMENT_SHADER&quot;,[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).precision,&quot; (-2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).rangeMin,&quot;&lt;/sup&gt; - 2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).rangeMax,&quot;&lt;/sup&gt;)&quot;].join(&quot;&quot;)],[&quot;Low Float Precision in Fragment Shader&quot;,&quot;LOW_FLOAT FRAGMENT_SHADER&quot;,[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_FLOAT).precision,&quot; (-2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_FLOAT).rangeMin,&quot;&lt;/sup&gt; - 2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_FLOAT).rangeMax,&quot;&lt;/sup&gt;)&quot;].join(&quot;&quot;)],[&quot;High Int Precision in Vertex Shader&quot;,&quot;HIGH_INT VERTEX_SHADER&quot;,[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_INT).precision,&quot; (-2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_INT).rangeMin,&quot;&lt;/sup&gt; - 2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_INT).rangeMax,&quot;&lt;/sup&gt;)&quot;].join(&quot;&quot;)],[&quot;Medium Int Precision in Vertex Shader&quot;,&quot;MEDIUM_INT VERTEX_SHADER&quot;,[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_INT).precision,&quot; (-2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_INT).rangeMin,&quot;&lt;/sup&gt; - 2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_INT).rangeMax,&quot;&lt;/sup&gt;)&quot;].join(&quot;&quot;)],[&quot;Low Int Precision in Vertex Shader&quot;,&quot;LOW_INT VERTEX_SHADER&quot;,[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_INT).precision,&quot; (-2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_INT).rangeMin,&quot;&lt;/sup&gt; - 2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_INT).rangeMax,&quot;&lt;/sup&gt;)&quot;].join(&quot;&quot;)],[&quot;High Int Precision in Fragment Shader&quot;,&quot;HIGH_INT FRAGMENT_SHADER&quot;,[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_INT).precision,&quot; (-2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_INT).rangeMin,&quot;&lt;/sup&gt; - 2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_INT).rangeMax,&quot;&lt;/sup&gt;)&quot;].join(&quot;&quot;)],[&quot;Medium Int Precision in Fragment Shader&quot;,&quot;MEDIUM_INT FRAGMENT_SHADER&quot;,[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_INT).precision,&quot; (-2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_INT).rangeMin,&quot;&lt;/sup&gt; - 2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_INT).rangeMax,&quot;&lt;/sup&gt;)&quot;].join(&quot;&quot;)],[&quot;Low Int Precision in Fragment Shader&quot;,&quot;LOW_INT FRAGMENT_SHADER&quot;,[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_INT).precision,&quot; (-2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_INT).rangeMin,&quot;&lt;/sup&gt; - 2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_INT).rangeMax,&quot;&lt;/sup&gt;)&quot;].join(&quot;&quot;)],[&quot;Supported Extensions&quot;,&quot;EXTENSIONS&quot;,n.getSupportedExtensions().join(&quot;&lt;br/&gt;\\t\\t\\t\\t\\t    &quot;)],[&quot;WebGL Renderer&quot;,&quot;RENDERER&quot;,n.getParameter(n.RENDERER)],[&quot;WebGL Vendor&quot;,&quot;VENDOR&quot;,n.getParameter(n.VENDOR)],[&quot;WebGL Version&quot;,&quot;VERSION&quot;,n.getParameter(n.VERSION)],[&quot;Shading Language Version&quot;,&quot;SHADING_LANGUAGE_VERSION&quot;,n.getParameter(n.SHADING_LANGUAGE_VERSION)],[&quot;Unmasked Renderer&quot;,&quot;UNMASKED_RENDERER&quot;,a&amp;&amp;n.getParameter(a.UNMASKED_RENDERER_WEBGL)],[&quot;Unmasked Vendor&quot;,&quot;UNMASKED_VENDOR&quot;,a&amp;&amp;n.getParameter(a.UNMASKED_VENDOR_WEBGL)],[&quot;WebGL Version&quot;,&quot;WEBGL_VERSION&quot;,t.webgl2?2:1]],c={};for(;l.length;){const[e,t,n]=l.pop();t&amp;&amp;(c[t]={label:e,value:n})}return t._glInformation=c,c},e.traverseAllPasses=()=&gt;{if(t.renderPasses)for(let n=0;n&lt;t.renderPasses.length;++n)t.renderPasses[n].traverse(e,null);e.copyParentContent(),t.notifyStartCaptureImage&amp;&amp;function(n=t.imageFormat){const r=document.createElement(&quot;canvas&quot;),o=r.getContext(&quot;2d&quot;);r.width=t.canvas.width,r.height=t.canvas.height,o.drawImage(t.canvas,0,0);const a=t.canvas.getBoundingClientRect();t.renderable.getRenderers().forEach((e=&gt;{e.getViewProps().forEach((e=&gt;{if(e.getContainer){const t=e.getContainer().getElementsByTagName(&quot;canvas&quot;);for(let e=0;e&lt;t.length;e++){const n=t[e],r=n.getBoundingClientRect(),i=r.x-a.x,s=r.y-a.y;o.drawImage(n,i,s)}}}))}));const i=r.toDataURL(n);r.remove(),e.invokeImageReady(i)}();const n=t.renderable.getChildRenderWindowsByReference();for(let t=0;t&lt;n.length;++t)e.getViewNodeFor(n[t])?.traverseAllPasses()},e.copyParentContent=()=&gt;{const e=t.rootOpenGLRenderWindow;if(!e||!t.context2D||t.children.some((e=&gt;!!e.getSelector?.())))return;const n=e.getCanvas(),r=t.canvas;t.context2D.drawImage(n,0,n.height-r.height,r.width,r.height,0,0,r.width,r.height)},e.resizeFromChildRenderWindows=()=&gt;{const n=t.renderable.getChildRenderWindowsByReference();if(n.length&gt;0){const t=[0,0];for(let r=0;r&lt;n.length;++r){const o=e.getViewNodeFor(n[r])?.getSize();o&amp;&amp;(t[0]=o[0]&gt;t[0]?o[0]:t[0],t[1]=o[1]&gt;t[1]?o[1]:t[1])}e.setSize(...t)}},e.disableCullFace=()=&gt;{t.cullFaceEnabled&amp;&amp;(t.context.disable(t.context.CULL_FACE),t.cullFaceEnabled=!1)},e.enableCullFace=()=&gt;{t.cullFaceEnabled||(t.context.enable(t.context.CULL_FACE),t.cullFaceEnabled=!0)},e.setViewStream=n=&gt;{if(t.viewStream===n)return!1;if(t.subscription&amp;&amp;(t.subscription.unsubscribe(),t.subscription=null),t.viewStream=n,t.viewStream){t.renderable.getRenderers()[0].getBackgroundByReference()[3]=0,e.setUseBackgroundImage(!0),t.subscription=t.viewStream.onImageReady((t=&gt;e.setBackgroundImage(t.image))),t.viewStream.setSize(t.size[0],t.size[1]),t.viewStream.invalidateCache(),t.viewStream.render(),e.modified()}return!0},e.createSelector=()=&gt;{const t=af.newInstance();return t.setOpenGLRenderWindow(e),t},e.delete=sn.chain((()=&gt;{t.context&amp;&amp;(jv--,Xv.forEach((e=&gt;e(jv)))),e.setContainer(),e.setViewStream()}),(function(){t.canvas.removeEventListener(&quot;webglcontextlost&quot;,qv),t.canvas.removeEventListener(&quot;webglcontextrestored&quot;,e.restoreContext)}),e.delete),e.setActiveFramebuffer=e=&gt;{t.activeFramebuffer=e};const a=e.setSize;e.setSize=(t,n)=&gt;{const r=a(t,n);return r&amp;&amp;e.invokeWindowResizeEvent({width:t,height:n}),r},e.registerGraphicsResourceUser=(n,r)=&gt;{t._graphicsResources.has(n)||e.setGraphicsResourceForObject(n,null,null);const o=t._graphicsResources.get(n);o?.users.add(r)},e.unregisterGraphicsResourceUser=(n,r)=&gt;{const o=t._graphicsResources.get(n);o&amp;&amp;(o.users.delete(r),o.users.size||(o.oglObject?.releaseGraphicsResources(e),t._graphicsResources.delete(n)))},e.getGraphicsResourceForObject=e=&gt;t._graphicsResources.get(e),e.setGraphicsResourceForObject=(n,r,o)=&gt;{if(!n)return;const a=t._graphicsResources.get(n);a?.oglObject?.releaseGraphicsResources(e),t._graphicsResources.set(n,{coreObject:n,oglObject:r,hash:o,users:a?.users??new Set})},e.getGraphicsMemoryInfo=()=&gt;{let e=0;return t._graphicsResources.forEach((({oglObject:t})=&gt;{e+=t.getAllocatedGPUMemoryInBytes()})),e},e.releaseGraphicsResources=()=&gt;{null!==t.shaderCache&amp;&amp;t.shaderCache.releaseGraphicsResources(e),t._graphicsResources.forEach((({oglObject:t})=&gt;{t.releaseGraphicsResources(e)})),t._graphicsResources.clear(),null!==t.textureUnitManager&amp;&amp;t.textureUnitManager.freeAll(),t.renderable.getRenderersByReference().forEach((t=&gt;{const n=e.getViewNodeFor(t);n?.releaseGraphicsResources()}))};const i={...e};Wv.forEach((n=&gt;{e[n]=(...e)=&gt;t.rootOpenGLRenderWindow?t.rootOpenGLRenderWindow[n](...e):i[n](...e)}))}const Jv={cullFaceEnabled:!1,shaderCache:null,initialized:!1,context:null,context2D:null,canvas:null,cursorVisibility:!0,cursor:&quot;pointer&quot;,textureUnitManager:null,textureResourceIds:null,containerSize:null,renderPasses:[],notifyStartCaptureImage:!1,webgl2:!1,defaultToWebgl2:!0,activeFramebuffer:null,imageFormat:&quot;image/png&quot;,useOffScreen:!1,useBackgroundImage:!1};const Zv=sn.newInstance((function(e,t,n={}){Object.assign(t,Jv,n),Gv.extend(e,t,n),t.canvas||(t.canvas=document.createElement(&quot;canvas&quot;),t.canvas.style.width=&quot;100%&quot;),t.selector||(t.selector=af.newInstance(),t.selector.setOpenGLRenderWindow(e)),t.bgImage=new Image,t.bgImage.style.position=&quot;absolute&quot;,t.bgImage.style.left=&quot;0&quot;,t.bgImage.style.top=&quot;0&quot;,t.bgImage.style.width=&quot;100%&quot;,t.bgImage.style.height=&quot;100%&quot;,t.bgImage.style.zIndex=&quot;-1&quot;,t._textureResourceIds=new Map,t._graphicsResources=new Map,t._glInformation=null,t.myFactory=yn.newInstance(),t.shaderCache=Ev.newInstance(),t.shaderCache.setOpenGLRenderWindow(e),t.renderPasses[0]=wv.newInstance(),sn.get(e,t,[&quot;shaderCache&quot;,&quot;textureUnitManager&quot;,&quot;webgl2&quot;,&quot;useBackgroundImage&quot;,&quot;activeFramebuffer&quot;,&quot;rootOpenGLRenderWindow&quot;]),sn.setGet(e,t,[&quot;initialized&quot;,&quot;context&quot;,&quot;context2D&quot;,&quot;canvas&quot;,&quot;renderPasses&quot;,&quot;notifyStartCaptureImage&quot;,&quot;defaultToWebgl2&quot;,&quot;cursor&quot;,&quot;useOffScreen&quot;]),sn.setGetArray(e,t,[&quot;size&quot;],2),sn.event(e,t,&quot;imageReady&quot;),sn.event(e,t,&quot;windowResizeEvent&quot;),Yv(e,t)}),&quot;vtkOpenGLRenderWindow&quot;);Oh(&quot;WebGL&quot;,Zv),vn(&quot;vtkRenderWindow&quot;,Zv);const Qv={device:null,handle:null};function $v(e,t,n={}){Object.assign(t,Qv,n),sn.obj(e,t),sn.get(e,t,[&quot;lastCameraMTime&quot;]),sn.setGet(e,t,[&quot;device&quot;,&quot;handle&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUShaderModule&quot;),e.initialize=(e,n)=&gt;{t.device=e,t.handle=t.device.getHandle().createShaderModule({code:n.getCode()})}}(e,t)}var eT={newInstance:sn.newInstance($v,&quot;vtkWebGPUShaderModule&quot;),extend:$v};const tT={shaderModules:null,device:null,window:null};function nT(e,t,n={}){Object.assign(t,tT,n),t._shaderModules=new Map,sn.obj(e,t),sn.setGet(e,t,[&quot;device&quot;,&quot;window&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUShaderCache&quot;),e.getShaderModule=e=&gt;{const n=e.getType(),r=e.getHash(),o=t._shaderModules.keys();for(let e=0;e&lt;o.length;e++){const a=o[e];if(a.getHash()===r&amp;&amp;a.getType()===n)return t._shaderModules.get(a)}const a=eT.newInstance();return a.initialize(t.device,e),t._shaderModules.set(e,a),a}}(e,t)}var rT={newInstance:sn.newInstance(nT,&quot;vtkWebGPUShaderCache&quot;),extend:nT,substitute:function(e,t,n,r=!0){const o=Array.isArray(n)?n.join(&quot;\\n&quot;):n;let a=!1;-1!==e.search(t)&amp;&amp;(a=!0);let i=&quot;&quot;;r&amp;&amp;(i=&quot;g&quot;);const s=new RegExp(t,i);return{replace:a,result:e.replace(s,o)}}};const oT={device:null,handle:null,label:null};function aT(e,t,n={}){Object.assign(t,oT,n),sn.obj(e,t),t.bindables=[],t.bindGroupTime={},sn.obj(t.bindGroupTime,{mtime:0}),sn.get(e,t,[&quot;bindGroupTime&quot;,&quot;handle&quot;,&quot;sizeInBytes&quot;,&quot;usage&quot;]),sn.setGet(e,t,[&quot;label&quot;,&quot;device&quot;,&quot;arrayInformation&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUBindGroup&quot;),e.setBindables=n=&gt;{if(t.bindables.length===n.length){let e=!0;for(let r=0;r&lt;t.bindables.length;r++)t.bindables[r]!==n[r]&amp;&amp;(e=!1);if(e)return}t.bindables=n,e.modified()},e.getBindGroupLayout=e=&gt;{const n=[];for(let e=0;e&lt;t.bindables.length;e++){const r=t.bindables[e].getBindGroupLayoutEntry();r.binding=e,n.push(r)}return e.getBindGroupLayout({entries:n})},e.getBindGroup=n=&gt;{let r=e.getMTime();for(let e=0;e&lt;t.bindables.length;e++){const n=t.bindables[e].getBindGroupTime().getMTime();r=n&gt;r?n:r}if(r&lt;t.bindGroupTime.getMTime())return t.bindGroup;const o=[];for(let e=0;e&lt;t.bindables.length;e++){const n=t.bindables[e].getBindGroupEntry();n.binding=e,o.push(n)}return t.bindGroup=n.getHandle().createBindGroup({layout:e.getBindGroupLayout(n),entries:o,label:t.label}),t.bindGroupTime.modified(),t.bindGroup},e.getShaderCode=e=&gt;{const n=[],r=e.getBindGroupLayoutCount(t.label);for(let e=0;e&lt;t.bindables.length;e++)n.push(t.bindables[e].getShaderCode(e,r));return n.join(&quot;\\n&quot;)}}(e,t)}var iT={newInstance:sn.newInstance(aT),extend:aT};const sT={extraPipelineSettings:null,handle:null,layouts:null,renderEncoder:null,shaderDescriptions:null,vertexState:null,topology:null,pipelineDescription:null};function lT(e,t,n={}){Object.assign(t,sT,n),Vt(e,t),t.layouts=[],t.shaderDescriptions=[],Bt(e,t,[&quot;handle&quot;,&quot;pipelineDescription&quot;]),Gt(e,t,[&quot;device&quot;,&quot;extraPipelineSettings&quot;,&quot;renderEncoder&quot;,&quot;topology&quot;,&quot;vertexState&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUPipeline&quot;),e.getShaderDescriptions=()=&gt;t.shaderDescriptions,e.applyPipelineSettings=(e,t)=&gt;t?{...e,...t,primitive:{...e.primitive||{},...t.primitive||{}},depthStencil:{...e.depthStencil||{},...t.depthStencil||{}},fragment:{...e.fragment||{},...t.fragment||{}}}:e,e.initialize=(n,r)=&gt;{t.pipelineDescription=e.applyPipelineSettings(t.renderEncoder.getPipelineSettings(),t.extraPipelineSettings),t.pipelineDescription.primitive.topology=t.topology,t.pipelineDescription.vertex=t.vertexState,t.pipelineDescription.label=r;const o=[];for(let e=0;e&lt;t.layouts.length;e++)o.push(t.layouts[e].layout);t.pipelineLayout=n.getHandle().createPipelineLayout({bindGroupLayouts:o}),t.pipelineDescription.layout=t.pipelineLayout;for(let e=0;e&lt;t.shaderDescriptions.length;e++){const r=t.shaderDescriptions[e],o=n.getShaderModule(r);&quot;vertex&quot;===r.getType()&amp;&amp;(t.pipelineDescription.vertex.module=o.getHandle(),t.pipelineDescription.vertex.entryPoint=&quot;main&quot;),&quot;fragment&quot;===r.getType()&amp;&amp;(t.pipelineDescription.fragment.module=o.getHandle(),t.pipelineDescription.fragment.entryPoint=&quot;main&quot;)}t.handle=n.getHandle().createRenderPipeline(t.pipelineDescription)},e.getShaderDescription=e=&gt;{for(let n=0;n&lt;t.shaderDescriptions.length;n++)if(t.shaderDescriptions[n].getType()===e)return t.shaderDescriptions[n];return null},e.addBindGroupLayout=e=&gt;{e&amp;&amp;t.layouts.push({layout:e.getBindGroupLayout(t.device),label:e.getLabel()})},e.getBindGroupLayout=e=&gt;t.layouts[e].layout,e.getBindGroupLayoutCount=e=&gt;{for(let n=0;n&lt;t.layouts.length;n++)if(t.layouts[n].label===e)return n;return 0},e.bindVertexInput=(e,t)=&gt;{t.bindBuffers(e)}}(e,t)}var cT={newInstance:Xt(lT,&quot;vtkWebGPUPipeline&quot;),extend:lT};const uT={type:null,hash:null,code:null,outputNames:null,outputTypes:null};function dT(e,t,n={}){Object.assign(t,uT,n),t.outputNames=[],t.outputTypes=[],t.outputInterpolations=[],t.builtinOutputNames=[],t.builtinOutputTypes=[],t.builtinInputNames=[],t.builtinInputTypes=[],sn.obj(e,t),sn.setGet(e,t,[&quot;type&quot;,&quot;hash&quot;,&quot;code&quot;]),sn.getArray(e,t,[&quot;outputTypes&quot;,&quot;outputNames&quot;,&quot;outputInterpolations&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUShaderDescription&quot;),e.hasOutput=e=&gt;t.outputNames.includes(e),e.addOutput=(e,n,r=void 0)=&gt;{t.outputTypes.push(e),t.outputNames.push(n),t.outputInterpolations.push(r)},e.addBuiltinOutput=(e,n)=&gt;{t.builtinOutputTypes.push(e),t.builtinOutputNames.push(n)},e.addBuiltinInput=(e,n)=&gt;{t.builtinInputTypes.push(e),t.builtinInputNames.push(n)},e.replaceShaderCode=(e,n)=&gt;{const r=[];let o=[];if(n&amp;&amp;r.push(n.getShaderCode()),e||t.builtinInputNames.length){const n=[];if(n.push(`struct ${t.type}Input\\n{`),e){const t=e.getOutputNamesByReference(),r=e.getOutputTypesByReference(),o=e.getOutputInterpolationsByReference();for(let e=0;e&lt;t.length;e++)void 0!==o[e]?n.push(`  @location(${e}) @interpolate(${o[e]}) ${t[e]} : ${r[e]},`):n.push(`  @location(${e}) ${t[e]} : ${r[e]},`)}for(let e=0;e&lt;t.builtinInputNames.length;e++)n.push(`  ${t.builtinInputNames[e]} : ${t.builtinInputTypes[e]},`);n.length&gt;1&amp;&amp;(n.push(&quot;};&quot;),o=n,r[r.length-1]+=&quot;,&quot;,r.push(`input: ${t.type}Input`))}if(r.length&amp;&amp;(t.code=rT.substitute(t.code,&quot;//VTK::IOStructs::Input&quot;,r).result),t.outputNames.length+t.builtinOutputNames.length){const e=[`struct ${t.type}Output\\n{`];for(let n=0;n&lt;t.outputNames.length;n++)void 0!==t.outputInterpolations[n]?e.push(`  @location(${n}) @interpolate(${t.outputInterpolations[n]}) ${t.outputNames[n]} : ${t.outputTypes[n]},`):e.push(`  @location(${n}) ${t.outputNames[n]} : ${t.outputTypes[n]},`);for(let n=0;n&lt;t.builtinOutputNames.length;n++)e.push(`  ${t.builtinOutputNames[n]} : ${t.builtinOutputTypes[n]},`);e.push(&quot;};&quot;),o=o.concat(e),t.code=rT.substitute(t.code,&quot;//VTK::IOStructs::Output&quot;,[`-&gt; ${t.type}Output`]).result}t.code=rT.substitute(t.code,&quot;//VTK::IOStructs::Dec&quot;,o).result}}(e,t)}var pT={newInstance:sn.newInstance(dT,&quot;vtkWebGPUShaderDescription&quot;),extend:dT};const fT={r8unorm:{numComponents:1,nativeType:Uint8Array,stride:1,elementSize:1,sampleType:&quot;float&quot;},r8snorm:{numComponents:1,nativeType:Int8Array,stride:1,elementSize:1,sampleType:&quot;float&quot;},r8uint:{numComponents:1,nativeType:Uint8Array,stride:1,elementSize:1,sampleType:&quot;uint&quot;},r8sint:{numComponents:1,nativeType:Int8Array,stride:1,elementSize:1,sampleType:&quot;sint&quot;},r16uint:{numComponents:1,nativeType:Uint16Array,stride:2,elementSize:2,sampleType:&quot;uint&quot;},r16sint:{numComponents:1,nativeType:Int16Array,stride:2,elementSize:2,sampleType:&quot;sint&quot;},r16float:{numComponents:1,nativeType:Float32Array,stride:2,elementSize:2,sampleType:&quot;float&quot;},rg8unorm:{numComponents:2,nativeType:Uint8Array,stride:2,elementSize:1,sampleType:&quot;float&quot;},rg8snorm:{numComponents:2,nativeType:Int8Array,stride:2,elementSize:1,sampleType:&quot;float&quot;},rg8uint:{numComponents:2,nativeType:Uint8Array,stride:2,elementSize:1,sampleType:&quot;uint&quot;},rg8sint:{numComponents:2,nativeType:Int8Array,stride:2,elementSize:1,sampleType:&quot;sint&quot;},r32uint:{numComponents:1,nativeType:Uint32Array,stride:4,elementSize:4,sampleType:&quot;uint&quot;},r32sint:{numComponents:1,nativeType:Int32Array,stride:4,elementSize:4,sampleType:&quot;sint&quot;},r32float:{numComponents:1,nativeType:Float32Array,stride:4,elementSize:4,sampleType:&quot;unfilterable-float&quot;},rg16uint:{numComponents:2,nativeType:Uint16Array,stride:4,elementSize:2,sampleType:&quot;uint&quot;},rg16sint:{numComponents:2,nativeType:Int16Array,stride:4,elementSize:2,sampleType:&quot;sint&quot;},rg16float:{numComponents:2,nativeType:Float32Array,stride:4,elementSize:2,sampleType:&quot;float&quot;},rgba8unorm:{numComponents:4,nativeType:Uint8Array,stride:4,elementSize:1,sampleType:&quot;float&quot;},&quot;rgba8unorm-srgb&quot;:{numComponents:4,nativeType:Uint8Array,stride:4,elementSize:1,sampleType:&quot;float&quot;},rgba8snorm:{numComponents:4,nativeType:Int8Array,stride:4,elementSize:1,sampleType:&quot;float&quot;},rgba8uint:{numComponents:4,nativeType:Uint8Array,stride:4,elementSize:1,sampleType:&quot;uint&quot;},rgba8sint:{numComponents:4,nativeType:Int8Array,stride:4,elementSize:1,sampleType:&quot;sint&quot;},bgra8unorm:{numComponents:4,nativeType:Uint8Array,stride:4,elementSize:1,sampleType:&quot;float&quot;},&quot;bgra8unorm-srgb&quot;:{numComponents:4,nativeType:Uint8Array,stride:4,elementSize:1,sampleType:&quot;float&quot;},rgb9e5ufloat:{numComponents:4,nativeType:Uint32Array,stride:4,sampleType:&quot;float&quot;},rgb10a2unorm:{numComponents:4,nativeType:Uint32Array,stride:4,sampleType:&quot;float&quot;},rg11b10ufloat:{numComponents:4,nativeType:Float32Array,stride:4,sampleType:&quot;float&quot;},rg32uint:{numComponents:2,nativeType:Uint32Array,stride:8,elementSize:4,sampleType:&quot;uint&quot;},rg32sint:{numComponents:2,nativeType:Int32Array,stride:8,elementSize:4,sampleType:&quot;sint&quot;},rg32float:{numComponents:2,nativeType:Float32Array,stride:8,elementSize:4,sampleType:&quot;unfilterable-float&quot;},rgba16uint:{numComponents:4,nativeType:Uint16Array,stride:8,elementSize:2,sampleType:&quot;uint&quot;},rgba16sint:{numComponents:4,nativeType:Int16Array,stride:8,elementSize:2,sampleType:&quot;sint&quot;},rgba16float:{numComponents:4,nativeType:Float32Array,stride:8,elementSize:2,sampleType:&quot;float&quot;},rgba32uint:{numComponents:4,nativeType:Uint32Array,stride:16,elementSize:4,sampleType:&quot;uint&quot;},rgba32sint:{numComponents:4,nativeType:Int32Array,stride:16,elementSize:4,sampleType:&quot;sint&quot;},rgba32float:{numComponents:4,nativeType:Float32Array,stride:16,elementSize:4,sampleType:&quot;unfilterable-float&quot;},stencil8:{numComponents:1,nativeType:Uint8Array,stride:1,elementSize:1,sampleType:&quot;uint&quot;},depth16unorm:{numComponents:1,nativeType:Uint16Array,stride:2,elementSize:2,sampleType:&quot;depth&quot;},depth24plus:{numComponents:1,nativeType:Uint32Array,stride:4,elementSize:3,sampleType:&quot;depth&quot;},&quot;depth24plus-stencil8&quot;:{numComponents:2,nativeType:Uint32Array,stride:4,sampleType:&quot;mixed&quot;},depth32float:{numComponents:1,nativeType:Float32Array,stride:4,elementSize:4,sampleType:&quot;depth&quot;}};var gT={getDetailsFromTextureFormat:function(e){return!e||e.length&lt;6?0:e in fT==!0?fT[e]:(Tt(`unknown format ${e}`),null)},getByteStrideFromBufferFormat:function(e){if(!e||e.length&lt;5)return 0;let t=1;&quot;x&quot;===e[e.length-2]&amp;&amp;(t=Number(e[e.length-1]));const n=1===t?e.length-1:e.length-3,r=Number(e[n]);return Number.isNaN(r)?(Tt(`unknown format ${e}`),0):t*(5-r/2)},getNumberOfComponentsFromBufferFormat:function(e){if(!e||e.length&lt;5)return 0;let t=1;return&quot;x&quot;===e[e.length-2]&amp;&amp;(t=Number(e[e.length-1])),t},getNativeTypeFromBufferFormat:function(e){if(!e||e.length&lt;5)return 0;let t;if(&quot;f&quot;===e[0])t=&quot;Float&quot;;else if(&quot;s&quot;===e[0])t=&quot;Int&quot;;else{if(&quot;u&quot;!==e[0])return void Tt(`unknown format ${e}`);t=&quot;Uint&quot;}const n=e.split(&quot;x&quot;)[0],r=Number(n[n.length-1]);if(!Number.isNaN(r))return t+=8*(5-r/2),t+=&quot;Array&quot;,t;Tt(`unknown format ${e}`)},getShaderTypeFromBufferFormat:function(e){let t;if(&quot;f&quot;===e[0]||&quot;n&quot;===e[1])t=&quot;f32&quot;;else if(&quot;s&quot;===e[0]&amp;&amp;&quot;i&quot;===e[1])t=&quot;i32&quot;;else{if(&quot;u&quot;!==e[0]||&quot;i&quot;!==e[1])return void Tt(`unknown format ${e}`);t=&quot;u32&quot;}let n=1;return&quot;x&quot;===e[e.length-2]&amp;&amp;(n=Number(e[e.length-1])),4===n?`vec4&lt;${t}&gt;`:3===n?`vec3&lt;${t}&gt;`:2===n?`vec2&lt;${t}&gt;`:t},getByteStrideFromShaderFormat:function(e){if(!e)return 0;let t=1;return&quot;vec&quot;===e.substring(0,3)?t=Number(e[3]):&quot;mat&quot;===e.substring(0,3)&amp;&amp;(t=e[3]*e[5]),4*t},getNativeTypeFromShaderFormat:function(e){if(e)return e.includes(&quot;f32&quot;)?&quot;Float32Array&quot;:e.includes(&quot;i32&quot;)?&quot;Int32Array&quot;:e.includes(&quot;u32&quot;)?&quot;Uint32Array&quot;:void Tt(`unknown format ${e}`)}};function mT(e,t){if(e===t)return!0;if(null==e||null==t)return!1;if(e.length!==t.length)return!1;for(let n=0;n&lt;e.length;++n)if(!t.includes(e[n]))return!1;return!0}const hT={inputs:null,bindingDescriptions:!1,attributeDescriptions:null,indexBuffer:null};function vT(e,t,n={}){Object.assign(t,hT,n),Vt(e,t),t.bindingDescriptions=[],t.attributeDescriptions=[],t.inputs=[],Gt(e,t,[&quot;created&quot;,&quot;device&quot;,&quot;handle&quot;,&quot;indexBuffer&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUVertexInput&quot;),e.addBuffer=(e,n,r=&quot;vertex&quot;)=&gt;{let o=n;Array.isArray(o)||(o=[o]);for(let n=0;n&lt;t.inputs.length;n++)if(mT(t.inputs[n].names,o)){if(t.inputs[n].buffer===e)return;return void(t.inputs[n].buffer=e)}t.inputs.push({buffer:e,stepMode:r,names:o}),t.inputs=t.inputs.sort(((e,t)=&gt;e.names[0]&lt;t.names[0]?-1:e.names[0]&gt;t.names[0]?1:0))},e.removeBufferIfPresent=e=&gt;{for(let n=0;n&lt;t.inputs.length;n++)t.inputs[n].names.includes(e)&amp;&amp;t.inputs.splice(n,1)},e.getBuffer=e=&gt;{for(let n=0;n&lt;t.inputs.length;n++)if(t.inputs[n].names.includes(e))return t.inputs[n].buffer;return null},e.hasAttribute=e=&gt;{for(let n=0;n&lt;t.inputs.length;n++)if(t.inputs[n].names.includes(e))return!0;return!1},e.getAttributeTime=e=&gt;{for(let n=0;n&lt;t.inputs.length;n++)if(t.inputs[n].names.includes(e))return t.inputs[n].buffer.getSourceTime();return 0},e.getShaderCode=()=&gt;{let e=&quot;&quot;,n=0;for(let r=0;r&lt;t.inputs.length;r++)for(let o=0;o&lt;t.inputs[r].names.length;o++){const a=t.inputs[r].buffer.getArrayInformation()[o],i=gT.getShaderTypeFromBufferFormat(a.format);n&gt;0&amp;&amp;(e+=&quot;,\\n&quot;),e=`${e}  @location(${n}) ${t.inputs[r].names[o]} : ${i}`,n++}return e},e.getVertexInputInformation=()=&gt;{const e={};if(t.inputs.length){const n=[];let r=0;for(let e=0;e&lt;t.inputs.length;e++){const o=t.inputs[e].buffer,a={arrayStride:o.getStrideInBytes(),stepMode:t.inputs[e].stepMode,attributes:[]},i=o.getArrayInformation();for(let n=0;n&lt;t.inputs[e].names.length;n++)a.attributes.push({shaderLocation:r,offset:i[n].offset,format:i[n].format}),r++;n.push(a)}e.buffers=n}return e},e.bindBuffers=e=&gt;{for(let n=0;n&lt;t.inputs.length;n++)e.setVertexBuffer(n,t.inputs[n].buffer.getHandle());t.indexBuffer&amp;&amp;e.setIndexBuffer(t.indexBuffer.getHandle(),t.indexBuffer.getArrayInformation()[0].format)},e.getReady=()=&gt;{},e.releaseGraphicsResources=()=&gt;{t.created&amp;&amp;(t.inputs=[],t.bindingDescriptions=[],t.attributeDescriptions=[])}}(e,t)}var TT={newInstance:Xt(vT,&quot;vtkWebGPUVertexInput&quot;),extend:vT};const xT={additionalBindables:void 0,bindGroup:null,device:null,fragmentShaderTemplate:null,numberOfInstances:1,numberOfVertices:0,pipelineHash:null,shaderReplacements:null,SSBO:null,textureViews:null,topology:&quot;triangle-list&quot;,UBO:null,vertexShaderTemplate:null,WebGPURenderer:null};function yT(e,t,n={}){Object.assign(t,xT,n),pn.extend(e,t,n),t.textureViews=[],t.vertexInput=TT.newInstance(),t.bindGroup=iT.newInstance({label:&quot;mapperBG&quot;}),t.additionalBindables=[],t.fragmentShaderTemplate=t.fragmentShaderTemplate||&quot;\\n//VTK::Renderer::Dec\\n\\n//VTK::Color::Dec\\n\\n//VTK::Normal::Dec\\n\\n//VTK::TCoord::Dec\\n\\n//VTK::Select::Dec\\n\\n//VTK::RenderEncoder::Dec\\n\\n//VTK::Mapper::Dec\\n\\n//VTK::IOStructs::Dec\\n\\n@fragment\\nfn main(\\n//VTK::IOStructs::Input\\n)\\n//VTK::IOStructs::Output\\n{\\n  var output : fragmentOutput;\\n\\n  //VTK::Color::Impl\\n\\n  //VTK::Normal::Impl\\n\\n  //VTK::Light::Impl\\n\\n  //VTK::TCoord::Impl\\n\\n  //VTK::Select::Impl\\n\\n  // var computedColor:vec4&lt;f32&gt; = vec4&lt;f32&gt;(1.0,0.5,0.5,1.0);\\n\\n  //VTK::RenderEncoder::Impl\\n  return output;\\n}\\n&quot;,t.vertexShaderTemplate=t.vertexShaderTemplate||&quot;\\n//VTK::Renderer::Dec\\n\\n//VTK::Color::Dec\\n\\n//VTK::Normal::Dec\\n\\n//VTK::TCoord::Dec\\n\\n//VTK::Select::Dec\\n\\n//VTK::Mapper::Dec\\n\\n//VTK::IOStructs::Dec\\n\\n@vertex\\nfn main(\\n//VTK::IOStructs::Input\\n)\\n//VTK::IOStructs::Output\\n{\\n  var output : vertexOutput;\\n\\n  // var vertex: vec4&lt;f32&gt; = vertexBC;\\n\\n  //VTK::Color::Impl\\n\\n  //VTK::Normal::Impl\\n\\n  //VTK::TCoord::Impl\\n\\n  //VTK::Select::Impl\\n\\n  //VTK::Position::Impl\\n\\n  return output;\\n}\\n&quot;,t.shaderReplacements=new Map,sn.get(e,t,[&quot;pipeline&quot;,&quot;vertexInput&quot;]),sn.setGet(e,t,[&quot;additionalBindables&quot;,&quot;device&quot;,&quot;fragmentShaderTemplate&quot;,&quot;interpolate&quot;,&quot;numberOfInstances&quot;,&quot;numberOfVertices&quot;,&quot;pipelineHash&quot;,&quot;shaderReplacements&quot;,&quot;SSBO&quot;,&quot;textureViews&quot;,&quot;topology&quot;,&quot;UBO&quot;,&quot;vertexShaderTemplate&quot;,&quot;WebGPURenderer&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUSimpleMapper&quot;),e.generateShaderDescriptions=(n,r,o)=&gt;{const a=pT.newInstance({type:&quot;vertex&quot;,hash:n,code:t.vertexShaderTemplate}),i=pT.newInstance({type:&quot;fragment&quot;,hash:n,code:t.fragmentShaderTemplate}),s=r.getShaderDescriptions();s.push(a),s.push(i);const l=t.vertexShaderTemplate+t.fragmentShaderTemplate,c=new RegExp(&quot;//VTK::[^:]*::&quot;,&quot;g&quot;),u=l.match(c).filter(((e,t,n)=&gt;n.indexOf(e)===t)),d=u.map((e=&gt;`replaceShader${e.substring(7,e.length-2)}`));for(let e=0;e&lt;d.length;e++){const a=d[e];&quot;replaceShaderIOStructs&quot;!==a&amp;&amp;t.shaderReplacements.has(a)&amp;&amp;t.shaderReplacements.get(a)(n,r,o)}e.replaceShaderIOStructs(n,r,o)},e.replaceShaderIOStructs=(e,t,n)=&gt;{const r=t.getShaderDescription(&quot;vertex&quot;);r.replaceShaderCode(null,n),t.getShaderDescription(&quot;fragment&quot;).replaceShaderCode(r)},e.replaceShaderRenderEncoder=(e,n,r)=&gt;{t.renderEncoder.replaceShaderCode(n)},t.shaderReplacements.set(&quot;replaceShaderRenderEncoder&quot;,e.replaceShaderRenderEncoder),e.replaceShaderRenderer=(e,n,r)=&gt;{if(!t.WebGPURenderer)return;const o=t.WebGPURenderer.getBindGroup().getShaderCode(n),a=n.getShaderDescription(&quot;vertex&quot;);let i=a.getCode();i=rT.substitute(i,&quot;//VTK::Renderer::Dec&quot;,[o]).result,a.setCode(i);const s=n.getShaderDescription(&quot;fragment&quot;);i=s.getCode(),i=rT.substitute(i,&quot;//VTK::Renderer::Dec&quot;,[o]).result,s.setCode(i)},t.shaderReplacements.set(&quot;replaceShaderRenderer&quot;,e.replaceShaderRenderer),e.replaceShaderMapper=(e,n,r)=&gt;{const o=t.bindGroup.getShaderCode(n),a=n.getShaderDescription(&quot;vertex&quot;);let i=a.getCode();i=rT.substitute(i,&quot;//VTK::Mapper::Dec&quot;,[o]).result,a.setCode(i);const s=n.getShaderDescription(&quot;fragment&quot;);s.addBuiltinInput(&quot;bool&quot;,&quot;@builtin(front_facing) frontFacing&quot;),i=s.getCode(),i=rT.substitute(i,&quot;//VTK::Mapper::Dec&quot;,[o]).result,s.setCode(i)},t.shaderReplacements.set(&quot;replaceShaderMapper&quot;,e.replaceShaderMapper),e.replaceShaderPosition=(e,t,n)=&gt;{const r=t.getShaderDescription(&quot;vertex&quot;);r.addBuiltinOutput(&quot;vec4&lt;f32&gt;&quot;,&quot;@builtin(position) Position&quot;);let o=r.getCode();o=rT.substitute(o,&quot;//VTK::Position::Impl&quot;,[&quot;    output.Position = rendererUBO.SCPCMatrix*vertexBC;&quot;]).result,r.setCode(o)},t.shaderReplacements.set(&quot;replaceShaderPosition&quot;,e.replaceShaderPosition),e.replaceShaderTCoord=(e,t,n)=&gt;{t.getShaderDescription(&quot;vertex&quot;).addOutput(&quot;vec2&lt;f32&gt;&quot;,&quot;tcoordVS&quot;)},t.shaderReplacements.set(&quot;replaceShaderTCoord&quot;,e.replaceShaderTCoord),e.addTextureView=e=&gt;{t.textureViews.includes(e)||t.textureViews.push(e)},e.prepareToDraw=n=&gt;{t.renderEncoder=n,e.updateInput(),e.updateBuffers(),e.updateBindings(),e.updatePipeline()},e.updateInput=()=&gt;{},e.updateBuffers=()=&gt;{},e.updateBindings=()=&gt;{t.bindGroup.setBindables(e.getBindables())},e.computePipelineHash=()=&gt;{},e.getPipelineSettings=()=&gt;null,e.registerDrawCallback=n=&gt;{n.registerDrawCallback(t.pipeline,e.draw)},e.prepareAndDraw=n=&gt;{e.prepareToDraw(n),n.setPipeline(t.pipeline),e.draw(n)},e.draw=e=&gt;{const n=e.getBoundPipeline();e.activateBindGroup(t.bindGroup),t.WebGPURenderer&amp;&amp;t.WebGPURenderer.bindUBO(e),n.bindVertexInput(e,t.vertexInput);const r=t.vertexInput.getIndexBuffer();r?e.drawIndexed(r.getIndexCount(),t.numberOfInstances,0,0,0):e.draw(t.numberOfVertices,t.numberOfInstances,0,0)},e.getBindables=()=&gt;{const e=[...t.additionalBindables];t.UBO&amp;&amp;e.push(t.UBO),t.SSBO&amp;&amp;e.push(t.SSBO);for(let n=0;n&lt;t.textureViews.length;n++){e.push(t.textureViews[n]);const r=t.textureViews[n].getSampler();r&amp;&amp;e.push(r)}return e},e.updatePipeline=()=&gt;{e.computePipelineHash(),t.pipeline=t.device.getPipeline(t.pipelineHash),t.pipeline||(t.pipeline=cT.newInstance(),t.pipeline.setDevice(t.device),t.WebGPURenderer&amp;&amp;t.pipeline.addBindGroupLayout(t.WebGPURenderer.getBindGroup()),t.pipeline.addBindGroupLayout(t.bindGroup),e.generateShaderDescriptions(t.pipelineHash,t.pipeline,t.vertexInput),t.pipeline.setExtraPipelineSettings(e.getPipelineSettings()),t.pipeline.setTopology(t.topology),t.pipeline.setRenderEncoder(t.renderEncoder),t.pipeline.setVertexState(t.vertexInput.getVertexInputInformation()),t.device.createPipeline(t.pipelineHash,t.pipeline))}}(e,t)}var bT={newInstance:sn.newInstance(yT,&quot;vtkWebGPUSimpleMapper&quot;),extend:yT};const AT={};function CT(e,t,n={}){Object.assign(t,AT,n),bT.extend(e,t,n),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUFullScreenQuad&quot;),e.replaceShaderPosition=(e,t,n)=&gt;{const r=t.getShaderDescription(&quot;vertex&quot;);r.addBuiltinOutput(&quot;vec4&lt;f32&gt;&quot;,&quot;@builtin(position) Position&quot;),r.addOutput(&quot;vec4&lt;f32&gt;&quot;,&quot;vertexVC&quot;);let o=r.getCode();o=rT.substitute(o,&quot;//VTK::Position::Impl&quot;,[&quot;output.tcoordVS = vec2&lt;f32&gt;(vertexBC.x * 0.5 + 0.5, 1.0 - vertexBC.y * 0.5 - 0.5);&quot;,&quot;output.Position = vec4&lt;f32&gt;(vertexBC, 1.0);&quot;,&quot;output.vertexVC = vec4&lt;f32&gt;(vertexBC, 1);&quot;]).result,r.setCode(o)},t.shaderReplacements.set(&quot;replaceShaderPosition&quot;,e.replaceShaderPosition),e.updateBuffers=()=&gt;{const e=t.device.getBufferManager().getFullScreenQuadBuffer();t.vertexInput.addBuffer(e,[&quot;vertexBC&quot;]),t.numberOfVertices=6}}(e,t)}var ST={newInstance:sn.newInstance(CT,&quot;vtkWebGPUFullScreenQuad&quot;),extend:CT};const PT=[&quot;setBindGroup&quot;,&quot;setIndexBuffer&quot;,&quot;setVertexBuffer&quot;,&quot;draw&quot;,&quot;drawIndexed&quot;];const wT={description:null,handle:null,boundPipeline:null,pipelineHash:null,pipelineSettings:null,replaceShaderCodeFunction:null,depthTextureView:null,label:null};function IT(e,t,n={}){Object.assign(t,wT,n),Vt(e,t),t.description={colorAttachments:[{view:void 0,loadOp:&quot;load&quot;,storeOp:&quot;store&quot;}],depthStencilAttachment:{view:void 0,depthLoadOp:&quot;clear&quot;,depthClearValue:0,depthStoreOp:&quot;store&quot;}},t.replaceShaderCodeFunction=e=&gt;{const t=e.getShaderDescription(&quot;fragment&quot;);t.addOutput(&quot;vec4&lt;f32&gt;&quot;,&quot;outColor&quot;);let n=t.getCode();n=rT.substitute(n,&quot;//VTK::RenderEncoder::Impl&quot;,[&quot;output.outColor = computedColor;&quot;]).result,t.setCode(n)},t.pipelineSettings={primitive:{cullMode:&quot;none&quot;},depthStencil:{depthWriteEnabled:!0,depthCompare:&quot;greater-equal&quot;,format:&quot;depth32float&quot;},fragment:{targets:[{format:&quot;rgba16float&quot;,blend:{color:{srcFactor:&quot;src-alpha&quot;,dstFactor:&quot;one-minus-src-alpha&quot;},alpha:{srcFactor:&quot;one&quot;,dstFactor:&quot;one-minus-src-alpha&quot;}}}]}},t.colorTextureViews=[],Bt(e,t,[&quot;boundPipeline&quot;,&quot;colorTextureViews&quot;]),Gt(e,t,[&quot;depthTextureView&quot;,&quot;description&quot;,&quot;handle&quot;,&quot;label&quot;,&quot;pipelineHash&quot;,&quot;pipelineSettings&quot;,&quot;replaceShaderCodeFunction&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPURenderEncoder&quot;),e.begin=e=&gt;{t.drawCallbacks=[],t.handle=e.beginRenderPass(t.description),t.label&amp;&amp;t.handle.pushDebugGroup(t.label)},e.end=()=&gt;{for(let n=0;n&lt;t.drawCallbacks.length;n++){const r=t.drawCallbacks[n],o=r.pipeline;e.setPipeline(o);for(let t=0;t&lt;r.callbacks.length;t++)r.callbacks[t](e)}t.label&amp;&amp;t.handle.popDebugGroup(),t.handle.end(),t.boundPipeline=null},e.setPipeline=e=&gt;{if(t.boundPipeline===e)return;t.handle.setPipeline(e.getHandle());const n=e.getPipelineDescription();if(t.colorTextureViews.length!==n.fragment.targets.length)console.log(`mismatched attachment counts on pipeline ${n.fragment.targets.length} while encoder has ${t.colorTextureViews.length}`),console.trace();else for(let e=0;e&lt;t.colorTextureViews.length;e++){const r=t.colorTextureViews[e].getTexture()?.getFormat();r&amp;&amp;r!==n.fragment.targets[e].format&amp;&amp;(console.log(`mismatched attachments for attachment ${e} on pipeline ${n.fragment.targets[e].format} while encoder has ${r}`),console.trace())}if(!t.depthTextureView!=!(&quot;depthStencil&quot;in n))console.log(&quot;mismatched depth attachments&quot;),console.trace();else if(t.depthTextureView){const e=t.depthTextureView.getTexture()?.getFormat();e&amp;&amp;e!==n.depthStencil.format&amp;&amp;(console.log(`mismatched depth attachments on pipeline ${n.depthStencil.format} while encoder has ${e}`),console.trace())}t.boundPipeline=e},e.replaceShaderCode=e=&gt;{t.replaceShaderCodeFunction(e)},e.setColorTextureView=(e,n)=&gt;{t.colorTextureViews[e]!==n&amp;&amp;(t.colorTextureViews[e]=n)},e.activateBindGroup=e=&gt;{const n=t.boundPipeline.getDevice(),r=t.boundPipeline.getBindGroupLayoutCount(e.getLabel());t.handle.setBindGroup(r,e.getBindGroup(n));const o=n.getBindGroupLayoutDescription(e.getBindGroupLayout(n)),a=n.getBindGroupLayoutDescription(t.boundPipeline.getBindGroupLayout(r));o!==a&amp;&amp;(console.log(`renderEncoder ${t.pipelineHash} mismatched bind group layouts bind group has\\n${o}\\n versus pipeline\\n${a}\\n`),console.trace())},e.attachTextureViews=()=&gt;{for(let e=0;e&lt;t.colorTextureViews.length;e++)t.description.colorAttachments[e]?t.description.colorAttachments[e].view=t.colorTextureViews[e].getHandle():t.description.colorAttachments[e]={view:t.colorTextureViews[e].getHandle()};t.depthTextureView&amp;&amp;(t.description.depthStencilAttachment.view=t.depthTextureView.getHandle())},e.registerDrawCallback=(e,n)=&gt;{for(let r=0;r&lt;t.drawCallbacks.length;r++)if(t.drawCallbacks[r].pipeline===e)return void t.drawCallbacks[r].callbacks.push(n);t.drawCallbacks.push({pipeline:e,callbacks:[n]})};for(let n=0;n&lt;PT.length;n++)e[PT[n]]=(...e)=&gt;t.handle[PT[n]](...e)}(e,t)}var OT={newInstance:Xt(IT,&quot;vtkWebGPURenderEncoder&quot;),extend:IT};const RT={device:null,handle:null,label:null,options:null};function MT(e,t,n={}){Object.assign(t,RT,n),sn.obj(e,t),t.options={},t.bindGroupLayoutEntry={visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,sampler:{}},t.bindGroupTime={},sn.obj(t.bindGroupTime,{mtime:0}),sn.get(e,t,[&quot;bindGroupTime&quot;,&quot;handle&quot;,&quot;options&quot;]),sn.setGet(e,t,[&quot;bindGroupLayoutEntry&quot;,&quot;device&quot;,&quot;label&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUSampler&quot;),e.create=(e,n={})=&gt;{t.device=e,t.options.addressModeU=n.addressModeU?n.addressModeU:&quot;clamp-to-edge&quot;,t.options.addressModeV=n.addressModeV?n.addressModeV:&quot;clamp-to-edge&quot;,t.options.addressModeW=n.addressModeW?n.addressModeW:&quot;clamp-to-edge&quot;,t.options.magFilter=n.magFilter?n.magFilter:&quot;nearest&quot;,t.options.minFilter=n.minFilter?n.minFilter:&quot;nearest&quot;,t.options.mipmapFilter=n.mipmapFilter?n.mipmapFilter:&quot;nearest&quot;,t.options.label=t.label,t.handle=t.device.getHandle().createSampler(t.options),t.bindGroupTime.modified()},e.getShaderCode=(e,n)=&gt;`@binding(${e}) @group(${n}) var ${t.label}: sampler;`,e.getBindGroupEntry=()=&gt;({resource:t.handle})}(e,t)}var DT={newInstance:sn.newInstance(MT),extend:MT};const ET={texture:null,handle:null,sampler:null,label:null};function VT(e,t,n={}){Object.assign(t,ET,n),sn.obj(e,t),t.bindGroupLayoutEntry={visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,texture:{sampleType:&quot;float&quot;,viewDimension:&quot;2d&quot;}},t.bindGroupTime={},sn.obj(t.bindGroupTime,{mtime:0}),sn.get(e,t,[&quot;bindGroupTime&quot;,&quot;texture&quot;]),sn.setGet(e,t,[&quot;bindGroupLayoutEntry&quot;,&quot;label&quot;,&quot;sampler&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUTextureView&quot;),e.create=(e,n)=&gt;{t.texture=e,t.options=n,t.options.dimension=t.options.dimension||&quot;2d&quot;,t.options.label=t.label,t.textureHandle=e.getHandle(),t.handle=t.textureHandle.createView(t.options),t.bindGroupLayoutEntry.texture.viewDimension=t.options.dimension;const r=gT.getDetailsFromTextureFormat(t.texture.getFormat());t.bindGroupLayoutEntry.texture.sampleType=r.sampleType},e.createFromTextureHandle=(e,n)=&gt;{t.texture=null,t.options=n,t.options.dimension=t.options.dimension||&quot;2d&quot;,t.options.label=t.label,t.textureHandle=e,t.handle=t.textureHandle.createView(t.options),t.bindGroupLayoutEntry.texture.viewDimension=t.options.dimension;const r=gT.getDetailsFromTextureFormat(n.format);t.bindGroupLayoutEntry.texture.sampleType=r.sampleType,t.bindGroupTime.modified()},e.getBindGroupEntry=()=&gt;({resource:e.getHandle()}),e.getShaderCode=(e,n)=&gt;{let r=&quot;f32&quot;;&quot;sint&quot;===t.bindGroupLayoutEntry.texture.sampleType?r=&quot;i32&quot;:&quot;uint&quot;===t.bindGroupLayoutEntry.texture.sampleType&amp;&amp;(r=&quot;u32&quot;);let o=`@binding(${e}) @group(${n}) var ${t.label}: texture_${t.options.dimension}&lt;${r}&gt;;`;return&quot;depth&quot;===t.bindGroupLayoutEntry.texture.sampleType&amp;&amp;(o=`@binding(${e}) @group(${n}) var ${t.label}: texture_depth_${t.options.dimension};`),o},e.addSampler=(n,r)=&gt;{const o=DT.newInstance({label:`${t.label}Sampler`});o.create(n,r),e.setSampler(o)},e.getBindGroupTime=()=&gt;(t.texture&amp;&amp;t.texture.getHandle()!==t.textureHandle&amp;&amp;(t.textureHandle=t.texture.getHandle(),t.handle=t.textureHandle.createView(t.options),t.bindGroupTime.modified()),t.bindGroupTime),e.getHandle=()=&gt;(t.texture&amp;&amp;t.texture.getHandle()!==t.textureHandle&amp;&amp;(t.textureHandle=t.texture.getHandle(),t.handle=t.textureHandle.createView(t.options),t.bindGroupTime.modified()),t.handle)}(e,t)}var LT={newInstance:sn.newInstance(VT),extend:VT};const{vtkErrorMacro:BT}=sn;function FT(e,t){t.classHierarchy.push(&quot;vtkWebGPUTexture&quot;);const n=(e,n,r,o)=&gt;{const a=gT.getDetailsFromTextureFormat(t.format),i=n*a.numComponents,s=i*r*o,l=2===a.elementSize&amp;&amp;&quot;float&quot;===a.sampleType;if(!e?.length&amp;&amp;s&gt;0)return BT(&quot;Texture upload failed: missing nativeArray data.&quot;),null;if(e.length&lt;s)return BT(`Texture upload failed: expected ${s} values but received ${e.length}.`),null;const c=e.length&gt;s?e.subarray(0,s):e,u=c.BYTES_PER_ELEMENT||a.elementSize,d=n*a.stride,p=256*Math.floor((d+255)/256),f=((e,t)=&gt;{if(2===e.elementSize&amp;&amp;&quot;float&quot;===e.sampleType)return&quot;Uint16Array&quot;;if(&quot;sint&quot;===e.sampleType){if(1===e.elementSize)return&quot;Int8Array&quot;;if(2===e.elementSize)return&quot;Int16Array&quot;;if(4===e.elementSize)return&quot;Int32Array&quot;}else if(&quot;unfilterable-float&quot;===e.sampleType){if(4===e.elementSize)return&quot;Float32Array&quot;}else{if(1===e.elementSize)return&quot;Uint8Array&quot;;if(2===e.elementSize)return&quot;Uint16Array&quot;;if(4===e.elementSize)return&quot;Uint32Array&quot;}return t})(a,c.constructor.name),g=p/(l?2:sn.newTypedArray(f,0).BYTES_PER_ELEMENT),m=i*u;if(!(l||c.constructor.name!==f||m!==p))return{data:c,bytesPerRow:p};const h=r*o,v=sn.newTypedArray(f,g*h);if(l)for(let e=0;e&lt;h;e++){const t=e*i,n=e*g;for(let e=0;e&lt;i;e++)v[n+e]=Md.toHalf(c[t+e])}else if(g===i)v.set(c);else for(let e=0;e&lt;h;e++)v.set(c.subarray(e*i,(e+1)*i),e*g);return{data:v,bytesPerRow:p}};e.create=(e,n)=&gt;{t.device=e,t.width=n.width,t.height=n.height,t.depth=n.depth?n.depth:1;const r=1===t.depth?&quot;2d&quot;:&quot;3d&quot;;t.format=n.format?n.format:&quot;rgba8unorm&quot;,t.mipLevel=n.mipLevel?n.mipLevel:0,t.usage=n.usage?n.usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST,t.handle=t.device.getHandle().createTexture({size:[t.width,t.height,t.depth],format:t.format,usage:t.usage,label:t.label,dimension:r,mipLevelCount:t.mipLevel+1})},e.assignFromHandle=(e,n,r)=&gt;{t.device=e,t.handle=n,t.width=r.width,t.height=r.height,t.depth=r.depth?r.depth:1,t.format=r.format?r.format:&quot;rgba8unorm&quot;,t.usage=r.usage?r.usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST},e.writeImageData=r=&gt;{let o=[];const a=n=&gt;{t.device.getHandle().queue.copyExternalImageToTexture({source:n,flipY:r.flip},{texture:t.handle,premultipliedAlpha:!0,mipLevel:0,origin:{x:0,y:0,z:0}},[n.width,n.height,t.depth]),3!==e.getDimensionality()&amp;&amp;t.mipLevel&gt;0&amp;&amp;Eu.generateMipmaps(t.device.getHandle(),t.handle,t.mipLevel+1),t.ready=!0};if(r.canvas)return void a(r.canvas);if(r.imageBitmap)return r.width=r.imageBitmap.width,r.height=r.imageBitmap.height,r.depth=1,r.format=&quot;rgba8unorm&quot;,r.flip=!0,void a(r.imageBitmap);if(r.jsImageData)return r.width=r.jsImageData.width,r.height=r.jsImageData.height,r.depth=1,r.format=&quot;rgba8unorm&quot;,r.flip=!0,void a(r.jsImageData);if(r.image)return r.width=r.image.width,r.height=r.image.height,r.depth=1,r.format=&quot;rgba8unorm&quot;,r.flip=!0,void a(r.image);r.nativeArray&amp;&amp;(o=r.nativeArray);const i=3===e.getDimensionality(),s=n(o,t.width,t.height,i?t.depth:1);if(!s)return;const l=s.data;t.device.getHandle().queue.writeTexture({texture:t.handle,mipLevel:0,origin:{x:0,y:0,z:0}},l,{offset:0,bytesPerRow:s.bytesPerRow,rowsPerImage:t.height},{width:t.width,height:t.height,depthOrArrayLayers:i?t.depth:1}),!i&amp;&amp;t.mipLevel&gt;0&amp;&amp;Eu.generateMipmaps(t.device.getHandle(),t.handle,t.mipLevel+1),t.ready=!0},e.writeSubImageData=r=&gt;{const o=r.x??0,a=r.y??0,i=r.z??0,s=r.width??t.width-o,l=r.height??t.height-a,c=r.depth??t.depth-i,u=r.nativeArray||[];if(!((e,n,r,o,a,i)=&gt;e&lt;0||n&lt;0||r&lt;0||o&lt;=0||a&lt;=0||i&lt;=0?(BT(`Texture upload failed: invalid write region origin=(${e}, ${n}, ${r}) size=(${o}, ${a}, ${i}).`),!1):!(e+o&gt;t.width||n+a&gt;t.height||r+i&gt;t.depth)||(BT(`Texture upload failed: write region origin=(${e}, ${n}, ${r}) size=(${o}, ${a}, ${i}) exceeds texture extent=(${t.width}, ${t.height}, ${t.depth}).`),!1))(o,a,i,s,l,c))return;const d=n(u,s,l,c);d&amp;&amp;(t.device.getHandle().queue.writeTexture({texture:t.handle,mipLevel:0,origin:{x:o,y:a,z:i}},d.data,{offset:0,bytesPerRow:d.bytesPerRow,rowsPerImage:l},{width:s,height:l,depthOrArrayLayers:c}),3!==e.getDimensionality()&amp;&amp;t.mipLevel&gt;0&amp;&amp;Eu.generateMipmaps(t.device.getHandle(),t.handle,t.mipLevel+1),t.ready=!0)},e.getScale=()=&gt;{const e=gT.getDetailsFromTextureFormat(t.format);return 2===e.elementSize&amp;&amp;&quot;float&quot;===e.sampleType?1:255},e.getNumberOfComponents=()=&gt;gT.getDetailsFromTextureFormat(t.format).numComponents,e.getDimensionality=()=&gt;{let e=0;return t.width&gt;1&amp;&amp;e++,t.height&gt;1&amp;&amp;e++,t.depth&gt;1&amp;&amp;e++,e},e.resizeToMatch=e=&gt;{e.getWidth()===t.width&amp;&amp;e.getHeight()===t.height&amp;&amp;e.getDepth()===t.depth||(t.width=e.getWidth(),t.height=e.getHeight(),t.depth=e.getDepth(),t.handle=t.device.getHandle().createTexture({size:[t.width,t.height,t.depth],format:t.format,usage:t.usage,label:t.label}))},e.resize=(e,n,r=1)=&gt;{e===t.width&amp;&amp;n===t.height&amp;&amp;r===t.depth||(t.width=e,t.height=n,t.depth=r,t.handle=t.device.getHandle().createTexture({size:[t.width,t.height,t.depth],format:t.format,usage:t.usage,label:t.label}))},e.createView=(n,r={})=&gt;{r.dimension||(r.dimension=1===t.depth?&quot;2d&quot;:&quot;3d&quot;);const o=LT.newInstance({label:n});return o.create(e,r),o}}const NT={device:null,handle:null,buffer:null,ready:!1,label:null};function kT(e,t,n={}){Object.assign(t,NT,n),sn.obj(e,t),sn.get(e,t,[&quot;handle&quot;,&quot;ready&quot;,&quot;width&quot;,&quot;height&quot;,&quot;depth&quot;,&quot;format&quot;,&quot;usage&quot;]),sn.setGet(e,t,[&quot;device&quot;,&quot;label&quot;]),FT(e,t)}var GT={newInstance:sn.newInstance(kT),extend:kT};const UT={renderEncoder:null,colorTexture:null,depthTexture:null};function _T(e,t,n={}){Object.assign(t,UT,n),vv.extend(e,t,n),sn.get(e,t,[&quot;colorTexture&quot;,&quot;depthTexture&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUOpaquePass&quot;),e.traverse=(n,r)=&gt;{if(t.deleted)return;t._currentParent=r;const o=r.getDevice();if(t.renderEncoder)t.colorTexture.resize(r.getCanvas().width,r.getCanvas().height),t.depthTexture.resize(r.getCanvas().width,r.getCanvas().height);else{e.createRenderEncoder(),t.colorTexture=GT.newInstance({label:&quot;opaquePassColor&quot;}),t.colorTexture.create(o,{width:r.getCanvas().width,height:r.getCanvas().height,format:&quot;rgba16float&quot;,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC});const n=t.colorTexture.createView(&quot;opaquePassColorTexture&quot;);t.renderEncoder.setColorTextureView(0,n),t.depthFormat=&quot;depth32float&quot;,t.depthTexture=GT.newInstance({label:&quot;opaquePassDepth&quot;}),t.depthTexture.create(o,{width:r.getCanvas().width,height:r.getCanvas().height,format:t.depthFormat,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC});const a=t.depthTexture.createView(&quot;opaquePassDepthTexture&quot;);t.renderEncoder.setDepthTextureView(a)}t.renderEncoder.attachTextureViews(),e.setCurrentOperation(&quot;opaquePass&quot;),n.setRenderEncoder(t.renderEncoder),n.traverse(e)},e.getColorTextureView=()=&gt;t.renderEncoder.getColorTextureViews()[0],e.getDepthTextureView=()=&gt;t.renderEncoder.getDepthTextureView(),e.createRenderEncoder=()=&gt;{t.renderEncoder=OT.newInstance({label:&quot;OpaquePass&quot;}),t.renderEncoder.setPipelineHash(&quot;op&quot;)}}(e,t)}var KT={newInstance:sn.newInstance(_T,&quot;vtkWebGPUOpaquePass&quot;),extend:_T};const zT={colorTextureView:null,depthTextureView:null};function WT(e,t,n={}){Object.assign(t,zT,n),vv.extend(e,t,n),sn.setGet(e,t,[&quot;colorTextureView&quot;,&quot;depthTextureView&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUOrderIndependentTranslucentPass&quot;),e.traverse=(n,r)=&gt;{if(t.deleted)return;t._currentParent=r;const o=r.getDevice();if(t.translucentRenderEncoder)t.translucentColorTexture.resizeToMatch(t.colorTextureView.getTexture()),t.translucentAccumulateTexture.resizeToMatch(t.colorTextureView.getTexture());else{e.createRenderEncoder(),e.createFinalEncoder(),t.translucentColorTexture=GT.newInstance({label:&quot;translucentPassColor&quot;}),t.translucentColorTexture.create(o,{width:r.getCanvas().width,height:r.getCanvas().height,format:&quot;rgba16float&quot;,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING});const n=t.translucentColorTexture.createView(&quot;oitpColorTexture&quot;);t.translucentRenderEncoder.setColorTextureView(0,n),t.translucentAccumulateTexture=GT.newInstance({label:&quot;translucentPassAccumulate&quot;}),t.translucentAccumulateTexture.create(o,{width:r.getCanvas().width,height:r.getCanvas().height,format:&quot;r16float&quot;,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING});const a=t.translucentAccumulateTexture.createView(&quot;oitpAccumTexture&quot;);t.translucentRenderEncoder.setColorTextureView(1,a),t.fullScreenQuad=ST.newInstance(),t.fullScreenQuad.setDevice(r.getDevice()),t.fullScreenQuad.setPipelineHash(&quot;oitpfsq&quot;),t.fullScreenQuad.setTextureViews(t.translucentRenderEncoder.getColorTextureViews()),t.fullScreenQuad.setFragmentShaderTemplate(&quot;\\n//VTK::Mapper::Dec\\n\\n//VTK::TCoord::Dec\\n\\n//VTK::RenderEncoder::Dec\\n\\n//VTK::IOStructs::Dec\\n\\n@fragment\\nfn main(\\n//VTK::IOStructs::Input\\n)\\n//VTK::IOStructs::Output\\n{\\n  var output: fragmentOutput;\\n\\n  var tcoord: vec2&lt;i32&gt; = vec2&lt;i32&gt;(i32(input.fragPos.x), i32(input.fragPos.y));\\n  var reveal: f32 = textureLoad(oitpAccumTexture, tcoord, 0).r;\\n  if (reveal == 1.0) { discard; }\\n  var tcolor: vec4&lt;f32&gt; = textureLoad(oitpColorTexture, tcoord, 0);\\n  var total: f32 = max(tcolor.a, 0.01);\\n  var computedColor: vec4&lt;f32&gt; = vec4&lt;f32&gt;(tcolor.r/total, tcolor.g/total, tcolor.b/total, 1.0 - reveal);\\n\\n  //VTK::RenderEncoder::Impl\\n  return output;\\n}\\n&quot;)}t.translucentRenderEncoder.setDepthTextureView(t.depthTextureView),t.translucentRenderEncoder.attachTextureViews(),e.setCurrentOperation(&quot;translucentPass&quot;),n.setRenderEncoder(t.translucentRenderEncoder),n.traverse(e),e.finalPass(r,n)},e.finalPass=(e,n)=&gt;{t.translucentFinalEncoder.setColorTextureView(0,t.colorTextureView),t.translucentFinalEncoder.attachTextureViews(),t.translucentFinalEncoder.begin(e.getCommandEncoder()),n.scissorAndViewport(t.translucentFinalEncoder),t.fullScreenQuad.prepareAndDraw(t.translucentFinalEncoder),t.translucentFinalEncoder.end()},e.getTextures=()=&gt;[t.translucentColorTexture,t.translucentAccumulateTexture],e.createRenderEncoder=()=&gt;{t.translucentRenderEncoder=OT.newInstance({label:&quot;translucentRender&quot;});const e=t.translucentRenderEncoder.getDescription();e.colorAttachments=[{view:void 0,clearValue:[0,0,0,0],loadOp:&quot;clear&quot;,storeOp:&quot;store&quot;},{view:void 0,clearValue:[1,0,0,0],loadOp:&quot;clear&quot;,storeOp:&quot;store&quot;}],e.depthStencilAttachment={view:void 0,depthLoadOp:&quot;load&quot;,depthStoreOp:&quot;store&quot;},t.translucentRenderEncoder.setReplaceShaderCodeFunction((e=&gt;{const t=e.getShaderDescription(&quot;fragment&quot;);t.addOutput(&quot;vec4&lt;f32&gt;&quot;,&quot;outColor&quot;),t.addOutput(&quot;f32&quot;,&quot;outAccum&quot;),t.addBuiltinInput(&quot;vec4&lt;f32&gt;&quot;,&quot;@builtin(position) fragPos&quot;);let n=t.getCode();n=rT.substitute(n,&quot;//VTK::RenderEncoder::Impl&quot;,[&quot;var w: f32 = computedColor.a * pow(0.1 + input.fragPos.z, 2.0);&quot;,&quot;output.outColor = vec4&lt;f32&gt;(computedColor.rgb*w, w);&quot;,&quot;output.outAccum = computedColor.a;&quot;]).result,t.setCode(n)})),t.translucentRenderEncoder.setPipelineHash(&quot;oitpr&quot;),t.translucentRenderEncoder.setPipelineSettings({primitive:{cullMode:&quot;none&quot;},depthStencil:{depthWriteEnabled:!1,depthCompare:&quot;greater&quot;,format:&quot;depth32float&quot;},fragment:{targets:[{format:&quot;rgba16float&quot;,blend:{color:{srcFactor:&quot;one&quot;,dstFactor:&quot;one&quot;},alpha:{srcFactor:&quot;one&quot;,dstFactor:&quot;one&quot;}}},{format:&quot;r16float&quot;,blend:{color:{srcFactor:&quot;zero&quot;,dstFactor:&quot;one-minus-src&quot;},alpha:{srcFactor:&quot;one&quot;,dstFactor:&quot;one-minus-src-alpha&quot;}}}]}})},e.createFinalEncoder=()=&gt;{t.translucentFinalEncoder=OT.newInstance({label:&quot;translucentFinal&quot;}),t.translucentFinalEncoder.setDescription({colorAttachments:[{view:null,loadOp:&quot;load&quot;,storeOp:&quot;store&quot;}]}),t.translucentFinalEncoder.setReplaceShaderCodeFunction((e=&gt;{const t=e.getShaderDescription(&quot;fragment&quot;);t.addOutput(&quot;vec4&lt;f32&gt;&quot;,&quot;outColor&quot;),t.addBuiltinInput(&quot;vec4&lt;f32&gt;&quot;,&quot;@builtin(position) fragPos&quot;);let n=t.getCode();n=rT.substitute(n,&quot;//VTK::RenderEncoder::Impl&quot;,[&quot;output.outColor = vec4&lt;f32&gt;(computedColor.rgb, computedColor.a);&quot;]).result,t.setCode(n)})),t.translucentFinalEncoder.setPipelineHash(&quot;oitpf&quot;),t.translucentFinalEncoder.setPipelineSettings({primitive:{cullMode:&quot;none&quot;},fragment:{targets:[{format:&quot;rgba16float&quot;,blend:{color:{srcFactor:&quot;src-alpha&quot;,dstFactor:&quot;one-minus-src-alpha&quot;},alpha:{srcFactor:&quot;one&quot;,dstFactor:&quot;one-minus-src-alpha&quot;}}}]}})}}(e,t)}var HT={newInstance:sn.newInstance(WT,&quot;vtkWebGPUOrderIndependentTranslucentPass&quot;),extend:WT};var jT={BufferUsage:{Verts:0,Lines:1,Triangles:2,Strips:3,LinesFromStrips:4,LinesFromTriangles:5,Points:6,UniformArray:7,PointArray:8,NormalsFromPoints:9,Texture:10,RawVertex:11,Storage:12,Index:13},PrimitiveTypes:{Start:0,Points:0,Lines:1,Triangles:2,TriangleStrips:3,TriangleEdges:4,TriangleStripEdges:5,End:6}};const XT=[&quot;getMappedRange&quot;,&quot;mapAsync&quot;,&quot;unmap&quot;];function qT(e,t){t.classHierarchy.push(&quot;vtkWebGPUBuffer&quot;),e.create=(e,n)=&gt;{t.handle=t.device.getHandle().createBuffer({size:e,usage:n,label:t.label}),t.sizeInBytes=e,t.usage=n},e.write=e=&gt;{!function(e,t,n,r){const o=r.byteLength,a=e.createBuffer({size:o,usage:GPUBufferUsage.COPY_SRC,mappedAtCreation:!0}),i=a.getMappedRange(0,o);new Uint8Array(i).set(new Uint8Array(r)),a.unmap();const s=e.createCommandEncoder();s.copyBufferToBuffer(a,0,t,n,o);const l=s.finish();e.queue.submit([l]),a.destroy()}(t.device.getHandle(),t.handle,0,e.buffer)},e.createAndWrite=(e,n)=&gt;{const r=4*Math.ceil(e.byteLength/4);t.handle=t.device.getHandle().createBuffer({size:r,usage:n,mappedAtCreation:!0,label:t.label}),t.sizeInBytes=r,t.usage=n,new Uint8Array(t.handle.getMappedRange()).set(new Uint8Array(e.buffer)),t.handle.unmap()};for(let n=0;n&lt;XT.length;n++)e[XT[n]]=(...e)=&gt;t.handle[XT[n]](...e)}const YT={device:null,handle:null,sizeInBytes:0,strideInBytes:0,arrayInformation:null,usage:null,label:null,sourceTime:null};function JT(e,t,n={}){Object.assign(t,YT,n),sn.obj(e,t),sn.get(e,t,[&quot;handle&quot;,&quot;sizeInBytes&quot;,&quot;usage&quot;]),sn.setGet(e,t,[&quot;strideInBytes&quot;,&quot;device&quot;,&quot;arrayInformation&quot;,&quot;label&quot;,&quot;sourceTime&quot;]),qT(e,t)}var ZT={newInstance:sn.newInstance(JT),extend:JT,...jT};const{Representation:QT}=us,{PrimitiveTypes:$T}=jT;class ex{constructor(){this.keys=new Uint32Array(10),this.values=new Uint32Array(10),this.count=0}clear(){this.count=0}has(e){for(let t=0;t&lt;this.count;t++)if(this.keys[t]===e)return!0}get(e){for(let t=0;t&lt;this.count;t++)if(this.keys[t]===e)return this.values[t]}set(e,t){this.count&lt;9&amp;&amp;(this.keys[this.count]=e,this.values[this.count++]=t)}}function tx(e,t,n){let r=e.pointIdToFlatId[t];return r&lt;0&amp;&amp;(r=e.flatId,e.pointIdToFlatId[t]=r,e.flatIdToPointId[e.flatId]=t,e.flatIdToCellId[e.flatId]=n,e.flatId++),r}function nx(e,t,n){const r=e.length;for(let o=0;o&lt;r;o++){let a=e[o];if(n.cellProvokedMap.has(a)){n.ibo[n.iboId++]=n.cellProvokedMap.get(a);for(let i=o+1;i&lt;o+r;i++){a=e[i%r];const o=tx(n,a,t);n.ibo[n.iboId++]=o}return}}for(let o=0;o&lt;r;o++){let a=e[o];if(!n.provokedPointIds[a]){let i=tx(n,a,t);n.provokedPointIds[a]=1,n.cellProvokedMap.set(a,i),n.flatIdToCellId[i]=t,n.ibo[n.iboId++]=i;for(let s=o+1;s&lt;o+r;s++)a=e[s%r],i=tx(n,a,t),n.ibo[n.iboId++]=i;return}}let o=e[0],a=n.flatId;n.cellProvokedMap.set(o,a),n.flatIdToPointId[n.flatId]=o,n.flatIdToCellId[n.flatId]=t,n.flatId++,n.ibo[n.iboId++]=a;for(let i=1;i&lt;r;i++)o=e[i],a=tx(n,o,t),n.ibo[n.iboId++]=a}function rx(e,t,n){const r=e.length;n.iboSize+=r;for(let t=0;t&lt;r;t++){const r=e[t];if(n.cellProvokedMap.has(r))return}for(let t=0;t&lt;r;t++){const r=e[t];if(!n.provokedPointIds[r])return n.provokedPointIds[r]=1,void n.cellProvokedMap.set(r,1)}n.cellProvokedMap.set(e[0],1),n.extraPoints++}let ox;const ax=new Uint32Array(1),ix=new Uint32Array(2),sx=new Uint32Array(3),lx={anythingToPoints(e,t,n,r,o){for(let a=0;a&lt;e;++a)ax[0]=t[n+a],ox(ax,r,o)},linesToWireframe(e,t,n,r,o){for(let a=0;a&lt;e-1;++a)ix[0]=t[n+a],ix[1]=t[n+a+1],ox(ix,r,o)},polysToWireframe(e,t,n,r,o){if(e&gt;2)for(let a=0;a&lt;e;++a)ix[0]=t[n+a],ix[1]=t[n+(a+1)%e],ox(ix,r,o)},stripsToWireframe(e,t,n,r,o){if(e&gt;2){for(let a=0;a&lt;e-1;++a)ix[0]=t[n+a],ix[1]=t[n+a+1],ox(ix,r,o);for(let a=0;a&lt;e-2;a++)ix[0]=t[n+a],ix[1]=t[n+a+2],ox(ix,r,o)}},polysToSurface(e,t,n,r,o){for(let a=0;a&lt;e-2;a++)sx[0]=t[n],sx[1]=t[n+a+1],sx[2]=t[n+a+2],ox(sx,r,o)},stripsToSurface(e,t,n,r,o){for(let a=0;a&lt;e-2;a++)sx[0]=t[n+a],sx[1]=t[n+a+1+a%2],sx[2]=t[n+a+1+(a+1)%2],ox(sx,r,o)}};function cx(e,t){t.classHierarchy.push(&quot;vtkWebGPUIndexBuffer&quot;),e.buildIndexBuffer=e=&gt;{const n=e.cells,r=e.primitiveType,o=e.representation,a=e.cellOffset,i=n.getData(),s=i.length,l=function(e){switch(e){case $T.Points:return&quot;points&quot;;case $T.Lines:return&quot;lines&quot;;case $T.Triangles:case $T.TriangleEdges:return&quot;polys&quot;;case $T.TriangleStripEdges:case $T.TriangleStrips:return&quot;strips&quot;;default:return&quot;&quot;}}(r),c=e.numberOfPoints,u={provokedPointIds:new Uint8Array(c),extraPoints:0,iboSize:0,flatId:0,iboId:0,cellProvokedMap:new ex};let d=null;d=o===QT.POINTS||r===$T.Points?lx.anythingToPoints:o===QT.WIREFRAME||r===$T.Lines?lx[`${l}ToWireframe`]:lx[`${l}ToSurface`],ox=rx;let p=a||0;for(let e=0;e&lt;s;)u.cellProvokedMap.clear(),d(i[e],i,e+1,p,u),e+=i[e]+1,p++;u.flatIdToPointId=c&lt;=65535?new Uint16Array(c+u.extraPoints):new Uint32Array(c+u.extraPoints),c+u.extraPoints&lt;36863?u.pointIdToFlatId=new Int16Array(c):u.pointIdToFlatId=new Int32Array(c),c+u.extraPoints&lt;=65535?(u.ibo=new Uint16Array(u.iboSize),e.format=&quot;uint16&quot;):(u.ibo=new Uint32Array(u.iboSize),e.format=&quot;uint32&quot;),u.flatIdToCellId=p&lt;=65535?new Uint16Array(c+u.extraPoints):new Uint32Array(c+u.extraPoints),u.pointIdToFlatId.fill(-1),u.provokedPointIds.fill(0),ox=nx,p=a||0;for(let e=0;e&lt;s;)u.cellProvokedMap.clear(),d(i[e],i,e+1,p,u),e+=i[e]+1,p++;delete u.provokedPointIds,delete u.pointIdToFlatId,e.nativeArray=u.ibo,t.flatIdToPointId=u.flatIdToPointId,t.flatIdToCellId=u.flatIdToCellId,t.flatSize=u.flatId,t.indexCount=u.iboId}}const ux={flatIdToPointId:null,flatIdToCellId:null,flatSize:0,indexCount:0};function dx(e,t,n={}){Object.assign(t,ux,n),ZT.extend(e,t,n),sn.setGet(e,t,[&quot;flatIdToPointId&quot;,&quot;flatIdToCellId&quot;,&quot;flatSize&quot;,&quot;indexCount&quot;]),cx(e,t)}var px={newInstance:sn.newInstance(dx),extend:dx,...jT};const{BufferUsage:fx}=jT,{vtkErrorMacro:gx}=ln,{VtkDataTypes:mx}=Is;function hx(e,t,n,r,o){const a={},i=e.getFlatSize();if(!i)return a;let s=[0,0,0,0];o.shift&amp;&amp;(o.shift.length?s=o.shift:s.fill(o.shift));let l=[1,1,1,1];o.scale&amp;&amp;(o.scale.length?l=o.scale:l.fill(o.scale));const c=!!Object.prototype.hasOwnProperty.call(o,&quot;packExtra&quot;)&amp;&amp;o.packExtra;let u,d=0;const p=Ct(r,i*(n+(c?1:0)));let f=e.getFlatIdToPointId();o.cellData&amp;&amp;(f=e.getFlatIdToCellId()),1===n?u=function(e){p[d++]=l[0]*t[e]+s[0]}:2===n?u=function(e){p[d++]=l[0]*t[e]+s[0],p[d++]=l[1]*t[e+1]+s[1]}:3!==n||c?3===n&amp;&amp;c?u=function(e){p[d++]=l[0]*t[e]+s[0],p[d++]=l[1]*t[e+1]+s[1],p[d++]=l[2]*t[e+2]+s[2],p[d++]=1*l[3]+s[3]}:4===n&amp;&amp;(u=function(e){p[d++]=l[0]*t[e]+s[0],p[d++]=l[1]*t[e+1]+s[1],p[d++]=l[2]*t[e+2]+s[2],p[d++]=l[3]*t[e+3]+s[3]}):u=function(e){p[d++]=l[0]*t[e]+s[0],p[d++]=l[1]*t[e+1]+s[1],p[d++]=l[2]*t[e+2]+s[2]};for(let e=0;e&lt;i;e++){u(n*f[e])}return a.nativeArray=p,a}function vx(e,t,n,r){const o=[];return Wo([e[3*r]-e[3*n],e[3*r+1]-e[3*n+1],e[3*r+2]-e[3*n+2]],[e[3*t]-e[3*n],e[3*t+1]-e[3*n+1],e[3*t+2]-e[3*n+2]],o),jo(o),o}function Tx(e,t){function n(e){let n,r;if(e.dataArray&amp;&amp;!e.nativeArray&amp;&amp;(e.nativeArray=e.dataArray.getData()),e.usage===fx.Index&amp;&amp;(n=px.newInstance({label:e.label}),n.setDevice(t.device),r=GPUBufferUsage.INDEX|GPUBufferUsage.COPY_DST,n.buildIndexBuffer(e),n.createAndWrite(e.nativeArray,r),n.setArrayInformation([{format:e.format}])),n||(n=ZT.newInstance({label:e.label}),n.setDevice(t.device)),e.usage===fx.UniformArray&amp;&amp;(r=GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST,n.createAndWrite(e.nativeArray,r)),e.usage===fx.Storage&amp;&amp;(r=GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST,n.createAndWrite(e.nativeArray,r)),e.usage===fx.Texture&amp;&amp;(r=GPUBufferUsage.COPY_SRC,n.createAndWrite(e.nativeArray,r)),e.usage===fx.PointArray){r=GPUBufferUsage.VERTEX;const t=gT.getNativeTypeFromBufferFormat(e.format),o=hx(e.indexBuffer,e.dataArray.getData(),e.dataArray.getNumberOfComponents(),t,{packExtra:e.packExtra,shift:e.shift,scale:e.scale,cellData:e.cellData,cellOffset:e.cellOffset});n.createAndWrite(o.nativeArray,r),n.setStrideInBytes(gT.getByteStrideFromBufferFormat(e.format)),n.setArrayInformation([{offset:0,format:e.format,interpolation:e.cellData?&quot;flat&quot;:&quot;perspective&quot;}])}if(e.usage===fx.NormalsFromPoints){r=GPUBufferUsage.VERTEX;const t=gT.getNativeTypeFromBufferFormat(e.format),o=function(e,t){const n=t.getData(),r=e.getData();if(!r||!n)return null;const o=new Int8Array(4*e.getNumberOfCells()),a=r.length;let i=0;for(let e=0;e&lt;a;){const t=vx(n,r[e+1],r[e+2],r[e+3]);o[i++]=127*t[0],o[i++]=127*t[1],o[i++]=127*t[2],o[i++]=127,e+=r[e]+1}return o}(e.cells,e.dataArray),a=hx(e.indexBuffer,o,4,t,{cellData:!0});n.createAndWrite(a.nativeArray,r),n.setStrideInBytes(gT.getByteStrideFromBufferFormat(e.format)),n.setArrayInformation([{offset:0,format:e.format,interpolation:&quot;flat&quot;}])}return e.usage===fx.RawVertex&amp;&amp;(r=GPUBufferUsage.VERTEX,n.createAndWrite(e.nativeArray,r),n.setStrideInBytes(gT.getByteStrideFromBufferFormat(e.format)),n.setArrayInformation([{offset:0,format:e.format}])),n.setSourceTime(e.time),n}t.classHierarchy.push(&quot;vtkWebGPUBufferManager&quot;),e.hasBuffer=e=&gt;t.device.hasCachedObject(e),e.getBuffer=e=&gt;e.hash?t.device.getCachedObject(e.hash,n,e):n(e),e.getBufferForPointArray=(t,n)=&gt;{const r=function(e){let t;switch(e.getDataType()){case mx.UNSIGNED_CHAR:t=&quot;uint8&quot;;break;case mx.FLOAT:t=&quot;float32&quot;;break;case mx.UNSIGNED_INT:t=&quot;uint32&quot;;break;case mx.INT:t=&quot;sint32&quot;;break;case mx.DOUBLE:t=&quot;float32&quot;;break;case mx.UNSIGNED_SHORT:t=&quot;uint16&quot;;break;case mx.SHORT:t=&quot;sin16&quot;;break;default:t=&quot;float32&quot;}switch(e.getNumberOfComponents()){case 2:t+=&quot;x2&quot;;break;case 3:t.includes(&quot;32&quot;)||gx(`unsupported x3 type for ${t}`),t+=&quot;x3&quot;;break;case 4:t+=&quot;x4&quot;}return t}(t),o={hash:`${t.getMTime()}I${n.getMTime()}${r}`,usage:fx.PointArray,format:r,dataArray:t,indexBuffer:n};return e.getBuffer(o)},e.getFullScreenQuadBuffer=()=&gt;{if(t.fullScreenQuadBuffer)return t.fullScreenQuadBuffer;t.fullScreenQuadBuffer=ZT.newInstance(),t.fullScreenQuadBuffer.setDevice(t.device);const e=new Float32Array([-1,-1,0,1,-1,0,1,1,0,-1,-1,0,1,1,0,-1,1,0]);return t.fullScreenQuadBuffer.createAndWrite(e,GPUBufferUsage.VERTEX),t.fullScreenQuadBuffer.setStrideInBytes(12),t.fullScreenQuadBuffer.setArrayInformation([{offset:0,format:&quot;float32x3&quot;}]),t.fullScreenQuadBuffer}}const xx={device:null,fullScreenQuadBuffer:null};function yx(e,t,n={}){Object.assign(t,xx,n),Vt(e,t),Gt(e,t,[&quot;device&quot;]),Tx(e,t)}var bx={newInstance:Xt(yx),extend:yx,...jT};const{BufferUsage:Ax}=bx,{vtkErrorMacro:Cx}=sn;const Sx={bufferEntries:null,bufferEntryNames:null,sizeInBytes:0,label:null,bindGroupLayoutEntry:null,bindGroupEntry:null};function Px(e,t,n={}){Object.assign(t,Sx,n),sn.obj(e,t),t._bufferEntryNames=new Map,t.bufferEntries=[],t.bindGroupLayoutEntry=t.bindGroupLayoutEntry||{buffer:{type:&quot;uniform&quot;}},t.sendTime={},sn.obj(t.sendTime,{mtime:0}),t.bindGroupTime={},sn.obj(t.bindGroupTime,{mtime:0}),t.sendDirty=!0,t.sortDirty=!0,sn.get(e,t,[&quot;binding&quot;,&quot;bindGroupTime&quot;]),sn.setGet(e,t,[&quot;bindGroupLayoutEntry&quot;,&quot;device&quot;,&quot;label&quot;,&quot;sizeInBytes&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUUniformBuffer&quot;),e.addEntry=(e,n)=&gt;{t._bufferEntryNames.has(e)?Cx(`entry named ${e} already exists`):(t.sortDirty=!0,t._bufferEntryNames.set(e,t.bufferEntries.length),t.bufferEntries.push({name:e,type:n,sizeInBytes:gT.getByteStrideFromShaderFormat(n),offset:-1,nativeType:gT.getNativeTypeFromShaderFormat(n),packed:!1}))},e.sortBufferEntries=()=&gt;{if(!t.sortDirty)return;let e=0;const n=[];let r=4;for(let e=0;e&lt;t.bufferEntries.length;e++){const n=t.bufferEntries[e];n.sizeInBytes%16==0&amp;&amp;(r=Math.max(16,r)),n.sizeInBytes%8==0&amp;&amp;(r=Math.max(8,r))}for(let r=0;r&lt;t.bufferEntries.length;r++){const o=t.bufferEntries[r];!1===o.packed&amp;&amp;o.sizeInBytes%16==0&amp;&amp;(o.packed=!0,o.offset=e,n.push(o),e+=o.sizeInBytes)}for(let r=0;r&lt;t.bufferEntries.length;r++){const o=t.bufferEntries[r];if(!1===o.packed&amp;&amp;12===o.sizeInBytes)for(let r=0;r&lt;t.bufferEntries.length;r++){const a=t.bufferEntries[r];if(!1===a.packed&amp;&amp;4===a.sizeInBytes){o.packed=!0,o.offset=e,n.push(o),e+=o.sizeInBytes,a.packed=!0,a.offset=e,n.push(a),e+=a.sizeInBytes;break}}}for(let r=0;r&lt;t.bufferEntries.length;r++){const o=t.bufferEntries[r];if(!o.packed&amp;&amp;o.sizeInBytes%8==0)for(let a=r+1;a&lt;t.bufferEntries.length;a++){const r=t.bufferEntries[a];if(!r.packed&amp;&amp;r.sizeInBytes%8==0){o.packed=!0,o.offset=e,n.push(o),e+=o.sizeInBytes,r.packed=!0,r.offset=e,n.push(r),e+=r.sizeInBytes;break}}}for(let r=0;r&lt;t.bufferEntries.length;r++){const o=t.bufferEntries[r];if(!o.packed&amp;&amp;o.sizeInBytes%8==0){let r=!1;for(let a=0;!r&amp;&amp;a&lt;t.bufferEntries.length;a++){const i=t.bufferEntries[a];if(!i.packed&amp;&amp;4===i.sizeInBytes)for(let s=a+1;s&lt;t.bufferEntries.length;s++){const a=t.bufferEntries[s];if(!a.packed&amp;&amp;4===a.sizeInBytes){o.packed=!0,o.offset=e,n.push(o),e+=o.sizeInBytes,i.packed=!0,i.offset=e,n.push(i),e+=i.sizeInBytes,a.packed=!0,a.offset=e,n.push(a),e+=a.sizeInBytes,r=!0;break}}}}}for(let r=0;r&lt;t.bufferEntries.length;r++){const o=t.bufferEntries[r];!o.packed&amp;&amp;o.sizeInBytes&gt;4&amp;&amp;(o.packed=!0,o.offset=e,n.push(o),e+=o.sizeInBytes)}for(let r=0;r&lt;t.bufferEntries.length;r++){const o=t.bufferEntries[r];o.packed||(o.packed=!0,o.offset=e,n.push(o),e+=o.sizeInBytes)}t.bufferEntries=n,t._bufferEntryNames.clear();for(let e=0;e&lt;t.bufferEntries.length;e++)t._bufferEntryNames.set(t.bufferEntries[e].name,e);t.sizeInBytes=e,t.sizeInBytes=r*Math.ceil(t.sizeInBytes/r),t.sortDirty=!1},e.sendIfNeeded=e=&gt;{if(!t.UBO){const n={nativeArray:t.Float32Array,usage:Ax.UniformArray,label:t.label};t.UBO=e.getBufferManager().getBuffer(n),t.bindGroupTime.modified(),t.sendDirty=!1}t.sendDirty&amp;&amp;(e.getHandle().queue.writeBuffer(t.UBO.getHandle(),0,t.arrayBuffer,0,t.sizeInBytes),t.sendDirty=!1),t.sendTime.modified()},e.createView=e=&gt;{e in t==0&amp;&amp;(t.arrayBuffer||(t.arrayBuffer=new ArrayBuffer(t.sizeInBytes)),t[e]=sn.newTypedArray(e,t.arrayBuffer))},e.setValue=(n,r)=&gt;{e.sortBufferEntries();const o=t._bufferEntryNames.get(n);if(void 0===o)return void Cx(`entry named ${n} not found in UBO`);const a=t.bufferEntries[o];e.createView(a.nativeType);const i=t[a.nativeType];a.lastValue!==r&amp;&amp;(i[a.offset/i.BYTES_PER_ELEMENT]=r,t.sendDirty=!0),a.lastValue=r},e.setArray=(n,r)=&gt;{e.sortBufferEntries();const o=t._bufferEntryNames.get(n);if(void 0===o)return void Cx(`entry named ${n} not found in UBO`);const a=t.bufferEntries[o];e.createView(a.nativeType);const i=t[a.nativeType];let s=!1;for(let e=0;e&lt;r.length;e++)a.lastValue&amp;&amp;a.lastValue[e]===r[e]||(i[a.offset/i.BYTES_PER_ELEMENT+e]=r[e],s=!0);s&amp;&amp;(t.sendDirty=!0,a.lastValue=[...r])},e.getBindGroupEntry=()=&gt;({resource:{buffer:t.UBO.getHandle()}}),e.getSendTime=()=&gt;t.sendTime.getMTime(),e.getShaderCode=(n,r)=&gt;{e.sortBufferEntries();const o=[`struct ${t.label}Struct\\n{`];for(let e=0;e&lt;t.bufferEntries.length;e++){const n=t.bufferEntries[e];o.push(`  ${n.name}: ${n.type},`)}return o.push(`};\\n@binding(${n}) @group(${r}) var&lt;uniform&gt; ${t.label}: ${t.label}Struct;`),o.join(&quot;\\n&quot;)}}(e,t)}var wx={newInstance:sn.newInstance(Px,&quot;vtkWebGPUUniformBuffer&quot;),extend:Px};const{BufferUsage:Ix}=bx,{vtkErrorMacro:Ox}=sn;const Rx={bufferEntries:null,bufferEntryNames:null,sizeInBytes:0,label:null,numberOfInstances:1};function Mx(e,t,n={}){Object.assign(t,Rx,n),sn.obj(e,t),t._bufferEntryNames=new Map,t.bufferEntries=[],t._sendTime={},sn.obj(t._sendTime,{mtime:0}),t.bindGroupTime={},sn.obj(t.bindGroupTime,{mtime:0}),t.bindGroupLayoutEntry=t.bindGroupLayoutEntry||{buffer:{type:&quot;read-only-storage&quot;}},sn.get(e,t,[&quot;bindGroupTime&quot;]),sn.setGet(e,t,[&quot;device&quot;,&quot;bindGroupLayoutEntry&quot;,&quot;label&quot;,&quot;numberOfInstances&quot;,&quot;sizeInBytes&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUStorageBuffer&quot;),e.addEntry=(e,n)=&gt;{if(t._bufferEntryNames.has(e))return void Ox(`entry named ${e} already exists`);t._bufferEntryNames.set(e,t.bufferEntries.length);const r=gT.getByteStrideFromShaderFormat(n);t.bufferEntries.push({name:e,type:n,sizeInBytes:r,offset:t.sizeInBytes,nativeType:gT.getNativeTypeFromShaderFormat(n)}),t.sizeInBytes+=r},e.send=e=&gt;{if(!t._buffer){const n={nativeArray:t.Float32Array,usage:Ix.Storage,label:t.label};return t._buffer=e.getBufferManager().getBuffer(n),t.bindGroupTime.modified(),void t._sendTime.modified()}e.getHandle().queue.writeBuffer(t._buffer.getHandle(),0,t.arrayBuffer,0,t.sizeInBytes*t.numberOfInstances),t._sendTime.modified()},e.createView=e=&gt;{e in t==0&amp;&amp;(t.arrayBuffer||(t.arrayBuffer=new ArrayBuffer(t.sizeInBytes*t.numberOfInstances)),t[e]=sn.newTypedArray(e,t.arrayBuffer))},e.setValue=(n,r,o)=&gt;{const a=t._bufferEntryNames.get(n);if(void 0===a)return void Ox(`entry named ${n} not found in UBO`);const i=t.bufferEntries[a];e.createView(i.nativeType);const s=t[i.nativeType];s[(i.offset+r*t.sizeInBytes)/s.BYTES_PER_ELEMENT]=o},e.setArray=(n,r,o)=&gt;{const a=t._bufferEntryNames.get(n);if(void 0===a)return void Ox(`entry named ${n} not found in UBO`);const i=t.bufferEntries[a];e.createView(i.nativeType);const s=t[i.nativeType],l=(i.offset+r*t.sizeInBytes)/s.BYTES_PER_ELEMENT;for(let e=0;e&lt;o.length;e++)s[l+e]=o[e]},e.setAllInstancesFromArray=(n,r)=&gt;{const o=t._bufferEntryNames.get(n);if(void 0===o)return void Ox(`entry named ${n} not found in UBO`);const a=t.bufferEntries[o];e.createView(a.nativeType);const i=t[a.nativeType],s=r.length/t.numberOfInstances;for(let e=0;e&lt;t.numberOfInstances;e++){const n=(a.offset+e*t.sizeInBytes)/i.BYTES_PER_ELEMENT;for(let t=0;t&lt;s;t++)i[n+t]=r[e*s+t]}},e.setAllInstancesFromArrayColorToFloat=(n,r)=&gt;{const o=t._bufferEntryNames.get(n);if(void 0===o)return void Ox(`entry named ${n} not found in UBO`);const a=t.bufferEntries[o];e.createView(a.nativeType);const i=t[a.nativeType],s=r.length/t.numberOfInstances;for(let e=0;e&lt;t.numberOfInstances;e++){const n=(a.offset+e*t.sizeInBytes)/i.BYTES_PER_ELEMENT;for(let t=0;t&lt;s;t++)i[n+t]=r[e*s+t]/255}},e.setAllInstancesFromArray3x3To4x4=(n,r)=&gt;{const o=t._bufferEntryNames.get(n);if(void 0===o)return void Ox(`entry named ${n} not found in UBO`);const a=t.bufferEntries[o];e.createView(a.nativeType);const i=t[a.nativeType];for(let e=0;e&lt;t.numberOfInstances;e++){const n=(a.offset+e*t.sizeInBytes)/i.BYTES_PER_ELEMENT;for(let t=0;t&lt;3;t++)for(let o=0;o&lt;3;o++)i[n+4*t+o]=r[9*e+3*t+o]}},e.getSendTime=()=&gt;t._sendTime.getMTime(),e.getShaderCode=(e,n)=&gt;{const r=[`struct ${t.label}StructEntry\\n{`];for(let e=0;e&lt;t.bufferEntries.length;e++){const n=t.bufferEntries[e];r.push(`  ${n.name}: ${n.type},`)}return r.push(`\\n};\\nstruct ${t.label}Struct\\n{\\n  values: array&lt;${t.label}StructEntry&gt;,\\n};\\n@binding(${e}) @group(${n}) var&lt;storage, read&gt; ${t.label}: ${t.label}Struct;\\n`),r.join(&quot;\\n&quot;)},e.getBindGroupEntry=()=&gt;({resource:{buffer:t._buffer.getHandle()}}),e.clearData=()=&gt;{t.numberOfInstances=0,t.sizeInBytes=0,t.bufferEntries=[],t._bufferEntryNames=new Map,t._buffer=null,delete t.arrayBuffer,delete t.Float32Array}}(e,t)}var Dx={newInstance:sn.newInstance(Mx,&quot;vtkWebGPUStorageBuffer&quot;),extend:Mx};function Ex(e,t,n){const r=e.getClippingPlanes().length;for(let o=0;o&lt;r;o++)e.getClippingPlaneInCoords(t,o,n[o]);return r}const Vx=`\\n//VTK::Renderer::Dec\\n\\n//VTK::Mapper::Dec\\n\\n//VTK::TCoord::Dec\\n\\n//VTK::Volume::TraverseDec\\n\\n//VTK::RenderEncoder::Dec\\n\\n//VTK::IOStructs::Dec\\n\\nfn getTextureValue(vTex: texture_3d&lt;f32&gt;, tpos: vec4&lt;f32&gt;) -&gt; f32\\n{\\n  // todo multicomponent support\\n  return textureSampleLevel(vTex, clampSampler, tpos.xyz, 0.0).r;\\n}\\n\\nfn intersectRayBoundsWithClipPlanes(vNum: i32, minPosSC: vec4&lt;f32&gt;, rayStepSC: vec4&lt;f32&gt;, rayBounds: vec2&lt;f32&gt;) -&gt; vec2&lt;f32&gt;\\n{\\n  var result: vec2&lt;f32&gt; = rayBounds;\\n  let clipCount: i32 = i32(volumeSSBO.values[vNum].clipPlaneStates.x);\\n  if (clipCount &lt;= 0)\\n  {\\n    return result;\\n  }\\n\\n  ${Array.from({length:6},((e,t)=&gt;`\\n  if (clipCount &gt; ${t})\\n  {\\n    let clipPlane${t}: vec4&lt;f32&gt; = volumeSSBO.values[vNum].clipPlane${t};\\n    let rayDirRatio${t}: f32 = dot(rayStepSC, clipPlane${t});\\n    let equationResult${t}: f32 = dot(minPosSC, clipPlane${t});\\n\\n    let absRayDirRatio${t}: f32 = abs(rayDirRatio${t});\\n    if (absRayDirRatio${t} &gt; 1e-6)\\n    {\\n      let intersection${t}: f32 = -equationResult${t} / rayDirRatio${t};\\n      result.x = select(result.x, max(result.x, intersection${t}), rayDirRatio${t} &gt; 0.0);\\n      result.y = select(result.y, min(result.y, intersection${t}), rayDirRatio${t} &lt; 0.0);\\n    }\\n    else if (equationResult${t} &lt; 0.0)\\n    {\\n      result.x = result.y;\\n    }\\n\\n    if (result.x &gt;= result.y)\\n    {\\n      return result;\\n    }\\n  }`)).join(&quot;\\n&quot;)}\\n\\n  return result;\\n}\\n\\nfn getGradient(vTex: texture_3d&lt;f32&gt;, tpos: vec4&lt;f32&gt;, vNum: i32, scalar: f32) -&gt; vec4&lt;f32&gt;\\n{\\n  var result: vec4&lt;f32&gt;;\\n\\n  var tstep: vec4&lt;f32&gt; = volumeSSBO.values[vNum].tstep;\\n  result.x = getTextureValue(vTex, tpos + vec4&lt;f32&gt;(tstep.x, 0.0, 0.0, 1.0)) - scalar;\\n  result.y = getTextureValue(vTex, tpos + vec4&lt;f32&gt;(0.0, tstep.y, 0.0, 1.0)) - scalar;\\n  result.z = getTextureValue(vTex, tpos + vec4&lt;f32&gt;(0.0, 0.0, tstep.z, 1.0)) - scalar;\\n  result.w = 0.0;\\n\\n  // divide by spacing as that is our delta\\n  result = result / volumeSSBO.values[vNum].spacing;\\n  // now we have a gradient in unit tcoords\\n\\n  var grad: f32 = length(result.xyz);\\n  if (grad &gt; 0.0)\\n  {\\n    // rotate to View Coords, needed for lighting and shading\\n    var nMat: mat4x4&lt;f32&gt; = rendererUBO.SCVCMatrix * volumeSSBO.values[vNum].planeNormals;\\n    result = nMat * result;\\n    result = result / length(result);\\n  }\\n\\n  // store gradient magnitude in .w\\n  result.w = grad;\\n\\n  return result;\\n}\\n\\nfn processVolume(vTex: texture_3d&lt;f32&gt;, vNum: i32, cNum: i32, posSC: vec4&lt;f32&gt;, tfunRows: f32) -&gt; vec4&lt;f32&gt;\\n{\\n  var outColor: vec4&lt;f32&gt; = vec4&lt;f32&gt;(0.0, 0.0, 0.0, 0.0);\\n\\n  // convert to tcoords and reject if outside the volume\\n  var tpos: vec4&lt;f32&gt; = volumeSSBO.values[vNum].SCTCMatrix*posSC;\\n  if (tpos.x &lt; 0.0 || tpos.y &lt; 0.0 || tpos.z &lt; 0.0 ||\\n      tpos.x &gt; 1.0 || tpos.y &gt; 1.0 || tpos.z &gt; 1.0) { return outColor; }\\n\\n  var scalar: f32 = getTextureValue(vTex, tpos);\\n\\n  var coord: vec2&lt;f32&gt; =\\n    vec2&lt;f32&gt;(scalar * componentSSBO.values[cNum].cScale + componentSSBO.values[cNum].cShift,\\n      (0.5 + 2.0 * f32(vNum)) / tfunRows);\\n  var color: vec4&lt;f32&gt; = textureSampleLevel(tfunTexture, clampSampler, coord, 0.0);\\n\\n  var gofactor: f32 = 1.0;\\n  var normal: vec4&lt;f32&gt; = vec4&lt;f32&gt;(0.0,0.0,0.0,0.0);\\n  if (componentSSBO.values[cNum].gomin &lt;  1.0 || volumeSSBO.values[vNum].shade[0] &gt; 0.0)\\n  {\\n    normal = getGradient(vTex, tpos, vNum, scalar);\\n    if (componentSSBO.values[cNum].gomin &lt;  1.0)\\n    {\\n      gofactor = clamp(normal.a*componentSSBO.values[cNum].goScale + componentSSBO.values[cNum].goShift,\\n      componentSSBO.values[cNum].gomin, componentSSBO.values[cNum].gomax);\\n    }\\n  }\\n\\n  coord.x = (scalar * componentSSBO.values[cNum].oScale + componentSSBO.values[cNum].oShift);\\n  var opacity: f32 = textureSampleLevel(ofunTexture, clampSampler, coord, 0.0).r;\\n\\n  if (volumeSSBO.values[vNum].shade[0] &gt; 0.0)\\n  {\\n    color = color*abs(normal.z);\\n  }\\n\\n  outColor = vec4&lt;f32&gt;(color.rgb, gofactor * opacity);\\n\\n  return outColor;\\n}\\n\\n// adjust the start and end point of a raycast such that it intersects the unit cube.\\n// This function is used to take a raycast starting point and step vector\\n// and numSteps and return the startijng and ending steps for intersecting the\\n// unit cube. Recall for a 3D texture, the unit cube is the range of texture coordsinates\\n// that have valid values. So this funtion can be used to take a ray in texture coordinates\\n// and bound it to intersecting the texture.\\n//\\nfn adjustBounds(tpos: vec4&lt;f32&gt;, tstep: vec4&lt;f32&gt;, numSteps: f32) -&gt; vec2&lt;f32&gt;\\n{\\n  var result: vec2&lt;f32&gt; = vec2&lt;f32&gt;(0.0, numSteps);\\n  var tpos2: vec4&lt;f32&gt; = tpos + tstep*numSteps;\\n\\n  // move tpos to the start of the volume\\n  var adjust: f32 =\\n    min(\\n      max(tpos.x/tstep.x, (tpos.x - 1.0)/tstep.x),\\n      min(\\n        max((tpos.y - 1.0)/tstep.y, tpos.y/tstep.y),\\n        max((tpos.z - 1.0)/tstep.z, tpos.z/tstep.z)));\\n  if (adjust &lt; 0.0)\\n  {\\n    result.x = result.x - adjust;\\n  }\\n\\n  // adjust length to the end\\n  adjust =\\n    max(\\n      min(tpos2.x/tstep.x, (tpos2.x - 1.0)/tstep.x),\\n      max(\\n        min((tpos2.y - 1.0)/tstep.y, tpos2.y/tstep.y),\\n        min((tpos2.z - 1.0)/tstep.z, tpos2.z/tstep.z)));\\n  if (adjust &gt; 0.0)\\n  {\\n    result.y = result.y - adjust;\\n  }\\n\\n  return result;\\n}\\n\\nfn getSimpleColor(scalar: f32, vNum: i32, cNum: i32) -&gt; vec4&lt;f32&gt;\\n{\\n  // how many rows (tfuns) do we have in our tfunTexture\\n  var tfunRows: f32 = f32(textureDimensions(tfunTexture).y);\\n\\n  var coord: vec2&lt;f32&gt; =\\n    vec2&lt;f32&gt;(scalar * componentSSBO.values[cNum].cScale + componentSSBO.values[cNum].cShift,\\n      (0.5 + 2.0 * f32(vNum)) / tfunRows);\\n  var color: vec4&lt;f32&gt; = textureSampleLevel(tfunTexture, clampSampler, coord, 0.0);\\n  coord.x = (scalar * componentSSBO.values[cNum].oScale + componentSSBO.values[cNum].oShift);\\n  var opacity: f32 = textureSampleLevel(ofunTexture, clampSampler, coord, 0.0).r;\\n  return vec4&lt;f32&gt;(color.rgb, opacity);\\n}\\n\\nfn traverseMax(vTex: texture_3d&lt;f32&gt;, vNum: i32, cNum: i32, rayLengthSC: f32, minPosSC: vec4&lt;f32&gt;, rayStepSC: vec4&lt;f32&gt;)\\n{\\n  // convert to tcoords and reject if outside the volume\\n  var numSteps: f32 = rayLengthSC/mapperUBO.SampleDistance;\\n  var tpos: vec4&lt;f32&gt; = volumeSSBO.values[vNum].SCTCMatrix*minPosSC;\\n  var tpos2: vec4&lt;f32&gt; = volumeSSBO.values[vNum].SCTCMatrix*(minPosSC + rayStepSC);\\n  var tstep: vec4&lt;f32&gt; = tpos2 - tpos;\\n\\n  var rayBounds: vec2&lt;f32&gt; = intersectRayBoundsWithClipPlanes(\\n    vNum,\\n    minPosSC,\\n    rayStepSC,\\n    adjustBounds(tpos, tstep, numSteps));\\n\\n  // did we hit anything\\n  if (rayBounds.x &gt;= rayBounds.y)\\n  {\\n    traverseVals[vNum] = vec4&lt;f32&gt;(0.0,0.0,0.0,0.0);\\n    return;\\n  }\\n\\n  tpos = tpos + tstep*rayBounds.x;\\n  var curDist: f32 = rayBounds.x;\\n  var maxVal: f32 = -1.0e37;\\n  loop\\n  {\\n    var scalar: f32 = getTextureValue(vTex, tpos);\\n    if (scalar &gt; maxVal)\\n    {\\n      maxVal = scalar;\\n    }\\n\\n    // increment position\\n    curDist = curDist + 1.0;\\n    tpos = tpos + tstep;\\n\\n    // check if we have reached a terminating condition\\n    if (curDist &gt; rayBounds.y) { break; }\\n  }\\n\\n  // process to get the color and opacity\\n  traverseVals[vNum] = getSimpleColor(maxVal, vNum, cNum);\\n}\\n\\nfn traverseMin(vTex: texture_3d&lt;f32&gt;, vNum: i32, cNum: i32, rayLengthSC: f32, minPosSC: vec4&lt;f32&gt;, rayStepSC: vec4&lt;f32&gt;)\\n{\\n  // convert to tcoords and reject if outside the volume\\n  var numSteps: f32 = rayLengthSC/mapperUBO.SampleDistance;\\n  var tpos: vec4&lt;f32&gt; = volumeSSBO.values[vNum].SCTCMatrix*minPosSC;\\n  var tpos2: vec4&lt;f32&gt; = volumeSSBO.values[vNum].SCTCMatrix*(minPosSC + rayStepSC);\\n  var tstep: vec4&lt;f32&gt; = tpos2 - tpos;\\n\\n  var rayBounds: vec2&lt;f32&gt; = intersectRayBoundsWithClipPlanes(\\n    vNum,\\n    minPosSC,\\n    rayStepSC,\\n    adjustBounds(tpos, tstep, numSteps));\\n\\n  // did we hit anything\\n  if (rayBounds.x &gt;= rayBounds.y)\\n  {\\n    traverseVals[vNum] = vec4&lt;f32&gt;(0.0,0.0,0.0,0.0);\\n    return;\\n  }\\n\\n  tpos = tpos + tstep*rayBounds.x;\\n  var curDist: f32 = rayBounds.x;\\n  var minVal: f32 = 1.0e37;\\n  loop\\n  {\\n    var scalar: f32 = getTextureValue(vTex, tpos);\\n    if (scalar &lt; minVal)\\n    {\\n      minVal = scalar;\\n    }\\n\\n    // increment position\\n    curDist = curDist + 1.0;\\n    tpos = tpos + tstep;\\n\\n    // check if we have reached a terminating condition\\n    if (curDist &gt; rayBounds.y) { break; }\\n  }\\n\\n  // process to get the color and opacity\\n  traverseVals[vNum] = getSimpleColor(minVal, vNum, cNum);\\n}\\n\\nfn traverseAverage(vTex: texture_3d&lt;f32&gt;, vNum: i32, cNum: i32, rayLengthSC: f32, minPosSC: vec4&lt;f32&gt;, rayStepSC: vec4&lt;f32&gt;)\\n{\\n  // convert to tcoords and reject if outside the volume\\n  var numSteps: f32 = rayLengthSC/mapperUBO.SampleDistance;\\n  var tpos: vec4&lt;f32&gt; = volumeSSBO.values[vNum].SCTCMatrix*minPosSC;\\n  var tpos2: vec4&lt;f32&gt; = volumeSSBO.values[vNum].SCTCMatrix*(minPosSC + rayStepSC);\\n  var tstep: vec4&lt;f32&gt; = tpos2 - tpos;\\n\\n  var rayBounds: vec2&lt;f32&gt; = intersectRayBoundsWithClipPlanes(\\n    vNum,\\n    minPosSC,\\n    rayStepSC,\\n    adjustBounds(tpos, tstep, numSteps));\\n\\n  // did we hit anything\\n  if (rayBounds.x &gt;= rayBounds.y)\\n  {\\n    traverseVals[vNum] = vec4&lt;f32&gt;(0.0,0.0,0.0,0.0);\\n    return;\\n  }\\n\\n  let ipRange: vec4&lt;f32&gt; = volumeSSBO.values[vNum].ipScalarRange;\\n  tpos = tpos + tstep*rayBounds.x;\\n  var curDist: f32 = rayBounds.x;\\n  var avgVal: f32 = 0.0;\\n  var sampleCount: f32 = 0.0;\\n  loop\\n  {\\n    var sample: f32 = getTextureValue(vTex, tpos);\\n    // right now leave filtering off until WebGL changes get merged\\n    // if (ipRange.z == 0.0 || sample &gt;= ipRange.x &amp;&amp; sample &lt;= ipRange.y)\\n    // {\\n      avgVal = avgVal + sample;\\n      sampleCount = sampleCount + 1.0;\\n    // }\\n\\n    // increment position\\n    curDist = curDist + 1.0;\\n    tpos = tpos + tstep;\\n\\n    // check if we have reached a terminating condition\\n    if (curDist &gt; rayBounds.y) { break; }\\n  }\\n\\n  if (sampleCount &lt;= 0.0)\\n  {\\n    traverseVals[vNum] = vec4&lt;f32&gt;(0.0,0.0,0.0,0.0);\\n    return;\\n  }\\n\\n  // process to get the color and opacity\\n  traverseVals[vNum] = getSimpleColor(avgVal/sampleCount, vNum, cNum);\\n}\\n\\nfn traverseAdditive(vTex: texture_3d&lt;f32&gt;, vNum: i32, cNum: i32, rayLengthSC: f32, minPosSC: vec4&lt;f32&gt;, rayStepSC: vec4&lt;f32&gt;)\\n{\\n  // convert to tcoords and reject if outside the volume\\n  var numSteps: f32 = rayLengthSC/mapperUBO.SampleDistance;\\n  var tpos: vec4&lt;f32&gt; = volumeSSBO.values[vNum].SCTCMatrix*minPosSC;\\n  var tpos2: vec4&lt;f32&gt; = volumeSSBO.values[vNum].SCTCMatrix*(minPosSC + rayStepSC);\\n  var tstep: vec4&lt;f32&gt; = tpos2 - tpos;\\n\\n  var rayBounds: vec2&lt;f32&gt; = intersectRayBoundsWithClipPlanes(\\n    vNum,\\n    minPosSC,\\n    rayStepSC,\\n    adjustBounds(tpos, tstep, numSteps));\\n\\n  // did we hit anything\\n  if (rayBounds.x &gt;= rayBounds.y)\\n  {\\n    traverseVals[vNum] = vec4&lt;f32&gt;(0.0,0.0,0.0,0.0);\\n    return;\\n  }\\n\\n  let ipRange: vec4&lt;f32&gt; = volumeSSBO.values[vNum].ipScalarRange;\\n  tpos = tpos + tstep*rayBounds.x;\\n  var curDist: f32 = rayBounds.x;\\n  var sumVal: f32 = 0.0;\\n  loop\\n  {\\n    var sample: f32 = getTextureValue(vTex, tpos);\\n    // right now leave filtering off until WebGL changes get merged\\n    // if (ipRange.z == 0.0 || sample &gt;= ipRange.x &amp;&amp; sample &lt;= ipRange.y)\\n    // {\\n      sumVal = sumVal + sample;\\n    // }\\n    // increment position\\n    curDist = curDist + 1.0;\\n    tpos = tpos + tstep;\\n\\n    // check if we have reached a terminating condition\\n    if (curDist &gt; rayBounds.y) { break; }\\n  }\\n\\n  // process to get the color and opacity\\n  traverseVals[vNum] = getSimpleColor(sumVal, vNum, cNum);\\n}\\n\\nfn composite(rayLengthSC: f32, minPosSC: vec4&lt;f32&gt;, rayStepSC: vec4&lt;f32&gt;) -&gt; vec4&lt;f32&gt;\\n{\\n  // initial ray position is at the beginning\\n  var rayPosSC: vec4&lt;f32&gt; = minPosSC;\\n\\n  // how many rows (tfuns) do we have in our tfunTexture\\n  var tfunRows: f32 = f32(textureDimensions(tfunTexture).y);\\n\\n  var curDist: f32 = 0.0;\\n  var computedColor: vec4&lt;f32&gt; = vec4&lt;f32&gt;(0.0, 0.0, 0.0, 0.0);\\n  var sampleColor: vec4&lt;f32&gt;;\\n  var numSteps: f32 = rayLengthSC/mapperUBO.SampleDistance;\\n//VTK::Volume::TraverseCalls\\n//VTK::Volume::TraverseInit\\n\\n  loop\\n  {\\n    // for each volume, sample and accumulate color\\n//VTK::Volume::CompositeCalls\\n\\n    // increment position\\n    curDist = curDist + mapperUBO.SampleDistance;\\n    rayPosSC = rayPosSC + rayStepSC;\\n\\n    // check if we have reached a terminating condition\\n    if (curDist &gt; rayLengthSC) { break; }\\n    if (computedColor.a &gt; 0.98) { break; }\\n  }\\n  return computedColor;\\n}\\n\\n@fragment\\nfn main(\\n//VTK::IOStructs::Input\\n)\\n//VTK::IOStructs::Output\\n{\\n  var output: fragmentOutput;\\n\\n  var rayMax: f32 = textureSampleLevel(maxTexture, clampSampler, input.tcoordVS, 0.0).r;\\n  var rayMin: f32 = textureSampleLevel(minTexture, clampSampler, input.tcoordVS, 0.0).r;\\n\\n  // discard empty rays\\n  if (rayMax &lt;= rayMin) { discard; }\\n  else\\n  {\\n    // compute start and end ray positions in view coordinates\\n    var minPosSC: vec4&lt;f32&gt; = rendererUBO.PCSCMatrix*vec4&lt;f32&gt;(2.0 * input.tcoordVS.x - 1.0, 1.0 - 2.0 * input.tcoordVS.y, rayMax, 1.0);\\n    minPosSC = minPosSC * (1.0 / minPosSC.w);\\n    var maxPosSC: vec4&lt;f32&gt; = rendererUBO.PCSCMatrix*vec4&lt;f32&gt;(2.0 * input.tcoordVS.x - 1.0, 1.0 - 2.0 * input.tcoordVS.y, rayMin, 1.0);\\n    maxPosSC = maxPosSC * (1.0 / maxPosSC.w);\\n\\n    var rayLengthSC: f32 = distance(minPosSC.xyz, maxPosSC.xyz);\\n    var rayStepSC: vec4&lt;f32&gt; = (maxPosSC - minPosSC)*(mapperUBO.SampleDistance/rayLengthSC);\\n    rayStepSC.w = 0.0;\\n\\n    var computedColor: vec4&lt;f32&gt;;\\n\\n//VTK::Volume::Loop\\n\\n//VTK::RenderEncoder::Impl\\n  }\\n\\n  return output;\\n}\\n`,Lx=new Float64Array(16),Bx=new Float64Array(16);const Fx={volumes:null,rowLength:1024,lastVolumeLength:0};function Nx(e,t,n={}){Object.assign(t,Fx,n),ST.extend(e,t,n),t.fragmentShaderTemplate=Vx,t.UBO=wx.newInstance({label:&quot;mapperUBO&quot;}),t.UBO.addEntry(&quot;SampleDistance&quot;,&quot;f32&quot;),t.SSBO=Dx.newInstance({label:&quot;volumeSSBO&quot;}),t.componentSSBO=Dx.newInstance({label:&quot;componentSSBO&quot;}),t.lutBuildTime={},sn.obj(t.lutBuildTime,{mtime:0}),t.clipPlanes=Array.from({length:6},(()=&gt;[0,0,0,0])),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUVolumePassFSQ&quot;),e.replaceShaderPosition=(e,t,n)=&gt;{const r=t.getShaderDescription(&quot;vertex&quot;);r.addBuiltinOutput(&quot;vec4&lt;f32&gt;&quot;,&quot;@builtin(position) Position&quot;);let o=r.getCode();o=rT.substitute(o,&quot;//VTK::Position::Impl&quot;,[&quot;output.tcoordVS = vec2&lt;f32&gt;(vertexBC.x * 0.5 + 0.5, 1.0 - vertexBC.y * 0.5 - 0.5);&quot;,&quot;output.Position = vec4&lt;f32&gt;(vertexBC, 1.0);&quot;]).result,r.setCode(o),t.getShaderDescription(&quot;fragment&quot;).addBuiltinInput(&quot;vec4&lt;f32&gt;&quot;,&quot;@builtin(position) fragPos&quot;)},t.shaderReplacements.set(&quot;replaceShaderPosition&quot;,e.replaceShaderPosition),e.replaceShaderVolume=(e,n,r)=&gt;{const o=n.getShaderDescription(&quot;fragment&quot;);let a=o.getCode();const i=[],s=[],l=[];for(let e=0;e&lt;t.volumes.length;e++)t.volumes[e].getRenderable().getMapper().getBlendMode()===hg.COMPOSITE_BLEND?(s.push(`  var tpos${e}: vec4&lt;f32&gt; = volumeSSBO.values[${e}].SCTCMatrix*minPosSC;`),s.push(`  var tpos2_${e}: vec4&lt;f32&gt; = volumeSSBO.values[${e}].SCTCMatrix*(minPosSC + rayStepSC);`),s.push(`  var tstep${e}: vec4&lt;f32&gt; = tpos2_${e} - tpos${e};`),s.push(`  var rayBounds${e}: vec2&lt;f32&gt; = intersectRayBoundsWithClipPlanes(${e}, minPosSC, rayStepSC, adjustBounds(tpos${e}, tstep${e}, numSteps));`),i.push(`    if (curDist &gt;= rayBounds${e}.x * mapperUBO.SampleDistance &amp;&amp; curDist &lt;= rayBounds${e}.y * mapperUBO.SampleDistance) {`),i.push(`      sampleColor = processVolume(volTexture${e}, ${e}, ${t.rowStarts[e]}, rayPosSC, tfunRows);`),i.push(&quot;    computedColor = vec4&lt;f32&gt;(\\n          sampleColor.a * sampleColor.rgb * (1.0 - computedColor.a) + computedColor.rgb,\\n          (1.0 - computedColor.a)*sampleColor.a + computedColor.a);&quot;),i.push(&quot;    }&quot;)):(l.push(`  sampleColor = traverseVals[${e}];`),l.push(&quot;  computedColor = vec4&lt;f32&gt;(\\n          sampleColor.a * sampleColor.rgb * (1.0 - computedColor.a) + computedColor.rgb,\\n          (1.0 - computedColor.a)*sampleColor.a + computedColor.a);&quot;));a=rT.substitute(a,&quot;//VTK::Volume::CompositeCalls&quot;,i).result,a=rT.substitute(a,&quot;//VTK::Volume::TraverseCalls&quot;,l).result,a=rT.substitute(a,&quot;//VTK::Volume::TraverseInit&quot;,s).result,a=rT.substitute(a,&quot;//VTK::Volume::TraverseDec&quot;,[`var&lt;private&gt; traverseVals: array&lt;vec4&lt;f32&gt;,${t.volumes.length}&gt;;`]).result;let c=!1;for(let e=0;e&lt;t.volumes.length;e++){const n=t.volumes[e].getRenderable().getMapper().getBlendMode();n===hg.COMPOSITE_BLEND?c=!0:n===hg.MAXIMUM_INTENSITY_BLEND?a=rT.substitute(a,&quot;//VTK::Volume::Loop&quot;,[`    traverseMax(volTexture${e}, ${e}, ${e}, rayLengthSC, minPosSC, rayStepSC);`,`    computedColor = traverseVals[${e}];`,&quot;//VTK::Volume::Loop&quot;]).result:n===hg.MINIMUM_INTENSITY_BLEND?a=rT.substitute(a,&quot;//VTK::Volume::Loop&quot;,[`    traverseMin(volTexture${e}, ${e}, ${e}, rayLengthSC, minPosSC, rayStepSC);`,`    computedColor = traverseVals[${e}];`,&quot;//VTK::Volume::Loop&quot;]).result:n===hg.AVERAGE_INTENSITY_BLEND?a=rT.substitute(a,&quot;//VTK::Volume::Loop&quot;,[`    traverseAverage(volTexture${e}, ${e}, ${e}, rayLengthSC, minPosSC, rayStepSC);`,`    computedColor = traverseVals[${e}];`,&quot;//VTK::Volume::Loop&quot;]).result:n===hg.ADDITIVE_INTENSITY_BLEND&amp;&amp;(a=rT.substitute(a,&quot;//VTK::Volume::Loop&quot;,[`    traverseAdditive(volTexture${e}, ${e}, ${e}, rayLengthSC, minPosSC, rayStepSC);`,`    computedColor = traverseVals[${e}];`,&quot;//VTK::Volume::Loop&quot;]).result)}c&amp;&amp;(a=rT.substitute(a,&quot;//VTK::Volume::Loop&quot;,[&quot;    computedColor = composite(rayLengthSC, minPosSC, rayStepSC);&quot;]).result),o.setCode(a)},t.shaderReplacements.set(&quot;replaceShaderVolume&quot;,e.replaceShaderVolume),e.updateLUTImage=n=&gt;{let r=e.getMTime();for(let e=0;e&lt;t.volumes.length;e++){const n=t.volumes[e].getRenderable(),o=n.getMapper().getInputData();r=Math.max(r,n.getMTime(),o.getMTime())}if(r&lt;t.lutBuildTime.getMTime())return;t.numRows=0,t.rowStarts=[];for(let e=0;e&lt;t.volumes.length;e++){t.rowStarts.push(t.numRows);const n=t.volumes[e].getRenderable(),r=n.getMapper(),o=n.getProperty(),a=r.getInputData(),i=(a.getPointData()&amp;&amp;a.getPointData().getScalars()).getNumberOfComponents(),s=o.getIndependentComponents()?i:1;t.numRows+=s}const o=new Uint8ClampedArray(2*t.numRows*t.rowLength*4),a=new Float32Array(2*t.numRows*t.rowLength);let i=0;const s=new Float32Array(3*t.rowLength),l=t.rowLength;for(let e=0;e&lt;t.volumes.length;e++){const n=t.volumes[e].getRenderable(),r=n.getMapper(),c=n.getProperty(),u=r.getInputData(),d=(u.getPointData()&amp;&amp;u.getPointData().getScalars()).getNumberOfComponents(),p=c.getIndependentComponents()?d:1;for(let e=0;e&lt;p;++e){const n=c.getRGBTransferFunction(e),r=n.getRange();n.getTable(r[0],r[1],l,s,1);let u=i*l*4;for(let e=0;e&lt;l;++e){o[u+4*e]=255*s[3*e],o[u+4*e+1]=255*s[3*e+1],o[u+4*e+2]=255*s[3*e+2],o[u+4*e+3]=255;for(let t=0;t&lt;4;t++)o[u+4*(l+e)+t]=o[u+4*e+t]}const d=c.getScalarOpacity(e),p=t.sampleDist/c.getScalarOpacityUnitDistance(e),f=d.getRange();d.getTable(f[0],f[1],l,s,1),u=i*l;for(let e=0;e&lt;l;++e)a[u+e]=1-(1-s[e])**p,a[u+e+l]=a[u+e];i+=2}}{const e={nativeArray:o,width:t.rowLength,height:2*t.numRows,depth:1,format:&quot;rgba8unorm&quot;},r=n.getTextureManager().getTexture(e).createView(&quot;tfunTexture&quot;);t.textureViews[2]=r}{const e={nativeArray:a,width:t.rowLength,height:2*t.numRows,depth:1,format:&quot;r16float&quot;},r=n.getTextureManager().getTexture(e).createView(&quot;ofunTexture&quot;);t.textureViews[3]=r}t.lutBuildTime.modified()},e.updateSSBO=n=&gt;{let r=Math.max(e.getMTime(),t.WebGPURenderer.getStabilizedTime());for(let e=0;e&lt;t.volumes.length;e++){const n=t.volumes[e].getRenderable(),o=n.getMapper(),a=o.getInputData();r=Math.max(r,n.getMTime(),a.getMTime(),o.getMTime(),o.getClippingPlanesMTime())}if(r&lt;t.SSBO.getSendTime())return;const o=t.WebGPURenderer.getStabilizedCenterByReference();t.SSBO.clearData(),t.SSBO.setNumberOfInstances(t.volumes.length);const a=new Float64Array(16*t.volumes.length),i=new Float64Array(16*t.volumes.length),s=Array.from({length:6},(()=&gt;new Float64Array(4*t.volumes.length))),l=new Float64Array(4*t.volumes.length),c=new Float64Array(4*t.volumes.length),u=new Float64Array(4*t.volumes.length),d=new Float64Array(4*t.volumes.length),p=new Float64Array(4*t.volumes.length);for(let e=0;e&lt;t.volumes.length;e++){const n=t.volumes[e].getRenderable(),r=n.getMapper(),f=r.getInputData();x(Lx),C(Lx,Lx,o);const g=n.getMatrix();y(Bx,g),b(Bx,Bx),A(Lx,Bx,Lx);const m=f.getWorldToIndex();A(Lx,m,Lx);const h=f.getDimensions();x(Bx),S(Bx,Bx,[1/h[0],1/h[1],1/h[2]]),A(Lx,Bx,Lx);for(let t=0;t&lt;16;t++)a[16*e+t]=Lx[t];b(Lx,Lx);for(let t=0;t&lt;4;t++)i[16*e+4*t]=Lx[4*t],i[16*e+4*t+1]=Lx[4*t+1],i[16*e+4*t+2]=Lx[4*t+2],i[16*e+4*t+3]=0;c[4*e]=1/h[0],c[4*e+1]=1/h[1],c[4*e+2]=1/h[2],c[4*e+3]=1,u[4*e]=n.getProperty().getShade()?1:0;const v=f.getSpacing();d[4*e]=v[0],d[4*e+1]=v[1],d[4*e+2]=v[2],d[4*e+3]=1;const T=t.textureViews[e+4].getTexture().getScale(),P=n.getProperty().getIpScalarRange();p[4*e]=P[0]/T,p[4*e+1]=P[1]/T,p[4*e+2]=n.getProperty().getFilterMode(),R(Bx,[-o[0],-o[1],-o[2]]);const w=Ex(r,Bx,t.clipPlanes);l[4*e]=w;for(let n=0;n&lt;w;n++){const r=4*e;s[n][r]=t.clipPlanes[n][0],s[n][r+1]=t.clipPlanes[n][1],s[n][r+2]=t.clipPlanes[n][2],s[n][r+3]=t.clipPlanes[n][3]}}t.SSBO.addEntry(&quot;SCTCMatrix&quot;,&quot;mat4x4&lt;f32&gt;&quot;),t.SSBO.addEntry(&quot;planeNormals&quot;,&quot;mat4x4&lt;f32&gt;&quot;),t.SSBO.addEntry(&quot;shade&quot;,&quot;vec4&lt;f32&gt;&quot;),t.SSBO.addEntry(&quot;tstep&quot;,&quot;vec4&lt;f32&gt;&quot;),t.SSBO.addEntry(&quot;spacing&quot;,&quot;vec4&lt;f32&gt;&quot;),t.SSBO.addEntry(&quot;ipScalarRange&quot;,&quot;vec4&lt;f32&gt;&quot;),function(e,t){for(let n=0;n&lt;6;n++)e.addEntry(`${t}${n}`,&quot;vec4&lt;f32&gt;&quot;)}(t.SSBO,&quot;clipPlane&quot;),t.SSBO.addEntry(&quot;clipPlaneStates&quot;,&quot;vec4&lt;f32&gt;&quot;),t.SSBO.setAllInstancesFromArray(&quot;SCTCMatrix&quot;,a),t.SSBO.setAllInstancesFromArray(&quot;planeNormals&quot;,i),t.SSBO.setAllInstancesFromArray(&quot;shade&quot;,u),t.SSBO.setAllInstancesFromArray(&quot;tstep&quot;,c),t.SSBO.setAllInstancesFromArray(&quot;spacing&quot;,d),t.SSBO.setAllInstancesFromArray(&quot;ipScalarRange&quot;,p);for(let e=0;e&lt;6;e++)t.SSBO.setAllInstancesFromArray(`clipPlane${e}`,s[e]);t.SSBO.setAllInstancesFromArray(&quot;clipPlaneStates&quot;,l),t.SSBO.send(n),t.componentSSBO.clearData(),t.componentSSBO.setNumberOfInstances(t.numRows);const f=new Float64Array(t.numRows),g=new Float64Array(t.numRows),m=new Float64Array(t.numRows),h=new Float64Array(t.numRows),v=new Float64Array(t.numRows),T=new Float64Array(t.numRows),P=new Float64Array(t.numRows),w=new Float64Array(t.numRows);let I=0;for(let e=0;e&lt;t.volumes.length;e++){const n=t.volumes[e].getRenderable(),r=n.getMapper(),o=n.getProperty(),a=r.getInputData(),i=(a.getPointData()&amp;&amp;a.getPointData().getScalars()).getNumberOfComponents(),s=o.getIndependentComponents(),l=t.textureViews[e+4].getTexture().getFormat(),c=gT.getDetailsFromTextureFormat(l),u={scale:[255],offset:[0]};2===c.elementSize&amp;&amp;&quot;float&quot;===c.sampleType&amp;&amp;(u.scale[0]=1);for(let e=0;e&lt;i;e++){const t=s?e:0,n=u.scale[e],r=o.getScalarOpacity(t).getRange(),a=n/(r[1]-r[0]),i=(u.offset[e]-r[0])/(r[1]-r[0]);h[I]=i,m[I]=a;const l=o.getRGBTransferFunction(t).getRange();if(g[I]=(u.offset[e]-l[0])/(l[1]-l[0]),f[I]=n/(l[1]-l[0]),o.getUseGradientOpacity(t)){const e=o.getGradientOpacityMinimumOpacity(t),r=o.getGradientOpacityMaximumOpacity(t);v[I]=e,T[I]=r;const a=[o.getGradientOpacityMinimumValue(t),o.getGradientOpacityMaximumValue(t)];w[I]=n*(r-e)/(a[1]-a[0]),P[I]=-a[0]*(r-e)/(a[1]-a[0])+e}else v[I]=1,T[I]=1,w[I]=0,P[I]=1;I++}}t.componentSSBO.addEntry(&quot;cScale&quot;,&quot;f32&quot;),t.componentSSBO.addEntry(&quot;cShift&quot;,&quot;f32&quot;),t.componentSSBO.addEntry(&quot;oScale&quot;,&quot;f32&quot;),t.componentSSBO.addEntry(&quot;oShift&quot;,&quot;f32&quot;),t.componentSSBO.addEntry(&quot;goShift&quot;,&quot;f32&quot;),t.componentSSBO.addEntry(&quot;goScale&quot;,&quot;f32&quot;),t.componentSSBO.addEntry(&quot;gomin&quot;,&quot;f32&quot;),t.componentSSBO.addEntry(&quot;gomax&quot;,&quot;f32&quot;),t.componentSSBO.setAllInstancesFromArray(&quot;cScale&quot;,f),t.componentSSBO.setAllInstancesFromArray(&quot;cShift&quot;,g),t.componentSSBO.setAllInstancesFromArray(&quot;oScale&quot;,m),t.componentSSBO.setAllInstancesFromArray(&quot;oShift&quot;,h),t.componentSSBO.setAllInstancesFromArray(&quot;goScale&quot;,w),t.componentSSBO.setAllInstancesFromArray(&quot;goShift&quot;,P),t.componentSSBO.setAllInstancesFromArray(&quot;gomin&quot;,v),t.componentSSBO.setAllInstancesFromArray(&quot;gomax&quot;,T),t.componentSSBO.send(n)};const n=e.updateBuffers;e.updateBuffers=()=&gt;{n();let r=t.volumes[0].getRenderable().getMapper().getSampleDistance();for(let e=0;e&lt;t.volumes.length;e++){const n=t.volumes[e].getRenderable().getMapper().getSampleDistance();n&lt;r&amp;&amp;(r=n)}t.sampleDist!==r&amp;&amp;(t.sampleDist=r,t.UBO.setValue(&quot;SampleDistance&quot;,r),t.UBO.sendIfNeeded(t.device));for(let e=0;e&lt;t.volumes.length;e++){const n=t.volumes[e].getRenderable().getMapper().getInputData(),r=t.device.getTextureManager().getTextureForImageData(n);if(!t.textureViews[e+4]||t.textureViews[e+4].getTexture()!==r){const n=r.createView(`volTexture${e}`);t.textureViews[e+4]=n}}if(t.volumes.length&lt;t.lastVolumeLength)for(let e=t.volumes.length;e&lt;t.lastVolumeLength;e++)t.textureViews.pop();t.lastVolumeLength=t.volumes.length,e.updateLUTImage(t.device),e.updateSSBO(t.device),t.clampSampler||(t.clampSampler=DT.newInstance({label:&quot;clampSampler&quot;}),t.clampSampler.create(t.device,{minFilter:&quot;linear&quot;,magFilter:&quot;linear&quot;}))},e.computePipelineHash=()=&gt;{t.pipelineHash=&quot;volfsq&quot;;for(let e=0;e&lt;t.volumes.length;e++){const n=t.volumes[e].getRenderable().getMapper().getBlendMode();t.pipelineHash+=`${n}`}},e.setVolumes=n=&gt;{if(!t.volumes||t.volumes.length!==n.length)return t.volumes=[...n],void e.modified();for(let r=0;r&lt;n.length;r++)if(n[r]!==t.volumes[r])return t.volumes=[...n],void e.modified()};const r=e.getBindables;e.getBindables=()=&gt;{const e=r();return e.push(t.componentSSBO),e.push(t.clampSampler),e}}(e,t)}var kx={newInstance:sn.newInstance(Nx,&quot;vtkWebGPUVolumePassFSQ&quot;),extend:Nx};const{Representation:Gx}=us,{BufferUsage:Ux,PrimitiveTypes:_x}=bx,Kx=[[0,4,6],[0,6,2],[1,3,7],[1,7,5],[0,5,4],[0,1,5],[2,6,7],[2,7,3],[0,3,1],[0,2,3],[4,5,7],[4,7,6]];const zx={colorTextureView:null,depthTextureView:null,volumes:null};function Wx(e,t,n={}){Object.assign(t,zx,n),vv.extend(e,t,n),t._mapper=bT.newInstance(),t._mapper.setFragmentShaderTemplate(&quot;\\n//VTK::Renderer::Dec\\n\\n//VTK::Select::Dec\\n\\n//VTK::VolumePass::Dec\\n\\n//VTK::TCoord::Dec\\n\\n//VTK::RenderEncoder::Dec\\n\\n//VTK::Mapper::Dec\\n\\n//VTK::IOStructs::Dec\\n\\n@fragment\\nfn main(\\n//VTK::IOStructs::Input\\n)\\n//VTK::IOStructs::Output\\n{\\n  var output : fragmentOutput;\\n\\n  //VTK::Select::Impl\\n\\n  //VTK::TCoord::Impl\\n\\n  //VTK::VolumePass::Impl\\n\\n  // use the maximum (closest) of the current value and the zbuffer\\n  // the blend func will then take the min to find the farthest stop value\\n  var stopval: f32 = max(input.fragPos.z, textureLoad(opaquePassDepthTexture, vec2&lt;i32&gt;(i32(input.fragPos.x), i32(input.fragPos.y)), 0));\\n\\n  //VTK::RenderEncoder::Impl\\n  return output;\\n}\\n&quot;),t._mapper.getShaderReplacements().set(&quot;replaceShaderVolumePass&quot;,((e,t,n)=&gt;{t.getShaderDescription(&quot;fragment&quot;).addBuiltinInput(&quot;vec4&lt;f32&gt;&quot;,&quot;@builtin(position) fragPos&quot;)})),t._boundsPoly=Ru.newInstance(),t._lastMTimes=[],sn.setGet(e,t,[&quot;colorTextureView&quot;,&quot;depthTextureView&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUVolumePass&quot;),e.initialize=n=&gt;{t._clearEncoder||e.createClearEncoder(n),t._mergeEncoder||e.createMergeEncoder(n),t._copyEncoder||e.createCopyEncoder(n),t._depthRangeEncoder||e.createDepthRangeEncoder(n),t.fullScreenQuad||(t.fullScreenQuad=kx.newInstance(),t.fullScreenQuad.setDevice(n.getDevice()),t.fullScreenQuad.setTextureViews([...t._depthRangeEncoder.getColorTextureViews()])),t._volumeCopyQuad||(t._volumeCopyQuad=ST.newInstance(),t._volumeCopyQuad.setPipelineHash(&quot;volpassfsq&quot;),t._volumeCopyQuad.setDevice(n.getDevice()),t._volumeCopyQuad.setFragmentShaderTemplate(&quot;\\n//VTK::Renderer::Dec\\n\\n//VTK::Mapper::Dec\\n\\n//VTK::TCoord::Dec\\n\\n//VTK::RenderEncoder::Dec\\n\\n//VTK::IOStructs::Dec\\n\\n@fragment\\nfn main(\\n//VTK::IOStructs::Input\\n)\\n//VTK::IOStructs::Output\\n{\\n  var output: fragmentOutput;\\n\\n  var computedColor: vec4&lt;f32&gt; = textureSample(volumePassColorTexture,\\n    volumePassColorTextureSampler, mapperUBO.tscale*input.tcoordVS);\\n\\n  //VTK::RenderEncoder::Impl\\n  return output;\\n}\\n&quot;),t._copyUBO=wx.newInstance({label:&quot;mapperUBO&quot;}),t._copyUBO.addEntry(&quot;tscale&quot;,&quot;vec2&lt;f32&gt;&quot;),t._volumeCopyQuad.setUBO(t._copyUBO),t._volumeCopyQuad.setTextureViews([t._colorTextureView]))},e.traverse=(n,r)=&gt;{if(t.deleted)return;t._currentParent=r,e.initialize(r),e.computeTiming(r),e.renderDepthBounds(n,r),t._firstGroup=!0;const o=r.getDevice(),a=o.getHandle().limits.maxSampledTexturesPerShaderStage-4;if(t.volumes.length&gt;a){const o=n.getRenderable().getActiveCamera().getPosition(),i=[];for(let e=0;e&lt;t.volumes.length;e++){const n=t.volumes[e].getRenderable().getBounds(),r=[.5*(n[1]+n[0]),.5*(n[3]+n[2]),.5*(n[5]+n[4])];i[e]=Yo(r,o)}const s=[...Array(t.volumes.length).keys()];s.sort(((e,t)=&gt;i[t]-i[e]));let l=[],c=s.length%a;for(let o=0;o&lt;s.length;o++)l.push(t.volumes[s[o]]),l.length&gt;=c&amp;&amp;(e.rayCastPass(r,n,l),l=[],c=a,t._firstGroup=!1)}else e.rayCastPass(r,n,t.volumes);if(t._volumeCopyQuad.setWebGPURenderer(n),t._useSmallViewport){const e=t._colorTextureView.getTexture().getWidth(),n=t._colorTextureView.getTexture().getHeight();t._copyUBO.setArray(&quot;tscale&quot;,[t._smallViewportWidth/e,t._smallViewportHeight/n])}else t._copyUBO.setArray(&quot;tscale&quot;,[1,1]);t._copyUBO.sendIfNeeded(o),t._copyEncoder.setColorTextureView(0,t.colorTextureView),t._copyEncoder.attachTextureViews(),t._copyEncoder.begin(r.getCommandEncoder()),n.scissorAndViewport(t._copyEncoder),t._volumeCopyQuad.prepareAndDraw(t._copyEncoder),t._copyEncoder.end()},e.delete=sn.chain((()=&gt;{t._animationRateSubscription&amp;&amp;(t._animationRateSubscription.unsubscribe(),t._animationRateSubscription=null)}),e.delete),e.computeTiming=e=&gt;{const n=e.getRenderable().getInteractor();if(null==t._lastScale){const e=t.volumes[0].getRenderable().getMapper();t._lastScale=e.getInitialInteractionScale()||1}t._useSmallViewport=!1,n.isAnimating()&amp;&amp;t._lastScale&gt;1.5&amp;&amp;(t._useSmallViewport=!0),t._colorTexture.resize(e.getCanvas().width,e.getCanvas().height),t._animationRateSubscription||(t._animationRateSubscription=n.onAnimationFrameRateUpdate((()=&gt;{const e=t.volumes[0].getRenderable().getMapper();if(e.getAutoAdjustSampleDistances()){const e=n.getRecentAnimationFrameRate(),r=t._lastScale*n.getDesiredUpdateRate()/e;t._lastScale=r,t._lastScale&gt;400&amp;&amp;(t._lastScale=400)}else t._lastScale=e.getImageSampleDistance()*e.getImageSampleDistance();t._lastScale&lt;1.5&amp;&amp;(t._lastScale=1.5)})))},e.rayCastPass=(e,n,r)=&gt;{const o=t._firstGroup?t._clearEncoder:t._mergeEncoder;o.attachTextureViews(),o.begin(e.getCommandEncoder());let a=t._colorTextureView.getTexture().getWidth(),i=t._colorTextureView.getTexture().getHeight();if(t._useSmallViewport){const n=e.getCanvas(),r=1/Math.sqrt(t._lastScale);t._smallViewportWidth=Math.ceil(r*n.width),t._smallViewportHeight=Math.ceil(r*n.height),a=t._smallViewportWidth,i=t._smallViewportHeight}o.getHandle().setViewport(0,0,a,i,0,1),o.getHandle().setScissorRect(0,0,a,i),t.fullScreenQuad.setWebGPURenderer(n),t.fullScreenQuad.setVolumes(r),t.fullScreenQuad.prepareAndDraw(o),o.end()},e.renderDepthBounds=(n,r)=&gt;{e.updateDepthPolyData(n);const o=t._boundsPoly,a=o.getPoints(),i=o.getPolys();let s={hash:`vp${i.getMTime()}`,usage:Ux.Index,cells:i,numberOfPoints:a.getNumberOfPoints(),primitiveType:_x.Triangles,representation:Gx.SURFACE};const l=r.getDevice().getBufferManager().getBuffer(s);t._mapper.getVertexInput().setIndexBuffer(l),s={usage:Ux.PointArray,format:&quot;float32x4&quot;,hash:`vp${a.getMTime()}${i.getMTime()}`,dataArray:a,indexBuffer:l,packExtra:!0};const c=r.getDevice().getBufferManager().getBuffer(s);t._mapper.getVertexInput().addBuffer(c,[&quot;vertexBC&quot;]),t._mapper.setNumberOfVertices(c.getSizeInBytes()/c.getStrideInBytes()),e.drawDepthRange(n,r)},e.updateDepthPolyData=e=&gt;{let n=!1;for(let e=0;e&lt;t.volumes.length;e++){const r=t.volumes[e].getMTime();t._lastMTimes[e]&amp;&amp;r===t._lastMTimes[e]||(n=!0,t._lastMTimes[e]=r)}const r=e.getStabilizedTime();if((t._lastMTimes.length&lt;=t.volumes.length||r!==t._lastMTimes[t.volumes.length])&amp;&amp;(n=!0,t._lastMTimes[t.volumes.length]=r),!n)return;const o=e.getStabilizedCenterByReference(),a=8*t.volumes.length,i=new Float64Array(3*a),s=12*t.volumes.length,l=new Uint16Array(4*s);for(let e=0;e&lt;t.volumes.length;e++){t.volumes[e].getBoundingCubePoints(i,24*e);let n=12*e*4;const r=8*e;for(let e=0;e&lt;12;e++)l[n++]=3,l[n++]=r+Kx[e][0],l[n++]=r+Kx[e][1],l[n++]=r+Kx[e][2]}for(let e=0;e&lt;i.length;e+=3)i[e]-=o[0],i[e+1]-=o[1],i[e+2]-=o[2];t._boundsPoly.getPoints().setData(i,3),t._boundsPoly.getPoints().modified(),t._boundsPoly.getPolys().setData(l,1),t._boundsPoly.getPolys().modified(),t._boundsPoly.modified()},e.drawDepthRange=(n,r)=&gt;{t._depthRangeTexture.resizeToMatch(t.colorTextureView.getTexture()),t._depthRangeTexture2.resizeToMatch(t.colorTextureView.getTexture()),t._depthRangeEncoder.attachTextureViews(),e.setCurrentOperation(&quot;volumeDepthRangePass&quot;),n.setRenderEncoder(t._depthRangeEncoder),n.volumeDepthRangePass(!0),t._mapper.setWebGPURenderer(n),t._mapper.prepareToDraw(t._depthRangeEncoder),t._mapper.registerDrawCallback(t._depthRangeEncoder),n.volumeDepthRangePass(!1)},e.createDepthRangeEncoder=e=&gt;{const n=e.getDevice();t._depthRangeEncoder=OT.newInstance({label:&quot;VolumePass DepthRange&quot;}),t._depthRangeEncoder.setPipelineHash(&quot;volr&quot;),t._depthRangeEncoder.setReplaceShaderCodeFunction((e=&gt;{const t=e.getShaderDescription(&quot;fragment&quot;);t.addOutput(&quot;vec4&lt;f32&gt;&quot;,&quot;outColor1&quot;),t.addOutput(&quot;vec4&lt;f32&gt;&quot;,&quot;outColor2&quot;);let n=t.getCode();n=rT.substitute(n,&quot;//VTK::RenderEncoder::Impl&quot;,[&quot;output.outColor1 = vec4&lt;f32&gt;(input.fragPos.z, 0.0, 0.0, 0.0);&quot;,&quot;output.outColor2 = vec4&lt;f32&gt;(stopval, 0.0, 0.0, 0.0);&quot;]).result,t.setCode(n)})),t._depthRangeEncoder.setDescription({colorAttachments:[{view:null,clearValue:[0,0,0,0],loadOp:&quot;clear&quot;,storeOp:&quot;store&quot;},{view:null,clearValue:[1,1,1,1],loadOp:&quot;clear&quot;,storeOp:&quot;store&quot;}]}),t._depthRangeEncoder.setPipelineSettings({primitive:{cullMode:&quot;none&quot;},fragment:{targets:[{format:&quot;r16float&quot;,blend:{color:{srcFactor:&quot;one&quot;,dstFactor:&quot;one&quot;,operation:&quot;max&quot;},alpha:{srcFactor:&quot;one&quot;,dstFactor:&quot;one&quot;,operation:&quot;max&quot;}}},{format:&quot;r16float&quot;,blend:{color:{srcFactor:&quot;one&quot;,dstFactor:&quot;one&quot;,operation:&quot;min&quot;},alpha:{srcFactor:&quot;one&quot;,dstFactor:&quot;one&quot;,operation:&quot;min&quot;}}}]}}),t._depthRangeTexture=GT.newInstance({label:&quot;volumePassMaxDepth&quot;}),t._depthRangeTexture.create(n,{width:e.getCanvas().width,height:e.getCanvas().height,format:&quot;r16float&quot;,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING});const r=t._depthRangeTexture.createView(&quot;maxTexture&quot;);t._depthRangeEncoder.setColorTextureView(0,r),t._depthRangeTexture2=GT.newInstance({label:&quot;volumePassDepthMin&quot;}),t._depthRangeTexture2.create(n,{width:e.getCanvas().width,height:e.getCanvas().height,format:&quot;r16float&quot;,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING});const o=t._depthRangeTexture2.createView(&quot;minTexture&quot;);t._depthRangeEncoder.setColorTextureView(1,o),t._mapper.setDevice(e.getDevice()),t._mapper.setTextureViews([t.depthTextureView])},e.createClearEncoder=e=&gt;{t._colorTexture=GT.newInstance({label:&quot;volumePassColor&quot;}),t._colorTexture.create(e.getDevice(),{width:e.getCanvas().width,height:e.getCanvas().height,format:&quot;bgra8unorm&quot;,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC}),t._colorTextureView=t._colorTexture.createView(&quot;volumePassColorTexture&quot;),t._colorTextureView.addSampler(e.getDevice(),{minFilter:&quot;linear&quot;,magFilter:&quot;linear&quot;}),t._clearEncoder=OT.newInstance({label:&quot;VolumePass Clear&quot;}),t._clearEncoder.setColorTextureView(0,t._colorTextureView),t._clearEncoder.setDescription({colorAttachments:[{view:null,clearValue:[0,0,0,0],loadOp:&quot;clear&quot;,storeOp:&quot;store&quot;}]}),t._clearEncoder.setPipelineHash(&quot;volpf&quot;),t._clearEncoder.setPipelineSettings({primitive:{cullMode:&quot;none&quot;},fragment:{targets:[{format:&quot;bgra8unorm&quot;,blend:{color:{srcFactor:&quot;src-alpha&quot;,dstFactor:&quot;one-minus-src-alpha&quot;},alpha:{srcFactor:&quot;one&quot;,dstFactor:&quot;one-minus-src-alpha&quot;}}}]}})},e.createCopyEncoder=e=&gt;{t._copyEncoder=OT.newInstance({label:&quot;volumePassCopy&quot;}),t._copyEncoder.setDescription({colorAttachments:[{view:null,loadOp:&quot;load&quot;,storeOp:&quot;store&quot;}]}),t._copyEncoder.setPipelineHash(&quot;volcopypf&quot;),t._copyEncoder.setPipelineSettings({primitive:{cullMode:&quot;none&quot;},fragment:{targets:[{format:&quot;rgba16float&quot;,blend:{color:{srcFactor:&quot;one&quot;,dstFactor:&quot;one-minus-src-alpha&quot;},alpha:{srcFactor:&quot;one&quot;,dstFactor:&quot;one-minus-src-alpha&quot;}}}]}})},e.createMergeEncoder=e=&gt;{t._mergeEncoder=OT.newInstance({label:&quot;volumePassMerge&quot;}),t._mergeEncoder.setColorTextureView(0,t._colorTextureView),t._mergeEncoder.setDescription({colorAttachments:[{view:null,loadOp:&quot;load&quot;,storeOp:&quot;store&quot;}]}),t._mergeEncoder.setReplaceShaderCodeFunction((e=&gt;{const t=e.getShaderDescription(&quot;fragment&quot;);t.addOutput(&quot;vec4&lt;f32&gt;&quot;,&quot;outColor&quot;);let n=t.getCode();n=rT.substitute(n,&quot;//VTK::RenderEncoder::Impl&quot;,[&quot;output.outColor = vec4&lt;f32&gt;(computedColor.rgb, computedColor.a);&quot;]).result,t.setCode(n)})),t._mergeEncoder.setPipelineHash(&quot;volpf&quot;),t._mergeEncoder.setPipelineSettings({primitive:{cullMode:&quot;none&quot;},fragment:{targets:[{format:&quot;bgra8unorm&quot;,blend:{color:{srcFactor:&quot;src-alpha&quot;,dstFactor:&quot;one-minus-src-alpha&quot;},alpha:{srcFactor:&quot;one&quot;,dstFactor:&quot;one-minus-src-alpha&quot;}}}]}})},e.setVolumes=n=&gt;{if(!t.volumes||t.volumes.length!==n.length)return t.volumes=[...n],void e.modified();for(let r=0;r&lt;n.length;r++)if(n[r]!==t.volumes[r])return t.volumes=[...n],void e.modified()}}(e,t)}var Hx={newInstance:sn.newInstance(Wx,&quot;vtkWebGPUVolumePass&quot;),extend:Wx};const jx={opaqueActorCount:0,translucentActorCount:0,volumes:null,opaqueRenderEncoder:null,translucentPass:null,volumePass:null};function Xx(e,t,n={}){Object.assign(t,jx,n),vv.extend(e,t,n),sn.setGet(e,t,[&quot;opaquePass&quot;,&quot;translucentPass&quot;,&quot;volumePass&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkForwardPass&quot;),e.traverse=(n,r=null)=&gt;{if(t.deleted)return;t._currentParent=r,e.setCurrentOperation(&quot;buildPass&quot;),n.traverse(e),t.opaquePass||(t.opaquePass=KT.newInstance());const o=n.getRenderable().getNumberOfLayers(),a=n.getChildren();for(let r=0;r&lt;o;r++)for(let o=0;o&lt;a.length;o++){const i=a[o],s=n.getRenderable().getRenderers()[o];s.getDraw()&amp;&amp;s.getLayer()===r&amp;&amp;(t.opaqueActorCount=0,t.translucentActorCount=0,t.volumes=[],e.setCurrentOperation(&quot;queryPass&quot;),i.traverse(e),e.setCurrentOperation(&quot;cameraPass&quot;),i.traverse(e),t.opaquePass.traverse(i,n),t.translucentActorCount&gt;0&amp;&amp;(t.translucentPass||(t.translucentPass=HT.newInstance()),t.translucentPass.setColorTextureView(t.opaquePass.getColorTextureView()),t.translucentPass.setDepthTextureView(t.opaquePass.getDepthTextureView()),t.translucentPass.traverse(i,n)),t.volumes.length&gt;0&amp;&amp;(t.volumePass||(t.volumePass=Hx.newInstance()),t.volumePass.setColorTextureView(t.opaquePass.getColorTextureView()),t.volumePass.setDepthTextureView(t.opaquePass.getDepthTextureView()),t.volumePass.setVolumes(t.volumes),t.volumePass.traverse(i,n)),e.finalPass(n,i))}},e.finalPass=(n,r)=&gt;{t._finalBlitEncoder||e.createFinalBlitEncoder(n),t._finalBlitOutputTextureView.createFromTextureHandle(n.getCurrentTexture(),{depth:1,format:n.getPresentationFormat()}),t._finalBlitEncoder.attachTextureViews(),t._finalBlitEncoder.begin(n.getCommandEncoder()),r.scissorAndViewport(t._finalBlitEncoder),t._fullScreenQuad.prepareAndDraw(t._finalBlitEncoder),t._finalBlitEncoder.end()},e.createFinalBlitEncoder=e=&gt;{t._finalBlitEncoder=OT.newInstance({label:&quot;forwardPassBlit&quot;}),t._finalBlitEncoder.setDescription({colorAttachments:[{view:null,loadOp:&quot;load&quot;,storeOp:&quot;store&quot;}]}),t._finalBlitEncoder.setPipelineHash(&quot;fpf&quot;),t._finalBlitEncoder.setPipelineSettings({primitive:{cullMode:&quot;none&quot;},fragment:{targets:[{format:e.getPresentationFormat(),blend:{color:{srcFactor:&quot;src-alpha&quot;,dstFactor:&quot;one-minus-src-alpha&quot;},alpha:{srcFactor:&quot;one&quot;,dstFactor:&quot;one-minus-src-alpha&quot;}}}]}}),t._fsqSampler=DT.newInstance({label:&quot;finalPassSampler&quot;}),t._fsqSampler.create(e.getDevice(),{minFilter:&quot;linear&quot;,magFilter:&quot;linear&quot;}),t._fullScreenQuad=ST.newInstance(),t._fullScreenQuad.setDevice(e.getDevice()),t._fullScreenQuad.setPipelineHash(&quot;fpfsq&quot;),t._fullScreenQuad.setTextureViews([t.opaquePass.getColorTextureView()]),t._fullScreenQuad.setAdditionalBindables([t._fsqSampler]),t._fullScreenQuad.setFragmentShaderTemplate(&quot;\\n//VTK::Mapper::Dec\\n\\n//VTK::TCoord::Dec\\n\\n//VTK::RenderEncoder::Dec\\n\\n//VTK::IOStructs::Dec\\n\\n@fragment\\nfn main(\\n//VTK::IOStructs::Input\\n)\\n//VTK::IOStructs::Output\\n{\\n  var output: fragmentOutput;\\n\\n  var computedColor: vec4&lt;f32&gt; = clamp(textureSampleLevel(opaquePassColorTexture, finalPassSampler, input.tcoordVS, 0.0),vec4&lt;f32&gt;(0.0),vec4&lt;f32&gt;(1.0));\\n\\n  //VTK::RenderEncoder::Impl\\n  return output;\\n}\\n&quot;),t._finalBlitOutputTextureView=LT.newInstance(),t._finalBlitEncoder.setColorTextureView(0,t._finalBlitOutputTextureView)},e.incrementOpaqueActorCount=()=&gt;t.opaqueActorCount++,e.incrementTranslucentActorCount=()=&gt;t.translucentActorCount++,e.addVolume=e=&gt;{t.volumes.push(e)}}(e,t)}var qx={newInstance:sn.newInstance(Xx,&quot;vtkForwardPass&quot;),extend:Xx};const{VtkDataTypes:Yx}=Is;const Jx={handle:null,device:null};function Zx(e,t,n={}){Object.assign(t,Jx,n),sn.obj(e,t),sn.setGet(e,t,[&quot;device&quot;]),function(e,t){function n(e){if(e.imageData){e.dataArray=e.imageData.getPointData().getScalars(),e.time=e.dataArray.getMTime(),e.nativeArray=e.dataArray.getData();const t=e.imageData.getDimensions();switch(e.width=t[0],e.height=t[1],e.depth=t[2],e.dataArray.getNumberOfComponents()){case 1:e.format=&quot;r&quot;;break;case 2:e.format=&quot;rg&quot;;break;default:e.format=&quot;rgba&quot;}switch(e.dataArray.getDataType()){case Yx.UNSIGNED_CHAR:e.format+=&quot;8unorm&quot;;break;case Yx.FLOAT:case Yx.UNSIGNED_INT:case Yx.INT:case Yx.DOUBLE:case Yx.UNSIGNED_SHORT:case Yx.SHORT:default:e.format+=&quot;16float&quot;}}e.image&amp;&amp;(e.width=e.image.width,e.height=e.image.height,e.depth=1,e.format=&quot;rgba8unorm&quot;,e.flip=!0,e.usage=GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.RENDER_ATTACHMENT),e.jsImageData&amp;&amp;(e.width=e.jsImageData.width,e.height=e.jsImageData.height,e.depth=1,e.format=&quot;rgba8unorm&quot;,e.flip=!0,e.nativeArray=e.jsImageData.data,e.usage=GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.RENDER_ATTACHMENT),e.imageBitmap&amp;&amp;(e.width=e.imageBitmap.width,e.height=e.imageBitmap.height,e.depth=1,e.format=&quot;rgba8unorm&quot;,e.flip=!0,e.usage=GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.RENDER_ATTACHMENT),e.canvas&amp;&amp;(e.width=e.canvas.width,e.height=e.canvas.height,e.depth=1,e.format=&quot;rgba8unorm&quot;,e.flip=!0,e.usage=GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.RENDER_ATTACHMENT)}function r(e){const n=GT.newInstance({label:e.label});return n.create(t.device,{width:e.width,height:e.height,depth:e.depth,format:e.format,usage:e.usage,mipLevel:e.mipLevel}),(e.nativeArray||e.image||e.canvas||e.imageBitmap)&amp;&amp;n.writeImageData(e),n}t.classHierarchy.push(&quot;vtkWebGPUTextureManager&quot;),e.getTexture=e=&gt;e.hash?t.device.getCachedObject(e.hash,r,e):r(e),e.getTextureForImageData=e=&gt;{const r={time:e.getMTime()};return r.imageData=e,n(r),r.hash=r.time+r.format+r.mipLevel,t.device.getTextureManager().getTexture(r)},e.getTextureForVTKTexture=(e,r=void 0)=&gt;{const o={time:e.getMTime(),label:r};return e.getInputData()?o.imageData=e.getInputData():e.getImage()?o.image=e.getImage():e.getJsImageData()?o.jsImageData=e.getJsImageData():e.getImageBitmap()?o.imageBitmap=e.getImageBitmap():e.getCanvas()&amp;&amp;(o.canvas=e.getCanvas()),n(o),o.mipLevel=e.getMipLevel(),o.hash=o.time+o.format+o.mipLevel,t.device.getTextureManager().getTexture(o)}}(e,t)}var Qx={newInstance:sn.newInstance(Zx),extend:Zx};class $x extends Map{constructor(){super(),this.registry=new FinalizationRegistry((e=&gt;{const t=super.get(e);t&amp;&amp;t.deref&amp;&amp;void 0===t.deref()&amp;&amp;super.delete(e)}))}getValue(e){const t=super.get(e);if(t){const n=t.deref();if(void 0!==n)return n;super.delete(e)}}setValue(e,t){let n;return t&amp;&amp;&quot;object&quot;==typeof t&amp;&amp;(n=new WeakRef(t),this.registry.register(t,e),super.set(e,n)),n}}const ey={handle:null,pipelines:null,shaderCache:null,bindGroupLayouts:null,bufferManager:null,textureManager:null};function ty(e,t,n={}){Object.assign(t,ey,n),Vt(e,t),Gt(e,t,[&quot;handle&quot;]),Bt(e,t,[&quot;bufferManager&quot;,&quot;shaderCache&quot;,&quot;textureManager&quot;]),t.objectCache=new $x,t.shaderCache=rT.newInstance(),t.shaderCache.setDevice(e),t.bindGroupLayouts=[],t.bufferManager=bx.newInstance(),t.bufferManager.setDevice(e),t.textureManager=Qx.newInstance(),t.textureManager.setDevice(e),t.pipelines={},function(e,t){t.classHierarchy.push(&quot;vtkWebGPUDevice&quot;),e.initialize=e=&gt;{t.handle=e},e.createCommandEncoder=()=&gt;t.handle.createCommandEncoder(),e.submitCommandEncoder=e=&gt;{t.handle.queue.submit([e.finish()])},e.getShaderModule=e=&gt;t.shaderCache.getShaderModule(e),e.getBindGroupLayout=e=&gt;{if(!e.entries)return null;for(let t=0;t&lt;e.entries.length;t++){const n=e.entries[t];n.binding=n.binding||0,n.visibility=n.visibility||GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT}const n=JSON.stringify(e);for(let e=0;e&lt;t.bindGroupLayouts.length;e++)if(t.bindGroupLayouts[e].sval===n)return t.bindGroupLayouts[e].layout;const r=t.handle.createBindGroupLayout(e);return t.bindGroupLayouts.push({sval:n,layout:r}),r},e.getBindGroupLayoutDescription=e=&gt;{for(let n=0;n&lt;t.bindGroupLayouts.length;n++)if(t.bindGroupLayouts[n].layout===e)return t.bindGroupLayouts[n].sval;return vtkErrorMacro(&quot;layout not found&quot;),console.trace(),null},e.getPipeline=e=&gt;e in t.pipelines?t.pipelines[e]:null,e.createPipeline=(n,r)=&gt;{r.initialize(e,n),t.pipelines[n]=r},e.onSubmittedWorkDone=()=&gt;t.handle.queue.onSubmittedWorkDone(),e.hasCachedObject=e=&gt;t.objectCache.getValue(e),e.getCachedObject=(e,n,...r)=&gt;{if(!e)return vtkErrorMacro(&quot;attempt to cache an object without a hash&quot;),null;const o=t.objectCache.getValue(e);if(o)return o;const a=n(...r);return t.objectCache.setValue(e,a),a}}(e,t)}var ny={newInstance:Xt(ty,&quot;vtkWebGPUDevice&quot;),extend:ty};const ry={selectionRenderEncoder:null,colorTexture:null,depthTexture:null};function oy(e,t,n={}){Object.assign(t,ry,n),vv.extend(e,t,n),sn.get(e,t,[&quot;colorTexture&quot;,&quot;depthTexture&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUHardwareSelectionPass&quot;),e.traverse=(n,r)=&gt;{if(t.deleted)return;t._currentParent=null,e.setCurrentOperation(&quot;buildPass&quot;),n.traverse(e);const o=n.getDevice();if(t.selectionRenderEncoder)t.colorTexture.resize(n.getCanvas().width,n.getCanvas().height),t.depthTexture.resizeToMatch(t.colorTexture);else{e.createRenderEncoder(),t.colorTexture=GT.newInstance({label:&quot;hardwareSelectorColor&quot;}),t.colorTexture.create(o,{width:n.getCanvas().width,height:n.getCanvas().height,format:&quot;rgba32uint&quot;,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_SRC});const r=t.colorTexture.createView(&quot;hardwareSelectColorTexture&quot;);t.selectionRenderEncoder.setColorTextureView(0,r),t.depthTexture=GT.newInstance({label:&quot;hardwareSelectorDepth&quot;}),t.depthTexture.create(o,{width:n.getCanvas().width,height:n.getCanvas().height,format:&quot;depth32float&quot;,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_SRC});const a=t.depthTexture.createView(&quot;hardwareSelectDepthTexture&quot;);t.selectionRenderEncoder.setDepthTextureView(a)}t.selectionRenderEncoder.attachTextureViews(),r.setRenderEncoder(t.selectionRenderEncoder),e.setCurrentOperation(&quot;cameraPass&quot;),r.traverse(e),e.setCurrentOperation(&quot;opaquePass&quot;),r.traverse(e)},e.createRenderEncoder=()=&gt;{t.selectionRenderEncoder=OT.newInstance({label:&quot;HardwareSelectionPass&quot;}),t.selectionRenderEncoder.setPipelineHash(&quot;sel&quot;),t.selectionRenderEncoder.setReplaceShaderCodeFunction((e=&gt;{const t=e.getShaderDescription(&quot;fragment&quot;);t.addOutput(&quot;vec4&lt;u32&gt;&quot;,&quot;outColor&quot;);let n=t.getCode();n=rT.substitute(n,&quot;//VTK::RenderEncoder::Impl&quot;,[&quot;output.outColor = vec4&lt;u32&gt;(mapperUBO.PropID, compositeID, 0u, 0u);&quot;]).result,t.setCode(n)})),t.selectionRenderEncoder.getDescription().colorAttachments[0].clearValue=[0,0,0,0],t.selectionRenderEncoder.setPipelineSettings({primitive:{cullMode:&quot;none&quot;},depthStencil:{depthWriteEnabled:!0,depthCompare:&quot;greater&quot;,format:&quot;depth32float&quot;},fragment:{targets:[{format:&quot;rgba32uint&quot;,blend:void 0}]}})}}(e,t)}var ay={newInstance:sn.newInstance(oy,&quot;vtkWebGPUHardwareSelectionPass&quot;),extend:oy};const{SelectionContent:iy,SelectionField:sy}=zp,{FieldAssociations:ly}=Qs,{vtkErrorMacro:cy}=sn;function uy(e){return`${e.propID} ${e.compositeID}`}function dy(e,t,n,r){const o=4*((n.height-t-1)*n.colorBufferWidth+e)+r;return n.colorValues[o]}function py(e,t,n,r){const o=n&lt;0?0:n;if(0===o){if(r[0]=t[0],r[1]=t[1],t[0]&lt;0||t[0]&gt;=e.width||t[1]&lt;0||t[1]&gt;=e.height)return null;const n=dy(t[0],t[1],e,0);if(n&lt;=0)return null;const o={};o.propID=n;let a=dy(t[0],t[1],e,1);if((a&lt;0||a&gt;16777215)&amp;&amp;(a=0),o.compositeID=a,e.captureZValues){const n=(e.height-t[1]-1)*e.zbufferBufferWidth+t[0];o.zValue=e.depthValues[n],o.zValue=e.webGPURenderer.convertToOpenGLDepth(o.zValue),o.displayPosition=t}return o}const a=[t[0],t[1]],i=[0,0];let s=py(e,t,0,r);if(s)return s;for(let t=1;t&lt;o;++t){for(let n=a[1]&gt;t?a[1]-t:0;n&lt;=a[1]+t;++n){if(i[1]=n,a[0]&gt;=t&amp;&amp;(i[0]=a[0]-t,s=py(e,i,0,r),s))return s;if(i[0]=a[0]+t,s=py(e,i,0,r),s)return s}for(let n=a[0]&gt;=t?a[0]-(t-1):0;n&lt;=a[0]+(t-1);++n){if(i[0]=n,a[1]&gt;=t&amp;&amp;(i[1]=a[1]-t,s=py(e,i,0,r),s))return s;if(i[1]=a[1]+t,s=py(e,i,0,r),s)return s}}return r[0]=t[0],r[1]=t[1],null}function fy(e,t,n,r,o){const a=Math.floor(t),i=Math.floor(n),s=Math.floor(r),l=Math.floor(o),c=new Map,u=[0,0];for(let t=i;t&lt;=l;t++)for(let n=a;n&lt;=s;n++){const r=py(e,[n,t],0,u);if(r){const t=uy(r);if(c.has(t)){const n=c.get(t);n.pixelCount++,e.captureZValues&amp;&amp;r.zValue&lt;n.info.zValue&amp;&amp;(n.info=r),-1===n.attributeIDs.indexOf(r.attributeID)&amp;&amp;n.attributeIDs.push(r.attributeID)}else c.set(t,{info:r,pixelCount:1,attributeIDs:[r.attributeID]})}}return function(e,t,n){const r=[];let o=0;return t.forEach(((t,a)=&gt;{const i=zp.newInstance();switch(i.setContentType(iy.INDICES),e){case ly.FIELD_ASSOCIATION_CELLS:i.setFieldType(sy.CELL);break;case ly.FIELD_ASSOCIATION_POINTS:i.setFieldType(sy.POINT);break;default:cy(&quot;Unknown field association&quot;)}i.getProperties().propID=t.info.propID;const s=n.webGPURenderer.getPropFromID(t.info.propID);i.getProperties().prop=s.getRenderable(),i.getProperties().compositeID=t.info.compositeID,i.getProperties().pixelCount=t.pixelCount,n.captureZValues&amp;&amp;(i.getProperties().displayPosition=[t.info.displayPosition[0],t.info.displayPosition[1],t.info.zValue],i.getProperties().worldPosition=n.webGPURenderWindow.displayToWorld(t.info.displayPosition[0],t.info.displayPosition[1],t.info.zValue,n.renderer)),i.setSelectionList(t.attributeIDs),r[o]=i,o++})),r}(e.fieldAssociation,c,e)}const gy={};function my(e,t,n={}){Object.assign(t,gy,n),Fp.extend(e,t,n),t._selectionPass=ay.newInstance(),sn.setGet(e,t,[&quot;_WebGPURenderWindow&quot;]),sn.moveToProtected(e,t,[&quot;WebGPURenderWindow&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUHardwareSelector&quot;),e.endSelection=()=&gt;{t.WebGPURenderer.setSelector(null)},e.getSourceDataAsync=async e=&gt;{if(!e||!t._WebGPURenderWindow)return cy(&quot;Renderer and view must be set before calling Select.&quot;),!1;t._WebGPURenderWindow.getRenderable().preRender(),t._WebGPURenderWindow.getInitialized()||(t._WebGPURenderWindow.initialize(),await new Promise((e=&gt;{t._WebGPURenderWindow.onInitialized(e)})));const n=t._WebGPURenderWindow.getViewNodeFor(e);if(!n)return!1;const r=n.getSuppressClear();n.setSuppressClear(!0),t._selectionPass.traverse(t._WebGPURenderWindow,n),n.setSuppressClear(r);const o=t._WebGPURenderWindow.getDevice(),a=t._selectionPass.getColorTexture(),i=t._selectionPass.getDepthTexture(),s={area:[0,0,a.getWidth()-1,a.getHeight()-1],captureZValues:t.captureZValues,fieldAssociation:t.fieldAssociation,renderer:e,webGPURenderer:n,webGPURenderWindow:t._WebGPURenderWindow,width:a.getWidth(),height:a.getHeight()};s.colorBufferWidth=16*Math.floor((s.width+15)/16),s.colorBufferSizeInBytes=s.colorBufferWidth*s.height*4*4;const l=ZT.newInstance({label:&quot;hardwareSelectColorBuffer&quot;});l.setDevice(o),l.create(s.colorBufferSizeInBytes,GPUBufferUsage.MAP_READ|GPUBufferUsage.COPY_DST);const c=t._WebGPURenderWindow.getCommandEncoder();let u;c.copyTextureToBuffer({texture:a.getHandle()},{buffer:l.getHandle(),bytesPerRow:16*s.colorBufferWidth,rowsPerImage:s.height},{width:s.width,height:s.height,depthOrArrayLayers:1}),t.captureZValues&amp;&amp;(s.zbufferBufferWidth=64*Math.floor((s.width+63)/64),u=ZT.newInstance({label:&quot;hardwareSelectDepthBuffer&quot;}),u.setDevice(o),s.zbufferSizeInBytes=s.height*s.zbufferBufferWidth*4,u.create(s.zbufferSizeInBytes,GPUBufferUsage.MAP_READ|GPUBufferUsage.COPY_DST),c.copyTextureToBuffer({texture:i.getHandle(),aspect:&quot;depth-only&quot;},{buffer:u.getHandle(),bytesPerRow:4*s.zbufferBufferWidth,rowsPerImage:s.height},{width:s.width,height:s.height,depthOrArrayLayers:1})),o.submitCommandEncoder(c);const d=l.mapAsync(GPUMapMode.READ);if(t.captureZValues){const e=u.mapAsync(GPUMapMode.READ);await Promise.all([d,e]),s.depthValues=new Float32Array(u.getMappedRange().slice()),u.unmap()}else await d;return s.colorValues=new Uint32Array(l.getMappedRange().slice()),l.unmap(),s.generateSelection=(e,t,n,r)=&gt;fy(s,e,t,n,r),s}}(e,t)}var hy={newInstance:sn.newInstance(my,&quot;vtkWebGPUHardwareSelector&quot;),extend:my};const vy=Object.create(null);const Ty={};function xy(e,t,n={}){Object.assign(t,Ty,n),t.overrides=vy,mn.extend(e,t,n),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUViewNodeFactory&quot;)}(0,t)}var yy={newInstance:sn.newInstance(xy,&quot;vtkWebGPUViewNodeFactory&quot;),extend:xy};const{vtkErrorMacro:by}=sn,Ay={position:&quot;absolute&quot;,top:0,left:0,width:&quot;100%&quot;,height:&quot;100%&quot;};function Cy(e,t){t.classHierarchy.push(&quot;vtkWebGPURenderWindow&quot;),e.getViewNodeFactory=()=&gt;t.myFactory;const n=[0,0];e.onModified((function(){t.renderable&amp;&amp;(t.size[0]===n[0]&amp;&amp;t.size[1]===n[1]||(n[0]=t.size[0],n[1]=t.size[1],t.canvas.setAttribute(&quot;width&quot;,t.size[0]),t.canvas.setAttribute(&quot;height&quot;,t.size[1]),e.recreateSwapChain())),t.viewStream&amp;&amp;t.viewStream.setSize(t.size[0],t.size[1]),t.canvas.style.display=t.useOffScreen?&quot;none&quot;:&quot;block&quot;,t.el&amp;&amp;(t.el.style.cursor=t.cursorVisibility?t.cursor:&quot;none&quot;),t.containerSize=null})),e.recreateSwapChain=()=&gt;{t.context&amp;&amp;(t.context.unconfigure(),t.presentationFormat=navigator.gpu.getPreferredCanvasFormat(t.adapter),t.context.configure({device:t.device.getHandle(),format:t.presentationFormat,alphaMode:&quot;premultiplied&quot;,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_DST,width:t.size[0],height:t.size[1]}),t._configured=!0)},e.getCurrentTexture=()=&gt;t.context.getCurrentTexture(),e.buildPass=n=&gt;{if(n){if(!t.renderable)return;e.prepareNodes(),e.addMissingNodes(t.renderable.getRenderersByReference()),e.removeUnusedNodes(),e.initialize()}else t.initialized&amp;&amp;(t._configured||e.recreateSwapChain(),t.commandEncoder=t.device.createCommandEncoder())},e.initialize=()=&gt;{if(!t.initializing){if(t.initializing=!0,!navigator.gpu)return void by(&quot;WebGPU is not enabled.&quot;);e.create3DContextAsync().then((()=&gt;{t.initialized=!0,t.deleted||e.invokeInitialized()}))}},e.setContainer=n=&gt;{t.el&amp;&amp;t.el!==n&amp;&amp;(t.canvas.parentNode!==t.el&amp;&amp;by(&quot;Error: canvas parent node does not match container&quot;),t.el.removeChild(t.canvas),t.el.contains(t.bgImage)&amp;&amp;t.el.removeChild(t.bgImage)),t.el!==n&amp;&amp;(t.el=n,t.el&amp;&amp;(t.el.appendChild(t.canvas),t.useBackgroundImage&amp;&amp;t.el.appendChild(t.bgImage)),e.modified())},e.getContainer=()=&gt;t.el,e.getContainerSize=()=&gt;{if(!t.containerSize&amp;&amp;t.el){const{width:e,height:n}=t.el.getBoundingClientRect();t.containerSize=[e,n]}return t.containerSize||t.size},e.getFramebufferSize=()=&gt;t.size,e.create3DContextAsync=async()=&gt;{t.adapter=await navigator.gpu.requestAdapter({powerPreference:&quot;high-performance&quot;}),t.deleted||(t.device=ny.newInstance(),t.device.initialize(await t.adapter.requestDevice({requiredLimits:{maxBufferSize:t.adapter.limits.maxBufferSize,maxStorageBufferBindingSize:t.adapter.limits.maxStorageBufferBindingSize,maxUniformBufferBindingSize:t.adapter.limits.maxUniformBufferBindingSize}})),t.deleted?t.device=null:t.context=t.canvas.getContext(&quot;webgpu&quot;))},e.releaseGraphicsResources=()=&gt;{const n=vv.newInstance();n.setCurrentOperation(&quot;Release&quot;),n.traverse(e,null),t.adapter=null,t.device=null,t.context=null,t.initialized=!1,t.initializing=!1},e.setBackgroundImage=e=&gt;{t.bgImage.src=e.src},e.setUseBackgroundImage=e=&gt;{t.useBackgroundImage=e,t.useBackgroundImage&amp;&amp;!t.el.contains(t.bgImage)?t.el.appendChild(t.bgImage):!t.useBackgroundImage&amp;&amp;t.el.contains(t.bgImage)&amp;&amp;t.el.removeChild(t.bgImage)},e.captureNextImage=(n=&quot;image/png&quot;,{resetCamera:r=!1,size:o=null,scale:a=1}={})=&gt;{if(t.deleted)return null;t.imageFormat=n;const i=t.notifyStartCaptureImage;return t.notifyStartCaptureImage=!0,t._screenshot={size:o||1!==a?o||t.size.map((e=&gt;e*a)):null},new Promise(((n,o)=&gt;{const a=e.onImageReady((o=&gt;{if(null===t._screenshot.size)t.notifyStartCaptureImage=i,a.unsubscribe(),t._screenshot.placeHolder&amp;&amp;(t.size=t._screenshot.originalSize,e.modified(),t._screenshot.cameras&amp;&amp;t._screenshot.cameras.forEach((({restoreParamsFn:e,arg:t})=&gt;e(t))),e.traverseAllPasses(),t.el.removeChild(t._screenshot.placeHolder),t._screenshot.placeHolder.remove(),t._screenshot=null),n(o);else{const n=document.createElement(&quot;img&quot;);if(n.style=Ay,n.src=o,t._screenshot.placeHolder=t.el.appendChild(n),t.canvas.style.display=&quot;none&quot;,t._screenshot.originalSize=t.size,t.size=t._screenshot.size,t._screenshot.size=null,e.modified(),r){const e=!0!==r;t._screenshot.cameras=t.renderable.getRenderers().map((t=&gt;{const n=t.getActiveCamera(),o=n.get(&quot;focalPoint&quot;,&quot;position&quot;,&quot;parallelScale&quot;);return{resetCameraArgs:e?{renderer:t}:void 0,resetCameraFn:e?r:t.resetCamera,restoreParamsFn:n.set,arg:JSON.parse(JSON.stringify(o))}})),t._screenshot.cameras.forEach((({resetCameraFn:e,resetCameraArgs:t})=&gt;e(t)))}e.traverseAllPasses()}}))}))},e.traverseAllPasses=()=&gt;{if(!t.deleted)if(t.initialized){if(t.renderPasses)for(let n=0;n&lt;t.renderPasses.length;++n)t.renderPasses[n].traverse(e,null);t.commandEncoder&amp;&amp;(t.device.submitCommandEncoder(t.commandEncoder),t.commandEncoder=null,t.notifyStartCaptureImage&amp;&amp;t.device.onSubmittedWorkDone().then((()=&gt;{!async function(n=t.imageFormat){const r=document.createElement(&quot;canvas&quot;),o=r.getContext(&quot;2d&quot;);r.width=t.canvas.width,r.height=t.canvas.height;const a=await e.getPixelsAsync(),i=new ImageData(a.colorValues,a.width,a.height);o.putImageData(i,0,0);const s=t.canvas.getBoundingClientRect();t.renderable.getRenderers().forEach((e=&gt;{e.getViewProps().forEach((e=&gt;{if(e.getContainer){const t=e.getContainer().getElementsByTagName(&quot;canvas&quot;);for(let e=0;e&lt;t.length;e++){const n=t[e],r=n.getBoundingClientRect(),a=r.x-s.x,i=r.y-s.y;o.drawImage(n,a,i)}}}))}));const l=r.toDataURL(n);r.remove(),e.invokeImageReady(l)}()})))}else{e.initialize();const t=e.onInitialized((()=&gt;{t.unsubscribe(),e.traverseAllPasses()}))}},e.setViewStream=n=&gt;{if(t.viewStream===n)return!1;if(t.subscription&amp;&amp;(t.subscription.unsubscribe(),t.subscription=null),t.viewStream=n,t.viewStream){t.renderable.getRenderers()[0].getBackgroundByReference()[3]=0,e.setUseBackgroundImage(!0),t.subscription=t.viewStream.onImageReady((t=&gt;e.setBackgroundImage(t.image))),t.viewStream.setSize(t.size[0],t.size[1]),t.viewStream.invalidateCache(),t.viewStream.render(),e.modified()}return!0},e.getUniquePropID=()=&gt;t.nextPropID++,e.getPropFromID=e=&gt;{for(let n=0;n&lt;t.children.length;n++){const r=t.children[n].getPropFromID(e);if(null!==r)return r}return null},e.getPixelsAsync=async()=&gt;{const e=t.device,n=t.renderPasses[0].getOpaquePass().getColorTexture(),r={width:n.getWidth(),height:n.getHeight()};r.colorBufferWidth=32*Math.floor((r.width+31)/32),r.colorBufferSizeInBytes=r.colorBufferWidth*r.height*8;const o=ZT.newInstance();o.setDevice(e),o.create(r.colorBufferSizeInBytes,GPUBufferUsage.MAP_READ|GPUBufferUsage.COPY_DST);const a=t.device.createCommandEncoder();a.copyTextureToBuffer({texture:n.getHandle()},{buffer:o.getHandle(),bytesPerRow:8*r.colorBufferWidth,rowsPerImage:r.height},{width:r.width,height:r.height,depthOrArrayLayers:1}),e.submitCommandEncoder(a);const i=o.mapAsync(GPUMapMode.READ);await i,r.colorValues=new Uint16Array(o.getMappedRange().slice()),o.unmap();const s=new Uint8ClampedArray(r.height*r.width*4);for(let e=0;e&lt;r.height;e++)for(let t=0;t&lt;r.width;t++){const n=4*(e*r.width+t),o=4*(e*r.colorBufferWidth+t);s[n]=255*Md.fromHalf(r.colorValues[o]),s[n+1]=255*Md.fromHalf(r.colorValues[o+1]),s[n+2]=255*Md.fromHalf(r.colorValues[o+2]),s[n+3]=255*Md.fromHalf(r.colorValues[o+3])}return r.colorValues=s,r},e.createSelector=()=&gt;{const t=hy.newInstance();return t.setWebGPURenderWindow(e),t};const r=e.setSize;e.setSize=(t,n)=&gt;{const o=r(t,n);return o&amp;&amp;e.invokeWindowResizeEvent({width:t,height:n}),o},e.delete=sn.chain(e.delete,e.setViewStream)}const Sy={initialized:!1,context:null,adapter:null,device:null,canvas:null,cursorVisibility:!0,cursor:&quot;pointer&quot;,containerSize:null,renderPasses:[],notifyStartCaptureImage:!1,imageFormat:&quot;image/png&quot;,useOffScreen:!1,useBackgroundImage:!1,nextPropID:1,xrSupported:!1,presentationFormat:null};const Py=sn.newInstance((function(e,t,n={}){Object.assign(t,Sy,n),t.canvas=document.createElement(&quot;canvas&quot;),t.canvas.style.width=&quot;100%&quot;,t.bgImage=new Image,t.bgImage.style.position=&quot;absolute&quot;,t.bgImage.style.left=&quot;0&quot;,t.bgImage.style.top=&quot;0&quot;,t.bgImage.style.width=&quot;100%&quot;,t.bgImage.style.height=&quot;100%&quot;,t.bgImage.style.zIndex=&quot;-1&quot;,Gv.extend(e,t,n),t.myFactory=yy.newInstance(),t.renderPasses[0]=qx.newInstance(),t.selector||(t.selector=hy.newInstance(),t.selector.setWebGPURenderWindow(e)),sn.event(e,t,&quot;imageReady&quot;),sn.event(e,t,&quot;initialized&quot;),sn.get(e,t,[&quot;commandEncoder&quot;,&quot;device&quot;,&quot;presentationFormat&quot;,&quot;useBackgroundImage&quot;,&quot;xrSupported&quot;]),sn.setGet(e,t,[&quot;initialized&quot;,&quot;context&quot;,&quot;canvas&quot;,&quot;device&quot;,&quot;renderPasses&quot;,&quot;notifyStartCaptureImage&quot;,&quot;cursor&quot;,&quot;useOffScreen&quot;]),sn.setGetArray(e,t,[&quot;size&quot;],2),sn.event(e,t,&quot;windowResizeEvent&quot;),Cy(e,t)}),&quot;vtkWebGPURenderWindow&quot;);var wy;Oh(&quot;WebGPU&quot;,Py),wy=Py,vy[&quot;vtkRenderWindow&quot;]=wy;const Iy=gv.extractURLParameters(),Oy={margin:&quot;0&quot;,padding:&quot;0&quot;,position:&quot;absolute&quot;,top:&quot;0&quot;,left:&quot;0&quot;,width:&quot;100%&quot;,height:&quot;100%&quot;,overflow:&quot;hidden&quot;},Ry={position:&quot;absolute&quot;,left:&quot;25px&quot;,top:&quot;25px&quot;,backgroundColor:&quot;white&quot;,borderRadius:&quot;5px&quot;,listStyle:&quot;none&quot;,padding:&quot;5px 10px&quot;,margin:&quot;0&quot;,display:&quot;block&quot;,border:&quot;solid 1px black&quot;,maxWidth:&quot;calc(100% - 70px)&quot;,maxHeight:&quot;calc(100% - 60px)&quot;,overflow:&quot;auto&quot;};function My(e,t){Object.keys(t).forEach((n=&gt;{e.style[n]=t[n]}))}const Dy={background:[.32,.34,.43],containerStyle:null,controlPanelStyle:null,listenWindowResize:!0,resizeCallback:null,controllerVisibility:!0};function Ey(e,t,n={}){Object.assign(t,Dy,n),sn.obj(e,t),sn.get(e,t,[&quot;renderWindow&quot;,&quot;renderer&quot;,&quot;apiSpecificRenderWindow&quot;,&quot;interactor&quot;,&quot;rootContainer&quot;,&quot;container&quot;,&quot;controlContainer&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkFullScreenRenderWindow&quot;);const n=document.querySelector(&quot;body&quot;);function r(t){&quot;c&quot;===String.fromCharCode(t.charCode)&amp;&amp;e.toggleControllerVisibility()}t.rootContainer||(t.rootContainer=n),t.container||(t.container=document.createElement(&quot;div&quot;),My(t.container,t.containerStyle||Oy),t.rootContainer.appendChild(t.container)),t.rootContainer===n&amp;&amp;(document.documentElement.style.height=&quot;100%&quot;,n.style.height=&quot;100%&quot;,n.style.padding=&quot;0&quot;,n.style.margin=&quot;0&quot;),t.renderWindow=Eh.newInstance(),t.renderer=wh.newInstance(),t.renderWindow.addRenderer(t.renderer),t.apiSpecificRenderWindow=t.renderWindow.newAPISpecificView(Iy.viewAPI??t.defaultViewAPI),t.apiSpecificRenderWindow.setContainer(t.container),t.renderWindow.addView(t.apiSpecificRenderWindow),t.interactor=Yh.newInstance(),t.interactor.setInteractorStyle(dv.newInstance()),t.interactor.setView(t.apiSpecificRenderWindow),t.interactor.initialize(),t.interactor.bindEvents(t.container),e.setBackground=t.renderer.setBackground,e.removeController=()=&gt;{const e=t.controlContainer;e&amp;&amp;e.parentNode.removeChild(e)},e.setControllerVisibility=e=&gt;{t.controllerVisibility=e,t.controlContainer&amp;&amp;(t.controlContainer.style.display=e?&quot;block&quot;:&quot;none&quot;)},e.toggleControllerVisibility=()=&gt;{e.setControllerVisibility(!t.controllerVisibility)},e.addController=n=&gt;{t.controlContainer=document.createElement(&quot;div&quot;),My(t.controlContainer,t.controlPanelStyle||Ry),t.rootContainer.appendChild(t.controlContainer),t.controlContainer.innerHTML=n,e.setControllerVisibility(t.controllerVisibility),t.rootContainer.addEventListener(&quot;keypress&quot;,r)},e.setBackground(...t.background),e.addRepresentation=e=&gt;{e.getActors().forEach((e=&gt;{t.renderer.addActor(e)}))},e.removeRepresentation=e=&gt;{e.getActors().forEach((e=&gt;t.renderer.removeActor(e)))},e.delete=sn.chain(e.setContainer,t.apiSpecificRenderWindow.delete,(()=&gt;{t.rootContainer?.removeEventListener(&quot;keypress&quot;,r),window.removeEventListener(&quot;resize&quot;,e.resize)}),e.delete),e.resize=()=&gt;{const e=t.container.getBoundingClientRect(),n=window.devicePixelRatio||1;t.apiSpecificRenderWindow.setSize(Math.floor(e.width*n),Math.floor(e.height*n)),t.resizeCallback&amp;&amp;t.resizeCallback(e),t.renderWindow.render()},e.setResizeCallback=n=&gt;{t.resizeCallback=n,e.resize()},t.listenWindowResize&amp;&amp;window.addEventListener(&quot;resize&quot;,e.resize),e.resize()}(e,t)}var Vy={newInstance:sn.newInstance(Ey),extend:Ey};var Ly={ColorSpace:{RGB:0,HSV:1,LAB:2,DIVERGING:3},Scale:{LINEAR:0,LOG10:1}};const{ColorSpace:By,Scale:Fy}=Ly,{ScalarMappingTarget:Ny}=yl,{vtkDebugMacro:ky,vtkErrorMacro:Gy,vtkWarningMacro:Uy}=sn;function _y(e,t){const n=e[0],r=e[1],o=e[2],a=Math.sqrt(n*n+r*r+o*o),i=a&gt;.001?Math.acos(n/a):0,s=i&gt;.001?Math.atan2(o,r):0;t[0]=a,t[1]=i,t[2]=s}function Ky(e,t){if(e[0]&gt;=t-.1)return e[2];const n=e[1]*Math.sqrt(t*t-e[0]*e[0])/(e[0]*Math.sin(e[1]));return e[2]&gt;-.3*Math.PI?e[2]+n:e[2]-n}function zy(e,t,n,r){const o=[],a=[];Pa(t,o),Pa(n,a);const i=[],s=[];_y(o,i),_y(a,s);let l=e;if(i[1]&gt;.05&amp;&amp;s[1]&gt;.05&amp;&amp;function(e,t){let n=e-t;for(n&lt;0&amp;&amp;(n=-n);n&gt;=2*Math.PI;)n-=2*Math.PI;return n&gt;Math.PI&amp;&amp;(n=2*Math.PI-n),n}(i[2],s[2])&gt;.33*Math.PI){let t=Math.max(i[0],s[0]);t=Math.max(88,t),e&lt;.5?(s[0]=t,s[1]=0,s[2]=0,l*=2):(i[0]=t,i[1]=0,i[2]=0,l=2*l-1)}i[1]&lt;.05&amp;&amp;s[1]&gt;.05?i[2]=Ky(s,i[0]):s[1]&lt;.05&amp;&amp;i[1]&gt;.05&amp;&amp;(s[2]=Ky(i,s[0]));const c=[];c[0]=(1-l)*i[0]+l*s[0],c[1]=(1-l)*i[1]+l*s[1],c[2]=(1-l)*i[2]+l*s[2];const u=[];!function(e,t){const n=e[0],r=e[1],o=e[2];t[0]=n*Math.cos(r),t[1]=n*Math.sin(r)*Math.cos(o),t[2]=n*Math.sin(r)*Math.sin(o)}(c,u),wa(u,r)}const Wy={clamping:!0,colorSpace:By.RGB,hSVWrap:!0,scale:Fy.LINEAR,nanColor:null,belowRangeColor:null,aboveRangeColor:null,useAboveRangeColor:!1,useBelowRangeColor:!1,allowDuplicateScalars:!1,table:null,tableSize:0,buildTime:null,nodes:null,discretize:!1,numberOfValues:256};function Hy(e,t,n={}){Object.assign(t,Wy,n),yl.extend(e,t,n),t.table=[],t.nodes=[],t.nanColor=[.5,0,0,1],t.belowRangeColor=[0,0,0,1],t.aboveRangeColor=[1,1,1,1],t.buildTime={},sn.obj(t.buildTime),sn.get(e,t,[&quot;buildTime&quot;,&quot;mappingRange&quot;]),sn.setGet(e,t,[&quot;useAboveRangeColor&quot;,&quot;useBelowRangeColor&quot;,&quot;discretize&quot;,&quot;numberOfValues&quot;,{type:&quot;enum&quot;,name:&quot;colorSpace&quot;,enum:By},{type:&quot;enum&quot;,name:&quot;scale&quot;,enum:Fy}]),sn.setArray(e,t,[&quot;nanColor&quot;,&quot;belowRangeColor&quot;,&quot;aboveRangeColor&quot;],4),sn.getArray(e,t,[&quot;nanColor&quot;,&quot;belowRangeColor&quot;,&quot;aboveRangeColor&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkColorTransferFunction&quot;),e.getSize=()=&gt;t.nodes.length,e.addRGBPoint=(t,n,r,o)=&gt;e.addRGBPointLong(t,n,r,o,.5,0),e.addRGBPointLong=(n,r,o,a,i=.5,s=0)=&gt;{if(i&lt;0||i&gt;1)return Gy(&quot;Midpoint outside range [0.0, 1.0]&quot;),-1;if(s&lt;0||s&gt;1)return Gy(&quot;Sharpness outside range [0.0, 1.0]&quot;),-1;t.allowDuplicateScalars||e.removePoint(n);const l={x:n,r:r,g:o,b:a,midpoint:i,sharpness:s};t.nodes.push(l),e.sortAndUpdateRange();let c=0;for(;c&lt;t.nodes.length&amp;&amp;t.nodes[c].x!==n;c++);return c&lt;t.nodes.length?c:-1},e.addHSVPoint=(t,n,r,o)=&gt;e.addHSVPointLong(t,n,r,o,.5,0),e.addHSVPointLong=(t,n,r,o,a=.5,i=0)=&gt;{const s=[];return ya([n,r,o],s),e.addRGBPoint(t,s[0],s[1],s[2],a,i)},e.setNodes=n=&gt;{if(t.nodes!==n){const r=JSON.stringify(t.nodes);t.nodes=n;const o=JSON.stringify(t.nodes);if(e.sortAndUpdateRange()||r!==o)return e.modified(),!0}return!1},e.sortAndUpdateRange=()=&gt;{const n=JSON.stringify(t.nodes);t.nodes.sort(((e,t)=&gt;e.x-t.x));const r=JSON.stringify(t.nodes),o=e.updateRange();return o||n===r?o:(e.modified(),!0)},e.updateRange=()=&gt;{const n=[2];n[0]=t.mappingRange[0],n[1]=t.mappingRange[1];const r=t.nodes.length;return r?(t.mappingRange[0]=t.nodes[0].x,t.mappingRange[1]=t.nodes[r-1].x):(t.mappingRange[0]=0,t.mappingRange[1]=0),(n[0]!==t.mappingRange[0]||n[1]!==t.mappingRange[1])&amp;&amp;(e.modified(),!0)},e.removePoint=n=&gt;{let r=0;for(;r&lt;t.nodes.length&amp;&amp;t.nodes[r].x!==n;r++);const o=r;if(r&gt;=t.nodes.length)return-1;let a=!1;return t.nodes.splice(r,1),0!==r&amp;&amp;r!==t.nodes.length||(a=e.updateRange()),a||e.modified(),o},e.movePoint=(n,r)=&gt;{if(n!==r){e.removePoint(r);for(let o=0;o&lt;t.nodes.length;o++)if(t.nodes[o].x===n){t.nodes[o].x=r,e.sortAndUpdateRange();break}}},e.removeAllPoints=()=&gt;{t.nodes=[],e.sortAndUpdateRange()},e.addRGBSegment=(n,r,o,a,i,s,l,c)=&gt;{e.sortAndUpdateRange();for(let e=0;e&lt;t.nodes.length;)t.nodes[e].x&gt;=n&amp;&amp;t.nodes[e].x&lt;=i?t.nodes.splice(e,1):e++;e.addRGBPointLong(n,r,o,a,.5,0),e.addRGBPointLong(i,s,l,c,.5,0),e.modified()},e.addHSVSegment=(t,n,r,o,a,i,s,l)=&gt;{const c=[i,s,l],u=[],d=[];ya([n,r,o],u),ya(c,d),e.addRGBSegment(t,u[0],u[1],u[2],a,d[0],d[1],d[2])},e.mapValue=t=&gt;{const n=[];return e.getColor(t,n),[Math.floor(255*n[0]+.5),Math.floor(255*n[1]+.5),Math.floor(255*n[2]+.5),255]},e.getColor=(n,r)=&gt;{if(t.indexedLookup){const t=e.getSize(),o=e.getAnnotatedValueIndexInternal(n);if(o&lt;0||0===t){const t=e.getNanColorByReference();r[0]=t[0],r[1]=t[1],r[2]=t[2]}else{const n=[];e.getNodeValue(o%t,n),r[0]=n[1],r[1]=n[2],r[2]=n[3]}}else e.getTable(n,n,1,r)},e.getRedValue=t=&gt;{const n=[];return e.getColor(t,n),n[0]},e.getGreenValue=t=&gt;{const n=[];return e.getColor(t,n),n[1]},e.getBlueValue=t=&gt;{const n=[];return e.getColor(t,n),n[2]},e.logScaleEnabled=()=&gt;t.scale===Fy.LOG10,e.usingLogScale=()=&gt;e.logScaleEnabled()&amp;&amp;t.mappingRange[0]&gt;0,e.getTable=(n,r,o,a)=&gt;{const i=e.usingLogScale(),s=i?Math.log10(Number(n)):Number(n),l=i?Math.log10(Number(r)):Number(r);if(ka(s)||ka(l)){for(let e=0;e&lt;o;e++)a[3*e+0]=t.nanColor[0],a[3*e+1]=t.nanColor[1],a[3*e+2]=t.nanColor[2];return}let c=0;const u=t.nodes.length;let d=0,p=0,f=0;0!==u&amp;&amp;(d=t.nodes[u-1].r,p=t.nodes[u-1].g,f=t.nodes[u-1].b);let g=0,m=0,h=0;const v=[0,0,0],T=[0,0,0];let x=0,y=0;const b=[];let A=t.mappingRange;i&amp;&amp;(A=[Math.log10(t.mappingRange[0]),Math.log10(t.mappingRange[1])]);for(let n=0;n&lt;o;n++){const r=3*n;if(g=o&gt;1?s+n/(o-1)*(l-s):.5*(s+l),t.discretize){const e=A;if(g&gt;=e[0]&amp;&amp;g&lt;=e[1]){const n=t.numberOfValues,r=e[1]-e[0];if(n&lt;=1)g=e[0]+r/2;else{const t=(g-e[0])/r,o=Ro(n*t);g=e[0]+o/(n-1)*r}}}for(;c&lt;u&amp;&amp;g&gt;t.nodes[c].x;)c++,c&lt;u&amp;&amp;(m=t.nodes[c-1].x,h=t.nodes[c].x,v[0]=t.nodes[c-1].r,T[0]=t.nodes[c].r,v[1]=t.nodes[c-1].g,T[1]=t.nodes[c].g,v[2]=t.nodes[c-1].b,T[2]=t.nodes[c].b,x=t.nodes[c-1].midpoint,y=t.nodes[c-1].sharpness,x&lt;1e-5&amp;&amp;(x=1e-5),x&gt;.99999&amp;&amp;(x=.99999));if(g&gt;A[1])a[r]=0,a[r+1]=0,a[r+2]=0,t.clamping&amp;&amp;(e.getUseAboveRangeColor()?(a[r]=t.aboveRangeColor[0],a[r+1]=t.aboveRangeColor[1],a[r+2]=t.aboveRangeColor[2]):(a[r]=d,a[r+1]=p,a[r+2]=f));else if(g&lt;A[0]||Ba(g)&amp;&amp;g&lt;0)a[r]=0,a[r+1]=0,a[r+2]=0,t.clamping&amp;&amp;(e.getUseBelowRangeColor()?(a[r]=t.belowRangeColor[0],a[r+1]=t.belowRangeColor[1],a[r+2]=t.belowRangeColor[2]):u&gt;0&amp;&amp;(a[r]=t.nodes[0].r,a[r+1]=t.nodes[0].g,a[r+2]=t.nodes[0].b));else if(0===c&amp;&amp;(Math.abs(g-s)&lt;1e-6||t.discretize))u&gt;0?(a[r]=t.nodes[0].r,a[r+1]=t.nodes[0].g,a[r+2]=t.nodes[0].b):(a[r]=0,a[r+1]=0,a[r+2]=0);else{let e=0;if(e=(g-m)/(h-m),e=e&lt;x?.5*e/x:.5+.5*(e-x)/(1-x),y&gt;.99){if(e&lt;.5){a[r]=v[0],a[r+1]=v[1],a[r+2]=v[2];continue}a[r]=T[0],a[r+1]=T[1],a[r+2]=T[2];continue}if(y&lt;.01){if(t.colorSpace===By.RGB)a[r]=(1-e)*v[0]+e*T[0],a[r+1]=(1-e)*v[1]+e*T[1],a[r+2]=(1-e)*v[2]+e*T[2];else if(t.colorSpace===By.HSV){const n=[],o=[];xa(v,n),xa(T,o),t.hSVWrap&amp;&amp;(n[0]-o[0]&gt;.5||o[0]-n[0]&gt;.5)&amp;&amp;(n[0]&gt;o[0]?n[0]-=1:o[0]-=1);const i=[];i[0]=(1-e)*n[0]+e*o[0],i[0]&lt;0&amp;&amp;(i[0]+=1),i[1]=(1-e)*n[1]+e*o[1],i[2]=(1-e)*n[2]+e*o[2],ya(i,b),a[r]=b[0],a[r+1]=b[1],a[r+2]=b[2]}else if(t.colorSpace===By.LAB){const t=[],n=[];Pa(v,t),Pa(T,n);const o=[];o[0]=(1-e)*t[0]+e*n[0],o[1]=(1-e)*t[1]+e*n[1],o[2]=(1-e)*t[2]+e*n[2],wa(o,b),a[r]=b[0],a[r+1]=b[1],a[r+2]=b[2]}else t.colorSpace===By.DIVERGING?(zy(e,v,T,b),a[r]=b[0],a[r+1]=b[1],a[r+2]=b[2]):Gy(&quot;ColorSpace set to invalid value.&quot;,t.colorSpace);continue}e&lt;.5?e=.5*(2*e)**(1+10*y):e&gt;.5&amp;&amp;(e=1-.5*(2*(1-e))**(1+10*y));const n=e*e,o=n*e,i=2*o-3*n+1,s=-2*o+3*n,l=o-2*n+e,c=o-n;let u,d;if(t.colorSpace===By.RGB)for(let e=0;e&lt;3;e++)u=T[e]-v[e],d=(1-y)*u,a[r+e]=i*v[e]+s*T[e]+l*d+c*d;else if(t.colorSpace===By.HSV){const e=[],n=[];xa(v,e),xa(T,n),t.hSVWrap&amp;&amp;(e[0]-n[0]&gt;.5||n[0]-e[0]&gt;.5)&amp;&amp;(e[0]&gt;n[0]?e[0]-=1:n[0]-=1);const o=[];for(let t=0;t&lt;3;t++)u=n[t]-e[t],d=(1-y)*u,o[t]=i*e[t]+s*n[t]+l*d+c*d,0===t&amp;&amp;o[t]&lt;0&amp;&amp;(o[t]+=1);ya(o,b),a[r]=b[0],a[r+1]=b[1],a[r+2]=b[2]}else if(t.colorSpace===By.LAB){const e=[],t=[];Pa(v,e),Pa(T,t);const n=[];for(let r=0;r&lt;3;r++)u=t[r]-e[r],d=(1-y)*u,n[r]=i*e[r]+s*t[r]+l*d+c*d;wa(n,b),a[r]=b[0],a[r+1]=b[1],a[r+2]=b[2]}else t.colorSpace===By.DIVERGING?(zy(e,v,T,b),a[r]=b[0],a[r+1]=b[1],a[r+2]=b[2]):Gy(&quot;ColorSpace set to invalid value.&quot;);for(let e=0;e&lt;3;e++)a[r+e]=a[r+e]&lt;0?0:a[r+e],a[r+e]=a[r+e]&gt;1?1:a[r+e]}}},e.getUint8Table=(n,r,o,a=!1)=&gt;{if(e.getMTime()&lt;=t.buildTime&amp;&amp;t.tableSize===o&amp;&amp;t.tableWithAlpha!==a)return t.table;if(0===t.nodes.length)return Gy(&quot;Attempting to lookup a value with no points in the function&quot;),t.table;const i=a?4:3;t.tableSize===o&amp;&amp;t.tableWithAlpha===a||(t.table=new Uint8Array(o*i),t.tableSize=o,t.tableWithAlpha=a);const s=[];e.getTable(n,r,o,s);for(let e=0;e&lt;o;e++)t.table[e*i+0]=Math.floor(255*s[3*e+0]+.5),t.table[e*i+1]=Math.floor(255*s[3*e+1]+.5),t.table[e*i+2]=Math.floor(255*s[3*e+2]+.5),a&amp;&amp;(t.table[e*i+3]=255);return t.buildTime.modified(),t.table},e.buildFunctionFromArray=n=&gt;{e.removeAllPoints();const r=n.getNumberOfComponents();for(let e=0;e&lt;n.getNumberOfTuples();e++)switch(r){case 3:t.nodes.push({x:e,r:n.getComponent(e,0),g:n.getComponent(e,1),b:n.getComponent(e,2),midpoint:.5,sharpness:0});break;case 4:t.nodes.push({x:n.getComponent(e,0),r:n.getComponent(e,1),g:n.getComponent(e,2),b:n.getComponent(e,3),midpoint:.5,sharpness:0});break;case 5:t.nodes.push({x:e,r:n.getComponent(e,0),g:n.getComponent(e,1),b:n.getComponent(e,2),midpoint:n.getComponent(e,4),sharpness:n.getComponent(e,5)});break;case 6:t.nodes.push({x:n.getComponent(e,0),r:n.getComponent(e,1),g:n.getComponent(e,2),b:n.getComponent(e,3),midpoint:n.getComponent(e,4),sharpness:n.getComponent(e,5)})}e.sortAndUpdateRange()},e.buildFunctionFromTable=(n,r,o,a)=&gt;{let i=0;e.removeAllPoints(),o&gt;1&amp;&amp;(i=(r-n)/(o-1));for(let e=0;e&lt;o;e++){const r={x:n+i*e,r:a[3*e],g:a[3*e+1],b:a[3*e+2],sharpness:0,midpoint:.5};t.nodes.push(r)}e.sortAndUpdateRange()},e.getNodeValue=(e,n)=&gt;e&lt;0||e&gt;=t.nodes.length?(Gy(&quot;Index out of range!&quot;),-1):(n[0]=t.nodes[e].x,n[1]=t.nodes[e].r,n[2]=t.nodes[e].g,n[3]=t.nodes[e].b,n[4]=t.nodes[e].midpoint,n[5]=t.nodes[e].sharpness,1),e.setNodeValue=(n,r)=&gt;{if(n&lt;0||n&gt;=t.nodes.length)return Gy(&quot;Index out of range!&quot;),-1;const o=t.nodes[n].x;return t.nodes[n].x=r[0],t.nodes[n].r=r[1],t.nodes[n].g=r[2],t.nodes[n].b=r[3],t.nodes[n].midpoint=r[4],t.nodes[n].sharpness=r[5],o!==r[0]?e.sortAndUpdateRange():e.modified(),1},e.getNumberOfAvailableColors=()=&gt;{if(t.indexedLookup&amp;&amp;e.getSize())return e.getSize();if(t.tableSize)return t.tableSize;const n=t.nodes?.length??0;return Math.max(4094,n)},e.getIndexedColor=(t,n)=&gt;{const r=e.getSize();if(r&gt;0&amp;&amp;t&gt;=0){const o=[];e.getNodeValue(t%r,o);for(let e=0;e&lt;3;++e)n[e]=o[e+1];return void(n[3]=1)}const o=e.getNanColorByReference();n[0]=o[0],n[1]=o[1],n[2]=o[2],n[3]=1},e.fillFromDataPointer=(t,n)=&gt;{if(!(t&lt;=0)&amp;&amp;n){e.removeAllPoints();for(let r=0;r&lt;t;r++)e.addRGBPoint(n[4*r],n[4*r+1],n[4*r+2],n[4*r+3])}},e.setMappingRange=(n,r)=&gt;{const o=[n,r],a=[n,r],i=e.getRange(),s=e.logScaleEnabled();if(i[1]===o[1]&amp;&amp;i[0]===o[0])return;if(o[1]===o[0])return void Gy(&quot;attempt to set zero width color range&quot;);s&amp;&amp;(o[0]&lt;=0?console.warn(&quot;attempt to set log scale color range with non-positive minimum&quot;):(a[0]=Math.log10(o[0]),a[1]=Math.log10(o[1])));const l=(a[1]-a[0])/(i[1]-i[0]),c=a[0]-i[0]*l;for(let e=0;e&lt;t.nodes.length;++e)t.nodes[e].x=t.nodes[e].x*l+c;t.mappingRange[0]=o[0],t.mappingRange[1]=o[1],e.modified()},e.adjustRange=n=&gt;{const r=e.getRange(),o=[];r[0]&lt;n[0]?(e.getColor(n[0],o),e.addRGBPoint(n[0],o[0],o[1],o[2])):(e.getColor(r[0],o),e.addRGBPoint(n[0],o[0],o[1],o[2])),r[1]&gt;n[1]?(e.getColor(n[1],o),e.addRGBPoint(n[1],o[0],o[1],o[2])):(e.getColor(r[1],o),e.addRGBPoint(n[1],o[0],o[1],o[2])),e.sortAndUpdateRange();for(let e=0;e&lt;t.nodes.length;)t.nodes[e].x&gt;=n[0]&amp;&amp;t.nodes[e].x&lt;=n[1]?t.nodes.splice(e,1):++e;return 1},e.estimateMinNumberOfSamples=(t,n)=&gt;{const r=e.findMinimumXDistance();return Math.ceil((n-t)/r)},e.findMinimumXDistance=()=&gt;{if(t.nodes.length&lt;2)return-1;let e=Number.MAX_VALUE;for(let n=0;n&lt;t.nodes.length-1;n++){const r=t.nodes[n+1].x-t.nodes[n].x;r&lt;e&amp;&amp;(e=r)}return e},e.mapScalarsThroughTable=(n,r,o,a)=&gt;{0!==e.getSize()?t.indexedLookup?e.mapDataIndexed(n,r,o,a):e.mapData(n,r,o,a):ky(&quot;Transfer Function Has No Points!&quot;)},e.mapData=(t,n,r,o)=&gt;{if(0===e.getSize())return void Uy(&quot;Transfer Function Has No Points!&quot;);const a=Math.floor(255*e.getAlpha()+.5),i=t.getNumberOfTuples(),s=t.getNumberOfComponents(),l=n.getData(),c=t.getData(),u=[];if(r===Ny.RGBA)for(let t=0;t&lt;i;t++){const n=c[t*s+o];e.getColor(n,u),l[4*t]=Math.floor(255*u[0]+.5),l[4*t+1]=Math.floor(255*u[1]+.5),l[4*t+2]=Math.floor(255*u[2]+.5),l[4*t+3]=a}if(r===Ny.RGB)for(let t=0;t&lt;i;t++){const n=c[t*s+o];e.getColor(n,u),l[3*t]=Math.floor(255*u[0]+.5),l[3*t+1]=Math.floor(255*u[1]+.5),l[3*t+2]=Math.floor(255*u[2]+.5)}if(r===Ny.LUMINANCE)for(let t=0;t&lt;i;t++){const n=c[t*s+o];e.getColor(n,u),l[t]=Math.floor(76.5*u[0]+150.45*u[1]+28.05*u[2]+.5)}if(r===Ny.LUMINANCE_ALPHA)for(let t=0;t&lt;i;t++){const n=c[t*s+o];e.getColor(n,u),l[2*t]=Math.floor(76.5*u[0]+150.45*u[1]+28.05*u[2]+.5),l[2*t+1]=a}},e.applyColorMap=n=&gt;{const r=JSON.stringify(t.colorSpace);n.ColorSpace&amp;&amp;(t.colorSpace=By[n.ColorSpace.toUpperCase()],void 0===t.colorSpace&amp;&amp;(Gy(`ColorSpace ${n.ColorSpace} not supported, using RGB instead`),t.colorSpace=By.RGB));let o=r!==JSON.stringify(t.colorSpace);const a=o||JSON.stringify(t.nanColor);if(n.NanColor)for(t.nanColor=[].concat(n.NanColor);t.nanColor.length&lt;4;)t.nanColor.push(1);o=o||a!==JSON.stringify(t.nanColor);const i=o||JSON.stringify(t.nodes);if(n.RGBPoints){const e=n.RGBPoints.length;t.nodes=[];const r=.5,o=0;for(let a=0;a&lt;e;a+=4)t.nodes.push({x:n.RGBPoints[a],r:n.RGBPoints[a+1],g:n.RGBPoints[a+2],b:n.RGBPoints[a+3],midpoint:r,sharpness:o})}const s=e.sortAndUpdateRange(),l=!s&amp;&amp;(o||i!==JSON.stringify(t.nodes));return l&amp;&amp;e.modified(),s||l}}(e,t)}var jy={newInstance:sn.newInstance(Hy,&quot;vtkColorTransferFunction&quot;),extend:Hy,...Ly};var Xy={OrientationModes:{DIRECTION:0,ROTATION:1,MATRIX:2},ScaleModes:{SCALE_BY_CONSTANT:0,SCALE_BY_MAGNITUDE:1,SCALE_BY_COMPONENTS:2}};const{OrientationModes:qy,ScaleModes:Yy}=Xy,{vtkErrorMacro:Jy}=sn;const Zy={orient:!0,orientationMode:qy.DIRECTION,orientationArray:null,scaling:!0,scaleFactor:1,scaleMode:Yy.SCALE_BY_MAGNITUDE,scaleArray:null,matrixArray:null,normalArray:null,colorArray:null};function Qy(e,t,n={}){Object.assign(t,Zy,n),Ql.extend(e,t,n),sn.algo(e,t,2,0),t.buildTime={},sn.obj(t.buildTime,{mtime:0}),sn.setGet(e,t,[&quot;orient&quot;,&quot;orientationMode&quot;,&quot;orientationArray&quot;,&quot;scaleArray&quot;,&quot;scaleFactor&quot;,&quot;scaleMode&quot;,&quot;scaling&quot;]),sn.get(e,t,[&quot;colorArray&quot;,&quot;matrixArray&quot;,&quot;normalArray&quot;,&quot;buildTime&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkGlyph3DMapper&quot;),e.getOrientationModeAsString=()=&gt;sn.enumToString(qy,t.orientationMode),e.setOrientationModeToDirection=()=&gt;e.setOrientationMode(qy.DIRECTION),e.setOrientationModeToRotation=()=&gt;e.setOrientationMode(qy.ROTATION),e.setOrientationModeToMatrix=()=&gt;e.setOrientationMode(qy.MATRIX),e.getOrientationArrayData=()=&gt;{const n=e.getInputData(0);return n&amp;&amp;n.getPointData()?t.orientationArray?n.getPointData().getArray(t.orientationArray):n.getPointData().getVectors():null},e.getScaleModeAsString=()=&gt;sn.enumToString(Yy,t.scaleMode),e.setScaleModeToScaleByMagnitude=()=&gt;e.setScaleMode(Yy.SCALE_BY_MAGNITUDE),e.setScaleModeToScaleByComponents=()=&gt;e.setScaleMode(Yy.SCALE_BY_COMPONENTS),e.setScaleModeToScaleByConstant=()=&gt;e.setScaleMode(Yy.SCALE_BY_CONSTANT),e.getScaleArrayData=()=&gt;{const n=e.getInputData(0);return n&amp;&amp;n.getPointData()?t.scaleArray?n.getPointData().getArray(t.scaleArray):n.getPointData().getScalars():null},e.computeBounds=()=&gt;e.buildArrays(),e.buildArrays=()=&gt;{const n=e.getInputData(0),r=e.getInputData(1);if(n&amp;&amp;r){if(t.buildTime.getMTime()&lt;r.getMTime()||t.buildTime.getMTime()&lt;n.getMTime()||t.buildTime.getMTime()&lt;e.getMTime()){const o=n.getPoints().getData();let a=e.getScaleArrayData(),i=null,l=0;a&amp;&amp;(i=a.getData(),l=a.getNumberOfComponents()),t.scaling&amp;&amp;a&amp;&amp;t.scaleMode===Yy.SCALE_BY_COMPONENTS&amp;&amp;3!==a.getNumberOfComponents()&amp;&amp;(Jy(&quot;Cannot scale by components since scale array does not have 3 components.&quot;),a=null);const c=r.getBounds(),p=[];Hi.getCorners(c,p),Hi.reset(t.bounds);const f=new Float64Array(3),g=e.getOrientationArrayData(),m=x(new Float64Array(16)),h=[],v=[],T=o.length/3;t.matrixArray=new Float32Array(16*T);const y=t.matrixArray.buffer;t.normalArray=new Float32Array(9*T);const b=t.normalArray.buffer,R=[],M=[];for(let e=0;e&lt;T;++e){const n=new Float32Array(y,64*e,16);if(h[0]=o[3*e],h[1]=o[3*e+1],h[2]=o[3*e+2],C(n,m,h),g)switch(g.getTuple(e,M),t.orientationMode){case qy.MATRIX:A(n,n,[...M.slice(0,3),0,...M.slice(3,6),0,...M.slice(6,9),0,0,0,0,1]);break;case qy.ROTATION:O(n,n,M[2]),w(n,n,M[0]),I(n,n,M[1]);break;case qy.DIRECTION:if(0===M[1]&amp;&amp;0===M[2])M[0]&lt;0&amp;&amp;I(n,n,3.1415926);else{const e=Ho(M),t=[];t[0]=(M[0]+e)/2,t[1]=M[1]/2,t[2]=M[2]/2,P(n,n,3.1415926,t)}}if(t.scaling){if(v[0]=t.scaleFactor,v[1]=t.scaleFactor,v[2]=t.scaleFactor,a)switch(t.scaleMode){case Yy.SCALE_BY_MAGNITUDE:for(let t=0;t&lt;l;++t)R[t]=i[e*l+t];v[0]*=Ho(R,l),v[1]=v[0],v[2]=v[0];break;case Yy.SCALE_BY_COMPONENTS:for(let t=0;t&lt;l;++t)R[t]=i[e*l+t];v[0]*=R[0],v[1]*=R[1],v[2]*=R[2];case Yy.SCALE_BY_CONSTANT:}0===v[0]&amp;&amp;(v[0]=1e-10),0===v[1]&amp;&amp;(v[1]=1e-10),0===v[2]&amp;&amp;(v[2]=1e-10),S(n,n,v)}for(let e=0;e&lt;8;++e)oe(f,p[e],n),Hi.addPoint(t.bounds,f);const r=new Float32Array(b,36*e,9);s(r,n),d(r,r),u(r,r)}const D=e.getAbstractScalars(n,t.scalarMode,t.arrayAccessMode,t.arrayId,t.colorByArrayName).scalars;t.useLookupTableScalarRange||e.getLookupTable().setRange(t.scalarRange[0],t.scalarRange[1]),t.colorArray=null;const E=e.getLookupTable();E&amp;&amp;D&amp;&amp;(E.build(),t.colorArray=E.mapScalars(D,t.colorMode,0)),t.buildTime.modified()}}else Hi.reset(t.bounds)},e.getPrimitiveCount=()=&gt;{const t=e.getInputData(1),n=e.getInputData().getPoints().getNumberOfValues()/3;return{points:n*t.getPoints().getNumberOfValues()/3,verts:n*(t.getVerts().getNumberOfValues()-t.getVerts().getNumberOfCells()),lines:n*(t.getLines().getNumberOfValues()-2*t.getLines().getNumberOfCells()),triangles:n*(t.getPolys().getNumberOfValues()-3*t.getLines().getNumberOfCells())}},e.setSourceConnection=t=&gt;e.setInputConnection(t,1)}(e,t)}var $y={newInstance:sn.newInstance(Qy,&quot;vtkGlyph3DMapper&quot;),extend:Qy,...Xy};const{vtkErrorMacro:eb}=sn;const tb={range:[0,0],clamping:!0,allowDuplicateScalars:!1};function nb(e,t,n={}){Object.assign(t,tb,n),sn.obj(e,t),t.nodes=[],sn.setGet(e,t,[&quot;allowDuplicateScalars&quot;,&quot;clamping&quot;]),sn.setArray(e,t,[&quot;range&quot;],2),sn.getArray(e,t,[&quot;range&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkPiecewiseFunction&quot;),e.getSize=()=&gt;t.nodes.length,e.getType=()=&gt;{let e,n=0,r=0;t.nodes.length&gt;0&amp;&amp;(n=t.nodes[0].y);for(let o=1;o&lt;t.nodes.length;o++){if(e=t.nodes[o].y,e!==n)if(e&gt;n)switch(r){case 0:case 1:r=1;break;default:r=3}else switch(r){case 0:case 2:r=2;break;default:r=3}if(n=e,3===r)break}switch(r){case 0:return&quot;Constant&quot;;case 1:return&quot;NonDecreasing&quot;;case 2:return&quot;NonIncreasing&quot;;default:return&quot;Varied&quot;}},e.getDataPointer=()=&gt;{const e=t.nodes.length;if(t.function=null,e&gt;0){t.function=[];for(let n=0;n&lt;e;n++)t.function[2*n]=t.nodes[n].x,t.function[2*n+1]=t.nodes[n].y}return t.function},e.getFirstNonZeroValue=()=&gt;{if(0===t.nodes.length)return 0;let e=1,n=0,r=0;for(;r&lt;t.nodes.length;r++)if(0!==t.nodes[r].y){e=0;break}return n=e?Number.MAX_VALUE:r&gt;0?t.nodes[r-1].x:t.clamping?-Number.MAX_VALUE:t.nodes[0].x,n},e.getNodeValue=(e,n)=&gt;{const r=t.nodes.length;return e&lt;0||e&gt;=r?(eb(&quot;Index out of range!&quot;),-1):(n[0]=t.nodes[e].x,n[1]=t.nodes[e].y,n[2]=t.nodes[e].midpoint,n[3]=t.nodes[e].sharpness,1)},e.setNodeValue=(n,r)=&gt;{const o=t.nodes.length;if(n&lt;0||n&gt;=o)return eb(&quot;Index out of range!&quot;),-1;const a=t.nodes[n].x;return t.nodes[n].x=r[0],t.nodes[n].y=r[1],t.nodes[n].midpoint=r[2],t.nodes[n].sharpness=r[3],a!==r[0]?e.sortAndUpdateRange():e.modified(),1},e.addPoint=(t,n)=&gt;e.addPointLong(t,n,.5,0),e.addPointLong=(n,r,o,a)=&gt;{if(o&lt;0||o&gt;1)return eb(&quot;Midpoint outside range [0.0, 1.0]&quot;),-1;if(a&lt;0||a&gt;1)return eb(&quot;Sharpness outside range [0.0, 1.0]&quot;),-1;t.allowDuplicateScalars||e.removePoint(n);const i={x:n,y:r,midpoint:o,sharpness:a};let s;for(t.nodes.push(i),e.sortAndUpdateRange(),s=0;s&lt;t.nodes.length&amp;&amp;t.nodes[s].x!==n;s++);return s&lt;t.nodes.length?s:-1},e.setNodes=n=&gt;{t.nodes!==n&amp;&amp;(t.nodes=n,e.sortAndUpdateRange())},e.sortAndUpdateRange=()=&gt;{t.nodes.sort(((e,t)=&gt;e.x-t.x)),e.updateRange()||e.modified()},e.updateRange=()=&gt;{const n=t.range.slice(),r=t.nodes.length;return r?(t.range[0]=t.nodes[0].x,t.range[1]=t.nodes[r-1].x):(t.range[0]=0,t.range[1]=0),(n[0]!==t.range[0]||n[1]!==t.range[1])&amp;&amp;(e.modified(),!0)},e.removePoint=n=&gt;{let r;for(r=0;r&lt;t.nodes.length&amp;&amp;t.nodes[r].x!==n;r++);if(r&gt;=t.nodes.length)return-1;const o=r;let a=!1;return t.nodes.splice(r,1),0!==r&amp;&amp;r!==t.nodes.length||(a=e.updateRange()),a||e.modified(),o},e.removeAllPoints=()=&gt;{t.nodes=[],e.sortAndUpdateRange()},e.addSegment=(n,r,o,a)=&gt;{e.sortAndUpdateRange();for(let e=0;e&lt;t.nodes.length;)t.nodes[e].x&gt;=n&amp;&amp;t.nodes[e].x&lt;=o?t.nodes.splice(e,1):e++;e.addPoint(n,r,.5,0),e.addPoint(o,a,.5,0)},e.getValue=t=&gt;{const n=[];return e.getTable(t,t,1,n),n[0]},e.adjustRange=n=&gt;{if(n.length&lt;2)return 0;const r=e.getRange();r[0]&lt;n[0]?e.addPoint(n[0],e.getValue(n[0])):e.addPoint(n[0],e.getValue(r[0])),r[1]&gt;n[1]?e.addPoint(n[1],e.getValue(n[1])):e.addPoint(n[1],e.getValue(r[1])),e.sortAndUpdateRange();for(let e=0;e&lt;t.nodes.length;)t.nodes[e].x&gt;=n[0]&amp;&amp;t.nodes[e].x&lt;=n[1]?t.nodes.splice(e,1):++e;return e.sortAndUpdateRange(),1},e.estimateMinNumberOfSamples=(t,n)=&gt;{const r=e.findMinimumXDistance();return Math.ceil((n-t)/r)},e.findMinimumXDistance=()=&gt;{const e=t.nodes.length;if(e&lt;2)return-1;let n=t.nodes[1].x-t.nodes[0].x;for(let r=0;r&lt;e-1;r++){const e=t.nodes[r+1].x-t.nodes[r].x;e&lt;n&amp;&amp;(n=e)}return n},e.getTable=(e,n,r,o,a=1)=&gt;{let i,s=0;const l=t.nodes.length;let c=0;0!==l&amp;&amp;(c=t.nodes[l-1].y);let u=0,d=0,p=0,f=0,g=0,m=0,h=0;for(i=0;i&lt;r;i++){const v=a*i;for(u=r&gt;1?e+i/(r-1)*(n-e):.5*(e+n);s&lt;l&amp;&amp;u&gt;t.nodes[s].x;)s++,s&lt;l&amp;&amp;(d=t.nodes[s-1].x,p=t.nodes[s].x,f=t.nodes[s-1].y,g=t.nodes[s].y,m=t.nodes[s-1].midpoint,h=t.nodes[s-1].sharpness,m&lt;1e-5&amp;&amp;(m=1e-5),m&gt;.99999&amp;&amp;(m=.99999));if(s&gt;=l)o[v]=t.clamping?c:0;else if(0===s)o[v]=t.clamping?t.nodes[0].y:0;else{let e=(u-d)/(p-d);if(e=e&lt;m?.5*e/m:.5+.5*(e-m)/(1-m),h&gt;.99){if(e&lt;.5){o[v]=f;continue}o[v]=g;continue}if(h&lt;.01){o[v]=(1-e)*f+e*g;continue}e&lt;.5?e=.5*(2*e)**(1+10*h):e&gt;.5&amp;&amp;(e=1-.5*(2*(1-e))**(1+10*h));const t=e*e,n=t*e,r=2*n-3*t+1,a=-2*n+3*t,i=n-2*t+e,s=n-t,l=(1-h)*(g-f);o[v]=r*f+a*g+i*l+s*l;const c=f&lt;g?f:g,T=f&gt;g?f:g;o[v]=o[v]&lt;c?c:o[v],o[v]=o[v]&gt;T?T:o[v]}}}}(e,t)}var rb={newInstance:sn.newInstance(nb,&quot;vtkPiecewiseFunction&quot;),extend:nb};const{InterpolationType:ob,OpacityMode:ab,FilterMode:ib,ColorMixPreset:sb}=mg,{vtkErrorMacro:lb}=sn;function cb(e,t,n={}){if(Object.assign(t,(e=&gt;({colorMixPreset:sb.DEFAULT,independentComponents:!0,interpolationType:ob.FAST_LINEAR,shade:!1,ambient:.1,diffuse:.7,specular:.2,specularPower:10,useLabelOutline:!1,labelOutlineThickness:[1],labelOutlineOpacity:1,ipScalarRange:[-1e6,1e6],filterMode:ib.OFF,preferSizeOverAccuracy:!1,computeNormalFromOpacity:!1,volumetricScatteringBlending:0,globalIlluminationReach:0,anisotropy:0,localAmbientOcclusion:!1,LAOKernelSize:15,LAOKernelRadius:7,updatedExtents:[],...e}))(n)),sn.obj(e,t),!t.componentData){t.componentData=[];for(let e=0;e&lt;4;++e)t.componentData.push({colorChannels:1,grayTransferFunction:null,rGBTransferFunction:null,scalarOpacity:null,scalarOpacityUnitDistance:1,opacityMode:ab.FRACTIONAL,gradientOpacityMinimumValue:0,gradientOpacityMinimumOpacity:0,gradientOpacityMaximumValue:1,gradientOpacityMaximumOpacity:1,useGradientOpacity:!1,componentWeight:1,forceNearestInterpolation:!1})}sn.setGet(e,t,[&quot;colorMixPreset&quot;,&quot;independentComponents&quot;,&quot;interpolationType&quot;,&quot;shade&quot;,&quot;ambient&quot;,&quot;diffuse&quot;,&quot;specular&quot;,&quot;specularPower&quot;,&quot;useLabelOutline&quot;,&quot;labelOutlineOpacity&quot;,&quot;filterMode&quot;,&quot;preferSizeOverAccuracy&quot;,&quot;computeNormalFromOpacity&quot;,&quot;volumetricScatteringBlending&quot;,&quot;globalIlluminationReach&quot;,&quot;anisotropy&quot;,&quot;localAmbientOcclusion&quot;,&quot;LAOKernelSize&quot;,&quot;LAOKernelRadius&quot;,&quot;updatedExtents&quot;]),sn.setGetArray(e,t,[&quot;ipScalarRange&quot;],2),sn.setGetArray(e,t,[&quot;labelOutlineThickness&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkVolumeProperty&quot;);const n={...e};e.getMTime=()=&gt;{let e,n=t.mtime;for(let r=0;r&lt;4;r++)1===t.componentData[r].colorChannels?t.componentData[r].grayTransferFunction&amp;&amp;(e=t.componentData[r].grayTransferFunction.getMTime(),n=n&gt;e?n:e):3===t.componentData[r].colorChannels&amp;&amp;t.componentData[r].rGBTransferFunction&amp;&amp;(e=t.componentData[r].rGBTransferFunction.getMTime(),n=n&gt;e?n:e),t.componentData[r].scalarOpacity&amp;&amp;(e=t.componentData[r].scalarOpacity.getMTime(),n=n&gt;e?n:e),t.componentData[r].gradientOpacity&amp;&amp;(t.componentData[r].disableGradientOpacity||(e=t.componentData[r].gradientOpacity.getMTime(),n=n&gt;e?n:e));return n},e.getColorChannels=e=&gt;e&lt;0||e&gt;3?(lb(&quot;Bad index - must be between 0 and 3&quot;),0):t.componentData[e].colorChannels,e.setGrayTransferFunction=(n=0,r=null)=&gt;{let o=!1;return t.componentData[n].grayTransferFunction!==r&amp;&amp;(t.componentData[n].grayTransferFunction=r,o=!0),1!==t.componentData[n].colorChannels&amp;&amp;(t.componentData[n].colorChannels=1,o=!0),o&amp;&amp;e.modified(),o},e.getGrayTransferFunction=(n=0)=&gt;(null===t.componentData[n].grayTransferFunction&amp;&amp;(t.componentData[n].grayTransferFunction=rb.newInstance(),t.componentData[n].grayTransferFunction.addPoint(0,0),t.componentData[n].grayTransferFunction.addPoint(1024,1),1!==t.componentData[n].colorChannels&amp;&amp;(t.componentData[n].colorChannels=1),e.modified()),t.componentData[n].grayTransferFunction),e.setRGBTransferFunction=(n=0,r=null)=&gt;{let o=!1;return t.componentData[n].rGBTransferFunction!==r&amp;&amp;(t.componentData[n].rGBTransferFunction=r,o=!0),3!==t.componentData[n].colorChannels&amp;&amp;(t.componentData[n].colorChannels=3,o=!0),o&amp;&amp;e.modified(),o},e.getRGBTransferFunction=(n=0)=&gt;(null===t.componentData[n].rGBTransferFunction&amp;&amp;(t.componentData[n].rGBTransferFunction=jy.newInstance(),t.componentData[n].rGBTransferFunction.addRGBPoint(0,0,0,0),t.componentData[n].rGBTransferFunction.addRGBPoint(1024,1,1,1),3!==t.componentData[n].colorChannels&amp;&amp;(t.componentData[n].colorChannels=3),e.modified()),t.componentData[n].rGBTransferFunction),e.setScalarOpacity=(n=0,r=null)=&gt;t.componentData[n].scalarOpacity!==r&amp;&amp;(t.componentData[n].scalarOpacity=r,e.modified(),!0),e.getScalarOpacity=(n=0)=&gt;(null===t.componentData[n].scalarOpacity&amp;&amp;(t.componentData[n].scalarOpacity=rb.newInstance(),t.componentData[n].scalarOpacity.addPoint(0,1),t.componentData[n].scalarOpacity.addPoint(1024,1),e.modified()),t.componentData[n].scalarOpacity),e.setComponentWeight=(n=0,r=1)=&gt;{if(n&lt;0||n&gt;=4)return lb(&quot;Invalid index&quot;),!1;const o=Math.min(1,Math.max(0,r));return t.componentData[n].componentWeight!==o&amp;&amp;(t.componentData[n].componentWeight=o,e.modified(),!0)},e.getComponentWeight=(e=0)=&gt;e&lt;0||e&gt;=4?(lb(&quot;Invalid index&quot;),0):t.componentData[e].componentWeight,e.setInterpolationTypeToNearest=()=&gt;e.setInterpolationType(ob.NEAREST),e.setInterpolationTypeToLinear=()=&gt;e.setInterpolationType(ob.LINEAR),e.setInterpolationTypeToFastLinear=()=&gt;e.setInterpolationType(ob.FAST_LINEAR),e.getInterpolationTypeAsString=()=&gt;sn.enumToString(ob,t.interpolationType),[&quot;useGradientOpacity&quot;,&quot;scalarOpacityUnitDistance&quot;,&quot;gradientOpacityMinimumValue&quot;,&quot;gradientOpacityMinimumOpacity&quot;,&quot;gradientOpacityMaximumValue&quot;,&quot;gradientOpacityMaximumOpacity&quot;,&quot;opacityMode&quot;,&quot;forceNearestInterpolation&quot;].forEach((n=&gt;{const r=sn.capitalize(n);e[`set${r}`]=(r,o)=&gt;t.componentData[r][`${n}`]!==o&amp;&amp;(t.componentData[r][`${n}`]=o,e.modified(),!0)})),[&quot;useGradientOpacity&quot;,&quot;scalarOpacityUnitDistance&quot;,&quot;gradientOpacityMinimumValue&quot;,&quot;gradientOpacityMinimumOpacity&quot;,&quot;gradientOpacityMaximumValue&quot;,&quot;gradientOpacityMaximumOpacity&quot;,&quot;opacityMode&quot;,&quot;forceNearestInterpolation&quot;].forEach((n=&gt;{const r=sn.capitalize(n);e[`get${r}`]=e=&gt;t.componentData[e][`${n}`]})),e.setAverageIPScalarRange=(t,n)=&gt;{console.warn(&quot;setAverageIPScalarRange is deprecated use setIpScalarRange&quot;),e.setIpScalarRange(t,n)},e.getFilterModeAsString=()=&gt;sn.enumToString(ib,t.filterMode),e.setFilterModeToOff=()=&gt;{e.setFilterMode(ib.OFF)},e.setFilterModeToNormalized=()=&gt;{e.setFilterMode(ib.NORMALIZED)},e.setFilterModeToRaw=()=&gt;{e.setFilterMode(ib.RAW)},e.setGlobalIlluminationReach=e=&gt;n.setGlobalIlluminationReach(Ra(e,0,1)),e.setVolumetricScatteringBlending=e=&gt;n.setVolumetricScatteringBlending(Ra(e,0,1)),e.setAnisotropy=e=&gt;n.setAnisotropy(Ra(e,-.99,.99)),e.setLAOKernelSize=e=&gt;n.setLAOKernelSize(Ro(Ra(e,1,32))),e.setLAOKernelRadius=e=&gt;n.setLAOKernelRadius(e&gt;=1?e:1)}(e,t)}var ub={newInstance:sn.newInstance(cb,&quot;vtkVolumeProperty&quot;),extend:cb,...mg};const db={mapper:null};function pb(e,t,n={}){Object.assign(t,db,n),ts.extend(e,t,n),t.boundsMTime={},sn.obj(t.boundsMTime),sn.setGet(e,t,[&quot;mapper&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkVolume&quot;),e.getVolumes=()=&gt;[e],e.makeProperty=ub.newInstance,e.getRedrawMTime=()=&gt;{let e=t.mtime;if(null!==t.mapper){let n=t.mapper.getMTime();e=n&gt;e?n:e,null!==t.mapper.getInput()&amp;&amp;(t.mapper.getInputAlgorithm().update(),n=t.mapper.getInput().getMTime(),e=n&gt;e?n:e)}return e}}(e,t)}var fb={newInstance:sn.newInstance(pb,&quot;vtkVolume&quot;),extend:pb};const{BlendMode:gb}=vg;const mb=[&quot;getAnisotropy&quot;,&quot;getComputeNormalFromOpacity&quot;,&quot;getFilterMode&quot;,&quot;getFilterModeAsString&quot;,&quot;getGlobalIlluminationReach&quot;,&quot;getIpScalarRange&quot;,&quot;getIpScalarRangeByReference&quot;,&quot;getLAOKernelRadius&quot;,&quot;getLAOKernelSize&quot;,&quot;getLocalAmbientOcclusion&quot;,&quot;getPreferSizeOverAccuracy&quot;,&quot;getVolumetricScatteringBlending&quot;,&quot;setAnisotropy&quot;,&quot;setAverageIPScalarRange&quot;,&quot;setComputeNormalFromOpacity&quot;,&quot;setFilterMode&quot;,&quot;setFilterModeToNormalized&quot;,&quot;setFilterModeToOff&quot;,&quot;setFilterModeToRaw&quot;,&quot;setGlobalIlluminationReach&quot;,&quot;setIpScalarRange&quot;,&quot;setIpScalarRangeFrom&quot;,&quot;setLAOKernelRadius&quot;,&quot;setLAOKernelSize&quot;,&quot;setLocalAmbientOcclusion&quot;,&quot;setPreferSizeOverAccuracy&quot;,&quot;setVolumetricScatteringBlending&quot;],hb={createRadonTransferFunction:function(e,t,n,r,o){let a=null;return o?(a=o,a.removeAllPoints()):a=rb.newInstance(),a.addPointLong(-1024,0,1,1),a.addPoint(e,t),a.addPoint(n,r),a}};function vb(e,t,n={}){Object.assign(t,(e=&gt;({bounds:[...Hi.INIT_BOUNDS],sampleDistance:1,imageSampleDistance:1,maximumSamplesPerRay:1e3,autoAdjustSampleDistances:!0,initialInteractionScale:1,interactionSampleDistanceFactor:1,blendMode:gb.COMPOSITE_BLEND,volumeShadowSamplingDistFactor:5,colorTextureWidth:1024,opacityTextureWidth:1024,labelOutlineTextureWidth:1024,...e}))(n)),Ls.extend(e,t,n),sn.setGet(e,t,[&quot;sampleDistance&quot;,&quot;imageSampleDistance&quot;,&quot;maximumSamplesPerRay&quot;,&quot;autoAdjustSampleDistances&quot;,&quot;initialInteractionScale&quot;,&quot;interactionSampleDistanceFactor&quot;,&quot;blendMode&quot;,&quot;volumeShadowSamplingDistFactor&quot;,&quot;colorTextureWidth&quot;,&quot;opacityTextureWidth&quot;,&quot;labelOutlineTextureWidth&quot;]),sn.event(e,t,&quot;lightingActivated&quot;),function(e,t){t.classHierarchy.push(&quot;vtkVolumeMapper&quot;);const n={...e};e.computeBounds=()=&gt;{const n=e.getInputData();n?(t.static||e.update(),Hi.setBounds(t.bounds,n.getBounds())):Hi.reset(t.bounds)},e.setBlendModeToComposite=()=&gt;{e.setBlendMode(gb.COMPOSITE_BLEND)},e.setBlendModeToMaximumIntensity=()=&gt;{e.setBlendMode(gb.MAXIMUM_INTENSITY_BLEND)},e.setBlendModeToMinimumIntensity=()=&gt;{e.setBlendMode(gb.MINIMUM_INTENSITY_BLEND)},e.setBlendModeToAverageIntensity=()=&gt;{e.setBlendMode(gb.AVERAGE_INTENSITY_BLEND)},e.setBlendModeToAdditiveIntensity=()=&gt;{e.setBlendMode(gb.ADDITIVE_INTENSITY_BLEND)},e.setBlendModeToRadonTransform=()=&gt;{e.setBlendMode(gb.RADON_TRANSFORM_BLEND)},e.getBlendModeAsString=()=&gt;sn.enumToString(gb,t.blendMode),e.setVolumeShadowSamplingDistFactor=e=&gt;n.setVolumeShadowSamplingDistFactor(e&gt;=1?e:1),mb.forEach((t=&gt;{e[t]=()=&gt;{throw new Error(`The method &quot;volumeMapper.${t}()&quot; doesn&#x27;t exist anymore. It is a rendering property that has been moved to the volume property. Replace your code with:\\nvolumeActor.getProperty().${t}()\\n`)}}))}(e,t)}var Tb={newInstance:sn.newInstance(vb,&quot;vtkVolumeMapper&quot;),extend:vb,...hb};const{InterpolationType:xb}=jf,{vtkErrorMacro:yb}=sn;function bb(e,t,n={}){if(Object.assign(t,(e=&gt;({independentComponents:!1,interpolationType:xb.LINEAR,colorWindow:255,colorLevel:127.5,ambient:1,diffuse:0,opacity:1,useLookupTableScalarRange:!1,useLabelOutline:!1,labelOutlineThickness:[1],labelOutlineOpacity:1,updatedExtents:[],...e}))(n)),sn.obj(e,t),!t.componentData){t.componentData=[];for(let e=0;e&lt;4;e++)t.componentData.push({rGBTransferFunction:null,piecewiseFunction:null,componentWeight:1})}sn.setGet(e,t,[&quot;independentComponents&quot;,&quot;interpolationType&quot;,&quot;colorWindow&quot;,&quot;colorLevel&quot;,&quot;ambient&quot;,&quot;diffuse&quot;,&quot;opacity&quot;,&quot;useLookupTableScalarRange&quot;,&quot;useLabelOutline&quot;,&quot;labelOutlineOpacity&quot;,&quot;updatedExtents&quot;]),sn.setGetArray(e,t,[&quot;labelOutlineThickness&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkImageProperty&quot;),e.getMTime=()=&gt;{let e,n=t.mtime;for(let r=0;r&lt;4;r++)t.componentData[r].rGBTransferFunction&amp;&amp;(e=t.componentData[r].rGBTransferFunction.getMTime(),n=n&gt;e?n:e),t.componentData[r].piecewiseFunction&amp;&amp;(e=t.componentData[r].piecewiseFunction.getMTime(),n=n&gt;e?n:e);return n},e.setRGBTransferFunction=(n=0,r=null)=&gt;{let o=n,a=r;return Number.isInteger(n)||(a=n,o=0),t.componentData[o].rGBTransferFunction!==a&amp;&amp;(t.componentData[o].rGBTransferFunction=a,e.modified(),!0)},e.getRGBTransferFunction=(e=0)=&gt;t.componentData[e].rGBTransferFunction,e.setPiecewiseFunction=(n=0,r=null)=&gt;{let o=n,a=r;return Number.isInteger(n)||(a=n,o=0),t.componentData[o].piecewiseFunction!==a&amp;&amp;(t.componentData[o].piecewiseFunction=a,e.modified(),!0)},e.getPiecewiseFunction=(e=0)=&gt;t.componentData[e].piecewiseFunction,e.setScalarOpacity=(t=0,n=null)=&gt;{let r=t,o=n;return Number.isInteger(t)||(o=t,r=0),e.setPiecewiseFunction(r,o)},e.getScalarOpacity=(t=0)=&gt;e.getPiecewiseFunction(t),e.setComponentWeight=(n=0,r=1)=&gt;{if(n&lt;0||n&gt;=4)return yb(&quot;Invalid index&quot;),!1;const o=Math.min(1,Math.max(0,r));return t.componentData[n].componentWeight!==o&amp;&amp;(t.componentData[n].componentWeight=o,e.modified(),!0)},e.getComponentWeight=(e=0)=&gt;e&lt;0||e&gt;=4?(yb(&quot;Invalid index&quot;),0):t.componentData[e].componentWeight,e.setInterpolationTypeToNearest=()=&gt;e.setInterpolationType(xb.NEAREST),e.setInterpolationTypeToLinear=()=&gt;e.setInterpolationType(xb.LINEAR),e.getInterpolationTypeAsString=()=&gt;sn.enumToString(xb,t.interpolationType)}(e,t)}var Ab={newInstance:sn.newInstance(bb,&quot;vtkImageProperty&quot;),extend:bb};const Cb={mapper:null,forceOpaque:!1,forceTranslucent:!1};function Sb(e,t,n={}){Object.assign(t,Cb,n),ts.extend(e,t,n),t.boundsMTime={},sn.obj(t.boundsMTime),sn.setGet(e,t,[&quot;mapper&quot;,&quot;forceOpaque&quot;,&quot;forceTranslucent&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkImageSlice&quot;),e.getActors=()=&gt;e,e.getImages=()=&gt;e,e.getIsOpaque=()=&gt;{if(t.forceOpaque)return!0;if(t.forceTranslucent)return!1;t.properties[0]||e.getProperty();let n=t.properties[0].getOpacity()&gt;=1;return n=n&amp;&amp;(!t.mapper||t.mapper.getIsOpaque()),n},e.hasTranslucentPolygonalGeometry=()=&gt;!1,e.makeProperty=Ab.newInstance,e.getBoundsForSlice=(n,r)=&gt;{const o=t.mapper.getBoundsForSlice(n,r);if(!Hi.isValid(o))return o;e.computeMatrix();const a=new Float64Array(16);return y(a,t.matrix),Hi.transformBounds(o,a)},e.getMinXBound=()=&gt;e.getBoundsByReference()[0],e.getMaxXBound=()=&gt;e.getBoundsByReference()[1],e.getMinYBound=()=&gt;e.getBoundsByReference()[2],e.getMaxYBound=()=&gt;e.getBoundsByReference()[3],e.getMinZBound=()=&gt;e.getBoundsByReference()[4],e.getMaxZBound=()=&gt;e.getBoundsByReference()[5],e.getRedrawMTime=()=&gt;{let e=t.mtime;if(null!==t.mapper){let n=t.mapper.getMTime();e=n&gt;e?n:e,null!==t.mapper.getInput()&amp;&amp;(t.mapper.getInputAlgorithm().update(),n=t.mapper.getInput().getMTime(),e=n&gt;e?n:e)}return t.properties.forEach((t=&gt;{e=Math.max(e,t.getMTime());const n=t.getRGBTransferFunction();null!==n&amp;&amp;(e=Math.max(e,n.getMTime()))})),e},e.getSupportsSelection=()=&gt;!!t.mapper&amp;&amp;t.mapper.getSupportsSelection()}(e,t)}var Pb={newInstance:sn.newInstance(Sb,&quot;vtkImageSlice&quot;),extend:Sb};const wb={slice:0,customDisplayExtent:[0,0,0,0,0,0],useCustomExtents:!1,backgroundColor:[0,0,0,1],colorTextureWidth:1024,opacityTextureWidth:1024,labelOutlineTextureWidth:1024};var Ib={extend:function(e,t,n={}){Object.assign(t,wb,n),Ls.extend(e,t,n),sn.setGet(e,t,[&quot;slice&quot;,&quot;useCustomExtents&quot;,&quot;colorTextureWidth&quot;,&quot;opacityTextureWidth&quot;,&quot;labelOutlineTextureWidth&quot;]),sn.setGetArray(e,t,[&quot;customDisplayExtent&quot;],6),sn.setGetArray(e,t,[&quot;backgroundColor&quot;],4),function(e,t){t.classHierarchy.push(&quot;vtkAbstractImageMapper&quot;),e.getIsOpaque=()=&gt;!0,e.getCurrentImage=()=&gt;null,e.getBoundsForSlice=()=&gt;(sn.vtkErrorMacro(&quot;vtkAbstractImageMapper.getBoundsForSlice - NOT IMPLEMENTED&quot;),Ga())}(e,t)}};function Ob(e,t,n){const r=n.getCurrentImage(),o=r.getExtent(),a=[o[0],o[2],o[4]],{ijkMode:i}=n.getClosestIJKAxis();let s=n.isA(&quot;vtkImageArrayMapper&quot;)?n.getSubSlice():n.getSlice();i!==n.getSlicingMode()&amp;&amp;(s=n.getSliceAtPosition(s)),a[i]+=s;const l=[0,0,0];r.indexToWorld(a,l),a[i]+=1;const c=[0,0,0];r.indexToWorld(a,c),c[0]-=l[0],c[1]-=l[1],c[2]-=l[2],te(c,c);const u=ai.intersectWithLine(e,t,l,c);if(u.intersection){const e=u.x,t=[0,0,0];return r.worldToIndex(e,t),{t:u.t,absoluteIJK:t}}return null}const{staticOffsetAPI:Rb,otherStaticMethods:Mb}=Ll,{SlicingMode:Db}=Qf;function Eb(e,t){function n(){let n;switch(t.slicingMode){case Db.X:n=0;break;case Db.Y:n=1;break;case Db.Z:n=2;break;default:return void(t.closestIJKAxis={ijkMode:t.slicingMode,flip:!1})}const r=Ua(e.getCurrentImage().getDirection());let o=0;for(;o&lt;3&amp;&amp;0===r[n+3*o];++o);const a=r[n+3*o]&lt;0;t.closestIJKAxis={ijkMode:o,flip:a}}t.classHierarchy.push(&quot;vtkImageMapper&quot;),e.getSliceAtPosition=n=&gt;{const r=e.getCurrentImage();let o;if(3===n.length)o=n;else if(Number.isFinite(n)){const e=r.getBounds();switch(t.slicingMode){case Db.X:o=[n,(e[3]+e[2])/2,(e[5]+e[4])/2];break;case Db.Y:o=[(e[1]+e[0])/2,n,(e[5]+e[4])/2];break;case Db.Z:o=[(e[1]+e[0])/2,(e[3]+e[2])/2,n]}}const a=[0,0,0];r.worldToIndex(o,a);const i=r.getExtent(),{ijkMode:s}=e.getClosestIJKAxis();let l=0;switch(s){case Db.I:l=Ra(a[0],i[0],i[1]);break;case Db.J:l=Ra(a[1],i[2],i[3]);break;case Db.K:l=Ra(a[2],i[4],i[5]);break;default:return 0}return l},e.setSliceFromCamera=n=&gt;{const r=n.getFocalPoint();switch(t.slicingMode){case Db.I:case Db.J:case Db.K:{const t=e.getSliceAtPosition(r);e.setSlice(t)}break;case Db.X:e.setSlice(r[0]);break;case Db.Y:e.setSlice(r[1]);break;case Db.Z:e.setSlice(r[2])}},e.setXSlice=t=&gt;{e.setSlicingMode(Db.X),e.setSlice(t)},e.setYSlice=t=&gt;{e.setSlicingMode(Db.Y),e.setSlice(t)},e.setZSlice=t=&gt;{e.setSlicingMode(Db.Z),e.setSlice(t)},e.setISlice=t=&gt;{e.setSlicingMode(Db.I),e.setSlice(t)},e.setJSlice=t=&gt;{e.setSlicingMode(Db.J),e.setSlice(t)},e.setKSlice=t=&gt;{e.setSlicingMode(Db.K),e.setSlice(t)},e.getSlicingModeNormal=()=&gt;{const n=[0,0,0],r=e.getCurrentImage().getDirection();switch(t.slicingMode){case Db.X:n[0]=1;break;case Db.Y:n[1]=1;break;case Db.Z:n[2]=1;break;case Db.I:$o(r,[1,0,0],n);break;case Db.J:$o(r,[0,1,0],n);break;case Db.K:$o(r,[0,0,1],n)}return n},e.setSlicingMode=r=&gt;{t.slicingMode!==r&amp;&amp;(t.slicingMode=r,e.getCurrentImage()&amp;&amp;n(),e.modified())},e.getClosestIJKAxis=()=&gt;(void 0!==t.closestIJKAxis&amp;&amp;t.closestIJKAxis.ijkMode!==Db.NONE||!e.getCurrentImage()||n(),t.closestIJKAxis),e.computeBounds=()=&gt;{const n=e.getCurrentImage();if(!n)return void Hi.reset(t.bounds);if(!t.useCustomExtents)return void Hi.setBounds(t.bounds,n.getBounds());const r=t.customDisplayExtent.slice(),{ijkMode:o}=e.getClosestIJKAxis();let a=t.slice;switch(o!==t.slicingMode&amp;&amp;(a=e.getSliceAtPosition(t.slice)),o){case Db.I:r[0]=a,r[1]=a;break;case Db.J:r[2]=a,r[3]=a;break;case Db.K:r[4]=a,r[5]=a}Hi.setBounds(t.bounds,n.extentToBounds(r))},e.getBoundsForSlice=(n=t.slice,r=0)=&gt;{const o=e.getCurrentImage();if(!o)return Ga();const a=o.getSpatialExtent(),{ijkMode:i}=e.getClosestIJKAxis();let s=n;switch(i!==t.slicingMode&amp;&amp;(s=e.getSliceAtPosition(n)),i){case Db.I:a[0]=s-r,a[1]=s+r;break;case Db.J:a[2]=s-r,a[3]=s+r;break;case Db.K:a[4]=s-r,a[5]=s+r}return o.extentToBounds(a)},e.intersectWithLineForPointPicking=(t,n)=&gt;function(e,t,n){const r=Ob(e,t,n);if(r){const e=n.getCurrentImage().getExtent(),t=[Math.round(r.absoluteIJK[0]),Math.round(r.absoluteIJK[1]),Math.round(r.absoluteIJK[2])];return t[0]&lt;e[0]||t[0]&gt;e[1]||t[1]&lt;e[2]||t[1]&gt;e[3]||t[2]&lt;e[4]||t[2]&gt;e[5]?null:{t:r.t,ijk:t}}return null}(t,n,e),e.intersectWithLineForCellPicking=(t,n)=&gt;function(e,t,n){const r=Ob(e,t,n);if(r){const e=n.getCurrentImage().getExtent(),t=r.absoluteIJK,o=[Math.floor(t[0]),Math.floor(t[1]),Math.floor(t[2])];if(o[0]&lt;e[0]||o[0]&gt;e[1]-1||o[1]&lt;e[2]||o[1]&gt;e[3]-1||o[2]&lt;e[4]||o[2]&gt;(e[5]?e[5]-1:e[5]))return null;const a=[t[0]-o[0],t[1]-o[1],t[2]-o[2]];return{t:r.t,ijk:o,pCoords:a}}return null}(t,n,e),e.getCurrentImage=()=&gt;e.getInputData()}const Vb={slicingMode:Db.NONE,closestIJKAxis:{ijkMode:Db.NONE,flip:!1},renderToRectangle:!1,sliceAtFocalPoint:!1,preferSizeOverAccuracy:!1};function Lb(e,t,n={}){Object.assign(t,Vb,n),Ib.extend(e,t,n),sn.get(e,t,[&quot;slicingMode&quot;]),sn.setGet(e,t,[&quot;closestIJKAxis&quot;,&quot;renderToRectangle&quot;,&quot;sliceAtFocalPoint&quot;,&quot;preferSizeOverAccuracy&quot;]),Ll.implementCoincidentTopologyMethods(e,t),Eb(e,t)}var Bb={newInstance:sn.newInstance(Lb,&quot;vtkImageMapper&quot;),extend:Lb,...Rb,...Mb,...Qf};const{vtkErrorMacro:Fb}=sn;function Nb(e,t,n,r){e.set(function(e,t){let n=0;return e.map(((e,r)=&gt;r===n?(n+=e+1,e):e+t))}(t,n),r)}const kb={outputPointsPrecision:Us.DEFAULT};function Gb(e,t,n={}){Object.assign(t,kb,n),sn.setGet(e,t,[&quot;outputPointsPrecision&quot;]),sn.obj(e,t),sn.algo(e,t,1,1),function(e,t){t.classHierarchy.push(&quot;vtkAppendPolyData&quot;),e.requestData=(n,r)=&gt;{const o=e.getNumberOfInputPorts();if(!o)return void Fb(&quot;No input specified.&quot;);if(1===o)return void(r[0]=n[0]);const a=r[0]&amp;&amp;n[0]!==r[0]?r[0].initialize():Ru.newInstance();let i=0,s=0,l=1,c=1,u=0,d=0,p=0,f=0,g=!0,m=!0,h=!0;for(let e=0;e&lt;o;e++){const t=n[e];if(!t)continue;const r=t.getPoints().getNumberOfPoints();i+=r,u+=t.getVerts().getNumberOfValues(),d+=t.getLines().getNumberOfValues(),p+=t.getStrips().getNumberOfValues(),f+=t.getPolys().getNumberOfValues(),r&amp;&amp;(c&amp;&amp;(c=0,s=t.getPoints().getDataType()),l=t.getPoints().getDataType(),s=s&gt;l?s:l);const o=t.getPointData();o?(g=g&amp;&amp;null!==o.getNormals(),m=m&amp;&amp;null!==o.getTCoords(),h=h&amp;&amp;null!==o.getScalars()):(g=!1,m=!1,h=!1)}t.outputPointsPrecision===Us.SINGLE?s=ms.FLOAT:t.outputPointsPrecision===Us.DOUBLE&amp;&amp;(s=ms.DOUBLE);const v=lc.newInstance({dataType:s});v.setNumberOfPoints(i);const T=v.getData(),x=new Uint32Array(u),y=new Uint32Array(d),b=new Uint32Array(p),A=new Uint32Array(f);let C=null,S=null,P=null;const w=n[o-1];if(g){const e=w.getPointData().getNormals();C=Is.newInstance({numberOfComponents:3,numberOfTuples:i,size:3*i,dataType:e.getDataType(),name:e.getName()})}if(m){const e=w.getPointData().getTCoords();S=Is.newInstance({numberOfComponents:2,numberOfTuples:i,size:2*i,dataType:e.getDataType(),name:e.getName()})}if(h){const e=w.getPointData().getScalars();P=Is.newInstance({numberOfComponents:e.getNumberOfComponents(),numberOfTuples:i,size:i*e.getNumberOfComponents(),dataType:e.getDataType(),name:e.getName()})}i=0,u=0,d=0,p=0,f=0;for(let e=0;e&lt;o;e++){const t=n[e];T.set(t.getPoints().getData(),3*i),Nb(x,t.getVerts().getData(),i,u),u+=t.getVerts().getNumberOfValues(),Nb(y,t.getLines().getData(),i,d),d+=t.getLines().getNumberOfValues(),Nb(b,t.getStrips().getData(),i,p),p+=t.getStrips().getNumberOfValues(),Nb(A,t.getPolys().getData(),i,f),f+=t.getPolys().getNumberOfValues();const r=t.getPointData();if(g){const e=r.getNormals();C.getData().set(e.getData(),3*i)}if(m){const e=r.getTCoords();S.getData().set(e.getData(),2*i)}if(h){const e=r.getScalars();P.getData().set(e.getData(),i*P.getNumberOfComponents())}i+=t.getPoints().getNumberOfPoints()}a.setPoints(v),a.getVerts().setData(x),a.getLines().setData(y),a.getStrips().setData(b),a.getPolys().setData(A),C&amp;&amp;a.getPointData().setNormals(C),S&amp;&amp;a.getPointData().setTCoords(S),P&amp;&amp;a.getPointData().setScalars(P),r[0]=a}}(e,t)}var Ub={newInstance:sn.newInstance(Gb,&quot;vtkAppendPolyData&quot;),extend:Gb};const _b={height:1,radius:.5,resolution:6,center:[0,0,0],direction:[1,0,0],capping:!0,pointType:&quot;Float64Array&quot;};function Kb(e,t,n={}){Object.assign(t,_b,n),sn.obj(e,t),sn.setGet(e,t,[&quot;height&quot;,&quot;radius&quot;,&quot;resolution&quot;,&quot;capping&quot;]),sn.setGetArray(e,t,[&quot;center&quot;,&quot;direction&quot;],3),sn.algo(e,t,0,1),function(e,t){t.classHierarchy.push(&quot;vtkConeSource&quot;),e.requestData=(e,n)=&gt;{const r=2*Math.PI/t.resolution,o=-t.height/2,a=t.resolution+1,i=4*t.resolution+1+t.resolution;let s=0;const l=sn.newTypedArray(t.pointType,3*a);let c=0;const u=new Uint32Array(i);l[0]=t.height/2,l[1]=0,l[2]=0,t.capping&amp;&amp;(u[c++]=t.resolution);for(let e=0;e&lt;t.resolution;e++)s++,l[3*s+0]=o,l[3*s+1]=t.radius*Math.cos(e*r),l[3*s+2]=t.radius*Math.sin(e*r),t.capping&amp;&amp;(u[t.resolution-c+++1]=s);for(let e=0;e&lt;t.resolution;e++)u[c++]=3,u[c++]=0,u[c++]=e+1,u[c++]=e+2&gt;t.resolution?1:e+2;Of.buildFromRadian().translate(...t.center).rotateFromDirections([1,0,0],t.direction).apply(l);const d=n[0]?.initialize()||Ru.newInstance();d.getPoints().setData(l,3),d.getPolys().setData(u,1),n[0]=d}}(e,t)}var zb={newInstance:sn.newInstance(Kb,&quot;vtkConeSource&quot;),extend:Kb};const Wb={height:1,initAngle:0,radius:1,resolution:6,center:[0,0,0],direction:[0,1,0],capping:!0,pointType:&quot;Float64Array&quot;};function Hb(e,t,n={}){Object.assign(t,Wb,n),sn.obj(e,t),sn.setGet(e,t,[&quot;height&quot;,&quot;initAngle&quot;,&quot;otherRadius&quot;,&quot;radius&quot;,&quot;resolution&quot;,&quot;capping&quot;]),sn.setGetArray(e,t,[&quot;center&quot;,&quot;direction&quot;],3),sn.algo(e,t,0,1),function(e,t){t.classHierarchy.push(&quot;vtkCylinderSource&quot;),e.requestData=(e,n)=&gt;{const r=2*Math.PI/t.resolution;let o=2*t.resolution,a=5*t.resolution;t.capping&amp;&amp;(o=4*t.resolution,a=7*t.resolution+2);const i=sn.newTypedArray(t.pointType,3*o);let s=0;const l=new Uint32Array(a),c=new Float32Array(3*o),u=Is.newInstance({numberOfComponents:3,values:c,name:&quot;Normals&quot;}),d=new Float32Array(2*o),p=Is.newInstance({numberOfComponents:2,values:d,name:&quot;TCoords&quot;}),f=[0,0,0],g=[0,0,0],m=[0,0,0],h=[0,0,0],v=[0,0],T=[0,0],x=null==t.otherRadius?t.radius:t.otherRadius;for(let e=0;e&lt;t.resolution;e++){f[0]=Math.cos(e*r+t.initAngle),g[0]=f[0],m[0]=t.radius*f[0]+t.center[0],h[0]=m[0],v[0]=Math.abs(2*e/t.resolution-1),T[0]=v[0],m[1]=.5*t.height+t.center[1],h[1]=-.5*t.height+t.center[1],v[1]=0,T[1]=1,f[2]=-Math.sin(e*r+t.initAngle),g[2]=f[2],m[2]=x*f[2]+t.center[2],h[2]=m[2];const n=2*e;for(let e=0;e&lt;3;e++)c[3*n+e]=f[e],c[3*(n+1)+e]=g[e],i[3*n+e]=m[e],i[3*(n+1)+e]=h[e],e&lt;2&amp;&amp;(d[2*n+e]=v[e],d[2*(n+1)+e]=T[e])}for(let e=0;e&lt;t.resolution;e++){l[s++]=4,l[s++]=2*e,l[s++]=2*e+1;const n=(2*e+3)%(2*t.resolution);l[s++]=n,l[s++]=n-1}if(t.capping){for(let e=0;e&lt;t.resolution;e++){m[0]=t.radius*Math.cos(e*r+t.initAngle),h[0]=m[0],v[0]=m[0],T[0]=m[0],m[0]+=t.center[0],h[0]+=t.center[0],f[1]=1,g[1]=-1,m[1]=.5*t.height+t.center[1],h[1]=-.5*t.height+t.center[1],m[2]=-x*Math.sin(e*r+t.initAngle),h[2]=m[2],v[1]=m[2],T[1]=m[2],m[2]+=t.center[2],h[2]+=t.center[2];const n=2*t.resolution+e,o=3*t.resolution+t.resolution-e-1;for(let e=0;e&lt;3;e++)c[3*n+e]=f[e],c[3*o+e]=g[e],i[3*n+e]=m[e],i[3*o+e]=h[e],e&lt;2&amp;&amp;(d[2*n+e]=v[e],d[2*o+e]=T[e])}l[s++]=t.resolution;for(let e=0;e&lt;t.resolution;e++)l[s++]=2*t.resolution+e;l[s++]=t.resolution;for(let e=0;e&lt;t.resolution;e++)l[s++]=3*t.resolution+e}Of.buildFromRadian().translate(...t.center).rotateFromDirections([0,1,0],t.direction).translate(...t.center.map((e=&gt;-1*e))).apply(i);const y=n[0]?.initialize()||Ru.newInstance();y.getPoints().setData(i,3),y.getPolys().setData(l,1),y.getPointData().setNormals(u),y.getPointData().setTCoords(p),n[0]=y}}(e,t)}var jb={newInstance:sn.newInstance(Hb,&quot;vtkCylinderSource&quot;),extend:Hb};const Xb={tipResolution:6,tipRadius:.1,tipLength:.35,shaftResolution:6,shaftRadius:.03,invert:!1,direction:[1,0,0],pointType:&quot;Float64Array&quot;};function qb(e,t,n={}){Object.assign(t,Xb,n),sn.obj(e,t),sn.setGet(e,t,[&quot;tipResolution&quot;,&quot;tipRadius&quot;,&quot;tipLength&quot;,&quot;shaftResolution&quot;,&quot;shaftRadius&quot;,&quot;invert&quot;]),sn.setGetArray(e,t,[&quot;direction&quot;],3),sn.algo(e,t,0,1),function(e,t){t.classHierarchy.push(&quot;vtkArrowSource&quot;),e.requestData=(e,n)=&gt;{const r=jb.newInstance({capping:!0});r.setResolution(t.shaftResolution),r.setRadius(t.shaftRadius),r.setHeight(1-t.tipLength),r.setCenter(0,.5*(1-t.tipLength),0);const o=r.getOutputData(),a=o.getPoints().getData(),i=o.getPointData().getNormals().getData();Of.buildFromDegree().rotateZ(-90).apply(a).apply(i);const s=zb.newInstance();s.setResolution(t.tipResolution),s.setHeight(t.tipLength),s.setRadius(t.tipRadius);const l=s.getOutputData(),c=l.getPoints().getData();Of.buildFromRadian().translate(1-.5*t.tipLength,0,0).apply(c);const u=Ub.newInstance();u.setInputData(o),u.addInputData(l);const d=u.getOutputData(),p=d.getPoints().getData();Of.buildFromRadian().translate(.5*t.tipLength-.5,0,0).apply(p),t.invert?(Of.buildFromRadian().rotateFromDirections([1,0,0],t.direction).scale(-1,-1,-1).apply(p),n[0]=d):(Of.buildFromRadian().rotateFromDirections([1,0,0],t.direction).scale(1,1,1).apply(p),n[0]=u.getOutputData())}}(e,t)}var Yb={newInstance:sn.newInstance(qb,&quot;vtkArrowSource&quot;),extend:qb};function Jb(e){const t=e.getPoints().getBounds(),n=[.5*-(t[0]+t[1]),.5*-(t[2]+t[3]),.5*-(t[4]+t[5])];Of.buildFromDegree().translate(...n).apply(e.getPoints().getData())}function Zb(e,t,n=!1){const r=e.getPoints().getBounds(),o=[0,0,0];o[t]=n?-r[2*t+1]:-r[2*t],Of.buildFromDegree().translate(...o).apply(e.getPoints().getData())}function Qb(e,t,n,r){const o=e.getPoints().getData().length,a=new Uint8ClampedArray(o);let i=0;for(;i&lt;o;)a[i++]=t,a[i++]=n,a[i++]=r;e.getPointData().setScalars(Is.newInstance({name:&quot;color&quot;,numberOfComponents:3,values:a}))}function $b(e,t,n={}){fs.extend(e,t,function(e){return{config:{recenter:!0,tipResolution:60,tipRadius:.1,tipLength:.2,shaftResolution:60,shaftRadius:.03,invert:!1,...e?.config},xConfig:{color:[255,0,0],invert:!1,...e?.xConfig},yConfig:{color:[255,255,0],invert:!1,...e?.yConfig},zConfig:{color:[0,128,0],invert:!1,...e?.zConfig}}}(n)),sn.setGet(e,t,[&quot;config&quot;,&quot;xConfig&quot;,&quot;yConfig&quot;,&quot;zConfig&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkAxesActor&quot;);const n=Ql.newInstance();e.setMapper(n),e.update=()=&gt;{let e={...t.config,...t.xConfig};const r=Yb.newInstance({direction:[1,0,0],...e}).getOutputData();t.config.recenter?Jb(r):Zb(r,0,e.invert),Qb(r,...e.color),e={...t.config,...t.yConfig};const o=Yb.newInstance({direction:[0,1,0],...e}).getOutputData();t.config.recenter?Jb(o):Zb(o,1,e.invert),Qb(o,...e.color),e={...t.config,...t.zConfig};const a=Yb.newInstance({direction:[0,0,1],...e}).getOutputData();t.config.recenter?Jb(a):Zb(a,2,e.invert),Qb(a,...e.color);const i=Ub.newInstance();i.setInputData(r),i.addInputData(o),i.addInputData(a),n.setInputConnection(i.getOutputPort())},e.update();const r=sn.debounce(e.update,0);e.setXAxisColor=t=&gt;e.setXConfig({...e.getXConfig(),color:t}),e.setYAxisColor=t=&gt;e.setYConfig({...e.getYConfig(),color:t}),e.setZAxisColor=t=&gt;e.setZConfig({...e.getZConfig(),color:t}),e.getXAxisColor=()=&gt;t.getXConfig().color,e.getYAxisColor=()=&gt;t.getYConfig().color,e.getZAxisColor=()=&gt;t.getZConfig().color,t._onConfigChanged=r,t._onXConfigChanged=r,t._onYConfigChanged=r,t._onZConfigChanged=r}(e,t)}var eA={newInstance:sn.newInstance($b,&quot;vtkAxesActor&quot;),extend:$b};const tA=&quot;resetcamera&quot;,nA=&quot;orientation&quot;,rA={MODE_RESET_CAMERA:tA,MODE_ORIENTATION:nA,MODE_SAME:&quot;same&quot;};function oA(e,t){t.classHierarchy.push(&quot;vtkCameraSynchronizer&quot;);const n=new Float64Array(9),r=new Float64Array(3),o=[];function a(){for(;o.length;)o.pop().unsubscribe();if(!t.srcRenderer||!t.dstRenderer)return;const n=t.srcRenderer.getActiveCamera(),r=t.srcRenderer.getRenderWindow().getInteractor();o.push(n.onModified((()=&gt;{r.isAnimating()||e.update()}))),o.push(r.onAnimation(e.update)),o.push(r.onEndAnimation(e.update))}t._onSrcRendererChanged=a,t._onDstRendererChanged=a,e.update=()=&gt;{if(!t.active||!t.srcRenderer||!t.dstRenderer)return;const e=t.srcRenderer.getActiveCamera(),o=t.dstRenderer.getActiveCamera(),a=function(e,t,r){return(n[0]!==e[0]||n[1]!==e[1]||n[2]!==e[2]||n[3]!==t[0]||n[4]!==t[1]||n[5]!==t[2]||n[6]!==r[0]||n[7]!==r[1]||n[8]!==r[2])&amp;&amp;(n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=t[0],n[4]=t[1],n[5]=t[2],n[6]=r[0],n[7]=r[1],n[8]=r[2],n)}(e.getReferenceByName(&quot;position&quot;),e.getReferenceByName(&quot;focalPoint&quot;),e.getReferenceByName(&quot;viewUp&quot;));a&amp;&amp;(t.mode===nA?(r[0]=a[0]-a[3],r[1]=a[1]-a[4],r[2]=a[2]-a[5],jo(r),o.setPosition(t.focalPoint[0]+t.distance*r[0],t.focalPoint[1]+t.distance*r[1],t.focalPoint[2]+t.distance*r[2]),o.setFocalPoint(t.focalPoint[0],t.focalPoint[1],t.focalPoint[2]),o.setViewUp(a[6],a[7],a[8])):(o.setPosition(a[0],a[1],a[2]),o.setFocalPoint(a[3],a[4],a[5]),o.setViewUp(a[6],a[7],a[8])),t.mode===tA&amp;&amp;t.dstRenderer.resetCamera())},e.delete=qt((()=&gt;e.setSrcRenderer(null)),e.delete),a()}const aA={mode:nA,focalPoint:[0,0,0],distance:6.8,active:!0};function iA(e,t,n={}){Object.assign(t,aA,n),Vt(e,t),Gt(e,t,[&quot;mode&quot;,&quot;active&quot;,&quot;srcRenderer&quot;,&quot;dstRenderer&quot;,&quot;distance&quot;]),Kt(e,t,[&quot;focalPoint&quot;],3,0),oA(e,t)}var sA={newInstance:Xt(iA,&quot;vtkCameraSynchronizer&quot;),extend:iA,SynchronizationMode:rA};const lA={};const cA={CameraSync:class{constructor(e,t){this.ctx=e,this.behavior=sA.newInstance(this.getProperties(t)),this.behavior.update()}getProperties({actorBounds:e,srcRenderer:t,dstRenderer:n}){return{distance:3.4*Math.max(e[1]-e[0],e[3]-e[2],e[5]-e[4]),focalPoint:[.5*(e[0]+e[1]),.5*(e[2]+e[3]),.5*(e[4]+e[5])],mode:sA.SynchronizationMode.MODE_ORIENTATION,srcRenderer:this.ctx.getInstance(t),dstRenderer:this.ctx.getInstance(n)}}update(e){this.behavior.set(this.getProperties(e)),this.behavior.update()}delete(){this.behavior.delete()}}};var uA={applyBehaviors:function(e,t,n){const r=e.get(&quot;synchronizedViewId&quot;).synchronizedViewId;if(!t.behaviors||!r)return;lA[r]||(lA[r]={});const o=lA[r];if(t.behaviors.autoOrientation){const t=e.getRenderers();if(!o.autoOrientationAxes&amp;&amp;2===t.length){let e=null,n=null;for(let r=0;r&lt;t.length;r++){const o=t[r];o.getInteractive()?e=o:n=o}e&amp;&amp;n&amp;&amp;(o.autoOrientationAxes=sA.newInstance({srcRenderer:e,dstRenderer:n}))}o.autoOrientationAxes&amp;&amp;2!==t.length&amp;&amp;(o.autoOrientationAxes.delete(),delete o.autoOrientationAxes)}const a=Object.keys(t.behaviors),i=Object.keys(o);for(let e=0;e&lt;a.length;e++){const r=a[e];if(o[r])o[r].update(t.behaviors[r]);else{const e=t.behaviors[r];cA[e.type]?o[r]=new cA[e.type](n,e):console.log(&quot;No mapping for&quot;,e)}}for(let e=0;e&lt;i.length;e++){const n=a[e];t.behaviors[n]||(o[n].delete(),delete o[n])}}};const dA={},pA=/instance:\\${([^}]+)}/,fA={},gA=[],mA={},hA={vtkPoints:lc,vtkCellArray:oc,vtkDataArray:Is};function vA(e){return e.map((e=&gt;pA.exec(e))).filter((e=&gt;e)).map((e=&gt;e[1]))}function TA(e,t=[]){return e.dependencies&amp;&amp;e.dependencies.forEach((e=&gt;{t.push(e.id),TA(e,t)})),t}function xA(e,t,n,r){if(!t)return Promise.reject(new Error(&quot;No instance provided.&quot;));const o=dA[e];return o&amp;&amp;o.update?o.update(t,n,r):Promise.reject(new Error(`No updater for ${e}`))}function yA(e,t={}){const n=dA[e];return n&amp;&amp;n.build?n.build(t):(console.log(&quot;No builder for&quot;,e),null)}function bA(){Object.keys(dA).forEach((e=&gt;{delete dA[e]}))}function AA(e){if(1===e[1].length)return-1===gA.indexOf(e[1][0]);let t=!1;for(let n=0;n&lt;e[1].length;n++)t=t||-1===gA.indexOf(e[1][n]);return t}function CA(e,t,n){n.start(),e.set(t.properties),t.dependencies&amp;&amp;t.dependencies.forEach((e=&gt;{const{id:t,type:r}=e;if(mA[r]){const{key:n,value:o}=mA[r];if(!n||e.properties[n]===o)return void gA.push((e=&gt;`instance:\\${${e}}`)(t))}let o=n.getInstance(t);o||(o=yA(r,{managedInstanceId:t}),n.registerInstance(t,o)),xA(r,o,e,n)})),t.calls&amp;&amp;t.calls.filter(AA).forEach((t=&gt;{var r;e[t[0]].apply(null,(r=n,t[1].map((e=&gt;{const t=pA.exec(e);return t?r.getInstance(t[1]):e}))))}));const r=[];if(t.arrays){const o=[],a=Object.values(t.arrays).map((t=&gt;(n.start(),n.getArray(t.hash,t.dataType,n).then(function(e,t,n){return r=&gt;{const o=t.registration?t.registration:&quot;addArray&quot;,a=t.location?e.getReferenceByName(t.location):e;let i=null;if(i=t.location?e.getReferenceByName(t.location).getArray(t.name):e[`get${o.substring(3)}`](),i)return i.getData()!==r&amp;&amp;n.push([i.setData,[r,t.numberOfComponents]]),i;const s=t.vtkClass?t.vtkClass:&quot;vtkDataArray&quot;,l=hA[s].newInstance({...t,values:r});return n.push([a[o],[l]]),l}}(e,t,o)).catch((e=&gt;{console.log(&quot;Error fetching array&quot;,JSON.stringify(t),e)})).finally(n.end))));n.start(),r.push(Promise.all(a).then((()=&gt;(o.length&amp;&amp;e.modified(),function(e){for(;e.length;){const[t,n]=e.shift();t(...n)}}(o),!0))).catch((e=&gt;{console.error(&quot;Error in array handling for state&quot;,JSON.stringify(t),e)})).finally(n.end))}return n.end(),Promise.all(r)}function SA(e,t,n){fA[t.id]||CA(e,t,n),fA[t.id]=!0}function PA(e,t){const n=[],r=e.getNumberOfArrays();for(let o=0;o&lt;r;o++){const r=e.getArray(o).getName();t.has(r)||n.push(r)}for(let t=0;t&lt;n.length;t++)e.removeArray(n[t])}function wA(e){const t=e.name?`_${e.name}`:&quot;&quot;;return`${e.hash}_${e.dataType}${t}`}function IA(e=[]){return(t,n,r)=&gt;{r.start();const o={...n.properties};n.arrays||(n.arrays={});for(let t=0;t&lt;e.length;t++){const r=e[t];if(n.properties[r]){const e=n.properties[r];e.registration=`set${Pt(r)}`;const t=wA(e);n.arrays[t]=e,delete o[r]}}const a=n.properties.fields||[];for(let e=0;e&lt;a.length;e++){const t=a[e],r=wA(t);n.arrays[r]=t}delete o.fields;const i={pointData:new Set,cellData:new Set,fieldData:new Set};a.forEach((({location:e,name:t})=&gt;{i[e].add(t)})),PA(t.getPointData(),i.pointData),PA(t.getCellData(),i.cellData);const s={...n};s.properties=o;const l=CA(t,s,r);return r.end(),l}}const OA=IA([&quot;points&quot;,&quot;polys&quot;,&quot;verts&quot;,&quot;lines&quot;,&quot;strips&quot;]),RA=IA([]);function MA(e,t=null,n=CA){yA||xA?dA[e]={build:t,update:n}:delete dA[e]}const DA={vtkMapper:[&quot;vtkOpenGLPolyDataMapper&quot;,&quot;vtkCompositePolyDataMapper2&quot;,&quot;vtkDataSetMapper&quot;],vtkProperty:[&quot;vtkOpenGLProperty&quot;],vtkRenderer:[&quot;vtkOpenGLRenderer&quot;],vtkCamera:[&quot;vtkOpenGLCamera&quot;],vtkColorTransferFunction:[&quot;vtkPVDiscretizableColorTransferFunction&quot;],vtkActor:[&quot;vtkOpenGLActor&quot;,&quot;vtkPVLODActor&quot;],vtkLight:[&quot;vtkOpenGLLight&quot;,&quot;vtkPVLight&quot;],vtkTexture:[&quot;vtkOpenGLTexture&quot;],vtkImageMapper:[&quot;vtkOpenGLImageSliceMapper&quot;],vtkVolumeMapper:[&quot;vtkFixedPointVolumeRayCastMapper&quot;]},EA={vtkAxesActor:{build:eA.newInstance,update:CA},vtkRenderWindow:{build:Eh.newInstance,update:function(e,t,n){t.calls&amp;&amp;t.calls.filter(AA).filter((e=&gt;&quot;removeRenderer&quot;===e[0])).forEach((e=&gt;{vA(e[1]).forEach((e=&gt;{n.getInstance(e).getViewProps().forEach((e=&gt;{const t=e.get(&quot;flattenedDepIds&quot;).flattenedDepIds;t&amp;&amp;t.forEach((e=&gt;n.unregisterInstance(e))),n.unregisterInstance(n.getInstanceId(e))}))}))})),e.render(),CA(e,t,n),uA.applyBehaviors(e,t,n)}},vtkRenderer:{build:wh.newInstance,update:function(e,t,n){CA(e,t,n);const r=new Set;t.dependencies&amp;&amp;t.dependencies.forEach((e=&gt;{const t=n.getInstance(e.id);if(t){const n=TA(e);t.set({flattenedDepIds:n},!0),n.forEach((e=&gt;r.add(e)))}}));const o=new Set;t.calls&amp;&amp;t.calls.filter(AA).filter((e=&gt;&quot;removeViewProp&quot;===e[0])).forEach((e=&gt;{vA(e[1]).forEach((e=&gt;{const t=n.getInstance(e).get(&quot;flattenedDepIds&quot;).flattenedDepIds;t&amp;&amp;t.forEach((e=&gt;o.add(e))),o.add(e)}))})),[...o].filter((e=&gt;!r.has(e))).forEach((e=&gt;n.unregisterInstance(e)))}},vtkLookupTable:{build:Sl.newInstance,update:CA},vtkCamera:{build:dh.newInstance,update:SA},vtkPolyData:{build:Ru.newInstance,update:OA},vtkImageData:{build:il.newInstance,update:RA},vtkMapper:{build:Ql.newInstance,update:CA},vtkGlyph3DMapper:{build:$y.newInstance,update:CA},vtkProperty:{build:us.newInstance,update:CA},vtkActor:{build:fs.newInstance,update:CA},vtkLight:{build:gh.newInstance,update:CA},vtkColorTransferFunction:{build:jy.newInstance,update:function(e,t,n){if(n.start(),t.properties.nodes){const n=t.properties.nodes.map((([e,t,n,r,o,a])=&gt;({x:e,r:t,g:n,b:r,midpoint:o,sharpness:a})));e.set({...t.properties,nodes:n},!0)}else e.set(t.properties);n.end()}},vtkTexture:{build:Eu.newInstance,update:CA},vtkVolume:{build:fb.newInstance,update:CA},vtkVolumeMapper:{build:Tb.newInstance,update:CA},vtkVolumeProperty:{build:ub.newInstance,update:CA},vtkImageSlice:{build:Pb.newInstance,update:CA},vtkImageMapper:{build:Bb.newInstance,update:CA},vtkImageProperty:{build:Ab.newInstance,update:CA},vtkPiecewiseFunction:{build:rb.newInstance,update:function(e,t,n){if(n.start(),t.properties.nodes){const n=t.properties.nodes.map((([e,t,n,r])=&gt;({x:e,y:t,midpoint:n,sharpness:r})));e.set({...t.properties,nodes:n},!0),e.sortAndUpdateRange()}else e.set(t.properties);n.end()}},vtkCubeAxesActor:{build:Yu.newInstance,update:CA},vtkScalarBarActor:{build:Op.newInstance,update:CA}};function VA(e=!0){e&amp;&amp;bA(),Object.keys(EA).forEach((e=&gt;{const t=EA[e];MA(e,t.build,t.update)}))}function LA(){Object.keys(DA).forEach((e=&gt;{DA[e].forEach((t=&gt;{dA[t]=dA[e]}))}))}VA(),LA(),mA.vtkPVLight={};var BA={build:yA,update:xA,genericUpdater:CA,oneTimeGenericUpdater:SA,setTypeMapping:MA,clearTypeMapping:bA,getSupportedTypes:function(){return Object.keys(dA)},clearOneTimeUpdaters:function(...e){if(0===e.length)return void Object.keys(fA).forEach((e=&gt;{delete fA[e]}));let t=e;return 1===t.length&amp;&amp;Array.isArray(t[0])&amp;&amp;(t=t[0]),t.forEach((e=&gt;{delete fA[e]})),t},updateRenderWindow:function(e,t,n){return xA(&quot;vtkRenderWindow&quot;,e,t,n)},excludeInstance:function(e,t,n){mA[e]={key:t,value:n}},setDefaultMapping:VA,applyDefaultAliases:LA,alwaysUpdateCamera:function(){MA(&quot;vtkCamera&quot;,dh.newInstance),LA()}};const FA={};function NA(){const e={};let t=null;return{setFetchArrayFunction:function(e){t=e},getArray:function(n,r,o){const a=e[n];return a?(a.mtimes[o.getActiveViewId()]=o.getMTime(),new Promise(((e,t)=&gt;{e(a.array)}))):t?new Promise(((a,i)=&gt;{t(n).then((t=&gt;{let i=t;if(&quot;string&quot;==typeof t&amp;&amp;(i=um.toArrayBuffer(t)),i instanceof Blob){const t=new FileReader;t.onload=()=&gt;{const i=Ct(r,t.result),s={[o.getActiveViewId()]:o.getMTime()};e[n]={mtimes:s,array:i},a(i)},t.readAsArrayBuffer(i)}else{const t=Ct(r,i),s={[o.getActiveViewId()]:o.getMTime()};e[n]={mtimes:s,array:t},a(t)}}),(e=&gt;{console.log(&quot;Error getting data array:&quot;),console.log(e),i(e)}))})):Promise.reject(new Error(&#x27;No array fetcher found, please use &quot;setArrayFetcher&quot; to provide one&#x27;))},emptyCachedArrays:function(){Object.keys(e).forEach((t=&gt;{delete e[t]}))},freeOldArrays:function(t,n){const r=n.getMTime()-t;Object.keys(e).filter((t=&gt;e[t].mtimes[n.getActiveViewId()])).filter((t=&gt;e[t].mtimes[n.getActiveViewId()]&lt;r)).forEach((t=&gt;{delete e[t]}))}}}function kA(){const e={};return{getInstance:function(t){return e[t]},getInstanceId:function(t){let n=null;return Object.keys(e).forEach((r=&gt;{t===e[r]&amp;&amp;(n=r)})),n},registerInstance:function(t,n){e[t]=n,n.set({remoteId:t},!0,!0)},unregisterInstance:function(t){delete e[t]},emptyCachedInstances:function(){Object.keys(e).forEach((t=&gt;{delete e[t]}))}}}function GA(){let e=0;const t={start(){e+=1,t.invokeProgressEvent(e)},end(){e-=1,t.invokeProgressEvent(e),0===e&amp;&amp;t.invokeProgressDone()},resetProgress(){e=0}},n={};return jt(t,n,&quot;progressEvent&quot;),jt(t,n,&quot;progressDone&quot;),t}function UA(){const e={};let t=&quot;default&quot;;return{getMTime:function(n){return e[n||t]||1},incrementMTime:function(n){const r=n||t;e[r]||(e[r]=1),e[r]+=1},setActiveViewId:function(e){t=e},getActiveViewId:function(){return t}}}function _A(e=&quot;default&quot;){let t=FA[e];return t||(t={...NA(),...kA(),...GA(),...UA()},FA[e]=t),t}function KA(e,t){let n=-1,r=100;const o=e=&gt;e.get(&quot;managedInstanceId&quot;).managedInstanceId,a=()=&gt;Jt(e,o);function i(t){e.set({synchronizedViewId:t},!0,!0)}function s(){return e.get(&quot;synchronizedViewId&quot;).synchronizedViewId}return{synchronize:function(o){s()||i(o.id);const a=o.mtime||0;return s()===o.id&amp;&amp;n&lt;a?new Promise(((i,s)=&gt;{const l=t.onProgressDone((()=&gt;{l.unsubscribe(),e.render(),i(!0)}));n=a,t.setActiveViewId(o.id),t.incrementMTime(),BA.updateRenderWindow(e,o,t),t.freeOldArrays(r,t)})):Promise.resolve(!1)},setSynchronizedViewId:i,getSynchronizedViewId:s,updateGarbageCollectorThreshold:function(e){r=e},getManagedInstanceIds:a,clearOneTimeUpdaters:function(){BA.clearOneTimeUpdaters(a())}}}const zA={synchronizerContextName:&quot;default&quot;,synchronizerContext:null,synchronizedViewId:null};function WA(e,t,n={}){Object.assign(t,zA,n),Eh.extend(e,t),Bt(e,t,[&quot;synchronizerContext&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkSynchronizableRenderWindow&quot;),t.synchronizerContext||(t.synchronizerContext=_A(t.synchronizerContextName));const n=KA(e,t.synchronizerContext);Object.keys(n).forEach((t=&gt;{e[t]?e[t]=qt(e[t],n[t]):e[t]=n[t]}))}(e,t)}var HA={newInstance:Xt(WA,&quot;vtkSynchronizableRenderWindow&quot;),extend:WA,getSynchronizerContext:_A,setSynchronizerContext:function(e,t){FA[e]=t},clearSynchronizerContext:function(e){if(e&amp;&amp;FA[e]&amp;&amp;delete FA[e],!e){const e=Object.keys(FA);for(let t=0;t&lt;e.length;t++)delete FA[e[t]]}},decorate:function(e,t=&quot;default&quot;){const n=KA(e,_A(t));return{...n,...e,delete:qt(e.delete,n.delete)}},createInstanceMap:kA,createArrayHandler:NA,createProgressHandler:GA,createSceneMtimeHandler:UA,vtkObjectManager:BA};const{vtkErrorMacro:jA,vtkDebugMacro:XA}=sn;let qA=0;function YA(e){const t=document.querySelector(`.webResource[data-url=&quot;${e}&quot;]`);return t?t.innerHTML:null}function JA(e){return&quot;/&quot;===e[0]?e.substr(1):e}const ZA={fetchJSON:function(e,t,n={}){return new Promise(((e,n)=&gt;{const r=YA(JA(t));null===r?n(new Error(`No such JSON ${t}`)):e(JSON.parse(r))}))},fetchText:function(e,t,n={}){return new Promise(((e,n)=&gt;{const r=YA(t);null===r?n(new Error(`No such text ${t}`)):e(r)}))},fetchArray:function(e,t,n,r={}){return new Promise(((o,a)=&gt;{const i=JA([t,n.ref.basepath,r.compression?`${n.ref.id}.gz`:n.ref.id].join(&quot;/&quot;)),s=YA(i);if(null===s)a(new Error(`No such array ${i}`));else{if(&quot;string&quot;===n.dataType){let e=atob(s);r.compression&amp;&amp;(e=Jm(Xm(e))),n.values=JSON.parse(e)}else{const e=new Uint8Array(um.toArrayBuffer(s));n.buffer=new ArrayBuffer(e.length);new Uint8Array(n.buffer).set(e),r.compression&amp;&amp;(&quot;string&quot;===n.dataType||&quot;JSON&quot;===n.dataType?n.buffer=Jm(Xm(new Uint8Array(n.buffer))):n.buffer=Xm(new Uint8Array(n.buffer)).buffer),&quot;JSON&quot;===n.ref.encode?n.values=JSON.parse(n.buffer):(nh.ENDIANNESS!==n.ref.encode&amp;&amp;nh.ENDIANNESS&amp;&amp;(XA(`Swap bytes of ${n.name}`),nh.swapBytes(n.buffer,gs[n.dataType])),n.values=sn.newTypedArray(n.dataType,n.buffer)),n.values.length!==n.size&amp;&amp;jA(`Error in FetchArray: ${n.name} does not have the proper array size. Got ${n.values.length}, instead of ${n.size}`)}delete n.ref,0==--qA&amp;&amp;e?.invokeBusy&amp;&amp;e.invokeBusy(!1),e?.modified&amp;&amp;e.modified(),o(n)}}))},fetchImage:function(e,t,n={}){return new Promise(((e,n)=&gt;{const r=function(e){return document.querySelector(`.webResource[data-url=&quot;${e}&quot;]`)}(t);r?e(r):n(new Error(`No such image ${t}`))}))}};pm(&quot;html&quot;,(e=&gt;ZA));const{vtkErrorMacro:QA,vtkDebugMacro:$A}=sn;function eC(e){return function(e){return&quot;/&quot;===e[0]?e.substr(1):e}(function(e){return new URL(e,&quot;http://any&quot;).pathname}(e))}function tC(e){return new Promise(((t,n)=&gt;{&quot;string&quot;==typeof e?t(function(e,t){if(t){for(var n=new gm(e.length),r=0;r&lt;e.length;++r)n[r]=e.charCodeAt(r);return n}if(qm)return qm.encode(e);var o=e.length,a=new gm(e.length+(e.length&gt;&gt;1)),i=0,s=function(e){a[i++]=e};for(r=0;r&lt;o;++r){if(i+5&gt;a.length){var l=new gm(i+8+(o-r&lt;&lt;1));l.set(a),a=l}var c=e.charCodeAt(r);c&lt;128||t?s(c):c&lt;2048?(s(192|c&gt;&gt;6),s(128|63&amp;c)):c&gt;55295&amp;&amp;c&lt;57344?(s(240|(c=65536+(1047552&amp;c)|1023&amp;e.charCodeAt(++r))&gt;&gt;18),s(128|c&gt;&gt;12&amp;63),s(128|c&gt;&gt;6&amp;63),s(128|63&amp;c)):(s(224|c&gt;&gt;12),s(128|c&gt;&gt;6&amp;63),s(128|63&amp;c))}return Fm(a,0,i)}(e)):e instanceof Blob?t(e.arrayBuffer().then((e=&gt;new Uint8Array(e)))):e instanceof ArrayBuffer?t(new Uint8Array(e)):e?.buffer instanceof ArrayBuffer?t(new Uint8Array(e.buffer)):n(new Error(&quot;Invalid datatype to unpack.&quot;))}))}const nC={create:function(e){let t=!1,n=0,r=null,o=&quot;&quot;;return tC(e.zipContent).then((n=&gt;{r=eh(n),t=!0;const a=[];Object.keys(r).forEach((e=&gt;{e.endsWith(&quot;index.json&quot;)&amp;&amp;a.push(e)})),a.sort(((e,t)=&gt;e.length-t.length)),o=a[0].replace(/index\\.json$/,&quot;&quot;),e.callback&amp;&amp;e.callback(r)})),{fetchArray:(e,a,i,s={})=&gt;new Promise(((l,c)=&gt;{t||QA(&quot;ERROR!!! zip not ready...&quot;);const u=eC([a,i.ref.basepath,s.compression?`${i.ref.id}.gz`:i.ref.id].join(&quot;/&quot;));function d(){delete i.ref,0==--n&amp;&amp;e?.invokeBusy&amp;&amp;e.invokeBusy(!1),e?.modified&amp;&amp;e.modified(),l(i)}1==++n&amp;&amp;e?.invokeBusy&amp;&amp;e.invokeBusy(!0);const p=r[`${o}${u}`];if(&quot;string&quot;!==i.dataType||s.compression){const e=function(e,t,n){return r=&gt;{e.buffer=new ArrayBuffer(r.length),new Uint8Array(e.buffer).set(r),t&amp;&amp;(&quot;string&quot;===e.dataType||&quot;JSON&quot;===e.dataType?e.buffer=Jm(Xm(new Uint8Array(e.buffer))):e.buffer=Xm(new Uint8Array(e.buffer)).buffer),&quot;JSON&quot;===e.ref.encode?e.values=JSON.parse(e.buffer):(nh.ENDIANNESS!==e.ref.encode&amp;&amp;nh.ENDIANNESS&amp;&amp;($A(`Swap bytes of ${e.name}`),nh.swapBytes(e.buffer,gs[e.dataType])),e.values=sn.newTypedArray(e.dataType,e.buffer)),e.values.length!==e.size&amp;&amp;QA(`Error in FetchArray: ${e.name} does not have the proper array size. Got ${e.values.length}, instead of ${e.size}`),n()}}(i,s.compression,d);e(p)}else{const e=function(e,t,n){return r=&gt;{e.values=t?JSON.parse(Jm(Xm(r))):JSON.parse(r),n()}}(i,s.compression,d);e(Jm(p))}})),fetchJSON(e,n,a={}){const i=eC(n);t||QA(&quot;ERROR!!! zip not ready...&quot;);const s=r[`${o}${i}`];if(a.compression){if(&quot;gz&quot;===a.compression){const e=Jm(Xm(s));return Promise.resolve(JSON.parse(e))}return Promise.reject(new Error(&quot;Invalid compression&quot;))}return Promise.resolve(JSON.parse(Jm(s)))},fetchText(e,n,a={}){const i=eC(n);t||QA(&quot;ERROR!!! zip not ready...&quot;);const s=r[`${o}${i}`];return a.compression?&quot;gz&quot;===a.compression?Promise.resolve(Jm(eh(s))):Promise.reject(new Error(&quot;Invalid compression&quot;)):Promise.resolve(Jm(s))},fetchImage(e,n,a={}){const i=eC(n);t||QA(&quot;ERROR!!! zip not ready...&quot;);const s=r[`${o}${i}`];return new Promise(((e,t)=&gt;{const n=new Image;n.onload=()=&gt;e(n),n.onerror=t;const r=cm(s.buffer);n.src=`data:image/${function(e){const t=e.split(&quot;.&quot;).pop().toLowerCase();return&quot;jpg&quot;===t?&quot;jpeg&quot;:t}(i)};base64,${r}`}))},fetchBinary(e,n,a={}){const i=eC(n);t||QA(&quot;ERROR!!! zip not ready...&quot;);const s=r[`${o}${i}`];return a.compression?&quot;gz&quot;===a.compression?Promise.resolve(Xm(s).buffer):Promise.reject(new Error(&quot;Invalid compression&quot;)):Promise.resolve(s.buffer)}}}};pm(&quot;zip&quot;,(e=&gt;nC.create(e)));var rC=&quot;viewer-module_fullScreen__1ikg5&quot;,oC=&quot;viewer-module_bigFileDrop__2WNUb&quot;,aC=&quot;viewer-module_progress__3thF3&quot;;!function(e,t){void 0===t&amp;&amp;(t={});var n=t.insertAt;if(e&amp;&amp;&quot;undefined&quot;!=typeof document){var r=document.head||document.getElementsByTagName(&quot;head&quot;)[0],o=document.createElement(&quot;style&quot;);o.type=&quot;text/css&quot;,&quot;top&quot;===n&amp;&amp;r.firstChild?r.insertBefore(o,r.firstChild):r.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}}(&quot;.viewer-module_fullScreen__1ikg5 {\\n  position: absolute;\\n  width: 100vw;\\n  height: 100vh;\\n  top: 0;\\n  left: 0;\\n  overflow: hidden;\\n  background: black;\\n  margin: 0;\\n  padding: 0;\\n  z-index: 0;\\n  display: flex;\\n  align-items: center;\\n  justify-content: center;\\n}\\n\\n.viewer-module_fullParentSize__1f1wn {\\n  position: absolute;\\n  width: 100%;\\n  height: 100%;\\n  top: 0;\\n  left: 0;\\n  overflow: hidden;\\n}\\n\\n.viewer-module_bigFileDrop__2WNUb {\\n  position: absolute;\\n  left: 50%;\\n  top: 50%;\\n  transform: translate(-50%, -50%);\\n  background-color: white;\\n  background-image: url(&#x27;data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAASABIAAD/4QBMRXhpZgAATU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAACWKADAAQAAAABAAACWAAAAAD/7QA4UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+/8AAEQgCWAJYAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/bAEMAAQEBAQEBAgEBAgMCAgIDBAMDAwMEBQQEBAQEBQYFBQUFBQUGBgYGBgYGBgcHBwcHBwgICAgICQkJCQkJCQkJCf/bAEMBAQEBAgICBAICBAkGBQYJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCf/dAAQAJv/aAAwDAQACEQMRAD8A/v4ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/Q/v4ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/R/v4ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/S/v4ooooAKKKKACiiigAooooAKKKKACiivwu/a8/bS+PfhT46634E8Aax/Y2l6PIlukcUELvIwjVnd3lR2yWY4AIAGOM5JAP3Ror+fZ/jD/wUtto/tMlv4lCDncdFBGPU/wCi4xVvwH/wUc/aK8A+Il074qwxa3bxuFuYLi3WzukHfY0SoFbH9+Ns+3WgD9/qK4L4Y/Erwl8XfBNj4+8E3H2iwvk3Lnh43HDxyLztdDww/EEggnvaACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAa7pGhkkIVVGSTwABXiF1+01+zvZztbXHjfRA6HBAvoWwfqGIrG/a3vbrT/2afGtxZuY3OlzJkddsgCMPxUkV+Av7KP7PVt+0p8RbzwJdaq2kLa6dJfeckInLGOWKPZtLpjPm5znt05oA/oL/AOGpP2cf+h40X/wMi/8Aiq6Twr8dPgx441dNA8H+KtK1K+kBKW9vdRPK4UZO1A25sAZOAcDmvzX/AOHTWj/9DxN/4L1/+SK9T+C//BN/w18JfiVpfxGuvFFzqb6TL58UC2y24aQAhdziVyVBOSABnoTgmgD9KqKx9S8Q6Bo11bWOr31vazXjbLeOaVEaVv7qKxBY+wzWxQAUVjjxF4fOtHw2L63OohPMNr5qecE/veXndj3xik1zxH4e8L2Q1LxLf2+nW5YIJbmVIULN0Xc5AyewoA2aKo3eqaZp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hgQPs/x14B8HfEzwzceD/Henxalp1yPnhlB6joysMMrDsykMOxFfnhrv/BLD4N32otdaFruq2EDNkwsYZgo9FYorY9N24+pNAHJfGf8Aa5/Z6+FXjCy8PfAPwZoniTVkmUS3VrbQxxIxICxwSwxkySMT95PlXj7xyB+sttJJNbxyzRmJ2UFkJBKkjkEjjjpxXyJ8Ev2HvgX8DtYj8T6Pb3GratCd0N3qLrI0JxjMSIiRqfRipYdmFfYNABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH//0P7+KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoor8+/gB+1d8RPir+1V42+BviGy06HSfDf9pfZpbeOZbh/sd9HbR+YzzOhyjkttRctgjA4oA/QSiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACivjz9tr9oPxn+zb8KtP8c+Brayuru71aKwdL9JJIxHJBPKSBFJE27dEuDuIwTx3H0F8JfFmo+PPhV4Z8c6wkcd3rWk2V/OkIIjWS5gSVwgYswUMxwCxOOpPWgD0GiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/0f7+KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr8X/2M/8AlIh8Vv8AuO/+naCv2gr8X/2M/wDlIh8Vv+47/wCnaCgD9oKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/Mf/gq5/ybvo3/AGMdv/6SXlfaH7N//Ju/gL/sXNL/APSSKvi//gq5/wAm76N/2Mdv/wCkl5X2h+zf/wAm7+Av+xc0v/0kioA9oooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//0v7+KKKKACiiigAooooAKKKKACiiigAooooAKCQBk1538Uvir4G+DXg+48c/EG+WysLfgZ5klkP3Y4kHLu2OAO2ScAEj8cvEHxc/ai/4KAeI7rwT8HLeTw74Miby7mVnMaFD/wA/c6gl2Yc+RFkY6hgN9AH358af2+P2fvg5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X8sniDWbrxHr194hvf8AXX9xLcSd/mlYu36mv6ldc0bTfEei3fh7WYzLZ38MlvOgZkLRyqUddyEMMqSMggjsa+Zf+GIP2Xv+hXH/AIG3v/x+vO4Vz7D4HndVNt22t09Wj0OKshxGO5FSaSV979fRM/nzt4JrqdLa3UvJIwVVHUknAA+pr+pTwV4dh8IeDtJ8J2+NmmWcFouOmIY1TP6V4Npf7GX7NWjanbaxp3hoR3FpKk0TG7u2AeNgyna0xU4IHBBB719P0+KuI6WOUI0U0lfe36Nhwrw5UwPPKs027bX/AFSCiiivjj7AK+MP2s/2U7P476YniXww0dp4msY9kbvxHcxDkRSHsQc7H7ZIPByv2fRXXgcdUw1VVqTs0cmOwNLE0nRqq6Z/LL4t8G+KvAety+G/GNhNp19CfmimUqcdiD0ZT2ZSQexNczX9SXjHwB4J+IWm/wBkeN9KttUtxkqtxGrlCe6MRlD7qQa+RfEn/BPP9n7W5mm0oajpGeQlrcB0H4TpK2P+BV+nYHj+hKNsRFp+Wq/zPzHHcAV4yvh5Jrz0f+R+E9Ffsyf+CaHw08zI8Q6ns9NsOfz2/wBK7fQP+CdvwC0mRZdUk1PVMclJ7hUQ/wDfmONsf8Cr0J8cYBK6bfy/zPPhwPj27NJfP/I/C+v6fvhL4f8A+EU+Fvhzw0y7WsdNtYXH+2kShj9S2SaxvBXwG+Dfw8ZJfB/huxtJk+7MYxJMMeksm6T/AMer1uvheJ+JY45RhTi0l36n3XDHDUsC5TqSTb7dAooor5A+vCiiigD/0/7+KKKKACiiigArl/E/hHRvFUcEmoQxtdWL+fZzsoZrecDCyLnuDg4PBwM9K6iik0nozKtRhUi4TV0fOH7O3wNl+D2malPrc6Xmq6jcMZJ0yR5KE+WPm5y2S7e5A525r6PooqadNQjyxOTKsro4LDxw2HVoxCiiirPQCiiigAooooAK8v1L4K/CjVtcTxNdaBZpqSHIuoY/Jmz6mSLYxPuTXqFFa0q04awdvQzqUYT0mrkUMKW8KwRliqAAFmLHj1ZiST7k5qWiisjQKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/1P7+KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/2Q==&#x27;);\\n  background-repeat: no-repeat;\\n  background-position: center;\\n  background-size: contain;\\n  border-radius: 10px;\\n  width: 50px;\\n  padding: calc(50vh - 2em) calc(50vw - 25px - 2em);\\n  cursor: pointer;\\n}\\n\\n.viewer-module_progress__3thF3 {\\n  flex: none;\\n  font-size: 50px;\\n  color: black;\\n  z-index: 1;\\n  background: rgba(128, 128, 128, 0.5);\\n  padding: 20px;\\n  border-radius: 10px;\\n  -webkit-user-select: none;\\n     -moz-user-select: none;\\n          user-select: none;\\n}\\n\\nbody {\\n  margin: 0;\\n}\\n\\nhtml {\\n  overflow: hidden;\\n}\\n&quot;);let iC=!0;function sC(e){e.preventDefault(),e.stopPropagation()}function lC(e,t){iC=!1,function(e){for(;e.firstChild;)e.removeChild(e.firstChild)}(e);const n=Vy.newInstance({background:[1,1,1],rootContainer:e,containerStyle:{height:&quot;100%&quot;,width:&quot;100%&quot;,position:&quot;absolute&quot;}}).getRenderWindow(),r=HA.getSynchronizerContext(),o=HA.decorate(n);function a(e){r.setFetchArrayFunction((t=&gt;Promise.resolve(e.hashes[t].content))),console.log(Object.keys(e)),o.synchronize(e.scene),o.render()}if(global.renderWindow=n,t.fileURL||t.url){const n=document.createElement(&quot;div&quot;);n.setAttribute(&quot;class&quot;,aC),e.appendChild(n);const r=e=&gt;{if(e.lengthComputable){const t=Math.floor(100*e.loaded/e.total);n.innerHTML=`Loading ${t}%`}else n.innerHTML=sn.formatBytesToProperUnit(e.loaded)};t.fileURL?sh.fetchBinary(t.fileURL,{progressCallback:r}).then((t=&gt;{e.removeChild(n);const r=fm.get(&quot;zip&quot;,{zipContent:t,callback:e=&gt;{r.fetchJSON(null,&quot;index.json&quot;).then(a)}})})):sh.fetchJSON(t.url,{progressCallback:r}).then((t=&gt;{e.removeChild(n),a(t)}))}else if(t.file){const e=fm.get(&quot;zip&quot;,{zipContent:t.file,callback:t=&gt;{e.fetchJSON(null,&quot;index.json&quot;).then(a)}})}else if(t.base64Str){const e=um.toArrayBuffer(t.base64Str),n=fm.get(&quot;zip&quot;,{zipContent:e,callback:e=&gt;{n.fetchJSON(null,&quot;index.json&quot;).then(a)}})}}function cC(e){iC=!1;const t=document.querySelector(&quot;.content&quot;)||document.querySelector(&quot;#vtk-root&quot;),n=document.querySelector(&quot;body&quot;),r=e||t||n;r!==e?(r.classList.add(rC),n.style.margin=&quot;0&quot;,n.style.padding=&quot;0&quot;):(n.style.margin=&quot;0&quot;,n.style.padding=&quot;0&quot;);const o=document.createElement(&quot;div&quot;);o.innerHTML=`&lt;div class=&quot;${oC}&quot;/&gt;&lt;input type=&quot;file&quot; accept=&quot;.zip,.vtksz&quot; style=&quot;display: none;&quot;/&gt;`,r.appendChild(o);const a=o.querySelector(&quot;input&quot;);function i(e){sC(e);const t=e.dataTransfer,n=e.target.files||t.files;if(1===n.length){r.removeChild(o);const e=n[0].name.split(&quot;.&quot;).slice(-1)[0];lC(r,{file:n[0],ext:e})}}a.addEventListener(&quot;change&quot;,i),o.addEventListener(&quot;drop&quot;,i),o.addEventListener(&quot;click&quot;,(e=&gt;a.click())),o.addEventListener(&quot;dragover&quot;,sC)}const uC=gv.extractURLParameters();if(uC.url||uC.fileURL){const e=document.querySelector(&quot;.content&quot;)||document.querySelector(&quot;#vtk-root&quot;),t=document.querySelector(&quot;body&quot;),n=e||t;n&amp;&amp;(n.classList.add(rC),t.style.margin=&quot;0&quot;,t.style.padding=&quot;0&quot;),iC=!1,function(e){if(!window.frameElement)return e(),!0;const t=window.frameElement.getClientRects().length&gt;0;t?e():function(e,t){new window.parent.IntersectionObserver(((e,n)=&gt;{e.forEach((e=&gt;{e.intersectionRatio&gt;0&amp;&amp;(t(),n.disconnect())}))})).observe(e)}(window.frameElement,e)}((()=&gt;lC(n,uC)))}return setTimeout((()=&gt;{iC&amp;&amp;cC()}),100),window.OfflineLocalView={initLocalFileLoader:cC,load:lC},e.initLocalFileLoader=cC,e.load=lC,Object.defineProperty(e,&quot;__esModule&quot;,{value:!0}),e}({});\n",
       "&lt;/script&gt;\n",
       "&lt;script&gt;\n",
       "var container = document.querySelector(&#x27;#vtk-root&#x27;);\n",
       "var base64Str = &quot;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&quot;;\n",
       "\n",
       "OfflineLocalView.load(container, { base64Str });\n",
       "&lt;/script&gt;\n",
       "  &lt;/body&gt;\n",
       "&lt;/html&gt;\n",
       "\" class=\"pyvista\" style=\"width: 100%; height: 600px; border: 1px solid #ddd;\" loading=\"lazy\"></iframe>"
      ],
      "text/plain": [
       "<interactive PyVista scene>"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tree.vis3d(notebook=True, jupyter_backend=\"html\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "03264766",
   "metadata": {},
   "source": [
    "## 4. Import morphology from files\n",
    "\n",
    "In practice, many morphologies come from reconstruction files rather than hand-written code.\n",
    "\n",
    "This notebook only shows the basic entry points:\n",
    "\n",
    "- `Morphology.from_swc(path)`\n",
    "- `Morphology.from_asc(path)`\n",
    "\n",
    "We keep the examples deliberately simple here. Detailed file-format semantics and reader diagnostics will be covered in a separate module."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "6137ecfd",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2026-04-22T03:24:29.985785Z",
     "start_time": "2026-04-22T03:24:29.698093Z"
    },
    "execution": {
     "iopub.execute_input": "2026-05-25T09:54:18.537836Z",
     "iopub.status.busy": "2026-05-25T09:54:18.537120Z",
     "iopub.status.idle": "2026-05-25T09:54:18.690264Z",
     "shell.execute_reply": "2026-05-25T09:54:18.689068Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-----------------------------------\n",
      "n_branches       | 9\n",
      "n_stems          | 2\n",
      "n_bifurcations   | 3\n",
      "max_branch_order | 3\n",
      "total_length     | 219.78 um\n",
      "mean_radius      | 1.43 um\n",
      "total_area       | 1973.69 um^2\n",
      "total_volume     | 1885.06 um^3\n",
      "max_path_dist    | 89.09 um\n",
      "-----------------------------------\n",
      "\n",
      "soma\n",
      "├── axon_0\n",
      "│   └── axon_1\n",
      "└── basal_dendrite_0\n",
      "    ├── basal_dendrite_1\n",
      "    │   ├── basal_dendrite_2\n",
      "    │   └── basal_dendrite_3\n",
      "    ├── basal_dendrite_4\n",
      "    └── basal_dendrite_5\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<iframe srcdoc=\"&lt;!doctype html&gt;\n",
       "&lt;html lang=&quot;en&quot;&gt;\n",
       "  &lt;head&gt;\n",
       "    &lt;meta charset=&quot;utf-8&quot; /&gt;\n",
       "    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot; /&gt;\n",
       "    &lt;title&gt;VTK.js | Example - OfflineLocalView&lt;/title&gt;\n",
       "    &lt;style&gt;\n",
       "      html, body { margin: 0; padding: 0; height: 100%; }\n",
       "      body { font-family: sans-serif; }\n",
       "    &lt;/style&gt;\n",
       "  &lt;/head&gt;\n",
       "  &lt;body&gt;\n",
       "    &lt;div id=&quot;vtk-root&quot; style=&quot;height:100%; width:100%;&quot;&gt;&lt;/div&gt;\n",
       "    &lt;script&gt;\n",
       "      window.global = window.global || {};\n",
       "    &lt;/script&gt;\n",
       "    &lt;script&gt;var OfflineLocalView=function(e){&quot;use strict&quot;;const t=document.querySelector(&quot;head&quot;);t&amp;&amp;[16,32,96,160,196].forEach((e=&gt;{const n=document.createElement(&quot;link&quot;);n.setAttribute(&quot;rel&quot;,&quot;icon&quot;),n.setAttribute(&quot;href&quot;,`https://kitware.github.io/vtk-js/icon/favicon-${e}x${e}.png`),n.setAttribute(&quot;sizes&quot;,`${e}x${e}`),n.setAttribute(&quot;type&quot;,&quot;image/png&quot;),t.appendChild(n)}));var n=1e-6,r=&quot;undefined&quot;!=typeof Float32Array?Float32Array:Array,o=Math.PI/180;function a(e){return e*o}function i(){var e=new r(9);return r!=Float32Array&amp;&amp;(e[1]=0,e[2]=0,e[3]=0,e[5]=0,e[6]=0,e[7]=0),e[0]=1,e[4]=1,e[8]=1,e}function s(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[4],e[4]=t[5],e[5]=t[6],e[6]=t[8],e[7]=t[9],e[8]=t[10],e}function l(e,t,n,r,o,a,i,s,l,c){return e[0]=t,e[1]=n,e[2]=r,e[3]=o,e[4]=a,e[5]=i,e[6]=s,e[7]=l,e[8]=c,e}function c(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e}function u(e,t){if(e===t){var n=t[1],r=t[2],o=t[5];e[1]=t[3],e[2]=t[6],e[3]=n,e[5]=t[7],e[6]=r,e[7]=o}else e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8];return e}function d(e,t){var n=t[0],r=t[1],o=t[2],a=t[3],i=t[4],s=t[5],l=t[6],c=t[7],u=t[8],d=u*i-s*c,p=-u*a+s*l,f=c*a-i*l,g=n*d+r*p+o*f;return g?(g=1/g,e[0]=d*g,e[1]=(-u*r+o*c)*g,e[2]=(s*r-o*i)*g,e[3]=p*g,e[4]=(u*n-o*l)*g,e[5]=(-s*n+o*a)*g,e[6]=f*g,e[7]=(-c*n+r*l)*g,e[8]=(i*n-r*a)*g,e):null}function p(e,t,n){var r=t[0],o=t[1],a=t[2],i=t[3],s=t[4],l=t[5],c=t[6],u=t[7],d=t[8],p=n[0],f=n[1],g=n[2],m=n[3],h=n[4],v=n[5],T=n[6],x=n[7],y=n[8];return e[0]=p*r+f*i+g*c,e[1]=p*o+f*s+g*u,e[2]=p*a+f*l+g*d,e[3]=m*r+h*i+v*c,e[4]=m*o+h*s+v*u,e[5]=m*a+h*l+v*d,e[6]=T*r+x*i+y*c,e[7]=T*o+x*s+y*u,e[8]=T*a+x*l+y*d,e}function f(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e[3]=t[3]-n[3],e[4]=t[4]-n[4],e[5]=t[5]-n[5],e[6]=t[6]-n[6],e[7]=t[7]-n[7],e[8]=t[8]-n[8],e}Math.hypot||(Math.hypot=function(){for(var e=0,t=arguments.length;t--;)e+=arguments[t]*arguments[t];return Math.sqrt(e)});var g=p,m=f,h=Object.freeze({__proto__:null,create:i,fromMat4:s,clone:function(e){var t=new r(9);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t},copy:function(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},fromValues:function(e,t,n,o,a,i,s,l,c){var u=new r(9);return u[0]=e,u[1]=t,u[2]=n,u[3]=o,u[4]=a,u[5]=i,u[6]=s,u[7]=l,u[8]=c,u},set:l,identity:c,transpose:u,invert:d,adjoint:function(e,t){var n=t[0],r=t[1],o=t[2],a=t[3],i=t[4],s=t[5],l=t[6],c=t[7],u=t[8];return e[0]=i*u-s*c,e[1]=o*c-r*u,e[2]=r*s-o*i,e[3]=s*l-a*u,e[4]=n*u-o*l,e[5]=o*a-n*s,e[6]=a*c-i*l,e[7]=r*l-n*c,e[8]=n*i-r*a,e},determinant:function(e){var t=e[0],n=e[1],r=e[2],o=e[3],a=e[4],i=e[5],s=e[6],l=e[7],c=e[8];return t*(c*a-i*l)+n*(-c*o+i*s)+r*(l*o-a*s)},multiply:p,translate:function(e,t,n){var r=t[0],o=t[1],a=t[2],i=t[3],s=t[4],l=t[5],c=t[6],u=t[7],d=t[8],p=n[0],f=n[1];return e[0]=r,e[1]=o,e[2]=a,e[3]=i,e[4]=s,e[5]=l,e[6]=p*r+f*i+c,e[7]=p*o+f*s+u,e[8]=p*a+f*l+d,e},rotate:function(e,t,n){var r=t[0],o=t[1],a=t[2],i=t[3],s=t[4],l=t[5],c=t[6],u=t[7],d=t[8],p=Math.sin(n),f=Math.cos(n);return e[0]=f*r+p*i,e[1]=f*o+p*s,e[2]=f*a+p*l,e[3]=f*i-p*r,e[4]=f*s-p*o,e[5]=f*l-p*a,e[6]=c,e[7]=u,e[8]=d,e},scale:function(e,t,n){var r=n[0],o=n[1];return e[0]=r*t[0],e[1]=r*t[1],e[2]=r*t[2],e[3]=o*t[3],e[4]=o*t[4],e[5]=o*t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},fromTranslation:function(e,t){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=t[0],e[7]=t[1],e[8]=1,e},fromRotation:function(e,t){var n=Math.sin(t),r=Math.cos(t);return e[0]=r,e[1]=n,e[2]=0,e[3]=-n,e[4]=r,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e},fromScaling:function(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=0,e[4]=t[1],e[5]=0,e[6]=0,e[7]=0,e[8]=1,e},fromMat2d:function(e,t){return e[0]=t[0],e[1]=t[1],e[2]=0,e[3]=t[2],e[4]=t[3],e[5]=0,e[6]=t[4],e[7]=t[5],e[8]=1,e},fromQuat:function(e,t){var n=t[0],r=t[1],o=t[2],a=t[3],i=n+n,s=r+r,l=o+o,c=n*i,u=r*i,d=r*s,p=o*i,f=o*s,g=o*l,m=a*i,h=a*s,v=a*l;return e[0]=1-d-g,e[3]=u-v,e[6]=p+h,e[1]=u+v,e[4]=1-c-g,e[7]=f-m,e[2]=p-h,e[5]=f+m,e[8]=1-c-d,e},normalFromMat4:function(e,t){var n=t[0],r=t[1],o=t[2],a=t[3],i=t[4],s=t[5],l=t[6],c=t[7],u=t[8],d=t[9],p=t[10],f=t[11],g=t[12],m=t[13],h=t[14],v=t[15],T=n*s-r*i,x=n*l-o*i,y=n*c-a*i,b=r*l-o*s,A=r*c-a*s,C=o*c-a*l,S=u*m-d*g,P=u*h-p*g,w=u*v-f*g,I=d*h-p*m,O=d*v-f*m,R=p*v-f*h,M=T*R-x*O+y*I+b*w-A*P+C*S;return M?(M=1/M,e[0]=(s*R-l*O+c*I)*M,e[1]=(l*w-i*R-c*P)*M,e[2]=(i*O-s*w+c*S)*M,e[3]=(o*O-r*R-a*I)*M,e[4]=(n*R-o*w+a*P)*M,e[5]=(r*w-n*O-a*S)*M,e[6]=(m*C-h*A+v*b)*M,e[7]=(h*y-g*C-v*x)*M,e[8]=(g*A-m*y+v*T)*M,e):null},projection:function(e,t,n){return e[0]=2/t,e[1]=0,e[2]=0,e[3]=0,e[4]=-2/n,e[5]=0,e[6]=-1,e[7]=1,e[8]=1,e},str:function(e){return&quot;mat3(&quot;+e[0]+&quot;, &quot;+e[1]+&quot;, &quot;+e[2]+&quot;, &quot;+e[3]+&quot;, &quot;+e[4]+&quot;, &quot;+e[5]+&quot;, &quot;+e[6]+&quot;, &quot;+e[7]+&quot;, &quot;+e[8]+&quot;)&quot;},frob:function(e){return Math.hypot(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},add:function(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e[3]=t[3]+n[3],e[4]=t[4]+n[4],e[5]=t[5]+n[5],e[6]=t[6]+n[6],e[7]=t[7]+n[7],e[8]=t[8]+n[8],e},subtract:f,multiplyScalar:function(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e[4]=t[4]*n,e[5]=t[5]*n,e[6]=t[6]*n,e[7]=t[7]*n,e[8]=t[8]*n,e},multiplyScalarAndAdd:function(e,t,n,r){return e[0]=t[0]+n[0]*r,e[1]=t[1]+n[1]*r,e[2]=t[2]+n[2]*r,e[3]=t[3]+n[3]*r,e[4]=t[4]+n[4]*r,e[5]=t[5]+n[5]*r,e[6]=t[6]+n[6]*r,e[7]=t[7]+n[7]*r,e[8]=t[8]+n[8]*r,e},exactEquals:function(e,t){return e[0]===t[0]&amp;&amp;e[1]===t[1]&amp;&amp;e[2]===t[2]&amp;&amp;e[3]===t[3]&amp;&amp;e[4]===t[4]&amp;&amp;e[5]===t[5]&amp;&amp;e[6]===t[6]&amp;&amp;e[7]===t[7]&amp;&amp;e[8]===t[8]},equals:function(e,t){var r=e[0],o=e[1],a=e[2],i=e[3],s=e[4],l=e[5],c=e[6],u=e[7],d=e[8],p=t[0],f=t[1],g=t[2],m=t[3],h=t[4],v=t[5],T=t[6],x=t[7],y=t[8];return Math.abs(r-p)&lt;=n*Math.max(1,Math.abs(r),Math.abs(p))&amp;&amp;Math.abs(o-f)&lt;=n*Math.max(1,Math.abs(o),Math.abs(f))&amp;&amp;Math.abs(a-g)&lt;=n*Math.max(1,Math.abs(a),Math.abs(g))&amp;&amp;Math.abs(i-m)&lt;=n*Math.max(1,Math.abs(i),Math.abs(m))&amp;&amp;Math.abs(s-h)&lt;=n*Math.max(1,Math.abs(s),Math.abs(h))&amp;&amp;Math.abs(l-v)&lt;=n*Math.max(1,Math.abs(l),Math.abs(v))&amp;&amp;Math.abs(c-T)&lt;=n*Math.max(1,Math.abs(c),Math.abs(T))&amp;&amp;Math.abs(u-x)&lt;=n*Math.max(1,Math.abs(u),Math.abs(x))&amp;&amp;Math.abs(d-y)&lt;=n*Math.max(1,Math.abs(d),Math.abs(y))},mul:g,sub:m});function v(){var e=new r(16);return r!=Float32Array&amp;&amp;(e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0),e[0]=1,e[5]=1,e[10]=1,e[15]=1,e}function T(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function x(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function y(e,t){if(e===t){var n=t[1],r=t[2],o=t[3],a=t[6],i=t[7],s=t[11];e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=n,e[6]=t[9],e[7]=t[13],e[8]=r,e[9]=a,e[11]=t[14],e[12]=o,e[13]=i,e[14]=s}else e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15];return e}function b(e,t){var n=t[0],r=t[1],o=t[2],a=t[3],i=t[4],s=t[5],l=t[6],c=t[7],u=t[8],d=t[9],p=t[10],f=t[11],g=t[12],m=t[13],h=t[14],v=t[15],T=n*s-r*i,x=n*l-o*i,y=n*c-a*i,b=r*l-o*s,A=r*c-a*s,C=o*c-a*l,S=u*m-d*g,P=u*h-p*g,w=u*v-f*g,I=d*h-p*m,O=d*v-f*m,R=p*v-f*h,M=T*R-x*O+y*I+b*w-A*P+C*S;return M?(M=1/M,e[0]=(s*R-l*O+c*I)*M,e[1]=(o*O-r*R-a*I)*M,e[2]=(m*C-h*A+v*b)*M,e[3]=(p*A-d*C-f*b)*M,e[4]=(l*w-i*R-c*P)*M,e[5]=(n*R-o*w+a*P)*M,e[6]=(h*y-g*C-v*x)*M,e[7]=(u*C-p*y+f*x)*M,e[8]=(i*O-s*w+c*S)*M,e[9]=(r*w-n*O-a*S)*M,e[10]=(g*A-m*y+v*T)*M,e[11]=(d*y-u*A-f*T)*M,e[12]=(s*P-i*I-l*S)*M,e[13]=(n*I-r*P+o*S)*M,e[14]=(m*x-g*b-h*T)*M,e[15]=(u*b-d*x+p*T)*M,e):null}function A(e,t,n){var r=t[0],o=t[1],a=t[2],i=t[3],s=t[4],l=t[5],c=t[6],u=t[7],d=t[8],p=t[9],f=t[10],g=t[11],m=t[12],h=t[13],v=t[14],T=t[15],x=n[0],y=n[1],b=n[2],A=n[3];return e[0]=x*r+y*s+b*d+A*m,e[1]=x*o+y*l+b*p+A*h,e[2]=x*a+y*c+b*f+A*v,e[3]=x*i+y*u+b*g+A*T,x=n[4],y=n[5],b=n[6],A=n[7],e[4]=x*r+y*s+b*d+A*m,e[5]=x*o+y*l+b*p+A*h,e[6]=x*a+y*c+b*f+A*v,e[7]=x*i+y*u+b*g+A*T,x=n[8],y=n[9],b=n[10],A=n[11],e[8]=x*r+y*s+b*d+A*m,e[9]=x*o+y*l+b*p+A*h,e[10]=x*a+y*c+b*f+A*v,e[11]=x*i+y*u+b*g+A*T,x=n[12],y=n[13],b=n[14],A=n[15],e[12]=x*r+y*s+b*d+A*m,e[13]=x*o+y*l+b*p+A*h,e[14]=x*a+y*c+b*f+A*v,e[15]=x*i+y*u+b*g+A*T,e}function C(e,t,n){var r,o,a,i,s,l,c,u,d,p,f,g,m=n[0],h=n[1],v=n[2];return t===e?(e[12]=t[0]*m+t[4]*h+t[8]*v+t[12],e[13]=t[1]*m+t[5]*h+t[9]*v+t[13],e[14]=t[2]*m+t[6]*h+t[10]*v+t[14],e[15]=t[3]*m+t[7]*h+t[11]*v+t[15]):(r=t[0],o=t[1],a=t[2],i=t[3],s=t[4],l=t[5],c=t[6],u=t[7],d=t[8],p=t[9],f=t[10],g=t[11],e[0]=r,e[1]=o,e[2]=a,e[3]=i,e[4]=s,e[5]=l,e[6]=c,e[7]=u,e[8]=d,e[9]=p,e[10]=f,e[11]=g,e[12]=r*m+s*h+d*v+t[12],e[13]=o*m+l*h+p*v+t[13],e[14]=a*m+c*h+f*v+t[14],e[15]=i*m+u*h+g*v+t[15]),e}function S(e,t,n){var r=n[0],o=n[1],a=n[2];return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e[3]=t[3]*r,e[4]=t[4]*o,e[5]=t[5]*o,e[6]=t[6]*o,e[7]=t[7]*o,e[8]=t[8]*a,e[9]=t[9]*a,e[10]=t[10]*a,e[11]=t[11]*a,e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function P(e,t,r,o){var a,i,s,l,c,u,d,p,f,g,m,h,v,T,x,y,b,A,C,S,P,w,I,O,R=o[0],M=o[1],D=o[2],E=Math.hypot(R,M,D);return E&lt;n?null:(R*=E=1/E,M*=E,D*=E,a=Math.sin(r),s=1-(i=Math.cos(r)),l=t[0],c=t[1],u=t[2],d=t[3],p=t[4],f=t[5],g=t[6],m=t[7],h=t[8],v=t[9],T=t[10],x=t[11],y=R*R*s+i,b=M*R*s+D*a,A=D*R*s-M*a,C=R*M*s-D*a,S=M*M*s+i,P=D*M*s+R*a,w=R*D*s+M*a,I=M*D*s-R*a,O=D*D*s+i,e[0]=l*y+p*b+h*A,e[1]=c*y+f*b+v*A,e[2]=u*y+g*b+T*A,e[3]=d*y+m*b+x*A,e[4]=l*C+p*S+h*P,e[5]=c*C+f*S+v*P,e[6]=u*C+g*S+T*P,e[7]=d*C+m*S+x*P,e[8]=l*w+p*I+h*O,e[9]=c*w+f*I+v*O,e[10]=u*w+g*I+T*O,e[11]=d*w+m*I+x*O,t!==e&amp;&amp;(e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e)}function w(e,t,n){var r=Math.sin(n),o=Math.cos(n),a=t[4],i=t[5],s=t[6],l=t[7],c=t[8],u=t[9],d=t[10],p=t[11];return t!==e&amp;&amp;(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[4]=a*o+c*r,e[5]=i*o+u*r,e[6]=s*o+d*r,e[7]=l*o+p*r,e[8]=c*o-a*r,e[9]=u*o-i*r,e[10]=d*o-s*r,e[11]=p*o-l*r,e}function I(e,t,n){var r=Math.sin(n),o=Math.cos(n),a=t[0],i=t[1],s=t[2],l=t[3],c=t[8],u=t[9],d=t[10],p=t[11];return t!==e&amp;&amp;(e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=a*o-c*r,e[1]=i*o-u*r,e[2]=s*o-d*r,e[3]=l*o-p*r,e[8]=a*r+c*o,e[9]=i*r+u*o,e[10]=s*r+d*o,e[11]=l*r+p*o,e}function O(e,t,n){var r=Math.sin(n),o=Math.cos(n),a=t[0],i=t[1],s=t[2],l=t[3],c=t[4],u=t[5],d=t[6],p=t[7];return t!==e&amp;&amp;(e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=a*o+c*r,e[1]=i*o+u*r,e[2]=s*o+d*r,e[3]=l*o+p*r,e[4]=c*o-a*r,e[5]=u*o-i*r,e[6]=d*o-s*r,e[7]=p*o-l*r,e}function R(e,t){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=t[0],e[13]=t[1],e[14]=t[2],e[15]=1,e}function M(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=t[1],e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=t[2],e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function D(e,t,r){var o,a,i,s=r[0],l=r[1],c=r[2],u=Math.hypot(s,l,c);return u&lt;n?null:(s*=u=1/u,l*=u,c*=u,o=Math.sin(t),i=1-(a=Math.cos(t)),e[0]=s*s*i+a,e[1]=l*s*i+c*o,e[2]=c*s*i-l*o,e[3]=0,e[4]=s*l*i-c*o,e[5]=l*l*i+a,e[6]=c*l*i+s*o,e[7]=0,e[8]=s*c*i+l*o,e[9]=l*c*i-s*o,e[10]=c*c*i+a,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e)}function E(e,t,n){var r=t[0],o=t[1],a=t[2],i=t[3],s=r+r,l=o+o,c=a+a,u=r*s,d=r*l,p=r*c,f=o*l,g=o*c,m=a*c,h=i*s,v=i*l,T=i*c;return e[0]=1-(f+m),e[1]=d+T,e[2]=p-v,e[3]=0,e[4]=d-T,e[5]=1-(u+m),e[6]=g+h,e[7]=0,e[8]=p+v,e[9]=g-h,e[10]=1-(u+f),e[11]=0,e[12]=n[0],e[13]=n[1],e[14]=n[2],e[15]=1,e}function V(e,t){var n=t[0],r=t[1],o=t[2],a=t[4],i=t[5],s=t[6],l=t[8],c=t[9],u=t[10];return e[0]=Math.hypot(n,r,o),e[1]=Math.hypot(a,i,s),e[2]=Math.hypot(l,c,u),e}function L(e,t){var n=new r(3);V(n,t);var o=1/n[0],a=1/n[1],i=1/n[2],s=t[0]*o,l=t[1]*a,c=t[2]*i,u=t[4]*o,d=t[5]*a,p=t[6]*i,f=t[8]*o,g=t[9]*a,m=t[10]*i,h=s+d+m,v=0;return h&gt;0?(v=2*Math.sqrt(h+1),e[3]=.25*v,e[0]=(p-g)/v,e[1]=(f-c)/v,e[2]=(l-u)/v):s&gt;d&amp;&amp;s&gt;m?(v=2*Math.sqrt(1+s-d-m),e[3]=(p-g)/v,e[0]=.25*v,e[1]=(l+u)/v,e[2]=(f+c)/v):d&gt;m?(v=2*Math.sqrt(1+d-s-m),e[3]=(f-c)/v,e[0]=(l+u)/v,e[1]=.25*v,e[2]=(p+g)/v):(v=2*Math.sqrt(1+m-s-d),e[3]=(l-u)/v,e[0]=(f+c)/v,e[1]=(p+g)/v,e[2]=.25*v),e}function B(e,t,n,r){var o=t[0],a=t[1],i=t[2],s=t[3],l=o+o,c=a+a,u=i+i,d=o*l,p=o*c,f=o*u,g=a*c,m=a*u,h=i*u,v=s*l,T=s*c,x=s*u,y=r[0],b=r[1],A=r[2];return e[0]=(1-(g+h))*y,e[1]=(p+x)*y,e[2]=(f-T)*y,e[3]=0,e[4]=(p-x)*b,e[5]=(1-(d+h))*b,e[6]=(m+v)*b,e[7]=0,e[8]=(f+T)*A,e[9]=(m-v)*A,e[10]=(1-(d+g))*A,e[11]=0,e[12]=n[0],e[13]=n[1],e[14]=n[2],e[15]=1,e}function F(e,t){var n=t[0],r=t[1],o=t[2],a=t[3],i=n+n,s=r+r,l=o+o,c=n*i,u=r*i,d=r*s,p=o*i,f=o*s,g=o*l,m=a*i,h=a*s,v=a*l;return e[0]=1-d-g,e[1]=u+v,e[2]=p-h,e[3]=0,e[4]=u-v,e[5]=1-c-g,e[6]=f+m,e[7]=0,e[8]=p+h,e[9]=f-m,e[10]=1-c-d,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function N(e,t,n,r,o){var a,i=1/Math.tan(t/2);return e[0]=i/n,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=i,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,null!=o&amp;&amp;o!==1/0?(a=1/(r-o),e[10]=(o+r)*a,e[14]=2*o*r*a):(e[10]=-1,e[14]=-2*r),e}var k=N;function G(e,t,n,r,o,a,i){var s=1/(t-n),l=1/(r-o),c=1/(a-i);return e[0]=-2*s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*l,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*c,e[11]=0,e[12]=(t+n)*s,e[13]=(o+r)*l,e[14]=(i+a)*c,e[15]=1,e}var U=G;function _(e,t,r,o){var a,i,s,l,c,u,d,p,f,g,m=t[0],h=t[1],v=t[2],T=o[0],y=o[1],b=o[2],A=r[0],C=r[1],S=r[2];return Math.abs(m-A)&lt;n&amp;&amp;Math.abs(h-C)&lt;n&amp;&amp;Math.abs(v-S)&lt;n?x(e):(d=m-A,p=h-C,f=v-S,a=y*(f*=g=1/Math.hypot(d,p,f))-b*(p*=g),i=b*(d*=g)-T*f,s=T*p-y*d,(g=Math.hypot(a,i,s))?(a*=g=1/g,i*=g,s*=g):(a=0,i=0,s=0),l=p*s-f*i,c=f*a-d*s,u=d*i-p*a,(g=Math.hypot(l,c,u))?(l*=g=1/g,c*=g,u*=g):(l=0,c=0,u=0),e[0]=a,e[1]=l,e[2]=d,e[3]=0,e[4]=i,e[5]=c,e[6]=p,e[7]=0,e[8]=s,e[9]=u,e[10]=f,e[11]=0,e[12]=-(a*m+i*h+s*v),e[13]=-(l*m+c*h+u*v),e[14]=-(d*m+p*h+f*v),e[15]=1,e)}function K(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e[3]=t[3]-n[3],e[4]=t[4]-n[4],e[5]=t[5]-n[5],e[6]=t[6]-n[6],e[7]=t[7]-n[7],e[8]=t[8]-n[8],e[9]=t[9]-n[9],e[10]=t[10]-n[10],e[11]=t[11]-n[11],e[12]=t[12]-n[12],e[13]=t[13]-n[13],e[14]=t[14]-n[14],e[15]=t[15]-n[15],e}var z=A,W=K,H=Object.freeze({__proto__:null,create:v,clone:function(e){var t=new r(16);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t},copy:T,fromValues:function(e,t,n,o,a,i,s,l,c,u,d,p,f,g,m,h){var v=new r(16);return v[0]=e,v[1]=t,v[2]=n,v[3]=o,v[4]=a,v[5]=i,v[6]=s,v[7]=l,v[8]=c,v[9]=u,v[10]=d,v[11]=p,v[12]=f,v[13]=g,v[14]=m,v[15]=h,v},set:function(e,t,n,r,o,a,i,s,l,c,u,d,p,f,g,m,h){return e[0]=t,e[1]=n,e[2]=r,e[3]=o,e[4]=a,e[5]=i,e[6]=s,e[7]=l,e[8]=c,e[9]=u,e[10]=d,e[11]=p,e[12]=f,e[13]=g,e[14]=m,e[15]=h,e},identity:x,transpose:y,invert:b,adjoint:function(e,t){var n=t[0],r=t[1],o=t[2],a=t[3],i=t[4],s=t[5],l=t[6],c=t[7],u=t[8],d=t[9],p=t[10],f=t[11],g=t[12],m=t[13],h=t[14],v=t[15];return e[0]=s*(p*v-f*h)-d*(l*v-c*h)+m*(l*f-c*p),e[1]=-(r*(p*v-f*h)-d*(o*v-a*h)+m*(o*f-a*p)),e[2]=r*(l*v-c*h)-s*(o*v-a*h)+m*(o*c-a*l),e[3]=-(r*(l*f-c*p)-s*(o*f-a*p)+d*(o*c-a*l)),e[4]=-(i*(p*v-f*h)-u*(l*v-c*h)+g*(l*f-c*p)),e[5]=n*(p*v-f*h)-u*(o*v-a*h)+g*(o*f-a*p),e[6]=-(n*(l*v-c*h)-i*(o*v-a*h)+g*(o*c-a*l)),e[7]=n*(l*f-c*p)-i*(o*f-a*p)+u*(o*c-a*l),e[8]=i*(d*v-f*m)-u*(s*v-c*m)+g*(s*f-c*d),e[9]=-(n*(d*v-f*m)-u*(r*v-a*m)+g*(r*f-a*d)),e[10]=n*(s*v-c*m)-i*(r*v-a*m)+g*(r*c-a*s),e[11]=-(n*(s*f-c*d)-i*(r*f-a*d)+u*(r*c-a*s)),e[12]=-(i*(d*h-p*m)-u*(s*h-l*m)+g*(s*p-l*d)),e[13]=n*(d*h-p*m)-u*(r*h-o*m)+g*(r*p-o*d),e[14]=-(n*(s*h-l*m)-i*(r*h-o*m)+g*(r*l-o*s)),e[15]=n*(s*p-l*d)-i*(r*p-o*d)+u*(r*l-o*s),e},determinant:function(e){var t=e[0],n=e[1],r=e[2],o=e[3],a=e[4],i=e[5],s=e[6],l=e[7],c=e[8],u=e[9],d=e[10],p=e[11],f=e[12],g=e[13],m=e[14],h=e[15];return(t*i-n*a)*(d*h-p*m)-(t*s-r*a)*(u*h-p*g)+(t*l-o*a)*(u*m-d*g)+(n*s-r*i)*(c*h-p*f)-(n*l-o*i)*(c*m-d*f)+(r*l-o*s)*(c*g-u*f)},multiply:A,translate:C,scale:S,rotate:P,rotateX:w,rotateY:I,rotateZ:O,fromTranslation:R,fromScaling:M,fromRotation:D,fromXRotation:function(e,t){var n=Math.sin(t),r=Math.cos(t);return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=r,e[6]=n,e[7]=0,e[8]=0,e[9]=-n,e[10]=r,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e},fromYRotation:function(e,t){var n=Math.sin(t),r=Math.cos(t);return e[0]=r,e[1]=0,e[2]=-n,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=n,e[9]=0,e[10]=r,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e},fromZRotation:function(e,t){var n=Math.sin(t),r=Math.cos(t);return e[0]=r,e[1]=n,e[2]=0,e[3]=0,e[4]=-n,e[5]=r,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e},fromRotationTranslation:E,fromQuat2:function(e,t){var n=new r(3),o=-t[0],a=-t[1],i=-t[2],s=t[3],l=t[4],c=t[5],u=t[6],d=t[7],p=o*o+a*a+i*i+s*s;return p&gt;0?(n[0]=2*(l*s+d*o+c*i-u*a)/p,n[1]=2*(c*s+d*a+u*o-l*i)/p,n[2]=2*(u*s+d*i+l*a-c*o)/p):(n[0]=2*(l*s+d*o+c*i-u*a),n[1]=2*(c*s+d*a+u*o-l*i),n[2]=2*(u*s+d*i+l*a-c*o)),E(e,t,n),e},getTranslation:function(e,t){return e[0]=t[12],e[1]=t[13],e[2]=t[14],e},getScaling:V,getRotation:L,fromRotationTranslationScale:B,fromRotationTranslationScaleOrigin:function(e,t,n,r,o){var a=t[0],i=t[1],s=t[2],l=t[3],c=a+a,u=i+i,d=s+s,p=a*c,f=a*u,g=a*d,m=i*u,h=i*d,v=s*d,T=l*c,x=l*u,y=l*d,b=r[0],A=r[1],C=r[2],S=o[0],P=o[1],w=o[2],I=(1-(m+v))*b,O=(f+y)*b,R=(g-x)*b,M=(f-y)*A,D=(1-(p+v))*A,E=(h+T)*A,V=(g+x)*C,L=(h-T)*C,B=(1-(p+m))*C;return e[0]=I,e[1]=O,e[2]=R,e[3]=0,e[4]=M,e[5]=D,e[6]=E,e[7]=0,e[8]=V,e[9]=L,e[10]=B,e[11]=0,e[12]=n[0]+S-(I*S+M*P+V*w),e[13]=n[1]+P-(O*S+D*P+L*w),e[14]=n[2]+w-(R*S+E*P+B*w),e[15]=1,e},fromQuat:F,frustum:function(e,t,n,r,o,a,i){var s=1/(n-t),l=1/(o-r),c=1/(a-i);return e[0]=2*a*s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=2*a*l,e[6]=0,e[7]=0,e[8]=(n+t)*s,e[9]=(o+r)*l,e[10]=(i+a)*c,e[11]=-1,e[12]=0,e[13]=0,e[14]=i*a*2*c,e[15]=0,e},perspectiveNO:N,perspective:k,perspectiveZO:function(e,t,n,r,o){var a,i=1/Math.tan(t/2);return e[0]=i/n,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=i,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,null!=o&amp;&amp;o!==1/0?(a=1/(r-o),e[10]=o*a,e[14]=o*r*a):(e[10]=-1,e[14]=-r),e},perspectiveFromFieldOfView:function(e,t,n,r){var o=Math.tan(t.upDegrees*Math.PI/180),a=Math.tan(t.downDegrees*Math.PI/180),i=Math.tan(t.leftDegrees*Math.PI/180),s=Math.tan(t.rightDegrees*Math.PI/180),l=2/(i+s),c=2/(o+a);return e[0]=l,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=c,e[6]=0,e[7]=0,e[8]=-(i-s)*l*.5,e[9]=(o-a)*c*.5,e[10]=r/(n-r),e[11]=-1,e[12]=0,e[13]=0,e[14]=r*n/(n-r),e[15]=0,e},orthoNO:G,ortho:U,orthoZO:function(e,t,n,r,o,a,i){var s=1/(t-n),l=1/(r-o),c=1/(a-i);return e[0]=-2*s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*l,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=c,e[11]=0,e[12]=(t+n)*s,e[13]=(o+r)*l,e[14]=a*c,e[15]=1,e},lookAt:_,targetTo:function(e,t,n,r){var o=t[0],a=t[1],i=t[2],s=r[0],l=r[1],c=r[2],u=o-n[0],d=a-n[1],p=i-n[2],f=u*u+d*d+p*p;f&gt;0&amp;&amp;(u*=f=1/Math.sqrt(f),d*=f,p*=f);var g=l*p-c*d,m=c*u-s*p,h=s*d-l*u;return(f=g*g+m*m+h*h)&gt;0&amp;&amp;(g*=f=1/Math.sqrt(f),m*=f,h*=f),e[0]=g,e[1]=m,e[2]=h,e[3]=0,e[4]=d*h-p*m,e[5]=p*g-u*h,e[6]=u*m-d*g,e[7]=0,e[8]=u,e[9]=d,e[10]=p,e[11]=0,e[12]=o,e[13]=a,e[14]=i,e[15]=1,e},str:function(e){return&quot;mat4(&quot;+e[0]+&quot;, &quot;+e[1]+&quot;, &quot;+e[2]+&quot;, &quot;+e[3]+&quot;, &quot;+e[4]+&quot;, &quot;+e[5]+&quot;, &quot;+e[6]+&quot;, &quot;+e[7]+&quot;, &quot;+e[8]+&quot;, &quot;+e[9]+&quot;, &quot;+e[10]+&quot;, &quot;+e[11]+&quot;, &quot;+e[12]+&quot;, &quot;+e[13]+&quot;, &quot;+e[14]+&quot;, &quot;+e[15]+&quot;)&quot;},frob:function(e){return Math.hypot(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])},add:function(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e[3]=t[3]+n[3],e[4]=t[4]+n[4],e[5]=t[5]+n[5],e[6]=t[6]+n[6],e[7]=t[7]+n[7],e[8]=t[8]+n[8],e[9]=t[9]+n[9],e[10]=t[10]+n[10],e[11]=t[11]+n[11],e[12]=t[12]+n[12],e[13]=t[13]+n[13],e[14]=t[14]+n[14],e[15]=t[15]+n[15],e},subtract:K,multiplyScalar:function(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e[4]=t[4]*n,e[5]=t[5]*n,e[6]=t[6]*n,e[7]=t[7]*n,e[8]=t[8]*n,e[9]=t[9]*n,e[10]=t[10]*n,e[11]=t[11]*n,e[12]=t[12]*n,e[13]=t[13]*n,e[14]=t[14]*n,e[15]=t[15]*n,e},multiplyScalarAndAdd:function(e,t,n,r){return e[0]=t[0]+n[0]*r,e[1]=t[1]+n[1]*r,e[2]=t[2]+n[2]*r,e[3]=t[3]+n[3]*r,e[4]=t[4]+n[4]*r,e[5]=t[5]+n[5]*r,e[6]=t[6]+n[6]*r,e[7]=t[7]+n[7]*r,e[8]=t[8]+n[8]*r,e[9]=t[9]+n[9]*r,e[10]=t[10]+n[10]*r,e[11]=t[11]+n[11]*r,e[12]=t[12]+n[12]*r,e[13]=t[13]+n[13]*r,e[14]=t[14]+n[14]*r,e[15]=t[15]+n[15]*r,e},exactEquals:function(e,t){return e[0]===t[0]&amp;&amp;e[1]===t[1]&amp;&amp;e[2]===t[2]&amp;&amp;e[3]===t[3]&amp;&amp;e[4]===t[4]&amp;&amp;e[5]===t[5]&amp;&amp;e[6]===t[6]&amp;&amp;e[7]===t[7]&amp;&amp;e[8]===t[8]&amp;&amp;e[9]===t[9]&amp;&amp;e[10]===t[10]&amp;&amp;e[11]===t[11]&amp;&amp;e[12]===t[12]&amp;&amp;e[13]===t[13]&amp;&amp;e[14]===t[14]&amp;&amp;e[15]===t[15]},equals:function(e,t){var r=e[0],o=e[1],a=e[2],i=e[3],s=e[4],l=e[5],c=e[6],u=e[7],d=e[8],p=e[9],f=e[10],g=e[11],m=e[12],h=e[13],v=e[14],T=e[15],x=t[0],y=t[1],b=t[2],A=t[3],C=t[4],S=t[5],P=t[6],w=t[7],I=t[8],O=t[9],R=t[10],M=t[11],D=t[12],E=t[13],V=t[14],L=t[15];return Math.abs(r-x)&lt;=n*Math.max(1,Math.abs(r),Math.abs(x))&amp;&amp;Math.abs(o-y)&lt;=n*Math.max(1,Math.abs(o),Math.abs(y))&amp;&amp;Math.abs(a-b)&lt;=n*Math.max(1,Math.abs(a),Math.abs(b))&amp;&amp;Math.abs(i-A)&lt;=n*Math.max(1,Math.abs(i),Math.abs(A))&amp;&amp;Math.abs(s-C)&lt;=n*Math.max(1,Math.abs(s),Math.abs(C))&amp;&amp;Math.abs(l-S)&lt;=n*Math.max(1,Math.abs(l),Math.abs(S))&amp;&amp;Math.abs(c-P)&lt;=n*Math.max(1,Math.abs(c),Math.abs(P))&amp;&amp;Math.abs(u-w)&lt;=n*Math.max(1,Math.abs(u),Math.abs(w))&amp;&amp;Math.abs(d-I)&lt;=n*Math.max(1,Math.abs(d),Math.abs(I))&amp;&amp;Math.abs(p-O)&lt;=n*Math.max(1,Math.abs(p),Math.abs(O))&amp;&amp;Math.abs(f-R)&lt;=n*Math.max(1,Math.abs(f),Math.abs(R))&amp;&amp;Math.abs(g-M)&lt;=n*Math.max(1,Math.abs(g),Math.abs(M))&amp;&amp;Math.abs(m-D)&lt;=n*Math.max(1,Math.abs(m),Math.abs(D))&amp;&amp;Math.abs(h-E)&lt;=n*Math.max(1,Math.abs(h),Math.abs(E))&amp;&amp;Math.abs(v-V)&lt;=n*Math.max(1,Math.abs(v),Math.abs(V))&amp;&amp;Math.abs(T-L)&lt;=n*Math.max(1,Math.abs(T),Math.abs(L))},mul:z,sub:W});function j(){var e=new r(3);return r!=Float32Array&amp;&amp;(e[0]=0,e[1]=0,e[2]=0),e}function X(e){var t=e[0],n=e[1],r=e[2];return Math.hypot(t,n,r)}function q(e,t,n){var o=new r(3);return o[0]=e,o[1]=t,o[2]=n,o}function Y(e,t,n,r){return e[0]=t,e[1]=n,e[2]=r,e}function J(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e}function Z(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e}function Q(e,t,n){return e[0]=t[0]*n[0],e[1]=t[1]*n[1],e[2]=t[2]*n[2],e}function $(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e}function ee(e,t){return e[0]=1/t[0],e[1]=1/t[1],e[2]=1/t[2],e}function te(e,t){var n=t[0],r=t[1],o=t[2],a=n*n+r*r+o*o;return a&gt;0&amp;&amp;(a=1/Math.sqrt(a)),e[0]=t[0]*a,e[1]=t[1]*a,e[2]=t[2]*a,e}function ne(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function re(e,t,n){var r=t[0],o=t[1],a=t[2],i=n[0],s=n[1],l=n[2];return e[0]=o*l-a*s,e[1]=a*i-r*l,e[2]=r*s-o*i,e}function oe(e,t,n){var r=t[0],o=t[1],a=t[2],i=n[3]*r+n[7]*o+n[11]*a+n[15];return i=i||1,e[0]=(n[0]*r+n[4]*o+n[8]*a+n[12])/i,e[1]=(n[1]*r+n[5]*o+n[9]*a+n[13])/i,e[2]=(n[2]*r+n[6]*o+n[10]*a+n[14])/i,e}function ae(e,t,n){var r=t[0],o=t[1],a=t[2];return e[0]=r*n[0]+o*n[3]+a*n[6],e[1]=r*n[1]+o*n[4]+a*n[7],e[2]=r*n[2]+o*n[5]+a*n[8],e}function ie(e,t){return e[0]===t[0]&amp;&amp;e[1]===t[1]&amp;&amp;e[2]===t[2]}function se(e,t){var r=e[0],o=e[1],a=e[2],i=t[0],s=t[1],l=t[2];return Math.abs(r-i)&lt;=n*Math.max(1,Math.abs(r),Math.abs(i))&amp;&amp;Math.abs(o-s)&lt;=n*Math.max(1,Math.abs(o),Math.abs(s))&amp;&amp;Math.abs(a-l)&lt;=n*Math.max(1,Math.abs(a),Math.abs(l))}var le=Z,ce=Q,ue=function(e,t){var n=t[0]-e[0],r=t[1]-e[1],o=t[2]-e[2];return Math.hypot(n,r,o)};function de(e,t,n){var r=t[0],o=t[1],a=t[2],i=t[3];return e[0]=n[0]*r+n[4]*o+n[8]*a+n[12]*i,e[1]=n[1]*r+n[5]*o+n[9]*a+n[13]*i,e[2]=n[2]*r+n[6]*o+n[10]*a+n[14]*i,e[3]=n[3]*r+n[7]*o+n[11]*a+n[15]*i,e}function pe(){var e=new r(4);return r!=Float32Array&amp;&amp;(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}function fe(e,t,n){n*=.5;var r=Math.sin(n);return e[0]=r*t[0],e[1]=r*t[1],e[2]=r*t[2],e[3]=Math.cos(n),e}function ge(e,t,n){var r=t[0],o=t[1],a=t[2],i=t[3],s=n[0],l=n[1],c=n[2],u=n[3];return e[0]=r*u+i*s+o*c-a*l,e[1]=o*u+i*l+a*s-r*c,e[2]=a*u+i*c+r*l-o*s,e[3]=i*u-r*s-o*l-a*c,e}function me(e,t,r,o){var a,i,s,l,c,u=t[0],d=t[1],p=t[2],f=t[3],g=r[0],m=r[1],h=r[2],v=r[3];return(i=u*g+d*m+p*h+f*v)&lt;0&amp;&amp;(i=-i,g=-g,m=-m,h=-h,v=-v),1-i&gt;n?(a=Math.acos(i),s=Math.sin(a),l=Math.sin((1-o)*a)/s,c=Math.sin(o*a)/s):(l=1-o,c=o),e[0]=l*u+c*g,e[1]=l*d+c*m,e[2]=l*p+c*h,e[3]=l*f+c*v,e}j(),function(){var e,t=(e=new r(4),r!=Float32Array&amp;&amp;(e[0]=0,e[1]=0,e[2]=0,e[3]=0),e)}();var he=function(e,t,n,o){var a=new r(4);return a[0]=e,a[1]=t,a[2]=n,a[3]=o,a};j(),q(1,0,0),q(0,1,0),pe(),pe(),i();var ve,Te=&quot;undefined&quot;!=typeof globalThis?globalThis:&quot;undefined&quot;!=typeof window?window:&quot;undefined&quot;!=typeof global?global:&quot;undefined&quot;!=typeof self?self:{},xe=function e(t,n){if(t===n)return!0;if(t&amp;&amp;n&amp;&amp;&quot;object&quot;==typeof t&amp;&amp;&quot;object&quot;==typeof n){if(t.constructor!==n.constructor)return!1;var r,o,a;if(Array.isArray(t)){if((r=t.length)!=n.length)return!1;for(o=r;0!=o--;)if(!e(t[o],n[o]))return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&amp;&amp;t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if((r=(a=Object.keys(t)).length)!==Object.keys(n).length)return!1;for(o=r;0!=o--;)if(!Object.prototype.hasOwnProperty.call(n,a[o]))return!1;for(o=r;0!=o--;){var i=a[o];if(!e(t[i],n[i]))return!1}return!0}return t!=t&amp;&amp;n!=n},ye=Object.prototype.toString,be=function(e){var t=ye.call(e),n=&quot;[object Arguments]&quot;===t;return n||(n=&quot;[object Array]&quot;!==t&amp;&amp;null!==e&amp;&amp;&quot;object&quot;==typeof e&amp;&amp;&quot;number&quot;==typeof e.length&amp;&amp;e.length&gt;=0&amp;&amp;&quot;[object Function]&quot;===ye.call(e.callee)),n};if(!Object.keys){var Ae=Object.prototype.hasOwnProperty,Ce=Object.prototype.toString,Se=be,Pe=Object.prototype.propertyIsEnumerable,we=!Pe.call({toString:null},&quot;toString&quot;),Ie=Pe.call((function(){}),&quot;prototype&quot;),Oe=[&quot;toString&quot;,&quot;toLocaleString&quot;,&quot;valueOf&quot;,&quot;hasOwnProperty&quot;,&quot;isPrototypeOf&quot;,&quot;propertyIsEnumerable&quot;,&quot;constructor&quot;],Re=function(e){var t=e.constructor;return t&amp;&amp;t.prototype===e},Me={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},De=function(){if(&quot;undefined&quot;==typeof window)return!1;for(var e in window)try{if(!Me[&quot;$&quot;+e]&amp;&amp;Ae.call(window,e)&amp;&amp;null!==window[e]&amp;&amp;&quot;object&quot;==typeof window[e])try{Re(window[e])}catch(e){return!0}}catch(e){return!0}return!1}();ve=function(e){var t=null!==e&amp;&amp;&quot;object&quot;==typeof e,n=&quot;[object Function]&quot;===Ce.call(e),r=Se(e),o=t&amp;&amp;&quot;[object String]&quot;===Ce.call(e),a=[];if(!t&amp;&amp;!n&amp;&amp;!r)throw new TypeError(&quot;Object.keys called on a non-object&quot;);var i=Ie&amp;&amp;n;if(o&amp;&amp;e.length&gt;0&amp;&amp;!Ae.call(e,0))for(var s=0;s&lt;e.length;++s)a.push(String(s));if(r&amp;&amp;e.length&gt;0)for(var l=0;l&lt;e.length;++l)a.push(String(l));else for(var c in e)i&amp;&amp;&quot;prototype&quot;===c||!Ae.call(e,c)||a.push(String(c));if(we)for(var u=function(e){if(&quot;undefined&quot;==typeof window||!De)return Re(e);try{return Re(e)}catch(e){return!1}}(e),d=0;d&lt;Oe.length;++d)u&amp;&amp;&quot;constructor&quot;===Oe[d]||!Ae.call(e,Oe[d])||a.push(Oe[d]);return a}}var Ee=ve,Ve=Array.prototype.slice,Le=be,Be=Object.keys,Fe=Be?function(e){return Be(e)}:Ee,Ne=Object.keys;Fe.shim=function(){if(Object.keys){var e=function(){var e=Object.keys(arguments);return e&amp;&amp;e.length===arguments.length}(1,2);e||(Object.keys=function(e){return Le(e)?Ne(Ve.call(e)):Ne(e)})}else Object.keys=Fe;return Object.keys||Fe};var ke=Fe,Ge=&quot;function&quot;==typeof Symbol&amp;&amp;&quot;symbol&quot;==typeof Symbol(&quot;foo&quot;),Ue=Object.prototype.toString,_e=Array.prototype.concat,Ke=Object.defineProperty,ze=Ke&amp;&amp;function(){var e={};try{for(var t in Ke(e,&quot;x&quot;,{enumerable:!1,value:e}),e)return!1;return e.x===e}catch(e){return!1}}(),We=function(e,t,n,r){var o;(!(t in e)||&quot;function&quot;==typeof(o=r)&amp;&amp;&quot;[object Function]&quot;===Ue.call(o)&amp;&amp;r())&amp;&amp;(ze?Ke(e,t,{configurable:!0,enumerable:!1,value:n,writable:!0}):e[t]=n)},He=function(e,t){var n=arguments.length&gt;2?arguments[2]:{},r=ke(t);Ge&amp;&amp;(r=_e.call(r,Object.getOwnPropertySymbols(t)));for(var o=0;o&lt;r.length;o+=1)We(e,r[o],t[r[o]],n[r[o]])};He.supportsDescriptors=!!ze;var je=He,Xe={exports:{}};&quot;undefined&quot;!=typeof self?Xe.exports=self:&quot;undefined&quot;!=typeof window?Xe.exports=window:Xe.exports=Function(&quot;return this&quot;)();var qe=Xe.exports,Ye=function(){return&quot;object&quot;==typeof Te&amp;&amp;Te&amp;&amp;Te.Math===Math&amp;&amp;Te.Array===Array?Te:qe},Je=je,Ze=Ye,Qe=je,$e=Xe.exports,et=Ye,tt=function(){var e=Ze();if(Je.supportsDescriptors){var t=Object.getOwnPropertyDescriptor(e,&quot;globalThis&quot;);t&amp;&amp;(!t.configurable||!t.enumerable&amp;&amp;t.writable&amp;&amp;globalThis===e)||Object.defineProperty(e,&quot;globalThis&quot;,{configurable:!0,enumerable:!1,value:e,writable:!0})}else&quot;object&quot;==typeof globalThis&amp;&amp;globalThis===e||(e.globalThis=e);return e},nt=et(),rt=function(){return nt};Qe(rt,{getPolyfill:et,implementation:$e,shim:tt});const ot=rt(),at={vtkObject:()=&gt;null};function it(e){if(null==e)return e;if(e.isA)return e;if(!e.vtkClass)return ot.console&amp;&amp;ot.console.error&amp;&amp;ot.console.error(&quot;Invalid VTK object&quot;),null;const t=at[e.vtkClass];if(!t)return ot.console&amp;&amp;ot.console.error&amp;&amp;ot.console.error(`No vtk class found for Object of type ${e.vtkClass}`),null;const n={...e};Object.keys(n).forEach((e=&gt;{n[e]&amp;&amp;&quot;object&quot;==typeof n[e]&amp;&amp;n[e].vtkClass&amp;&amp;(n[e]=it(n[e]))}));const r=t(n);return r&amp;&amp;r.modified&amp;&amp;r.modified(),r}it.register=function(e,t){at[e]=t};class st extends Array{push(){for(let e=0;e&lt;arguments.length;e++)this.includes(arguments[e])||super.push(arguments[e]);return this.length}}let lt=0;const ct=e=&gt;{throw new Error(`Named parameter &#x27;${e}&#x27; is missing`)},ut=Symbol(&quot;void&quot;);const dt={};function pt(){}[&quot;log&quot;,&quot;debug&quot;,&quot;info&quot;,&quot;warn&quot;,&quot;error&quot;,&quot;time&quot;,&quot;timeEnd&quot;,&quot;group&quot;,&quot;groupEnd&quot;].forEach((e=&gt;{dt[e]=pt})),ot.console=console.hasOwnProperty(&quot;log&quot;)?console:dt;const ft={debug:pt,error:ot.console.error||pt,info:ot.console.info||pt,log:ot.console.log||pt,warn:ot.console.warn||pt};function gt(e,t){ft[e]&amp;&amp;(ft[e]=t||pt)}function mt(...e){ft.log(...e)}function ht(...e){ft.info(...e)}function vt(...e){ft.debug(...e)}function Tt(...e){ft.error(...e)}function xt(...e){ft.warn(...e)}const yt={};function bt(e){yt[e]||(ft.error(e),yt[e]=!0)}const At=Object.create(null);At.Float32Array=Float32Array,At.Float64Array=Float64Array,At.Uint8Array=Uint8Array,At.Int8Array=Int8Array,At.Uint16Array=Uint16Array,At.Int16Array=Int16Array,At.Uint32Array=Uint32Array,At.Int32Array=Int32Array,At.Uint8ClampedArray=Uint8ClampedArray;try{At.BigInt64Array=BigInt64Array,At.BigUint64Array=BigUint64Array}catch{}function Ct(e,...t){return new(At[e]||Float64Array)(...t)}function St(e,...t){return(At[e]||Float64Array).from(...t)}function Pt(e){return e.charAt(0).toUpperCase()+e.slice(1)}function wt(e){return Pt(&quot;_&quot;===e[0]?e.slice(1):e)}function It(e){return e.charAt(0).toLowerCase()+e.slice(1)}function Ot(e,t=2,n=1e3){const r=[&quot;TB&quot;,&quot;GB&quot;,&quot;MB&quot;,&quot;KB&quot;];let o=Number(e),a=&quot;B&quot;;for(;o&gt;n;)o/=n,a=r.pop();return`${o.toFixed(t)} ${a}`}function Rt(e,t=&quot; &quot;){const n=[];let r=e;for(;r&gt;1e3;)n.push((&quot;000&quot;+r%1e3).slice(-3)),r=Math.floor(r/1e3);return r&gt;0&amp;&amp;n.push(r),n.reverse(),n.join(t)}function Mt(e){Object.keys(e).forEach((t=&gt;{Array.isArray(e[t])&amp;&amp;(e[t]=[].concat(e[t]))}))}function Dt(e){setTimeout(e,0)}function Et(e,t){const n=performance.now();e.finally((()=&gt;{const e=performance.now()-n;t(e)}))}function Vt(e={},t={}){Mt(t);const n=[];if(Number.isInteger(t.mtime)||(t.mtime=++lt),&quot;classHierarchy&quot;in t){if(!(t.classHierarchy instanceof st)){const e=new st;for(let n=0;n&lt;t.classHierarchy.length;n++)e.push(t.classHierarchy[n]);t.classHierarchy=e}}else t.classHierarchy=new st(&quot;vtkObject&quot;);function r(e){n[e]=null}return e.isDeleted=()=&gt;!!t.deleted,e.modified=r=&gt;{t.deleted?Tt(&quot;instance deleted - cannot call any method&quot;):r&amp;&amp;r&lt;e.getMTime()||(t.mtime=++lt,n.forEach((t=&gt;t&amp;&amp;t(e))))},e.onModified=e=&gt;{if(t.deleted)return Tt(&quot;instance deleted - cannot call any method&quot;),null;const o=n.length;return n.push(e),function(e){return Object.freeze({unsubscribe:function(){r(e)}})}(o)},e.getMTime=()=&gt;t.mtime,e.isA=e=&gt;{let n=t.classHierarchy.length;for(;n--;)if(t.classHierarchy[n]===e)return!0;return!1},e.getClassName=(e=0)=&gt;t.classHierarchy[t.classHierarchy.length-1-e],e.set=(n={},r=!1,o=!1)=&gt;{let a=!1;return Object.keys(n).forEach((i=&gt;{const s=o?null:e[`set${Pt(i)}`];s&amp;&amp;Array.isArray(n[i])&amp;&amp;s.length&gt;1?a=s(...n[i])||a:s?a=s(n[i])||a:(-1!==[&quot;mtime&quot;].indexOf(i)||r||xt(`Warning: Set value to model directly ${i}, ${n[i]}`),a=t[i]!==n[i]||a,t[i]=n[i])})),a},e.get=(...e)=&gt;{if(!e.length)return t;const n={};return e.forEach((e=&gt;{n[e]=t[e]})),n},e.getReferenceByName=e=&gt;t[e],e.delete=()=&gt;{Object.keys(t).forEach((e=&gt;delete t[e])),n.forEach(((e,t)=&gt;r(t))),t.deleted=!0},e.getState=({preserveTypedArrays:n=!1}={})=&gt;{if(t.deleted)return null;const r={preserveTypedArrays:n},o={...t,vtkClass:e.getClassName()};Object.keys(o).forEach((e=&gt;{var t;null===o[e]||void 0===o[e]||&quot;_&quot;===e[0]?delete o[e]:o[e].isA?o[e]=o[e].getState(r):Array.isArray(o[e])?o[e]=o[e].map((e=&gt;e&amp;&amp;e.isA?e.getState(r):e)):(t=o[e],Object.values(At).some((e=&gt;t instanceof e))&amp;&amp;(n||(o[e]=Array.from(o[e]))))}));const a={};return Object.keys(o).sort().forEach((e=&gt;{a[e]=o[e]})),a.mtime&amp;&amp;delete a.mtime,a},e.shallowCopy=(n,r=!1)=&gt;{if(n.getClassName()!==e.getClassName())throw new Error(`Cannot ShallowCopy ${n.getClassName()} into ${e.getClassName()}`);const o=n.get(),a=Object.keys(t).sort();Object.keys(o).sort().forEach((e=&gt;{const n=a.indexOf(e);-1===n?r&amp;&amp;vt(`add ${e} in shallowCopy`):a.splice(n,1),t[e]=o[e]})),a.length&amp;&amp;r&amp;&amp;vt(`Untouched keys: ${a.join(&quot;, &quot;)}`),e.modified()},e.toJSON=function(){return e.getState()},e}const Lt={object:(e,t,n)=&gt;function(){return{...t[n.name]}}};function Bt(e,t,n){n.forEach((n=&gt;{if(&quot;object&quot;==typeof n){const r=Lt[n.type];e[`get${wt(n.name)}`]=r?r(e,t,n):()=&gt;t[n.name]}else e[`get${wt(n)}`]=()=&gt;t[n]}))}const Ft={enum(e,t,n){const r=`_on${wt(n.name)}Changed`;return o=&gt;{if(&quot;string&quot;==typeof o){if(void 0!==n.enum[o])return t[n.name]!==n.enum[o]&amp;&amp;(t[n.name]=n.enum[o],e.modified(),!0);throw Tt(`Set Enum with invalid argument ${n}, ${o}`),new RangeError(&quot;Set Enum with invalid string argument&quot;)}if(&quot;number&quot;==typeof o){if(t[n.name]!==o){if(-1!==Object.keys(n.enum).map((e=&gt;n.enum[e])).indexOf(o)){const a=t[n.name];return t[n.name]=o,t[r]?.(e,t,o,a),e.modified(),!0}throw Tt(`Set Enum outside numeric range ${n}, ${o}`),new RangeError(&quot;Set Enum outside numeric range&quot;)}return!1}throw Tt(`Set Enum with invalid argument (String/Number) ${n}, ${o}`),new TypeError(&quot;Set Enum with invalid argument (String/Number)&quot;)}},object(e,t,n){1===n.params?.length&amp;&amp;xt(&#x27;Setter of type &quot;object&quot; with a single &quot;param&quot; field is not supported&#x27;);const r=`_on${wt(n.name)}Changed`;return(...o)=&gt;{let a;if(a=o.length&gt;1&amp;&amp;n.params?.length?n.params.reduce(((e,t,n)=&gt;Object.assign(e,{[t]:o[n]})),{}):o[0],!xe(t[n.name],a)){const o=t[n.name];return t[n.name]=a,t[r]?.(e,t,a,o),e.modified(),!0}return!1}}};function Nt(e){if(&quot;object&quot;==typeof e){const t=Ft[e.type];if(t)return(n,r)=&gt;t(n,r,e);throw Tt(`No setter for field ${e}`),new TypeError(&quot;No setter for field&quot;)}return function(t,n){const r=`_on${wt(e)}Changed`;return function(o){if(n.deleted)return Tt(&quot;instance deleted - cannot call any method&quot;),!1;if(n[e]!==o){const a=n[e.name];return n[e]=o,n[r]?.(t,n,o,a),t.modified(),!0}return!1}}}function kt(e,t,n){n.forEach((n=&gt;{&quot;object&quot;==typeof n?e[`set${wt(n.name)}`]=Nt(n)(e,t):e[`set${wt(n)}`]=Nt(n)(e,t)}))}function Gt(e,t,n){Bt(e,t,n),kt(e,t,n)}function Ut(e,t,n){n.forEach((n=&gt;{e[`get${wt(n)}`]=()=&gt;t[n]?Array.from(t[n]):t[n],e[`get${wt(n)}ByReference`]=()=&gt;t[n]}))}function _t(e,t,n,r,o=void 0){n.forEach((n=&gt;{if(t[n]&amp;&amp;r&amp;&amp;t[n].length!==r)throw new RangeError(`Invalid initial number of values for array (${n})`);const a=`_on${wt(n)}Changed`;e[`set${wt(n)}`]=(...i)=&gt;{if(t.deleted)return Tt(&quot;instance deleted - cannot call any method&quot;),!1;let s,l=i,c=!1;if(1===l.length&amp;&amp;(null==l[0]||l[0].length&gt;=0)&amp;&amp;(l=l[0],c=!0),null==l)s=t[n]!==l;else{if(r&amp;&amp;l.length!==r){if(!(l.length&lt;r&amp;&amp;void 0!==o))throw new RangeError(`Invalid number of values for array setter (${n})`);for(l=Array.from(l),c=!1;l.length&lt;r;)l.push(o)}s=null==t[n]||t[n].length!==l.length;for(let e=0;!s&amp;&amp;e&lt;l.length;++e)s=t[n][e]!==l[e];s&amp;&amp;c&amp;&amp;(l=Array.from(l))}if(s){const r=t[n.name];t[n]=l,t[a]?.(e,t,l,r),e.modified()}return s},e[`set${wt(n)}From`]=e=&gt;{const r=t[n];e.forEach(((e,t)=&gt;{r[t]=e}))}}))}function Kt(e,t,n,r,o=void 0){Ut(e,t,n),_t(e,t,n,r,o)}function zt(e,t,n){for(let e=0;e&lt;n.length;e++){const r=n[e];void 0!==t[r]&amp;&amp;(t[`_${r}`]=t[r],delete t[r])}}function Wt(e,t,n,r){function o(n,r=0){t.deleted?Tt(&quot;instance deleted - cannot call any method&quot;):r&gt;=t.numberOfInputs?Tt(`algorithm ${e.getClassName()} only has ${t.numberOfInputs} input ports. To add more input ports, use addInputData()`):(t.inputData[r]!==n||t.inputConnection[r])&amp;&amp;(t.inputData[r]=n,t.inputConnection[r]=null,e.modified&amp;&amp;e.modified())}function a(n,r=0){if(t.deleted)Tt(&quot;instance deleted - cannot call any method&quot;);else{if(r&gt;=t.numberOfInputs){let n=`algorithm ${e.getClassName()} only has `;return n+=`${t.numberOfInputs}`,n+=&quot; input ports. To add more input ports, use addInputConnection()&quot;,void Tt(n)}t.inputData[r]=null,t.inputConnection[r]=n}}function i(){let e=t.numberOfInputs;for(;e&amp;&amp;!t.inputData[e-1]&amp;&amp;!t.inputConnection[e-1];)e--;return e===t.numberOfInputs&amp;&amp;t.numberOfInputs++,e}function s(n=0){return t.deleted?(Tt(&quot;instance deleted - cannot call any method&quot;),null):(e.shouldUpdate()&amp;&amp;e.update(),t.output[n])}if(t.inputData?t.inputData=t.inputData.map(it):t.inputData=[],t.inputConnection?t.inputConnection=t.inputConnection.map(it):t.inputConnection=[],t.output?t.output=t.output.map(it):t.output=[],t.inputArrayToProcess?t.inputArrayToProcess=t.inputArrayToProcess.map(it):t.inputArrayToProcess=[],t.numberOfInputs=n,e.shouldUpdate=()=&gt;{const n=e.getMTime();let o=1/0,a=r;for(;a--;){if(!t.output[a]||t.output[a].isDeleted())return!0;const e=t.output[a].getMTime();if(e&lt;n)return!0;e&lt;o&amp;&amp;(o=e)}for(a=t.numberOfInputs;a--;)if(t.inputConnection[a]?.filter.shouldUpdate()||e.getInputData(a)?.getMTime()&gt;o)return!0;return!1},t.numberOfInputs){let n=t.numberOfInputs;for(;n--;)t.inputData.push(null),t.inputConnection.push(null);e.setInputData=o,e.setInputConnection=a,e.addInputData=function(e){t.deleted?Tt(&quot;instance deleted - cannot call any method&quot;):o(e,i())},e.addInputConnection=function(e){t.deleted?Tt(&quot;instance deleted - cannot call any method&quot;):a(e,i())},e.getInputData=function(e=0){return t.inputConnection[e]&amp;&amp;(t.inputData[e]=t.inputConnection[e]()),t.inputData[e]},e.getInputConnection=function(e=0){return t.inputConnection[e]}}r&amp;&amp;(e.getOutputData=s,e.getOutputPort=function(t=0){const n=()=&gt;s(t);return n.filter=e,n}),e.update=()=&gt;{const n=[];if(t.numberOfInputs){let r=0;for(;r&lt;t.numberOfInputs;)n[r]=e.getInputData(r),r++}e.requestData&amp;&amp;!e.isDeleted()&amp;&amp;e.shouldUpdate()&amp;&amp;e.requestData(n,t.output)},e.getNumberOfInputPorts=()=&gt;t.numberOfInputs,e.getNumberOfOutputPorts=()=&gt;r||t.output.length,e.getInputArrayToProcess=e=&gt;{const n=t.inputArrayToProcess[e],r=t.inputData[e];return n&amp;&amp;r?r[`get${n.fieldAssociation}`]().getArray(n.arrayName):null},e.setInputArrayToProcess=(e,n,r,o=&quot;Scalars&quot;)=&gt;{for(;t.inputArrayToProcess.length&lt;e;)t.inputArrayToProcess.push(null);t.inputArrayToProcess[e]={arrayName:n,fieldAssociation:r,attributeType:o}}}const Ht=Symbol(&quot;Event abort&quot;);function jt(e,t,n){const r=[],o=e.delete;let a=1;function i(e){for(let t=0;t&lt;r.length;++t){const[n]=r[t];if(n===e)return void r.splice(t,1)}}e[`invoke${wt(n)}`]=function(){if(t.deleted)return void Tt(&quot;instance deleted - cannot call any method&quot;);const n=r.slice();for(let t=0;t&lt;n.length;++t){const[,r,o]=n[t];if(r)if(o&lt;0)setTimeout((()=&gt;r.apply(e,arguments)),1-o);else{if(r.apply(e,arguments)===Ht)break}}},e[`on${wt(n)}`]=(e,o=0)=&gt;{if(!e.apply)return console.error(`Invalid callback for event ${n}`),null;if(t.deleted)return Tt(&quot;instance deleted - cannot call any method&quot;),null;const s=a++;return r.push([s,e,o]),r.sort(((e,t)=&gt;t[2]-e[2])),function(e){return Object.freeze({unsubscribe:function(){i(e)}})}(s)},e.delete=()=&gt;{o(),r.forEach((([e])=&gt;i(e)))}}function Xt(e,t){const n=(t={})=&gt;{const n={};return e(n,{},t),Object.freeze(n)};return t&amp;&amp;it.register(t,n),n}function qt(...e){return(...t)=&gt;e.filter((e=&gt;!!e)).map((e=&gt;e(...t)))}function Yt(e){return e&amp;&amp;e.isA&amp;&amp;e.isA(&quot;vtkObject&quot;)}function Jt(e,t,n=[],r=[]){if(Yt(e)){if(r.indexOf(e)&gt;=0)return n;r.push(e);const o=t(e);void 0!==o&amp;&amp;n.push(o);const a=e.get();Object.keys(a).forEach((e=&gt;{const o=a[e];Array.isArray(o)?o.forEach((e=&gt;{Jt(e,t,n,r)})):Jt(o,t,n,r)}))}return n}function Zt(e,t,n){let r;const o=(...o)=&gt;{const a=this,i=n&amp;&amp;!r;clearTimeout(r),r=setTimeout((()=&gt;{r=null,n||e.apply(a,o)}),t),i&amp;&amp;e.apply(a,o)};return o.cancel=()=&gt;clearTimeout(r),o}function Qt(e,t){let n=!1,r=null;function o(){n=!1,null!==r&amp;&amp;(a(...r),r=null)}function a(...a){n?r=a:(n=!0,e(...a),setTimeout(o,t))}return a}function $t(e,t,n={}){t.keystore=Object.assign(t.keystore||{},n),e.setKey=(e,n)=&gt;{t.keystore[e]=n},e.getKey=e=&gt;t.keystore[e],e.getAllKeys=()=&gt;Object.keys(t.keystore),e.deleteKey=e=&gt;delete t.keystore[e],e.clearKeystore=()=&gt;e.getAllKeys().forEach((e=&gt;delete t.keystore[e]))}let en=1;const tn=&quot;__root__&quot;;function nn(e,t){$t(e,t);const n=e.delete;t.proxyId=&quot;&quot;+en++,t.ui=JSON.parse(JSON.stringify(t.ui||[])),Bt(e,t,[&quot;proxyId&quot;,&quot;proxyGroup&quot;,&quot;proxyName&quot;]),Gt(e,t,[&quot;proxyManager&quot;]);const r={},o={};function a(e,t){o[t]||(o[t]=[]);const n=o[t];for(let t=0;t&lt;e.length;t++)n.push(e[t].name),r[e[t].name]=e[t],e[t].children&amp;&amp;e[t].children.length&amp;&amp;a(e[t].children,e[t].name)}function i(n=tn){const r=[],a=t.proxyId,s=function(e=tn){return o[e]}(n)||[];for(let t=0;t&lt;s.length;t++){const n=s[t],o=e[`get${wt(n)}`],l={id:a,name:n,value:o?o():void 0},c=i(n);c.length&amp;&amp;(l.children=c),r.push(l)}return r}a(t.ui,tn),e.updateUI=n=&gt;{t.ui=JSON.parse(JSON.stringify(n||[])),Object.keys(r).forEach((e=&gt;delete r[e])),Object.keys(o).forEach((e=&gt;delete o[e])),a(t.ui,tn),e.modified()},e.updateProxyProperty=(e,t)=&gt;{const n=r[e];n?Object.assign(n,t):r[e]={...t}},e.activate=()=&gt;{if(t.proxyManager){const n=`setActive${wt(e.getProxyGroup().slice(0,-1))}`;t.proxyManager[n]&amp;&amp;t.proxyManager[n](e)}},t.propertyLinkSubscribers={},e.registerPropertyLinkForGC=(e,n)=&gt;{n in t.propertyLinkSubscribers||(t.propertyLinkSubscribers[n]=[]),t.propertyLinkSubscribers[n].push(e)},e.gcPropertyLinks=n=&gt;{const r=t.propertyLinkSubscribers[n]||[];for(;r.length;)r.pop().unbind(e)},t.propertyLinkMap={},e.getPropertyLink=(e,n=!1)=&gt;{if(t.propertyLinkMap[e])return t.propertyLinkMap[e];let r=null;const o=[];let a=0,i=!1;function s(n,s=!1){if(i)return null;const l=[];let c=null;for(a=o.length;a--;){const e=o[a];e.instance===n?c=e:l.push(e)}if(!c)return null;const u=c.instance[`get${wt(c.propertyName)}`]();if(!function(e,t){if(e===t)return!0;if(Array.isArray(e)&amp;&amp;Array.isArray(t)){if(e.length!==t.length)return!1;for(let n=0;n&lt;e.length;n++)if(e[n]!==t[n])return!1;return!0}return!1}(u,r)||s){for(r=u,i=!0;l.length;){const e=l.pop();e.instance.set({[e.propertyName]:r})}i=!1}return t.propertyLinkMap[e].persistent&amp;&amp;(t.propertyLinkMap[e].value=u),u}function l(e,t){const n=[];for(a=o.length;a--;){const r=o[a];r.instance!==e||r.propertyName!==t&amp;&amp;void 0!==t||(r.subscription.unsubscribe(),n.push(a))}for(;n.length;)o.splice(n.pop(),1)}const c={bind:function(n,r,a=!1){const i=n.onModified(s),c=o[0];return o.push({instance:n,propertyName:r,subscription:i}),a&amp;&amp;(t.propertyLinkMap[e].persistent&amp;&amp;void 0!==t.propertyLinkMap[e].value?n.set({[r]:t.propertyLinkMap[e].value}):c&amp;&amp;s(c.instance,!0)),{unsubscribe:()=&gt;l(n,r)}},unbind:l,unsubscribe:function(){for(;o.length;)o.pop().subscription.unsubscribe()},persistent:n};return t.propertyLinkMap[e]=c,c},e.listPropertyNames=()=&gt;i().map((e=&gt;e.name)),e.getPropertyByName=e=&gt;i().find((t=&gt;t.name===e)),e.getPropertyDomainByName=e=&gt;(r[e]||{}).domain,e.getProxySection=()=&gt;({id:t.proxyId,name:t.proxyGroup,ui:t.ui,properties:i()}),e.delete=()=&gt;{const r=Object.keys(t.propertyLinkMap);let o=r.length;for(;o--;)t.propertyLinkMap[r[o]].unsubscribe();Object.keys(t.propertyLinkSubscribers).forEach(e.gcPropertyLinks),n()},e.getState=()=&gt;null,Dt((function(){if(t.links)for(let n=0;n&lt;t.links.length;n++){const{link:r,property:o,persistent:a,updateOnBind:i,type:s}=t.links[n];if(&quot;application&quot;===s){const n=t.proxyManager.getPropertyLink(r,a);e.registerPropertyLinkForGC(n,&quot;application&quot;),n.bind(e,o,i)}}}))}function rn(e,t,n){const r=e.delete,o=[],a=Object.keys(n);let i=a.length;for(;i--;){const r=a[i],{modelKey:s,property:l,modified:c=!0}=n[r],u=wt(l),d=wt(r);e[`get${d}`]=t[s][`get${u}`],e[`set${d}`]=t[s][`set${u}`],c&amp;&amp;o.push(t[s].onModified(e.modified))}e.delete=()=&gt;{for(;o.length;)o.pop().unsubscribe();r()}}function on(e,t,n={},r={}){function o(e){const n=Object.keys(e);let r=n.length;for(;r--;){const o=n[r];t[o].set(e[o])}}t.this=e;const a=Object.keys(r);let i=a.length;for(;i--;){const s=a[i];t[s]=r[s];const l=n[s];e[`set${wt(s)}`]=n=&gt;{if(n!==t[s]){t[s]=n;o(l[n]),e.modified()}}}a.length&amp;&amp;Bt(e,t,a)}function an(e){let t=0,n=0,r=0,o=0;return&quot;detail&quot;in e&amp;&amp;(n=e.detail),&quot;wheelDelta&quot;in e&amp;&amp;(n=-e.wheelDelta/120),&quot;wheelDeltaY&quot;in e&amp;&amp;(n=-e.wheelDeltaY/120),&quot;wheelDeltaX&quot;in e&amp;&amp;(t=-e.wheelDeltaX/120),&quot;axis&quot;in e&amp;&amp;e.axis===e.HORIZONTAL_AXIS&amp;&amp;(t=n,n=0),r=10*t,o=10*n,&quot;deltaY&quot;in e&amp;&amp;(o=e.deltaY),&quot;deltaX&quot;in e&amp;&amp;(r=e.deltaX),(r||o)&amp;&amp;e.deltaMode&amp;&amp;(1===e.deltaMode?(r*=40,o*=40):(r*=800,o*=800)),r&amp;&amp;!t&amp;&amp;(t=r&lt;1?-1:1),o&amp;&amp;!n&amp;&amp;(n=o&lt;1?-1:1),{spinX:t,spinY:n||t,pixelX:r,pixelY:o||r}}var sn={algo:Wt,capitalize:Pt,chain:qt,debounce:Zt,enumToString:function(e,t){return Object.keys(e).find((n=&gt;e[n]===t))},event:jt,EVENT_ABORT:Ht,formatBytesToProperUnit:Ot,formatNumbersWithThousandSeparator:Rt,get:Bt,getArray:Ut,getCurrentGlobalMTime:function(){return lt},getStateArrayMapFunc:function(e){return e&amp;&amp;e.isA?e.getState():e},isVtkObject:Yt,keystore:$t,measurePromiseExecution:Et,moveToProtected:zt,newInstance:Xt,newTypedArray:Ct,newTypedArrayFrom:St,normalizeWheel:an,obj:Vt,proxy:nn,proxyPropertyMapping:rn,proxyPropertyState:on,safeArrays:Mt,set:kt,setArray:_t,setGet:Gt,setGetArray:Kt,setImmediate:Dt,setLoggerFunction:gt,throttle:Qt,traverseInstanceTree:Jt,TYPED_ARRAYS:At,uncapitalize:It,VOID:ut,vtkDebugMacro:vt,vtkErrorMacro:Tt,vtkInfoMacro:ht,vtkLogMacro:mt,vtkOnceErrorMacro:bt,vtkWarningMacro:xt,objectSetterMap:Ft,requiredParam:ct},ln=Object.freeze({__proto__:null,requiredParam:ct,VOID:ut,setLoggerFunction:gt,vtkLogMacro:mt,vtkInfoMacro:ht,vtkDebugMacro:vt,vtkErrorMacro:Tt,vtkWarningMacro:xt,vtkOnceErrorMacro:bt,TYPED_ARRAYS:At,newTypedArray:Ct,newTypedArrayFrom:St,capitalize:Pt,_capitalize:wt,uncapitalize:It,formatBytesToProperUnit:Ot,formatNumbersWithThousandSeparator:Rt,setImmediateVTK:Dt,measurePromiseExecution:Et,obj:Vt,get:Bt,set:kt,setGet:Gt,getArray:Ut,setArray:_t,setGetArray:Kt,moveToProtected:zt,algo:Wt,EVENT_ABORT:Ht,event:jt,newInstance:Xt,chain:qt,isVtkObject:Yt,traverseInstanceTree:Jt,debounce:Zt,throttle:Qt,keystore:$t,proxy:nn,proxyPropertyMapping:rn,proxyPropertyState:on,normalizeWheel:an,default:sn});const{vtkErrorMacro:cn}=sn;const un={renderable:null,myFactory:null,children:[],visited:!1};function dn(e,t,n={}){Object.assign(t,un,n),sn.obj(e,t),sn.event(e,t,&quot;event&quot;),t._renderableChildMap=new Map,sn.get(e,t,[&quot;visited&quot;]),sn.setGet(e,t,[&quot;_parent&quot;,&quot;renderable&quot;,&quot;myFactory&quot;]),sn.getArray(e,t,[&quot;children&quot;]),sn.moveToProtected(e,t,[&quot;parent&quot;]),function(e,t){function n(e,n){for(let r=0;r&lt;t.children.length;++r){const o=(n+1+r)%t.children.length;if(t.children[o]===e)return t.children[o]=t.children[n],t.children[n]=e,!0}return!1}t.classHierarchy.push(&quot;vtkViewNode&quot;),e.build=e=&gt;{},e.render=e=&gt;{},e.traverse=n=&gt;{const r=n.getTraverseOperation(),o=e[r];if(o)o(n);else{e.apply(n,!0);for(let e=0;e&lt;t.children.length;e++)t.children[e].traverse(n);e.apply(n,!1)}},e.apply=(t,n)=&gt;{const r=e[t.getOperation()];r&amp;&amp;r(n,t)},e.getViewNodeFor=(n,r=null)=&gt;{if(r&amp;&amp;r.renderable===n)return r;if(t.renderable===n)return e;for(let e=0;e&lt;t.children.length;++e){const r=t.children[e].getViewNodeFor(n);if(r)return r}},e.getFirstAncestorOfType=e=&gt;t._parent?t._parent.isA(e)?t._parent:t._parent.getFirstAncestorOfType(e):null,e.getLastAncestorOfType=e=&gt;{if(!t._parent)return null;return t._parent.getLastAncestorOfType(e)||(t._parent.isA(e)?t._parent:null)},e.addMissingNode=n=&gt;{if(!n)return;const r=t._renderableChildMap.get(n);if(void 0!==r)return r.setVisited(!0),r;const o=e.createViewNode(n);return o?(o.setParent(e),o.setVisited(!0),t._renderableChildMap.set(n,o),t.children.push(o),o):void 0},e.addMissingNodes=(r,o=!1)=&gt;{if(!r||!r.length)return;let a;for(let i=0;i&lt;r.length;++i){const s=r[i],l=e.addMissingNode(s);o&amp;&amp;void 0!==l&amp;&amp;(void 0===a?a=t.children.lastIndexOf(l):t.children[a]!==l&amp;&amp;n(t.children,l),a++)}},e.addMissingChildren=n=&gt;{if(n&amp;&amp;n.length)for(let r=0;r&lt;n.length;++r){const o=n[r];if(-1===t.children.indexOf(o)){o.setParent(e),t.children.push(o);const n=o.getRenderable();n&amp;&amp;t._renderableChildMap.set(n,o)}o.setVisited(!0)}},e.removeNode=e=&gt;{const n=t.children.findIndex((t=&gt;t===e));if(n&lt;0)return!1;const r=e.getRenderable();return r&amp;&amp;t._renderableChildMap.delete(r),e.delete(),t.children.splice(n,1),!0},e.prepareNodes=()=&gt;{for(let e=0;e&lt;t.children.length;++e)t.children[e].setVisited(!1)},e.setVisited=e=&gt;{t.visited=e},e.removeUnusedNodes=()=&gt;{let e=0;for(let n=0;n&lt;t.children.length;++n){const r=t.children[n];if(r.getVisited())t.children[e++]=r,r.setVisited(!1);else{const e=r.getRenderable();e&amp;&amp;t._renderableChildMap.delete(e),r.delete()}}t.children.length=e},e.createViewNode=e=&gt;{if(!t.myFactory)return cn(&quot;Cannot create view nodes without my own factory&quot;),null;const n=t.myFactory.createNode(e);return n&amp;&amp;n.setRenderable(e),n};const r=e.delete;e.delete=()=&gt;{for(let e=0;e&lt;t.children.length;e++)t.children[e].delete();r()}}(e,t)}var pn={newInstance:sn.newInstance(dn,&quot;vtkViewNode&quot;),extend:dn,PASS_TYPES:[&quot;Build&quot;,&quot;Render&quot;]};const fn={};function gn(e,t,n={}){Object.assign(t,fn,n),sn.obj(e,t),function(e,t){t.overrides||(t.overrides={}),t.classHierarchy.push(&quot;vtkViewNodeFactory&quot;),e.createNode=n=&gt;{if(n.isDeleted())return null;let r=0,o=n.getClassName(r++),a=!1;const i=Object.keys(t.overrides);for(;o&amp;&amp;!a;)-1!==i.indexOf(o)?a=!0:o=n.getClassName(r++);if(!a)return null;const s=t.overrides[o]();return s.setMyFactory(e),s}}(e,t)}var mn={newInstance:sn.newInstance(gn,&quot;vtkViewNodeFactory&quot;),extend:gn};const hn=Object.create(null);function vn(e,t){hn[e]=t}const Tn={};function xn(e,t,n={}){Object.assign(t,Tn,n),t.overrides=hn,mn.extend(e,t,n),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLViewNodeFactory&quot;)}(0,t)}var yn={newInstance:sn.newInstance(xn,&quot;vtkOpenGLViewNodeFactory&quot;),extend:xn};const bn={context:null,lastRenderer:null,keyMatrixTime:null,keyMatrices:null};vn(&quot;vtkCamera&quot;,Xt((function(e,t,n={}){Object.assign(t,bn,n),pn.extend(e,t,n),t.keyMatrixTime={},Vt(t.keyMatrixTime),t.keyMatrices={normalMatrix:new Float64Array(9),vcpc:new Float64Array(16),wcvc:new Float64Array(16),wcpc:new Float64Array(16)},Gt(e,t,[&quot;context&quot;,&quot;keyMatrixTime&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLCamera&quot;),e.buildPass=n=&gt;{n&amp;&amp;(t._openGLRenderer=e.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;),t._openGLRenderWindow=t._openGLRenderer.getParent(),t.context=t._openGLRenderWindow.getContext())},e.opaquePass=e=&gt;{if(e){const e=t._openGLRenderer.getTiledSizeAndOrigin();t.context.viewport(e.lowerLeftU,e.lowerLeftV,e.usize,e.vsize),t.context.scissor(e.lowerLeftU,e.lowerLeftV,e.usize,e.vsize)}},e.translucentPass=e.opaquePass,e.zBufferPass=e.opaquePass,e.opaqueZBufferPass=e.opaquePass,e.volumePass=e.opaquePass,e.getKeyMatrices=n=&gt;{if(n!==t.lastRenderer||t._openGLRenderWindow.getMTime()&gt;t.keyMatrixTime.getMTime()||e.getMTime()&gt;t.keyMatrixTime.getMTime()||n.getMTime()&gt;t.keyMatrixTime.getMTime()||t.renderable.getMTime()&gt;t.keyMatrixTime.getMTime()){T(t.keyMatrices.wcvc,t.renderable.getViewMatrix()),s(t.keyMatrices.normalMatrix,t.keyMatrices.wcvc),d(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix),y(t.keyMatrices.wcvc,t.keyMatrices.wcvc);const e=t._openGLRenderer.getAspectRatio();T(t.keyMatrices.vcpc,t.renderable.getProjectionMatrix(e,-1,1)),y(t.keyMatrices.vcpc,t.keyMatrices.vcpc),A(t.keyMatrices.wcpc,t.keyMatrices.vcpc,t.keyMatrices.wcvc),t.keyMatrixTime.modified(),t.lastRenderer=n}return t.keyMatrices}}(e,t)})));const{vtkDebugMacro:An}=ln;const Cn={context:null,_openGLRenderWindow:null,selector:null};vn(&quot;vtkRenderer&quot;,Xt((function(e,t,n={}){Object.assign(t,Cn,n),pn.extend(e,t,n),Bt(e,t,[&quot;shaderCache&quot;]),Gt(e,t,[&quot;selector&quot;]),zt(0,t,[&quot;openGLRenderWindow&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLRenderer&quot;),e.buildPass=n=&gt;{if(n){if(!t.renderable)return;e.updateLights(),e.prepareNodes(),e.addMissingNode(t.renderable.getActiveCamera()),e.addMissingNodes(t.renderable.getViewPropsWithNestedProps(),!0),e.removeUnusedNodes()}},e.updateLights=()=&gt;{let e=0;const n=t.renderable.getLightsByReference();for(let t=0;t&lt;n.length;++t)n[t].getSwitch()&gt;0&amp;&amp;e++;return e||(An(&quot;No lights are on, creating one.&quot;),t.renderable.createLight()),e},e.zBufferPass=n=&gt;{if(n){let n=0;const r=t.context;t.renderable.getTransparent()||(t.context.clearColor(1,0,0,1),n|=r.COLOR_BUFFER_BIT),t.renderable.getPreserveDepthBuffer()||(r.clearDepth(1),n|=r.DEPTH_BUFFER_BIT,t.context.depthMask(!0));const o=e.getTiledSizeAndOrigin();r.enable(r.SCISSOR_TEST),r.scissor(o.lowerLeftU,o.lowerLeftV,o.usize,o.vsize),r.viewport(o.lowerLeftU,o.lowerLeftV,o.usize,o.vsize),r.colorMask(!0,!0,!0,!0),n&amp;&amp;r.clear(n),r.enable(r.DEPTH_TEST)}},e.opaqueZBufferPass=t=&gt;e.zBufferPass(t),e.cameraPass=t=&gt;{t&amp;&amp;e.clear()},e.getAspectRatio=()=&gt;{const e=t._parent.getSizeByReference(),n=t.renderable.getViewportByReference();return e[0]*(n[2]-n[0])/((n[3]-n[1])*e[1])},e.getTiledSizeAndOrigin=()=&gt;{const e=t.renderable.getViewportByReference(),n=[0,0,1,1],r=e[0]-n[0],o=e[1]-n[1],a=t._parent.normalizedDisplayToDisplay(r,o),i=Math.round(a[0]),s=Math.round(a[1]),l=e[2]-n[0],c=e[3]-n[1],u=t._parent.normalizedDisplayToDisplay(l,c);let d=Math.round(u[0])-i,p=Math.round(u[1])-s;return d&lt;0&amp;&amp;(d=0),p&lt;0&amp;&amp;(p=0),{usize:d,vsize:p,lowerLeftU:i,lowerLeftV:s}},e.clear=()=&gt;{let n=0;const r=t.context;if(!t.renderable.getTransparent()){const e=t.renderable.getBackgroundByReference();r.clearColor(e[0],e[1],e[2],e[3]),n|=r.COLOR_BUFFER_BIT}t.renderable.getPreserveDepthBuffer()||(r.clearDepth(1),n|=r.DEPTH_BUFFER_BIT,r.depthMask(!0)),r.colorMask(!0,!0,!0,!0);const o=e.getTiledSizeAndOrigin();r.enable(r.SCISSOR_TEST),r.scissor(o.lowerLeftU,o.lowerLeftV,o.usize,o.vsize),r.viewport(o.lowerLeftU,o.lowerLeftV,o.usize,o.vsize),n&amp;&amp;r.clear(n),r.enable(r.DEPTH_TEST)},e.releaseGraphicsResources=()=&gt;{null!==t.selector&amp;&amp;t.selector.releaseGraphicsResources(),t.renderable&amp;&amp;t.renderable.getViewProps().forEach((e=&gt;{e.modified()}))},e.setOpenGLRenderWindow=n=&gt;{t._openGLRenderWindow!==n&amp;&amp;(e.releaseGraphicsResources(),t._openGLRenderWindow=n,t.context=null,n&amp;&amp;(t.context=t._openGLRenderWindow.getContext()))}}(e,t)}),&quot;vtkOpenGLRenderer&quot;));const Sn={context:null,keyMatrixTime:null,keyMatrices:null,activeTextures:null};vn(&quot;vtkActor&quot;,Xt((function(e,t,n={}){Object.assign(t,Sn,n),pn.extend(e,t,n),t.keyMatrixTime={},Vt(t.keyMatrixTime,{mtime:0}),t.keyMatrices={normalMatrix:c(new Float64Array(9)),mcwc:x(new Float64Array(16))},Gt(e,t,[&quot;context&quot;]),Bt(e,t,[&quot;activeTextures&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLActor&quot;),e.buildPass=n=&gt;{if(n){t._openGLRenderWindow=e.getLastAncestorOfType(&quot;vtkOpenGLRenderWindow&quot;),t._openGLRenderer=e.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;),t.context=t._openGLRenderWindow.getContext(),e.prepareNodes(),e.addMissingNodes(t.renderable.getTextures()),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes(),t.ogltextures=null,t.activeTextures=null;for(let e=0;e&lt;t.children.length;e++){const n=t.children[e];n.isA(&quot;vtkOpenGLTexture&quot;)?(t.ogltextures||(t.ogltextures=[]),t.ogltextures.push(n)):t.oglmapper=n}}},e.traverseZBufferPass=n=&gt;{t.renderable&amp;&amp;t.renderable.getNestedVisibility()&amp;&amp;(!t._openGLRenderer.getSelector()||t.renderable.getNestedPickable())&amp;&amp;(e.apply(n,!0),t.oglmapper.traverse(n),e.apply(n,!1))},e.traverseOpaqueZBufferPass=t=&gt;e.traverseOpaquePass(t),e.traverseOpaquePass=n=&gt;{t.renderable&amp;&amp;t.renderable.getNestedVisibility()&amp;&amp;t.renderable.getIsOpaque()&amp;&amp;(!t._openGLRenderer.getSelector()||t.renderable.getNestedPickable())&amp;&amp;(e.apply(n,!0),t.oglmapper.traverse(n),e.apply(n,!1))},e.traverseTranslucentPass=n=&gt;{!t.renderable||!t.renderable.getNestedVisibility()||t.renderable.getIsOpaque()||t._openGLRenderer.getSelector()&amp;&amp;!t.renderable.getNestedPickable()||(e.apply(n,!0),t.oglmapper.traverse(n),e.apply(n,!1))},e.activateTextures=()=&gt;{if(t.ogltextures){t.activeTextures=[];for(let e=0;e&lt;t.ogltextures.length;e++){const n=t.ogltextures[e];n.render(),n.getHandle()&amp;&amp;t.activeTextures.push(n)}}},e.queryPass=(e,n)=&gt;{if(e){if(!t.renderable||!t.renderable.getVisibility())return;t.renderable.getIsOpaque()?n.incrementOpaqueActorCount():n.incrementTranslucentActorCount()}},e.zBufferPass=(t,n)=&gt;e.opaquePass(t,n),e.opaqueZBufferPass=(t,n)=&gt;e.opaquePass(t,n),e.opaquePass=(n,r)=&gt;{if(n)t.context.depthMask(!0),e.activateTextures();else if(t.activeTextures)for(let e=0;e&lt;t.activeTextures.length;e++)t.activeTextures[e].deactivate()},e.translucentPass=(n,r)=&gt;{if(n)t.context.depthMask(t._openGLRenderer.getSelector()&amp;&amp;t.renderable.getNestedPickable()),e.activateTextures();else if(t.activeTextures)for(let e=0;e&lt;t.activeTextures.length;e++)t.activeTextures[e].deactivate()},e.getKeyMatrices=()=&gt;(t.renderable.getMTime()&gt;t.keyMatrixTime.getMTime()&amp;&amp;(t.renderable.computeMatrix(),T(t.keyMatrices.mcwc,t.renderable.getMatrix()),y(t.keyMatrices.mcwc,t.keyMatrices.mcwc),t.renderable.getIsIdentity()?c(t.keyMatrices.normalMatrix):(s(t.keyMatrices.normalMatrix,t.keyMatrices.mcwc),d(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix),u(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix)),t.keyMatrixTime.modified()),t.keyMatrices)}(e,t)})));const Pn={context:null,activeTextures:null};function wn(e,t){return null==e||null==t?NaN:e&lt;t?-1:e&gt;t?1:e&gt;=t?0:NaN}function In(e){let t=e,n=e,r=e;function o(e,t,o=0,a=e.length){if(o&lt;a){if(0!==n(t,t))return a;do{const n=o+a&gt;&gt;&gt;1;r(e[n],t)&lt;0?o=n+1:a=n}while(o&lt;a)}return o}return 1===e.length&amp;&amp;(t=(t,n)=&gt;e(t)-n,n=wn,r=(t,n)=&gt;wn(e(t),n)),{left:o,center:function(e,n,r=0,a=e.length){const i=o(e,n,r,a-1);return i&gt;r&amp;&amp;t(e[i-1],n)&gt;-t(e[i],n)?i-1:i},right:function(e,t,o=0,a=e.length){if(o&lt;a){if(0!==n(t,t))return a;do{const n=o+a&gt;&gt;&gt;1;r(e[n],t)&lt;=0?o=n+1:a=n}while(o&lt;a)}return o}}}vn(&quot;vtkActor2D&quot;,Xt((function(e,t,n={}){Object.assign(t,Pn,n),pn.extend(e,t,n),Gt(e,t,[&quot;context&quot;]),Bt(e,t,[&quot;activeTextures&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLActor2D&quot;),e.buildPass=n=&gt;{if(n){if(!t.renderable)return;t._openGLRenderWindow=e.getLastAncestorOfType(&quot;vtkOpenGLRenderWindow&quot;),t._openGLRenderer=e.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;),t.context=t._openGLRenderWindow.getContext(),e.prepareNodes(),e.addMissingNodes(t.renderable.getTextures()),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes(),t.ogltextures=null,t.activeTextures=null;for(let e=0;e&lt;t.children.length;e++){const n=t.children[e];n.isA(&quot;vtkOpenGLTexture&quot;)?(t.ogltextures||(t.ogltextures=[]),t.ogltextures.push(n)):t.oglmapper=n}}},e.queryPass=(e,n)=&gt;{if(e){if(!t.renderable||!t.renderable.getVisibility())return;n.incrementOverlayActorCount()}},e.traverseOpaquePass=n=&gt;{t.oglmapper&amp;&amp;t.renderable&amp;&amp;t.renderable.getNestedVisibility()&amp;&amp;t.renderable.getIsOpaque()&amp;&amp;(!t._openGLRenderer.getSelector()||t.renderable.getNestedPickable())&amp;&amp;(e.apply(n,!0),t.oglmapper.traverse(n),e.apply(n,!1))},e.traverseTranslucentPass=n=&gt;{t.oglmapper&amp;&amp;t.renderable&amp;&amp;t.renderable.getNestedVisibility()&amp;&amp;!t.renderable.getIsOpaque()&amp;&amp;(!t._openGLRenderer.getSelector()||t.renderable.getNestedPickable())&amp;&amp;(e.apply(n,!0),t.oglmapper.traverse(n),e.apply(n,!1))},e.traverseOverlayPass=n=&gt;{t.oglmapper&amp;&amp;t.renderable&amp;&amp;t.renderable.getNestedVisibility()&amp;&amp;(!t._openGLRenderer.getSelector()||t.renderable.getNestedPickable)&amp;&amp;(e.apply(n,!0),t.oglmapper.traverse(n),e.apply(n,!1))},e.activateTextures=()=&gt;{if(t.ogltextures){t.activeTextures=[];for(let e=0;e&lt;t.ogltextures.length;e++){const n=t.ogltextures[e];n.render(),n.getHandle()&amp;&amp;t.activeTextures.push(n)}}},e.opaquePass=(n,r)=&gt;{if(n)t.context.depthMask(!0),e.activateTextures();else if(t.activeTextures)for(let e=0;e&lt;t.activeTextures.length;e++)t.activeTextures[e].deactivate()},e.translucentPass=(n,r)=&gt;{if(n)t.context.depthMask(!1),e.activateTextures();else if(t.activeTextures)for(let e=0;e&lt;t.activeTextures.length;e++)t.activeTextures[e].deactivate()},e.overlayPass=(n,r)=&gt;{if(n)t.context.depthMask(!0),e.activateTextures();else if(t.activeTextures)for(let e=0;e&lt;t.activeTextures.length;e++)t.activeTextures[e].deactivate()}}(e,t)})));const On=In(wn).right;In((function(e){return null===e?NaN:+e})).center;var Rn=On,Mn=Math.sqrt(50),Dn=Math.sqrt(10),En=Math.sqrt(2);function Vn(e,t,n){var r=(t-e)/Math.max(0,n),o=Math.floor(Math.log(r)/Math.LN10),a=r/Math.pow(10,o);return o&gt;=0?(a&gt;=Mn?10:a&gt;=Dn?5:a&gt;=En?2:1)*Math.pow(10,o):-Math.pow(10,-o)/(a&gt;=Mn?10:a&gt;=Dn?5:a&gt;=En?2:1)}function Ln(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e)}return this}function Bn(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function Fn(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function Nn(){}var kn=.7,Gn=1/kn,Un=&quot;\\\\s*([+-]?\\\\d+)\\\\s*&quot;,_n=&quot;\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*&quot;,Kn=&quot;\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*&quot;,zn=/^#([0-9a-f]{3,8})$/,Wn=new RegExp(`^rgb\\\\(${Un},${Un},${Un}\\\\)$`),Hn=new RegExp(`^rgb\\\\(${Kn},${Kn},${Kn}\\\\)$`),jn=new RegExp(`^rgba\\\\(${Un},${Un},${Un},${_n}\\\\)$`),Xn=new RegExp(`^rgba\\\\(${Kn},${Kn},${Kn},${_n}\\\\)$`),qn=new RegExp(`^hsl\\\\(${_n},${Kn},${Kn}\\\\)$`),Yn=new RegExp(`^hsla\\\\(${_n},${Kn},${Kn},${_n}\\\\)$`),Jn={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function Zn(){return this.rgb().formatHex()}function Qn(){return this.rgb().formatRgb()}function $n(e){var t,n;return e=(e+&quot;&quot;).trim().toLowerCase(),(t=zn.exec(e))?(n=t[1].length,t=parseInt(t[1],16),6===n?er(t):3===n?new rr(t&gt;&gt;8&amp;15|t&gt;&gt;4&amp;240,t&gt;&gt;4&amp;15|240&amp;t,(15&amp;t)&lt;&lt;4|15&amp;t,1):8===n?tr(t&gt;&gt;24&amp;255,t&gt;&gt;16&amp;255,t&gt;&gt;8&amp;255,(255&amp;t)/255):4===n?tr(t&gt;&gt;12&amp;15|t&gt;&gt;8&amp;240,t&gt;&gt;8&amp;15|t&gt;&gt;4&amp;240,t&gt;&gt;4&amp;15|240&amp;t,((15&amp;t)&lt;&lt;4|15&amp;t)/255):null):(t=Wn.exec(e))?new rr(t[1],t[2],t[3],1):(t=Hn.exec(e))?new rr(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=jn.exec(e))?tr(t[1],t[2],t[3],t[4]):(t=Xn.exec(e))?tr(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=qn.exec(e))?cr(t[1],t[2]/100,t[3]/100,1):(t=Yn.exec(e))?cr(t[1],t[2]/100,t[3]/100,t[4]):Jn.hasOwnProperty(e)?er(Jn[e]):&quot;transparent&quot;===e?new rr(NaN,NaN,NaN,0):null}function er(e){return new rr(e&gt;&gt;16&amp;255,e&gt;&gt;8&amp;255,255&amp;e,1)}function tr(e,t,n,r){return r&lt;=0&amp;&amp;(e=t=n=NaN),new rr(e,t,n,r)}function nr(e,t,n,r){return 1===arguments.length?((o=e)instanceof Nn||(o=$n(o)),o?new rr((o=o.rgb()).r,o.g,o.b,o.opacity):new rr):new rr(e,t,n,null==r?1:r);var o}function rr(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}function or(){return`#${lr(this.r)}${lr(this.g)}${lr(this.b)}`}function ar(){const e=ir(this.opacity);return`${1===e?&quot;rgb(&quot;:&quot;rgba(&quot;}${sr(this.r)}, ${sr(this.g)}, ${sr(this.b)}${1===e?&quot;)&quot;:`, ${e})`}`}function ir(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function sr(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function lr(e){return((e=sr(e))&lt;16?&quot;0&quot;:&quot;&quot;)+e.toString(16)}function cr(e,t,n,r){return r&lt;=0?e=t=n=NaN:n&lt;=0||n&gt;=1?e=t=NaN:t&lt;=0&amp;&amp;(e=NaN),new dr(e,t,n,r)}function ur(e){if(e instanceof dr)return new dr(e.h,e.s,e.l,e.opacity);if(e instanceof Nn||(e=$n(e)),!e)return new dr;if(e instanceof dr)return e;var t=(e=e.rgb()).r/255,n=e.g/255,r=e.b/255,o=Math.min(t,n,r),a=Math.max(t,n,r),i=NaN,s=a-o,l=(a+o)/2;return s?(i=t===a?(n-r)/s+6*(n&lt;r):n===a?(r-t)/s+2:(t-n)/s+4,s/=l&lt;.5?a+o:2-a-o,i*=60):s=l&gt;0&amp;&amp;l&lt;1?0:i,new dr(i,s,l,e.opacity)}function dr(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}function pr(e){return(e=(e||0)%360)&lt;0?e+360:e}function fr(e){return Math.max(0,Math.min(1,e||0))}function gr(e,t,n){return 255*(e&lt;60?t+(n-t)*e/60:e&lt;180?n:e&lt;240?t+(n-t)*(240-e)/60:t)}Bn(Nn,$n,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:Zn,formatHex:Zn,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return ur(this).formatHsl()},formatRgb:Qn,toString:Qn}),Bn(rr,nr,Fn(Nn,{brighter(e){return e=null==e?Gn:Math.pow(Gn,e),new rr(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=null==e?kn:Math.pow(kn,e),new rr(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new rr(sr(this.r),sr(this.g),sr(this.b),ir(this.opacity))},displayable(){return-.5&lt;=this.r&amp;&amp;this.r&lt;255.5&amp;&amp;-.5&lt;=this.g&amp;&amp;this.g&lt;255.5&amp;&amp;-.5&lt;=this.b&amp;&amp;this.b&lt;255.5&amp;&amp;0&lt;=this.opacity&amp;&amp;this.opacity&lt;=1},hex:or,formatHex:or,formatHex8:function(){return`#${lr(this.r)}${lr(this.g)}${lr(this.b)}${lr(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:ar,toString:ar})),Bn(dr,(function(e,t,n,r){return 1===arguments.length?ur(e):new dr(e,t,n,null==r?1:r)}),Fn(Nn,{brighter(e){return e=null==e?Gn:Math.pow(Gn,e),new dr(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?kn:Math.pow(kn,e),new dr(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+360*(this.h&lt;0),t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n&lt;.5?n:1-n)*t,o=2*n-r;return new rr(gr(e&gt;=240?e-240:e+120,o,r),gr(e,o,r),gr(e&lt;120?e+240:e-120,o,r),this.opacity)},clamp(){return new dr(pr(this.h),fr(this.s),fr(this.l),ir(this.opacity))},displayable(){return(0&lt;=this.s&amp;&amp;this.s&lt;=1||isNaN(this.s))&amp;&amp;0&lt;=this.l&amp;&amp;this.l&lt;=1&amp;&amp;0&lt;=this.opacity&amp;&amp;this.opacity&lt;=1},formatHsl(){const e=ir(this.opacity);return`${1===e?&quot;hsl(&quot;:&quot;hsla(&quot;}${pr(this.h)}, ${100*fr(this.s)}%, ${100*fr(this.l)}%${1===e?&quot;)&quot;:`, ${e})`}`}}));var mr=e=&gt;()=&gt;e;function hr(e){return 1==(e=+e)?vr:function(t,n){return n-t?function(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}(t,n,e):mr(isNaN(t)?n:t)}}function vr(e,t){var n=t-e;return n?function(e,t){return function(n){return e+n*t}}(e,n):mr(isNaN(e)?t:e)}var Tr=function e(t){var n=hr(t);function r(e,t){var r=n((e=nr(e)).r,(t=nr(t)).r),o=n(e.g,t.g),a=n(e.b,t.b),i=vr(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=o(t),e.b=a(t),e.opacity=i(t),e+&quot;&quot;}}return r.gamma=e,r}(1);function xr(e,t){t||(t=[]);var n,r=e?Math.min(t.length,e.length):0,o=t.slice();return function(a){for(n=0;n&lt;r;++n)o[n]=e[n]*(1-a)+t[n]*a;return o}}function yr(e,t){var n,r=t?t.length:0,o=e?Math.min(r,e.length):0,a=new Array(o),i=new Array(r);for(n=0;n&lt;o;++n)a[n]=Ir(e[n],t[n]);for(;n&lt;r;++n)i[n]=t[n];return function(e){for(n=0;n&lt;o;++n)i[n]=a[n](e);return i}}function br(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function Ar(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function Cr(e,t){var n,r={},o={};for(n in null!==e&amp;&amp;&quot;object&quot;==typeof e||(e={}),null!==t&amp;&amp;&quot;object&quot;==typeof t||(t={}),t)n in e?r[n]=Ir(e[n],t[n]):o[n]=t[n];return function(e){for(n in r)o[n]=r[n](e);return o}}var Sr=/[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,Pr=new RegExp(Sr.source,&quot;g&quot;);function wr(e,t){var n,r,o,a=Sr.lastIndex=Pr.lastIndex=0,i=-1,s=[],l=[];for(e+=&quot;&quot;,t+=&quot;&quot;;(n=Sr.exec(e))&amp;&amp;(r=Pr.exec(t));)(o=r.index)&gt;a&amp;&amp;(o=t.slice(a,o),s[i]?s[i]+=o:s[++i]=o),(n=n[0])===(r=r[0])?s[i]?s[i]+=r:s[++i]=r:(s[++i]=null,l.push({i:i,x:Ar(n,r)})),a=Pr.lastIndex;return a&lt;t.length&amp;&amp;(o=t.slice(a),s[i]?s[i]+=o:s[++i]=o),s.length&lt;2?l[0]?function(e){return function(t){return e(t)+&quot;&quot;}}(l[0].x):function(e){return function(){return e}}(t):(t=l.length,function(e){for(var n,r=0;r&lt;t;++r)s[(n=l[r]).i]=n.x(e);return s.join(&quot;&quot;)})}function Ir(e,t){var n,r=typeof t;return null==t||&quot;boolean&quot;===r?mr(t):(&quot;number&quot;===r?Ar:&quot;string&quot;===r?(n=$n(t))?(t=n,Tr):wr:t instanceof $n?Tr:t instanceof Date?br:function(e){return ArrayBuffer.isView(e)&amp;&amp;!(e instanceof DataView)}(t)?xr:Array.isArray(t)?yr:&quot;function&quot;!=typeof t.valueOf&amp;&amp;&quot;function&quot;!=typeof t.toString||isNaN(t)?Cr:Ar)(e,t)}function Or(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}function Rr(e){return+e}var Mr=[0,1];function Dr(e){return e}function Er(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:function(e){return function(){return e}}(isNaN(t)?NaN:.5)}function Vr(e,t,n){var r=e[0],o=e[1],a=t[0],i=t[1];return o&lt;r?(r=Er(o,r),a=n(i,a)):(r=Er(r,o),a=n(a,i)),function(e){return a(r(e))}}function Lr(e,t,n){var r=Math.min(e.length,t.length)-1,o=new Array(r),a=new Array(r),i=-1;for(e[r]&lt;e[0]&amp;&amp;(e=e.slice().reverse(),t=t.slice().reverse());++i&lt;r;)o[i]=Er(e[i],e[i+1]),a[i]=n(t[i],t[i+1]);return function(t){var n=Rn(e,t,1,r)-1;return a[n](o[n](t))}}function Br(){var e,t,n,r,o,a,i=Mr,s=Mr,l=Ir,c=Dr;function u(){var e,t,n,l=Math.min(i.length,s.length);return c!==Dr&amp;&amp;(e=i[0],t=i[l-1],e&gt;t&amp;&amp;(n=e,e=t,t=n),c=function(n){return Math.max(e,Math.min(t,n))}),r=l&gt;2?Lr:Vr,o=a=null,d}function d(t){return null==t||isNaN(t=+t)?n:(o||(o=r(i.map(e),s,l)))(e(c(t)))}return d.invert=function(n){return c(t((a||(a=r(s,i.map(e),Ar)))(n)))},d.domain=function(e){return arguments.length?(i=Array.from(e,Rr),u()):i.slice()},d.range=function(e){return arguments.length?(s=Array.from(e),u()):s.slice()},d.rangeRound=function(e){return s=Array.from(e),l=Or,u()},d.clamp=function(e){return arguments.length?(c=!!e||Dr,u()):c!==Dr},d.interpolate=function(e){return arguments.length?(l=e,u()):l},d.unknown=function(e){return arguments.length?(n=e,d):n},function(n,r){return e=n,t=r,u()}}function Fr(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf(&quot;e&quot;))&lt;0)return null;var n,r=e.slice(0,n);return[r.length&gt;1?r[0]+r.slice(2):r,+e.slice(n+1)]}function Nr(e){return(e=Fr(Math.abs(e)))?e[1]:NaN}var kr,Gr=/^(?:(.)?([&lt;&gt;=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;function Ur(e){if(!(t=Gr.exec(e)))throw new Error(&quot;invalid format: &quot;+e);var t;return new _r({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&amp;&amp;t[8].slice(1),trim:t[9],type:t[10]})}function _r(e){this.fill=void 0===e.fill?&quot; &quot;:e.fill+&quot;&quot;,this.align=void 0===e.align?&quot;&gt;&quot;:e.align+&quot;&quot;,this.sign=void 0===e.sign?&quot;-&quot;:e.sign+&quot;&quot;,this.symbol=void 0===e.symbol?&quot;&quot;:e.symbol+&quot;&quot;,this.zero=!!e.zero,this.width=void 0===e.width?void 0:+e.width,this.comma=!!e.comma,this.precision=void 0===e.precision?void 0:+e.precision,this.trim=!!e.trim,this.type=void 0===e.type?&quot;&quot;:e.type+&quot;&quot;}function Kr(e,t){var n=Fr(e,t);if(!n)return e+&quot;&quot;;var r=n[0],o=n[1];return o&lt;0?&quot;0.&quot;+new Array(-o).join(&quot;0&quot;)+r:r.length&gt;o+1?r.slice(0,o+1)+&quot;.&quot;+r.slice(o+1):r+new Array(o-r.length+2).join(&quot;0&quot;)}Ur.prototype=_r.prototype,_r.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?&quot;0&quot;:&quot;&quot;)+(void 0===this.width?&quot;&quot;:Math.max(1,0|this.width))+(this.comma?&quot;,&quot;:&quot;&quot;)+(void 0===this.precision?&quot;&quot;:&quot;.&quot;+Math.max(0,0|this.precision))+(this.trim?&quot;~&quot;:&quot;&quot;)+this.type};var zr={&quot;%&quot;:(e,t)=&gt;(100*e).toFixed(t),b:e=&gt;Math.round(e).toString(2),c:e=&gt;e+&quot;&quot;,d:function(e){return Math.abs(e=Math.round(e))&gt;=1e21?e.toLocaleString(&quot;en&quot;).replace(/,/g,&quot;&quot;):e.toString(10)},e:(e,t)=&gt;e.toExponential(t),f:(e,t)=&gt;e.toFixed(t),g:(e,t)=&gt;e.toPrecision(t),o:e=&gt;Math.round(e).toString(8),p:(e,t)=&gt;Kr(100*e,t),r:Kr,s:function(e,t){var n=Fr(e,t);if(!n)return e+&quot;&quot;;var r=n[0],o=n[1],a=o-(kr=3*Math.max(-8,Math.min(8,Math.floor(o/3))))+1,i=r.length;return a===i?r:a&gt;i?r+new Array(a-i+1).join(&quot;0&quot;):a&gt;0?r.slice(0,a)+&quot;.&quot;+r.slice(a):&quot;0.&quot;+new Array(1-a).join(&quot;0&quot;)+Fr(e,Math.max(0,t+a-1))[0]},X:e=&gt;Math.round(e).toString(16).toUpperCase(),x:e=&gt;Math.round(e).toString(16)};function Wr(e){return e}var Hr,jr,Xr,qr=Array.prototype.map,Yr=[&quot;y&quot;,&quot;z&quot;,&quot;a&quot;,&quot;f&quot;,&quot;p&quot;,&quot;n&quot;,&quot;µ&quot;,&quot;m&quot;,&quot;&quot;,&quot;k&quot;,&quot;M&quot;,&quot;G&quot;,&quot;T&quot;,&quot;P&quot;,&quot;E&quot;,&quot;Z&quot;,&quot;Y&quot;];function Jr(e){var t,n,r=void 0===e.grouping||void 0===e.thousands?Wr:(t=qr.call(e.grouping,Number),n=e.thousands+&quot;&quot;,function(e,r){for(var o=e.length,a=[],i=0,s=t[0],l=0;o&gt;0&amp;&amp;s&gt;0&amp;&amp;(l+s+1&gt;r&amp;&amp;(s=Math.max(1,r-l)),a.push(e.substring(o-=s,o+s)),!((l+=s+1)&gt;r));)s=t[i=(i+1)%t.length];return a.reverse().join(n)}),o=void 0===e.currency?&quot;&quot;:e.currency[0]+&quot;&quot;,a=void 0===e.currency?&quot;&quot;:e.currency[1]+&quot;&quot;,i=void 0===e.decimal?&quot;.&quot;:e.decimal+&quot;&quot;,s=void 0===e.numerals?Wr:function(e){return function(t){return t.replace(/[0-9]/g,(function(t){return e[+t]}))}}(qr.call(e.numerals,String)),l=void 0===e.percent?&quot;%&quot;:e.percent+&quot;&quot;,c=void 0===e.minus?&quot;−&quot;:e.minus+&quot;&quot;,u=void 0===e.nan?&quot;NaN&quot;:e.nan+&quot;&quot;;function d(e){var t=(e=Ur(e)).fill,n=e.align,d=e.sign,p=e.symbol,f=e.zero,g=e.width,m=e.comma,h=e.precision,v=e.trim,T=e.type;&quot;n&quot;===T?(m=!0,T=&quot;g&quot;):zr[T]||(void 0===h&amp;&amp;(h=12),v=!0,T=&quot;g&quot;),(f||&quot;0&quot;===t&amp;&amp;&quot;=&quot;===n)&amp;&amp;(f=!0,t=&quot;0&quot;,n=&quot;=&quot;);var x=&quot;$&quot;===p?o:&quot;#&quot;===p&amp;&amp;/[boxX]/.test(T)?&quot;0&quot;+T.toLowerCase():&quot;&quot;,y=&quot;$&quot;===p?a:/[%p]/.test(T)?l:&quot;&quot;,b=zr[T],A=/[defgprs%]/.test(T);function C(e){var o,a,l,p=x,C=y;if(&quot;c&quot;===T)C=b(e)+C,e=&quot;&quot;;else{var S=(e=+e)&lt;0||1/e&lt;0;if(e=isNaN(e)?u:b(Math.abs(e),h),v&amp;&amp;(e=function(e){e:for(var t,n=e.length,r=1,o=-1;r&lt;n;++r)switch(e[r]){case&quot;.&quot;:o=t=r;break;case&quot;0&quot;:0===o&amp;&amp;(o=r),t=r;break;default:if(!+e[r])break e;o&gt;0&amp;&amp;(o=0)}return o&gt;0?e.slice(0,o)+e.slice(t+1):e}(e)),S&amp;&amp;0==+e&amp;&amp;&quot;+&quot;!==d&amp;&amp;(S=!1),p=(S?&quot;(&quot;===d?d:c:&quot;-&quot;===d||&quot;(&quot;===d?&quot;&quot;:d)+p,C=(&quot;s&quot;===T?Yr[8+kr/3]:&quot;&quot;)+C+(S&amp;&amp;&quot;(&quot;===d?&quot;)&quot;:&quot;&quot;),A)for(o=-1,a=e.length;++o&lt;a;)if(48&gt;(l=e.charCodeAt(o))||l&gt;57){C=(46===l?i+e.slice(o+1):e.slice(o))+C,e=e.slice(0,o);break}}m&amp;&amp;!f&amp;&amp;(e=r(e,1/0));var P=p.length+e.length+C.length,w=P&lt;g?new Array(g-P+1).join(t):&quot;&quot;;switch(m&amp;&amp;f&amp;&amp;(e=r(w+e,w.length?g-C.length:1/0),w=&quot;&quot;),n){case&quot;&lt;&quot;:e=p+e+C+w;break;case&quot;=&quot;:e=p+w+e+C;break;case&quot;^&quot;:e=w.slice(0,P=w.length&gt;&gt;1)+p+e+C+w.slice(P);break;default:e=w+p+e+C}return s(e)}return h=void 0===h?6:/[gprs]/.test(T)?Math.max(1,Math.min(21,h)):Math.max(0,Math.min(20,h)),C.toString=function(){return e+&quot;&quot;},C}return{format:d,formatPrefix:function(e,t){var n=d(((e=Ur(e)).type=&quot;f&quot;,e)),r=3*Math.max(-8,Math.min(8,Math.floor(Nr(t)/3))),o=Math.pow(10,-r),a=Yr[8+r/3];return function(e){return n(o*e)+a}}}}function Zr(e,t,n,r){var o,a=function(e,t,n){var r=Math.abs(t-e)/Math.max(0,n),o=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),a=r/o;return a&gt;=Mn?o*=10:a&gt;=Dn?o*=5:a&gt;=En&amp;&amp;(o*=2),t&lt;e?-o:o}(e,t,n);switch((r=Ur(null==r?&quot;,f&quot;:r)).type){case&quot;s&quot;:var i=Math.max(Math.abs(e),Math.abs(t));return null!=r.precision||isNaN(o=function(e,t){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(Nr(t)/3)))-Nr(Math.abs(e)))}(a,i))||(r.precision=o),Xr(r,i);case&quot;&quot;:case&quot;e&quot;:case&quot;g&quot;:case&quot;p&quot;:case&quot;r&quot;:null!=r.precision||isNaN(o=function(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,Nr(t)-Nr(e))+1}(a,Math.max(Math.abs(e),Math.abs(t))))||(r.precision=o-(&quot;e&quot;===r.type));break;case&quot;f&quot;:case&quot;%&quot;:null!=r.precision||isNaN(o=function(e){return Math.max(0,-Nr(Math.abs(e)))}(a))||(r.precision=o-2*(&quot;%&quot;===r.type))}return jr(r)}function Qr(e){var t=e.domain;return e.ticks=function(e){var n=t();return function(e,t,n){var r,o,a,i,s=-1;if(n=+n,(e=+e)==(t=+t)&amp;&amp;n&gt;0)return[e];if((r=t&lt;e)&amp;&amp;(o=e,e=t,t=o),0===(i=Vn(e,t,n))||!isFinite(i))return[];if(i&gt;0){let n=Math.round(e/i),r=Math.round(t/i);for(n*i&lt;e&amp;&amp;++n,r*i&gt;t&amp;&amp;--r,a=new Array(o=r-n+1);++s&lt;o;)a[s]=(n+s)*i}else{i=-i;let n=Math.round(e*i),r=Math.round(t*i);for(n/i&lt;e&amp;&amp;++n,r/i&gt;t&amp;&amp;--r,a=new Array(o=r-n+1);++s&lt;o;)a[s]=(n+s)/i}return r&amp;&amp;a.reverse(),a}(n[0],n[n.length-1],null==e?10:e)},e.tickFormat=function(e,n){var r=t();return Zr(r[0],r[r.length-1],null==e?10:e,n)},e.nice=function(n){null==n&amp;&amp;(n=10);var r,o,a=t(),i=0,s=a.length-1,l=a[i],c=a[s],u=10;for(c&lt;l&amp;&amp;(o=l,l=c,c=o,o=i,i=s,s=o);u-- &gt;0;){if((o=Vn(l,c,n))===r)return a[i]=l,a[s]=c,t(a);if(o&gt;0)l=Math.floor(l/o)*o,c=Math.ceil(c/o)*o;else{if(!(o&lt;0))break;l=Math.ceil(l*o)/o,c=Math.floor(c*o)/o}r=o}return e},e}function $r(){var e=Br()(Dr,Dr);return e.copy=function(){return t=e,$r().domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown());var t},Ln.apply(e,arguments),Qr(e)}Hr=Jr({thousands:&quot;,&quot;,grouping:[3],currency:[&quot;$&quot;,&quot;&quot;]}),jr=Hr.format,Xr=Hr.formatPrefix;var eo={exports:{}};(function(e,t,n){function r(e){var t=this,n=function(){var e=4022871197,t=function(t){t=String(t);for(var n=0;n&lt;t.length;n++){var r=.02519603282416938*(e+=t.charCodeAt(n));r-=e=r&gt;&gt;&gt;0,e=(r*=e)&gt;&gt;&gt;0,e+=4294967296*(r-=e)}return 2.3283064365386963e-10*(e&gt;&gt;&gt;0)};return t}();t.next=function(){var e=2091639*t.s0+2.3283064365386963e-10*t.c;return t.s0=t.s1,t.s1=t.s2,t.s2=e-(t.c=0|e)},t.c=1,t.s0=n(&quot; &quot;),t.s1=n(&quot; &quot;),t.s2=n(&quot; &quot;),t.s0-=n(e),t.s0&lt;0&amp;&amp;(t.s0+=1),t.s1-=n(e),t.s1&lt;0&amp;&amp;(t.s1+=1),t.s2-=n(e),t.s2&lt;0&amp;&amp;(t.s2+=1),n=null}function o(e,t){return t.c=e.c,t.s0=e.s0,t.s1=e.s1,t.s2=e.s2,t}function a(e,t){var n=new r(e),a=t&amp;&amp;t.state,i=n.next;return i.int32=function(){return 4294967296*n.next()|0},i.double=function(){return i()+11102230246251565e-32*(2097152*i()|0)},i.quick=i,a&amp;&amp;(&quot;object&quot;==typeof a&amp;&amp;o(a,n),i.state=function(){return o(n,{})}),i}t&amp;&amp;t.exports?t.exports=a:n&amp;&amp;n.amd?n((function(){return a})):this.alea=a})(0,eo,!1);var to={exports:{}};!function(e){!function(e,t,n){function r(e){var t=this,n=&quot;&quot;;t.x=0,t.y=0,t.z=0,t.w=0,t.next=function(){var e=t.x^t.x&lt;&lt;11;return t.x=t.y,t.y=t.z,t.z=t.w,t.w^=t.w&gt;&gt;&gt;19^e^e&gt;&gt;&gt;8},e===(0|e)?t.x=e:n+=e;for(var r=0;r&lt;n.length+64;r++)t.x^=0|n.charCodeAt(r),t.next()}function o(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t}function a(e,t){var n=new r(e),a=t&amp;&amp;t.state,i=function(){return(n.next()&gt;&gt;&gt;0)/4294967296};return i.double=function(){do{var e=((n.next()&gt;&gt;&gt;11)+(n.next()&gt;&gt;&gt;0)/4294967296)/(1&lt;&lt;21)}while(0===e);return e},i.int32=n.next,i.quick=i,a&amp;&amp;(&quot;object&quot;==typeof a&amp;&amp;o(a,n),i.state=function(){return o(n,{})}),i}t&amp;&amp;t.exports?t.exports=a:n&amp;&amp;n.amd?n((function(){return a})):this.xor128=a}(0,e,!1)}(to);var no={exports:{}};!function(e){!function(e,t,n){function r(e){var t=this,n=&quot;&quot;;t.next=function(){var e=t.x^t.x&gt;&gt;&gt;2;return t.x=t.y,t.y=t.z,t.z=t.w,t.w=t.v,(t.d=t.d+362437|0)+(t.v=t.v^t.v&lt;&lt;4^e^e&lt;&lt;1)|0},t.x=0,t.y=0,t.z=0,t.w=0,t.v=0,e===(0|e)?t.x=e:n+=e;for(var r=0;r&lt;n.length+64;r++)t.x^=0|n.charCodeAt(r),r==n.length&amp;&amp;(t.d=t.x&lt;&lt;10^t.x&gt;&gt;&gt;4),t.next()}function o(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t.v=e.v,t.d=e.d,t}function a(e,t){var n=new r(e),a=t&amp;&amp;t.state,i=function(){return(n.next()&gt;&gt;&gt;0)/4294967296};return i.double=function(){do{var e=((n.next()&gt;&gt;&gt;11)+(n.next()&gt;&gt;&gt;0)/4294967296)/(1&lt;&lt;21)}while(0===e);return e},i.int32=n.next,i.quick=i,a&amp;&amp;(&quot;object&quot;==typeof a&amp;&amp;o(a,n),i.state=function(){return o(n,{})}),i}t&amp;&amp;t.exports?t.exports=a:n&amp;&amp;n.amd?n((function(){return a})):this.xorwow=a}(0,e,!1)}(no);var ro={exports:{}};!function(e){!function(e,t,n){function r(e){var t=this;t.next=function(){var e,n,r=t.x,o=t.i;return e=r[o],n=(e^=e&gt;&gt;&gt;7)^e&lt;&lt;24,n^=(e=r[o+1&amp;7])^e&gt;&gt;&gt;10,n^=(e=r[o+3&amp;7])^e&gt;&gt;&gt;3,n^=(e=r[o+4&amp;7])^e&lt;&lt;7,e=r[o+7&amp;7],n^=(e^=e&lt;&lt;13)^e&lt;&lt;9,r[o]=n,t.i=o+1&amp;7,n},function(e,t){var n,r=[];if(t===(0|t))r[0]=t;else for(t=&quot;&quot;+t,n=0;n&lt;t.length;++n)r[7&amp;n]=r[7&amp;n]&lt;&lt;15^t.charCodeAt(n)+r[n+1&amp;7]&lt;&lt;13;for(;r.length&lt;8;)r.push(0);for(n=0;n&lt;8&amp;&amp;0===r[n];++n);for(8==n?r[7]=-1:r[n],e.x=r,e.i=0,n=256;n&gt;0;--n)e.next()}(t,e)}function o(e,t){return t.x=e.x.slice(),t.i=e.i,t}function a(e,t){null==e&amp;&amp;(e=+new Date);var n=new r(e),a=t&amp;&amp;t.state,i=function(){return(n.next()&gt;&gt;&gt;0)/4294967296};return i.double=function(){do{var e=((n.next()&gt;&gt;&gt;11)+(n.next()&gt;&gt;&gt;0)/4294967296)/(1&lt;&lt;21)}while(0===e);return e},i.int32=n.next,i.quick=i,a&amp;&amp;(a.x&amp;&amp;o(a,n),i.state=function(){return o(n,{})}),i}t&amp;&amp;t.exports?t.exports=a:n&amp;&amp;n.amd?n((function(){return a})):this.xorshift7=a}(0,e,!1)}(ro);var oo={exports:{}};!function(e){!function(e,t,n){function r(e){var t=this;t.next=function(){var e,n,r=t.w,o=t.X,a=t.i;return t.w=r=r+1640531527|0,n=o[a+34&amp;127],e=o[a=a+1&amp;127],n^=n&lt;&lt;13,e^=e&lt;&lt;17,n^=n&gt;&gt;&gt;15,e^=e&gt;&gt;&gt;12,n=o[a]=n^e,t.i=a,n+(r^r&gt;&gt;&gt;16)|0},function(e,t){var n,r,o,a,i,s=[],l=128;for(t===(0|t)?(r=t,t=null):(t+=&quot;\\0&quot;,r=0,l=Math.max(l,t.length)),o=0,a=-32;a&lt;l;++a)t&amp;&amp;(r^=t.charCodeAt((a+32)%t.length)),0===a&amp;&amp;(i=r),r^=r&lt;&lt;10,r^=r&gt;&gt;&gt;15,r^=r&lt;&lt;4,r^=r&gt;&gt;&gt;13,a&gt;=0&amp;&amp;(i=i+1640531527|0,o=0==(n=s[127&amp;a]^=r+i)?o+1:0);for(o&gt;=128&amp;&amp;(s[127&amp;(t&amp;&amp;t.length||0)]=-1),o=127,a=512;a&gt;0;--a)r=s[o+34&amp;127],n=s[o=o+1&amp;127],r^=r&lt;&lt;13,n^=n&lt;&lt;17,r^=r&gt;&gt;&gt;15,n^=n&gt;&gt;&gt;12,s[o]=r^n;e.w=i,e.X=s,e.i=o}(t,e)}function o(e,t){return t.i=e.i,t.w=e.w,t.X=e.X.slice(),t}function a(e,t){null==e&amp;&amp;(e=+new Date);var n=new r(e),a=t&amp;&amp;t.state,i=function(){return(n.next()&gt;&gt;&gt;0)/4294967296};return i.double=function(){do{var e=((n.next()&gt;&gt;&gt;11)+(n.next()&gt;&gt;&gt;0)/4294967296)/(1&lt;&lt;21)}while(0===e);return e},i.int32=n.next,i.quick=i,a&amp;&amp;(a.X&amp;&amp;o(a,n),i.state=function(){return o(n,{})}),i}t&amp;&amp;t.exports?t.exports=a:n&amp;&amp;n.amd?n((function(){return a})):this.xor4096=a}(0,e,!1)}(oo);var ao={exports:{}};!function(e){!function(e,t,n){function r(e){var t=this,n=&quot;&quot;;t.next=function(){var e=t.b,n=t.c,r=t.d,o=t.a;return e=e&lt;&lt;25^e&gt;&gt;&gt;7^n,n=n-r|0,r=r&lt;&lt;24^r&gt;&gt;&gt;8^o,o=o-e|0,t.b=e=e&lt;&lt;20^e&gt;&gt;&gt;12^n,t.c=n=n-r|0,t.d=r&lt;&lt;16^n&gt;&gt;&gt;16^o,t.a=o-e|0},t.a=0,t.b=0,t.c=-1640531527,t.d=1367130551,e===Math.floor(e)?(t.a=e/4294967296|0,t.b=0|e):n+=e;for(var r=0;r&lt;n.length+20;r++)t.b^=0|n.charCodeAt(r),t.next()}function o(e,t){return t.a=e.a,t.b=e.b,t.c=e.c,t.d=e.d,t}function a(e,t){var n=new r(e),a=t&amp;&amp;t.state,i=function(){return(n.next()&gt;&gt;&gt;0)/4294967296};return i.double=function(){do{var e=((n.next()&gt;&gt;&gt;11)+(n.next()&gt;&gt;&gt;0)/4294967296)/(1&lt;&lt;21)}while(0===e);return e},i.int32=n.next,i.quick=i,a&amp;&amp;(&quot;object&quot;==typeof a&amp;&amp;o(a,n),i.state=function(){return o(n,{})}),i}t&amp;&amp;t.exports?t.exports=a:n&amp;&amp;n.amd?n((function(){return a})):this.tychei=a}(0,e,!1)}(ao);var io={exports:{}};!function(e){!function(t,n,r){var o,a=256,i=&quot;random&quot;,s=r.pow(a,6),l=r.pow(2,52),c=2*l,u=255;function d(e,u,d){var v=[],T=m(g((u=1==u?{entropy:!0}:u||{}).entropy?[e,h(n)]:null==e?function(){try{var e;return o&amp;&amp;(e=o.randomBytes)?e=e(a):(e=new Uint8Array(a),(t.crypto||t.msCrypto).getRandomValues(e)),h(e)}catch(e){var r=t.navigator,i=r&amp;&amp;r.plugins;return[+new Date,t,i,t.screen,h(n)]}}():e,3),v),x=new p(v),y=function(){for(var e=x.g(6),t=s,n=0;e&lt;l;)e=(e+n)*a,t*=a,n=x.g(1);for(;e&gt;=c;)e/=2,t/=2,n&gt;&gt;&gt;=1;return(e+n)/t};return y.int32=function(){return 0|x.g(4)},y.quick=function(){return x.g(4)/4294967296},y.double=y,m(h(x.S),n),(u.pass||d||function(e,t,n,o){return o&amp;&amp;(o.S&amp;&amp;f(o,x),e.state=function(){return f(x,{})}),n?(r[i]=e,t):e})(y,T,&quot;global&quot;in u?u.global:this==r,u.state)}function p(e){var t,n=e.length,r=this,o=0,i=r.i=r.j=0,s=r.S=[];for(n||(e=[n++]);o&lt;a;)s[o]=o++;for(o=0;o&lt;a;o++)s[o]=s[i=u&amp;i+e[o%n]+(t=s[o])],s[i]=t;(r.g=function(e){for(var t,n=0,o=r.i,i=r.j,s=r.S;e--;)t=s[o=u&amp;o+1],n=n*a+s[u&amp;(s[o]=s[i=u&amp;i+t])+(s[i]=t)];return r.i=o,r.j=i,n})(a)}function f(e,t){return t.i=e.i,t.j=e.j,t.S=e.S.slice(),t}function g(e,t){var n,r=[],o=typeof e;if(t&amp;&amp;&quot;object&quot;==o)for(n in e)try{r.push(g(e[n],t-1))}catch(e){}return r.length?r:&quot;string&quot;==o?e:e+&quot;\\0&quot;}function m(e,t){for(var n,r=e+&quot;&quot;,o=0;o&lt;r.length;)t[u&amp;o]=u&amp;(n^=19*t[u&amp;o])+r.charCodeAt(o++);return h(t)}function h(e){return String.fromCharCode.apply(0,e)}if(m(r.random(),n),e.exports){e.exports=d;try{o=require(&quot;crypto&quot;)}catch(e){}}else r[&quot;seed&quot;+i]=d}(&quot;undefined&quot;!=typeof self?self:Te,[],Math)}(io);var so=eo.exports,lo=to.exports,co=no.exports,uo=ro.exports,po=oo.exports,fo=ao.exports,go=io.exports;go.alea=so,go.xor128=lo,go.xorwow=co,go.xorshift7=uo,go.xor4096=po,go.tychei=fo;var mo=go;const ho=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],vo=[1,0,0,0,1,0,0,0,1],To=1e-12,{vtkErrorMacro:xo,vtkWarningMacro:yo}=sn;let bo=0;function Ao(e){return()=&gt;xo(`vtkMath::${e} - NOT IMPLEMENTED`)}function Co(e,t,n,r){let o;for(let a=0;a&lt;t;a++)o=e[n*t+a],e[n*t+a]=e[r*t+a],e[r*t+a]=o}function So(e,t,n,r){let o;for(let a=0;a&lt;t;a++)o=e[a*t+n],e[a*t+n]=e[a*t+r],e[a*t+r]=o}function Po(e=3){const t=Array(e);for(let n=0;n&lt;e;++n)t[n]=0;return t}function wo(e){return e/180*Math.PI}function Io(e){return 180*e/Math.PI}const{round:Oo,floor:Ro,ceil:Mo,min:Do,max:Eo}=Math;const Vo=Ao(&quot;ceilLog2&quot;),Lo=Ao(&quot;factorial&quot;);function Bo(e){let t=1;for(;t&lt;e;)t*=2;return t}function Fo(e){return e===Bo(e)}const No=Ao(&quot;gaussian&quot;);function ko(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n}function Go(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n}function Uo(e,t){return e[0]*=t,e[1]*=t,e[2]*=t,e}function _o(e,t){return e[0]*=t,e[1]*=t,e}function Ko(e,t,n,r){return r[0]=e[0]+t[0]*n,r[1]=e[1]+t[1]*n,r[2]=e[2]+t[2]*n,r}function zo(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function Wo(e,t,n){const r=e[1]*t[2]-e[2]*t[1],o=e[2]*t[0]-e[0]*t[2],a=e[0]*t[1]-e[1]*t[0];return n[0]=r,n[1]=o,n[2]=a,n}function Ho(e,t=3){switch(t){case 1:return Math.abs(e);case 2:return Math.sqrt(e[0]*e[0]+e[1]*e[1]);case 3:return Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);default:{let n=0;for(let r=0;r&lt;t;r++)n+=e[r]*e[r];return Math.sqrt(n)}}}function jo(e){const t=Ho(e);return 0!==t&amp;&amp;(e[0]/=t,e[1]/=t,e[2]/=t),t}function Xo(e){const t=Ho(e,3);return 0!==t&amp;&amp;(e[0]/=t,e[1]/=t,e[2]/=t,e[3]/=t),t}function qo(e,t){return e[0]*t[0]+e[1]*t[1]}function Yo(e,t){return(e[0]-t[0])*(e[0]-t[0])+(e[1]-t[1])*(e[1]-t[1])+(e[2]-t[2])*(e[2]-t[2])}function Jo(e){return Math.sqrt(e[0]*e[0]+e[1]*e[1])}function Zo(e){const t=Jo(e);return 0!==t&amp;&amp;(e[0]/=t,e[1]/=t),t}function Qo(...e){return 2===e.length?e[0][0]*e[1][1]-e[1][0]*e[0][1]:4===e.length?e[0]*e[3]-e[1]*e[2]:Number.NaN}function $o(e,t,n){const r=e[0]*t[0]+e[1]*t[1]+e[2]*t[2],o=e[3]*t[0]+e[4]*t[1]+e[5]*t[2],a=e[6]*t[0]+e[7]*t[1]+e[8]*t[2];n[0]=r,n[1]=o,n[2]=a}function ea(e,t,n){const r=[...e],o=[...t];for(let e=0;e&lt;3;e++)n[e]=r[0]*o[e]+r[1]*o[e+3]+r[2]*o[e+6],n[e+3]=r[3]*o[e]+r[4]*o[e+3]+r[5]*o[e+6],n[e+6]=r[6]*o[e]+r[7]*o[e+3]+r[8]*o[e+6]}function ta(e,t){let n;n=e[3],t[3]=e[1],t[1]=n,n=e[6],t[6]=e[2],t[2]=n,n=e[7],t[7]=e[5],t[5]=n,t[0]=e[0],t[4]=e[4],t[8]=e[8]}function na(e){return e[0]*e[4]*e[8]+e[3]*e[7]*e[2]+e[6]*e[1]*e[5]-e[0]*e[7]*e[5]-e[3]*e[1]*e[8]-e[6]*e[4]*e[2]}function ra(e,t,n=1e-6){if(e.length!==t.length)return!1;return e.every((function(e,r){return Math.abs(e-t[r])&lt;=n}))}const oa=ra;function aa(e){for(let t=0;t&lt;3;t++)e[3*t]=e[3*t+1]=e[3*t+2]=0,e[3*t+t]=1}function ia(e,t){for(let n=0;n&lt;e;n++){for(let r=0;r&lt;e;r++)t[n*e+r]=0;t[n*e+n]=1}return t}function sa(e,t){const n=e[0]*e[0],r=e[0]*e[1],o=e[0]*e[2],a=e[0]*e[3],i=e[1]*e[1],s=e[2]*e[2],l=e[3]*e[3],c=e[1]*e[2],u=e[1]*e[3],d=e[2]*e[3],p=i+s+l;let f=1/(n+p);const g=(n-p)*f;f*=2,t[0]=i*f+g,t[3]=(c+a)*f,t[6]=(u-o)*f,t[1]=(c-a)*f,t[4]=s*f+g,t[7]=(d+r)*f,t[2]=(u+o)*f,t[5]=(d-r)*f,t[8]=l*f+g}function la(e,t=0){if(!`${e}`.includes(&quot;e&quot;))return+`${Math.round(`${e}e+${t}`)}e-${t}`;const n=`${e}`.split(&quot;e&quot;);let r=&quot;&quot;;return+n[1]+t&gt;0&amp;&amp;(r=&quot;+&quot;),+`${Math.round(`${+n[0]}e${r}${+n[1]+t}`)}e-${t}`}function ca(e,t=[0,0,0],n=0){return t[0]=la(e[0],n),t[1]=la(e[1],n),t[2]=la(e[2],n),t}function ua(e,t,n,r){let o,a,i,s,l,c,u,d,p,f,g,m,h,v,T,x;const y=Po(t),b=Po(t),A=(e,t,n)=&gt;{v=e[t],h=e[n],e[t]=v-m*(h+v*f),e[n]=h+m*(v-h*f)};for(ia(t,r),l=0;l&lt;t;l++)y[l]=n[l]=e[l+l*t],b[l]=0;for(o=0;o&lt;20;o++){for(g=0,l=0;l&lt;t-1;l++)for(s=l+1;s&lt;t;s++)g+=Math.abs(e[l*t+s]);if(0===g)break;for(u=o&lt;3?.2*g/(t*t):0,l=0;l&lt;t-1;l++)for(s=l+1;s&lt;t;s++)if(v=100*Math.abs(e[l*t+s]),o&gt;3&amp;&amp;Math.abs(n[l])+v===Math.abs(n[l])&amp;&amp;Math.abs(n[s])+v===Math.abs(n[s]))e[l*t+s]=0;else if(Math.abs(e[l*t+s])&gt;u){for(h=n[s]-n[l],Math.abs(h)+v===Math.abs(h)?p=e[l*t+s]/h:(d=.5*h/e[l*t+s],p=1/(Math.abs(d)+Math.sqrt(1+d*d)),d&lt;0&amp;&amp;(p=-p)),T=1/Math.sqrt(1+p*p),m=p*T,f=m/(1+T),h=p*e[l*t+s],b[l]-=h,b[s]+=h,n[l]-=h,n[s]+=h,e[l*t+s]=0,a=0;a&lt;=l-1;a++)A(e,a*t+l,a*t+s);for(a=l+1;a&lt;=s-1;a++)A(e,l*t+a,a*t+s);for(a=s+1;a&lt;t;a++)A(e,l*t+a,s*t+a);for(a=0;a&lt;t;a++)A(r,a*t+l,a*t+s)}for(l=0;l&lt;t;l++)y[l]+=b[l],n[l]=y[l],b[l]=0}if(o&gt;=20)return yo(&quot;vtkMath::Jacobi: Error extracting eigenfunctions&quot;),0;for(a=0;a&lt;t-1;a++){for(i=a,x=n[i],o=a+1;o&lt;t;o++)(n[o]&gt;=x||Math.abs(n[o]-x)&lt;To)&amp;&amp;(i=o,x=n[i]);i!==a&amp;&amp;(n[i]=n[a],n[a]=x,So(r,t,a,i))}const C=(t&gt;&gt;1)+(1&amp;t);for(c=0,o=0;o&lt;t*t;o++)r[o]&gt;=0&amp;&amp;c++;if(c&lt;C)for(o=0;o&lt;t;o++)r[o*t+a]*=-1;return 1}function da(e,t){const n=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];n[0]=e[0]+e[4]+e[8],n[5]=e[0]-e[4]-e[8],n[10]=-e[0]+e[4]-e[8],n[15]=-e[0]-e[4]+e[8],n[1]=n[4]=e[7]-e[5],n[2]=n[8]=e[2]-e[6],n[3]=n[12]=e[3]-e[1],n[6]=n[9]=e[3]+e[1],n[7]=n[13]=e[2]+e[6],n[11]=n[14]=e[7]+e[5];const r=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];ua([...n],4,[0,0,0,0],r),t[0]=r[0],t[1]=r[4],t[2]=r[8],t[3]=r[12]}function pa(e,t){for(let n=0;n&lt;9;n++)t[n]=e[n];const n=Po(3),r=Po(3);let o;for(let e=0;e&lt;3;e++){const r=Math.abs(t[3*e]),a=Math.abs(t[3*e+1]),i=Math.abs(t[3*e+2]);o=a&gt;r?a:r,o=i&gt;o?i:o,n[e]=1,0!==o&amp;&amp;(n[e]/=o)}const a=Math.abs(t[0])*n[0],i=Math.abs(t[3])*n[1],s=Math.abs(t[6])*n[2];r[0]=0,o=a,i&gt;=o&amp;&amp;(o=i,r[0]=1),s&gt;=o&amp;&amp;(r[0]=2),0!==r[0]&amp;&amp;(So(t,3,r[0],0),n[r[0]]=n[0]);const l=Math.abs(t[4])*n[1],c=Math.abs(t[7])*n[2];r[1]=1,o=l,c&gt;=o&amp;&amp;(r[1]=2,So(t,3,1,2)),r[2]=2;let u=0;if(na(t)&lt;0){u=1;for(let e=0;e&lt;9;e++)t[e]=-t[e]}const d=Po(4);if(da(t,d),sa(d,t),u)for(let e=0;e&lt;9;e++)t[e]=-t[e];1!==r[1]&amp;&amp;So(t,3,r[1],1),0!==r[0]&amp;&amp;So(t,3,r[0],0)}function fa(e,t,n){let r,o,a,i,s,l;if(ua([...e],3,t,n),t[0]!==t[1]||t[0]!==t[2]){for(ta(n,n),r=0;r&lt;3;r++)if(t[(r+1)%3]===t[(r+2)%3]){for(l=Math.abs(n[3*r]),i=0,o=1;o&lt;3;o++)l&lt;(s=Math.abs(n[3*r+o]))&amp;&amp;(l=s,i=o);i!==r&amp;&amp;(s=t[i],t[i]=t[r],t[r]=s,Co(n,3,r,i)),n[3*i+i]&lt;0&amp;&amp;(n[3*i]=-n[3*i],n[3*i+1]=-n[3*i+1],n[3*i+2]=-n[3*i+2]),o=(i+1)%3,a=(i+2)%3,n[3*o]=0,n[3*o+1]=0,n[3*o+2]=0,n[3*o+o]=1;const e=Wo([n[3*i],n[3*i+1],n[3*i+2]],[n[3*o],n[3*o+1],n[3*o+2]],[]);jo(e);const c=Wo(e,[n[3*i],n[3*i+1],n[3*i+2]],[]);for(let t=0;t&lt;3;t++)n[3*a+t]=e[t],n[3*o+t]=c[t];return void ta(n,n)}for(l=Math.abs(n[0]),i=0,r=1;r&lt;3;r++)l&lt;(s=Math.abs(n[3*r]))&amp;&amp;(l=s,i=r);if(0!==i){const e=t[i];t[i]=t[0],t[0]=e,Co(n,3,i,0)}if(Math.abs(n[4])&lt;Math.abs(n[7])){const e=t[2];t[2]=t[1],t[1]=e,Co(n,3,1,2)}for(r=0;r&lt;2;r++)n[3*r+r]&lt;0&amp;&amp;(n[3*r]=-n[3*r],n[3*r+1]=-n[3*r+1],n[3*r+2]=-n[3*r+2]);na(n)&lt;0&amp;&amp;(n[6]=-n[6],n[7]=-n[7],n[8]=-n[8]),ta(n,n)}else aa(n)}function ga(e,t,n){let r,o,a,i,s,l,c,u=0;const d=Po(n);for(r=0;r&lt;n;r++){for(i=0,o=0;o&lt;n;o++)(c=Math.abs(e[r*n+o]))&gt;i&amp;&amp;(i=c);if(0===i)return yo(&quot;Unable to factor linear system&quot;),0;d[r]=1/i}for(o=0;o&lt;n;o++){for(r=0;r&lt;o;r++){for(s=e[r*n+o],a=0;a&lt;r;a++)s-=e[r*n+a]*e[a*n+o];e[r*n+o]=s}for(i=0,r=o;r&lt;n;r++){for(s=e[r*n+o],a=0;a&lt;o;a++)s-=e[r*n+a]*e[a*n+o];e[r*n+o]=s,(l=d[r]*Math.abs(s))&gt;=i&amp;&amp;(i=l,u=r)}if(o!==u){for(a=0;a&lt;n;a++)l=e[u*n+a],e[u*n+a]=e[o*n+a],e[o*n+a]=l;d[u]=d[o]}if(t[o]=u,Math.abs(e[o*n+o])&lt;=To)return yo(&quot;Unable to factor linear system&quot;),0;if(o!==n-1)for(l=1/e[o*n+o],r=o+1;r&lt;n;r++)e[r*n+o]*=l}return 1}function ma(e,t,n,r){let o,a,i,s,l;for(i=-1,o=0;o&lt;r;o++){if(s=t[o],l=n[s],n[s]=n[o],i&gt;=0)for(a=i;a&lt;=o-1;a++)l-=e[o*r+a]*n[a];else 0!==l&amp;&amp;(i=o);n[o]=l}for(o=r-1;o&gt;=0;o--){for(l=n[o],a=o+1;a&lt;r;a++)l-=e[o*r+a]*n[a];n[o]=l/e[o*r+o]}}function ha(e,t,n){if(2===n){const n=Po(2),r=Qo(e[0],e[1],e[2],e[3]);return 0===r?0:(n[0]=(e[3]*t[0]-e[1]*t[1])/r,n[1]=(-e[2]*t[0]+e[0]*t[1])/r,t[0]=n[0],t[1]=n[1],1)}if(1===n)return 0===e[0]?0:(t[0]/=e[0],1);const r=Po(n);return 0===ga(e,r,n)?0:(ma(e,r,t,n),1)}function va(e,t,n,r=null,o=null){const a=r||Po(n),i=o||Po(n);if(0===ga(e,a,n))return null;for(let r=0;r&lt;n;r++){for(let e=0;e&lt;n;e++)i[e]=0;i[r]=1,ma(e,a,i,n);for(let e=0;e&lt;n;e++)t[e*n+r]=i[e]}return t}function Ta(e,t,n,r){if(e&lt;n)return yo(&quot;Insufficient number of samples. Underdetermined.&quot;),0;let o,a,i;const s=Po(n*n),l=Po(n),c=Po(n*n);for(i=0;i&lt;e;i++)for(o=0;o&lt;n;o++)for(a=o;a&lt;n;a++)s[o*n+a]+=t[i*n+o]*t[i*n+a];for(o=0;o&lt;n;o++)for(a=0;a&lt;o;a++)s[o*n+a]=s[a*n+o];for(ua(s,n,l,c),o=0;o&lt;n;o++)r[o]=c[o*n+n-1];return 1}function xa(e,t){let n,r;const[o,a,i]=e,s=1/6;let l=o,c=o;a&gt;l?l=a:a&lt;c&amp;&amp;(c=a),i&gt;l?l=i:i&lt;c&amp;&amp;(c=i);const u=l;r=u&gt;0?(l-c)/l:0,r&gt;0?(n=o===l?s*(a-i)/(l-c):a===l?1/3+s*(i-o)/(l-c):2/3+s*(o-a)/(l-c),n&lt;0&amp;&amp;(n+=1)):n=0,t[0]=n,t[1]=r,t[2]=u}function ya(e,t){const[n,r,o]=e,a=1/3,i=1/6,s=2/3,l=5/6;let c,u,d;n&gt;i&amp;&amp;n&lt;=a?(u=1,c=(a-n)/i,d=0):n&gt;a&amp;&amp;n&lt;=.5?(u=1,d=(n-a)/i,c=0):n&gt;.5&amp;&amp;n&lt;=s?(d=1,u=(s-n)/i,c=0):n&gt;s&amp;&amp;n&lt;=l?(d=1,c=(n-s)/i,u=0):n&gt;l&amp;&amp;n&lt;=1?(c=1,d=(1-n)/i,u=0):(c=1,u=n/i,d=0),c=r*c+(1-r),u=r*u+(1-r),d=r*d+(1-r),c*=o,u*=o,d*=o,t[0]=c,t[1]=u,t[2]=d}function ba(e,t){const[n,r,o]=e;let a=(n+16)/116,i=r/500+a,s=a-o/200;a**3&gt;.008856?a**=3:a=(a-16/116)/7.787,i**3&gt;.008856?i**=3:i=(i-16/116)/7.787,s**3&gt;.008856?s**=3:s=(s-16/116)/7.787;t[0]=.9505*i,t[1]=1*a,t[2]=1.089*s}function Aa(e,t){const[n,r,o]=e;let a=n/.9505,i=r/1,s=o/1.089;a&gt;.008856?a**=1/3:a=7.787*a+16/116,i&gt;.008856?i**=1/3:i=7.787*i+16/116,s&gt;.008856?s**=1/3:s=7.787*s+16/116,t[0]=116*i-16,t[1]=500*(a-i),t[2]=200*(i-s)}function Ca(e,t){const[n,r,o]=e;let a=3.2406*n+-1.5372*r+-.4986*o,i=-.9689*n+1.8758*r+.0415*o,s=.0557*n+-.204*r+1.057*o;a&gt;.0031308?a=1.055*a**(1/2.4)-.055:a*=12.92,i&gt;.0031308?i=1.055*i**(1/2.4)-.055:i*=12.92,s&gt;.0031308?s=1.055*s**(1/2.4)-.055:s*=12.92;let l=a;l&lt;i&amp;&amp;(l=i),l&lt;s&amp;&amp;(l=s),l&gt;1&amp;&amp;(a/=l,i/=l,s/=l),a&lt;0&amp;&amp;(a=0),i&lt;0&amp;&amp;(i=0),s&lt;0&amp;&amp;(s=0),t[0]=a,t[1]=i,t[2]=s}function Sa(e,t){let[n,r,o]=e;n&gt;.04045?n=((n+.055)/1.055)**2.4:n/=12.92,r&gt;.04045?r=((r+.055)/1.055)**2.4:r/=12.92,o&gt;.04045?o=((o+.055)/1.055)**2.4:o/=12.92,t[0]=.4124*n+.3576*r+.1805*o,t[1]=.2126*n+.7152*r+.0722*o,t[2]=.0193*n+.1192*r+.9505*o}function Pa(e,t){const n=[0,0,0];Sa(e,n),Aa(n,t)}function wa(e,t){const n=[0,0,0];ba(e,n),Ca(n,t)}function Ia(e){return e[0]=1,e[1]=-1,e[2]=1,e[3]=-1,e[4]=1,e[5]=-1,e}function Oa(e){return!(e[1]-e[0]&lt;0)}function Ra(e,t,n){return e&lt;t?t:e&gt;n?n:e}function Ma(e,t,n,r=[0,0,0]){return r[0]=Ra(e[0],t[0],n[0]),r[1]=Ra(e[1],t[1],n[1]),r[2]=Ra(e[2],t[2],n[2]),r}const Da=Ao(&quot;GetScalarTypeFittingRange&quot;),Ea=Ao(&quot;GetAdjustedScalarRange&quot;);const Va=1/0,La=-1/0,Ba=e=&gt;!Number.isFinite(e),{isFinite:Fa,isNaN:Na}=Number,ka=Na;function Ga(){return[].concat([Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE])}function Ua(e,t=3){const n=new Array(t),r=new Array(t);for(let e=0;e&lt;t;++e)n[e]=e,r[e]=e;for(let o=t-1;o&gt;0;o--){let a=-1/0,i=0,s=0;for(let l=0;l&lt;=o;++l){const c=n[l];for(let n=0;n&lt;=o;++n){const o=r[n],u=Math.abs(e[c+t*o]);u&gt;a&amp;&amp;(a=u,i=l,s=n)}}[n[o],n[i]]=[n[i],n[o]],[r[o],r[s]]=[r[s],r[o]]}const o=new Array(t*t).fill(0);for(let a=0;a&lt;t;++a){const i=n[a]+t*r[a];o[i]=e[i]&lt;0?-1:1}return o}function _a(e){const t=Math.floor(255*e);return t&gt;15?t.toString(16):`0${t.toString(16)}`}function Ka(e){return Math.round(255*e)}var za={Pi:()=&gt;Math.PI,ldexp:function(e,t){return t&gt;1023?e*2**1023*2**(t-1023):t&lt;-1074?5e-324*e*2**(t+1074):e*2**t},radiansFromDegrees:wo,degreesFromRadians:Io,round:Oo,floor:Ro,ceil:Mo,ceilLog2:Vo,min:Do,max:Eo,arrayMin:function(e,t=0,n=1){let r=1/0;for(let o=t,a=e.length;o&lt;a;o+=n)e[o]&lt;r&amp;&amp;(r=e[o]);return r},arrayMax:function(e,t=0,n=1){let r=-1/0;for(let o=t,a=e.length;o&lt;a;o+=n)r&lt;e[o]&amp;&amp;(r=e[o]);return r},arrayRange:function(e,t=0,n=1){let r=1/0,o=-1/0;for(let a=t,i=e.length;a&lt;i;a+=n)e[a]&lt;r&amp;&amp;(r=e[a]),o&lt;e[a]&amp;&amp;(o=e[a]);return[r,o]},isPowerOfTwo:Fo,nearestPowerOfTwo:Bo,factorial:Lo,binomial:function(e,t){let n=1;for(let r=1;r&lt;=t;++r)n*=(e-r+1)/r;return Math.floor(n)},beginCombination:function(e,t){if(e&lt;t)return 0;const n=Po(t);for(let e=0;e&lt;t;++e)n[e]=e;return n},nextCombination:function(e,t,n){let r=0;for(let o=t-1;o&gt;=0;--o)if(n[o]&lt;e-t+o){let e=n[o]+1;for(;o&lt;t;)n[o++]=e++;r=1;break}return r},randomSeed:function(e){mo(`${e}`,{global:!0}),bo=e},getSeed:function(){return bo},random:function(e=0,t=1){return e+(t-e)*Math.random()},gaussian:No,add:ko,subtract:Go,multiplyScalar:Uo,multiplyScalar2D:_o,multiplyAccumulate:Ko,multiplyAccumulate2D:function(e,t,n,r){return r[0]=e[0]+t[0]*n,r[1]=e[1]+t[1]*n,r},dot:zo,outer:function(e,t,n){n[0]=e[0]*t[0],n[1]=e[0]*t[1],n[2]=e[0]*t[2],n[3]=e[1]*t[0],n[4]=e[1]*t[1],n[5]=e[1]*t[2],n[6]=e[2]*t[0],n[7]=e[2]*t[1],n[8]=e[2]*t[2]},cross:Wo,norm:Ho,normalize:jo,perpendiculars:function(e,t,n,r){const o=e[0]*e[0],a=e[1]*e[1],i=e[2]*e[2],s=Math.sqrt(o+a+i);let l,c,u;o&gt;a&amp;&amp;o&gt;i?(l=0,c=1,u=2):a&gt;i?(l=1,c=2,u=0):(l=2,c=0,u=1);const d=e[l]/s,p=e[c]/s,f=e[u]/s,g=Math.sqrt(d*d+f*f);if(0!==r){const e=Math.sin(r),o=Math.cos(r);t&amp;&amp;(t[l]=(f*o-d*p*e)/g,t[c]=e*g,t[u]=(-d*o-p*f*e)/g),n&amp;&amp;(n[l]=(-f*e-d*p*o)/g,n[c]=o*g,n[u]=(d*e-p*f*o)/g)}else t&amp;&amp;(t[l]=f/g,t[c]=0,t[u]=-d/g),n&amp;&amp;(n[l]=-d*p/g,n[c]=g,n[u]=-p*f/g)},projectVector:function(e,t,n){const r=zo(t,t);if(0===r)return n[0]=0,n[1]=0,n[2]=0,!1;const o=zo(e,t)/r;for(let e=0;e&lt;3;e++)n[e]=t[e];return Uo(n,o),!0},projectVector2D:function(e,t,n){const r=qo(t,t);if(0===r)return n[0]=0,n[1]=0,!1;const o=qo(e,t)/r;for(let e=0;e&lt;2;e++)n[e]=t[e];return _o(n,o),!0},distance2BetweenPoints:Yo,angleBetweenVectors:function(e,t){const n=[0,0,0];return Wo(e,t,n),Math.atan2(Ho(n),zo(e,t))},gaussianAmplitude:function(e,t,n){const r=Math.abs(e-n);return 1/Math.sqrt(2*Math.PI*t)*Math.exp(-(r**2)/(2*t))},gaussianWeight:function(e,t,n){const r=Math.abs(e-n);return Math.exp(-(r**2)/(2*t))},dot2D:qo,outer2D:function(e,t,n){n[0]=e[0]*t[0],n[1]=e[0]*t[1],n[2]=e[1]*t[0],n[3]=e[1]*t[1]},norm2D:Jo,normalize2D:Zo,determinant2x2:Qo,LUFactor3x3:function(e,t){let n,r,o;const a=[0,0,0];for(let t=0;t&lt;3;t++)o=Math.abs(e[3*t]),(r=Math.abs(e[3*t+1]))&gt;o&amp;&amp;(o=r),(r=Math.abs(e[3*t+2]))&gt;o&amp;&amp;(o=r),a[t]=1/o;o=a[0]*Math.abs(e[0]),n=0,(r=a[1]*Math.abs(e[3]))&gt;=o&amp;&amp;(o=r,n=1),(r=a[2]*Math.abs(e[6]))&gt;=o&amp;&amp;(n=2),0!==n&amp;&amp;(Co(e,3,n,0),a[n]=a[0]),t[0]=n,e[3]/=e[0],e[6]/=e[0],e[4]-=e[3]*e[1],e[7]-=e[6]*e[1],o=a[1]*Math.abs(e[4]),n=1,(r=a[2]*Math.abs(e[7]))&gt;=o&amp;&amp;(n=2,Co(e,3,1,2),a[2]=a[1]),t[1]=n,e[7]/=e[4],e[5]-=e[3]*e[2],e[8]-=e[6]*e[2]+e[7]*e[5],t[2]=2},LUSolve3x3:function(e,t,n){let r=n[t[0]];n[t[0]]=n[0],n[0]=r,r=n[t[1]],n[t[1]]=n[1],n[1]=r-e[3]*n[0],r=n[t[2]],n[t[2]]=n[2],n[2]=r-e[6]*n[0]-e[7]*n[1],n[2]/=e[8],n[1]=(n[1]-e[5]*n[2])/e[4],n[0]=(n[0]-e[1]*n[1]-e[2]*n[2])/e[0]},linearSolve3x3:function(e,t,n){const r=e[0],o=e[1],a=e[2],i=e[3],s=e[4],l=e[5],c=e[6],u=e[7],d=e[8],p=+Qo(s,u,l,d),f=-Qo(i,c,l,d),g=+Qo(i,c,s,u),m=-Qo(o,u,a,d),h=+Qo(r,c,a,d),v=-Qo(r,c,o,u),T=+Qo(o,s,a,l),x=-Qo(r,i,a,l),y=+Qo(r,i,o,s),b=r*p+o*f+a*g,A=p*t[0]+m*t[1]+T*t[2],C=f*t[0]+h*t[1]+x*t[2],S=g*t[0]+v*t[1]+y*t[2];n[0]=A/b,n[1]=C/b,n[2]=S/b},multiply3x3_vect3:$o,multiply3x3_mat3:ea,multiplyMatrix:function(e,t,n,r,o,a,i){r!==o&amp;&amp;xo(&quot;Number of columns of A must match number of rows of B.&quot;);const s=[...e],l=[...t];for(let e=0;e&lt;n;e++)for(let t=0;t&lt;a;t++){i[e*a+t]=0;for(let n=0;n&lt;r;n++)i[e*a+t]+=s[e*r+n]*l[t+a*n]}},transpose3x3:ta,invert3x3:function(e,t){const n=e[0],r=e[1],o=e[2],a=e[3],i=e[4],s=e[5],l=e[6],c=e[7],u=e[8],d=+Qo(i,c,s,u),p=-Qo(a,l,s,u),f=+Qo(a,l,i,c),g=-Qo(r,c,o,u),m=+Qo(n,l,o,u),h=-Qo(n,l,r,c),v=+Qo(r,i,o,s),T=-Qo(n,a,o,s),x=+Qo(n,a,r,i),y=n*d+r*p+o*f;0===y&amp;&amp;yo(&quot;Matrix has 0 determinant&quot;),t[0]=d/y,t[3]=p/y,t[6]=f/y,t[1]=g/y,t[4]=m/y,t[7]=h/y,t[2]=v/y,t[5]=T/y,t[8]=x/y},identity3x3:aa,identity:ia,isIdentity:function(e,t=1e-6){return oa(e,ho,t)},isIdentity3x3:function(e,t=1e-6){return oa(e,vo,t)},determinant3x3:na,quaternionToMatrix3x3:sa,areEquals:ra,areMatricesEqual:oa,roundNumber:la,roundVector:ca,matrix3x3ToQuaternion:da,multiplyQuaternion:function(e,t,n){const r=e[0]*t[0],o=e[0]*t[1],a=e[0]*t[2],i=e[0]*t[3],s=e[1]*t[0],l=e[1]*t[1],c=e[1]*t[2],u=e[1]*t[3],d=e[2]*t[0],p=e[2]*t[1],f=e[2]*t[2],g=e[2]*t[3],m=e[3]*t[0],h=e[3]*t[1],v=e[3]*t[2],T=e[3]*t[3];n[0]=r-l-f-T,n[1]=o+s+g-v,n[2]=a-u+d+h,n[3]=i+c-p+m},orthogonalize3x3:pa,diagonalize3x3:fa,singularValueDecomposition3x3:function(e,t,n,r){let o;const a=[...e],i=na(a);if(i&lt;0)for(o=0;o&lt;9;o++)a[o]=-a[o];pa(a,t),ta(a,a),ea(a,t,r),fa(r,n,r),ea(t,r,t),ta(r,r),i&lt;0&amp;&amp;(n[0]=-n[0],n[1]=-n[1],n[2]=-n[2])},solveLinearSystem:ha,invertMatrix:va,luFactorLinearSystem:ga,luSolveLinearSystem:ma,estimateMatrixCondition:function(e,t){let n=+Number.MAX_VALUE,r=-Number.MAX_VALUE;for(let n=0;n&lt;t;n++)for(let o=n;o&lt;t;o++)Math.abs(e[n*t+o])&gt;r&amp;&amp;(r=Math.abs(e[n*t+o]));for(let r=0;r&lt;t;r++)Math.abs(e[r*t+r])&lt;n&amp;&amp;(n=Math.abs(e[r*t+r]));return 0===n?Number.MAX_VALUE:r/n},jacobi:function(e,t,n){return ua(e,3,t,n)},jacobiN:ua,solveHomogeneousLeastSquares:Ta,solveLeastSquares:function(e,t,n,r,o,a,i=!0){if(e&lt;n||e&lt;o)return yo(&quot;Insufficient number of samples. Underdetermined.&quot;),0;const s=Po(o);let l,c,u,d,p=1,f=0,g=0;if(i){for(u=0;u&lt;o;u++)s[u]=1;for(c=0;c&lt;e;c++)for(u=0;u&lt;o;u++)Math.abs(r[c*o+u])&gt;To&amp;&amp;(p=0,s[u]=0);if(p&amp;&amp;1===o)return yo(&quot;Detected homogeneous system (Y=0), calling SolveHomogeneousLeastSquares()&quot;),Ta(e,t,n,a);if(p)g=1;else for(u=0;u&lt;o;u++)s[u]&amp;&amp;(g=1)}g&amp;&amp;(l=Po(n),f=Ta(e,t,n,l));const m=Po(n*n),h=Po(n*n),v=Po(n*o);for(d=0;d&lt;e;d++)for(c=0;c&lt;n;c++){for(u=c;u&lt;n;u++)m[c*n+u]+=t[d*n+c]*t[d*n+u];for(u=0;u&lt;o;u++)v[c*o+u]+=t[d*n+c]*r[d*o+u]}for(c=0;c&lt;n;c++)for(u=0;u&lt;c;u++)m[c*n+u]=m[u*n+c];const T=va(m,h,n);if(T)for(c=0;c&lt;n;c++)for(u=0;u&lt;o;u++)for(a[c*o+u]=0,d=0;d&lt;n;d++)a[c*o+u]+=h[c*n+d]*v[d*o+u];if(g)for(u=0;u&lt;o;u++)if(s[u])for(c=0;c&lt;n;c++)a[c*o+u]=l[c*o];return g?f&amp;&amp;T:T},hex2float:function(e,t=[0,.5,1]){switch(e.length){case 3:return t[0]=17*parseInt(e[0],16)/255,t[1]=17*parseInt(e[1],16)/255,t[2]=17*parseInt(e[2],16)/255,t;case 4:return t[0]=17*parseInt(e[1],16)/255,t[1]=17*parseInt(e[2],16)/255,t[2]=17*parseInt(e[3],16)/255,t;case 6:return t[0]=parseInt(e.substr(0,2),16)/255,t[1]=parseInt(e.substr(2,2),16)/255,t[2]=parseInt(e.substr(4,2),16)/255,t;case 7:return t[0]=parseInt(e.substr(1,2),16)/255,t[1]=parseInt(e.substr(3,2),16)/255,t[2]=parseInt(e.substr(5,2),16)/255,t;case 9:return t[0]=parseInt(e.substr(1,2),16)/255,t[1]=parseInt(e.substr(3,2),16)/255,t[2]=parseInt(e.substr(5,2),16)/255,t[3]=parseInt(e.substr(7,2),16)/255,t;default:return t}},rgb2hsv:xa,hsv2rgb:ya,lab2xyz:ba,xyz2lab:Aa,xyz2rgb:Ca,rgb2xyz:Sa,rgb2lab:Pa,lab2rgb:wa,uninitializeBounds:Ia,areBoundsInitialized:Oa,computeBoundsFromPoints:function(e,t,n){return n[0]=Math.min(e[0],t[0]),n[1]=Math.max(e[0],t[0]),n[2]=Math.min(e[1],t[1]),n[3]=Math.max(e[1],t[1]),n[4]=Math.min(e[2],t[2]),n[5]=Math.max(e[2],t[2]),n},clampValue:Ra,clampVector:Ma,clampAndNormalizeValue:function(e,t){let n=0;return t[0]!==t[1]&amp;&amp;(n=e&lt;t[0]?t[0]:e&gt;t[1]?t[1]:e,n=(n-t[0])/(t[1]-t[0])),n},getScalarTypeFittingRange:Da,getAdjustedScalarRange:Ea,extentIsWithinOtherExtent:function(e,t){if(!e||!t)return 0;for(let n=0;n&lt;6;n+=2)if(e[n]&lt;t[n]||e[n]&gt;t[n+1]||e[n+1]&lt;t[n]||e[n+1]&gt;t[n+1])return 0;return 1},boundsIsWithinOtherBounds:function(e,t,n){if(!e||!t)return 0;for(let r=0;r&lt;6;r+=2)if(e[r]+n[r/2]&lt;t[r]||e[r]-n[r/2]&gt;t[r+1]||e[r+1]+n[r/2]&lt;t[r]||e[r+1]-n[r/2]&gt;t[r+1])return 0;return 1},pointIsWithinBounds:function(e,t,n){if(!e||!t||!n)return 0;for(let r=0;r&lt;3;r++)if(e[r]+n[r]&lt;t[2*r]||e[r]-n[r]&gt;t[2*r+1])return 0;return 1},solve3PointCircle:function(e,t,n,r){const o=Po(3),a=Po(3),i=Po(3),s=Po(3),l=Po(3),c=Po(3);for(let r=0;r&lt;3;++r)o[r]=e[r]-t[r],a[r]=t[r]-n[r],i[r]=n[r]-e[r],s[r]=-o[r],l[r]=-a[r],c[r]=-i[r];const u=Ho(s),d=Ho(l),p=Ho(i),f=Po(3);Wo(o,a,f);const g=Ho(f),m=u*d*p/(2*g),h=2*g*g,v=d*d*zo(o,c)/h,T=p*p*zo(s,a)/h,x=u*u*zo(i,l)/h;for(let o=0;o&lt;3;++o)r[o]=v*e[o]+T*t[o]+x*n[o];return m},inf:Va,negInf:La,isInf:Ba,isNan:Na,isNaN:Na,isFinite:Fa,createUninitializedBounds:Ga,getMajorAxisIndex:function(e){let t=-1,n=-1;for(let r=0;r&lt;e.length;r++){const o=Math.abs(e[r]);o&gt;t&amp;&amp;(n=r,t=o)}return n},getMinorAxisIndex:function(e){let t=1/0,n=-1;for(let r=0;r&lt;e.length;r++){const o=Math.abs(e[r]);o&lt;t&amp;&amp;(n=r,t=o)}return n},getSparseOrthogonalMatrix:Ua,floatToHex2:_a,floatRGB2HexCode:function(e,t=&quot;#&quot;){return`${t}${e.map(_a).join(&quot;&quot;)}`},float2CssRGBA:function(e){return 3===e.length?`rgb(${e.map(Ka).join(&quot;, &quot;)})`:`rgba(${Ka(e[0]||0)}, ${Ka(e[1]||0)}, ${Ka(e[2]||0)}, ${e[3]||0})`}};const Wa={};function Ha(e,t,n={}){Object.assign(t,Wa,n),sn.obj(e,t),sn.setGet(e,t,[&quot;transform&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkImplicitFunction&quot;),e.functionValue=n=&gt;{if(!t.transform)return e.evaluateFunction(n);const r=[];return t.transform.transformPoint(n,r),e.evaluateFunction(r)},e.evaluateFunction=e=&gt;{sn.vtkErrorMacro(&quot;not implemented&quot;)}}(e,t)}var ja={newInstance:sn.newInstance(Ha,&quot;vtkImplicitFunction&quot;),extend:Ha};const Xa=1e-6,qa=&quot;coincide&quot;,Ya=&quot;disjoint&quot;;function Ja(e,t,n){const r=n[0]*(e[0]-t[0])+n[1]*(e[1]-t[1])+n[2]*(e[2]-t[2]);return Math.abs(r)}function Za(e,t,n,r){const o=[];Go(e,t,o);const a=zo(n,o);r[0]=e[0]-a*n[0],r[1]=e[1]-a*n[1],r[2]=e[2]-a*n[2]}function Qa(e,t,n){const r=zo(e,t);let o=zo(t,t);return 0===o&amp;&amp;(o=1),n[0]=e[0]-r*t[0]/o,n[1]=e[1]-r*t[1]/o,n[2]=e[2]-r*t[2]/o,n}function $a(e,t,n,r){const o=[];Go(e,t,o);const a=zo(n,o),i=zo(n,n);0!==i?(r[0]=e[0]-a*n[0]/i,r[1]=e[1]-a*n[1]/i,r[2]=e[2]-a*n[2]/i):(r[0]=e[0],r[1]=e[1],r[2]=e[2])}function ei(e,t,n,r){const o={intersection:!1,betweenPoints:!1,t:Number.MAX_VALUE,x:[]},a=[],i=[];Go(t,e,a),Go(n,e,i);const s=zo(r,i),l=zo(r,a);let c,u;return c=l&lt;0?-l:l,u=s&lt;0?-s*Xa:s*Xa,c&lt;=u||(o.t=s/l,o.x[0]=e[0]+o.t*a[0],o.x[1]=e[1]+o.t*a[1],o.x[2]=e[2]+o.t*a[2],o.intersection=!0,o.betweenPoints=o.t&gt;=0&amp;&amp;o.t&lt;=1),o}function ti(e,t,n,r){const o={intersection:!1,l0:[],l1:[],error:null},a=[];Wo(t,r,a);const i=a.map((e=&gt;Math.abs(e)));if(i[0]+i[1]+i[2]&lt;Xa){const r=[];return Go(e,n,r),0===zo(t,r)?o.error=qa:o.error=Ya,o}let s;s=i[0]&gt;i[1]&amp;&amp;i[0]&gt;i[2]?&quot;x&quot;:i[1]&gt;i[2]?&quot;y&quot;:&quot;z&quot;;const l=[],c=-zo(t,e),u=-zo(r,n);switch(s){case&quot;x&quot;:l[0]=0,l[1]=(u*t[2]-c*r[2])/a[0],l[2]=(c*r[1]-u*t[1])/a[0];break;case&quot;y&quot;:l[0]=(c*r[2]-u*t[2])/a[1],l[1]=0,l[2]=(u*t[0]-c*r[0])/a[1];break;case&quot;z&quot;:l[0]=(u*t[1]-c*r[1])/a[2],l[1]=(c*r[0]-u*t[0])/a[2],l[2]=0}return o.l0=l,ko(l,a,o.l1),o.intersection=!0,o}const ni={evaluate:function(e,t,n){return e[0]*(n[0]-t[0])+e[1]*(n[1]-t[1])+e[2]*(n[2]-t[2])},distanceToPlane:Ja,projectPoint:Za,projectVector:Qa,generalizedProjectPoint:$a,intersectWithLine:ei,intersectWithPlane:ti,DISJOINT:Ya,COINCIDE:qa};const ri={normal:[0,0,1],origin:[0,0,0]};function oi(e,t,n={}){Object.assign(t,ri,n),ja.extend(e,t,n),sn.setGetArray(e,t,[&quot;normal&quot;,&quot;origin&quot;],3),function(e,t){t.classHierarchy.push(&quot;vtkPlane&quot;),e.distanceToPlane=e=&gt;Ja(e,t.origin,t.normal),e.projectPoint=(e,n)=&gt;{Za(e,t.origin,t.normal,n)},e.projectVector=(e,n)=&gt;Qa(e,t.normal,n),e.push=e=&gt;{if(0!==e)for(let n=0;n&lt;3;n++)t.origin[n]+=e*t.normal[n]},e.generalizedProjectPoint=(e,n)=&gt;{$a(e,t.origin,t.normal,n)},e.evaluateFunction=(e,n,r)=&gt;Array.isArray(e)?t.normal[0]*(e[0]-t.origin[0])+t.normal[1]*(e[1]-t.origin[1])+t.normal[2]*(e[2]-t.origin[2]):t.normal[0]*(e-t.origin[0])+t.normal[1]*(n-t.origin[1])+t.normal[2]*(r-t.origin[2]),e.evaluateGradient=e=&gt;[t.normal[0],t.normal[1],t.normal[2]],e.intersectWithLine=(e,n)=&gt;ei(e,n,t.origin,t.normal),e.intersectWithPlane=(e,n)=&gt;ti(e,n,t.origin,t.normal)}(e,t)}var ai={newInstance:sn.newInstance(oi,&quot;vtkPlane&quot;),extend:oi,...ni};const ii=[Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE];function si(e,t){return e[0]===t[0]&amp;&amp;e[1]===t[1]&amp;&amp;e[2]===t[2]&amp;&amp;e[3]===t[3]&amp;&amp;e[4]===t[4]&amp;&amp;e[5]===t[5]}function li(e){return e?.length&gt;=6&amp;&amp;e[0]&lt;=e[1]&amp;&amp;e[2]&lt;=e[3]&amp;&amp;e[4]&lt;=e[5]}function ci(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e}function ui(e){return ci(e,ii)}function di(e,t,n,r){const[o,a,i,s,l,c]=e;return&quot;number&quot;==typeof t?(e[0]=o&lt;t?o:t,e[1]=a&gt;t?a:t,e[2]=i&lt;n?i:n,e[3]=s&gt;n?s:n,e[4]=l&lt;r?l:r,e[5]=c&gt;r?c:r):(e[0]=o&lt;t[0]?o:t[0],e[1]=a&gt;t[0]?a:t[0],e[2]=i&lt;t[1]?i:t[1],e[3]=s&gt;t[1]?s:t[1],e[4]=l&lt;t[2]?l:t[2],e[5]=c&gt;t[2]?c:t[2]),e}function pi(e,t){if(0===t.length)return e;if(Array.isArray(t[0]))for(let n=0;n&lt;t.length;++n)di(e,...t[n]);else for(let n=0;n&lt;t.length;n+=3)di(e,...t.slice(n,n+3));return e}function fi(e,t,n,r,o,a,i){const[s,l,c,u,d,p]=e;return void 0===i?(e[0]=Math.min(t[0],s),e[1]=Math.max(t[1],l),e[2]=Math.min(t[2],c),e[3]=Math.max(t[3],u),e[4]=Math.min(t[4],d),e[5]=Math.max(t[5],p)):(e[0]=Math.min(t,s),e[1]=Math.max(n,l),e[2]=Math.min(r,c),e[3]=Math.max(o,u),e[4]=Math.min(a,d),e[5]=Math.max(i,p)),e}function gi(e,t,n,r){const[o,a,i,s,l,c]=e;return e[0]=t,e[1]=t&gt;a?t:a,e[2]=n,e[3]=n&gt;s?n:s,e[4]=r,e[5]=r&gt;c?r:c,o!==t||i!==n||l!==r}function mi(e,t,n,r){const[o,a,i,s,l,c]=e;return e[0]=t&lt;o?t:o,e[1]=t,e[2]=n&lt;i?n:i,e[3]=n,e[4]=r&lt;l?r:l,e[5]=r,a!==t||s!==n||c!==r}function hi(e,t){return null==t?function(e){const t=[0,0,0];let n=-1,r=0,o=0;for(let a=0;a&lt;3;++a)o=e[2*a+1]-e[2*a],o&gt;r&amp;&amp;(r=o,n=a),t[a]=o&gt;0?1:0;if(n&lt;0)return hi(e,.5);for(let n=0;n&lt;3;++n)if(!t[n]){const t=.005*r;e[2*n]-=t,e[2*n+1]+=t}return e}(e):(e[0]-=t,e[1]+=t,e[2]-=t,e[3]+=t,e[4]-=t,e[5]+=t,e)}function vi(e,t,n,r){return!!li(e)&amp;&amp;(t&gt;=0?(e[0]*=t,e[1]*=t):(e[0]=t*e[1],e[1]=t*e[0]),n&gt;=0?(e[2]*=n,e[3]*=n):(e[2]=n*e[3],e[3]=n*e[2]),r&gt;=0?(e[4]*=r,e[5]*=r):(e[4]=r*e[5],e[5]=r*e[4]),!0)}function Ti(e){return[.5*(e[0]+e[1]),.5*(e[2]+e[3]),.5*(e[4]+e[5])]}function xi(e,t){return e[2*t+1]-e[2*t]}function yi(e){return[xi(e,0),xi(e,1),xi(e,2)]}function bi(e){return e.slice(0,2)}function Ai(e){return e.slice(2,4)}function Ci(e){return e.slice(4,6)}function Si(e){const t=yi(e);return t[0]&gt;t[1]?t[0]&gt;t[2]?t[0]:t[2]:t[1]&gt;t[2]?t[1]:t[2]}function Pi(e){if(li(e)){const t=yi(e);return t[0]*t[0]+t[1]*t[1]+t[2]*t[2]}return null}function wi(e){const t=Pi(e);return null!==t?Math.sqrt(t):null}function Ii(e){return[e[0],e[2],e[4]]}function Oi(e){return[e[1],e[3],e[5]]}function Ri(e,t){return e&lt;=0&amp;&amp;t&gt;=0||e&gt;=0&amp;&amp;t&lt;=0}function Mi(e,t){return t[0]=[e[0],e[2],e[4]],t[1]=[e[0],e[2],e[5]],t[2]=[e[0],e[3],e[4]],t[3]=[e[0],e[3],e[5]],t[4]=[e[1],e[2],e[4]],t[5]=[e[1],e[2],e[5]],t[6]=[e[1],e[3],e[4]],t[7]=[e[1],e[3],e[5]],t}function Di(e,t,n){return t[0]=e[0],t[1]=e[2],t[2]=e[4],n[0]=e[1],n[1]=e[3],n[2]=e[5],t}function Ei(e,t,n=[]){const r=Mi(e,[]);for(let e=0;e&lt;r.length;++e)oe(r[e],r[e],t);return ui(n),pi(n,r)}function Vi(e,t=[]){return t[0]=.5*(e[1]-e[0]),t[1]=.5*(e[3]-e[2]),t[2]=.5*(e[5]-e[4]),t}function Li(e,t,n,r){const o=[].concat(ii),a=e.getData();for(let e=0;e&lt;a.length;e+=3){const i=[a[e],a[e+1],a[e+2]],s=zo(i,t);o[0]=Math.min(s,o[0]),o[1]=Math.max(s,o[1]);const l=zo(i,n);o[2]=Math.min(l,o[2]),o[3]=Math.max(l,o[3]);const c=zo(i,r);o[4]=Math.min(c,o[4]),o[5]=Math.max(c,o[5])}return o}function Bi(e,t,n,r,o){let a=!0;const i=[];let s=0;const l=[],c=[0,0,0];for(let n=0;n&lt;3;n++)t[n]&lt;e[2*n]?(i[n]=1,c[n]=e[2*n],a=!1):t[n]&gt;e[2*n+1]?(i[n]=0,c[n]=e[2*n+1],a=!1):i[n]=2;if(a)return r[0]=t[0],r[1]=t[1],r[2]=t[2],o[0]=0,1;for(let e=0;e&lt;3;e++)2!==i[e]&amp;&amp;0!==n[e]?l[e]=(c[e]-t[e])/n[e]:l[e]=-1;for(let e=0;e&lt;3;e++)l[s]&lt;l[e]&amp;&amp;(s=e);if(l[s]&gt;1||l[s]&lt;0)return 0;o[0]=l[s];for(let o=0;o&lt;3;o++)if(s!==o){if(r[o]=t[o]+l[s]*n[o],r[o]&lt;e[2*o]||r[o]&gt;e[2*o+1])return 0}else r[o]=c[o];return 1}function Fi(e,t,n){const r=[];let o=0,a=1,i=1;for(let s=4;s&lt;=5;++s){r[2]=e[s];for(let s=2;s&lt;=3;++s){r[1]=e[s];for(let s=0;s&lt;=1;++s)if(r[0]=e[s],o=ai.evaluate(n,t,r),i&amp;&amp;(a=o&gt;=0?1:-1,i=0),0===o||a&gt;0&amp;&amp;o&lt;0||a&lt;0&amp;&amp;o&gt;0)return 1}}return 0}function Ni(e,t){if(!li(e)||!li(t))return!1;const n=[0,0,0,0,0,0];let r;for(let o=0;o&lt;3;o++)if(r=!1,t[2*o]&gt;=e[2*o]&amp;&amp;t[2*o]&lt;=e[2*o+1]?(r=!0,n[2*o]=t[2*o]):e[2*o]&gt;=t[2*o]&amp;&amp;e[2*o]&lt;=t[2*o+1]&amp;&amp;(r=!0,n[2*o]=e[2*o]),t[2*o+1]&gt;=e[2*o]&amp;&amp;t[2*o+1]&lt;=e[2*o+1]?(r=!0,n[2*o+1]=t[2*o+1]):e[2*o+1]&gt;=t[2*o]&amp;&amp;e[2*o+1]&lt;=t[2*o+1]&amp;&amp;(r=!0,n[2*o+1]=e[2*o+1]),!r)return!1;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],!0}function ki(e,t){if(!li(e)||!li(t))return!1;for(let n=0;n&lt;3;n++)if(!(t[2*n]&gt;=e[2*n]&amp;&amp;t[2*n]&lt;=e[2*n+1]||e[2*n]&gt;=t[2*n]&amp;&amp;e[2*n]&lt;=t[2*n+1]||t[2*n+1]&gt;=e[2*n]&amp;&amp;t[2*n+1]&lt;=e[2*n+1]||e[2*n+1]&gt;=t[2*n]&amp;&amp;e[2*n+1]&lt;=t[2*n+1]))return!1;return!0}function Gi(e,t,n,r){return!(t&lt;e[0]||t&gt;e[1])&amp;&amp;(!(n&lt;e[2]||n&gt;e[3])&amp;&amp;!(r&lt;e[4]||r&gt;e[5]))}function Ui(e,t,n){const r=[[0,1,2,3,4,5,6,7],[0,1,4,5,2,3,6,7],[0,2,4,6,1,3,5,7]],o=[0,0,0,0,0,0,0,0];let a=0;for(let r=0;r&lt;2;r++)for(let i=2;i&lt;4;i++)for(let s=4;s&lt;6;s++){const l=[e[r],e[i],e[s]];o[a++]=ai.evaluate(n,t,l)}let i=2;for(;i--&amp;&amp;!(Ri(o[r[i][0]],o[r[i][4]])&amp;&amp;Ri(o[r[i][1]],o[r[i][5]])&amp;&amp;Ri(o[r[i][2]],o[r[i][6]])&amp;&amp;Ri(o[r[i][3]],o[r[i][7]])););if(i&lt;0)return!1;const s=Math.sign(n[i]),l=Math.abs((e[2*i+1]-e[2*i])*n[i]);let c=s&gt;0?1:0;for(let e=0;e&lt;4;e++){if(0===l)continue;const t=Math.abs(o[r[i][e]])/l;s&gt;0&amp;&amp;t&lt;c&amp;&amp;(c=t),s&lt;0&amp;&amp;t&gt;c&amp;&amp;(c=t)}const u=(1-c)*e[2*i]+c*e[2*i+1];return s&gt;0?e[2*i]=u:e[2*i+1]=u,!0}function _i(e,t){for(let e=0;e&lt;3;++e)t[e]=t[e]&lt;1?1:t[e];let n=t[0]*t[1]*t[2];for(;n&gt;e;){for(let e=0;e&lt;3;++e)t[e]=t[e]&gt;1?t[e]-1:1;n=t[0]*t[1]*t[2]}}function Ki(e,t,n,r=[]){t=t&lt;=0?1:t;let o=0;const a=[0,0,0];let i=-1,s=0;const l=yi(e),c=l[0]+l[1]+l[2],u=c*(.001/3);for(let e=0;e&lt;3;++e)l[e]&gt;s&amp;&amp;(i=e,s=l[e]),l[e]&gt;u?(a[e]=1,o++):a[e]=0;const d=Ii(e),p=Oi(e);if(o&lt;1)return n[0]=1,n[1]=1,n[2]=1,r[0]=d[0]-.5,r[1]=p[0]+.5,r[2]=d[1]-.5,r[3]=p[1]+.5,r[4]=d[2]-.5,r[5]=p[2]+.5,1;let f=t;f/=a[0]?l[0]/c:1,f/=a[1]?l[1]/c:1,f/=a[2]?l[2]/c:1,f**=1/o;for(let e=0;e&lt;3;++e)n[e]=a[e]?Math.floor(f*l[e]/c):1,n[e]=n[e]&lt;1?1:n[e];_i(t,n);const g=.5*l[i]/n[i];for(let e=0;e&lt;3;++e)a[e]?(r[2*e]=d[e],r[2*e+1]=p[e]):(r[2*e]=d[e]-g,r[2*e+1]=p[e]+g);return n[0]*n[1]*n[2]}function zi(e,t){if(e[0]&gt;=t[0]&amp;&amp;e[0]&lt;=t[1]&amp;&amp;e[1]&gt;=t[2]&amp;&amp;e[1]&lt;=t[3]&amp;&amp;e[2]&gt;=t[4]&amp;&amp;e[2]&lt;=t[5])return 0;const n=[0,0,0];return e[0]&lt;t[0]?n[0]=t[0]-e[0]:e[0]&gt;t[1]&amp;&amp;(n[0]=e[0]-t[1]),e[1]&lt;t[2]?n[1]=t[2]-e[1]:e[1]&gt;t[3]&amp;&amp;(n[1]=e[1]-t[3]),e[2]&lt;t[4]?n[2]=t[4]-e[2]:e[2]&gt;t[5]&amp;&amp;(n[2]=e[2]-t[5]),zo(n,n)}class Wi{constructor(e){this.bounds=e,this.bounds||(this.bounds=new Float64Array(ii))}getBounds(){return this.bounds}equals(e){return si(this.bounds,e)}isValid(){return li(this.bounds)}setBounds(e){return ci(this.bounds,e)}reset(){return ui(this.bounds)}addPoint(...e){return di(this.bounds,...e)}addPoints(e){return pi(this.bounds,e)}addBounds(e,t,n,r,o,a){return fi(this.bounds,e,t,n,r,o,a)}setMinPoint(e,t,n){return gi(this.bounds,e,t,n)}setMaxPoint(e,t,n){return mi(this.bounds,e,t,n)}inflate(e){return hi(this.bounds,e)}scale(e,t,n){return vi(this.bounds,e,t,n)}getCenter(){return Ti(this.bounds)}getLength(e){return xi(this.bounds,e)}getLengths(){return yi(this.bounds)}getMaxLength(){return Si(this.bounds)}getDiagonalLength(){return wi(this.bounds)}getDiagonalLength2(){return Pi(this.bounds)}getMinPoint(){return Ii(this.bounds)}getMaxPoint(){return Oi(this.bounds)}getXRange(){return bi(this.bounds)}getYRange(){return Ai(this.bounds)}getZRange(){return Ci(this.bounds)}getCorners(e){return Mi(this.bounds,e)}computeCornerPoints(e,t){return Di(this.bounds,e,t)}computeLocalBounds(e,t,n){return Li(this.bounds,e,t,n)}transformBounds(e,t=[]){return Ei(this.bounds,e,t)}computeScale3(e){return Vi(this.bounds,e)}cutWithPlane(e,t){return Ui(this.bounds,e,t)}intersectBox(e,t,n,r){return Bi(this.bounds,e,t,n,r)}intersectPlane(e,t){return Fi(this.bounds,e,t)}intersect(e){return Ni(this.bounds,e)}intersects(e){return ki(this.bounds,e)}containsPoint(e,t,n){return Gi(this.bounds,e,t,n)}contains(e){return ki(this.bounds,e)}computeDivisions(e,t,n=[]){return Ki(this.bounds,e,t,n)}distance2ToBounds(e){return zi(e,this.bounds)}}var Hi={newInstance:function(e){const t=e&amp;&amp;e.bounds;return new Wi(t)},...{equals:si,isValid:li,setBounds:ci,reset:ui,addPoint:di,addPoints:pi,addBounds:fi,setMinPoint:gi,setMaxPoint:mi,inflate:hi,scale:vi,scaleAboutCenter:function(e,t,n,r){if(!li(e))return!1;const o=Ti(e);return e[0]-=o[0],e[1]-=o[0],e[2]-=o[1],e[3]-=o[1],e[4]-=o[2],e[5]-=o[2],vi(e,t,n,r),e[0]+=o[0],e[1]+=o[0],e[2]+=o[1],e[3]+=o[1],e[4]+=o[2],e[5]+=o[2],!0},getCenter:Ti,getLength:xi,getLengths:yi,getMaxLength:Si,getDiagonalLength:wi,getDiagonalLength2:Pi,getMinPoint:Ii,getMaxPoint:Oi,getXRange:bi,getYRange:Ai,getZRange:Ci,getCorners:Mi,computeCornerPoints:Di,computeLocalBounds:Li,transformBounds:Ei,computeScale3:Vi,cutWithPlane:Ui,intersectBox:Bi,intersectPlane:Fi,intersect:Ni,intersects:ki,containsPoint:Gi,contains:function(e,t){return!!ki(e,t)&amp;&amp;(!!Gi(e,...Ii(t))&amp;&amp;!!Gi(e,...Oi(t)))},computeDivisions:Ki,clampDivisions:_i,distance2ToBounds:zi,INIT_BOUNDS:ii}};var ji={CoordinateSystem:{DISPLAY:0,WORLD:1}};const{CoordinateSystem:Xi}=ji;function qi(e){return()=&gt;sn.vtkErrorMacro(`vtkProp::${e} - NOT IMPLEMENTED`)}const Yi={allocatedRenderTime:10,coordinateSystem:Xi.WORLD,dragable:!0,estimatedRenderTime:0,paths:null,pickable:!0,renderTimeMultiplier:1,savedEstimatedRenderTime:0,textures:[],useBounds:!0,visibility:!0};function Ji(e,t,n={}){Object.assign(t,Yi,n),sn.obj(e,t),sn.get(e,t,[&quot;estimatedRenderTime&quot;,&quot;allocatedRenderTime&quot;]),sn.setGet(e,t,[&quot;_parentProp&quot;,&quot;coordinateSystem&quot;,&quot;dragable&quot;,&quot;pickable&quot;,&quot;renderTimeMultiplier&quot;,&quot;useBounds&quot;,&quot;visibility&quot;]),sn.moveToProtected(e,t,[&quot;parentProp&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkProp&quot;),e.getMTime=()=&gt;{let e=t.mtime;for(let n=0;n&lt;t.textures.length;++n){const r=t.textures[n].getMTime();r&gt;e&amp;&amp;(e=r)}return e},e.processSelectorPixelBuffers=(e,t)=&gt;{},e.getNestedProps=()=&gt;null,e.getActors=()=&gt;[],e.getActors2D=()=&gt;[],e.getVolumes=()=&gt;[],e.pick=qi(&quot;pick&quot;),e.hasKey=qi(&quot;hasKey&quot;),e.getNestedVisibility=()=&gt;t.visibility&amp;&amp;(!t._parentProp||t._parentProp.getNestedVisibility()),e.getNestedPickable=()=&gt;t.pickable&amp;&amp;(!t._parentProp||t._parentProp.getNestedPickable()),e.getNestedDragable=()=&gt;t.dragable&amp;&amp;(!t._parentProp||t._parentProp.getNestedDragable()),e.getRedrawMTime=()=&gt;t.mtime,e.setEstimatedRenderTime=e=&gt;{t.estimatedRenderTime=e,t.savedEstimatedRenderTime=e},e.restoreEstimatedRenderTime=()=&gt;{t.estimatedRenderTime=t.savedEstimatedRenderTime},e.addEstimatedRenderTime=e=&gt;{t.estimatedRenderTime+=e},e.setAllocatedRenderTime=e=&gt;{t.allocatedRenderTime=e,t.savedEstimatedRenderTime=t.estimatedRenderTime,t.estimatedRenderTime=0},e.getSupportsSelection=()=&gt;!1,e.getTextures=()=&gt;t.textures,e.hasTexture=e=&gt;-1!==t.textures.indexOf(e),e.addTexture=n=&gt;{n&amp;&amp;!e.hasTexture(n)&amp;&amp;(t.textures=t.textures.concat(n),e.modified())},e.removeTexture=n=&gt;{const r=t.textures.filter((e=&gt;e!==n));t.textures.length!==r.length&amp;&amp;(t.textures=r,e.modified())},e.removeAllTextures=()=&gt;{t.textures=[],e.modified()},e.setCoordinateSystemToWorld=()=&gt;e.setCoordinateSystem(Xi.WORLD),e.setCoordinateSystemToDisplay=()=&gt;e.setCoordinateSystem(Xi.DISPLAY)}(e,t)}var Zi={newInstance:sn.newInstance(Ji,&quot;vtkProp&quot;),extend:Ji,...ji};function Qi(e,t){t.classHierarchy.push(&quot;vtkProp3D&quot;),e.addPosition=n=&gt;{t.position=t.position.map(((e,t)=&gt;e+n[t])),e.modified()},e.getOrientationWXYZ=()=&gt;{const e=pe();L(e,t.rotation);const r=new Float64Array(3),o=function(e,t){var r=2*Math.acos(t[3]),o=Math.sin(r/2);return o&gt;n?(e[0]=t[0]/o,e[1]=t[1]/o,e[2]=t[2]/o):(e[0]=1,e[1]=0,e[2]=0),r}(r,e);return[Io(o),r[0],r[1],r[2]]},e.getOrientationQuaternion=(e=[])=&gt;L(e,t.rotation),e.rotateX=n=&gt;{0!==n&amp;&amp;(w(t.rotation,t.rotation,wo(n)),e.modified())},e.rotateY=n=&gt;{0!==n&amp;&amp;(I(t.rotation,t.rotation,wo(n)),e.modified())},e.rotateZ=n=&gt;{0!==n&amp;&amp;(O(t.rotation,t.rotation,wo(n)),e.modified())},e.rotateWXYZ=(n,r,o,a)=&gt;{if(0===n||0===r&amp;&amp;0===o&amp;&amp;0===a)return;const i=wo(n),s=pe();fe(s,[r,o,a],i);const l=new Float64Array(16);F(l,s),A(t.rotation,t.rotation,l),e.modified()},e.rotateQuaternion=n=&gt;{if(Math.abs(n[3])&gt;=.999999)return;const r=F(new Float64Array(16),n);A(t.rotation,t.rotation,r),e.modified()},e.setOrientation=(n,r,o)=&gt;(n!==t.orientation[0]||r!==t.orientation[1]||o!==t.orientation[2])&amp;&amp;(t.orientation=[n,r,o],x(t.rotation),e.rotateZ(o),e.rotateX(n),e.rotateY(r),e.modified(),!0),e.setOrientationFromQuaternion=n=&gt;{const r=v();return F(r,n),!oa(r,t.rotation)&amp;&amp;(t.rotation=r,e.modified(),!0)},e.setUserMatrix=n=&gt;!oa(t.userMatrix,n)&amp;&amp;(T(t.userMatrix,n),e.modified(),!0),e.getMatrix=()=&gt;(e.computeMatrix(),t.matrix),e.computeMatrix=()=&gt;{if(e.getMTime()&gt;t.matrixMTime.getMTime()){x(t.matrix),t.userMatrix&amp;&amp;A(t.matrix,t.matrix,t.userMatrix),C(t.matrix,t.matrix,t.origin),C(t.matrix,t.matrix,t.position),A(t.matrix,t.matrix,t.rotation),S(t.matrix,t.matrix,t.scale),C(t.matrix,t.matrix,[-t.origin[0],-t.origin[1],-t.origin[2]]),y(t.matrix,t.matrix),t.isIdentity=!0;for(let e=0;e&lt;4;++e)for(let n=0;n&lt;4;++n)(e===n?1:0)!==t.matrix[e+4*n]&amp;&amp;(t.isIdentity=!1);t.matrixMTime.modified()}},e.computeBounds=()=&gt;{if(null===t.mapper)return void Hi.reset(t.bounds);const n=t.mapper.getBounds();if(!n||6!==n.length||!Hi.isValid(n))return t.mapperBounds=n,Hi.reset(t.bounds),void t.boundsMTime.modified();if(!t.mapperBounds||!n.every(((e,r)=&gt;n[r]===t.mapperBounds[r]))||e.getMTime()&gt;t.boundsMTime.getMTime()){sn.vtkDebugMacro(&quot;Recomputing bounds...&quot;),t.mapperBounds=n,e.computeMatrix();const r=new Float64Array(16);y(r,t.matrix),Hi.transformBounds(n,r,t.bounds),t.boundsMTime.modified()}};const r=e.getBounds;e.getBounds=()=&gt;(e.computeBounds(),r());const o=e.getBoundsByReference;e.getBoundsByReference=()=&gt;(e.computeBounds(),o()),e.getCenter=()=&gt;Hi.getCenter(e.getBoundsByReference()),e.getLength=()=&gt;Hi.getLength(e.getBoundsByReference()),e.getXRange=()=&gt;Hi.getXRange(e.getBoundsByReference()),e.getYRange=()=&gt;Hi.getYRange(e.getBoundsByReference()),e.getZRange=()=&gt;Hi.getZRange(e.getBoundsByReference()),e.getUserMatrix=()=&gt;t.userMatrix,e.onModified((function(){e.computeMatrix()})),e.getProperty=(n=0)=&gt;(null==t.properties[n]&amp;&amp;(t.properties[n]=e.makeProperty?.()),t.properties[n]),e.getProperties=()=&gt;(0===t.properties.length&amp;&amp;(t.properties[0]=e.makeProperty?.()),t.properties),e.setProperty=(e,n)=&gt;{const r=Number.isInteger(e),[o,a]=r?[e,n]:[0,e];return t.properties[o]!==a&amp;&amp;(t.properties[o]=a,!0)},e.getMTime=()=&gt;{let e=t.mtime;return t.properties.forEach((t=&gt;{if(null!==t){const n=t.getMTime();e=n&gt;e?n:e}})),e}}const $i={bounds:[...Hi.INIT_BOUNDS],origin:[0,0,0],position:[0,0,0],orientation:[0,0,0],rotation:null,scale:[1,1,1],properties:[],userMatrix:null,userMatrixMTime:null,cachedProp3D:null,isIdentity:!0,matrixMTime:null};function es(e,t,n={}){Object.assign(t,$i,n),Zi.extend(e,t,n),t.matrixMTime={},sn.obj(t.matrixMTime),sn.get(e,t,[&quot;isIdentity&quot;]),sn.getArray(e,t,[&quot;orientation&quot;]),sn.setGetArray(e,t,[&quot;origin&quot;,&quot;position&quot;,&quot;scale&quot;],3),sn.setGet(e,t,[&quot;properties&quot;]),sn.getArray(e,t,[&quot;bounds&quot;],6),t.matrix=x(new Float64Array(16)),t.rotation=x(new Float64Array(16)),t.userMatrix=x(new Float64Array(16)),t.transform=null,Qi(e,t)}var ts={newInstance:sn.newInstance(es,&quot;vtkProp3D&quot;),extend:es};const ns={FLAT:0,GOURAUD:1,PHONG:2},rs={POINTS:0,WIREFRAME:1,SURFACE:2};var os={Shading:ns,Representation:rs,Interpolation:ns};const{Representation:as,Interpolation:is}=os;function ss(e){return()=&gt;sn.vtkErrorMacro(`vtkProperty::${e} - NOT IMPLEMENTED`)}const ls={color:[1,1,1],ambientColor:[1,1,1],diffuseColor:[1,1,1],specularColor:[1,1,1],edgeColor:[0,0,0],ambient:0,diffuse:1,metallic:0,roughness:.6,normalStrength:1,emission:1,baseIOR:1.45,specular:0,specularPower:1,opacity:1,edgeOpacity:1,interpolation:is.GOURAUD,representation:as.SURFACE,edgeVisibility:!1,backfaceCulling:!1,frontfaceCulling:!1,pointSize:1,lineWidth:1,lighting:!0,shading:!1,materialName:null,ORMTexture:null,RMTexture:null};function cs(e,t,n={}){Object.assign(t,ls,n),sn.obj(e,t),sn.setGet(e,t,[&quot;lighting&quot;,&quot;interpolation&quot;,&quot;ambient&quot;,&quot;diffuse&quot;,&quot;metallic&quot;,&quot;roughness&quot;,&quot;normalStrength&quot;,&quot;emission&quot;,&quot;baseIOR&quot;,&quot;specular&quot;,&quot;specularPower&quot;,&quot;opacity&quot;,&quot;edgeOpacity&quot;,&quot;edgeVisibility&quot;,&quot;lineWidth&quot;,&quot;pointSize&quot;,&quot;backfaceCulling&quot;,&quot;frontfaceCulling&quot;,&quot;representation&quot;,&quot;diffuseTexture&quot;,&quot;metallicTexture&quot;,&quot;roughnessTexture&quot;,&quot;normalTexture&quot;,&quot;ambientOcclusionTexture&quot;,&quot;emissionTexture&quot;,&quot;ORMTexture&quot;,&quot;RMTexture&quot;]),sn.setGetArray(e,t,[&quot;ambientColor&quot;,&quot;specularColor&quot;,&quot;diffuseColor&quot;,&quot;edgeColor&quot;],3),function(e,t){t.classHierarchy.push(&quot;vtkProperty&quot;),e.setColor=(n,r,o)=&gt;{Array.isArray(n)?t.color[0]===n[0]&amp;&amp;t.color[1]===n[1]&amp;&amp;t.color[2]===n[2]||(t.color[0]=n[0],t.color[1]=n[1],t.color[2]=n[2],e.modified()):t.color[0]===n&amp;&amp;t.color[1]===r&amp;&amp;t.color[2]===o||(t.color[0]=n,t.color[1]=r,t.color[2]=o,e.modified()),e.setDiffuseColor(t.color),e.setAmbientColor(t.color),e.setSpecularColor(t.color)},e.computeCompositeColor=ss(&quot;ComputeCompositeColor&quot;),e.getColor=()=&gt;{let e=0;t.ambient+t.diffuse+t.specular&gt;0&amp;&amp;(e=1/(t.ambient+t.diffuse+t.specular));for(let n=0;n&lt;3;n++)t.color[n]=e*(t.ambient*t.ambientColor[n]+t.diffuse*t.diffuseColor[n]+t.specular*t.specularColor[n]);return[].concat(t.color)},e.setSpecularPower=n=&gt;{const r=1/Math.max(1,n);t.roughness===r&amp;&amp;t.specularPower===n||(t.specularPower=n,t.roughness=r,e.modified())},e.addShaderVariable=ss(&quot;AddShaderVariable&quot;),e.setInterpolationToFlat=()=&gt;e.setInterpolation(is.FLAT),e.setInterpolationToGouraud=()=&gt;e.setInterpolation(is.GOURAUD),e.setInterpolationToPhong=()=&gt;e.setInterpolation(is.PHONG),e.getInterpolationAsString=()=&gt;sn.enumToString(is,t.interpolation),e.setRepresentationToWireframe=()=&gt;e.setRepresentation(as.WIREFRAME),e.setRepresentationToSurface=()=&gt;e.setRepresentation(as.SURFACE),e.setRepresentationToPoints=()=&gt;e.setRepresentation(as.POINTS),e.getRepresentationAsString=()=&gt;sn.enumToString(as,t.representation)}(e,t)}var us={newInstance:sn.newInstance(cs,&quot;vtkProperty&quot;),extend:cs,...os};const ds={mapper:null,backfaceProperty:null,forceOpaque:!1,forceTranslucent:!1};function ps(e,t,n={}){Object.assign(t,ds,n),ts.extend(e,t,n),t.boundsMTime={},sn.obj(t.boundsMTime),sn.setGet(e,t,[&quot;backfaceProperty&quot;,&quot;forceOpaque&quot;,&quot;forceTranslucent&quot;,&quot;mapper&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkActor&quot;);const n={...e};e.getActors=()=&gt;[e],e.getIsOpaque=()=&gt;{if(t.forceOpaque)return!0;if(t.forceTranslucent)return!1;t.properties[0]||e.getProperty();let n=t.properties[0].getOpacity()&gt;=1;return n=n&amp;&amp;(!t.texture||!t.texture.isTranslucent()),n=n&amp;&amp;(!t.mapper||t.mapper.getIsOpaque()),n},e.hasTranslucentPolygonalGeometry=()=&gt;null!==t.mapper&amp;&amp;(t.properties[0]||e.getProperty(),!e.getIsOpaque()),e.makeProperty=us.newInstance,e.getMTime=()=&gt;{let e=n.getMTime();if(null!==t.backfaceProperty){const n=t.backfaceProperty.getMTime();e=n&gt;e?n:e}return e},e.getRedrawMTime=()=&gt;{let e=t.mtime;if(null!==t.mapper){let n=t.mapper.getMTime();e=n&gt;e?n:e,null!==t.mapper.getInput()&amp;&amp;(t.mapper.getInputAlgorithm().update(),n=t.mapper.getInput().getMTime(),e=n&gt;e?n:e)}return e},e.getSupportsSelection=()=&gt;!!t.mapper&amp;&amp;t.mapper.getSupportsSelection(),e.processSelectorPixelBuffers=(e,n)=&gt;{t.mapper&amp;&amp;t.mapper.processSelectorPixelBuffers&amp;&amp;t.mapper.processSelectorPixelBuffers(e,n)}}(e,t)}var fs={newInstance:sn.newInstance(ps,&quot;vtkActor&quot;),extend:ps};const gs={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},ms={VOID:&quot;&quot;,CHAR:&quot;Int8Array&quot;,SIGNED_CHAR:&quot;Int8Array&quot;,UNSIGNED_CHAR:&quot;Uint8Array&quot;,UNSIGNED_CHAR_CLAMPED:&quot;Uint8ClampedArray&quot;,SHORT:&quot;Int16Array&quot;,UNSIGNED_SHORT:&quot;Uint16Array&quot;,INT:&quot;Int32Array&quot;,UNSIGNED_INT:&quot;Uint32Array&quot;,FLOAT:&quot;Float32Array&quot;,DOUBLE:&quot;Float64Array&quot;};var hs={DefaultDataType:ms.FLOAT,DataTypeByteSize:gs,VtkDataTypes:ms};const{vtkErrorMacro:vs}=ln,{DefaultDataType:Ts}=hs;function xs(e,t,n){const r=e.length;let o,a,i=Number.MAX_VALUE,s=-Number.MAX_VALUE;for(a=t;a&lt;r;a+=n)if(!Number.isNaN(e[a])){i=e[a],s=i;break}for(;a&lt;r;a+=n)o=e[a],o&lt;i?i=o:o&gt;s&amp;&amp;(s=o);return{min:i,max:s}}function ys(e,t=0,n=1){if(t&lt;0&amp;&amp;n&gt;1){const t=e.length/n,r=new Float64Array(t);for(let o=0,a=0;o&lt;t;++o){for(let t=a+n;a&lt;t;++a)r[o]+=e[a]*e[a];r[o]**=.5}return xs(r,0,1)}return xs(e,t&lt;0?0:t,n)}function bs(e,t=0){const n=e||[];for(;n.length&lt;=t;)n.push(null);return n}function As(e){return Object.prototype.toString.call(e).slice(8,-1)}const Cs={computeRange:ys,createRangeHelper:function(){let e=Number.MAX_VALUE,t=-Number.MAX_VALUE,n=0,r=0;return{add(o){e&gt;o&amp;&amp;(e=o),t&lt;o&amp;&amp;(t=o),n++,r+=o},get:()=&gt;({min:e,max:t,count:n,sum:r,mean:r/n}),getRange:()=&gt;({min:e,max:t})}},fastComputeRange:xs,getDataType:As,getMaxNorm:function(e){const t=e.getNumberOfComponents();let n=0;const r=new Array(t);for(let o=0;o&lt;e.getNumberOfTuples();++o){e.getTuple(o,r);const a=Ho(r,t);a&gt;n&amp;&amp;(n=a)}return n}};const Ss={name:&quot;&quot;,numberOfComponents:1,dataType:Ts,rangeTuple:[0,0]};function Ps(e,t,n={}){if(Object.assign(t,Ss,n),Array.isArray(n.values)&amp;&amp;void 0===n.dataType&amp;&amp;console.warn(&quot;vtkDataArray.newInstance: no dataType provided, converting to Float32Array&quot;),!t.empty&amp;&amp;!t.values&amp;&amp;!t.size)throw new TypeError(&quot;Cannot create vtkDataArray object without: size &gt; 0, values&quot;);if(t.values?Array.isArray(t.values)&amp;&amp;(t.values=St(t.dataType,t.values)):t.values=Ct(t.dataType,t.size),t.values&amp;&amp;(t.size=t.size??t.values.length,t.dataType=As(t.values)),Vt(e,t),kt(e,t,[&quot;name&quot;,&quot;numberOfComponents&quot;]),t.size%t.numberOfComponents!=0)throw new RangeError(&quot;model.size is not a multiple of model.numberOfComponents&quot;);!function(e,t){function n(n){if(n&lt;0)return!1;const r=e.getNumberOfComponents(),o=t.values.length/(r&gt;0?r:1);if(n===o)return!0;if(n&gt;o){const e=t.values;return t.values=Ct(t.dataType,(n+o)*r),t.values.set(e),!0}return t.size&gt;n*r&amp;&amp;(t.size=n*r,e.dataChange()),!0}t.classHierarchy.push(&quot;vtkDataArray&quot;),e.dataChange=()=&gt;{t.ranges=null,e.modified()},e.allocate=t=&gt;{n(e.getNumberOfTuples()+t)},e.resize=r=&gt;{n(r);const o=r*e.getNumberOfComponents();return t.size!==o&amp;&amp;(t.size=o,e.dataChange(),!0)},e.initialize=()=&gt;(e.resize(0),e),e.getElementComponentSize=()=&gt;t.values.BYTES_PER_ELEMENT,e.getComponent=(e,n=0)=&gt;t.values[e*t.numberOfComponents+n],e.setComponent=(n,r,o)=&gt;{o!==t.values[n*t.numberOfComponents+r]&amp;&amp;(t.values[n*t.numberOfComponents+r]=o,e.dataChange())},e.getValue=n=&gt;{const r=n/t.numberOfComponents,o=n%t.numberOfComponents;return e.getComponent(r,o)},e.setValue=(n,r)=&gt;{const o=n/t.numberOfComponents,a=n%t.numberOfComponents;e.setComponent(o,a,r)},e.getData=()=&gt;t.size===t.values.length?t.values:t.values.subarray(0,t.size),e.getRange=(n=-1)=&gt;{let r=n;r&lt;0&amp;&amp;(r=1===t.numberOfComponents?0:t.numberOfComponents);let o=null;return t.ranges||(t.ranges=bs(t.ranges,t.numberOfComponents)),o=t.ranges[r],o?(t.rangeTuple[0]=o.min,t.rangeTuple[1]=o.max,t.rangeTuple):(o=ys(e.getData(),n,t.numberOfComponents),t.ranges[r]=o,t.rangeTuple[0]=o.min,t.rangeTuple[1]=o.max,t.rangeTuple)},e.setRange=(e,n)=&gt;{t.ranges||(t.ranges=bs(t.ranges,t.numberOfComponents));const r={min:e.min,max:e.max};return t.ranges[n]=r,t.rangeTuple[0]=r.min,t.rangeTuple[1]=r.max,t.rangeTuple},e.getRanges=(n=!0)=&gt;{if(!n)return structuredClone(t.ranges);const r=[];for(let n=0;n&lt;t.numberOfComponents;n++){const[t,o]=e.getRange(n),a={min:t,max:o};r.push(a)}if(t.numberOfComponents&gt;1){const[t,n]=e.getRange(-1),o={min:t,max:n};r.push(o)}return r},e.setTuple=(e,n)=&gt;{const r=e*t.numberOfComponents;for(let e=0;e&lt;t.numberOfComponents;e++)t.values[r+e]=n[e]},e.setTuples=(e,n)=&gt;{let r=e*t.numberOfComponents;const o=Math.min(n.length,t.size-r);for(let e=0;e&lt;o;)t.values[r++]=n[e++]},e.insertTuple=(r,o)=&gt;(t.size&lt;=r*t.numberOfComponents&amp;&amp;(t.size=(r+1)*t.numberOfComponents,n(r+1)),e.setTuple(r,o),r),e.insertTuples=(r,o)=&gt;{const a=r+o.length/t.numberOfComponents;return t.size&lt;a*t.numberOfComponents&amp;&amp;(t.size=a*t.numberOfComponents,n(a)),e.setTuples(r,o),a},e.insertNextTuple=n=&gt;{const r=t.size/t.numberOfComponents;return e.insertTuple(r,n)},e.insertNextTuples=n=&gt;{const r=t.size/t.numberOfComponents;return e.insertTuples(r,n)},e.findTuple=(e,n=1e-6)=&gt;{for(let r=0;r&lt;t.size;r+=t.numberOfComponents)if(Math.abs(e[0]-t.values[r])&lt;=n){let o=!0;for(let a=1;a&lt;t.numberOfComponents;++a)if(Math.abs(e[a]-t.values[r+a])&gt;n){o=!1;break}if(o)return r/t.numberOfComponents}return-1},e.getTuple=(e,n=[])=&gt;{const r=t.numberOfComponents||1,o=e*r;switch(r){case 4:n[3]=t.values[o+3];case 3:n[2]=t.values[o+2];case 2:n[1]=t.values[o+1];case 1:n[0]=t.values[o];break;default:for(let e=r-1;e&gt;=0;--e)n[e]=t.values[o+e]}return n},e.getTuples=(n,r)=&gt;{const o=(n??0)*t.numberOfComponents,a=(r??e.getNumberOfTuples())*t.numberOfComponents,i=e.getData().subarray(o,a);return i.length&gt;0?i:null},e.getTupleLocation=(e=1)=&gt;e*t.numberOfComponents,e.getNumberOfComponents=()=&gt;t.numberOfComponents,e.getNumberOfValues=()=&gt;t.size,e.getNumberOfTuples=()=&gt;t.size/t.numberOfComponents,e.getDataType=()=&gt;t.dataType,e.newClone=()=&gt;ws({empty:!0,name:t.name,dataType:t.dataType,numberOfComponents:t.numberOfComponents}),e.getName=()=&gt;(t.name||(e.modified(),t.name=`vtkDataArray${e.getMTime()}`),t.name),e.setData=(n,r)=&gt;{t.values=n,t.size=n.length,t.dataType=As(n),r&amp;&amp;(t.numberOfComponents=r),t.size%t.numberOfComponents!=0&amp;&amp;(t.numberOfComponents=1),e.dataChange()},e.getState=({preserveTypedArrays:n=!1}={})=&gt;{if(t.deleted)return null;const r={...t,vtkClass:e.getClassName()};n||(r.values=Array.from(r.values)),delete r.buffer,Object.keys(r).forEach((e=&gt;{r[e]||delete r[e]}));const o={};return Object.keys(r).sort().forEach((e=&gt;{o[e]=r[e]})),o.mtime&amp;&amp;delete o.mtime,o},e.deepCopy=n=&gt;{const r=e.getDataType(),o=t.values;e.shallowCopy(n),t.ranges=structuredClone(n.getRanges()),o?.length&gt;=n.getNumberOfValues()&amp;&amp;r===n.getDataType()?(o.set(n.getData()),t.values=o,e.dataChange()):e.setData(n.getData().slice())},e.interpolateTuple=(n,r,o,a,i,s)=&gt;{const l=t.numberOfComponents||1;l===r.getNumberOfComponents()&amp;&amp;l===a.getNumberOfComponents()||vs(&quot;numberOfComponents must match&quot;);const c=r.getTuple(o),u=a.getTuple(i),d=[];switch(d.length=l,l){case 4:d[3]=c[3]+(u[3]-c[3])*s;case 3:d[2]=c[2]+(u[2]-c[2])*s;case 2:d[1]=c[1]+(u[1]-c[1])*s;case 1:d[0]=c[0]+(u[0]-c[0])*s;break;default:for(let e=0;e&lt;l;e++)d[e]=c[e]+(u[e]-c[e])*s}return e.insertTuple(n,d)}}(e,t)}const ws=Xt(Ps,&quot;vtkDataArray&quot;);var Is={newInstance:ws,extend:Ps,...Cs,...hs};const{vtkErrorMacro:Os}=sn,Rs=new Float64Array(16),Ms=new Float64Array(4);function Ds(e,t){const n=e.getNormalByReference(),r=e.getOriginByReference();return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=-(n[0]*r[0]+n[1]*r[1]+n[2]*r[2]),t}const Es={clippingPlanes:[]};var Vs={extend:function(e,t,n={}){Object.assign(t,Es,n),sn.obj(e,t),sn.algo(e,t,1,0),t.clippingPlanes||(t.clippingPlanes=[]),function(e,t){t.classHierarchy.push(&quot;vtkAbstractMapper&quot;),e.update=()=&gt;{e.getInputData()},e.addClippingPlane=n=&gt;!!n.isA(&quot;vtkPlane&quot;)&amp;&amp;!t.clippingPlanes.includes(n)&amp;&amp;(t.clippingPlanes.push(n),e.modified(),!0),e.getNumberOfClippingPlanes=()=&gt;t.clippingPlanes.length,e.removeAllClippingPlanes=()=&gt;0!==t.clippingPlanes.length&amp;&amp;(t.clippingPlanes.length=0,e.modified(),!0),e.removeClippingPlane=n=&gt;{const r=t.clippingPlanes.indexOf(n);return-1!==r&amp;&amp;(t.clippingPlanes.splice(r,1),e.modified(),!0)},e.getClippingPlanes=()=&gt;t.clippingPlanes,e.getClippingPlanesMTime=()=&gt;{let e=0;for(let n=0;n&lt;t.clippingPlanes.length;n++)e=Math.max(e,t.clippingPlanes[n].getMTime());return e},e.setClippingPlanes=t=&gt;{if(t)if(Array.isArray(t)){const n=t.length;for(let r=0;r&lt;n&amp;&amp;r&lt;6;r++)e.addClippingPlane(t[r])}else e.addClippingPlane(t)},e.getClippingPlaneInCoords=(e,n,r)=&gt;{if(n&lt;0||n&gt;=t.clippingPlanes?.length)return void Os(`Clipping plane index ${n} is out of range.`);const o=r||new Float64Array(4);return Ds(t.clippingPlanes[n],Ms),b(Rs,e),y(Rs,Rs),de(o,Ms,Rs),o},e.getClippingPlaneInDataCoords=(e,n,r)=&gt;{const o=t.clippingPlanes;if(o){const t=o.length;if(n&gt;=0&amp;&amp;n&lt;t)return Ds(o[n],Ms),void de(r,Ms,e)}Os(`Clipping plane index ${n} is out of range.`)}}(e,t)}};var Ls={extend:function(e,t,n={}){Object.assign(t,(e=&gt;({bounds:[...Hi.INIT_BOUNDS],center:[0,0,0],viewSpecificProperties:{},...e}))(n)),Vs.extend(e,t,n),sn.setGet(e,t,[&quot;viewSpecificProperties&quot;]),sn.getArray(e,t,[&quot;bounds&quot;],6),function(e,t){e.computeBounds=()=&gt;{sn.vtkErrorMacro(&quot;vtkAbstractMapper3D.computeBounds - NOT IMPLEMENTED&quot;)};const n=e.getBounds;e.getBounds=()=&gt;(e.computeBounds(),n());const r=e.getBoundsByReference;e.getBoundsByReference=()=&gt;(e.computeBounds(),r()),e.getCenter=()=&gt;{const n=e.getBoundsByReference();return t.center=Hi.isValid(n)?Hi.getCenter(n):null,t.center?.slice()},e.getLength=()=&gt;{const t=e.getBoundsByReference();return Hi.getDiagonalLength(t)}}(e,t)}};const{vtkErrorMacro:Bs,vtkWarningMacro:Fs}=sn;const Ns={arrays:[],copyFieldFlags:[],doCopyAllOn:!0,doCopyAllOff:!1};function ks(e,t,n={}){Object.assign(t,Ns,n),sn.obj(e,t),function(e,t){t.classHierarchy.push(&quot;vtkFieldData&quot;);const n=e.getState;t.arrays&amp;&amp;(t.arrays=t.arrays.map((e=&gt;({data:it(e.data)})))),e.initialize=()=&gt;{e.initializeFields(),e.copyAllOn(),e.clearFieldFlags()},e.initializeFields=()=&gt;{t.arrays=[],t.copyFieldFlags={},e.modified()},e.copyStructure=n=&gt;{e.initializeFields(),t.copyFieldFlags=n.getCopyFieldFlags().map((e=&gt;e)),t.arrays=n.getArrays().map((e=&gt;({data:e})))},e.getNumberOfArrays=()=&gt;t.arrays.length,e.getNumberOfActiveArrays=()=&gt;t.arrays.length,e.addArray=n=&gt;{const r=n.getName(),{array:o,index:a}=e.getArrayWithIndex(r);return null!=o?(t.arrays[a]={data:n},a):(t.arrays=[].concat(t.arrays,{data:n}),t.arrays.length-1)},e.removeAllArrays=()=&gt;{t.arrays=[]},e.removeArray=n=&gt;{const r=t.arrays.findIndex((e=&gt;e.data.getName()===n));return e.removeArrayByIndex(r)},e.removeArrayByIndex=e=&gt;-1!==e&amp;&amp;e&lt;t.arrays.length&amp;&amp;(t.arrays.splice(e,1),!0),e.getArrays=()=&gt;t.arrays.map((e=&gt;e.data)),e.getArray=t=&gt;&quot;number&quot;==typeof t?e.getArrayByIndex(t):e.getArrayByName(t),e.getArrayByName=e=&gt;t.arrays.reduce(((t,n,r)=&gt;n.data.getName()===e?n.data:t),null),e.getArrayWithIndex=e=&gt;{const n=t.arrays.findIndex((t=&gt;t.data.getName()===e));return{array:-1!==n?t.arrays[n].data:null,index:n}},e.getArrayByIndex=e=&gt;e&gt;=0&amp;&amp;e&lt;t.arrays.length?t.arrays[e].data:null,e.hasArray=t=&gt;e.getArrayWithIndex(t).index&gt;=0,e.getArrayName=e=&gt;{const n=t.arrays[e];return n?n.data.getName():&quot;&quot;},e.getCopyFieldFlags=()=&gt;t.copyFieldFlags,e.getFlag=e=&gt;t.copyFieldFlags[e],e.passData=(n,r=-1,o=-1)=&gt;{n.getArrays().forEach((a=&gt;{const i=e.getFlag(a.getName());if(!1!==i&amp;&amp;(!t.doCopyAllOff||!0===i)&amp;&amp;a){let t=e.getArrayByName(a.getName());if(t)if(a.getNumberOfComponents()===t.getNumberOfComponents())if(r&gt;-1&amp;&amp;r&lt;a.getNumberOfTuples()){const e=o&gt;-1?o:r;t.insertTuple(e,a.getTuple(r))}else t.insertTuples(0,a.getTuples());else Bs(&quot;Unhandled case in passData&quot;);else if(r&lt;0||r&gt;a.getNumberOfTuples())e.addArray(a),n.getAttributes(a).forEach((t=&gt;{e.setAttribute(a,t)}));else{const i=a.getNumberOfComponents();let s=a.getNumberOfValues();const l=o&gt;-1?o:r;s&lt;=l*i&amp;&amp;(s=(l+1)*i),t=Is.newInstance({name:a.getName(),dataType:a.getDataType(),numberOfComponents:i,values:sn.newTypedArray(a.getDataType(),s),size:0}),t.insertTuple(l,a.getTuple(r)),e.addArray(t),n.getAttributes(a).forEach((n=&gt;{e.setAttribute(t,n)}))}}}))},e.interpolateData=(n,r=-1,o=-1,a=-1,i=.5)=&gt;{n.getArrays().forEach((s=&gt;{const l=e.getFlag(s.getName());if(!1!==l&amp;&amp;(!t.doCopyAllOff||!0===l)&amp;&amp;s){let t=e.getArrayByName(s.getName());if(t)if(s.getNumberOfComponents()===t.getNumberOfComponents())if(r&gt;-1&amp;&amp;r&lt;s.getNumberOfTuples()){const e=a&gt;-1?a:r;t.interpolateTuple(e,s,r,s,o,i),Fs(&quot;Unexpected case in interpolateData&quot;)}else t.insertTuples(s.getTuples());else Bs(&quot;Unhandled case in interpolateData&quot;);else if(r&lt;0||o&lt;0||r&gt;s.getNumberOfTuples())e.addArray(s),n.getAttributes(s).forEach((t=&gt;{e.setAttribute(s,t)}));else{const l=s.getNumberOfComponents();let c=s.getNumberOfValues();const u=a&gt;-1?a:r;c&lt;=u*l&amp;&amp;(c=(u+1)*l),t=Is.newInstance({name:s.getName(),dataType:s.getDataType(),numberOfComponents:l,values:sn.newTypedArray(s.getDataType(),c),size:0}),t.interpolateTuple(u,s,r,s,o,i),e.addArray(t),n.getAttributes(s).forEach((n=&gt;{e.setAttribute(t,n)}))}}}))},e.copyFieldOn=e=&gt;{t.copyFieldFlags[e]=!0},e.copyFieldOff=e=&gt;{t.copyFieldFlags[e]=!1},e.copyAllOn=()=&gt;{t.doCopyAllOn&amp;&amp;!t.doCopyAllOff||(t.doCopyAllOn=!0,t.doCopyAllOff=!1,e.modified())},e.copyAllOff=()=&gt;{!t.doCopyAllOn&amp;&amp;t.doCopyAllOff||(t.doCopyAllOn=!1,t.doCopyAllOff=!0,e.modified())},e.clearFieldFlags=()=&gt;{t.copyFieldFlags={}},e.deepCopy=e=&gt;{t.arrays=e.getArrays().map((e=&gt;{const t=e.newClone();return t.deepCopy(e),{data:t}}))},e.copyFlags=e=&gt;e.getCopyFieldFlags().map((e=&gt;e)),e.reset=()=&gt;t.arrays.forEach((e=&gt;e.data.reset())),e.getMTime=()=&gt;t.arrays.reduce(((e,t)=&gt;t.data.getMTime()&gt;e?t.data.getMTime():e),t.mtime),e.getNumberOfComponents=()=&gt;t.arrays.reduce(((e,t)=&gt;e+t.data.getNumberOfComponents()),0),e.getNumberOfTuples=()=&gt;t.arrays.length&gt;0?t.arrays[0].getNumberOfTuples():0,e.getState=e=&gt;{const r=n(e);return r&amp;&amp;(r.arrays=t.arrays.map((t=&gt;({data:t.data.getState(e)})))),r}}(e,t)}var Gs={newInstance:sn.newInstance(ks,&quot;vtkFieldData&quot;),extend:ks};const Us={DEFAULT:0,SINGLE:1,DOUBLE:2};var _s={AttributeCopyOperations:{COPYTUPLE:0,INTERPOLATE:1,PASSDATA:2,ALLCOPY:3},AttributeLimitTypes:{MAX:0,EXACT:1,NOLIMIT:2},AttributeTypes:{SCALARS:0,VECTORS:1,NORMALS:2,TCOORDS:3,TENSORS:4,GLOBALIDS:5,PEDIGREEIDS:6,EDGEFLAG:7,NUM_ATTRIBUTES:8},CellGhostTypes:{DUPLICATECELL:1,HIGHCONNECTIVITYCELL:2,LOWCONNECTIVITYCELL:4,REFINEDCELL:8,EXTERIORCELL:16,HIDDENCELL:32},DesiredOutputPrecision:Us,PointGhostTypes:{DUPLICATEPOINT:1,HIDDENPOINT:2},ghostArrayName:&quot;vtkGhostType&quot;};const{AttributeTypes:Ks,AttributeCopyOperations:zs}=_s,{vtkWarningMacro:Ws}=sn;const Hs={activeScalars:-1,activeVectors:-1,activeTensors:-1,activeNormals:-1,activeTCoords:-1,activeGlobalIds:-1,activePedigreeIds:-1};function js(e,t,n={}){Object.assign(t,Hs,n),Gs.extend(e,t,n),sn.setGet(e,t,[&quot;activeScalars&quot;,&quot;activeNormals&quot;,&quot;activeTCoords&quot;,&quot;activeVectors&quot;,&quot;activeTensors&quot;,&quot;activeGlobalIds&quot;,&quot;activePedigreeIds&quot;]),t.arrays||(t.arrays={}),function(e,t){const n=[&quot;Scalars&quot;,&quot;Vectors&quot;,&quot;Normals&quot;,&quot;TCoords&quot;,&quot;Tensors&quot;,&quot;GlobalIds&quot;,&quot;PedigreeIds&quot;];function r(e){let t=n.find((t=&gt;Ks[t.toUpperCase()]===e||&quot;number&quot;!=typeof e&amp;&amp;t.toLowerCase()===e.toLowerCase()));return void 0===t&amp;&amp;(t=null),t}t.classHierarchy.push(&quot;vtkDataSetAttributes&quot;);const o={...e};e.checkNumberOfComponents=e=&gt;!0,e.setAttribute=(n,o)=&gt;{const a=r(o);if(n&amp;&amp;&quot;PEDIGREEIDS&quot;===a.toUpperCase()&amp;&amp;!n.isA(&quot;vtkDataArray&quot;))return Ws(`Cannot set attribute ${a}. The attribute must be a vtkDataArray.`),-1;if(n&amp;&amp;!e.checkNumberOfComponents(n,a))return Ws(`Cannot set attribute ${a}. Incorrect number of components.`),-1;if(n){const r=e.addArray(n);t[`active${a}`]=r}else t[`active${a}`]=-1;return e.modified(),t[`active${a}`]},e.getAttributes=t=&gt;n.filter((n=&gt;e[`get${n}`]()===t)),e.setActiveAttributeByName=(t,n)=&gt;e.setActiveAttributeByIndex(e.getArrayWithIndex(t).index,n),e.setActiveAttributeByIndex=(n,o)=&gt;{const a=r(o);if(n&gt;=0&amp;&amp;n&lt;t.arrays.length){if(&quot;PEDIGREEIDS&quot;!==a.toUpperCase()){const t=e.getArrayByIndex(n);if(!t.isA(&quot;vtkDataArray&quot;))return Ws(`Cannot set attribute ${a}. Only vtkDataArray subclasses can be set as active attributes.`),-1;if(!e.checkNumberOfComponents(t,a))return Ws(`Cannot set attribute ${a}. Incorrect number of components.`),-1}return t[`active${a}`]=n,e.modified(),n}return-1===n&amp;&amp;(t[`active${a}`]=n,e.modified()),-1},e.getActiveAttribute=t=&gt;{const n=r(t);return e[`get${n}`]()},e.removeAllArrays=()=&gt;{n.forEach((e=&gt;{t[`active${e}`]=-1})),o.removeAllArrays()},e.removeArrayByIndex=e=&gt;(-1!==e&amp;&amp;n.forEach((n=&gt;{e===t[`active${n}`]?t[`active${n}`]=-1:e&lt;t[`active${n}`]&amp;&amp;(t[`active${n}`]-=1)})),o.removeArrayByIndex(e)),n.forEach((n=&gt;{const r=`active${n}`;e[`get${n}`]=()=&gt;e.getArrayByIndex(t[r]),e[`set${n}`]=t=&gt;e.setAttribute(t,n),e[`setActive${n}`]=t=&gt;e.setActiveAttributeByIndex(e.getArrayWithIndex(t).index,n),e[`copy${n}Off`]=()=&gt;{const e=n.toUpperCase();t.copyAttributeFlags[zs.PASSDATA][Ks[e]]=!1},e[`copy${n}On`]=()=&gt;{const e=n.toUpperCase();t.copyAttributeFlags[zs.PASSDATA][Ks[e]]=!0}})),e.initializeAttributeCopyFlags=()=&gt;{t.copyAttributeFlags=[],Object.keys(zs).filter((e=&gt;&quot;ALLCOPY&quot;!==e)).forEach((e=&gt;{t.copyAttributeFlags[zs[e]]=Object.keys(Ks).filter((e=&gt;&quot;NUM_ATTRIBUTES&quot;!==e)).reduce(((e,t)=&gt;(e[Ks[t]]=!0,e)),[])})),t.copyAttributeFlags[zs.COPYTUPLE][Ks.GLOBALIDS]=!1,t.copyAttributeFlags[zs.INTERPOLATE][Ks.GLOBALIDS]=!1,t.copyAttributeFlags[zs.COPYTUPLE][Ks.PEDIGREEIDS]=!1},e.initialize=sn.chain(e.initialize,e.initializeAttributeCopyFlags),t.dataArrays&amp;&amp;Object.keys(t.dataArrays).length&amp;&amp;Object.keys(t.dataArrays).forEach((n=&gt;{t.dataArrays[n].ref||&quot;vtkDataArray&quot;!==t.dataArrays[n].type||e.addArray(Is.newInstance(t.dataArrays[n]))}));const a=e.shallowCopy;e.shallowCopy=(e,n)=&gt;{a(e,n),t.arrays=e.getArrays().map((e=&gt;{const t=e.newClone();return t.shallowCopy(e,n),{data:t}}))},e.initializeAttributeCopyFlags()}(e,t)}var Xs={newInstance:sn.newInstance(js,&quot;vtkDataSetAttributes&quot;),extend:js,..._s};var qs={FieldDataTypes:{UNIFORM:0,DATA_OBJECT_FIELD:0,COORDINATE:1,POINT_DATA:1,POINT:2,POINT_FIELD_DATA:2,CELL:3,CELL_FIELD_DATA:3,VERTEX:4,VERTEX_FIELD_DATA:4,EDGE:5,EDGE_FIELD_DATA:5,ROW:6,ROW_DATA:6},FieldAssociations:{FIELD_ASSOCIATION_POINTS:0,FIELD_ASSOCIATION_CELLS:1,FIELD_ASSOCIATION_NONE:2,FIELD_ASSOCIATION_POINTS_THEN_CELLS:3,FIELD_ASSOCIATION_VERTICES:4,FIELD_ASSOCIATION_EDGES:5,FIELD_ASSOCIATION_ROWS:6,NUMBER_OF_ASSOCIATIONS:7}};const Ys=[&quot;pointData&quot;,&quot;cellData&quot;,&quot;fieldData&quot;];const Js={};function Zs(e,t,n={}){Object.assign(t,Js,n),sn.obj(e,t),sn.setGet(e,t,Ys),sn.getArray(e,t,[&quot;bounds&quot;],6),function(e,t){t.classHierarchy.push(&quot;vtkDataSet&quot;),Ys.forEach((e=&gt;{t[e]?t[e]=it(t[e]):t[e]=Xs.newInstance()})),e.computeBounds=()=&gt;{if(t.modifiedTime&amp;&amp;t.computeTime&amp;&amp;t.modifiedTime&gt;t.computeTime||!t.computeTime){const n=e.getPoints();n?.getNumberOfPoints()?Hi.setBounds(t.bounds,n.getBoundsByReference()):t.bounds=za.createUninitializedBounds(),t.computeTime=sn.getCurrentGlobalMTime()}},e.getLength2=()=&gt;{const t=e.getBoundsByReference();return t&amp;&amp;6===t.length?Hi.getDiagonalLength2(t):0},e.getLength=()=&gt;Math.sqrt(e.getLength2()),e.getCenter=()=&gt;{const t=e.getBoundsByReference();return t&amp;&amp;6===t.length?Hi.getCenter(t):[0,0,0]},e.getCellBounds=t=&gt;{const n=e.getCell(t);return n?n.getBounds():za.createUninitializedBounds()},e.getBounds=sn.chain((()=&gt;e.computeBounds),e.getBounds),e.getBoundsByReference=sn.chain((()=&gt;e.computeBounds),e.getBoundsByReference);const n=e.shallowCopy;e.shallowCopy=(e,r=!1)=&gt;{n(e,r),Ys.forEach((n=&gt;{t[n]=Xs.newInstance(),t[n].shallowCopy(e.getReferenceByName(n))}))};const r=e.getMTime;e.getMTime=()=&gt;Ys.reduce(((e,n)=&gt;Math.max(e,t[n]?.getMTime()??e)),r()),e.initialize=()=&gt;(Ys.forEach((e=&gt;t[e]?.initialize())),e)}(e,t)}var Qs={newInstance:sn.newInstance(Zs,&quot;vtkDataSet&quot;),extend:Zs,...qs};const $s={UNCHANGED:0,SINGLE_POINT:1,X_LINE:2,Y_LINE:3,Z_LINE:4,XY_PLANE:5,YZ_PLANE:6,XZ_PLANE:7,XYZ_GRID:8,EMPTY:9};var el={StructuredType:$s};const{StructuredType:tl}=el;var nl={getDataDescriptionFromExtent:function(e){let t=0;for(let n=0;n&lt;3;++n)e[2*n]&lt;e[2*n+1]&amp;&amp;t++;return e[0]&gt;e[1]||e[2]&gt;e[3]||e[4]&gt;e[5]?tl.EMPTY:3===t?tl.XYZ_GRID:2===t?e[0]===e[1]?tl.YZ_PLANE:e[2]===e[3]?tl.XZ_PLANE:tl.XY_PLANE:1===t?e[0]&lt;e[1]?tl.X_LINE:e[2]&lt;e[3]?tl.Y_LINE:tl.Z_LINE:tl.SINGLE_POINT},...el};const{vtkErrorMacro:rl}=sn;const ol={direction:null,indexToWorld:null,worldToIndex:null,spacing:[1,1,1],origin:[0,0,0],extent:[0,-1,0,-1,0,-1],dataDescription:$s.EMPTY};function al(e,t,n={}){Object.assign(t,ol,n),Qs.extend(e,t,n),t.direction?Array.isArray(t.direction)&amp;&amp;(t.direction=new Float64Array(t.direction.slice(0,9))):t.direction=c(new Float64Array(9)),t.indexToWorld=new Float64Array(16),t.worldToIndex=new Float64Array(16),sn.get(e,t,[&quot;indexToWorld&quot;,&quot;worldToIndex&quot;]),sn.setGetArray(e,t,[&quot;origin&quot;,&quot;spacing&quot;],3),sn.setGetArray(e,t,[&quot;direction&quot;],9),sn.getArray(e,t,[&quot;extent&quot;],6),function(e,t){t.classHierarchy.push(&quot;vtkImageData&quot;),e.setExtent=(...n)=&gt;{if(t.deleted)return rl(&quot;instance deleted - cannot call any method&quot;),!1;const r=1===n.length?n[0]:n;if(6!==r.length)return!1;const o=t.extent.some(((e,t)=&gt;e!==r[t]));return o&amp;&amp;(t.extent=r.slice(),t.dataDescription=nl.getDataDescriptionFromExtent(t.extent),e.modified()),o},e.setDimensions=(...n)=&gt;{let r,o,a;if(t.deleted)rl(&quot;instance deleted - cannot call any method&quot;);else{if(1===n.length){const e=n[0];r=e[0],o=e[1],a=e[2]}else{if(3!==n.length)return void rl(&quot;Bad dimension specification&quot;);r=n[0],o=n[1],a=n[2]}e.setExtent(0,r-1,0,o-1,0,a-1)}},e.getDimensions=()=&gt;[t.extent[1]-t.extent[0]+1,t.extent[3]-t.extent[2]+1,t.extent[5]-t.extent[4]+1],e.getNumberOfCells=()=&gt;{const t=e.getDimensions();let n=1;for(let e=0;e&lt;3;e++){if(0===t[e])return 0;t[e]&gt;1&amp;&amp;(n*=t[e]-1)}return n},e.getNumberOfPoints=()=&gt;{const t=e.getDimensions();return t[0]*t[1]*t[2]},e.getPoint=n=&gt;{const r=e.getDimensions();if(0===r[0]||0===r[1]||0===r[2])return rl(&quot;Requesting a point from an empty image.&quot;),null;const o=new Float64Array(3);switch(t.dataDescription){case $s.EMPTY:return null;case $s.SINGLE_POINT:break;case $s.X_LINE:o[0]=n;break;case $s.Y_LINE:o[1]=n;break;case $s.Z_LINE:o[2]=n;break;case $s.XY_PLANE:o[0]=n%r[0],o[1]=n/r[0];break;case $s.YZ_PLANE:o[1]=n%r[1],o[2]=n/r[1];break;case $s.XZ_PLANE:o[0]=n%r[0],o[2]=n/r[0];break;case $s.XYZ_GRID:o[0]=n%r[0],o[1]=n/r[0]%r[1],o[2]=n/(r[0]*r[1]);break;default:rl(&quot;Invalid dataDescription&quot;)}const a=[0,0,0];return e.indexToWorld(o,a),a},e.getBounds=()=&gt;e.extentToBounds(e.getSpatialExtent()),e.extentToBounds=e=&gt;Hi.transformBounds(e,t.indexToWorld),e.getSpatialExtent=()=&gt;Hi.inflate([...t.extent],.5),e.computeTransforms=()=&gt;{R(t.indexToWorld,t.origin),t.indexToWorld[0]=t.direction[0],t.indexToWorld[1]=t.direction[1],t.indexToWorld[2]=t.direction[2],t.indexToWorld[4]=t.direction[3],t.indexToWorld[5]=t.direction[4],t.indexToWorld[6]=t.direction[5],t.indexToWorld[8]=t.direction[6],t.indexToWorld[9]=t.direction[7],t.indexToWorld[10]=t.direction[8],S(t.indexToWorld,t.indexToWorld,t.spacing),b(t.worldToIndex,t.indexToWorld)},e.indexToWorld=(e,n=[])=&gt;(oe(n,e,t.indexToWorld),n),e.indexToWorldVec3=e.indexToWorld,e.worldToIndex=(e,n=[])=&gt;(oe(n,e,t.worldToIndex),n),e.worldToIndexVec3=e.worldToIndex,e.indexToWorldBounds=(e,n=[])=&gt;Hi.transformBounds(e,t.indexToWorld,n),e.worldToIndexBounds=(e,n=[])=&gt;Hi.transformBounds(e,t.worldToIndex,n),t._onOriginChanged=e.computeTransforms,t._onDirectionChanged=e.computeTransforms,t._onSpacingChanged=e.computeTransforms,e.computeTransforms(),e.getCenter=()=&gt;Hi.getCenter(e.getBounds()),e.computeHistogram=(t,n=null)=&gt;{const r=[0,0,0,0,0,0];e.worldToIndexBounds(t,r);const o=[0,0,0],a=[0,0,0];Hi.computeCornerPoints(r,o,a),ca(o,o),ca(a,a);const i=e.getDimensions();Ma(o,[0,0,0],[i[0]-1,i[1]-1,i[2]-1],o),Ma(a,[0,0,0],[i[0]-1,i[1]-1,i[2]-1],a);const s=i[0],l=i[0]*i[1],c=e.getPointData().getScalars().getData();let u=-1/0,d=1/0,p=0,f=0,g=0;for(let e=o[2];e&lt;=a[2];e++)for(let t=o[1];t&lt;=a[1];t++){let i=o[0]+t*s+e*l;for(let s=o[0];s&lt;=a[0];s++){if(!n||n([s,t,e],r)){const e=c[i];e&gt;u&amp;&amp;(u=e),e&lt;d&amp;&amp;(d=e),p+=e*e,f+=e,g+=1}++i}}const m=g&gt;0?f/g:0,h=g?Math.abs(p/g-m*m):0;return{minimum:d,maximum:u,average:m,variance:h,sigma:Math.sqrt(h),count:g}},e.computeIncrements=(e,t=1)=&gt;{const n=[];let r=t;for(let t=0;t&lt;3;++t)n[t]=r,r*=e[2*t+1]-e[2*t]+1;return n},e.computeOffsetIndex=([t,n,r])=&gt;{const o=e.getExtent(),a=e.getPointData().getScalars().getNumberOfComponents(),i=e.computeIncrements(o,a);return Math.floor((Math.round(t)-o[0])*i[0]+(Math.round(n)-o[2])*i[1]+(Math.round(r)-o[4])*i[2])},e.getOffsetIndexFromWorld=t=&gt;{const n=e.getExtent(),r=e.worldToIndex(t);for(let e=0;e&lt;3;++e)if(r[e]&lt;n[2*e]||r[e]&gt;n[2*e+1])return rl(`GetScalarPointer: Pixel ${r} is not in memory. Current extent = ${n}`),NaN;return e.computeOffsetIndex(r)},e.getScalarValueFromWorld=(t,n=0)=&gt;{const r=e.getPointData().getScalars().getNumberOfComponents();if(n&lt;0||n&gt;=r)return rl(`GetScalarPointer: Scalar Component ${n} is not within bounds. Current Scalar numberOfComponents: ${r}`),NaN;const o=e.getOffsetIndexFromWorld(t);return Number.isNaN(o)?o:e.getPointData().getScalars().getComponent(o,n)};const n=e.initialize;e.initialize=()=&gt;(e.set({direction:c(t.direction),spacing:[1,1,1],origin:[0,0,0],extent:[0,-1,0,-1,0,-1],dataDescription:$s.EMPTY}),n())}(e,t)}var il={newInstance:sn.newInstance(al,&quot;vtkImageData&quot;),extend:al};const sl={LUMINANCE:1,LUMINANCE_ALPHA:2,RGB:3,RGBA:4};var ll={VectorMode:{MAGNITUDE:0,COMPONENT:1,RGBCOLORS:2},ScalarMappingTarget:sl,Scale:{LINEAR:0,LOG10:1}};var cl={ColorMode:{DEFAULT:0,MAP_SCALARS:1,DIRECT_SCALARS:2},GetArray:{BY_ID:0,BY_NAME:1},ScalarMode:{DEFAULT:0,USE_POINT_DATA:1,USE_CELL_DATA:2,USE_POINT_FIELD_DATA:3,USE_CELL_FIELD_DATA:4,USE_FIELD_DATA:5}};const{ScalarMappingTarget:ul,Scale:dl,VectorMode:pl}=ll,{VtkDataTypes:fl}=Is,{ColorMode:gl}=cl,{vtkErrorMacro:ml}=sn;function hl(e){return e}function vl(e){return Math.floor(255*e+.5)}const Tl={alpha:1,vectorComponent:0,vectorSize:-1,vectorMode:pl.COMPONENT,mappingRange:null,annotationArray:null,annotatedValueMap:null,indexedLookup:!1,scale:dl.LINEAR};function xl(e,t,n={}){Object.assign(t,Tl,n),sn.obj(e,t),t.mappingRange=[0,255],t.annotationArray=[],t.annotatedValueMap=[],sn.setGet(e,t,[&quot;vectorSize&quot;,&quot;vectorComponent&quot;,&quot;vectorMode&quot;,&quot;alpha&quot;,&quot;indexedLookup&quot;]),sn.setArray(e,t,[&quot;mappingRange&quot;],2),sn.getArray(e,t,[&quot;mappingRange&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkScalarsToColors&quot;),e.setVectorModeToMagnitude=()=&gt;e.setVectorMode(pl.MAGNITUDE),e.setVectorModeToComponent=()=&gt;e.setVectorMode(pl.COMPONENT),e.setVectorModeToRGBColors=()=&gt;e.setVectorMode(pl.RGBCOLORS),e.build=()=&gt;{},e.isOpaque=()=&gt;!0,e.setAnnotations=(n,r)=&gt;{if(!(n&amp;&amp;!r||!n&amp;&amp;r))if(n&amp;&amp;r&amp;&amp;n.length!==r.length)ml(&quot;Values and annotations do not have the same number of tuples so ignoring&quot;);else{if(t.annotationArray=[],r&amp;&amp;n){const e=r.length;for(let o=0;o&lt;e;o++)t.annotationArray.push({value:n[o],annotation:String(r[o])})}e.updateAnnotatedValueMap(),e.modified()}},e.setAnnotation=(n,r)=&gt;{let o=e.checkForAnnotatedValue(n),a=!1;return o&gt;=0?t.annotationArray[o].annotation!==r&amp;&amp;(t.annotationArray[o].annotation=r,a=!0):(t.annotationArray.push({value:n,annotation:r}),o=t.annotationArray.length-1,a=!0),a&amp;&amp;(e.updateAnnotatedValueMap(),e.modified()),o},e.getNumberOfAnnotatedValues=()=&gt;t.annotationArray.length,e.getAnnotatedValue=e=&gt;e&lt;0||e&gt;=t.annotationArray.length?null:t.annotationArray[e].value,e.getAnnotation=e=&gt;void 0===t.annotationArray[e]?null:t.annotationArray[e].annotation,e.getAnnotatedValueIndex=n=&gt;t.annotationArray.length?e.checkForAnnotatedValue(n):-1,e.removeAnnotation=n=&gt;{const r=e.checkForAnnotatedValue(n),o=r&gt;=0;return o&amp;&amp;(t.annotationArray.splice(r,1),e.updateAnnotatedValueMap(),e.modified()),o},e.resetAnnotations=()=&gt;{t.annotationArray=[],t.annotatedValueMap=[],e.modified()},e.getAnnotationColor=(n,r)=&gt;{if(t.indexedLookup){const t=e.getAnnotatedValueIndex(n);e.getIndexedColor(t,r)}else e.getColor(parseFloat(n),r),r[3]=1},e.checkForAnnotatedValue=t=&gt;e.getAnnotatedValueIndexInternal(t),e.getAnnotatedValueIndexInternal=e=&gt;{if(void 0!==t.annotatedValueMap[e]){const n=t.annotationArray.length;return t.annotatedValueMap[e]%n}return-1},e.getIndexedColor=(e,t)=&gt;{t[0]=0,t[1]=0,t[2]=0,t[3]=0},e.updateAnnotatedValueMap=()=&gt;{t.annotatedValueMap=[];const e=t.annotationArray.length;for(let n=0;n&lt;e;n++)t.annotatedValueMap[t.annotationArray[n].value]=n},e.mapScalars=(t,n,r)=&gt;{const o=t.getNumberOfComponents();let a=null;if(n===gl.DEFAULT&amp;&amp;(t.getDataType()===fl.UNSIGNED_CHAR||t.getDataType()===fl.UNSIGNED_CHAR_CLAMPED)||n===gl.DIRECT_SCALARS&amp;&amp;t)a=e.convertToRGBA(t,o,t.getNumberOfTuples());else{const n={type:&quot;vtkDataArray&quot;,name:&quot;temp&quot;,numberOfComponents:4,dataType:fl.UNSIGNED_CHAR},i=sn.newTypedArray(n.dataType,4*t.getNumberOfTuples());n.values=i,n.size=i.length,a=Is.newInstance(n);let s=r;s&lt;0&amp;&amp;o&gt;1?e.mapVectorsThroughTable(t,a,ul.RGBA,-1,-1):(s&lt;0&amp;&amp;(s=0),s&gt;=o&amp;&amp;(s=o-1),e.mapScalarsThroughTable(t,a,ul.RGBA,s))}return a},e.mapVectorsToMagnitude=(e,t,n)=&gt;{const r=e.getNumberOfTuples(),o=e.getNumberOfComponents(),a=t.getData(),i=e.getData();for(let e=0;e&lt;r;e++){let t=0;for(let r=0;r&lt;n;r++)t+=i[e*o+r]*i[e*o+r];a[e]=Math.sqrt(t)}},e.mapVectorsThroughTable=(t,n,r,o,a)=&gt;{let i=e.getVectorMode(),s=a,l=o;const c=t.getNumberOfComponents();i===pl.COMPONENT?(-1===l&amp;&amp;(l=e.getVectorComponent()),l&lt;0&amp;&amp;(l=0),l&gt;=c&amp;&amp;(l=c-1)):(-1===s&amp;&amp;(s=e.getVectorSize()),s&lt;=0?(l=0,s=c):(l&lt;0&amp;&amp;(l=0),l&gt;=c&amp;&amp;(l=c-1),l+s&gt;c&amp;&amp;(s=c-l)),i!==pl.MAGNITUDE||1!==c&amp;&amp;1!==s||(i=pl.COMPONENT));let u=0;switch(l&gt;0&amp;&amp;(u=l),i){case pl.COMPONENT:e.mapScalarsThroughTable(t,n,r,u);break;case pl.RGBCOLORS:break;case pl.MAGNITUDE:default:{const o=Is.newInstance({numberOfComponents:1,values:new Float32Array(t.getNumberOfTuples())});e.mapVectorsToMagnitude(t,o,s),e.mapScalarsThroughTable(o,n,r,0);break}}},e.luminanceToRGBA=(e,t,n,r)=&gt;{const o=r(n),a=t.getData(),i=e.getData(),s=a.length;let l=0;for(let e=0;e&lt;s;e+=1){const t=r(a[e]);i[4*l]=t,i[4*l+1]=t,i[4*l+2]=t,i[4*l+3]=o,l++}},e.luminanceAlphaToRGBA=(e,t,n,r)=&gt;{const o=t.getData(),a=e.getData(),i=o.length;let s=0;for(let e=0;e&lt;i;e+=2){const t=r(o[e]);a[s]=t,a[s+1]=t,a[s+2]=t,a[s+3]=r(o[e+1])*n,s+=4}},e.rGBToRGBA=(e,t,n,r)=&gt;{const o=vl(n),a=t.getData(),i=e.getData(),s=a.length;let l=0;for(let e=0;e&lt;s;e+=3)i[4*l]=r(a[e]),i[4*l+1]=r(a[e+1]),i[4*l+2]=r(a[e+2]),i[4*l+3]=o,l++},e.rGBAToRGBA=(e,t,n,r)=&gt;{const o=t.getData(),a=e.getData(),i=o.length;let s=0;for(let e=0;e&lt;i;e+=4)a[4*s]=r(o[e]),a[4*s+1]=r(o[e+1]),a[4*s+2]=r(o[e+2]),a[4*s+3]=r(o[e+3])*n,s++},e.convertToRGBA=(n,r,o)=&gt;{let{alpha:a}=t;if(4===r&amp;&amp;a&gt;=1&amp;&amp;n.getDataType()===fl.UNSIGNED_CHAR)return n;const i=Is.newInstance({numberOfComponents:4,empty:!0,size:4*o,dataType:fl.UNSIGNED_CHAR});if(o&lt;=0)return i;a=a&gt;0?a:0,a=a&lt;1?a:1;let s=hl;switch(n.getDataType()!==fl.FLOAT&amp;&amp;n.getDataType()!==fl.DOUBLE||(s=vl),r){case 1:e.luminanceToRGBA(i,n,a,s);break;case 2:e.luminanceAlphaToRGBA(i,n,s);break;case 3:e.rGBToRGBA(i,n,a,s);break;case 4:e.rGBAToRGBA(i,n,a,s);break;default:return ml(&quot;Cannot convert colors&quot;),null}return i},e.usingLogScale=()=&gt;!1,e.getNumberOfAvailableColors=()=&gt;16777216,e.setRange=(t,n)=&gt;e.setMappingRange(t,n),e.getRange=()=&gt;e.getMappingRange(),e.areScalarsOpaque=(n,r,o)=&gt;{if(!n)return e.isOpaque();const a=n.getNumberOfComponents();return(r!==gl.DEFAULT||n.getDataType()!==fl.UNSIGNED_CHAR)&amp;&amp;r!==gl.DIRECT_SCALARS||(3===a||1===a?t.alpha&gt;=1:255===n.getRange(a-1)[0])}}(e,t)}var yl={newInstance:sn.newInstance(xl,&quot;vtkScalarsToColors&quot;),extend:xl,...ll};const{vtkErrorMacro:bl}=sn;const Al={numberOfColors:256,hueRange:[0,.66667],saturationRange:[1,1],valueRange:[1,1],alphaRange:[1,1],nanColor:[.5,0,0,1],belowRangeColor:[0,0,0,1],aboveRangeColor:[1,1,1,1],useAboveRangeColor:!1,useBelowRangeColor:!1,alpha:1};function Cl(e,t,n={}){Object.assign(t,Al,n),yl.extend(e,t,n),t.table||(t.table=[]),t.buildTime={},sn.obj(t.buildTime),t.opaqueFlagBuildTime={},sn.obj(t.opaqueFlagBuildTime,{mtime:0}),t.insertTime={},sn.obj(t.insertTime,{mtime:0}),sn.get(e,t,[&quot;buildTime&quot;]),sn.setGet(e,t,[&quot;numberOfColors&quot;,&quot;useAboveRangeColor&quot;,&quot;useBelowRangeColor&quot;]),sn.setArray(e,t,[&quot;alphaRange&quot;,&quot;hueRange&quot;,&quot;saturationRange&quot;,&quot;valueRange&quot;],2),sn.setArray(e,t,[&quot;nanColor&quot;,&quot;belowRangeColor&quot;,&quot;aboveRangeColor&quot;],4),sn.getArray(e,t,[&quot;hueRange&quot;,&quot;saturationRange&quot;,&quot;valueRange&quot;,&quot;alphaRange&quot;,&quot;nanColor&quot;,&quot;belowRangeColor&quot;,&quot;aboveRangeColor&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkLookupTable&quot;),e.isOpaque=()=&gt;{if(t.opaqueFlagBuildTime.getMTime()&lt;e.getMTime()){let e=!0;t.nanColor[3]&lt;1&amp;&amp;(e=0),t.useBelowRangeColor&amp;&amp;t.belowRangeColor[3]&lt;1&amp;&amp;(e=0),t.useAboveRangeColor&amp;&amp;t.aboveRangeColor[3]&lt;1&amp;&amp;(e=0);for(let n=3;n&lt;t.table.length&amp;&amp;e;n+=4)t.table[n]&lt;255&amp;&amp;(e=!1);t.opaqueFlag=e,t.opaqueFlagBuildTime.modified()}return t.opaqueFlag},e.usingLogScale=()=&gt;!1,e.getNumberOfAvailableColors=()=&gt;t.table.length/4-3,e.linearIndexLookup=(e,t)=&gt;{let n=0;const r=Number(e);return r&lt;t.range[0]?n=t.maxIndex+0+1.5:r&gt;t.range[1]?n=t.maxIndex+1+1.5:(n=(r+t.shift)*t.scale,n=n&lt;t.maxIndex?n:t.maxIndex),Math.floor(n)},e.linearLookup=(t,n,r)=&gt;{let o=0;o=ka(t)?Math.floor(r.maxIndex+1.5+2):e.linearIndexLookup(t,r);const a=4*o;return n.slice(a,a+4)},e.indexedLookupFunction=(n,r,o)=&gt;{let a=e.getAnnotatedValueIndexInternal(n);-1===a&amp;&amp;(a=t.numberOfColors+2);const i=4*a;return[r[i],r[i+1],r[i+2],r[i+3]]},e.lookupShiftAndScale=(e,t)=&gt;{t.shift=-e[0],t.scale=Number.MAX_VALUE,e[1]&gt;e[0]&amp;&amp;(t.scale=(t.maxIndex+1)/(e[1]-e[0]))},e.mapScalarsThroughTable=(n,r,o,a)=&gt;{let i=e.linearLookup;t.indexedLookup&amp;&amp;(i=e.indexedLookupFunction);const s=e.getMappingRange(),l={maxIndex:e.getNumberOfColors()-1,range:s,shift:0,scale:0};e.lookupShiftAndScale(s,l);const c=e.getAlpha(),u=n.getNumberOfTuples(),d=n.getNumberOfComponents(),p=r.getData(),f=n.getData();if(c&gt;=1){if(o===sl.RGBA)for(let e=0;e&lt;u;e++){const n=i(f[e*d+a],t.table,l);p[4*e]=n[0],p[4*e+1]=n[1],p[4*e+2]=n[2],p[4*e+3]=n[3]}}else if(o===sl.RGBA)for(let e=0;e&lt;u;e++){const n=i(f[e*d+a],t.table,l);p[4*e]=n[0],p[4*e+1]=n[1],p[4*e+2]=n[2],p[4*e+3]=Math.floor(n[3]*c+.5)}},e.forceBuild=()=&gt;{let n=0,r=0,o=0,a=0;const i=t.numberOfColors-1;i&amp;&amp;(n=(t.hueRange[1]-t.hueRange[0])/i,r=(t.saturationRange[1]-t.saturationRange[0])/i,o=(t.valueRange[1]-t.valueRange[0])/i,a=(t.alphaRange[1]-t.alphaRange[0])/i),t.table.length=4*i+16;const s=[],l=[];for(let e=0;e&lt;=i;e++)s[0]=t.hueRange[0]+e*n,s[1]=t.saturationRange[0]+e*r,s[2]=t.valueRange[0]+e*o,ya(s,l),l[3]=t.alphaRange[0]+e*a,t.table[4*e]=255*l[0]+.5,t.table[4*e+1]=255*l[1]+.5,t.table[4*e+2]=255*l[2]+.5,t.table[4*e+3]=255*l[3]+.5;e.buildSpecialColors(),t.buildTime.modified()},e.setTable=n=&gt;{if(Array.isArray(n)){const r=n[0].length;t.numberOfColors=n.length;const o=4-r;let a=0;for(let e=0;e&lt;t.numberOfColors;e++)t.table[4*e]=255,t.table[4*e+1]=255,t.table[4*e+2]=255,t.table[4*e+3]=255;for(let e=0;e&lt;n.length;e++){const i=n[e];for(let e=0;e&lt;r;e++)t.table[a++]=i[e];a+=o}return e.buildSpecialColors(),t.insertTime.modified(),e.modified(),!0}if(4!==n.getNumberOfComponents())return bl(&quot;Expected 4 components for RGBA colors&quot;),!1;if(n.getDataType()!==ms.UNSIGNED_CHAR)return bl(&quot;Expected unsigned char values for RGBA colors&quot;),!1;t.numberOfColors=n.getNumberOfTuples();const r=n.getData();t.table.length=r.length;for(let e=0;e&lt;r.length;e++)t.table[e]=r[e];return e.buildSpecialColors(),t.insertTime.modified(),e.modified(),!0},e.buildSpecialColors=()=&gt;{const{numberOfColors:e}=t,n=t.table;let r=4*(e+0);t.useBelowRangeColor||0===e?(n[r]=255*t.belowRangeColor[0]+.5,n[r+1]=255*t.belowRangeColor[1]+.5,n[r+2]=255*t.belowRangeColor[2]+.5,n[r+3]=255*t.belowRangeColor[3]+.5):(n[r]=n[0],n[r+1]=n[1],n[r+2]=n[2],n[r+3]=n[3]),r=4*(e+1),t.useAboveRangeColor||0===e?(n[r]=255*t.aboveRangeColor[0]+.5,n[r+1]=255*t.aboveRangeColor[1]+.5,n[r+2]=255*t.aboveRangeColor[2]+.5,n[r+3]=255*t.aboveRangeColor[3]+.5):(n[r]=n[4*(e-1)+0],n[r+1]=n[4*(e-1)+1],n[r+2]=n[4*(e-1)+2],n[r+3]=n[4*(e-1)+3]),r=4*(e+2),n[r]=255*t.nanColor[0]+.5,n[r+1]=255*t.nanColor[1]+.5,n[r+2]=255*t.nanColor[2]+.5,n[r+3]=255*t.nanColor[3]+.5},e.build=()=&gt;{(t.table.length&lt;1||e.getMTime()&gt;t.buildTime.getMTime()&amp;&amp;t.insertTime.getMTime()&lt;=t.buildTime.getMTime())&amp;&amp;e.forceBuild()},t.table.length&gt;0&amp;&amp;(e.buildSpecialColors(),t.insertTime.modified())}(e,t)}var Sl={newInstance:sn.newInstance(Cl,&quot;vtkLookupTable&quot;),extend:Cl};const Pl={Off:0,PolygonOffset:1};let wl=Pl.PolygonOffset,Il=Pl.Off;const Ol=[&quot;VTK_RESOLVE_OFF&quot;,&quot;VTK_RESOLVE_POLYGON_OFFSET&quot;];function Rl(e=0){const t=Il===e;return Il=e,t}var Ml={Resolve:Pl,getResolveCoincidentTopologyAsString:function(){return Ol[Il]},getResolveCoincidentTopologyPolygonOffsetFaces:function(){return wl},getResolveCoincidentTopology:function(){return Il},setResolveCoincidentTopology:Rl,setResolveCoincidentTopologyPolygonOffsetFaces:function(e){const t=wl===e;return wl=e,t},setResolveCoincidentTopologyToDefault:function(){return Rl(Pl.Off)},setResolveCoincidentTopologyToOff:function(){return Rl(Pl.Off)},setResolveCoincidentTopologyToPolygonOffset:function(){return Rl(Pl.PolygonOffset)}};function Dl(e,t,n){n.forEach((n=&gt;{e[`get${n.method}`]=()=&gt;t[n.key],e[`set${n.method}`]=sn.objectSetterMap.object(e,t,{name:n.key,params:[&quot;factor&quot;,&quot;offset&quot;]})}))}const El=[&quot;Polygon&quot;,&quot;Line&quot;,&quot;Point&quot;],Vl={modified:()=&gt;{}};Dl(Vl,{Polygon:{factor:2,offset:0},Line:{factor:1,offset:-1},Point:{factor:0,offset:-2}},El.map((e=&gt;({key:e,method:`ResolveCoincidentTopology${e}OffsetParameters`}))));var Ll={implementCoincidentTopologyMethods:function(e,t){void 0===t.resolveCoincidentTopology&amp;&amp;(t.resolveCoincidentTopology=!1),sn.setGet(e,t,[&quot;resolveCoincidentTopology&quot;]),t.topologyOffset={Polygon:{factor:0,offset:0},Line:{factor:0,offset:0},Point:{factor:0,offset:0}},Object.keys(Ml).forEach((t=&gt;{e[t]=Ml[t]})),Object.keys(Vl).filter((e=&gt;&quot;modified&quot;!==e)).forEach((t=&gt;{e[t]=Vl[t]})),Dl(e,t.topologyOffset,El.map((e=&gt;({key:e,method:`RelativeCoincidentTopology${e}OffsetParameters`})))),e.getCoincidentTopologyPolygonOffsetParameters=()=&gt;{const t=Vl.getResolveCoincidentTopologyPolygonOffsetParameters(),n=e.getRelativeCoincidentTopologyPolygonOffsetParameters();return{factor:t.factor+n.factor,offset:t.offset+n.offset}},e.getCoincidentTopologyLineOffsetParameters=()=&gt;{const t=Vl.getResolveCoincidentTopologyLineOffsetParameters(),n=e.getRelativeCoincidentTopologyLineOffsetParameters();return{factor:t.factor+n.factor,offset:t.offset+n.offset}},e.getCoincidentTopologyPointOffsetParameter=()=&gt;{const t=Vl.getResolveCoincidentTopologyPointOffsetParameters(),n=e.getRelativeCoincidentTopologyPointOffsetParameters();return{factor:t.factor+n.factor,offset:t.offset+n.offset}}},staticOffsetAPI:Vl,otherStaticMethods:Ml,CATEGORIES:El,Resolve:Pl};const Bl={MIN_KNOWN_PASS:0,ACTOR_PASS:0,COMPOSITE_INDEX_PASS:1,ID_LOW24:2,ID_HIGH24:3,MAX_KNOWN_PASS:3};var Fl={PassTypes:Bl};const{FieldAssociations:Nl}=Qs,{staticOffsetAPI:kl,otherStaticMethods:Gl}=Ll,{ColorMode:Ul,ScalarMode:_l,GetArray:Kl}=cl,{VectorMode:zl}=ll,{VtkDataTypes:Wl}=Is;function Hl(e){return()=&gt;sn.vtkErrorMacro(`vtkMapper::${e} - NOT IMPLEMENTED`)}function jl(e,t){const n=e[1]%2==0?1:-1;if(e[0]+=n,e[0]&gt;=t[0]||e[0]&lt;0){const r=e[2]%2==0?1:-1;e[0]-=n,e[1]+=r,(e[1]&gt;=t[1]||e[1]&lt;0)&amp;&amp;(e[1]-=r,e[2]++)}}function Xl(e,t,n){const r=Math.floor(t),o=r%(2*n[0]);let a,i;o&lt;n[0]?(e[0]=o,a=1,i=e[0]===n[0]-1):(e[0]=2*n[0]-1-o,a=-1,i=0===e[0]);const s=Math.floor(r/n[0]),l=s%(2*n[1]);let c,u;l&lt;n[1]?(e[1]=l,c=1,u=e[1]===n[1]-1):(e[1]=2*n[1]-1-l,c=-1,u=0===e[1]),e[2]=Math.floor(s/n[1]);const d=t-r;i?u?e[2]+=d:e[1]+=c*d:e[0]+=a*d,e[0]=(e[0]+.5)/n[0],e[1]=(e[1]+.5)/n[1],e[2]=(e[2]+.5)/n[2]}const ql=new WeakMap;function Yl(e,t){t.classHierarchy.push(&quot;vtkMapper&quot;),e.computeBounds=()=&gt;{const n=e.getInputData();n?(t.static||e.update(),Hi.setBounds(t.bounds,n.getBounds())):Hi.reset(t.bounds)},e.setForceCompileOnly=e=&gt;{t.forceCompileOnly=e},e.setSelectionWebGLIdsToVTKIds=e=&gt;{t.selectionWebGLIdsToVTKIds=e},e.createDefaultLookupTable=()=&gt;{t.lookupTable=Sl.newInstance()},e.getColorModeAsString=()=&gt;sn.enumToString(Ul,t.colorMode),e.setColorModeToDefault=()=&gt;e.setColorMode(0),e.setColorModeToMapScalars=()=&gt;e.setColorMode(1),e.setColorModeToDirectScalars=()=&gt;e.setColorMode(2),e.getScalarModeAsString=()=&gt;sn.enumToString(_l,t.scalarMode),e.setScalarModeToDefault=()=&gt;e.setScalarMode(0),e.setScalarModeToUsePointData=()=&gt;e.setScalarMode(1),e.setScalarModeToUseCellData=()=&gt;e.setScalarMode(2),e.setScalarModeToUsePointFieldData=()=&gt;e.setScalarMode(3),e.setScalarModeToUseCellFieldData=()=&gt;e.setScalarMode(4),e.setScalarModeToUseFieldData=()=&gt;e.setScalarMode(5),e.getAbstractScalars=(e,n,r,o,a)=&gt;{if(!e||!t.scalarVisibility)return{scalars:null,cellFlag:!1};let i=null,s=!1;if(n===_l.DEFAULT)i=e.getPointData().getScalars(),i||(i=e.getCellData().getScalars(),s=!0);else if(n===_l.USE_POINT_DATA)i=e.getPointData().getScalars();else if(n===_l.USE_CELL_DATA)i=e.getCellData().getScalars(),s=!0;else if(n===_l.USE_POINT_FIELD_DATA){const t=e.getPointData();i=r===Kl.BY_ID?t.getArrayByIndex(o):t.getArrayByName(a)}else if(n===_l.USE_CELL_FIELD_DATA){const t=e.getCellData();s=!0,i=r===Kl.BY_ID?t.getArrayByIndex(o):t.getArrayByName(a)}else if(n===_l.USE_FIELD_DATA){const t=e.getFieldData();i=r===Kl.BY_ID?t.getArrayByIndex(o):t.getArrayByName(a)}return{scalars:i,cellFlag:s}},e.mapScalars=(n,r)=&gt;{const{scalars:o,cellFlag:a}=e.getAbstractScalars(n,t.scalarMode,t.arrayAccessMode,t.arrayId,t.colorByArrayName);if(t.areScalarsMappedFromCells=a,!o)return t.colorCoordinates=null,t.colorTextureMap=null,void(t.colorMapColors=null);const i=`${e.getMTime()}${o.getMTime()}${r}`;if(t.colorBuildString!==i){if(t.useLookupTableScalarRange||e.getLookupTable().setRange(t.scalarRange[0],t.scalarRange[1]),e.canUseTextureMapForColoring(o,a))t.mapScalarsToTexture(o,a,r);else{t.colorCoordinates=null,t.colorTextureMap=null;const n=e.getLookupTable();n&amp;&amp;(n.build(),t.colorMapColors=n.mapScalars(o,t.colorMode,t.fieldDataTupleId))}t.colorBuildString=`${e.getMTime()}${o.getMTime()}${r}`}},t.mapScalarsToTexture=(n,r,o)=&gt;{const a=t.lookupTable.getRange(),i=t.lookupTable.usingLogScale(),s=t.lookupTable.getAlpha(),l=i?[Math.log10(a[0]),Math.log10(a[1])]:a;if(t.colorMapColors=null,null==t.colorTextureMap||e.getMTime()&gt;t.colorTextureMap.getMTime()||t.lookupTable.getMTime()&gt;t.colorTextureMap.getMTime()||t.lookupTable.getAlpha()!==o){t.lookupTable.setAlpha(o),t.colorTextureMap=null,t.lookupTable.build();const e=t.lookupTable.getNumberOfAvailableColors(),n=2048,a=2,d=r?n**3-3:4096-2;t.numberOfColorsInRange=Math.min(Math.max(e,a),d);const p=t.numberOfColorsInRange+3,f=t.numberOfColorsInRange+2,g=r?[Math.min(Math.ceil(p/n**0),n),Math.min(Math.ceil(p/n**1),n),Math.min(Math.ceil(p/n**2),n)]:[f,2,1],m=g[0]*g[1]*g[2],h=new Float64Array(m);h.fill(NaN);const v=t.numberOfColorsInRange,T=v+2,x=[0,0,0],y=l[0],b=l[1]-l[0];for(let e=0;e&lt;T;++e){const t=y+b*(e-1)/(v-1),n=i?10**t:t;h[(u=g,(c=x)[0]+u[0]*(c[1]+u[1]*c[2]))]=n,jl(x,g)}const A=Is.newInstance({numberOfComponents:1,values:h}),C=t.lookupTable.mapScalars(A,t.colorMode,0);t.colorTextureMap=il.newInstance(),t.colorTextureMap.setDimensions(g),t.colorTextureMap.getPointData().setScalars(C),t.lookupTable.setAlpha(s)}var c,u;const d=t.lookupTable.getVectorMode()===zl.MAGNITUDE&amp;&amp;n.getNumberOfComponents()&gt;1?-1:t.lookupTable.getVectorComponent();t.colorCoordinates=function(e,t,n,r,o,a,i){const s=new Array(arguments.length);for(let e=0;e&lt;arguments.length;++e){const t=arguments[e];s[e]=t.getMTime?.()??t}const l=s.join(&quot;/&quot;),c=ql.get(e);if(c&amp;&amp;c.stringHash===l)return c.textureCoordinates;const u=(n[1]-n[0])/(o-1),[d,p]=[n[0]-u,n[1]+u],f=d-.5*u,g=1/(p-d+u),m=d,h=(o+1)/(p-d),v=e.getData(),T=e.getNumberOfTuples(),x=e.getNumberOfComponents(),y=t&lt;0||t&gt;=x,b=a[2]&lt;=1?2:3,A=Is.newInstance({numberOfComponents:b,values:new Float32Array(T*b)}),C=A.getData(),S=[0,0,0];Xl(S,o+2,a);let P=0,w=0;const I=[.5,.5,.5];for(let e=0;e&lt;T;++e){let e;if(y){let t=0;for(let e=0;e&lt;x;++e){const n=Number(v[P+e]);t+=n*n}e=Math.sqrt(t)}else e=Number(v[P+t]);if(r&amp;&amp;(e=Math.log10(e)),P+=x,ka(e))I[0]=S[0],I[1]=S[1],I[2]=S[2];else if(i){let t=(e-m)*h;t&lt;1?t=0:t&gt;o&amp;&amp;(t=o+1),Xl(I,t,a)}else{I[1]=.49;const t=(e-f)*g;I[0]=t&gt;1e3?1e3:t&lt;-1e3?-1e3:t}for(let e=0;e&lt;b;++e)C[w++]=I[e]}return ql.set(e,{stringHash:l,textureCoordinates:A}),A}(n,d,l,i,t.numberOfColorsInRange,t.colorTextureMap.getDimensions(),r)},e.getIsOpaque=()=&gt;{const n=e.getInputData(),r=e.getAbstractScalars(n,t.scalarMode,t.arrayAccessMode,t.arrayId,t.colorByArrayName).scalars;if(!t.scalarVisibility||null==r)return!0;const o=e.getLookupTable();return!o||(o.build(),o.areScalarsOpaque(r,t.colorMode,-1))},e.canUseTextureMapForColoring=(e,n)=&gt;!(!n||t.colorMode===Ul.DIRECT_SCALARS)||!!t.interpolateScalarsBeforeMapping&amp;&amp;((!t.lookupTable||!t.lookupTable.getIndexedLookup())&amp;&amp;(!!e&amp;&amp;((t.colorMode!==Ul.DEFAULT||e.getDataType()!==Wl.UNSIGNED_CHAR)&amp;&amp;t.colorMode!==Ul.DIRECT_SCALARS))),e.clearColorArrays=()=&gt;{t.colorMapColors=null,t.colorCoordinates=null,t.colorTextureMap=null},e.getLookupTable=()=&gt;(t.lookupTable||e.createDefaultLookupTable(),t.lookupTable),e.getMTime=()=&gt;{let e=t.mtime;if(null!==t.lookupTable){const n=t.lookupTable.getMTime();e=n&gt;e?n:e}return e},e.getPrimitiveCount=()=&gt;{const t=e.getInputData();return{points:t.getPoints().getNumberOfValues()/3,verts:t.getVerts().getNumberOfValues()-t.getVerts().getNumberOfCells(),lines:t.getLines().getNumberOfValues()-2*t.getLines().getNumberOfCells(),triangles:t.getPolys().getNumberOfValues()-3*t.getPolys().getNumberOfCells()}},e.acquireInvertibleLookupTable=Hl(&quot;AcquireInvertibleLookupTable&quot;),e.valueToColor=Hl(&quot;ValueToColor&quot;),e.colorToValue=Hl(&quot;ColorToValue&quot;),e.useInvertibleColorFor=Hl(&quot;UseInvertibleColorFor&quot;),e.clearInvertibleColor=Hl(&quot;ClearInvertibleColor&quot;),e.processSelectorPixelBuffers=(e,n)=&gt;{if(!e||!t.selectionWebGLIdsToVTKIds||!t.populateSelectionSettings)return;const r=e.getRawPixelBuffer(Bl.ID_LOW24),o=e.getRawPixelBuffer(Bl.ID_HIGH24),a=e.getCurrentPass(),i=e.getFieldAssociation();let s=null;i===Nl.FIELD_ASSOCIATION_POINTS?s=t.selectionWebGLIdsToVTKIds.points:i===Nl.FIELD_ASSOCIATION_CELLS&amp;&amp;(s=t.selectionWebGLIdsToVTKIds.cells),s&amp;&amp;n.forEach((t=&gt;{if(a===Bl.ID_LOW24){let n=0;o&amp;&amp;(n+=o[t],n*=256),n+=r[t+2],n*=256,n+=r[t+1],n*=256,n+=r[t];const a=s[n],i=e.getPixelBuffer(Bl.ID_LOW24);i[t]=255&amp;a,i[t+1]=(65280&amp;a)&gt;&gt;8,i[t+2]=(16711680&amp;a)&gt;&gt;16}else if(a===Bl.ID_HIGH24&amp;&amp;o){let n=0;n+=o[t],n*=256,n+=r[t+2],n*=256,n+=r[t+1],n*=256,n+=r[t];const a=s[n];e.getPixelBuffer(Bl.ID_HIGH24)[t]=(4278190080&amp;a)&gt;&gt;24}}))}}const Jl={colorMapColors:null,areScalarsMappedFromCells:!1,static:!1,lookupTable:null,scalarVisibility:!0,scalarRange:[0,1],useLookupTableScalarRange:!1,colorMode:0,scalarMode:0,arrayAccessMode:1,renderTime:0,colorByArrayName:null,fieldDataTupleId:-1,populateSelectionSettings:!0,selectionWebGLIdsToVTKIds:null,interpolateScalarsBeforeMapping:!1,colorCoordinates:null,colorTextureMap:null,numberOfColorsInRange:0,forceCompileOnly:0,useInvertibleColors:!1,invertibleScalars:null,customShaderAttributes:[]};function Zl(e,t,n={}){Object.assign(t,Jl,n),Ls.extend(e,t,n),sn.get(e,t,[&quot;areScalarsMappedFromCells&quot;,&quot;colorCoordinates&quot;,&quot;colorMapColors&quot;,&quot;colorTextureMap&quot;,&quot;numberOfColorsInRange&quot;,&quot;selectionWebGLIdsToVTKIds&quot;]),sn.setGet(e,t,[&quot;colorByArrayName&quot;,&quot;arrayAccessMode&quot;,&quot;colorMode&quot;,&quot;fieldDataTupleId&quot;,&quot;interpolateScalarsBeforeMapping&quot;,&quot;lookupTable&quot;,&quot;populateSelectionSettings&quot;,&quot;renderTime&quot;,&quot;scalarMode&quot;,&quot;scalarVisibility&quot;,&quot;static&quot;,&quot;useLookupTableScalarRange&quot;,&quot;customShaderAttributes&quot;]),sn.setGetArray(e,t,[&quot;scalarRange&quot;],2),Ll.implementCoincidentTopologyMethods(e,t),Yl(e,t)}var Ql={newInstance:sn.newInstance(Zl,&quot;vtkMapper&quot;),extend:Zl,...kl,...Gl,...cl};const{isVtkObject:$l}=sn;function ec(e){const t=[];for(let n=0;n&lt;e.length;n+=e[n]+1)t.push(e[n]);return t}function tc(e){let t=0;for(let n=0;n&lt;e.length;)n+=e[n]+1,t++;return t}const nc={extractCellSizes:ec,getNumberOfCells:tc};function rc(e,t,n={}){Is.extend(e,t,function(e){return{empty:!0,numberOfComponents:1,dataType:ms.UNSIGNED_INT,...e}}(n)),function(e,t){t.classHierarchy.push(&quot;vtkCellArray&quot;);const n={...e};e.getNumberOfCells=n=&gt;void 0===t.numberOfCells||n?(t.cellSizes?t.numberOfCells=t.cellSizes.length:t.numberOfCells=tc(e.getData()),t.numberOfCells):t.numberOfCells,e.getCellSizes=n=&gt;void 0===t.cellSizes||n?(t.cellSizes=ec(e.getData()),t.cellSizes):t.cellSizes,e.resize=r=&gt;{const o=e.getNumberOfTuples();n.resize(r);const a=e.getNumberOfTuples();a&lt;o&amp;&amp;(0===a?(t.numberOfCells=0,t.cellSizes=[]):(t.numberOfCells=void 0,t.cellSizes=void 0))},e.setData=e=&gt;{n.setData(e,1),t.numberOfCells=void 0,t.cellSizes=void 0},e.getCell=e=&gt;{let n=e;const r=t.values[n++];return t.values.subarray(n,n+r)},e.insertNextCell=n=&gt;{let r;r=$l(n)?n.getPointsIds():n;const o=e.getNumberOfCells();return e.insertNextTuples([r.length,...r]),++t.numberOfCells,null!=t.cellSizes&amp;&amp;t.cellSizes.push(r.length),o},e.getMaxCellSize=()=&gt;e.getCellSizes().reduce(((e,t)=&gt;Math.max(e,t)),0)}(e,t)}var oc={newInstance:sn.newInstance(rc,&quot;vtkCellArray&quot;),extend:rc,...nc};const{vtkErrorMacro:ac}=sn;const ic={empty:!0,numberOfComponents:3,dataType:ms.FLOAT,bounds:[1,-1,1,-1,1,-1]};function sc(e,t,n={}){Object.assign(t,ic,n),Is.extend(e,t,n),sn.getArray(e,t,[&quot;bounds&quot;],6),function(e,t){let n=0;t.classHierarchy.push(&quot;vtkPoints&quot;),e.getNumberOfPoints=e.getNumberOfTuples,e.setNumberOfPoints=(n,r=3)=&gt;{e.getNumberOfPoints()!==n&amp;&amp;(t.size=n*r,t.values=sn.newTypedArray(t.dataType,t.size),e.setNumberOfComponents(r),e.modified())},e.setPoint=(t,...n)=&gt;{e.setTuple(t,n)},e.getPoint=e.getTuple,e.findPoint=e.findTuple,e.insertNextPoint=(t,n,r)=&gt;e.insertNextTuple([t,n,r]),e.insertPoint=(t,n)=&gt;e.insertTuple(t,n);const r=e.getBounds;e.getBounds=()=&gt;(n&lt;t.mtime&amp;&amp;e.computeBounds(),r());const o=e.getBoundsByReference;e.getBoundsByReference=()=&gt;(n&lt;t.mtime&amp;&amp;e.computeBounds(),o()),e.computeBounds=()=&gt;{if(3===e.getNumberOfComponents()){const n=e.getRange(0);t.bounds[0]=n[0],t.bounds[1]=n[1];const r=e.getRange(1);t.bounds[2]=r[0],t.bounds[3]=r[1];const o=e.getRange(2);t.bounds[4]=o[0],t.bounds[5]=o[1]}else if(2===e.getNumberOfComponents()){const n=e.getRange(0);t.bounds[0]=n[0],t.bounds[1]=n[1];const r=e.getRange(1);t.bounds[2]=r[0],t.bounds[3]=r[1],t.bounds[4]=0,t.bounds[5]=0}else ac(`getBounds called on an array with components of ${e.getNumberOfComponents()}`),Ia(t.bounds);n=sn.getCurrentGlobalMTime()},e.setNumberOfComponents(t.numberOfComponents&lt;2?3:t.numberOfComponents)}(e,t)}var lc={newInstance:sn.newInstance(sc,&quot;vtkPoints&quot;),extend:sc};const cc={bounds:[-1,-1,-1,-1,-1,-1],pointsIds:[]};function uc(e,t,n={}){Object.assign(t,cc,n),sn.obj(e,t),t.points||(t.points=lc.newInstance()),sn.get(e,t,[&quot;points&quot;,&quot;pointsIds&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkCell&quot;),e.initialize=(e,n=null)=&gt;{if(n){t.pointsIds=n;let r=t.points.getData();r.length!==3*t.pointsIds.length&amp;&amp;(r=sn.newTypedArray(e.getDataType(),3*t.pointsIds.length));const o=e.getData();t.pointsIds.forEach(((e,t)=&gt;{let n=3*e,a=3*t;r[a]=o[n],r[++a]=o[++n],r[++a]=o[++n]})),t.points.setData(r)}else{t.points=e,t.pointsIds=new Array(e.getNumberOfPoints());for(let n=e.getNumberOfPoints()-1;n&gt;=0;--n)t.pointsIds[n]=n}},e.getBounds=()=&gt;t.points.getBounds(),e.getLength2=()=&gt;{const t=Hi.getLengths(e.getBounds());return t[0]*t[0]+t[1]*t[1]+t[2]*t[2]},e.getParametricDistance=e=&gt;{let t,n=0;for(let r=0;r&lt;3;r++)t=e[r]&lt;0?-e[r]:e[r]&gt;1?e[r]-1:0,t&gt;n&amp;&amp;(n=t);return n},e.getNumberOfPoints=()=&gt;t.points.getNumberOfPoints(),e.deepCopy=e=&gt;{e.initialize(t.points,t.pointsIds)},e.getCellDimension=()=&gt;{},e.intersectWithLine=(e,t,n,r,o,a,i)=&gt;{},e.evaluatePosition=(e,t,n,r,o,a)=&gt;{sn.vtkErrorMacro(&quot;vtkCell.evaluatePosition is not implemented.&quot;)}}(e,t)}var dc={newInstance:sn.newInstance(uc,&quot;vtkCell&quot;),extend:uc};const pc={array:null,maxId:0,extend:0};function fc(e,t,n={}){Object.assign(t,pc,n),sn.obj(e,t),function(e,t){t.classHierarchy.push(&quot;vtkCellLinks&quot;),e.buildLinks=n=&gt;{const r=n.getPoints().getNumberOfPoints(),o=n.getNumberOfCells(),a=new Uint32Array(r);if(n.isA(&quot;vtkPolyData&quot;)){for(let t=0;t&lt;o;++t){const{cellPointIds:r}=n.getCellPoints(t);r.forEach((t=&gt;{e.incrementLinkCount(t)}))}e.allocateLinks(r),t.maxId=r-1;for(let t=0;t&lt;o;++t){const{cellPointIds:r}=n.getCellPoints(t);r.forEach((n=&gt;{e.insertCellReference(n,a[n]++,t)}))}}else{for(let t=0;t&lt;o;t++)dc.newInstance().getPointsIds().forEach((t=&gt;{e.incrementLinkCount(t)}));e.allocateLinks(r),t.maxId=r-1;for(let t=0;t&lt;o;++t)dc.newInstance().getPointsIds().forEach((n=&gt;{e.insertCellReference(n,a[n]++,t)}))}},e.allocate=(e,n=1e3)=&gt;{t.array=Array(e).fill().map((()=&gt;({ncells:0,cells:null}))),t.extend=n,t.maxId=-1},e.initialize=()=&gt;{t.array=null},e.getLink=e=&gt;t.array[e],e.getNcells=e=&gt;t.array[e].ncells,e.getCells=e=&gt;t.array[e].cells,e.insertNextPoint=e=&gt;{t.array.push({ncells:e,cells:Array(e)}),++t.maxId},e.insertNextCellReference=(e,n)=&gt;{t.array[e].cells[t.array[e].ncells++]=n},e.deletePoint=e=&gt;{t.array[e].ncells=0,t.array[e].cells=null},e.removeCellReference=(e,n)=&gt;{t.array[n].cells=t.array[n].cells.filter((t=&gt;t!==e)),t.array[n].ncells=t.array[n].cells.length},e.addCellReference=(e,n)=&gt;{t.array[n].cells[t.array[n].ncells++]=e},e.resizeCellList=(e,n)=&gt;{t.array[e].cells.length=n},e.squeeze=()=&gt;{!function(e,t){let n=t;for(t&gt;=e.array.length&amp;&amp;(n+=e.array.length);n&gt;e.array.length;)e.array.push({ncells:0,cells:null});e.array.length=n}(t,t.maxId+1)},e.reset=()=&gt;{t.maxId=-1},e.deepCopy=e=&gt;{t.array=[...e.array],t.extend=e.extend,t.maxId=e.maxId},e.incrementLinkCount=e=&gt;{++t.array[e].ncells},e.allocateLinks=e=&gt;{for(let n=0;n&lt;e;++n)t.array[n].cells=new Array(t.array[n].ncells)},e.insertCellReference=(e,n,r)=&gt;{t.array[e].cells[n]=r}}(e,t)}var gc={newInstance:sn.newInstance(fc,&quot;vtkCellLinks&quot;),extend:fc};const mc=0,hc=1,vc=2,Tc=3,xc=4,yc=5,bc=6,Ac=7,Cc=9,Sc=21,Pc=41,wc=42,Ic=[&quot;vtkEmptyCell&quot;,&quot;vtkVertex&quot;,&quot;vtkPolyVertex&quot;,&quot;vtkLine&quot;,&quot;vtkPolyLine&quot;,&quot;vtkTriangle&quot;,&quot;vtkTriangleStrip&quot;,&quot;vtkPolygon&quot;,&quot;vtkPixel&quot;,&quot;vtkQuad&quot;,&quot;vtkTetra&quot;,&quot;vtkVoxel&quot;,&quot;vtkHexahedron&quot;,&quot;vtkWedge&quot;,&quot;vtkPyramid&quot;,&quot;vtkPentagonalPrism&quot;,&quot;vtkHexagonalPrism&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;vtkQuadraticEdge&quot;,&quot;vtkQuadraticTriangle&quot;,&quot;vtkQuadraticQuad&quot;,&quot;vtkQuadraticTetra&quot;,&quot;vtkQuadraticHexahedron&quot;,&quot;vtkQuadraticWedge&quot;,&quot;vtkQuadraticPyramid&quot;,&quot;vtkBiQuadraticQuad&quot;,&quot;vtkTriQuadraticHexahedron&quot;,&quot;vtkQuadraticLinearQuad&quot;,&quot;vtkQuadraticLinearWedge&quot;,&quot;vtkBiQuadraticQuadraticWedge&quot;,&quot;vtkBiQuadraticQuadraticHexahedron&quot;,&quot;vtkBiQuadraticTriangle&quot;,&quot;vtkCubicLine&quot;,&quot;vtkQuadraticPolygon&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;vtkConvexPointSet&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;vtkParametricCurve&quot;,&quot;vtkParametricSurface&quot;,&quot;vtkParametricTriSurface&quot;,&quot;vtkParametricQuadSurface&quot;,&quot;vtkParametricTetraRegion&quot;,&quot;vtkParametricHexRegion&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;vtkHigherOrderEdge&quot;,&quot;vtkHigherOrderTriangle&quot;,&quot;vtkHigherOrderQuad&quot;,&quot;vtkHigherOrderPolygon&quot;,&quot;vtkHigherOrderTetrahedron&quot;,&quot;vtkHigherOrderWedge&quot;,&quot;vtkHigherOrderPyramid&quot;,&quot;vtkHigherOrderHexahedron&quot;];const Oc={getClassNameFromTypeId:function(e){return e&lt;Ic.length?Ic[e]:&quot;UnknownClass&quot;},getTypeIdFromClassName:function(e){return Ic.findIndex(e)},isLinear:function(e){return e&lt;Sc||e===Pc||e===wc},hasSubCells:function(e){return e===bc||e===xc||e===vc}};const Rc={size:0,maxId:-1,extend:1e3};function Mc(e,t,n={}){Object.assign(t,Rc,n),sn.obj(e,t),sn.get(e,t,[&quot;size&quot;,&quot;maxId&quot;,&quot;extend&quot;]),sn.getArray(e,t,[&quot;typeArray&quot;,&quot;locationArray&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkCellTypes&quot;),e.allocate=(e=512,n=1e3)=&gt;{t.size=e&gt;0?e:1,t.extend=n&gt;0?n:1,t.maxId=-1,t.typeArray=new Uint8Array(e),t.locationArray=new Uint32Array(e)},e.insertCell=(e,n,r)=&gt;{t.typeArray[e]=n,t.locationArray[e]=r,e&gt;t.maxId&amp;&amp;(t.maxId=e)},e.insertNextCell=(n,r)=&gt;(e.insertCell(++t.maxId,n,r),t.maxId),e.setCellTypes=(e,n,r)=&gt;{t.size=e,t.typeArray=n,t.locationArray=r,t.maxId=e-1},e.getCellLocation=e=&gt;t.locationArray[e],e.deleteCell=e=&gt;{t.typeArray[e]=mc},e.getNumberOfTypes=()=&gt;t.maxId+1,e.isType=t=&gt;{const n=e.getNumberOfTypes();for(let r=0;r&lt;n;++r)if(t===e.getCellType(r))return!0;return!1},e.insertNextType=t=&gt;e.insertNextCell(t,-1),e.getCellType=e=&gt;t.typeArray[e],e.reset=()=&gt;{t.maxId=-1},e.deepCopy=n=&gt;{e.allocate(n.getSize(),n.getExtend()),t.typeArray.set(n.getTypeArray()),t.locationArray.set(n.getLocationArray()),t.maxId=n.getMaxId()}}(e,t)}var Dc={newInstance:sn.newInstance(Mc,&quot;vtkCellTypes&quot;),extend:Mc,...Oc};const Ec={NO_INTERSECTION:0,YES_INTERSECTION:1,ON_LINE:2};var Vc={IntersectionState:Ec};const{IntersectionState:Lc}=Vc;function Bc(e,t,n,r=null){const o={t:Number.MIN_VALUE,distance:0},a=[];let i;a[0]=n[0]-t[0],a[1]=n[1]-t[1],a[2]=n[2]-t[2];const s=a[0]*(e[0]-t[0])+a[1]*(e[1]-t[1])+a[2]*(e[2]-t[2]),l=zo(a,a);let c=1e-5*s;return 0!==l&amp;&amp;(o.t=s/l),c&lt;0&amp;&amp;(c=-c),-c&lt;l&amp;&amp;l&lt;c||l&lt;=0||o.t&lt;0?i=t:o.t&gt;1?i=n:(i=a,a[0]=t[0]+o.t*a[0],a[1]=t[1]+o.t*a[1],a[2]=t[2]+o.t*a[2]),r&amp;&amp;(r[0]=i[0],r[1]=i[1],r[2]=i[2]),o.distance=Yo(i,e),o}function Fc(e,t,n,r,o,a){const i=[],s=[],l=[];o[0]=0,a[0]=0,Go(t,e,i),Go(r,n,s),Go(n,e,l);const c=[zo(i,i),-zo(i,s),-zo(i,s),zo(s,s)],u=[];if(u[0]=zo(i,l),u[1]=-zo(s,l),0===ha(c,u,2)){let i=Number.MAX_VALUE;const s=[e,t,n,r],l=[n,n,e,e],c=[r,r,t,t];let u;a[0],a[0],o[0],o[0],o[0],o[0],a[0],a[0];for(let e=0;e&lt;4;e++)u=Bc(s[e],l[e],c[e]),u.distance&lt;i&amp;&amp;(i=u.distance,u.t);return Lc.ON_LINE}return o[0]=u[0],a[0]=u[1],o[0]&gt;=0&amp;&amp;o[0]&lt;=1&amp;&amp;a[0]&gt;=0&amp;&amp;a[0]&lt;=1?Lc.YES_INTERSECTION:Lc.NO_INTERSECTION}const Nc={distanceToLine:Bc,intersection:Fc};const kc={orientations:null};function Gc(e,t,n={}){Object.assign(t,kc,n),dc.extend(e,t,n),sn.setGet(e,t,[&quot;orientations&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkLine&quot;),e.getCellDimension=()=&gt;1,e.intersectWithLine=(e,n,r,o,a)=&gt;{const i={intersect:0,t:Number.MAX_VALUE,subId:0,betweenPoints:null};a[1]=0,a[2]=0;const s=[],l=[],c=[];t.points.getPoint(0,l),t.points.getPoint(1,c);const u=[],d=[],p=Fc(e,n,l,c,u,d);var f;if(i.t=u[0],i.betweenPoints=(f=i.t)&gt;=0&amp;&amp;f&lt;=1,a[0]=d[0],p===Lc.YES_INTERSECTION){for(let t=0;t&lt;3;t++)o[t]=l[t]+a[0]*(c[t]-l[t]),s[t]=e[t]+i.t*(n[t]-e[t]);if(Yo(o,s)&lt;=r*r)return i.intersect=1,i}else{let t;if(i.t&lt;0)return t=Bc(e,l,c,o),t.distance&lt;=r*r?(i.t=0,i.intersect=1,i.betweenPoints=!0,i):i;if(i.t&gt;1)return t=Bc(n,l,c,o),t.distance&lt;=r*r?(i.t=1,i.intersect=1,i.betweenPoints=!0,i):i;if(a[0]&lt;0)return a[0]=0,t=Bc(l,e,n,o),i.t=t.t,t.distance&lt;=r*r?(i.intersect=1,i):i;if(a[0]&gt;1)return a[0]=1,t=Bc(c,e,n,o),i.t=t.t,t.distance&lt;=r*r?(i.intersect=1,i):i}return i},e.evaluateLocation=(e,n,r)=&gt;{const o=[],a=[];t.points.getPoint(0,o),t.points.getPoint(1,a);for(let t=0;t&lt;3;t++)n[t]=o[t]+e[0]*(a[t]-o[t]);r[0]=1-e[0],r[1]=e[0]},e.evaluateOrientation=(e,n,r)=&gt;!!t.orientations&amp;&amp;(me(n,t.orientations[0],t.orientations[1],e[0]),r[0]=1-e[0],r[1]=e[0],!0)}(e,t)}var Uc={newInstance:sn.newInstance(Gc,&quot;vtkLine&quot;),extend:Gc,...Nc,...Vc};const _c={};function Kc(e,t,n={}){Object.assign(t,_c,n),Qs.extend(e,t,n),sn.setGet(e,t,[&quot;points&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkPointSet&quot;),t.points?t.points=it(t.points):t.points=lc.newInstance(),e.getNumberOfPoints=()=&gt;t.points.getNumberOfPoints(),e.getBounds=()=&gt;t.points?.getBounds(),e.computeBounds=()=&gt;{t.points?.computeBounds()};const n=e.shallowCopy;e.shallowCopy=(e,r=!1)=&gt;{n(e,r),t.points=lc.newInstance(),t.points.shallowCopy(e.getPoints())};const r=e.getMTime;e.getMTime=()=&gt;{const e=r();return Math.max(e,t.points?.getMTime()??e)};const o=e.initialize;e.initialize=()=&gt;(t.points?.initialize(),o())}(e,t)}var zc={newInstance:sn.newInstance(Kc,&quot;vtkPointSet&quot;),extend:Kc};const Wc={orientations:null,distanceFunction:ue};function Hc(e,t,n={}){Object.assign(t,Wc,n),dc.extend(e,t,n),sn.setGet(e,t,[&quot;orientations&quot;,&quot;distanceFunction&quot;]),t.distancesTime={},sn.obj(t.distancesTime,{mtime:0}),function(e,t){t.classHierarchy.push(&quot;vtkPolyLine&quot;);const n=Uc.newInstance();n.getPoints().setNumberOfPoints(2),e.getCellDimension=()=&gt;1,e.intersectWithLine=(r,o,a,i,s,l,c)=&gt;{const u={intersect:0,t:Number.MAX_VALUE,subId:0,betweenPoints:null},d=e.getNumberOfPoints()-1;let p=Number.MAX_VALUE;for(let e=0;e&lt;d;e++){const d=[0,0,0];n.getPoints().getData().set(t.points.getData().subarray(3*e,3*(e+2)));const f=n.intersectWithLine(a,i,s,l,c);if(1===f.intersect&amp;&amp;f.t&lt;=u.t+s&amp;&amp;f.t&gt;=r&amp;&amp;f.t&lt;=o){u.intersect=1;const t=n.getParametricDistance(d);if(t&lt;p||t===p&amp;&amp;f.t&lt;u.t){u.subId=e,u.t=f.t,p=t;for(let e=0;e&lt;3;e++)l[e],d[e]}}}return u},e.evaluateLocation=(e,r,o,a)=&gt;(n.getPoints().getData().set(t.points.getData().subarray(3*e,3*(e+2))),n.evaluateLocation(r,o,a)),e.evaluateOrientation=(e,r,o,a)=&gt;(t.orientations?n.setOrientations([t.orientations[e],t.orientations[e+1]]):n.setOrientations(null),n.evaluateOrientation(r,o,a)),e.getDistancesToFirstPoint=()=&gt;{const n=t.distancesTime.getMTime();if(n&lt;t.points.getMTime()||n&lt;e.getMTime()){const n=e.getNumberOfPoints();if(t.distances?t.distances.length=n:t.distances=new Array(n),n&gt;0){const e=new Array(3),a=new Array(3);let i=0;t.distances[0]=i,t.points.getPoint(0,e);for(let s=1;s&lt;n;++s)t.points.getPoint(s,a),i+=t.distanceFunction(e,a),t.distances[s]=i,o=a,(r=e)[0]=o[0],r[1]=o[1],r[2]=o[2]}t.distancesTime.modified()}var r,o;return t.distances},e.findPointIdAtDistanceFromFirstPoint=t=&gt;{const n=e.getDistancesToFirstPoint();if(n.length&lt;2)return-1;let r=0,o=n.length-1;if(t&lt;n[r]||t&gt;n[o]||0===n[o])return-1;for(;o-r&gt;1;){const e=Math.floor((r+o)/2);n[e]&lt;=t?r=e:o=e}return r}}(e,t)}var jc={newInstance:sn.newInstance(Hc,&quot;vtkPolyLine&quot;),extend:Hc};const Xc={elements:[]};function qc(e,t,n={}){Object.assign(t,Xc,n),sn.obj(e,t),function(e,t){t.classHierarchy.push(&quot;vtkPriorityQueue&quot;),e.push=(e,n)=&gt;{const r=t.elements.findIndex((t=&gt;t.priority&gt;e));t.elements.splice(r,0,{priority:e,element:n})},e.pop=()=&gt;t.elements.length&gt;0?t.elements.shift().element:null,e.deleteById=e=&gt;{t.elements=t.elements.filter((({element:t})=&gt;t.id!==e))},e.length=()=&gt;t.elements.length}(e,t)}var Yc={newInstance:sn.newInstance(qc,&quot;vtkPriorityQueue&quot;),extend:qc};const Jc=1e-6,Zc=1.1920929e-7,Qc={FAILURE:-1,OUTSIDE:0,INSIDE:1,INTERSECTION:2,ON_LINE:3};function $c(e,t,n,r,o){return(r[e]-n[e])*(o[t]-n[t])-(o[e]-n[e])*(r[t]-n[t])}const eu={PolygonWithPointIntersectionState:Qc,pointInPolygon:function(e,t,n,r){if(e[0]&lt;n[0]||e[0]&gt;n[1]||e[1]&lt;n[2]||e[1]&gt;n[3]||e[2]&lt;n[4]||e[2]&gt;n[5])return Qc.OUTSIDE;if(jo(r)&lt;=Zc)return Qc.FAILURE;let o=1e-8*((n[1]-n[0])*(n[1]-n[0])+(n[3]-n[2])*(n[3]-n[2])+(n[5]-n[4])*(n[5]-n[4]));o*=o,o=0===o?Zc:o;const a=[],i=[];for(let n=0;n&lt;t.length;){if(a[0]=t[n++],a[1]=t[n++],a[2]=t[n++],Yo(e,a)&lt;=o)return Qc.INSIDE;const{distance:r,t:s}=Uc.distanceToLine(e,a,i);if(r&lt;=o&amp;&amp;s&gt;0&amp;&amp;s&lt;1)return Qc.INSIDE}let s,l;Math.abs(r[0])&gt;Math.abs(r[1])?Math.abs(r[0])&gt;Math.abs(r[2])?(s=1,l=2):(s=0,l=1):Math.abs(r[1])&gt;Math.abs(r[2])?(s=0,l=2):(s=0,l=1);let c=0;for(let n=0;n&lt;t.length;)a[0]=t[n++],a[1]=t[n++],a[2]=t[n++],n&lt;t.length?(i[0]=t[n],i[1]=t[n+1],i[2]=t[n+2]):(i[0]=t[0],i[1]=t[1],i[2]=t[2]),a[l]&lt;=e[l]?i[l]&gt;e[l]&amp;&amp;$c(s,l,a,i,e)&gt;0&amp;&amp;++c:i[l]&lt;=e[l]&amp;&amp;$c(s,l,a,i,e)&lt;0&amp;&amp;--c;return 0===c?Qc.OUTSIDE:Qc.INSIDE},getBounds:function(e,t,n){const r=e.length,o=[];t.getPoint(e[0],o),n[0]=o[0],n[1]=o[0],n[2]=o[1],n[3]=o[1],n[4]=o[2],n[5]=o[2];for(let a=1;a&lt;r;a++)t.getPoint(e[a],o),Hi.addPoint(n,...o);const a=Hi.getLengths(n);return zo(a,a)},getNormal:function(e,t,n){n.length=3,n[0]=0,n[1]=0,n[2]=0;const r=[];let o=[],a=[];const i=[],s=[];t.getPoint(e[0],r),t.getPoint(e[1],o);for(let l=2;l&lt;e.length;l++){t.getPoint(e[l],a),Go(a,o,i),Go(r,o,s);const c=[0,0,0];Wo(i,s,c),ko(n,c,n),[o,a]=[a,o]}return jo(n)},computeCentroid:function(e,t,n=[0,0,0]){n[0]=0,n[1]=0,n[2]=0;const r=e.length,o=[];for(let a=0;a&lt;r;a++)t.getPoint(e[a],o),n[0]+=o[0],n[1]+=o[1],n[2]+=o[2];return n[0]/=r,n[1]/=r,n[2]/=r,n}};function tu(e,t){function n(e){const n=[0,0,0],r=[0,0,0],o=[0,0,0],a=[0,0,0];Go(e.point,e.previous.point,n),Go(e.next.point,e.point,r),Go(e.previous.point,e.next.point,o),Wo(n,r,a);const i=zo(a,t.normal);if(i&lt;=0)return-1;const s=Ho(n)+Ho(r)+Ho(o);return s*s/i}function r(e){if(t.pointCount&lt;=3)return!0;const n=e.previous,r=e.next,o=[0,0,0];Go(r.point,n.point,o);const a=[0,0,0];if(Wo(o,t.normal,a),jo(a),0===Ho(a))return!1;let i=ai.evaluate(a,n.point,r.next.point),s=i&gt;Jc?1:i&lt;-1e-6?-1:0,l=s&lt;0?1:0;for(let e=r.next.next;e.id!==n.id;e=e.next){const t=e.previous;i=ai.evaluate(a,n.point,e.point);const o=i&gt;Jc?1:i&lt;-1e-6?-1:0;if(o!==s){if(l||(l=o&lt;=0?1:0),Uc.intersection(n.point,r.point,e.point,t.point,[0],[0])===Ec.YES_INTERSECTION)return!1;s=o}}return 1===l}function o(e,r){t.pointCount-=1;const o=e.previous,a=e.next;t.tris=t.tris.concat(e.point),t.tris=t.tris.concat(a.point),t.tris=t.tris.concat(o.point),o.next=a,a.previous=o,r.deleteById(o.id),r.deleteById(a.id);const i=n(o);i&gt;0&amp;&amp;r.push(i,o);const s=n(a);s&gt;0&amp;&amp;r.push(s,a),e.id===t.firstPoint.id&amp;&amp;(t.firstPoint=a)}function a(){!function(){const e=[0,0,0],n=[0,0,0];t.normal=[0,0,0];const r=[...t.firstPoint.point];let o=t.firstPoint;for(let a=0;a&lt;t.pointCount;a++){Go(o.point,r,e),Go(o.next.point,r,n);const a=[0,0,0];Wo(e,n,a),ko(t.normal,a,t.normal),o=o.next}jo(t.normal)}();const e=Yc.newInstance();let a=t.firstPoint;for(let r=0;r&lt;t.pointCount;r++){const t=n(a);t&gt;0&amp;&amp;e.push(t,a),a=a.next}for(;t.pointCount&gt;2&amp;&amp;e.length()&gt;0;)if(t.pointCount===e.length()){o(e.pop(),e)}else{const t=e.pop();r(t)&amp;&amp;o(t,e)}return t.pointCount&lt;=2}t.classHierarchy.push(&quot;vtkPolygon&quot;),e.triangulate=()=&gt;t.firstPoint?a():null,e.setPoints=e=&gt;{t.pointCount=e.length,t.firstPoint={id:0,point:e[0],next:null,previous:null};let n=t.firstPoint;for(let r=1;r&lt;t.pointCount;r++)n.next={id:r,point:e[r],next:null,previous:n},n=n.next;t.firstPoint.previous=n,n.next=t.firstPoint},e.getPointArray=()=&gt;t.tris}const nu={firstPoint:null,pointCount:0,tris:[]};function ru(e,t,n={}){Object.assign(t,nu,n),sn.obj(e,t),tu(e,t)}var ou={newInstance:sn.newInstance(ru,&quot;vtkPolygon&quot;),extend:ru,...eu};function au(e,t,n,r){const o=n[0]-t[0],a=n[1]-t[1],i=n[2]-t[2],s=e[0]-t[0],l=e[1]-t[1],c=e[2]-t[2];r[0]=a*c-i*l,r[1]=i*s-o*c,r[2]=o*l-a*s}function iu(e,t,n,r){au(e,t,n,r);const o=Math.sqrt(r[0]*r[0]+r[1]*r[1]+r[2]*r[2]);0!==o&amp;&amp;(r[0]/=o,r[1]/=o,r[2]/=o)}function su(e){e[0]=-1,e[1]=1,e[2]=0,e[3]=-1,e[4]=0,e[5]=1}const lu=[[0,1],[1,2],[2,0]],cu=[1,2,4],uu=[[-1,-1,-1,-1,-1,-1,-1],[0,2,100,-1,-1,-1,-1],[1,0,101,-1,-1,-1,-1],[1,2,100,1,100,101,-1],[2,1,102,-1,-1,-1,-1],[0,1,102,102,100,0,-1],[0,101,2,2,101,102,-1],[100,101,102,-1,-1,-1,-1]],du={computeNormalDirection:au,computeNormal:iu,interpolationDerivs:su,intersectWithTriangle:function(e,t,n,r,o,a,i=1e-6){let s=!1;const l=[],c=[],u=[],d=[],p=[];iu(e,t,n,d),iu(r,o,a,p);const f=-zo(d,e),g=-zo(p,r),m=[zo(p,e)+g,zo(p,t)+g,zo(p,n)+g];if(m[0]*m[1]&gt;i&amp;&amp;m[0]*m[2]&gt;i)return{intersect:!1,coplanar:s,pt1:l,pt2:c,surfaceId:u};const h=[zo(d,r)+f,zo(d,o)+f,zo(d,a)+f];if(h[0]*h[1]&gt;i&amp;&amp;h[0]*h[2]&gt;i)return{intersect:!1,coplanar:s,pt1:l,pt2:c,surfaceId:u};if(Math.abs(d[0]-p[0])&lt;1e-9&amp;&amp;Math.abs(d[1]-p[1])&lt;1e-9&amp;&amp;Math.abs(d[2]-p[2])&lt;1e-9&amp;&amp;Math.abs(f-g)&lt;1e-9)return s=!0,{intersect:!1,coplanar:s,pt1:l,pt2:c,surfaceId:u};const v=[e,t,n],T=[r,o,a],x=zo(d,p),y=(f-g*x)/(x*x-1),b=(g-f*x)/(x*x-1),A=[y*d[0]+b*p[0],y*d[1]+b*p[1],y*d[2]+b*p[2]],C=Wo(d,p,[]);jo(C);let S=0,P=0;const w=[],I=[];let O,R,M=50,D=50;for(let t=0;t&lt;3;t++){const n=t,o=(t+1)%3,a=ai.intersectWithLine(v[n],v[o],r,p);a.intersection&amp;&amp;a.t&gt;0-i&amp;&amp;a.t&lt;1+i&amp;&amp;(a.t&lt;1+i&amp;&amp;a.t&gt;1-i&amp;&amp;(M=S),w[S++]=zo(a.x,C)-zo(A,C));const s=ai.intersectWithLine(T[n],T[o],e,d);s.intersection&amp;&amp;s.t&gt;0-i&amp;&amp;s.t&lt;1+i&amp;&amp;(s.t&lt;1+i&amp;&amp;s.t&gt;1-i&amp;&amp;(D=P),I[P++]=zo(s.x,C)-zo(A,C))}if(S&gt;2){S--;const e=w[2];w[2]=w[M],w[M]=e}if(P&gt;2){P--;const e=I[2];I[2]=I[D],I[D]=e}if(2!==S||2!==P)return{intersect:!1,coplanar:s,pt1:l,pt2:c,surfaceId:u};if(Number.isNaN(w[0])||Number.isNaN(w[1])||Number.isNaN(I[0])||Number.isNaN(I[1]))return{intersect:!1,coplanar:s,pt1:l,pt2:c,surfaceId:u};if(w[0]&gt;w[1]){const e=w[1];w[1]=w[0],w[0]=e}if(I[0]&gt;I[1]){const e=I[1];I[1]=I[0],I[0]=e}return w[1]&lt;I[0]||I[1]&lt;w[0]?{intersect:!1,coplanar:s,pt1:l,pt2:c,surfaceId:u}:(w[0]&lt;I[0]?w[1]&lt;I[1]?(u[0]=2,u[1]=1,O=I[0],R=w[1]):(u[0]=2,u[1]=2,O=I[0],R=I[1]):w[1]&lt;I[1]?(u[0]=1,u[1]=1,O=w[0],R=w[1]):(u[0]=1,u[1]=2,O=w[0],R=I[1]),Ko(A,C,O,l),Ko(A,C,R,c),{intersect:!0,coplanar:s,pt1:l,pt2:c,surfaceId:u})}};const pu={};function fu(e,t,n={}){Object.assign(t,pu,n),dc.extend(e,t,n),function(e,t){t.classHierarchy.push(&quot;vtkTriangle&quot;),e.getCellDimension=()=&gt;2,e.intersectWithLine=(n,r,o,a,i)=&gt;{const s={subId:0,t:Number.MAX_VALUE,intersect:0,betweenPoints:!1};i[2]=0;const l=[],c=o*o,u=[],d=[],p=[];t.points.getPoint(0,u),t.points.getPoint(1,d),t.points.getPoint(2,p);const f=[],g=[];if(iu(u,d,p,f),0!==f[0]||0!==f[1]||0!==f[2]){const t=ai.intersectWithLine(n,r,u,f);if(s.betweenPoints=t.betweenPoints,s.t=t.t,a[0]=t.x[0],a[1]=t.x[1],a[2]=t.x[2],!t.intersection)return i[0]=0,i[1]=0,s.intersect=0,s;const o=e.evaluatePosition(a,l,i,g);if(o.evaluation&gt;=0)return o.dist2&lt;=c?(s.intersect=1,s):(s.intersect=o.evaluation,s)}const m=Yo(u,d),h=Yo(d,p),v=Yo(p,u);t.line||(t.line=Uc.newInstance()),m&gt;h&amp;&amp;m&gt;v?(t.line.getPoints().setPoint(0,u),t.line.getPoints().setPoint(1,d)):h&gt;v&amp;&amp;h&gt;m?(t.line.getPoints().setPoint(0,d),t.line.getPoints().setPoint(1,p)):(t.line.getPoints().setPoint(0,p),t.line.getPoints().setPoint(1,u));const T=t.line.intersectWithLine(n,r,o,a,i);if(s.betweenPoints=T.betweenPoints,s.t=T.t,T.intersect){const e=[],t=[],n=[];for(let r=0;r&lt;3;r++)e[r]=u[r]-p[r],t[r]=d[r]-p[r],n[r]=a[r]-p[r];return i[0]=zo(n,e)/v,i[1]=zo(n,t)/h,s.intersect=1,s}return i[0]=0,i[1]=0,s.intersect=0,s},e.evaluatePosition=(e,n,r,o)=&gt;{const a={subId:0,dist2:0,evaluation:-1};let i,s;const l=[],c=[],u=[],d=[];let p;const f=[],g=[],m=[];let h=0,v=0;const T=[];let x,y,b,A=[];const C=[],S=[],P=[];a.subId=0,r[2]=0,t.points.getPoint(1,l),t.points.getPoint(2,c),t.points.getPoint(0,u),au(l,c,u,d),ai.generalizedProjectPoint(e,l,d,P);let w=0;for(i=0;i&lt;3;i++)p=d[i]&lt;0?-d[i]:d[i],p&gt;w&amp;&amp;(w=p,v=i);for(s=0,i=0;i&lt;3;i++)i!==v&amp;&amp;(T[s++]=i);for(i=0;i&lt;2;i++)f[i]=P[T[i]]-u[T[i]],g[i]=l[T[i]]-u[T[i]],m[i]=c[T[i]]-u[T[i]];if(h=Qo(g,m),0===h)return r[0]=0,r[1]=0,a.evaluation=-1,a;if(r[0]=Qo(f,m)/h,r[1]=Qo(g,f)/h,o[0]=1-(r[0]+r[1]),o[1]=r[0],o[2]=r[1],o[0]&gt;=0&amp;&amp;o[0]&lt;=1&amp;&amp;o[1]&gt;=0&amp;&amp;o[1]&lt;=1&amp;&amp;o[2]&gt;=0&amp;&amp;o[2]&lt;=1)n&amp;&amp;(a.dist2=Yo(P,e),n[0]=P[0],n[1]=P[1],n[2]=P[2]),a.evaluation=1;else{let t;if(n)if(o[1]&lt;0&amp;&amp;o[2]&lt;0)for(x=Yo(e,u),y=Uc.distanceToLine(e,l,u,t,C),b=Uc.distanceToLine(e,u,c,t,S),x&lt;y?(a.dist2=x,A=u):(a.dist2=y,A=C),b&lt;a.dist2&amp;&amp;(a.dist2=b,A=S),i=0;i&lt;3;i++)n[i]=A[i];else if(o[2]&lt;0&amp;&amp;o[0]&lt;0)for(x=Yo(e,l),y=Uc.distanceToLine(e,l,u,t,C),b=Uc.distanceToLine(e,l,c,t,S),x&lt;y?(a.dist2=x,A=l):(a.dist2=y,A=C),b&lt;a.dist2&amp;&amp;(a.dist2=b,A=S),i=0;i&lt;3;i++)n[i]=A[i];else if(o[1]&lt;0&amp;&amp;o[0]&lt;0)for(x=Yo(e,c),y=Uc.distanceToLine(e,c,u,t,C),b=Uc.distanceToLine(e,l,c,t,S),x&lt;y?(a.dist2=x,A=c):(a.dist2=y,A=C),b&lt;a.dist2&amp;&amp;(a.dist2=b,A=S),i=0;i&lt;3;i++)n[i]=A[i];else if(o[0]&lt;0){const t=Uc.distanceToLine(e,l,c,n);a.dist2=t.distance}else if(o[1]&lt;0){const t=Uc.distanceToLine(e,c,u,n);a.dist2=t.distance}else if(o[2]&lt;0){const t=Uc.distanceToLine(e,l,u,n);a.dist2=t.distance}a.evaluation=0}return a},e.evaluateLocation=(e,n,r)=&gt;{const o=[],a=[],i=[];t.points.getPoint(0,o),t.points.getPoint(1,a),t.points.getPoint(2,i);const s=1-e[0]-e[1];for(let t=0;t&lt;3;t++)n[t]=o[t]*s+a[t]*e[0]+i[t]*e[1];r[0]=s,r[1]=e[0],r[2]=e[1]},e.getParametricDistance=e=&gt;{let t,n=0;const r=[];r[0]=e[0],r[1]=e[1],r[2]=1-e[0]-e[1];for(let e=0;e&lt;3;e++)t=r[e]&lt;0?-r[e]:r[e]&gt;1?r[e]-1:0,t&gt;n&amp;&amp;(n=t);return n},e.derivatives=(e,n,r,o,a)=&gt;{const i=t.points.getPoint(0),s=t.points.getPoint(1),l=t.points.getPoint(2),c=[],u=[],d=[],p=[];iu(i,s,l,c),Go(s,i,u),Go(l,i,p),Wo(c,u,d);const f=jo(u);if(f&lt;=0||jo(d)&lt;=0){for(let e=0;e&lt;o;e++)for(let t=0;t&lt;3;t++)a[e*o+t]=0;return}const g=[0,0],m=[f,0],h=[zo(p,u),zo(p,d)],v=new Array(6);su(v);const T=[m[0]-g[0],m[1]-g[1],h[0]-g[0],h[1]-g[1]],x=sn.newTypedArray(At.Float64Array,4);va(T,x,2);for(let e=0;e&lt;o;e++){let t=0,n=0;for(let a=0;a&lt;3;a++)t+=v[a]*r[o*a+e],n+=v[3+a]*r[o*a+e];const i=t*x[0]+n*x[1],s=t*x[2]+n*x[3];a[3*e]=i*u[0]+s*d[0],a[3*e+1]=i*u[1]+s*d[1],a[3*e+2]=i*u[2]+s*d[2]}},e.cellBoundary=(e,n,r)=&gt;{const o=n[0]-n[1],a=.5*(1-n[0])-n[1],i=2*n[0]+n[1]-1;return o&gt;=0&amp;&amp;a&gt;=0?(r[0]=t.pointsIds[0],r[1]=t.pointsIds[1]):a&lt;0&amp;&amp;i&gt;=0?(r[0]=t.pointsIds[1],r[1]=t.pointsIds[2]):(r[0]=t.pointsIds[2],r[1]=t.pointsIds[0]),!(n[0]&lt;0||n[1]&lt;0||n[0]&gt;1||n[1]&gt;1||1-n[0]-n[1]&lt;0)},e.clip=(e,n,r,o,a,i,s,l,c,u)=&gt;{let d=0;for(let t=0;t&lt;3;t++){const r=n.getComponent(t,0);(u&amp;&amp;r&lt;=e||!u&amp;&amp;r&gt;e)&amp;&amp;(d+=cu[t])}const p=uu[d],f=[0,0,0],g=[0,0,0],m=[0,0,0],h=[0,0,0];for(let u=0;p[u]&gt;-1;u+=3){h[0]=0,h[1]=0,h[2]=0;for(let o=0;o&lt;3;o++){const s=p[u+o];if(s&gt;=100){const e=s-100;t.points.getPoint(e,f);const{inserted:n,id:l}=r.insertUniquePoint(f);h[o]=l,n&amp;&amp;i.passData(a,t.pointsIds[e],l)}else{const l=lu[s];let c=l[0],u=l[1],d=n.getComponent(l[1],0)-n.getComponent(l[0],0);d&lt;=0&amp;&amp;(c=l[1],u=l[0],d=-d);const p=0===d?0:(e-n.getComponent(c,0))/d;t.points.getPoint(c,g),t.points.getPoint(u,m);for(let e=0;e&lt;3;e++)f[e]=g[e]+p*(m[e]-g[e]);const{inserted:v,id:T}=r.insertUniquePoint(f);h[o]=T,v&amp;&amp;i.interpolateData(a,t.pointsIds[c],t.pointsIds[u],T,p)}}if(h[0]!==h[1]&amp;&amp;h[0]!==h[2]&amp;&amp;h[1]!==h[2]){const e=o.insertNextCell(h);c.passData(s,l,e)}}}}(e,t)}var gu={newInstance:sn.newInstance(fu,&quot;vtkTriangle&quot;),extend:fu,...du};const mu={};function hu(e,t,n={}){Object.assign(t,mu,n),dc.extend(e,t,n),function(e,t){t.classHierarchy.push(&quot;vtkQuad&quot;),e.getCellDimension=()=&gt;2,e.getCellType=()=&gt;Cc,e.getNumberOfEdges=()=&gt;4,e.getNumberOfFaces=()=&gt;0,e.intersectWithLine=(e,n,r,o,a)=&gt;{let i,s={subId:0,t:Number.MAX_VALUE,intersect:0,betweenPoints:!1};const l=t.points.getPoint(0,[]),c=t.points.getPoint(1,[]),u=t.points.getPoint(2,[]),d=t.points.getPoint(3,[]),p=Yo(l,u),f=Yo(c,d);if(p===f){let e,n=0,r=0;for(let o=0;o&lt;4;o++)e=t.pointsIds[o],e&gt;n&amp;&amp;(n=e,r=o);i=0===r||2===r?0:1}else i=p&lt;f?0:1;let g,m=null;t.triangle?m=t.triangle.getPoints():(t.triangle=gu.newInstance(),m=lc.newInstance(),m.setNumberOfPoints(3),t.triangle.initialize(m));const h={intersected:!1,subId:-1,x:[0,0,0],pCoords:[0,0,0],t:-1};let v;const T={intersected:!1,subId:-1,x:[0,0,0],pCoords:[0,0,0],t:-1};let x,y;switch(i){case 0:m.setPoint(0,...l),m.setPoint(1,...c),m.setPoint(2,...u),g=t.triangle.intersectWithLine(e,n,r,h.x,h.pCoords),m.setPoint(0,...u),m.setPoint(1,...d),m.setPoint(2,...l),v=t.triangle.intersectWithLine(e,n,r,T.x,T.pCoords),x=g.intersect&amp;&amp;v.intersect?g.t&lt;=v.t:g.intersect,y=g.intersect&amp;&amp;v.intersect?v.t&lt;g.t:v.intersect,x?(s=g,o[0]=h.x[0],o[1]=h.x[1],o[2]=h.x[2],a[0]=h.pCoords[0]+h.pCoords[1],a[1]=h.pCoords[1],a[2]=h.pCoords[2]):y&amp;&amp;(s=v,o[0]=T.x[0],o[1]=T.x[1],o[2]=T.x[2],a[0]=1-(T.pCoords[0]+T.pCoords[1]),a[1]=1-T.pCoords[1],a[2]=T.pCoords[2]);break;case 1:m.setPoint(0,...l),m.setPoint(1,...c),m.setPoint(2,...d),g=t.triangle.intersectWithLine(e,n,r,h.x,h.pCoords),m.setPoint(0,...u),m.setPoint(1,...d),m.setPoint(2,...c),v=t.triangle.intersectWithLine(e,n,r,T.x,T.pCoords),x=g.intersect&amp;&amp;v.intersect?g.t&lt;=v.t:g.intersect,y=g.intersect&amp;&amp;v.intersect?v.t&lt;g.t:v.intersect,x?(s=g,o[0]=h.x[0],o[1]=h.x[1],o[2]=h.x[2],a[0]=h.pCoords[0],a[1]=h.pCoords[1],a[2]=h.pCoords[2]):y&amp;&amp;(s=v,o[0]=T.x[0],o[1]=T.x[1],o[2]=T.x[2],a[0]=1-T.pCoords[0],a[1]=1-T.pCoords[1],a[2]=T.pCoords[2])}return s},e.interpolationFunctions=(e,t)=&gt;{const n=1-e[0],r=1-e[1];t[0]=n*r,t[1]=e[0]*r,t[2]=e[0]*e[1],t[3]=n*e[1]},e.evaluateLocation=(n,r,o)=&gt;{const a=[];e.interpolationFunctions(n,o),r[0]=0,r[1]=0,r[2]=0;for(let e=0;e&lt;4;e++){t.points.getPoint(e,a);for(let t=0;t&lt;3;t++)r[t]+=a[t]*o[e]}}}(e,t)}var vu={newInstance:sn.newInstance(hu,&quot;vtkQuad&quot;),extend:hu};const{vtkErrorMacro:Tu}=sn;const xu={decomposeStrip:function(e,t){if(!Array.isArray(e)||e.length&lt;3)return void Tu(&quot;decomposeStrip - Invalid points array&quot;);let n=e[0],r=e[1];for(let o=0;o&lt;e.length-2;o++){const a=e[o+2];o%2?t.insertNextCell([r,n,a]):t.insertNextCell([n,r,a]),n=r,r=a}}};function yu(e,t){t.classHierarchy.push(&quot;vtkTriangleStrip&quot;);const n=e.initialize;e.initialize=(e,r)=&gt;{t.triangle.initialize(e,r),n(e,r)},e.getCellType=()=&gt;bc,e.getCellDimension=()=&gt;2,e.getNumberOfEdges=()=&gt;t.pointsIds.length,e.getNumberOfFaces=()=&gt;0,e.evaluatePosition=(e,n,r,o,a)=&gt;{const i=[0,0,0];let s=Number.MAX_VALUE,l=0;const c=[],u=[],d=[];r[2]=0,u[0]=0,u[1]=0,u[2]=0;const p=t.triangle.getPoints();p.setNumberOfPoints(3);const f=t.triangle.getPointsIds().length;for(let e=0;e&lt;f;e++)a[e]=0;for(let o=0;o&lt;f-2;o++){const a=[];p.getPoint(o,a);const f=[];p.getPoint(o+1,f);const g=[];p.getPoint(o+2,g),p.setData(Float32Array.from([...a,...f,...g]),3);const m=t.triangle.evaluatePosition(e,d,i,c),h=m.dist2;m.evaluation&gt;=0&amp;&amp;(h&lt;s||h===s&amp;&amp;0===l)&amp;&amp;(l=m,n&amp;&amp;(n[0]=d[0],n[1]=d[1],n[2]=d[2]),r[0]=i[0],r[1]=i[1],s=h,u[0]=c[0],u[1]=c[1],u[2]=c[2])}return o[0]=s,a[0]=u[0],a[1]=u[1],a[2]=u[2],l},e.evaluateLocation=(e,n,r,o)=&gt;{const a=[[0,1,2],[1,0,2]],i=e%2,s=t.pointsIds.length;for(let e=0;e&lt;s;e++)o[e]=0;const l=1-n[0]-n[1];o[e]=l,o[e+1]=n[0],o[e+2]=n[1];const c=[];t.points.getPoint(e+a[i][0],c);const u=[];t.points.getPoint(e+a[i][1],u);const d=[];t.points.getPoint(e+a[i][2],d);for(let t=0;t&lt;3;t++)r[t]=c[t]*o[e]+u[t]*o[e+1]+d[t]*o[e+2]},e.cellBoundary=(e,n,r)=&gt;{const o=[[0,1,2],[1,0,2]],a=e%2,i=t.triangle.getPointsIds();return i[0]=t.pointsIds[o[a][0]],i[1]=t.pointsIds[o[a][1]],i[2]=t.pointsIds[o[a][2]],t.triangle.cellBoundary(0,n,r)},e.getEdge=e=&gt;{let n,r;const o=t.pointsIds.length;return 0===e?(n=0,r=1):e===o-1?(n=e-1,r=e):(n=e-1,r=e+1),t.line.getPointsIds()[0]=t.pointsIds[n],t.line.getPointsIds()[1]=t.pointsIds[r],t.line.getPoints().setPoint(0,t.points.getPoint(n)),t.line.getPoints().setPoint(1,t.points.getPoint(r)),t.line},e.intersectWithLine=(e,n,r,o,a)=&gt;{const i=t.pointsIds.length-2,s=t.triangle.getPoints();s.setNumberOfPoints(3);for(let l=0;l&lt;i;l++){const i=[];t.points.getPoint(t.pointsIds[l],i);const c=[];t.points.getPoint(t.pointsIds[l+1],c);const u=[];t.points.getPoint(t.pointsIds[l+2],u),s.setData(Float32Array.from([...i,...c,...u]),3);const d=t.triangle.intersectWithLine(e,n,r,o,a);if(d.intersect)return d}return!1},e.triangulate=()=&gt;{const e=t.points.getNumberOfPoints()-2;t.tris=new Array(3*e);const n=[[0,1,2],[1,0,2]];for(let r=0;r&lt;e;r++){const e=r%2;for(let o=0;o&lt;3;o++)t.tris[3*r+o]=r+n[e][o]}return!0},e.getPointArray=()=&gt;t.tris,e.derivatives=(e,n,r,o,a)=&gt;{const i=[];t.points.getPoint(e,i);const s=[];t.points.getPoint(e+1,s);const l=[];t.points.getPoint(e+2,l);const c=t.triangle.getPoints();c.setPoint(0,...i),c.setPoint(1,...s),c.setPoint(2,...l),t.triangle.derivatives(0,n,r,o,a)},e.getParametricCenter=e=&gt;(e[0]=.333333,e[1]=.333333,e[2]=0,Math.floor((t.pointsIds.length-2)/2)),e.contour=(e,t,n,r,o,a,i,s,l,c,u)=&gt;{return(d=&quot;contour&quot;,()=&gt;Tu(`vtkTriangleStrip.${d} - NOT IMPLEMENTED`))();var d},e.clip=(e,n,r,o,a,i,s,l,c,u)=&gt;{const d=t.points.getNumberOfPoints()-2,p=new Float32Array(3),f=n.newClone();f.setNumberOfComponents(n.getNumberOfComponents()),f.setData(p,n.getNumberOfComponents());const g=t.triangle.getPoints();g.setNumberOfPoints(3);const m=t.triangle.getPointsIds(),h=[0,0,0];for(let v=0;v&lt;d;v++){let d=v,T=v+1,x=v+2;v%2&amp;&amp;(d=v+2,T=v+1,x=v),g.setPoint(0,...t.points.getPoint(d,h)),g.setPoint(1,...t.points.getPoint(T,h)),g.setPoint(2,...t.points.getPoint(x,h)),m[0]=t.pointsIds[d],m[1]=t.pointsIds[T],m[2]=t.pointsIds[x],p[0]=n.getComponent(d,0),p[1]=n.getComponent(T,0),p[2]=n.getComponent(x,0),t.triangle.clip(e,f,r,o,a,i,s,l,c,u)}}}const bu={line:null,triangle:null,tris:null};function Au(e,t,n={}){Object.assign(t,bu,n),dc.extend(e,t,n),t.line||(t.line=Uc.newInstance()),t.triangle||(t.triangle=gu.newInstance()),yu(e,t)}var Cu={newInstance:sn.newInstance(Au,&quot;vtkTriangleStrip&quot;),extend:Au,...xu};const Su=[&quot;verts&quot;,&quot;lines&quot;,&quot;polys&quot;,&quot;strips&quot;],{vtkWarningMacro:Pu}=sn,wu={[Tc]:Uc,[Cc]:vu,[xc]:Uc,[yc]:gu,[bc]:Cu,[xc]:jc,[Ac]:ou};const Iu={};function Ou(e,t,n={}){Object.assign(t,Iu,n),zc.extend(e,t,n),sn.get(e,t,[&quot;cells&quot;,&quot;links&quot;]),sn.setGet(e,t,[&quot;verts&quot;,&quot;lines&quot;,&quot;polys&quot;,&quot;strips&quot;]),function(e,t){function n(e){return e.replace(/(?:^\\w|[A-Z]|\\b\\w)/g,(e=&gt;e.toUpperCase())).replace(/\\s+/g,&quot;&quot;)}function r(){t.cells=void 0,t.links=void 0}t.classHierarchy.push(&quot;vtkPolyData&quot;),Su.forEach((o=&gt;{e[`getNumberOf${n(o)}`]=()=&gt;t[o].getNumberOfCells(),t[o]?t[o]=it(t[o]):t[o]=oc.newInstance(),t[`_on${n(o)}Changed`]=r})),e.getNumberOfCells=()=&gt;Su.reduce(((e,n)=&gt;e+t[n].getNumberOfCells()),0);const o=e.shallowCopy;e.shallowCopy=(e,n=!1)=&gt;{o(e,n),Su.forEach((n=&gt;{t[n]=oc.newInstance(),t[n].shallowCopy(e.getReferenceByName(n))}))};const a=e.getMTime;e.getMTime=()=&gt;Su.reduce(((e,n)=&gt;Math.max(e,t[n]?.getMTime()??e)),a());const i=e.initialize;e.initialize=()=&gt;(Su.forEach((e=&gt;t[e]?.initialize())),r(),i()),e.buildCells=()=&gt;{const n=e.getNumberOfVerts(),r=e.getNumberOfLines(),o=e.getNumberOfPolys(),a=e.getNumberOfStrips(),i=n+r+o+a,s=new Uint8Array(i);let l=s;const c=new Uint32Array(i);let u=c;if(n){let e=0;t.verts.getCellSizes().forEach(((t,n)=&gt;{u[n]=e,l[n]=t&gt;1?vc:hc,e+=t+1})),u=u.subarray(n),l=l.subarray(n)}if(r){let e=0;t.lines.getCellSizes().forEach(((t,n)=&gt;{u[n]=e,l[n]=t&gt;2?xc:Tc,1===t&amp;&amp;Pu(&quot;Building VTK_LINE &quot;,n,&quot; with only one point, but VTK_LINE needs at least two points. Check the input.&quot;),e+=t+1})),u=u.subarray(r),l=l.subarray(r)}if(o){let e=0;t.polys.getCellSizes().forEach(((t,n)=&gt;{switch(u[n]=e,t){case 3:l[n]=yc;break;case 4:l[n]=Cc;break;default:l[n]=Ac}t&lt;3&amp;&amp;Pu(&quot;Building VTK_TRIANGLE &quot;,n,&quot; with less than three points, but VTK_TRIANGLE needs at least three points. Check the input.&quot;),e+=t+1})),u+=u.subarray(o),l+=l.subarray(o)}if(a){let e=0;l.fill(bc,0,a),t.strips.getCellSizes().forEach(((t,n)=&gt;{u[n]=e,e+=t+1}))}t.cells=Dc.newInstance(),t.cells.setCellTypes(i,s,c)},e.buildLinks=(n=0)=&gt;{null==t.cells&amp;&amp;e.buildCells(),t.links=gc.newInstance(),n&gt;0?t.links.allocate(n):t.links.allocate(e.getPoints().getNumberOfPoints()),t.links.buildLinks(e)},e.getCellType=e=&gt;t.cells.getCellType(e),e.getCellPoints=n=&gt;{const r=e.getCellType(n);let o=null;switch(r){case hc:case vc:o=t.verts;break;case Tc:case xc:o=t.lines;break;case yc:case Cc:case Ac:o=t.polys;break;case bc:o=t.strips;break;default:return o=null,{type:0,cellPointIds:null}}const a=t.cells.getCellLocation(n);return{cellType:r,cellPointIds:o.getCell(a)}},e.getPointCells=e=&gt;t.links.getCells(e),e.getCellEdgeNeighbors=(e,n,r)=&gt;{const o=t.links.getLink(n),a=t.links.getLink(r);return o.cells.filter((t=&gt;t!==e&amp;&amp;-1!==a.cells.indexOf(t)))},e.getCell=(t,n=null)=&gt;{const r=e.getCellPoints(t),o=n||wu[r.cellType].newInstance();return o.initialize(e.getPoints(),r.cellPointIds),o},e.getMaxCellSize=()=&gt;Su.reduce(((e,n)=&gt;Math.max(e,t[n]?.getMaxCellSize?.()??0)),0)}(e,t)}var Ru={newInstance:sn.newInstance(Ou,&quot;vtkPolyData&quot;),extend:Ou};const Mu={image:null,canvas:null,jsImageData:null,imageBitmap:null,imageLoaded:!1,repeat:!1,interpolate:!1,edgeClamp:!1,mipLevel:0,resizable:!1};function Du(e,t,n={}){Object.assign(t,Mu,n),sn.obj(e,t),sn.algo(e,t,6,0),sn.get(e,t,[&quot;canvas&quot;,&quot;image&quot;,&quot;jsImageData&quot;,&quot;imageBitmap&quot;,&quot;imageLoaded&quot;,&quot;resizable&quot;]),sn.setGet(e,t,[&quot;repeat&quot;,&quot;edgeClamp&quot;,&quot;interpolate&quot;,&quot;mipLevel&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkTexture&quot;),e.imageLoaded=()=&gt;{t.image.removeEventListener(&quot;load&quot;,e.imageLoaded),t.imageLoaded=!0,e.modified()},e.setJsImageData=n=&gt;{t.jsImageData!==n&amp;&amp;(null!==n&amp;&amp;(e.setInputData(null),e.setInputConnection(null),t.image=null,t.canvas=null,t.imageBitmap=null),t.jsImageData=n,t.imageLoaded=!0,e.modified())},e.setImageBitmap=n=&gt;{t.imageBitmap!==n&amp;&amp;(null!==n&amp;&amp;(e.setInputData(null),e.setInputConnection(null),t.image=null,t.canvas=null,t.jsImageData=null),t.imageBitmap=n,t.imageLoaded=!0,e.modified())},e.setCanvas=n=&gt;{t.canvas!==n&amp;&amp;(null!==n&amp;&amp;(e.setInputData(null),e.setInputConnection(null),t.image=null,t.imageBitmap=null,t.jsImageData=null),t.canvas=n,e.modified())},e.setImage=n=&gt;{t.image!==n&amp;&amp;(null!==n&amp;&amp;(e.setInputData(null),e.setInputConnection(null),t.canvas=null,t.jsImageData=null,t.imageBitmap=null),t.image=n,t.imageLoaded=!1,n.complete?e.imageLoaded():n.addEventListener(&quot;load&quot;,e.imageLoaded),e.modified())},e.getDimensionality=()=&gt;{let n=0,r=0,o=1;if(e.getInputData()){const t=e.getInputData();n=t.getDimensions()[0],r=t.getDimensions()[1],o=t.getDimensions()[2]}return t.jsImageData&amp;&amp;(n=t.jsImageData.width,r=t.jsImageData.height),t.canvas&amp;&amp;(n=t.canvas.width,r=t.canvas.height),t.image&amp;&amp;(n=t.image.width,r=t.image.height),t.imageBitmap&amp;&amp;(n=t.imageBitmap.width,r=t.imageBitmap.height),(n&gt;1)+(r&gt;1)+(o&gt;1)},e.getInputAsJsImageData=()=&gt;{if(!t.imageLoaded||e.getInputData())return null;if(t.jsImageData)return t.jsImageData;if(t.imageBitmap)return t.imageBitmap;if(t.canvas)return t.canvas.getContext(&quot;2d&quot;).getImageData(0,0,t.canvas.width,t.canvas.height);if(t.image){const e=t.image.width,n=t.image.height,r=new OffscreenCanvas(e,n).getContext(&quot;2d&quot;);return r.translate(0,n),r.scale(1,-1),r.drawImage(t.image,0,0,e,n),r.getImageData(0,0,e,n)}return null}}(e,t)}var Eu={newInstance:sn.newInstance(Du,&quot;vtkTexture&quot;),extend:Du,...{generateMipmaps:(e,t,n)=&gt;{const r=e.createShaderModule({code:&quot;\\n    @group(0) @binding(0) var inputTexture: texture_2d&lt;f32&gt;;\\n    @group(0) @binding(1) var outputTexture: texture_storage_2d&lt;rgba8unorm, write&gt;;\\n\\n    @compute @workgroup_size(8, 8)\\n    fn main(@builtin(global_invocation_id) global_id: vec3&lt;u32&gt;) {\\n      let texelCoord = vec2&lt;i32&gt;(global_id.xy);\\n      let outputSize = textureDimensions(outputTexture);\\n\\n      if (texelCoord.x &gt;= i32(outputSize.x) || texelCoord.y &gt;= i32(outputSize.y)) {\\n        return;\\n      }\\n\\n      let inputSize = textureDimensions(inputTexture);\\n      let scale = vec2&lt;f32&gt;(inputSize) / vec2&lt;f32&gt;(outputSize);\\n\\n      // Compute the floating-point source coordinate\\n      let srcCoord = (vec2&lt;f32&gt;(texelCoord) + 0.5) * scale - 0.5;\\n\\n      // Get integer coordinates for the four surrounding texels\\n      let x0 = i32(floor(srcCoord.x));\\n      let x1 = min(x0 + 1, i32(inputSize.x) - 1);\\n      let y0 = i32(floor(srcCoord.y));\\n      let y1 = min(y0 + 1, i32(inputSize.y) - 1);\\n\\n      // Compute the weights\\n      let wx = srcCoord.x - f32(x0);\\n      let wy = srcCoord.y - f32(y0);\\n\\n      // Fetch the four texels\\n      let c00 = textureLoad(inputTexture, vec2&lt;i32&gt;(x0, y0), 0);\\n      let c10 = textureLoad(inputTexture, vec2&lt;i32&gt;(x1, y0), 0);\\n      let c01 = textureLoad(inputTexture, vec2&lt;i32&gt;(x0, y1), 0);\\n      let c11 = textureLoad(inputTexture, vec2&lt;i32&gt;(x1, y1), 0);\\n\\n      // Bilinear interpolation\\n      let color = mix(\\n        mix(c00, c10, wx),\\n        mix(c01, c11, wx),\\n        wy\\n      );\\n\\n      textureStore(outputTexture, texelCoord, color);\\n    }\\n  &quot;}),o=e.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.COMPUTE,texture:{sampleType:&quot;float&quot;}},{binding:1,visibility:GPUShaderStage.COMPUTE,storageTexture:{format:&quot;rgba8unorm&quot;,access:&quot;write-only&quot;}},{binding:2,visibility:GPUShaderStage.COMPUTE,sampler:{type:&quot;filtering&quot;}}]}),a=e.createPipelineLayout({bindGroupLayouts:[o]}),i=e.createComputePipeline({label:&quot;ComputeMipmapPipeline&quot;,layout:a,compute:{module:r,entryPoint:&quot;main&quot;}}),s=e.createSampler({magFilter:&quot;linear&quot;,minFilter:&quot;linear&quot;});for(let r=1;r&lt;n;r++){const n=t.createView({baseMipLevel:r-1,mipLevelCount:1}),o=t.createView({baseMipLevel:r,mipLevelCount:1}),a=e.createBindGroup({layout:i.getBindGroupLayout(0),entries:[{binding:0,resource:n},{binding:1,resource:o},{binding:2,resource:s}]}),l=e.createCommandEncoder({label:&quot;MipmapGenerateCommandEncoder&quot;}),c=l.beginComputePass();c.setPipeline(i),c.setBindGroup(0,a);const u=Math.max(1,t.width&gt;&gt;r),d=Math.max(1,t.height&gt;&gt;r),p=Math.ceil(u/8),f=Math.ceil(d/8);c.dispatchWorkgroups(p,f),c.end(),e.queue.submit([l.finish()])}}}};const Vu=[[-1,0,0],[1,0,0],[0,-1,0],[0,1,0],[0,0,-1],[0,0,1]],Lu=[[8,7,11,3],[9,1,10,5],[4,9,0,8],[2,11,6,10],[0,3,2,1],[4,5,6,7]],Bu=[[0,1],[1,3],[2,3],[0,2],[4,5],[5,7],[6,7],[4,6],[0,4],[1,5],[3,7],[2,6]],Fu=[0,1,0,1,0,1,0,1,2,2,2,2],Nu=[[1,2],[1,2],[0,2],[0,2],[0,1],[0,1]],ku=new Float64Array(3),Gu=new Float64Array(3),Uu=new Float64Array(3),_u=new Float64Array(3),Ku=new Float64Array(3),zu=new Float64Array(3),Wu=new Float64Array(16);function Hu(e,t){e.strokeStyle=t.strokeColor,e.lineWidth=t.strokeSize,e.fillStyle=t.fontColor,e.font=`${t.fontStyle} ${t.fontSize}px ${t.fontFamily}`}function ju(e){const t=[],n=[];for(let r=0;r&lt;3;r++){const o=$r().domain([e[2*r],e[2*r+1]]);t[r]=o.ticks(5);const a=o.tickFormat(5);n[r]=t[r].map(a)}return{ticks:t,tickStrings:n}}const Xu=sn.newInstance(((e,t,n={renderable:null})=&gt;{Object.assign(t,{},n),sn.obj(e,t),t.tmPolyData=Ru.newInstance(),t.tmMapper=Ql.newInstance(),t.tmMapper.setInputData(t.tmPolyData),t.tmActor=fs.newInstance({parentProp:e}),t.tmActor.setMapper(t.tmMapper),sn.setGet(e,t,[&quot;renderable&quot;]),sn.get(e,t,[&quot;lastSize&quot;,&quot;lastAspectRatio&quot;,&quot;axisTextStyle&quot;,&quot;tickTextStyle&quot;,&quot;tmActor&quot;,&quot;ticks&quot;]),t.forceUpdate=!1,t.lastRedrawTime={},sn.obj(t.lastRedrawTime,{mtime:0}),t.lastRebuildTime={},sn.obj(t.lastRebuildTime,{mtime:0}),t.lastSize=[-1,-1],t.lastTickBounds=[],function(e,t){t.classHierarchy.push(&quot;vtkCubeAxesActorHelper&quot;),e.setRenderable=n=&gt;{t.renderable!==n&amp;&amp;(t.renderable=n,t.tmActor.addTexture(t.renderable.getTmTexture()),t.tmActor.setProperty(n.getProperty()),t.tmActor.setParentProp(n),e.modified())},e.createPolyDataForOneLabel=(e,n,r,o,a,i,s)=&gt;{const l=t.renderable.get_tmAtlas().get(e);if(!l)return;const c=t.renderable.getTextPolyData().getPoints().getData(),u=t.lastSize;ku[0]=c[3*n],ku[1]=c[3*n+1],ku[2]=c[3*n+2],oe(Uu,ku,r),Uu[0]+=.1,oe(Gu,Uu,o),Z(Ku,Gu,ku),Uu[0]-=.1,Uu[1]+=.1,oe(Gu,Uu,o),Z(zu,Gu,ku);for(let e=0;e&lt;3;e++)Ku[e]/=.05*u[0],zu[e]/=.05*u[1];let d=s.ptIdx,p=s.cellIdx;ku[0]=c[3*n],ku[1]=c[3*n+1],ku[2]=c[3*n+2],a[0]&lt;-.5?$(Uu,Ku,a[0]*i-l.width):a[0]&gt;.5?$(Uu,Ku,a[0]*i):$(Uu,Ku,a[0]*i-l.width/2),J(ku,ku,Uu),$(Uu,zu,a[1]*i-l.height/2),J(ku,ku,Uu),s.points[3*d]=ku[0],s.points[3*d+1]=ku[1],s.points[3*d+2]=ku[2],s.tcoords[2*d]=l.tcoords[0],s.tcoords[2*d+1]=l.tcoords[1],d++,$(Uu,Ku,l.width),J(ku,ku,Uu),s.points[3*d]=ku[0],s.points[3*d+1]=ku[1],s.points[3*d+2]=ku[2],s.tcoords[2*d]=l.tcoords[2],s.tcoords[2*d+1]=l.tcoords[3],d++,$(Uu,zu,l.height),J(ku,ku,Uu),s.points[3*d]=ku[0],s.points[3*d+1]=ku[1],s.points[3*d+2]=ku[2],s.tcoords[2*d]=l.tcoords[4],s.tcoords[2*d+1]=l.tcoords[5],d++,$(Uu,Ku,l.width),Z(ku,ku,Uu),s.points[3*d]=ku[0],s.points[3*d+1]=ku[1],s.points[3*d+2]=ku[2],s.tcoords[2*d]=l.tcoords[6],s.tcoords[2*d+1]=l.tcoords[7],d++,s.polys[4*p]=3,s.polys[4*p+1]=d-4,s.polys[4*p+2]=d-3,s.polys[4*p+3]=d-2,p++,s.polys[4*p]=3,s.polys[4*p+1]=d-4,s.polys[4*p+2]=d-2,s.polys[4*p+3]=d-1,s.ptIdx+=4,s.cellIdx+=2},e.updateTexturePolyData=()=&gt;{const n=t.camera.getCompositeProjectionMatrix(t.lastAspectRatio,-1,1);y(n,n);const r=t.renderable.getTextValues().length,o=4*r,a=2*r,i=new Float64Array(3*o),s=new Uint16Array(4*a),l=new Float32Array(2*o);b(Wu,n);const c={ptIdx:0,cellIdx:0,polys:s,points:i,tcoords:l};let u=0,d=0,p=0;const f=t.renderable.getTextPolyData().getPoints().getData(),g=t.renderable.getTextValues();for(;u&lt;f.length/3;){ku[0]=f[3*u],ku[1]=f[3*u+1],ku[2]=f[3*u+2],oe(Uu,ku,n),ku[0]=f[3*u+3],ku[1]=f[3*u+4],ku[2]=f[3*u+5],oe(_u,ku,n),Z(Uu,Uu,_u);const r=[Uu[0],Uu[1]];Zo(r),e.createPolyDataForOneLabel(g[d],u,n,Wu,r,t.renderable.getAxisTitlePixelOffset(),c),u+=2,d++;for(let o=0;o&lt;t.renderable.getTickCounts()[p];o++)e.createPolyDataForOneLabel(g[d],u,n,Wu,r,t.renderable.getTickLabelPixelOffset(),c),u++,d++;p++}const m=Is.newInstance({numberOfComponents:2,values:l,name:&quot;TextureCoordinates&quot;});t.tmPolyData.getPointData().setTCoords(m),t.tmPolyData.getPoints().setData(i,3),t.tmPolyData.getPoints().modified(),t.tmPolyData.getPolys().setData(s,1),t.tmPolyData.getPolys().modified(),t.tmPolyData.modified()},e.updateAPISpecificData=(n,r,o)=&gt;{t.lastSize[0]===n[0]&amp;&amp;t.lastSize[1]===n[1]||(t.lastSize[0]=n[0],t.lastSize[1]=n[1],t.lastAspectRatio=n[0]/n[1],t.forceUpdate=!0),t.camera=r,e.updateTexturePolyData()}}(e,t)}),&quot;vtkCubeAxesActorHelper&quot;);function qu(e,t,n={}){fs.extend(e,t,function(e,t,n){return{boundsScaleFactor:1.3,camera:null,dataBounds:[...Hi.INIT_BOUNDS],faceVisibilityAngle:8,gridLines:!0,axisLabels:null,axisTitlePixelOffset:35,tickLabelPixelOffset:12,generateTicks:ju,...n,axisTextStyle:{fontColor:&quot;white&quot;,fontStyle:&quot;normal&quot;,fontSize:18,fontFamily:&quot;serif&quot;,...n?.axisTextStyle},tickTextStyle:{fontColor:&quot;white&quot;,fontStyle:&quot;normal&quot;,fontSize:14,fontFamily:&quot;serif&quot;,...n?.tickTextStyle}}}(0,0,n)),t.lastFacesToDraw=[!1,!1,!1,!1,!1,!1],t.axisLabels=[&quot;X-Axis&quot;,&quot;Y-Axis&quot;,&quot;Z-Axis&quot;],t.tickCounts=[],t.textValues=[],t.lastTickBounds=[],t.tmCanvas=document.createElement(&quot;canvas&quot;),t.tmContext=t.tmCanvas.getContext(&quot;2d&quot;),t._tmAtlas=new Map,t.tmTexture=Eu.newInstance({resizable:!0}),t.tmTexture.setInterpolate(!1),e.getProperty().setDiffuse(0),e.getProperty().setAmbient(1),t.gridMapper=Ql.newInstance(),t.polyData=Ru.newInstance(),t.gridMapper.setInputData(t.polyData),t.gridActor=fs.newInstance(),t.gridActor.setMapper(t.gridMapper),t.gridActor.setProperty(e.getProperty()),t.gridActor.setParentProp(e),t.textPolyData=Ru.newInstance(),sn.setGet(e,t,[&quot;axisTitlePixelOffset&quot;,&quot;boundsScaleFactor&quot;,&quot;faceVisibilityAngle&quot;,&quot;gridLines&quot;,&quot;tickLabelPixelOffset&quot;,&quot;generateTicks&quot;]),sn.setGetArray(e,t,[&quot;dataBounds&quot;],6),sn.setGetArray(e,t,[&quot;axisLabels&quot;],3),sn.get(e,t,[&quot;axisTextStyle&quot;,&quot;tickTextStyle&quot;,&quot;camera&quot;,&quot;tmTexture&quot;,&quot;textValues&quot;,&quot;textPolyData&quot;,&quot;tickCounts&quot;,&quot;gridActor&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkCubeAxesActor&quot;),e.setCamera=n=&gt;{t.camera!==n&amp;&amp;(t.cameraModifiedSub&amp;&amp;(t.cameraModifiedSub.unsubscribe(),t.cameraModifiedSub=null),t.camera=n,n&amp;&amp;(t.cameraModifiedSub=n.onModified(e.update)),e.update(),e.modified())},e.computeFacesToDraw=()=&gt;{const e=t.camera.getViewMatrix();y(e,e);let n=!1;const r=Hi.getDiagonalLength(t.dataBounds),o=Math.sin(t.faceVisibilityAngle*Math.PI/180);for(let a=0;a&lt;6;a++){let i=!1;const s=Math.floor(a/2),l=(s+1)%3,c=(s+2)%3;t.dataBounds[2*l]!==t.dataBounds[2*l+1]&amp;&amp;t.dataBounds[2*c]!==t.dataBounds[2*c+1]&amp;&amp;(ku[s]=t.dataBounds[a]-.1*r*Vu[a][s],ku[l]=.5*(t.dataBounds[2*l]+t.dataBounds[2*l+1]),ku[c]=.5*(t.dataBounds[2*c]+t.dataBounds[2*c+1]),oe(Uu,ku,e),ku[s]=t.dataBounds[a],oe(_u,ku,e),Z(Uu,_u,Uu),te(Uu,Uu),i=Uu[2]&gt;o,t.camera.getParallelProjection()||(te(_u,_u),i=ne(_u,Uu)&gt;o)),i!==t.lastFacesToDraw[a]&amp;&amp;(t.lastFacesToDraw[a]=i,n=!0)}return n},e.updatePolyData=(e,n,r)=&gt;{let o=0,a=0;o+=8;let i=0;for(let e=0;e&lt;12;e++)n[e]&gt;0&amp;&amp;i++;if(a+=i,t.gridLines)for(let t=0;t&lt;6;t++)e[t]&amp;&amp;(o+=2*r[Nu[t][0]].length+2*r[Nu[t][1]].length,a+=r[Nu[t][0]].length+r[Nu[t][1]].length);const s=new Float64Array(3*o),l=new Uint32Array(3*a);let c=0,u=0;for(let e=0;e&lt;2;e++)for(let n=0;n&lt;2;n++)for(let r=0;r&lt;2;r++)s[3*c]=t.dataBounds[r],s[3*c+1]=t.dataBounds[2+n],s[3*c+2]=t.dataBounds[4+e],c++;for(let e=0;e&lt;12;e++)n[e]&gt;0&amp;&amp;(l[3*u]=2,l[3*u+1]=Bu[e][0],l[3*u+2]=Bu[e][1],u++);if(t.gridLines)for(let n=0;n&lt;6;n++)if(e[n]){const e=Math.floor(n/2);let o=r[Nu[n][0]];for(let r=0;r&lt;o.length;r++)s[3*c+e]=t.dataBounds[n],s[3*c+Nu[n][0]]=o[r],s[3*c+Nu[n][1]]=t.dataBounds[2*Nu[n][1]],c++,s[3*c+e]=t.dataBounds[n],s[3*c+Nu[n][0]]=o[r],s[3*c+Nu[n][1]]=t.dataBounds[2*Nu[n][1]+1],c++,l[3*u]=2,l[3*u+1]=c-2,l[3*u+2]=c-1,u++;o=r[Nu[n][1]];for(let r=0;r&lt;o.length;r++)s[3*c+e]=t.dataBounds[n],s[3*c+Nu[n][1]]=o[r],s[3*c+Nu[n][0]]=t.dataBounds[2*Nu[n][0]],c++,s[3*c+e]=t.dataBounds[n],s[3*c+Nu[n][1]]=o[r],s[3*c+Nu[n][0]]=t.dataBounds[2*Nu[n][0]+1],c++,l[3*u]=2,l[3*u+1]=c-2,l[3*u+2]=c-1,u++}t.polyData.getPoints().setData(s,3),t.polyData.getPoints().modified(),t.polyData.getLines().setData(l,1),t.polyData.getLines().modified(),t.polyData.modified()},e.updateTextData=(e,n,r,o)=&gt;{let a=0;for(let e=0;e&lt;12;e++)1===n[e]&amp;&amp;(a+=2,a+=r[Fu[e]].length);const i=t.polyData.getPoints().getData(),s=new Float64Array(3*a);let l=0,c=0,u=0;for(let a=0;a&lt;6;a++)if(e[a])for(let e=0;e&lt;4;e++){const d=Lu[a][e];if(1===n[d]){const e=Fu[d],n=3*Bu[d][0],p=3*Bu[d][1];s[3*l]=.5*(i[n]+i[p]),s[3*l+1]=.5*(i[n+1]+i[p+1]),s[3*l+2]=.5*(i[n+2]+i[p+2]),l++,s[3*l+Math.floor(a/2)]=t.dataBounds[a],s[3*l+Nu[a][0]]=.5*(t.dataBounds[2*Nu[a][0]]+t.dataBounds[2*Nu[a][0]+1]),s[3*l+Nu[a][1]]=.5*(t.dataBounds[2*Nu[a][1]]+t.dataBounds[2*Nu[a][1]+1]),l++,t.textValues[c]=t.axisLabels[e],c++;const f=(e+1)%3,g=(e+2)%3,m=r[e],h=o[e];t.tickCounts[u]=m.length;for(let r=0;r&lt;m.length;r++)s[3*l+e]=m[r],s[3*l+f]=i[n+f],s[3*l+g]=i[n+g],l++,t.textValues[c]=h[r],c++;u++}}t.textPolyData.getPoints().setData(s,3),t.textPolyData.modified()},e.update=()=&gt;{if(!t.camera)return;const n=e.computeFacesToDraw(),r=t.lastFacesToDraw;let o=!1;for(let e=0;e&lt;6;e++)t.dataBounds[e]!==t.lastTickBounds[e]&amp;&amp;(o=!0,t.lastTickBounds[e]=t.dataBounds[e]);if(n||o||t.forceUpdate){const n=new Array(12).fill(0);for(let e=0;e&lt;6;e++)if(r[e])for(let t=0;t&lt;4;t++)n[Lu[e][t]]++;const a=t.generateTicks(t.dataBounds);e.updatePolyData(r,n,a.ticks),e.updateTextData(r,n,a.ticks,a.tickStrings),(o||t.forceUpdate)&amp;&amp;e.updateTextureAtlas(a.tickStrings)}t.forceUpdate=!1},e.updateTextureAtlas=e=&gt;{t.tmContext.textBaseline=&quot;bottom&quot;,t.tmContext.textAlign=&quot;left&quot;,t._tmAtlas.clear();let n=0,r=1;for(let o=0;o&lt;3;o++){if(!t._tmAtlas.has(t.axisLabels[o])){Hu(t.tmContext,t.axisTextStyle);const e=t.tmContext.measureText(t.axisLabels[o]),a={height:e.actualBoundingBoxAscent+2,startingHeight:r,width:e.width+2,textStyle:t.axisTextStyle};t._tmAtlas.set(t.axisLabels[o],a),r+=a.height,n&lt;a.width&amp;&amp;(n=a.width)}Hu(t.tmContext,t.tickTextStyle);for(let a=0;a&lt;e[o].length;a++)if(!t._tmAtlas.has(e[o][a])){const i=t.tmContext.measureText(e[o][a]),s={height:i.actualBoundingBoxAscent+2,startingHeight:r,width:i.width+2,textStyle:t.tickTextStyle};t._tmAtlas.set(e[o][a],s),r+=s.height,n&lt;s.width&amp;&amp;(n=s.width)}}n=Bo(n),r=Bo(r),t._tmAtlas.forEach((e=&gt;{e.tcoords=[0,(r-e.startingHeight-e.height)/r,e.width/n,(r-e.startingHeight-e.height)/r,e.width/n,(r-e.startingHeight)/r,0,(r-e.startingHeight)/r]})),t.tmCanvas.width=n,t.tmCanvas.height=r,t.tmContext.textBaseline=&quot;bottom&quot;,t.tmContext.textAlign=&quot;left&quot;,t.tmContext.clearRect(0,0,n,r),t._tmAtlas.forEach(((e,n)=&gt;{Hu(t.tmContext,e.textStyle),t.tmContext.fillText(n,1,e.startingHeight+e.height-1)})),t.tmTexture.setCanvas(t.tmCanvas),t.tmTexture.modified()},e.onModified((()=&gt;{t.forceUpdate=!0,e.update()})),e.setTickTextStyle=n=&gt;{t.tickTextStyle={...t.tickTextStyle,...n},e.modified()},e.setAxisTextStyle=n=&gt;{t.axisTextStyle={...t.axisTextStyle,...n},e.modified()},e.get_tmAtlas=()=&gt;t._tmAtlas,e.computeBounds=()=&gt;{e.update(),Hi.setBounds(t.bounds,t.gridActor.getBounds()),Hi.scaleAboutCenter(t.bounds,t.boundsScaleFactor,t.boundsScaleFactor,t.boundsScaleFactor)};const n=e.setProperty;e.setProperty=e=&gt;{const r=n(e);return t.gridActor.setProperty(e),r}}(e,t)}var Yu={newInstance:sn.newInstance(qu,&quot;vtkCubeAxesActor&quot;),extend:qu,newCubeAxesActorHelper:Xu,defaultGenerateTicks:ju};const Ju={};vn(&quot;vtkCubeAxesActor&quot;,Xt((function(e,t,n={}){Object.assign(t,Ju,n),pn.extend(e,t,n),t.CubeAxesActorHelper=Yu.newCubeAxesActorHelper(),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLCubeAxesActor&quot;),e.buildPass=n=&gt;{n&amp;&amp;(t._openGLRenderer=e.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;),t._openGLRenderWindow=t._openGLRenderer.getParent(),t.CubeAxesActorHelper.getRenderable()||t.CubeAxesActorHelper.setRenderable(t.renderable),e.prepareNodes(),e.addMissingNode(t.CubeAxesActorHelper.getTmActor()),e.addMissingNode(t.renderable.getGridActor()),e.removeUnusedNodes())},e.opaquePass=(e,n)=&gt;{if(e){const e=t._openGLRenderer?t._openGLRenderer.getRenderable().getActiveCamera():null,n=t._openGLRenderer.getTiledSizeAndOrigin();t.CubeAxesActorHelper.updateAPISpecificData([n.usize,n.vsize],e,t._openGLRenderWindow.getRenderable())}}}(e,t)}),&quot;vtkOpenGLCubeAxesActor&quot;));const Zu={ARRAY_BUFFER:0,ELEMENT_ARRAY_BUFFER:1,TEXTURE_BUFFER:2};var Qu={ObjectType:Zu};const{ObjectType:$u}=Qu;const ed={objectType:$u.ARRAY_BUFFER,context:null,allocatedGPUMemoryInBytes:0};function td(e,t,n={}){Object.assign(t,ed,n),sn.obj(e,t),sn.get(e,t,[&quot;_openGLRenderWindow&quot;,&quot;allocatedGPUMemoryInBytes&quot;]),sn.moveToProtected(e,t,[&quot;openGLRenderWindow&quot;]),function(e,t){function n(e){switch(e){case $u.ELEMENT_ARRAY_BUFFER:return t.context.ELEMENT_ARRAY_BUFFER;case $u.TEXTURE_BUFFER:if(&quot;TEXTURE_BUFFER&quot;in t.context)return t.context.TEXTURE_BUFFER;case $u.ARRAY_BUFFER:default:return t.context.ARRAY_BUFFER}}t.classHierarchy.push(&quot;vtkOpenGLBufferObject&quot;);let r=null,o=null,a=!0,i=&quot;&quot;;e.getType=()=&gt;r,e.setType=e=&gt;{r=e},e.getHandle=()=&gt;o,e.isReady=()=&gt;!1===a,e.generateBuffer=e=&gt;{const a=n(e);return null===o&amp;&amp;(o=t.context.createBuffer(),r=e),n(r)===a},e.upload=(s,l)=&gt;e.generateBuffer(l)?(t.context.bindBuffer(n(r),o),t.context.bufferData(n(r),s,t.context.STATIC_DRAW),t.allocatedGPUMemoryInBytes=s.length*s.BYTES_PER_ELEMENT,a=!1,!0):(i=&quot;Trying to upload array buffer to incompatible buffer.&quot;,!1),e.bind=()=&gt;!!o&amp;&amp;(t.context.bindBuffer(n(r),o),!0),e.release=()=&gt;!!o&amp;&amp;(t.context.bindBuffer(n(r),null),!0),e.releaseGraphicsResources=()=&gt;{null!==o&amp;&amp;(t.context.bindBuffer(n(r),null),t.context.deleteBuffer(o),o=null,t.allocatedGPUMemoryInBytes=0)},e.setOpenGLRenderWindow=n=&gt;{t._openGLRenderWindow!==n&amp;&amp;(e.releaseGraphicsResources(),t._openGLRenderWindow=n,t.context=null,n&amp;&amp;(t.context=t._openGLRenderWindow.getContext()))},e.getError=()=&gt;i}(e,t)}var nd={newInstance:sn.newInstance(td),extend:td,...Qu};function rd(e){let t=0,n=0;for(let r=0;r&lt;3;++r){const o=e.getRange(r),a=o[1]-o[0];t+=a*a;const i=.5*(o[1]+o[0]);n+=i*i}const r=t&gt;0&amp;&amp;(Math.abs(n)/t&gt;1e6||Math.abs(Math.log10(t))&gt;3||0===t&amp;&amp;n&gt;1e6);if(r){const t=new Float64Array(3),n=new Float64Array(3);for(let r=0;r&lt;3;++r){const o=e.getRange(r),a=o[1]-o[0];t[r]=.5*(o[1]+o[0]),n[r]=a&gt;0?1/a:1}return{useShiftAndScale:r,coordShift:t,coordScale:n}}return{useShiftAndScale:r,coordShift:new Float32Array([0,0,0]),coordScale:new Float32Array([1,1,1])}}function od(e,t){const n=new Float64Array(3);ee(n,t);const r=new Float64Array(16);return B(r,pe(),e,n),r}const{vtkErrorMacro:ad}=sn;function id(e,t){t.classHierarchy.push(&quot;vtkOpenGLCellArrayBufferObject&quot;),e.setType(Zu.ARRAY_BUFFER),e.createVBO=(n,r,o,a,i=null)=&gt;{if(!n.getData()||!n.getData().length)return t.elementCount=0,0;t.blockSize=3,t.vertexOffset=0,t.normalOffset=0,t.tCoordOffset=0,t.tCoordComponents=0,t.colorComponents=0,t.colorOffset=0,t.customData=[];const s=a.points.getData();let l=null,c=null,u=null;const d=a.colors?a.colors.getNumberOfComponents():0,p=a.tcoords?a.tcoords.getNumberOfComponents():0;a.normals&amp;&amp;(t.normalOffset=4*t.blockSize,t.blockSize+=3,l=a.normals.getData()),a.customAttributes&amp;&amp;a.customAttributes.forEach((e=&gt;{e&amp;&amp;(t.customData.push({data:e.getData(),offset:4*t.blockSize,components:e.getNumberOfComponents(),name:e.getName()}),t.blockSize+=e.getNumberOfComponents())})),a.tcoords&amp;&amp;(t.tCoordOffset=4*t.blockSize,t.tCoordComponents=p,t.blockSize+=p,c=a.tcoords.getData()),a.colors?(t.colorComponents=a.colors.getNumberOfComponents(),t.colorOffset=0,u=a.colors.getData(),t.colorBO||(t.colorBO=nd.newInstance()),t.colorBO.setOpenGLRenderWindow(t._openGLRenderWindow)):t.colorBO=null,t.stride=4*t.blockSize;let f,g=0,m=0,h=0,v=0,T=0,x=0;const y={anythingToPoints(e,t,n,r){for(let o=0;o&lt;e;++o)f(t[n+o],r)},linesToWireframe(e,t,n,r){for(let o=0;o&lt;e-1;++o)f(t[n+o],r),f(t[n+o+1],r)},polysToWireframe(e,t,n,r){if(e&gt;2)for(let o=0;o&lt;e;++o)f(t[n+o],r),f(t[n+(o+1)%e],r)},stripsToWireframe(e,t,n,r){if(e&gt;2){for(let o=0;o&lt;e-1;++o)f(t[n+o],r),f(t[n+o+1],r);for(let o=0;o&lt;e-2;o++)f(t[n+o],r),f(t[n+o+2],r)}},polysToSurface(e,t,n,r){for(let o=0;o&lt;e-2;o++)f(t[n+0],r),f(t[n+o+1],r),f(t[n+o+2],r)},stripsToSurface(e,t,n,r){for(let o=0;o&lt;e-2;o++)f(t[n+o],r),f(t[n+o+1+o%2],r),f(t[n+o+1+(o+1)%2],r)}},b={anythingToPoints:(e,t)=&gt;e,linesToWireframe:(e,t)=&gt;e&gt;1?2*(e-1):0,polysToWireframe:(e,t)=&gt;e&gt;2?2*e:0,stripsToWireframe:(e,t)=&gt;e&gt;2?4*e-6:0,polysToSurface:(e,t)=&gt;e&gt;2?3*(e-2):0,stripsToSurface:(e,t,n)=&gt;e&gt;2?3*(e-2):0};let A=null,C=null;o===rs.POINTS||&quot;verts&quot;===r?(A=y.anythingToPoints,C=b.anythingToPoints):o===rs.WIREFRAME||&quot;lines&quot;===r?(A=y[`${r}ToWireframe`],C=b[`${r}ToWireframe`]):(A=y[`${r}ToSurface`],C=b[`${r}ToSurface`]);const S=n.getData(),P=S.length;let w=0;for(let e=0;e&lt;P;)w+=C(S[e],S),e+=S[e]+1;let I=null;const O=new Float32Array(w*t.blockSize);u&amp;&amp;(I=new Uint8Array(4*w));let R=0,M=0;const{useShiftAndScale:D,coordShift:E,coordScale:V}=rd(a.points);if(D?e.setCoordShiftAndScale(E,V):!0===t.coordShiftAndScaleEnabled&amp;&amp;e.setCoordShiftAndScale(null,null),i)if(i.points||i.cells){const e=new Int32Array(w+i.points.length);e.set(i.points),i.points=e;const t=new Int32Array(w+i.cells.length);t.set(i.cells),i.cells=t}else i.points=new Int32Array(w),i.cells=new Int32Array(w);let L=a.vertexOffset;f=function(e,n){if(i&amp;&amp;(i.points[L]=e,i.cells[L]=x+a.cellOffset),++L,g=3*e,t.coordShiftAndScaleEnabled?(O[R++]=(s[g++]-t.coordShift[0])*t.coordScale[0],O[R++]=(s[g++]-t.coordShift[1])*t.coordScale[1],O[R++]=(s[g++]-t.coordShift[2])*t.coordScale[2]):(O[R++]=s[g++],O[R++]=s[g++],O[R++]=s[g++]),null!==l&amp;&amp;(m=a.haveCellNormals?3*(x+a.cellOffset):3*e,O[R++]=l[m++],O[R++]=l[m++],O[R++]=l[m++]),t.customData.forEach((t=&gt;{T=e*t.components;for(let e=0;e&lt;t.components;++e)O[R++]=t.data[T++]})),null!==c){h=a.useTCoordsPerCell?n*p:e*p;for(let e=0;e&lt;p;++e)O[R++]=c[h++]}null!==u&amp;&amp;(v=a.haveCellScalars?(x+a.cellOffset)*d:e*d,I[M++]=u[v++],I[M++]=u[v++],I[M++]=u[v++],I[M++]=4===d?u[v++]:255)};for(let e=0;e&lt;P;e+=S[e]+1,x++)A(S[e],S,e+1,x+a.cellOffset);return t.elementCount=w,e.upload(O,Zu.ARRAY_BUFFER),t.colorBO&amp;&amp;(t.colorBOStride=4,t.colorBO.upload(I,Zu.ARRAY_BUFFER)),x},e.setCoordShiftAndScale=(e,n)=&gt;{null===e||e.constructor===Float64Array&amp;&amp;3===e.length?null===n||n.constructor===Float64Array&amp;&amp;3===n.length?(null!==t.coordShift&amp;&amp;null!==e&amp;&amp;se(e,t.coordShift)||(t.coordShift=e),null!==t.coordScale&amp;&amp;null!==n&amp;&amp;se(n,t.coordScale)||(t.coordScale=n),t.coordShiftAndScaleEnabled=function(e,t){return null!==e&amp;&amp;null!==t&amp;&amp;!(ie(e,[0,0,0])&amp;&amp;ie(t,[1,1,1]))}(t.coordShift,t.coordScale),t.coordShiftAndScaleEnabled?t.inverseShiftAndScaleMatrix=od(t.coordShift,t.coordScale):t.inverseShiftAndScaleMatrix=null):ad(&quot;Wrong type for coordScale, expected vec3 or null&quot;):ad(&quot;Wrong type for coordShift, expected vec3 or null&quot;)}}const sd={elementCount:0,stride:0,colorBOStride:0,vertexOffset:0,normalOffset:0,tCoordOffset:0,tCoordComponents:0,colorOffset:0,colorComponents:0,tcoordBO:null,customData:[],coordShift:null,coordScale:null,coordShiftAndScaleEnabled:!1,inverseShiftAndScaleMatrix:null};function ld(e,t,n={}){Object.assign(t,sd,n),nd.extend(e,t,n),sn.setGet(e,t,[&quot;colorBO&quot;,&quot;elementCount&quot;,&quot;stride&quot;,&quot;colorBOStride&quot;,&quot;vertexOffset&quot;,&quot;normalOffset&quot;,&quot;tCoordOffset&quot;,&quot;tCoordComponents&quot;,&quot;colorOffset&quot;,&quot;colorComponents&quot;,&quot;customData&quot;]),sn.get(e,t,[&quot;coordShift&quot;,&quot;coordScale&quot;,&quot;coordShiftAndScaleEnabled&quot;,&quot;inverseShiftAndScaleMatrix&quot;]),id(e,t)}var cd={newInstance:sn.newInstance(ld),extend:ld};const{vtkErrorMacro:ud}=sn;const dd={shaderType:&quot;Unknown&quot;,source:&quot;&quot;,error:&quot;&quot;,handle:0,dirty:!1,context:null};function pd(e,t,n={}){Object.assign(t,dd,n),sn.obj(e,t),sn.setGet(e,t,[&quot;shaderType&quot;,&quot;source&quot;,&quot;error&quot;,&quot;handle&quot;,&quot;context&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkShader&quot;),e.compile=()=&gt;{let e=t.context.VERTEX_SHADER;if(!t.source||!t.source.length||&quot;Unknown&quot;===t.shaderType)return!1;if(0!==t.handle&amp;&amp;(t.context.deleteShader(t.handle),t.handle=0),e=&quot;Fragment&quot;===t.shaderType?t.context.FRAGMENT_SHADER:t.context.VERTEX_SHADER,t.handle=t.context.createShader(e),t.context.shaderSource(t.handle,t.source),t.context.compileShader(t.handle),!t.context.getShaderParameter(t.handle,t.context.COMPILE_STATUS)){const e=t.context.getShaderInfoLog(t.handle);return ud(`Error compiling shader &#x27;${t.source}&#x27;: ${e}`),t.context.deleteShader(t.handle),t.handle=0,!1}return!0},e.cleanup=()=&gt;{&quot;Unknown&quot;!==t.shaderType&amp;&amp;0!==t.handle&amp;&amp;(t.context.deleteShader(t.handle),t.handle=0,t.dirty=!0)}}(e,t)}var fd={newInstance:sn.newInstance(pd,&quot;vtkShader&quot;),extend:pd};const{vtkErrorMacro:gd}=sn;const md={vertexShaderHandle:0,fragmentShaderHandle:0,geometryShaderHandle:0,vertexShader:null,fragmentShader:null,geometryShader:null,linked:!1,bound:!1,compiled:!1,error:&quot;&quot;,handle:0,numberOfOutputs:0,attributesLocs:null,uniformLocs:null,md5Hash:0,context:null,lastCameraMTime:null};function hd(e,t,n={}){Object.assign(t,md,n),t.attributesLocs={},t.uniformLocs={},t.vertexShader=fd.newInstance(),t.vertexShader.setShaderType(&quot;Vertex&quot;),t.fragmentShader=fd.newInstance(),t.fragmentShader.setShaderType(&quot;Fragment&quot;),t.geometryShader=fd.newInstance(),t.geometryShader.setShaderType(&quot;Geometry&quot;),sn.obj(e,t),sn.get(e,t,[&quot;lastCameraMTime&quot;]),sn.setGet(e,t,[&quot;error&quot;,&quot;handle&quot;,&quot;compiled&quot;,&quot;bound&quot;,&quot;md5Hash&quot;,&quot;vertexShader&quot;,&quot;fragmentShader&quot;,&quot;geometryShader&quot;,&quot;linked&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkShaderProgram&quot;),e.compileShader=()=&gt;t.vertexShader.compile()?t.fragmentShader.compile()?e.attachShader(t.vertexShader)&amp;&amp;e.attachShader(t.fragmentShader)?e.link()?(e.setCompiled(!0),1):(gd(`Links failed: ${t.error}`),0):(gd(t.error),0):(gd(t.fragmentShader.getSource().split(&quot;\\n&quot;).map(((e,t)=&gt;`${t}: ${e}`)).join(&quot;\\n&quot;)),gd(t.fragmentShader.getError()),0):(gd(t.vertexShader.getSource().split(&quot;\\n&quot;).map(((e,t)=&gt;`${t}: ${e}`)).join(&quot;\\n&quot;)),gd(t.vertexShader.getError()),0),e.cleanup=()=&gt;{&quot;Unknown&quot;!==t.shaderType&amp;&amp;0!==t.handle&amp;&amp;(e.release(),0!==t.vertexShaderHandle&amp;&amp;(t.context.detachShader(t.handle,t.vertexShaderHandle),t.vertexShaderHandle=0),0!==t.fragmentShaderHandle&amp;&amp;(t.context.detachShader(t.handle,t.fragmentShaderHandle),t.fragmentShaderHandle=0),t.context.deleteProgram(t.handle),t.handle=0,e.setCompiled(!1))},e.bind=()=&gt;!(!t.linked&amp;&amp;!e.link()||(t.context.useProgram(t.handle),e.setBound(!0),0)),e.isBound=()=&gt;!!t.bound,e.release=()=&gt;{t.context.useProgram(null),e.setBound(!1)},e.setContext=e=&gt;{t.vertexShader.setContext(e),t.fragmentShader.setContext(e),t.geometryShader.setContext(e)},e.link=()=&gt;{if(t.linked)return!0;if(0===t.handle)return t.error=&quot;Program has not been initialized, and/or does not have shaders.&quot;,!1;if(t.uniformLocs={},t.context.linkProgram(t.handle),!t.context.getProgramParameter(t.handle,t.context.LINK_STATUS)){const e=t.context.getProgramInfoLog(t.handle);return gd(`Error linking shader ${e}`),t.handle=0,!1}return e.setLinked(!0),t.attributeLocs={},!0},e.setUniformMatrix=(n,r)=&gt;{const o=e.findUniform(n);if(-1===o)return t.error=`Could not set uniform ${n} . No such uniform.`,!1;const a=new Float32Array(r);return t.context.uniformMatrix4fv(o,!1,a),!0},e.setUniformMatrix3x3=(n,r)=&gt;{const o=e.findUniform(n);if(-1===o)return t.error=`Could not set uniform ${n} . No such uniform.`,!1;const a=new Float32Array(r);return t.context.uniformMatrix3fv(o,!1,a),!0},e.setUniformf=(n,r)=&gt;{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform1f(o,r),!0)},e.setUniformfv=(n,r)=&gt;{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform1fv(o,r),!0)},e.setUniformi=(n,r)=&gt;{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform1i(o,r),!0)},e.setUniformiv=(n,r)=&gt;{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform1iv(o,r),!0)},e.setUniform2f=(n,r,o)=&gt;{const a=e.findUniform(n);if(-1===a)return t.error=`Could not set uniform ${n} . No such uniform.`,!1;if(void 0===o)throw new RangeError(&quot;Invalid number of values for array&quot;);return t.context.uniform2f(a,r,o),!0},e.setUniform2fv=(n,r)=&gt;{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform2fv(o,r),!0)},e.setUniform2i=(n,r,o)=&gt;{const a=e.findUniform(n);if(-1===a)return t.error=`Could not set uniform ${n} . No such uniform.`,!1;if(void 0===o)throw new RangeError(&quot;Invalid number of values for array&quot;);return t.context.uniform2i(a,r,o),!0},e.setUniform2iv=(n,r)=&gt;{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform2iv(o,r),!0)},e.setUniform3f=(n,r,o,a)=&gt;{const i=e.findUniform(n);if(-1===i)return t.error=`Could not set uniform ${n} . No such uniform.`,!1;if(void 0===a)throw new RangeError(&quot;Invalid number of values for array&quot;);return t.context.uniform3f(i,r,o,a),!0},e.setUniform3fArray=(n,r)=&gt;{const o=e.findUniform(n);if(-1===o)return t.error=`Could not set uniform ${n} . No such uniform.`,!1;if(!Array.isArray(r)||3!==r.length)throw new RangeError(&quot;Invalid number of values for array&quot;);return t.context.uniform3f(o,r[0],r[1],r[2]),!0},e.setUniform3fv=(n,r)=&gt;{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform3fv(o,r),!0)},e.setUniform3i=(n,...r)=&gt;{const o=e.findUniform(n);if(-1===o)return t.error=`Could not set uniform ${n} . No such uniform.`,!1;let a=r;if(1===a.length&amp;&amp;Array.isArray(a[0])&amp;&amp;(a=a[0]),3!==a.length)throw new RangeError(&quot;Invalid number of values for array&quot;);return t.context.uniform3i(o,a[0],a[1],a[2]),!0},e.setUniform3iv=(n,r)=&gt;{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform3iv(o,r),!0)},e.setUniform4f=(n,...r)=&gt;{const o=e.findUniform(n);if(-1===o)return t.error=`Could not set uniform ${n} . No such uniform.`,!1;let a=r;if(1===a.length&amp;&amp;Array.isArray(a[0])&amp;&amp;(a=a[0]),4!==a.length)throw new RangeError(&quot;Invalid number of values for array&quot;);return t.context.uniform4f(o,a[0],a[1],a[2],a[3]),!0},e.setUniform4fv=(n,r)=&gt;{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform4fv(o,r),!0)},e.setUniform4i=(n,...r)=&gt;{const o=e.findUniform(n);if(-1===o)return t.error=`Could not set uniform ${n} . No such uniform.`,!1;let a=r;if(1===a.length&amp;&amp;Array.isArray(a[0])&amp;&amp;(a=a[0]),4!==a.length)throw new RangeError(&quot;Invalid number of values for array&quot;);return t.context.uniform4i(o,a[0],a[1],a[2],a[3]),!0},e.setUniform4iv=(n,r)=&gt;{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform4iv(o,r),!0)},e.findUniform=e=&gt;{if(!e||!t.linked)return-1;let n=t.uniformLocs[e];return void 0!==n?n:(n=t.context.getUniformLocation(t.handle,e),null===n?(t.error=`Uniform ${e} not found in current shader program.`,t.uniformLocs[e]=-1,-1):(t.uniformLocs[e]=n,n))},e.isUniformUsed=e=&gt;{if(!e)return!1;let n=t.uniformLocs[e];return void 0!==n?null!==n:t.linked?(n=t.context.getUniformLocation(t.handle,e),t.uniformLocs[e]=n,null!==n):(gd(&quot;attempt to find uniform when the shader program is not linked&quot;),!1)},e.isAttributeUsed=e=&gt;{if(!e)return!1;if(e in t.attributeLocs)return!0;if(!t.linked)return gd(&quot;attempt to find uniform when the shader program is not linked&quot;),!1;const n=t.context.getAttribLocation(t.handle,e);return-1!==n&amp;&amp;(t.attributeLocs[e]=n,!0)},e.attachShader=n=&gt;{if(0===n.getHandle())return t.error=&quot;Shader object was not initialized, cannot attach it.&quot;,!1;if(&quot;Unknown&quot;===n.getShaderType())return t.error=&quot;Shader object is of type Unknown and cannot be used.&quot;,!1;if(0===t.handle){const e=t.context.createProgram();if(0===e)return t.error=&quot;Could not create shader program.&quot;,!1;t.handle=e,t.linked=!1}return&quot;Vertex&quot;===n.getShaderType()&amp;&amp;(0!==t.vertexShaderHandle&amp;&amp;t.context.detachShader(t.handle,t.vertexShaderHandle),t.vertexShaderHandle=n.getHandle()),&quot;Fragment&quot;===n.getShaderType()&amp;&amp;(0!==t.fragmentShaderHandle&amp;&amp;t.context.detachShader(t.handle,t.fragmentShaderHandle),t.fragmentShaderHandle=n.getHandle()),t.context.attachShader(t.handle,n.getHandle()),e.setLinked(!1),!0},e.detachShader=e=&gt;{if(0===e.getHandle())return t.error=&quot;shader object was not initialized, cannot attach it.&quot;,!1;if(&quot;Unknown&quot;===e.getShaderType())return t.error=&quot;Shader object is of type Unknown and cannot be used.&quot;,!1;switch(0===t.handle&amp;&amp;(t.error=&quot;This shader program has not been initialized yet.&quot;),e.getShaderType()){case&quot;Vertex&quot;:return t.vertexShaderHandle!==e.getHandle()?(t.error=&quot;The supplied shader was not attached to this program.&quot;,!1):(t.context.detachShader(t.handle,e.getHandle()),t.vertexShaderHandle=0,t.linked=!1,!0);case&quot;Fragment&quot;:return t.fragmentShaderHandle!==e.getHandle()?(t.error=&quot;The supplied shader was not attached to this program.&quot;,!1):(t.context.detachShader(t.handle,e.getHandle()),t.fragmentShaderHandle=0,t.linked=!1,!0);default:return!1}},e.setContext=e=&gt;{t.context=e,t.vertexShader.setContext(e),t.fragmentShader.setContext(e),t.geometryShader.setContext(e)},e.setLastCameraMTime=e=&gt;{t.lastCameraMTime=e}}(e,t)}var vd={newInstance:sn.newInstance(hd,&quot;vtkShaderProgram&quot;),extend:hd,substitute:function(e,t,n,r){const o=&quot;string&quot;==typeof n?n:n.join(&quot;\\n&quot;),a=!1===r?t:new RegExp(t,&quot;g&quot;),i=e.replace(a,o);return{replace:i!==o,result:i}}};const Td={forceEmulation:!1,handleVAO:0,handleProgram:0,supported:!0,buffers:null,context:null};function xd(e,t,n={}){Object.assign(t,Td,n),t.buffers=[],sn.obj(e,t),sn.get(e,t,[&quot;supported&quot;]),sn.setGet(e,t,[&quot;forceEmulation&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLVertexArrayObject&quot;),e.exposedMethod=()=&gt;{},e.initialize=()=&gt;{t.instancingExtension=null,t._openGLRenderWindow.getWebgl2()||(t.instancingExtension=t.context.getExtension(&quot;ANGLE_instanced_arrays&quot;)),!t.forceEmulation&amp;&amp;t._openGLRenderWindow&amp;&amp;t._openGLRenderWindow.getWebgl2()?(t.extension=null,t.supported=!0,t.handleVAO=t.context.createVertexArray()):(t.extension=t.context.getExtension(&quot;OES_vertex_array_object&quot;),!t.forceEmulation&amp;&amp;t.extension?(t.supported=!0,t.handleVAO=t.extension.createVertexArrayOES()):t.supported=!1)},e.isReady=()=&gt;0!==t.handleVAO||!1===t.supported,e.bind=()=&gt;{if(e.isReady()||e.initialize(),e.isReady()&amp;&amp;t.supported)t.extension?t.extension.bindVertexArrayOES(t.handleVAO):t.context.bindVertexArray(t.handleVAO);else if(e.isReady()){const e=t.context;for(let n=0;n&lt;t.buffers.length;++n){const r=t.buffers[n];t.context.bindBuffer(e.ARRAY_BUFFER,r.buffer);for(let n=0;n&lt;r.attributes.length;++n){const o=r.attributes[n],a=o.isMatrix?o.size:1;for(let n=0;n&lt;a;++n)e.enableVertexAttribArray(o.index+n),e.vertexAttribPointer(o.index+n,o.size,o.type,o.normalize,o.stride,o.offset+o.stride*n/o.size),o.divisor&gt;0&amp;&amp;(t.instancingExtension?t.instancingExtension.vertexAttribDivisorANGLE(o.index+n,1):e.vertexAttribDivisor(o.index+n,1))}}}},e.release=()=&gt;{if(e.isReady()&amp;&amp;t.supported)t.extension?t.extension.bindVertexArrayOES(null):t.context.bindVertexArray(null);else if(e.isReady()){const e=t.context;for(let n=0;n&lt;t.buffers.length;++n){const r=t.buffers[n];t.context.bindBuffer(e.ARRAY_BUFFER,r.buffer);for(let n=0;n&lt;r.attributes.length;++n){const o=r.attributes[n],a=o.isMatrix?o.size:1;for(let n=0;n&lt;a;++n)e.enableVertexAttribArray(o.index+n),e.vertexAttribPointer(o.index+n,o.size,o.type,o.normalize,o.stride,o.offset+o.stride*n/o.size),o.divisor&gt;0&amp;&amp;(t.instancingExtension?t.instancingExtension.vertexAttribDivisorANGLE(o.index+n,0):e.vertexAttribDivisor(o.index+n,0)),e.disableVertexAttribArray(o.index+n)}}}},e.shaderProgramChanged=()=&gt;{e.release(),t.handleVAO&amp;&amp;(t.extension?t.extension.deleteVertexArrayOES(t.handleVAO):t.context.deleteVertexArray(t.handleVAO)),t.handleVAO=0,t.handleProgram=0},e.releaseGraphicsResources=()=&gt;{e.shaderProgramChanged(),t.handleVAO&amp;&amp;(t.extension?t.extension.deleteVertexArrayOES(t.handleVAO):t.context.deleteVertexArray(t.handleVAO)),t.handleVAO=0,t.supported=!0,t.handleProgram=0},e.addAttributeArray=(t,n,r,o,a,i,s,l)=&gt;e.addAttributeArrayWithDivisor(t,n,r,o,a,i,s,l,0,!1),e.addAttributeArrayWithDivisor=(n,r,o,a,i,s,l,c,u,d)=&gt;{if(!n)return!1;if(!n.isBound()||0===r.getHandle()||r.getType()!==Zu.ARRAY_BUFFER)return!1;if(0===t.handleProgram&amp;&amp;(t.handleProgram=n.getHandle()),e.isReady()||e.initialize(),!e.isReady()||t.handleProgram!==n.getHandle())return!1;const p=t.context,f={};if(f.name=o,f.index=p.getAttribLocation(t.handleProgram,o),f.offset=a,f.stride=i,f.type=s,f.size=l,f.normalize=c,f.isMatrix=d,f.divisor=u,-1===f.Index)return!1;if(r.bind(),p.enableVertexAttribArray(f.index),p.vertexAttribPointer(f.index,f.size,f.type,f.normalize,f.stride,f.offset),u&gt;0&amp;&amp;(t.instancingExtension?t.instancingExtension.vertexAttribDivisorANGLE(f.index,1):p.vertexAttribDivisor(f.index,1)),f.buffer=r.getHandle(),!t.supported){let e=!1;for(let n=0;n&lt;t.buffers.length;++n){const r=t.buffers[n];if(r.buffer===f.buffer){e=!0;let t=!1;for(let e=0;e&lt;r.attributes.length;++e)r.attributes[e].name===o&amp;&amp;(t=!0,r.attributes[e]=f);t||r.attributes.push(f)}}e||t.buffers.push({buffer:f.buffer,attributes:[f]})}return!0},e.addAttributeMatrixWithDivisor=(n,r,o,a,i,s,l,c,u)=&gt;{const d=e.addAttributeArrayWithDivisor(n,r,o,a,i,s,l,c,u,!0);if(!d)return d;const p=t.context,f=p.getAttribLocation(t.handleProgram,o);for(let e=1;e&lt;l;e++)p.enableVertexAttribArray(f+e),p.vertexAttribPointer(f+e,l,s,c,i,a+i*e/l),u&gt;0&amp;&amp;(t.instancingExtension?t.instancingExtension.vertexAttribDivisorANGLE(f+e,1):p.vertexAttribDivisor(f+e,1));return!0},e.removeAttributeArray=n=&gt;{if(!e.isReady()||0===t.handleProgram)return!1;if(!t.supported)for(let e=0;e&lt;t.buffers.length;++e){const r=t.buffers[e];for(let o=0;o&lt;r.attributes.length;++o)if(r.attributes[o].name===n)return r.attributes.splice(o,1),r.attributes.length||t.buffers.splice(e,1),!0}return!0},e.setOpenGLRenderWindow=n=&gt;{t._openGLRenderWindow!==n&amp;&amp;(e.releaseGraphicsResources(),t._openGLRenderWindow=n,t.context=null,n&amp;&amp;(t.context=t._openGLRenderWindow.getContext()))}}(e,t)}var yd={newInstance:sn.newInstance(xd,&quot;vtkOpenGLVertexArrayObject&quot;),extend:xd};const bd={Start:0,Points:0,Lines:1,Tris:2,TriStrips:3,TrisEdges:4,TriStripsEdges:5,End:6};const Ad={context:null,program:null,shaderSourceTime:null,VAO:null,attributeUpdateTime:null,CABO:null,primitiveType:0,pointPicking:!1};function Cd(e,t,n={}){Object.assign(t,Ad,n),sn.obj(e,t),t.shaderSourceTime={},sn.obj(t.shaderSourceTime),t.attributeUpdateTime={},sn.obj(t.attributeUpdateTime),sn.setGet(e,t,[&quot;program&quot;,&quot;shaderSourceTime&quot;,&quot;VAO&quot;,&quot;attributeUpdateTime&quot;,&quot;CABO&quot;,&quot;primitiveType&quot;,&quot;pointPicking&quot;]),t.program=vd.newInstance(),t.VAO=yd.newInstance(),t.CABO=cd.newInstance(),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLHelper&quot;),e.setOpenGLRenderWindow=e=&gt;{t.context=e.getContext(),t.program.setContext(t.context),t.VAO.setOpenGLRenderWindow(e),t.CABO.setOpenGLRenderWindow(e)},e.releaseGraphicsResources=e=&gt;{t.VAO.releaseGraphicsResources(),t.CABO.releaseGraphicsResources(),t.CABO.setElementCount(0)},e.drawArrays=(n,r,o,a)=&gt;{if(t.CABO.getElementCount()){const i=e.getOpenGLMode(o),s=e.haveWideLines(n,r),l=t.context,c=l.getParameter(l.DEPTH_WRITEMASK);t.pointPicking&amp;&amp;l.depthMask(!1),i===l.LINES&amp;&amp;s?(e.updateShaders(n,r,a),l.drawArraysInstanced(i,0,t.CABO.getElementCount(),2*Math.ceil(r.getProperty().getLineWidth()))):(l.lineWidth(r.getProperty().getLineWidth()),e.updateShaders(n,r,a),l.drawArrays(i,0,t.CABO.getElementCount()),l.lineWidth(1));const u=(i===l.POINTS?1:0)||(i===l.LINES?2:3);return t.pointPicking&amp;&amp;l.depthMask(c),t.CABO.getElementCount()/u}return 0},e.getOpenGLMode=e=&gt;{if(t.pointPicking)return t.context.POINTS;const n=t.primitiveType;return e===rs.POINTS||n===bd.Points?t.context.POINTS:e===rs.WIREFRAME||n===bd.Lines||n===bd.TrisEdges||n===bd.TriStripsEdges?t.context.LINES:t.context.TRIANGLES},e.haveWideLines=(e,n)=&gt;n.getProperty().getLineWidth()&gt;1&amp;&amp;!(t.CABO.getOpenGLRenderWindow()&amp;&amp;t.CABO.getOpenGLRenderWindow().getHardwareMaximumLineWidth()&gt;=n.getProperty().getLineWidth()),e.getNeedToRebuildShaders=(t,n,r)=&gt;!!(r.getNeedToRebuildShaders(e,t,n)||0===e.getProgram()||e.getShaderSourceTime().getMTime()&lt;r.getMTime()||e.getShaderSourceTime().getMTime()&lt;n.getMTime()),e.updateShaders=(n,r,o)=&gt;{if(e.getNeedToRebuildShaders(n,r,o)){const a={Vertex:null,Fragment:null,Geometry:null};o.buildShaders(a,n,r);const i=t.CABO.getOpenGLRenderWindow().getShaderCache().readyShaderProgramArray(a.Vertex,a.Fragment,a.Geometry);i!==e.getProgram()&amp;&amp;(e.setProgram(i),e.getVAO().releaseGraphicsResources()),e.getShaderSourceTime().modified()}else t.CABO.getOpenGLRenderWindow().getShaderCache().readyShaderProgram(e.getProgram());e.getVAO().bind(),o.setMapperShaderParameters(e,n,r),o.setPropertyShaderParameters(e,n,r),o.setCameraShaderParameters(e,n,r),o.setLightingShaderParameters(e,n,r),o.invokeShaderCallbacks(e,n,r)},e.setMapperShaderParameters=(n,r,o)=&gt;{if(e.haveWideLines(n,r)){e.getProgram().setUniform2f(&quot;viewportSize&quot;,o.usize,o.vsize);const t=parseFloat(r.getProperty().getLineWidth()),n=t/2;e.getProgram().setUniformf(&quot;lineWidthStepSize&quot;,t/Math.ceil(t)),e.getProgram().setUniformf(&quot;halfLineWidth&quot;,n)}t.primitiveType===bd.Points||r.getProperty().getRepresentation()===rs.POINTS?e.getProgram().setUniformf(&quot;pointSize&quot;,r.getProperty().getPointSize()):t.pointPicking&amp;&amp;e.getProgram().setUniformf(&quot;pointSize&quot;,e.getPointPickingPrimitiveSize())},e.replaceShaderPositionVC=(n,r,o)=&gt;{let a=n.Vertex;a=vd.substitute(a,&quot;//VTK::PositionVC::Dec&quot;,[&quot;//VTK::PositionVC::Dec&quot;,&quot;uniform float pointSize;&quot;]).result,a=vd.substitute(a,&quot;//VTK::PositionVC::Impl&quot;,[&quot;//VTK::PositionVC::Impl&quot;,&quot;  gl_PointSize = pointSize;&quot;],!1).result,e.getOpenGLMode(o.getProperty().getRepresentation())===t.context.LINES&amp;&amp;e.haveWideLines(r,o)&amp;&amp;(a=vd.substitute(a,&quot;//VTK::PositionVC::Dec&quot;,[&quot;//VTK::PositionVC::Dec&quot;,&quot;uniform vec2 viewportSize;&quot;,&quot;uniform float lineWidthStepSize;&quot;,&quot;uniform float halfLineWidth;&quot;]).result,a=vd.substitute(a,&quot;//VTK::PositionVC::Impl&quot;,[&quot;//VTK::PositionVC::Impl&quot;,&quot; if (halfLineWidth &gt; 0.0)&quot;,&quot;   {&quot;,&quot;   float offset = float(gl_InstanceID / 2) * lineWidthStepSize - halfLineWidth;&quot;,&quot;   vec4 tmpPos = gl_Position;&quot;,&quot;   vec3 tmpPos2 = tmpPos.xyz / tmpPos.w;&quot;,&quot;   tmpPos2.x = tmpPos2.x + 2.0 * mod(float(gl_InstanceID), 2.0) * offset / viewportSize[0];&quot;,&quot;   tmpPos2.y = tmpPos2.y + 2.0 * mod(float(gl_InstanceID + 1), 2.0) * offset / viewportSize[1];&quot;,&quot;   gl_Position = vec4(tmpPos2.xyz * tmpPos.w, tmpPos.w);&quot;,&quot;   }&quot;]).result),n.Vertex=a},e.getPointPickingPrimitiveSize=()=&gt;t.primitiveType===bd.Points?2:t.primitiveType===bd.Lines?4:6,e.getAllocatedGPUMemoryInBytes=()=&gt;e.getCABO().getAllocatedGPUMemoryInBytes()}(e,t)}var Sd={newInstance:sn.newInstance(Cd),extend:Cd,primTypes:bd};const Pd={CLAMP_TO_EDGE:0,REPEAT:1,MIRRORED_REPEAT:2},wd={NEAREST:0,LINEAR:1,NEAREST_MIPMAP_NEAREST:2,NEAREST_MIPMAP_LINEAR:3,LINEAR_MIPMAP_NEAREST:4,LINEAR_MIPMAP_LINEAR:5};var Id={Wrap:Pd,Filter:wd};const Od=new Float32Array(1),Rd=new Int32Array(Od.buffer);var Md={fromHalf:function(e){const t=(32768&amp;e)&gt;&gt;15,n=(31744&amp;e)&gt;&gt;10,r=1023&amp;e;return 0===n?(t?-1:1)*2**-14*(r/1024):31===n?r?NaN:1/0*(t?-1:1):(t?-1:1)*2**(n-15)*(1+r/1024)},toHalf:function(e){Od[0]=e;const t=Rd[0];let n=t&gt;&gt;16&amp;32768,r=t&gt;&gt;12&amp;2047;const o=t&gt;&gt;23&amp;255;return o&lt;103?n:o&gt;142?(n|=31744,n|=(255===o?0:1)&amp;&amp;8388607&amp;t,n):o&lt;113?(r|=2048,n|=(r&gt;&gt;114-o)+(r&gt;&gt;113-o&amp;1),n):(n|=o-112&lt;&lt;10|r&gt;&gt;1,n+=1&amp;r,n)}};let Dd;function Ed(){return void 0===Dd&amp;&amp;(Dd=function(){try{const e=4,t=2,n=1,r=new Int16Array([0,32767]),o=[1,1],a=document.createElement(&quot;canvas&quot;);a.width=e,a.height=e;const i=a.getContext(&quot;webgl2&quot;);if(!i)return!1;const s=i.getExtension(&quot;EXT_texture_norm16&quot;);if(!s)return!1;const l=`#version 300 es\\n    void main() {\\n      gl_PointSize = ${e.toFixed(1)};\\n      gl_Position = vec4(0, 0, 0, 1);\\n    }\\n  `,c=&quot;#version 300 es\\n    precision highp float;\\n    precision highp int;\\n    precision highp sampler2D;\\n\\n    uniform sampler2D u_image;\\n\\n    out vec4 color;\\n\\n    void main() {\\n        vec4 intColor = texture(u_image, gl_PointCoord.xy);\\n        color = vec4(vec3(intColor.rrr), 1);\\n    }\\n    &quot;,u=i.createShader(i.VERTEX_SHADER);if(i.shaderSource(u,l),i.compileShader(u),!i.getShaderParameter(u,i.COMPILE_STATUS))return!1;const d=i.createShader(i.FRAGMENT_SHADER);if(i.shaderSource(d,c),i.compileShader(d),!i.getShaderParameter(d,i.COMPILE_STATUS))return!1;const p=i.createProgram();if(i.attachShader(p,u),i.attachShader(p,d),i.linkProgram(p),!i.getProgramParameter(p,i.LINK_STATUS))return!1;const f=i.createTexture();i.bindTexture(i.TEXTURE_2D,f),i.texImage2D(i.TEXTURE_2D,0,s.R16_SNORM_EXT,t,n,0,i.RED,i.SHORT,r),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.LINEAR),i.useProgram(p),i.drawArrays(i.POINTS,0,1);const g=new Uint8Array(4);i.readPixels(o[0],o[1],1,1,i.RGBA,i.UNSIGNED_BYTE,g);const[m,h,v]=g,T=i.getExtension(&quot;WEBGL_lose_context&quot;);return T&amp;&amp;T.loseContext(),m===h&amp;&amp;h===v&amp;&amp;0!==m}catch(e){return!1}}()),Dd}const{Wrap:Vd,Filter:Ld}=Id,{VtkDataTypes:Bd}=Is,{vtkDebugMacro:Fd,vtkErrorMacro:Nd,vtkWarningMacro:kd,requiredParam:Gd}=ln,{toHalf:Ud}=Md;function _d(e,t){function n(){return{internalFormat:t.internalFormat,format:t.format,openGLDataType:t.openGLDataType,width:t.width,height:t.height}}t.classHierarchy.push(&quot;vtkOpenGLTexture&quot;),e.render=(n=null)=&gt;{if(n?t._openGLRenderWindow=n:(t._openGLRenderer=e.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;),t._openGLRenderWindow=t._openGLRenderer.getLastAncestorOfType(&quot;vtkOpenGLRenderWindow&quot;)),t.context=t._openGLRenderWindow.getContext(),t.renderable.getInterpolate()?(t.generateMipmap?e.setMinificationFilter(Ld.LINEAR_MIPMAP_LINEAR):e.setMinificationFilter(Ld.LINEAR),e.setMagnificationFilter(Ld.LINEAR)):(e.setMinificationFilter(Ld.NEAREST),e.setMagnificationFilter(Ld.NEAREST)),t.renderable.getRepeat()&amp;&amp;(e.setWrapR(Vd.REPEAT),e.setWrapS(Vd.REPEAT),e.setWrapT(Vd.REPEAT)),t.renderable.getInputData()&amp;&amp;t.renderable.setImage(null),!t.handle||t.renderable.getMTime()&gt;t.textureBuildTime.getMTime()){if(null!==t.renderable.getImageBitmap()&amp;&amp;(t.renderable.getInterpolate()&amp;&amp;(t.generateMipmap=!0,e.setMinificationFilter(Ld.LINEAR_MIPMAP_LINEAR)),t.renderable.getImageBitmap()&amp;&amp;t.renderable.getImageLoaded()&amp;&amp;(e.create2DFromImageBitmap(t.renderable.getImageBitmap()),e.activate(),e.sendParameters(),t.textureBuildTime.modified())),null!==t.renderable.getImage()&amp;&amp;(t.renderable.getInterpolate()&amp;&amp;(t.generateMipmap=!0,e.setMinificationFilter(Ld.LINEAR_MIPMAP_LINEAR)),t.renderable.getImage()&amp;&amp;t.renderable.getImageLoaded()&amp;&amp;(e.create2DFromImage(t.renderable.getImage()),e.activate(),e.sendParameters(),t.textureBuildTime.modified())),null!==t.renderable.getCanvas()){t.renderable.getInterpolate()&amp;&amp;(t.generateMipmap=!0,e.setMinificationFilter(Ld.LINEAR_MIPMAP_LINEAR));const n=t.renderable.getCanvas();e.create2DFromRaw({width:n.width,height:n.height,numComps:4,dataType:Bd.UNSIGNED_CHAR,data:n,flip:!0}),e.activate(),e.sendParameters(),t.textureBuildTime.modified()}if(null!==t.renderable.getJsImageData()){const n=t.renderable.getJsImageData();t.renderable.getInterpolate()&amp;&amp;(t.generateMipmap=!0,e.setMinificationFilter(Ld.LINEAR_MIPMAP_LINEAR)),e.create2DFromRaw({width:n.width,height:n.height,numComps:4,dataType:Bd.UNSIGNED_CHAR,data:n.data,flip:!0}),e.activate(),e.sendParameters(),t.textureBuildTime.modified()}const n=t.renderable.getInputData(0);if(n&amp;&amp;n.getPointData().getScalars()){const r=n.getExtent(),o=n.getPointData().getScalars(),a=[];for(let e=0;e&lt;t.renderable.getNumberOfInputPorts();++e){const n=t.renderable.getInputData(e),r=n?n.getPointData().getScalars().getData():null;r&amp;&amp;a.push(r)}t.renderable.getInterpolate()&amp;&amp;4===o.getNumberOfComponents()&amp;&amp;(t.generateMipmap=!0,e.setMinificationFilter(Ld.LINEAR_MIPMAP_LINEAR)),a.length%6==0?e.createCubeFromRaw({width:r[1]-r[0]+1,height:r[3]-r[2]+1,numComps:o.getNumberOfComponents(),dataType:o.getDataType(),data:a}):e.create2DFromRaw({width:r[1]-r[0]+1,height:r[3]-r[2]+1,numComps:o.getNumberOfComponents(),dataType:o.getDataType(),data:o.getData()}),e.activate(),e.sendParameters(),t.textureBuildTime.modified()}}t.handle&amp;&amp;e.activate()};const r=()=&gt;{if(t.minificationFilter!==Ld.LINEAR&amp;&amp;t.magnificationFilter!==Ld.LINEAR||Ed())return t.oglNorm16Ext};function o(e){const[t,n,r,o,a,i]=e;return[n-t+1,o-r+1,i-a+1]}function a(e){const[t,n,r]=o(e);return t*n*r}function i(e,n,r=null){const o=new(r||e.constructor)(n.reduce(((e,t)=&gt;e+a(t)),0)),i=[t.width,t.height,t.depth];let s=0;return n.forEach((t=&gt;{!function(e,t,n,r,o){const[a,i,s,l,c,u]=n,[d,p]=t,f=d*p;let g=o;for(let t=c;t&lt;=u;t++){const n=t*f;for(let t=s;t&lt;=l;t++){const o=n+t*d;for(let t=o+a,n=o+i;t&lt;=n;t++,g++)r[g]=e[t]}}}(e,i,t,o,s),s+=a(t)})),o}function s(e){if(t._openGLRenderWindow.getWebgl2())return e;const n=[],r=t.width,o=t.height,a=t.components;if(e&amp;&amp;(!Fo(r)||!Fo(o))){const i=t.context.getExtension(&quot;OES_texture_half_float&quot;),s=Bo(r),l=Bo(o),c=s*l*t.components;for(let u=0;u&lt;e.length;u++)if(null!==e[u]){let d=null;const p=o/l,f=r/s;let g=!1;t.openGLDataType===t.context.FLOAT?d=new Float32Array(c):i&amp;&amp;t.openGLDataType===i.HALF_FLOAT_OES?(d=new Uint16Array(c),g=!0):d=new Uint8Array(c);for(let t=0;t&lt;l;t++){const n=t*s*a,i=t*p;let l=Math.floor(i),c=Math.ceil(i);c&gt;=o&amp;&amp;(c=o-1);const m=i-l,h=1-m;l=l*r*a,c=c*r*a;for(let t=0;t&lt;s;t++){const o=t*a,i=t*f;let s=Math.floor(i),p=Math.ceil(i);p&gt;=r&amp;&amp;(p=r-1);const v=i-s;s*=a,p*=a;for(let t=0;t&lt;a;t++)d[n+o+t]=g?Md.toHalf(Md.fromHalf(e[u][l+s+t])*h*(1-v)+Md.fromHalf(e[u][l+p+t])*h*v+Md.fromHalf(e[u][c+s+t])*m*(1-v)+Md.fromHalf(e[u][c+p+t])*m*v):e[u][l+s+t]*h*(1-v)+e[u][l+p+t]*h*v+e[u][c+s+t]*m*(1-v)+e[u][c+p+t]*m*v}}n.push(d),t.width=s,t.height=l}else n.push(null)}if(0===n.length)for(let t=0;t&lt;e.length;t++)n.push(e[t]);return n}function l(e){if(t._openGLRenderWindow){if(t.resizable||t.renderable?.getResizable())return!1;if(t._openGLRenderWindow.getWebgl2()){return!(t._openGLRenderWindow.getGLInformations().RENDERER.value.match(/WebKit/gi)&amp;&amp;navigator.platform.match(/Mac/gi)&amp;&amp;r())||e!==Bd.UNSIGNED_SHORT&amp;&amp;e!==Bd.SHORT}return!1}return!1}function c(n,r){const o=n.getNumberOfComponents(),a=n.getDataType(),i=n.getData(),s=new Array(o),l=new Array(o);for(let e=0;e&lt;o;++e){const[t,r]=n.getRange(e);s[e]=t,l[e]=r}const c=function(e,t,n){const r=new Array(n),o=new Array(n);for(let a=0;a&lt;n;++a)r[a]=e[a],o[a]=t[a]-e[a]||1;return{scale:o,offset:r}}(s,l,o);return function(n,r,o,a){e.getOpenGLDataType(n);const i=function(e,t){for(let n=0;n&lt;e.length;n++){const r=e[n],o=t[n]+r;if(r&lt;-2048||r&gt;2048||o&lt;-2048||o&gt;2048)return!1}return!0}(r,o)||a;let s=!1;if(t._openGLRenderWindow.getWebgl2())s=t.openGLDataType===t.context.FLOAT&amp;&amp;null===t.context.getExtension(&quot;OES_texture_float_linear&quot;)&amp;&amp;i||t.openGLDataType===t.context.HALF_FLOAT;else{const e=t.context.getExtension(&quot;OES_texture_half_float&quot;);s=e&amp;&amp;t.openGLDataType===e.HALF_FLOAT_OES}t.canUseHalfFloat=s&amp;&amp;i}(a,c.offset,c.scale,r),e.useHalfFloat()||e.getOpenGLDataType(a,!0),{numComps:o,dataType:a,data:i,scaleOffsets:c}}e.destroyTexture=()=&gt;{e.deactivate(),t.context&amp;&amp;t.handle&amp;&amp;t.context.deleteTexture(t.handle),t._prevTexParams=null,t.handle=0,t.numberOfDimensions=0,t.target=0,t.components=0,t.width=0,t.height=0,t.depth=0,e.resetFormatAndType()},e.createTexture=()=&gt;{t.handle||(t.handle=t.context.createTexture(),t.target&amp;&amp;(t.context.bindTexture(t.target,t.handle),t.context.texParameteri(t.target,t.context.TEXTURE_MIN_FILTER,e.getOpenGLFilterMode(t.minificationFilter)),t.context.texParameteri(t.target,t.context.TEXTURE_MAG_FILTER,e.getOpenGLFilterMode(t.magnificationFilter)),t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_S,e.getOpenGLWrapMode(t.wrapS)),t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_T,e.getOpenGLWrapMode(t.wrapT)),t._openGLRenderWindow.getWebgl2()&amp;&amp;t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_R,e.getOpenGLWrapMode(t.wrapR)),t.context.bindTexture(t.target,null)))},e.getTextureUnit=()=&gt;t._openGLRenderWindow?t._openGLRenderWindow.getTextureUnitForTexture(e):-1,e.activate=()=&gt;{t._openGLRenderWindow.activateTexture(e),e.bind()},e.deactivate=()=&gt;{t._openGLRenderWindow&amp;&amp;t._openGLRenderWindow.deactivateTexture(e)},e.releaseGraphicsResources=n=&gt;{n&amp;&amp;t.handle&amp;&amp;(n.activateTexture(e),n.deactivateTexture(e),t.context.deleteTexture(t.handle),t._prevTexParams=null,t.handle=0,t.numberOfDimensions=0,t.target=0,t.internalFormat=0,t.format=0,t.openGLDataType=0,t.components=0,t.width=0,t.height=0,t.depth=0,t.allocatedGPUMemoryInBytes=0),t.shaderProgram&amp;&amp;(t.shaderProgram.releaseGraphicsResources(n),t.shaderProgram=null)},e.bind=()=&gt;{t.context.bindTexture(t.target,t.handle),t.autoParameters&amp;&amp;e.getMTime()&gt;t.sendParametersTime.getMTime()&amp;&amp;e.sendParameters()},e.isBound=()=&gt;{let e=!1;if(t.context&amp;&amp;t.handle){let n=0;if(t.target===t.context.TEXTURE_2D)n=t.context.TEXTURE_BINDING_2D;else kd(&quot;impossible case&quot;);e=t.context.getIntegerv(n)===t.handle}return e},e.sendParameters=()=&gt;{t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_S,e.getOpenGLWrapMode(t.wrapS)),t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_T,e.getOpenGLWrapMode(t.wrapT)),t._openGLRenderWindow.getWebgl2()&amp;&amp;t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_R,e.getOpenGLWrapMode(t.wrapR)),t.context.texParameteri(t.target,t.context.TEXTURE_MIN_FILTER,e.getOpenGLFilterMode(t.minificationFilter)),t.context.texParameteri(t.target,t.context.TEXTURE_MAG_FILTER,e.getOpenGLFilterMode(t.magnificationFilter)),t._openGLRenderWindow.getWebgl2()&amp;&amp;(t.context.texParameteri(t.target,t.context.TEXTURE_BASE_LEVEL,t.baseLevel),t.context.texParameteri(t.target,t.context.TEXTURE_MAX_LEVEL,t.maxLevel)),t.sendParametersTime.modified()},e.getInternalFormat=(n,r)=&gt;(t._forceInternalFormat||(t.internalFormat=e.getDefaultInternalFormat(n,r)),t.internalFormat||Fd(`Unable to find suitable internal format for T=${n} NC= ${r}`),[t.context.R32F,t.context.RG32F,t.context.RGB32F,t.context.RGBA32F].includes(t.internalFormat)&amp;&amp;!t.context.getExtension(&quot;OES_texture_float_linear&quot;)&amp;&amp;kd(&quot;Failed to load OES_texture_float_linear. Texture filtering is not available for *32F internal formats.&quot;),t.internalFormat),e.getDefaultInternalFormat=(n,o)=&gt;{let a=0;return a=t._openGLRenderWindow.getDefaultTextureInternalFormat(n,o,r(),e.useHalfFloat()),a||(a||(Fd(&quot;Unsupported internal texture type!&quot;),Fd(`Unable to find suitable internal format for T=${n} NC= ${o}`)),a)},e.useHalfFloat=()=&gt;t.enableUseHalfFloat&amp;&amp;t.canUseHalfFloat,e.setInternalFormat=n=&gt;{t._forceInternalFormat=!0,n!==t.internalFormat&amp;&amp;(t.internalFormat=n,e.modified())},e.getFormat=(n,r)=&gt;(t.format=e.getDefaultFormat(n,r),t.format),e.getDefaultFormat=(e,n)=&gt;{if(t._openGLRenderWindow.getWebgl2())switch(n){case 1:return t.context.RED;case 2:return t.context.RG;case 3:default:return t.context.RGB;case 4:return t.context.RGBA}else switch(n){case 1:return t.context.LUMINANCE;case 2:return t.context.LUMINANCE_ALPHA;case 3:default:return t.context.RGB;case 4:return t.context.RGBA}},e.resetFormatAndType=()=&gt;{t._prevTexParams=null,t.format=0,t.internalFormat=0,t._forceInternalFormat=!1,t.openGLDataType=0},e.getDefaultDataType=n=&gt;{const o=e.useHalfFloat();if(t._openGLRenderWindow.getWebgl2())switch(n){case Bd.UNSIGNED_CHAR:return t.context.UNSIGNED_BYTE;case r()&amp;&amp;!o&amp;&amp;Bd.SHORT:return t.context.SHORT;case r()&amp;&amp;!o&amp;&amp;Bd.UNSIGNED_SHORT:return t.context.UNSIGNED_SHORT;case o&amp;&amp;Bd.SHORT:case o&amp;&amp;Bd.UNSIGNED_SHORT:return t.context.HALF_FLOAT;case Bd.FLOAT:case Bd.VOID:default:return t.context.FLOAT}switch(n){case Bd.UNSIGNED_CHAR:return t.context.UNSIGNED_BYTE;case Bd.FLOAT:case Bd.VOID:default:if(t.context.getExtension(&quot;OES_texture_float&quot;)&amp;&amp;t.context.getExtension(&quot;OES_texture_float_linear&quot;))return t.context.FLOAT;{const e=t.context.getExtension(&quot;OES_texture_half_float&quot;);if(e&amp;&amp;t.context.getExtension(&quot;OES_texture_half_float_linear&quot;))return e.HALF_FLOAT_OES}return t.context.UNSIGNED_BYTE}},e.getOpenGLDataType=(n,r=!1)=&gt;(t.openGLDataType&amp;&amp;!r||(t.openGLDataType=e.getDefaultDataType(n)),t.openGLDataType),e.getShiftAndScale=()=&gt;{let e=0,n=1;switch(t.openGLDataType){case t.context.BYTE:n=127.5,e=n-128;break;case t.context.UNSIGNED_BYTE:n=255,e=0;break;case t.context.SHORT:n=32767.5,e=n-32768;break;case t.context.UNSIGNED_SHORT:n=65536,e=0;break;case t.context.INT:n=2147483647.5,e=n-2147483648;break;case t.context.UNSIGNED_INT:n=4294967295,e=0;case t.context.FLOAT:}return{shift:e,scale:n}},e.getOpenGLFilterMode=e=&gt;{switch(e){case Ld.NEAREST:return t.context.NEAREST;case Ld.LINEAR:return t.context.LINEAR;case Ld.NEAREST_MIPMAP_NEAREST:return t.context.NEAREST_MIPMAP_NEAREST;case Ld.NEAREST_MIPMAP_LINEAR:return t.context.NEAREST_MIPMAP_LINEAR;case Ld.LINEAR_MIPMAP_NEAREST:return t.context.LINEAR_MIPMAP_NEAREST;case Ld.LINEAR_MIPMAP_LINEAR:return t.context.LINEAR_MIPMAP_LINEAR;default:return t.context.NEAREST}},e.getOpenGLWrapMode=e=&gt;{switch(e){case Vd.CLAMP_TO_EDGE:return t.context.CLAMP_TO_EDGE;case Vd.REPEAT:return t.context.REPEAT;case Vd.MIRRORED_REPEAT:return t.context.MIRRORED_REPEAT;default:return t.context.CLAMP_TO_EDGE}},e.updateArrayDataTypeForGL=(e,n,r=!1,o=[])=&gt;{const a=[];let s=t.width*t.height*t.components;r&amp;&amp;(s*=t.depth);const l=!!o.length;if(e!==Bd.FLOAT&amp;&amp;t.openGLDataType===t.context.FLOAT)for(let e=0;e&lt;n.length;e++)if(n[e])if(l)a.push(i(n[e],o,Float32Array));else{const t=n[e].length&gt;s?n[e].subarray(0,s):n[e];a.push(new Float32Array(t))}else a.push(null);if(e!==Bd.UNSIGNED_CHAR&amp;&amp;t.openGLDataType===t.context.UNSIGNED_BYTE)for(let e=0;e&lt;n.length;e++)if(n[e])if(l)a.push(i(n[e],o,Uint8Array));else{const t=n[e].length&gt;s?n[e].subarray(0,s):n[e];a.push(new Uint8Array(t))}else a.push(null);let c=!1;if(t._openGLRenderWindow.getWebgl2())c=t.openGLDataType===t.context.HALF_FLOAT;else{const e=t.context.getExtension(&quot;OES_texture_half_float&quot;);c=e&amp;&amp;t.openGLDataType===e.HALF_FLOAT_OES}if(c)for(let e=0;e&lt;n.length;e++)if(n[e]){const t=l?i(n[e],o):n[e],r=new Uint16Array(l?t.length:s),c=r.length;for(let e=0;e&lt;c;e++)r[e]=Ud(t[e]);a.push(r)}else a.push(null);if(0===a.length)for(let e=0;e&lt;n.length;e++)a.push(l&amp;&amp;n[e]?i(n[e],o):n[e]);return a},e.create2DFromRaw=({width:n=Gd(&quot;width&quot;),height:o=Gd(&quot;height&quot;),numComps:a=Gd(&quot;numComps&quot;),dataType:i=Gd(&quot;dataType&quot;),data:c=Gd(&quot;data&quot;),flip:u=!1}={})=&gt;{if(e.getOpenGLDataType(i,!0),e.getInternalFormat(i,a),e.getFormat(i,a),!t.internalFormat||!t.format||!t.openGLDataType)return Nd(&quot;Failed to determine texture parameters.&quot;),!1;t.target=t.context.TEXTURE_2D,t.components=a,t.width=n,t.height=o,t.depth=1,t.numberOfDimensions=2,t._openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind();const d=[c],p=s(e.updateArrayDataTypeForGL(i,d));return t.context.pixelStorei(t.context.UNPACK_FLIP_Y_WEBGL,u),t.context.pixelStorei(t.context.UNPACK_ALIGNMENT,1),l(i)?(t.context.texStorage2D(t.target,1,t.internalFormat,t.width,t.height),null!=p[0]&amp;&amp;t.context.texSubImage2D(t.target,0,0,0,t.width,t.height,t.format,t.openGLDataType,p[0])):t.context.texImage2D(t.target,0,t.internalFormat,t.width,t.height,0,t.format,t.openGLDataType,p[0]),t.generateMipmap&amp;&amp;t.context.generateMipmap(t.target),u&amp;&amp;t.context.pixelStorei(t.context.UNPACK_FLIP_Y_WEBGL,!1),t.allocatedGPUMemoryInBytes=t.width*t.height*t.depth*a*t._openGLRenderWindow.getDefaultTextureByteSize(i,r(),e.useHalfFloat()),e.deactivate(),!0},e.createCubeFromRaw=({width:n=Gd(&quot;width&quot;),height:o=Gd(&quot;height&quot;),numComps:a=Gd(&quot;numComps&quot;),dataType:i=Gd(&quot;dataType&quot;),data:c=Gd(&quot;data&quot;)}={})=&gt;{if(e.getOpenGLDataType(i),e.getInternalFormat(i,a),e.getFormat(i,a),!t.internalFormat||!t.format||!t.openGLDataType)return Nd(&quot;Failed to determine texture parameters.&quot;),!1;t.target=t.context.TEXTURE_CUBE_MAP,t.components=a,t.width=n,t.height=o,t.depth=1,t.numberOfDimensions=2,t._openGLRenderWindow.activateTexture(e),t.maxLevel=c.length/6-1,e.createTexture(),e.bind();const u=s(e.updateArrayDataTypeForGL(i,c)),d=[];let p=t.width,f=t.height;for(let e=0;e&lt;u.length;e++){e%6==0&amp;&amp;0!==e&amp;&amp;(p/=2,f/=2),d[e]=Ct(i,f*p*t.components);for(let n=0;n&lt;f;++n){const r=n*p*t.components,o=(f-n-1)*p*t.components;d[e].set(u[e].slice(o,o+p*t.components),r)}}t.context.pixelStorei(t.context.UNPACK_ALIGNMENT,1),l(i)&amp;&amp;t.context.texStorage2D(t.target,6,t.internalFormat,t.width,t.height);for(let e=0;e&lt;6;e++){let n=0,r=t.width,o=t.height;for(;r&gt;=1&amp;&amp;o&gt;=1;){let a=null;n&lt;=t.maxLevel&amp;&amp;(a=d[6*n+e]),l(i)?null!=a&amp;&amp;t.context.texSubImage2D(t.context.TEXTURE_CUBE_MAP_POSITIVE_X+e,n,0,0,r,o,t.format,t.openGLDataType,a):t.context.texImage2D(t.context.TEXTURE_CUBE_MAP_POSITIVE_X+e,n,t.internalFormat,r,o,0,t.format,t.openGLDataType,a),n++,r/=2,o/=2}}return t.allocatedGPUMemoryInBytes=t.width*t.height*t.depth*a*t._openGLRenderWindow.getDefaultTextureByteSize(i,r(),e.useHalfFloat()),e.deactivate(),!0},e.createDepthFromRaw=({width:n=Gd(&quot;width&quot;),height:o=Gd(&quot;height&quot;),dataType:a=Gd(&quot;dataType&quot;),data:i=Gd(&quot;data&quot;)}={})=&gt;(e.getOpenGLDataType(a),t.format=t.context.DEPTH_COMPONENT,t._openGLRenderWindow.getWebgl2()?a===Bd.FLOAT?t.internalFormat=t.context.DEPTH_COMPONENT32F:t.internalFormat=t.context.DEPTH_COMPONENT16:t.internalFormat=t.context.DEPTH_COMPONENT,t.internalFormat&amp;&amp;t.format&amp;&amp;t.openGLDataType?(t.target=t.context.TEXTURE_2D,t.components=1,t.width=n,t.height=o,t.depth=1,t.numberOfDimensions=2,t._openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind(),t.context.pixelStorei(t.context.UNPACK_ALIGNMENT,1),l(a)?(t.context.texStorage2D(t.target,1,t.internalFormat,t.width,t.height),null!=i&amp;&amp;t.context.texSubImage2D(t.target,0,0,0,t.width,t.height,t.format,t.openGLDataType,i)):t.context.texImage2D(t.target,0,t.internalFormat,t.width,t.height,0,t.format,t.openGLDataType,i),t.generateMipmap&amp;&amp;t.context.generateMipmap(t.target),t.allocatedGPUMemoryInBytes=t.width*t.height*t.depth*t.components*t._openGLRenderWindow.getDefaultTextureByteSize(a,r(),e.useHalfFloat()),e.deactivate(),!0):(Nd(&quot;Failed to determine texture parameters.&quot;),!1)),e.create2DFromImage=n=&gt;{if(e.getOpenGLDataType(Bd.UNSIGNED_CHAR),e.getInternalFormat(Bd.UNSIGNED_CHAR,4),e.getFormat(Bd.UNSIGNED_CHAR,4),!t.internalFormat||!t.format||!t.openGLDataType)return Nd(&quot;Failed to determine texture parameters.&quot;),!1;t.target=t.context.TEXTURE_2D,t.components=4,t.depth=1,t.numberOfDimensions=2,t._openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind();const o=!(t._openGLRenderWindow.getWebgl2()||Fo(n.width)&amp;&amp;Fo(n.height));let a=n,i=n.width,s=n.height,c=!0;const u=window.chrome;if(o||u){const e=new OffscreenCanvas(Bo(n.width),Bo(n.height));i=e.width,s=e.height;const t=e.getContext(&quot;2d&quot;);t.translate(0,e.height),t.scale(1,-1),t.drawImage(n,0,0,n.width,n.height,0,0,e.width,e.height),a=e,c=!1}return t.width=i,t.height=s,t.context.pixelStorei(t.context.UNPACK_FLIP_Y_WEBGL,c),t.context.pixelStorei(t.context.UNPACK_ALIGNMENT,1),l(Bd.UNSIGNED_CHAR)?(t.context.texStorage2D(t.target,1,t.internalFormat,t.width,t.height),t.context.texSubImage2D(t.target,0,0,0,t.width,t.height,t.format,t.openGLDataType,a)):t.context.texImage2D(t.target,0,t.internalFormat,t.width,t.height,0,t.format,t.openGLDataType,a),t.generateMipmap&amp;&amp;t.context.generateMipmap(t.target),t.allocatedGPUMemoryInBytes=t.width*t.height*t.depth*t.components*t._openGLRenderWindow.getDefaultTextureByteSize(Bd.UNSIGNED_CHAR,r(),e.useHalfFloat()),e.deactivate(),!0},e.create2DFromImageBitmap=n=&gt;(e.getOpenGLDataType(Bd.UNSIGNED_CHAR),e.getInternalFormat(Bd.UNSIGNED_CHAR,4),e.getFormat(Bd.UNSIGNED_CHAR,4),t.internalFormat&amp;&amp;t.format&amp;&amp;t.openGLDataType?(t.target=t.context.TEXTURE_2D,t.components=4,t.depth=1,t.numberOfDimensions=2,t._openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind(),t.context.pixelStorei(t.context.UNPACK_ALIGNMENT,1),t.width=n.width,t.height=n.height,l(Bd.UNSIGNED_CHAR)?(t.context.texStorage2D(t.target,1,t.internalFormat,t.width,t.height),t.context.texSubImage2D(t.target,0,0,0,t.width,t.height,t.format,t.openGLDataType,n)):t.context.texImage2D(t.target,0,t.internalFormat,t.width,t.height,0,t.format,t.openGLDataType,n),t.generateMipmap&amp;&amp;t.context.generateMipmap(t.target),t.allocatedGPUMemoryInBytes=t.width*t.height*t.depth*t.components*t._openGLRenderWindow.getDefaultTextureByteSize(Bd.UNSIGNED_CHAR,r(),e.useHalfFloat()),e.deactivate(),!0):(Nd(&quot;Failed to determine texture parameters.&quot;),!1)),e.create2DFilterableFromRaw=({width:t=Gd(&quot;width&quot;),height:n=Gd(&quot;height&quot;),numComps:r=Gd(&quot;numComps&quot;),dataType:o=Gd(&quot;dataType&quot;),data:a=Gd(&quot;data&quot;),preferSizeOverAccuracy:i=!1,ranges:s}={})=&gt;e.create2DFilterableFromDataArray({width:t,height:n,dataArray:Is.newInstance({numberOfComponents:r,dataType:o,values:a,ranges:s}),preferSizeOverAccuracy:i}),e.create2DFilterableFromDataArray=({width:t=Gd(&quot;width&quot;),height:n=Gd(&quot;height&quot;),dataArray:r=Gd(&quot;dataArray&quot;),preferSizeOverAccuracy:o=!1}={})=&gt;{const{numComps:a,dataType:i,data:s}=c(r,o);e.create2DFromRaw({width:t,height:n,numComps:a,dataType:i,data:s})},e.updateVolumeInfoForGL=(n,o)=&gt;{let a=!1;const i=e.useHalfFloat();t.volumeInfo?.scale&amp;&amp;t.volumeInfo?.offset||(t.volumeInfo={scale:new Array(o),offset:new Array(o)});for(let e=0;e&lt;o;++e)t.volumeInfo.scale[e]=1,t.volumeInfo.offset[e]=0;if(r()&amp;&amp;!i&amp;&amp;n===Bd.SHORT){for(let e=0;e&lt;o;++e)t.volumeInfo.scale[e]=32767;a=!0}if(r()&amp;&amp;!i&amp;&amp;n===Bd.UNSIGNED_SHORT){for(let e=0;e&lt;o;++e)t.volumeInfo.scale[e]=65535;a=!0}if(n===Bd.UNSIGNED_CHAR){for(let e=0;e&lt;o;++e)t.volumeInfo.scale[e]=255;a=!0}return(n===Bd.FLOAT||i&amp;&amp;(n===Bd.SHORT||n===Bd.UNSIGNED_SHORT))&amp;&amp;(a=!0),a},e.create3DFromRaw=({width:i=Gd(&quot;width&quot;),height:c=Gd(&quot;height&quot;),depth:u=Gd(&quot;depth&quot;),numComps:d=Gd(&quot;numComps&quot;),dataType:p=Gd(&quot;dataType&quot;),data:f=Gd(&quot;data&quot;),updatedExtents:g=[]}={})=&gt;{let m=p,h=f;if(!e.updateVolumeInfoForGL(m,d)&amp;&amp;h){const e=i*c*u,n=structuredClone(t.volumeInfo),r=new Float32Array(e*d);t.volumeInfo.offset=n.offset,t.volumeInfo.scale=n.scale;let o=0;const a=n.scale.map((e=&gt;1/e));for(let t=0;t&lt;e;t++)for(let e=0;e&lt;d;e++)r[o]=(h[o]-n.offset[e])*a[e],o++;m=Bd.FLOAT,h=r}if(e.getOpenGLDataType(m),e.getInternalFormat(m,d),e.getFormat(m,d),!t.internalFormat||!t.format||!t.openGLDataType)return Nd(&quot;Failed to determine texture parameters.&quot;),!1;t.target=t.context.TEXTURE_3D,t.components=d,t.width=i,t.height=c,t.depth=u,t.numberOfDimensions=3,t._openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind();const v=g.length&gt;0,T=!v||!xe(t._prevTexParams,n()),x=[h],y=s(e.updateArrayDataTypeForGL(m,x,!0,T?[]:g));if(t.context.pixelStorei(t.context.UNPACK_ALIGNMENT,1),T)l(m)?(t.context.texStorage3D(t.target,1,t.internalFormat,t.width,t.height,t.depth),null!=y[0]&amp;&amp;t.context.texSubImage3D(t.target,0,0,0,0,t.width,t.height,t.depth,t.format,t.openGLDataType,y[0])):t.context.texImage3D(t.target,0,t.internalFormat,t.width,t.height,t.depth,0,t.format,t.openGLDataType,y[0]),t._prevTexParams=n();else if(v){const e=y[0];let n=0;for(let r=0;r&lt;g.length;r++){const i=g[r],s=o(i),l=a(i),c=new e.constructor(e.buffer,n,l);n+=c.byteLength,t.context.texSubImage3D(t.target,0,i[0],i[2],i[4],s[0],s[1],s[2],t.format,t.openGLDataType,c)}}return t.generateMipmap&amp;&amp;t.context.generateMipmap(t.target),t.allocatedGPUMemoryInBytes=t.width*t.height*t.depth*t.components*t._openGLRenderWindow.getDefaultTextureByteSize(m,r(),e.useHalfFloat()),e.deactivate(),!0},e.create3DFilterableFromRaw=({width:t=Gd(&quot;width&quot;),height:n=Gd(&quot;height&quot;),depth:r=Gd(&quot;depth&quot;),numComps:o=Gd(&quot;numComps&quot;),dataType:a=Gd(&quot;dataType&quot;),data:i=Gd(&quot;data&quot;),preferSizeOverAccuracy:s=!1,ranges:l,updatedExtents:c=[]}={})=&gt;e.create3DFilterableFromDataArray({width:t,height:n,depth:r,dataArray:Is.newInstance({numberOfComponents:o,dataType:a,values:i,ranges:l}),preferSizeOverAccuracy:s,updatedExtents:c}),e.create3DFilterableFromDataArray=({width:n=Gd(&quot;width&quot;),height:r=Gd(&quot;height&quot;),depth:o=Gd(&quot;depth&quot;),dataArray:a=Gd(&quot;dataArray&quot;),preferSizeOverAccuracy:i=!1,updatedExtents:s=[]}={})=&gt;{const{numComps:u,dataType:d,data:p,scaleOffsets:f}=c(a,i),g=[],m=[];for(let e=0;e&lt;u;++e)g[e]=0,m[e]=1;if(t.volumeInfo={scale:m,offset:g,dataComputedScale:f.scale,dataComputedOffset:f.offset,width:n,height:r,depth:o},t._openGLRenderWindow.getWebgl2())return e.create3DFromRaw({width:n,height:r,depth:o,numComps:u,dataType:d,data:p,updatedExtents:s});const h=n*r*o,v=structuredClone(f);let T=(e,t,n,r,o)=&gt;{e[t]=n},x=Bd.UNSIGNED_CHAR;if(d===Bd.UNSIGNED_CHAR)for(let e=0;e&lt;u;++e)v.offset[e]=0,v.scale[e]=255;else t.context.getExtension(&quot;OES_texture_float&quot;)&amp;&amp;t.context.getExtension(&quot;OES_texture_float_linear&quot;)?(x=Bd.FLOAT,T=(e,t,n,r,o)=&gt;{e[t]=(n-r)/o}):(x=Bd.UNSIGNED_CHAR,T=(e,t,n,r,o)=&gt;{e[t]=255*(n-r)/o});if(e.getOpenGLDataType(x),e.getInternalFormat(x,u),e.getFormat(x,u),!t.internalFormat||!t.format||!t.openGLDataType)return Nd(&quot;Failed to determine texture parameters.&quot;),!1;t.target=t.context.TEXTURE_2D,t.components=u,t.depth=1,t.numberOfDimensions=2;let y=t.context.getParameter(t.context.MAX_TEXTURE_SIZE);y&gt;4096&amp;&amp;(x===Bd.FLOAT||u&gt;=3)&amp;&amp;(y=4096);let b=1,A=1;h&gt;y*y&amp;&amp;(b=Math.ceil(Math.sqrt(h/(y*y))),A=b);let C=Math.sqrt(h)/b;C=Bo(C);const S=Math.floor(C*b/n),P=Math.ceil(o/S),w=Bo(r*P/A);let I;t.width=C,t.height=w,t._openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind(),t.volumeInfo.xreps=S,t.volumeInfo.yreps=P,t.volumeInfo.xstride=b,t.volumeInfo.ystride=A,t.volumeInfo.offset=v.offset,t.volumeInfo.scale=v.scale;const O=C*w*u;I=x===Bd.FLOAT?new Float32Array(O):new Uint8Array(O);let R=0;const M=Math.floor(n/b),D=Math.floor(r/A);for(let e=0;e&lt;P;e++){const a=Math.min(S,o-e*S),i=u*(t.width-a*Math.floor(n/b));for(let t=0;t&lt;D;t++){for(let o=0;o&lt;a;o++){const a=u*((e*S+o)*n*r+A*t*n);for(let e=0;e&lt;M;e++)for(let t=0;t&lt;u;t++)T(I,R,p[a+b*e*u+t],v.offset[t],v.scale[t]),R++}R+=i}}return t.context.pixelStorei(t.context.UNPACK_ALIGNMENT,1),l(x)?(t.context.texStorage2D(t.target,1,t.internalFormat,t.width,t.height),null!=I&amp;&amp;t.context.texSubImage2D(t.target,0,0,0,t.width,t.height,t.format,t.openGLDataType,I)):t.context.texImage2D(t.target,0,t.internalFormat,t.width,t.height,0,t.format,t.openGLDataType,I),e.deactivate(),!0},e.setOpenGLRenderWindow=n=&gt;{t._openGLRenderWindow!==n&amp;&amp;(e.releaseGraphicsResources(),t._openGLRenderWindow=n,t.context=null,n&amp;&amp;(t.context=t._openGLRenderWindow.getContext()))},e.getMaximumTextureSize=e=&gt;e&amp;&amp;e.isCurrent()?e.getIntegerv(e.MAX_TEXTURE_SIZE):-1,e.enableUseHalfFloat=e=&gt;{t.enableUseHalfFloat=e}}const Kd={_openGLRenderWindow:null,_forceInternalFormat:!1,_prevTexParams:null,context:null,handle:0,sendParametersTime:null,textureBuildTime:null,numberOfDimensions:0,target:0,format:0,openGLDataType:0,components:0,width:0,height:0,depth:0,autoParameters:!0,wrapS:Vd.CLAMP_TO_EDGE,wrapT:Vd.CLAMP_TO_EDGE,wrapR:Vd.CLAMP_TO_EDGE,minificationFilter:Ld.NEAREST,magnificationFilter:Ld.NEAREST,minLOD:-1e3,maxLOD:1e3,baseLevel:0,maxLevel:1e3,generateMipmap:!1,oglNorm16Ext:null,allocatedGPUMemoryInBytes:0,enableUseHalfFloat:!0,canUseHalfFloat:!1};function zd(e,t,n={}){Object.assign(t,Kd,n),pn.extend(e,t,n),t.sendParametersTime={},Vt(t.sendParametersTime,{mtime:0}),t.textureBuildTime={},Vt(t.textureBuildTime,{mtime:0}),kt(e,t,[&quot;format&quot;,&quot;openGLDataType&quot;]),Gt(e,t,[&quot;keyMatrixTime&quot;,&quot;minificationFilter&quot;,&quot;magnificationFilter&quot;,&quot;wrapS&quot;,&quot;wrapT&quot;,&quot;wrapR&quot;,&quot;generateMipmap&quot;,&quot;oglNorm16Ext&quot;]),Bt(e,t,[&quot;width&quot;,&quot;height&quot;,&quot;volumeInfo&quot;,&quot;components&quot;,&quot;handle&quot;,&quot;target&quot;,&quot;allocatedGPUMemoryInBytes&quot;]),zt(0,t,[&quot;openGLRenderWindow&quot;]),_d(e,t)}const Wd=Xt(zd,&quot;vtkOpenGLTexture&quot;);var Hd={newInstance:Wd,extend:zd,...Id};vn(&quot;vtkTexture&quot;,Wd);var jd=&quot;//VTK::System::Dec\\n\\n/*=========================================================================\\n\\n  Program:   Visualization Toolkit\\n  Module:    vtkPolyDataVS.glsl\\n\\n  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n  All rights reserved.\\n  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n\\n     This software is distributed WITHOUT ANY WARRANTY; without even\\n     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n     PURPOSE.  See the above copyright notice for more information.\\n\\n=========================================================================*/\\n\\nattribute vec4 vertexMC;\\n\\n// frag position in VC\\n//VTK::PositionVC::Dec\\n\\n// optional normal declaration\\n//VTK::Normal::Dec\\n\\n// extra lighting parameters\\n//VTK::Light::Dec\\n\\n// Texture coordinates\\n//VTK::TCoord::Dec\\n\\n// material property values\\n//VTK::Color::Dec\\n\\n// clipping plane vars\\n//VTK::Clip::Dec\\n\\n// camera and actor matrix values\\n//VTK::Camera::Dec\\n\\n// Apple Bug\\n//VTK::PrimID::Dec\\n\\n// picking support\\n//VTK::Picking::Dec\\n\\nvoid main()\\n{\\n  //VTK::Color::Impl\\n\\n  //VTK::Normal::Impl\\n\\n  //VTK::TCoord::Impl\\n\\n  //VTK::Clip::Impl\\n\\n  //VTK::PrimID::Impl\\n\\n  //VTK::PositionVC::Impl\\n\\n  //VTK::Light::Impl\\n\\n  //VTK::Picking::Impl\\n}\\n&quot;,Xd=&quot;//VTK::System::Dec\\n\\n/*=========================================================================\\n\\n  Program:   Visualization Toolkit\\n  Module:    vtkPolyDataFS.glsl\\n\\n  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n  All rights reserved.\\n  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n\\n     This software is distributed WITHOUT ANY WARRANTY; without even\\n     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n     PURPOSE.  See the above copyright notice for more information.\\n\\n=========================================================================*/\\n// Template for the polydata mappers fragment shader\\n\\nuniform int PrimitiveIDOffset;\\n\\n// VC position of this fragment\\n//VTK::PositionVC::Dec\\n\\n// optional color passed in from the vertex shader, vertexColor\\n//VTK::Color::Dec\\n\\n// optional surface normal declaration\\n//VTK::Normal::Dec\\n\\n// extra lighting parameters\\n//VTK::Light::Dec\\n\\n// define vtkImageLabelOutlineOn\\n//VTK::ImageLabelOutlineOn\\n\\n// Texture coordinates\\n//VTK::TCoord::Dec\\n\\n// picking support\\n//VTK::Picking::Dec\\n\\n// Depth Peeling Support\\n//VTK::DepthPeeling::Dec\\n\\n// clipping plane vars\\n//VTK::Clip::Dec\\n\\n// label outline \\n//VTK::LabelOutline::Dec\\n\\n// the output of this shader\\n//VTK::Output::Dec\\n\\n// Apple Bug\\n//VTK::PrimID::Dec\\n\\n// handle coincident offsets\\n//VTK::Coincident::Dec\\n\\n//VTK::ZBuffer::Dec\\n\\n//VTK::LabelOutlineHelperFunction\\n\\nvoid main()\\n{\\n  // VC position of this fragment. This should not branch/return/discard.\\n  //VTK::PositionVC::Impl\\n\\n  // Place any calls that require uniform flow (e.g. dFdx) here.\\n  //VTK::UniformFlow::Impl\\n\\n  // Set gl_FragDepth here (gl_FragCoord.z by default)\\n  //VTK::Depth::Impl\\n\\n  // Early depth peeling abort:\\n  //VTK::DepthPeeling::PreColor\\n\\n  // Apple Bug\\n  //VTK::PrimID::Impl\\n\\n  //VTK::Clip::Impl\\n\\n  //VTK::Color::Impl\\n\\n  // Generate the normal if we are not passed in one\\n  //VTK::Normal::Impl\\n\\n  //VTK::TCoord::Impl\\n\\n  //VTK::Light::Impl\\n\\n  if (gl_FragData[0].a &lt;= 0.0)\\n    {\\n    discard;\\n    }\\n\\n  //VTK::DepthPeeling::Impl\\n\\n  //VTK::Picking::Impl\\n\\n  // handle coincident offsets\\n  //VTK::Coincident::Impl\\n\\n  //VTK::ZBuffer::Impl\\n\\n  //VTK::RenderPassFragmentShader::Impl\\n}\\n&quot;;var qd={implementReplaceShaderCoincidentOffset:function(e,t,n={}){e.replaceShaderCoincidentOffset=(n,r,o)=&gt;{const a=e.getCoincidentParameters(r,o);if(a&amp;&amp;(0!==a.factor||0!==a.offset)){let e=n.Fragment;e=vd.substitute(e,&quot;//VTK::Coincident::Dec&quot;,[&quot;uniform float cfactor;&quot;,&quot;uniform float coffset;&quot;]).result,t.context.getExtension(&quot;EXT_frag_depth&quot;)&amp;&amp;(0!==a.factor?(e=vd.substitute(e,&quot;//VTK::UniformFlow::Impl&quot;,[&quot;float cscale = length(vec2(dFdx(gl_FragCoord.z),dFdy(gl_FragCoord.z)));&quot;,&quot;//VTK::UniformFlow::Impl&quot;],!1).result,e=vd.substitute(e,&quot;//VTK::Depth::Impl&quot;,&quot;gl_FragDepthEXT = gl_FragCoord.z + cfactor*cscale + 0.000016*coffset;&quot;).result):e=vd.substitute(e,&quot;//VTK::Depth::Impl&quot;,&quot;gl_FragDepthEXT = gl_FragCoord.z + 0.000016*coffset;&quot;).result),t._openGLRenderWindow.getWebgl2()&amp;&amp;(0!==a.factor?(e=vd.substitute(e,&quot;//VTK::UniformFlow::Impl&quot;,[&quot;float cscale = length(vec2(dFdx(gl_FragCoord.z),dFdy(gl_FragCoord.z)));&quot;,&quot;//VTK::UniformFlow::Impl&quot;],!1).result,e=vd.substitute(e,&quot;//VTK::Depth::Impl&quot;,&quot;gl_FragDepth = gl_FragCoord.z + cfactor*cscale + 0.000016*coffset;&quot;).result):e=vd.substitute(e,&quot;//VTK::Depth::Impl&quot;,&quot;gl_FragDepth = gl_FragCoord.z + 0.000016*coffset;&quot;).result),n.Fragment=e}}},implementBuildShadersWithReplacements:function(e,t,n={}){e.applyShaderReplacements=(e,t,n)=&gt;{let r=null;if(t&amp;&amp;(r=t.ShaderReplacements),r)for(let t=0;t&lt;r.length;t++){const o=r[t];if(n&amp;&amp;o.replaceFirst||!n&amp;&amp;!o.replaceFirst){const t=o.shaderType,n=e[t],r=vd.substitute(n,o.originalValue,o.replacementValue,o.replaceAll);e[t]=r.result}}},e.buildShaders=(n,r,o)=&gt;{e.getReplacedShaderTemplate(n,r,o),t.lastRenderPassShaderReplacement=t.currentRenderPass?t.currentRenderPass.getShaderReplacement():null,t.lastRenderPassShaderReplacement&amp;&amp;t.lastRenderPassShaderReplacement(n);const a=t.renderable.getViewSpecificProperties().OpenGL;e.applyShaderReplacements(n,a,!0),e.replaceShaderValues(n,r,o),e.applyShaderReplacements(n,a)},e.getReplacedShaderTemplate=(n,r,o)=&gt;{const a=t.renderable.getViewSpecificProperties().OpenGL;e.getShaderTemplate(n,r,o);let i=n.Vertex;if(a){const e=a.VertexShaderCode;void 0!==e&amp;&amp;&quot;&quot;!==e&amp;&amp;(i=e)}n.Vertex=i;let s=n.Fragment;if(a){const e=a.FragmentShaderCode;void 0!==e&amp;&amp;&quot;&quot;!==e&amp;&amp;(s=e)}n.Fragment=s;let l=n.Geometry;if(a){const e=a.GeometryShaderCode;void 0!==e&amp;&amp;(l=e)}n.Geometry=l}}};const{FieldAssociations:Yd}=Qs,{primTypes:Jd}=Sd,{Representation:Zd,Shading:Qd}=us,{ScalarMode:$d}=Ql,{Filter:ep,Wrap:tp}=Hd,{vtkErrorMacro:np}=ln,rp={type:&quot;StartEvent&quot;},op={type:&quot;EndEvent&quot;},{CoordinateSystem:ap}=Zi;function ip(e,t){function n(e,t,n){return t.identity(n),e.reduce(((e,n,r)=&gt;0===r?n?t.copy(e,n):t.identity(e):n?t.multiply(e,e,n):e),n)}t.classHierarchy.push(&quot;vtkOpenGLPolyDataMapper&quot;),e.buildPass=n=&gt;{n&amp;&amp;(t.currentRenderPass=null,t.openGLActor=e.getFirstAncestorOfType(&quot;vtkOpenGLActor&quot;),t._openGLRenderer=t.openGLActor.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;),t._openGLRenderWindow=t._openGLRenderer.getLastAncestorOfType(&quot;vtkOpenGLRenderWindow&quot;),t.openGLCamera=t._openGLRenderer.getViewNodeFor(t._openGLRenderer.getRenderable().getActiveCamera(),t.openGLCamera))},e.translucentPass=(n,r)=&gt;{n&amp;&amp;(t.currentRenderPass=r,e.render())},e.zBufferPass=n=&gt;{n&amp;&amp;(t.haveSeenDepthRequest=!0,t.renderDepth=!0,e.render(),t.renderDepth=!1)},e.opaqueZBufferPass=t=&gt;e.zBufferPass(t),e.opaquePass=t=&gt;{t&amp;&amp;e.render()},e.render=()=&gt;{const n=t._openGLRenderWindow.getContext();if(t.context!==n){t.context=n;for(let e=Jd.Start;e&lt;Jd.End;e++)t.primitives[e].setOpenGLRenderWindow(t._openGLRenderWindow)}const r=t.openGLActor.getRenderable(),o=t._openGLRenderer.getRenderable();e.renderPiece(o,r)},e.getShaderTemplate=(e,t,n)=&gt;{e.Vertex=jd,e.Fragment=Xd,e.Geometry=&quot;&quot;},e.replaceShaderColor=(e,n,r)=&gt;{let o=e.Vertex,a=e.Geometry,i=e.Fragment;const s=t.lastBoundBO.getReferenceByName(&quot;lastLightComplexity&quot;);let l=[&quot;uniform float ambient;&quot;,&quot;uniform float diffuse;&quot;,&quot;uniform float specular;&quot;,&quot;uniform float opacityUniform; // the fragment opacity&quot;,&quot;uniform vec3 ambientColorUniform;&quot;,&quot;uniform vec3 diffuseColorUniform;&quot;];s&amp;&amp;(l=l.concat([&quot;uniform vec3 specularColorUniform;&quot;,&quot;uniform float specularPowerUniform;&quot;]));let c=[&quot;vec3 ambientColor;&quot;,&quot;  vec3 diffuseColor;&quot;,&quot;  float opacity;&quot;];s&amp;&amp;(c=c.concat([&quot;  vec3 specularColor;&quot;,&quot;  float specularPower;&quot;])),c=c.concat([&quot;  ambientColor = ambientColorUniform;&quot;,&quot;  diffuseColor = diffuseColorUniform;&quot;,&quot;  opacity = opacityUniform;&quot;]),s&amp;&amp;(c=c.concat([&quot;  specularColor = specularColorUniform;&quot;,&quot;  specularPower = specularPowerUniform;&quot;])),0===t.lastBoundBO.getCABO().getColorComponents()||t.drawingEdges||(l=l.concat([&quot;varying vec4 vertexColorVSOutput;&quot;]),o=vd.substitute(o,&quot;//VTK::Color::Dec&quot;,[&quot;attribute vec4 scalarColor;&quot;,&quot;varying vec4 vertexColorVSOutput;&quot;]).result,o=vd.substitute(o,&quot;//VTK::Color::Impl&quot;,[&quot;vertexColorVSOutput =  scalarColor;&quot;]).result,a=vd.substitute(a,&quot;//VTK::Color::Dec&quot;,[&quot;in vec4 vertexColorVSOutput[];&quot;,&quot;out vec4 vertexColorGSOutput;&quot;]).result,a=vd.substitute(a,&quot;//VTK::Color::Impl&quot;,[&quot;vertexColorGSOutput = vertexColorVSOutput[i];&quot;]).result),0===t.lastBoundBO.getCABO().getColorComponents()||t.drawingEdges?(t.renderable.getAreScalarsMappedFromCells()||t.renderable.getInterpolateScalarsBeforeMapping())&amp;&amp;t.renderable.getColorCoordinates()&amp;&amp;!t.drawingEdges?i=vd.substitute(i,&quot;//VTK::Color::Impl&quot;,c.concat([&quot;  vec4 texColor = texture2D(texture1, tcoordVCVSOutput.st);&quot;,&quot;  diffuseColor = texColor.rgb;&quot;,&quot;  ambientColor = texColor.rgb;&quot;,&quot;  opacity = opacity*texColor.a;&quot;])).result:(r.getBackfaceProperty()&amp;&amp;!t.drawingEdges&amp;&amp;(l=l.concat([&quot;uniform float opacityUniformBF; // the fragment opacity&quot;,&quot;uniform float ambientIntensityBF; // the material ambient&quot;,&quot;uniform float diffuseIntensityBF; // the material diffuse&quot;,&quot;uniform vec3 ambientColorUniformBF; // ambient material color&quot;,&quot;uniform vec3 diffuseColorUniformBF; // diffuse material color&quot;]),s?(l=l.concat([&quot;uniform float specularIntensityBF; // the material specular intensity&quot;,&quot;uniform vec3 specularColorUniformBF; // intensity weighted color&quot;,&quot;uniform float specularPowerUniformBF;&quot;]),c=c.concat([&quot;if (gl_FrontFacing == false) {&quot;,&quot;  ambientColor = ambientIntensityBF * ambientColorUniformBF;&quot;,&quot;  diffuseColor = diffuseIntensityBF * diffuseColorUniformBF;&quot;,&quot;  specularColor = specularIntensityBF * specularColorUniformBF;&quot;,&quot;  specularPower = specularPowerUniformBF;&quot;,&quot;  opacity = opacityUniformBF; }&quot;])):c=c.concat([&quot;if (gl_FrontFacing == false) {&quot;,&quot;  ambientColor = ambientIntensityBF * ambientColorUniformBF;&quot;,&quot;  diffuseColor = diffuseIntensityBF * diffuseColorUniformBF;&quot;,&quot;  opacity = opacityUniformBF; }&quot;])),t.haveCellScalars&amp;&amp;!t.drawingEdges&amp;&amp;(l=l.concat([&quot;uniform samplerBuffer texture1;&quot;])),i=vd.substitute(i,&quot;//VTK::Color::Impl&quot;,c).result):i=vd.substitute(i,&quot;//VTK::Color::Impl&quot;,c.concat([&quot;  diffuseColor = vertexColorVSOutput.rgb;&quot;,&quot;  ambientColor = vertexColorVSOutput.rgb;&quot;,&quot;  opacity = opacity*vertexColorVSOutput.a;&quot;])).result,i=vd.substitute(i,&quot;//VTK::Color::Dec&quot;,l).result,e.Vertex=o,e.Geometry=a,e.Fragment=i},e.replaceShaderLight=(e,n,r)=&gt;{let o=e.Fragment;const a=t.lastBoundBO.getReferenceByName(&quot;lastLightComplexity&quot;),i=t.lastBoundBO.getReferenceByName(&quot;lastLightCount&quot;);let s=[];switch(a){case 0:o=vd.substitute(o,&quot;//VTK::Light::Impl&quot;,[&quot;  gl_FragData[0] = vec4(ambientColor * ambient + diffuseColor * diffuse, opacity);&quot;,&quot;  //VTK::Light::Impl&quot;],!1).result;break;case 1:o=vd.substitute(o,&quot;//VTK::Light::Impl&quot;,[&quot;  float df = max(0.0, normalVCVSOutput.z);&quot;,&quot;  float sf = pow(df, specularPower);&quot;,&quot;  vec3 diffuseL = df * diffuseColor;&quot;,&quot;  vec3 specularL = sf * specularColor;&quot;,&quot;  gl_FragData[0] = vec4(ambientColor * ambient + diffuseL * diffuse + specularL * specular, opacity);&quot;,&quot;  //VTK::Light::Impl&quot;],!1).result;break;case 2:for(let e=0;e&lt;i;++e)s=s.concat([`uniform vec3 lightColor${e};`,`uniform vec3 lightDirectionVC${e}; // normalized`,`uniform vec3 lightHalfAngleVC${e}; // normalized`]);o=vd.substitute(o,&quot;//VTK::Light::Dec&quot;,s).result,s=[&quot;vec3 diffuseL = vec3(0,0,0);&quot;,&quot;  vec3 specularL = vec3(0,0,0);&quot;,&quot;  float df;&quot;];for(let e=0;e&lt;i;++e)s=s.concat([`  df = max(0.0, dot(normalVCVSOutput, -lightDirectionVC${e}));`,`  diffuseL += ((df) * lightColor${e});`,`  if (dot(normalVCVSOutput, lightDirectionVC${e}) &lt; 0.0)`,&quot;    {&quot;,`    float sf = sign(df)*pow(max(1e-5,\\n                                              dot(reflect(lightDirectionVC${e},normalVCVSOutput),\\n                                                  normalize(-vertexVC.xyz))),\\n                                         specularPower);`,`    specularL += (sf * lightColor${e});`,&quot;    }&quot;]);s=s.concat([&quot;  diffuseL = diffuseL * diffuseColor;&quot;,&quot;  specularL = specularL * specularColor;&quot;,&quot;  gl_FragData[0] = vec4(ambientColor * ambient + diffuseL * diffuse + specularL * specular, opacity);&quot;,&quot;  //VTK::Light::Impl&quot;]),o=vd.substitute(o,&quot;//VTK::Light::Impl&quot;,s,!1).result;break;case 3:for(let e=0;e&lt;i;++e)s=s.concat([`uniform vec3 lightColor${e};`,`uniform vec3 lightDirectionVC${e}; // normalized`,`uniform vec3 lightHalfAngleVC${e}; // normalized`,`uniform vec3 lightPositionVC${e};`,`uniform vec3 lightAttenuation${e};`,`uniform float lightConeAngle${e};`,`uniform float lightExponent${e};`,`uniform int lightPositional${e};`]);o=vd.substitute(o,&quot;//VTK::Light::Dec&quot;,s).result,s=[&quot;vec3 diffuseL = vec3(0,0,0);&quot;,&quot;  vec3 specularL = vec3(0,0,0);&quot;,&quot;  vec3 vertLightDirectionVC;&quot;,&quot;  float attenuation;&quot;,&quot;  float df;&quot;];for(let e=0;e&lt;i;++e)s=s.concat([&quot;  attenuation = 1.0;&quot;,`  if (lightPositional${e} == 0)`,&quot;    {&quot;,`      vertLightDirectionVC = lightDirectionVC${e};`,&quot;    }&quot;,&quot;  else&quot;,&quot;    {&quot;,`    vertLightDirectionVC = vertexVC.xyz - lightPositionVC${e};`,&quot;    float distanceVC = length(vertLightDirectionVC);&quot;,&quot;    vertLightDirectionVC = normalize(vertLightDirectionVC);&quot;,&quot;    attenuation = 1.0 /&quot;,`      (lightAttenuation${e}.x`,`       + lightAttenuation${e}.y * distanceVC`,`       + lightAttenuation${e}.z * distanceVC * distanceVC);`,&quot;    // per OpenGL standard cone angle is 90 or less for a spot light&quot;,`    if (lightConeAngle${e} &lt;= 90.0)`,&quot;      {&quot;,`      float coneDot = dot(vertLightDirectionVC, lightDirectionVC${e});`,&quot;      // if inside the cone&quot;,`      if (coneDot &gt;= cos(radians(lightConeAngle${e})))`,&quot;        {&quot;,`        attenuation = attenuation * pow(coneDot, lightExponent${e});`,&quot;        }&quot;,&quot;      else&quot;,&quot;        {&quot;,&quot;        attenuation = 0.0;&quot;,&quot;        }&quot;,&quot;      }&quot;,&quot;    }&quot;,&quot;    df = max(0.0, attenuation*dot(normalVCVSOutput, -vertLightDirectionVC));&quot;,`    diffuseL += ((df) * lightColor${e});`,&quot;    if (dot(normalVCVSOutput, vertLightDirectionVC) &lt; 0.0)&quot;,&quot;      {&quot;,`      float sf = sign(df)*attenuation*pow(max(1e-5,\\n                                                           dot(reflect(lightDirectionVC${e},\\n                                                                       normalVCVSOutput),\\n                                                               normalize(-vertexVC.xyz))),\\n                                                       specularPower);`,`    specularL += ((sf) * lightColor${e});`,&quot;    }&quot;]);s=s.concat([&quot;  diffuseL = diffuseL * diffuseColor;&quot;,&quot;  specularL = specularL * specularColor;&quot;,&quot;  gl_FragData[0] = vec4(ambientColor * ambient + diffuseL * diffuse + specularL * specular, opacity);&quot;,&quot;  //VTK::Light::Impl&quot;]),o=vd.substitute(o,&quot;//VTK::Light::Impl&quot;,s,!1).result;break;default:np(&quot;bad light complexity&quot;)}e.Fragment=o},e.replaceShaderNormal=(e,n,r)=&gt;{if(t.lastBoundBO.getReferenceByName(&quot;lastLightComplexity&quot;)&gt;0){let n=e.Vertex,o=e.Geometry,a=e.Fragment;t.lastBoundBO.getCABO().getNormalOffset()?(n=vd.substitute(n,&quot;//VTK::Normal::Dec&quot;,[&quot;attribute vec3 normalMC;&quot;,&quot;uniform mat3 normalMatrix;&quot;,&quot;varying vec3 normalVCVSOutput;&quot;]).result,n=vd.substitute(n,&quot;//VTK::Normal::Impl&quot;,[&quot;normalVCVSOutput = normalMatrix * normalMC;&quot;]).result,o=vd.substitute(o,&quot;//VTK::Normal::Dec&quot;,[&quot;in vec3 normalVCVSOutput[];&quot;,&quot;out vec3 normalVCGSOutput;&quot;]).result,o=vd.substitute(o,&quot;//VTK::Normal::Impl&quot;,[&quot;normalVCGSOutput = normalVCVSOutput[i];&quot;]).result,a=vd.substitute(a,&quot;//VTK::Normal::Dec&quot;,[&quot;varying vec3 normalVCVSOutput;&quot;]).result,a=vd.substitute(a,&quot;//VTK::Normal::Impl&quot;,[&quot;vec3 normalVCVSOutput = normalize(normalVCVSOutput);&quot;,&quot;  if (gl_FrontFacing == false) { normalVCVSOutput = -normalVCVSOutput; }&quot;]).result):t.haveCellNormals?(a=vd.substitute(a,&quot;//VTK::Normal::Dec&quot;,[&quot;uniform mat3 normalMatrix;&quot;,&quot;uniform samplerBuffer textureN;&quot;]).result,a=vd.substitute(a,&quot;//VTK::Normal::Impl&quot;,[&quot;vec3 normalVCVSOutput = normalize(normalMatrix *&quot;,&quot;    texelFetchBuffer(textureN, gl_PrimitiveID + PrimitiveIDOffset).xyz);&quot;,&quot;  if (gl_FrontFacing == false) { normalVCVSOutput = -normalVCVSOutput; }&quot;]).result):t.lastBoundBO.getOpenGLMode(r.getProperty().getRepresentation())===t.context.LINES?(a=vd.substitute(a,&quot;//VTK::UniformFlow::Impl&quot;,[&quot;  vec3 fdx = dFdx(vertexVC.xyz);&quot;,&quot;  vec3 fdy = dFdy(vertexVC.xyz);&quot;,&quot;  //VTK::UniformFlow::Impl&quot;]).result,a=vd.substitute(a,&quot;//VTK::Normal::Impl&quot;,[&quot;vec3 normalVCVSOutput;&quot;,&quot;  if (abs(fdx.x) &gt; 0.0)&quot;,&quot;    { fdx = normalize(fdx); normalVCVSOutput = normalize(cross(vec3(fdx.y, -fdx.x, 0.0), fdx)); }&quot;,&quot;  else { fdy = normalize(fdy); normalVCVSOutput = normalize(cross(vec3(fdy.y, -fdy.x, 0.0), fdy));}&quot;]).result):(a=vd.substitute(a,&quot;//VTK::Normal::Dec&quot;,[&quot;uniform int cameraParallel;&quot;]).result,a=vd.substitute(a,&quot;//VTK::UniformFlow::Impl&quot;,[&quot;  vec3 fdx = dFdx(vertexVC.xyz);&quot;,&quot;  vec3 fdy = dFdy(vertexVC.xyz);&quot;,&quot;  //VTK::UniformFlow::Impl&quot;]).result,a=vd.substitute(a,&quot;//VTK::Normal::Impl&quot;,[&quot;  fdx = normalize(fdx);&quot;,&quot;  fdy = normalize(fdy);&quot;,&quot;  vec3 normalVCVSOutput = normalize(cross(fdx,fdy));&quot;,&quot;  if (cameraParallel == 1 &amp;&amp; normalVCVSOutput.z &lt; 0.0) { normalVCVSOutput = -1.0*normalVCVSOutput; }&quot;,&quot;  if (cameraParallel == 0 &amp;&amp; dot(normalVCVSOutput,vertexVC.xyz) &gt; 0.0) { normalVCVSOutput = -1.0*normalVCVSOutput; }&quot;]).result),e.Vertex=n,e.Geometry=o,e.Fragment=a}},e.replaceShaderPositionVC=(e,n,r)=&gt;{t.lastBoundBO.replaceShaderPositionVC(e,n,r);let o=e.Vertex,a=e.Geometry,i=e.Fragment;t.lastBoundBO.getReferenceByName(&quot;lastLightComplexity&quot;)&gt;0?(o=vd.substitute(o,&quot;//VTK::PositionVC::Dec&quot;,[&quot;varying vec4 vertexVCVSOutput;&quot;]).result,o=vd.substitute(o,&quot;//VTK::PositionVC::Impl&quot;,[&quot;vertexVCVSOutput = MCVCMatrix * vertexMC;&quot;,&quot;  gl_Position = MCPCMatrix * vertexMC;&quot;]).result,o=vd.substitute(o,&quot;//VTK::Camera::Dec&quot;,[&quot;uniform mat4 MCPCMatrix;&quot;,&quot;uniform mat4 MCVCMatrix;&quot;]).result,a=vd.substitute(a,&quot;//VTK::PositionVC::Dec&quot;,[&quot;in vec4 vertexVCVSOutput[];&quot;,&quot;out vec4 vertexVCGSOutput;&quot;]).result,a=vd.substitute(a,&quot;//VTK::PositionVC::Impl&quot;,[&quot;vertexVCGSOutput = vertexVCVSOutput[i];&quot;]).result,i=vd.substitute(i,&quot;//VTK::PositionVC::Dec&quot;,[&quot;varying vec4 vertexVCVSOutput;&quot;]).result,i=vd.substitute(i,&quot;//VTK::PositionVC::Impl&quot;,[&quot;vec4 vertexVC = vertexVCVSOutput;&quot;]).result):(o=vd.substitute(o,&quot;//VTK::Camera::Dec&quot;,[&quot;uniform mat4 MCPCMatrix;&quot;]).result,o=vd.substitute(o,&quot;//VTK::PositionVC::Impl&quot;,[&quot;  gl_Position = MCPCMatrix * vertexMC;&quot;]).result),e.Vertex=o,e.Geometry=a,e.Fragment=i},e.replaceShaderTCoord=(e,n,r)=&gt;{if(t.lastBoundBO.getCABO().getTCoordOffset()){let n=e.Vertex,r=e.Geometry,o=e.Fragment;if(t.drawingEdges)return;n=vd.substitute(n,&quot;//VTK::TCoord::Impl&quot;,&quot;tcoordVCVSOutput = tcoordMC;&quot;).result;const a=t.openGLActor.getActiveTextures();let i=2,s=2;if(a&amp;&amp;a.length&gt;0&amp;&amp;(i=a[0].getComponents(),a[0].getTarget()===t.context.TEXTURE_CUBE_MAP&amp;&amp;(s=3)),t.renderable.getColorTextureMap()&amp;&amp;(i=t.renderable.getColorTextureMap().getPointData().getScalars().getNumberOfComponents(),s=2),2===s){if(n=vd.substitute(n,&quot;//VTK::TCoord::Dec&quot;,&quot;attribute vec2 tcoordMC; varying vec2 tcoordVCVSOutput;&quot;).result,r=vd.substitute(r,&quot;//VTK::TCoord::Dec&quot;,[&quot;in vec2 tcoordVCVSOutput[];&quot;,&quot;out vec2 tcoordVCGSOutput;&quot;]).result,r=vd.substitute(r,&quot;//VTK::TCoord::Impl&quot;,&quot;tcoordVCGSOutput = tcoordVCVSOutput[i];&quot;).result,o=vd.substitute(o,&quot;//VTK::TCoord::Dec&quot;,[&quot;varying vec2 tcoordVCVSOutput;&quot;,&quot;uniform sampler2D texture1;&quot;]).result,a&amp;&amp;a.length&gt;=1)switch(i){case 1:o=vd.substitute(o,&quot;//VTK::TCoord::Impl&quot;,[&quot;  vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);&quot;,&quot;  ambientColor = ambientColor*tcolor.r;&quot;,&quot;  diffuseColor = diffuseColor*tcolor.r;&quot;]).result;break;case 2:o=vd.substitute(o,&quot;//VTK::TCoord::Impl&quot;,[&quot;  vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);&quot;,&quot;  ambientColor = ambientColor*tcolor.r;&quot;,&quot;  diffuseColor = diffuseColor*tcolor.r;&quot;,&quot;  opacity = opacity * tcolor.g;&quot;]).result;break;default:o=vd.substitute(o,&quot;//VTK::TCoord::Impl&quot;,[&quot;  vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);&quot;,&quot;  ambientColor = ambientColor*tcolor.rgb;&quot;,&quot;  diffuseColor = diffuseColor*tcolor.rgb;&quot;,&quot;  opacity = opacity * tcolor.a;&quot;]).result}}else switch(n=vd.substitute(n,&quot;//VTK::TCoord::Dec&quot;,&quot;attribute vec3 tcoordMC; varying vec3 tcoordVCVSOutput;&quot;).result,r=vd.substitute(r,&quot;//VTK::TCoord::Dec&quot;,[&quot;in vec3 tcoordVCVSOutput[];&quot;,&quot;out vec3 tcoordVCGSOutput;&quot;]).result,r=vd.substitute(r,&quot;//VTK::TCoord::Impl&quot;,&quot;tcoordVCGSOutput = tcoordVCVSOutput[i];&quot;).result,o=vd.substitute(o,&quot;//VTK::TCoord::Dec&quot;,[&quot;varying vec3 tcoordVCVSOutput;&quot;,&quot;uniform samplerCube texture1;&quot;]).result,i){case 1:o=vd.substitute(o,&quot;//VTK::TCoord::Impl&quot;,[&quot;  vec4 tcolor = textureCube(texture1, tcoordVCVSOutput);&quot;,&quot;  ambientColor = ambientColor*tcolor.r;&quot;,&quot;  diffuseColor = diffuseColor*tcolor.r;&quot;]).result;break;case 2:o=vd.substitute(o,&quot;//VTK::TCoord::Impl&quot;,[&quot;  vec4 tcolor = textureCube(texture1, tcoordVCVSOutput);&quot;,&quot;  ambientColor = ambientColor*tcolor.r;&quot;,&quot;  diffuseColor = diffuseColor*tcolor.r;&quot;,&quot;  opacity = opacity * tcolor.g;&quot;]).result;break;default:o=vd.substitute(o,&quot;//VTK::TCoord::Impl&quot;,[&quot;  vec4 tcolor = textureCube(texture1, tcoordVCVSOutput);&quot;,&quot;  ambientColor = ambientColor*tcolor.rgb;&quot;,&quot;  diffuseColor = diffuseColor*tcolor.rgb;&quot;,&quot;  opacity = opacity * tcolor.a;&quot;]).result}e.Vertex=n,e.Geometry=r,e.Fragment=o}},e.replaceShaderClip=(e,n,r)=&gt;{let o=e.Vertex,a=e.Fragment;if(t.renderable.getNumberOfClippingPlanes()){const e=t.renderable.getNumberOfClippingPlanes();o=vd.substitute(o,&quot;//VTK::Clip::Dec&quot;,[&quot;uniform int numClipPlanes;&quot;,`uniform vec4 clipPlanes[${e}];`,`varying float clipDistancesVSOutput[${e}];`]).result,o=vd.substitute(o,&quot;//VTK::Clip::Impl&quot;,[`for (int planeNum = 0; planeNum &lt; ${e}; planeNum++)`,&quot;    {&quot;,&quot;    if (planeNum &gt;= numClipPlanes)&quot;,&quot;        {&quot;,&quot;        break;&quot;,&quot;        }&quot;,&quot;    clipDistancesVSOutput[planeNum] = dot(clipPlanes[planeNum], vertexMC);&quot;,&quot;    }&quot;]).result,a=vd.substitute(a,&quot;//VTK::Clip::Dec&quot;,[&quot;uniform int numClipPlanes;&quot;,`varying float clipDistancesVSOutput[${e}];`]).result,a=vd.substitute(a,&quot;//VTK::Clip::Impl&quot;,[`for (int planeNum = 0; planeNum &lt; ${e}; planeNum++)`,&quot;    {&quot;,&quot;    if (planeNum &gt;= numClipPlanes)&quot;,&quot;        {&quot;,&quot;        break;&quot;,&quot;        }&quot;,&quot;    if (clipDistancesVSOutput[planeNum] &lt; 0.0) discard;&quot;,&quot;    }&quot;]).result}e.Vertex=o,e.Fragment=a},e.getCoincidentParameters=(e,n)=&gt;{let r={factor:0,offset:0};const o=n.getProperty();if(t.renderable.getResolveCoincidentTopology()==Pl.PolygonOffset||o.getEdgeVisibility()&amp;&amp;o.getRepresentation()===Zd.SURFACE){const e=t.lastBoundBO.getPrimitiveType();e===Jd.Points||o.getRepresentation()===Zd.POINTS?r=t.renderable.getCoincidentTopologyPointOffsetParameter():e===Jd.Lines||o.getRepresentation()===Zd.WIREFRAME?r=t.renderable.getCoincidentTopologyLineOffsetParameters():e!==Jd.Tris&amp;&amp;e!==Jd.TriStrips||(r=t.renderable.getCoincidentTopologyPolygonOffsetParameters()),e!==Jd.TrisEdges&amp;&amp;e!==Jd.TriStripsEdges||(r=t.renderable.getCoincidentTopologyPolygonOffsetParameters(),r.factor/=2,r.offset/=2)}const a=t._openGLRenderer.getSelector();return a&amp;&amp;a.getFieldAssociation()===Yd.FIELD_ASSOCIATION_POINTS&amp;&amp;(r.offset-=2),r},e.replaceShaderPicking=(e,n,r)=&gt;{let o=e.Fragment,a=e.Vertex;if(o=vd.substitute(o,&quot;//VTK::Picking::Dec&quot;,[&quot;uniform int picking;&quot;,&quot;//VTK::Picking::Dec&quot;]).result,t._openGLRenderer.getSelector()){switch(t.lastSelectionState!==Bl.ID_LOW24&amp;&amp;t.lastSelectionState!==Bl.ID_HIGH24||(a=vd.substitute(a,&quot;//VTK::Picking::Dec&quot;,[&quot;flat out int vertexIDVSOutput;\\n&quot;,&quot;uniform int VertexIDOffset;\\n&quot;]).result,a=vd.substitute(a,&quot;//VTK::Picking::Impl&quot;,&quot;  vertexIDVSOutput = gl_VertexID + VertexIDOffset;\\n&quot;).result,o=vd.substitute(o,&quot;//VTK::Picking::Dec&quot;,&quot;flat in int vertexIDVSOutput;\\n&quot;).result,o=vd.substitute(o,&quot;//VTK::Picking::Impl&quot;,[&quot;  int idx = vertexIDVSOutput;&quot;,&quot;//VTK::Picking::Impl&quot;]).result),t.lastSelectionState){case Bl.ID_LOW24:o=vd.substitute(o,&quot;//VTK::Picking::Impl&quot;,&quot;  gl_FragData[0] = vec4(float(idx%256)/255.0, float((idx/256)%256)/255.0, float((idx/65536)%256)/255.0, 1.0);&quot;).result;break;case Bl.ID_HIGH24:o=vd.substitute(o,&quot;//VTK::Picking::Impl&quot;,&quot;  gl_FragData[0] = vec4(float((idx/16777216)%256)/255.0, 0.0, 0.0, 1.0);&quot;).result;break;default:o=vd.substitute(o,&quot;//VTK::Picking::Dec&quot;,&quot;uniform vec3 mapperIndex;&quot;).result,o=vd.substitute(o,&quot;//VTK::Picking::Impl&quot;,&quot;  gl_FragData[0] = picking != 0 ? vec4(mapperIndex,1.0) : gl_FragData[0];&quot;).result}e.Fragment=o,e.Vertex=a}},e.replaceShaderValues=(n,r,o)=&gt;{if(e.replaceShaderColor(n,r,o),e.replaceShaderNormal(n,r,o),e.replaceShaderLight(n,r,o),e.replaceShaderTCoord(n,r,o),e.replaceShaderPicking(n,r,o),e.replaceShaderClip(n,r,o),e.replaceShaderCoincidentOffset(n,r,o),e.replaceShaderPositionVC(n,r,o),t.haveSeenDepthRequest){let e=n.Fragment;e=vd.substitute(e,&quot;//VTK::ZBuffer::Dec&quot;,&quot;uniform int depthRequest;&quot;).result,e=vd.substitute(e,&quot;//VTK::ZBuffer::Impl&quot;,[&quot;if (depthRequest == 1) {&quot;,&quot;float iz = floor(gl_FragCoord.z*65535.0 + 0.1);&quot;,&quot;float rf = floor(iz/256.0)/255.0;&quot;,&quot;float gf = mod(iz,256.0)/255.0;&quot;,&quot;gl_FragData[0] = vec4(rf, gf, 0.0, 1.0); }&quot;]).result,n.Fragment=e}},e.getNeedToRebuildShaders=(e,n,r)=&gt;{let o=0,a=0;const i=e.getPrimitiveType(),s=t.currentInput;let l=!1;const c=s.getPointData().getNormals(),u=s.getCellData().getNormals(),d=r.getProperty().getInterpolation()===Qd.FLAT,p=r.getProperty().getRepresentation(),f=e.getOpenGLMode(p,i);if(f===t.context.TRIANGLES||u&amp;&amp;!c||!d&amp;&amp;c?l=!0:d||f!==t.context.LINES||(l=!0),r.getProperty().getLighting()&amp;&amp;l){o=0;const e=n.getLightsByReference();for(let t=0;t&lt;e.length;++t){const n=e[t];n.getSwitch()&gt;0&amp;&amp;(a++,0===o&amp;&amp;(o=1)),1===o&amp;&amp;(a&gt;1||1!==n.getIntensity()||!n.lightTypeIsHeadLight())&amp;&amp;(o=2),o&lt;3&amp;&amp;n.getPositional()&amp;&amp;(o=3)}}let g=!1;const m=t.lastBoundBO.getReferenceByName(&quot;lastLightComplexity&quot;),h=t.lastBoundBO.getReferenceByName(&quot;lastLightCount&quot;);return m===o&amp;&amp;h===a||(t.lastBoundBO.set({lastLightComplexity:o},!0),t.lastBoundBO.set({lastLightCount:a},!0),g=!0),(!t.currentRenderPass&amp;&amp;t.lastRenderPassShaderReplacement||t.currentRenderPass&amp;&amp;t.currentRenderPass.getShaderReplacement()!==t.lastRenderPassShaderReplacement)&amp;&amp;(g=!0),!!(t.lastHaveSeenDepthRequest!==t.haveSeenDepthRequest||e.getShaderSourceTime().getMTime()&lt;t.renderable.getMTime()||e.getShaderSourceTime().getMTime()&lt;t.currentInput.getMTime()||e.getShaderSourceTime().getMTime()&lt;t.selectionStateChanged.getMTime()||g)&amp;&amp;(t.lastHaveSeenDepthRequest=t.haveSeenDepthRequest,!0)},e.invokeShaderCallbacks=(e,n,r)=&gt;{const o=t.renderable.getViewSpecificProperties().ShadersCallbacks;o&amp;&amp;o.forEach((t=&gt;{t.callback(t.userData,e,n,r)}))},e.setMapperShaderParameters=(n,r,o)=&gt;{if(n.getProgram().isUniformUsed(&quot;PrimitiveIDOffset&quot;)&amp;&amp;n.getProgram().setUniformi(&quot;PrimitiveIDOffset&quot;,t.primitiveIDOffset),n.getProgram().isUniformUsed(&quot;VertexIDOffset&quot;)&amp;&amp;n.getProgram().setUniformi(&quot;VertexIDOffset&quot;,t.vertexIDOffset),n.getCABO().getElementCount()&amp;&amp;(t.VBOBuildTime.getMTime()&gt;n.getAttributeUpdateTime().getMTime()||n.getShaderSourceTime().getMTime()&gt;n.getAttributeUpdateTime().getMTime())){const e=t.lastBoundBO.getReferenceByName(&quot;lastLightComplexity&quot;);n.getProgram().isAttributeUsed(&quot;vertexMC&quot;)&amp;&amp;(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),&quot;vertexMC&quot;,n.getCABO().getVertexOffset(),n.getCABO().getStride(),t.context.FLOAT,3,!1)||np(&quot;Error setting vertexMC in shader VAO.&quot;)),n.getProgram().isAttributeUsed(&quot;normalMC&quot;)&amp;&amp;n.getCABO().getNormalOffset()&amp;&amp;e&gt;0?n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),&quot;normalMC&quot;,n.getCABO().getNormalOffset(),n.getCABO().getStride(),t.context.FLOAT,3,!1)||np(&quot;Error setting normalMC in shader VAO.&quot;):n.getVAO().removeAttributeArray(&quot;normalMC&quot;),t.renderable.getCustomShaderAttributes().forEach(((e,r)=&gt;{n.getProgram().isAttributeUsed(`${e}MC`)&amp;&amp;(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),`${e}MC`,n.getCABO().getCustomData()[r].offset,n.getCABO().getStride(),t.context.FLOAT,n.getCABO().getCustomData()[r].components,!1)||np(`Error setting ${e}MC in shader VAO.`))})),n.getProgram().isAttributeUsed(&quot;tcoordMC&quot;)&amp;&amp;n.getCABO().getTCoordOffset()?n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),&quot;tcoordMC&quot;,n.getCABO().getTCoordOffset(),n.getCABO().getStride(),t.context.FLOAT,n.getCABO().getTCoordComponents(),!1)||np(&quot;Error setting tcoordMC in shader VAO.&quot;):n.getVAO().removeAttributeArray(&quot;tcoordMC&quot;),n.getProgram().isAttributeUsed(&quot;scalarColor&quot;)&amp;&amp;n.getCABO().getColorComponents()?n.getVAO().addAttributeArray(n.getProgram(),n.getCABO().getColorBO(),&quot;scalarColor&quot;,n.getCABO().getColorOffset(),n.getCABO().getColorBOStride(),t.context.UNSIGNED_BYTE,4,!0)||np(&quot;Error setting scalarColor in shader VAO.&quot;):n.getVAO().removeAttributeArray(&quot;scalarColor&quot;),n.getAttributeUpdateTime().modified()}if(t.renderable.getNumberOfClippingPlanes()){const e=t.renderable.getNumberOfClippingPlanes(),r=[],a=n.getCABO().getCoordShiftAndScaleEnabled()?n.getCABO().getInverseShiftAndScaleMatrix():null,i=a?T(t.tmpMat4,o.getMatrix()):o.getMatrix();a&amp;&amp;(y(i,i),A(i,i,a),y(i,i));for(let n=0;n&lt;e;n++){const e=[];t.renderable.getClippingPlaneInDataCoords(i,n,e);for(let t=0;t&lt;4;t++)r.push(e[t])}n.getProgram().setUniformi(&quot;numClipPlanes&quot;,e),n.getProgram().setUniform4fv(&quot;clipPlanes&quot;,r)}t.internalColorTexture&amp;&amp;n.getProgram().isUniformUsed(&quot;texture1&quot;)&amp;&amp;n.getProgram().setUniformi(&quot;texture1&quot;,t.internalColorTexture.getTextureUnit());const a=t.openGLActor.getActiveTextures();if(a)for(let e=0;e&lt;a.length;++e){const t=a[e].getTextureUnit(),r=`texture${t+1}`;n.getProgram().isUniformUsed(r)&amp;&amp;n.getProgram().setUniformi(r,t)}if(t.haveSeenDepthRequest&amp;&amp;n.getProgram().setUniformi(&quot;depthRequest&quot;,t.renderDepth?1:0),n.getProgram().isUniformUsed(&quot;coffset&quot;)){const t=e.getCoincidentParameters(r,o);n.getProgram().setUniformf(&quot;coffset&quot;,t.offset),n.getProgram().isUniformUsed(&quot;cfactor&quot;)&amp;&amp;n.getProgram().setUniformf(&quot;cfactor&quot;,t.factor)}n.setMapperShaderParameters(r,o,t._openGLRenderer.getTiledSizeAndOrigin());const i=t._openGLRenderer.getSelector();n.getProgram().setUniform3fArray(&quot;mapperIndex&quot;,i?i.getPropColorValue():[0,0,0]),n.getProgram().setUniformi(&quot;picking&quot;,i?i.getCurrentPass()+1:0)},e.setLightingShaderParameters=(e,n,r)=&gt;{const o=t.lastBoundBO.getReferenceByName(&quot;lastLightComplexity&quot;);if(o&lt;2)return;const a=e.getProgram();let i=0;const s=n.getLightsByReference();for(let e=0;e&lt;s.length;++e){const r=s[e];if(r.getSwitch()&gt;0){const e=r.getColorByReference(),o=r.getIntensity();t.lightColor[0]=e[0]*o,t.lightColor[1]=e[1]*o,t.lightColor[2]=e[2]*o;const s=r.getDirection(),l=n.getActiveCamera().getViewMatrix(),c=[...s];r.lightTypeIsSceneLight()&amp;&amp;(c[0]=l[0]*s[0]+l[1]*s[1]+l[2]*s[2],c[1]=l[4]*s[0]+l[5]*s[1]+l[6]*s[2],c[2]=l[8]*s[0]+l[9]*s[1]+l[10]*s[2],jo(c)),t.lightDirection[0]=c[0],t.lightDirection[1]=c[1],t.lightDirection[2]=c[2],jo(t.lightDirection),a.setUniform3fArray(`lightColor${i}`,t.lightColor),a.setUniform3fArray(`lightDirectionVC${i}`,t.lightDirection),i++}}if(o&lt;3)return;const l=n.getActiveCamera().getViewMatrix();y(l,l),i=0;for(let e=0;e&lt;s.length;++e){const t=s[e];if(t.getSwitch()&gt;0){const e=t.getTransformedPosition(),n=new Float64Array(3);oe(n,e,l),a.setUniform3fArray(`lightAttenuation${i}`,t.getAttenuationValuesByReference()),a.setUniformi(`lightPositional${i}`,t.getPositional()),a.setUniformf(`lightExponent${i}`,t.getExponent()),a.setUniformf(`lightConeAngle${i}`,t.getConeAngle()),a.setUniform3fArray(`lightPositionVC${i}`,[n[0],n[1],n[2]]),i++}}},e.setCameraShaderParameters=(e,r,o)=&gt;{const a=e.getProgram(),i=t.openGLCamera.getKeyMatrices(r),s=r.getActiveCamera(),l=t.openGLCamera.getKeyMatrixTime().getMTime(),c=a.getLastCameraMTime(),u=e.getCABO().getCoordShiftAndScaleEnabled()?e.getCABO().getInverseShiftAndScaleMatrix():null,d=o.getIsIdentity(),p=d?{mcwc:null,normalMatrix:null}:t.openGLActor.getKeyMatrices();if(o.getCoordinateSystem()===ap.DISPLAY){const e=t._openGLRenderer.getTiledSizeAndOrigin();x(t.tmpMat4),t.tmpMat4[0]=2/e.usize,t.tmpMat4[12]=-1,t.tmpMat4[5]=2/e.vsize,t.tmpMat4[13]=-1,A(t.tmpMat4,t.tmpMat4,u),a.setUniformMatrix(&quot;MCPCMatrix&quot;,t.tmpMat4)}else a.setUniformMatrix(&quot;MCPCMatrix&quot;,n([i.wcpc,p.mcwc,u],H,t.tmpMat4));a.isUniformUsed(&quot;MCVCMatrix&quot;)&amp;&amp;a.setUniformMatrix(&quot;MCVCMatrix&quot;,n([i.wcvc,p.mcwc,u],H,t.tmpMat4)),a.isUniformUsed(&quot;normalMatrix&quot;)&amp;&amp;a.setUniformMatrix3x3(&quot;normalMatrix&quot;,n([i.normalMatrix,p.normalMatrix],h,t.tmpMat3)),c!==l&amp;&amp;(a.isUniformUsed(&quot;cameraParallel&quot;)&amp;&amp;a.setUniformi(&quot;cameraParallel&quot;,s.getParallelProjection()),a.setLastCameraMTime(l)),d||a.setLastCameraMTime(0)},e.setPropertyShaderParameters=(e,n,r)=&gt;{const o=e.getProgram();let a=r.getProperty();let i=t.drawingEdges||a.getRepresentation()===Zd.WIREFRAME?a.getEdgeOpacity():a.getOpacity(),s=t.drawingEdges?a.getEdgeColorByReference():a.getAmbientColorByReference(),l=t.drawingEdges?a.getEdgeColorByReference():a.getDiffuseColorByReference(),c=t.drawingEdges?1:a.getAmbient(),u=t.drawingEdges?0:a.getDiffuse(),d=t.drawingEdges?0:a.getSpecular();const p=a.getSpecularPower();o.setUniformf(&quot;opacityUniform&quot;,i),o.setUniform3fArray(&quot;ambientColorUniform&quot;,s),o.setUniform3fArray(&quot;diffuseColorUniform&quot;,l),o.setUniformf(&quot;ambient&quot;,c),o.setUniformf(&quot;diffuse&quot;,u);const f=t.lastBoundBO.getReferenceByName(&quot;lastLightComplexity&quot;);if(f&lt;1)return;let g=a.getSpecularColorByReference();if(o.setUniform3fArray(&quot;specularColorUniform&quot;,g),o.setUniformf(&quot;specularPowerUniform&quot;,p),o.setUniformf(&quot;specular&quot;,d),o.isUniformUsed(&quot;ambientIntensityBF&quot;)){if(a=r.getBackfaceProperty(),i=a.getOpacity(),s=a.getAmbientColor(),c=a.getAmbient(),l=a.getDiffuseColor(),u=a.getDiffuse(),g=a.getSpecularColor(),d=a.getSpecular(),o.setUniformf(&quot;ambientIntensityBF&quot;,c),o.setUniformf(&quot;diffuseIntensityBF&quot;,u),o.setUniformf(&quot;opacityUniformBF&quot;,i),o.setUniform3fArray(&quot;ambientColorUniformBF&quot;,s),o.setUniform3fArray(&quot;diffuseColorUniformBF&quot;,l),f&lt;1)return;o.setUniformf(&quot;specularIntensityBF&quot;,d),o.setUniform3fArray(&quot;specularColorUniformBF&quot;,g),o.setUniformf(&quot;specularPowerUniformBF&quot;,p)}},e.updateMaximumPointCellIds=(e,n)=&gt;{const r=t._openGLRenderer.getSelector();if(!r)return;if(t.selectionWebGLIdsToVTKIds?.points?.length){const e=t.selectionWebGLIdsToVTKIds.points.length;r.setMaximumPointId(e-1)}if(t.selectionWebGLIdsToVTKIds?.cells?.length){const e=t.selectionWebGLIdsToVTKIds.cells.length;r.setMaximumCellId(e-1)}r.getFieldAssociation()===Yd.FIELD_ASSOCIATION_POINTS&amp;&amp;(t.pointPicking=!0)},e.renderPieceStart=(n,r)=&gt;{t.primitiveIDOffset=0,t.vertexIDOffset=0;const o=function(e){const t=e.getSelector();return t?t.getCurrentPass():Bl.MIN_KNOWN_PASS-1}(t._openGLRenderer);t.lastSelectionState!==o&amp;&amp;(t.selectionStateChanged.modified(),t.lastSelectionState=o),t._openGLRenderer.getSelector()&amp;&amp;t._openGLRenderer.getSelector().renderProp(r),e.updateBufferObjects(n,r),t.renderable.getColorTextureMap()&amp;&amp;t.internalColorTexture.activate(),t.lastBoundBO=null},e.renderPieceDraw=(n,r)=&gt;{const o=r.getProperty().getRepresentation(),a=r.getProperty().getEdgeVisibility()&amp;&amp;o===Zd.SURFACE,i=t._openGLRenderer.getSelector(),s=i&amp;&amp;i.getFieldAssociation()===Yd.FIELD_ASSOCIATION_POINTS&amp;&amp;(t.lastSelectionState===Bl.ID_LOW24||t.lastSelectionState===Bl.ID_HIGH24);for(let i=Jd.Start;i&lt;Jd.End;i++){t.primitives[i].setPointPicking(s);t.primitives[i].getCABO().getElementCount()&amp;&amp;(t.drawingEdges=a&amp;&amp;(i===Jd.TrisEdges||i===Jd.TriStripsEdges),t.drawingEdges&amp;&amp;(t.renderDepth||t.lastSelectionState&gt;=0)||(t.lastBoundBO=t.primitives[i],t.primitiveIDOffset+=t.primitives[i].drawArrays(n,r,o,e),t.vertexIDOffset+=t.primitives[i].getCABO().getElementCount()))}},e.renderPieceFinish=(e,n)=&gt;{t.LastBoundBO&amp;&amp;t.LastBoundBO.getVAO().release(),t.renderable.getColorTextureMap()&amp;&amp;t.internalColorTexture.deactivate()},e.renderPiece=(n,r)=&gt;{if(e.invokeEvent(rp),t.renderable.getStatic()||t.renderable.update(),t.currentInput=t.renderable.getInputData(),e.invokeEvent(op),!t.currentInput)return void np(&quot;No input!&quot;);if(!t.currentInput.getPoints||!t.currentInput.getPoints().getNumberOfValues())return;const o=t.context,a=r.getProperty().getBackfaceCulling(),i=r.getProperty().getFrontfaceCulling();a||i?i?(t._openGLRenderWindow.enableCullFace(),o.cullFace(o.FRONT)):(t._openGLRenderWindow.enableCullFace(),o.cullFace(o.BACK)):t._openGLRenderWindow.disableCullFace(),e.renderPieceStart(n,r),e.renderPieceDraw(n,r),e.renderPieceFinish(n,r)},e.updateBufferObjects=(t,n)=&gt;{e.getNeedToRebuildBufferObjects(t,n)&amp;&amp;e.buildBufferObjects(t,n),e.updateMaximumPointCellIds()},e.getNeedToRebuildBufferObjects=(n,r)=&gt;{const o=t.VBOBuildTime.getMTime();return o&lt;e.getMTime()||o&lt;t.renderable.getMTime()||o&lt;r.getMTime()||o&lt;t.currentInput.getMTime()},e.buildBufferObjects=(e,n)=&gt;{const r=t.currentInput;if(null===r)return;t.renderable.mapScalars(r,1);const o=t.renderable.getColorMapColors();t.haveCellScalars=!1;const a=t.renderable.getScalarMode();t.renderable.getScalarVisibility()&amp;&amp;(a!==$d.USE_CELL_DATA&amp;&amp;a!==$d.USE_CELL_FIELD_DATA&amp;&amp;a!==$d.USE_FIELD_DATA&amp;&amp;r.getPointData().getScalars()||a===$d.USE_POINT_FIELD_DATA||!o||(t.haveCellScalars=!0));let i=n.getProperty().getInterpolation()!==Qd.FLAT?r.getPointData().getNormals():null;null===i&amp;&amp;r.getCellData().getNormals()&amp;&amp;(t.haveCellNormals=!0,i=r.getCellData().getNormals());const s=n.getProperty().getRepresentation();let l=r.getPointData().getTCoords();t.openGLActor.getActiveTextures()||(l=null);let c=!1;if(t.renderable.getColorCoordinates()){l=t.renderable.getColorCoordinates(),c=t.renderable.getAreScalarsMappedFromCells(),t.internalColorTexture||(t.internalColorTexture=Hd.newInstance({resizable:!0}));const e=t.internalColorTexture;e.setMinificationFilter(ep.NEAREST),e.setMagnificationFilter(ep.NEAREST),e.setWrapS(tp.CLAMP_TO_EDGE),e.setWrapT(tp.CLAMP_TO_EDGE),e.setOpenGLRenderWindow(t._openGLRenderWindow);const n=t.renderable.getColorTextureMap(),r=n.getExtent(),o=n.getPointData().getScalars();e.create2DFromRaw({width:r[1]-r[0]+1,height:r[3]-r[2]+1,numComps:o.getNumberOfComponents(),dataType:o.getDataType(),data:o.getData()}),e.activate(),e.sendParameters(),e.deactivate()}const u=t.renderable.getCustomShaderAttributes().map((e=&gt;r.getPointData().getArrayByName(e))),d=`${r.getMTime()}A${s}B${r.getMTime()}C${i?i.getMTime():1}D${o?o.getMTime():1}E${n.getProperty().getEdgeVisibility()}F${l?l.getMTime():1}G${u.map((e=&gt;e.getMTime())).join(&quot;,&quot;)}`;if(t.VBOBuildString!==d){const e={points:r.getPoints(),normals:i,tcoords:l,colors:o,cellOffset:0,vertexOffset:0,useTCoordsPerCell:c,haveCellScalars:t.haveCellScalars,haveCellNormals:t.haveCellNormals,customAttributes:u};t.renderable.getPopulateSelectionSettings()&amp;&amp;(t.selectionWebGLIdsToVTKIds={points:null,cells:null});const a=[{inRep:&quot;verts&quot;,cells:r.getVerts()},{inRep:&quot;lines&quot;,cells:r.getLines()},{inRep:&quot;polys&quot;,cells:r.getPolys()},{inRep:&quot;strips&quot;,cells:r.getStrips()},{inRep:&quot;polys&quot;,cells:r.getPolys()},{inRep:&quot;strips&quot;,cells:r.getStrips()}],p=n.getProperty().getEdgeVisibility()&amp;&amp;s===Zd.SURFACE;for(let n=Jd.Start;n&lt;Jd.End;n++)n!==Jd.TrisEdges&amp;&amp;n!==Jd.TriStripsEdges?(e.cellOffset+=t.primitives[n].getCABO().createVBO(a[n].cells,a[n].inRep,s,e,t.selectionWebGLIdsToVTKIds),e.vertexOffset+=t.primitives[n].getCABO().getElementCount()):p?t.primitives[n].getCABO().createVBO(a[n].cells,a[n].inRep,Zd.WIREFRAME,{...e,tcoords:null,colors:null,haveCellScalars:!1,haveCellNormals:!1}):t.primitives[n].releaseGraphicsResources();t.renderable.getPopulateSelectionSettings()&amp;&amp;t.renderable.setSelectionWebGLIdsToVTKIds(t.selectionWebGLIdsToVTKIds),t.VBOBuildString=d}t.VBOBuildTime.modified()},e.getAllocatedGPUMemoryInBytes=()=&gt;{let e=0;return t.primitives.forEach((t=&gt;{e+=t.getAllocatedGPUMemoryInBytes()})),e}}const sp={context:null,VBOBuildTime:0,VBOBuildString:null,primitives:null,primTypes:null,shaderRebuildString:null,tmpMat4:null,ambientColor:[],diffuseColor:[],specularColor:[],lightColor:[],lightDirection:[],lastHaveSeenDepthRequest:!1,haveSeenDepthRequest:!1,lastSelectionState:Bl.MIN_KNOWN_PASS-1,selectionStateChanged:null,selectionWebGLIdsToVTKIds:null,pointPicking:!1};function lp(e,t,n={}){Object.assign(t,sp,n),pn.extend(e,t,n),qd.implementReplaceShaderCoincidentOffset(e,t,n),qd.implementBuildShadersWithReplacements(e,t,n),t.primitives=[],t.primTypes=Jd,t.tmpMat3=c(new Float64Array(9)),t.tmpMat4=x(new Float64Array(16));for(let e=Jd.Start;e&lt;Jd.End;e++)t.primitives[e]=Sd.newInstance(),t.primitives[e].setPrimitiveType(e),t.primitives[e].set({lastLightComplexity:0,lastLightCount:0,lastSelectionPass:!1},!0);Gt(e,t,[&quot;context&quot;]),t.VBOBuildTime={},Vt(t.VBOBuildTime,{mtime:0}),t.selectionStateChanged={},Vt(t.selectionStateChanged,{mtime:0}),ip(e,t)}const cp=Xt(lp,&quot;vtkOpenGLPolyDataMapper&quot;);var up={newInstance:cp,extend:lp};vn(&quot;vtkMapper&quot;,cp);const dp=1,{primTypes:pp}=Sd,{Filter:fp,Wrap:gp}=Hd,{vtkErrorMacro:mp}=ln,hp={type:&quot;StartEvent&quot;},vp={type:&quot;EndEvent&quot;};const Tp={context:null,VBOBuildTime:0,VBOBuildString:null,primitives:null,primTypes:null,shaderRebuildString:null};const xp=Xt((function(e,t,n={}){Object.assign(t,Tp,n),pn.extend(e,t,n),qd.implementReplaceShaderCoincidentOffset(e,t,n),qd.implementBuildShadersWithReplacements(e,t,n),t.primitives=[],t.primTypes=pp,t.tmpMat4=x(new Float64Array(16));for(let e=pp.Start;e&lt;pp.End;e++)t.primitives[e]=Sd.newInstance(),t.primitives[e].setPrimitiveType(e),t.primitives[e].set({lastLightComplexity:0,lastLightCount:0,lastSelectionPass:!1},!0);Gt(e,t,[&quot;context&quot;]),t.VBOBuildTime={},Vt(t.VBOBuildTime,{mtime:0}),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLPolyDataMapper2D&quot;),e.buildPass=n=&gt;{n&amp;&amp;(t.openGLActor2D=e.getFirstAncestorOfType(&quot;vtkOpenGLActor2D&quot;),t._openGLRenderer=t.openGLActor2D.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;),t._openGLRenderWindow=t._openGLRenderer.getLastAncestorOfType(&quot;vtkOpenGLRenderWindow&quot;),t.openGLCamera=t._openGLRenderer.getViewNodeFor(t._openGLRenderer.getRenderable().getActiveCamera(),t.openGLCamera))},e.overlayPass=t=&gt;{t&amp;&amp;e.render()},e.getShaderTemplate=(e,t,n)=&gt;{e.Vertex=&quot;//VTK::System::Dec\\n\\n/*=========================================================================\\n\\n  Program:   Visualization Toolkit\\n  Module:    vtkPolyData2DVS.glsl\\n\\n  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n  All rights reserved.\\n  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n\\n     This software is distributed WITHOUT ANY WARRANTY; without even\\n     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n     PURPOSE.  See the above copyright notice for more information.\\n\\n=========================================================================*/\\n\\n// all variables that represent positions or directions have a suffix\\n// indicating the coordinate system they are in. The possible values are\\n// MC - Model Coordinates\\n// WC - WC world coordinates\\n// VC - View Coordinates\\n// DC - Display Coordinates\\n\\nin vec4 vertexWC;\\n\\n// frag position in VC\\n//VTK::PositionVC::Dec\\n\\n// material property values\\n//VTK::Color::Dec\\n\\n// Texture coordinates\\n//VTK::TCoord::Dec\\n\\n// Apple Bug\\n//VTK::PrimID::Dec\\n\\nuniform mat4 WCVCMatrix;  // World to view matrix\\n\\nvoid main()\\n{\\n  // Apple Bug\\n  //VTK::PrimID::Impl\\n\\n  gl_Position = WCVCMatrix*vertexWC;\\n\\n  //VTK::TCoord::Impl\\n\\n  //VTK::Color::Impl\\n\\n  //VTK::PositionVC::Impl\\n}\\n&quot;,e.Fragment=&quot;//VTK::System::Dec\\n\\n/*=========================================================================\\n\\n  Program:   Visualization Toolkit\\n  Module:    vtkPolyData2DFS.glsl\\n\\n  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n  All rights reserved.\\n  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n\\n     This software is distributed WITHOUT ANY WARRANTY; without even\\n     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n     PURPOSE.  See the above copyright notice for more information.\\n\\n=========================================================================*/\\n\\nuniform int PrimitiveIDOffset;\\n\\n// Texture coordinates\\n//VTK::TCoord::Dec\\n\\n// Scalar coloring\\n//VTK::Color::Dec\\n\\n// Depth Peeling\\n//VTK::DepthPeeling::Dec\\n\\n// picking support\\n//VTK::Picking::Dec\\n\\n// the output of this shader\\n//VTK::Output::Dec\\n\\n// Apple Bug\\n//VTK::PrimID::Dec\\n\\nvoid main()\\n{\\n  // Apple Bug\\n  //VTK::PrimID::Impl\\n\\n  //VTK::Color::Impl\\n  //VTK::TCoord::Impl\\n\\n  //VTK::DepthPeeling::Impl\\n  //VTK::Picking::Impl\\n\\n  if (gl_FragData[0].a &lt;= 0.0)\\n    {\\n    discard;\\n    }\\n}\\n&quot;,e.Geometry=&quot;&quot;},e.render=()=&gt;{const n=t._openGLRenderWindow.getContext();if(t.context!==n){t.context=n;for(let e=pp.Start;e&lt;pp.End;e++)t.primitives[e].setOpenGLRenderWindow(t._openGLRenderWindow)}const r=t.openGLActor2D.getRenderable(),o=t._openGLRenderer.getRenderable();e.renderPiece(o,r)},e.renderPiece=(n,r)=&gt;{if(e.invokeEvent(hp),t.renderable.getStatic()||t.renderable.update(),t.currentInput=t.renderable.getInputData(),e.invokeEvent(vp),!t.currentInput)return void mp(&quot;No input!&quot;);if(!t.currentInput.getPoints||!t.currentInput.getPoints().getNumberOfValues())return;const o=t.context;t._openGLRenderWindow.enableCullFace(),o.cullFace(o.BACK),e.renderPieceStart(n,r),e.renderPieceDraw(n,r),e.renderPieceFinish(n,r)},e.renderPieceStart=(n,r)=&gt;{t.primitiveIDOffset=0,t._openGLRenderer.getSelector()&amp;&amp;(t._openGLRenderer.getSelector().getCurrentPass(),t._openGLRenderer.getSelector().renderProp(r)),t.renderable.getColorTextureMap()&amp;&amp;t.internalColorTexture.activate(),e.updateBufferObjects(n,r),t.lastBoundBO=null},e.getNeedToRebuildShaders=(e,n,r)=&gt;e.getShaderSourceTime().getMTime()&lt;t.renderable.getMTime()||e.getShaderSourceTime().getMTime()&lt;t.currentInput.getMTime(),e.updateBufferObjects=(t,n)=&gt;{e.getNeedToRebuildBufferObjects(t,n)&amp;&amp;e.buildBufferObjects(t,n)},e.getNeedToRebuildBufferObjects=(n,r)=&gt;{const o=t.VBOBuildTime.getMTime();return!!(o&lt;e.getMTime()||o&lt;t._openGLRenderWindow.getMTime()||o&lt;t.renderable.getMTime()||o&lt;r.getMTime()||o&lt;t.currentInput.getMTime()||t.renderable.getTransformCoordinate()&amp;&amp;o&lt;n.getMTime())},e.buildBufferObjects=(e,n)=&gt;{const r=t.currentInput;if(null===r)return;t.renderable.mapScalars(r,n.getProperty().getOpacity());const o=t.renderable.getColorMapColors(),a=n.getProperty().getRepresentation();let i=r.getPointData().getTCoords();t.openGLActor2D.getActiveTextures()||(i=null);let s=!1;if(t.renderable.getColorCoordinates()){i=t.renderable.getColorCoordinates(),s=t.renderable.getAreScalarsMappedFromCells(),t.internalColorTexture||(t.internalColorTexture=Hd.newInstance({resizable:!0}));const e=t.internalColorTexture;e.setMinificationFilter(fp.NEAREST),e.setMagnificationFilter(fp.NEAREST),e.setWrapS(gp.CLAMP_TO_EDGE),e.setWrapT(gp.CLAMP_TO_EDGE),e.setOpenGLRenderWindow(t._openGLRenderWindow);const n=t.renderable.getColorTextureMap(),r=n.getExtent(),o=n.getPointData().getScalars();e.create2DFromRaw({width:r[1]-r[0]+1,height:r[3]-r[2]+1,numComps:o.getNumberOfComponents(),dataType:o.getDataType(),data:o.getData()}),e.activate(),e.sendParameters(),e.deactivate()}const l=t.renderable.getTransformCoordinate(),c=e.getRenderWindow().getViews()[0].getViewportSize(e),u=`${r.getMTime()}A${a}B${r.getMTime()}C${o?o.getMTime():1}D${i?i.getMTime():1}E${l?e.getMTime():1}F${c}`;if(t.VBOBuildString!==u){let n=r.getPoints();if(l){const t=lc.newInstance(),r=n.getNumberOfPoints();t.setNumberOfPoints(r);const o=[];for(let a=0;a&lt;r;++a){n.getPoint(a,o),l.setValue(o);const r=l.getComputedDoubleViewportValue(e);t.setPoint(a,r[0],r[1],0)}n=t}const c={points:n,tcoords:i,colors:o,cellOffset:0,useTCoordsPerCell:s,haveCellScalars:t.renderable.getAreScalarsMappedFromCells(),customAttributes:t.renderable.getCustomShaderAttributes().map((e=&gt;r.getPointData().getArrayByName(e)))};c.cellOffset+=t.primitives[pp.Points].getCABO().createVBO(r.getVerts(),&quot;verts&quot;,a,c),c.cellOffset+=t.primitives[pp.Lines].getCABO().createVBO(r.getLines(),&quot;lines&quot;,a,c),c.cellOffset+=t.primitives[pp.Tris].getCABO().createVBO(r.getPolys(),&quot;polys&quot;,a,c),c.cellOffset+=t.primitives[pp.TriStrips].getCABO().createVBO(r.getStrips(),&quot;strips&quot;,a,c),t.VBOBuildTime.modified(),t.VBOBuildString=u}},e.renderPieceDraw=(n,r)=&gt;{const o=r.getProperty().getRepresentation();t.context.depthMask(!0);for(let a=pp.Start;a&lt;pp.End;a++)t.primitives[a].getCABO().getElementCount()&amp;&amp;(t.lastBoundBO=t.primitives[a],t.primitiveIDOffset+=t.primitives[a].drawArrays(n,r,o,e))},e.renderPieceFinish=(e,n)=&gt;{t.lastBoundBO&amp;&amp;t.lastBoundBO.getVAO().release(),t.renderable.getColorTextureMap()&amp;&amp;t.internalColorTexture.deactivate()},e.replaceShaderValues=(t,n,r)=&gt;{e.replaceShaderColor(t,n,r),e.replaceShaderTCoord(t,n,r),e.replaceShaderPicking(t,n,r),e.replaceShaderPositionVC(t,n,r)},e.replaceShaderColor=(e,n,r)=&gt;{let o=e.Vertex,a=e.Geometry,i=e.Fragment,s=[&quot;uniform vec3 diffuseColorUniform;&quot;,&quot;uniform float opacityUniform;&quot;],l=[&quot;vec3 diffuseColor = diffuseColorUniform;&quot;,&quot;float opacity = opacityUniform;&quot;];0!==t.lastBoundBO.getCABO().getColorComponents()?(s=s.concat([&quot;varying vec4 vertexColorVSOutput;&quot;]),o=vd.substitute(o,&quot;//VTK::Color::Dec&quot;,[&quot;attribute vec4 scalarColor;&quot;,&quot;varying vec4 vertexColorVSOutput;&quot;]).result,o=vd.substitute(o,&quot;//VTK::Color::Impl&quot;,[&quot;vertexColorVSOutput =  scalarColor;&quot;]).result,a=vd.substitute(a,&quot;//VTK::Color::Dec&quot;,[&quot;in vec4 vertexColorVSOutput[];&quot;,&quot;out vec4 vertexColorGSOutput;&quot;]).result,a=vd.substitute(a,&quot;//VTK::Color::Impl&quot;,[&quot;vertexColorGSOutput = vertexColorVSOutput[i];&quot;]).result,i=vd.substitute(i,&quot;//VTK::Color::Impl&quot;,l.concat([&quot;  diffuseColor = vertexColorVSOutput.rgb;&quot;,&quot;  opacity = opacity*vertexColorVSOutput.a;&quot;])).result):t.renderable.getAreScalarsMappedFromCells()&amp;&amp;(l=l.concat([&quot;  vec4 texColor = texture2D(texture1, tcoordVCVSOutput.st);&quot;,&quot;  diffuseColor = texColor.rgb;&quot;,&quot;  opacity = opacity*texColor.a;&quot;])),l=l.concat([&quot;gl_FragData[0] = vec4(diffuseColor, opacity);&quot;]),i=vd.substitute(i,&quot;//VTK::Color::Dec&quot;,s).result,i=vd.substitute(i,&quot;//VTK::Color::Impl&quot;,l).result,e.Vertex=o,e.Geometry=a,e.Fragment=i},e.replaceShaderTCoord=(e,n,r)=&gt;{if(t.lastBoundBO.getCABO().getTCoordOffset()){let n=e.Vertex,r=e.Geometry,o=e.Fragment;const a=t.lastBoundBO.getCABO().getTCoordComponents();1===a?(n=vd.substitute(n,&quot;//VTK::TCoord::Dec&quot;,[&quot;in float tcoordMC;&quot;,&quot;out float tcoordVCVSOutput;&quot;]).result,n=vd.substitute(n,&quot;//VTK::TCoord::Impl&quot;,[&quot;tcoordVCVSOutput = tcoordMC;&quot;]).result,r=vd.substitute(r,&quot;//VTK::TCoord::Dec&quot;,[&quot;in float tcoordVCVSOutput[];\\n&quot;,&quot;out float tcoordVCGSOutput;&quot;]).result,r=vd.substitute(r,[&quot;//VTK::TCoord::Impl&quot;,&quot;tcoordVCGSOutput = tcoordVCVSOutput[i];&quot;]).result,o=vd.substitute(o,&quot;//VTK::TCoord::Dec&quot;,[&quot;in float tcoordVCVSOutput;&quot;,&quot;uniform sampler2D texture1;&quot;]).result,o=vd.substitute(o,&quot;//VTK::TCoord::Impl&quot;,[&quot;gl_FragData[0] = gl_FragData[0]*texture2D(texture1, vec2(tcoordVCVSOutput,0));&quot;]).result):2===a&amp;&amp;(n=vd.substitute(n,&quot;//VTK::TCoord::Dec&quot;,[&quot;in vec2 tcoordMC;&quot;,&quot;out vec2 tcoordVCVSOutput;&quot;]).result,n=vd.substitute(n,&quot;//VTK::TCoord::Impl&quot;,[&quot;tcoordVCVSOutput = tcoordMC;&quot;]).result,r=vd.substitute(r,&quot;//VTK::TCoord::Dec&quot;,[&quot;in vec2 tcoordVCVSOutput[];\\n&quot;,&quot;out vec2 tcoordVCGSOutput;&quot;]).result,r=vd.substitute(r,&quot;//VTK::TCoord::Impl&quot;,[&quot;tcoordVCGSOutput = tcoordVCVSOutput[i];&quot;]).result,o=vd.substitute(o,&quot;//VTK::TCoord::Dec&quot;,[&quot;in vec2 tcoordVCVSOutput;&quot;,&quot;uniform sampler2D texture1;&quot;]).result,o=vd.substitute(o,&quot;//VTK::TCoord::Impl&quot;,[&quot;gl_FragData[0] = gl_FragData[0]*texture2D(texture1, tcoordVCVSOutput.st);&quot;]).result),t.renderable.getAreScalarsMappedFromCells()&amp;&amp;(r=vd.substitute(r,&quot;//VTK::PrimID::Impl&quot;,[&quot;gl_PrimitiveID = gl_PrimitiveIDIn;&quot;]).result),e.Vertex=n,e.Geometry=r,e.Fragment=o}},e.replaceShaderPicking=(e,t,n)=&gt;{let r=e.Fragment;r=vd.substitute(r,&quot;//VTK::Picking::Dec&quot;,[&quot;uniform vec3 mapperIndex;&quot;,&quot;uniform int picking;&quot;]).result,r=vd.substitute(r,&quot;//VTK::Picking::Impl&quot;,&quot;  gl_FragData[0] = picking != 0 ? vec4(mapperIndex,1.0) : gl_FragData[0];&quot;).result,e.Fragment=r},e.replaceShaderPositionVC=(e,n,r)=&gt;{t.lastBoundBO.replaceShaderPositionVC(e,n,r)},e.invokeShaderCallbacks=(e,n,r)=&gt;{const o=t.renderable.getViewSpecificProperties().ShadersCallbacks;o&amp;&amp;o.forEach((t=&gt;{t.callback(t.userData,e,n,r)}))},e.setMapperShaderParameters=(e,n,r)=&gt;{if(e.getProgram().isUniformUsed(&quot;PrimitiveIDOffset&quot;)&amp;&amp;e.getProgram().setUniformi(&quot;PrimitiveIDOffset&quot;,t.primitiveIDOffset),e.getProgram().isAttributeUsed(&quot;vertexWC&quot;)&amp;&amp;(e.getVAO().addAttributeArray(e.getProgram(),e.getCABO(),&quot;vertexWC&quot;,e.getCABO().getVertexOffset(),e.getCABO().getStride(),t.context.FLOAT,3,!1)||mp(&quot;Error setting vertexWC in shader VAO.&quot;)),e.getCABO().getElementCount()&amp;&amp;(t.VBOBuildTime.getMTime()&gt;e.getAttributeUpdateTime().getMTime()||e.getShaderSourceTime().getMTime()&gt;e.getAttributeUpdateTime().getMTime())){t.renderable.getCustomShaderAttributes().forEach(((n,r)=&gt;{e.getProgram().isAttributeUsed(`${n}MC`)&amp;&amp;(e.getVAO().addAttributeArray(e.getProgram(),e.getCABO(),`${n}MC`,e.getCABO().getCustomData()[r].offset,e.getCABO().getStride(),t.context.FLOAT,e.getCABO().getCustomData()[r].components,!1)||mp(`Error setting ${n}MC in shader VAO.`))})),e.getProgram().isAttributeUsed(&quot;tcoordMC&quot;)&amp;&amp;e.getCABO().getTCoordOffset()?e.getVAO().addAttributeArray(e.getProgram(),e.getCABO(),&quot;tcoordMC&quot;,e.getCABO().getTCoordOffset(),e.getCABO().getStride(),t.context.FLOAT,e.getCABO().getTCoordComponents(),!1)||mp(&quot;Error setting tcoordMC in shader VAO.&quot;):e.getVAO().removeAttributeArray(&quot;tcoordMC&quot;),e.getProgram().isAttributeUsed(&quot;scalarColor&quot;)&amp;&amp;e.getCABO().getColorComponents()?e.getVAO().addAttributeArray(e.getProgram(),e.getCABO().getColorBO(),&quot;scalarColor&quot;,e.getCABO().getColorOffset(),e.getCABO().getColorBOStride(),t.context.UNSIGNED_BYTE,4,!0)||mp(&quot;Error setting scalarColor in shader VAO.&quot;):e.getVAO().removeAttributeArray(&quot;scalarColor&quot;),t.internalColorTexture&amp;&amp;e.getProgram().isUniformUsed(&quot;texture1&quot;)&amp;&amp;t.internalColorTexture.getTextureUnit()&gt;-1&amp;&amp;e.getProgram().setUniformi(&quot;texture1&quot;,t.internalColorTexture.getTextureUnit());const o=t.openGLActor2D.getActiveTextures();if(o)for(let t=0;t&lt;o.length;++t){const n=o[t].getTextureUnit(),r=`texture${n+1}`;e.getProgram().isUniformUsed(r)&amp;&amp;e.getProgram().setUniformi(r,n)}e.setMapperShaderParameters(n,r,t._openGLRenderer.getTiledSizeAndOrigin());const a=t._openGLRenderer.getSelector();e.getProgram().setUniform3fArray(&quot;mapperIndex&quot;,a?a.getPropColorValue():[0,0,0]),e.getProgram().setUniformi(&quot;picking&quot;,a?a.getCurrentPass()+1:0)}},e.setPropertyShaderParameters=(e,n,r)=&gt;{const o=t.renderable.getColorMapColors();if(!o||0===o.getNumberOfComponents()){const t=e.getProgram(),n=r.getProperty(),o=n.getOpacity();t.setUniformf(&quot;opacityUniform&quot;,o);const a=n.getColor();t.setUniform3fArray(&quot;diffuseColorUniform&quot;,a)}},e.setLightingShaderParameters=(e,t,n)=&gt;{},e.setCameraShaderParameters=(e,n,r)=&gt;{const o=e.getProgram(),a=e.getCABO().getCoordShiftAndScaleEnabled()?e.getCABO().getInverseShiftAndScaleMatrix():null,i=n.getRenderWindow().getViews()[0].getViewportSize(n),s=n.getViewport(),l=r.getActualPositionCoordinate().getComputedDoubleViewportValue(n),c=[0,0,1,1],u=[0,0,1,1];if(u[0]=s[0]&gt;=c[0]?s[0]:c[0],u[1]=s[1]&gt;=c[1]?s[1]:c[1],u[2]=s[2]&lt;=c[2]?s[2]:c[2],u[3]=s[3]&lt;=c[3]?s[3]:c[3],u[0]&gt;=u[2])return;if(u[1]&gt;=u[3])return;i[0]=Oo(i[0]*(u[2]-u[0])/(s[2]-s[0])),i[1]=Oo(i[1]*(u[3]-u[1])/(s[3]-s[1]));const d=t._openGLRenderer.getParent().getSize(),p=Oo(l[0]-(u[0]-s[0])*d[0]),f=Oo(l[1]-(u[1]-s[1])*d[1]),g=-p;let m=-p+i[0];const h=-f;let v=-f+i[1];g===m&amp;&amp;(m=g+1),h===v&amp;&amp;(v=h+1);const T=x(new Float64Array(16));var b,A,C;T[0]=2/(m-g),T[5]=2/(v-h),T[3]=-1*(m+g)/(m-g),T[7]=-1*(v+h)/(v-h),T[10]=0,T[11]=r.getProperty().getDisplayLocation()===dp?-1:1,T[15]=1,y(T,T),o.setUniformMatrix(&quot;WCVCMatrix&quot;,(b=[T,a],A=H,C=t.tmpMat4,A.identity(C),b.reduce(((e,t,n)=&gt;0===n?t?A.copy(e,t):A.identity(e):t?A.multiply(e,e,t):e),C)))},e.getAllocatedGPUMemoryInBytes=()=&gt;{let e=0;return t.primitives.forEach((t=&gt;{e+=t.getAllocatedGPUMemoryInBytes()})),e}}(e,t)}),&quot;vtkOpenGLPolyDataMapper2D&quot;);vn(&quot;vtkMapper2D&quot;,xp);var yp={Orientation:{HORIZONTAL:&quot;horizontal&quot;,VERTICAL:&quot;vertical&quot;,AUTO:&quot;auto&quot;}};const{VectorMode:bp}=yl,{Orientation:Ap}=yp;function Cp(e,t,n){e.strokeStyle=t.strokeColor,e.lineWidth=t.strokeSize,e.fillStyle=t.fontColor;const r=t.fontSize??n;e.font=`${t.fontStyle} ${r}px ${t.fontFamily}`}function Sp(e,t){return e=&gt;{const n=e.getLastSize(),r=(n[0]/700)**.8,o=(n[1]/700)**.8,a=Math.min(r,o),i=e.getAxisTextStyle(),s=e.getTickTextStyle();Object.assign(i,t.axisTextStyle),Object.assign(s,t.tickTextStyle),void 0===i.fontSize&amp;&amp;(i.fontSize=Math.max(24*a,12)),void 0===s.fontSize&amp;&amp;(e.getLastAspectRatio()&gt;1?s.fontSize=Math.max(20*a,10):s.fontSize=Math.max(16*a,10));const l=e.updateTextureAtlas();e.setTopTitle(!1);const c=e.getBoxSizeByReference();let u=!1;if(u=t.orientation===Ap.VERTICAL||t.orientation!==Ap.HORIZONTAL&amp;&amp;e.getLastAspectRatio()&gt;1,u)e.setTickLabelPixelOffset(.3*s.fontSize),l.titleWidth&lt;=l.tickWidth+e.getTickLabelPixelOffset()+.8*s.fontSize?(e.setTopTitle(!0),e.setAxisTitlePixelOffset(.2*s.fontSize),c[0]=2*(l.tickWidth+e.getTickLabelPixelOffset()+.8*s.fontSize)/n[0],e.setBoxPosition([.98-c[0],-.92])):(e.setAxisTitlePixelOffset(.2*s.fontSize),c[0]=2*(l.titleHeight+e.getAxisTitlePixelOffset()+l.tickWidth+e.getTickLabelPixelOffset()+.8*s.fontSize)/n[0],e.setBoxPosition([.99-c[0],-.92])),c[1]=Math.max(1.2,Math.min(1.84/o,1.84));else{e.setAxisTitlePixelOffset(1.2*s.fontSize),e.setTickLabelPixelOffset(.1*s.fontSize);const t=2*(.8*s.fontSize+l.titleHeight+e.getAxisTitlePixelOffset())/n[1],r=2*l.tickWidth/n[0];c[0]=Math.min(1.9,Math.max(1.4,1.4*r*(e.getTicks().length+3))),c[1]=t,e.setBoxPosition([-.5*c[0],-.97])}e.recomputeBarSegments(l)}}function Pp(e,t){return e=&gt;{const t=e.getLastTickBounds(),n=$r().domain([t[0],t[1]]),r=n.ticks(5),o=n.tickFormat(5);e.setTicks(r),e.setTickStrings(r.map(o))}}const wp=sn.newInstance(((e,t,n={renderable:null})=&gt;{Object.assign(t,{},n),sn.obj(e,t),sn.setGet(e,t,[&quot;axisTitlePixelOffset&quot;,&quot;tickLabelPixelOffset&quot;,&quot;renderable&quot;,&quot;topTitle&quot;,&quot;ticks&quot;,&quot;tickStrings&quot;,&quot;tickPositions&quot;]),sn.get(e,t,[&quot;lastSize&quot;,&quot;lastAspectRatio&quot;,&quot;lastTickBounds&quot;,&quot;axisTextStyle&quot;,&quot;tickTextStyle&quot;,&quot;barActor&quot;,&quot;tmActor&quot;]),sn.getArray(e,t,[&quot;boxPosition&quot;,&quot;boxSize&quot;]),sn.setArray(e,t,[&quot;boxPosition&quot;,&quot;boxSize&quot;],2),t.forceUpdate=!1,t.lastRebuildTime={},sn.obj(t.lastRebuildTime,{mtime:0}),t.lastSize=[-1,-1],t.tmCanvas=document.createElement(&quot;canvas&quot;),t.tmContext=t.tmCanvas.getContext(&quot;2d&quot;),t._tmAtlas=new Map,t.barMapper=Ql.newInstance(),t.barMapper.setInterpolateScalarsBeforeMapping(!0),t.barMapper.setUseLookupTableScalarRange(!0),t.polyData=Ru.newInstance(),t.barMapper.setInputData(t.polyData),t.barActor=fs.newInstance(),t.barActor.setMapper(t.barMapper),t.tmPolyData=Ru.newInstance(),t.tmMapper=Ql.newInstance(),t.tmMapper.setInputData(t.tmPolyData),t.tmTexture=Eu.newInstance({resizable:!0}),t.tmTexture.setInterpolate(!1),t.tmActor=fs.newInstance({parentProp:e}),t.tmActor.setMapper(t.tmMapper),t.tmActor.addTexture(t.tmTexture),t.barPosition=[0,0],t.barSize=[0,0],t.boxPosition=[.88,-.92],t.boxSize=[.1,1.1],t.lastTickBounds=[],function(e,t){t.classHierarchy.push(&quot;vtkScalarBarActorHelper&quot;),e.setRenderable=n=&gt;{t.renderable!==n&amp;&amp;(t.renderable=n,t.barActor.setProperty(n.getProperty()),t.barActor.setParentProp(n),t.barActor.setCoordinateSystemToDisplay(),t.tmActor.setProperty(n.getProperty()),t.tmActor.setParentProp(n),t.tmActor.setCoordinateSystemToDisplay(),t.generateTicks=n.generateTicks,t.axisTextStyle={...n.getAxisTextStyle()},t.tickTextStyle={...n.getTickTextStyle()},e.modified())},e.updateAPISpecificData=(n,r,o)=&gt;{t.lastSize[0]===n[0]&amp;&amp;t.lastSize[1]===n[1]||(t.lastSize[0]=n[0],t.lastSize[1]=n[1],t.lastAspectRatio=n[0]/n[1],t.forceUpdate=!0);const a=t.renderable.getScalarsToColors();if(a&amp;&amp;t.renderable.getVisibility()&amp;&amp;(t.barMapper.setLookupTable(a),t.camera=r,t.renderWindow=o,t.forceUpdate||Math.max(a.getMTime(),e.getMTime(),t.renderable.getMTime())&gt;t.lastRebuildTime.getMTime())){const n=a.getMappingRange();if(t.lastTickBounds=[...n],t.renderable.getGenerateTicks()(e),t.renderable.getAutomated())t.renderable.getAutoLayout()(e);else{t.axisTextStyle={...t.renderable.getAxisTextStyle()},t.tickTextStyle={...t.renderable.getTickTextStyle()},t.barPosition=[...t.renderable.getBarPosition()],t.barSize=[...t.renderable.getBarSize()],t.boxPosition=[...t.renderable.getBoxPosition()],t.boxSize=[...t.renderable.getBoxSize()],t.axisTitlePixelOffset=t.renderable.getAxisTitlePixelOffset(),t.tickLabelPixelOffset=t.renderable.getTickLabelPixelOffset();const n=e.updateTextureAtlas();e.recomputeBarSegments(n)}e.updatePolyDataForLabels(),e.updatePolyDataForBarSegments(),t.lastRebuildTime.modified(),t.forceUpdate=!1}},e.updateTextureAtlas=()=&gt;{t.tmContext.textBaseline=&quot;bottom&quot;,t.tmContext.textAlign=&quot;left&quot;;const n={},r=new Map;let o=0,a=1;Cp(t.tmContext,t.axisTextStyle,18);let i=t.tmContext.measureText(t.renderable.getAxisLabel()),s={height:i.actualBoundingBoxAscent+2,startingHeight:a,width:i.width+2,textStyle:t.axisTextStyle};r.set(t.renderable.getAxisLabel(),s),a+=s.height,o=s.width,n.titleWidth=s.width,n.titleHeight=s.height,n.tickWidth=0,n.tickHeight=0,Cp(t.tmContext,t.tickTextStyle,14);const l=[...e.getTickStrings(),&quot;NaN&quot;,&quot;Below&quot;,&quot;Above&quot;];for(let e=0;e&lt;l.length;e++)r.has(l[e])||(i=t.tmContext.measureText(l[e]),s={height:i.actualBoundingBoxAscent+2,startingHeight:a,width:i.width+2,textStyle:t.tickTextStyle},r.set(l[e],s),a+=s.height,o&lt;s.width&amp;&amp;(o=s.width),n.tickWidth&lt;s.width&amp;&amp;(n.tickWidth=s.width),n.tickHeight&lt;s.height&amp;&amp;(n.tickHeight=s.height));return o=Bo(o),a=Bo(a),r.forEach((e=&gt;{e.tcoords=[0,(a-e.startingHeight-e.height)/a,e.width/o,(a-e.startingHeight-e.height)/a,e.width/o,(a-e.startingHeight)/a,0,(a-e.startingHeight)/a]})),t.tmCanvas.width=o,t.tmCanvas.height=a,t.tmContext.textBaseline=&quot;bottom&quot;,t.tmContext.textAlign=&quot;left&quot;,t.tmContext.clearRect(0,0,o,a),r.forEach(((e,n)=&gt;{const r=e.textStyle===t.axisTextStyle?18:14;Cp(t.tmContext,e.textStyle,r),t.tmContext.fillText(n,1,e.startingHeight+e.height-1)})),t.tmTexture.setCanvas(t.tmCanvas),t.tmTexture.modified(),t._tmAtlas=r,n},e.computeBarSize=e=&gt;{t.vertical=t.boxSize[1]&gt;t.boxSize[0];const n=2*e.tickHeight/t.lastSize[1],r=[1,1];if(t.vertical){const o=2*(e.tickWidth+t.tickLabelPixelOffset)/t.lastSize[0];if(t.topTitle){const n=2*(e.titleHeight+t.axisTitlePixelOffset)/t.lastSize[1];t.barSize[0]=t.boxSize[0]-o,t.barSize[1]=t.boxSize[1]-n}else{const n=2*(e.titleHeight+t.axisTitlePixelOffset)/t.lastSize[0];t.barSize[0]=t.boxSize[0]-n-o,t.barSize[1]=t.boxSize[1]}t.barPosition[0]=t.boxPosition[0]+o,t.barPosition[1]=t.boxPosition[1],r[1]=n}else{const n=(2*e.tickWidth-8)/t.lastSize[0],o=2*(e.titleHeight+t.axisTitlePixelOffset)/t.lastSize[1];t.barSize[0]=t.boxSize[0],t.barPosition[0]=t.boxPosition[0],t.barSize[1]=t.boxSize[1]-o,t.barPosition[1]=t.boxPosition[1],r[0]=n}return r},e.recomputeBarSegments=n=&gt;{const r=e.computeBarSize(n);t.barSegments=[];const o=[0,0],a=t.vertical?1:0,i=t.vertical?.01:.02;function s(e,n){t.barSegments.push({corners:[[...o],[o[0]+r[0],o[1]],[o[0]+r[0],o[1]+r[1]],[o[0],o[1]+r[1]]],scalars:n,title:e}),o[a]+=r[a]+i}t.renderable.getDrawNanAnnotation()&amp;&amp;t.renderable.getScalarsToColors().getNanColor()&amp;&amp;s(&quot;NaN&quot;,[NaN,NaN,NaN,NaN]),t.renderable.getDrawBelowRangeSwatch()&amp;&amp;t.renderable.getScalarsToColors().getUseBelowRangeColor?.()&amp;&amp;s(&quot;Below&quot;,[-.1,-.1,-.1,-.1]);const l=t.renderable.getScalarsToColors().getUseAboveRangeColor?.();o[a]+=i;const c=r[a];r[a]=l?1-2*i-r[a]-o[a]:1-i-o[a],s(&quot;ticks&quot;,t.vertical?[0,0,.995,.995]:[0,.995,.995,0]),t.renderable.getDrawAboveRangeSwatch()&amp;&amp;l&amp;&amp;(r[a]=c,o[a]+=i,s(&quot;Above&quot;,[1.1,1.1,1.1,1.1]))};const n=new Float64Array(3);e.createPolyDataForOneLabel=(e,r,o,a,i,s)=&gt;{const l=t._tmAtlas.get(e);if(!l)return;let c=s.ptIdx,u=s.cellIdx;n[0]=(.5*r[0]+.5)*t.lastSize[0],n[1]=(.5*r[1]+.5)*t.lastSize[1],n[2]=r[2],n[0]+=i[0],n[1]+=i[1];const d=[],p=&quot;vertical&quot;===a?[1,0]:[0,1];&quot;vertical&quot;===a?(d[0]=l.width,d[1]=-l.height,&quot;middle&quot;===o[0]?n[1]-=l.width/2:&quot;right&quot;===o[0]&amp;&amp;(n[1]-=l.width),&quot;middle&quot;===o[1]?n[0]+=l.height/2:&quot;top&quot;===o[1]&amp;&amp;(n[0]+=l.height)):(d[0]=l.width,d[1]=l.height,&quot;middle&quot;===o[0]?n[0]-=l.width/2:&quot;right&quot;===o[0]&amp;&amp;(n[0]-=l.width),&quot;middle&quot;===o[1]?n[1]-=l.height/2:&quot;top&quot;===o[1]&amp;&amp;(n[1]-=l.height)),s.points[3*c]=n[0],s.points[3*c+1]=n[1],s.points[3*c+2]=n[2],s.tcoords[2*c]=l.tcoords[0],s.tcoords[2*c+1]=l.tcoords[1],c++,n[p[0]]+=d[0],s.points[3*c]=n[0],s.points[3*c+1]=n[1],s.points[3*c+2]=n[2],s.tcoords[2*c]=l.tcoords[2],s.tcoords[2*c+1]=l.tcoords[3],c++,n[p[1]]+=d[1],s.points[3*c]=n[0],s.points[3*c+1]=n[1],s.points[3*c+2]=n[2],s.tcoords[2*c]=l.tcoords[4],s.tcoords[2*c+1]=l.tcoords[5],c++,n[p[0]]-=d[0],s.points[3*c]=n[0],s.points[3*c+1]=n[1],s.points[3*c+2]=n[2],s.tcoords[2*c]=l.tcoords[6],s.tcoords[2*c+1]=l.tcoords[7],c++,s.polys[4*u]=3,s.polys[4*u+1]=c-4,s.polys[4*u+2]=c-3,s.polys[4*u+3]=c-2,u++,s.polys[4*u]=3,s.polys[4*u+1]=c-4,s.polys[4*u+2]=c-2,s.polys[4*u+3]=c-1,s.ptIdx+=4,s.cellIdx+=2};const r=new Float64Array(3);e.updatePolyDataForLabels=()=&gt;{const n=e.getTickStrings().length+t.barSegments.length,o=4*n,a=2*n,i=new Float64Array(3*o),s=new Uint16Array(4*a),l=new Float32Array(2*o),c={ptIdx:0,cellIdx:0,polys:s,points:i,tcoords:l},u=t.vertical?0:1,d=t.vertical?1:0;r[2]=-.99;const p=t.vertical?[&quot;right&quot;,&quot;middle&quot;]:[&quot;middle&quot;,&quot;bottom&quot;];let f=[0,1];const g=[0,0];t.vertical?(g[0]=-t.tickLabelPixelOffset,t.topTitle?(r[0]=t.boxPosition[0]+.5*t.boxSize[0],r[1]=t.barPosition[1]+t.barSize[1],e.createPolyDataForOneLabel(t.renderable.getAxisLabel(),r,[&quot;middle&quot;,&quot;bottom&quot;],&quot;horizontal&quot;,[0,t.axisTitlePixelOffset],c)):(r[0]=t.barPosition[0]+t.barSize[0],r[1]=t.barPosition[1]+.5*t.barSize[1],e.createPolyDataForOneLabel(t.renderable.getAxisLabel(),r,[&quot;middle&quot;,&quot;top&quot;],&quot;vertical&quot;,[t.axisTitlePixelOffset,0],c)),f=[-1,0]):(g[1]=t.tickLabelPixelOffset,r[0]=t.barPosition[0]+.5*t.barSize[0],r[1]=t.barPosition[1]+t.barSize[1],e.createPolyDataForOneLabel(t.renderable.getAxisLabel(),r,[&quot;middle&quot;,&quot;bottom&quot;],&quot;horizontal&quot;,[0,t.axisTitlePixelOffset],c)),r[u]=t.barPosition[u]+(.5*f[u]+.5)*t.barSize[u],r[d]=t.barPosition[d]+.5*t.barSize[d];let m=null;for(let n=0;n&lt;t.barSegments.length;n++){const o=t.barSegments[n];&quot;ticks&quot;===o.title?m=o:(r[d]=t.barPosition[d]+.5*t.barSize[d]*(o.corners[2][d]+o.corners[0][d]),e.createPolyDataForOneLabel(o.title,r,p,&quot;horizontal&quot;,g,c))}const h=t.barPosition[d]+t.barSize[d]*m.corners[0][d],v=t.barSize[d]*(m.corners[2][d]-m.corners[0][d]),T=e.getTicks(),x=e.getTickStrings(),y=e.getTickPositions();for(let n=0;n&lt;T.length;n++){const o=y?y[n]:(T[n]-t.lastTickBounds[0])/(t.lastTickBounds[1]-t.lastTickBounds[0]);r[d]=h+v*o,e.createPolyDataForOneLabel(x[n],r,p,&quot;horizontal&quot;,g,c)}const b=Is.newInstance({numberOfComponents:2,values:l,name:&quot;TextureCoordinates&quot;});t.tmPolyData.getPointData().setTCoords(b),t.tmPolyData.getPoints().setData(i,3),t.tmPolyData.getPoints().modified(),t.tmPolyData.getPolys().setData(s,1),t.tmPolyData.getPolys().modified(),t.tmPolyData.modified()},e.updatePolyDataForBarSegments=()=&gt;{const e=t.renderable.getScalarsToColors();let n=0;t.renderable.getDrawNanAnnotation()&amp;&amp;e.getNanColor()&amp;&amp;(n+=1),t.renderable.getDrawBelowRangeSwatch()&amp;&amp;e.getUseBelowRangeColor?.()&amp;&amp;(n+=1),t.renderable.getDrawAboveRangeSwatch()&amp;&amp;e.getUseAboveRangeColor?.()&amp;&amp;(n+=1);const o=4*(1+n),a=o;let i=1;e.getVectorMode()===bp.COMPONENT&amp;&amp;(i=e.getVectorComponent()+1);const s=new Float64Array(3*o),l=new Uint16Array(5*a),c=new Float32Array(o*i);let u=0,d=0;for(let e=0;e&lt;t.barSegments.length;e++){const n=t.barSegments[e];for(let e=0;e&lt;4;e++){r[0]=t.barPosition[0]+n.corners[e][0]*t.barSize[0],r[1]=t.barPosition[1]+n.corners[e][1]*t.barSize[1],s[3*u]=(.5*r[0]+.5)*t.lastSize[0],s[3*u+1]=(.5*r[1]+.5)*t.lastSize[1],s[3*u+2]=r[2];for(let r=0;r&lt;i;r++)c[u*i+r]=t.lastTickBounds[0]+n.scalars[e]*(t.lastTickBounds[1]-t.lastTickBounds[0]);u++}l[5*d]=4,l[5*d+1]=u-4,l[5*d+2]=u-3,l[5*d+3]=u-2,l[5*d+4]=u-1,d++}const p=Is.newInstance({numberOfComponents:i,values:c,name:&quot;Scalars&quot;});t.polyData.getPointData().setScalars(p),t.polyData.getPoints().setData(s,3),t.polyData.getPoints().modified(),t.polyData.getPolys().setData(l,1),t.polyData.getPolys().modified(),t.polyData.modified()}}(e,t)}),&quot;vtkScalarBarActorHelper&quot;);function Ip(e,t,n={}){Object.assign(t,function(e){return{automated:!0,autoLayout:null,axisLabel:&quot;Scalar Value&quot;,barPosition:[0,0],barSize:[0,0],boxPosition:[.88,-.92],boxSize:[.1,1.1],scalarToColors:null,axisTitlePixelOffset:36,axisTextStyle:{fontColor:&quot;white&quot;,fontStyle:&quot;normal&quot;,fontSize:void 0,fontFamily:&quot;serif&quot;},tickLabelPixelOffset:14,tickTextStyle:{fontColor:&quot;white&quot;,fontStyle:&quot;normal&quot;,fontSize:void 0,fontFamily:&quot;serif&quot;},generateTicks:null,drawNanAnnotation:!0,drawBelowRangeSwatch:!0,drawAboveRangeSwatch:!0,orientation:null,...e}}(n)),t.autoLayout||(t.autoLayout=Sp(0,t)),t.generateTicks||(t.generateTicks=Pp()),fs.extend(e,t,n),e.getProperty().setDiffuse(0),e.getProperty().setAmbient(1),sn.setGet(e,t,[&quot;automated&quot;,&quot;autoLayout&quot;,&quot;axisTitlePixelOffset&quot;,&quot;axisLabel&quot;,&quot;scalarsToColors&quot;,&quot;tickLabelPixelOffset&quot;,&quot;generateTicks&quot;,&quot;drawNanAnnotation&quot;,&quot;drawBelowRangeSwatch&quot;,&quot;drawAboveRangeSwatch&quot;,&quot;orientation&quot;]),sn.get(e,t,[&quot;axisTextStyle&quot;,&quot;tickTextStyle&quot;]),sn.getArray(e,t,[&quot;barPosition&quot;,&quot;barSize&quot;,&quot;boxPosition&quot;,&quot;boxSize&quot;]),sn.setArray(e,t,[&quot;barPosition&quot;,&quot;barSize&quot;,&quot;boxPosition&quot;,&quot;boxSize&quot;],2),function(e,t){t.classHierarchy.push(&quot;vtkScalarBarActor&quot;),e.setTickTextStyle=n=&gt;{t.tickTextStyle={...t.tickTextStyle,...n},e.modified()},e.setAxisTextStyle=n=&gt;{t.axisTextStyle={...t.axisTextStyle,...n},e.modified()},e.setOrientationToHorizontal=()=&gt;e.setOrientation(Ap.HORIZONTAL),e.setOrientationToVertical=()=&gt;e.setOrientation(Ap.VERTICAL),e.resetAutoLayoutToDefault=()=&gt;{e.setAutoLayout(Sp(0,t))},e.resetGenerateTicksToDefault=()=&gt;{e.setGenerateTicks(Pp())}}(e,t)}var Op={newInstance:sn.newInstance(Ip,&quot;vtkScalarBarActor&quot;),extend:Ip,newScalarBarActorHelper:wp,...yp};const Rp={};vn(&quot;vtkScalarBarActor&quot;,Xt((function(e,t,n={}){Object.assign(t,Rp,n),pn.extend(e,t,n),t.scalarBarActorHelper=Op.newScalarBarActorHelper(),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLScalarBarActor&quot;),e.buildPass=n=&gt;{n&amp;&amp;(t._openGLRenderer=e.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;),t._openGLRenderWindow=t._openGLRenderer.getParent(),t.scalarBarActorHelper.getRenderable()||t.scalarBarActorHelper.setRenderable(t.renderable),e.prepareNodes(),e.addMissingNode(t.scalarBarActorHelper.getBarActor()),e.addMissingNode(t.scalarBarActorHelper.getTmActor()),e.removeUnusedNodes())},e.opaquePass=(e,n)=&gt;{if(e){const e=t._openGLRenderer?t._openGLRenderer.getRenderable().getActiveCamera():null,n=t._openGLRenderer.getTiledSizeAndOrigin();t.scalarBarActorHelper.updateAPISpecificData([n.usize,n.vsize],e,t._openGLRenderWindow.getRenderable())}}}(e,t)}),&quot;vtkOpenGLScalarBarActor&quot;));const{vtkErrorMacro:Mp}=ln;const Dp={context:null};const Ep=Xt((function(e,t,n={}){Object.assign(t,Dp,n),pn.extend(e,t,n),t.openGLTexture=Hd.newInstance(),t.tris=Sd.newInstance(),t.keyMatrixTime={},Vt(t.keyMatrixTime,{mtime:0}),t.keyMatrices={normalMatrix:c(new Float64Array(9)),mcwc:x(new Float64Array(16))},Gt(e,t,[&quot;context&quot;]),Bt(e,t,[&quot;activeTextures&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLSkybox&quot;),e.buildPass=n=&gt;{if(n){t._openGLRenderer=e.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;),t._openGLRenderWindow=t._openGLRenderer.getParent(),t.context=t._openGLRenderWindow.getContext(),t.tris.setOpenGLRenderWindow(t._openGLRenderWindow),t.openGLTexture.setOpenGLRenderWindow(t._openGLRenderWindow);const n=t._openGLRenderer.getRenderable();t.openGLCamera=t._openGLRenderer.getViewNodeFor(n.getActiveCamera(),t.openGLCamera)}},e.queryPass=(e,n)=&gt;{if(e){if(!t.renderable||!t.renderable.getVisibility())return;n.incrementOpaqueActorCount()}},e.opaquePass=(n,r)=&gt;{if(n&amp;&amp;!t._openGLRenderer.getSelector()){e.updateBufferObjects(),t.context.depthMask(!0),t._openGLRenderWindow.getShaderCache().readyShaderProgram(t.tris.getProgram()),t.openGLTexture.render(t._openGLRenderWindow);const n=t.openGLTexture.getTextureUnit();t.tris.getProgram().setUniformi(&quot;sbtexture&quot;,n);const r=t._openGLRenderer.getRenderable(),o=t.openGLCamera.getKeyMatrices(r),a=new Float64Array(16);if(b(a,o.wcpc),t.tris.getProgram().setUniformMatrix(&quot;IMCPCMatrix&quot;,a),&quot;box&quot;===t.lastFormat){const e=r.getActiveCamera().getPosition();t.tris.getProgram().setUniform3f(&quot;camPos&quot;,e[0],e[1],e[2])}t.tris.getVAO().bind(),t.context.drawArrays(t.context.TRIANGLES,0,t.tris.getCABO().getElementCount()),t.tris.getVAO().release(),t.openGLTexture.deactivate()}},e.updateBufferObjects=()=&gt;{if(!t.tris.getCABO().getElementCount()){const e=new Float32Array(12);for(let t=0;t&lt;4;t++)e[3*t]=t%2*2-1,e[3*t+1]=t&gt;1?1:-1,e[3*t+2]=1;const n=Is.newInstance({numberOfComponents:3,values:e});n.setName(&quot;points&quot;);const r=new Uint16Array(8);r[0]=3,r[1]=0,r[2]=1,r[3]=3,r[4]=3,r[5]=0,r[6]=3,r[7]=2;const o=Is.newInstance({numberOfComponents:1,values:r});t.tris.getCABO().createVBO(o,&quot;polys&quot;,rs.SURFACE,{points:n,cellOffset:0})}t.renderable.getFormat()!==t.lastFormat&amp;&amp;(t.lastFormat=t.renderable.getFormat(),&quot;box&quot;===t.lastFormat&amp;&amp;t.tris.setProgram(t._openGLRenderWindow.getShaderCache().readyShaderProgramArray(&quot;//VTK::System::Dec\\n             attribute vec3 vertexMC;\\n             uniform mat4 IMCPCMatrix;\\n             varying vec3 TexCoords;\\n             void main () {\\n              gl_Position = vec4(vertexMC.xyz, 1.0);\\n              vec4 wpos = IMCPCMatrix * gl_Position;\\n              TexCoords = wpos.xyz/wpos.w;\\n             }&quot;,&quot;//VTK::System::Dec\\n             //VTK::Output::Dec\\n             varying vec3 TexCoords;\\n             uniform samplerCube sbtexture;\\n             uniform vec3 camPos;\\n             void main () {\\n               // skybox looks from inside out\\n               // which means we have to adjust\\n               // our tcoords. Otherwise text would\\n               // be flipped\\n               vec3 tc = normalize(TexCoords - camPos);\\n               if (abs(tc.z) &lt; max(abs(tc.x),abs(tc.y)))\\n               {\\n                 tc = vec3(1.0, 1.0, -1.0) * tc;\\n               }\\n               else\\n               {\\n                 tc = vec3(-1.0, 1.0, 1.0) * tc;\\n               }\\n               gl_FragData[0] = textureCube(sbtexture, tc);\\n             }&quot;,&quot;&quot;)),&quot;background&quot;===t.lastFormat&amp;&amp;t.tris.setProgram(t._openGLRenderWindow.getShaderCache().readyShaderProgramArray(&quot;//VTK::System::Dec\\n             attribute vec3 vertexMC;\\n             uniform mat4 IMCPCMatrix;\\n             varying vec2 TexCoords;\\n             void main () {\\n              gl_Position = vec4(vertexMC.xyz, 1.0);\\n              vec4 wpos = IMCPCMatrix * gl_Position;\\n              TexCoords = vec2(vertexMC.x, vertexMC.y)*0.5 + 0.5;\\n             }&quot;,&quot;//VTK::System::Dec\\n             //VTK::Output::Dec\\n             varying vec2 TexCoords;\\n             uniform sampler2D sbtexture;\\n             void main () {\\n               gl_FragData[0] = texture2D(sbtexture, TexCoords);\\n             }&quot;,&quot;&quot;)),t.tris.getShaderSourceTime().modified(),t.tris.getVAO().bind(),t.tris.getVAO().addAttributeArray(t.tris.getProgram(),t.tris.getCABO(),&quot;vertexMC&quot;,t.tris.getCABO().getVertexOffset(),t.tris.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE)||Mp(&quot;Error setting vertexMC in shader VAO.&quot;));const e=t.renderable.getTextures();e.length||Mp(&quot;vtkSkybox requires a texture map&quot;),t.openGLTexture.getRenderable()!==e[0]&amp;&amp;(t.openGLTexture.releaseGraphicsResources(t._openGLRenderWindow),t.openGLTexture.setRenderable(e[0]))}}(e,t)}));vn(&quot;vtkSkybox&quot;,Ep);const{FieldAssociations:Vp}=Qs;const Lp={fieldAssociation:Vp.FIELD_ASSOCIATION_CELLS,captureZValues:!1};function Bp(e,t,n={}){Object.assign(t,Lp,n),sn.obj(e,t),sn.setGet(e,t,[&quot;fieldAssociation&quot;,&quot;captureZValues&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkHardwareSelector&quot;),e.getSourceDataAsync=async(e,t,n,r,o)=&gt;{},e.selectAsync=async(t,n,r,o,a)=&gt;{const i=await e.getSourceDataAsync(t,n,r,o,a);return i?i.generateSelection(n,r,o,a):[]}}(e,t)}var Fp={newInstance:sn.newInstance(Bp,&quot;vtkHardwareSelector&quot;),extend:Bp};const Np={glFramebuffer:null,colorBuffers:null,depthTexture:null,previousDrawBinding:0,previousReadBinding:0,previousDrawBuffer:0,previousReadBuffer:0,previousActiveFramebuffer:null};function kp(e,t,n={}){Object.assign(t,Np,n),Vt(e,t),t.colorBuffers&amp;&amp;Tt(&quot;you cannot initialize colorBuffers through the constructor. You should call setColorBuffer() instead.&quot;),t.colorBuffers=[],Ut(e,t,[&quot;colorBuffers&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkFramebuffer&quot;),e.getBothMode=()=&gt;t.context.FRAMEBUFFER,e.saveCurrentBindingsAndBuffers=t=&gt;{const n=void 0!==t?t:e.getBothMode();e.saveCurrentBindings(n),e.saveCurrentBuffers(n)},e.saveCurrentBindings=e=&gt;{if(!t.context)return void Tt(&quot;you must set the OpenGLRenderWindow before calling saveCurrentBindings&quot;);const n=t.context;t.previousDrawBinding=n.getParameter(t.context.FRAMEBUFFER_BINDING),t.previousActiveFramebuffer=t._openGLRenderWindow.getActiveFramebuffer()},e.saveCurrentBuffers=e=&gt;{},e.restorePreviousBindingsAndBuffers=t=&gt;{const n=void 0!==t?t:e.getBothMode();e.restorePreviousBindings(n),e.restorePreviousBuffers(n)},e.restorePreviousBindings=e=&gt;{if(!t.context)return void Tt(&quot;you must set the OpenGLRenderWindow before calling restorePreviousBindings&quot;);const n=t.context;n.bindFramebuffer(n.FRAMEBUFFER,t.previousDrawBinding),t._openGLRenderWindow.setActiveFramebuffer(t.previousActiveFramebuffer)},e.restorePreviousBuffers=e=&gt;{},e.bind=(n=null)=&gt;{let r=n;null===r&amp;&amp;(r=t.context.FRAMEBUFFER),t.context.bindFramebuffer(r,t.glFramebuffer);for(let e=0;e&lt;t.colorBuffers.length;e++)t.colorBuffers[e].bind();t._openGLRenderWindow.setActiveFramebuffer(e)},e.create=(e,n)=&gt;{t.context?(t.glFramebuffer=t.context.createFramebuffer(),t.glFramebuffer.width=e,t.glFramebuffer.height=n):Tt(&quot;you must set the OpenGLRenderWindow before calling create&quot;)},e.setColorBuffer=(e,n=0)=&gt;{const r=t.context;if(!r)return void Tt(&quot;you must set the OpenGLRenderWindow before calling setColorBuffer&quot;);let o=r.COLOR_ATTACHMENT0;if(n&gt;0){if(!t._openGLRenderWindow.getWebgl2())return void Tt(&quot;Using multiple framebuffer attachments requires WebGL 2&quot;);o+=n}t.colorBuffers[n]=e,r.framebufferTexture2D(r.FRAMEBUFFER,o,r.TEXTURE_2D,e.getHandle(),0)},e.removeColorBuffer=(e=0)=&gt;{const n=t.context;if(!n)return void Tt(&quot;you must set the OpenGLRenderWindow before calling removeColorBuffer&quot;);let r=n.COLOR_ATTACHMENT0;if(e&gt;0){if(!t._openGLRenderWindow.getWebgl2())return void Tt(&quot;Using multiple framebuffer attachments requires WebGL 2&quot;);r+=e}n.framebufferTexture2D(n.FRAMEBUFFER,r,n.TEXTURE_2D,null,0),t.colorBuffers=t.colorBuffers.splice(e,1)},e.setDepthBuffer=e=&gt;{if(t.context)if(t._openGLRenderWindow.getWebgl2()){const n=t.context;n.framebufferTexture2D(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.TEXTURE_2D,e.getHandle(),0)}else Tt(&quot;Attaching depth buffer textures to fbo requires WebGL 2&quot;);else Tt(&quot;you must set the OpenGLRenderWindow before calling setDepthBuffer&quot;)},e.removeDepthBuffer=()=&gt;{if(t.context)if(t._openGLRenderWindow.getWebgl2()){const e=t.context;e.framebufferTexture2D(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.TEXTURE_2D,null,0)}else Tt(&quot;Attaching depth buffer textures to framebuffers requires WebGL 2&quot;);else Tt(&quot;you must set the OpenGLRenderWindow before calling removeDepthBuffer&quot;)},e.getGLFramebuffer=()=&gt;t.glFramebuffer,e.setOpenGLRenderWindow=n=&gt;{t._openGLRenderWindow!==n&amp;&amp;(e.releaseGraphicsResources(),t._openGLRenderWindow=n,t.context=null,n&amp;&amp;(t.context=t._openGLRenderWindow.getContext()))},e.releaseGraphicsResources=()=&gt;{t.glFramebuffer&amp;&amp;t.context.deleteFramebuffer(t.glFramebuffer)},e.getSize=()=&gt;null==t.glFramebuffer?null:[t.glFramebuffer.width,t.glFramebuffer.height],e.populateFramebuffer=()=&gt;{if(!t.context)return void Tt(&quot;you must set the OpenGLRenderWindow before calling populateFrameBuffer&quot;);e.bind();const n=t.context,r=Hd.newInstance();r.setOpenGLRenderWindow(t._openGLRenderWindow),r.setMinificationFilter(wd.LINEAR),r.setMagnificationFilter(wd.LINEAR),r.create2DFromRaw({width:t.glFramebuffer.width,height:t.glFramebuffer.height,numComps:4,dataType:ms.UNSIGNED_CHAR,data:null}),e.setColorBuffer(r),t.depthTexture=n.createRenderbuffer(),n.bindRenderbuffer(n.RENDERBUFFER,t.depthTexture),n.renderbufferStorage(n.RENDERBUFFER,n.DEPTH_COMPONENT16,t.glFramebuffer.width,t.glFramebuffer.height),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.RENDERBUFFER,t.depthTexture)},e.getColorTexture=()=&gt;t.colorBuffers[0]}(e,t)}var Gp={newInstance:Xt(kp,&quot;vtkFramebuffer&quot;),extend:kp};var Up={SelectionContent:{GLOBALIDS:0,PEDIGREEIDS:1,VALUES:2,INDICES:3,FRUSTUM:4,LOCATIONS:5,THRESHOLDS:6,BLOCKS:7,QUERY:8},SelectionField:{CELL:0,POINT:1,FIELD:2,VERTEX:3,EDGE:4,ROW:5}};const _p={contentType:-1,fieldType:-1,properties:null,selectionList:[]};function Kp(e,t,n={}){Object.assign(t,_p,n),sn.obj(e,t),t.properties={},sn.setGet(e,t,[&quot;contentType&quot;,&quot;fieldType&quot;,&quot;properties&quot;,&quot;selectionList&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkSelectionNode&quot;),e.getBounds=()=&gt;t.points.getBounds()}(e,t)}var zp={newInstance:sn.newInstance(Kp,&quot;vtkSelectionNode&quot;),extend:Kp,...Up};const{PassTypes:Wp}=Fl,{SelectionContent:Hp,SelectionField:jp}=zp,{FieldAssociations:Xp}=Qs,{vtkErrorMacro:qp,vtkDebugMacro:Yp}=sn;function Jp(e){return`${e.propID} ${e.compositeID}`}function Zp(e,t,n,r){if(!n)return 0;return n[4*(t*(r[2]-r[0]+1)+e)+3]}function Qp(e,t,n,r,o=null){if(!n)return 0;const a=4*(t*(r[2]-r[0]+1)+e),i=n[a],s=n[a+1];return 256*(256*n[a+2]+s)+i}function $p(e,t){let n=t;return n&lt;&lt;=24,n|=e,n}function ef(e,t,n,r){const o=n&lt;0?0:n;if(0===o){if(r[0]=t[0],r[1]=t[1],t[0]&lt;e.area[0]||t[0]&gt;e.area[2]||t[1]&lt;e.area[1]||t[1]&gt;e.area[3])return null;const n=[t[0]-e.area[0],t[1]-e.area[1]],o=Qp(n[0],n[1],e.pixBuffer[Wp.ACTOR_PASS],e.area,&quot;getPixelInformationWithData1&quot;);if(o&lt;=0||o-1&gt;=e.props.length)return null;const a={valid:!0};a.propID=o-1,a.prop=e.props[a.propID];let i=Qp(n[0],n[1],e.pixBuffer[Wp.COMPOSITE_INDEX_PASS],e.area,&quot;getPixelInformationWithData2&quot;);if((i&lt;0||i&gt;16777215)&amp;&amp;(i=0),a.compositeID=i-1,e.captureZValues){const r=4*(n[1]*(e.area[2]-e.area[0]+1)+n[0]);a.zValue=(256*e.zBuffer[r]+e.zBuffer[r+1])/65535,a.displayPosition=t}if(e.pixBuffer[Wp.ID_LOW24]&amp;&amp;0===Zp(n[0],n[1],e.pixBuffer[Wp.ID_LOW24],e.area))return a;const s=Qp(n[0],n[1],e.pixBuffer[Wp.ID_LOW24],e.area,&quot;getPixelInformationWithData3&quot;),l=Qp(n[0],n[1],e.pixBuffer[Wp.ID_HIGH24],e.area,&quot;getPixelInformationWithData4&quot;);return a.attributeID=$p(s,l),a}const a=[t[0],t[1]],i=[0,0];let s=ef(e,t,0,r);if(s&amp;&amp;s.valid)return s;for(let t=1;t&lt;o;++t){for(let n=a[1]&gt;t?a[1]-t:0;n&lt;=a[1]+t;++n){if(i[1]=n,a[0]&gt;=t&amp;&amp;(i[0]=a[0]-t,s=ef(e,i,0,r),s&amp;&amp;s.valid))return s;if(i[0]=a[0]+t,s=ef(e,i,0,r),s&amp;&amp;s.valid)return s}for(let n=a[0]&gt;=t?a[0]-(t-1):0;n&lt;=a[0]+(t-1);++n){if(i[0]=n,a[1]&gt;=t&amp;&amp;(i[1]=a[1]-t,s=ef(e,i,0,r),s&amp;&amp;s.valid))return s;if(i[1]=a[1]+t,s=ef(e,i,0,r),s&amp;&amp;s.valid)return s}}return r[0]=t[0],r[1]=t[1],null}function tf(e,t,n,r,o){const a=[];let i=0;return t.forEach(((t,s)=&gt;{const l=zp.newInstance();switch(l.setContentType(Hp.INDICES),e){case Xp.FIELD_ASSOCIATION_CELLS:l.setFieldType(jp.CELL);break;case Xp.FIELD_ASSOCIATION_POINTS:l.setFieldType(jp.POINT);break;default:qp(&quot;Unknown field association&quot;)}l.getProperties().propID=t.info.propID,l.getProperties().prop=t.info.prop,l.getProperties().compositeID=t.info.compositeID,l.getProperties().attributeID=t.info.attributeID,l.getProperties().pixelCount=t.pixelCount,n&amp;&amp;(l.getProperties().displayPosition=[t.info.displayPosition[0],t.info.displayPosition[1],t.info.zValue],l.getProperties().worldPosition=o.displayToWorld(t.info.displayPosition[0],t.info.displayPosition[1],t.info.zValue,r)),l.setSelectionList(t.attributeIDs),a[i]=l,i++})),a}function nf(e,t){t.classHierarchy.push(&quot;vtkOpenGLHardwareSelector&quot;),e.releasePixBuffers=()=&gt;{t.rawPixBuffer=[],t.pixBuffer=[],t.zBuffer=null},e.beginSelection=()=&gt;{t._openGLRenderer=t._openGLRenderWindow.getViewNodeFor(t._renderer,t._openGLRenderer),t.maxAttributeId=0;const n=t._openGLRenderWindow.getSize();if(t.framebuffer){t.framebuffer.setOpenGLRenderWindow(t._openGLRenderWindow),t.framebuffer.saveCurrentBindingsAndBuffers();const e=t.framebuffer.getSize();e&amp;&amp;e[0]===n[0]&amp;&amp;e[1]===n[1]?t.framebuffer.bind():(t.framebuffer.create(n[0],n[1]),t.framebuffer.populateFramebuffer())}else t.framebuffer=Gp.newInstance(),t.framebuffer.setOpenGLRenderWindow(t._openGLRenderWindow),t.framebuffer.saveCurrentBindingsAndBuffers(),t.framebuffer.create(n[0],n[1]),t.framebuffer.populateFramebuffer();if(t._openGLRenderer.clear(),t._openGLRenderer.setSelector(e),t.hitProps={},t.propPixels={},t.props=[],e.releasePixBuffers(),t.fieldAssociation===Xp.FIELD_ASSOCIATION_POINTS){const e=t._openGLRenderWindow.getContext(),n=e.isEnabled(e.BLEND);e.disable(e.BLEND),t._openGLRenderWindow.traverseAllPasses(),n&amp;&amp;e.enable(e.BLEND)}},e.endSelection=()=&gt;{t.hitProps={},t._openGLRenderer.setSelector(null),t.framebuffer.restorePreviousBindingsAndBuffers()},e.preCapturePass=()=&gt;{const e=t._openGLRenderWindow.getContext();t.originalBlending=e.isEnabled(e.BLEND),e.disable(e.BLEND)},e.postCapturePass=()=&gt;{const e=t._openGLRenderWindow.getContext();t.originalBlending&amp;&amp;e.enable(e.BLEND)},e.select=()=&gt;{let n=null;return e.captureBuffers()&amp;&amp;(n=e.generateSelection(t.area[0],t.area[1],t.area[2],t.area[3]),e.releasePixBuffers()),n},e.getSourceDataAsync=async(n,r,o,a,i)=&gt;{if(t._renderer=n,void 0===r){const n=t._openGLRenderWindow.getSize();e.setArea(0,0,n[0]-1,n[1]-1)}else e.setArea(r,o,a,i);if(!e.captureBuffers())return!1;const s={area:[...t.area],pixBuffer:[...t.pixBuffer],captureZValues:t.captureZValues,zBuffer:t.zBuffer,props:[...t.props],fieldAssociation:t.fieldAssociation,renderer:n,openGLRenderWindow:t._openGLRenderWindow};return s.generateSelection=(...e)=&gt;function(e,t,n,r,o){const a=Math.floor(t),i=Math.floor(n),s=Math.floor(r),l=Math.floor(o),c=new Map,u=[0,0];for(let t=i;t&lt;=l;t++)for(let n=a;n&lt;=s;n++){const r=ef(e,[n,t],0,u);if(r&amp;&amp;r.valid){const t=Jp(r);if(c.has(t)){const n=c.get(t);n.pixelCount++,e.captureZValues&amp;&amp;r.zValue&lt;n.info.zValue&amp;&amp;(n.info=r),-1===n.attributeIDs.indexOf(r.attributeID)&amp;&amp;n.attributeIDs.push(r.attributeID)}else c.set(t,{info:r,pixelCount:1,attributeIDs:[r.attributeID]})}}return tf(e.fieldAssociation,c,e.captureZValues,e.renderer,e.openGLRenderWindow)}(s,...e),s},e.captureBuffers=()=&gt;{if(!t._renderer||!t._openGLRenderWindow)return qp(&quot;Renderer and view must be set before calling Select.&quot;),!1;t._openGLRenderer=t._openGLRenderWindow.getViewNodeFor(t._renderer,t._openGLRenderer),t._openGLRenderWindow.getRenderable().preRender(),e.invokeEvent({type:&quot;StartEvent&quot;}),t.originalBackground=t._renderer.getBackgroundByReference(),t._renderer.setBackground(0,0,0,0);const n=t._openGLRenderWindow.getRenderPasses();e.beginSelection();const r=[];for(t.currentPass=Wp.MIN_KNOWN_PASS;t.currentPass&lt;=Wp.MAX_KNOWN_PASS;t.currentPass++)e.passRequired(t.currentPass)&amp;&amp;(e.preCapturePass(t.currentPass),t.captureZValues&amp;&amp;t.currentPass===Wp.ACTOR_PASS&amp;&amp;&quot;function&quot;==typeof n[0].requestDepth&amp;&amp;&quot;function&quot;==typeof n[0].getFramebuffer?(n[0].requestDepth(),t._openGLRenderWindow.traverseAllPasses()):t._openGLRenderWindow.traverseAllPasses(),e.postCapturePass(t.currentPass),e.savePixelBuffer(t.currentPass),r.push(t.currentPass));return r.forEach((n=&gt;{t.currentPass=n,e.processPixelBuffers()})),t.currentPass=Wp.MAX_KNOWN_PASS,e.endSelection(),t._renderer.setBackground(t.originalBackground),e.invokeEvent({type:&quot;EndEvent&quot;}),!0},e.processPixelBuffers=()=&gt;{t.props.forEach(((n,r)=&gt;{e.isPropHit(r)&amp;&amp;n.processSelectorPixelBuffers(e,t.propPixels[r])}))},e.passRequired=e=&gt;{if(e===Wp.ID_HIGH24){if(t.fieldAssociation===Xp.FIELD_ASSOCIATION_POINTS)return t.maximumPointId&gt;16777215;if(t.fieldAssociation===Xp.FIELD_ASSOCIATION_CELLS)return t.maximumCellId&gt;16777215}return!0},e.savePixelBuffer=n=&gt;{if(t.pixBuffer[n]=t._openGLRenderWindow.getPixelData(t.area[0],t.area[1],t.area[2],t.area[3]),!t.rawPixBuffer[n]){const e=(t.area[2]-t.area[0]+1)*(t.area[3]-t.area[1]+1)*4;t.rawPixBuffer[n]=new Uint8Array(e),t.rawPixBuffer[n].set(t.pixBuffer[n])}if(n===Wp.ACTOR_PASS){if(t.captureZValues){const e=t._openGLRenderWindow.getRenderPasses();if(&quot;function&quot;==typeof e[0].requestDepth&amp;&amp;&quot;function&quot;==typeof e[0].getFramebuffer){const n=e[0].getFramebuffer();n.saveCurrentBindingsAndBuffers(),n.bind(),t.zBuffer=t._openGLRenderWindow.getPixelData(t.area[0],t.area[1],t.area[2],t.area[3]),n.restorePreviousBindingsAndBuffers()}}e.buildPropHitList(t.rawPixBuffer[n])}},e.buildPropHitList=e=&gt;{let n=0;for(let r=0;r&lt;=t.area[3]-t.area[1];r++)for(let o=0;o&lt;=t.area[2]-t.area[0];o++){let a=Qp(o,r,e,t.area,&quot;buildPropHitList&quot;);a&gt;0&amp;&amp;(a--,a in t.hitProps||(t.hitProps[a]=!0,t.propPixels[a]=[]),t.propPixels[a].push(4*n)),++n}},e.renderProp=n=&gt;{t.currentPass===Wp.ACTOR_PASS&amp;&amp;(e.setPropColorValueFromInt(t.props.length+1),t.props.push(n))},e.renderCompositeIndex=n=&gt;{t.currentPass===Wp.COMPOSITE_INDEX_PASS&amp;&amp;e.setPropColorValueFromInt(n+1)},e.renderAttributeId=e=&gt;{e&lt;0||(t.maxAttributeId=e&gt;t.maxAttributeId?e:t.maxAttributeId)},e.passTypeToString=e=&gt;sn.enumToString(Wp,e),e.isPropHit=e=&gt;Boolean(t.hitProps[e]),e.setPropColorValueFromInt=e=&gt;{t.propColorValue[0]=e%256/255,t.propColorValue[1]=Math.floor(e/256)%256/255,t.propColorValue[2]=Math.floor(e/65536)%256/255},e.getPixelInformation=(n,r,o)=&gt;{const a=r&lt;0?0:r;if(Yp(&quot;getPixelInformation called&quot;,a),0===a){if(o[0]=n[0],o[1]=n[1],n[0]&lt;t.area[0]||n[0]&gt;t.area[2]||n[1]&lt;t.area[1]||n[1]&gt;t.area[3])return null;Yp(n),Yp(t.area);const e=[n[0]-t.area[0],n[1]-t.area[1]];Yp(&quot;adjusted displayPosition&quot;,e);const r=Qp(e[0],e[1],t.pixBuffer[Wp.ACTOR_PASS],t.area,&quot;getPixelInformation&quot;);if(Yp(&quot;actorid&quot;,r),r&lt;=0||r-1&gt;=t.props.length)return null;const a={valid:!0};a.propID=r-1,a.prop=t.props[a.propID];let i=Qp(e[0],e[1],t.pixBuffer[Wp.COMPOSITE_INDEX_PASS],t.area,&quot;getPixelInformation2&quot;);if((i&lt;0||i&gt;16777215)&amp;&amp;(i=0),a.compositeID=i-1,t.captureZValues){const r=4*(e[1]*(t.area[2]-t.area[0]+1)+e[0]);a.zValue=(256*t.zBuffer[r]+t.zBuffer[r+1])/65535,a.displayPosition=n}if(t.pixBuffer[Wp.ID_LOW24]&amp;&amp;0===Zp(e[0],e[1],t.pixBuffer[Wp.ID_LOW24],t.area))return a;const s=Qp(e[0],e[1],t.pixBuffer[Wp.ID_LOW24],t.area,&quot;getPixelInformation3&quot;),l=Qp(e[0],e[1],t.pixBuffer[Wp.ID_HIGH24],t.area,&quot;getPixelInformation4&quot;);return a.attributeID=$p(s,l),a}const i=[n[0],n[1]],s=[0,0];let l=e.getPixelInformation(n,0,o);if(l&amp;&amp;l.valid)return l;for(let t=1;t&lt;a;++t){for(let n=i[1]&gt;t?i[1]-t:0;n&lt;=i[1]+t;++n){if(s[1]=n,i[0]&gt;=t&amp;&amp;(s[0]=i[0]-t,l=e.getPixelInformation(s,0,o),l&amp;&amp;l.valid))return l;if(s[0]=i[0]+t,l=e.getPixelInformation(s,0,o),l&amp;&amp;l.valid)return l}for(let n=i[0]&gt;=t?i[0]-(t-1):0;n&lt;=i[0]+(t-1);++n){if(s[0]=n,i[1]&gt;=t&amp;&amp;(s[1]=i[1]-t,l=e.getPixelInformation(s,0,o),l&amp;&amp;l.valid))return l;if(s[1]=i[1]+t,l=e.getPixelInformation(s,0,o),l&amp;&amp;l.valid)return l}}return o[0]=n[0],o[1]=n[1],null},e.generateSelection=(n,r,o,a)=&gt;{const i=Math.floor(n),s=Math.floor(r),l=Math.floor(o),c=Math.floor(a),u=new Map,d=[0,0];for(let n=s;n&lt;=c;n++)for(let r=i;r&lt;=l;r++){const o=[r,n],a=e.getPixelInformation(o,0,d);if(a&amp;&amp;a.valid){const e=Jp(a);if(u.has(e)){const n=u.get(e);n.pixelCount++,t.captureZValues&amp;&amp;a.zValue&lt;n.info.zValue&amp;&amp;(n.info=a),-1===n.attributeIDs.indexOf(a.attributeID)&amp;&amp;n.attributeIDs.push(a.attributeID)}else u.set(e,{info:a,pixelCount:1,attributeIDs:[a.attributeID]})}}return tf(t.fieldAssociation,u,t.captureZValues,t._renderer,t._openGLRenderWindow)},e.getRawPixelBuffer=e=&gt;t.rawPixBuffer[e],e.getPixelBuffer=e=&gt;t.pixBuffer[e],e.attach=(e,n)=&gt;{t._openGLRenderWindow=e,t._renderer=n};const n=e.setArea;e.setArea=(...e)=&gt;!!n(...e)&amp;&amp;(t.area[0]=Math.floor(t.area[0]),t.area[1]=Math.floor(t.area[1]),t.area[2]=Math.floor(t.area[2]),t.area[3]=Math.floor(t.area[3]),!0)}const rf={area:void 0,currentPass:-1,propColorValue:null,props:null,maximumPointId:0,maximumCellId:0,idOffset:1};function of(e,t,n={}){Object.assign(t,rf,n),Fp.extend(e,t,n),t.propColorValue=[0,0,0],t.props=[],t.area||(t.area=[0,0,0,0]),sn.setGetArray(e,t,[&quot;area&quot;],4),sn.setGet(e,t,[&quot;_renderer&quot;,&quot;currentPass&quot;,&quot;_openGLRenderWindow&quot;,&quot;maximumPointId&quot;,&quot;maximumCellId&quot;]),sn.setGetArray(e,t,[&quot;propColorValue&quot;],3),sn.moveToProtected(e,t,[&quot;renderer&quot;,&quot;openGLRenderWindow&quot;]),sn.event(e,t,&quot;event&quot;),nf(e,t)}var af={newInstance:sn.newInstance(of,&quot;vtkOpenGLHardwareSelector&quot;),extend:of,...Fl};const{vtkErrorMacro:sf}=ln,{Representation:lf}=us,{ObjectType:cf}=nd,{PassTypes:uf}=af,df={type:&quot;StartEvent&quot;},pf={type:&quot;EndEvent&quot;};const ff={normalMatrix:null,mcpcMatrix:null,mcwcMatrix:null};const gf=Xt((function(e,t,n={}){Object.assign(t,ff,n),up.extend(e,t,n),t.tmpMat3=c(new Float64Array(9)),t.normalMatrix=c(new Float64Array(9)),t.mcpcMatrix=x(new Float64Array(16)),t.mcvcMatrix=x(new Float64Array(16)),t.tmpColor=[],t.glyphBOBuildTime={},Vt(t.glyphBOBuildTime,{mtime:0}),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLGlyph3DMapper&quot;);const n={...e};e.renderPiece=(n,r)=&gt;{if(e.invokeEvent(df),t.renderable.getStatic()||t.renderable.update(),t.currentInput=t.renderable.getInputData(1),e.invokeEvent(pf),!t.currentInput)return void sf(&quot;No input!&quot;);if(!t.currentInput.getPoints||!t.currentInput.getPoints().getNumberOfValues())return;const o=t.context;t._openGLRenderWindow.getWebgl2()?(t.hardwareSupport=!0,t.extension=null):t.extension||(t.extension=t.context.getExtension(&quot;ANGLE_instanced_arrays&quot;),t.hardwareSupport=!!t.extension);const a=r.getProperty().getBackfaceCulling(),i=r.getProperty().getFrontfaceCulling();a||i?i?(t._openGLRenderWindow.enableCullFace(),o.cullFace(o.FRONT)):(t._openGLRenderWindow.enableCullFace(),o.cullFace(o.BACK)):t._openGLRenderWindow.disableCullFace(),e.renderPieceStart(n,r),e.renderPieceDraw(n,r),e.renderPieceFinish(n,r)},e.multiply4x4WithOffset=(e,t,n,r)=&gt;{const o=t[0],a=t[1],i=t[2],s=t[3],l=t[4],c=t[5],u=t[6],d=t[7],p=t[8],f=t[9],g=t[10],m=t[11],h=t[12],v=t[13],T=t[14],x=t[15];let y=n[r],b=n[r+1],A=n[r+2],C=n[r+3];e[0]=y*o+b*l+A*p+C*h,e[1]=y*a+b*c+A*f+C*v,e[2]=y*i+b*u+A*g+C*T,e[3]=y*s+b*d+A*m+C*x,y=n[r+4],b=n[r+5],A=n[r+6],C=n[r+7],e[4]=y*o+b*l+A*p+C*h,e[5]=y*a+b*c+A*f+C*v,e[6]=y*i+b*u+A*g+C*T,e[7]=y*s+b*d+A*m+C*x,y=n[r+8],b=n[r+9],A=n[r+10],C=n[r+11],e[8]=y*o+b*l+A*p+C*h,e[9]=y*a+b*c+A*f+C*v,e[10]=y*i+b*u+A*g+C*T,e[11]=y*s+b*d+A*m+C*x,y=n[r+12],b=n[r+13],A=n[r+14],C=n[r+15],e[12]=y*o+b*l+A*p+C*h,e[13]=y*a+b*c+A*f+C*v,e[14]=y*i+b*u+A*g+C*T,e[15]=y*s+b*d+A*m+C*x},e.replaceShaderNormal=(e,r,o)=&gt;{if(t.hardwareSupport&amp;&amp;t.lastBoundBO.getReferenceByName(&quot;lastLightComplexity&quot;)&gt;0){let n=e.Vertex;t.lastBoundBO.getCABO().getNormalOffset()&amp;&amp;(n=vd.substitute(n,&quot;//VTK::Normal::Dec&quot;,[&quot;attribute vec3 normalMC;&quot;,&quot;attribute mat3 gNormal;&quot;,&quot;uniform mat3 normalMatrix;&quot;,&quot;varying vec3 normalVCVSOutput;&quot;]).result,n=vd.substitute(n,&quot;//VTK::Normal::Impl&quot;,[&quot;normalVCVSOutput = normalMatrix * gNormal * normalMC;&quot;]).result),e.Vertex=n}n.replaceShaderNormal(e,r,o)},e.replaceShaderClip=(e,r,o)=&gt;{if(t.hardwareSupport){let n=e.Vertex,r=e.Fragment;if(t.renderable.getNumberOfClippingPlanes()){const e=t.renderable.getNumberOfClippingPlanes();n=vd.substitute(n,&quot;//VTK::Clip::Dec&quot;,[&quot;uniform int numClipPlanes;&quot;,`uniform vec4 clipPlanes[${e}];`,`varying float clipDistancesVSOutput[${e}];`]).result,n=vd.substitute(n,&quot;//VTK::Clip::Impl&quot;,[`for (int planeNum = 0; planeNum &lt; ${e}; planeNum++)`,&quot;    {&quot;,&quot;    if (planeNum &gt;= numClipPlanes)&quot;,&quot;        {&quot;,&quot;        break;&quot;,&quot;        }&quot;,&quot;    vec4 gVertex = gMatrix * vertexMC;&quot;,&quot;    clipDistancesVSOutput[planeNum] = dot(clipPlanes[planeNum], gVertex);&quot;,&quot;    }&quot;]).result,r=vd.substitute(r,&quot;//VTK::Clip::Dec&quot;,[&quot;uniform int numClipPlanes;&quot;,`varying float clipDistancesVSOutput[${e}];`]).result,r=vd.substitute(r,&quot;//VTK::Clip::Impl&quot;,[`for (int planeNum = 0; planeNum &lt; ${e}; planeNum++)`,&quot;    {&quot;,&quot;    if (planeNum &gt;= numClipPlanes)&quot;,&quot;        {&quot;,&quot;        break;&quot;,&quot;        }&quot;,&quot;    if (clipDistancesVSOutput[planeNum] &lt; 0.0) discard;&quot;,&quot;    }&quot;]).result}e.Vertex=n,e.Fragment=r}n.replaceShaderClip(e,r,o)},e.replaceShaderColor=(e,r,o)=&gt;{if(t.hardwareSupport&amp;&amp;t.renderable.getColorArray()){let n=e.Vertex,r=e.Geometry,o=e.Fragment;const a=t.lastBoundBO.getReferenceByName(&quot;lastLightComplexity&quot;);let i=[&quot;uniform float ambient;&quot;,&quot;uniform float diffuse;&quot;,&quot;uniform float specular;&quot;,&quot;uniform float opacityUniform; // the fragment opacity&quot;];a&amp;&amp;(i=i.concat([&quot;uniform vec3 specularColorUniform;&quot;,&quot;uniform float specularPowerUniform;&quot;]));let s=[&quot;vec3 ambientColor;&quot;,&quot;  vec3 diffuseColor;&quot;,&quot;  float opacity;&quot;];a&amp;&amp;(s=s.concat([&quot;  vec3 specularColor;&quot;,&quot;  float specularPower;&quot;])),s=s.concat([&quot;  opacity = opacityUniform;&quot;]),a&amp;&amp;(s=s.concat([&quot;  specularColor = specularColorUniform;&quot;,&quot;  specularPower = specularPowerUniform;&quot;])),t.drawingEdges||(i=i.concat([&quot;varying vec4 vertexColorVSOutput;&quot;]),n=vd.substitute(n,&quot;//VTK::Color::Dec&quot;,[&quot;attribute vec4 gColor;&quot;,&quot;varying vec4 vertexColorVSOutput;&quot;]).result,n=vd.substitute(n,&quot;//VTK::Color::Impl&quot;,[&quot;vertexColorVSOutput = gColor;&quot;]).result,r=vd.substitute(r,&quot;//VTK::Color::Dec&quot;,[&quot;in vec4 vertexColorVSOutput[];&quot;,&quot;out vec4 vertexColorGSOutput;&quot;]).result,r=vd.substitute(r,&quot;//VTK::Color::Impl&quot;,[&quot;vertexColorGSOutput = vertexColorVSOutput[i];&quot;]).result,s=s.concat([&quot;  diffuseColor = vertexColorVSOutput.rgb;&quot;,&quot;  ambientColor = vertexColorVSOutput.rgb;&quot;,&quot;  opacity = opacity*vertexColorVSOutput.a;&quot;])),o=vd.substitute(o,&quot;//VTK::Color::Impl&quot;,s).result,o=vd.substitute(o,&quot;//VTK::Color::Dec&quot;,i).result,e.Vertex=n,e.Geometry=r,e.Fragment=o}n.replaceShaderColor(e,r,o)},e.replaceShaderPositionVC=(e,r,o)=&gt;{if(t.hardwareSupport){let n=e.Vertex;t.lastBoundBO.getReferenceByName(&quot;lastLightComplexity&quot;)&gt;0?(n=vd.substitute(n,&quot;//VTK::PositionVC::Impl&quot;,[&quot;vec4 gVertexMC = gMatrix * vertexMC;&quot;,&quot;vertexVCVSOutput = MCVCMatrix * gVertexMC;&quot;,&quot;  gl_Position = MCPCMatrix * gVertexMC;&quot;]).result,n=vd.substitute(n,&quot;//VTK::Camera::Dec&quot;,[&quot;attribute mat4 gMatrix;&quot;,&quot;uniform mat4 MCPCMatrix;&quot;,&quot;uniform mat4 MCVCMatrix;&quot;]).result):(n=vd.substitute(n,&quot;//VTK::Camera::Dec&quot;,[&quot;attribute mat4 gMatrix;&quot;,&quot;uniform mat4 MCPCMatrix;&quot;]).result,n=vd.substitute(n,&quot;//VTK::PositionVC::Impl&quot;,[&quot;vec4 gVertexMC = gMatrix * vertexMC;&quot;,&quot;  gl_Position = MCPCMatrix * gVertexMC;&quot;]).result),e.Vertex=n}n.replaceShaderPositionVC(e,r,o)},e.replaceShaderPicking=(e,r,o)=&gt;{if(t.hardwareSupport){let t=e.Fragment,n=e.Vertex;n=vd.substitute(n,&quot;//VTK::Picking::Dec&quot;,[&quot;attribute vec3 mapperIndexVS;&quot;,&quot;varying vec3 mapperIndexVSOutput;&quot;]).result,n=vd.substitute(n,&quot;//VTK::Picking::Impl&quot;,&quot;  mapperIndexVSOutput = mapperIndexVS;&quot;).result,e.Vertex=n,t=vd.substitute(t,&quot;//VTK::Picking::Dec&quot;,[&quot;varying vec3 mapperIndexVSOutput;&quot;,&quot;uniform vec3 mapperIndex;&quot;,&quot;uniform int picking;&quot;]).result,t=vd.substitute(t,&quot;//VTK::Picking::Impl&quot;,[&quot;  vec4 pickColor = picking == 2 ? vec4(mapperIndexVSOutput,1.0) : vec4(mapperIndex,1.0);&quot;,&quot;  gl_FragData[0] = picking != 0 ? pickColor : gl_FragData[0];&quot;]).result,e.Fragment=t}else n.replaceShaderPicking(e,r,o)},e.updateGlyphShaderParameters=(n,r,o,a,i,s,l,c)=&gt;{const u=o.getProgram();if(n){const e=t.normalMatrix,n=s,r=9*l,o=t.tmpMat3,a=e[0],i=e[1],c=e[2],d=e[3],p=e[4],f=e[5],g=e[6],m=e[7],h=e[8],v=n[r],T=n[r+1],x=n[r+2],y=n[r+3],b=n[r+4],A=n[r+5],C=n[r+6],S=n[r+7],P=n[r+8];o[0]=v*a+T*d+x*g,o[1]=v*i+T*p+x*m,o[2]=v*c+T*f+x*h,o[3]=y*a+b*d+A*g,o[4]=y*i+b*p+A*m,o[5]=y*c+b*f+A*h,o[6]=C*a+S*d+P*g,o[7]=C*i+S*p+P*m,o[8]=C*c+S*f+P*h,u.setUniformMatrix3x3(&quot;normalMatrix&quot;,t.tmpMat3)}if(e.multiply4x4WithOffset(t.tmpMat4,t.mcpcMatrix,i,16*l),u.setUniformMatrix(&quot;MCPCMatrix&quot;,t.tmpMat4),r&amp;&amp;(e.multiply4x4WithOffset(t.tmpMat4,t.mcvcMatrix,i,16*l),u.setUniformMatrix(&quot;MCVCMatrix&quot;,t.tmpMat4)),a){const e=a.getData();t.tmpColor[0]=e[4*l]/255,t.tmpColor[1]=e[4*l+1]/255,t.tmpColor[2]=e[4*l+2]/255,u.setUniform3fArray(&quot;ambientColorUniform&quot;,t.tmpColor),u.setUniform3fArray(&quot;diffuseColorUniform&quot;,t.tmpColor)}c&amp;&amp;u.setUniform3fArray(&quot;mapperIndex&quot;,c.getPropColorValue())},e.renderPieceDraw=(n,r)=&gt;{const o=r.getProperty().getRepresentation(),a=t.context,i=r.getProperty().getEdgeVisibility()&amp;&amp;o===lf.SURFACE,s=t.openGLCamera.getKeyMatrices(n),l=t.openGLActor.getKeyMatrices();p(t.normalMatrix,s.normalMatrix,l.normalMatrix),A(t.mcpcMatrix,s.wcpc,l.mcwc),A(t.mcvcMatrix,s.wcvc,l.mcwc);const c=t.renderable.getMatrixArray(),u=t.renderable.getNormalArray(),d=t.renderable.getColorArray(),f=c.length/16;let g=!1;t._openGLRenderer.getSelector()&amp;&amp;t._openGLRenderer.getSelector().getCurrentPass()===uf.COMPOSITE_INDEX_PASS&amp;&amp;(g=!0);for(let s=t.primTypes.Start;s&lt;t.primTypes.End;s++){const l=t.primitives[s].getCABO();if(l.getElementCount()){t.drawingEdges=i&amp;&amp;(s===t.primTypes.TrisEdges||s===t.primTypes.TriStripsEdges),t.lastBoundBO=t.primitives[s],t.primitives[s].updateShaders(n,r,e);const p=t.primitives[s].getProgram(),m=t.primitives[s].getOpenGLMode(o),h=p.isUniformUsed(&quot;normalMatrix&quot;),v=p.isUniformUsed(&quot;MCVCMatrix&quot;);if(t.hardwareSupport)t.extension?t.extension.drawArraysInstancedANGLE(m,0,l.getElementCount(),f):a.drawArraysInstanced(m,0,l.getElementCount(),f);else for(let n=0;n&lt;f;++n)g&amp;&amp;t._openGLRenderer.getSelector().renderCompositeIndex(n),e.updateGlyphShaderParameters(h,v,t.primitives[s],d,c,u,n,g?t._openGLRenderer.getSelector():null),a.drawArrays(m,0,l.getElementCount())}}},e.setMapperShaderParameters=(e,r,o)=&gt;{if(e.getCABO().getElementCount()&amp;&amp;(t.glyphBOBuildTime.getMTime()&gt;e.getAttributeUpdateTime().getMTime()||e.getShaderSourceTime().getMTime()&gt;e.getAttributeUpdateTime().getMTime()))return e.getProgram().isAttributeUsed(&quot;gMatrix&quot;)?e.getVAO().addAttributeMatrixWithDivisor(e.getProgram(),t.matrixBuffer,&quot;gMatrix&quot;,0,64,t.context.FLOAT,4,!1,1)||sf(&quot;Error setting gMatrix in shader VAO.&quot;):e.getVAO().removeAttributeArray(&quot;gMatrix&quot;),e.getProgram().isAttributeUsed(&quot;gNormal&quot;)?e.getVAO().addAttributeMatrixWithDivisor(e.getProgram(),t.normalBuffer,&quot;gNormal&quot;,0,36,t.context.FLOAT,3,!1,1)||sf(&quot;Error setting gNormal in shader VAO.&quot;):e.getVAO().removeAttributeArray(&quot;gNormal&quot;),e.getProgram().isAttributeUsed(&quot;gColor&quot;)?e.getVAO().addAttributeArrayWithDivisor(e.getProgram(),t.colorBuffer,&quot;gColor&quot;,0,4,t.context.UNSIGNED_BYTE,4,!0,1,!1)||sf(&quot;Error setting gColor in shader VAO.&quot;):e.getVAO().removeAttributeArray(&quot;gColor&quot;),e.getProgram().isAttributeUsed(&quot;mapperIndexVS&quot;)?e.getVAO().addAttributeArrayWithDivisor(e.getProgram(),t.pickBuffer,&quot;mapperIndexVS&quot;,0,4,t.context.UNSIGNED_BYTE,4,!0,1,!1)||sf(&quot;Error setting mapperIndexVS in shader VAO.&quot;):e.getVAO().removeAttributeArray(&quot;mapperIndexVS&quot;),n.setMapperShaderParameters(e,r,o),void e.getAttributeUpdateTime().modified();n.setMapperShaderParameters(e,r,o)},e.getNeedToRebuildBufferObjects=(e,r)=&gt;(t.renderable.buildArrays(),t.VBOBuildTime.getMTime()&lt;t.renderable.getBuildTime().getMTime()||n.getNeedToRebuildBufferObjects(e,r)),e.getNeedToRebuildShaders=(e,r,o)=&gt;!!(n.getNeedToRebuildShaders(e,r,o)||e.getShaderSourceTime().getMTime()&lt;t.renderable.getMTime()||e.getShaderSourceTime().getMTime()&lt;t.currentInput.getMTime()),e.buildBufferObjects=(e,r)=&gt;{const o=t.renderable.getMatrixArray(),a=t.renderable.getInputData(0).getPoints(),{useShiftAndScale:i,coordShift:s,coordScale:l}=rd(a);if(t.hardwareSupport){const e=t.renderable.getNormalArray(),n=t.renderable.getColorArray();if(t.matrixBuffer||(t.matrixBuffer=nd.newInstance(),t.matrixBuffer.setOpenGLRenderWindow(t._openGLRenderWindow),t.normalBuffer=nd.newInstance(),t.normalBuffer.setOpenGLRenderWindow(t._openGLRenderWindow),t.colorBuffer=nd.newInstance(),t.colorBuffer.setOpenGLRenderWindow(t._openGLRenderWindow),t.pickBuffer=nd.newInstance(),t.pickBuffer.setOpenGLRenderWindow(t._openGLRenderWindow)),i){const e=o.buffer,t=od(s,l);b(t,t);for(let n=0;n&lt;o.byteLength;n+=64){const r=new Float32Array(e,n,16);A(r,t,r)}}if(t.renderable.getBuildTime().getMTime()&gt;t.glyphBOBuildTime.getMTime()){t.matrixBuffer.upload(o,cf.ARRAY_BUFFER),t.normalBuffer.upload(e,cf.ARRAY_BUFFER),n?t.colorBuffer.upload(n.getData(),cf.ARRAY_BUFFER):t.colorBuffer.releaseGraphicsResources();const r=o.length/16,a=new Uint8Array(4*r);for(let e=0;e&lt;r;++e){let t=e+1;const n=4*e;a[n]=t%256,t-=a[n],t/=256,a[n+1]=t%256,t-=a[n+1],t/=256,a[n+2]=t%256,a[n+3]=255}t.pickBuffer.upload(a,cf.ARRAY_BUFFER),t.glyphBOBuildTime.modified()}}if(n.buildBufferObjects(e,r),i)for(let e=bd.Start;e&lt;bd.End;e++)t.primitives[e].getCABO().setCoordShiftAndScale(s,l)}}(e,t)}),&quot;vtkOpenGLGlyph3DMapper&quot;);vn(&quot;vtkGlyph3DMapper&quot;,gf);const{vtkErrorMacro:mf}=sn;class hf{constructor(){this.segmentMapping={},this.segments=[null],this.faces=[]}addSegment(e){const t=e[0],n=e[e.length-1];if(t===n||e.length&lt;2)return;const r=this.segmentMapping[t],o=this.segmentMapping[n];if(void 0!==r&amp;&amp;void 0!==o)if(Math.abs(r)===Math.abs(o)){const a=r&lt;o?o:r,i=this.segments[a];if(r&gt;0)for(let t=1;t&lt;e.length-1;t++)i.push(e[t]);else for(let t=1;t&lt;e.length-1;t++)i.unshift(e[e.length-1-t]);this.faces.push(i),this.segments[a]=null,this.segmentMapping[t]=void 0,this.segmentMapping[n]=void 0}else{const t=Math.abs(r),n=Math.abs(o),a=this.segments[t],i=this.segments[n];this.segments[t]=null,this.segments[n]=null,this.segmentMapping[a[0]]=void 0,this.segmentMapping[i[0]]=void 0,this.segmentMapping[a[a.length-1]]=void 0,this.segmentMapping[i[i.length-1]]=void 0,this.addSegment(e),this.addSegment(a),this.addSegment(i)}else if(void 0!==r){if(r&gt;0){const t=this.segments[r];for(let n=1;n&lt;e.length;n++)t.push(e[n]);this.segmentMapping[n]=r}else{const t=this.segments[-r];this.segmentMapping[n]=r;for(let n=1;n&lt;e.length;n++)t.unshift(e[n])}this.segmentMapping[t]=void 0}else if(void 0!==o){if(o&gt;0){const n=this.segments[o];for(let t=1;t&lt;e.length;t++)n.push(e[e.length-1-t]);this.segmentMapping[t]=o}else{const n=this.segments[-o];this.segmentMapping[t]=o;for(let t=1;t&lt;e.length;t++)n.unshift(e[e.length-t-1])}this.segmentMapping[n]=void 0}else{const r=this.segments.length;this.segments.push(e),this.segmentMapping[t]=-r,this.segmentMapping[n]=r}}}const vf={};function Tf(e,t,n={}){Object.assign(t,vf,n),sn.obj(e,t),sn.algo(e,t,1,1),function(e,t){t.classHierarchy.push(&quot;vtkClosedPolyLineToSurfaceFilter&quot;),e.requestData=(e,t)=&gt;{const n=e[0];if(!n)return void mf(&quot;Invalid or missing input&quot;);const r=t[0]?.initialize()||Ru.newInstance();r.shallowCopy(n);const o=new hf,a=n.getLines().getData();let i=0;for(;i&lt;a.length;){const e=a[i++],t=[];for(let n=0;n&lt;e;n++)t.push(a[i+n]);o.addSegment(t),i+=e}const{faces:s}=o;let l=s.length;for(let e=0;e&lt;s.length;e++)l+=s[e].length;const c=new Uint16Array(l);i=0;for(let e=0;e&lt;s.length;e++){const t=s[e];c[i++]=t.length;for(let e=0;e&lt;t.length;e++)c[i++]=t[e]}r.setPolys(oc.newInstance({values:c,name:&quot;faces&quot;})),t[0]=r}}(e,t)}var xf={newInstance:sn.newInstance(Tf,&quot;vtkClosedPolyLineToSurfaceFilter&quot;),extend:Tf};const{vtkErrorMacro:yf}=ln;function bf(e,t){t.classHierarchy.push(&quot;vtkCutter&quot;);const n={...e};function r(e,n){const r=e.getPoints(),o=r.getData(),a=e.getPointData(),i=r.getNumberOfPoints(),s=[],l=[],c=[],u={},d=a.getNumberOfArrays();for(let e=0;e&lt;d;e++)u[a.getArrayName(e)]=[];(!t.cutScalars||t.cutScalars.length&lt;i)&amp;&amp;(t.cutScalars=new Float32Array(i));let p=0,f=0;for(;p&lt;o.length;)t.cutScalars[f++]=t.cutFunction.evaluateFunction(o[p++],o[p++],o[p++]);const g=[],m=new Array(3),h=new Array(3),v=[];for(const n=function(e){const t=e.getPolys().getData(),n=e.getStrips().getData(),r={cellSize:0,cell:[],done:!1,polyIdx:0,stripIdx:0,remainingStripLength:0,next(){if(r.polyIdx&lt;t.length){r.cellSize=t[r.polyIdx];const e=r.polyIdx+1,n=e+r.cellSize;r.polyIdx=n;let o=0;for(let a=e;a&lt;n;++a)r.cell[o++]=t[a]}else if(r.stripIdx&lt;n.length){r.cellSize=3,0===r.remainingStripLength&amp;&amp;(r.remainingStripLength=n[r.stripIdx]-2,r.stripIdx+=3);const e=r.stripIdx-2,t=r.stripIdx+1;r.stripIdx++,r.remainingStripLength--;let o=0;for(let a=e;a&lt;t;++a)r.cell[o++]=n[a]}else{if(r.done)throw new Error(&quot;Iterator is done&quot;);r.done=!0}}};return r.next(),r}(e);!n.done;n.next()){if(n.cellSize&lt;=2)continue;for(let e=0;e&lt;n.cellSize;)v[e]=t.cutScalars[n.cell[e++]];const e=v[0]&gt;0;let r=!0;for(let t=1;t&lt;n.cell.length;t++){if(v[t]&gt;0!==e){r=!1;break}}if(r)continue;const i=[];for(let e=0;e&lt;n.cellSize;e++){const r=e+1===n.cellSize?0:e+1,s=v[e]&gt;0;if(v[r]&gt;0===s)continue;let l=e,c=r,u=v[c]-v[l];u&lt;=0&amp;&amp;(l=r,c=e,u*=-1);let p=0;0!==u&amp;&amp;(p=(t.cutValue-v[l])/u);const f=n.cell[l],g=n.cell[c];m[0]=o[3*f],m[1]=o[3*f+1],m[2]=o[3*f+2],h[0]=o[3*g],h[1]=o[3*g+1],h[2]=o[3*g+2];const T=[m[0]+p*(h[0]-m[0]),m[1]+p*(h[1]-m[1]),m[2]+p*(h[2]-m[2])],x={};for(let e=0;e&lt;d;e++){const t=a.getArrayByIndex(e),n=a.getArrayName(e),r=t.getData(),o=t.getNumberOfComponents(),i=new Array(o);for(let e=0;e&lt;o;e++){const t=r[o*f+e],n=r[o*g+e];i.push(t+p*(n-t))}x[n]=i}i.push({pointEdge1:f,pointEdge2:g,intersectedPoint:T,intersectedArrays:x,newPointID:-1})}for(let e=0;e&lt;i.length;e++){const t=i[e];let n=!1;for(let r=0;r&lt;g.length;r++){const o=g[r],a=t.pointEdge1===o.pointEdge1&amp;&amp;t.pointEdge2===o.pointEdge2,s=t.intersectedPoint[0]===o.intersectedPoint[0]&amp;&amp;t.intersectedPoint[1]===o.intersectedPoint[1]&amp;&amp;t.intersectedPoint[2]===o.intersectedPoint[2];if(a||s){n=!0,i[e].newPointID=g[r].newPointID;break}}n||(s.push(t.intersectedPoint[0]),s.push(t.intersectedPoint[1]),s.push(t.intersectedPoint[2]),Object.keys(t.intersectedArrays).forEach((e=&gt;{u[e].push(...t.intersectedArrays[e])})),i[e].newPointID=s.length/3-1,g.push(i[e]))}const p=i.length;2===p?l.push(p,i[0].newPointID,i[1].newPointID):p&gt;2&amp;&amp;(c.push(p),i.forEach((e=&gt;{c.push(e.newPointID)})))}n.getPoints().setData(St(r.getDataType(),s),3);const T=n.getPointData();for(let e=0;e&lt;d;e++){const t=a.getArrayName(e),n=Is.newInstance({name:t,dataType:a.getArrayByIndex(e).getDataType(),values:u[t],numberOfComponents:a.getArrayByIndex(e).getNumberOfComponents()});T.addArray(n)}0!==l.length&amp;&amp;n.getLines().setData(Uint16Array.from(l)),0!==c.length&amp;&amp;n.getPolys().setData(Uint16Array.from(c))}e.getMTime=()=&gt;{let e=n.getMTime();return t.cutFunction?(e=Math.max(e,t.cutFunction.getMTime()),e):e},e.requestData=(e,n)=&gt;{const o=e[0];if(!o)return void yf(&quot;Invalid or missing input&quot;);if(!t.cutFunction)return void yf(&quot;Missing cut function&quot;);const a=n[0]?.initialize()||Ru.newInstance();r(o,a),n[0]=a}}const Af={cutFunction:null,cutScalars:null,cutValue:0};function Cf(e,t,n={}){Object.assign(t,Af,n),Vt(e,t),Wt(e,t,1,1),Gt(e,t,[&quot;cutFunction&quot;,&quot;cutValue&quot;]),bf(e,t)}var Sf={newInstance:Xt(Cf,&quot;vtkCutter&quot;),extend:Cf};const Pf=e=&gt;e,wf=1e-6;class If{constructor(e=!1){this.matrix=x(new Float64Array(16)),this.tmp=new Float64Array(3),this.angleConv=e?a:Pf}rotateFromDirections(e,t){const n=new Float64Array(3),r=new Float64Array(3),o=new Float64Array(16);Y(n,e[0],e[1],e[2]),Y(r,t[0],t[1],t[2]),te(n,n),te(r,r);const a=ne(n,r);return a&gt;=1||(re(this.tmp,n,r),X(this.tmp)&lt;wf&amp;&amp;(re(this.tmp,[1,0,0],e),X(this.tmp)&lt;wf&amp;&amp;re(this.tmp,[0,1,0],e)),D(o,Math.acos(a),this.tmp),A(this.matrix,this.matrix,o)),this}rotate(e,t){return Y(this.tmp,...t),te(this.tmp,this.tmp),P(this.matrix,this.matrix,this.angleConv(e),this.tmp),this}rotateX(e){return w(this.matrix,this.matrix,this.angleConv(e)),this}rotateY(e){return I(this.matrix,this.matrix,this.angleConv(e)),this}rotateZ(e){return O(this.matrix,this.matrix,this.angleConv(e)),this}translate(e,t,n){return Y(this.tmp,e,t,n),C(this.matrix,this.matrix,this.tmp),this}scale(e,t,n){return Y(this.tmp,e,t,n),S(this.matrix,this.matrix,this.tmp),this}multiply(e){return A(this.matrix,this.matrix,e),this}multiply3x3(e){return A(this.matrix,this.matrix,[e[0],e[1],e[2],0,e[3],e[4],e[5],0,e[6],e[7],e[8],0,0,0,0,1]),this}invert(){return b(this.matrix,this.matrix),this}identity(){return x(this.matrix),this}apply(e,t=0,n=-1){if(oa(ho,this.matrix))return this;const r=-1===n?e.length:t+3*n;for(let n=t;n&lt;r;n+=3)Y(this.tmp,e[n],e[n+1],e[n+2]),oe(this.tmp,this.tmp,this.matrix),e[n]=this.tmp[0],e[n+1]=this.tmp[1],e[n+2]=this.tmp[2];return this}getMatrix(){return this.matrix}setMatrix(e){return e&amp;&amp;16===e.length&amp;&amp;T(this.matrix,e),this}}var Of={buildFromDegree:function(){return new If(!0)},buildFromRadian:function(){return new If(!1)}};const Rf=[2,0,1,2,2,3,2,4,5,2,6,7,2,0,2,2,1,3,2,4,6,2,5,7,2,0,4,2,1,5,2,2,6,2,3,7],Mf=[4,0,1,3,2,4,4,6,7,5,4,8,10,11,9,4,12,13,15,14,4,16,18,19,17,4,20,21,23,22];const Df={xLength:1,yLength:1,zLength:1,pointType:&quot;Float64Array&quot;,generate3DTextureCoordinates:!1,generateFaces:!0,generateLines:!1};function Ef(e,t,n={}){Object.assign(t,Df,n),sn.obj(e,t),sn.setGet(e,t,[&quot;xLength&quot;,&quot;yLength&quot;,&quot;zLength&quot;,&quot;generate3DTextureCoordinates&quot;,&quot;generateFaces&quot;,&quot;generateLines&quot;]),sn.setGetArray(e,t,[&quot;center&quot;,&quot;rotations&quot;],3),sn.setGetArray(e,t,[&quot;matrix&quot;],16),t._polys=oc.newInstance({values:Uint16Array.from(Mf)}),t._lineCells=oc.newInstance({values:Uint16Array.from(Rf)}),sn.moveToProtected(e,t,[&quot;polys&quot;,&quot;lineCells&quot;]),sn.algo(e,t,0,1),function(e,t){t.classHierarchy.push(&quot;vtkCubeSource&quot;),e.requestData=(e,n)=&gt;{const r=n[0]?.initialize()||Ru.newInstance();n[0]=r;const o=sn.newTypedArray(t.pointType,72);r.getPoints().setData(o,3);const a=sn.newTypedArray(t.pointType,72),i=Is.newInstance({name:&quot;Normals&quot;,values:a,numberOfComponents:3});r.getPointData().setNormals(i);let s=2;!0===t.generate3DTextureCoordinates&amp;&amp;(s=3);const l=sn.newTypedArray(t.pointType,24*s),c=Is.newInstance({name:&quot;TextureCoordinates&quot;,values:l,numberOfComponents:s});r.getPointData().setTCoords(c);const u=[0,0,0],d=[0,0,0],p=[0,0];let f=0;u[0]=-t.xLength/2,d[0]=-1,d[1]=0,d[2]=0;for(let e=0;e&lt;2;e++){u[1]=-t.yLength/2;for(let n=0;n&lt;2;n++){p[1]=u[1]+.5,u[2]=-t.zLength/2;for(let r=0;r&lt;2;r++)p[0]=(u[2]+.5)*(1-2*e),o[3*f]=u[0],o[3*f+1]=u[1],o[3*f+2]=u[2],a[3*f]=d[0],a[3*f+1]=d[1],a[3*f+2]=d[2],2===s?(l[f*s]=p[0],l[f*s+1]=p[1]):(l[f*s]=2*e-1,l[f*s+1]=2*n-1,l[f*s+2]=2*r-1),f++,u[2]+=t.zLength;u[1]+=t.yLength}u[0]+=t.xLength,d[0]+=2}u[1]=-t.yLength/2,d[1]=-1,d[0]=0,d[2]=0;for(let e=0;e&lt;2;e++){u[0]=-t.xLength/2;for(let n=0;n&lt;2;n++){p[0]=(u[0]+.5)*(2*e-1),u[2]=-t.zLength/2;for(let r=0;r&lt;2;r++)p[1]=-1*(u[2]+.5),o[3*f]=u[0],o[3*f+1]=u[1],o[3*f+2]=u[2],a[3*f]=d[0],a[3*f+1]=d[1],a[3*f+2]=d[2],2===s?(l[f*s]=p[0],l[f*s+1]=p[1]):(l[f*s]=2*n-1,l[f*s+1]=2*e-1,l[f*s+2]=2*r-1),f++,u[2]+=t.zLength;u[0]+=t.xLength}u[1]+=t.yLength,d[1]+=2}u[2]=-t.zLength/2,d[2]=-1,d[0]=0,d[1]=0;for(let e=0;e&lt;2;e++){u[1]=-t.yLength/2;for(let n=0;n&lt;2;n++){p[1]=u[1]+.5,u[0]=-t.xLength/2;for(let r=0;r&lt;2;r++)p[0]=(u[0]+.5)*(2*e-1),o[3*f]=u[0],o[3*f+1]=u[1],o[3*f+2]=u[2],a[3*f]=d[0],a[3*f+1]=d[1],a[3*f+2]=d[2],2===s?(l[f*s]=p[0],l[f*s+1]=p[1]):(l[f*s]=2*r-1,l[f*s+1]=2*n-1,l[f*s+2]=2*e-1),f++,u[0]+=t.xLength;u[1]+=t.yLength}u[2]+=t.zLength,d[2]+=2}if(t.rotations&amp;&amp;Of.buildFromDegree().rotateX(t.rotations[0]).rotateY(t.rotations[1]).rotateZ(t.rotations[2]).apply(o).apply(a),t.center&amp;&amp;Of.buildFromRadian().translate(...t.center).apply(o),t.matrix){Of.buildFromRadian().setMatrix(t.matrix).apply(o);const e=[t.matrix[0],t.matrix[1],t.matrix[2],0,t.matrix[4],t.matrix[5],t.matrix[6],0,t.matrix[8],t.matrix[9],t.matrix[10],0,0,0,0,1];Of.buildFromRadian().setMatrix(e).apply(a)}t.generateFaces?r.getPolys().deepCopy(t._polys):r.getPolys().initialize(),t.generateLines?(r.getLines().deepCopy(t._lineCells),r.getPointData().setNormals(null)):r.getLines().initialize(),r.modified()},e.setBounds=(...t)=&gt;{let n=[];if(Array.isArray(t[0]))n=t[0];else for(let e=0;e&lt;t.length;e++)n.push(t[e]);6===n.length&amp;&amp;(e.setXLength(n[1]-n[0]),e.setYLength(n[3]-n[2]),e.setZLength(n[5]-n[4]),e.setCenter([(n[0]+n[1])/2,(n[2]+n[3])/2,(n[4]+n[5])/2]))}}(e,t)}var Vf={newInstance:sn.newInstance(Ef,&quot;vtkCubeSource&quot;),extend:Ef};const{vtkErrorMacro:Lf}=sn;const Bf={};function Ff(e,t,n={}){Object.assign(t,Bf,n),sn.obj(e,t),sn.algo(e,t,1,1),t._cubeSource=Vf.newInstance(),sn.moveToProtected(e,t,[&quot;cubeSource&quot;,&quot;tmpOut&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkImageDataOutlineFilter&quot;);const n={...e};e.requestData=(e,n)=&gt;{const r=e[0];if(!r||!r.isA(&quot;vtkImageData&quot;))return void Lf(&quot;Invalid or missing input&quot;);const o=r.getSpatialExtent();o?(t._cubeSource.setBounds(o),t._cubeSource.setMatrix(r.getIndexToWorld()),n[0]=t._cubeSource.getOutputData()):Lf(&quot;Unable to fetch spatial extents of input image.&quot;)},e.getMTime=()=&gt;Math.max(n.getMTime(),t._cubeSource.getMTime()),e.setGenerateFaces=t._cubeSource.setGenerateFaces,e.setGenerateLines=t._cubeSource.setGenerateLines,e.getGenerateFaces=t._cubeSource.getGenerateFaces,e.getGenerateLines=t._cubeSource.getGenerateLines}(e,t)}var Nf={newInstance:sn.newInstance(Ff,&quot;vtkImageDataOutlineFilter&quot;),extend:Ff};const{vtkWarningMacro:kf}=sn;let Gf;const Uf={preMultiplyFlag:!1,matrix:[...ho]};function _f(e,t,n={}){Object.assign(t,Uf,n),sn.obj(e,t),sn.setGet(e,t,[&quot;preMultiplyFlag&quot;]),sn.setGetArray(e,t,[&quot;matrix&quot;],16),function(e,t){t.classHierarchy.push(&quot;vtkAbstractTransform&quot;,&quot;vtkHomogeneousTransform&quot;,&quot;vtkTransform&quot;),e.transformPoint=(e,n)=&gt;(oe(n,e,t.matrix),n),e.transformPoints=(e,n)=&gt;{const r=new Float64Array(3),o=new Float64Array(3);for(let a=0;a&lt;e.length;a+=3)r[0]=e[a],r[1]=e[a+1],r[2]=e[a+2],oe(o,r,t.matrix),n[a]=o[0],n[a+1]=o[1],n[a+2]=o[2];return n},e.preMultiply=()=&gt;{e.setPreMultiplyFlag(!0)},e.postMultiply=()=&gt;{e.setPreMultiplyFlag(!1)},e.transformMatrix=(e,n)=&gt;(t.preMultiplyFlag?A(n,t.matrix,e):A(n,e,t.matrix),n),e.transformMatrices=(e,n)=&gt;{const r=new Float64Array(16),o=new Float64Array(16),a=t.preMultiplyFlag?()=&gt;A(o,t.matrix,r):()=&gt;A(o,r,t.matrix);for(let t=0;t&lt;e.length;t+=16){for(let n=0;n&lt;16;++n)r[n]=e[t+n];a();for(let e=0;e&lt;16;++e)n[t+e]=o[e]}return n},e.getInverse=()=&gt;Gf({matrix:za.invertMatrix(Array.from(t.matrix),[],4),preMultiplyFlag:t.preMultiplyFlag}),e.translate=(n,r,o)=&gt;{if(0===n&amp;&amp;0===r&amp;&amp;0===o)return;const a=v();R(a,[n,r,o]),t.preMultiplyFlag?A(t.matrix,t.matrix,a):A(t.matrix,a,t.matrix),e.modified()},e.rotateWXYZ=(n,r,o,a)=&gt;{if(0===r&amp;&amp;0===o&amp;&amp;0===a)return void kf(&quot;No rotation applied, axis is zero vector.&quot;);if(0===n)return;const i=za.radiansFromDegrees(n),s=pe();fe(s,[r,o,a],i);const l=new Float64Array(16);F(l,s),t.preMultiplyFlag?A(t.matrix,t.matrix,l):A(t.matrix,l,t.matrix),e.modified()},e.rotateX=t=&gt;{e.rotateWXYZ(t,1,0,0)},e.rotateY=t=&gt;{e.rotateWXYZ(t,0,1,0)},e.rotateZ=t=&gt;{e.rotateWXYZ(t,0,0,1)},e.scale=(n,r,o)=&gt;{if(1===n&amp;&amp;1===r&amp;&amp;1===o)return;const a=v();M(a,[n,r,o]),t.preMultiplyFlag?A(t.matrix,t.matrix,a):A(t.matrix,a,t.matrix),e.modified()},e.transformNormal=(n,r=[])=&gt;{const o=s(i(),t.matrix),a=i();d(a,o);const l=i();return u(l,a),e.transformVector(n,r,l),za.normalize(r),r},e.transformNormals=(n,r)=&gt;{const o=n.getData(),a=r.getData(),l=[0,0,0],c=s(i(),t.matrix),p=i();d(p,c);const f=i();u(f,p);for(let t=0;t&lt;o.length;t+=3)l[0]=o[t],l[1]=o[t+1],l[2]=o[t+2],e.transformVector(l,l,f),za.normalize(l),a[t]=l[0],a[t+1]=l[1],a[t+2]=l[2]},e.transformVector=(e,n=[],r=null)=&gt;(ae(n,e,r||s(i(),t.matrix)),n),e.transformVectors=(t,n)=&gt;{const r=t.getData(),o=n.getData(),a=[0,0,0];for(let t=0;t&lt;r.length;t+=3)a[0]=r[t],a[1]=r[t+1],a[2]=r[t+2],e.transformVector(a,a),za.normalize(a),o[t]=a[0],o[t+1]=a[1],o[t+2]=a[2]},e.transformPointsNormalsVectors=(t,n,r,o,a,i,s=null,l=null)=&gt;{const c=t.getNumberOfPoints(),u=s?.length??0,d=new Float64Array(3),p=new Float64Array(3),f=new Float64Array(3),g=new Float64Array(3);let m=!1,h=!1,v=!1;const T=[];for(let x=0;x&lt;c;x++){if(t.getPoint(x,d),p.set(d),e.transformPoint(d,d),n.setPoint(x,...d),za.areEquals(p,d)||(m=!0),a){const t=a.getData(),n=i.getData();d[0]=t[3*x],d[1]=t[3*x+1],d[2]=t[3*x+2],f.set(d),e.transformVector(d,d),n[3*x]=d[0],n[3*x+1]=d[1],n[3*x+2]=d[2],za.areEquals(f,d)||(h=!0)}if(r){const t=r.getData(),n=o.getData();d[0]=t[3*x],d[1]=t[3*x+1],d[2]=t[3*x+2],g.set(d),e.transformNormal(d,d),n[3*x]=d[0],n[3*x+1]=d[1],n[3*x+2]=d[2],za.areEquals(g,d)||(v=!0)}if(s)for(let t=0;t&lt;u;t++){const n=s[t].getData(),r=l[t].getData();d[0]=n[3*x],d[1]=n[3*x+1],d[2]=n[3*x+2],f.set(d),e.transformVector(d,d),r[3*x]=d[0],r[3*x+1]=d[1],r[3*x+2]=d[2],za.arrayEqual(f,d)||T.includes(t)||T.push(t)}}m&amp;&amp;n.modified(),h&amp;&amp;i.modified(),v&amp;&amp;o.modified(),T.forEach((e=&gt;l[e].modified()))}}(e,t)}Gf=sn.newInstance(_f,&quot;vtkTransform&quot;);var Kf={newInstance:Gf,extend:_f};function zf(e,t,n){return e.length&gt;0?`${e.map((e=&gt;e?.getMTime()??&quot;x&quot;)).join(&quot;/&quot;)}-${t}-${n}`:&quot;0&quot;}function Wf(e,t){return`${t.getMTime()}`}const Hf={NEAREST:0,LINEAR:1};var jf={InterpolationType:Hf};const{vtkErrorMacro:Xf}=ln,qf=e=&gt;e.split(&quot;\\n&quot;).map((e=&gt;e.trim())).filter(Boolean);function Yf(e,t,n){return t.identity(n),e.reduce(((e,n,r)=&gt;0===r?n?t.copy(e,n):t.identity(e):n?t.multiply(e,e,n):e),n)}function Jf(e,t){t.classHierarchy.push(&quot;vtkOpenGLImageResliceMapper&quot;);const n=new Map;function r(t,r,o){r!==o&amp;&amp;(function(t,r){if(!r)return;const o=(n.get(r)??0)-1;o&lt;=0?(t.unregisterGraphicsResourceUser(r,e),n.delete(r)):n.set(r,o)}(t,r),function(t,r){if(!r)return;const o=n.get(r)??0,a=o+1;n.set(r,a),o&lt;=0&amp;&amp;t.registerGraphicsResourceUser(r,e)}(t,o))}function o(t){[...n.keys()].forEach((n=&gt;t.unregisterGraphicsResourceUser(n,e)))}function a(e,n,r,o,a){const i=e.map((e=&gt;e.join(&quot;-&quot;))).join(&quot;|&quot;);i!==t[o]&amp;&amp;(t[o]=i,t[a]&amp;&amp;t[a].releaseGraphicsResources(),t[a]=function(e,n,r){let o=t.renderable.getLabelOutlineTextureWidth();o&lt;=0&amp;&amp;(o=t.context.getParameter(t.context.MAX_TEXTURE_SIZE));const a=e.length,i=new n(o*a);for(let t=0;t&lt;a;t++){const n=e[t];for(let e=0;e&lt;o;e++)i[t*o+e]=n[e]??n[0]}const s=Hd.newInstance({resizable:!1});return s.setOpenGLRenderWindow(t._openGLRenderWindow),s.resetFormatAndType(),s.setMinificationFilter(wd.NEAREST),s.setMagnificationFilter(wd.NEAREST),s.create2DFromRaw({width:o,height:a,numComps:1,dataType:r,data:i}),s}(e,n,r))}e.buildPass=n=&gt;{if(n){t.currentRenderPass=null,t._openGLImageSlice=e.getFirstAncestorOfType(&quot;vtkOpenGLImageSlice&quot;),t._openGLRenderer=e.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;);const n=t._openGLRenderer.getRenderable();t._openGLCamera=t._openGLRenderer.getViewNodeFor(n.getActiveCamera(),t.openGLCamera);const r=t._openGLRenderWindow;t._openGLRenderWindow=t._openGLRenderer.getLastAncestorOfType(&quot;vtkOpenGLRenderWindow&quot;),r&amp;&amp;!r.isDeleted()&amp;&amp;r!==t._openGLRenderWindow&amp;&amp;o(r),t.context=t._openGLRenderWindow.getContext(),t.tris.setOpenGLRenderWindow(t._openGLRenderWindow)}},e.translucentPass=(n,r)=&gt;{n&amp;&amp;(t.currentRenderPass=r,e.render())},e.zBufferPass=n=&gt;{n&amp;&amp;(t.haveSeenDepthRequest=!0,t.renderDepth=!0,e.render(),t.renderDepth=!1)},e.opaqueZBufferPass=t=&gt;e.zBufferPass(t),e.opaquePass=t=&gt;{t&amp;&amp;e.render()},e.getCoincidentParameters=(e,n)=&gt;t.renderable.getResolveCoincidentTopology()==Pl.PolygonOffset?t.renderable.getCoincidentTopologyPolygonOffsetParameters():null,e.render=()=&gt;{const n=t._openGLImageSlice.getRenderable(),r=t._openGLRenderer.getRenderable();e.renderPiece(r,n)},e.renderPiece=(n,r)=&gt;{e.invokeEvent({type:&quot;StartEvent&quot;}),t.renderable.update();const o=t.renderable.getNumberOfInputPorts();t.currentValidInputs=[];for(let e=0;e&lt;o;++e){const n=t.renderable.getInputData(e);n&amp;&amp;!n.isDeleted()&amp;&amp;t.currentValidInputs.push({imageData:n,inputIndex:e})}const a=t.currentValidInputs.length;if(a&lt;=0)return void Xf(&quot;No input!&quot;);t.labelOutlineProperties=function(e,t){const n=[];for(let r=0;r&lt;t.length;r++){const o=e.getProperty(t[r].inputIndex);o?.getUseLabelOutline()&amp;&amp;n.push({property:o,arrayIndex:r})}return n}(r,t.currentValidInputs);const i=t.currentValidInputs[0].imageData.getPointData().getScalars();t.multiTexturePerVolumeEnabled=a&gt;1,t.numberOfComponents=t.multiTexturePerVolumeEnabled?a:i.getNumberOfComponents(),e.updateResliceGeometry(),e.renderPieceStart(n,r),e.renderPieceDraw(n,r),e.renderPieceFinish(n,r),e.invokeEvent({type:&quot;EndEvent&quot;})},e.renderPieceStart=(n,r)=&gt;{e.updateBufferObjects(n,r);const o=r.getProperties();t.currentValidInputs.forEach((({inputIndex:e},n)=&gt;{const r=o[e],a=t.scalarTextures[n];if(!r||!a)return;r.getInterpolationType()===Hf.NEAREST?(a.setMinificationFilter(wd.NEAREST),a.setMagnificationFilter(wd.NEAREST)):(a.setMinificationFilter(wd.LINEAR),a.setMagnificationFilter(wd.LINEAR))}));const a=t.currentValidInputs[0],i=o[a.inputIndex],s=i?.getInterpolationType();s===Hf.NEAREST?(t.colorTexture.setMinificationFilter(wd.NEAREST),t.colorTexture.setMagnificationFilter(wd.NEAREST),t.pwfTexture.setMinificationFilter(wd.NEAREST),t.pwfTexture.setMagnificationFilter(wd.NEAREST)):(t.colorTexture.setMinificationFilter(wd.LINEAR),t.colorTexture.setMagnificationFilter(wd.LINEAR),t.pwfTexture.setMinificationFilter(wd.LINEAR),t.pwfTexture.setMagnificationFilter(wd.LINEAR)),t.lastBoundBO=null},e.renderPieceDraw=(n,r)=&gt;{const o=t.context,a=t.labelOutlineProperties.length&gt;0,i=[...t.scalarTextures,t.colorTexture,t.pwfTexture];a&amp;&amp;(i.push(t.labelOutlineThicknessTexture),i.push(t.labelOutlineOpacityTexture)),i.forEach((e=&gt;e.activate())),e.updateShaders(t.tris,n,r),o.drawArrays(o.TRIANGLES,0,t.tris.getCABO().getElementCount()),t.tris.getVAO().release(),i.forEach((e=&gt;e.deactivate()))},e.renderPieceFinish=(e,t)=&gt;{},e.updateBufferObjects=(t,n)=&gt;{e.getNeedToRebuildBufferObjects(t,n)&amp;&amp;e.buildBufferObjects(t,n)},e.getNeedToRebuildBufferObjects=(n,r)=&gt;{const o=r.getProperty(t.currentValidInputs[0].inputIndex),a=t.labelOutlineProperties.length&gt;0;return t.VBOBuildTime.getMTime()&lt;e.getMTime()||t.VBOBuildTime.getMTime()&lt;r.getMTime()||t.VBOBuildTime.getMTime()&lt;t.renderable.getMTime()||t.VBOBuildTime.getMTime()&lt;o?.getMTime()||t.currentValidInputs.some((({imageData:e})=&gt;t.VBOBuildTime.getMTime()&lt;e.getMTime()))||t.VBOBuildTime.getMTime()&lt;t.resliceGeom.getMTime()||t.scalarTextures.length!==t.currentValidInputs.length||!t.scalarTextures.every((e=&gt;!!e?.getHandle()))||!t.colorTexture?.getHandle()||!t.pwfTexture?.getHandle()||a&amp;&amp;(!t.labelOutlineThicknessTexture?.getHandle()||!t.labelOutlineOpacityTexture?.getHandle())},e.buildBufferObjects=(n,o)=&gt;{const a=o.getProperties();t.currentValidInputs.forEach((({imageData:e,inputIndex:n},o)=&gt;{const i=e.getPointData().getScalars(),s=t._openGLRenderWindow.getGraphicsResourceForObject(i),l=Wf(0,i),c=!s?.oglObject?.getHandle()||s?.hash!==l,u=a[n],d=u?.getUpdatedExtents()??[],p=!!d.length;if(c&amp;&amp;!p){const n=Hd.newInstance();n.setOpenGLRenderWindow(t._openGLRenderWindow);const r=e.getDimensions();n.setOglNorm16Ext(t.context.getExtension(&quot;EXT_texture_norm16&quot;)),n.resetFormatAndType(),n.create3DFilterableFromDataArray({width:r[0],height:r[1],depth:r[2],dataArray:i}),t._openGLRenderWindow.setGraphicsResourceForObject(i,n,l),t.scalarTextures[o]=n}else t.scalarTextures[o]=s.oglObject;if(p){u.setUpdatedExtents([]);const n=e.getDimensions();t.scalarTextures[o].create3DFilterableFromDataArray({width:n[0],height:n[1],depth:n[2],dataArray:i,updatedExtents:d})}r(t._openGLRenderWindow,t._scalarTexturesCore[o],i),t._scalarTexturesCore[o]=i}));const i=t.currentValidInputs[0],s=a[i.inputIndex];if(!s)return void Xf(&quot;Missing property for first input&quot;);const l=s.getIndependentComponents(),c=l?t.numberOfComponents:1,u=l?2*c:1,d=[];for(let e=0;e&lt;c;++e)if(t.multiTexturePerVolumeEnabled){const n=t.currentValidInputs[e],r=n?a[n.inputIndex]:null;d.push(r?.getRGBTransferFunction()||null)}else d.push(s.getRGBTransferFunction(e));const p=zf(d,l,c),f=s.getRGBTransferFunction(),g=t._openGLRenderWindow.getGraphicsResourceForObject(f);if(!g?.oglObject?.getHandle()||g?.hash!==p){let e=t.renderable.getColorTextureWidth();e&lt;=0&amp;&amp;(e=t.context.getParameter(t.context.MAX_TEXTURE_SIZE));const n=new Uint8ClampedArray(e*u*3),r=Hd.newInstance();if(r.setOpenGLRenderWindow(t._openGLRenderWindow),f){const t=new Float32Array(3*e);for(let r=0;r&lt;c;r++){const o=d[r];if(o){const a=o.getRange();if(o.getTable(a[0],a[1],e,t,1),l)for(let o=0;o&lt;3*e;o++)n[r*e*6+o]=255*t[o],n[r*e*6+o+3*e]=255*t[o];else for(let o=0;o&lt;3*e;o++)n[r*e*3+o]=255*t[o]}}r.resetFormatAndType(),r.create2DFromRaw({width:e,height:u,numComps:3,dataType:ms.UNSIGNED_CHAR,data:n})}else{for(let t=0;t&lt;3*e;++t){const r=255*t/(3*(e-1));for(let o=0;o&lt;u;++o)n[o*e*3+t+0]=r,n[o*e*3+t+1]=r,n[o*e*3+t+2]=r}r.resetFormatAndType(),r.create2DFromRaw({width:e,height:1,numComps:3,dataType:ms.UNSIGNED_CHAR,data:n})}f&amp;&amp;t._openGLRenderWindow.setGraphicsResourceForObject(f,r,p),t.colorTexture=r}else t.colorTexture=g.oglObject;r(t._openGLRenderWindow,t._colorTextureCore,f),t._colorTextureCore=f;const m=[];for(let e=0;e&lt;c;++e)if(t.multiTexturePerVolumeEnabled){const n=t.currentValidInputs[e],r=n?a[n.inputIndex]:null;m.push(r?.getPiecewiseFunction()||null)}else m.push(s.getPiecewiseFunction(e));const h=zf(m,l,c),v=s.getPiecewiseFunction(),T=t._openGLRenderWindow.getGraphicsResourceForObject(v);if(!T?.oglObject?.getHandle()||T?.hash!==h){let e=t.renderable.getOpacityTextureWidth();e&lt;=0&amp;&amp;(e=t.context.getParameter(t.context.MAX_TEXTURE_SIZE));const n=e*u,r=new Uint8ClampedArray(n),o=Hd.newInstance();if(o.setOpenGLRenderWindow(t._openGLRenderWindow),v){const t=new Float32Array(n),r=new Float32Array(e);for(let n=0;n&lt;c;++n){const o=m[n];if(null===o)t.fill(1);else{const a=o.getRange();if(o.getTable(a[0],a[1],e,r,1),l)for(let o=0;o&lt;e;o++)t[n*e*2+o]=r[o],t[n*e*2+o+e]=r[o];else for(let n=0;n&lt;e;n++)t[n]=r[n]}}o.resetFormatAndType(),o.create2DFromRaw({width:e,height:u,numComps:1,dataType:ms.FLOAT,data:t})}else r.fill(255),o.resetFormatAndType(),o.create2DFromRaw({width:e,height:u,numComps:1,dataType:ms.UNSIGNED_CHAR,data:r});v&amp;&amp;t._openGLRenderWindow.setGraphicsResourceForObject(v,o,h),t.pwfTexture=o}else t.pwfTexture=T.oglObject;r(t._openGLRenderWindow,t._pwfTextureCore,v),t._pwfTextureCore=v,t.labelOutlineProperties.length&gt;0&amp;&amp;(e.updateLabelOutlineThicknessTexture(t.labelOutlineProperties),e.updateLabelOutlineOpacityTexture(t.labelOutlineProperties));const x=`${t.resliceGeom.getMTime()}A${t.renderable.getSlabThickness()}`;if(!t.tris.getCABO().getElementCount()||t.VBOBuildString!==x){const e=Is.newInstance({numberOfComponents:3,values:t.resliceGeom.getPoints().getData()});e.setName(&quot;points&quot;);const n=Is.newInstance({numberOfComponents:1,values:t.resliceGeom.getPolys().getData()}),r={points:e,cellOffset:0};if(t.renderable.getSlabThickness()&gt;0){const e=t.resliceGeom.getPointData().getNormals();e?r.normals=e:Xf(&quot;Slab mode requested without normals&quot;)}t.tris.getCABO().createVBO(n,&quot;polys&quot;,rs.SURFACE,r)}t.VBOBuildString=x,t.VBOBuildTime.modified()},e.updateShaders=(n,r,o)=&gt;{if(t.lastBoundBO=n,e.getNeedToRebuildShaders(n,r,o)){const a={Vertex:null,Fragment:null,Geometry:null};e.buildShaders(a,r,o);const i=t._openGLRenderWindow.getShaderCache().readyShaderProgramArray(a.Vertex,a.Fragment,a.Geometry);i!==n.getProgram()&amp;&amp;(n.setProgram(i),n.getVAO().releaseGraphicsResources()),n.getShaderSourceTime().modified()}else t._openGLRenderWindow.getShaderCache().readyShaderProgram(n.getProgram());n.getVAO().bind(),e.setMapperShaderParameters(n,r,o),e.setCameraShaderParameters(n,r,o),e.setPropertyShaderParameters(n,r,o)},e.setMapperShaderParameters=(n,r,o)=&gt;{const a=n.getProgram(),i=t.currentValidInputs[0].imageData;if(n.getCABO().getElementCount()&amp;&amp;(t.VBOBuildTime.getMTime()&gt;n.getAttributeUpdateTime().getMTime()||n.getShaderSourceTime().getMTime()&gt;n.getAttributeUpdateTime().getMTime())){t.scalarTextures.forEach(((e,t)=&gt;{a.setUniformi(`volumeTexture[${t}]`,e.getTextureUnit())})),a.isAttributeUsed(&quot;vertexWC&quot;)&amp;&amp;(n.getVAO().addAttributeArray(a,n.getCABO(),&quot;vertexWC&quot;,n.getCABO().getVertexOffset(),n.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE)||Xf(&quot;Error setting vertexWC in shader VAO.&quot;)),a.isAttributeUsed(&quot;normalWC&quot;)&amp;&amp;(n.getVAO().addAttributeArray(a,n.getCABO(),&quot;normalWC&quot;,n.getCABO().getNormalOffset(),n.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE)||Xf(&quot;Error setting normalWC in shader VAO.&quot;)),a.isUniformUsed(&quot;slabThickness&quot;)&amp;&amp;a.setUniformf(&quot;slabThickness&quot;,t.renderable.getSlabThickness()),a.isUniformUsed(&quot;spacing&quot;)&amp;&amp;a.setUniform3fv(&quot;spacing&quot;,i.getSpacing()),a.isUniformUsed(&quot;slabType&quot;)&amp;&amp;a.setUniformi(&quot;slabType&quot;,t.renderable.getSlabType()),a.isUniformUsed(&quot;slabTrapezoid&quot;)&amp;&amp;a.setUniformi(&quot;slabTrapezoid&quot;,t.renderable.getSlabTrapezoidIntegration());const e=n.getCABO().getCoordShiftAndScaleEnabled()?n.getCABO().getInverseShiftAndScaleMatrix():null;for(let n=0;n&lt;t.currentValidInputs.length;n++){const r=`WCTCMatrix${n}`;if(a.isUniformUsed(r)){const o=t.currentValidInputs[n].imageData,i=o.getDimensions();T(t.tmpMat4,o.getIndexToWorld()),C(t.tmpMat4,t.tmpMat4,[-.5,-.5,-.5]),S(t.tmpMat4,t.tmpMat4,i),b(t.tmpMat4,t.tmpMat4),e&amp;&amp;A(t.tmpMat4,t.tmpMat4,e),a.setUniformMatrix(r,t.tmpMat4)}}a.isUniformUsed(&quot;vboScaling&quot;)&amp;&amp;a.setUniform3fv(&quot;vboScaling&quot;,n.getCABO().getCoordScale()??[1,1,1]),n.getAttributeUpdateTime().modified()}if(t.haveSeenDepthRequest&amp;&amp;n.getProgram().setUniformi(&quot;depthRequest&quot;,t.renderDepth?1:0),n.getProgram().isUniformUsed(&quot;coffset&quot;)){const t=e.getCoincidentParameters(r,o);n.getProgram().setUniformf(&quot;coffset&quot;,t.offset),n.getProgram().isUniformUsed(&quot;cfactor&quot;)&amp;&amp;n.getProgram().setUniformf(&quot;cfactor&quot;,t.factor)}},e.setCameraShaderParameters=(e,n,r)=&gt;{const o=t._openGLCamera.getKeyMatrices(n),a=t._openGLImageSlice.getKeyMatrices(),i=e.getCABO().getCoordShiftAndScaleEnabled()?e.getCABO().getInverseShiftAndScaleMatrix():null,s=e.getProgram();s.isUniformUsed(&quot;MCPCMatrix&quot;)&amp;&amp;(x(t.tmpMat4),s.setUniformMatrix(&quot;MCPCMatrix&quot;,Yf([o.wcpc,a.mcwc,i],H,t.tmpMat4))),s.isUniformUsed(&quot;MCVCMatrix&quot;)&amp;&amp;(x(t.tmpMat4),s.setUniformMatrix(&quot;MCVCMatrix&quot;,Yf([o.wcvc,a.mcwc,i],H,t.tmpMat4)))},e.setPropertyShaderParameters=(e,n,r)=&gt;{const o=e.getProgram(),a=r.getProperty(t.currentValidInputs[0].inputIndex),i=t.multiTexturePerVolumeEnabled?1:a.getOpacity();o.setUniformf(&quot;opacity&quot;,i);const s=t.numberOfComponents,c=a.getIndependentComponents(),u=t.multiTexturePerVolumeEnabled,p=r.getProperties();if(c)for(let e=0;e&lt;s;++e){const n=u?p[t.currentValidInputs[e].inputIndex]:a;o.setUniformf(`mix${e}`,n.getComponentWeight(0))}for(let e=0;e&lt;s;e++){const n=u?e:0,r=u?0:e,i=t.scalarTextures[n].getVolumeInfo(),s=i.scale[r],l=i.offset[r],d=c?e:0,f=u?p[t.currentValidInputs[e].inputIndex]:a;let g=f.getColorWindow(),m=f.getColorLevel();const h=f.getRGBTransferFunction(u?0:d);if(h&amp;&amp;f.getUseLookupTableScalarRange()){const e=h.getRange();g=e[1]-e[0],m=.5*(e[1]+e[0])}const v=s/g,T=(l-m)/g+.5;o.setUniformf(`cshift${e}`,T),o.setUniformf(`cscale${e}`,v);let x=1,y=0;const b=f.getPiecewiseFunction(u?0:d);if(b){const e=b.getRange(),t=e[1]-e[0];x=s/t,y=(l-.5*(e[0]+e[1]))/t+.5}o.setUniformf(`pwfshift${e}`,y),o.setUniformf(`pwfscale${e}`,x)}const f=t.colorTexture.getTextureUnit();o.setUniformi(&quot;colorTexture1&quot;,f);const g=t.pwfTexture.getTextureUnit();if(o.setUniformi(&quot;pwfTexture1&quot;,g),o.setUniform4fv(&quot;backgroundColor&quot;,t.renderable.getBackgroundColor()),t.labelOutlineProperties.length&gt;0){const e=t.labelOutlineThicknessTexture.getTextureUnit();o.setUniformi(&quot;labelOutlineThicknessTexture&quot;,e);const n=t.labelOutlineOpacityTexture.getTextureUnit();o.setUniformi(&quot;labelOutlineOpacityTexture&quot;,n);let r=t.renderable.getLabelOutlineTextureWidth();r&lt;=0&amp;&amp;(r=t.context.getParameter(t.context.MAX_TEXTURE_SIZE)),o.setUniformf(&quot;labelOutlineTextureWidth&quot;,r),o.setUniformf(&quot;numLabelmaps&quot;,t.labelOutlineProperties.length);const a=t.renderable.getSlicePlane();if(t._tmpTangent1.fill(0),t._tmpTangent2.fill(0),a){const e=a.getNormal();za.perpendiculars(e,t._tmpTangent1,t._tmpTangent2,0)}else t._tmpTangent1[0]=1,t._tmpTangent2[1]=1;for(let e=0;e&lt;t.currentValidInputs.length;e++){const n=t.currentValidInputs[e].imageData;l(t._tmpMat3,...n.getDirection()),d(t._tmpMat3,t._tmpMat3),ae(t._tmpVec3a,t._tmpTangent1,t._tmpMat3),ae(t._tmpVec3b,t._tmpTangent2,t._tmpMat3);const r=`outlineTangent1_${e}`,a=`outlineTangent2_${e}`;o.isUniformUsed(r)&amp;&amp;o.setUniform3fv(r,t._tmpVec3a),o.isUniformUsed(a)&amp;&amp;o.setUniform3fv(a,t._tmpVec3b)}for(let e=0;e&lt;t.currentValidInputs.length;e++){const n=`texelSize${e}`;if(o.isUniformUsed(n)){const r=t.currentValidInputs[e].imageData,a=r.getDimensions(),i=r.getSpacing(),s=Math.min(Math.abs(i[0]),Math.abs(i[1]),Math.abs(i[2]));t._tmpTexelSize[0]=s/(a[0]*Math.abs(i[0])),t._tmpTexelSize[1]=s/(a[1]*Math.abs(i[1])),t._tmpTexelSize[2]=s/(a[2]*Math.abs(i[2])),o.setUniform3fv(n,t._tmpTexelSize)}}}},e.getNeedToRebuildShaders=(e,n,r)=&gt;{const o=r.getProperty(t.currentValidInputs[0].inputIndex).getIndependentComponents(),a=t.labelOutlineProperties.length&gt;0,i=t.renderable.getSlabThickness(),s=t.renderable.getSlabType(),l=t.renderable.getSlabTrapezoidIntegration();let c=!1;(!t.currentRenderPass&amp;&amp;t.lastRenderPassShaderReplacement||t.currentRenderPass&amp;&amp;t.currentRenderPass.getShaderReplacement()!==t.lastRenderPassShaderReplacement)&amp;&amp;(c=!0);const u=t.currentValidInputs?.length??0;return!(!c&amp;&amp;t.lastHaveSeenDepthRequest===t.haveSeenDepthRequest&amp;&amp;t.lastNumberOfComponents===t.numberOfComponents&amp;&amp;t.lastMultiTexturePerVolumeEnabled===t.multiTexturePerVolumeEnabled&amp;&amp;0!==e.getProgram()?.getHandle()&amp;&amp;t.lastIndependentComponents===o&amp;&amp;t.lastUseLabelOutline===a&amp;&amp;t.lastNumValidInputs===u&amp;&amp;t.lastSlabThickness===i&amp;&amp;t.lastSlabType===s&amp;&amp;t.lastSlabTrapezoidIntegration===l)&amp;&amp;(t.lastHaveSeenDepthRequest=t.haveSeenDepthRequest,t.lastNumberOfComponents=t.numberOfComponents,t.lastMultiTexturePerVolumeEnabled=t.multiTexturePerVolumeEnabled,t.lastIndependentComponents=o,t.lastUseLabelOutline=a,t.lastNumValidInputs=u,t.lastSlabThickness=i,t.lastSlabType=s,t.lastSlabTrapezoidIntegration=l,!0)},e.getShaderTemplate=(e,t,n)=&gt;{e.Vertex=&quot;//VTK::System::Dec\\n\\n/*=========================================================================\\n\\n  Program:   Visualization Toolkit\\n  Module:    vtkImageResliceMapperVS.glsl\\n\\n  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n  All rights reserved.\\n  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n\\n     This software is distributed WITHOUT ANY WARRANTY; without even\\n     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n     PURPOSE.  See the above copyright notice for more information.\\n\\n=========================================================================*/\\n\\n// all variables that represent positions or directions have a suffix\\n// indicating the coordinate system they are in. The possible values are\\n// MC - Model coordinates\\n// WC - World coordinates\\n// VC - View coordinates\\n// DC - Display coordinates\\n// TC - Texture coordinates\\n\\n// frag position in VC\\n//VTK::PositionVC::Dec\\n\\n// Texture coordinates\\n//VTK::TCoord::Dec\\n\\n// picking support\\n//VTK::Picking::Dec\\n\\n// camera and actor matrix values\\n//VTK::Camera::Dec\\n\\nvoid main()\\n{\\n  //VTK::PositionVC::Impl\\n\\n  //VTK::TCoord::Impl\\n\\n  //VTK::Picking::Impl\\n}\\n&quot;,e.Fragment=&quot;//VTK::System::Dec\\n\\n/*=========================================================================\\n\\n  Program:   Visualization Toolkit\\n  Module:    vtkImageResliceMapperFS.glsl\\n\\n  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n  All rights reserved.\\n  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n\\n     This software is distributed WITHOUT ANY WARRANTY; without even\\n     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n     PURPOSE.  See the above copyright notice for more information.\\n\\n=========================================================================*/\\n// Template for the gpu image mapper fragment shader\\n\\n// VC position of this fragment\\n//VTK::PositionVC::Dec\\n\\n// Texture coordinates\\n//VTK::TCoord::Dec\\n\\n// picking support\\n//VTK::Picking::Dec\\n\\n// handle coincident offsets\\n//VTK::Coincident::Dec\\n\\n//VTK::ZBuffer::Dec\\n\\n// the output of this shader\\n//VTK::Output::Dec\\n\\nvoid main()\\n{\\n  // VC position of this fragment. This should not branch/return/discard.\\n  //VTK::PositionVC::Impl\\n\\n  // Place any calls that require uniform flow (e.g. dFdx) here.\\n  //VTK::UniformFlow::Impl\\n\\n  // Set gl_FragDepth here (gl_FragCoord.z by default)\\n  //VTK::Depth::Impl\\n\\n  // Early depth peeling abort:\\n  //VTK::DepthPeeling::PreColor\\n\\n  //VTK::TCoord::Impl\\n\\n  if (gl_FragData[0].a &lt;= 0.0)\\n    {\\n    discard;\\n    }\\n\\n  //VTK::DepthPeeling::Impl\\n\\n  //VTK::Picking::Impl\\n\\n  // handle coincident offsets\\n  //VTK::Coincident::Impl\\n\\n  //VTK::ZBuffer::Impl\\n\\n  //VTK::RenderPassFragmentShader::Impl\\n}\\n&quot;,e.Geometry=&quot;&quot;},e.replaceShaderValues=(n,r,o)=&gt;{if(e.replaceShaderTCoord(n,r,o),e.replaceShaderPositionVC(n,r,o),t.haveSeenDepthRequest){let e=n.Fragment;e=vd.substitute(e,&quot;//VTK::ZBuffer::Dec&quot;,&quot;uniform int depthRequest;&quot;).result,e=vd.substitute(e,&quot;//VTK::ZBuffer::Impl&quot;,[&quot;if (depthRequest == 1) {&quot;,&quot;float iz = floor(gl_FragCoord.z*65535.0 + 0.1);&quot;,&quot;float rf = floor(iz/256.0)/255.0;&quot;,&quot;float gf = mod(iz,256.0)/255.0;&quot;,&quot;gl_FragData[0] = vec4(rf, gf, 0.0, 1.0); }&quot;]).result,n.Fragment=e}e.replaceShaderCoincidentOffset(n,r,o)},e.replaceShaderTCoord=(e,n,r)=&gt;{let o=e.Vertex;const a=e.Geometry;let i=e.Fragment;const s=t.labelOutlineProperties.length&gt;0,l=t.renderable.getSlabThickness();o=vd.substitute(o,&quot;//VTK::TCoord::Dec&quot;,[]).result,o=vd.substitute(o,&quot;//VTK::TCoord::Impl&quot;,[]).result;const c=t.numberOfComponents,u=r.getProperty(t.currentValidInputs[0].inputIndex).getIndependentComponents(),d=t.scalarTextures.length;let p=[`uniform highp sampler3D volumeTexture[${d}];`,&quot;uniform float cshift0;&quot;,&quot;uniform float cscale0;&quot;,&quot;uniform float pwfshift0;&quot;,&quot;uniform float pwfscale0;&quot;,&quot;uniform sampler2D colorTexture1;&quot;,&quot;uniform sampler2D pwfTexture1;&quot;,&quot;uniform float opacity;&quot;,&quot;uniform vec4 backgroundColor;&quot;];for(let e=0;e&lt;d;e++)p.push(`uniform mat4 WCTCMatrix${e};`);if(s){p=p.concat([&quot;uniform sampler2D labelOutlineThicknessTexture;&quot;,&quot;uniform sampler2D labelOutlineOpacityTexture;&quot;,&quot;uniform float labelOutlineTextureWidth;&quot;,&quot;uniform float numLabelmaps;&quot;]);for(let e=0;e&lt;d;e++)p.push(`uniform vec3 outlineTangent1_${e};`),p.push(`uniform vec3 outlineTangent2_${e};`),p.push(`uniform vec3 texelSize${e};`)}if(p.push(&quot;vec4 rawSampleTexture(vec3 worldPos) {&quot;),t.multiTexturePerVolumeEnabled){p.push(&quot;vec4 rawSample;&quot;);for(let e=0;e&lt;d;++e)p.push(`vec3 tc${e} = (WCTCMatrix${e} * vec4(worldPos, 1.0)).xyz;`,`rawSample[${e}] = texture(volumeTexture[${e}], tc${e})[0];`);p.push(&quot;return rawSample;&quot;,&quot;}&quot;)}else p.push(&quot;vec3 tc0 = (WCTCMatrix0 * vec4(worldPos, 1.0)).xyz;&quot;,&quot;return texture(volumeTexture[0], tc0);&quot;,&quot;}&quot;);if(u){for(let e=1;e&lt;c;e++)p=p.concat([`uniform float cshift${e};`,`uniform float cscale${e};`,`uniform float pwfshift${e};`,`uniform float pwfscale${e};`]);switch(c){case 1:p=p.concat([&quot;uniform float mix0;&quot;,&quot;#define height0 0.5&quot;]);break;case 2:p=p.concat([&quot;uniform float mix0;&quot;,&quot;uniform float mix1;&quot;,&quot;#define height0 0.25&quot;,&quot;#define height1 0.75&quot;]);break;case 3:p=p.concat([&quot;uniform float mix0;&quot;,&quot;uniform float mix1;&quot;,&quot;uniform float mix2;&quot;,&quot;#define height0 0.17&quot;,&quot;#define height1 0.5&quot;,&quot;#define height2 0.83&quot;]);break;case 4:p=p.concat([&quot;uniform float mix0;&quot;,&quot;uniform float mix1;&quot;,&quot;uniform float mix2;&quot;,&quot;uniform float mix3;&quot;,&quot;#define height0 0.125&quot;,&quot;#define height1 0.375&quot;,&quot;#define height2 0.625&quot;,&quot;#define height3 0.875&quot;]);break;default:Xf(&quot;Unsupported number of independent coordinates.&quot;)}}l&gt;0&amp;&amp;(p=p.concat([&quot;uniform vec3 spacing;&quot;,&quot;uniform float slabThickness;&quot;,&quot;uniform int slabType;&quot;,&quot;uniform int slabTrapezoid;&quot;,&quot;uniform vec3 vboScaling;&quot;]),p=p.concat([&quot;vec4 compositeValue(vec4 currVal, vec4 valToComp, int trapezoid)&quot;,&quot;{&quot;,&quot;  vec4 retVal = vec4(1.0);&quot;,&quot;  if (slabType == 0) // min&quot;,&quot;  {&quot;,&quot;    retVal = min(currVal, valToComp);&quot;,&quot;  }&quot;,&quot;  else if (slabType == 1) // max&quot;,&quot;  {&quot;,&quot;    retVal = max(currVal, valToComp);&quot;,&quot;  }&quot;,&quot;  else if (slabType == 3) // sum&quot;,&quot;  {&quot;,&quot;    retVal = currVal + (trapezoid &gt; 0 ? 0.5 * valToComp : valToComp); &quot;,&quot;  }&quot;,&quot;  else // mean&quot;,&quot;  {&quot;,&quot;    retVal = currVal + (trapezoid &gt; 0 ? 0.5 * valToComp : valToComp); &quot;,&quot;  }&quot;,&quot;  return retVal;&quot;,&quot;}&quot;])),i=vd.substitute(i,&quot;//VTK::TCoord::Dec&quot;,p).result;let f=[&quot;vec3 fragWorldPos = vertexWCVSOutput.xyz;&quot;,&quot;vec3 fragTexCoord = (WCTCMatrix0 * vec4(fragWorldPos, 1.0)).xyz;&quot;,&quot;if (any(greaterThan(fragTexCoord, vec3(1.0))) || any(lessThan(fragTexCoord, vec3(0.0))))&quot;,&quot;{&quot;,&quot;  // set the background color and exit&quot;,&quot;  gl_FragData[0] = backgroundColor;&quot;,&quot;  return;&quot;,&quot;}&quot;,&quot;vec4 tvalue = rawSampleTexture(fragWorldPos);&quot;];if(l&gt;0&amp;&amp;(f=f.concat([&quot;// Get the first and last samples&quot;,&quot;int numSlices = 1;&quot;,&quot;float scaling = min(min(spacing.x, spacing.y), spacing.z) * 0.5;&quot;,&quot;vec3 normalxspacing = scaling * normalWCVSOutput;&quot;,&quot;float distTraveled = length(normalxspacing);&quot;,&quot;int trapezoid = 0;&quot;,&quot;while (distTraveled &lt; slabThickness * 0.5)&quot;,&quot;{&quot;,&quot;  distTraveled += length(normalxspacing);&quot;,&quot;  float fnumSlices = float(numSlices);&quot;,&quot;  if (distTraveled &gt; slabThickness * 0.5)&quot;,&quot;  {&quot;,&quot;    // Before stepping outside the slab, sample at the boundaries&quot;,&quot;    normalxspacing = normalWCVSOutput * slabThickness * 0.5 / fnumSlices;&quot;,&quot;    trapezoid = slabTrapezoid;&quot;,&quot;  }&quot;,&quot;  vec3 worldPosNeg = vertexWCVSOutput.xyz - fnumSlices * normalxspacing * vboScaling;&quot;,&quot;  vec3 fragTCoordNeg = (WCTCMatrix0 * vec4(worldPosNeg, 1.0)).xyz;&quot;,&quot;  if (!any(greaterThan(fragTCoordNeg, vec3(1.0))) &amp;&amp; !any(lessThan(fragTCoordNeg, vec3(0.0))))&quot;,&quot;  {&quot;,&quot;    vec4 newVal = rawSampleTexture(worldPosNeg);&quot;,&quot;    tvalue = compositeValue(tvalue, newVal, trapezoid);&quot;,&quot;    numSlices += 1;&quot;,&quot;  }&quot;,&quot;  vec3 worldPosPos = vertexWCVSOutput.xyz + fnumSlices * normalxspacing * vboScaling;&quot;,&quot;  vec3 fragTCoordPos = (WCTCMatrix0 * vec4(worldPosPos, 1.0)).xyz;&quot;,&quot;  if (!any(greaterThan(fragTCoordPos, vec3(1.0))) &amp;&amp; !any(lessThan(fragTCoordPos, vec3(0.0))))&quot;,&quot;  {&quot;,&quot;    vec4 newVal = rawSampleTexture(worldPosPos);&quot;,&quot;    tvalue = compositeValue(tvalue, newVal, trapezoid);&quot;,&quot;    numSlices += 1;&quot;,&quot;  }&quot;,&quot;}&quot;,&quot;// Finally, if slab type is *mean*, divide the sum by the numSlices&quot;,&quot;if (slabType == 2)&quot;,&quot;{&quot;,&quot;  tvalue = tvalue / float(numSlices);&quot;,&quot;}&quot;])),u){const e=[&quot;r&quot;,&quot;g&quot;,&quot;b&quot;,&quot;a&quot;];for(let t=0;t&lt;c;++t)f=f.concat([`vec3 tcolor${t} = texture2D(colorTexture1, vec2(tvalue.${e[t]} * cscale${t} + cshift${t}, height${t})).rgb;`,`float compWeight${t} = mix${t} * texture2D(pwfTexture1, vec2(tvalue.${e[t]} * pwfscale${t} + pwfshift${t}, height${t})).r;`]);const n=[];if(s)for(let e=0;e&lt;c;e++){const o=r.getProperty(t.currentValidInputs[e].inputIndex);o?.getUseLabelOutline()&amp;&amp;n.push(e)}const o=e=&gt;{if(1===e)return[&quot;gl_FragData[0] = vec4(tcolor0.rgb, compWeight0 * opacity);&quot;];const t=Array.from({length:e},((e,t)=&gt;t)),n=t.map((e=&gt;`compWeight${e}`)).join(&quot; + &quot;),r=t.map((e=&gt;`(tcolor${e}.rgb * (compWeight${e} / weightSum))`)).join(&quot; + &quot;);return[`float weightSum = ${n};`,`gl_FragData[0] = vec4(vec3(${r}), opacity);`]};f=n.length&gt;0?f.concat(function(e,t){const n=[&quot;r&quot;,&quot;g&quot;,&quot;b&quot;,&quot;a&quot;],r=Array.from({length:t},((e,t)=&gt;t)),o=r.filter((t=&gt;!e.includes(t))),a=e.map((e=&gt;`vec3 labelTexCoord${e} = (WCTCMatrix${e} * vec4(fragWorldPos, 1.0)).xyz;`)).join(&quot;\\n                &quot;),i=0===e.length?&quot;&quot;:`float neighborLabel = ${e.map(((e,t)=&gt;0===t?`(labelInputIdx == ${t}) ? texture(volumeTexture[${e}], neighborTexCoord).r`:` : (labelInputIdx == ${t}) ? texture(volumeTexture[${e}], neighborTexCoord).r`)).join(&quot;&quot;)} : 0.0;`,s=[...o,...e].map((t=&gt;{const r=e.includes(t),o=e.indexOf(t);return r?`\\n        // Process input ${t} as labelmap\\n        {\\n          float labelValue = tvalue.${n[t]};\\n          int segmentIndex = int(labelValue * 255.0);\\n\\n          if (segmentIndex &gt; 0) {\\n            float textureCoordinate = float(segmentIndex - 1) / labelOutlineTextureWidth;\\n            float labelmapRow = (float(${o}) + 0.5) / numLabelmaps;\\n            float thicknessValue = texture2D(labelOutlineThicknessTexture, vec2(textureCoordinate, labelmapRow)).r;\\n            float labelOutlineOpacityValue = texture2D(labelOutlineOpacityTexture, vec2(textureCoordinate, labelmapRow)).r;\\n            int actualThickness = int(thicknessValue * 255.0);\\n\\n            vec3 currentLabelTC = labelTexCoord${t};\\n            vec3 currentTexelSize = texelSize${t};\\n            vec3 currentTangent1 = outlineTangent1_${t};\\n            vec3 currentTangent2 = outlineTangent2_${t};\\n\\n            bool pixelOnBorder = false;\\n            int labelInputIdx = ${o};\\n            for (int i = -actualThickness; i &lt;= actualThickness; i++) {\\n              for (int j = -actualThickness; j &lt;= actualThickness; j++) {\\n                if (i == 0 &amp;&amp; j == 0) continue;\\n                vec3 neighborTexCoord = currentLabelTC + float(i) * currentTangent1 * currentTexelSize + float(j) * currentTangent2 * currentTexelSize;\\n                if (any(greaterThan(neighborTexCoord, vec3(1.0))) || any(lessThan(neighborTexCoord, vec3(0.0)))) {\\n                  pixelOnBorder = true;\\n                  break;\\n                }\\n                ${i}\\n                if (neighborLabel != labelValue) {\\n                  pixelOnBorder = true;\\n                  break;\\n                }\\n              }\\n              if (pixelOnBorder) break;\\n            }\\n\\n            if (pixelOnBorder) {\\n              convergentColor.rgb = mix(convergentColor.rgb, tcolor${t}.rgb, labelOutlineOpacityValue);\\n              convergentColor.a = max(convergentColor.a, labelOutlineOpacityValue);\\n            } else if (compWeight${t} &gt; 0.0) {\\n              float fillAlpha = compWeight${t} * opacity;\\n              convergentColor.rgb = mix(convergentColor.rgb, tcolor${t}.rgb, fillAlpha);\\n              convergentColor.a = max(convergentColor.a, fillAlpha);\\n            }\\n          }\\n        }`:`\\n        // Process input ${t} as background image\\n        {\\n          float bgAlpha = compWeight${t} * opacity;\\n          convergentColor.rgb = mix(convergentColor.rgb, tcolor${t}.rgb, bgAlpha);\\n          convergentColor.a = max(convergentColor.a, bgAlpha);\\n        }`})).join(&quot;\\n        &quot;),l=e.length&gt;0?`labelmaps at input${e.length&gt;1?&quot;s&quot;:&quot;&quot;} ${e.join(&quot;, &quot;)}`:&quot;no labelmaps&quot;,c=o.length&gt;0?`background at input${o.length&gt;1?&quot;s&quot;:&quot;&quot;} ${o.join(&quot;, &quot;)}`:&quot;no background&quot;;return qf(`\\n      // Multi-texture mode: ${l}, ${c}\\n      vec4 convergentColor = vec4(0.0, 0.0, 0.0, 0.0);\\n\\n      // Compute labelmap texture coordinates\\n      ${a}\\n\\n      // Process each input in order\\n      ${s}\\n\\n      gl_FragData[0] = convergentColor;\\n    `)}(n,c)):f.concat(o(c))}else switch(c){case 1:f=s?f.concat([...qf(&quot;\\n                // Label outline mode for single component\\n                float centerValue = tvalue.r;\\n                int segmentIndex = int(centerValue * 255.0);\\n\\n                // Skip background (segment 0)\\n                if (segmentIndex == 0) {\\n                  gl_FragData[0] = vec4(0.0, 0.0, 0.0, 0.0);\\n                  return;\\n                }\\n\\n                // Get outline parameters for this segment (row 0 for single labelmap)\\n                float textureCoordinate = float(segmentIndex - 1) / labelOutlineTextureWidth;\\n                float labelmapRow = 0.5 / numLabelmaps;\\n                float thicknessValue = texture2D(labelOutlineThicknessTexture, vec2(textureCoordinate, labelmapRow)).r;\\n                float outlineOpacity = texture2D(labelOutlineOpacityTexture, vec2(textureCoordinate, labelmapRow)).r;\\n                int actualThickness = int(thicknessValue * 255.0);\\n\\n                // Get color for this segment\\n                vec3 tColor = texture2D(colorTexture1, vec2(centerValue * cscale0 + cshift0, 0.5)).rgb;\\n                float scalarOpacity = texture2D(pwfTexture1, vec2(centerValue * pwfscale0 + pwfshift0, 0.5)).r;\\n                float opacityToUse = scalarOpacity * opacity;\\n\\n                // Check neighbors for border detection\\n                bool pixelOnBorder = false;\\n                for (int i = -actualThickness; i &lt;= actualThickness; i++) {\\n                  for (int j = -actualThickness; j &lt;= actualThickness; j++) {\\n                    if (i == 0 &amp;&amp; j == 0) {\\n                      continue;\\n                    }\\n                    // Sample neighbor using tangent vectors in texture space\\n                    vec3 neighborTexCoord = fragTexCoord + float(i) * outlineTangent1_0 * texelSize0 + float(j) * outlineTangent2_0 * texelSize0;\\n\\n                    // Skip if outside texture bounds\\n                    if (any(greaterThan(neighborTexCoord, vec3(1.0))) || any(lessThan(neighborTexCoord, vec3(0.0)))) {\\n                      pixelOnBorder = true;\\n                      break;\\n                    }\\n\\n                    float neighborValue = texture(volumeTexture[0], neighborTexCoord).r;\\n                    if (neighborValue != centerValue) {\\n                      pixelOnBorder = true;\\n                      break;\\n                    }\\n                  }\\n                  if (pixelOnBorder) {\\n                    break;\\n                  }\\n                }\\n\\n                if (pixelOnBorder) {\\n                  gl_FragData[0] = vec4(tColor, outlineOpacity);\\n                } else {\\n                  gl_FragData[0] = vec4(tColor, opacityToUse);\\n                }\\n              &quot;)]):f.concat([&quot;// Dependent components&quot;,&quot;float intensity = tvalue.r;&quot;,&quot;vec3 tcolor = texture2D(colorTexture1, vec2(intensity * cscale0 + cshift0, 0.5)).rgb;&quot;,&quot;float scalarOpacity = texture2D(pwfTexture1, vec2(intensity * pwfscale0 + pwfshift0, 0.5)).r;&quot;,&quot;gl_FragData[0] = vec4(tcolor, scalarOpacity * opacity);&quot;]);break;case 2:f=f.concat([&quot;float intensity = tvalue.r*cscale0 + cshift0;&quot;,&quot;gl_FragData[0] = vec4(texture2D(colorTexture1, vec2(intensity, 0.5)).rgb, pwfscale0*tvalue.g + pwfshift0);&quot;]);break;case 3:f=f.concat([&quot;vec4 tcolor = cscale0*tvalue + cshift0;&quot;,&quot;gl_FragData[0] = vec4(texture2D(colorTexture1, vec2(tcolor.r,0.5)).r,&quot;,&quot;  texture2D(colorTexture1, vec2(tcolor.g,0.5)).r,&quot;,&quot;  texture2D(colorTexture1, vec2(tcolor.b,0.5)).r, opacity);&quot;]);break;default:f=f.concat([&quot;vec4 tcolor = cscale0*tvalue + cshift0;&quot;,&quot;gl_FragData[0] = vec4(texture2D(colorTexture1, vec2(tcolor.r,0.5)).r,&quot;,&quot;  texture2D(colorTexture1, vec2(tcolor.g,0.5)).r,&quot;,&quot;  texture2D(colorTexture1, vec2(tcolor.b,0.5)).r, tcolor.a);&quot;])}i=vd.substitute(i,&quot;//VTK::TCoord::Impl&quot;,f).result,e.Vertex=o,e.Fragment=i,e.Geometry=a},e.replaceShaderPositionVC=(n,r,o)=&gt;{let a=n.Vertex;const i=n.Geometry;let s=n.Fragment;const l=t.renderable.getSlabThickness();let c=[&quot;attribute vec4 vertexWC;&quot;,&quot;varying vec4 vertexWCVSOutput;&quot;];c=c.concat([`//${e.getMTime()}${t.resliceGeomUpdateString}`]),l&gt;0&amp;&amp;(c=c.concat([&quot;attribute vec3 normalWC;&quot;,&quot;varying vec3 normalWCVSOutput;&quot;])),a=vd.substitute(a,&quot;//VTK::PositionVC::Dec&quot;,c).result;let u=[&quot;gl_Position = MCPCMatrix * vertexWC;&quot;,&quot;vertexWCVSOutput = vertexWC;&quot;];l&gt;0&amp;&amp;(u=u.concat([&quot;normalWCVSOutput = normalWC;&quot;])),a=vd.substitute(a,&quot;//VTK::PositionVC::Impl&quot;,u).result,a=vd.substitute(a,&quot;//VTK::Camera::Dec&quot;,[&quot;uniform mat4 MCPCMatrix;&quot;,&quot;uniform mat4 MCVCMatrix;&quot;]).result;let d=[&quot;varying vec4 vertexWCVSOutput;&quot;];l&gt;0&amp;&amp;(d=d.concat([&quot;varying vec3 normalWCVSOutput;&quot;])),s=vd.substitute(s,&quot;//VTK::PositionVC::Dec&quot;,d).result,n.Vertex=a,n.Geometry=i,n.Fragment=s},e.updateResliceGeometry=()=&gt;{let e=&quot;&quot;;const n=t.currentValidInputs[0].imageData,r=n?.getBounds();let o=!0,a=2;const s=t.renderable.getSlicePolyData(),c=t.renderable.getSlicePlane();if(s)e=e.concat(`PolyData${s.getMTime()}`);else if(c){e=e.concat(`Plane${c.getMTime()}`);const t=i();n&amp;&amp;(e=e.concat(`Image${n.getMTime()}`),l(t,...n.getDirection()),d(t,t));const r=[...c.getNormal()];ae(r,r,t),[o,a]=function(e){za.normalize(e);const t=[0,0,0];for(let r=0;r&lt;3;++r){(n=t)[0]=0,n[1]=0,n[2]=0,t[r]=1;const o=za.dot(e,t);if(o&lt;-.999999||o&gt;.999999)return[!0,r]}var n;return[!1,2]}(r)}else{const o=ai.newInstance();o.setNormal(0,0,1);let a=[0,1,0,1,0,1];n&amp;&amp;(a=r),o.setOrigin(a[0],a[2],.5*(a[5]+a[4])),t.renderable.setSlicePlane(o),e=e.concat(`Plane${c?.getMTime()}`),n&amp;&amp;(e=e.concat(`Image${n.getMTime()}`))}if(!t.resliceGeom||t.resliceGeomUpdateString!==e){if(s)t.resliceGeom||(t.resliceGeom=Ru.newInstance()),t.resliceGeom.getPoints().setData(s.getPoints().getData(),3),t.resliceGeom.getPolys().setData(s.getPolys().getData(),1),t.resliceGeom.getPointData().setNormals(s.getPointData().getNormals());else if(c)if(o){const e=new Float32Array(12),r=n.worldToIndex(c.getOrigin(),[0,0,0]),o=[(a+1)%3,(a+2)%3].sort(),i=n.getSpatialExtent();let s=0;for(let t=0;t&lt;2;++t)for(let n=0;n&lt;2;++n)e[s+a]=r[a],e[s+o[0]]=i[2*o[0]+n],e[s+o[1]]=i[2*o[1]+t],s+=3;t.transform.setMatrix(n.getIndexToWorld()),t.transform.transformPoints(e,e);const l=new Uint16Array(8);l[0]=3,l[1]=0,l[2]=1,l[3]=3,l[4]=3,l[5]=0,l[6]=3,l[7]=2;const u=c.getNormal();za.normalize(u);const d=new Float32Array(12);for(let e=0;e&lt;4;++e)d[3*e]=u[0],d[3*e+1]=u[1],d[3*e+2]=u[2];t.resliceGeom||(t.resliceGeom=Ru.newInstance()),t.resliceGeom.getPoints().setData(e,3),t.resliceGeom.getPolys().setData(l,1);const p=Is.newInstance({numberOfComponents:3,values:d,name:&quot;Normals&quot;});t.resliceGeom.getPointData().setNormals(p)}else{t.outlineFilter.setInputData(n),t.cutter.setInputConnection(t.outlineFilter.getOutputPort()),t.cutter.setCutFunction(c),t.lineToSurfaceFilter.setInputConnection(t.cutter.getOutputPort()),t.lineToSurfaceFilter.update(),t.resliceGeom||(t.resliceGeom=Ru.newInstance());const e=t.lineToSurfaceFilter.getOutputData();t.resliceGeom.getPoints().setData(e.getPoints().getData(),3),t.resliceGeom.getPolys().setData(e.getPolys().getData(),1),t.resliceGeom.getPointData().setNormals(e.getPointData().getNormals());const r=c.getNormal(),o=t.resliceGeom.getNumberOfPoints();za.normalize(r);const a=new Float32Array(3*o);for(let e=0;e&lt;o;++e)a[3*e]=r[0],a[3*e+1]=r[1],a[3*e+2]=r[2];const i=Is.newInstance({numberOfComponents:3,values:a,name:&quot;Normals&quot;});t.resliceGeom.getPointData().setNormals(i)}else Xf(&quot;Something went wrong.&quot;,&quot;A default slice plane should have been created in the beginning of&quot;,&quot;updateResliceGeometry.&quot;);t.resliceGeomUpdateString=e,t.resliceGeom?.modified()}},e.updateLabelOutlineThicknessTexture=e=&gt;{a(e.map((({property:e})=&gt;e.getLabelOutlineThicknessByReference())),Uint8Array,ms.UNSIGNED_CHAR,&quot;_labelOutlineThicknessHash&quot;,&quot;labelOutlineThicknessTexture&quot;)},e.updateLabelOutlineOpacityTexture=e=&gt;{a(e.map((({property:e})=&gt;{let t=e.getLabelOutlineOpacity();return&quot;number&quot;==typeof t&amp;&amp;(t=[t]),t})),Float32Array,ms.FLOAT,&quot;_labelOutlineOpacityHash&quot;,&quot;labelOutlineOpacityTexture&quot;)},e.setScalarTextures=e=&gt;{t.scalarTextures=[...e],t._externalOpenGLTexture=!0},e.delete=qt((()=&gt;{t._openGLRenderWindow&amp;&amp;o(t._openGLRenderWindow),t.labelOutlineThicknessTexture&amp;&amp;(t.labelOutlineThicknessTexture.releaseGraphicsResources(),t.labelOutlineThicknessTexture=null),t.labelOutlineOpacityTexture&amp;&amp;(t.labelOutlineOpacityTexture.releaseGraphicsResources(),t.labelOutlineOpacityTexture=null)}),e.delete)}const Zf={VBOBuildTime:{},VBOBuildString:null,haveSeenDepthRequest:!1,lastHaveSeenDepthRequest:!1,lastIndependentComponents:!1,lastUseLabelOutline:!1,lastNumValidInputs:0,lastNumberOfComponents:0,lastMultiTexturePerVolumeEnabled:!1,lastSlabThickness:0,lastSlabTrapezoidIntegration:0,lastSlabType:-1,scalarTextures:[],_scalarTexturesCore:[],colorTexture:null,_colorTextureCore:null,pwfTexture:null,_pwfTextureCore:null,labelOutlineProperties:[],labelOutlineThicknessTexture:null,_labelOutlineThicknessHash:null,labelOutlineOpacityTexture:null,_labelOutlineOpacityHash:null,_externalOpenGLTexture:!1,resliceGeom:null,resliceGeomUpdateString:null,tris:null};vn(&quot;vtkImageResliceMapper&quot;,Xt((function(e,t,n={}){Object.assign(t,Zf,n),pn.extend(e,t,n),qd.implementReplaceShaderCoincidentOffset(e,t,n),qd.implementBuildShadersWithReplacements(e,t,n),t.tris=Sd.newInstance(),t.scalarTextures=[],t.colorTexture=null,t.pwfTexture=null,t.VBOBuildTime={},Vt(t.VBOBuildTime),t.tmpMat4=x(new Float64Array(16)),t._tmpMat3=i(),t._tmpVec3a=j(),t._tmpVec3b=j(),t._tmpTangent1=[0,0,0],t._tmpTangent2=[0,0,0],t._tmpTexelSize=[0,0,0],t.outlineFilter=Nf.newInstance(),t.outlineFilter.setGenerateFaces(!0),t.outlineFilter.setGenerateLines(!1),t.cubePolyData=Ru.newInstance(),t.cutter=Sf.newInstance(),t.lineToSurfaceFilter=xf.newInstance(),t.transform=Kf.newInstance(),Bt(e,t,[&quot;scalarTextures&quot;]),Jf(e,t)}),&quot;vtkOpenGLImageResliceMapper&quot;));var Qf={SlicingMode:{NONE:-1,I:0,J:1,K:2,X:3,Y:4,Z:5}};const{vtkErrorMacro:$f}=ln,{SlicingMode:eg}=Qf;function tg(e){const t=e.split(&quot;\\n&quot;),n=[];for(let e=0;e&lt;t.length;++e){const r=t[e].trim();r.length&gt;0&amp;&amp;n.push(r)}return n}const ng={VBOBuildTime:0,VBOBuildString:null,openGLTexture:null,tris:null,imagemat:null,imagematinv:null,colorTexture:null,pwfTexture:null,labelOutlineThicknessTexture:null,labelOutlineOpacityTexture:null,lastHaveSeenDepthRequest:!1,haveSeenDepthRequest:!1,lastTextureComponents:0};const rg=Xt((function(e,t,n={}){Object.assign(t,ng,n),pn.extend(e,t,n),qd.implementReplaceShaderCoincidentOffset(e,t,n),qd.implementBuildShadersWithReplacements(e,t,n),t.tris=Sd.newInstance(),t.imagemat=x(new Float64Array(16)),t.imagematinv=x(new Float64Array(16)),t.projectionToWorld=x(new Float64Array(16)),t.idxToView=x(new Float64Array(16)),t.idxNormalMatrix=c(new Float64Array(9)),t.modelToView=x(new Float64Array(16)),t.projectionToView=x(new Float64Array(16)),Gt(e,t,[]),t.VBOBuildTime={},Vt(t.VBOBuildTime),function(e,t){function n(n){t.openGLTexture.releaseGraphicsResources(n),[t._colorTransferFunc,t._pwFunc,t._labelOutlineThicknessArray,t._labelOutlineOpacity].forEach((t=&gt;n.unregisterGraphicsResourceUser(t,e)))}t.classHierarchy.push(&quot;vtkOpenGLImageMapper&quot;),e.buildPass=r=&gt;{if(r){t.currentRenderPass=null,t.openGLImageSlice=e.getFirstAncestorOfType(&quot;vtkOpenGLImageSlice&quot;),t._openGLRenderer=e.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;);const r=t._openGLRenderWindow;t._openGLRenderWindow=t._openGLRenderer.getLastAncestorOfType(&quot;vtkOpenGLRenderWindow&quot;),r&amp;&amp;!r.isDeleted()&amp;&amp;r!==t._openGLRenderWindow&amp;&amp;n(r),t.context=t._openGLRenderWindow.getContext(),t.tris.setOpenGLRenderWindow(t._openGLRenderWindow);const o=t._openGLRenderer.getRenderable();t.openGLCamera=t._openGLRenderer.getViewNodeFor(o.getActiveCamera(),t.openGLCamera),t.renderable.isA(&quot;vtkImageMapper&quot;)&amp;&amp;t.renderable.getSliceAtFocalPoint()&amp;&amp;t.renderable.setSliceFromCamera(o.getActiveCamera())}},e.translucentPass=(n,r)=&gt;{n&amp;&amp;(t.currentRenderPass=r,e.render())},e.zBufferPass=n=&gt;{n&amp;&amp;(t.haveSeenDepthRequest=!0,t.renderDepth=!0,e.render(),t.renderDepth=!1)},e.opaqueZBufferPass=t=&gt;e.zBufferPass(t),e.opaquePass=t=&gt;{t&amp;&amp;e.render()},e.getCoincidentParameters=(e,n)=&gt;t.renderable.getResolveCoincidentTopology()==Pl.PolygonOffset?t.renderable.getCoincidentTopologyPolygonOffsetParameters():null,e.render=()=&gt;{const n=t.openGLImageSlice.getRenderable(),r=t._openGLRenderer.getRenderable();e.renderPiece(r,n)},e.getShaderTemplate=(e,t,n)=&gt;{e.Vertex=jd,e.Fragment=Xd,e.Geometry=&quot;&quot;},e.replaceShaderValues=(n,r,o)=&gt;{let a=n.Vertex,i=n.Fragment;a=vd.substitute(a,&quot;//VTK::Camera::Dec&quot;,[&quot;uniform mat4 MCPCMatrix;&quot;]).result,a=vd.substitute(a,&quot;//VTK::PositionVC::Impl&quot;,[&quot;  gl_Position = MCPCMatrix * vertexMC;&quot;]).result,a=vd.substitute(a,&quot;//VTK::TCoord::Impl&quot;,&quot;tcoordVCVSOutput = tcoordMC;&quot;).result,a=vd.substitute(a,&quot;//VTK::TCoord::Dec&quot;,&quot;attribute vec2 tcoordMC; varying vec2 tcoordVCVSOutput;&quot;).result;const s=t.openGLTexture.getComponents(),l=o.getProperty().getIndependentComponents();let c=[&quot;varying vec2 tcoordVCVSOutput;&quot;,&quot;uniform float cshift0;&quot;,&quot;uniform float cscale0;&quot;,&quot;uniform float pwfshift0;&quot;,&quot;uniform float pwfscale0;&quot;,&quot;uniform sampler2D texture1;&quot;,&quot;uniform sampler2D colorTexture1;&quot;,&quot;uniform sampler2D pwfTexture1;&quot;,&quot;uniform float opacity;&quot;];if(o.getProperty().getUseLabelOutline()&amp;&amp;(c=c.concat([&quot;uniform sampler2D labelOutlineTexture1;&quot;,&quot;uniform sampler2D labelOutlineOpacityTexture1;&quot;])),l){for(let e=1;e&lt;s;e++)c=c.concat([`uniform float cshift${e};`,`uniform float cscale${e};`,`uniform float pwfshift${e};`,`uniform float pwfscale${e};`]);switch(s){case 1:c=c.concat([&quot;uniform float mix0;&quot;,&quot;#define height0 0.5&quot;]);break;case 2:c=c.concat([&quot;uniform float mix0;&quot;,&quot;uniform float mix1;&quot;,&quot;#define height0 0.25&quot;,&quot;#define height1 0.75&quot;]);break;case 3:c=c.concat([&quot;uniform float mix0;&quot;,&quot;uniform float mix1;&quot;,&quot;uniform float mix2;&quot;,&quot;#define height0 0.17&quot;,&quot;#define height1 0.5&quot;,&quot;#define height2 0.83&quot;]);break;case 4:c=c.concat([&quot;uniform float mix0;&quot;,&quot;uniform float mix1;&quot;,&quot;uniform float mix2;&quot;,&quot;uniform float mix3;&quot;,&quot;#define height0 0.125&quot;,&quot;#define height1 0.375&quot;,&quot;#define height2 0.625&quot;,&quot;#define height3 0.875&quot;]);break;default:$f(&quot;Unsupported number of independent coordinates.&quot;)}}if(i=vd.substitute(i,&quot;//VTK::TCoord::Dec&quot;,c).result,!0===o.getProperty().getUseLabelOutline()&amp;&amp;(i=vd.substitute(i,&quot;//VTK::LabelOutline::Dec&quot;,[&quot;uniform float vpWidth;&quot;,&quot;uniform float vpHeight;&quot;,&quot;uniform float vpOffsetX;&quot;,&quot;uniform float vpOffsetY;&quot;,&quot;uniform mat4 PCWCMatrix;&quot;,&quot;uniform mat4 vWCtoIDX;&quot;,&quot;uniform ivec3 imageDimensions;&quot;,&quot;uniform int sliceAxis;&quot;]).result,i=vd.substitute(i,&quot;//VTK::ImageLabelOutlineOn&quot;,&quot;#define vtkImageLabelOutlineOn&quot;).result,i=vd.substitute(i,&quot;//VTK::LabelOutlineHelperFunction&quot;,[&quot;#ifdef vtkImageLabelOutlineOn&quot;,&quot;vec3 fragCoordToIndexSpace(vec4 fragCoord) {&quot;,&quot;  vec4 pcPos = vec4(&quot;,&quot;    (fragCoord.x / vpWidth - vpOffsetX - 0.5) * 2.0,&quot;,&quot;    (fragCoord.y / vpHeight - vpOffsetY - 0.5) * 2.0,&quot;,&quot;    (fragCoord.z - 0.5) * 2.0,&quot;,&quot;    1.0);&quot;,&quot;&quot;,&quot;  vec4 worldCoord = PCWCMatrix * pcPos;&quot;,&quot;  vec4 vertex = (worldCoord/worldCoord.w);&quot;,&quot;&quot;,&quot;  vec3 index = (vWCtoIDX * vertex).xyz;&quot;,&quot;&quot;,&quot;  // half voxel fix for labelmapOutline&quot;,&quot;  return (index + vec3(0.5)) / vec3(imageDimensions);&quot;,&quot;}&quot;,&quot;vec2 getSliceCoords(vec3 coord, int axis) {&quot;,&quot;  if (axis == 0) return coord.yz;&quot;,&quot;  if (axis == 1) return coord.xz;&quot;,&quot;  if (axis == 2) return coord.xy;&quot;,&quot;}&quot;,&quot;#endif&quot;]).result),l){const e=[&quot;r&quot;,&quot;g&quot;,&quot;b&quot;,&quot;a&quot;];let t=[&quot;vec4 tvalue = texture2D(texture1, tcoordVCVSOutput);&quot;];for(let n=0;n&lt;s;n++)t=t.concat([`vec3 tcolor${n} = mix${n} * texture2D(colorTexture1, vec2(tvalue.${e[n]} * cscale${n} + cshift${n}, height${n})).rgb;`,`float compWeight${n} = mix${n} * texture2D(pwfTexture1, vec2(tvalue.${e[n]} * pwfscale${n} + pwfshift${n}, height${n})).r;`]);switch(s){case 1:t=t.concat([&quot;gl_FragData[0] = vec4(tcolor0.rgb, opacity);&quot;]);break;case 2:t=t.concat([&quot;float weightSum = compWeight0 + compWeight1;&quot;,&quot;gl_FragData[0] = vec4(vec3((tcolor0.rgb * (compWeight0 / weightSum)) + (tcolor1.rgb * (compWeight1 / weightSum))), opacity);&quot;]);break;case 3:t=t.concat([&quot;float weightSum = compWeight0 + compWeight1 + compWeight2;&quot;,&quot;gl_FragData[0] = vec4(vec3((tcolor0.rgb * (compWeight0 / weightSum)) + (tcolor1.rgb * (compWeight1 / weightSum)) + (tcolor2.rgb * (compWeight2 / weightSum))), opacity);&quot;]);break;case 4:t=t.concat([&quot;float weightSum = compWeight0 + compWeight1 + compWeight2 + compWeight3;&quot;,&quot;gl_FragData[0] = vec4(vec3((tcolor0.rgb * (compWeight0 / weightSum)) + (tcolor1.rgb * (compWeight1 / weightSum)) + (tcolor2.rgb * (compWeight2 / weightSum)) + (tcolor3.rgb * (compWeight3 / weightSum))), opacity);&quot;]);break;default:$f(&quot;Unsupported number of independent coordinates.&quot;)}i=vd.substitute(i,&quot;//VTK::TCoord::Impl&quot;,t).result}else switch(s){case 1:i=vd.substitute(i,&quot;//VTK::TCoord::Impl&quot;,[...tg(&quot;\\n                #ifdef vtkImageLabelOutlineOn\\n                  vec3 centerPosIS = fragCoordToIndexSpace(gl_FragCoord);\\n                  float centerValue = texture2D(texture1, getSliceCoords(centerPosIS, sliceAxis)).r;\\n                  bool pixelOnBorder = false;\\n                  vec3 tColor = texture2D(colorTexture1, vec2(centerValue * cscale0 + cshift0, 0.5)).rgb;\\n                  float scalarOpacity = texture2D(pwfTexture1, vec2(centerValue * pwfscale0 + pwfshift0, 0.5)).r;\\n                  float opacityToUse = scalarOpacity * opacity;\\n                  int segmentIndex = int(centerValue * 255.0);\\n                  float textureCoordinate = float(segmentIndex - 1) / 1024.0;\\n                  float textureValue = texture2D(labelOutlineTexture1, vec2(textureCoordinate, 0.5)).r;\\n                  float outlineOpacity = texture2D(labelOutlineOpacityTexture1, vec2(textureCoordinate, 0.5)).r;\\n                  int actualThickness = int(textureValue * 255.0);\\n\\n                  if (segmentIndex == 0){\\n                    gl_FragData[0] = vec4(0.0, 0.0, 0.0, 0.0);\\n                    return;\\n                  }\\n\\n                  for (int i = -actualThickness; i &lt;= actualThickness; i++) {\\n                    for (int j = -actualThickness; j &lt;= actualThickness; j++) {\\n                      if (i == 0 &amp;&amp; j == 0) {\\n                        continue;\\n                      }\\n                      vec4 neighborPixelCoord = vec4(gl_FragCoord.x + float(i),\\n                        gl_FragCoord.y + float(j),\\n                        gl_FragCoord.z, gl_FragCoord.w);\\n                      vec3 neighborPosIS = fragCoordToIndexSpace(neighborPixelCoord);\\n                      float value = texture2D(texture1, getSliceCoords(neighborPosIS, sliceAxis)).r;\\n                      if (value != centerValue) {\\n                        pixelOnBorder = true;\\n                        break;\\n                      }\\n                    }\\n                    if (pixelOnBorder == true) {\\n                      break;\\n                    }\\n                  }\\n                  if (pixelOnBorder == true) {\\n                    gl_FragData[0] = vec4(tColor, outlineOpacity);\\n                  }\\n                  else {\\n                    gl_FragData[0] = vec4(tColor, opacityToUse);\\n                  }\\n                #else\\n                  float intensity = texture2D(texture1, tcoordVCVSOutput).r;\\n                  vec3 tcolor = texture2D(colorTexture1, vec2(intensity * cscale0 + cshift0, 0.5)).rgb;\\n                  float scalarOpacity = texture2D(pwfTexture1, vec2(intensity * pwfscale0 + pwfshift0, 0.5)).r;\\n                  gl_FragData[0] = vec4(tcolor, scalarOpacity * opacity);\\n                #endif\\n                &quot;)]).result;break;case 2:i=vd.substitute(i,&quot;//VTK::TCoord::Impl&quot;,[&quot;vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);&quot;,&quot;float intensity = tcolor.r*cscale0 + cshift0;&quot;,&quot;gl_FragData[0] = vec4(texture2D(colorTexture1, vec2(intensity, 0.5)).rgb, pwfscale0*tcolor.g + pwfshift0);&quot;]).result;break;case 3:i=vd.substitute(i,&quot;//VTK::TCoord::Impl&quot;,[&quot;vec4 tcolor = cscale0*texture2D(texture1, tcoordVCVSOutput.st) + cshift0;&quot;,&quot;gl_FragData[0] = vec4(texture2D(colorTexture1, vec2(tcolor.r,0.5)).r,&quot;,&quot;  texture2D(colorTexture1, vec2(tcolor.g,0.5)).r,&quot;,&quot;  texture2D(colorTexture1, vec2(tcolor.b,0.5)).r, opacity);&quot;]).result;break;default:i=vd.substitute(i,&quot;//VTK::TCoord::Impl&quot;,[&quot;vec4 tcolor = cscale0*texture2D(texture1, tcoordVCVSOutput.st) + cshift0;&quot;,&quot;gl_FragData[0] = vec4(texture2D(colorTexture1, vec2(tcolor.r,0.5)).r,&quot;,&quot;  texture2D(colorTexture1, vec2(tcolor.g,0.5)).r,&quot;,&quot;  texture2D(colorTexture1, vec2(tcolor.b,0.5)).r, tcolor.a);&quot;]).result}t.haveSeenDepthRequest&amp;&amp;(i=vd.substitute(i,&quot;//VTK::ZBuffer::Dec&quot;,&quot;uniform int depthRequest;&quot;).result,i=vd.substitute(i,&quot;//VTK::ZBuffer::Impl&quot;,[&quot;if (depthRequest == 1) {&quot;,&quot;float iz = floor(gl_FragCoord.z*65535.0 + 0.1);&quot;,&quot;float rf = floor(iz/256.0)/255.0;&quot;,&quot;float gf = mod(iz,256.0)/255.0;&quot;,&quot;gl_FragData[0] = vec4(rf, gf, 0.0, 1.0); }&quot;]).result),n.Vertex=a,n.Fragment=i,e.replaceShaderClip(n,r,o),e.replaceShaderCoincidentOffset(n,r,o)},e.replaceShaderClip=(e,n,r)=&gt;{let o=e.Vertex,a=e.Fragment;if(t.renderable.getNumberOfClippingPlanes()){let e=t.renderable.getNumberOfClippingPlanes();e&gt;6&amp;&amp;(Tt(&quot;OpenGL has a limit of 6 clipping planes&quot;),e=6),o=vd.substitute(o,&quot;//VTK::Clip::Dec&quot;,[&quot;uniform int numClipPlanes;&quot;,&quot;uniform vec4 clipPlanes[6];&quot;,&quot;varying float clipDistancesVSOutput[6];&quot;]).result,o=vd.substitute(o,&quot;//VTK::Clip::Impl&quot;,[&quot;for (int planeNum = 0; planeNum &lt; 6; planeNum++)&quot;,&quot;    {&quot;,&quot;    if (planeNum &gt;= numClipPlanes)&quot;,&quot;        {&quot;,&quot;        break;&quot;,&quot;        }&quot;,&quot;    clipDistancesVSOutput[planeNum] = dot(clipPlanes[planeNum], vertexMC);&quot;,&quot;    }&quot;]).result,a=vd.substitute(a,&quot;//VTK::Clip::Dec&quot;,[&quot;uniform int numClipPlanes;&quot;,&quot;varying float clipDistancesVSOutput[6];&quot;]).result,a=vd.substitute(a,&quot;//VTK::Clip::Impl&quot;,[&quot;for (int planeNum = 0; planeNum &lt; 6; planeNum++)&quot;,&quot;    {&quot;,&quot;    if (planeNum &gt;= numClipPlanes)&quot;,&quot;        {&quot;,&quot;        break;&quot;,&quot;        }&quot;,&quot;    if (clipDistancesVSOutput[planeNum] &lt; 0.0) discard;&quot;,&quot;    }&quot;]).result}e.Vertex=o,e.Fragment=a},e.getNeedToRebuildShaders=(e,n,r)=&gt;{const o=t.openGLTexture.getComponents(),a=r.getProperty().getIndependentComponents();let i=!1;return(!t.currentRenderPass&amp;&amp;t.lastRenderPassShaderReplacement||t.currentRenderPass&amp;&amp;t.currentRenderPass.getShaderReplacement()!==t.lastRenderPassShaderReplacement)&amp;&amp;(i=!0),!!(i||t.lastHaveSeenDepthRequest!==t.haveSeenDepthRequest||0===e.getProgram()?.getHandle()||e.getShaderSourceTime().getMTime()&lt;t.renderable.getMTime()||e.getShaderSourceTime().getMTime()&lt;t.currentInput.getMTime()||e.getShaderSourceTime().getMTime()&lt;r.getProperty().getMTime()||t.lastTextureComponents!==o||t.lastIndependentComponents!==a)&amp;&amp;(t.lastHaveSeenDepthRequest=t.haveSeenDepthRequest,t.lastTextureComponents=o,t.lastIndependentComponents=a,!0)},e.updateShaders=(n,r,o)=&gt;{if(t.lastBoundBO=n,e.getNeedToRebuildShaders(n,r,o)){const a={Vertex:null,Fragment:null,Geometry:null};e.buildShaders(a,r,o);const i=t._openGLRenderWindow.getShaderCache().readyShaderProgramArray(a.Vertex,a.Fragment,a.Geometry);i!==n.getProgram()&amp;&amp;(n.setProgram(i),n.getVAO().releaseGraphicsResources()),n.getShaderSourceTime().modified()}else t._openGLRenderWindow.getShaderCache().readyShaderProgram(n.getProgram());n.getVAO().bind(),e.setMapperShaderParameters(n,r,o),e.setCameraShaderParameters(n,r,o),e.setPropertyShaderParameters(n,r,o)},e.setMapperShaderParameters=(n,r,o)=&gt;{n.getCABO().getElementCount()&amp;&amp;(t.VBOBuildTime&gt;n.getAttributeUpdateTime().getMTime()||n.getShaderSourceTime().getMTime()&gt;n.getAttributeUpdateTime().getMTime())&amp;&amp;(n.getProgram().isAttributeUsed(&quot;vertexMC&quot;)&amp;&amp;(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),&quot;vertexMC&quot;,n.getCABO().getVertexOffset(),n.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE)||$f(&quot;Error setting vertexMC in shader VAO.&quot;)),n.getProgram().isAttributeUsed(&quot;tcoordMC&quot;)&amp;&amp;n.getCABO().getTCoordOffset()&amp;&amp;(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),&quot;tcoordMC&quot;,n.getCABO().getTCoordOffset(),n.getCABO().getStride(),t.context.FLOAT,n.getCABO().getTCoordComponents(),t.context.FALSE)||$f(&quot;Error setting tcoordMC in shader VAO.&quot;)),n.getAttributeUpdateTime().modified());const a=t.openGLTexture.getTextureUnit();n.getProgram().setUniformi(&quot;texture1&quot;,a);const i=t.openGLTexture.getComponents(),s=o.getProperty().getIndependentComponents();if(s)for(let e=0;e&lt;i;e++)n.getProgram().setUniformf(`mix${e}`,o.getProperty().getComponentWeight(e));const l=t.openGLTexture.getShiftAndScale();for(let e=0;e&lt;i;e++){let t=o.getProperty().getColorWindow(),r=o.getProperty().getColorLevel();const a=s?e:0,i=o.getProperty().getRGBTransferFunction(a);if(i&amp;&amp;o.getProperty().getUseLookupTableScalarRange()){const e=i.getRange();t=e[1]-e[0],r=.5*(e[1]+e[0])}const c=l.scale/t,u=(l.shift-r)/t+.5;n.getProgram().setUniformf(`cshift${e}`,u),n.getProgram().setUniformf(`cscale${e}`,c)}for(let e=0;e&lt;i;e++){let t=1,r=0;const a=s?e:0,i=o.getProperty().getPiecewiseFunction(a);if(i){const e=i.getRange(),n=e[1]-e[0],o=.5*(e[0]+e[1]);t=l.scale/n,r=(l.shift-o)/n+.5}n.getProgram().setUniformf(`pwfshift${e}`,r),n.getProgram().setUniformf(`pwfscale${e}`,t)}if(t.haveSeenDepthRequest&amp;&amp;n.getProgram().setUniformi(&quot;depthRequest&quot;,t.renderDepth?1:0),n.getProgram().isUniformUsed(&quot;coffset&quot;)){const t=e.getCoincidentParameters(r,o);n.getProgram().setUniformf(&quot;coffset&quot;,t.offset),n.getProgram().isUniformUsed(&quot;cfactor&quot;)&amp;&amp;n.getProgram().setUniformf(&quot;cfactor&quot;,t.factor)}const c=t.colorTexture.getTextureUnit();n.getProgram().setUniformi(&quot;colorTexture1&quot;,c);const u=t.pwfTexture.getTextureUnit();if(n.getProgram().setUniformi(&quot;pwfTexture1&quot;,u),o.getProperty().getUseLabelOutline()){const e=t.labelOutlineThicknessTexture.getTextureUnit();n.getProgram().setUniformi(&quot;labelOutlineTexture1&quot;,e);const r=t.labelOutlineOpacityTexture.getTextureUnit();n.getProgram().setUniformi(&quot;labelOutlineOpacityTexture1&quot;,r)}if(t.renderable.getNumberOfClippingPlanes()){let e=t.renderable.getNumberOfClippingPlanes();e&gt;6&amp;&amp;(Tt(&quot;OpenGL has a limit of 6 clipping planes&quot;),e=6);const r=n.getCABO().getCoordShiftAndScaleEnabled()?n.getCABO().getInverseShiftAndScaleMatrix():null,a=r?T(t.imagematinv,o.getMatrix()):o.getMatrix();r&amp;&amp;(y(a,a),A(a,a,r),y(a,a)),y(t.imagemat,t.currentInput.getIndexToWorld()),A(t.imagematinv,a,t.imagemat);const i=[];for(let n=0;n&lt;e;n++){const e=[];t.renderable.getClippingPlaneInDataCoords(t.imagematinv,n,e);for(let t=0;t&lt;4;t++)i.push(e[t])}n.getProgram().setUniformi(&quot;numClipPlanes&quot;,e),n.getProgram().setUniform4fv(&quot;clipPlanes&quot;,i)}},e.setCameraShaderParameters=(n,r,o)=&gt;{const a=n.getProgram(),i=t.openGLImageSlice.getKeyMatrices(),s=t.currentInput,l=s.getIndexToWorld();A(t.imagemat,i.mcwc,l);const c=t.openGLCamera.getKeyMatrices(r);if(A(t.imagemat,c.wcpc,t.imagemat),n.getCABO().getCoordShiftAndScaleEnabled()){const e=n.getCABO().getInverseShiftAndScaleMatrix();A(t.imagemat,t.imagemat,e)}if(a.setUniformMatrix(&quot;MCPCMatrix&quot;,t.imagemat),!0===o.getProperty().getUseLabelOutline()){const n=s.getWorldToIndex(),o=s.getDimensions();let i=t.renderable.getClosestIJKAxis().ijkMode;i===eg.NONE&amp;&amp;(i=eg.K),a.setUniform3i(&quot;imageDimensions&quot;,o[0],o[1],o[2]),a.setUniformi(&quot;sliceAxis&quot;,i),a.setUniformMatrix(&quot;vWCtoIDX&quot;,n);const l=t.openGLCamera.getKeyMatrices(r);b(t.projectionToWorld,l.wcpc),t.openGLCamera.getKeyMatrices(r),a.setUniformMatrix(&quot;PCWCMatrix&quot;,t.projectionToWorld);const c=e.getRenderTargetSize();a.setUniformf(&quot;vpWidth&quot;,c[0]),a.setUniformf(&quot;vpHeight&quot;,c[1]);const u=e.getRenderTargetOffset();a.setUniformf(&quot;vpOffsetX&quot;,u[0]/c[0]),a.setUniformf(&quot;vpOffsetY&quot;,u[1]/c[1])}},e.setPropertyShaderParameters=(e,t,n)=&gt;{const r=e.getProgram(),o=n.getProperty().getOpacity();r.setUniformf(&quot;opacity&quot;,o)},e.renderPieceStart=(n,r)=&gt;{e.updateBufferObjects(n,r),t.lastBoundBO=null},e.renderPieceDraw=(n,r)=&gt;{const o=t.context;t.openGLTexture.activate(),t.colorTexture.activate(),r.getProperty().getUseLabelOutline()&amp;&amp;(t.labelOutlineThicknessTexture.activate(),t.labelOutlineOpacityTexture.activate()),t.pwfTexture.activate(),t.tris.getCABO().getElementCount()&amp;&amp;(e.updateShaders(t.tris,n,r),o.drawArrays(o.TRIANGLES,0,t.tris.getCABO().getElementCount()),t.tris.getVAO().release()),t.openGLTexture.deactivate(),t.colorTexture.deactivate(),r.getProperty().getUseLabelOutline()&amp;&amp;(t.labelOutlineThicknessTexture.deactivate(),t.labelOutlineOpacityTexture.deactivate()),t.pwfTexture.deactivate()},e.renderPieceFinish=(e,t)=&gt;{},e.renderPiece=(n,r)=&gt;{e.invokeEvent({type:&quot;StartEvent&quot;}),t.renderable.update(),t.currentInput=t.renderable.getCurrentImage(),e.invokeEvent({type:&quot;EndEvent&quot;}),t.currentInput?(e.renderPieceStart(n,r),e.renderPieceDraw(n,r),e.renderPieceFinish(n,r)):$f(&quot;No input!&quot;)},e.updateBufferObjects=(t,n)=&gt;{e.getNeedToRebuildBufferObjects(t,n)&amp;&amp;e.buildBufferObjects(t,n)},e.getNeedToRebuildBufferObjects=(n,r)=&gt;t.VBOBuildTime.getMTime()&lt;e.getMTime()||t.VBOBuildTime.getMTime()&lt;r.getMTime()||t.VBOBuildTime.getMTime()&lt;t.renderable.getMTime()||t.VBOBuildTime.getMTime()&lt;r.getProperty().getMTime()||t.VBOBuildTime.getMTime()&lt;t.currentInput.getMTime()||!t.openGLTexture?.getHandle()||!t.colorTexture?.getHandle()||r.getProperty().getUseLabelOutline()&amp;&amp;(!t.labelOutlineThicknessTexture?.getHandle()||!t.labelOutlineOpacityTexture?.getHandle())||!t.pwfTexture?.getHandle(),e.buildBufferObjects=(n,r)=&gt;{const o=t.currentInput;if(!o)return;const a=o.getPointData()&amp;&amp;o.getPointData().getScalars();if(!a)return;const i=a.getDataType(),s=a.getNumberOfComponents(),l=r.getProperty(),c=l.getInterpolationType(),u=l.getIndependentComponents(),d=u?s:1,p=u?2*d:1,f=[];for(let e=0;e&lt;d;++e)f.push(l.getRGBTransferFunction(e));const g=zf(f,u,d),m=l.getRGBTransferFunction(),h=t._openGLRenderWindow.getGraphicsResourceForObject(m);if(h?.oglObject?.getHandle()&amp;&amp;h?.hash===g)t.colorTexture=h.oglObject;else{t.colorTexture=Hd.newInstance({resizable:!0}),t.colorTexture.setOpenGLRenderWindow(t._openGLRenderWindow);let n=t.renderable.getColorTextureWidth();n&lt;=0&amp;&amp;(n=t.context.getParameter(t.context.MAX_TEXTURE_SIZE));const r=new Uint8ClampedArray(n*p*3);if(c===Hf.NEAREST?(t.colorTexture.setMinificationFilter(wd.NEAREST),t.colorTexture.setMagnificationFilter(wd.NEAREST)):(t.colorTexture.setMinificationFilter(wd.LINEAR),t.colorTexture.setMagnificationFilter(wd.LINEAR)),m){const e=new Float32Array(3*n);for(let t=0;t&lt;d;t++){const o=l.getRGBTransferFunction(t),a=o.getRange();if(o.getTable(a[0],a[1],n,e,1),u)for(let o=0;o&lt;3*n;o++)r[t*n*6+o]=255*e[o],r[t*n*6+o+3*n]=255*e[o];else for(let o=0;o&lt;3*n;o++)r[t*n*6+o]=255*e[o]}t.colorTexture.resetFormatAndType(),t.colorTexture.create2DFromRaw({width:n,height:p,numComps:3,dataType:ms.UNSIGNED_CHAR,data:r})}else{for(let e=0;e&lt;3*n;++e)r[e]=255*e/(3*(n-1)),r[e+1]=255*e/(3*(n-1)),r[e+2]=255*e/(3*(n-1));t.colorTexture.create2DFromRaw({width:n,height:1,numComps:3,dataType:ms.UNSIGNED_CHAR,data:r})}m&amp;&amp;(t._openGLRenderWindow.setGraphicsResourceForObject(m,t.colorTexture,g),m!==t._colorTransferFunc&amp;&amp;(t._openGLRenderWindow.registerGraphicsResourceUser(m,e),t._openGLRenderWindow.unregisterGraphicsResourceUser(t._colorTransferFunc,e)),t._colorTransferFunc=m)}const v=[];for(let e=0;e&lt;d;++e)v.push(l.getPiecewiseFunction(e));const T=zf(v,u,d),x=l.getPiecewiseFunction(),y=t._openGLRenderWindow.getGraphicsResourceForObject(x);if(y?.oglObject?.getHandle()&amp;&amp;y?.hash===T)t.pwfTexture=y.oglObject;else{let n=t.renderable.getOpacityTextureWidth();n&lt;=0&amp;&amp;(n=t.context.getParameter(t.context.MAX_TEXTURE_SIZE));const r=n*p,o=new Uint8ClampedArray(r);if(t.pwfTexture=Hd.newInstance({resizable:!0}),t.pwfTexture.setOpenGLRenderWindow(t._openGLRenderWindow),c===Hf.NEAREST?(t.pwfTexture.setMinificationFilter(wd.NEAREST),t.pwfTexture.setMagnificationFilter(wd.NEAREST)):(t.pwfTexture.setMinificationFilter(wd.LINEAR),t.pwfTexture.setMagnificationFilter(wd.LINEAR)),x){const e=new Float32Array(r),o=new Float32Array(n);for(let t=0;t&lt;d;++t){const r=l.getPiecewiseFunction(t);if(null===r)e.fill(1);else{const a=r.getRange();if(r.getTable(a[0],a[1],n,o,1),u)for(let r=0;r&lt;n;r++)e[t*n*2+r]=o[r],e[t*n*2+r+n]=o[r];else for(let r=0;r&lt;n;r++)e[t*n*2+r]=o[r]}}t.pwfTexture.resetFormatAndType(),t.pwfTexture.create2DFromRaw({width:n,height:p,numComps:1,dataType:ms.FLOAT,data:e})}else o.fill(255),t.pwfTexture.create2DFromRaw({width:n,height:1,numComps:1,dataType:ms.UNSIGNED_CHAR,data:o});x&amp;&amp;(t._openGLRenderWindow.setGraphicsResourceForObject(x,t.pwfTexture,T),x!==t._pwFunc&amp;&amp;(t._openGLRenderWindow.registerGraphicsResourceUser(x,e),t._openGLRenderWindow.unregisterGraphicsResourceUser(t._pwFunc,e)),t._pwFunc=x)}r.getProperty().getUseLabelOutline()&amp;&amp;(e.updatelabelOutlineThicknessTexture(r),e.updateLabelOutlineOpacityTexture(r));const{ijkMode:b}=t.renderable.getClosestIJKAxis();let A=t.renderable.getSlice();b!==t.renderable.getSlicingMode()&amp;&amp;(A=t.renderable.getSliceAtPosition(A));const C=t.renderable.isA(&quot;vtkImageArrayMapper&quot;)?t.renderable.getSubSlice():Math.round(A),S=o.getExtent();let P;b===eg.I&amp;&amp;(P=C-S[0]),b===eg.J&amp;&amp;(P=C-S[2]),b!==eg.K&amp;&amp;b!==eg.NONE||(P=C-S[4]);const w=`${A}A${o.getMTime()}A${a.getMTime()}B${e.getMTime()}C${t.renderable.getSlicingMode()}D${r.getProperty().getInterpolationType()}`;if(t.VBOBuildString!==w){const e=o.getDimensions();t.openGLTexture||(t.openGLTexture=Hd.newInstance({resizable:!0})),t.openGLTexture.setOpenGLRenderWindow(t._openGLRenderWindow),t.openGLTexture.setOglNorm16Ext(t.context.getExtension(&quot;EXT_texture_norm16&quot;)),c===Hf.NEAREST?(new Set([1,3,4]).has(s)&amp;&amp;i===ms.UNSIGNED_CHAR&amp;&amp;!u?(t.openGLTexture.setGenerateMipmap(!0),t.openGLTexture.setMinificationFilter(wd.NEAREST)):t.openGLTexture.setMinificationFilter(wd.NEAREST),t.openGLTexture.setMagnificationFilter(wd.NEAREST)):(4!==s||i!==ms.UNSIGNED_CHAR||u?t.openGLTexture.setMinificationFilter(wd.LINEAR):(t.openGLTexture.setGenerateMipmap(!0),t.openGLTexture.setMinificationFilter(wd.LINEAR_MIPMAP_LINEAR)),t.openGLTexture.setMagnificationFilter(wd.LINEAR)),t.openGLTexture.setWrapS(Pd.CLAMP_TO_EDGE),t.openGLTexture.setWrapT(Pd.CLAMP_TO_EDGE);const n=e[0]*e[1]*s,r=new Float32Array(12),l=new Float32Array(8);for(let e=0;e&lt;4;e++)l[2*e]=e%2?1:0,l[2*e+1]=e&gt;1?1:0;const d=[eg.X,eg.Y,eg.Z].includes(t.renderable.getSlicingMode())?A:C,p=o.getSpatialExtent(),f=a.getData();let g=null;if(b===eg.I){g=new f.constructor(e[2]*e[1]*s);let t=0;for(let n=0;n&lt;e[2];n++)for(let r=0;r&lt;e[1];r++){let o=(P+r*e[0]+n*e[0]*e[1])*s;t=(n*e[1]+r)*s;const a=o+s;for(;o&lt;a;)g[t++]=f[o++]}e[0]=e[1],e[1]=e[2],r[0]=d,r[1]=p[2],r[2]=p[4],r[3]=d,r[4]=p[3],r[5]=p[4],r[6]=d,r[7]=p[2],r[8]=p[5],r[9]=d,r[10]=p[3],r[11]=p[5]}else if(b===eg.J){g=new f.constructor(e[2]*e[0]*s);let t=0;for(let n=0;n&lt;e[2];n++)for(let r=0;r&lt;e[0];r++){let o=(r+P*e[0]+n*e[0]*e[1])*s;t=(n*e[0]+r)*s;const a=o+s;for(;o&lt;a;)g[t++]=f[o++]}e[1]=e[2],r[0]=p[0],r[1]=d,r[2]=p[4],r[3]=p[1],r[4]=d,r[5]=p[4],r[6]=p[0],r[7]=d,r[8]=p[5],r[9]=p[1],r[10]=d,r[11]=p[5]}else b===eg.K||b===eg.NONE?(g=f.subarray(P*n,(P+1)*n),r[0]=p[0],r[1]=p[2],r[2]=d,r[3]=p[1],r[4]=p[2],r[5]=d,r[6]=p[0],r[7]=p[3],r[8]=d,r[9]=p[1],r[10]=p[3],r[11]=d):$f(&quot;Reformat slicing not yet supported.&quot;);const m=a.getRanges();t.openGLTexture.resetFormatAndType(),t.openGLTexture.create2DFilterableFromRaw({width:e[0],height:e[1],numComps:s,dataType:a.getDataType(),data:g,preferSizeOverAccuracy:!!t.renderable.getPreferSizeOverAccuracy?.(),ranges:m}),t.openGLTexture.activate(),t.openGLTexture.sendParameters(),t.openGLTexture.deactivate();const h=Is.newInstance({numberOfComponents:3,values:r});h.setName(&quot;points&quot;);const v=Is.newInstance({numberOfComponents:2,values:l});v.setName(&quot;tcoords&quot;);const T=new Uint16Array(8);T[0]=3,T[1]=0,T[2]=1,T[3]=3,T[4]=3,T[5]=0,T[6]=3,T[7]=2;const x=Is.newInstance({numberOfComponents:1,values:T});t.tris.getCABO().createVBO(x,&quot;polys&quot;,rs.SURFACE,{points:h,tcoords:v,cellOffset:0}),t.VBOBuildTime.modified(),t.VBOBuildString=w}},e.updateLabelOutlineOpacityTexture=n=&gt;{let r=n.getProperty().getLabelOutlineOpacity();&quot;number&quot;==typeof r&amp;&amp;(r=t._cachedLabelOutlineOpacityObj?.[0]===r?t._cachedLabelOutlineOpacityObj:[r],t._cachedLabelOutlineOpacityObj=r);const o=t._openGLRenderWindow.getGraphicsResourceForObject(r),a=`${r.join(&quot;-&quot;)}`;if(o?.oglObject?.getHandle()&amp;&amp;o?.hash===a)t.labelOutlineOpacityTexture=o.oglObject;else{let n=t.renderable.getLabelOutlineTextureWidth();n&lt;=0&amp;&amp;(n=t.context.getParameter(t.context.MAX_TEXTURE_SIZE));const o=1,i=new Float32Array(n*o);for(let e=0;e&lt;n;++e)i[e]=r[e]??r[0];t.labelOutlineOpacityTexture=Hd.newInstance({resizable:!1}),t.labelOutlineOpacityTexture.setOpenGLRenderWindow(t._openGLRenderWindow),t.labelOutlineOpacityTexture.resetFormatAndType(),t.labelOutlineOpacityTexture.setMinificationFilter(wd.NEAREST),t.labelOutlineOpacityTexture.setMagnificationFilter(wd.NEAREST),t.labelOutlineOpacityTexture.create2DFromRaw({width:n,height:o,numComps:1,dataType:ms.FLOAT,data:i}),r&amp;&amp;(t._openGLRenderWindow.setGraphicsResourceForObject(r,t.labelOutlineOpacityTexture,a),r!==t._labelOutlineOpacity&amp;&amp;(t._openGLRenderWindow.registerGraphicsResourceUser(r,e),t._openGLRenderWindow.unregisterGraphicsResourceUser(t._labelOutlineOpacity,e)),t._labelOutlineOpacity=r)}},e.updatelabelOutlineThicknessTexture=n=&gt;{const r=n.getProperty().getLabelOutlineThicknessByReference(),o=t._openGLRenderWindow.getGraphicsResourceForObject(r),a=`${r.join(&quot;-&quot;)}`;if(o?.oglObject?.getHandle()&amp;&amp;o?.hash===a)t.labelOutlineThicknessTexture=o.oglObject;else{let n=t.renderable.getLabelOutlineTextureWidth();n&lt;=0&amp;&amp;(n=t.context.getParameter(t.context.MAX_TEXTURE_SIZE));const o=1,i=new Uint8Array(n*o);for(let e=0;e&lt;n;++e){const t=void 0!==r[e]?r[e]:r[0];i[e]=t}t.labelOutlineThicknessTexture=Hd.newInstance({resizable:!1}),t.labelOutlineThicknessTexture.setOpenGLRenderWindow(t._openGLRenderWindow),t.labelOutlineThicknessTexture.resetFormatAndType(),t.labelOutlineThicknessTexture.setMinificationFilter(wd.NEAREST),t.labelOutlineThicknessTexture.setMagnificationFilter(wd.NEAREST),t.labelOutlineThicknessTexture.create2DFromRaw({width:n,height:o,numComps:1,dataType:ms.UNSIGNED_CHAR,data:i}),r&amp;&amp;(t._openGLRenderWindow.setGraphicsResourceForObject(r,t.labelOutlineThicknessTexture,a),r!==t._labelOutlineThicknessArray&amp;&amp;(t._openGLRenderWindow.registerGraphicsResourceUser(r,e),t._openGLRenderWindow.unregisterGraphicsResourceUser(t._labelOutlineThicknessArray,e)),t._labelOutlineThicknessArray=r)}},e.getRenderTargetSize=()=&gt;{if(t._useSmallViewport)return[t._smallViewportWidth,t._smallViewportHeight];const{usize:e,vsize:n}=t._openGLRenderer.getTiledSizeAndOrigin();return[e,n]},e.getRenderTargetOffset=()=&gt;{const{lowerLeftU:e,lowerLeftV:n}=t._openGLRenderer.getTiledSizeAndOrigin();return[e,n]},e.delete=qt((()=&gt;{t._openGLRenderWindow&amp;&amp;n(t._openGLRenderWindow)}),e.delete)}(e,t)}),&quot;vtkOpenGLImageMapper&quot;);vn(&quot;vtkAbstractImageMapper&quot;,rg);const og=0,ag=1,ig=2,{vtkErrorMacro:sg}=sn;const lg={currentRenderPass:null,volumeTexture:null,colorTexture:null,pwfTexture:null,tris:null,lastHaveSeenDepthRequest:!1,haveSeenDepthRequest:!1,lastTextureComponents:0,lastIndependentComponents:0,imagemat:null,imagematinv:null};const cg=sn.newInstance((function(e,t,n={}){Object.assign(t,lg,n),pn.extend(e,t,n),qd.implementReplaceShaderCoincidentOffset(e,t,n),sn.algo(e,t,2,0),t.tris=Sd.newInstance(),t.volumeTexture=null,t.colorTexture=null,t.pwfTexture=null,t.imagemat=x(new Float64Array(16)),t.imagematinv=x(new Float64Array(16)),t.VBOBuildTime={},sn.obj(t.VBOBuildTime,{mtime:0}),function(e,t){function n(n){[t._scalars,t._colorTransferFunc,t._pwFunc].forEach((t=&gt;n.unregisterGraphicsResourceUser(t,e)))}t.classHierarchy.push(&quot;vtkOpenGLImageCPRMapper&quot;),e.buildPass=r=&gt;{if(r){t.currentRenderPass=null,t.openGLImageSlice=e.getFirstAncestorOfType(&quot;vtkOpenGLImageSlice&quot;),t._openGLRenderer=e.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;);const r=t._openGLRenderWindow;t._openGLRenderWindow=t._openGLRenderer.getLastAncestorOfType(&quot;vtkOpenGLRenderWindow&quot;),r&amp;&amp;!r.isDeleted()&amp;&amp;r!==t._openGLRenderWindow&amp;&amp;n(r),t.context=t._openGLRenderWindow.getContext(),t.openGLCamera=t._openGLRenderer.getViewNodeFor(t._openGLRenderer.getRenderable().getActiveCamera(),t.openGLCamera),t.tris.setOpenGLRenderWindow(t._openGLRenderWindow)}},e.opaquePass=(n,r)=&gt;{n&amp;&amp;(t.currentRenderPass=r,e.render())},e.opaqueZBufferPass=n=&gt;{n&amp;&amp;(t.haveSeenDepthRequest=!0,t.renderDepth=!0,e.render(),t.renderDepth=!1)},e.getCoincidentParameters=(e,n)=&gt;t.renderable.getResolveCoincidentTopology()===Pl.PolygonOffset?t.renderable.getCoincidentTopologyPolygonOffsetParameters():null,e.render=()=&gt;{const n=t.openGLImageSlice.getRenderable(),r=t._openGLRenderer.getRenderable();e.renderPiece(r,n)},e.renderPiece=(n,r)=&gt;{e.invokeEvent({type:&quot;StartEvent&quot;}),t.renderable.update(),e.invokeEvent({type:&quot;EndEvent&quot;}),t.renderable.preRenderCheck()&amp;&amp;(t.currentImageDataInput=t.renderable.getInputData(0),t.currentCenterlineInput=t.renderable.getOrientedCenterline(),e.renderPieceStart(n,r),e.renderPieceDraw(n,r),e.renderPieceFinish(n,r))},e.renderPieceStart=(t,n)=&gt;{e.updateBufferObjects(t,n)},e.renderPieceDraw=(n,r)=&gt;{const o=t.context;t.volumeTexture.activate(),t.colorTexture.activate(),t.pwfTexture.activate(),t.tris.getCABO().getElementCount()&amp;&amp;(e.updateShaders(t.tris,n,r),o.drawArrays(o.TRIANGLES,0,t.tris.getCABO().getElementCount()),t.tris.getVAO().release()),t.volumeTexture.deactivate(),t.colorTexture.deactivate(),t.pwfTexture.deactivate()},e.renderPieceFinish=(e,t)=&gt;{},e.updateBufferObjects=(n,r)=&gt;{e.getNeedToRebuildBufferObjects(n,r)&amp;&amp;e.buildBufferObjects(n,r),r.getProperty().getInterpolationType()===Hf.NEAREST?(t.volumeTexture.setMinificationFilter(wd.NEAREST),t.volumeTexture.setMagnificationFilter(wd.NEAREST),t.colorTexture.setMinificationFilter(wd.NEAREST),t.colorTexture.setMagnificationFilter(wd.NEAREST),t.pwfTexture.setMinificationFilter(wd.NEAREST),t.pwfTexture.setMagnificationFilter(wd.NEAREST)):(t.volumeTexture.setMinificationFilter(wd.LINEAR),t.volumeTexture.setMagnificationFilter(wd.LINEAR),t.colorTexture.setMinificationFilter(wd.LINEAR),t.colorTexture.setMagnificationFilter(wd.LINEAR),t.pwfTexture.setMinificationFilter(wd.LINEAR),t.pwfTexture.setMagnificationFilter(wd.LINEAR))},e.getNeedToRebuildBufferObjects=(n,r)=&gt;{const o=t.VBOBuildTime.getMTime();return o&lt;e.getMTime()||o&lt;t.renderable.getMTime()||o&lt;r.getMTime()||o&lt;t.currentImageDataInput.getMTime()||o&lt;t.currentCenterlineInput.getMTime()||!t.volumeTexture?.getHandle()},e.buildBufferObjects=(n,r)=&gt;{const o=t.currentImageDataInput,a=t.currentCenterlineInput,i=r.getProperty(),s=o?.getPointData()?.getScalars();if(!s)return;const l=t._openGLRenderWindow.getGraphicsResourceForObject(s),c=Wf(0,s),u=!l?.oglObject?.getHandle()||l?.hash!==c,d=i.getUpdatedExtents(),p=!!d.length;if(u){t.volumeTexture=Hd.newInstance(),t.volumeTexture.setOpenGLRenderWindow(t._openGLRenderWindow);const n=o.getDimensions();t.volumeTexture.setOglNorm16Ext(t.context.getExtension(&quot;EXT_texture_norm16&quot;)),t.volumeTexture.resetFormatAndType(),t.volumeTexture.create3DFilterableFromDataArray({width:n[0],height:n[1],depth:n[2],dataArray:s,preferSizeOverAccuracy:t.renderable.getPreferSizeOverAccuracy()}),t._openGLRenderWindow.setGraphicsResourceForObject(s,t.volumeTexture,c),s!==t._scalars&amp;&amp;(t._openGLRenderWindow.registerGraphicsResourceUser(s,e),t._openGLRenderWindow.unregisterGraphicsResourceUser(t._scalars,e)),t._scalars=s}else t.volumeTexture=l.oglObject;if(p){i.setUpdatedExtents([]);const e=o.getDimensions();t.volumeTexture.create3DFilterableFromDataArray({width:e[0],height:e[1],depth:e[2],dataArray:s,updatedExtents:d})}const f=s.getNumberOfComponents(),g=r.getProperty(),m=g.getIndependentComponents(),h=m?f:1,v=m?2*h:1,T=[];for(let e=0;e&lt;h;++e)T.push(g.getRGBTransferFunction(e));const x=zf(T,m,h),y=g.getRGBTransferFunction(),b=t._openGLRenderWindow.getGraphicsResourceForObject(y);if(b?.oglObject?.getHandle()&amp;&amp;b?.hash===x)t.colorTexture=b.oglObject;else{let n=t.renderable.getColorTextureWidth();n&lt;=0&amp;&amp;(n=t.context.getParameter(t.context.MAX_TEXTURE_SIZE));const r=new Uint8ClampedArray(n*v*3);if(t.colorTexture=Hd.newInstance(),t.colorTexture.setOpenGLRenderWindow(t._openGLRenderWindow),y){const e=new Float32Array(3*n);for(let t=0;t&lt;h;t++){const o=g.getRGBTransferFunction(t),a=o.getRange();if(o.getTable(a[0],a[1],n,e,1),m)for(let o=0;o&lt;3*n;o++)r[t*n*6+o]=255*e[o],r[t*n*6+o+3*n]=255*e[o];else for(let o=0;o&lt;3*n;o++)r[t*n*6+o]=255*e[o]}t.colorTexture.resetFormatAndType(),t.colorTexture.create2DFromRaw({width:n,height:v,numComps:3,dataType:ms.UNSIGNED_CHAR,data:r})}else{for(let e=0;e&lt;3*n;++e)r[e]=255*e/(3*(n-1)),r[e+1]=255*e/(3*(n-1)),r[e+2]=255*e/(3*(n-1));t.colorTexture.resetFormatAndType(),t.colorTexture.create2DFromRaw({width:n,height:1,numComps:3,dataType:ms.UNSIGNED_CHAR,data:r})}y&amp;&amp;(t._openGLRenderWindow.setGraphicsResourceForObject(y,t.colorTexture,x),y!==t._colorTransferFunc&amp;&amp;(t._openGLRenderWindow.registerGraphicsResourceUser(y,e),t._openGLRenderWindow.unregisterGraphicsResourceUser(t._colorTransferFunc,e)),t._colorTransferFunc=y)}const A=[];for(let e=0;e&lt;h;++e)A.push(g.getPiecewiseFunction(e));const C=zf(A,m,h),S=g.getPiecewiseFunction(),P=t._openGLRenderWindow.getGraphicsResourceForObject(S);if(P?.oglObject?.getHandle()&amp;&amp;P?.hash===C)t.pwfTexture=P.oglObject;else{let n=t.renderable.getOpacityTextureWidth();n&lt;=0&amp;&amp;(n=t.context.getParameter(t.context.MAX_TEXTURE_SIZE));const r=n*v,o=new Uint8ClampedArray(r);if(t.pwfTexture=Hd.newInstance(),t.pwfTexture.setOpenGLRenderWindow(t._openGLRenderWindow),S){const e=new Float32Array(r),o=new Float32Array(n);for(let t=0;t&lt;h;++t){const r=g.getPiecewiseFunction(t);if(null===r)e.fill(1);else{const a=r.getRange();if(r.getTable(a[0],a[1],n,o,1),m)for(let r=0;r&lt;n;r++)e[t*n*2+r]=o[r],e[t*n*2+r+n]=o[r];else for(let r=0;r&lt;n;r++)e[t*n*2+r]=o[r]}}t.pwfTexture.resetFormatAndType(),t.pwfTexture.create2DFromRaw({width:n,height:v,numComps:1,dataType:ms.FLOAT,data:e})}else o.fill(255),t.pwfTexture.resetFormatAndType(),t.pwfTexture.create2DFromRaw({width:n,height:1,numComps:1,dataType:ms.UNSIGNED_CHAR,data:o});S&amp;&amp;(t._openGLRenderWindow.setGraphicsResourceForObject(S,t.pwfTexture,C),S!==t._pwFunc&amp;&amp;(t._openGLRenderWindow.registerGraphicsResourceUser(S,e),t._openGLRenderWindow.unregisterGraphicsResourceUser(t._pwFunc,e)),t._pwFunc=S)}if(t.VBOBuildTime.getMTime()&lt;t.renderable.getMTime()||t.VBOBuildTime.getMTime()&lt;a.getMTime()){const e=a.getNumberOfPoints(),n=e&lt;=1?0:e-1,r=a.getDistancesToFirstPoint(),o=t.renderable.getHeight(),i=4*n,s=new Float32Array(3*i),l=t.renderable.getWidth();for(let e=0,t=0;e&lt;n;++e)s.set([0,o-r[e],0],t),t+=3,s.set([l,o-r[e],0],t),t+=3,s.set([l,o-r[e+1],0],t),t+=3,s.set([0,o-r[e+1],0],t),t+=3;const c=Is.newInstance({numberOfComponents:3,values:s});c.setName(&quot;points&quot;);const u=new Uint16Array(5*n);for(let e=0,t=0,r=0;e&lt;n;++e)u.set([4,r+3,r+2,r+1,r],t),t+=5,r+=4;const d=Is.newInstance({numberOfComponents:1,values:u}),p=a.getPoints(),f=new Float32Array(3*i),g=new Array(3),m=new Array(3);for(let e=0,t=0;e&lt;n;++e)p.getPoint(e,g),p.getPoint(e+1,m),f.set(g,t),t+=3,f.set(g,t),t+=3,f.set(m,t),t+=3,f.set(m,t),t+=3;const h=Is.newInstance({numberOfComponents:3,values:f,name:&quot;centerlinePosition&quot;}),v=new Float32Array(i);for(let e=0,t=0;e&lt;n;++e)v.set([0,1,3,2],t),t+=4;const T=[h,Is.newInstance({numberOfComponents:1,values:v,name:&quot;quadIndex&quot;})];if(!t.renderable.getUseUniformOrientation()){const e=t.renderable.getOrientedCenterline().getOrientations()??[],r=new Float32Array(4*i),o=new Float32Array(4*i);for(let t=0;t&lt;n;++t){const n=e[t],a=e[t+1];for(let e=0;e&lt;4;++e){const i=4*(e+4*t);r.set(n,i),o.set(a,i)}}const a=Is.newInstance({numberOfComponents:4,values:r,name:&quot;centerlineTopOrientation&quot;}),s=Is.newInstance({numberOfComponents:4,values:o,name:&quot;centerlineBotOrientation&quot;});T.push(a,s)}t.tris.getCABO().createVBO(d,&quot;polys&quot;,rs.SURFACE,{points:c,customAttributes:T}),t.VBOBuildTime.modified()}},e.getNeedToRebuildShaders=(e,n,r)=&gt;{const o=t.volumeTexture.getComponents(),a=r.getProperty().getIndependentComponents(),i=!!t.renderable.getCenterPoint(),s=t.renderable.getUseUniformOrientation(),l=t.renderable.isProjectionEnabled()&amp;&amp;t.renderable.getProjectionMode();return(0===e.getProgram()||t.lastUseCenterPoint!==i||t.lastUseUniformOrientation!==s||t.lastProjectionMode!==l||t.lastHaveSeenDepthRequest!==t.haveSeenDepthRequest||t.lastTextureComponents!==o||t.lastIndependentComponents!==a)&amp;&amp;(t.lastUseCenterPoint=i,t.lastUseUniformOrientation=s,t.lastProjectionMode=l,t.lastHaveSeenDepthRequest=t.haveSeenDepthRequest,t.lastTextureComponents=o,t.lastIndependentComponents=a,!0)},e.buildShaders=(t,n,r)=&gt;{e.getShaderTemplate(t,n,r),e.replaceShaderValues(t,n,r)},e.replaceShaderValues=(n,r,o)=&gt;{let a=n.Vertex,i=n.Fragment;const s=[&quot;vec3 applyQuaternionToVec(vec4 q, vec3 v) {&quot;,&quot;  float uvx = q.y * v.z - q.z * v.y;&quot;,&quot;  float uvy = q.z * v.x - q.x * v.z;&quot;,&quot;  float uvz = q.x * v.y - q.y * v.x;&quot;,&quot;  float uuvx = q.y * uvz - q.z * uvy;&quot;,&quot;  float uuvy = q.z * uvx - q.x * uvz;&quot;,&quot;  float uuvz = q.x * uvy - q.y * uvx;&quot;,&quot;  float w2 = q.w * 2.0;&quot;,&quot;  uvx *= w2;&quot;,&quot;  uvy *= w2;&quot;,&quot;  uvz *= w2;&quot;,&quot;  uuvx *= 2.0;&quot;,&quot;  uuvy *= 2.0;&quot;,&quot;  uuvz *= 2.0;&quot;,&quot;  return vec3(v.x + uvx + uuvx, v.y + uvy + uuvy, v.z + uvz + uuvz);&quot;,&quot;}&quot;];a=vd.substitute(a,&quot;//VTK::Camera::Dec&quot;,[&quot;uniform mat4 MCPCMatrix;&quot;]).result,a=vd.substitute(a,&quot;//VTK::PositionVC::Impl&quot;,[&quot;  gl_Position = MCPCMatrix * vertexMC;&quot;]).result;const l=[&quot;attribute vec3 centerlinePosition;&quot;,&quot;attribute float quadIndex;&quot;,&quot;uniform float width;&quot;,&quot;out vec2 quadOffsetVSOutput;&quot;,&quot;out vec3 centerlinePosVSOutput;&quot;],c=t.renderable.isProjectionEnabled(),u=t.renderable.getUseUniformOrientation();u?(l.push(&quot;out vec3 samplingDirVSOutput;&quot;,&quot;uniform vec4 centerlineOrientation;&quot;,&quot;uniform vec3 tangentDirection;&quot;,...s),c&amp;&amp;l.push(&quot;out vec3 projectionDirVSOutput;&quot;,&quot;uniform vec3 bitangentDirection;&quot;)):l.push(&quot;out vec4 centerlineTopOrientationVSOutput;&quot;,&quot;out vec4 centerlineBotOrientationVSOutput;&quot;,&quot;attribute vec4 centerlineTopOrientation;&quot;,&quot;attribute vec4 centerlineBotOrientation;&quot;),a=vd.substitute(a,&quot;//VTK::Color::Dec&quot;,l).result;const d=[&quot;quadOffsetVSOutput = vec2(width * (mod(quadIndex, 2.0) == 0.0 ? -0.5 : 0.5), quadIndex &gt; 1.0 ? 0.0 : 1.0);&quot;,&quot;centerlinePosVSOutput = centerlinePosition;&quot;];u?(d.push(&quot;samplingDirVSOutput = applyQuaternionToVec(centerlineOrientation, tangentDirection);&quot;),c&amp;&amp;d.push(&quot;projectionDirVSOutput = applyQuaternionToVec(centerlineOrientation, bitangentDirection);&quot;)):d.push(&quot;centerlineTopOrientationVSOutput = centerlineTopOrientation;&quot;,&quot;centerlineBotOrientationVSOutput = centerlineBotOrientation;&quot;),a=vd.substitute(a,&quot;//VTK::Color::Impl&quot;,d).result;const p=t.volumeTexture.getComponents(),f=o.getProperty().getIndependentComponents();let g=[&quot;uniform mat4 MCTCMatrix; // Model coordinates to texture coordinates&quot;,&quot;in vec2 quadOffsetVSOutput;&quot;,&quot;in vec3 centerlinePosVSOutput;&quot;,&quot;uniform highp sampler3D volumeTexture;&quot;,&quot;uniform sampler2D colorTexture1;&quot;,&quot;uniform sampler2D pwfTexture1;&quot;,&quot;uniform float opacity;&quot;,&quot;uniform vec4 backgroundColor;&quot;,&quot;uniform float cshift0;&quot;,&quot;uniform float cscale0;&quot;,&quot;uniform float pwfshift0;&quot;,&quot;uniform float pwfscale0;&quot;];c&amp;&amp;g.push(&quot;uniform vec3 volumeSizeMC;&quot;,&quot;uniform int projectionSlabNumberOfSamples;&quot;,&quot;uniform float projectionConstantOffset;&quot;,&quot;uniform float projectionStepLength;&quot;),u?(g.push(&quot;in vec3 samplingDirVSOutput;&quot;),c&amp;&amp;g.push(&quot;in vec3 projectionDirVSOutput;&quot;)):(g.push(&quot;uniform vec3 tangentDirection;&quot;,&quot;in vec4 centerlineTopOrientationVSOutput;&quot;,&quot;in vec4 centerlineBotOrientationVSOutput;&quot;,...s),c&amp;&amp;g.push(&quot;uniform vec3 bitangentDirection;&quot;));const m=t.renderable.getCenterPoint();if(m&amp;&amp;g.push(&quot;uniform vec3 globalCenterPoint;&quot;),f){for(let e=1;e&lt;p;e++)g=g.concat([`uniform float cshift${e};`,`uniform float cscale${e};`,`uniform float pwfshift${e};`,`uniform float pwfscale${e};`]);switch(p){case 1:g=g.concat([&quot;uniform float mix0;&quot;,&quot;#define height0 0.5&quot;]);break;case 2:g=g.concat([&quot;uniform float mix0;&quot;,&quot;uniform float mix1;&quot;,&quot;#define height0 0.25&quot;,&quot;#define height1 0.75&quot;]);break;case 3:g=g.concat([&quot;uniform float mix0;&quot;,&quot;uniform float mix1;&quot;,&quot;uniform float mix2;&quot;,&quot;#define height0 0.17&quot;,&quot;#define height1 0.5&quot;,&quot;#define height2 0.83&quot;]);break;case 4:g=g.concat([&quot;uniform float mix0;&quot;,&quot;uniform float mix1;&quot;,&quot;uniform float mix2;&quot;,&quot;uniform float mix3;&quot;,&quot;#define height0 0.125&quot;,&quot;#define height1 0.375&quot;,&quot;#define height2 0.625&quot;,&quot;#define height3 0.875&quot;]);break;default:sg(&quot;Unsupported number of independent coordinates.&quot;)}}i=vd.substitute(i,&quot;//VTK::TCoord::Dec&quot;,g).result;let h=[];if(u?(h.push(&quot;vec3 samplingDirection = samplingDirVSOutput;&quot;),c&amp;&amp;h.push(&quot;vec3 projectionDirection = projectionDirVSOutput;&quot;)):(h.push(&quot;vec4 q0 = centerlineBotOrientationVSOutput;&quot;,&quot;vec4 q1 = centerlineTopOrientationVSOutput;&quot;,&quot;float qCosAngle = dot(q0, q1);&quot;,&quot;vec4 interpolatedOrientation;&quot;,&quot;if (qCosAngle &gt; 0.999 || qCosAngle &lt; -0.999) {&quot;,&quot;  // Use LERP instead of SLERP when the two quaternions are close or opposite&quot;,&quot;  interpolatedOrientation = normalize(mix(q0, q1, quadOffsetVSOutput.y));&quot;,&quot;} else {&quot;,&quot;  float omega = acos(qCosAngle);&quot;,&quot;  interpolatedOrientation = normalize(sin((1.0 - quadOffsetVSOutput.y) * omega) * q0 + sin(quadOffsetVSOutput.y * omega) * q1);&quot;,&quot;}&quot;,&quot;vec3 samplingDirection = applyQuaternionToVec(interpolatedOrientation, tangentDirection);&quot;),c&amp;&amp;h.push(&quot;vec3 projectionDirection = applyQuaternionToVec(interpolatedOrientation, bitangentDirection);&quot;)),m?h.push(&quot;float baseOffset = dot(samplingDirection, globalCenterPoint - centerlinePosVSOutput);&quot;,&quot;float horizontalOffset = quadOffsetVSOutput.x + baseOffset;&quot;):h.push(&quot;float horizontalOffset = quadOffsetVSOutput.x;&quot;),h.push(&quot;vec3 volumePosMC = centerlinePosVSOutput + horizontalOffset * samplingDirection;&quot;,&quot;vec3 volumePosTC = (MCTCMatrix * vec4(volumePosMC, 1.0)).xyz;&quot;,&quot;if (any(lessThan(volumePosTC, vec3(0.0))) || any(greaterThan(volumePosTC, vec3(1.0))))&quot;,&quot;{&quot;,&quot;  // set the background color and exit&quot;,&quot;  gl_FragData[0] = backgroundColor;&quot;,&quot;  return;&quot;,&quot;}&quot;),c){const e=t.renderable.getProjectionMode();switch(e===ag?h.push(&quot;const vec4 initialProjectionTextureValue = vec4(1.0);&quot;):h.push(&quot;const vec4 initialProjectionTextureValue = vec4(0.0);&quot;),h.push(&quot;vec3 projectionScaledDirection = projectionDirection / volumeSizeMC;&quot;,&quot;vec3 projectionStep = projectionStepLength * projectionScaledDirection;&quot;,&quot;vec3 projectionStartPosition = volumePosTC + projectionConstantOffset * projectionScaledDirection;&quot;,&quot;vec4 tvalue = initialProjectionTextureValue;&quot;,&quot;for (int projectionSampleIdx = 0; projectionSampleIdx &lt; projectionSlabNumberOfSamples; ++projectionSampleIdx) {&quot;,&quot;  vec3 projectionSamplePosition = projectionStartPosition + float(projectionSampleIdx) * projectionStep;&quot;,&quot;  vec4 sampledTextureValue = texture(volumeTexture, projectionSamplePosition);&quot;),e){case og:h.push(&quot;  tvalue = max(tvalue, sampledTextureValue);&quot;);break;case ag:h.push(&quot;  tvalue = min(tvalue, sampledTextureValue);&quot;);break;default:h.push(&quot;  tvalue = tvalue + sampledTextureValue;&quot;)}h.push(&quot;}&quot;),e===ig&amp;&amp;h.push(&quot;tvalue = tvalue / float(projectionSlabNumberOfSamples);&quot;)}else h.push(&quot;vec4 tvalue = texture(volumeTexture, volumePosTC);&quot;);if(f){const e=[&quot;r&quot;,&quot;g&quot;,&quot;b&quot;,&quot;a&quot;];for(let t=0;t&lt;p;++t)h=h.concat([`vec3 tcolor${t} = mix${t} * texture2D(colorTexture1, vec2(tvalue.${e[t]} * cscale${t} + cshift${t}, height${t})).rgb;`,`float compWeight${t} = mix${t} * texture2D(pwfTexture1, vec2(tvalue.${e[t]} * pwfscale${t} + pwfshift${t}, height${t})).r;`]);switch(p){case 1:h=h.concat([&quot;gl_FragData[0] = vec4(tcolor0.rgb, compWeight0 * opacity);&quot;]);break;case 2:h=h.concat([&quot;float weightSum = compWeight0 + compWeight1;&quot;,&quot;gl_FragData[0] = vec4(vec3((tcolor0.rgb * (compWeight0 / weightSum)) + (tcolor1.rgb * (compWeight1 / weightSum))), opacity);&quot;]);break;case 3:h=h.concat([&quot;float weightSum = compWeight0 + compWeight1 + compWeight2;&quot;,&quot;gl_FragData[0] = vec4(vec3((tcolor0.rgb * (compWeight0 / weightSum)) + (tcolor1.rgb * (compWeight1 / weightSum)) + (tcolor2.rgb * (compWeight2 / weightSum))), opacity);&quot;]);break;case 4:h=h.concat([&quot;float weightSum = compWeight0 + compWeight1 + compWeight2 + compWeight3;&quot;,&quot;gl_FragData[0] = vec4(vec3((tcolor0.rgb * (compWeight0 / weightSum)) + (tcolor1.rgb * (compWeight1 / weightSum)) + (tcolor2.rgb * (compWeight2 / weightSum)) + (tcolor3.rgb * (compWeight3 / weightSum))), opacity);&quot;]);break;default:sg(&quot;Unsupported number of independent coordinates.&quot;)}}else switch(p){case 1:h=h.concat([&quot;// Dependent components&quot;,&quot;float intensity = tvalue.r;&quot;,&quot;vec3 tcolor = texture2D(colorTexture1, vec2(intensity * cscale0 + cshift0, 0.5)).rgb;&quot;,&quot;float scalarOpacity = texture2D(pwfTexture1, vec2(intensity * pwfscale0 + pwfshift0, 0.5)).r;&quot;,&quot;gl_FragData[0] = vec4(tcolor, scalarOpacity * opacity);&quot;]);break;case 2:h=h.concat([&quot;float intensity = tvalue.r*cscale0 + cshift0;&quot;,&quot;gl_FragData[0] = vec4(texture2D(colorTexture1, vec2(intensity, 0.5)).rgb, pwfscale0*tvalue.g + pwfshift0);&quot;]);break;case 3:h=h.concat([&quot;vec4 tcolor = cscale0*tvalue + cshift0;&quot;,&quot;gl_FragData[0] = vec4(texture2D(colorTexture1, vec2(tcolor.r,0.5)).r,&quot;,&quot;  texture2D(colorTexture1, vec2(tcolor.g,0.5)).r,&quot;,&quot;  texture2D(colorTexture1, vec2(tcolor.b,0.5)).r, opacity);&quot;]);break;default:h=h.concat([&quot;vec4 tcolor = cscale0*tvalue + cshift0;&quot;,&quot;gl_FragData[0] = vec4(texture2D(colorTexture1, vec2(tcolor.r,0.5)).r,&quot;,&quot;  texture2D(colorTexture1, vec2(tcolor.g,0.5)).r,&quot;,&quot;  texture2D(colorTexture1, vec2(tcolor.b,0.5)).r, tcolor.a);&quot;])}i=vd.substitute(i,&quot;//VTK::TCoord::Impl&quot;,h).result,t.haveSeenDepthRequest&amp;&amp;(i=vd.substitute(i,&quot;//VTK::ZBuffer::Dec&quot;,&quot;uniform int depthRequest;&quot;).result,i=vd.substitute(i,&quot;//VTK::ZBuffer::Impl&quot;,[&quot;if (depthRequest == 1) {&quot;,&quot;float iz = floor(gl_FragCoord.z*65535.0 + 0.1);&quot;,&quot;float rf = floor(iz/256.0)/255.0;&quot;,&quot;float gf = mod(iz,256.0)/255.0;&quot;,&quot;gl_FragData[0] = vec4(rf, gf, 0.0, 1.0); }&quot;]).result),n.Vertex=a,n.Fragment=i,e.replaceShaderClip(n,r,o),e.replaceShaderCoincidentOffset(n,r,o)},e.replaceShaderClip=(e,n,r)=&gt;{let o=e.Vertex,a=e.Fragment;if(t.renderable.getNumberOfClippingPlanes()){let e=t.renderable.getNumberOfClippingPlanes();e&gt;6&amp;&amp;(sn.vtkErrorMacro(&quot;OpenGL has a limit of 6 clipping planes&quot;),e=6),o=vd.substitute(o,&quot;//VTK::Clip::Dec&quot;,[&quot;uniform int numClipPlanes;&quot;,&quot;uniform vec4 clipPlanes[6];&quot;,&quot;varying float clipDistancesVSOutput[6];&quot;]).result,o=vd.substitute(o,&quot;//VTK::Clip::Impl&quot;,[&quot;for (int planeNum = 0; planeNum &lt; 6; planeNum++)&quot;,&quot;    {&quot;,&quot;    if (planeNum &gt;= numClipPlanes)&quot;,&quot;        {&quot;,&quot;        break;&quot;,&quot;        }&quot;,&quot;    clipDistancesVSOutput[planeNum] = dot(clipPlanes[planeNum], vertexMC);&quot;,&quot;    }&quot;]).result,a=vd.substitute(a,&quot;//VTK::Clip::Dec&quot;,[&quot;uniform int numClipPlanes;&quot;,&quot;varying float clipDistancesVSOutput[6];&quot;]).result,a=vd.substitute(a,&quot;//VTK::Clip::Impl&quot;,[&quot;for (int planeNum = 0; planeNum &lt; 6; planeNum++)&quot;,&quot;    {&quot;,&quot;    if (planeNum &gt;= numClipPlanes)&quot;,&quot;        {&quot;,&quot;        break;&quot;,&quot;        }&quot;,&quot;    if (clipDistancesVSOutput[planeNum] &lt; 0.0) discard;&quot;,&quot;    }&quot;]).result}e.Vertex=o,e.Fragment=a},e.getShaderTemplate=(e,t,n)=&gt;{e.Vertex=jd,e.Fragment=Xd,e.Geometry=&quot;&quot;},e.setMapperShaderParameters=(n,r,o)=&gt;{const a=n.getProgram(),i=n.getCABO();i.getElementCount()&amp;&amp;(t.VBOBuildTime.getMTime()&gt;n.getAttributeUpdateTime().getMTime()||n.getShaderSourceTime().getMTime()&gt;n.getAttributeUpdateTime().getMTime())&amp;&amp;(a.isAttributeUsed(&quot;vertexMC&quot;)&amp;&amp;(n.getVAO().addAttributeArray(a,i,&quot;vertexMC&quot;,i.getVertexOffset(),i.getStride(),t.context.FLOAT,3,t.context.FALSE)||sg(&quot;Error setting vertexMC in shader VAO.&quot;)),n.getCABO().getCustomData().forEach((e=&gt;{e&amp;&amp;a.isAttributeUsed(e.name)&amp;&amp;!n.getVAO().addAttributeArray(a,i,e.name,e.offset,i.getStride(),t.context.FLOAT,e.components,t.context.FALSE)&amp;&amp;sg(`Error setting ${e.name} in shader VAO.`)})),n.getAttributeUpdateTime().modified());const s=t.volumeTexture.getTextureUnit();if(a.setUniformi(&quot;volumeTexture&quot;,s),a.setUniformf(&quot;width&quot;,t.renderable.getWidth()),n.getProgram().setUniform4fv(&quot;backgroundColor&quot;,t.renderable.getBackgroundColor()),a.isUniformUsed(&quot;tangentDirection&quot;)){const e=t.renderable.getTangentDirection();n.getProgram().setUniform3fArray(&quot;tangentDirection&quot;,e)}if(a.isUniformUsed(&quot;bitangentDirection&quot;)){const e=t.renderable.getBitangentDirection();n.getProgram().setUniform3fArray(&quot;bitangentDirection&quot;,e)}if(a.isUniformUsed(&quot;centerlineOrientation&quot;)){const e=t.renderable.getUniformOrientation();n.getProgram().setUniform4fv(&quot;centerlineOrientation&quot;,e)}if(a.isUniformUsed(&quot;globalCenterPoint&quot;)){const e=t.renderable.getCenterPoint();a.setUniform3fArray(&quot;globalCenterPoint&quot;,e)}if(t.renderable.isProjectionEnabled()){const e=t.currentImageDataInput,n=e.getSpacing(),r=e.getDimensions(),o=t.renderable.getProjectionSlabThickness(),i=t.renderable.getProjectionSlabNumberOfSamples(),s=ce([],n,r);a.setUniform3fArray(&quot;volumeSizeMC&quot;,s),a.setUniformi(&quot;projectionSlabNumberOfSamples&quot;,i);const l=-.5*o;a.setUniformf(&quot;projectionConstantOffset&quot;,l);const c=o/(i-1);a.setUniformf(&quot;projectionStepLength&quot;,c)}const l=t.currentImageDataInput,c=l.getWorldToIndex(),u=M(new Float32Array(16),ee([],l.getDimensions())),d=z(u,u,c);if(a.setUniformMatrix(&quot;MCTCMatrix&quot;,d),t.haveSeenDepthRequest&amp;&amp;n.getProgram().setUniformi(&quot;depthRequest&quot;,t.renderDepth?1:0),t.renderable.getNumberOfClippingPlanes()){let e=t.renderable.getNumberOfClippingPlanes();e&gt;6&amp;&amp;(sn.vtkErrorMacro(&quot;OpenGL has a limit of 6 clipping planes&quot;),e=6);const n=i.getCoordShiftAndScaleEnabled()?i.getInverseShiftAndScaleMatrix():null,r=n?T(t.imagematinv,o.getMatrix()):o.getMatrix();n&amp;&amp;(y(r,r),A(r,r,n),y(r,r)),y(t.imagemat,t.currentImageDataInput.getIndexToWorld()),A(t.imagematinv,r,t.imagemat);const s=[];for(let n=0;n&lt;e;n++){const e=[];t.renderable.getClippingPlaneInDataCoords(t.imagematinv,n,e);for(let t=0;t&lt;4;t++)s.push(e[t])}a.setUniformi(&quot;numClipPlanes&quot;,e),a.setUniform4fv(&quot;clipPlanes&quot;,s)}if(a.isUniformUsed(&quot;coffset&quot;)){const t=e.getCoincidentParameters(r,o);a.setUniformf(&quot;coffset&quot;,t.offset),a.isUniformUsed(&quot;cfactor&quot;)&amp;&amp;a.setUniformf(&quot;cfactor&quot;,t.factor)}},e.setCameraShaderParameters=(e,n,r)=&gt;{const o=t.openGLImageSlice.getKeyMatrices().mcwc,a=t.openGLCamera.getKeyMatrices(n).wcpc;if(A(t.imagemat,a,o),e.getCABO().getCoordShiftAndScaleEnabled()){const n=e.getCABO().getInverseShiftAndScaleMatrix();A(t.imagemat,t.imagemat,n)}e.getProgram().setUniformMatrix(&quot;MCPCMatrix&quot;,t.imagemat)},e.setPropertyShaderParameters=(e,n,r)=&gt;{const o=e.getProgram(),a=r.getProperty(),i=a.getOpacity();o.setUniformf(&quot;opacity&quot;,i);const s=t.volumeTexture.getComponents(),l=a.getIndependentComponents();if(l)for(let e=0;e&lt;s;++e)o.setUniformf(`mix${e}`,a.getComponentWeight(e));const c=t.volumeTexture.getVolumeInfo();for(let e=0;e&lt;s;e++){let t=a.getColorWindow(),n=a.getColorLevel();const r=l?e:0,i=a.getRGBTransferFunction(r);if(i&amp;&amp;a.getUseLookupTableScalarRange()){const e=i.getRange();t=e[1]-e[0],n=.5*(e[1]+e[0])}const s=c.scale[e]/t,u=(c.offset[e]-n)/t+.5;o.setUniformf(`cshift${e}`,u),o.setUniformf(`cscale${e}`,s)}const u=t.colorTexture.getTextureUnit();o.setUniformi(&quot;colorTexture1&quot;,u);for(let e=0;e&lt;s;e++){let t=1,n=0;const r=l?e:0,i=a.getPiecewiseFunction(r);if(i){const r=i.getRange(),o=r[1]-r[0],a=.5*(r[0]+r[1]);t=c.scale[e]/o,n=(c.offset[e]-a)/o+.5}o.setUniformf(`pwfshift${e}`,n),o.setUniformf(`pwfscale${e}`,t)}const d=t.pwfTexture.getTextureUnit();o.setUniformi(&quot;pwfTexture1&quot;,d)},e.updateShaders=(n,r,o)=&gt;{if(e.getNeedToRebuildShaders(n,r,o)){const a={Vertex:null,Fragment:null,Geometry:null};e.buildShaders(a,r,o);const i=t._openGLRenderWindow.getShaderCache().readyShaderProgramArray(a.Vertex,a.Fragment,a.Geometry);i!==n.getProgram()&amp;&amp;(n.setProgram(i),n.getVAO().releaseGraphicsResources()),n.getShaderSourceTime().modified()}else t._openGLRenderWindow.getShaderCache().readyShaderProgram(n.getProgram());n.getVAO().bind(),e.setMapperShaderParameters(n,r,o),e.setCameraShaderParameters(n,r,o),e.setPropertyShaderParameters(n,r,o)},e.delete=sn.chain((()=&gt;{t._openGLRenderWindow&amp;&amp;n(t._openGLRenderWindow)}),e.delete)}(e,t)}),&quot;vtkOpenGLImageCPRMapper&quot;);vn(&quot;vtkImageCPRMapper&quot;,cg);const ug={context:null,keyMatrixTime:null,keyMatrices:null};vn(&quot;vtkImageSlice&quot;,Xt((function(e,t,n={}){Object.assign(t,ug,n),pn.extend(e,t,n),t.keyMatrixTime={},Vt(t.keyMatrixTime,{mtime:0}),t.keyMatrices={mcwc:x(new Float64Array(16))},Gt(e,t,[&quot;context&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLImageSlice&quot;),e.buildPass=n=&gt;{if(t.renderable&amp;&amp;t.renderable.getVisibility()&amp;&amp;n){if(!t.renderable)return;t._openGLRenderWindow=e.getLastAncestorOfType(&quot;vtkOpenGLRenderWindow&quot;),t._openGLRenderer=e.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;),t.context=t._openGLRenderWindow.getContext(),e.prepareNodes(),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes()}},e.traverseZBufferPass=n=&gt;{t.renderable&amp;&amp;t.renderable.getNestedVisibility()&amp;&amp;(!t._openGLRenderer.getSelector()||t.renderable.getNestedPickable())&amp;&amp;(e.apply(n,!0),t.children.forEach((e=&gt;{e.traverse(n)})),e.apply(n,!1))},e.traverseOpaqueZBufferPass=t=&gt;e.traverseOpaquePass(t),e.traverseOpaquePass=n=&gt;{t.renderable&amp;&amp;t.renderable.getNestedVisibility()&amp;&amp;t.renderable.getIsOpaque()&amp;&amp;(!t._openGLRenderer.getSelector()||t.renderable.getNestedPickable())&amp;&amp;(e.apply(n,!0),t.children.forEach((e=&gt;{e.traverse(n)})),e.apply(n,!1))},e.traverseTranslucentPass=n=&gt;{!t.renderable||!t.renderable.getNestedVisibility()||t.renderable.getIsOpaque()||t._openGLRenderer.getSelector()&amp;&amp;!t.renderable.getNestedPickable()||(e.apply(n,!0),t.children.forEach((e=&gt;{e.traverse(n)})),e.apply(n,!1))},e.queryPass=(e,n)=&gt;{if(e){if(!t.renderable||!t.renderable.getVisibility())return;t.renderable.getIsOpaque()?n.incrementOpaqueActorCount():n.incrementTranslucentActorCount()}},e.zBufferPass=(t,n)=&gt;e.opaquePass(t,n),e.opaqueZBufferPass=(t,n)=&gt;e.opaquePass(t,n),e.opaquePass=(e,n)=&gt;{e&amp;&amp;t.context.depthMask(!0)},e.translucentPass=(e,n)=&gt;{t.context.depthMask(!e)},e.getKeyMatrices=()=&gt;(t.renderable.getMTime()&gt;t.keyMatrixTime.getMTime()&amp;&amp;(T(t.keyMatrices.mcwc,t.renderable.getMatrix()),y(t.keyMatrices.mcwc,t.keyMatrices.mcwc),t.keyMatrixTime.modified()),t.keyMatrices)}(e,t)}),&quot;vtkOpenGLImageSlice&quot;));const dg={};vn(&quot;vtkVolume&quot;,Xt((function(e,t,n={}){Object.assign(t,dg,n),pn.extend(e,t,n),t.keyMatrixTime={},Vt(t.keyMatrixTime,{mtime:0}),t.normalMatrix=new Float64Array(9),t.MCWCMatrix=new Float64Array(16),Gt(e,t,[&quot;context&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLVolume&quot;),e.buildPass=n=&gt;{t.renderable&amp;&amp;t.renderable.getVisibility()&amp;&amp;n&amp;&amp;(t._openGLRenderWindow=e.getLastAncestorOfType(&quot;vtkOpenGLRenderWindow&quot;),t._openGLRenderer=e.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;),t.context=t._openGLRenderWindow.getContext(),e.prepareNodes(),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes())},e.queryPass=(e,n)=&gt;{if(e){if(!t.renderable||!t.renderable.getVisibility())return;n.incrementVolumeCount()}},e.traverseVolumePass=n=&gt;{t.renderable&amp;&amp;t.renderable.getNestedVisibility()&amp;&amp;(!t._openGLRenderer.getSelector()||t.renderable.getNestedPickable())&amp;&amp;(e.apply(n,!0),t.children[0].traverse(n),e.apply(n,!1))},e.volumePass=e=&gt;{t.renderable&amp;&amp;t.renderable.getVisibility()&amp;&amp;t.context.depthMask(!e)},e.getKeyMatrices=()=&gt;(t.renderable.getMTime()&gt;t.keyMatrixTime.getMTime()&amp;&amp;(t.renderable.computeMatrix(),T(t.MCWCMatrix,t.renderable.getMatrix()),y(t.MCWCMatrix,t.MCWCMatrix),t.renderable.getIsIdentity()?c(t.normalMatrix):(s(t.normalMatrix,t.MCWCMatrix),d(t.normalMatrix,t.normalMatrix),u(t.normalMatrix,t.normalMatrix)),t.keyMatrixTime.modified()),{mcwc:t.MCWCMatrix,normalMatrix:t.normalMatrix})}(e,t)}),&quot;vtkOpenGLVolume&quot;));const pg={NEAREST:0,LINEAR:1,FAST_LINEAR:2},fg={FRACTIONAL:0,PROPORTIONAL:1},gg={DEFAULT:0,ADDITIVE:1,COLORIZE:2,CUSTOM:3};var mg={InterpolationType:pg,OpacityMode:fg,ColorMixPreset:gg,FilterMode:{OFF:0,NORMALIZED:1,RAW:2}};const hg={COMPOSITE_BLEND:0,MAXIMUM_INTENSITY_BLEND:1,MINIMUM_INTENSITY_BLEND:2,AVERAGE_INTENSITY_BLEND:3,ADDITIVE_INTENSITY_BLEND:4,RADON_TRANSFORM_BLEND:5,LABELMAP_EDGE_PROJECTION_BLEND:6};var vg={BlendMode:hg};const{vtkWarningMacro:Tg,vtkErrorMacro:xg}=ln,yg={idxToView:x(new Float64Array(16)),vecISToVCMatrix:c(new Float64Array(9)),modelToView:x(new Float64Array(16)),projectionToView:x(new Float64Array(16)),projectionToWorld:x(new Float64Array(16))};function bg(e,t){function n(e){return e.getUseLabelOutline()||t.renderable.getBlendMode()===hg.LABELMAP_EDGE_PROJECTION_BLEND}t.classHierarchy.push(&quot;vtkOpenGLVolumeMapper&quot;);const r=new Map;function o(t,n,o){n!==o&amp;&amp;(function(t,n){if(!n)return;const o=(r.get(n)??0)-1;o&lt;=0?(t.unregisterGraphicsResourceUser(n,e),r.delete(n)):r.set(n,o)}(t,n),function(t,n){if(!n)return;const o=r.get(n)??0,a=o+1;r.set(n,a),o&lt;=0&amp;&amp;t.registerGraphicsResourceUser(n,e)}(t,o))}function a(t){[...r.keys()].forEach((n=&gt;t.unregisterGraphicsResourceUser(n,e)))}e.buildPass=()=&gt;{t.zBufferTexture=null},e.zBufferPass=(e,n)=&gt;{if(e){const e=n.getZBufferTexture();e!==t.zBufferTexture&amp;&amp;(t.zBufferTexture=e)}},e.opaqueZBufferPass=(t,n)=&gt;e.zBufferPass(t,n),e.volumePass=(n,r)=&gt;{if(n){const n=t._openGLRenderWindow;t._openGLRenderWindow=e.getLastAncestorOfType(&quot;vtkOpenGLRenderWindow&quot;),n&amp;&amp;!n.isDeleted()&amp;&amp;n!==t._openGLRenderWindow&amp;&amp;a(n),t.context=t._openGLRenderWindow.getContext(),t.tris.setOpenGLRenderWindow(t._openGLRenderWindow),t.jitterTexture.setOpenGLRenderWindow(t._openGLRenderWindow),t.framebuffer.setOpenGLRenderWindow(t._openGLRenderWindow),t.openGLVolume=e.getFirstAncestorOfType(&quot;vtkOpenGLVolume&quot;);const r=t.openGLVolume.getRenderable();t._openGLRenderer=e.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;);const o=t._openGLRenderer.getRenderable();t.openGLCamera=t._openGLRenderer.getViewNodeFor(o.getActiveCamera(),t.openGLCamera),e.renderPiece(o,r)}},e.getShaderTemplate=(e,t,n)=&gt;{e.Vertex=&quot;//VTK::System::Dec\\n\\n/*=========================================================================\\n\\n  Program:   Visualization Toolkit\\n  Module:    vtkVolumeVS.glsl\\n\\n  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n  All rights reserved.\\n  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n\\n     This software is distributed WITHOUT ANY WARRANTY; without even\\n     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n     PURPOSE.  See the above copyright notice for more information.\\n\\n=========================================================================*/\\n\\nattribute vec4 vertexDC;\\n\\nvarying vec3 vertexVCVSOutput;\\nuniform mat4 PCVCMatrix;\\n\\nuniform float dcxmin;\\nuniform float dcxmax;\\nuniform float dcymin;\\nuniform float dcymax;\\n\\nvoid main()\\n{\\n  // dcsmall is the device coords reduced to the\\n  // x y area covered by the volume\\n  vec4 dcsmall = vec4(\\n    dcxmin + 0.5 * (vertexDC.x + 1.0) * (dcxmax - dcxmin),\\n    dcymin + 0.5 * (vertexDC.y + 1.0) * (dcymax - dcymin),\\n    vertexDC.z,\\n    vertexDC.w);\\n  vec4 vcpos = PCVCMatrix * dcsmall;\\n  vertexVCVSOutput = vcpos.xyz/vcpos.w;\\n  gl_Position = dcsmall;\\n}\\n&quot;,e.Fragment=&quot;//VTK::System::Dec\\n\\n/*=========================================================================\\n\\n  Program:   Visualization Toolkit\\n  Module:    vtkVolumeFS.glsl\\n\\n  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n  All rights reserved.\\n  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n\\n     This software is distributed WITHOUT ANY WARRANTY; without even\\n     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n     PURPOSE.  See the above copyright notice for more information.\\n\\n=========================================================================*/\\n// Template for the volume mappers fragment shader\\n\\nconst float infinity = 3.402823466e38;\\n\\n// the output of this shader\\n//VTK::Output::Dec\\n\\nin vec3 vertexVCVSOutput;\\n\\n// From Sources\\\\Rendering\\\\Core\\\\VolumeProperty\\\\Constants.js\\n#define COMPOSITE_BLEND 0\\n#define MAXIMUM_INTENSITY_BLEND 1\\n#define MINIMUM_INTENSITY_BLEND 2\\n#define AVERAGE_INTENSITY_BLEND 3\\n#define ADDITIVE_INTENSITY_BLEND 4\\n#define RADON_TRANSFORM_BLEND 5\\n#define LABELMAP_EDGE_PROJECTION_BLEND 6\\n\\n#define vtkNumberOfLights //VTK::NumberOfLights\\n#define vtkMaxLaoKernelSize //VTK::MaxLaoKernelSize\\n#define vtkNumberOfComponents //VTK::NumberOfComponents\\n#define vtkBlendMode //VTK::BlendMode\\n#define vtkMaximumNumberOfSamples //VTK::MaximumNumberOfSamples\\n\\n//VTK::EnabledColorFunctions\\n\\n//VTK::EnabledLightings\\n\\n//VTK::EnabledMultiTexturePerVolume\\n\\n//VTK::EnabledGradientOpacity\\n\\n//VTK::EnabledIndependentComponents\\n\\n//VTK::vtkProportionalComponents\\n\\n//VTK::vtkForceNearestComponents\\n\\nuniform int twoSidedLighting;\\n\\n#if vtkMaxLaoKernelSize &gt; 0\\n  vec2 kernelSample[vtkMaxLaoKernelSize];\\n#endif\\n\\n// Textures\\n#ifdef EnabledMultiTexturePerVolume\\n  #define vtkNumberOfVolumeTextures vtkNumberOfComponents\\n#else\\n  #define vtkNumberOfVolumeTextures 1\\n#endif\\nuniform highp sampler3D volumeTexture[vtkNumberOfVolumeTextures];\\nuniform sampler2D colorTexture;\\nuniform sampler2D opacityTexture;\\nuniform sampler2D jtexture;\\nuniform sampler2D labelOutlineThicknessTexture;\\n\\nstruct Volume {\\n  // ---- Volume geometry settings ----\\n\\n  vec3 originVC;          // in VC\\n  vec3 spacing;           // in VC per IC\\n  vec3 inverseSpacing;    // 1/spacing\\n  ivec3 dimensions;       // in IC\\n  vec3 inverseDimensions; // 1/vec3(dimensions)\\n  mat3 vecISToVCMatrix;   // convert from IS to VC without translation\\n  mat3 vecVCToISMatrix;   // convert from VC to IS without translation\\n  mat4 PCWCMatrix;\\n  mat4 worldToIndex;\\n  float diagonalLength; // in VC, this is: length(size)\\n\\n  // ---- Texture settings ----\\n\\n  // Texture shift and scale\\n  vec4 colorTextureScale;\\n  vec4 colorTextureShift;\\n  vec4 opacityTextureScale;\\n  vec4 opacityTextureShift;\\n\\n  // The heights defined below are the locations for the up to four components\\n  // of the transfer functions. The transfer functions have a height of (2 *\\n  // numberOfComponents) pixels so the values are computed to hit the middle of\\n  // the two rows for that component\\n  vec4 transferFunctionsSampleHeight;\\n\\n  // ---- Mode specific settings ----\\n\\n  // Independent component default preset settings per component\\n  vec4 independentComponentMix;\\n\\n  // Additive / average blending mode settings\\n  vec4 ipScalarRangeMin;\\n  vec4 ipScalarRangeMax;\\n\\n  // ---- Rendering settings ----\\n\\n  // Lighting\\n  float ambient;\\n  float diffuse;\\n  float specular;\\n  float specularPower;\\n  int computeNormalFromOpacity;\\n\\n  // Gradient opacity\\n  vec4 gradientOpacityScale;\\n  vec4 gradientOpacityShift;\\n  vec4 gradientOpacityMin;\\n  vec4 gradientOpacityMax;\\n\\n  // Volume shadow\\n  float volumetricScatteringBlending;\\n  float globalIlluminationReach;\\n  float anisotropy;\\n  float anisotropySquared;\\n\\n  // LAO\\n  int kernelSize;\\n  int kernelRadius;\\n\\n  // Label outline\\n  float outlineOpacity;\\n};\\nuniform Volume volume;\\n\\nstruct Light {\\n  vec3 color;\\n  vec3 positionVC;\\n  vec3 directionVC; // normalized\\n  vec3 halfAngleVC;\\n  vec3 attenuation;\\n  float exponent;\\n  float coneAngle;\\n  int isPositional;\\n};\\n#if vtkNumberOfLights &gt; 0\\n  uniform Light lights[vtkNumberOfLights];\\n#endif\\n\\nuniform float vpWidth;\\nuniform float vpHeight;\\nuniform float vpOffsetX;\\nuniform float vpOffsetY;\\n\\n// Bitmasks for label outline\\nconst int MAX_SEGMENT_INDEX = 256; // Define as per expected maximum\\n#define MAX_SEGMENTS 256\\n#define UINT_SIZE 32\\n// We add UINT_SIZE - 1, as we want the ceil of the division instead of the\\n// floor\\n#define BITMASK_SIZE ((MAX_SEGMENTS + UINT_SIZE - 1) / UINT_SIZE)\\nuint labelOutlineBitmasks[BITMASK_SIZE];\\n\\n// Set the corresponding bit in the bitmask\\nvoid setLabelOutlineBit(int segmentIndex) {\\n  int arrayIndex = segmentIndex / UINT_SIZE;\\n  int bitIndex = segmentIndex % UINT_SIZE;\\n  labelOutlineBitmasks[arrayIndex] |= 1u &lt;&lt; bitIndex;\\n}\\n\\n// Check if a bit is set in the bitmask\\nbool isLabelOutlineBitSet(int segmentIndex) {\\n  int arrayIndex = segmentIndex / UINT_SIZE;\\n  int bitIndex = segmentIndex % UINT_SIZE;\\n  return ((labelOutlineBitmasks[arrayIndex] &amp; (1u &lt;&lt; bitIndex)) != 0u);\\n}\\n\\n// if you want to see the raw tiled\\n// data in webgl1 uncomment the following line\\n// #define debugtile\\n\\n// camera values\\nuniform float camThick;\\nuniform float camNear;\\nuniform float camFar;\\nuniform int cameraParallel;\\n\\n//VTK::ClipPlane::Dec\\n\\n// A random number between 0 and 1 that only depends on the fragment\\n// It uses the jtexture, so this random seed repeats by blocks of 32 fragments\\n// in screen space\\nfloat fragmentSeed;\\n\\n// sample texture is global\\nuniform float sampleDistance;\\nuniform float volumeShadowSampleDistance;\\n\\n// declaration for intermixed geometry\\n//VTK::ZBuffer::Dec\\n\\n//=======================================================================\\n// global and custom variables (a temporary section before photorealistics\\n// rendering module is complete)\\nvec3 rayDirVC;\\n\\n#define INV4PI 0.0796\\n#define EPSILON 0.001\\n#define PI 3.1415\\n#define PI2 9.8696\\n\\nvec4 rawSampleTexture(vec3 pos) {\\n  #ifdef EnabledMultiTexturePerVolume\\n    vec4 rawSample;\\n    rawSample[0] = texture(volumeTexture[0], pos)[0];\\n  #if vtkNumberOfComponents &gt; 1\\n    rawSample[1] = texture(volumeTexture[1], pos)[0];\\n  #endif\\n  #if vtkNumberOfComponents &gt; 2\\n    rawSample[2] = texture(volumeTexture[2], pos)[0];\\n  #endif\\n  #if vtkNumberOfComponents &gt; 3\\n    rawSample[3] = texture(volumeTexture[3], pos)[0];\\n  #endif\\n    return rawSample;\\n  #else\\n    return texture(volumeTexture[0], pos);\\n  #endif\\n}\\n\\nvec4 rawFetchTexture(ivec3 pos) {\\n  #ifdef EnabledMultiTexturePerVolume\\n    vec4 rawSample;\\n    #if vtkNumberOfComponents &gt; 0\\n      rawSample[0] = texelFetch(volumeTexture[0], pos, 0)[0];\\n    #endif\\n    #if vtkNumberOfComponents &gt; 1\\n      rawSample[1] = texelFetch(volumeTexture[1], pos, 0)[0];\\n    #endif\\n    #if vtkNumberOfComponents &gt; 2\\n      rawSample[2] = texelFetch(volumeTexture[2], pos, 0)[0];\\n    #endif\\n    #if vtkNumberOfComponents &gt; 3\\n      rawSample[3] = texelFetch(volumeTexture[3], pos, 0)[0];\\n    #endif\\n    return rawSample;\\n  #else\\n    return texelFetch(volumeTexture[0], pos, 0);\\n  #endif\\n}\\n\\nvec4 getTextureValue(vec3 pos) {\\n  vec4 tmp = rawSampleTexture(pos);\\n\\n  // Force nearest\\n  #if defined(vtkComponent0ForceNearest) || \\\\\\n      defined(vtkComponent1ForceNearest) || \\\\\\n      defined(vtkComponent2ForceNearest) || \\\\\\n      defined(vtkComponent3ForceNearest)\\n    vec3 nearestPos = (floor(pos * vec3(volume.dimensions)) + 0.5) *\\n                      volume.inverseDimensions;\\n    vec4 nearestValue = rawSampleTexture(nearestPos);\\n    #ifdef vtkComponent0ForceNearest\\n      tmp[0] = nearestValue[0];\\n    #endif\\n    #ifdef vtkComponent1ForceNearest\\n      tmp[1] = nearestValue[1];\\n    #endif\\n    #ifdef vtkComponent2ForceNearest\\n      tmp[2] = nearestValue[2];\\n    #endif\\n    #ifdef vtkComponent3ForceNearest\\n      tmp[3] = nearestValue[3];\\n    #endif\\n  #endif\\n\\n  // Set alpha when using dependent components\\n  #ifndef EnabledIndependentComponents\\n    #if vtkNumberOfComponents == 1\\n      tmp.a = tmp.r;\\n    #endif\\n    #if vtkNumberOfComponents == 2\\n      tmp.a = tmp.g;\\n    #endif\\n    #if vtkNumberOfComponents == 3\\n      tmp.a = length(tmp.rgb);\\n    #endif\\n  #endif\\n\\n  return tmp;\\n}\\n\\n// `height` is usually `volume.transferFunctionsSampleHeight[component]`\\n// when using independent component and `0.5` otherwise. Don&#x27;t move the if\\n// statement in these function, as the callers usually already knows if it is\\n// using independent component or not\\nfloat getOpacityFromTexture(float scalar, int component, float height) {\\n  float scaledScalar = scalar * volume.opacityTextureScale[component] +\\n                       volume.opacityTextureShift[component];\\n  return texture2D(opacityTexture, vec2(scaledScalar, height)).r;\\n}\\nvec3 getColorFromTexture(float scalar, int component, float height) {\\n  float scaledScalar = scalar * volume.colorTextureScale[component] +\\n                       volume.colorTextureShift[component];\\n  return texture2D(colorTexture, vec2(scaledScalar, height)).rgb;\\n}\\n\\n//=======================================================================\\n// transformation between VC and IS space\\n\\n// convert vector position from idx to vc\\nvec3 posIStoVC(vec3 posIS) {\\n  return volume.vecISToVCMatrix * posIS + volume.originVC;\\n}\\n\\n// convert vector position from vc to idx\\nvec3 posVCtoIS(vec3 posVC) {\\n  return volume.vecVCToISMatrix * (posVC - volume.originVC);\\n}\\n\\n// Rotate vector to view coordinate\\nvec3 vecISToVC(vec3 dirIS) {\\n  return volume.vecISToVCMatrix * dirIS;\\n}\\n\\n// Rotate vector to idx coordinate\\nvec3 vecVCToIS(vec3 dirVC) {\\n  return volume.vecVCToISMatrix * dirVC;\\n}\\n\\n//=======================================================================\\n// Given a normal compute the gradient opacity factors\\nfloat computeGradientOpacityFactor(float normalMag, int component) {\\n  float goscale = volume.gradientOpacityScale[component];\\n  float goshift = volume.gradientOpacityShift[component];\\n  float gomin = volume.gradientOpacityMin[component];\\n  float gomax = volume.gradientOpacityMax[component];\\n  return clamp(normalMag * goscale + goshift, gomin, gomax);\\n}\\n\\n#ifdef vtkClippingPlanesOn\\n  bool isPointClipped(vec3 posVC) {\\n    for (int i = 0; i &lt; clip_numPlanes; ++i) {\\n      if (dot(vec3(vClipPlaneOrigins[i] - posVC), vClipPlaneNormals[i]) &gt; 0.0) {\\n        return true;\\n      }\\n    }\\n    return false;\\n  }\\n#endif\\n\\n//=======================================================================\\n// compute the normal and gradient magnitude for a position, uses forward\\n// difference\\n\\n// The output normal is in VC\\nvec4 computeDensityNormal(vec3 opacityUCoords[2], float opacityTextureHeight,\\n                          float gradientOpacity, int component) {\\n  // Pass the scalars through the opacity functions\\n  vec4 opacityG;\\n  opacityG.x += getOpacityFromTexture(opacityUCoords[0].x, component,\\n                                      opacityTextureHeight);\\n  opacityG.y += getOpacityFromTexture(opacityUCoords[0].y, component,\\n                                      opacityTextureHeight);\\n  opacityG.z += getOpacityFromTexture(opacityUCoords[0].z, component,\\n                                      opacityTextureHeight);\\n  opacityG.x -= getOpacityFromTexture(opacityUCoords[1].x, component,\\n                                      opacityTextureHeight);\\n  opacityG.y -= getOpacityFromTexture(opacityUCoords[1].y, component,\\n                                      opacityTextureHeight);\\n  opacityG.z -= getOpacityFromTexture(opacityUCoords[1].z, component,\\n                                      opacityTextureHeight);\\n\\n  // Divide by spacing and convert to VC\\n  opacityG.xyz *= gradientOpacity * volume.inverseSpacing;\\n  opacityG.w = length(opacityG.xyz);\\n  if (opacityG.w == 0.0) {\\n    return vec4(0.0);\\n  }\\n\\n  // Normalize\\n  opacityG.xyz = normalize(vecISToVC(opacityG.xyz));\\n\\n  return opacityG;\\n}\\n\\n// The output normal is in VC\\nvec4 computeNormalForDensity(vec3 posIS, out vec3 scalarInterp[2],\\n                             const int opacityComponent) {\\n  vec3 offsetedPosIS;\\n  for (int axis = 0; axis &lt; 3; ++axis) {\\n    // Positive direction\\n    offsetedPosIS = posIS;\\n    offsetedPosIS[axis] += volume.inverseDimensions[axis];\\n    scalarInterp[0][axis] =\\n        getTextureValue(offsetedPosIS)[opacityComponent];\\n    #ifdef vtkClippingPlanesOn\\n      if (isPointClipped(posIStoVC(offsetedPosIS))) {\\n        scalarInterp[0][axis] = 0.0;\\n      }\\n    #endif\\n\\n    // Negative direction\\n    offsetedPosIS = posIS;\\n    offsetedPosIS[axis] -= volume.inverseDimensions[axis];\\n    scalarInterp[1][axis] =\\n        getTextureValue(offsetedPosIS)[opacityComponent];\\n    #ifdef vtkClippingPlanesOn\\n      if (isPointClipped(posIStoVC(offsetedPosIS))) {\\n        scalarInterp[1][axis] = 0.0;\\n      }\\n    #endif\\n  }\\n\\n  vec4 result;\\n  result.xyz = (scalarInterp[0] - scalarInterp[1]) * volume.inverseSpacing;\\n  result.w = length(result.xyz);\\n  if (result.w == 0.0) {\\n    return vec4(0.0);\\n  }\\n  result.xyz = normalize(vecISToVC(result.xyz));\\n  return result;\\n}\\n\\nvec4 fragCoordToPCPos(vec4 fragCoord) {\\n  return vec4((fragCoord.x / vpWidth - vpOffsetX - 0.5) * 2.0,\\n              (fragCoord.y / vpHeight - vpOffsetY - 0.5) * 2.0,\\n              (fragCoord.z - 0.5) * 2.0, 1.0);\\n}\\n\\nvec4 pcPosToWorldCoord(vec4 pcPos) {\\n  return volume.PCWCMatrix * pcPos;\\n}\\n\\nvec3 fragCoordToIndexSpace(vec4 fragCoord) {\\n  vec4 pcPos = fragCoordToPCPos(fragCoord);\\n  vec4 worldCoord = pcPosToWorldCoord(pcPos);\\n  vec4 vertex = (worldCoord / worldCoord.w);\\n\\n  vec3 index = (volume.worldToIndex * vertex).xyz;\\n\\n  // half voxel fix for labelmapOutline\\n  return (index + vec3(0.5)) * volume.inverseDimensions;\\n}\\n\\nvec3 fragCoordToWorld(vec4 fragCoord) {\\n  vec4 pcPos = fragCoordToPCPos(fragCoord);\\n  vec4 worldCoord = pcPosToWorldCoord(pcPos);\\n  return worldCoord.xyz;\\n}\\n\\n//=======================================================================\\n// Compute the normals and gradient magnitudes for a position for independent\\n// components The output normals are in VC\\nmat4 computeMat4Normal(vec3 posIS, vec4 tValue) {\\n  vec3 xvec = vec3(volume.inverseDimensions.x, 0.0, 0.0);\\n  vec3 yvec = vec3(0.0, volume.inverseDimensions.y, 0.0);\\n  vec3 zvec = vec3(0.0, 0.0, volume.inverseDimensions.z);\\n\\n  vec4 distX = getTextureValue(posIS + xvec) - getTextureValue(posIS - xvec);\\n  vec4 distY = getTextureValue(posIS + yvec) - getTextureValue(posIS - yvec);\\n  vec4 distZ = getTextureValue(posIS + zvec) - getTextureValue(posIS - zvec);\\n\\n  // divide by spacing\\n  distX *= 0.5 * volume.inverseSpacing.x;\\n  distY *= 0.5 * volume.inverseSpacing.y;\\n  distZ *= 0.5 * volume.inverseSpacing.z;\\n\\n  mat4 result;\\n\\n  // optionally compute the 1st component\\n  #if vtkNumberOfComponents &gt; 0 &amp;&amp; !defined(vtkComponent0Proportional)\\n    {\\n      const int component = 0;\\n      vec3 normal = vec3(distX[component], distY[component], distZ[component]);\\n      float normalLength = length(normal);\\n      if (normalLength &gt; 0.0) {\\n        normal = normalize(vecISToVC(normal));\\n      }\\n      result[component] = vec4(normal, normalLength);\\n    }\\n  #endif\\n\\n  // optionally compute the 2nd component\\n  #if vtkNumberOfComponents &gt; 1 &amp;&amp; !defined(vtkComponent1Proportional)\\n    {\\n      const int component = 1;\\n      vec3 normal = vec3(distX[component], distY[component], distZ[component]);\\n      float normalLength = length(normal);\\n      if (normalLength &gt; 0.0) {\\n        normal = normalize(vecISToVC(normal));\\n      }\\n      result[component] = vec4(normal, normalLength);\\n    }\\n  #endif\\n\\n  // optionally compute the 3rd component\\n  #if vtkNumberOfComponents &gt; 2 &amp;&amp; !defined(vtkComponent2Proportional)\\n    {\\n      const int component = 2;\\n      vec3 normal = vec3(distX[component], distY[component], distZ[component]);\\n      float normalLength = length(normal);\\n      if (normalLength &gt; 0.0) {\\n        normal = normalize(vecISToVC(normal));\\n      }\\n      result[component] = vec4(normal, normalLength);\\n    }\\n  #endif\\n\\n  // optionally compute the 4th component\\n  #if vtkNumberOfComponents &gt; 3 &amp;&amp; !defined(vtkComponent3Proportional)\\n    {\\n      const int component = 3;\\n      vec3 normal = vec3(distX[component], distY[component], distZ[component]);\\n      float normalLength = length(normal);\\n      if (normalLength &gt; 0.0) {\\n        normal = normalize(vecISToVC(normal));\\n      }\\n      result[component] = vec4(normal, normalLength);\\n    }\\n  #endif\\n\\n  return result;\\n}\\n\\n//=======================================================================\\n// global shadow - secondary ray\\n\\n// henyey greenstein phase function\\nfloat phaseFunction(float cos_angle) {\\n  // divide by 2.0 instead of 4pi to increase intensity\\n  float anisotropy = volume.anisotropy;\\n  if (abs(anisotropy) &lt;= EPSILON) {\\n    // isotropic scatter returns 0.5 instead of 1/4pi to increase intensity\\n    return 0.5;\\n  }\\n  float anisotropy2 = volume.anisotropySquared;\\n  return ((1.0 - anisotropy2) /\\n          pow(1.0 + anisotropy2 - 2.0 * anisotropy * cos_angle, 1.5)) /\\n         2.0;\\n}\\n\\n// Compute the two intersection distances of the ray with the volume in VC\\n// The entry point is `rayOriginVC + distanceMin * rayDirVC` and the exit point\\n// is `rayOriginVC + distanceMax * rayDirVC` If distanceMin &lt; distanceMax, the\\n// volume is not intersected The ray origin is inside the box when distanceMin &lt;\\n// 0.0 &lt; distanceMax\\nvec2 rayIntersectVolumeDistances(vec3 rayOriginVC, vec3 rayDirVC) {\\n  // Compute origin and direction in IS\\n  vec3 rayOriginIS = posVCtoIS(rayOriginVC);\\n  vec3 rayDirIS = vecVCToIS(rayDirVC);\\n  // Don&#x27;t check for infinity as the min/max combination afterward will always\\n  // find an intersection before infinity\\n  vec3 invDir = 1.0 / rayDirIS;\\n\\n  // We have: bound = origin + t * dir\\n  // So: t = (1/dir) * (bound - origin)\\n  vec3 distancesTo0 = invDir * (vec3(0.0) - rayOriginIS);\\n  vec3 distancesTo1 = invDir * (vec3(1.0) - rayOriginIS);\\n  // Min and max distances to plane intersection per plane\\n  vec3 dMinPerAxis = min(distancesTo0, distancesTo1);\\n  vec3 dMaxPerAxis = max(distancesTo0, distancesTo1);\\n  // Overall first and last intersection\\n  float distanceMin = max(dMinPerAxis.x, max(dMinPerAxis.y, dMinPerAxis.z));\\n  float distanceMax = min(dMaxPerAxis.x, min(dMaxPerAxis.y, dMaxPerAxis.z));\\n  return vec2(distanceMin, distanceMax);\\n}\\n\\n//=======================================================================\\n// local ambient occlusion\\n#if vtkMaxLaoKernelSize &gt; 0\\n\\n  // Return a random point on the unit sphere\\n  vec3 sampleDirectionUniform(int rayIndex) {\\n    // Each ray of each fragment should be different, two sources of randomness\\n    // are used. Only depends on ray index\\n    vec2 rayRandomness = kernelSample[rayIndex];\\n    // Only depends on fragment\\n    float fragmentRandomness = fragmentSeed;\\n    // Merge both source of randomness in a single uniform random variable using\\n    // the formula (x+y &lt; 1 ? x+y : x+y-1). The simpler formula (x+y)/2 doesn&#x27;t\\n    // result in a uniform distribution\\n    vec2 mergedRandom = rayRandomness + vec2(fragmentRandomness);\\n    mergedRandom -= vec2(greaterThanEqual(mergedRandom, vec2(1.0)));\\n\\n    // Insipred by:\\n    // https://karthikkaranth.me/blog/generating-random-points-in-a-sphere/#better-choice-of-spherical-coordinates\\n    float u = mergedRandom[0];\\n    float v = mergedRandom[1];\\n    float theta = u * 2.0 * PI;\\n    float phi = acos(2.0 * v - 1.0);\\n    float sinTheta = sin(theta);\\n    float cosTheta = cos(theta);\\n    float sinPhi = sin(phi);\\n    float cosPhi = cos(phi);\\n    return vec3(sinPhi * cosTheta, sinPhi * sinTheta, cosPhi);\\n  }\\n\\n  float computeLAO(vec3 posVC, vec4 normalVC, float originalOpacity) {\\n    // apply LAO only at selected locations, otherwise return full brightness\\n    if (normalVC.w &lt;= 0.0 || originalOpacity &lt;= 0.05) {\\n      return 1.0;\\n    }\\n\\n    #ifdef EnabledGradientOpacity\\n      float gradientOpacityFactor = computeGradientOpacityFactor(normalVC.w, 0);\\n    #endif\\n\\n    float visibilitySum = 0.0;\\n    float weightSum = 0.0;\\n    for (int i = 0; i &lt; volume.kernelSize; i++) {\\n      // Only sample on an hemisphere around the normalVC.xyz axis, so\\n      // normalDotRay should be negative\\n      vec3 rayDirectionVC = sampleDirectionUniform(i);\\n      float normalDotRay = dot(normalVC.xyz, rayDirectionVC);\\n      if (normalDotRay &gt; 0.0) {\\n        // Flip rayDirectionVC when it is in the wrong hemisphere\\n        rayDirectionVC = -rayDirectionVC;\\n        normalDotRay = -normalDotRay;\\n      }\\n\\n      vec3 currPosIS = posVCtoIS(posVC);\\n      float visibility = 1.0;\\n      vec3 randomDirStepIS = vecVCToIS(rayDirectionVC * sampleDistance);\\n      for (int j = 0; j &lt; volume.kernelRadius; j++) {\\n        currPosIS += randomDirStepIS;\\n        // If out of the volume, we are done\\n        if (any(lessThan(currPosIS, vec3(0.0))) ||\\n            any(greaterThan(currPosIS, vec3(1.0)))) {\\n          break;\\n        }\\n        float opacity = getOpacityFromTexture(getTextureValue(currPosIS).r, 0, 0.5);\\n        #ifdef EnabledGradientOpacity\\n          opacity *= gradientOpacityFactor;\\n        #endif\\n        visibility *= 1.0 - opacity;\\n        // If visibility is less than EPSILON, consider it to be 0\\n        if (visibility &lt; EPSILON) {\\n          visibility = 0.0;\\n          break;\\n        }\\n      }\\n      float rayWeight = -normalDotRay;\\n      visibilitySum += visibility * rayWeight;\\n      weightSum += rayWeight;\\n    }\\n\\n    // If no sample, LAO factor is one\\n    if (weightSum == 0.0) {\\n      return 1.0;\\n    }\\n\\n    // LAO factor is the average visibility:\\n    // - visibility low =&gt; ambient low\\n    // - visibility high =&gt; ambient high\\n    float lao = visibilitySum / weightSum;\\n\\n    // Reduce variance by clamping\\n    return clamp(lao, 0.3, 1.0);\\n  }\\n#endif\\n\\n//=======================================================================\\n// Volume shadows\\n#if vtkNumberOfLights &gt; 0\\n\\n  // Non-memoised version\\n  float computeVolumeShadowWithoutCache(vec3 posVC, vec3 lightDirNormVC) {\\n    // modify sample distance with a random number between 1.5 and 3.0\\n    float rayStepLength =\\n        volumeShadowSampleDistance * mix(1.5, 3.0, fragmentSeed);\\n\\n    // in case the first sample near surface has a very tiled light ray, we need\\n    // to offset start position\\n    vec3 initialPosVC = posVC + rayStepLength * lightDirNormVC;\\n\\n    #ifdef vtkClippingPlanesOn\\n      float clippingPlanesMaxDistance = infinity;\\n      for (int i = 0; i &lt; clip_numPlanes; ++i) {\\n        // Find distance of intersection with the plane\\n        // Points are clipped when:\\n        // dot(planeOrigin - (rayOrigin + distance * rayDirection), planeNormal) &gt; 0\\n        // This is equivalent to:\\n        // dot(planeOrigin - rayOrigin, planeNormal) - distance * dot(rayDirection,\\n        // planeNormal) &gt; 0.0\\n        // We precompute the dot products, so we clip ray points when:\\n        // dotOrigin - distance * dotDirection &gt; 0.0\\n        float dotOrigin =\\n            dot(vClipPlaneOrigins[i] - initialPosVC, vClipPlaneNormals[i]);\\n        if (dotOrigin &gt; 0.0) {\\n          // The initialPosVC is clipped by this plane\\n          return 1.0;\\n        }\\n        float dotDirection = dot(lightDirNormVC, vClipPlaneNormals[i]);\\n        if (dotDirection &lt; 0.0) {\\n          // We only hit the plane if dotDirection is negative, as (distance is\\n          // positive)\\n          float intersectionDistance =\\n              dotOrigin / dotDirection; // negative divided by negative =&gt; positive\\n          clippingPlanesMaxDistance =\\n              min(clippingPlanesMaxDistance, intersectionDistance);\\n        }\\n      }\\n    #endif\\n\\n    vec2 intersectionDistances =\\n        rayIntersectVolumeDistances(initialPosVC, lightDirNormVC);\\n\\n    if (intersectionDistances[1] &lt;= intersectionDistances[0] ||\\n        intersectionDistances[1] &lt;= 0.0) {\\n      // Volume not hit or behind the ray\\n      return 1.0;\\n    }\\n\\n    // When globalIlluminationReach is 0, no sample at all\\n    // When globalIlluminationReach is 1, the ray will go through the whole\\n    // volume\\n    float maxTravelDistance = mix(0.0, volume.diagonalLength,\\n                                  volume.globalIlluminationReach);\\n    float startDistance = max(intersectionDistances[0], 0.0);\\n    float endDistance = min(intersectionDistances[1], startDistance + maxTravelDistance);\\n    #ifdef vtkClippingPlanesOn\\n      endDistance = min(endDistance, clippingPlanesMaxDistance);\\n    #endif\\n    if (endDistance - startDistance &lt; 0.0) {\\n      return 1.0;\\n    }\\n\\n    // These two variables are used to compute posIS, without having to call\\n    // VCtoIS at each step\\n    vec3 initialPosIS = posVCtoIS(initialPosVC);\\n    // The light dir is scaled and rotated, but not translated, as it is a\\n    // vector (w = 0)\\n    vec3 scaledLightDirIS = vecVCToIS(lightDirNormVC);\\n\\n    float shadow = 1.0;\\n    for (float currentDistance = startDistance; currentDistance &lt;= endDistance;\\n          currentDistance += rayStepLength) {\\n      vec3 posIS = initialPosIS + currentDistance * scaledLightDirIS;\\n      vec4 scalar = getTextureValue(posIS);\\n      float opacity = getOpacityFromTexture(scalar.r, 0, 0.5);\\n      #if defined(EnabledGradientOpacity) &amp;&amp; !defined(EnabledIndependentComponents)\\n        vec3 scalarInterp[2];\\n        vec4 normal = computeNormalForDensity(posIS, scalarInterp, 3);\\n        float opacityFactor = computeGradientOpacityFactor(normal.w, 0);\\n        opacity *= opacityFactor;\\n      #endif\\n      shadow *= 1.0 - opacity;\\n\\n      // Early termination if shadow coeff is near 0.0\\n      if (shadow &lt; EPSILON) {\\n        return 0.0;\\n      }\\n    }\\n    return shadow;\\n  }\\n\\n  // Some cache for volume shadows\\n  struct {\\n    vec3 posVC;\\n    float shadow;\\n  } cachedShadows[vtkNumberOfLights];\\n\\n  // Memoised version\\n  float computeVolumeShadow(vec3 posVC, vec3 lightDirNormVC, int lightIdx) {\\n    if (posVC == cachedShadows[lightIdx].posVC) {\\n      return cachedShadows[lightIdx].shadow;\\n    }\\n    float shadow = computeVolumeShadowWithoutCache(posVC, lightDirNormVC);\\n    cachedShadows[lightIdx].posVC = posVC;\\n    cachedShadows[lightIdx].shadow = shadow;\\n    return shadow;\\n  }\\n\\n#endif\\n\\n//=======================================================================\\n// surface light contribution\\n#if vtkNumberOfLights &gt; 0\\n  vec3 applyLighting(vec3 tColor, vec4 normalVC) {\\n    vec3 diffuse = vec3(0.0, 0.0, 0.0);\\n    vec3 specular = vec3(0.0, 0.0, 0.0);\\n    for (int lightIdx = 0; lightIdx &lt; vtkNumberOfLights; lightIdx++) {\\n      float df = dot(normalVC.xyz, lights[lightIdx].directionVC);\\n      if (df &gt; 0.0) {\\n        diffuse += df * lights[lightIdx].color;\\n        float sf = dot(normalVC.xyz, -lights[lightIdx].halfAngleVC);\\n        if (sf &gt; 0.0) {\\n          specular += pow(sf, volume.specularPower) * lights[lightIdx].color;\\n        }\\n      }\\n    }\\n    return tColor * (diffuse * volume.diffuse + volume.ambient) +\\n          specular * volume.specular;\\n  }\\n\\n  vec3 applySurfaceShadowLighting(vec3 tColor, float alpha, vec3 posVC,\\n                                  vec4 normalVC) {\\n    // everything in VC\\n    vec3 diffuse = vec3(0.0);\\n    vec3 specular = vec3(0.0);\\n    for (int ligthIdx = 0; ligthIdx &lt; vtkNumberOfLights; ligthIdx++) {\\n      vec3 vertLightDirection;\\n      float attenuation;\\n      if (lights[ligthIdx].isPositional == 1) {\\n        vertLightDirection = posVC - lights[ligthIdx].positionVC;\\n        float lightDistance = length(vertLightDirection);\\n        // Normalize with precomputed length\\n        vertLightDirection = vertLightDirection / lightDistance;\\n        // Base attenuation\\n        vec3 attenuationPolynom = lights[ligthIdx].attenuation;\\n        attenuation =\\n            1.0 / (attenuationPolynom[0] +\\n                  lightDistance * (attenuationPolynom[1] +\\n                                    lightDistance * attenuationPolynom[2]));\\n        // Cone attenuation\\n        float coneDot = dot(vertLightDirection, lights[ligthIdx].directionVC);\\n        // Per OpenGL standard cone angle is 90 or less for a spot light\\n        if (lights[ligthIdx].coneAngle &lt;= 90.0) {\\n          if (coneDot &gt;= cos(radians(lights[ligthIdx].coneAngle))) {\\n            // Inside the cone\\n            attenuation *= pow(coneDot, lights[ligthIdx].exponent);\\n          } else {\\n            // Outside the cone\\n            attenuation = 0.0;\\n          }\\n        }\\n      } else {\\n        vertLightDirection = lights[ligthIdx].directionVC;\\n        attenuation = 1.0;\\n      }\\n\\n      float ndotL = dot(normalVC.xyz, vertLightDirection);\\n      if (ndotL &lt; 0.0 &amp;&amp; twoSidedLighting == 1) {\\n        ndotL = -ndotL;\\n      }\\n      if (ndotL &gt; 0.0) {\\n        // Diffuse\\n        diffuse += ndotL * attenuation * lights[ligthIdx].color;\\n        // Specular\\n        float vdotR =\\n            dot(-rayDirVC, normalize(vertLightDirection - 2.0 * ndotL * normalVC.xyz));\\n        if (vdotR &gt; 0.0) {\\n          specular += pow(vdotR, volume.specularPower) * attenuation *\\n                      lights[ligthIdx].color;\\n        }\\n      }\\n    }\\n    #if vtkMaxLaoKernelSize &gt; 0\\n      float laoFactor = computeLAO(posVC, normalVC, alpha);\\n    #else\\n      const float laoFactor = 1.0;\\n    #endif\\n    return tColor * (diffuse * volume.diffuse +\\n                    volume.ambient * laoFactor) +\\n          specular * volume.specular;\\n  }\\n\\n  vec3 applyVolumeShadowLighting(vec3 tColor, vec3 posVC) {\\n    // Here we have no effect of cones and no attenuation\\n    vec3 diffuse = vec3(0.0);\\n    for (int lightIdx = 0; lightIdx &lt; vtkNumberOfLights; lightIdx++) {\\n      vec3 lightDirVC = lights[lightIdx].isPositional == 1\\n                            ? normalize(lights[lightIdx].positionVC - posVC)\\n                            : -lights[lightIdx].directionVC;\\n      float shadowCoeff = computeVolumeShadow(posVC, lightDirVC, lightIdx);\\n      float phaseAttenuation = phaseFunction(dot(rayDirVC, lightDirVC));\\n      diffuse += phaseAttenuation * shadowCoeff * lights[lightIdx].color;\\n    }\\n    return tColor * (diffuse * volume.diffuse + volume.ambient);\\n  }\\n#endif\\n\\n// LAO of surface shadows and volume shadows only work with dependent components\\nvec3 applyAllLightning(vec3 tColor, float alpha, vec3 posVC,\\n                       vec4 surfaceNormalVC) {\\n  #if vtkNumberOfLights &gt; 0\\n    // 0 &lt;= volCoeff &lt; EPSILON =&gt; only surface shadows\\n    // EPSILON &lt;= volCoeff &lt; 1 - EPSILON =&gt; mix of surface and volume shadows\\n    // 1 - EPSILON &lt;= volCoeff =&gt; only volume shadows\\n    float volCoeff = volume.volumetricScatteringBlending *\\n                    (1.0 - alpha / 2.0) *\\n                    (1.0 - atan(surfaceNormalVC.w) * INV4PI);\\n\\n    // Compute surface lighting if needed\\n    vec3 surfaceShadedColor = tColor;\\n    #ifdef EnableSurfaceLighting\\n      if (volCoeff &lt; 1.0 - EPSILON) {\\n        surfaceShadedColor =\\n            applySurfaceShadowLighting(tColor, alpha, posVC, surfaceNormalVC);\\n      }\\n    #endif\\n\\n    // Compute volume lighting if needed\\n    vec3 volumeShadedColor = tColor;\\n    #ifdef EnableVolumeLighting\\n      if (volCoeff &gt;= EPSILON) {\\n        volumeShadedColor = applyVolumeShadowLighting(tColor, posVC);\\n      }\\n    #endif\\n\\n    // Return the right mix\\n    if (volCoeff &lt; EPSILON) {\\n      // Surface shadows\\n      return surfaceShadedColor;\\n    }\\n    if (volCoeff &gt;= 1.0 - EPSILON) {\\n      // Volume shadows\\n      return volumeShadedColor;\\n    }\\n    // Mix of surface and volume shadows\\n    return mix(surfaceShadedColor, volumeShadedColor, volCoeff);\\n  #endif\\n  return tColor;\\n}\\n\\nvec4 getColorForLabelOutline() {\\n  vec3 centerPosIS =\\n      fragCoordToIndexSpace(gl_FragCoord); // pos in texture space\\n  vec4 centerValue = getTextureValue(centerPosIS);\\n  bool pixelOnBorder = false;\\n  vec4 tColor = vec4(getColorFromTexture(centerValue.r, 0, 0.5),\\n                     getOpacityFromTexture(centerValue.r, 0, 0.5));\\n\\n  int segmentIndex = int(centerValue.r * 255.0);\\n\\n  // Use texture sampling for outlineThickness\\n  float textureCoordinate = float(segmentIndex - 1) / 1024.0;\\n  float textureValue =\\n      texture2D(labelOutlineThicknessTexture, vec2(textureCoordinate, 0.5)).r;\\n  int actualThickness = int(textureValue * 255.0);\\n\\n  // If it is the background (segment index 0), we should quickly bail out.\\n  // Previously, this was determined by tColor.a, which was incorrect as it\\n  // prevented the outline from appearing when the fill is 0.\\n  if (segmentIndex == 0) {\\n    return vec4(0, 0, 0, 0);\\n  }\\n\\n  // Only perform outline check on fragments rendering voxels that aren&#x27;t\\n  // invisible. Saves a bunch of needless checks on the background.\\n  // TODO define epsilon when building shader?\\n  for (int i = -actualThickness; i &lt;= actualThickness; i++) {\\n    for (int j = -actualThickness; j &lt;= actualThickness; j++) {\\n      if (i == 0 &amp;&amp; j == 0) {\\n        continue;\\n      }\\n\\n      vec4 neighborPixelCoord =\\n          vec4(gl_FragCoord.x + float(i), gl_FragCoord.y + float(j),\\n               gl_FragCoord.z, gl_FragCoord.w);\\n\\n      vec3 neighborPosIS = fragCoordToIndexSpace(neighborPixelCoord);\\n      vec4 value = getTextureValue(neighborPosIS);\\n\\n      // If any of my neighbours are not the same value as I\\n      // am, this means I am on the border of the segment.\\n      // We can break the loops\\n      if (any(notEqual(value, centerValue))) {\\n        pixelOnBorder = true;\\n        break;\\n      }\\n    }\\n\\n    if (pixelOnBorder == true) {\\n      break;\\n    }\\n  }\\n\\n  // If I am on the border, I am displayed at full opacity\\n  if (pixelOnBorder == true) {\\n    tColor.a = volume.outlineOpacity;\\n  }\\n\\n  return tColor;\\n}\\n\\nvec4 getColorForAdditivePreset(vec4 tValue, vec3 posVC, vec3 posIS) {\\n  // compute normals\\n  mat4 normalMat = computeMat4Normal(posIS, tValue);\\n  vec4 normalLights[2];\\n  normalLights[0] = normalMat[0];\\n  normalLights[1] = normalMat[1];\\n  #if vtkNumberOfLights &gt; 0\\n    if (volume.computeNormalFromOpacity == 1) {\\n      for (int component = 0; component &lt; 2; ++component) {\\n        vec3 scalarInterp[2];\\n        float height = volume.transferFunctionsSampleHeight[component];\\n        computeNormalForDensity(posIS, scalarInterp, component);\\n        normalLights[component] =\\n            computeDensityNormal(scalarInterp, height, 1.0, component);\\n      }\\n    }\\n  #endif\\n\\n  // compute opacities\\n  float opacities[2];\\n  opacities[0] = getOpacityFromTexture(\\n      tValue[0], 0, volume.transferFunctionsSampleHeight[0]);\\n  opacities[1] = getOpacityFromTexture(\\n      tValue[1], 1, volume.transferFunctionsSampleHeight[1]);\\n  #ifdef EnabledGradientOpacity\\n    for (int component = 0; component &lt; 2; ++component) {\\n      opacities[component] *=\\n          computeGradientOpacityFactor(normalMat[component].a, component);\\n    }\\n  #endif\\n  float opacitySum = opacities[0] + opacities[1];\\n  if (opacitySum &lt;= 0.0) {\\n    return vec4(0.0);\\n  }\\n\\n  // mix the colors and opacities\\n  vec3 colors[2];\\n  for (int component = 0; component &lt; 2; ++component) {\\n    float sampleHeight = volume.transferFunctionsSampleHeight[component];\\n    vec3 color = getColorFromTexture(tValue[component], component, sampleHeight);\\n    color = applyAllLightning(color, opacities[component], posVC,\\n                              normalLights[component]);\\n    colors[component] = color;\\n  }\\n  vec3 mixedColor =\\n      (opacities[0] * colors[0] + opacities[1] * colors[1]) / opacitySum;\\n  return vec4(mixedColor, min(1.0, opacitySum));\\n}\\n\\nvec4 getColorForColorizePreset(vec4 tValue, vec3 posVC, vec3 posIS) {\\n  // compute normals\\n  mat4 normalMat = computeMat4Normal(posIS, tValue);\\n  vec4 normalLight = normalMat[0];\\n  #if vtkNumberOfLights &gt; 0\\n    if (volume.computeNormalFromOpacity == 1) {\\n      vec3 scalarInterp[2];\\n      float height = volume.transferFunctionsSampleHeight[0];\\n      computeNormalForDensity(posIS, scalarInterp, 0);\\n      normalLight = computeDensityNormal(scalarInterp, height, 1.0, 0);\\n    }\\n  #endif\\n\\n  // compute opacities\\n  float opacity = getOpacityFromTexture(\\n      tValue[0], 0, volume.transferFunctionsSampleHeight[0]);\\n  #ifdef EnabledGradientOpacity\\n    opacity *= computeGradientOpacityFactor(normalMat[0].a, 0);\\n  #endif\\n\\n  // colorizing component\\n  vec3 colorizingColor = getColorFromTexture(\\n      tValue[0], 1, volume.transferFunctionsSampleHeight[1]);\\n  float colorizingOpacity = getOpacityFromTexture(\\n      tValue[1], 1, volume.transferFunctionsSampleHeight[1]);\\n\\n  // mix the colors and opacities\\n  vec3 color =\\n      getColorFromTexture(tValue[0], 0,\\n                          volume.transferFunctionsSampleHeight[0]) *\\n      mix(vec3(1.0), colorizingColor, colorizingOpacity);\\n  color = applyAllLightning(color, opacity, posVC, normalLight);\\n  return vec4(color, opacity);\\n}\\n\\nvec4 getColorForDefaultIndependentPreset(vec4 tValue, vec3 posIS) {\\n\\n  // compute the normal vectors as needed\\n  #if defined(EnabledGradientOpacity) || vtkNumberOfLights &gt; 0\\n    mat4 normalMat = computeMat4Normal(posIS, tValue);\\n  #endif\\n\\n  // process color and opacity for each component\\n  // initial value of alpha is determined by wether the first component is\\n  // proportional or not\\n  #if defined(vtkComponent0Proportional)\\n    // when it is proportional, it starts at 1 (neutral for multiplications)\\n    float alpha = 1.0;\\n  #else\\n    // when it is not proportional, it starts at 0 (neutral for additions)\\n    float alpha = 0.0;\\n  #endif\\n\\n  vec3 mixedColor = vec3(0.0);\\n  #if vtkNumberOfComponents &gt; 0\\n    {\\n      const int component = 0;\\n      vec3 color = getColorFromTexture(\\n          tValue[component], component,\\n          volume.transferFunctionsSampleHeight[component]);\\n      float opacity = getOpacityFromTexture(\\n          tValue[component], component,\\n          volume.transferFunctionsSampleHeight[component]);\\n      #if !defined(vtkComponent0Proportional)\\n        float alphaContribution = volume.independentComponentMix[component] * opacity;\\n        #ifdef EnabledGradientOpacity\\n          alphaContribution *= computeGradientOpacityFactor(normalMat[component].a, component);\\n        #endif\\n        alpha += alphaContribution;\\n        #if vtkNumberOfLights &gt; 0\\n          color = applyLighting(color, normalMat[component]);\\n        #endif\\n      #else\\n        color *= opacity;\\n        alpha *= mix(opacity, 1.0,\\n                    (1.0 - volume.independentComponentMix[component]));\\n      #endif\\n      mixedColor += volume.independentComponentMix[component] * color;\\n    }\\n  #endif\\n  #if vtkNumberOfComponents &gt; 1\\n    {\\n      const int component = 1;\\n      vec3 color = getColorFromTexture(\\n          tValue[component], component,\\n          volume.transferFunctionsSampleHeight[component]);\\n      float opacity = getOpacityFromTexture(\\n          tValue[component], component,\\n          volume.transferFunctionsSampleHeight[component]);\\n      #if !defined(vtkComponent1Proportional)\\n        float alphaContribution = volume.independentComponentMix[component] * opacity;\\n        #ifdef EnabledGradientOpacity\\n          alphaContribution *= computeGradientOpacityFactor(normalMat[component].a, component);\\n        #endif\\n        alpha += alphaContribution;\\n        #if vtkNumberOfLights &gt; 0\\n          color = applyLighting(color, normalMat[component]);\\n        #endif\\n      #else\\n        color *= opacity;\\n        alpha *= mix(opacity, 1.0,\\n                    (1.0 - volume.independentComponentMix[component]));\\n      #endif\\n      mixedColor += volume.independentComponentMix[component] * color;\\n    }\\n  #endif\\n  #if vtkNumberOfComponents &gt; 2\\n    {\\n      const int component = 2;\\n      vec3 color = getColorFromTexture(\\n          tValue[component], component,\\n          volume.transferFunctionsSampleHeight[component]);\\n      float opacity = getOpacityFromTexture(\\n          tValue[component], component,\\n          volume.transferFunctionsSampleHeight[component]);\\n      #if !defined(vtkComponent2Proportional)\\n        float alphaContribution = volume.independentComponentMix[component] * opacity;\\n        #ifdef EnabledGradientOpacity\\n          alphaContribution *= computeGradientOpacityFactor(normalMat[component].a, component);\\n        #endif\\n        alpha += alphaContribution;\\n        #if vtkNumberOfLights &gt; 0\\n          color = applyLighting(color, normalMat[component]);\\n        #endif\\n      #else\\n        color *= opacity;\\n        alpha *= mix(opacity, 1.0,\\n                    (1.0 - volume.independentComponentMix[component]));\\n      #endif\\n      mixedColor += volume.independentComponentMix[component] * color;\\n    }\\n  #endif\\n  #if vtkNumberOfComponents &gt; 3\\n    {\\n      const int component = 3;\\n      vec3 color = getColorFromTexture(\\n          tValue[component], component,\\n          volume.transferFunctionsSampleHeight[component]);\\n      float opacity = getOpacityFromTexture(\\n          tValue[component], component,\\n          volume.transferFunctionsSampleHeight[component]);\\n      #if !defined(vtkComponent3Proportional)\\n        float alphaContribution = volume.independentComponentMix[component] * opacity;\\n        #ifdef EnabledGradientOpacity\\n          alphaContribution *= computeGradientOpacityFactor(normalMat[component].a, component);\\n        #endif\\n        alpha += alphaContribution;\\n        #if vtkNumberOfLights &gt; 0\\n          color = applyLighting(color, normalMat[component]);\\n        #endif\\n      #else\\n        color *= opacity;\\n        alpha *= mix(opacity, 1.0,\\n                    (1.0 - volume.independentComponentMix[component]));\\n      #endif\\n      mixedColor += volume.independentComponentMix[component] * color;\\n    }\\n  #endif\\n\\n  return vec4(mixedColor, alpha);\\n}\\n\\nvec4 getColorForDependentComponents(vec4 tValue, vec3 posVC, vec3 posIS) {\\n  #if defined(EnabledGradientOpacity) || vtkNumberOfLights &gt; 0\\n    // use component 3 of the opacity texture as getTextureValue() sets alpha to\\n    // the opacity value\\n    vec3 scalarInterp[2];\\n    vec4 normal0 = computeNormalForDensity(posIS, scalarInterp, 3);\\n    float gradientOpacity = computeGradientOpacityFactor(normal0.a, 0);\\n  #endif\\n\\n  // get color and opacity\\n  #if vtkNumberOfComponents == 1\\n    vec3 tColor = getColorFromTexture(tValue.r, 0, 0.5);\\n    float alpha = getOpacityFromTexture(tValue.r, 0, 0.5);\\n  #endif\\n  #if vtkNumberOfComponents == 2\\n    vec3 tColor = vec3(tValue.r * volume.colorTextureScale[0] +\\n                  volume.colorTextureShift[0]);\\n    float alpha = getOpacityFromTexture(tValue.a, 1, 0.5);\\n  #endif\\n  #if vtkNumberOfComponents == 3\\n      vec3 tColor = tValue.rgb * volume.colorTextureScale.rgb +\\n              volume.colorTextureShift.rgb;\\n      float alpha = getOpacityFromTexture(tValue.a, 0, 0.5);\\n  #endif\\n  #if vtkNumberOfComponents == 4\\n      vec3 tColor = tValue.rgb * volume.colorTextureScale.rgb +\\n              volume.colorTextureShift.rgb;\\n      float alpha = getOpacityFromTexture(tValue.a, 3, 0.5);\\n  #endif\\n\\n  // Apply gradient opacity\\n  #if defined(EnabledGradientOpacity)\\n    alpha *= gradientOpacity;\\n  #endif\\n\\n  #if vtkNumberOfComponents == 1\\n    if (alpha &lt; EPSILON) {\\n      return vec4(0.0);\\n    }\\n  #endif\\n\\n  // lighting\\n  #if vtkNumberOfLights &gt; 0\\n    vec4 normalLight;\\n    if (volume.computeNormalFromOpacity == 1) {\\n      if (normal0[3] != 0.0) {\\n        normalLight =\\n            computeDensityNormal(scalarInterp, 0.5, gradientOpacity, 0);\\n        if (normalLight[3] == 0.0) {\\n          normalLight = normal0;\\n        }\\n      }\\n    } else {\\n      normalLight = normal0;\\n    }\\n    tColor = applyAllLightning(tColor, alpha, posVC, normalLight);\\n  #endif\\n\\n  return vec4(tColor, alpha);\\n}\\n\\nvec4 getColorForValue(vec4 tValue, vec3 posVC, vec3 posIS) {\\n  #ifdef EnableColorForValueFunctionId0\\n    return getColorForDependentComponents(tValue, posVC, posIS);\\n  #endif\\n\\n  #ifdef EnableColorForValueFunctionId1\\n    return getColorForAdditivePreset(tValue, posVC, posIS);\\n  #endif\\n\\n  #ifdef EnableColorForValueFunctionId2\\n    return getColorForColorizePreset(tValue, posVC, posIS);\\n  #endif\\n\\n  #ifdef EnableColorForValueFunctionId3\\n    /*\\n      * Mix the color information from all the independent components to get a\\n      * single rgba output. See other shader functions like\\n      * `getColorForAdditivePreset` to learn how to create a custom color mix.\\n      * The custom color mix should return a value, but if it doesn&#x27;t, it will\\n      * fallback on the default shading\\n      */\\n    //VTK::CustomColorMix\\n  #endif\\n\\n  #if defined(EnableColorForValueFunctionId4) || defined(EnableColorForValueFunctionId3)\\n    return getColorForDefaultIndependentPreset(tValue, posIS);\\n  #endif\\n\\n  #ifdef EnableColorForValueFunctionId5\\n    return getColorForLabelOutline();\\n  #endif\\n}\\n\\nbool valueWithinScalarRange(vec4 val) {\\n  #if vtkNumberOfComponents &gt; 1 &amp;&amp; !defined(EnabledIndependentComponents)\\n    return false;\\n  #endif\\n  vec4 rangeMin = volume.ipScalarRangeMin;\\n  vec4 rangeMax = volume.ipScalarRangeMax;\\n  for (int component = 0; component &lt; vtkNumberOfComponents; ++component) {\\n    if (val[component] &lt; rangeMin[component] ||\\n        rangeMax[component] &lt; val[component]) {\\n      return false;\\n    }\\n  }\\n  return true;\\n}\\n\\n#if vtkBlendMode == LABELMAP_EDGE_PROJECTION_BLEND\\n  bool checkOnEdgeForNeighbor(int xFragmentOffset, int yFragmentOffset,\\n                              int segmentIndex, vec3 stepIS) {\\n    vec3 volumeDimensions = vec3(volume.dimensions);\\n    vec4 neighborPixelCoord = vec4(gl_FragCoord.x + float(xFragmentOffset),\\n                                  gl_FragCoord.y + float(yFragmentOffset),\\n                                  gl_FragCoord.z, gl_FragCoord.w);\\n    vec3 originalNeighborPosIS = fragCoordToIndexSpace(neighborPixelCoord);\\n\\n    vec3 neighborPosIS = originalNeighborPosIS;\\n    for (int k = 0; k &lt; vtkMaximumNumberOfSamples / 2; ++k) {\\n      ivec3 texCoord = ivec3(neighborPosIS * volumeDimensions);\\n      vec4 texValue = rawFetchTexture(texCoord);\\n      if (int(texValue.g) == segmentIndex) {\\n        // not on edge\\n        return false;\\n      }\\n      neighborPosIS += stepIS;\\n    }\\n\\n    neighborPosIS = originalNeighborPosIS;\\n    for (int k = 0; k &lt; vtkMaximumNumberOfSamples / 2; ++k) {\\n      ivec3 texCoord = ivec3(neighborPosIS * volumeDimensions);\\n      vec4 texValue = rawFetchTexture(texCoord);\\n      if (int(texValue.g) == segmentIndex) {\\n        // not on edge\\n        return false;\\n      }\\n      neighborPosIS -= stepIS;\\n    }\\n\\n    // onedge\\n    float sampleHeight = volume.transferFunctionsSampleHeight[1];\\n    vec3 tColorSegment =\\n        getColorFromTexture(float(segmentIndex), 1, sampleHeight);\\n    float pwfValueSegment =\\n        getOpacityFromTexture(float(segmentIndex), 1, sampleHeight);\\n    gl_FragData[0] = vec4(tColorSegment, pwfValueSegment);\\n    return true;\\n  }\\n#endif\\n\\nvec4 getColorAtPos(vec3 posVC) {\\n  vec3 posIS = posVCtoIS(posVC);\\n  vec4 texValue = getTextureValue(posIS);\\n  return getColorForValue(texValue, posVC, posIS);\\n}\\n\\n//=======================================================================\\n// Apply the specified blend mode operation along the ray&#x27;s path.\\n//\\nvoid applyBlend(vec3 rayOriginVC, vec3 rayDirVC, float minDistance,\\n                float maxDistance) {\\n  // start slightly inside and apply some jitter\\n  vec3 stepVC = rayDirVC * sampleDistance;\\n  float raySteps = (maxDistance - minDistance) / sampleDistance;\\n\\n  // Avoid 0.0 jitter\\n  float jitter = 0.01 + 0.99 * fragmentSeed;\\n\\n  #if vtkBlendMode == COMPOSITE_BLEND\\n    // now map through opacity and color\\n    vec3 firstPosVC = rayOriginVC + minDistance * rayDirVC;\\n    vec4 firstColor = getColorAtPos(firstPosVC);\\n\\n    // handle very thin volumes\\n    if (raySteps &lt;= 1.0) {\\n      firstColor.a = 1.0 - pow(1.0 - firstColor.a, raySteps);\\n      gl_FragData[0] = firstColor;\\n      return;\\n    }\\n\\n    // first color only counts for `jitter` factor of the step\\n    firstColor.a = 1.0 - pow(1.0 - firstColor.a, jitter);\\n    vec4 color = vec4(firstColor.rgb * firstColor.a, firstColor.a);\\n    vec3 posVC = firstPosVC + jitter * stepVC;\\n    float stepsTraveled = jitter;\\n\\n    for (int i = 0; i &lt; vtkMaximumNumberOfSamples; ++i) {\\n      // If we have reached the last step, break\\n      if (stepsTraveled + 1.0 &gt;= raySteps) {\\n        break;\\n      }\\n      vec4 tColor = getColorAtPos(posVC);\\n\\n      color = color + vec4(tColor.rgb * tColor.a, tColor.a) * (1.0 - color.a);\\n      stepsTraveled++;\\n      posVC += stepVC;\\n      if (color.a &gt; 0.99) {\\n        color.a = 1.0;\\n        break;\\n      }\\n    }\\n\\n    if (color.a &lt; 0.99 &amp;&amp; (raySteps - stepsTraveled) &gt; 0.0) {\\n      vec3 endPosVC = rayOriginVC + maxDistance * rayDirVC;\\n      vec4 tColor = getColorAtPos(endPosVC);\\n      tColor.a = 1.0 - pow(1.0 - tColor.a, raySteps - stepsTraveled);\\n\\n      float mix = (1.0 - color.a);\\n      color = color + vec4(tColor.rgb * tColor.a, tColor.a) * mix;\\n    }\\n\\n    gl_FragData[0] = vec4(color.rgb / color.a, color.a);\\n  #endif\\n\\n  #if vtkBlendMode == MAXIMUM_INTENSITY_BLEND ||                                 \\\\\\n      vtkBlendMode == MINIMUM_INTENSITY_BLEND\\n    // Find maximum/minimum intensity along the ray.\\n\\n    // Define the operation we will use (min or max)\\n    #if vtkBlendMode == MAXIMUM_INTENSITY_BLEND\\n      #define OP max\\n    #else\\n      #define OP min\\n    #endif\\n\\n    vec3 posVC = rayOriginVC + minDistance * rayDirVC;\\n    float stepsTraveled = 0.0;\\n\\n    // Find a value to initialize the selected variables\\n    vec4 selectedValue;\\n    vec3 selectedPosVC;\\n    vec3 selectedPosIS;\\n    {\\n      vec3 posIS = posVCtoIS(posVC);\\n      selectedValue = getTextureValue(posIS);\\n      selectedPosVC = posVC;\\n      selectedPosIS = posIS;\\n    }\\n\\n    // If the clipping range is shorter than the sample distance\\n    // we can skip the sampling loop along the ray.\\n    if (raySteps &lt;= 1.0) {\\n      gl_FragData[0] = getColorForValue(selectedValue, selectedPosVC, selectedPosIS);\\n      return;\\n    }\\n\\n    posVC += jitter * stepVC;\\n    stepsTraveled += jitter;\\n\\n    // Sample along the ray until vtkMaximumNumberOfSamples,\\n    // ending slightly inside the total distance\\n    for (int i = 0; i &lt; vtkMaximumNumberOfSamples; ++i) {\\n      // If we have reached the last step, break\\n      if (stepsTraveled + 1.0 &gt;= raySteps) {\\n        break;\\n      }\\n\\n      // Get selected values\\n      vec3 posIS = posVCtoIS(posVC);\\n      vec4 previousSelectedValue = selectedValue;\\n      vec4 currentValue = getTextureValue(posIS);\\n      selectedValue = OP(selectedValue, currentValue);\\n      if (previousSelectedValue != selectedValue) {\\n        selectedPosVC = posVC;\\n        selectedPosIS = posIS;\\n      }\\n\\n      // Otherwise, continue along the ray\\n      stepsTraveled++;\\n      posVC += stepVC;\\n    }\\n\\n    // Perform the last step along the ray using the\\n    // residual distance\\n    posVC = rayOriginVC + maxDistance * rayDirVC;\\n    {\\n      vec3 posIS = posVCtoIS(posVC);\\n      vec4 previousSelectedValue = selectedValue;\\n      vec4 currentValue = getTextureValue(posIS);\\n      selectedValue = OP(selectedValue, currentValue);\\n      if (previousSelectedValue != selectedValue) {\\n        selectedPosVC = posVC;\\n        selectedPosIS = posIS;\\n      }\\n    }\\n\\n    gl_FragData[0] = getColorForValue(selectedValue, selectedPosVC, selectedPosIS);\\n  #endif\\n\\n  #if vtkBlendMode == ADDITIVE_INTENSITY_BLEND ||                                \\\\\\n      vtkBlendMode == AVERAGE_INTENSITY_BLEND\\n    vec4 sum = vec4(0.);\\n    #if vtkBlendMode == AVERAGE_INTENSITY_BLEND\\n      float totalWeight = 0.0;\\n    #endif\\n    vec3 posVC = rayOriginVC + minDistance * rayDirVC;\\n    float stepsTraveled = 0.0;\\n\\n    vec3 posIS = posVCtoIS(posVC);\\n    vec4 value = getTextureValue(posIS);\\n\\n    if (raySteps &lt;= 1.0) {\\n      gl_FragData[0] = getColorForValue(value * raySteps, posVC, posIS);\\n      return;\\n    }\\n\\n    if (valueWithinScalarRange(value)) {\\n      sum += value * jitter;\\n      #if vtkBlendMode == AVERAGE_INTENSITY_BLEND\\n        totalWeight += jitter;\\n      #endif\\n    }\\n    posVC += jitter * stepVC;\\n    stepsTraveled += jitter;\\n\\n    // Sample along the ray until vtkMaximumNumberOfSamples,\\n    // ending slightly inside the total distance\\n    for (int i = 0; i &lt; vtkMaximumNumberOfSamples; ++i) {\\n      // If we have reached the last step, break\\n      if (stepsTraveled + 1.0 &gt;= raySteps) {\\n        break;\\n      }\\n\\n      posIS = posVCtoIS(posVC);\\n      value = getTextureValue(posIS);\\n      // One can control the scalar range by setting the AverageIPScalarRange to\\n      // disregard scalar values, not in the range of interest, from the average\\n      // computation. Notes:\\n      // - We are comparing all values in the texture to see if any of them\\n      //   are outside of the scalar range. In the future we might want to allow\\n      //   scalar ranges for each component.\\n      if (valueWithinScalarRange(value)) {\\n        sum += value;\\n        #if vtkBlendMode == AVERAGE_INTENSITY_BLEND\\n          totalWeight++;\\n        #endif\\n      }\\n\\n      stepsTraveled++;\\n      posVC += stepVC;\\n    }\\n\\n    // Perform the last step along the ray using the\\n    // residual distance\\n    posVC = rayOriginVC + maxDistance * rayDirVC;\\n    posIS = posVCtoIS(posVC);\\n    value = getTextureValue(posIS);\\n    if (valueWithinScalarRange(value)) {\\n      sum += value;\\n      #if vtkBlendMode == AVERAGE_INTENSITY_BLEND\\n        totalWeight += raySteps - stepsTraveled;\\n      #endif\\n    }\\n\\n    #if vtkBlendMode == AVERAGE_INTENSITY_BLEND\\n      sum /= vec4(totalWeight, totalWeight, totalWeight, 1.0);\\n    #endif\\n\\n    gl_FragData[0] = getColorForValue(sum, posVC, posIS);\\n  #endif\\n\\n  #if vtkBlendMode == RADON_TRANSFORM_BLEND\\n    float normalizedRayIntensity = 1.0;\\n    vec3 posVC = rayOriginVC + minDistance * rayDirVC;\\n    float stepsTraveled = 0.0;\\n\\n    // handle very thin volumes\\n    if (raySteps &lt;= 1.0) {\\n      vec3 posIS = posVCtoIS(posVC);\\n      vec4 tValue = getTextureValue(posIS);\\n      normalizedRayIntensity -= raySteps * sampleDistance *\\n                                getOpacityFromTexture(tValue.r, 0, 0.5);\\n      gl_FragData[0] =\\n          vec4(getColorFromTexture(normalizedRayIntensity, 0, 0.5), 1.0);\\n      return;\\n    }\\n\\n    posVC += jitter * stepVC;\\n    stepsTraveled += jitter;\\n\\n    for (int i = 0; i &lt; vtkMaximumNumberOfSamples; ++i) {\\n      if (stepsTraveled + 1.0 &gt;= raySteps) {\\n        break;\\n      }\\n\\n      vec3 posIS = posVCtoIS(posVC);\\n      vec4 value = getTextureValue(posIS);\\n      // Convert scalar value to normalizedRayIntensity coefficient and\\n      // accumulate normalizedRayIntensity\\n      normalizedRayIntensity -=\\n          sampleDistance * getOpacityFromTexture(value.r, 0, 0.5);\\n\\n      posVC += stepVC;\\n      stepsTraveled++;\\n    }\\n\\n    // map normalizedRayIntensity to color\\n    gl_FragData[0] =\\n        vec4(getColorFromTexture(normalizedRayIntensity, 0, 0.5), 1.0);\\n  #endif\\n\\n  #if vtkBlendMode == LABELMAP_EDGE_PROJECTION_BLEND\\n    // Only works with a single volume\\n    vec3 posVC = rayOriginVC + minDistance * rayDirVC;\\n    float stepsTraveled = 0.0;\\n    vec3 posIS = posVCtoIS(posVC);\\n    vec4 tValue = getTextureValue(posIS);\\n    if (raySteps &lt;= 1.0) {\\n      gl_FragData[0] = getColorForValue(tValue, posVC, posIS);\\n      return;\\n    }\\n\\n    vec3 stepIS = vecVCToIS(stepVC);\\n    vec4 value = tValue;\\n    posIS += jitter * stepIS;\\n    stepsTraveled += jitter;\\n    vec3 maxPosIS = posIS; // Store the position of the max value\\n    int segmentIndex = int(value.g);\\n    bool originalPosHasSeenNonZero = false;\\n\\n    if (segmentIndex != 0) {\\n      // Tried using the segment index in an boolean array but reading\\n      // from the array by dynamic indexing was horrondously slow\\n      // so use bit masking instead and assign 1 to the bit corresponding to the\\n      // segment index and later check if the bit is set via bit operations\\n      setLabelOutlineBit(segmentIndex);\\n    }\\n\\n    // Sample along the ray until vtkMaximumNumberOfSamples,\\n    // ending slightly inside the total distance\\n    for (int i = 0; i &lt; vtkMaximumNumberOfSamples; ++i) {\\n      // If we have reached the last step, break\\n      if (stepsTraveled + 1.0 &gt;= raySteps) {\\n        break;\\n      }\\n\\n      // compute the scalar\\n      tValue = getTextureValue(posIS);\\n      segmentIndex = int(tValue.g);\\n\\n      if (segmentIndex != 0) {\\n        originalPosHasSeenNonZero = true;\\n        setLabelOutlineBit(segmentIndex);\\n      }\\n\\n      if (tValue.r &gt; value.r) {\\n        value = tValue;   // Update the max value\\n        maxPosIS = posIS; // Update the position where max occurred\\n      }\\n\\n      // Otherwise, continue along the ray\\n      stepsTraveled++;\\n      posIS += stepIS;\\n    }\\n\\n    // Perform the last step along the ray using the\\n    // residual distance\\n    posIS = posVCtoIS(rayOriginVC + maxDistance * rayDirVC);\\n    tValue = getTextureValue(posIS);\\n\\n    if (tValue.r &gt; value.r) {\\n      value = tValue;   // Update the max value\\n      maxPosIS = posIS; // Update the position where max occurred\\n    }\\n\\n    // If we have not seen any non-zero segments, we can return early\\n    // and grab color from the actual center value first component (image)\\n    if (!originalPosHasSeenNonZero) {\\n      vec3 maxPosVC = posIStoVC(maxPosIS);\\n      gl_FragData[0] = getColorForValue(value, maxPosVC, maxPosIS);\\n      return;\\n    }\\n\\n    vec3 neighborRayStepsIS = stepIS;\\n    float neighborRaySteps = raySteps;\\n    bool shouldLookInAllNeighbors = false;\\n\\n    vec3 volumeSpacings = volume.spacing;\\n    float minVoxelSpacing =\\n        min(volumeSpacings[0], min(volumeSpacings[1], volumeSpacings[2]));\\n    vec4 base =\\n        vec4(gl_FragCoord.x, gl_FragCoord.y, gl_FragCoord.z, gl_FragCoord.w);\\n\\n    vec4 baseXPlus = vec4(gl_FragCoord.x + 1.0, gl_FragCoord.y, gl_FragCoord.z,\\n                          gl_FragCoord.w);\\n    vec4 baseYPlus = vec4(gl_FragCoord.x, gl_FragCoord.y + 1.0, gl_FragCoord.z,\\n                          gl_FragCoord.w);\\n\\n    vec3 baseWorld = fragCoordToWorld(base);\\n    vec3 baseXPlusWorld = fragCoordToWorld(baseXPlus);\\n    vec3 baseYPlusWorld = fragCoordToWorld(baseYPlus);\\n\\n    float XPlusDiff = length(baseXPlusWorld - baseWorld);\\n    float YPlusDiff = length(baseYPlusWorld - baseWorld);\\n\\n    float minFragSpacingWorld = min(XPlusDiff, YPlusDiff);\\n\\n    for (int s = 1; s &lt; MAX_SEGMENT_INDEX; s++) {\\n      // bail out quickly if the segment index has not\\n      // been seen by the center segment\\n      if (!isLabelOutlineBitSet(s)) {\\n        continue;\\n      }\\n\\n      // Use texture sampling for outlineThickness so that we can have\\n      // per segment thickness\\n      float textureCoordinate = float(s - 1) / 1024.0;\\n      float textureValue =\\n          texture2D(labelOutlineThicknessTexture, vec2(textureCoordinate, 0.5)).r;\\n\\n      int actualThickness = int(textureValue * 255.0);\\n\\n      // check the extreme points in the neighborhood since there is a better\\n      // chance of finding the edge there, so that we can bail out\\n      // faster if we find the edge\\n      bool onEdge = checkOnEdgeForNeighbor(-actualThickness, -actualThickness, s,\\n                                          stepIS) ||\\n                    checkOnEdgeForNeighbor(actualThickness, actualThickness, s,\\n                                          stepIS) ||\\n                    checkOnEdgeForNeighbor(actualThickness, -actualThickness, s,\\n                                          stepIS) ||\\n                    checkOnEdgeForNeighbor(-actualThickness, +actualThickness, s,\\n                                          stepIS);\\n\\n      if (onEdge) {\\n        return;\\n      }\\n\\n      // since the next step is computationally expensive, we need to perform\\n      // some optimizations to avoid it if possible. One of the optimizations\\n      // is to check the whether the minimum of the voxel spacing is greater than\\n      // the 2 * the thickness of the outline segment. If that is the case\\n      // then we can safely skip the next step since we can be sure that the\\n      // the previous 4 checks on the extreme points would caught the entirety\\n      // of the all the fragments inside. i.e., this happens when we zoom out,\\n      if (minVoxelSpacing &gt;\\n          (2.0 * float(actualThickness) - 1.0) * minFragSpacingWorld) {\\n        continue;\\n      }\\n\\n      // Loop through the rest, skipping the processed extremes and the center\\n      for (int i = -actualThickness; i &lt;= actualThickness; i++) {\\n        for (int j = -actualThickness; j &lt;= actualThickness; j++) {\\n          if (i == 0 &amp;&amp; j == 0)\\n            continue; // Skip the center\\n          if (abs(i) == actualThickness &amp;&amp; abs(j) == actualThickness)\\n            continue; // Skip corners\\n          if (checkOnEdgeForNeighbor(i, j, s, stepIS)) {\\n            return;\\n          }\\n        }\\n      }\\n    }\\n\\n    float sampleHeight = volume.transferFunctionsSampleHeight[0];\\n    vec3 tColor0 = getColorFromTexture(value.r, 0, sampleHeight);\\n    float pwfValue0 = getOpacityFromTexture(value.r, 0, sampleHeight);\\n    gl_FragData[0] = vec4(tColor0, pwfValue0);\\n  #endif\\n}\\n\\n//=======================================================================\\n// given a\\n// - ray direction (rayDir)\\n// - starting point (vertexVCVSOutput)\\n// - bounding planes of the volume\\n// - optionally depth buffer values\\n// - far clipping plane\\n// compute the start/end distances of the ray we need to cast\\nvec2 computeRayDistances(vec3 rayOriginVC, vec3 rayDirVC) {\\n  vec2 dists = rayIntersectVolumeDistances(rayOriginVC, rayDirVC);\\n\\n  //VTK::ClipPlane::Impl\\n\\n  // do not go behind front clipping plane\\n  dists.x = max(0.0, dists.x);\\n\\n  // do not go PAST far clipping plane\\n  float farDist = -camThick / rayDirVC.z;\\n  dists.y = min(farDist, dists.y);\\n\\n  // Do not go past the zbuffer value if set\\n  // This is used for intermixing opaque geometry\\n  //VTK::ZBuffer::Impl\\n\\n  return dists;\\n}\\n\\nfloat getFragmentSeed() {\\n  // This first noise has a diagonal pattern\\n  float firstNoise =\\n      fract(sin(dot(gl_FragCoord.xy, vec2(12.9898, 78.233))) * 43758.5453);\\n  // This second noise is made out of blocks of CPU generated noise\\n  float secondNoise = texture2D(jtexture, gl_FragCoord.xy / 32.0).r;\\n  // Combine the two sources of noise in a way that the distribution is uniform\\n  // in [0,1[\\n  float noiseSum = firstNoise + secondNoise;\\n  return noiseSum &lt; 1.0 ? noiseSum : noiseSum - 1.0;\\n}\\n\\nvoid main() {\\n  fragmentSeed = getFragmentSeed();\\n\\n  if (cameraParallel == 1) {\\n    // Camera is parallel, so the rayDir is just the direction of the camera.\\n    rayDirVC = vec3(0.0, 0.0, -1.0);\\n  } else {\\n    // camera is at 0,0,0 so rayDir for perspective is just the vc coord\\n    rayDirVC = normalize(vertexVCVSOutput);\\n  }\\n\\n  vec3 rayOriginVC = vertexVCVSOutput;\\n  vec2 rayStartEndDistancesVC = computeRayDistances(rayOriginVC, rayDirVC);\\n  if (rayStartEndDistancesVC[1] &lt;= rayStartEndDistancesVC[0] ||\\n      rayStartEndDistancesVC[1] &lt;= 0.0) {\\n    // Volume not hit or behind the ray\\n    discard;\\n  }\\n\\n  // Perform the blending operation along the ray\\n  applyBlend(rayOriginVC, rayDirVC, rayStartEndDistancesVC[0], rayStartEndDistancesVC[1]);\\n}\\n&quot;,e.Geometry=&quot;&quot;},e.replaceShaderValues=(e,n,r)=&gt;{let o=e.Fragment;o=vd.substitute(o,&quot;//VTK::EnabledColorFunctions&quot;,`#define EnableColorForValueFunctionId${t.previousState.colorForValueFunctionId}`).result;const a=[];t.previousState.surfaceLightingEnabled&amp;&amp;a.push(&quot;Surface&quot;),t.previousState.volumeLightingEnabled&amp;&amp;a.push(&quot;Volume&quot;),o=vd.substitute(o,&quot;//VTK::EnabledLightings&quot;,a.map((e=&gt;`#define Enable${e}Lighting`))).result,t.previousState.multiTexturePerVolumeEnabled&amp;&amp;(o=vd.substitute(o,&quot;//VTK::EnabledMultiTexturePerVolume&quot;,&quot;#define EnabledMultiTexturePerVolume&quot;).result),t.previousState.useIndependentComponents&amp;&amp;(o=vd.substitute(o,&quot;//VTK::EnabledIndependentComponents&quot;,&quot;#define EnabledIndependentComponents&quot;).result),t.previousState.gradientOpacityEnabled&amp;&amp;(o=vd.substitute(o,&quot;//VTK::EnabledGradientOpacity&quot;,&quot;#define EnabledGradientOpacity&quot;).result),o=vd.substitute(o,&quot;//VTK::vtkProportionalComponents&quot;,t.previousState.proportionalComponents.map((e=&gt;`#define vtkComponent${e}Proportional`)).join(&quot;\\n&quot;)).result,o=vd.substitute(o,&quot;//VTK::vtkForceNearestComponents&quot;,t.previousState.forceNearestComponents.map((e=&gt;`#define vtkComponent${e}ForceNearest`)).join(&quot;\\n&quot;)).result,t.previousState.hasZBufferTexture&amp;&amp;(o=vd.substitute(o,&quot;//VTK::ZBuffer::Dec&quot;,[&quot;uniform sampler2D zBufferTexture;&quot;,&quot;uniform float vpZWidth;&quot;,&quot;uniform float vpZHeight;&quot;]).result,o=vd.substitute(o,&quot;//VTK::ZBuffer::Impl&quot;,[&quot;vec4 depthVec = texture2D(zBufferTexture, vec2(gl_FragCoord.x / vpZWidth, gl_FragCoord.y/vpZHeight));&quot;,&quot;float zdepth = (depthVec.r*256.0 + depthVec.g)/257.0;&quot;,&quot;zdepth = zdepth * 2.0 - 1.0;&quot;,&quot;if (cameraParallel == 0) {&quot;,&quot;zdepth = -2.0 * camFar * camNear / (zdepth*(camFar-camNear)-(camFar+camNear)) - camNear;}&quot;,&quot;else {&quot;,&quot;zdepth = (zdepth + 1.0) * 0.5 * (camFar - camNear);}\\n&quot;,&quot;zdepth = -zdepth/rayDirVC.z;&quot;,&quot;dists.y = min(zdepth,dists.y);&quot;]).result),o=vd.substitute(o,&quot;//VTK::BlendMode&quot;,`${t.previousState.blendMode}`).result,o=vd.substitute(o,&quot;//VTK::NumberOfLights&quot;,`${t.previousState.numberOfLights}`).result,o=vd.substitute(o,&quot;//VTK::MaxLaoKernelSize&quot;,`${t.previousState.maxLaoKernelSize}`).result,o=vd.substitute(o,&quot;//VTK::NumberOfComponents&quot;,`${t.previousState.numberOfComponents}`).result,o=vd.substitute(o,&quot;//VTK::MaximumNumberOfSamples&quot;,`${t.previousState.maximumNumberOfSamples}`).result,e.Fragment=o;const i=t.previousState.numberOfClippingPlanes;i&gt;0&amp;&amp;(o=vd.substitute(o,&quot;//VTK::ClipPlane::Dec&quot;,[&quot;uniform vec3 vClipPlaneNormals[6];&quot;,&quot;uniform float vClipPlaneDistances[6];&quot;,&quot;uniform vec3 vClipPlaneOrigins[6];&quot;,&quot;uniform int clip_numPlanes;&quot;,&quot;//VTK::ClipPlane::Dec&quot;,&quot;#define vtkClippingPlanesOn&quot;],!1).result,o=vd.substitute(o,&quot;//VTK::ClipPlane::Impl&quot;,[`for(int i = 0; i &lt; ${i}; i++) {`,&quot;  float rayDirRatio = dot(rayDirVC, vClipPlaneNormals[i]);&quot;,&quot;  float equationResult = dot(vertexVCVSOutput, vClipPlaneNormals[i]) + vClipPlaneDistances[i];&quot;,&quot;  if (rayDirRatio == 0.0)&quot;,&quot;  {&quot;,&quot;    if (equationResult &lt; 0.0) dists.x = dists.y;&quot;,&quot;    continue;&quot;,&quot;  }&quot;,&quot;  float result = -1.0 * equationResult / rayDirRatio;&quot;,&quot;  if (rayDirRatio &lt; 0.0) dists.y = min(dists.y, result);&quot;,&quot;  else dists.x = max(dists.x, result);&quot;,&quot;}&quot;,&quot;//VTK::ClipPlane::Impl&quot;],!1).result),e.Fragment=o},e.getNeedToRebuildShaders=(r,o,a)=&gt;{const i=!!t.zBufferTexture,s=t.currentValidInputs.length,l=t.numberOfLights,c=t.numberOfComponents,u=t.useIndependentComponents,d=a.getProperties(),p=t.currentValidInputs[0],f=d[p.inputIndex],g=s&gt;1,m=p.imageData.getBounds(),h=Hi.getDiagonalLength(m),v=Math.ceil(h/e.getCurrentSampleDistance(o));v&gt;t.renderable.getMaximumSamplesPerRay()&amp;&amp;Tg(`The number of steps required ${v} is larger than the specified maximum number of steps ${t.renderable.getMaximumSamplesPerRay()}.\\nPlease either change the volumeMapper sampleDistance or its maximum number of samples.`);const T=u?c:1;let x=!1;for(let e=0;e&lt;T;++e)if(f.getUseGradientOpacity(e)){x=!0;break}let y=0;const b=f.getLAOKernelSize();b&gt;y&amp;&amp;f.getLocalAmbientOcclusion()&amp;&amp;f.getAmbient()&gt;0&amp;&amp;(y=b);const A=t.renderable.getClippingPlanes().length,C=t.renderable.getViewSpecificProperties().OpenGL?.ShaderReplacements,S=t.currentRenderPass?.getShaderReplacement(),P=t.renderable.getBlendMode(),w=(()=&gt;{if(P!==hg.LABELMAP_EDGE_PROJECTION_BLEND&amp;&amp;n(f))return 5;if(u)switch(f.getColorMixPreset()){case gg.ADDITIVE:return 1;case gg.COLORIZE:return 2;case gg.CUSTOM:return 3;default:return 4}return 0})(),I=f.getVolumetricScatteringBlending()&lt;1,O=f.getVolumetricScatteringBlending()&gt;0;let R=!1;for(let e=0;e&lt;c;++e)if(f.getForceNearestInterpolation(e)){R=!0;break}const M=[],D=[];for(let e=0;e&lt;c;e++)f.getOpacityMode(e)===fg.PROPORTIONAL&amp;&amp;M.push(e),f.getForceNearestInterpolation(e)&amp;&amp;D.push(e);const E={numberOfComponents:c,useIndependentComponents:u,proportionalComponents:M,forceNearestComponents:D,blendMode:P,numberOfLights:l,numberOfValidInputs:s,maximumNumberOfSamples:v,hasZBufferTexture:i,maxLaoKernelSize:y,numberOfClippingPlanes:A,mapperShaderReplacements:C,renderPassShaderReplacements:S,colorForValueFunctionId:w,surfaceLightingEnabled:I,volumeLightingEnabled:O,forceNearestInterpolationEnabled:R,multiTexturePerVolumeEnabled:g,gradientOpacityEnabled:x};return(0===r.getProgram()?.getHandle()||!t.previousState||!xe(t.previousState,E))&amp;&amp;(t.previousState=E,!0)},e.updateShaders=(n,r,o)=&gt;{if(e.getNeedToRebuildShaders(n,r,o)){const a={Vertex:null,Fragment:null,Geometry:null};e.buildShaders(a,r,o);const i=t._openGLRenderWindow.getShaderCache().readyShaderProgramArray(a.Vertex,a.Fragment,a.Geometry);i!==n.getProgram()&amp;&amp;(n.setProgram(i),n.getVAO().releaseGraphicsResources()),n.getShaderSourceTime().modified()}else t._openGLRenderWindow.getShaderCache().readyShaderProgram(n.getProgram());n.getVAO().bind(),e.setMapperShaderParameters(n,r,o),e.setCameraShaderParameters(n,r,o),e.setPropertyShaderParameters(n,r,o),e.getClippingPlaneShaderParameters(n,r,o)},e.setMapperShaderParameters=(n,r,o)=&gt;{const a=n.getProgram();n.getCABO().getElementCount()&amp;&amp;(t.VBOBuildTime.getMTime()&gt;n.getAttributeUpdateTime().getMTime()||n.getShaderSourceTime().getMTime()&gt;n.getAttributeUpdateTime().getMTime())&amp;&amp;(a.isAttributeUsed(&quot;vertexDC&quot;)&amp;&amp;(n.getVAO().addAttributeArray(a,n.getCABO(),&quot;vertexDC&quot;,n.getCABO().getVertexOffset(),n.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE)||xg(&quot;Error setting vertexDC in shader VAO.&quot;)),n.getAttributeUpdateTime().modified());const i=e.getCurrentSampleDistance(r);a.setUniformf(&quot;sampleDistance&quot;,i);const s=i*t.renderable.getVolumeShadowSamplingDistFactor();a.setUniformf(&quot;volumeShadowSampleDistance&quot;,s),t.scalarTextures.forEach(((e,t)=&gt;{a.setUniformi(`volumeTexture[${t}]`,e.getTextureUnit())}));const l=o.getProperties()[t.currentValidInputs[0].inputIndex].getIpScalarRange(),c=new Float32Array(4),u=new Float32Array(4),d=(e,t,n)=&gt;{t?.dataComputedScale?.length&amp;&amp;(c[e]=l[0]*t.dataComputedScale[n]+t.dataComputedOffset[n],u[e]=l[1]*t.dataComputedScale[n]+t.dataComputedOffset[n],c[e]=(c[e]-t.offset[n])/t.scale[n],u[e]=(u[e]-t.offset[n])/t.scale[n])};if(t.previousState.multiTexturePerVolumeEnabled)t.scalarTextures.forEach(((e,t)=&gt;{const n=e.getVolumeInfo();d(t,n,0)}));else{const e=t.scalarTextures[0].getVolumeInfo();for(let t=0;t&lt;4;++t)d(t,e,t)}const p=&quot;volume&quot;;if(a.setUniform4f(`${p}.ipScalarRangeMin`,c[0],c[1],c[2],c[3]),a.setUniform4f(`${p}.ipScalarRangeMax`,u[0],u[1],u[2],u[3]),null!==t.zBufferTexture){a.setUniformi(&quot;zBufferTexture&quot;,t.zBufferTexture.getTextureUnit());const e=t._useSmallViewport?[t._smallViewportWidth,t._smallViewportHeight]:t._openGLRenderWindow.getFramebufferSize();a.setUniformf(&quot;vpZWidth&quot;,e[0]),a.setUniformf(&quot;vpZHeight&quot;,e[1])}},e.setCameraShaderParameters=(r,o,a)=&gt;{const{idxToView:i,vecISToVCMatrix:s,modelToView:l,projectionToView:c,projectionToWorld:u}=yg,f=t.openGLCamera.getKeyMatrices(o),g=t.openGLVolume.getKeyMatrices();A(l,f.wcvc,g.mcwc);const m=r.getProgram(),h=t.openGLCamera.getRenderable(),v=h.getParallelProjection(),T=h.getClippingRange();m.setUniformf(&quot;camThick&quot;,T[1]-T[0]),m.setUniformf(&quot;camNear&quot;,T[0]),m.setUniformf(&quot;camFar&quot;,T[1]),m.setUniformi(&quot;cameraParallel&quot;,v);const x=t.currentValidInputs[0],y=x.imageData.getBounds(),C=Hi.getCorners(y,[]).map((e=&gt;{if(oe(e,e,l),!v){$(e,e,-T[0]/(e[2]*X(e)))}return oe(e,e,f.vcpc),e})),S=Hi.addPoints([...Hi.INIT_BOUNDS],C);m.setUniformf(&quot;dcxmin&quot;,S[0]),m.setUniformf(&quot;dcxmax&quot;,S[1]),m.setUniformf(&quot;dcymin&quot;,S[2]),m.setUniformf(&quot;dcymax&quot;,S[3]);const P=e.getRenderTargetSize();m.setUniformf(&quot;vpWidth&quot;,P[0]),m.setUniformf(&quot;vpHeight&quot;,P[1]);const w=e.getRenderTargetOffset();m.setUniformf(&quot;vpOffsetX&quot;,w[0]/P[0]),m.setUniformf(&quot;vpOffsetY&quot;,w[1]/P[1]),b(c,f.vcpc),m.setUniformMatrix(&quot;PCVCMatrix&quot;,c),m.setUniformi(&quot;twoSidedLighting&quot;,o.getTwoSidedLighting());const I=new Array(2*t.previousState.maxLaoKernelSize);for(let e=0;e&lt;t.previousState.maxLaoKernelSize;e++)I[2*e]=Math.random(),I[2*e+1]=Math.random();if(m.setUniform2fv(&quot;kernelSample&quot;,I),t.numberOfLights&gt;0){let e=0;o.getLights().forEach((t=&gt;{if(t.getSwitch()&gt;0){const n=`lights[${e}]`,r=$([],t.getColor(),t.getIntensity());m.setUniform3fv(`${n}.color`,r);const o=t.getTransformedPosition();oe(o,o,l),m.setUniform3fv(`${n}.positionVC`,o);const a=[...t.getDirection()];ae(a,a,f.normalMatrix),te(a,a),m.setUniform3fv(`${n}.directionVC`,a);const i=[-.5*a[0],-.5*a[1],-.5*(a[2]-1)];m.setUniform3fv(`${n}.halfAngleVC`,i);const s=t.getAttenuationValues();m.setUniform3fv(`${n}.attenuation`,s);const c=t.getExponent();m.setUniformf(`${n}.exponent`,c);const u=t.getConeAngle();m.setUniformf(`${n}.coneAngle`,u);const d=t.getPositional();m.setUniformi(`${n}.isPositional`,d),e++}}))}const O=&quot;volume&quot;,R=a.getProperties()[x.inputIndex],M=x.imageData,D=M.getSpatialExtent(),E=M.getSpacing(),V=M.getDimensions(),L=M.getIndexToWorld(),B=M.getWorldToIndex(),F=M.getDirectionByReference();A(i,l,L),m.setUniform3fv(`${O}.spacing`,E);const N=ee([],E);m.setUniform3fv(`${O}.inverseSpacing`,N),m.setUniform3iv(`${O}.dimensions`,V),m.setUniform3fv(`${O}.inverseDimensions`,ee([],V)),m.setUniformMatrix(`${O}.worldToIndex`,B),s.fill(0);const k=Q(new Float64Array(3),V,E);s[0]=k[0],s[4]=k[1],s[8]=k[2],p(s,F,s),p(s,g.normalMatrix,s),p(s,f.normalMatrix,s),m.setUniformMatrix3x3(`${O}.vecISToVCMatrix`,s),m.setUniformMatrix3x3(`${O}.vecVCToISMatrix`,d(new Float32Array(9),s));const G=q(D[0],D[2],D[4]),U=oe(new Float64Array(3),G,i);m.setUniform3fv(`${O}.originVC`,U);const _=X(k);if(m.setUniformf(`${O}.diagonalLength`,_),n(R)){const e=h.getDistance();h.setClippingRange(e,e+.1);b(u,t.openGLCamera.getKeyMatrices(o).wcpc),h.setClippingRange(T[0],T[1]),t.openGLCamera.getKeyMatrices(o),m.setUniformMatrix(`${O}.PCWCMatrix`,u)}if(R.getVolumetricScatteringBlending()&gt;0&amp;&amp;(m.setUniformf(`${O}.globalIlluminationReach`,R.getGlobalIlluminationReach()),m.setUniformf(`${O}.volumetricScatteringBlending`,R.getVolumetricScatteringBlending()),m.setUniformf(`${O}.anisotropy`,R.getAnisotropy()),m.setUniformf(`${O}.anisotropySquared`,R.getAnisotropy()**2)),R.getLocalAmbientOcclusion()&amp;&amp;R.getAmbient()&gt;0){const e=R.getLAOKernelSize();m.setUniformi(`${O}.kernelSize`,e);const t=R.getLAOKernelRadius();m.setUniformi(`${O}.kernelRadius`,t)}else m.setUniformi(`${O}.kernelSize`,0)},e.setPropertyShaderParameters=(e,n,r)=&gt;{const o=e.getProgram();o.setUniformi(&quot;jtexture&quot;,t.jitterTexture.getTextureUnit());const a=r.getProperties();o.setUniformi(&quot;labelOutlineThicknessTexture&quot;,t.labelOutlineThicknessTexture.getTextureUnit()),o.setUniformi(&quot;opacityTexture&quot;,t.opacityTexture.getTextureUnit()),o.setUniformi(&quot;colorTexture&quot;,t.colorTexture.getTextureUnit());const i=&quot;volume&quot;,s=a[t.currentValidInputs[0].inputIndex],l=t.previousState.numberOfComponents,c=t.previousState.useIndependentComponents;if(c){const e=new Float32Array(4);for(let t=0;t&lt;l;t++)e[t]=s.getComponentWeight(t);o.setUniform4fv(`${i}.independentComponentMix`,e);const t=new Float32Array(4),n=1/l;for(let e=0;e&lt;l;++e)t[e]=(e+.5)*n;o.setUniform4fv(`${i}.transferFunctionsSampleHeight`,t)}const u=t.colorForValueFunctionId;o.setUniformi(`${i}.colorForValueFunctionId`,u);const d=s.getComputeNormalFromOpacity();o.setUniformi(`${i}.computeNormalFromOpacity`,d);const p=new Float32Array(4),f=new Float32Array(4),g=new Float32Array(4),m=new Float32Array(4);for(let e=0;e&lt;l;e++){const n=t.previousState.multiTexturePerVolumeEnabled,r=n?e:0,o=n?0:e,a=t.scalarTextures[r].getVolumeInfo(),i=c?e:0,l=a.scale[o],u=s.getRGBTransferFunction(i).getRange();p[e]=l/(u[1]-u[0]),f[e]=(a.offset[o]-u[0])/(u[1]-u[0]);const d=s.getScalarOpacity(i).getRange();g[e]=l/(d[1]-d[0]),m[e]=(a.offset[o]-d[0])/(d[1]-d[0])}if(o.setUniform4fv(`${i}.colorTextureScale`,p),o.setUniform4fv(`${i}.colorTextureShift`,f),o.setUniform4fv(`${i}.opacityTextureScale`,g),o.setUniform4fv(`${i}.opacityTextureShift`,m),t.previousState.gradientOpacityEnabled){const e=new Array(4),n=new Array(4),r=new Array(4),a=new Array(4);if(c)for(let o=0;o&lt;l;++o){const i=t.previousState.multiTexturePerVolumeEnabled,l=i?o:0,c=i?0:o,u=t.scalarTextures[l].getVolumeInfo().scale[c];if(s.getUseGradientOpacity(o)){const t=[s.getGradientOpacityMinimumOpacity(o),s.getGradientOpacityMaximumOpacity(o)],i=[s.getGradientOpacityMinimumValue(o),s.getGradientOpacityMaximumValue(o)];r[o]=t[0],a[o]=t[1],e[o]=u*(t[1]-t[0])/(i[1]-i[0]),n[o]=-i[0]*(t[1]-t[0])/(i[1]-i[0])+t[0]}else r[o]=1,a[o]=1,e[o]=0,n[o]=1}else{const o=l-1,i=t.previousState.multiTexturePerVolumeEnabled,c=i?o:0,u=i?0:o,d=t.scalarTextures[c].getVolumeInfo().scale[u],p=[s.getGradientOpacityMinimumOpacity(0),s.getGradientOpacityMaximumOpacity(0)],f=[s.getGradientOpacityMinimumValue(0),s.getGradientOpacityMaximumValue(0)];r[0]=p[0],a[0]=p[1],e[0]=d*(p[1]-p[0])/(f[1]-f[0]),n[0]=-f[0]*(p[1]-p[0])/(f[1]-f[0])+p[0]}o.setUniform4f(`${i}.gradientOpacityScale`,e),o.setUniform4f(`${i}.gradientOpacityShift`,n),o.setUniform4f(`${i}.gradientOpacityMin`,r),o.setUniform4f(`${i}.gradientOpacityMax`,a)}const h=s.getLabelOutlineOpacity();if(o.setUniformf(`${i}.outlineOpacity`,h),t.numberOfLights&gt;0){o.setUniformf(`${i}.ambient`,s.getAmbient()),o.setUniformf(`${i}.diffuse`,s.getDiffuse()),o.setUniformf(`${i}.specular`,s.getSpecular());const e=s.getSpecularPower();o.setUniformf(`${i}.specularPower`,0===e?1:e)}},e.getClippingPlaneShaderParameters=(e,n,r)=&gt;{if(t.renderable.getClippingPlanes().length&gt;0){const r=t.openGLCamera.getKeyMatrices(n),o=[],a=[],i=[],s=t.renderable.getClippingPlanes(),l=s.length;for(let e=0;e&lt;l;++e){const t=s[e].getNormal(),n=s[e].getOrigin();ae(t,t,r.normalMatrix),oe(n,n,r.wcvc);const l=-1*ne(n,t);o.push(t[0]),o.push(t[1]),o.push(t[2]),a.push(l),i.push(n[0]),i.push(n[1]),i.push(n[2])}const c=e.getProgram();c.setUniform3fv(&quot;vClipPlaneNormals&quot;,o),c.setUniformfv(&quot;vClipPlaneDistances&quot;,a),c.setUniform3fv(&quot;vClipPlaneOrigins&quot;,i),c.setUniformi(&quot;clip_numPlanes&quot;,l)}},e.delete=qt((()=&gt;{t._animationRateSubscription&amp;&amp;(t._animationRateSubscription.unsubscribe(),t._animationRateSubscription=null)}),(()=&gt;{t._openGLRenderWindow&amp;&amp;a(t._openGLRenderWindow)}),e.delete),e.getRenderTargetSize=()=&gt;{if(t._useSmallViewport)return[t._smallViewportWidth,t._smallViewportHeight];const{usize:e,vsize:n}=t._openGLRenderer.getTiledSizeAndOrigin();return[e,n]},e.getRenderTargetOffset=()=&gt;{const{lowerLeftU:e,lowerLeftV:n}=t._openGLRenderer.getTiledSizeAndOrigin();return[e,n]},e.getCurrentSampleDistance=e=&gt;{const n=e.getVTKWindow().getInteractor(),r=t.renderable.getSampleDistance();if(n.isAnimating()){return r*t.renderable.getInteractionSampleDistanceFactor()}return r},e.renderPieceStart=(n,r)=&gt;{const o=n.getVTKWindow().getInteractor();if(t._lastScale||(t._lastScale=t.renderable.getInitialInteractionScale()),t._useSmallViewport=!1,o.isAnimating()&amp;&amp;t._lastScale&gt;1.5&amp;&amp;(t._useSmallViewport=!0),t._animationRateSubscription||(t._animationRateSubscription=o.onAnimationFrameRateUpdate((()=&gt;{if(t.renderable.getAutoAdjustSampleDistances()){const e=o.getRecentAnimationFrameRate(),n=o.getDesiredUpdateRate()/e;(n&gt;1.15||n&lt;.85)&amp;&amp;(t._lastScale*=n),t._lastScale&gt;400&amp;&amp;(t._lastScale=400),t._lastScale&lt;1.5&amp;&amp;(t._lastScale=1.5)}else t._lastScale=t.renderable.getImageSampleDistance()*t.renderable.getImageSampleDistance()}))),t._useSmallViewport){const e=t._openGLRenderWindow.getFramebufferSize(),n=1/Math.sqrt(t._lastScale);if(t._smallViewportWidth=Math.ceil(n*e[0]),t._smallViewportHeight=Math.ceil(n*e[1]),t._smallViewportHeight&gt;e[1]&amp;&amp;(t._smallViewportHeight=e[1]),t._smallViewportWidth&gt;e[0]&amp;&amp;(t._smallViewportWidth=e[0]),t.framebuffer.saveCurrentBindingsAndBuffers(),null===t.framebuffer.getGLFramebuffer())t.framebuffer.create(e[0],e[1]),t.framebuffer.populateFramebuffer();else{const n=t.framebuffer.getSize();n&amp;&amp;n[0]===e[0]&amp;&amp;n[1]===e[1]||(t.framebuffer.create(e[0],e[1]),t.framebuffer.populateFramebuffer())}t.framebuffer.bind();const r=t.context;r.clearColor(0,0,0,0),r.colorMask(!0,!0,!0,!0),r.clear(r.COLOR_BUFFER_BIT),r.viewport(0,0,t._smallViewportWidth,t._smallViewportHeight),t.fvp=[t._smallViewportWidth/e[0],t._smallViewportHeight/e[1]]}t.context.disable(t.context.DEPTH_TEST),e.updateBufferObjects(n,r);const a=r.getProperties();t.currentValidInputs.forEach((({inputIndex:e})=&gt;{const n=a[e].getInterpolationType(),r=t.scalarTextures[e];n===pg.NEAREST?(r.setMinificationFilter(wd.NEAREST),r.setMagnificationFilter(wd.NEAREST)):(r.setMinificationFilter(wd.LINEAR),r.setMagnificationFilter(wd.LINEAR))})),null!==t.zBufferTexture&amp;&amp;t.zBufferTexture.activate()},e.renderPieceDraw=(n,r)=&gt;{const o=t.context,a=[...t.scalarTextures,t.colorTexture,t.opacityTexture,t.labelOutlineThicknessTexture,t.jitterTexture];a.forEach((e=&gt;e.activate())),e.updateShaders(t.tris,n,r),o.drawArrays(o.TRIANGLES,0,t.tris.getCABO().getElementCount()),t.tris.getVAO().release(),a.forEach((e=&gt;e.deactivate()))},e.renderPieceFinish=(e,n)=&gt;{if(null!==t.zBufferTexture&amp;&amp;t.zBufferTexture.deactivate(),t._useSmallViewport){if(t.framebuffer.restorePreviousBindingsAndBuffers(),null===t.copyShader){t.copyShader=t._openGLRenderWindow.getShaderCache().readyShaderProgramArray([&quot;//VTK::System::Dec&quot;,&quot;attribute vec4 vertexDC;&quot;,&quot;uniform vec2 tfactor;&quot;,&quot;varying vec2 tcoord;&quot;,&quot;void main() { tcoord = vec2(vertexDC.x*0.5 + 0.5, vertexDC.y*0.5 + 0.5) * tfactor; gl_Position = vertexDC; }&quot;].join(&quot;\\n&quot;),[&quot;//VTK::System::Dec&quot;,&quot;//VTK::Output::Dec&quot;,&quot;uniform sampler2D texture1;&quot;,&quot;varying vec2 tcoord;&quot;,&quot;void main() { gl_FragData[0] = texture2D(texture1,tcoord); }&quot;].join(&quot;\\n&quot;),&quot;&quot;);const e=t.copyShader;t.copyVAO=yd.newInstance(),t.copyVAO.setOpenGLRenderWindow(t._openGLRenderWindow),t.tris.getCABO().bind(),t.copyVAO.addAttributeArray(e,t.tris.getCABO(),&quot;vertexDC&quot;,t.tris.getCABO().getVertexOffset(),t.tris.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE)||xg(&quot;Error setting vertexDC in copy shader VAO.&quot;)}else t._openGLRenderWindow.getShaderCache().readyShaderProgram(t.copyShader);const e=t._openGLRenderWindow.getFramebufferSize();t.context.viewport(0,0,e[0],e[1]);const n=t.framebuffer.getColorTexture();n.activate(),t.copyShader.setUniformi(&quot;texture&quot;,n.getTextureUnit()),t.copyShader.setUniform2f(&quot;tfactor&quot;,t.fvp[0],t.fvp[1]);const r=t.context;r.blendFuncSeparate(r.ONE,r.ONE_MINUS_SRC_ALPHA,r.ONE,r.ONE_MINUS_SRC_ALPHA),t.context.drawArrays(t.context.TRIANGLES,0,t.tris.getCABO().getElementCount()),n.deactivate(),r.blendFuncSeparate(r.SRC_ALPHA,r.ONE_MINUS_SRC_ALPHA,r.ONE,r.ONE_MINUS_SRC_ALPHA)}},e.renderPiece=(n,r)=&gt;{e.invokeEvent({type:&quot;StartEvent&quot;}),t.renderable.update();const o=t.renderable.getNumberOfInputPorts();t.currentValidInputs=[];for(let e=0;e&lt;o;++e){const n=t.renderable.getInputData(e);n&amp;&amp;!n.isDeleted()&amp;&amp;t.currentValidInputs.push({imageData:n,inputIndex:e})}let a=0;if(t.currentValidInputs.length&gt;0){const e=r.getProperties(),o=t.currentValidInputs[0],i=o.imageData.getPointData().getScalars(),s=e[o.inputIndex];s.getShade()&amp;&amp;t.renderable.getBlendMode()===hg.COMPOSITE_BLEND&amp;&amp;n.getLights().forEach((e=&gt;{e.getSwitch()&gt;0&amp;&amp;a++}));const l=t.currentValidInputs.length,c=l&gt;1;t.numberOfComponents=c?l:i.getNumberOfComponents(),t.useIndependentComponents=function(e,t){const n=e.getIndependentComponents(),r=e.getColorMixPreset();return n&amp;&amp;t&gt;=2||!!r}(s,t.numberOfComponents)}a!==t.numberOfLights&amp;&amp;(t.numberOfLights=a,e.modified()),e.invokeEvent({type:&quot;EndEvent&quot;}),0!==t.currentValidInputs.length&amp;&amp;(e.renderPieceStart(n,r),e.renderPieceDraw(n,r),e.renderPieceFinish(n,r))},e.updateBufferObjects=(t,n)=&gt;{e.getNeedToRebuildBufferObjects(t,n)&amp;&amp;e.buildBufferObjects(t,n)},e.getNeedToRebuildBufferObjects=(n,r)=&gt;t.VBOBuildTime.getMTime()&lt;e.getMTime()||t.VBOBuildTime.getMTime()&lt;r.getMTime()||t.VBOBuildTime.getMTime()&lt;r.getProperty(t.currentValidInputs[0].inputIndex)?.getMTime()||t.VBOBuildTime.getMTime()&lt;t.renderable.getMTime()||t.currentValidInputs.some((({imageData:e})=&gt;t.VBOBuildTime.getMTime()&lt;e.getMTime()))||t.scalarTextures.length!==t.currentValidInputs.length||!t.scalarTextures.every((e=&gt;!!e?.getHandle()))||!t.colorTexture?.getHandle()||!t.opacityTexture?.getHandle()||!t.labelOutlineThicknessTexture?.getHandle()||!t.jitterTexture?.getHandle(),e.buildBufferObjects=(n,r)=&gt;{if(!t.jitterTexture.getHandle()){const e=new Float32Array(1024);for(let t=0;t&lt;1024;++t)e[t]=Math.random();t.jitterTexture.setMinificationFilter(wd.NEAREST),t.jitterTexture.setMagnificationFilter(wd.NEAREST),t.jitterTexture.create2DFromRaw({width:32,height:32,numComps:1,dataType:ms.FLOAT,data:e})}const a=r.getProperties(),i=t.currentValidInputs[0],s=a[i.inputIndex],l=t.numberOfComponents,c=t.useIndependentComponents,u=c?l:1,d=[];for(let e=0;e&lt;u;++e)d.push(s.getScalarOpacity(e));const p=zf(d,c,u),f=s.getScalarOpacity(),g=t._openGLRenderWindow.getGraphicsResourceForObject(f);if(!g?.oglObject?.getHandle()||g.hash!==p){const r=Hd.newInstance();r.setOpenGLRenderWindow(t._openGLRenderWindow);let o=t.renderable.getOpacityTextureWidth();o&lt;=0&amp;&amp;(o=t.context.getParameter(t.context.MAX_TEXTURE_SIZE));const a=2*o*u,i=new Float32Array(a),l=new Float32Array(o);for(let t=0;t&lt;u;++t){const r=s.getScalarOpacity(t),a=e.getCurrentSampleDistance(n)/s.getScalarOpacityUnitDistance(t),c=r.getRange();r.getTable(c[0],c[1],o,l,1);for(let e=0;e&lt;o;++e)i[t*o*2+e]=1-(1-l[e])**a,i[t*o*2+e+o]=i[t*o*2+e]}if(r.resetFormatAndType(),r.setMinificationFilter(wd.LINEAR),r.setMagnificationFilter(wd.LINEAR),t._openGLRenderWindow.getWebgl2()||t.context.getExtension(&quot;OES_texture_float&quot;)&amp;&amp;t.context.getExtension(&quot;OES_texture_float_linear&quot;))r.create2DFromRaw({width:o,height:2*u,numComps:1,dataType:ms.FLOAT,data:i});else{const e=new Uint8ClampedArray(a);for(let t=0;t&lt;a;++t)e[t]=255*i[t];r.create2DFromRaw({width:o,height:2*u,numComps:1,dataType:ms.UNSIGNED_CHAR,data:e})}f&amp;&amp;t._openGLRenderWindow.setGraphicsResourceForObject(f,r,p),t.opacityTexture=r}else t.opacityTexture=g.oglObject;o(t._openGLRenderWindow,t._opacityTextureCore,f),t._opacityTextureCore=f;const m=[];for(let e=0;e&lt;u;++e)m.push(s.getRGBTransferFunction(e));const h=zf(m,c,u),v=s.getRGBTransferFunction(),T=t._openGLRenderWindow.getGraphicsResourceForObject(v);if(!T?.oglObject?.getHandle()||T?.hash!==h){const e=Hd.newInstance();e.setOpenGLRenderWindow(t._openGLRenderWindow);let n=t.renderable.getColorTextureWidth();n&lt;=0&amp;&amp;(n=t.context.getParameter(t.context.MAX_TEXTURE_SIZE));const r=new Uint8ClampedArray(2*n*u*3),o=new Float32Array(3*n);for(let e=0;e&lt;u;++e){const t=s.getRGBTransferFunction(e),a=t.getRange();t.getTable(a[0],a[1],n,o,1);for(let t=0;t&lt;3*n;++t)r[e*n*6+t]=255*o[t],r[e*n*6+t+3*n]=255*o[t]}e.resetFormatAndType(),e.setMinificationFilter(wd.LINEAR),e.setMagnificationFilter(wd.LINEAR),e.create2DFromRaw({width:n,height:2*u,numComps:3,dataType:ms.UNSIGNED_CHAR,data:r}),t._openGLRenderWindow.setGraphicsResourceForObject(v,e,h),t.colorTexture=e}else t.colorTexture=T.oglObject;o(t._openGLRenderWindow,t._colorTextureCore,v),t._colorTextureCore=v,t.currentValidInputs.forEach((({imageData:e,inputIndex:n},r)=&gt;{const i=a[n],s=e.getPointData().getScalars(),l=t._openGLRenderWindow.getGraphicsResourceForObject(s),c=Wf(0,s),u=!l?.oglObject?.getHandle()||l?.hash!==c,d=i.getUpdatedExtents(),p=!!d.length;if(u&amp;&amp;!p){const n=Hd.newInstance();n.setOpenGLRenderWindow(t._openGLRenderWindow);const o=e.getDimensions();n.setOglNorm16Ext(t.context.getExtension(&quot;EXT_texture_norm16&quot;)),n.resetFormatAndType(),n.create3DFilterableFromDataArray({width:o[0],height:o[1],depth:o[2],dataArray:s,preferSizeOverAccuracy:i.getPreferSizeOverAccuracy()}),t._openGLRenderWindow.setGraphicsResourceForObject(s,n,c),t.scalarTextures[r]=n}else t.scalarTextures[r]=l.oglObject;if(p){i.setUpdatedExtents([]);const n=e.getDimensions();t.scalarTextures[r].create3DFilterableFromDataArray({width:n[0],height:n[1],depth:n[2],dataArray:s,updatedExtents:d})}o(t._openGLRenderWindow,t._scalarTexturesCore[r],s),t._scalarTexturesCore[r]=s}));const x=s.getLabelOutlineThickness(),y=t._openGLRenderWindow.getGraphicsResourceForObject(x),b=x.join(&quot;-&quot;);if(!y?.oglObject?.getHandle()||y?.hash!==b){const e=Hd.newInstance();e.setOpenGLRenderWindow(t._openGLRenderWindow);let n=t.renderable.getLabelOutlineTextureWidth();n&lt;=0&amp;&amp;(n=t.context.getParameter(t.context.MAX_TEXTURE_SIZE));const r=1,o=new Uint8Array(n*r);for(let e=0;e&lt;n;++e){const t=void 0!==x[e]?x[e]:x[0];o[e]=t}e.resetFormatAndType(),e.setMinificationFilter(wd.NEAREST),e.setMagnificationFilter(wd.NEAREST),e.create2DFromRaw({width:n,height:r,numComps:1,dataType:ms.UNSIGNED_CHAR,data:o}),x&amp;&amp;t._openGLRenderWindow.setGraphicsResourceForObject(x,e,b),t.labelOutlineThicknessTexture=e}else t.labelOutlineThicknessTexture=y.oglObject;if(o(t._openGLRenderWindow,t._labelOutlineThicknessTextureCore,x),t._labelOutlineThicknessTextureCore=x,!t.tris.getCABO().getElementCount()){const e=new Float32Array(12);for(let t=0;t&lt;4;t++)e[3*t]=t%2*2-1,e[3*t+1]=t&gt;1?1:-1,e[3*t+2]=-1;const n=new Uint16Array(8);n[0]=3,n[1]=0,n[2]=1,n[3]=3,n[4]=3,n[5]=0,n[6]=3,n[7]=2;const r=Is.newInstance({numberOfComponents:3,values:e});r.setName(&quot;points&quot;);const o=Is.newInstance({numberOfComponents:1,values:n});t.tris.getCABO().createVBO(o,&quot;polys&quot;,rs.SURFACE,{points:r,cellOffset:0})}t.VBOBuildTime.modified()}}const Ag={context:null,VBOBuildTime:null,scalarTextures:[],_scalarTexturesCore:[],opacityTexture:null,_opacityTextureCore:null,colorTexture:null,_colorTextureCore:null,labelOutlineThicknessTexture:null,_labelOutlineThicknessTextureCore:null,jitterTexture:null,tris:null,framebuffer:null,copyShader:null,copyVAO:null,lastXYF:1,targetXYF:1,zBufferTexture:null,lastZBufferTexture:null,fullViewportTime:1,idxToView:null,vecISToVCMatrix:null,modelToView:null,projectionToView:null,avgWindowArea:0,avgFrameTime:0};vn(&quot;vtkVolumeMapper&quot;,Xt((function(e,t,n={}){Object.assign(t,Ag,n),pn.extend(e,t,n),qd.implementBuildShadersWithReplacements(e,t,n),t.VBOBuildTime={},Vt(t.VBOBuildTime,{mtime:0}),t.tris=Sd.newInstance(),t.jitterTexture=Hd.newInstance(),t.jitterTexture.setWrapS(Pd.REPEAT),t.jitterTexture.setWrapT(Pd.REPEAT),t.framebuffer=Gp.newInstance(),Gt(e,t,[&quot;context&quot;]),bg(e,t)}),&quot;vtkOpenGLVolumeMapper&quot;));const{vtkDebugMacro:Cg}=ln;const Sg={};vn(&quot;vtkPixelSpaceCallbackMapper&quot;,Xt((function(e,t,n={}){Object.assign(t,Sg,n),pn.extend(e,t,n),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLPixelSpaceCallbackMapper&quot;),e.opaquePass=(n,r)=&gt;{t._openGLRenderer=e.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;),t._openGLRenderWindow=t._openGLRenderer.getLastAncestorOfType(&quot;vtkOpenGLRenderWindow&quot;);const o=t._openGLRenderer.getAspectRatio(),a=t._openGLRenderer?t._openGLRenderer.getRenderable().getActiveCamera():null,i=t._openGLRenderer.getTiledSizeAndOrigin();let s=null;if(t.renderable.getUseZValues()){const e=r.getZBufferTexture(),n=Math.floor(e.getWidth()),o=Math.floor(e.getHeight()),a=t._openGLRenderWindow.getContext();e.bind();const i=r.getFramebuffer();i?i.saveCurrentBindingsAndBuffers():Cg(&quot;No framebuffer to save/restore&quot;);const l=a.createFramebuffer();a.bindFramebuffer(a.FRAMEBUFFER,l),a.framebufferTexture2D(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0,a.TEXTURE_2D,e.getHandle(),0),a.checkFramebufferStatus(a.FRAMEBUFFER)===a.FRAMEBUFFER_COMPLETE&amp;&amp;(s=new Uint8Array(n*o*4),a.viewport(0,0,n,o),a.readPixels(0,0,n,o,a.RGBA,a.UNSIGNED_BYTE,s)),i&amp;&amp;i.restorePreviousBindingsAndBuffers(),a.deleteFramebuffer(l)}t.renderable.invokeCallback(t.renderable.getInputData(),a,o,i,s)},e.queryPass=(e,n)=&gt;{e&amp;&amp;t.renderable.getUseZValues()&amp;&amp;n.requestDepth()}}(e,t)}),&quot;vtkOpenGLPixelSpaceCallbackMapper&quot;));var Pg=&quot;//VTK::System::Dec\\n\\n/*=========================================================================\\n\\n  Program:   Visualization Toolkit\\n  Module:    vtktextureObjectVS.glsl\\n\\n  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n  All rights reserved.\\n  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n\\n     This software is distributed WITHOUT ANY WARRANTY; without even\\n     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n     PURPOSE.  See the above copyright notice for more information.\\n\\n=========================================================================*/\\n\\nattribute vec4 vertexDC;\\nattribute vec2 tcoordDC;\\nvarying vec2 tcoordVC;\\n\\nvoid main()\\n{\\n  tcoordVC = tcoordDC;\\n  gl_Position = vertexDC;\\n}\\n&quot;;const{Representation:wg}=us;function Ig(e,[t,n],r,o){const a=e.getContext(),i=Hd.newInstance({autoParameters:!1,wrapS:o,wrapT:o,minificationFilter:r,magnificationFilter:r,generateMipmap:!1,openGLDataType:a.FLOAT,baseLevel:0,maxLevel:0});return i.setOpenGLRenderWindow(e),i.setInternalFormat(a.RGBA32F),i.create2DFromRaw({width:t,height:n,numComps:4,dataType:&quot;Float32Array&quot;,data:null}),i.activate(),i.sendParameters(),i.deactivate(),i}function Og(e,t){return Ig(e,t,Hd.Filter.NEAREST,Hd.Wrap.CLAMP_TO_EDGE)}function Rg(e,t){var n,r;(t.classHierarchy.push(&quot;vtkLICPingPongBufferManager&quot;),t._openGLRenderWindow)?(t.quad=function(e){const t=Sd.newInstance();t.setOpenGLRenderWindow(e);const n=new Float32Array(12);for(let e=0;e&lt;4;e++)n[3*e]=e%2*2-1,n[3*e+1]=e&gt;1?1:-1,n[3*e+2]=0;const r=new Float32Array([0,0,1,0,0,1,1,1]),o=new Uint16Array(8);o[0]=3,o[1]=0,o[2]=1,o[3]=3,o[4]=3,o[5]=0,o[6]=3,o[7]=2;const a=Is.newInstance({numberOfComponents:3,values:n});a.setName(&quot;points&quot;);const i=Is.newInstance({numberOfComponents:1,values:o}),s=Is.newInstance({numberOfComponents:2,values:r});return t.getCABO().createVBO(i,&quot;polys&quot;,wg.SURFACE,{points:a,cellOffset:0,tcoords:s}),t}(t._openGLRenderWindow),t.context=t._openGLRenderWindow.getContext(),t.licTexture0=Og(t._openGLRenderWindow,t.size),t.seedTexture0=Og(t._openGLRenderWindow,t.size),t.licTexture1=Og(t._openGLRenderWindow,t.size),t.seedTexture1=Og(t._openGLRenderWindow,t.size),t.eeTexture=t.doEEPass?(n=t._openGLRenderWindow,r=t.size,Ig(n,r,Hd.Filter.NEAREST,Hd.Wrap.CLAMP_TO_EDGE)):null,t.imageVectorTexture=t.doVTPass?function(e,t){return Ig(e,t,Hd.Filter.LINEAR,Hd.Wrap.CLAMP_TO_EDGE)}(t._openGLRenderWindow,t.size):null,t.pingTextures[0]=t.licTexture0,t.pingTextures[1]=t.seedTexture0,t.pongTextures[0]=t.licTexture1,t.pongTextures[1]=t.seedTexture1,t.textures[0]=t.pingTextures,t.textures[1]=t.pongTextures,e.swap=()=&gt;{t.readIndex=1-t.readIndex},e.renderQuad=(e,n)=&gt;{const r=t.quad,o=t.context;let a=t.quadVAO;a||(a=yd.newInstance(),a.setOpenGLRenderWindow(t._openGLRenderWindow),t.quadVAO=a),t.previousProgramHash!==n.getMd5Hash()&amp;&amp;(a.shaderProgramChanged(),r.getCABO().bind(),a.addAttributeArray(n,r.getCABO(),&quot;vertexDC&quot;,r.getCABO().getVertexOffset(),r.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE),a.addAttributeArray(n,r.getCABO(),&quot;tcoordDC&quot;,r.getCABO().getTCoordOffset(),r.getCABO().getStride(),t.context.FLOAT,2,t.context.FALSE),t.previousProgramHash=n.getMd5Hash()),o.drawArrays(o.TRIANGLES,0,r.getCABO().getElementCount()),a.release()},e.getLastLICBuffer=()=&gt;0===t.readIndex?t.licTexture0:t.licTexture1,e.getLastSeedBuffer=()=&gt;0===t.readIndex?t.seedTexture0:t.seedTexture1,e.getLICBuffer=()=&gt;1-t.readIndex==0?t.licTexture0:t.licTexture1,e.getSeedBuffer=()=&gt;1-t.readIndex==0?t.seedTexture0:t.seedTexture1,e.getLICTextureUnit=()=&gt;{const e=t.textures[t.readIndex][0];return e.activate(),e.getTextureUnit()},e.getSeedTextureUnit=()=&gt;{const e=t.textures[t.readIndex][1];return e.activate(),e.getTextureUnit()},e.getNoiseTextureUnit=(e=0)=&gt;0===e?(t.noiseTexture.activate(),t.noiseTexture.getTextureUnit()):(t.eeTexture.activate(),t.eeTexture.getTextureUnit()),e.getVectorTextureUnit=()=&gt;(t.vectorTexture.activate(),t.vectorTexture.getTextureUnit()),e.getImageVectorTextureUnit=()=&gt;t.imageVectorTexture?(t.imageVectorTexture.activate(),t.imageVectorTexture.getTextureUnit()):e.getVectorTextureUnit(),e.getMaskVectorTextureUnit=()=&gt;t.maskVectorTexture?(t.maskVectorTexture.activate(),t.maskVectorTexture.getTextureUnit()):e.getImageVectorTextureUnit(),e.clearBuffers=(e=!1)=&gt;{const n=t.framebuffer,r=t.context;n.removeColorBuffer(0),n.removeColorBuffer(1),n.removeColorBuffer(2),n.removeColorBuffer(3),n.setColorBuffer(t.licTexture0,0),n.setColorBuffer(t.seedTexture0,1),n.setColorBuffer(t.licTexture1,2),n.setColorBuffer(t.seedTexture1,3);const o=[r.COLOR_ATTACHMENT0,r.COLOR_ATTACHMENT1,r.COLOR_ATTACHMENT2,r.COLOR_ATTACHMENT3];e&amp;&amp;(n.removeColorBuffer(4),n.setColorBuffer(t.eeTexture,4),o.push(r.COLOR_ATTACHMENT4)),r.drawBuffers(o),r.clearColor(0,1,0,0),r.disable(r.SCISSOR_TEST),r.disable(r.BLEND),r.clear(r.COLOR_BUFFER_BIT),n.removeColorBuffer(0),n.removeColorBuffer(1),n.removeColorBuffer(2),n.removeColorBuffer(3),e&amp;&amp;n.removeColorBuffer(4),r.drawBuffers([r.NONE])},e.clearBuffer=e=&gt;{const n=t.framebuffer,r=t.context;n.removeColorBuffer(0),n.setColorBuffer(e,0),r.drawBuffers([r.COLOR_ATTACHMENT0]),r.clearColor(0,1,0,0),r.disable(r.SCISSOR_TEST),r.disable(r.BLEND),r.clear(r.COLOR_BUFFER_BIT),n.removeColorBuffer(e,0),r.drawBuffers([r.NONE])},e.activateVectorTextures=()=&gt;{t.imageVectorTexture?t.imageVectorTexture.activate():t.vectorTexture.activate(),t.maskVectorTexture&amp;&amp;t.maskVectorTexture.activate()},e.deactivateVectorTextures=()=&gt;{t.imageVectorTexture?t.imageVectorTexture.deactivate():t.vectorTexture.deactivate(),t.maskVectorTexture&amp;&amp;t.maskVectorTexture.deactivate()},e.activateNoiseTexture=(e=0)=&gt;{switch(e){case 0:t.noiseTexture.activate();break;case 1:t.eeTexture.activate();break;default:console.error(&quot;Wrong LIC pass number&quot;)}},e.deactivateNoiseTexture=(e=0)=&gt;{switch(e){case 0:t.noiseTexture.deactivate();break;case 1:t.eeTexture.deactivate();break;default:console.error(&quot;Wrong LIC pass number&quot;)}},e.attachLICBuffers=()=&gt;{const e=t.textures[t.readIndex],n=t.textures[1-t.readIndex],r=t.framebuffer,o=t.context;e[0].activate(),e[1].activate(),r.removeColorBuffer(0),r.removeColorBuffer(1),r.setColorBuffer(n[0],0),r.setColorBuffer(n[1],1),o.drawBuffers([o.COLOR_ATTACHMENT0,o.COLOR_ATTACHMENT1])},e.detachLICBuffers=()=&gt;{const e=t.textures[t.readIndex],n=t.context,r=t.framebuffer;e[0].deactivate(),e[1].deactivate(),r.removeColorBuffer(0),r.removeColorBuffer(1),n.drawBuffers([n.NONE])},e.attachImageVectorBuffer=()=&gt;{const e=t.framebuffer,n=t.context;t.vectorTexture.activate(),e.removeColorBuffer(0),e.setColorBuffer(t.imageVectorTexture,0),n.drawBuffers([n.COLOR_ATTACHMENT0])},e.detachImageVectorBuffer=()=&gt;{const e=t.context,n=t.framebuffer;t.vectorTexture.deactivate(),n.removeColorBuffer(0),e.drawBuffers([e.NONE])},e.attachEEBuffer=()=&gt;{t.textures[t.readIndex][0].activate(),t.framebuffer.removeColorBuffer(0),t.framebuffer.setColorBuffer(t.eeTexture,0);const e=t.context;e.drawBuffers([e.COLOR_ATTACHMENT0])},e.detachEEBuffer=()=&gt;{const e=t.context;t.framebuffer.removeColorBuffer(0),e.drawBuffers([e.NONE]);t.textures[t.readIndex][0].deactivate()},e.detachBuffers=()=&gt;{const e=t.context,n=t.framebuffer;n.removeColorBuffer(0),n.removeColorBuffer(1),e.drawBuffers([e.NONE]);const r=t.textures[t.readIndex],o=t.textures[1-t.readIndex];r[0]&amp;&amp;r[0].deactivate(),r[1]&amp;&amp;r[1].deactivate(),o[0]&amp;&amp;o[0].deactivate(),o[1]&amp;&amp;o[1].deactivate(),t.eeTexture&amp;&amp;t.eeTexture.deactivate(),t.noiseTexture&amp;&amp;t.noiseTexture.deactivate()},e.getWriteIndex=()=&gt;1-t.readIndex,e.detachBuffers()):console.error(&quot;Pass renderwindow to ping pong manager&quot;)}const Mg={vectorTexture:null,maskVectorTexture:null,noiseTexture:null,doEEPass:!1,doVTPass:!1,readIndex:0,quad:null,lastProgramHash:null,framebuffer:null,size:null,pingTextures:[],pongTextures:[],textures:[]};function Dg(e,t,n={}){Object.assign(t,Mg,n),sn.obj(e,t),sn.get(e,t,[&quot;readIndex&quot;]),sn.setGet(e,t,[&quot;doEEPass&quot;,&quot;doVTPass&quot;,&quot;_openGLRenderWindow&quot;,&quot;vectorTexture&quot;,&quot;maskVectorTexture&quot;,&quot;noiseTexture&quot;,&quot;framebuffer&quot;,&quot;size&quot;]),sn.moveToProtected(e,t,[&quot;openGLRenderWindow&quot;]),Rg(e,t)}var Eg={newInstance:sn.newInstance(Dg,&quot;vtkLICPingPongBufferManager&quot;),extend:Dg};const Vg=0,Lg=1,Bg=2,Fg=3,Ng=1;const kg={shadersNeedBuild:!0,stepSize:1,numberOfSteps:10,enhancedLIC:!0,enhanceContrast:!1,lowContrastEnhancementFactor:0,highContrastEnhancementFactor:0,antiAlias:0,componentIds:[0,1],normalizeVectors:!0,maskThreshold:0,transformVectors:!0,bufs:null,isComposite:!0};function Gg(e,t,n={}){Object.assign(t,kg,n),sn.obj(e,t),sn.setGet(e,t,[&quot;context&quot;,&quot;_openGLRenderWindow&quot;,&quot;nuberOfSteps&quot;,&quot;stepSize&quot;,&quot;normalizeVectors&quot;,&quot;maskThreshold&quot;,&quot;enhancedLIC&quot;,&quot;enhanceContrast&quot;,&quot;lowLICContrastEnhancementFactor&quot;,&quot;highLICContrastEnhancementFactor&quot;,&quot;antiAlias&quot;,&quot;componentIds&quot;,&quot;isComposite&quot;]),sn.moveToProtected(e,t,[&quot;openGLRenderWindow&quot;]),function(e,t){function n(e,t){e.setUniformi(&quot;texLIC&quot;,t.getLICTextureUnit()),e.setUniformi(&quot;texSeedPts&quot;,t.getSeedTextureUnit())}function r(e,t,n){e.attachLICBuffers(),e.renderQuad(t,n),e.detachLICBuffers(),e.swap()}t.classHierarchy.push(&quot;vtkLineIntegralConvolution2D&quot;),e.buildAShader=e=&gt;t._openGLRenderWindow.getShaderCache().readyShaderProgramArray(Pg,e,&quot;&quot;),e.dumpTextureValues=(e,[n,r],o=t.context,a=t._openGLRenderWindow,i=4)=&gt;{const s=Gp.newInstance(),l=o;let c=null;return s.setOpenGLRenderWindow(a),s.saveCurrentBindingsAndBuffers(),s.create(n,r),s.populateFramebuffer(),s.setColorBuffer(e),c=new Float32Array(n*r*i),l.readPixels(0,0,n,r,4===i?l.RGBA:l.RGB,l.FLOAT,c),s.restorePreviousBindingsAndBuffers(),c},e.getTextureMinMax=(n,r,o=t.context,a=t._openGLRenderWindow)=&gt;{const i=e.dumpTextureValues(n,r,o,a,4);let s=Number.MAX_VALUE,l=Number.MIN_VALUE;for(let e=0;e&lt;i.length;e+=4)if(0===i[e+1]){const t=i[e];t&lt;s&amp;&amp;(s=t),t&gt;l&amp;&amp;(l=t)}return{min:s,max:l}},e.getComponentSelectionProgram=e=&gt;{const t=&quot;xyzw&quot;;return`.${t[e[0]]}${t[e[1]]}`},e.buildShaders=()=&gt;{t.LIC0ShaderProgram=e.buildAShader(&quot;//VTK::System::Dec\\n\\n//=========================================================================\\n//\\n//  Program:   Visualization Toolkit\\n//  Module:    vtkLineIntegralConvolution2D_LIC0.glsl\\n//\\n//  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n//  All rights reserved.\\n//  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n//\\n//     This software is distributed WITHOUT ANY WARRANTY; without even\\n//     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n//     PURPOSE.  See the above copyright notice for more information.\\n//\\n//=========================================================================\\n\\n/**\\nThis shader initializes the convolution for the LIC computation.\\n*/\\n\\n// the output of this shader\\nlayout(location = 0) out vec4 LICOutput;\\nlayout(location = 1) out vec4 SeedOutput;\\n\\nuniform sampler2D texMaskVectors;\\nuniform sampler2D texNoise;\\nuniform sampler2D texLIC;\\n\\nuniform int   uStepNo;         // in step 0 initialize lic and seeds, else just seeds\\nuniform int   uPassNo;         // in pass 1 hpf of pass 0 is convolved.\\nuniform float uMaskThreshold;  // if |V| &lt; uMaskThreshold render transparent\\nuniform vec2  uNoiseBoundsPt1; // tc of upper right pt of noise texture\\n\\nin vec2 tcoordVC;\\n\\n// convert from vector coordinate space to noise coordinate space.\\n// the noise texture is tiled across the *whole* domain\\nvec2 VectorTCToNoiseTC(vec2 vectc)\\n{\\n  return vectc/uNoiseBoundsPt1;\\n}\\n\\n// get the texture coordidnate to lookup noise value. this\\n// depends on the pass number.\\nvec2 getNoiseTC(vec2 vectc)\\n{\\n  // in pass 1 : convert from vector tc to noise tc\\n  // in pass 2 : use vector tc\\n  if (uPassNo == 0)\\n    {\\n    return VectorTCToNoiseTC(vectc);\\n    }\\n  else\\n    {\\n    return vectc;\\n    }\\n}\\n\\n// look up noise value at the given location. The location\\n// is supplied in vector texture coordinates, hence the\\n// need to convert to noise texture coordinates.\\nfloat getNoise(vec2 vectc)\\n{\\n  return texture2D(texNoise, getNoiseTC(vectc)).r;\\n}\\n\\nvoid main(void)\\n{\\n  vec2 vectc = tcoordVC.st;\\n\\n  // lic =&gt; (convolution, mask, 0, step count)\\n  if (uStepNo == 0)\\n    {\\n    float maskCriteria = length(texture2D(texMaskVectors, vectc).xyz);\\n    float maskFlag;\\n    if (maskCriteria &lt;= uMaskThreshold)\\n      {\\n      maskFlag = 1.0;\\n      }\\n    else\\n      {\\n      maskFlag = 0.0;\\n      }\\n    float noise = getNoise(vectc);\\n    LICOutput = vec4(noise, maskFlag, 0.0, 1.0);\\n    }\\n  else\\n    {\\n    LICOutput = texture2D(texLIC, vectc);\\n    }\\n\\n  // initial seed\\n  SeedOutput = vec4(vectc, 0.0, 1.0);\\n}\\n&quot;);const n=vd.substitute(&quot;//VTK::System::Dec\\n\\n//=========================================================================\\n//\\n//  Program:   Visualization Toolkit\\n//  Module:    vtkLineIntegralConvolution2D_VT.glsl\\n//\\n//  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n//  All rights reserved.\\n//  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n//\\n//     This software is distributed WITHOUT ANY WARRANTY; without even\\n//     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n//     PURPOSE.  See the above copyright notice for more information.\\n//\\n//=========================================================================\\n\\n// move vector field to normalized image space\\n// pre-processing for vtkLineIntegralConvolution2D\\n\\n// the output of this shader\\n//VTK::Output::Dec\\n\\n// Fragment shader used by the gaussian blur filter render pass.\\n\\nuniform sampler2D texVectors; // input texture\\nuniform vec2      uTexSize;   // size of texture\\n\\nin vec2 tcoordVC;\\n\\nvoid main(void)\\n{\\n  //VTK::LICComponentSelection::Impl\\n  V = V/uTexSize;\\n  gl_FragData[0] = vec4(V, 0.0, 1.0);\\n}\\n&quot;,&quot;//VTK::LICComponentSelection::Impl&quot;,`vec2 V = texture2D(texVectors, tcoordVC.st)${e.getComponentSelectionProgram(t.componentIds)};`).result;t.VTProgram=e.buildAShader(n);const r=vd.substitute(&quot;//VTK::System::Dec\\n\\n//=========================================================================\\n//\\n//  Program:   Visualization Toolkit\\n//  Module:    vtkLineIntegralConvolution2D_fs1.glsl\\n//\\n//  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n//  All rights reserved.\\n//  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n//\\n//     This software is distributed WITHOUT ANY WARRANTY; without even\\n//     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n//     PURPOSE.  See the above copyright notice for more information.\\n//\\n//=========================================================================\\n\\n// the output of this shader\\nlayout(location = 0) out vec4 LICOutput;\\nlayout(location = 1) out vec4 SeedOutput;\\n\\nuniform sampler2D  texVectors;\\nuniform sampler2D  texNoise;\\nuniform sampler2D  texLIC;\\nuniform sampler2D  texSeedPts;\\n\\nuniform int   uPassNo;          // in pass 1 hpf of pass 0 is convolved.\\nuniform float uStepSize;        // step size in parametric space\\n\\nuniform vec2  uNoiseBoundsPt1;  // tc of upper right pt of noise texture\\n\\nin vec2 tcoordVC;\\n\\n//VTK::LICVectorLookup::Impl\\n\\n// We need to do this manually since CLAMP_TO_BORDER and and borderColor\\n// are very poorly supported in webgl\\nvec2 clampToBorder(vec2 uv){\\n  if(uv.x &lt; 0.0 || uv.x &gt; 1.0 || uv.y &lt; 0.0 || uv.y &gt; 1.0)\\n  {\\n    return vec2(0.0, 0.0);\\n  }\\n  return getVector(uv);\\n}\\n\\n// convert from vector coordinate space to noise coordinate space.\\n// the noise texture is tiled across the whole domain\\nvec2 VectorTCToNoiseTC(vec2 vectc)\\n{\\n  return vectc/uNoiseBoundsPt1;\\n}\\n\\n// get the texture coordidnate to lookup noise value.\\n// in pass 1 repeatedly tile the noise texture across\\n// the computational domain.\\nvec2 getNoiseTC(vec2 tc)\\n{\\n  if (uPassNo == 0)\\n    {\\n    return VectorTCToNoiseTC(tc);\\n    }\\n  else\\n    {\\n    return tc;\\n    }\\n}\\n\\n// look up noise value at the given location. The location\\n// is supplied in vector texture coordinates, hence the need\\n// to convert to either noise or lic texture coordinates in\\n// pass 1 and 2 respectively.\\nfloat getNoise(vec2 vectc)\\n{\\n  return texture2D(texNoise, getNoiseTC(vectc)).r;\\n}\\n\\n// fourth-order Runge-Kutta streamline integration\\n// no bounds checks are made, therefore it&#x27;s essential\\n// to have the entire texture initialized to 0\\n// and set clamp to border and have border color 0\\n// an integer is set if the step was taken, keeping\\n// an accurate step count is necessary to prevent\\n// boundary artifacts. Don&#x27;t count the step if\\n// all vector lookups are identically 0. This is\\n// a proxy for \\&quot;stepped outside valid domain\\&quot;\\nvec2 rk4(vec2 pt0, float dt, out bool count)\\n{\\n  count=true;\\n  float dtHalf = dt * 0.5;\\n  vec2 pt1;\\n\\n  vec2 v0 = clampToBorder(pt0);\\n  pt1 = pt0 + v0 * dtHalf;\\n\\n  vec2 v1 = clampToBorder(pt1);\\n  pt1 = pt0 + v1 * dtHalf;\\n\\n  vec2 v2 = clampToBorder(pt1);\\n  pt1 = pt0 + v2 * dt;\\n\\n  vec2 v3 = clampToBorder(pt1);\\n  vec2 vSum = v0 + v1 + v1 + v2 + v2 + v3;\\n\\n  if (vSum == vec2(0.0, 0.0))\\n    {\\n      count = false;\\n    }\\n\\n  pt1 = pt0 + (vSum) * (dt * (1.0/6.0));\\n\\n return pt1;\\n}\\n\\nvoid main(void)\\n{\\n  vec2 lictc = tcoordVC.st;\\n  vec4 lic = texture2D(texLIC, lictc);\\n  vec2 pt0 = texture2D(texSeedPts, lictc).st;\\n\\n  bool count;\\n  vec2 pt1 = rk4(pt0, uStepSize, count);\\n\\n  if (count)\\n    {\\n    // accumulate lic step\\n    // (lic, mask, 0, step count)\\n    float noise = getNoise(pt1);\\n    LICOutput = vec4(lic.r + noise, lic.g, 0.0, lic.a + 1.0);\\n    SeedOutput = vec4(pt1, 0.0, 1.0);\\n    }\\n  else\\n    {\\n    // keep existing values\\n    LICOutput = lic;\\n    SeedOutput = vec4(pt0, 0.0, 1.0);\\n    }\\n}\\n&quot;,&quot;//VTK::LICVectorLookup::Impl&quot;,function(e=!0){return e?&quot;\\n    vec2 getVector( vec2 vectc )\\n\\n      {\\n\\n      vec2 V = texture2D( texVectors, vectc ).xy;\\n\\n      // normalize if |V| not 0\\n\\n      float lenV = length( V );\\n\\n      if ( lenV &gt; 1.0e-8 )\\n\\n        {\\n\\n        return V/lenV;\\n\\n        }\\n\\n      else\\n\\n        {\\n\\n        return vec2( 0.0, 0.0 );\\n\\n        }\\n\\n      }\\n\\n    &quot;:&quot;\\n    vec2 getVector( vec2 vectc )\\n\\n      {\\n\\n      return texture2D( texVectors, vectc ).xy;\\n\\n      }\\n\\n    &quot;}(t.normalizeVectors),!0).result;t.LICIShaderProgram=e.buildAShader(r),t.LICNShaderProgram=e.buildAShader(&quot; //VTK::System::Dec\\n\\n//=========================================================================\\n//\\n//  Program:   Visualization Toolkit\\n//  Module:    vtkLineIntegralConvolution2D_LICN.glsl\\n//\\n//  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n//  All rights reserved.\\n//  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n//\\n//     This software is distributed WITHOUT ANY WARRANTY; without even\\n//     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n//     PURPOSE.  See the above copyright notice for more information.\\n//\\n//=========================================================================\\n\\n// the output of this shader\\nlayout(location = 0) out vec4 LICOutput;\\nlayout(location = 1) out vec4 SeedOutput;\\n\\n/**\\nThis shader finalizes the convolution for the LIC computation\\napplying the normalization. eg. if box kernel is used the this\\nis the number of steps taken.\\n*/\\n\\nuniform sampler2D texLIC;\\n\\nin vec2 tcoordVC;\\n\\nvoid main(void)\\n{\\n  vec4 conv = texture2D(texLIC, tcoordVC.st);\\n  conv.r = conv.r/conv.a;\\n  // lic =&gt; (convolution, mask, 0, 1)\\n  LICOutput = vec4(conv.rg , 0.0, 1.0);\\n  SeedOutput = vec4(0.0, 0.0, 0.0, 0.0);\\n}\\n&quot;),t.CEProgram=e.buildAShader(&quot;//VTK::System::Dec\\n\\n//=========================================================================\\n//\\n//  Program:   Visualization Toolkit\\n//  Module:    vtkLineIntegralConvolution2D_CE.glsl\\n//\\n//  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n//  All rights reserved.\\n//  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n//\\n//     This software is distributed WITHOUT ANY WARRANTY; without even\\n//     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n//     PURPOSE.  See the above copyright notice for more information.\\n//\\n//=========================================================================\\n\\n// gray scale contrast enhance stage implemented via histogram stretching\\n// if the min and max are tweaked it can generate out-of-range values\\n// these will be clamped in 0 to 1\\n\\n// the output of this shader\\nlayout(location = 0) out vec4 LICOutput;\\nlayout(location = 1) out vec4 SeedOutput;\\n\\n\\nuniform sampler2D texLIC;  // most recent lic pass\\nuniform float uMin;        // min gray scale color value\\nuniform float uMaxMinDiff; // max-min\\n\\nin vec2 tcoordVC;\\n\\nvoid main( void )\\n{\\n  vec4 lic = texture2D(texLIC, tcoordVC.st);\\n  if (lic.g!=0.0)\\n    {\\n    LICOutput = lic;\\n    }\\n  else\\n    {\\n    float CElic = clamp((lic.r - uMin)/uMaxMinDiff, 0.0, 1.0);\\n    LICOutput = vec4(CElic, lic.gb, 1.0);\\n    }\\n    SeedOutput = vec4(0.0, 0.0, 0.0, 0.0);\\n}\\n&quot;),t.EEProgram=e.buildAShader(&quot;//VTK::System::Dec\\n\\n//=========================================================================\\n//\\n//  Program:   Visualization Toolkit\\n//  Module:    vtkLineIntegralConvolution2D_fs2.glsl\\n//\\n//  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n//  All rights reserved.\\n//  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n//\\n//     This software is distributed WITHOUT ANY WARRANTY; without even\\n//     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n//     PURPOSE.  See the above copyright notice for more information.\\n//\\n//=========================================================================\\n\\n// high-pass filter stage employed by vtkLineIntegralConvolution2D\\n// between LIC pass 1 and LIC pass 2. filtered LIC pass 1, becomes\\n// noise for pass2.\\n\\n// the output of this shader\\nlayout(location = 0) out vec4 EEOutput;\\n\\nuniform sampler2D texLIC; // most recent lic pass\\nuniform float     uDx;    // fragment size\\nuniform float     uDy;    // fragment size\\n\\nin vec2 tcoordVC;\\n\\n// kernel for simple laplace edge enhancement.\\n// p=Laplace(p)+p\\nfloat K[9] = float[9](\\n  -1.0, -1.0, -1.0,\\n  -1.0,  9.0, -1.0,\\n  -1.0, -1.0, -1.0\\n  );\\n\\n// determine if the fragment was masked\\nbool Masked(float val) { return val != 0.0; }\\n\\nvoid main(void)\\n{\\n  // tex coord neighbor offsets\\n  vec2 fragDx[9] = vec2[9](\\n    vec2(-uDx, uDy), vec2(0.0, uDy), vec2(uDx, uDy),\\n    vec2(-uDx, 0.0), vec2(0.0, 0.0), vec2(uDx, 0.0),\\n    vec2(-uDx,-uDy), vec2(0.0,-uDy), vec2(uDx,-uDy)\\n    );\\n\\n  vec2 lictc = tcoordVC.st;\\n\\n  // compute the convolution but don&#x27;t use convovled values if\\n  // any masked fragments on the stencil. Fragments outside\\n  // the valid domain are masked during initialization, and\\n  // texture wrap parameters are clamp to border with border\\n  // color that contains masked flag\\n  float conv = 0.0;\\n  bool dontUse = false;\\n  for (int i=0; i&lt;9; ++i)\\n    {\\n    vec2 tc = lictc + fragDx[i];\\n    vec4 lic = texture2D(texLIC, tc);\\n    dontUse = dontUse || Masked(lic.g);\\n    conv = conv + K[i] * lic.r;\\n    }\\n\\n  if (dontUse)\\n    {\\n    EEOutput = vec4(texture2D(texLIC, lictc).rg, 0.0, 1.0);\\n    }\\n  else\\n    {\\n    conv = clamp(conv, 0.0, 1.0);\\n    EEOutput = vec4(conv,texture2D(texLIC, lictc).g, 0.0, 1.0);\\n    }\\n\\n}\\n&quot;),t.AAHProgram=e.buildAShader(&quot;//VTK::System::Dec\\n\\n//=========================================================================\\n//\\n//  Program:   Visualization Toolkit\\n//  Module:    vtkLineIntegralConvolution2D_AAH.glsl\\n//\\n//  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n//  All rights reserved.\\n//  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n//\\n//     This software is distributed WITHOUT ANY WARRANTY; without even\\n//     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n//     PURPOSE.  See the above copyright notice for more information.\\n//\\n//=========================================================================\\n\\n// Anti-alias stage in vtkLineIntegralConvolution2D\\n// horizontal pass of a Gaussian convolution\\n\\n// the output of this shader\\nlayout(location = 0) out vec4 LICOutput;\\nlayout(location = 1) out vec4 SeedOutput;\\n\\nuniform sampler2D texLIC; // input texture\\nuniform float     uDx;    // fragment size\\n\\nin vec2 tcoordVC;\\n\\n// factored 3x3 Gaussian kernel\\n// K^T*K = G\\nfloat K[3] = float[3](0.141421356, 0.707106781, 0.141421356);\\n\\n// determine if the fragment was masked\\nbool Masked(float val){ return val != 0.0; }\\n\\nvoid main(void)\\n{\\n// neighbor offsets\\nvec2 fragDx[3] = vec2[3](vec2(-uDx,0.0), vec2(0.0,0.0), vec2(uDx,0.0));\\n\\n  vec2 lictc = tcoordVC.st;\\n  vec4 lic[3];\\n  bool dontUse = false;\\n  float conv = 0.0;\\n  for (int i=0; i&lt;3; ++i)\\n    {\\n    vec2 tc = lictc + fragDx[i];\\n    lic[i] = texture2D(texLIC, tc);\\n    dontUse = dontUse || Masked(lic[i].g);\\n    conv = conv + K[i] * lic[i].r;\\n    }\\n  // output is (conv, mask, skip, 1)\\n  if (dontUse)\\n    {\\n    LICOutput = vec4(lic[1].rg, 1.0, 1.0);\\n    }\\n  else\\n    {\\n    LICOutput = vec4(conv, lic[1].gb, 1.0);\\n    }\\n  SeedOutput = vec4(0.0, 0.0, 0.0, 0.0);\\n}\\n&quot;),t.AAVProgram=e.buildAShader(&quot;//VTK::System::Dec\\n\\n//=========================================================================\\n//\\n//  Program:   Visualization Toolkit\\n//  Module:    vtkLineIntegralConvolution2D_AAV.glsl\\n//\\n//  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n//  All rights reserved.\\n//  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n//\\n//     This software is distributed WITHOUT ANY WARRANTY; without even\\n//     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n//     PURPOSE.  See the above copyright notice for more information.\\n//\\n//=========================================================================\\n\\n// Anti-alias stage in vtkLineIntegralConvolution2D\\n// vertical pass of a Gaussian convolution\\n\\n// the output of this shader\\nlayout(location = 0) out vec4 LICOutput;\\nlayout(location = 1) out vec4 SeedOutput;\\n\\nuniform sampler2D texLIC; // input texture\\nuniform float     uDy;    // fragment size\\n\\nin vec2 tcoordVC;\\n\\n\\n// factored 3x3 Gaussian kernel\\n// K^T*K = G\\nfloat K[3] = float[3](0.141421356, 0.707106781, 0.141421356);\\n\\n// determine if the fragment was masked\\nbool Masked(float val){ return val != 0.0; }\\n\\nvoid main(void)\\n{\\n// neighbor offsets\\nvec2 fragDy[3] = vec2[3](vec2(0.0,-uDy), vec2(0.0,0.0), vec2(0.0,uDy));\\n\\n\\n  vec2 lictc = tcoordVC.st;\\n  vec4 lic[3];\\n  bool dontUse = false;\\n  float conv = 0.0;\\n  for (int i=0; i&lt;3; ++i)\\n    {\\n    vec2 tc = lictc + fragDy[i];\\n    lic[i] = texture2D(texLIC, tc);\\n    dontUse = dontUse || Masked(lic[i].g);\\n    conv = conv + K[i] * lic[i].r;\\n    }\\n  // output is (conv, mask, skip, 1)\\n  if (dontUse)\\n    {\\n    LICOutput = vec4(lic[1].rg, 1.0, 1.0);\\n    }\\n  else\\n    {\\n    LICOutput = vec4(conv, lic[1].gb, 1.0);\\n    }\\n  SeedOutput = vec4(0.0, 0.0, 0.0, 0.0);\\n}\\n&quot;)},e.executeLIC=(o,a,i,s,l,c)=&gt;{if(t._openGLRenderWindow=l,t.context=l.getContext(),Object.assign(t,c),o[0]&lt;=0||o[1]&lt;=0)return null;const u=[1/o[0],1/o[1]];let d=t.stepSize*Math.sqrt(u[0]*u[0]+u[1]*u[1]);d&lt;=0&amp;&amp;(d=1e-10);const p=t.context;let f=t.framebuffer;const g=f?.getSize();f&amp;&amp;g&amp;&amp;o[0]===g&amp;&amp;o[1]===g||(f=Gp.newInstance(),f.setOpenGLRenderWindow(t._openGLRenderWindow),f.saveCurrentBindingsAndBuffers(),f.create(...o),f.populateFramebuffer(),f.restorePreviousBindingsAndBuffers(),t.framebuffer=f),f.saveCurrentBindingsAndBuffers(),f.bind(),p.viewport(0,0,...o),p.scissor(0,0,...o),t.shadersNeedBuild&amp;&amp;(e.buildShaders(),t.shadersNeedBuild=!1),t.bufs?(t.bufs.setVectorTexture(a),t.bufs.setMaskVectorTexture(i),t.bufs.setNoiseTexture(s)):t.bufs=Eg.newInstance({openGLRenderWindow:l,doEEPass:t.enhancedLIC,doVTPass:t.transformVectors,vectorTexture:a,maskVectorTexture:i,noiseTexture:s,framebuffer:f,size:o});const m=[(s.getWidth()+1)/o[0],(s.getHeight()+1)/o[1]],h=1/o[0],v=1/o[1],T=t._openGLRenderWindow.getShaderCache();if(t.transformVectors){const e=t.VTProgram;T.readyShaderProgram(e),t.bufs.attachImageVectorBuffer(),e.setUniform2f(&quot;uTexSize&quot;,...o),e.setUniformi(&quot;texVectors&quot;,t.bufs.getVectorTextureUnit()),p.clearColor(0,0,0,0),p.clear(p.COLOR_BUFFER_BIT),t.bufs.renderQuad(o,e),t.bufs.detachImageVectorBuffer()}t.bufs.clearBuffers(t.enhancedLIC),t.bufs.activateVectorTextures(),t.bufs.activateNoiseTexture(0);const{LIC0ShaderProgram:x}=t;T.readyShaderProgram(x),x.setUniformi(&quot;uStepNo&quot;,0),x.setUniformi(&quot;uPassNo&quot;,0),x.setUniformf(&quot;uMaskThreshold&quot;,t.maskThreshold),x.setUniform2f(&quot;uNoiseBoundsPt1&quot;,...m),x.setUniformi(&quot;texMaskVectors&quot;,t.bufs.getMaskVectorTextureUnit()),x.setUniformi(&quot;texLIC&quot;,t.bufs.getLICTextureUnit()),x.setUniformi(&quot;texNoise&quot;,t.bufs.getNoiseTextureUnit(0)),r(t.bufs,o,x);const{LICIShaderProgram:y}=t;T.readyShaderProgram(y),y.setUniformi(&quot;uPassNo&quot;,0),y.setUniformf(&quot;uStepSize&quot;,-d),y.setUniform2f(&quot;uNoiseBoundsPt1&quot;,...m),y.setUniformi(&quot;texVectors&quot;,t.bufs.getImageVectorTextureUnit()),y.setUniformi(&quot;texNoise&quot;,t.bufs.getNoiseTextureUnit(0));for(let e=0;e&lt;t.numberOfSteps;++e)n(y,t.bufs),r(t.bufs,o,y);T.readyShaderProgram(x),x.setUniformi(&quot;uStepNo&quot;,1),n(x,t.bufs),r(t.bufs,o,x),T.readyShaderProgram(y),y.setUniformf(&quot;uStepSize&quot;,d);for(let e=0;e&lt;t.numberOfSteps;++e)n(y,t.bufs),r(t.bufs,o,y);t.bufs.deactivateNoiseTexture(0),t.bufs.deactivateVectorTextures();const{LICNShaderProgram:b}=t;if(T.readyShaderProgram(b),b.setUniformi(&quot;texLIC&quot;,t.bufs.getLICTextureUnit()),r(t.bufs,o,b),t.enhancedLIC){t.enhanceContrast!==Lg&amp;&amp;t.enhanceContrast!==Fg||e.contrastEnhance(!1,o),t.bufs.attachEEBuffer();const{EEProgram:a}=t;T.readyShaderProgram(a),a.setUniformi(&quot;texLIC&quot;,t.bufs.getLICTextureUnit()),a.setUniformf(&quot;uDx&quot;,h),a.setUniformf(&quot;uDy&quot;,v),t.bufs.renderQuad(o,a),t.bufs.detachEEBuffer(),t.bufs.detachBuffers(),t.bufs.clearBuffers(!1),t.bufs.activateVectorTextures(),t.bufs.activateNoiseTexture(1),T.readyShaderProgram(x),x.setUniformi(&quot;uStepNo&quot;,0),x.setUniformi(&quot;uPassNo&quot;,1),n(x,t.bufs),x.setUniformi(&quot;texNoise&quot;,t.bufs.getNoiseTextureUnit(1)),r(t.bufs,o,x),T.readyShaderProgram(y),y.setUniformi(&quot;uPassNo&quot;,1),y.setUniformf(&quot;uStepSize&quot;,-d),y.setUniformi(&quot;texNoise&quot;,t.bufs.getNoiseTextureUnit(1));const i=t.numberOfSteps/2;for(let e=0;e&lt;i;++e)n(y,t.bufs),r(t.bufs,o,y);T.readyShaderProgram(x),x.setUniformi(&quot;uStepNo&quot;,1),n(x,t.bufs),r(t.bufs,o,x),T.readyShaderProgram(y),y.setUniformf(&quot;uStepSize&quot;,d);for(let e=0;e&lt;i;++e)n(y,t.bufs),r(t.bufs,o,y);t.bufs.deactivateNoiseTexture(1),t.bufs.deactivateVectorTextures(),T.readyShaderProgram(b),b.setUniformi(&quot;texLIC&quot;,t.bufs.getLICTextureUnit()),b.setUniformi(&quot;texSeedPts&quot;,t.bufs.getSeedTextureUnit()),r(t.bufs,o,b)}if(t.antiAlias){const e=t.AAHProgram;T.readyShaderProgram(e),e.setUniformi(&quot;texLIC&quot;,t.bufs.getLICTextureUnit()),e.setUniformf(&quot;uDx&quot;,h);const a=t.AAVProgram;T.readyShaderProgram(a),a.setUniformi(&quot;texLIC&quot;,t.bufs.getLICTextureUnit()),a.setUniformf(&quot;uDy&quot;,v);for(let i=0;i&lt;t.antiAlias;++i)T.readyShaderProgram(e),n(e,t.bufs),r(t.bufs,o,e),T.readyShaderProgram(a),n(a,t.bufs),r(t.bufs,o,a)}return t.enhanceContrast!==Lg&amp;&amp;t.enhanceContrast!==Fg||e.contrastEnhance(!0,o),t.bufs.detachBuffers(),f.restorePreviousBindingsAndBuffers(),t.bufs.getLastLICBuffer()},e.contrastEnhance=(n,o)=&gt;{const a=t._openGLRenderWindow.getShaderCache();let{min:i,max:s}=e.getTextureMinMax(t.bufs.getLastLICBuffer(),o,t.context,t._openGLRenderWindow);(s&lt;=i||s&gt;1||i&lt;0)&amp;&amp;(console.error(&quot;Invalid color range: &quot;,i,s),i=0,s=1);let l=s-i;n&amp;&amp;(i+=l*t.lowLICContrastEnhancementFactor,s-=l*t.highLICContrastEnhancementFactor,l=s-i);const{CEProgram:c}=t;a.readyShaderProgram(c),c.setUniformi(&quot;texLIC&quot;,t.bufs.getLICTextureUnit()),c.setUniformf(&quot;uMin&quot;,i),c.setUniformf(&quot;uMaxMinDiff&quot;,l),r(t.bufs,o,c)}}(e,t)}var Ug={newInstance:sn.newInstance(Gg,&quot;vtkLineIntegralConvolution2D&quot;),extend:Gg};const _g={enableLIC:!1,nuberOfSteps:40,stepSize:.25,transformVectors:!0,normalizeVectors:!0,maskOnSurface:!1,maskThreshold:0,maskColor:[0,0,0],maskIntensity:0,enhancedLIC:!0,enhanceContrast:Vg,lowLICContrastEnhancementFactor:0,highLICContrastEnhancementFactor:0,lowColorContrastEnhancementFactor:0,highColorContrastEnhancementFactor:0,antiAlias:0,colorMode:0,LICIntensity:1,mapModeBias:0,noiseTextureSize:200,noiseTextureType:Ng,noiseGrainSize:8,noiseImpulseProbability:.1,noiseImpulseBackgroundValue:0,noiseGeneratorSeed:0,minNoiseValue:0,maxNoiseValue:1,numberOfNoiseLevels:2,shadersNeedBuilding:!0,reallocateTextures:!0,rebuildNoiseTexture:!1,viewPortScale:1};function Kg(e,t,n={}){Object.assign(t,_g,n),sn.obj(e,t),sn.setGet(e,t,[&quot;enableLIC&quot;,&quot;numberOfSteps&quot;,&quot;stepSize&quot;,&quot;normalizeVectors&quot;,&quot;transformVectors&quot;,&quot;maskOnSurface&quot;,&quot;maskThreshold&quot;,&quot;maskColor&quot;,&quot;maskIntensity&quot;,&quot;enhancedLIC&quot;,&quot;enhanceContrast&quot;,&quot;lowLICContrastEnhancementFactor&quot;,&quot;highLICContrastEnhancementFactor&quot;,&quot;lowColorContrastEnhancementFactor&quot;,&quot;highColorContrastEnhancementFactor&quot;,&quot;antiAlias&quot;,&quot;colorMode&quot;,&quot;LICIntensity&quot;,&quot;mapModeBias&quot;,&quot;noiseTextureSize&quot;,&quot;noiseTextureType&quot;,&quot;noiseGrainSize&quot;,&quot;minNoiseValue&quot;,&quot;maxNoiseValue&quot;,&quot;numberOfNoiseLevels&quot;,&quot;noiseImpulseProbability&quot;,&quot;noiseImpulseBackgroundValue&quot;,&quot;noiseGeneratorSeed&quot;,&quot;viewPortScale&quot;,&quot;rebuildNoiseTexture&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkSurfaceLICInterface&quot;)}(0,t)}var zg={newInstance:sn.newInstance(Kg,&quot;vtkSurfaceLICInterface&quot;),extend:Kg};const{Representation:Wg}=us;function Hg(e,t){t.classHierarchy.push(&quot;vtkOpenGLSurfaceLICInterface&quot;),e.renderQuad=(e,n)=&gt;{const r=t.licQuad,o=t.context;let a=t.licQuadVAO;a||(a=yd.newInstance(),a.setOpenGLRenderWindow(t._openGLRenderWindow),t.licQuadVAO=a),t.previousProgramHash!==n.getMd5Hash()&amp;&amp;(a.shaderProgramChanged(),r.getCABO().bind(),a.addAttributeArray(n,r.getCABO(),&quot;vertexDC&quot;,r.getCABO().getVertexOffset(),r.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE),a.addAttributeArray(n,r.getCABO(),&quot;tcoordDC&quot;,r.getCABO().getTCoordOffset(),r.getCABO().getStride(),t.context.FLOAT,2,t.context.FALSE),t.previousProgramHash=n.getMd5Hash()),o.drawArrays(o.TRIANGLES,0,r.getCABO().getElementCount()),a.release()},e.generateNoiseTexture=e=&gt;{if(!t.noiseTexture||t.licInterface.getRebuildNoiseTexture()){t.licInterface.setRebuildNoiseTexture(!1),t.noiseTexture&amp;&amp;t.noiseTexture.releaseGraphicsResources(),mo(t.noiseGeneratorSeed,{global:!0});let n=[];const{noiseTextureType:r,noiseGrainSize:o,numberOfNoiseLevels:a,noiseImpulseProbability:i,noiseImpulseBackgroundValue:s,minNoiseValue:l,maxNoiseValue:c}=t.licInterface.get(&quot;noiseTextureType&quot;,&quot;noiseGrainSize&quot;,&quot;numberOfNoiseLevels&quot;,&quot;noiseImpulseProbability&quot;,&quot;noiseImpulseBackgroundValue&quot;,&quot;minNoiseValue&quot;,&quot;maxNoiseValue&quot;);if(r===Ng)n=function(e,t,n,r,o,a){const i=Math.max(0,Math.min(1,n)),s=Float32Array.from({length:e*e},(()=&gt;{let e=0;if(1===i||Math.random()&gt;1-i)for(let t=0;t&lt;2048;++t)e+=Math.random();return e}));let l=0,c=2049;s.forEach((e=&gt;{c=1===i?e&lt;c?e:c:e&lt;c&amp;&amp;e&gt;0?e:c,l=e&gt;l?e:l}));let u=l-c;0===u&amp;&amp;(c=0,u=0===l?1:l);const d=t-1,p=0!==d?1/d:0,f=a-o;return s.map((e=&gt;{const n=e&lt;c?e:(e-c)/u,i=Math.floor(n*t);return e&gt;=c?1===t?a:o+(i&gt;d?d:i)*p*f:r}))}(Math.floor(e/o),a,i,s,l,c);else n=function([e,t],n,r,o){const a=o-r;return Float32Array.from({length:e*t},(()=&gt;{let e=Math.random();return e=Math.floor(e*n)/n,e=e*a+r,e&gt;1?1:e&lt;0?0:e}))}([Math.ceil(e/o),Math.ceil(e/o)],a,l,c);const u=1/o,d=Float32Array.from({length:e*e*4},((t,r)=&gt;{const a=r/4;if(r%4==0){const t=Math.floor(a%e*u),r=Math.floor(a/e*u);return n[r*(e/o)+t]}return r%4==1||r%4==3?1:0})),p=Hd.newInstance({wrapS:Hd.Wrap.REPEAT,wrapT:Hd.Wrap.REPEAT,minificationFilter:Hd.Filter.NEAREST,magnificationFilter:Hd.Filter.NEAREST,generateMipMap:!1,openGLDataType:t.context.FLOAT,baseLevel:0,maxLevel:0,autoParameters:!1});p.setOpenGLRenderWindow(t._openGLRenderWindow),p.create2DFromRaw({width:e,height:e,numComps:4,dataType:&quot;Float32Array&quot;,data:d}),p.activate(),p.sendParameters(),p.deactivate(),t.noiseTexture=p}},e.buildAShader=e=&gt;t._openGLRenderWindow.getShaderCache().readyShaderProgramArray(Pg,e,&quot;&quot;),e.allocateTextures=()=&gt;{const n=Hd.Filter.NEAREST,r=Hd.Filter.LINEAR,o=t._openGLRenderWindow;t.geometryImage||(t.geometryImage=e.allocateTexture(o,n)),t.vectorImage||(t.vectorImage=e.allocateTexture(o,r)),t.maskVectorImage||(t.maskVectorImage=e.allocateTexture(o,r)),t.LICImage||(t.LICImage=e.allocateTexture(o,n)),t.RGBColorImage||(t.RGBColorImage=e.allocateTexture(o,n)),t.HSLColorImage||(t.HSLColorImage=e.allocateTexture(o,n)),t.depthTexture||(t.depthTexture=e.allocateDepthTexture(o))},e.allocateTexture=(e,n)=&gt;{const r=t.context,o=Hd.newInstance({wrapS:Hd.Wrap.CLAMP_TO_EDGE,wrapT:Hd.Wrap.CLAMP_TO_EDGE,minificationFilter:n,magnificationFilter:n,generateMipmap:!1,openGLDataType:r.FLOAT,baseLevel:0,maxLevel:0,autoParameters:!1});return o.setOpenGLRenderWindow(e),o.setInternalFormat(r.RGBA32F),o.create2DFromRaw({width:t.size[0],height:t.size[1],numComps:4,dataType:&quot;Float32Array&quot;,data:null}),o.activate(),o.sendParameters(),o.deactivate(),o},e.allocateDepthTexture=e=&gt;{const n=t.context,r=Hd.newInstance({generateMipmap:!1,openGLDataType:n.FLOAT,autoParameters:!1});return r.setOpenGLRenderWindow(e),r.createDepthFromRaw({width:t.size[0],height:t.size[1],dataType:&quot;Float32Array&quot;,data:null}),r.activate(),r.sendParameters(),r.deactivate(),r},e.createFBO=()=&gt;{if(!t.framebuffer){t.licHelper=null;const e=Gp.newInstance();e.setOpenGLRenderWindow(t._openGLRenderWindow),e.saveCurrentBindingsAndBuffers(),e.create(...t.size),e.populateFramebuffer(),t.framebuffer=e,e.restorePreviousBindingsAndBuffers()}},e.completedGeometry=()=&gt;{const e=t.context,n=t.framebuffer;n.removeColorBuffer(0),n.removeColorBuffer(1),n.removeColorBuffer(2),n.removeDepthBuffer(),e.drawBuffers([e.NONE]),n.restorePreviousBindingsAndBuffers()},e.buildAllShaders=()=&gt;{t.shadersNeedBuilding&amp;&amp;(t.licColorPass=e.buildAShader(&quot;//VTK::System::Dec\\n\\n//=========================================================================\\n//\\n//  Program:   Visualization Toolkit\\n//  Module:    vtkSurfaceLICMapper_fs2.glsl\\n//\\n//  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n//  All rights reserved.\\n//  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n//\\n//     This software is distributed WITHOUT ANY WARRANTY; without even\\n//     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n//     PURPOSE.  See the above copyright notice for more information.\\n//\\n//=========================================================================\\n\\n// This shader combines surface geometry, LIC, and  scalar colors.\\n\\n// the output of this shader\\nlayout(location = 0) out vec4 RGBOutput;\\nlayout(location = 1) out vec4 HSLOutput;\\n\\nuniform sampler2D texVectors;       // vectors, depth\\nuniform sampler2D texGeomColors;    // scalar colors + lighting\\nuniform sampler2D texLIC;           // image lic\\nuniform int       uScalarColorMode; // select between blend, and map shader\\nuniform float     uLICIntensity;    // blend shader: blending factor for lic&#x27;d colors\\nuniform float     uMapBias;         // map shader: adjust the brightness of the result\\nuniform float     uMaskIntensity;   // blending factor for mask color\\nuniform vec3      uMaskColor;       // color for the masked out fragments\\n\\nin vec2 tcoordVC;\\n\\n/**\\nConvert from RGB color space into HSL colorspace.\\n*/\\nvec3 RGBToHSL(vec3 RGB)\\n{\\n  vec3 HSL = vec3(0.0, 0.0, 0.0);\\n\\n  float RGBMin = min(min(RGB.r, RGB.g), RGB.b);\\n  float RGBMax = max(max(RGB.r, RGB.g), RGB.b);\\n  float RGBMaxMinDiff = RGBMax - RGBMin;\\n\\n  HSL.z = (RGBMax + RGBMin) / 2.0;\\n\\n  if (RGBMaxMinDiff == 0.0)\\n    {\\n    // Gray scale\\n    HSL.x = 0.0;\\n    HSL.y = 0.0;\\n    }\\n  else\\n    {\\n    // Color\\n    if (HSL.z &lt; 0.5)\\n      HSL.y = RGBMaxMinDiff / (RGBMax + RGBMin);\\n    else\\n      HSL.y = RGBMaxMinDiff / (2.0 - RGBMax - RGBMin);\\n\\n    float dR\\n      = (((RGBMax - RGB.r) / 6.0) + (RGBMaxMinDiff / 2.0)) / RGBMaxMinDiff;\\n    float dG\\n      = (((RGBMax - RGB.g) / 6.0) + (RGBMaxMinDiff / 2.0)) / RGBMaxMinDiff;\\n    float dB\\n      = (((RGBMax - RGB.b) / 6.0) + (RGBMaxMinDiff / 2.0)) / RGBMaxMinDiff;\\n\\n    if (RGB.r == RGBMax)\\n      HSL.x = dB - dG;\\n    else\\n    if (RGB.g == RGBMax)\\n      HSL.x = (1.0 / 3.0) + dR - dB;\\n    else\\n    if (RGB.b == RGBMax)\\n      HSL.x = (2.0 / 3.0) + dG - dR;\\n\\n    if (HSL.x &lt; 0.0)\\n      HSL.x += 1.0;\\n\\n    if (HSL.x &gt; 1.0)\\n      HSL.x -= 1.0;\\n    }\\n\\n  return HSL;\\n}\\n\\n/**\\nHelper for HSL to RGB conversion.\\n*/\\nfloat Util(float v1, float v2, float vH)\\n{\\n  if (vH &lt; 0.0)\\n    vH += 1.0;\\n\\n  if (vH &gt; 1.0)\\n     vH -= 1.0;\\n\\n  if ((6.0 * vH) &lt; 1.0)\\n    return (v1 + (v2 - v1) * 6.0 * vH);\\n\\n  if ((2.0 * vH) &lt; 1.0)\\n    return (v2);\\n\\n  if ((3.0 * vH) &lt; 2.0)\\n    return (v1 + (v2 - v1) * ((2.0 / 3.0) - vH) * 6.0);\\n\\n  return v1;\\n}\\n\\n/**\\nConvert from HSL space into RGB space.\\n*/\\nvec3 HSLToRGB(vec3 HSL)\\n{\\n  vec3 RGB;\\n  if (HSL.y == 0.0)\\n    {\\n    // Gray\\n    RGB.r = HSL.z;\\n    RGB.g = HSL.z;\\n    RGB.b = HSL.z;\\n    }\\n  else\\n    {\\n    // Chromatic\\n    float v2;\\n    if (HSL.z &lt; 0.5)\\n      v2 = HSL.z * (1.0 + HSL.y);\\n    else\\n      v2 = (HSL.z + HSL.y) - (HSL.y * HSL.z);\\n\\n    float v1 = 2.0 * HSL.z - v2;\\n\\n    RGB.r = Util(v1, v2, HSL.x + (1.0 / 3.0));\\n    RGB.g = Util(v1, v2, HSL.x);\\n    RGB.b = Util(v1, v2, HSL.x - (1.0 / 3.0));\\n    }\\n\\n  return RGB.rgb;\\n}\\n\\nvoid main()\\n{\\n  vec4 lic = texture2D(texLIC, tcoordVC.st);\\n  vec4 geomColor = texture2D(texGeomColors, tcoordVC.st);\\n\\n  // depth is used to determine which fragment belong to us\\n  // and we can change\\n  float depth = texture2D(texVectors, tcoordVC.st).a;\\n\\n  vec3 fragColorRGB;\\n  float valid;\\n  if (depth &gt; 1.0e-3)\\n    {\\n    // we own it\\n    // shade LIC&#x27;ed geometry, or apply mask\\n    if (lic.g!=0.0)\\n      {\\n      // it&#x27;s masked\\n      // apply fragment mask\\n      fragColorRGB = uMaskIntensity * uMaskColor + (1.0 - uMaskIntensity) * geomColor.rgb;\\n      valid = 0.0;\\n      }\\n    else\\n      {\\n      if (uScalarColorMode==0)\\n        {\\n        // blend with scalars\\n        fragColorRGB = lic.rrr * uLICIntensity + geomColor.rgb * (1.0 - uLICIntensity);\\n        }\\n      else\\n        {\\n        // multiply with scalars\\n        fragColorRGB = geomColor.rgb * clamp((uMapBias + lic.r), 0.0, 1.0);\\n        }\\n      if (lic.b != 0.0)\\n        {\\n        // didn&#x27;t have the required guard pixels\\n        // don&#x27;t consider it in min max estimation\\n        // for histpgram stretching\\n        valid = 0.0;\\n        }\\n      else\\n        {\\n        // ok to use in min/max estimates for histogram\\n        // stretching\\n        valid = 1.0;\\n        }\\n      }\\n    }\\n  else\\n    {\\n    // we don&#x27;t own it\\n    // pass through scalars\\n    fragColorRGB = geomColor.rgb;\\n    valid = 0.0;\\n    }\\n\\n  // if no further stages this texture is\\n  // copied to the screen\\n  RGBOutput = vec4(fragColorRGB, geomColor.a);\\n\\n  // if further stages, move to hsl space for contrast\\n  // enhancement. encoding validity saves moving a texture to the cpu\\n  vec3 fragColorHSL = RGBToHSL(fragColorRGB);\\n  HSLOutput = vec4(fragColorHSL, valid);\\n}\\n&quot;),t.licCopyPass=e.buildAShader(&quot;//VTK::System::Dec\\n\\n//=========================================================================\\n//\\n//  Program:   Visualization Toolkit\\n//  Module:    vtkSurfaceLICMapper_DCpy.glsl\\n//\\n//  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n//  All rights reserved.\\n//  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n//\\n//     This software is distributed WITHOUT ANY WARRANTY; without even\\n//     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n//     PURPOSE.  See the above copyright notice for more information.\\n//\\n//=========================================================================\\n\\n// This shader copies fragments and depths to the output buffer\\n\\n// the output of this shader\\n//VTK::Output::Dec\\n\\nuniform sampler2D texDepth;     // z values from vertex shader\\nuniform sampler2D texRGBColors; // final rgb LIC colors\\n\\nin vec2 tcoordVC;\\n\\nvoid main()\\n{\\n  gl_FragDepth = texture2D(texDepth, tcoordVC).x;\\n  gl_FragData[0] = texture2D(texRGBColors, tcoordVC);\\n\\n  // since we render a screen aligned quad\\n  // we&#x27;re going to be writing fragments\\n  // not touched by the original geometry\\n  // it&#x27;s critical not to modify those\\n  // fragments.\\n  if (gl_FragDepth == 1.0)\\n    {\\n    discard;\\n    }\\n}\\n&quot;),t.enhanceContrastPass=e.buildAShader(&quot;//VTK::System::Dec\\n\\n//=========================================================================\\n//\\n//  Program:   Visualization Toolkit\\n//  Module:    vtkSurfaceLICMapper_CE.glsl\\n//\\n//  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n//  All rights reserved.\\n//  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n//\\n//     This software is distributed WITHOUT ANY WARRANTY; without even\\n//     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n//     PURPOSE.  See the above copyright notice for more information.\\n//\\n//=========================================================================\\n\\n// color contrast enhance stage implemented via histogram stretching\\n// on lightness channel. if the min and max are tweaked it can generate\\n// out-of-range values these will be clamped in 0 to 1\\n\\n// the output of this shader\\n//VTK::Output::Dec\\n\\nuniform sampler2D texGeomColors; // scalars + lighting\\nuniform sampler2D texLIC;        // image lic, mask\\nuniform sampler2D texHSLColors;  // hsla colors\\n\\nuniform float     uLMin;         // min lightness over all fragments\\nuniform float     uLMaxMinDiff;  // max - min lightness over all fragments\\n\\nin vec2 tcoordVC;\\n\\nvec3 HSLToRGB(vec3 HSL)\\n{\\n  vec3 RGB;\\n  float v;\\n  float h = HSL.x;\\n  float sl = HSL.y;\\n  float l = HSL.z;\\n\\n  v = (l &lt;= 0.5) ? (l * (1.0 + sl)) : (l + sl - l * sl);\\n  if (v &lt;= 0.0) {\\n    RGB = vec3(0.0,0.0,0.0);\\n  } else {\\n    float m;\\n    int sextant;\\n    float fract, vsf, mid1, mid2;\\n\\n    m = l + l - v;\\n    h *= 6.0;\\n    sextant = int(h);\\n    fract = h - float(sextant);\\n\\n    vsf = (v - m) * fract;\\n    mid1 = m + vsf;\\n    mid2 = v - vsf;\\n    switch (sextant) {\\n      case 0: RGB.r = v; RGB.g = mid1; RGB.b = m; break;\\n      case 1: RGB.r = mid2; RGB.g = v; RGB.b = m; break;\\n      case 2: RGB.r = m; RGB.g = v; RGB.b = mid1; break;\\n      case 3: RGB.r = m; RGB.g = mid2; RGB.b = v; break;\\n      case 4: RGB.r = mid1; RGB.g = m; RGB.b = v; break;\\n      case 5: RGB.r = v; RGB.g = m; RGB.b = mid2; break;\\n    }\\n  }\\n  return RGB;\\n}\\n\\nvoid main()\\n{\\n  // lookup hsl color , mask\\n  vec4 fragColor = texture2D(texHSLColors, tcoordVC.st);\\n\\n  // don&#x27;t modify masked fragments (masked =&gt; lic.g==1)\\n  vec4 lic = texture2D(texLIC, tcoordVC.st);\\n  if (lic.g==0.0)\\n    {\\n    // normalize lightness channel\\n    fragColor.z = clamp((fragColor.z - uLMin)/uLMaxMinDiff, 0.0, 1.0);\\n    }\\n\\n  // back into rgb space\\n  fragColor.rgb = HSLToRGB(fragColor.xyz);\\n\\n  // add alpha\\n  vec4 geomColor = texture2D(texGeomColors, tcoordVC.st);\\n  fragColor.a = geomColor.a;\\n\\n  gl_FragData[0] = fragColor;\\n}\\n&quot;),t.shadersNeedBuilding=!1)},e.initializeResources=()=&gt;{e.createFBO(),e.generateNoiseTexture(t.licInterface.getNoiseTextureSize()),e.allocateTextures(),e.buildAllShaders(),t.licQuad||(t.licQuad=function(e){const t=Sd.newInstance();t.setOpenGLRenderWindow(e);const n=new Float32Array(12);for(let e=0;e&lt;4;e++)n[3*e]=e%2*2-1,n[3*e+1]=e&gt;1?1:-1,n[3*e+2]=0;const r=new Float32Array([0,0,1,0,0,1,1,1]),o=new Uint16Array(8);o[0]=3,o[1]=0,o[2]=1,o[3]=3,o[4]=3,o[5]=0,o[6]=3,o[7]=2;const a=Is.newInstance({numberOfComponents:3,values:n});a.setName(&quot;points&quot;);const i=Is.newInstance({numberOfComponents:1,values:o}),s=Is.newInstance({numberOfComponents:2,values:r});return t.getCABO().createVBO(i,&quot;polys&quot;,Wg.SURFACE,{points:a,cellOffset:0,tcoords:s}),t}(t._openGLRenderWindow)),t.licHelper||(t.licHelper=Ug.newInstance())},e.prepareForGeometry=()=&gt;{const e=t.framebuffer;e.saveCurrentBindingsAndBuffers(),e.bind(),t.geometryImage.activate(),t.vectorImage.activate(),t.maskVectorImage.activate(),e.removeColorBuffer(0),e.removeColorBuffer(2),e.removeColorBuffer(3),e.setColorBuffer(t.geometryImage,0),e.setColorBuffer(t.vectorImage,2),e.setColorBuffer(t.maskVectorImage,3),e.setDepthBuffer(t.depthTexture);const n=t.context;n.drawBuffers([n.COLOR_ATTACHMENT0,n.NONE,n.COLOR_ATTACHMENT2,n.COLOR_ATTACHMENT3]),n.viewport(0,0,...t.size),n.scissor(0,0,...t.size),n.disable(n.BLEND),n.disable(n.DEPTH_TEST),n.disable(n.SCISSOR_TEST),n.clearColor(0,0,0,0),n.clear(n.DEPTH_BUFFER_BIT|n.COLOR_BUFFER_BIT)},e.copyToScreen=n=&gt;{t.RGBColorImage.activate(),t.depthTexture.activate(),t.licCopyPass||e.initializeResources();const r=t.licCopyPass;t._openGLRenderWindow.getShaderCache().readyShaderProgram(r);const o=t.context;o.viewport(0,0,...n),o.scissor(0,0,...n),o.disable(o.BLEND),o.enable(o.DEPTH_TEST),o.disable(o.SCISSOR_TEST),r.setUniformi(&quot;texDepth&quot;,t.depthTexture.getTextureUnit()),r.setUniformi(&quot;texRGBColors&quot;,t.RGBColorImage.getTextureUnit()),e.renderQuad(n,r),t.RGBColorImage.deactivate(),t.depthTexture.deactivate()},e.combineColorsAndLIC=()=&gt;{const n=t.context,r=t.framebuffer;r.saveCurrentBindingsAndBuffers(),r.bind(),r.create(...t.size),r.removeColorBuffer(0),r.removeColorBuffer(1),r.setColorBuffer(t.RGBColorImage,0),r.setColorBuffer(t.HSLColorImage,1),n.drawBuffers([n.COLOR_ATTACHMENT0,n.COLOR_ATTACHMENT1]),n.disable(n.DEPTH_TEST),n.clearColor(0,0,0,0),n.clear(n.COLOR_BUFFER_BIT),t.vectorImage.activate(),t.geometryImage.activate(),t.LICImage.activate(),t.licColorPass||e.initializeResources();const o=t.licColorPass;t._openGLRenderWindow.getShaderCache().readyShaderProgram(o),o.setUniformi(&quot;texVectors&quot;,t.vectorImage.getTextureUnit()),o.setUniformi(&quot;texGeomColors&quot;,t.geometryImage.getTextureUnit());const{colorMode:a,LICIntensity:i,mapModeBias:s,maskIntensity:l,maskColor:c,enhanceContrast:u,lowColorContrastEnhancementFactor:d,highColorContrastEnhancementFactor:p}=t.licInterface.get(&quot;colorMode&quot;,&quot;LICIntensity&quot;,&quot;mapModeBias&quot;,&quot;maskIntensity&quot;,&quot;maskColor&quot;,&quot;enhanceContrast&quot;,&quot;lowColorContrastEnhancementFactor&quot;,&quot;highColorContrastEnhancementFactor&quot;);if(o.setUniformi(&quot;texLIC&quot;,t.LICImage.getTextureUnit()),o.setUniformi(&quot;uScalarColorMode&quot;,a),o.setUniformf(&quot;uLICIntensity&quot;,i),o.setUniformf(&quot;uMapBias&quot;,s),o.setUniformf(&quot;uMaskIntensity&quot;,l),o.setUniform3f(&quot;uMaskColor&quot;,...c),e.renderQuad(t.size,o),t.vectorImage.deactivate(),t.geometryImage.deactivate(),t.LICImage.deactivate(),r.removeColorBuffer(0),r.removeColorBuffer(1),n.drawBuffers([n.NONE]),u===Bg||u===Fg){let o=0,a=1,i=a-o;o+=i*d,a-=i*p,i=a-o,r.setColorBuffer(t.RGBColorImage),n.drawBuffers([n.COLOR_ATTACHMENT0]),t.geometryImage.activate(),t.HSLColorImage.activate(),t.LICImage.activate(),t.enhanceContrastPass||e.initializeResources();const{enhanceContrastPass:s}=t;t._openGLRenderWindow.getShaderCache().readyShaderProgram(s),s.setUniformi(&quot;texGeomColors&quot;,t.geometryImage.getTextureUnit()),s.setUniformi(&quot;texHSLColors&quot;,t.HSLColorImage.getTextureUnit()),s.setUniformi(&quot;texLIC&quot;,t.LICImage.getTextureUnit()),s.setUniformf(&quot;uLMin&quot;,o),s.setUniformf(&quot;uLMaxMinDiff&quot;,i),e.renderQuad(t.size,s),t.geometryImage.deactivate(),t.HSLColorImage.deactivate(),t.LICImage.deactivate(),r.removeColorBuffer(0),n.drawBuffers([n.NONE])}r.restorePreviousBindingsAndBuffers()},e.applyLIC=()=&gt;{const e=t.licInterface.get(&quot;stepSize&quot;,&quot;numberOfSteps&quot;,&quot;enhancedLIC&quot;,&quot;enhanceContrast&quot;,&quot;lowLICContrastEnhancementFactor&quot;,&quot;highLICContrastEnhancementFactor&quot;,&quot;antiAlias&quot;,&quot;normalizeVectors&quot;,&quot;maskThreshold&quot;,&quot;transformVectors&quot;),n=t.licHelper.executeLIC(t.size,t.vectorImage,t.maskVectorImage,t.noiseTexture,t._openGLRenderWindow,e);if(!n)return console.error(&quot;Failed to compute image LIC&quot;),void(t.LICImage=null);t.LICImage=n},e.setSize=n=&gt;{Array.isArray(n)&amp;&amp;2===n.length&amp;&amp;(t.size&amp;&amp;t.size[0]===n[0]&amp;&amp;t.size[1]===n[1]||(t.size=n,e.releaseGraphicsResources()))},e.releaseGraphicsResources=()=&gt;{t.geometryImage&amp;&amp;(t.geometryImage.releaseGraphicsResources(),t.geometryImage=null),t.vectorImage&amp;&amp;(t.vectorImage.releaseGraphicsResources(),t.vectorImage=null),t.maskVectorImage&amp;&amp;(t.maskVectorImage.releaseGraphicsResources(),t.maskVectorImage=null),t.LICImage&amp;&amp;(t.LICImage.releaseGraphicsResources(),t.LICImage=null),t.RGBColorImage&amp;&amp;(t.RGBColorImage.releaseGraphicsResources(),t.RGBColorImage=null),t.HSLColorImage&amp;&amp;(t.HSLColorImage.releaseGraphicsResources(),t.HSLColorImage=null),t.depthTexture&amp;&amp;(t.depthTexture.releaseGraphicsResources(),t.depthTexture=null),t.framebuffer&amp;&amp;(t.framebuffer.releaseGraphicsResources(),t.framebuffer=null)}}const jg={context:null,shadersNeedBuilding:!0,reallocateTextures:!0,size:null,licInterface:null};function Xg(e,t,n={}){Object.assign(t,jg,n),zg.extend(e,t,n),sn.obj(e,t),sn.setGet(e,t,[&quot;context&quot;,&quot;_openGLRenderWindow&quot;,&quot;reallocateTextures&quot;,&quot;licInterface&quot;,&quot;size&quot;]),sn.moveToProtected(e,t,[&quot;openGLRenderWindow&quot;]),Hg(e,t)}var qg={newInstance:sn.newInstance(Xg,&quot;vtkSurfaceLICInterface&quot;),extend:Xg};const{vtkErrorMacro:Yg}=ln;const Jg={canDrawLIC:!1,rebuildLICShaders:!1,rebuildLICBuffers:!1,openGLLicInterface:null};const Zg=Xt((function(e,t,n={}){Object.assign(t,Jg,n),up.extend(e,t,n),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLSurfaceLICMapper&quot;);const n={...e};e.getNeedToRebuildShaders=(e,r,o)=&gt;t.rebuildLICShaders||n.getNeedToRebuildShaders(e,r,o),e.replaceShaderValues=(e,r,o)=&gt;{const a=t.lastBoundBO.getReferenceByName(&quot;lastLightComplexity&quot;);let i=e.Vertex,s=e.Fragment;const l=t.renderable.getInputArrayToProcess(0);if(l&amp;&amp;t.canDrawLIC){s=vd.substitute(s,&quot;//VTK::Output::Dec&quot;,[&quot;//VTK::Output::Dec&quot;,&quot;layout(location = 2) out vec4 vectorTexture;&quot;,&quot;layout(location = 3) out vec4 maskVectorTexture;&quot;]).result;const n=`${l.getName()}MC`;0===a&amp;&amp;t.lastBoundBO.set({lastLightComplexity:1},!0),i=vd.substitute(i,&quot;//VTK::TCoord::Dec&quot;,[`attribute vec3 ${n};`,&quot;out vec3 licOutput;&quot;,&quot;//VTK::TCoord::Dec&quot;]).result,i=vd.substitute(i,&quot;//VTK::TCoord::Impl&quot;,[`licOutput = ${n};`,&quot;//VTK::TCoord::Impl&quot;]).result,s=vd.substitute(s,&quot;//VTK::TCoord::Dec&quot;,[&quot;uniform int uMaskOnSurface;&quot;,&quot;uniform mat3 normalMatrix;&quot;,&quot;in vec3 licOutput;&quot;,&quot;//VTK::TCoord::Dec&quot;]).result,s=vd.substitute(s,&quot;//VTK::TCoord::Impl&quot;,[&quot;// projected vectors&quot;,&quot;  vec3 tcoordLIC = normalMatrix * licOutput;&quot;,&quot;  vec3 normN = normalize(normalVCVSOutput);&quot;,&quot;  float k = dot(tcoordLIC, normN);&quot;,&quot;  vec3 projected = (tcoordLIC - k*normN);&quot;,&quot;  vectorTexture = vec4(projected.x, projected.y, 0.0 , 1.0);&quot;,&quot;// vectors for fragment masking&quot;,&quot;  if (uMaskOnSurface == 0)&quot;,&quot;    {&quot;,&quot;    maskVectorTexture = vec4(licOutput, 1.0);&quot;,&quot;    }&quot;,&quot;  else&quot;,&quot;    {&quot;,&quot;    maskVectorTexture = vec4(projected.x, projected.y, 0.0 , 1.0);&quot;,&quot;    }&quot;,&quot;//VTK::TCoord::Impl&quot;],!1).result,e.Vertex=i}t.rebuildLICShaders=!1,e.Fragment=s,n.replaceShaderValues(e,r,o),a&gt;0&amp;&amp;t.lastBoundBO.set({lastLightComplexity:a},!0)},e.setMapperShaderParameters=(e,r,o)=&gt;{n.setMapperShaderParameters(e,r,o),t.canDrawLIC&amp;&amp;e.getProgram().setUniformi(&quot;uMaskOnSurface&quot;,t.maskOnSurface)},e.getNeedToRebuildBufferObjects=(e,r)=&gt;t.rebuildLICBuffers||n.getNeedToRebuildBufferObjects(e,r),e.buildBufferObjects=(e,r)=&gt;{if(t.canDrawLIC){const e=t.renderable.getInputArrayToProcess(0);e&amp;&amp;e.getNumberOfComponents()&gt;1&amp;&amp;t.renderable.setCustomShaderAttributes([e.getName()])}t.rebuildLICBuffers=!1,n.buildBufferObjects(e,r)},e.pushState=e=&gt;{t.stateCache={[e.BLEND]:e.isEnabled(e.BLEND),[e.DEPTH_TEST]:e.isEnabled(e.DEPTH_TEST),[e.SCISSOR_TEST]:e.isEnabled(e.SCISSOR_TEST),[e.CULL_FACE]:e.isEnabled(e.CULL_FACE)}},e.popState=e=&gt;{const n=n=&gt;t.stateCache[n]?e.enable(n):e.disable(n);n(e.BLEND),n(e.DEPTH_TEST),n(e.SCISSOR_TEST),n(e.CULL_FACE)},e.renderPiece=(r,o)=&gt;{let a=!0;t._openGLRenderWindow.getWebgl2()||(Yg(&quot;SurfaceLICMapper Requires WebGL 2&quot;),a=!1),t.context.getExtension(&quot;EXT_color_buffer_float&quot;)&amp;&amp;t.context.getExtension(&quot;OES_texture_float_linear&quot;)||(Yg(&quot;SurfaceLICMapper requires the EXT_color_buffer_float and OES_texture_float_linear WebGL2 extensions.&quot;),a=!1),t.currentInput=t.renderable.getInputData(),t.currentInput||(Yg(&quot;No input&quot;),a=!1);let i=t.renderable.getLicInterface();i||(i=zg.newInstance(),t.renderable.setLicInterface(i)),t.openGLLicInterface||(t.openGLLicInterface=qg.newInstance()),i!==t.openGLLicInterface.getLicInterface()&amp;&amp;t.openGLLicInterface.setLicInterface(i);const s=t.renderable.getInputArrayToProcess(0);if(i.getEnableLIC()&amp;&amp;(!s||s.getNumberOfComponents()&lt;2)&amp;&amp;(Yg(&quot;No vector input array&quot;),a=!1),i.getEnableLIC()||(a=!1),t.canDrawLIC!==a&amp;&amp;(t.rebuildLICShaders=!0,t.rebuildLICBuffers=!0),t.canDrawLIC=a,!a||!i.getEnableLIC())return void n.renderPiece(r,o);const l=t.context,c=o.getProperty().getBackfaceCulling(),u=o.getProperty().getFrontfaceCulling();c||u?u?(t._openGLRenderWindow.enableCullFace(),l.cullFace(l.FRONT)):(t._openGLRenderWindow.enableCullFace(),l.cullFace(l.BACK)):t._openGLRenderWindow.disableCullFace();const d=t._openGLRenderWindow.getSize(),p=d.map((e=&gt;Math.round(e*i.getViewPortScale())));t.openGLLicInterface.setSize(p),t.openGLLicInterface.setOpenGLRenderWindow(t._openGLRenderWindow),t.openGLLicInterface.setContext(t.context),e.pushState(t.context),t.openGLLicInterface.initializeResources(),t.openGLLicInterface.prepareForGeometry(),e.popState(t.context),n.renderPieceStart(r,o),n.renderPieceDraw(r,o),n.renderPieceFinish(r,o),e.pushState(t.context),t.VBOBuildTime.modified(),t.openGLLicInterface.completedGeometry(),t.context.disable(t.context.CULL_FACE),t.openGLLicInterface.applyLIC(),t.openGLLicInterface.combineColorsAndLIC(),t.openGLLicInterface.copyToScreen(d),e.popState(t.context)}}(e,t),Gt(e,t,[&quot;openGLLicInterface&quot;])}),&quot;vtkOpenGLSurfaceLICMapper&quot;);vn(&quot;vtkSurfaceLICMapper&quot;,Zg);const{vtkErrorMacro:Qg}=ln;const $g={};const em=Xt((function(e,t,n={}){Object.assign(t,$g,n),up.extend(e,t,n),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLSphereMapper&quot;);const n={...e};e.getShaderTemplate=(e,t,n)=&gt;{e.Vertex=&quot;//VTK::System::Dec\\n\\n/*=========================================================================\\n\\n  Program:   Visualization Toolkit\\n  Module:    vtkSphereMapperVS.glsl\\n\\n  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n  All rights reserved.\\n  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n\\n     This software is distributed WITHOUT ANY WARRANTY; without even\\n     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n     PURPOSE.  See the above copyright notice for more information.\\n\\n=========================================================================*/\\n// this shader implements imposters in OpenGL for Spheres\\n\\nattribute vec4 vertexMC;\\nattribute vec2 offsetMC;\\n\\n// optional normal declaration\\n//VTK::Normal::Dec\\n\\n//VTK::Picking::Dec\\n\\n// Texture coordinates\\n//VTK::TCoord::Dec\\n\\nuniform mat3 normalMatrix; // transform model coordinate directions to view coordinates\\n\\n// material property values\\n//VTK::Color::Dec\\n\\n// clipping plane vars\\n//VTK::Clip::Dec\\n\\n// camera and actor matrix values\\n//VTK::Camera::Dec\\n\\nvarying vec4 vertexVCVSOutput;\\nvarying float radiusVCVSOutput;\\nvarying vec3 centerVCVSOutput;\\n\\nuniform int cameraParallel;\\nuniform float scaleFactor;\\n\\nvoid main()\\n{\\n  //VTK::Picking::Impl\\n\\n  //VTK::Color::Impl\\n\\n  //VTK::Normal::Impl\\n\\n  //VTK::TCoord::Impl\\n\\n  //VTK::Clip::Impl\\n\\n  // compute the projected vertex position\\n  vec2 scaledOffsetMC = scaleFactor * offsetMC;\\n  vertexVCVSOutput = MCVCMatrix * vertexMC;\\n  centerVCVSOutput = vertexVCVSOutput.xyz;\\n  radiusVCVSOutput = length(scaledOffsetMC)*0.5;\\n\\n  // make the triangle face the camera\\n  if (cameraParallel == 0)\\n    {\\n    vec3 dir = normalize(-vertexVCVSOutput.xyz);\\n    vec3 base2 = normalize(cross(dir,vec3(1.0,0.0,0.0)));\\n    vec3 base1 = cross(base2,dir);\\n    vertexVCVSOutput.xyz = vertexVCVSOutput.xyz + scaledOffsetMC.x*base1 + scaledOffsetMC.y*base2;\\n    }\\n  else\\n    {\\n    // add in the offset\\n    vertexVCVSOutput.xy = vertexVCVSOutput.xy + scaledOffsetMC;\\n    }\\n\\n  gl_Position = VCPCMatrix * vertexVCVSOutput;\\n}\\n&quot;,e.Fragment=Xd,e.Geometry=&quot;&quot;},e.replaceShaderValues=(e,r,o)=&gt;{let a=e.Vertex,i=e.Fragment;a=vd.substitute(a,&quot;//VTK::Camera::Dec&quot;,[&quot;uniform mat4 VCPCMatrix;\\n&quot;,&quot;uniform mat4 MCVCMatrix;&quot;]).result,i=vd.substitute(i,&quot;//VTK::PositionVC::Dec&quot;,[&quot;varying vec4 vertexVCVSOutput;&quot;]).result,i=vd.substitute(i,&quot;//VTK::PositionVC::Impl&quot;,[&quot;vec4 vertexVC = vertexVCVSOutput;\\n&quot;]).result,i=vd.substitute(i,&quot;//VTK::Normal::Dec&quot;,[&quot;uniform float invertedDepth;\\n&quot;,&quot;uniform int cameraParallel;\\n&quot;,&quot;varying float radiusVCVSOutput;\\n&quot;,&quot;varying vec3 centerVCVSOutput;\\n&quot;,&quot;uniform mat4 VCPCMatrix;\\n&quot;]).result;let s=&quot;&quot;;t.context.getExtension(&quot;EXT_frag_depth&quot;)&amp;&amp;(s=&quot;gl_FragDepthEXT = (pos.z / pos.w + 1.0) / 2.0;\\n&quot;),t._openGLRenderWindow.getWebgl2()&amp;&amp;(s=&quot;gl_FragDepth = (pos.z / pos.w + 1.0) / 2.0;\\n&quot;),i=vd.substitute(i,&quot;//VTK::Depth::Impl&quot;,[&quot;  vec3 EyePos;\\n&quot;,&quot;  vec3 EyeDir;\\n&quot;,&quot;  if (cameraParallel != 0) {\\n&quot;,&quot;    EyePos = vec3(vertexVC.x, vertexVC.y, vertexVC.z + 3.0*radiusVCVSOutput);\\n&quot;,&quot;    EyeDir = vec3(0.0,0.0,-1.0); }\\n&quot;,&quot;  else {\\n&quot;,&quot;    EyeDir = vertexVC.xyz;\\n&quot;,&quot;    EyePos = vec3(0.0,0.0,0.0);\\n&quot;,&quot;    float lengthED = length(EyeDir);\\n&quot;,&quot;    EyeDir = normalize(EyeDir);\\n&quot;,&quot;    if (lengthED &gt; radiusVCVSOutput*3.0) {\\n&quot;,&quot;      EyePos = vertexVC.xyz - EyeDir*3.0*radiusVCVSOutput; }\\n&quot;,&quot;    }\\n&quot;,&quot;  EyePos = EyePos - centerVCVSOutput;\\n&quot;,&quot;  EyePos = EyePos/radiusVCVSOutput;\\n&quot;,&quot;  float b = 2.0*dot(EyePos,EyeDir);\\n&quot;,&quot;  float c = dot(EyePos,EyePos) - 1.0;\\n&quot;,&quot;  float d = b*b - 4.0*c;\\n&quot;,&quot;  vec3 normalVCVSOutput = vec3(0.0,0.0,1.0);\\n&quot;,&quot;  if (d &lt; 0.0) { discard; }\\n&quot;,&quot;  else {\\n&quot;,&quot;    float t = (-b - invertedDepth*sqrt(d))*0.5;\\n&quot;,&quot;    normalVCVSOutput = invertedDepth*normalize(EyePos + t*EyeDir);\\n&quot;,&quot;    vertexVC.xyz = normalVCVSOutput*radiusVCVSOutput + centerVCVSOutput;\\n&quot;,&quot;    }\\n&quot;,&quot;  vec4 pos = VCPCMatrix * vertexVC;\\n&quot;,s]).result,i=vd.substitute(i,&quot;//VTK::Normal::Impl&quot;,&quot;&quot;).result,t.haveSeenDepthRequest&amp;&amp;(i=vd.substitute(i,&quot;//VTK::ZBuffer::Impl&quot;,[&quot;if (depthRequest == 1) {&quot;,&quot;float computedZ = (pos.z / pos.w + 1.0) / 2.0;&quot;,&quot;float iz = floor(computedZ * 65535.0 + 0.1);&quot;,&quot;float rf = floor(iz/256.0)/255.0;&quot;,&quot;float gf = mod(iz,256.0)/255.0;&quot;,&quot;gl_FragData[0] = vec4(rf, gf, 0.0, 1.0); }&quot;]).result),e.Vertex=a,e.Fragment=i,n.replaceShaderValues(e,r,o)},e.setMapperShaderParameters=(e,r,o)=&gt;{if(e.getCABO().getElementCount()&amp;&amp;(t.VBOBuildTime&gt;e.getAttributeUpdateTime().getMTime()||e.getShaderSourceTime().getMTime()&gt;e.getAttributeUpdateTime().getMTime())&amp;&amp;e.getProgram().isAttributeUsed(&quot;offsetMC&quot;)&amp;&amp;(e.getVAO().addAttributeArray(e.getProgram(),e.getCABO(),&quot;offsetMC&quot;,12,e.getCABO().getStride(),t.context.FLOAT,2,!1)||Qg(&quot;Error setting &#x27;offsetMC&#x27; in shader VAO.&quot;)),e.getProgram().isUniformUsed(&quot;invertedDepth&quot;)&amp;&amp;e.getProgram().setUniformf(&quot;invertedDepth&quot;,t.invert?-1:1),e.getProgram().isUniformUsed(&quot;scaleFactor&quot;)){const n=t.currentInput.getPointData();null!=t.renderable.getScaleArray()&amp;&amp;n.hasArray(t.renderable.getScaleArray())?e.getProgram().setUniformf(&quot;scaleFactor&quot;,t.renderable.getScaleFactor()):e.getProgram().setUniformf(&quot;scaleFactor&quot;,1)}n.setMapperShaderParameters(e,r,o)},e.setCameraShaderParameters=(e,n,r)=&gt;{const o=e.getProgram(),a=n.getActiveCamera(),i=t.openGLCamera.getKeyMatrices(n);o.isUniformUsed(&quot;VCPCMatrix&quot;)&amp;&amp;o.setUniformMatrix(&quot;VCPCMatrix&quot;,i.vcpc);const s=new Float64Array(16);if(o.isUniformUsed(&quot;MCVCMatrix&quot;))if(r.getIsIdentity())T(s,i.wcvc),e.getCABO().getCoordShiftAndScaleEnabled()&amp;&amp;A(s,s,e.getCABO().getInverseShiftAndScaleMatrix()),o.setUniformMatrix(&quot;MCVCMatrix&quot;,s);else{const n=t.openGLActor.getKeyMatrices();A(s,i.wcvc,n.mcwc),e.getCABO().getCoordShiftAndScaleEnabled()&amp;&amp;A(s,s,e.getCABO().getInverseShiftAndScaleMatrix()),o.setUniformMatrix(&quot;MCVCMatrix&quot;,s)}o.isUniformUsed(&quot;cameraParallel&quot;)&amp;&amp;e.getProgram().setUniformi(&quot;cameraParallel&quot;,a.getParallelProjection())},e.getOpenGLMode=(e,n)=&gt;t.context.TRIANGLES,e.buildBufferObjects=(e,n)=&gt;{const r=t.currentInput;if(null===r)return;t.renderable.mapScalars(r,1);const o=t.renderable.getColorMapColors(),a=t.primitives[t.primTypes.Tris].getCABO(),i=r.getPointData(),s=r.getPoints(),l=s.getNumberOfPoints(),c=s.getData();let u=null;null!=t.renderable.getScaleArray()&amp;&amp;i.hasArray(t.renderable.getScaleArray())&amp;&amp;(u=i.getArray(t.renderable.getScaleArray()).getData());let d=null,p=0,f=null;o?(p=o.getNumberOfComponents(),a.setColorOffset(0),a.setColorBOStride(4),d=o.getData(),f=new Uint8Array(3*l*4),a.getColorBO()||a.setColorBO(nd.newInstance()),a.getColorBO().setOpenGLRenderWindow(t._openGLRenderWindow)):a.getColorBO()&amp;&amp;a.setColorBO(null),a.setColorComponents(p);const g=new Float32Array(5*l*3);a.setStride(20);const m=Math.cos(wo(30));let h=0,v=0;const{useShiftAndScale:T,coordShift:x,coordScale:y}=rd(s);T&amp;&amp;a.setCoordShiftAndScale(x,y);let b=0,A=0;for(let e=0;e&lt;l;++e){let n=t.renderable.getRadius();u&amp;&amp;(n=u[e]),h=3*e;const r=(c[h++]-x[0])*y[0],o=(c[h++]-x[1])*y[1],a=(c[h++]-x[2])*y[2];g[b++]=r,g[b++]=o,g[b++]=a,g[b++]=-2*n*m,g[b++]=-n,d&amp;&amp;(v=e*p,f[A++]=d[v],f[A++]=d[v+1],f[A++]=d[v+2],f[A++]=d[v+3]),g[b++]=r,g[b++]=o,g[b++]=a,g[b++]=2*n*m,g[b++]=-n,d&amp;&amp;(f[A++]=d[v],f[A++]=d[v+1],f[A++]=d[v+2],f[A++]=d[v+3]),g[b++]=r,g[b++]=o,g[b++]=a,g[b++]=0,g[b++]=2*n,d&amp;&amp;(f[A++]=d[v],f[A++]=d[v+1],f[A++]=d[v+2],f[A++]=d[v+3])}a.setElementCount(b/5),a.upload(g,Zu.ARRAY_BUFFER),o&amp;&amp;a.getColorBO().upload(f,Zu.ARRAY_BUFFER),t.VBOBuildTime.modified()}}(e,t)}),&quot;vtkOpenGLSphereMapper&quot;);vn(&quot;vtkSphereMapper&quot;,em);const{vtkErrorMacro:tm}=ln;const nm={};const rm=Xt((function(e,t,n={}){Object.assign(t,nm,n),up.extend(e,t,n),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLStickMapper&quot;);const n={...e};e.getShaderTemplate=(e,t,n)=&gt;{e.Vertex=&quot;//VTK::System::Dec\\n\\n/*=========================================================================\\n\\n  Program:   Visualization Toolkit\\n  Module:    vtkStickMapperVS.glsl\\n\\n  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n  All rights reserved.\\n  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n\\n     This software is distributed WITHOUT ANY WARRANTY; without even\\n     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n     PURPOSE.  See the above copyright notice for more information.\\n\\n=========================================================================*/\\n// this shader implements imposters in OpenGL for Sticks\\n\\nattribute vec4 vertexMC;\\nattribute vec3 orientMC;\\nattribute vec4 offsetMC;\\nattribute float radiusMC;\\n\\n// optional normal declaration\\n//VTK::Normal::Dec\\n\\n//VTK::Picking::Dec\\n\\n// Texture coordinates\\n//VTK::TCoord::Dec\\n\\nuniform mat3 normalMatrix; // transform model coordinate directions to view coordinates\\n\\n// material property values\\n//VTK::Color::Dec\\n\\n// clipping plane vars\\n//VTK::Clip::Dec\\n\\n// camera and actor matrix values\\n//VTK::Camera::Dec\\n\\nvarying vec4 vertexVCVSOutput;\\nvarying float radiusVCVSOutput;\\nvarying float lengthVCVSOutput;\\nvarying vec3 centerVCVSOutput;\\nvarying vec3 orientVCVSOutput;\\n\\nuniform int cameraParallel;\\n\\nvoid main()\\n{\\n  //VTK::Picking::Impl\\n\\n  //VTK::Color::Impl\\n\\n  //VTK::Normal::Impl\\n\\n  //VTK::TCoord::Impl\\n\\n  //VTK::Clip::Impl\\n\\n  vertexVCVSOutput = MCVCMatrix * vertexMC;\\n  centerVCVSOutput = vertexVCVSOutput.xyz;\\n  radiusVCVSOutput = radiusMC;\\n  lengthVCVSOutput = length(orientMC);\\n  orientVCVSOutput = normalMatrix * normalize(orientMC);\\n\\n  // make sure it is pointing out of the screen\\n  if (orientVCVSOutput.z &lt; 0.0)\\n    {\\n    orientVCVSOutput = -orientVCVSOutput;\\n    }\\n\\n  // make the basis\\n  vec3 xbase;\\n  vec3 ybase;\\n  vec3 dir = vec3(0.0,0.0,1.0);\\n  if (cameraParallel == 0)\\n    {\\n    dir = normalize(-vertexVCVSOutput.xyz);\\n    }\\n  if (abs(dot(dir,orientVCVSOutput)) == 1.0)\\n    {\\n    xbase = normalize(cross(vec3(0.0,1.0,0.0),orientVCVSOutput));\\n    ybase = cross(xbase,orientVCVSOutput);\\n    }\\n  else\\n    {\\n    xbase = normalize(cross(orientVCVSOutput,dir));\\n    ybase = cross(orientVCVSOutput,xbase);\\n    }\\n\\n  vec3 offsets = offsetMC.xyz*2.0-1.0;\\n  vertexVCVSOutput.xyz = vertexVCVSOutput.xyz +\\n    radiusVCVSOutput*offsets.x*xbase +\\n    radiusVCVSOutput*offsets.y*ybase +\\n    0.5*lengthVCVSOutput*offsets.z*orientVCVSOutput;\\n\\n  gl_Position = VCPCMatrix * vertexVCVSOutput;\\n}\\n&quot;,e.Fragment=Xd,e.Geometry=&quot;&quot;},e.replaceShaderValues=(e,r,o)=&gt;{let a=e.Vertex,i=e.Fragment;a=vd.substitute(a,&quot;//VTK::Camera::Dec&quot;,[&quot;uniform mat4 VCPCMatrix;\\n&quot;,&quot;uniform mat4 MCVCMatrix;&quot;]).result,i=vd.substitute(i,&quot;//VTK::PositionVC::Dec&quot;,&quot;varying vec4 vertexVCVSOutput;&quot;).result,i=vd.substitute(i,&quot;//VTK::PositionVC::Impl&quot;,&quot;  vec4 vertexVC = vertexVCVSOutput;\\n&quot;).result,i=vd.substitute(i,&quot;//VTK::Normal::Dec&quot;,[&quot;uniform int cameraParallel;\\n&quot;,&quot;varying float radiusVCVSOutput;\\n&quot;,&quot;varying vec3 orientVCVSOutput;\\n&quot;,&quot;varying float lengthVCVSOutput;\\n&quot;,&quot;varying vec3 centerVCVSOutput;\\n&quot;,&quot;uniform mat4 VCPCMatrix;\\n&quot;]).result;let s=&quot;&quot;;t.context.getExtension(&quot;EXT_frag_depth&quot;)&amp;&amp;(s=&quot;  gl_FragDepthEXT = (pos.z / pos.w + 1.0) / 2.0;\\n&quot;),t._openGLRenderWindow.getWebgl2()&amp;&amp;(s=&quot;gl_FragDepth = (pos.z / pos.w + 1.0) / 2.0;\\n&quot;),i=vd.substitute(i,&quot;//VTK::Depth::Impl&quot;,[&quot;  vec3 EyePos;\\n&quot;,&quot;  vec3 EyeDir;\\n&quot;,&quot;  if (cameraParallel != 0) {\\n&quot;,&quot;    EyePos = vec3(vertexVC.x, vertexVC.y, vertexVC.z + 3.0*radiusVCVSOutput);\\n&quot;,&quot;    EyeDir = vec3(0.0,0.0,-1.0); }\\n&quot;,&quot;  else {\\n&quot;,&quot;    EyeDir = vertexVC.xyz;\\n&quot;,&quot;    EyePos = vec3(0.0,0.0,0.0);\\n&quot;,&quot;    float lengthED = length(EyeDir);\\n&quot;,&quot;    EyeDir = normalize(EyeDir);\\n&quot;,&quot;    if (lengthED &gt; radiusVCVSOutput*3.0) {\\n&quot;,&quot;      EyePos = vertexVC.xyz - EyeDir*3.0*radiusVCVSOutput; }\\n&quot;,&quot;    }\\n&quot;,&quot;  EyePos = EyePos - centerVCVSOutput;\\n&quot;,&quot;  vec3 base1;\\n&quot;,&quot;  if (abs(orientVCVSOutput.z) &lt; 0.99) {\\n&quot;,&quot;    base1 = normalize(cross(orientVCVSOutput,vec3(0.0,0.0,1.0))); }\\n&quot;,&quot;  else {\\n&quot;,&quot;    base1 = normalize(cross(orientVCVSOutput,vec3(0.0,1.0,0.0))); }\\n&quot;,&quot;  vec3 base2 = cross(orientVCVSOutput,base1);\\n&quot;,&quot;  EyePos = vec3(dot(EyePos,base1),dot(EyePos,base2),dot(EyePos,orientVCVSOutput));\\n&quot;,&quot;  EyeDir = vec3(dot(EyeDir,base1),dot(EyeDir,base2),dot(EyeDir,orientVCVSOutput));\\n&quot;,&quot;  EyePos = EyePos/radiusVCVSOutput;\\n&quot;,&quot;  float a = EyeDir.x*EyeDir.x + EyeDir.y*EyeDir.y;\\n&quot;,&quot;  float b = 2.0*(EyePos.x*EyeDir.x + EyePos.y*EyeDir.y);\\n&quot;,&quot;  float c = EyePos.x*EyePos.x + EyePos.y*EyePos.y - 1.0;\\n&quot;,&quot;  float d = b*b - 4.0*a*c;\\n&quot;,&quot;  vec3 normalVCVSOutput = vec3(0.0,0.0,1.0);\\n&quot;,&quot;  if (d &lt; 0.0) { discard; }\\n&quot;,&quot;  else {\\n&quot;,&quot;    float t =  (-b - sqrt(d))/(2.0*a);\\n&quot;,&quot;    float tz = EyePos.z + t*EyeDir.z;\\n&quot;,&quot;    vec3 iPoint = EyePos + t*EyeDir;\\n&quot;,&quot;    if (abs(iPoint.z)*radiusVCVSOutput &gt; lengthVCVSOutput*0.5) {\\n&quot;,&quot;      float t2 = (-b + sqrt(d))/(2.0*a);\\n&quot;,&quot;      float tz2 = EyePos.z + t2*EyeDir.z;\\n&quot;,&quot;      if (tz2*radiusVCVSOutput &gt; lengthVCVSOutput*0.5 || tz*radiusVCVSOutput &lt; -0.5*lengthVCVSOutput) { discard; }\\n&quot;,&quot;      else {\\n&quot;,&quot;        normalVCVSOutput = orientVCVSOutput;\\n&quot;,&quot;        float t3 = (lengthVCVSOutput*0.5/radiusVCVSOutput - EyePos.z)/EyeDir.z;\\n&quot;,&quot;        iPoint = EyePos + t3*EyeDir;\\n&quot;,&quot;        vertexVC.xyz = radiusVCVSOutput*(iPoint.x*base1 + iPoint.y*base2 + iPoint.z*orientVCVSOutput) + centerVCVSOutput;\\n&quot;,&quot;        }\\n&quot;,&quot;      }\\n&quot;,&quot;    else {\\n&quot;,&quot;      normalVCVSOutput = iPoint.x*base1 + iPoint.y*base2;\\n&quot;,&quot;      vertexVC.xyz = radiusVCVSOutput*(normalVCVSOutput + iPoint.z*orientVCVSOutput) + centerVCVSOutput;\\n&quot;,&quot;      }\\n&quot;,&quot;    }\\n&quot;,&quot;  vec4 pos = VCPCMatrix * vertexVC;\\n&quot;,s]).result,i=vd.substitute(i,&quot;//VTK::Normal::Impl&quot;,&quot;&quot;).result,t.haveSeenDepthRequest&amp;&amp;(i=vd.substitute(i,&quot;//VTK::ZBuffer::Impl&quot;,[&quot;if (depthRequest == 1) {&quot;,&quot;float computedZ = (pos.z / pos.w + 1.0) / 2.0;&quot;,&quot;float iz = floor(computedZ * 65535.0 + 0.1);&quot;,&quot;float rf = floor(iz/256.0)/255.0;&quot;,&quot;float gf = mod(iz,256.0)/255.0;&quot;,&quot;gl_FragData[0] = vec4(rf, gf, 0.0, 1.0); }&quot;]).result),e.Vertex=a,e.Fragment=i,n.replaceShaderValues(e,r,o)},e.setMapperShaderParameters=(e,r,o)=&gt;{e.getCABO().getElementCount()&amp;&amp;(t.VBOBuildTime&gt;e.getAttributeUpdateTime().getMTime()||e.getShaderSourceTime().getMTime()&gt;e.getAttributeUpdateTime().getMTime())&amp;&amp;(e.getProgram().isAttributeUsed(&quot;orientMC&quot;)&amp;&amp;(e.getVAO().addAttributeArray(e.getProgram(),e.getCABO(),&quot;orientMC&quot;,12,e.getCABO().getStride(),t.context.FLOAT,3,!1)||tm(&quot;Error setting &#x27;orientMC&#x27; in shader VAO.&quot;)),e.getProgram().isAttributeUsed(&quot;offsetMC&quot;)&amp;&amp;(e.getVAO().addAttributeArray(e.getProgram(),e.getCABO().getColorBO(),&quot;offsetMC&quot;,0,e.getCABO().getColorBOStride(),t.context.UNSIGNED_BYTE,3,!0)||tm(&quot;Error setting &#x27;offsetMC&#x27; in shader VAO.&quot;)),e.getProgram().isAttributeUsed(&quot;radiusMC&quot;)&amp;&amp;(e.getVAO().addAttributeArray(e.getProgram(),e.getCABO(),&quot;radiusMC&quot;,24,e.getCABO().getStride(),t.context.FLOAT,1,!1)||tm(&quot;Error setting &#x27;radiusMC&#x27; in shader VAO.&quot;))),n.setMapperShaderParameters(e,r,o)},e.setCameraShaderParameters=(e,n,r)=&gt;{const o=e.getProgram(),a=n.getActiveCamera(),i=t.openGLCamera.getKeyMatrices(n);if(o.isUniformUsed(&quot;VCPCMatrix&quot;)&amp;&amp;o.setUniformMatrix(&quot;VCPCMatrix&quot;,i.vcpc),r.getIsIdentity())o.isUniformUsed(&quot;MCVCMatrix&quot;)&amp;&amp;o.setUniformMatrix(&quot;MCVCMatrix&quot;,i.wcvc),o.isUniformUsed(&quot;normalMatrix&quot;)&amp;&amp;o.setUniformMatrix3x3(&quot;normalMatrix&quot;,i.normalMatrix);else{const e=t.openGLActor.getKeyMatrices();if(o.isUniformUsed(&quot;MCVCMatrix&quot;)){const t=new Float64Array(16);A(t,i.wcvc,e.mcwc),o.setUniformMatrix(&quot;MCVCMatrix&quot;,t)}if(o.isUniformUsed(&quot;normalMatrix&quot;)){const t=new Float64Array(9);p(t,i.normalMatrix,e.normalMatrix),o.setUniformMatrix3x3(&quot;normalMatrix&quot;,t)}}o.isUniformUsed(&quot;cameraParallel&quot;)&amp;&amp;e.getProgram().setUniformi(&quot;cameraParallel&quot;,a.getParallelProjection())},e.getOpenGLMode=(e,n)=&gt;t.context.TRIANGLES,e.buildBufferObjects=(e,n)=&gt;{const r=t.currentInput;if(null===r)return;t.renderable.mapScalars(r,1);const o=t.renderable.getColorMapColors(),a=t.primitives[t.primTypes.Tris].getCABO(),i=r.getPointData(),s=r.getPoints(),l=s.getNumberOfPoints(),c=s.getData();let u=3;u+=4;let d=null,p=0;a.setColorBOStride(4),a.getColorBO()||a.setColorBO(nd.newInstance()),a.getColorBO().setOpenGLRenderWindow(t._openGLRenderWindow),o&amp;&amp;(p=o.getNumberOfComponents(),a.setColorOffset(4),d=o.getData(),a.setColorBOStride(8)),a.setColorComponents(p),a.setStride(28);const f=new Float32Array(7*l*12),g=new Uint8Array(12*l*(d?8:4));let m=null,h=null;null!=t.renderable.getScaleArray()&amp;&amp;i.hasArray(t.renderable.getScaleArray())&amp;&amp;(m=i.getArray(t.renderable.getScaleArray()).getData()),null!=t.renderable.getOrientationArray()&amp;&amp;i.hasArray(t.renderable.getOrientationArray())?h=i.getArray(t.renderable.getOrientationArray()).getData():tm([&quot;Error setting orientationArray.\\n&quot;,&quot;You have to specify the stick orientation&quot;]);const v=[0,1,3,0,3,2,2,3,5,2,5,4];let T=0,x=0,y=0,b=0;for(let e=0;e&lt;l;++e){let n=t.renderable.getLength(),r=t.renderable.getRadius();m&amp;&amp;(n=m[2*e],r=m[2*e+1]);for(let t=0;t&lt;v.length;++t)T=3*e,f[y++]=c[T++],f[y++]=c[T++],f[y++]=c[T++],T=3*e,f[y++]=h[T++]*n,f[y++]=h[T++]*n,f[y++]=h[T++]*n,f[y++]=r,g[b++]=v[t]%2*255,g[b++]=v[t]&gt;=4?255:0,g[b++]=v[t]&gt;=2?255:0,g[b++]=255,x=e*p,d&amp;&amp;(g[b++]=d[x],g[b++]=d[x+1],g[b++]=d[x+2],g[b++]=d[x+3])}a.setElementCount(y/7),a.upload(f,Zu.ARRAY_BUFFER),a.getColorBO().upload(g,Zu.ARRAY_BUFFER),t.VBOBuildTime.modified()}}(e,t)}),&quot;vtkOpenGLStickMapper&quot;);vn(&quot;vtkStickMapper&quot;,rm);const om=[];om[&quot;-&quot;.charCodeAt(0)]=62,om[&quot;_&quot;.charCodeAt(0)]=63;const am=&quot;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/&quot;;for(let e=0;e&lt;64;e++)om[am.charCodeAt(e)]=e;function im(e){return void 0!==om[e.charCodeAt(0)]}function sm(e,t,n,r){const{start:o,count:a}=t,i=a%4,s=Math.floor(a/4);let l=o,c=null,u=n;for(let t=0;t&lt;s;t++){for(;!im(e[l]);)l++;for(c=om[e.charCodeAt(l++)]&lt;&lt;18;!im(e[l]);)l++;for(c|=om[e.charCodeAt(l++)]&lt;&lt;12;!im(e[l]);)l++;for(c|=om[e.charCodeAt(l++)]&lt;&lt;6;!im(e[l]);)l++;c|=om[e.charCodeAt(l++)],r[u++]=c&gt;&gt;16&amp;255,r[u++]=c&gt;&gt;8&amp;255,r[u++]=255&amp;c}switch(i){case 3:for(;!im(e[l]);)l++;for(c=om[e.charCodeAt(l++)]&lt;&lt;10;!im(e[l]);)l++;for(c|=om[e.charCodeAt(l++)]&lt;&lt;4;!im(e[l]);)l++;c|=om[e.charCodeAt(l++)]&gt;&gt;2,r[u++]=c&gt;&gt;8&amp;255,r[u++]=255&amp;c;break;case 2:for(;!im(e[l]);)l++;for(c=om[e.charCodeAt(l++)]&lt;&lt;2;!im(e[l]);)l++;c|=om[e.charCodeAt(l++)]&gt;&gt;4,r[u++]=255&amp;c;break;case 1:throw new Error(&quot;BASE64: remain 1 should not happen&quot;)}return u}function lm(e,t,n){const r=(e&lt;&lt;16)+(t&lt;&lt;8)+n;return am[r&gt;&gt;18]+am[r&gt;&gt;12&amp;63]+am[r&gt;&gt;6&amp;63]+am[63&amp;r]}function cm(e){const t=new Uint8Array(e),n=e.byteLength%3,r=e.byteLength-n,o=Array(r/3);for(let e=0;e&lt;o.length;e++){const n=3*e;o[e]=lm(t[n],t[n+1],t[n+2])}if(n&gt;0){const e=lm(t[r],t[r+1]||0,t[r+2]||0);1===n?o.push(`${e.substr(0,2)}==`):2===n&amp;&amp;o.push(`${e.substr(0,3)}=`)}return o.join(&quot;&quot;)}var um={toArrayBuffer:function(e){const t=function(e){const t=e.length,n=[];let r=null;for(let o=0;o&lt;t;o++)im(e[o])?(r||(r={start:o,count:0}),r.count++,r.end=o):&quot;=&quot;===e[o]&amp;&amp;r&amp;&amp;(n.push(r),r=null);return r&amp;&amp;n.push(r),n}(e),n=t[t.length-1].end+1,r=(4-n%4)%4,o=new ArrayBuffer(3*(n+r)/4-r),a=new Uint8Array(o);let i=0;for(let n=0;n&lt;t.length;n++)i+=sm(e,t[n],i,a),i+=(4-t[n].count%4)%4;return o},fromArrayBuffer:cm};const dm={};function pm(e,t){dm[e]=t}var fm={get:function(e=&quot;http&quot;,t={}){return dm[e](t)},has:function(e){return!!dm[e]},registerType:pm},gm=Uint8Array,mm=Uint16Array,hm=Uint32Array,vm=new gm([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),Tm=new gm([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),xm=new gm([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),ym=function(e,t){for(var n=new mm(31),r=0;r&lt;31;++r)n[r]=t+=1&lt;&lt;e[r-1];var o=new hm(n[30]);for(r=1;r&lt;30;++r)for(var a=n[r];a&lt;n[r+1];++a)o[a]=a-n[r]&lt;&lt;5|r;return[n,o]},bm=ym(vm,2),Am=bm[0],Cm=bm[1];Am[28]=258,Cm[258]=28;for(var Sm=ym(Tm,0)[0],Pm=new mm(32768),wm=0;wm&lt;32768;++wm){var Im=(43690&amp;wm)&gt;&gt;&gt;1|(21845&amp;wm)&lt;&lt;1;Im=(61680&amp;(Im=(52428&amp;Im)&gt;&gt;&gt;2|(13107&amp;Im)&lt;&lt;2))&gt;&gt;&gt;4|(3855&amp;Im)&lt;&lt;4,Pm[wm]=((65280&amp;Im)&gt;&gt;&gt;8|(255&amp;Im)&lt;&lt;8)&gt;&gt;&gt;1}var Om=function(e,t,n){for(var r=e.length,o=0,a=new mm(t);o&lt;r;++o)e[o]&amp;&amp;++a[e[o]-1];var i,s=new mm(t);for(o=0;o&lt;t;++o)s[o]=s[o-1]+a[o-1]&lt;&lt;1;if(n){i=new mm(1&lt;&lt;t);var l=15-t;for(o=0;o&lt;r;++o)if(e[o])for(var c=o&lt;&lt;4|e[o],u=t-e[o],d=s[e[o]-1]++&lt;&lt;u,p=d|(1&lt;&lt;u)-1;d&lt;=p;++d)i[Pm[d]&gt;&gt;&gt;l]=c}else for(i=new mm(r),o=0;o&lt;r;++o)e[o]&amp;&amp;(i[o]=Pm[s[e[o]-1]++]&gt;&gt;&gt;15-e[o]);return i},Rm=new gm(288);for(wm=0;wm&lt;144;++wm)Rm[wm]=8;for(wm=144;wm&lt;256;++wm)Rm[wm]=9;for(wm=256;wm&lt;280;++wm)Rm[wm]=7;for(wm=280;wm&lt;288;++wm)Rm[wm]=8;var Mm=new gm(32);for(wm=0;wm&lt;32;++wm)Mm[wm]=5;var Dm=Om(Rm,9,1),Em=Om(Mm,5,1),Vm=function(e){for(var t=e[0],n=1;n&lt;e.length;++n)e[n]&gt;t&amp;&amp;(t=e[n]);return t},Lm=function(e,t,n){var r=t/8|0;return(e[r]|e[r+1]&lt;&lt;8)&gt;&gt;(7&amp;t)&amp;n},Bm=function(e,t){var n=t/8|0;return(e[n]|e[n+1]&lt;&lt;8|e[n+2]&lt;&lt;16)&gt;&gt;(7&amp;t)},Fm=function(e,t,n){(null==t||t&lt;0)&amp;&amp;(t=0),(null==n||n&gt;e.length)&amp;&amp;(n=e.length);var r=new(2==e.BYTES_PER_ELEMENT?mm:4==e.BYTES_PER_ELEMENT?hm:gm)(n-t);return r.set(e.subarray(t,n)),r},Nm=[&quot;unexpected EOF&quot;,&quot;invalid block type&quot;,&quot;invalid length/literal&quot;,&quot;invalid distance&quot;,&quot;stream finished&quot;,&quot;no stream handler&quot;,,&quot;no callback&quot;,&quot;invalid UTF-8 data&quot;,&quot;extra field too long&quot;,&quot;date not in range 1980-2099&quot;,&quot;filename too long&quot;,&quot;stream finishing&quot;,&quot;invalid zip data&quot;],km=function(e,t,n){var r=new Error(t||Nm[e]);if(r.code=e,Error.captureStackTrace&amp;&amp;Error.captureStackTrace(r,km),!n)throw r;return r},Gm=function(e,t,n){var r=e.length;if(!r||n&amp;&amp;n.f&amp;&amp;!n.l)return t||new gm(0);var o=!t||n,a=!n||n.i;n||(n={}),t||(t=new gm(3*r));var i=function(e){var n=t.length;if(e&gt;n){var r=new gm(Math.max(2*n,e));r.set(t),t=r}},s=n.f||0,l=n.p||0,c=n.b||0,u=n.l,d=n.d,p=n.m,f=n.n,g=8*r;do{if(!u){s=Lm(e,l,1);var m=Lm(e,l+1,3);if(l+=3,!m){var h=e[(I=4+((l+7)/8|0))-4]|e[I-3]&lt;&lt;8,v=I+h;if(v&gt;r){a&amp;&amp;km(0);break}o&amp;&amp;i(c+h),t.set(e.subarray(I,v),c),n.b=c+=h,n.p=l=8*v,n.f=s;continue}if(1==m)u=Dm,d=Em,p=9,f=5;else if(2==m){var T=Lm(e,l,31)+257,x=Lm(e,l+10,15)+4,y=T+Lm(e,l+5,31)+1;l+=14;for(var b=new gm(y),A=new gm(19),C=0;C&lt;x;++C)A[xm[C]]=Lm(e,l+3*C,7);l+=3*x;var S=Vm(A),P=(1&lt;&lt;S)-1,w=Om(A,S,1);for(C=0;C&lt;y;){var I,O=w[Lm(e,l,P)];if(l+=15&amp;O,(I=O&gt;&gt;&gt;4)&lt;16)b[C++]=I;else{var R=0,M=0;for(16==I?(M=3+Lm(e,l,3),l+=2,R=b[C-1]):17==I?(M=3+Lm(e,l,7),l+=3):18==I&amp;&amp;(M=11+Lm(e,l,127),l+=7);M--;)b[C++]=R}}var D=b.subarray(0,T),E=b.subarray(T);p=Vm(D),f=Vm(E),u=Om(D,p,1),d=Om(E,f,1)}else km(1);if(l&gt;g){a&amp;&amp;km(0);break}}o&amp;&amp;i(c+131072);for(var V=(1&lt;&lt;p)-1,L=(1&lt;&lt;f)-1,B=l;;B=l){var F=(R=u[Bm(e,l)&amp;V])&gt;&gt;&gt;4;if((l+=15&amp;R)&gt;g){a&amp;&amp;km(0);break}if(R||km(2),F&lt;256)t[c++]=F;else{if(256==F){B=l,u=null;break}var N=F-254;if(F&gt;264){var k=vm[C=F-257];N=Lm(e,l,(1&lt;&lt;k)-1)+Am[C],l+=k}var G=d[Bm(e,l)&amp;L],U=G&gt;&gt;&gt;4;G||km(3),l+=15&amp;G;E=Sm[U];if(U&gt;3){k=Tm[U];E+=Bm(e,l)&amp;(1&lt;&lt;k)-1,l+=k}if(l&gt;g){a&amp;&amp;km(0);break}o&amp;&amp;i(c+131072);for(var _=c+N;c&lt;_;c+=4)t[c]=t[c-E],t[c+1]=t[c+1-E],t[c+2]=t[c+2-E],t[c+3]=t[c+3-E];c=_}}n.l=u,n.p=B,n.b=c,n.f=s,u&amp;&amp;(s=1,n.m=p,n.d=d,n.n=f)}while(!s);return c==t.length?t:Fm(t,0,c)},Um=new gm(0),_m=function(e,t){return e[t]|e[t+1]&lt;&lt;8},Km=function(e,t){return(e[t]|e[t+1]&lt;&lt;8|e[t+2]&lt;&lt;16|e[t+3]&lt;&lt;24)&gt;&gt;&gt;0},zm=function(e,t){return Km(e,t)+4294967296*Km(e,t+4)};function Wm(e,t){return Gm(e,t)}function Hm(e,t){return Gm(e.subarray(function(e){31==e[0]&amp;&amp;139==e[1]&amp;&amp;8==e[2]||km(6,&quot;invalid gzip data&quot;);var t=e[3],n=10;4&amp;t&amp;&amp;(n+=e[10]|2+(e[11]&lt;&lt;8));for(var r=(t&gt;&gt;3&amp;1)+(t&gt;&gt;4&amp;1);r&gt;0;r-=!e[n++]);return n+(2&amp;t)}(e),-8),t||new gm((r=(n=e).length,(n[r-4]|n[r-3]&lt;&lt;8|n[r-2]&lt;&lt;16|n[r-1]&lt;&lt;24)&gt;&gt;&gt;0)));var n,r}function jm(e,t){return Gm(((8!=(15&amp;(n=e)[0])||n[0]&gt;&gt;&gt;4&gt;7||(n[0]&lt;&lt;8|n[1])%31)&amp;&amp;km(6,&quot;invalid zlib data&quot;),32&amp;n[1]&amp;&amp;km(6,&quot;invalid zlib data: preset dictionaries not supported&quot;),e.subarray(2,-4)),t);var n}function Xm(e,t){return 31==e[0]&amp;&amp;139==e[1]&amp;&amp;8==e[2]?Hm(e,t):8!=(15&amp;e[0])||e[0]&gt;&gt;4&gt;7||(e[0]&lt;&lt;8|e[1])%31?Wm(e,t):jm(e,t)}var qm=&quot;undefined&quot;!=typeof TextEncoder&amp;&amp;new TextEncoder,Ym=&quot;undefined&quot;!=typeof TextDecoder&amp;&amp;new TextDecoder;try{Ym.decode(Um,{stream:!0})}catch(e){}function Jm(e,t){if(t){for(var n=&quot;&quot;,r=0;r&lt;e.length;r+=16384)n+=String.fromCharCode.apply(null,e.subarray(r,r+16384));return n}if(Ym)return Ym.decode(e);var o=function(e){for(var t=&quot;&quot;,n=0;;){var r=e[n++],o=(r&gt;127)+(r&gt;223)+(r&gt;239);if(n+o&gt;e.length)return[t,Fm(e,n-1)];o?3==o?(r=((15&amp;r)&lt;&lt;18|(63&amp;e[n++])&lt;&lt;12|(63&amp;e[n++])&lt;&lt;6|63&amp;e[n++])-65536,t+=String.fromCharCode(55296|r&gt;&gt;10,56320|1023&amp;r)):t+=1&amp;o?String.fromCharCode((31&amp;r)&lt;&lt;6|63&amp;e[n++]):String.fromCharCode((15&amp;r)&lt;&lt;12|(63&amp;e[n++])&lt;&lt;6|63&amp;e[n++]):t+=String.fromCharCode(r)}}(e),a=o[0];return o[1].length&amp;&amp;km(8),a}var Zm=function(e,t){return t+30+_m(e,t+26)+_m(e,t+28)},Qm=function(e,t,n){var r=_m(e,t+28),o=Jm(e.subarray(t+46,t+46+r),!(2048&amp;_m(e,t+8))),a=t+46+r,i=Km(e,t+20),s=n&amp;&amp;4294967295==i?$m(e,a):[i,Km(e,t+24),Km(e,t+42)],l=s[0],c=s[1],u=s[2];return[_m(e,t+10),l,c,o,a+_m(e,t+30)+_m(e,t+32),u]},$m=function(e,t){for(;1!=_m(e,t);t+=4+_m(e,t+2));return[zm(e,t+12),zm(e,t+4),zm(e,t+20)]};function eh(e,t){for(var n={},r=e.length-22;101010256!=Km(e,r);--r)(!r||e.length-r&gt;65558)&amp;&amp;km(13);var o=_m(e,r+8);if(!o)return{};var a=Km(e,r+16),i=4294967295==a;i&amp;&amp;(r=Km(e,r-12),101075792!=Km(e,r)&amp;&amp;km(13),o=Km(e,r+32),a=Km(e,r+48));for(var s=t&amp;&amp;t.filter,l=0;l&lt;o;++l){var c=Qm(e,a,i),u=c[0],d=c[1],p=c[2],f=c[3],g=c[4],m=c[5],h=Zm(e,m);a=g,s&amp;&amp;!s({name:f,size:d,originalSize:p,compression:u})||(u?8==u?n[f]=Wm(e.subarray(h,h+d),new gm(p)):km(14,&quot;unknown compression type &quot;+u):n[f]=Fm(e,h,h+d))}return n}function th(){const e=new ArrayBuffer(4),t=new Uint8Array(e),n=new Uint32Array(e);return t[0]=161,t[1]=178,t[2]=195,t[3]=212,3569595041===n[0]?&quot;LittleEndian&quot;:2712847316===n[0]?&quot;BigEndian&quot;:null}var nh={ENDIANNESS:th(),getEndianness:th,swapBytes:function(e,t){if(t&lt;2)return;const n=new Int8Array(e),r=n.length,o=[];for(let e=0;e&lt;r;e+=t){for(let r=0;r&lt;t;r++)o.push(n[e+r]);for(let r=0;r&lt;t;r++)n[e+r]=o.pop()}}};const{vtkErrorMacro:rh,vtkDebugMacro:oh}=sn;let ah=0;function ih(e,t,n={}){const r=new XMLHttpRequest;return r.open(e,t,!0),n.headers&amp;&amp;Object.entries(n.headers).forEach((([e,t])=&gt;r.setRequestHeader(e,t))),n.progressCallback&amp;&amp;r.addEventListener(&quot;progress&quot;,n.progressCallback),r}const sh={fetchArray:function(e,t,n,r={}){return n.ref&amp;&amp;!n.ref.pending?new Promise(((o,a)=&gt;{let i=null;i=n.ref.url?n.ref.url:[t,n.ref.basepath,r.compression?`${n.ref.id}.gz`:n.ref.id].join(&quot;/&quot;);const s=ih(&quot;GET&quot;,i,r);s.onreadystatechange=t=&gt;{1===s.readyState&amp;&amp;(n.ref.pending=!0,1==++ah&amp;&amp;e?.invokeBusy&amp;&amp;e.invokeBusy(!0)),4===s.readyState&amp;&amp;(n.ref.pending=!1,200===s.status||0===s.status?(n.buffer=s.response,r.compression&amp;&amp;(&quot;string&quot;===n.dataType||&quot;JSON&quot;===n.dataType?n.buffer=Jm(Xm(new Uint8Array(n.buffer))):n.buffer=Xm(new Uint8Array(n.buffer)).buffer),&quot;JSON&quot;===n.ref.encode?n.values=JSON.parse(n.buffer):(nh.ENDIANNESS!==n.ref.encode&amp;&amp;nh.ENDIANNESS&amp;&amp;(oh(`Swap bytes of ${n.name}`),nh.swapBytes(n.buffer,gs[n.dataType])),n.values=sn.newTypedArray(n.dataType,n.buffer)),n.values.length!==n.size&amp;&amp;rh(`Error in FetchArray: ${n.name}, does not have the proper array size. Got ${n.values.length}, instead of ${n.size}`),delete n.ref,0==--ah&amp;&amp;e?.invokeBusy&amp;&amp;e.invokeBusy(!1),e?.modified&amp;&amp;e.modified(),o(n)):a({xhr:s,e:t}))},s.responseType=r.compression||&quot;string&quot;!==n.dataType?&quot;arraybuffer&quot;:&quot;text&quot;,s.send()})):Promise.resolve(n)},fetchJSON:function(e,t,n={}){return new Promise(((r,o)=&gt;{const a=ih(&quot;GET&quot;,t,n);a.onreadystatechange=t=&gt;{1===a.readyState&amp;&amp;1==++ah&amp;&amp;e?.invokeBusy&amp;&amp;e.invokeBusy(!0),4===a.readyState&amp;&amp;(0==--ah&amp;&amp;e?.invokeBusy&amp;&amp;e.invokeBusy(!1),200===a.status||0===a.status?n.compression?r(JSON.parse(Jm(Xm(new Uint8Array(a.response))))):r(JSON.parse(a.responseText)):o({xhr:a,e:t}))},a.responseType=n.compression?&quot;arraybuffer&quot;:&quot;text&quot;,a.send()}))},fetchText:function(e,t,n={}){return n&amp;&amp;n.compression&amp;&amp;&quot;gz&quot;!==n.compression&amp;&amp;(rh(&quot;Supported algorithms are: [gz]&quot;),rh(`Unkown compression algorithm: ${n.compression}`)),new Promise(((r,o)=&gt;{const a=ih(&quot;GET&quot;,t,n);a.onreadystatechange=t=&gt;{1===a.readyState&amp;&amp;1==++ah&amp;&amp;e?.invokeBusy&amp;&amp;e.invokeBusy(!0),4===a.readyState&amp;&amp;(0==--ah&amp;&amp;e?.invokeBusy&amp;&amp;e.invokeBusy(!1),200===a.status||0===a.status?n.compression?r(Jm(Xm(new Uint8Array(a.response)))):r(a.responseText):o({xhr:a,e:t}))},a.responseType=n.compression?&quot;arraybuffer&quot;:&quot;text&quot;,a.send()}))},fetchBinary:function(e,t={}){return t&amp;&amp;t.compression&amp;&amp;&quot;gz&quot;!==t.compression&amp;&amp;(rh(&quot;Supported algorithms are: [gz]&quot;),rh(`Unkown compression algorithm: ${t.compression}`)),new Promise(((n,r)=&gt;{const o=ih(&quot;GET&quot;,e,t);o.onreadystatechange=e=&gt;{4===o.readyState&amp;&amp;(200===o.status||0===o.status?t.compression?n(Xm(new Uint8Array(o.response)).buffer):n(o.response):r({xhr:o,e:e}))},o.responseType=&quot;arraybuffer&quot;,o.send()}))},fetchImage:function(e,t,n={}){return new Promise(((e,r)=&gt;{const o=new Image;n.crossOrigin&amp;&amp;(o.crossOrigin=n.crossOrigin),o.onload=()=&gt;e(o),o.onerror=r,o.src=t}))}};pm(&quot;http&quot;,(e=&gt;sh));const{vtkDebugMacro:lh}=sn;const ch={position:[0,0,1],focalPoint:[0,0,0],viewUp:[0,1,0],directionOfProjection:[0,0,-1],parallelProjection:!1,useHorizontalViewAngle:!1,viewAngle:30,parallelScale:1,clippingRange:[.01,1000.01],windowCenter:[0,0],viewPlaneNormal:[0,0,1],useOffAxisProjection:!1,screenBottomLeft:[-.5,-.5,-.5],screenBottomRight:[.5,-.5,-.5],screenTopRight:[.5,.5,-.5],freezeFocalPoint:!1,projectionMatrix:null,viewMatrix:null,modelTransformMatrix:null,cameraLightTransform:v(),physicalTranslation:[0,0,0],physicalScale:1,physicalViewUp:[0,1,0],physicalViewNorth:[0,0,-1]};function uh(e,t,n={}){Object.assign(t,ch,n),sn.obj(e,t),sn.get(e,t,[&quot;distance&quot;]),sn.setGet(e,t,[&quot;parallelProjection&quot;,&quot;useHorizontalViewAngle&quot;,&quot;viewAngle&quot;,&quot;parallelScale&quot;,&quot;useOffAxisProjection&quot;,&quot;freezeFocalPoint&quot;,&quot;physicalScale&quot;]),sn.getArray(e,t,[&quot;directionOfProjection&quot;,&quot;viewPlaneNormal&quot;,&quot;position&quot;,&quot;focalPoint&quot;]),sn.setGetArray(e,t,[&quot;clippingRange&quot;,&quot;windowCenter&quot;],2),sn.setGetArray(e,t,[&quot;viewUp&quot;,&quot;screenBottomLeft&quot;,&quot;screenBottomRight&quot;,&quot;screenTopRight&quot;,&quot;physicalTranslation&quot;,&quot;physicalViewUp&quot;,&quot;physicalViewNorth&quot;],3),function(e,t){t.classHierarchy.push(&quot;vtkCamera&quot;);const n=new Float64Array(3),r=new Float64Array([0,0,-1]),o=new Float64Array([0,1,0]),a=x(new Float64Array(16)),i=x(new Float64Array(16)),s=new Float64Array(3),l=new Float64Array(3),c=new Float64Array(3),u=x(new Float64Array(16)),d=x(new Float64Array(16)),p=new Float64Array(3),f=new Float64Array(3);function g(){t.viewPlaneNormal[0]=-t.directionOfProjection[0],t.viewPlaneNormal[1]=-t.directionOfProjection[1],t.viewPlaneNormal[2]=-t.directionOfProjection[2]}e.orthogonalizeViewUp=()=&gt;{const n=e.getViewMatrix();t.viewUp[0]=n[4],t.viewUp[1]=n[5],t.viewUp[2]=n[6],e.modified()},e.setPosition=(n,r,o)=&gt;{n===t.position[0]&amp;&amp;r===t.position[1]&amp;&amp;o===t.position[2]||(t.position[0]=n,t.position[1]=r,t.position[2]=o,e.computeDistance(),e.modified())},e.setFocalPoint=(n,r,o)=&gt;{n===t.focalPoint[0]&amp;&amp;r===t.focalPoint[1]&amp;&amp;o===t.focalPoint[2]||(t.focalPoint[0]=n,t.focalPoint[1]=r,t.focalPoint[2]=o,e.computeDistance(),e.modified())},e.setDistance=n=&gt;{if(t.distance===n)return;t.distance=n,t.distance&lt;1e-20&amp;&amp;(t.distance=1e-20,lh(&quot;Distance is set to minimum.&quot;));const r=t.directionOfProjection;t.focalPoint[0]=t.position[0]+r[0]*t.distance,t.focalPoint[1]=t.position[1]+r[1]*t.distance,t.focalPoint[2]=t.position[2]+r[2]*t.distance,e.modified()},e.computeDistance=()=&gt;{const e=t.focalPoint[0]-t.position[0],n=t.focalPoint[1]-t.position[1],r=t.focalPoint[2]-t.position[2];if(t.distance=Math.sqrt(e*e+n*n+r*r),t.distance&lt;1e-20){t.distance=1e-20,lh(&quot;Distance is set to minimum.&quot;);const e=t.directionOfProjection;t.focalPoint[0]=t.position[0]+e[0]*t.distance,t.focalPoint[1]=t.position[1]+e[1]*t.distance,t.focalPoint[2]=t.position[2]+e[2]*t.distance}t.directionOfProjection[0]=e/t.distance,t.directionOfProjection[1]=n/t.distance,t.directionOfProjection[2]=r/t.distance,g()},e.dolly=n=&gt;{if(n&lt;=0)return;const r=t.distance/n;e.setPosition(t.focalPoint[0]-r*t.directionOfProjection[0],t.focalPoint[1]-r*t.directionOfProjection[1],t.focalPoint[2]-r*t.directionOfProjection[2])},e.roll=n=&gt;{const r=t.position,o=t.focalPoint,a=t.viewUp,i=new Float64Array([a[0],a[1],a[2],0]);x(u);const s=new Float64Array([o[0]-r[0],o[1]-r[1],o[2]-r[2]]);P(u,u,wo(n),s),de(i,i,u),t.viewUp[0]=i[0],t.viewUp[1]=i[1],t.viewUp[2]=i[2],e.modified()},e.azimuth=n=&gt;{const r=t.focalPoint;x(d),C(d,d,r),P(d,d,wo(n),t.viewUp),C(d,d,[-r[0],-r[1],-r[2]]),oe(p,t.position,d),e.setPosition(p[0],p[1],p[2])},e.yaw=n=&gt;{const r=t.position;x(d),C(d,d,r),P(d,d,wo(n),t.viewUp),C(d,d,[-r[0],-r[1],-r[2]]),oe(f,t.focalPoint,d),e.setFocalPoint(f[0],f[1],f[2])},e.elevation=n=&gt;{const r=t.focalPoint,o=e.getViewMatrix(),a=[-o[0],-o[1],-o[2]];x(d),C(d,d,r),P(d,d,wo(n),a),C(d,d,[-r[0],-r[1],-r[2]]),oe(p,t.position,d),e.setPosition(p[0],p[1],p[2])},e.pitch=n=&gt;{const r=t.position,o=e.getViewMatrix(),a=[o[0],o[1],o[2]];x(d),C(d,d,r),P(d,d,wo(n),a),C(d,d,[-r[0],-r[1],-r[2]]),oe(f,t.focalPoint,d),e.setFocalPoint(...f)},e.zoom=n=&gt;{n&lt;=0||(t.parallelProjection?t.parallelScale/=n:t.viewAngle/=n,e.modified())},e.translate=(n,r,o)=&gt;{const a=[n,r,o];ko(t.position,a,t.position),ko(t.focalPoint,a,t.focalPoint),e.computeDistance(),e.modified()},e.applyTransform=n=&gt;{const r=[...t.viewUp,1],o=[],a=[],i=[];r[0]+=t.position[0],r[1]+=t.position[1],r[2]+=t.position[2],de(o,[...t.position,1],n),de(a,[...t.focalPoint,1],n),de(i,r,n),i[0]-=o[0],i[1]-=o[1],i[2]-=o[2],e.setPosition(...o.slice(0,3)),e.setFocalPoint(...a.slice(0,3)),e.setViewUp(...i.slice(0,3))},e.getThickness=()=&gt;t.clippingRange[1]-t.clippingRange[0],e.setThickness=n=&gt;{let r=n;r&lt;1e-20&amp;&amp;(r=1e-20,lh(&quot;Thickness is set to minimum.&quot;)),e.setClippingRange(t.clippingRange[0],t.clippingRange[0]+r)},e.setThicknessFromFocalPoint=n=&gt;{let r=n;r&lt;1e-20&amp;&amp;(r=1e-20,lh(&quot;Thickness is set to minimum.&quot;)),e.setClippingRange(t.distance-r/2,t.distance+r/2)},e.setRoll=e=&gt;{},e.getRoll=()=&gt;{},e.setObliqueAngles=(e,t)=&gt;{},e.getOrientation=()=&gt;{},e.getOrientationWXYZ=()=&gt;{},e.getFrustumPlanes=(t=1,n=new Float64Array(24))=&gt;{const r=[[1,0,0,1],[-1,0,0,1],[0,1,0,1],[0,-1,0,1],[0,0,1,1],[0,0,-1,1]],o=e.getCompositeProjectionMatrix(t,-1,1);for(let e=0;e&lt;6;e++)de(r[e],r[e],o),Xo(r[e]),n[4*e+0]=r[e][0],n[4*e+1]=r[e][1],n[4*e+2]=r[e][2],n[4*e+3]=r[e][3];return n},e.getCameraLightTransformMatrix=e=&gt;(T(e,t.cameraLightTransform),e),e.computeCameraLightTransform=()=&gt;{T(a,e.getViewMatrix()),b(a,a),M(i,[t.distance,t.distance,t.distance]),A(a,a,i),x(t.cameraLightTransform),C(t.cameraLightTransform,a,[0,0,-1])},e.deepCopy=e=&gt;{},e.physicalOrientationToWorldDirection=e=&gt;{const t=he(e[0],e[1],e[2],e[3]),n=pe(),r=he(0,0,1,0);var o,a;return a=t,(o=n)[0]=-a[0],o[1]=-a[1],o[2]=-a[2],o[3]=a[3],ge(r,t,r),ge(r,r,n),[r[0],r[1],r[2]]},e.getPhysicalToWorldMatrix=t=&gt;{e.getWorldToPhysicalMatrix(t),b(t,t)},e.getWorldToPhysicalMatrix=e=&gt;{x(e);const n=[3];Wo(t.physicalViewNorth,t.physicalViewUp,n),e[0]=n[0],e[1]=n[1],e[2]=n[2],e[4]=t.physicalViewUp[0],e[5]=t.physicalViewUp[1],e[6]=t.physicalViewUp[2],e[8]=-t.physicalViewNorth[0],e[9]=-t.physicalViewNorth[1],e[10]=-t.physicalViewNorth[2],y(e,e),Y(s,1/t.physicalScale,1/t.physicalScale,1/t.physicalScale),S(e,e,s),C(e,e,t.physicalTranslation)},e.computeViewParametersFromViewMatrix=i=&gt;{b(a,i),oe(s,n,a),e.computeDistance();const u=t.distance;e.setPosition(s[0],s[1],s[2]),oe(l,r,a),Z(l,l,s),te(l,l),e.setDirectionOfProjection(l[0],l[1],l[2]),oe(c,o,a),Z(c,c,s),te(c,c),e.setViewUp(c[0],c[1],c[2]),e.setDistance(u)},e.computeViewParametersFromPhysicalMatrix=t=&gt;{e.getWorldToPhysicalMatrix(a),A(a,t,a),e.computeViewParametersFromViewMatrix(a)},e.setModelTransformMatrix=e=&gt;{t.modelTransformMatrix=e},e.getModelTransformMatrix=()=&gt;t.modelTransformMatrix,e.setViewMatrix=n=&gt;{t.viewMatrix=n,t.viewMatrix&amp;&amp;(T(a,t.viewMatrix),e.computeViewParametersFromViewMatrix(a),y(t.viewMatrix,t.viewMatrix))},e.getViewMatrix=()=&gt;{if(t.viewMatrix)return t.modelTransformMatrix?(A(a,t.viewMatrix,t.modelTransformMatrix),a):t.viewMatrix;_(a,t.position,t.focalPoint,t.viewUp),y(a,a);const e=new Float64Array(16);return t.modelTransformMatrix?A(e,a,t.modelTransformMatrix):T(e,a),e},e.setProjectionMatrix=e=&gt;{t.projectionMatrix=e},e.getProjectionMatrix=(e,n,r)=&gt;{const o=new Float64Array(16);if(x(o),t.projectionMatrix){const e=1/t.physicalScale;return Y(s,e,e,e),T(o,t.projectionMatrix),S(o,o,s),y(o,o),o}x(a);const i=t.clippingRange[1]-t.clippingRange[0],l=[t.clippingRange[0]+(n+1)*i/2,t.clippingRange[0]+(r+1)*i/2];if(t.parallelProjection){const n=t.parallelScale*e,r=t.parallelScale,o=(t.windowCenter[0]-1)*n,i=(t.windowCenter[0]+1)*n,s=(t.windowCenter[1]-1)*r,c=(t.windowCenter[1]+1)*r;U(a,o,i,s,c,l[0],l[1]),y(a,a)}else{if(t.useOffAxisProjection)throw new Error(&quot;Off-Axis projection is not supported at this time&quot;);{const n=Math.tan(wo(t.viewAngle)/2);let r,o;!0===t.useHorizontalViewAngle?(r=t.clippingRange[0]*n,o=t.clippingRange[0]*n/e):(r=t.clippingRange[0]*n*e,o=t.clippingRange[0]*n);const i=(t.windowCenter[0]-1)*r,s=(t.windowCenter[0]+1)*r,c=(t.windowCenter[1]-1)*o,u=(t.windowCenter[1]+1)*o,d=l[0],p=l[1];a[0]=2*d/(s-i),a[5]=2*d/(u-c),a[2]=(i+s)/(s-i),a[6]=(c+u)/(u-c),a[10]=-(d+p)/(p-d),a[14]=-1,a[11]=-2*d*p/(p-d),a[15]=0}}return T(o,a),o},e.getCompositeProjectionMatrix=(t,n,r)=&gt;{const o=e.getViewMatrix(),a=e.getProjectionMatrix(t,n,r);return A(a,o,a),a},e.setDirectionOfProjection=(e,n,r)=&gt;{if(t.directionOfProjection[0]===e&amp;&amp;t.directionOfProjection[1]===n&amp;&amp;t.directionOfProjection[2]===r)return;t.directionOfProjection[0]=e,t.directionOfProjection[1]=n,t.directionOfProjection[2]=r;const o=t.directionOfProjection;t.focalPoint[0]=t.position[0]+o[0]*t.distance,t.focalPoint[1]=t.position[1]+o[1]*t.distance,t.focalPoint[2]=t.position[2]+o[2]*t.distance,g()},e.setDeviceAngles=(n,r,o,a)=&gt;{const i=[3];Wo(t.physicalViewNorth,t.physicalViewUp,i);const s=x(new Float64Array(16));P(s,s,wo(n),t.physicalViewUp),P(s,s,wo(r),i),P(s,s,wo(o),t.physicalViewNorth),P(s,s,wo(-a),t.physicalViewUp);const l=new Float64Array([-t.physicalViewUp[0],-t.physicalViewUp[1],-t.physicalViewUp[2]]),c=new Float64Array(t.physicalViewNorth);oe(l,l,s),oe(c,c,s),e.setDirectionOfProjection(l[0],l[1],l[2]),e.setViewUp(c[0],c[1],c[2]),e.modified()},e.setOrientationWXYZ=(t,n,r,o)=&gt;{const a=x(new Float64Array(16));if(0!==t&amp;&amp;(0!==n||0!==r||0!==o)){const e=wo(t),i=pe();fe(i,[n,r,o],e),F(a,i)}const i=new Float64Array(3);oe(i,[0,0,-1],a);const s=new Float64Array(3);oe(s,[0,1,0],a),e.setDirectionOfProjection(...i),e.setViewUp(...s),e.modified()},e.computeClippingRange=e=&gt;{let n=null,r=null;n=t.viewPlaneNormal,r=t.position;const o=-n[0],a=-n[1],i=-n[2],s=-(o*r[0]+a*r[1]+i*r[2]),l=[o*e[0]+a*e[2]+i*e[4]+s,1e-18];for(let t=0;t&lt;2;t++)for(let n=0;n&lt;2;n++)for(let r=0;r&lt;2;r++){const c=o*e[r]+a*e[2+n]+i*e[4+t]+s;l[0]=c&lt;l[0]?c:l[0],l[1]=c&gt;l[1]?c:l[1]}return l}}(e,t)}var dh={newInstance:sn.newInstance(uh,&quot;vtkCamera&quot;),extend:uh};const ph={switch:!0,intensity:1,color:[1,1,1],position:[0,0,1],focalPoint:[0,0,0],positional:!1,exponent:1,coneAngle:30,coneFalloff:5,attenuationValues:[1,0,0],transformMatrix:null,lightType:&quot;SceneLight&quot;,shadowAttenuation:1,direction:[0,0,0],directionMTime:0};function fh(e,t,n={}){Object.assign(t,ph,n),sn.obj(e,t),sn.setGet(e,t,[&quot;intensity&quot;,&quot;switch&quot;,&quot;positional&quot;,&quot;exponent&quot;,&quot;coneAngle&quot;,&quot;coneFalloff&quot;,&quot;transformMatrix&quot;,&quot;lightType&quot;,&quot;shadowAttenuation&quot;,&quot;attenuationValues&quot;]),sn.setGetArray(e,t,[&quot;color&quot;,&quot;position&quot;,&quot;focalPoint&quot;,&quot;attenuationValues&quot;],3),function(e,t){t.classHierarchy.push(&quot;vtkLight&quot;);const n=new Float64Array(3);e.getTransformedPosition=()=&gt;(t.transformMatrix?oe(n,t.position,t.transformMatrix):Y(n,t.position[0],t.position[1],t.position[2]),n),e.getTransformedFocalPoint=()=&gt;(t.transformMatrix?oe(n,t.focalPoint,t.transformMatrix):Y(n,t.focalPoint[0],t.focalPoint[1],t.focalPoint[2]),n),e.getDirection=()=&gt;(t.directionMTime&lt;t.mtime&amp;&amp;(le(t.direction,t.focalPoint,t.position),jo(t.direction),t.directionMTime=t.mtime),t.direction),e.setDirection=e=&gt;{const n=new Float64Array(3);le(n,t.position,e),t.focalPoint=n},e.setDirectionAngle=(t,n)=&gt;{const r=wo(t),o=wo(n);e.setPosition(Math.cos(r)*Math.sin(o),Math.sin(r),Math.cos(r)*Math.cos(o)),e.setFocalPoint(0,0,0),e.setPositional(0)},e.setLightTypeToHeadLight=()=&gt;{e.setLightType(&quot;HeadLight&quot;)},e.setLightTypeToCameraLight=()=&gt;{e.setLightType(&quot;CameraLight&quot;)},e.setLightTypeToSceneLight=()=&gt;{e.setTransformMatrix(null),e.setLightType(&quot;SceneLight&quot;)},e.lightTypeIsHeadLight=()=&gt;&quot;HeadLight&quot;===t.lightType,e.lightTypeIsSceneLight=()=&gt;&quot;SceneLight&quot;===t.lightType,e.lightTypeIsCameraLight=()=&gt;&quot;CameraLight&quot;===t.lightType}(e,t)}var gh={newInstance:sn.newInstance(fh,&quot;vtkLight&quot;),extend:fh,LIGHT_TYPES:[&quot;HeadLight&quot;,&quot;CameraLight&quot;,&quot;SceneLight&quot;]};const{vtkErrorMacro:mh}=sn;function hh(e,t){function n(e,t=[]){t.push(e);const r=e.getNestedProps();if(r&amp;&amp;r.length)for(let e=0;e&lt;r.length;e++)n(r[e],t);return t}var r;t.classHierarchy.push(&quot;vtkViewport&quot;),e.getViewProps=()=&gt;t.props,e.hasViewProp=e=&gt;t.props.includes(e),e.addViewProp=n=&gt;{n&amp;&amp;!e.hasViewProp(n)&amp;&amp;t.props.push(n)},e.removeViewProp=e=&gt;{const n=t.props.filter((t=&gt;t!==e));t.props.length!==n.length&amp;&amp;(t.props=n)},e.removeAllViewProps=()=&gt;{t.props=[]},e.getViewPropsWithNestedProps=()=&gt;{let e=[];t.actors2D=[];for(let r=0;r&lt;t.props.length;r++){const o=t.props[r].getActors2D();o&amp;&amp;(!Array.isArray(o)||o.length&gt;0)?t.actors2D=t.actors2D.concat(o):n(t.props[r],e)}return t.actors2D.sort(((e,t)=&gt;e.getLayerNumber()-t.getLayerNumber())),e=e.concat(t.actors2D),e},e.addActor2D=e.addViewProp,e.removeActor2D=t=&gt;{e.removeViewProp(t)},e.getActors2D=()=&gt;(t.actors2D=[],t.props.forEach((e=&gt;{t.actors2D=t.actors2D.concat(e.getActors2D())})),t.actors2D),e.displayToView=()=&gt;mh(&quot;call displayToView on your view instead&quot;),e.viewToDisplay=()=&gt;mh(&quot;callviewtodisplay on your view instead&quot;),e.getSize=()=&gt;mh(&quot;call getSize on your View instead&quot;),e.normalizedDisplayToProjection=(t,n,r)=&gt;{const o=e.normalizedDisplayToNormalizedViewport(t,n,r);return e.normalizedViewportToProjection(o[0],o[1],o[2])},e.normalizedDisplayToNormalizedViewport=(e,n,r)=&gt;{const o=[t.viewport[2]-t.viewport[0],t.viewport[3]-t.viewport[1]];return[(e-t.viewport[0])/o[0],(n-t.viewport[1])/o[1],r]},e.normalizedViewportToProjection=(e,t,n)=&gt;[2*e-1,2*t-1,2*n-1],e.projectionToNormalizedDisplay=(t,n,r)=&gt;{const o=e.projectionToNormalizedViewport(t,n,r);return e.normalizedViewportToNormalizedDisplay(o[0],o[1],o[2])},e.normalizedViewportToNormalizedDisplay=(e,n,r)=&gt;{const o=[t.viewport[2]-t.viewport[0],t.viewport[3]-t.viewport[1]];return[e*o[0]+t.viewport[0],n*o[1]+t.viewport[1],r]},e.projectionToNormalizedViewport=(e,t,n)=&gt;[.5*(e+1),.5*(t+1),.5*(n+1)],e.PickPropFrom=(r=&quot;PickPropFrom&quot;,()=&gt;mh(`vtkViewport::${r} - NOT IMPLEMENTED`))}const vh={background:[0,0,0],background2:[.2,.2,.2],gradientBackground:!1,viewport:[0,0,1,1],aspect:[1,1],pixelAspect:[1,1],props:[],actors2D:[]};function Th(e,t,n={}){Object.assign(t,vh,n),sn.obj(e,t),sn.event(e,t,&quot;event&quot;),sn.setGetArray(e,t,[&quot;viewport&quot;],4),sn.setGetArray(e,t,[&quot;background&quot;,&quot;background2&quot;],3),hh(e,t)}var xh={newInstance:sn.newInstance(Th,&quot;vtkViewport&quot;),extend:Th};const{vtkDebugMacro:yh,vtkErrorMacro:bh,vtkWarningMacro:Ah}=ln;function Ch(e){return()=&gt;bh(`vtkRenderer::${e} - NOT IMPLEMENTED`)}const Sh={pickedProp:null,activeCamera:null,allBounds:[],ambient:[1,1,1],allocatedRenderTime:100,timeFactor:1,automaticLightCreation:!0,twoSidedLighting:!0,lastRenderTimeInSeconds:-1,renderWindow:null,lights:[],actors:[],volumes:[],lightFollowCamera:!0,numberOfPropsRendered:0,propArray:null,pathArray:null,layer:0,preserveColorBuffer:!1,preserveDepthBuffer:!1,computeVisiblePropBounds:Ga(),interactive:!0,nearClippingPlaneTolerance:0,clippingRangeExpansion:.05,erase:!0,draw:!0,useShadows:!1,useDepthPeeling:!1,occlusionRatio:0,maximumNumberOfPeels:4,selector:null,delegate:null,texturedBackground:!1,backgroundTexture:null,environmentTexture:null,environmentTextureDiffuseStrength:1,environmentTextureSpecularStrength:1,useEnvironmentTextureAsBackground:!1,pass:0};function Ph(e,t,n={}){for(Object.assign(t,Sh,n),xh.extend(e,t,n),t.background||(t.background=[0,0,0,1]);t.background.length&lt;3;)t.background.push(0);3===t.background.length&amp;&amp;t.background.push(1),Bt(e,t,[&quot;_renderWindow&quot;,&quot;allocatedRenderTime&quot;,&quot;timeFactor&quot;,&quot;lastRenderTimeInSeconds&quot;,&quot;numberOfPropsRendered&quot;,&quot;lastRenderingUsedDepthPeeling&quot;,&quot;selector&quot;]),Gt(e,t,[&quot;twoSidedLighting&quot;,&quot;lightFollowCamera&quot;,&quot;automaticLightCreation&quot;,&quot;erase&quot;,&quot;draw&quot;,&quot;nearClippingPlaneTolerance&quot;,&quot;clippingRangeExpansion&quot;,&quot;backingStore&quot;,&quot;interactive&quot;,&quot;layer&quot;,&quot;preserveColorBuffer&quot;,&quot;preserveDepthBuffer&quot;,&quot;useDepthPeeling&quot;,&quot;occlusionRatio&quot;,&quot;maximumNumberOfPeels&quot;,&quot;delegate&quot;,&quot;backgroundTexture&quot;,&quot;texturedBackground&quot;,&quot;environmentTexture&quot;,&quot;environmentTextureDiffuseStrength&quot;,&quot;environmentTextureSpecularStrength&quot;,&quot;useEnvironmentTextureAsBackground&quot;,&quot;useShadows&quot;,&quot;pass&quot;]),Ut(e,t,[&quot;actors&quot;,&quot;volumes&quot;,&quot;lights&quot;]),Kt(e,t,[&quot;background&quot;],4,1),zt(0,t,[&quot;renderWindow&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkRenderer&quot;);const n={type:&quot;ComputeVisiblePropBoundsEvent&quot;,renderer:e},r={type:&quot;ResetCameraClippingRangeEvent&quot;,renderer:e},o={type:&quot;ResetCameraEvent&quot;,renderer:e};e.updateCamera=()=&gt;(t.activeCamera||(yh(&quot;No cameras are on, creating one.&quot;),e.getActiveCameraAndResetIfCreated()),t.activeCamera.render(e),!0),e.updateLightsGeometryToFollowCamera=()=&gt;{const n=e.getActiveCameraAndResetIfCreated();t.lights.forEach((e=&gt;{e.lightTypeIsSceneLight()||(e.lightTypeIsHeadLight()?(e.setPositionFrom(n.getPositionByReference()),e.setFocalPointFrom(n.getFocalPointByReference()),e.modified(n.getMTime())):e.lightTypeIsCameraLight()?e.setTransformMatrix(n.getCameraLightTransformMatrix(v())):bh(&quot;light has unknown light type&quot;,e.get()))}))},e.updateLightGeometry=()=&gt;!t.lightFollowCamera||e.updateLightsGeometryToFollowCamera(),e.allocateTime=Ch(&quot;allocateTime&quot;),e.updateGeometry=Ch(&quot;updateGeometry&quot;),e.getVTKWindow=()=&gt;t._renderWindow,e.setLayer=n=&gt;{yh(e.getClassName(),e,&quot;setting Layer to &quot;,n),t.layer!==n&amp;&amp;(t.layer=n,e.modified()),e.setPreserveColorBuffer(!!n)},e.setActiveCamera=n=&gt;t.activeCamera!==n&amp;&amp;(t.activeCamera=n,e.modified(),e.invokeEvent({type:&quot;ActiveCameraEvent&quot;,camera:n}),!0),e.makeCamera=()=&gt;{const t=dh.newInstance();return e.invokeEvent({type:&quot;CreateCameraEvent&quot;,camera:t}),t},e.getActiveCamera=()=&gt;(t.activeCamera||(t.activeCamera=e.makeCamera()),t.activeCamera),e.getActiveCameraAndResetIfCreated=()=&gt;(t.activeCamera||(e.getActiveCamera(),e.resetCamera()),t.activeCamera),e.getActors=()=&gt;(t.actors=[],t.props.forEach((e=&gt;{t.actors=t.actors.concat(e.getActors())})),t.actors),e.addActor=e.addViewProp,e.removeActor=n=&gt;{t.actors=t.actors.filter((e=&gt;e!==n)),e.removeViewProp(n),e.modified()},e.removeAllActors=()=&gt;{e.getActors().forEach((t=&gt;{e.removeViewProp(t)})),t.actors=[],e.modified()},e.getVolumes=()=&gt;(t.volumes=[],t.props.forEach((e=&gt;{t.volumes=t.volumes.concat(e.getVolumes())})),t.volumes),e.addVolume=e.addViewProp,e.removeVolume=n=&gt;{t.volumes=t.volumes.filter((e=&gt;e!==n)),e.removeViewProp(n),e.modified()},e.removeAllVolumes=()=&gt;{e.getVolumes().forEach((t=&gt;{e.removeViewProp(t)})),t.volumes=[],e.modified()},e.hasLight=e=&gt;t.lights.includes(e),e.addLight=n=&gt;{n&amp;&amp;!e.hasLight(n)&amp;&amp;(t.lights.push(n),e.modified())},e.removeLight=n=&gt;{t.lights=t.lights.filter((e=&gt;e!==n)),e.modified()},e.removeAllLights=()=&gt;{t.lights=[],e.modified()},e.setLightCollection=n=&gt;{t.lights=n,e.modified()},e.makeLight=gh.newInstance,e.createLight=()=&gt;{t.automaticLightCreation&amp;&amp;(t._createdLight&amp;&amp;(e.removeLight(t._createdLight),t._createdLight.delete(),t._createdLight=null),t._createdLight=e.makeLight(),e.addLight(t._createdLight),t._createdLight.setLightTypeToHeadLight(),t._createdLight.setPosition(e.getActiveCamera().getPosition()),t._createdLight.setFocalPoint(e.getActiveCamera().getFocalPoint()))},e.normalizedDisplayToWorld=(t,n,r,o)=&gt;{let a=e.normalizedDisplayToProjection(t,n,r);return a=e.projectionToView(a[0],a[1],a[2],o),e.viewToWorld(a[0],a[1],a[2])},e.worldToNormalizedDisplay=(t,n,r,o)=&gt;{let a=e.worldToView(t,n,r);return a=e.viewToProjection(a[0],a[1],a[2],o),e.projectionToNormalizedDisplay(a[0],a[1],a[2])},e.viewToWorld=(e,n,r)=&gt;{if(null===t.activeCamera)return bh(&quot;ViewToWorld: no active camera, cannot compute view to world, returning 0,0,0&quot;),[0,0,0];const o=t.activeCamera.getViewMatrix();b(o,o),y(o,o);const a=new Float64Array([e,n,r]);return oe(a,a,o),a},e.projectionToView=(e,n,r,o)=&gt;{if(null===t.activeCamera)return bh(&quot;ProjectionToView: no active camera, cannot compute projection to view, returning 0,0,0&quot;),[0,0,0];const a=t.activeCamera.getProjectionMatrix(o,-1,1);b(a,a),y(a,a);const i=new Float64Array([e,n,r]);return oe(i,i,a),i},e.worldToView=(e,n,r)=&gt;{if(null===t.activeCamera)return bh(&quot;WorldToView: no active camera, cannot compute view to world, returning 0,0,0&quot;),[0,0,0];const o=t.activeCamera.getViewMatrix();y(o,o);const a=new Float64Array([e,n,r]);return oe(a,a,o),a},e.viewToProjection=(e,n,r,o)=&gt;{if(null===t.activeCamera)return bh(&quot;ViewToProjection: no active camera, cannot compute view to projection, returning 0,0,0&quot;),[0,0,0];const a=t.activeCamera.getProjectionMatrix(o,-1,1);y(a,a);const i=new Float64Array([e,n,r]);return oe(i,i,a),i},e.computeVisiblePropBounds=()=&gt;{t.allBounds[0]=Hi.INIT_BOUNDS[0],t.allBounds[1]=Hi.INIT_BOUNDS[1],t.allBounds[2]=Hi.INIT_BOUNDS[2],t.allBounds[3]=Hi.INIT_BOUNDS[3],t.allBounds[4]=Hi.INIT_BOUNDS[4],t.allBounds[5]=Hi.INIT_BOUNDS[5];let r=!0;e.invokeEvent(n);for(let e=0;e&lt;t.props.length;++e){const n=t.props[e];if(n.getVisibility()&amp;&amp;n.getUseBounds()){const e=n.getBounds();e&amp;&amp;Oa(e)&amp;&amp;(r=!1,e[0]&lt;t.allBounds[0]&amp;&amp;(t.allBounds[0]=e[0]),e[1]&gt;t.allBounds[1]&amp;&amp;(t.allBounds[1]=e[1]),e[2]&lt;t.allBounds[2]&amp;&amp;(t.allBounds[2]=e[2]),e[3]&gt;t.allBounds[3]&amp;&amp;(t.allBounds[3]=e[3]),e[4]&lt;t.allBounds[4]&amp;&amp;(t.allBounds[4]=e[4]),e[5]&gt;t.allBounds[5]&amp;&amp;(t.allBounds[5]=e[5]))}}return r&amp;&amp;(Ia(t.allBounds),yh(&quot;Can&#x27;t compute bounds, no 3D props are visible&quot;)),t.allBounds},e.resetCamera=(n=null)=&gt;{const r=n||e.computeVisiblePropBounds(),a=[0,0,0];if(!Oa(r))return yh(&quot;Cannot reset camera!&quot;),!1;let i=null;if(!e.getActiveCamera())return bh(&quot;Trying to reset non-existent camera&quot;),!1;i=t.activeCamera.getViewPlaneNormal(),t.activeCamera.setViewAngle(30),a[0]=(r[0]+r[1])/2,a[1]=(r[2]+r[3])/2,a[2]=(r[4]+r[5])/2;let s=r[1]-r[0],l=r[3]-r[2],c=r[5]-r[4];s*=s,l*=l,c*=c;let u=s+l+c;u=0===u?1:u,u=.5*Math.sqrt(u);const d=wo(t.activeCamera.getViewAngle()),p=u,f=u/Math.sin(.5*d),g=t.activeCamera.getViewUp();return Math.abs(zo(g,i))&gt;.999&amp;&amp;(Ah(&quot;Resetting view-up since view plane normal is parallel&quot;),t.activeCamera.setViewUp(-g[2],g[0],g[1])),t.activeCamera.setFocalPoint(a[0],a[1],a[2]),t.activeCamera.setPosition(a[0]+f*i[0],a[1]+f*i[1],a[2]+f*i[2]),e.resetCameraClippingRange(r),t.activeCamera.setParallelScale(p),t.activeCamera.setPhysicalScale(u),t.activeCamera.setPhysicalTranslation(-a[0],-a[1],-a[2]),e.invokeEvent(o),!0},e.resetCameraClippingRange=(n=null)=&gt;{const o=n||e.computeVisiblePropBounds();if(!Oa(o))return yh(&quot;Cannot reset camera clipping range!&quot;),!1;if(e.getActiveCameraAndResetIfCreated(),!t.activeCamera)return bh(&quot;Trying to reset clipping range of non-existent camera&quot;),!1;const a=t.activeCamera.computeClippingRange(o);let i=0;if(t.activeCamera.getParallelProjection())i=.2*t.activeCamera.getParallelScale();else{const e=wo(t.activeCamera.getViewAngle());i=.2*Math.tan(e/2)*a[1]}return a[1]-a[0]&lt;i&amp;&amp;(i=i-a[1]+a[0],a[1]+=i/2,a[0]-=i/2),a[0]&lt;0&amp;&amp;(a[0]=0),a[0]=.99*a[0]-(a[1]-a[0])*t.clippingRangeExpansion,a[1]=1.01*a[1]+(a[1]-a[0])*t.clippingRangeExpansion,a[0]=a[0]&gt;=a[1]?.01*a[1]:a[0],t.nearClippingPlaneTolerance||(t.nearClippingPlaneTolerance=.01),a[0]&lt;t.nearClippingPlaneTolerance*a[1]&amp;&amp;(a[0]=t.nearClippingPlaneTolerance*a[1]),t.activeCamera.setClippingRange(a[0],a[1]),e.invokeEvent(r),!1},e.setRenderWindow=e=&gt;{e!==t._renderWindow&amp;&amp;(t._vtkWindow=e,t._renderWindow=e)},e.visibleActorCount=()=&gt;t.props.filter((e=&gt;e.getVisibility())).length,e.visibleVolumeCount=e.visibleActorCount,e.getMTime=()=&gt;{let e=t.mtime;const n=t.activeCamera?t.activeCamera.getMTime():0;n&gt;e&amp;&amp;(e=n);const r=t._createdLight?t._createdLight.getMTime():0;return r&gt;e&amp;&amp;(e=r),e},e.getTransparent=()=&gt;!!t.preserveColorBuffer,e.isActiveCameraCreated=()=&gt;!!t.activeCamera}(e,t)}var wh={newInstance:Xt(Ph,&quot;vtkRenderer&quot;),extend:Ph};const Ih=Object.create(null);function Oh(e,t){Ih[e]=t}function Rh(e,t={}){return Ih[e]&amp;&amp;Ih[e](t)}const Mh={defaultViewAPI:&quot;WebGL&quot;,renderers:[],views:[],interactor:null,neverRendered:!0,numberOfLayers:1,childRenderWindows:[]};function Dh(e,t,n={}){Object.assign(t,Mh,n),sn.obj(e,t),sn.setGet(e,t,[&quot;interactor&quot;,&quot;numberOfLayers&quot;,&quot;_views&quot;,&quot;defaultViewAPI&quot;]),sn.get(e,t,[&quot;neverRendered&quot;]),sn.getArray(e,t,[&quot;renderers&quot;,&quot;childRenderWindows&quot;]),sn.moveToProtected(e,t,[&quot;views&quot;]),sn.event(e,t,&quot;completion&quot;),function(e,t){t.classHierarchy.push(&quot;vtkRenderWindow&quot;),e.addRenderer=n=&gt;{e.hasRenderer(n)||(n.setRenderWindow(e),t.renderers.push(n),e.modified())},e.removeRenderer=n=&gt;{t.renderers=t.renderers.filter((e=&gt;e!==n)),e.modified()},e.hasRenderer=e=&gt;-1!==t.renderers.indexOf(e),e.newAPISpecificView=(e,n={})=&gt;Rh(e||t.defaultViewAPI,n),e.addView=n=&gt;{e.hasView(n)||(n.setRenderable(e),t._views.push(n),e.modified())},e.removeView=n=&gt;{t._views=t._views.filter((e=&gt;e!==n)),e.modified()},e.hasView=e=&gt;-1!==t._views.indexOf(e),e.preRender=()=&gt;{t.renderers.forEach((e=&gt;{e.isActiveCameraCreated()||e.resetCamera()}))},e.render=()=&gt;{e.preRender(),t.interactor?t.interactor.render():t._views.forEach((e=&gt;e.traverseAllPasses()))},e.getStatistics=()=&gt;{const e={propCount:0,invisiblePropCount:0,gpuMemoryMB:0};return t._views.forEach((t=&gt;{t.getGraphicsMemoryInfo&amp;&amp;(e.gpuMemoryMB+=t.getGraphicsMemoryInfo()/1e6)})),t.renderers.forEach((n=&gt;{const r=n.getViewProps(),o=t._views[0].getViewNodeFor(n);r.forEach((t=&gt;{if(t.getVisibility()){e.propCount+=1;const n=t.getMapper&amp;&amp;t.getMapper();if(n&amp;&amp;n.getPrimitiveCount){const t=o.getViewNodeFor(n);if(t){t.getAllocatedGPUMemoryInBytes&amp;&amp;(e.gpuMemoryMB+=t.getAllocatedGPUMemoryInBytes()/1e6);const r=n.getPrimitiveCount();Object.keys(r).forEach((t=&gt;{e[t]||(e[t]=0),e[t]+=r[t]}))}}}else e.invisiblePropCount+=1}))})),e.str=Object.keys(e).map((t=&gt;`${t}: ${e[t]}`)).join(&quot;\\n&quot;),e},e.captureImages=(n=&quot;image/png&quot;,r={})=&gt;(sn.setImmediate(e.render),t._views.map((e=&gt;e.captureNextImage?e.captureNextImage(n,r):void 0)).filter((e=&gt;!!e))),e.addRenderWindow=n=&gt;!t.childRenderWindows.includes(n)&amp;&amp;(t.childRenderWindows.push(n),e.modified(),!0),e.removeRenderWindow=n=&gt;{const r=t.childRenderWindows.findIndex((e=&gt;e===n));return!(r&lt;0||(t.childRenderWindows.splice(r,1),e.modified(),0))}}(e,t)}var Eh={newInstance:sn.newInstance(Dh,&quot;vtkRenderWindow&quot;),extend:Dh,registerViewConstructor:Oh,listViewAPIs:function(){return Object.keys(Ih)},newAPISpecificView:Rh};const Vh={Unknown:0,LeftController:1,RightController:2},Lh={Unknown:0,Trigger:1,TrackPad:2,Grip:3,Thumbstick:4,A:5,B:6,ApplicationMenu:7};var Bh={Device:Vh,Input:Lh,Axis:{Unknown:0,TouchpadX:1,TouchpadY:2,ThumbstickX:3,ThumbstickY:4},MouseButton:{LeftButton:1,MiddleButton:2,RightButton:3}};const{Device:Fh,Input:Nh}=Bh,{vtkWarningMacro:kh,vtkErrorMacro:Gh,normalizeWheel:Uh,vtkOnceErrorMacro:_h}=sn,Kh={ctrlKey:!1,altKey:!1,shiftKey:!1},zh={&quot;xr-standard&quot;:[Nh.Trigger,Nh.Grip,Nh.TrackPad,Nh.Thumbstick,Nh.A,Nh.B]},Wh=[&quot;StartAnimation&quot;,&quot;Animation&quot;,&quot;EndAnimation&quot;,&quot;PointerEnter&quot;,&quot;PointerLeave&quot;,&quot;MouseEnter&quot;,&quot;MouseLeave&quot;,&quot;StartMouseMove&quot;,&quot;MouseMove&quot;,&quot;EndMouseMove&quot;,&quot;LeftButtonPress&quot;,&quot;LeftButtonRelease&quot;,&quot;MiddleButtonPress&quot;,&quot;MiddleButtonRelease&quot;,&quot;RightButtonPress&quot;,&quot;RightButtonRelease&quot;,&quot;KeyPress&quot;,&quot;KeyDown&quot;,&quot;KeyUp&quot;,&quot;StartMouseWheel&quot;,&quot;MouseWheel&quot;,&quot;EndMouseWheel&quot;,&quot;StartPinch&quot;,&quot;Pinch&quot;,&quot;EndPinch&quot;,&quot;StartPan&quot;,&quot;Pan&quot;,&quot;EndPan&quot;,&quot;StartRotate&quot;,&quot;Rotate&quot;,&quot;EndRotate&quot;,&quot;Button3D&quot;,&quot;Move3D&quot;,&quot;StartPointerLock&quot;,&quot;EndPointerLock&quot;,&quot;StartInteraction&quot;,&quot;Interaction&quot;,&quot;EndInteraction&quot;,&quot;AnimationFrameRateUpdate&quot;];function Hh(e){e.cancelable&amp;&amp;e.preventDefault()}function jh(e){const t=Object.create(null);return e.forEach((({pointerId:e,position:n})=&gt;{t[e]=n})),t}const Xh={renderWindow:null,interactorStyle:null,picker:null,pickingManager:null,initialized:!1,enabled:!1,enableRender:!0,currentRenderer:null,lightFollowCamera:!0,desiredUpdateRate:30,stillUpdateRate:2,container:null,recognizeGestures:!0,currentGesture:&quot;Start&quot;,animationRequest:null,lastFrameTime:.1,recentAnimationFrameRate:10,wheelTimeoutID:0,moveTimeoutID:0,lastGamepadValues:{},preventDefaultOnPointerDown:!1,preventDefaultOnPointerUp:!1,mouseScrollDebounceByPass:!1};function qh(e,t,n={}){Object.assign(t,Xh,n),sn.obj(e,t),t._animationExtendedEnd=0,sn.event(e,t,&quot;RenderEvent&quot;),Wh.forEach((n=&gt;sn.event(e,t,n))),sn.get(e,t,[&quot;initialized&quot;,&quot;interactorStyle&quot;,&quot;lastFrameTime&quot;,&quot;recentAnimationFrameRate&quot;,&quot;_view&quot;]),sn.setGet(e,t,[&quot;container&quot;,&quot;lightFollowCamera&quot;,&quot;enabled&quot;,&quot;enableRender&quot;,&quot;recognizeGestures&quot;,&quot;desiredUpdateRate&quot;,&quot;stillUpdateRate&quot;,&quot;picker&quot;,&quot;preventDefaultOnPointerDown&quot;,&quot;preventDefaultOnPointerUp&quot;,&quot;mouseScrollDebounceByPass&quot;]),sn.moveToProtected(e,t,[&quot;view&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkRenderWindowInteractor&quot;);const n={...e},r=new Set,o=new Map;let a=1,i=0;function s(n,r){t._forcedRenderer||(t.currentRenderer=e.findPokedRenderer(n,r))}e.start=()=&gt;{(t.initialized||(e.initialize(),t.initialized))&amp;&amp;e.startEventLoop()},e.setRenderWindow=e=&gt;{Gh(&quot;you want to call setView(view) instead of setRenderWindow on a vtk.js interactor&quot;)},e.setInteractorStyle=n=&gt;{t.interactorStyle!==n&amp;&amp;(null!=t.interactorStyle&amp;&amp;t.interactorStyle.setInteractor(null),t.interactorStyle=n,null!=t.interactorStyle&amp;&amp;t.interactorStyle.getInteractor()!==e&amp;&amp;t.interactorStyle.setInteractor(e))},e.initialize=()=&gt;{t.initialized=!0,e.enable(),e.render()},e.enable=()=&gt;e.setEnabled(!0),e.disable=()=&gt;e.setEnabled(!1),e.startEventLoop=()=&gt;kh(&quot;empty event loop&quot;),e.getCurrentRenderer=()=&gt;(t.currentRenderer||s(0,0),t.currentRenderer);const l=t._getScreenEventPositionFor||function(e){const n=t._view.getCanvas(),r=n.getBoundingClientRect(),a=n.width/r.width,i=n.height/r.height,l={x:a*(e.clientX-r.left),y:i*(r.height-e.clientY+r.top),z:0,movementX:a*e.movementX,movementY:i*e.movementY};return(o.size&lt;=1||!t.currentRenderer)&amp;&amp;s(l.x,l.y),l};function c(e){return{controlKey:e.ctrlKey,altKey:e.altKey,shiftKey:e.shiftKey}}function u(e){const t=c(e);return{key:e.key,keyCode:e.charCode,...t}}function d(e){return e.pointerType||&quot;&quot;}const p=()=&gt;{if(null===t.container)return;const{container:n}=t;n.addEventListener(&quot;contextmenu&quot;,Hh),n.addEventListener(&quot;wheel&quot;,e.handleWheel),n.addEventListener(&quot;DOMMouseScroll&quot;,e.handleWheel),n.addEventListener(&quot;pointerenter&quot;,e.handlePointerEnter),n.addEventListener(&quot;pointerleave&quot;,e.handlePointerLeave),n.addEventListener(&quot;pointermove&quot;,e.handlePointerMove,{passive:!1}),n.addEventListener(&quot;pointerdown&quot;,e.handlePointerDown,{passive:!1}),n.addEventListener(&quot;pointerup&quot;,e.handlePointerUp),n.addEventListener(&quot;pointercancel&quot;,e.handlePointerCancel),n.addEventListener(&quot;keypress&quot;,e.handleKeyPress),n.addEventListener(&quot;keydown&quot;,e.handleKeyDown),document.addEventListener(&quot;keyup&quot;,e.handleKeyUp),document.addEventListener(&quot;pointerlockchange&quot;,e.handlePointerLockChange),n.tabIndex=0,n.style.touchAction=&quot;none&quot;,n.style.userSelect=&quot;none&quot;,n.style.webkitTapHighlightColor=&quot;rgba(0,0,0,0)&quot;};e.bindEvents=e=&gt;{null!==e&amp;&amp;n.setContainer(e)&amp;&amp;p()};const f=()=&gt;{clearTimeout(t.moveTimeoutID),clearTimeout(t.wheelTimeoutID),t.moveTimeoutID=0,t.wheelTimeoutID=0,a=1;const{container:n}=t;n&amp;&amp;(n.removeEventListener(&quot;contextmenu&quot;,Hh),n.removeEventListener(&quot;wheel&quot;,e.handleWheel),n.removeEventListener(&quot;DOMMouseScroll&quot;,e.handleWheel),n.removeEventListener(&quot;pointerenter&quot;,e.handlePointerEnter),n.removeEventListener(&quot;pointerleave&quot;,e.handlePointerLeave),n.removeEventListener(&quot;pointermove&quot;,e.handlePointerMove,{passive:!1}),n.removeEventListener(&quot;pointerdown&quot;,e.handlePointerDown,{passive:!1}),n.removeEventListener(&quot;pointerup&quot;,e.handlePointerUp),n.removeEventListener(&quot;pointercancel&quot;,e.handlePointerCancel),n.removeEventListener(&quot;keypress&quot;,e.handleKeyPress),n.removeEventListener(&quot;keydown&quot;,e.handleKeyDown)),document.removeEventListener(&quot;keyup&quot;,e.handleKeyUp),document.removeEventListener(&quot;pointerlockchange&quot;,e.handlePointerLockChange),o.clear(),i=0};function g(t,n,r){n&amp;~r&amp;1&amp;&amp;e.leftButtonReleaseEvent(t),n&amp;~r&amp;4&amp;&amp;e.middleButtonReleaseEvent(t),n&amp;~r&amp;2&amp;&amp;e.rightButtonReleaseEvent(t),~n&amp;r&amp;1&amp;&amp;e.leftButtonPressEvent(t),~n&amp;r&amp;4&amp;&amp;e.middleButtonPressEvent(t),~n&amp;r&amp;2&amp;&amp;e.rightButtonPressEvent(t)}function m(){t._view&amp;&amp;t.enabled&amp;&amp;t.enableRender&amp;&amp;(t.inRender=!0,t._view.traverseAllPasses(),t.inRender=!1),e.invokeRenderEvent()}e.unbindEvents=()=&gt;{f(),n.setContainer(null)},e.handleKeyPress=t=&gt;{const n=u(t);e.keyPressEvent(n)},e.handleKeyDown=t=&gt;{const n=u(t);e.keyDownEvent(n)},e.handleKeyUp=t=&gt;{const n=u(t);e.keyUpEvent(n)},e.handlePointerEnter=t=&gt;{const n={...c(t),position:l(t),deviceType:d(t)};e.pointerEnterEvent(n),&quot;mouse&quot;===n.deviceType&amp;&amp;e.mouseEnterEvent(n)},e.handlePointerLeave=t=&gt;{const n={...c(t),position:l(t),deviceType:d(t)};e.pointerLeaveEvent(n),&quot;mouse&quot;===n.deviceType&amp;&amp;e.mouseLeaveEvent(n)},e.handlePointerDown=n=&gt;{if(!(n.button&gt;2||e.isPointerLocked()))switch(t.preventDefaultOnPointerDown&amp;&amp;Hh(n),n.target.hasPointerCapture(n.pointerId)&amp;&amp;n.target.releasePointerCapture(n.pointerId),t.container.setPointerCapture(n.pointerId),o.has(n.pointerId)&amp;&amp;kh(&quot;[RenderWindowInteractor] duplicate pointerId detected&quot;),o.set(n.pointerId,{pointerId:n.pointerId,position:l(n)}),n.pointerType){case&quot;pen&quot;:case&quot;touch&quot;:e.handleTouchStart(n);break;default:e.handleMouseDown(n),i=n.buttons}},e.handlePointerUp=n=&gt;{if(o.has(n.pointerId))switch(t.preventDefaultOnPointerUp&amp;&amp;Hh(n),o.delete(n.pointerId),t.container.releasePointerCapture(n.pointerId),n.pointerType){case&quot;pen&quot;:case&quot;touch&quot;:e.handleTouchEnd(n);break;default:{const t=[1,4,2][n.button]??0;g({...c(n),position:l(n),deviceType:d(n)},i&amp;~t,n.buttons&amp;~t),e.handleMouseUp(n),i=n.buttons;break}}},e.handlePointerCancel=t=&gt;{if(o.has(t.pointerId))switch(o.delete(t.pointerId),t.pointerType){case&quot;pen&quot;:case&quot;touch&quot;:e.handleTouchEnd(t);break;default:g({...c(t),position:l(t),deviceType:d(t)},i,0),i=0}},e.handlePointerMove=t=&gt;{switch(o.has(t.pointerId)&amp;&amp;(o.get(t.pointerId).position=l(t)),t.pointerType){case&quot;pen&quot;:case&quot;touch&quot;:e.handleTouchMove(t);break;default:{const n=t.buttons;n!==i&amp;&amp;(g({...c(t),position:l(t),deviceType:d(t)},i,n),i=n),e.handleMouseMove(t);break}}},e.handleMouseDown=t=&gt;{const n={...c(t),position:l(t),deviceType:d(t)};switch(t.button){case 0:e.leftButtonPressEvent(n);break;case 1:e.middleButtonPressEvent(n);break;case 2:e.rightButtonPressEvent(n);break;default:Gh(`Unknown mouse button pressed: ${t.button}`)}},e.requestPointerLock=()=&gt;{t.container&amp;&amp;t.container.requestPointerLock()},e.exitPointerLock=()=&gt;document.exitPointerLock?.(),e.isPointerLocked=()=&gt;!!t.container&amp;&amp;document.pointerLockElement===t.container,e.handlePointerLockChange=()=&gt;{e.isPointerLocked()?e.startPointerLockEvent():e.endPointerLockEvent()},e.requestAnimation=n=&gt;{void 0!==n?r.has(n)?kh(&quot;requester is already registered for animating&quot;):(r.add(n),t.animationRequest||1!==r.size||t.xrAnimation||(t._animationStartTime=Date.now(),t._animationFrameCount=0,t.animationRequest=requestAnimationFrame(e.handleAnimation),e.startAnimationEvent())):Gh(&quot;undefined requester, can not start animating&quot;)},e.extendAnimation=n=&gt;{const o=Date.now()+n;t._animationExtendedEnd=Math.max(t._animationExtendedEnd,o),t.animationRequest||0!==r.size||t.xrAnimation||(t._animationStartTime=Date.now(),t._animationFrameCount=0,t.animationRequest=requestAnimationFrame(e.handleAnimation),e.startAnimationEvent())},e.isAnimating=()=&gt;t.xrAnimation||null!==t.animationRequest,e.cancelAnimation=(n,o=!1)=&gt;{if(r.has(n))r.delete(n),t.animationRequest&amp;&amp;0===r.size&amp;&amp;Date.now()&gt;t._animationExtendedEnd&amp;&amp;(cancelAnimationFrame(t.animationRequest),t.animationRequest=null,e.endAnimationEvent(),e.render());else if(!o){const e=n&amp;&amp;n.getClassName?n.getClassName():n;kh(`${e} did not request an animation`)}},e.switchToXRAnimation=()=&gt;{t.animationRequest&amp;&amp;(cancelAnimationFrame(t.animationRequest),t.animationRequest=null),t.xrAnimation=!0},e.returnFromXRAnimation=()=&gt;{t.xrAnimation=!1,0!==r.size&amp;&amp;(t.recentAnimationFrameRate=10,t.animationRequest=requestAnimationFrame(e.handleAnimation))},e.updateXRGamepads=(n,r,o)=&gt;{n.inputSources.forEach((n=&gt;{const a=null==n.gripSpace?null:r.getPose(n.gripSpace,o),i=null==n.gripSpace?null:r.getPose(n.targetRaySpace,o),s=n.gamepad,l=n.handedness;if(s){s.index in t.lastGamepadValues||(t.lastGamepadValues[s.index]={left:{buttons:{}},right:{buttons:{}},none:{buttons:{}}});for(let r=0;r&lt;s.buttons.length;++r)r in t.lastGamepadValues[s.index][l].buttons||(t.lastGamepadValues[s.index][l].buttons[r]=!1),t.lastGamepadValues[s.index][l].buttons[r]!==s.buttons[r].pressed&amp;&amp;null!=a&amp;&amp;(e.button3DEvent({gamepad:s,position:a.transform.position,orientation:a.transform.orientation,targetPosition:i.transform.position,targetOrientation:i.transform.orientation,pressed:s.buttons[r].pressed,device:&quot;left&quot;===n.handedness?Fh.LeftController:Fh.RightController,input:zh[s.mapping]&amp;&amp;zh[s.mapping][r]?zh[s.mapping][r]:Nh.Trigger}),t.lastGamepadValues[s.index][l].buttons[r]=s.buttons[r].pressed),t.lastGamepadValues[s.index][l].buttons[r]&amp;&amp;null!=a&amp;&amp;e.move3DEvent({gamepad:s,position:a.transform.position,orientation:a.transform.orientation,targetPosition:i.transform.position,targetOrientation:i.transform.orientation,device:&quot;left&quot;===n.handedness?Fh.LeftController:Fh.RightController})}}))},e.handleMouseMove=n=&gt;{const r={...c(n),position:l(n),deviceType:d(n)};0===t.moveTimeoutID?e.startMouseMoveEvent(r):(e.mouseMoveEvent(r),clearTimeout(t.moveTimeoutID)),t.moveTimeoutID=setTimeout((()=&gt;{e.endMouseMoveEvent(),t.moveTimeoutID=0}),200)},e.handleAnimation=()=&gt;{const n=Date.now();t._animationFrameCount++,n-t._animationStartTime&gt;1e3&amp;&amp;t._animationFrameCount&gt;1&amp;&amp;(t.recentAnimationFrameRate=1e3*(t._animationFrameCount-1)/(n-t._animationStartTime),t.lastFrameTime=1/t.recentAnimationFrameRate,e.animationFrameRateUpdateEvent(),t._animationStartTime=n,t._animationFrameCount=1),e.animationEvent(),m(),r.size&gt;0||Date.now()&lt;t._animationExtendedEnd?t.animationRequest=requestAnimationFrame(e.handleAnimation):(cancelAnimationFrame(t.animationRequest),t.animationRequest=null,e.endAnimationEvent(),e.render())},e.handleWheel=n=&gt;{Hh(n);const r={...Uh(n),...c(n),position:l(n),deviceType:d(n)};0===t.wheelTimeoutID&amp;&amp;(a=Math.abs(r.spinY)&gt;=.3?Math.abs(r.spinY):1),r.spinY/=a,0===t.wheelTimeoutID?(e.startMouseWheelEvent(r),e.mouseWheelEvent(r)):(e.mouseWheelEvent(r),clearTimeout(t.wheelTimeoutID)),t.mouseScrollDebounceByPass?(e.extendAnimation(600),e.endMouseWheelEvent(),t.wheelTimeoutID=0):t.wheelTimeoutID=setTimeout((()=&gt;{e.extendAnimation(600),e.endMouseWheelEvent(),t.wheelTimeoutID=0}),200)},e.handleMouseUp=t=&gt;{const n={...c(t),position:l(t),deviceType:d(t)};switch(t.button){case 0:e.leftButtonReleaseEvent(n);break;case 1:e.middleButtonReleaseEvent(n);break;case 2:e.rightButtonReleaseEvent(n);break;default:Gh(`Unknown mouse button released: ${t.button}`)}},e.handleTouchStart=n=&gt;{const r=[...o.values()];if(t.recognizeGestures&amp;&amp;r.length&gt;1){const t=jh(o);if(2===r.length){const t={...c(Kh),position:r[0].position,deviceType:d(n)};e.leftButtonReleaseEvent(t)}e.recognizeGesture(&quot;TouchStart&quot;,t)}else if(1===r.length){const t={...c(Kh),position:l(n),deviceType:d(n)};e.leftButtonPressEvent(t)}},e.handleTouchMove=n=&gt;{const r=[...o.values()];if(t.recognizeGestures&amp;&amp;r.length&gt;1){const t=jh(o);e.recognizeGesture(&quot;TouchMove&quot;,t)}else if(1===r.length){const t={...c(Kh),position:r[0].position,deviceType:d(n)};e.mouseMoveEvent(t)}},e.handleTouchEnd=n=&gt;{const r=[...o.values()];if(t.recognizeGestures)if(0===r.length){const t={...c(Kh),position:l(n),deviceType:d(n)};e.leftButtonReleaseEvent(t)}else if(1===r.length){const t=jh(o);e.recognizeGesture(&quot;TouchEnd&quot;,t);const a={...c(Kh),position:r[0].position,deviceType:d(n)};e.leftButtonPressEvent(a)}else{const t=jh(o);e.recognizeGesture(&quot;TouchMove&quot;,t)}else if(1===r.length){const t={...c(Kh),position:r[0].position,deviceType:d(n)};e.leftButtonReleaseEvent(t)}},e.setView=n=&gt;{t._view!==n&amp;&amp;(t._view=n,t._view.getRenderable().setInteractor(e),e.modified())},e.getFirstRenderer=()=&gt;t._view?.getRenderable()?.getRenderersByReference()?.[0],e.findPokedRenderer=(e=0,n=0)=&gt;{if(!t._view)return null;const r=t._view?.getRenderable()?.getRenderers();if(!r||0===r.length)return null;r.sort(((e,t)=&gt;e.getLayer()-t.getLayer()));let o=null,a=null,i=null,s=r.length;for(;s--;){const l=r[s];if(t._view.isInViewport(e,n,l)&amp;&amp;l.getInteractive()){i=l;break}null===o&amp;&amp;l.getInteractive()&amp;&amp;(o=l),null===a&amp;&amp;t._view.isInViewport(e,n,l)&amp;&amp;(a=l)}return null===i&amp;&amp;(i=o),null===i&amp;&amp;(i=a),null==i&amp;&amp;(i=r[0]),i},e.render=()=&gt;{e.isAnimating()||t.inRender||m()},Wh.forEach((n=&gt;{const r=n.charAt(0).toLowerCase()+n.slice(1);e[`${r}Event`]=r=&gt;{if(!t.enabled)return;if(!e.getCurrentRenderer())return void _h(&quot;\\n          Can not forward events without a current renderer on the interactor.\\n        &quot;);const o={type:n,pokedRenderer:t.currentRenderer,firstRenderer:e.getFirstRenderer(),...r};e[`invoke${n}`](o)}})),e.recognizeGesture=(n,r)=&gt;{if(Object.keys(r).length&gt;2)return;if(t.startingEventPositions||(t.startingEventPositions={}),&quot;TouchStart&quot;===n)return Object.keys(r).forEach((e=&gt;{t.startingEventPositions[e]=r[e]})),void(t.currentGesture=&quot;Start&quot;);if(&quot;TouchEnd&quot;===n)return&quot;Pinch&quot;===t.currentGesture&amp;&amp;(e.render(),e.endPinchEvent()),&quot;Rotate&quot;===t.currentGesture&amp;&amp;(e.render(),e.endRotateEvent()),&quot;Pan&quot;===t.currentGesture&amp;&amp;(e.render(),e.endPanEvent()),t.currentGesture=&quot;Start&quot;,void(t.startingEventPositions={});let o=0;const a=[],i=[];Object.keys(r).forEach((e=&gt;{a[o]=r[e],i[o]=t.startingEventPositions[e],o++}));const s=Math.sqrt((i[0].x-i[1].x)*(i[0].x-i[1].x)+(i[0].y-i[1].y)*(i[0].y-i[1].y)),l=Math.sqrt((a[0].x-a[1].x)*(a[0].x-a[1].x)+(a[0].y-a[1].y)*(a[0].y-a[1].y));let c=Io(Math.atan2(i[1].y-i[0].y,i[1].x-i[0].x)),u=Io(Math.atan2(a[1].y-a[0].y,a[1].x-a[0].x)),d=u-c;u=u+180&gt;=360?u-180:u+180,c=c+180&gt;=360?c-180:c+180,Math.abs(u-c)&lt;Math.abs(d)&amp;&amp;(d=u-c);const p=[];if(p[0]=(a[0].x-i[0].x+a[1].x-i[1].x)/2,p[1]=(a[0].y-i[0].y+a[1].y-i[1].y)/2,&quot;TouchMove&quot;===n)if(&quot;Start&quot;===t.currentGesture){let n=.01*Math.sqrt(t.container.clientWidth*t.container.clientWidth+t.container.clientHeight*t.container.clientHeight);n&lt;15&amp;&amp;(n=15);const o=Math.abs(l-s),a=3.1415926*l*Math.abs(d)/360,i=Math.sqrt(p[0]*p[0]+p[1]*p[1]);if(o&gt;n&amp;&amp;o&gt;a&amp;&amp;o&gt;i){t.currentGesture=&quot;Pinch&quot;;const n={scale:1,touches:r};e.startPinchEvent(n)}else if(a&gt;n&amp;&amp;a&gt;i){t.currentGesture=&quot;Rotate&quot;;const n={rotation:0,touches:r};e.startRotateEvent(n)}else if(i&gt;n){t.currentGesture=&quot;Pan&quot;;const n={translation:[0,0],touches:r};e.startPanEvent(n)}}else{if(&quot;Rotate&quot;===t.currentGesture){const t={rotation:d,touches:r};e.rotateEvent(t)}if(&quot;Pinch&quot;===t.currentGesture){const t={scale:l/s,touches:r};e.pinchEvent(t)}if(&quot;Pan&quot;===t.currentGesture){const t={translation:p,touches:r};e.panEvent(t)}}},e.handleVisibilityChange=()=&gt;{t._animationStartTime=Date.now(),t._animationFrameCount=0},e.setCurrentRenderer=e=&gt;{t._forcedRenderer=!!e,t.currentRenderer=e},e.setContainer=e=&gt;{f();const t=n.setContainer(e??null);return t&amp;&amp;p(),t},e.delete=()=&gt;{for(;r.size;)e.cancelAnimation(r.values().next().value);void 0!==document.hidden&amp;&amp;document.removeEventListener(&quot;visibilitychange&quot;,e.handleVisibilityChange),t.container&amp;&amp;e.setContainer(null),n.delete()},void 0!==document.hidden&amp;&amp;document.addEventListener(&quot;visibilitychange&quot;,e.handleVisibilityChange,!1)}(e,t)}var Yh={newInstance:sn.newInstance(qh,&quot;vtkRenderWindowInteractor&quot;),extend:qh,handledEvents:Wh,...Bh};const{vtkErrorMacro:Jh,VOID:Zh}=sn;const Qh={computeWorldToDisplay:function(e,t,n,r){return e.getRenderWindow().getViews()[0].worldToDisplay(t,n,r,e)},computeDisplayToWorld:function(e,t,n,r){return e.getRenderWindow().getViews()[0].displayToWorld(t,n,r,e)}};const $h={enabled:!0,priority:0,processEvents:!0,subscribedEvents:[]};function ev(e,t,n={}){Object.assign(t,$h,n),sn.obj(e,t),sn.event(e,t,&quot;InteractionEvent&quot;),sn.event(e,t,&quot;StartInteractionEvent&quot;),sn.event(e,t,&quot;EndInteractionEvent&quot;),sn.get(e,t,[&quot;_interactor&quot;,&quot;enabled&quot;]),sn.setGet(e,t,[&quot;priority&quot;,&quot;processEvents&quot;]),sn.moveToProtected(e,t,[&quot;interactor&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkInteractorObserver&quot;);const n={...e};function r(){for(;t.subscribedEvents.length;)t.subscribedEvents.pop().unsubscribe()}function o(){Yh.handledEvents.forEach((n=&gt;{e[`handle${n}`]&amp;&amp;t.subscribedEvents.push(t._interactor[`on${n}`]((r=&gt;t.processEvents?e[`handle${n}`](r):Zh),t.priority))}))}e.setInteractor=n=&gt;{n!==t._interactor&amp;&amp;(r(),t._interactor=n,n&amp;&amp;t.enabled&amp;&amp;o(),e.modified())},e.setEnabled=n=&gt;{n!==t.enabled&amp;&amp;(r(),n&amp;&amp;(t._interactor?o():Jh(&quot;\\n          The interactor must be set before subscribing to events\\n        &quot;)),t.enabled=n,e.modified())},e.computeDisplayToWorld=(e,n,r,o)=&gt;e?t._interactor.getView().displayToWorld(n,r,o,e):null,e.computeWorldToDisplay=(e,n,r,o)=&gt;e?t._interactor.getView().worldToDisplay(n,r,o,e):null,e.setPriority=e=&gt;{n.setPriority(e)&amp;&amp;t._interactor&amp;&amp;(r(),o())}}(e,t)}var tv={newInstance:sn.newInstance(ev,&quot;vtkInteractorObserver&quot;),extend:ev,...Qh};var nv={States:{IS_START:0,IS_NONE:0,IS_ROTATE:1,IS_PAN:2,IS_SPIN:3,IS_DOLLY:4,IS_CAMERA_POSE:11,IS_WINDOW_LEVEL:1024,IS_SLICE:1025}};const{States:rv}=nv,ov={Rotate:rv.IS_ROTATE,Pan:rv.IS_PAN,Spin:rv.IS_SPIN,Dolly:rv.IS_DOLLY,CameraPose:rv.IS_CAMERA_POSE,WindowLevel:rv.IS_WINDOW_LEVEL,Slice:rv.IS_SLICE};const av={state:rv.IS_NONE,handleObservers:1,autoAdjustCameraClippingRange:1};function iv(e,t,n={}){Object.assign(t,av,n),tv.extend(e,t,n),sn.setGet(e,t,[&quot;focusedRenderer&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkInteractorStyle&quot;),Object.keys(ov).forEach((n=&gt;{sn.event(e,t,`Start${n}Event`),e[`start${n}`]=()=&gt;{t.state===rv.IS_NONE&amp;&amp;(t.state=ov[n],t._interactor.requestAnimation(e),e.invokeStartInteractionEvent({type:&quot;StartInteractionEvent&quot;}),e[`invokeStart${n}Event`]({type:`Start${n}Event`}))},sn.event(e,t,`End${n}Event`),e[`end${n}`]=()=&gt;{t.state===ov[n]&amp;&amp;(t.state=rv.IS_NONE,t._interactor.cancelAnimation(e),e.invokeEndInteractionEvent({type:&quot;EndInteractionEvent&quot;}),e[`invokeEnd${n}Event`]({type:`End${n}Event`}),t._interactor.render())}})),t.getRenderer=e=&gt;t.focusedRenderer||e.pokedRenderer,e.handleKeyPress=e=&gt;{const n=t._interactor;let r=null;switch(e.key){case&quot;r&quot;:case&quot;R&quot;:t.getRenderer(e).resetCamera(),n.render();break;case&quot;w&quot;:case&quot;W&quot;:r=t.getRenderer(e).getActors(),r.forEach((e=&gt;{const t=e.getProperty();t.setRepresentationToWireframe&amp;&amp;t.setRepresentationToWireframe()})),n.render();break;case&quot;s&quot;:case&quot;S&quot;:r=t.getRenderer(e).getActors(),r.forEach((e=&gt;{const t=e.getProperty();t.setRepresentationToSurface&amp;&amp;t.setRepresentationToSurface()})),n.render();break;case&quot;v&quot;:case&quot;V&quot;:r=t.getRenderer(e).getActors(),r.forEach((e=&gt;{const t=e.getProperty();t.setRepresentationToPoints&amp;&amp;t.setRepresentationToPoints()})),n.render()}}}(e,t)}var sv={newInstance:sn.newInstance(iv,&quot;vtkInteractorStyle&quot;),extend:iv,...nv};const{States:lv}=nv;const cv={motionFactor:10,zoomFactor:10};function uv(e,t,n={}){Object.assign(t,cv,n),sv.extend(e,t,n),sn.setGet(e,t,[&quot;motionFactor&quot;,&quot;zoomFactor&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkInteractorStyleTrackballCamera&quot;),e.handleMouseMove=n=&gt;{const r=n.position,o=t.getRenderer(n);switch(t.state){case lv.IS_ROTATE:e.handleMouseRotate(o,r),e.invokeInteractionEvent({type:&quot;InteractionEvent&quot;});break;case lv.IS_PAN:e.handleMousePan(o,r),e.invokeInteractionEvent({type:&quot;InteractionEvent&quot;});break;case lv.IS_DOLLY:e.handleMouseDolly(o,r),e.invokeInteractionEvent({type:&quot;InteractionEvent&quot;});break;case lv.IS_SPIN:e.handleMouseSpin(o,r),e.invokeInteractionEvent({type:&quot;InteractionEvent&quot;})}t.previousPosition=r},e.handleButton3D=n=&gt;{!n||!n.pressed||n.device!==Vh.RightController||n.input!==Lh.Trigger&amp;&amp;n.input!==Lh.TrackPad?!n||n.pressed||n.device!==Vh.RightController||n.input!==Lh.Trigger&amp;&amp;n.input!==Lh.TrackPad||t.state!==lv.IS_CAMERA_POSE||e.endCameraPose():e.startCameraPose()},e.handleMove3D=n=&gt;{t.state===lv.IS_CAMERA_POSE&amp;&amp;e.updateCameraPose(n)},e.updateCameraPose=e=&gt;{const n=t.getRenderer(e).getActiveCamera(),r=n.getPhysicalTranslation(),o=.025*n.getPhysicalScale(),a=n.physicalOrientationToWorldDirection([e.orientation.x,e.orientation.y,e.orientation.z,e.orientation.w]);n.setPhysicalTranslation(r[0]+a[0]*o,r[1]+a[1]*o,r[2]+a[2]*o)},e.handleLeftButtonPress=n=&gt;{const r=n.position;t.previousPosition=r,n.shiftKey?n.controlKey||n.altKey?e.startDolly():e.startPan():n.controlKey||n.altKey?e.startSpin():e.startRotate()},e.handleLeftButtonRelease=()=&gt;{switch(t.state){case lv.IS_DOLLY:e.endDolly();break;case lv.IS_PAN:e.endPan();break;case lv.IS_SPIN:e.endSpin();break;case lv.IS_ROTATE:e.endRotate()}},e.handleStartMouseWheel=()=&gt;{e.startDolly()},e.handleEndMouseWheel=()=&gt;{e.endDolly()},e.handleStartPinch=n=&gt;{t.previousScale=n.scale,e.startDolly()},e.handleEndPinch=()=&gt;{e.endDolly()},e.handleStartRotate=n=&gt;{t.previousRotation=n.rotation,e.startRotate()},e.handleEndRotate=()=&gt;{e.endRotate()},e.handleStartPan=n=&gt;{t.previousTranslation=n.translation,e.startPan()},e.handleEndPan=()=&gt;{e.endPan()},e.handlePinch=n=&gt;{e.dollyByFactor(t.getRenderer(n),n.scale/t.previousScale),t.previousScale=n.scale},e.handlePan=n=&gt;{const r=t.getRenderer(n).getActiveCamera();let o=r.getFocalPoint();o=e.computeWorldToDisplay(t.getRenderer(n),o[0],o[1],o[2]);const a=o[2],i=n.translation,s=t.previousTranslation,l=e.computeDisplayToWorld(t.getRenderer(n),o[0]+i[0]-s[0],o[1]+i[1]-s[1],a),c=e.computeDisplayToWorld(t.getRenderer(n),o[0],o[1],a),u=[];u[0]=c[0]-l[0],u[1]=c[1]-l[1],u[2]=c[2]-l[2],o=r.getFocalPoint();const d=r.getPosition();r.setFocalPoint(u[0]+o[0],u[1]+o[1],u[2]+o[2]),r.setPosition(u[0]+d[0],u[1]+d[1],u[2]+d[2]),t._interactor.getLightFollowCamera()&amp;&amp;t.getRenderer(n).updateLightsGeometryToFollowCamera(),r.orthogonalizeViewUp(),t.previousTranslation=n.translation},e.handleRotate=e=&gt;{const n=t.getRenderer(e).getActiveCamera();n.roll(e.rotation-t.previousRotation),n.orthogonalizeViewUp(),t.previousRotation=e.rotation},e.handleMouseRotate=(e,n)=&gt;{if(!t.previousPosition)return;const r=t._interactor,o=n.x-t.previousPosition.x,a=n.y-t.previousPosition.y,i=r.getView().getViewportSize(e);let s=-.1,l=-.1;i[0]&amp;&amp;i[1]&amp;&amp;(s=-20/i[1],l=-20/i[0]);const c=o*l*t.motionFactor,u=a*s*t.motionFactor,d=e.getActiveCamera();Number.isNaN(c)||Number.isNaN(u)||(d.azimuth(c),d.elevation(u),d.orthogonalizeViewUp()),t.autoAdjustCameraClippingRange&amp;&amp;e.resetCameraClippingRange(),r.getLightFollowCamera()&amp;&amp;e.updateLightsGeometryToFollowCamera()},e.handleMouseSpin=(e,n)=&gt;{if(!t.previousPosition)return;const r=t._interactor,o=e.getActiveCamera(),a=r.getView().getViewportCenter(e),i=Io(Math.atan2(t.previousPosition.y-a[1],t.previousPosition.x-a[0])),s=Io(Math.atan2(n.y-a[1],n.x-a[0]))-i;Number.isNaN(s)||(o.roll(s),o.orthogonalizeViewUp())},e.handleMousePan=(n,r)=&gt;{if(!t.previousPosition)return;const o=n.getActiveCamera();let a=o.getFocalPoint();a=e.computeWorldToDisplay(n,a[0],a[1],a[2]);const i=a[2],s=e.computeDisplayToWorld(n,r.x,r.y,i),l=e.computeDisplayToWorld(n,t.previousPosition.x,t.previousPosition.y,i),c=[];c[0]=l[0]-s[0],c[1]=l[1]-s[1],c[2]=l[2]-s[2],a=o.getFocalPoint();const u=o.getPosition();o.setFocalPoint(c[0]+a[0],c[1]+a[1],c[2]+a[2]),o.setPosition(c[0]+u[0],c[1]+u[1],c[2]+u[2]),t._interactor.getLightFollowCamera()&amp;&amp;n.updateLightsGeometryToFollowCamera()},e.handleMouseDolly=(n,r)=&gt;{if(!t.previousPosition)return;const o=r.y-t.previousPosition.y,a=t._interactor.getView().getViewportCenter(n),i=t.motionFactor*o/a[1];e.dollyByFactor(n,1.1**i)},e.handleMouseWheel=n=&gt;{const r=1-n.spinY/t.zoomFactor;e.dollyByFactor(t.getRenderer(n),r)},e.dollyByFactor=(e,n)=&gt;{if(Number.isNaN(n))return;const r=e.getActiveCamera();r.getParallelProjection()?r.setParallelScale(r.getParallelScale()/n):(r.dolly(n),t.autoAdjustCameraClippingRange&amp;&amp;e.resetCameraClippingRange()),t._interactor.getLightFollowCamera()&amp;&amp;e.updateLightsGeometryToFollowCamera()}}(e,t)}var dv={newInstance:sn.newInstance(uv,&quot;vtkInteractorStyleTrackballCamera&quot;),extend:uv};function pv(e){return e}function fv(e){return null===e||&quot;null&quot;===e?null:&quot;true&quot;===e||&quot;false&quot;!==e&amp;&amp;(void 0!==e&amp;&amp;&quot;undefined&quot;!==e?&quot;[&quot;===e[0]&amp;&amp;&quot;]&quot;===e[e.length-1]?e.substring(1,e.length-1).split(&quot;,&quot;).map((e=&gt;fv(e.trim()))):&quot;&quot;===e||Number.isNaN(Number(e))?e:Number(e):void 0)}var gv={toNativeType:fv,extractURLParameters:function(e=!0,t=window.location.search){const n={},r=e?fv:pv;return new URLSearchParams(t).forEach(((e,t)=&gt;{t&amp;&amp;(n[t]=!e||r(e))})),n}};const mv={delegates:[],currentOperation:null,preDelegateOperations:[],postDelegateOperations:[],currentParent:null};function hv(e,t,n={}){Object.assign(t,mv,n),sn.obj(e,t),sn.get(e,t,[&quot;currentOperation&quot;]),sn.setGet(e,t,[&quot;delegates&quot;,&quot;_currentParent&quot;,&quot;preDelegateOperations&quot;,&quot;postDelegateOperations&quot;]),sn.moveToProtected(e,t,[&quot;currentParent&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkRenderPass&quot;),e.getOperation=()=&gt;t.currentOperation,e.setCurrentOperation=e=&gt;{t.currentOperation=e,t.currentTraverseOperation=`traverse${sn.capitalize(t.currentOperation)}`},e.getTraverseOperation=()=&gt;t.currentTraverseOperation,e.traverse=(n,r=null)=&gt;{t.deleted||(t._currentParent=r,t.preDelegateOperations.forEach((t=&gt;{e.setCurrentOperation(t),n.traverse(e)})),t.delegates.forEach((t=&gt;{t.traverse(n,e)})),t.postDelegateOperations.forEach((t=&gt;{e.setCurrentOperation(t),n.traverse(e)})))}}(e,t)}var vv={newInstance:sn.newInstance(hv,&quot;vtkRenderPass&quot;),extend:hv};const{Representation:Tv}=us,{vtkErrorMacro:xv}=sn;function yv(e){const t=vd.substitute(e.Fragment,&quot;//VTK::RenderPassFragmentShader::Impl&quot;,&quot;\\n      float weight = gl_FragData[0].a * pow(max(1.1 - gl_FragCoord.z, 0.0), 2.0);\\n      gl_FragData[0] = vec4(gl_FragData[0].rgb*weight, gl_FragData[0].a);\\n      gl_FragData[1].r = weight;\\n    &quot;,!1);e.Fragment=t.result}const bv={framebuffer:null,copyShader:null,tris:null};function Av(e,t,n={}){Object.assign(t,bv,n),vv.extend(e,t,n),t.VBOBuildTime={},sn.obj(t.VBOBuildTime,{mtime:0}),t.tris=Sd.newInstance(),sn.get(e,t,[&quot;framebuffer&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLOrderIndependentTranslucentPass&quot;),e.createVertexBuffer=()=&gt;{const e=new Float32Array([-1,-1,-1,1,-1,-1,-1,1,-1,1,1,-1]),n=new Float32Array([0,0,1,0,0,1,1,1]),r=new Uint16Array([4,0,1,3,2]),o=Is.newInstance({numberOfComponents:3,values:e});o.setName(&quot;points&quot;);const a=Is.newInstance({numberOfComponents:2,values:n});a.setName(&quot;tcoords&quot;);const i=Is.newInstance({numberOfComponents:1,values:r});t.tris.getCABO().createVBO(i,&quot;polys&quot;,Tv.SURFACE,{points:o,tcoords:a,cellOffset:0}),t.VBOBuildTime.modified()},e.createFramebuffer=e=&gt;{const n=e.getSize(),r=e.getContext();t.framebuffer=Gp.newInstance(),t.framebuffer.setOpenGLRenderWindow(e),t.framebuffer.create(...n),t.framebuffer.saveCurrentBindingsAndBuffers(),t.framebuffer.bind(),t.translucentRGBATexture=Hd.newInstance(),t.translucentRGBATexture.setInternalFormat(r.RGBA16F),t.translucentRGBATexture.setFormat(r.RGBA),t.translucentRGBATexture.setOpenGLDataType(r.HALF_FLOAT),t.translucentRGBATexture.setOpenGLRenderWindow(e),t.translucentRGBATexture.create2DFromRaw({width:n[0],height:n[1],numComps:4,dataType:&quot;Float32Array&quot;,data:null}),t.translucentRTexture=Hd.newInstance(),t.translucentRTexture.setInternalFormat(r.R16F),t.translucentRTexture.setFormat(r.RED),t.translucentRTexture.setOpenGLDataType(r.HALF_FLOAT),t.translucentRTexture.setOpenGLRenderWindow(e),t.translucentRTexture.create2DFromRaw({width:n[0],height:n[1],numComps:1,dataType:&quot;Float32Array&quot;,data:null}),t.translucentZTexture=Hd.newInstance(),t.translucentZTexture.setOpenGLRenderWindow(e),t.translucentZTexture.createDepthFromRaw({width:n[0],height:n[1],dataType:&quot;Float32Array&quot;,data:null}),t.framebuffer.setColorBuffer(t.translucentRGBATexture,0),t.framebuffer.setColorBuffer(t.translucentRTexture,1),t.framebuffer.setDepthBuffer(t.translucentZTexture)},e.createCopyShader=e=&gt;{t.copyShader=e.getShaderCache().readyShaderProgramArray([&quot;//VTK::System::Dec&quot;,&quot;attribute vec4 vertexDC;&quot;,&quot;attribute vec2 tcoordTC;&quot;,&quot;varying vec2 tcoord;&quot;,&quot;void main() { tcoord = tcoordTC; gl_Position = vertexDC; }&quot;].join(&quot;\\n&quot;),&quot;//VTK::System::Dec\\n\\nin vec2 tcoord;\\n\\nuniform sampler2D translucentRTexture;\\nuniform sampler2D translucentRGBATexture;\\n\\n// the output of this shader\\n//VTK::Output::Dec\\n\\nvoid main()\\n{\\n  vec4 t1Color = texture(translucentRGBATexture, tcoord);\\n  float t2Color = texture(translucentRTexture, tcoord).r;\\n  gl_FragData[0] = vec4(t1Color.rgb/max(t2Color,0.01), 1.0 - t1Color.a);\\n}\\n&quot;,&quot;&quot;)},e.createVBO=n=&gt;{const r=n.getContext();t.tris.setOpenGLRenderWindow(n),e.createVertexBuffer();const o=t.copyShader;t.tris.getCABO().bind(),t.copyVAO.addAttributeArray(o,t.tris.getCABO(),&quot;vertexDC&quot;,t.tris.getCABO().getVertexOffset(),t.tris.getCABO().getStride(),r.FLOAT,3,r.FALSE)||xv(&quot;Error setting vertexDC in copy shader VAO.&quot;),t.copyVAO.addAttributeArray(o,t.tris.getCABO(),&quot;tcoordTC&quot;,t.tris.getCABO().getTCoordOffset(),t.tris.getCABO().getStride(),r.FLOAT,2,r.FALSE)||xv(&quot;Error setting vertexDC in copy shader VAO.&quot;)},e.traverse=(n,r,o)=&gt;{if(t.deleted)return;const a=n.getSize(),i=n.getContext();if(t._supported=!1,r.getSelector()||!i||!n.getWebgl2()||!i.getExtension(&quot;EXT_color_buffer_half_float&quot;)&amp;&amp;!i.getExtension(&quot;EXT_color_buffer_float&quot;))return e.setCurrentOperation(&quot;translucentPass&quot;),void r.traverse(e);if(t._supported=!0,null===t.framebuffer)e.createFramebuffer(n);else{const r=t.framebuffer.getSize();null===r||r[0]!==a[0]||r[1]!==a[1]?(t.framebuffer.releaseGraphicsResources(),t.translucentRGBATexture.releaseGraphicsResources(n),t.translucentRTexture.releaseGraphicsResources(n),t.translucentZTexture.releaseGraphicsResources(n),e.createFramebuffer(n)):(t.framebuffer.saveCurrentBindingsAndBuffers(),t.framebuffer.bind())}i.drawBuffers([i.COLOR_ATTACHMENT0]),i.clearBufferfv(i.COLOR,0,[0,0,0,0]),i.clearBufferfv(i.DEPTH,0,[1]),i.colorMask(!1,!1,!1,!1),o.getOpaqueActorCount()&gt;0&amp;&amp;(o.setCurrentOperation(&quot;opaqueZBufferPass&quot;),r.traverse(o)),i.colorMask(!0,!0,!0,!0),i.drawBuffers([i.COLOR_ATTACHMENT0,i.COLOR_ATTACHMENT1]),i.viewport(0,0,a[0],a[1]),i.scissor(0,0,a[0],a[1]),i.clearBufferfv(i.COLOR,0,[0,0,0,1]),i.clearBufferfv(i.COLOR,1,[0,0,0,0]),i.enable(i.DEPTH_TEST),i.enable(i.BLEND),i.blendFuncSeparate(i.ONE,i.ONE,i.ZERO,i.ONE_MINUS_SRC_ALPHA),e.setCurrentOperation(&quot;translucentPass&quot;),r.traverse(e),i.drawBuffers([i.NONE]),t.framebuffer.restorePreviousBindingsAndBuffers(),null===t.copyShader?e.createCopyShader(n):n.getShaderCache().readyShaderProgram(t.copyShader),t.copyVAO||(t.copyVAO=yd.newInstance(),t.copyVAO.setOpenGLRenderWindow(n)),t.copyVAO.bind(),t.VBOBuildTime.getMTime()&lt;e.getMTime()&amp;&amp;e.createVBO(n),i.blendFuncSeparate(i.SRC_ALPHA,i.ONE_MINUS_SRC_ALPHA,i.ONE,i.ONE_MINUS_SRC_ALPHA),i.depthMask(!1),i.depthFunc(i.ALWAYS),i.viewport(0,0,a[0],a[1]),i.scissor(0,0,a[0],a[1]),t.translucentRGBATexture.activate(),t.copyShader.setUniformi(&quot;translucentRGBATexture&quot;,t.translucentRGBATexture.getTextureUnit()),t.translucentRTexture.activate(),t.copyShader.setUniformi(&quot;translucentRTexture&quot;,t.translucentRTexture.getTextureUnit()),i.drawArrays(i.TRIANGLES,0,t.tris.getCABO().getElementCount()),i.depthMask(!0),i.depthFunc(i.LEQUAL),t.translucentRGBATexture.deactivate(),t.translucentRTexture.deactivate();const s=r.getTiledSizeAndOrigin();i.scissor(s.lowerLeftU,s.lowerLeftV,s.usize,s.vsize),i.viewport(s.lowerLeftU,s.lowerLeftV,s.usize,s.vsize)},e.getShaderReplacement=()=&gt;t._supported?yv:null,e.releaseGraphicsResources=n=&gt;{t.framebuffer&amp;&amp;(t.framebuffer.releaseGraphicsResources(n),t.framebuffer=null),t.translucentRGBATexture&amp;&amp;(t.translucentRGBATexture.releaseGraphicsResources(n),t.translucentRGBATexture=null),t.translucentRTexture&amp;&amp;(t.translucentRTexture.releaseGraphicsResources(n),t.translucentRTexture=null),t.translucentZTexture&amp;&amp;(t.translucentZTexture.releaseGraphicsResources(n),t.translucentZTexture=null),t.copyVAO&amp;&amp;(t.copyVAO.releaseGraphicsResources(n),t.copyVAO=null),t.copyShader&amp;&amp;(t.copyShader.releaseGraphicsResources(n),t.copyShader=null),t.tris&amp;&amp;(t.tris.releaseGraphicsResources(n),t.tris=null),e.modified()}}(e,t)}var Cv={newInstance:sn.newInstance(Av,&quot;vtkOpenGLOrderIndependentTranslucentPass&quot;),extend:Av};const Sv={opaqueActorCount:0,translucentActorCount:0,volumeCount:0,overlayActorCount:0,framebuffer:null,depthRequested:!1};function Pv(e,t,n={}){Object.assign(t,Sv,n),vv.extend(e,t,n),sn.get(e,t,[&quot;framebuffer&quot;,&quot;opaqueActorCount&quot;,&quot;translucentActorCount&quot;,&quot;volumeCount&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkForwardPass&quot;),e.traverse=(n,r=null)=&gt;{if(t.deleted)return;t._currentParent=r,e.setCurrentOperation(&quot;buildPass&quot;),n.traverse(e);const o=n.getRenderable().getNumberOfLayers(),a=n.getRenderable().getRenderersByReference();for(let r=0;r&lt;o;r++)for(let o=0;o&lt;a.length;o++){const i=a[o],s=n.getViewNodeFor(i);if(i.getDraw()&amp;&amp;i.getLayer()===r){if(t.opaqueActorCount=0,t.translucentActorCount=0,t.volumeCount=0,t.overlayActorCount=0,e.setCurrentOperation(&quot;queryPass&quot;),s.traverse(e),(t.opaqueActorCount&gt;0||t.translucentActorCount&gt;0)&amp;&amp;t.volumeCount&gt;0||t.depthRequested){const r=n.getFramebufferSize();null===t.framebuffer&amp;&amp;(t.framebuffer=Gp.newInstance()),t.framebuffer.setOpenGLRenderWindow(n),t.framebuffer.saveCurrentBindingsAndBuffers();const o=t.framebuffer.getSize();null!==o&amp;&amp;o[0]===r[0]&amp;&amp;o[1]===r[1]||(t.framebuffer.create(r[0],r[1]),t.framebuffer.populateFramebuffer()),t.framebuffer.bind(),e.setCurrentOperation(&quot;zBufferPass&quot;),s.traverse(e),t.framebuffer.restorePreviousBindingsAndBuffers(),t.depthRequested=!1}e.setCurrentOperation(&quot;cameraPass&quot;),s.traverse(e),t.opaqueActorCount&gt;0&amp;&amp;(e.setCurrentOperation(&quot;opaquePass&quot;),s.traverse(e)),t.translucentActorCount&gt;0&amp;&amp;(t.translucentPass||(t.translucentPass=Cv.newInstance()),t.translucentPass.traverse(n,s,e)),t.volumeCount&gt;0&amp;&amp;(e.setCurrentOperation(&quot;volumePass&quot;),s.traverse(e)),t.overlayActorCount&gt;0&amp;&amp;(e.setCurrentOperation(&quot;overlayPass&quot;),s.traverse(e))}}},e.getZBufferTexture=()=&gt;t.framebuffer?t.framebuffer.getColorTexture():null,e.requestDepth=()=&gt;{t.depthRequested=!0},e.incrementOpaqueActorCount=()=&gt;t.opaqueActorCount++,e.incrementTranslucentActorCount=()=&gt;t.translucentActorCount++,e.incrementVolumeCount=()=&gt;t.volumeCount++,e.incrementOverlayActorCount=()=&gt;t.overlayActorCount++}(e,t)}var wv={newInstance:sn.newInstance(Pv,&quot;vtkForwardPass&quot;),extend:Pv},Iv={exports:{}};!function(e){e.exports=function(e){var t=[&quot;0&quot;,&quot;1&quot;,&quot;2&quot;,&quot;3&quot;,&quot;4&quot;,&quot;5&quot;,&quot;6&quot;,&quot;7&quot;,&quot;8&quot;,&quot;9&quot;,&quot;a&quot;,&quot;b&quot;,&quot;c&quot;,&quot;d&quot;,&quot;e&quot;,&quot;f&quot;];function n(e,t){var n=e[0],r=e[1],o=e[2],a=e[3];r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&amp;o|~r&amp;a)+t[0]-680876936|0)&lt;&lt;7|n&gt;&gt;&gt;25)+r|0)&amp;r|~n&amp;o)+t[1]-389564586|0)&lt;&lt;12|a&gt;&gt;&gt;20)+n|0)&amp;n|~a&amp;r)+t[2]+606105819|0)&lt;&lt;17|o&gt;&gt;&gt;15)+a|0)&amp;a|~o&amp;n)+t[3]-1044525330|0)&lt;&lt;22|r&gt;&gt;&gt;10)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&amp;o|~r&amp;a)+t[4]-176418897|0)&lt;&lt;7|n&gt;&gt;&gt;25)+r|0)&amp;r|~n&amp;o)+t[5]+1200080426|0)&lt;&lt;12|a&gt;&gt;&gt;20)+n|0)&amp;n|~a&amp;r)+t[6]-1473231341|0)&lt;&lt;17|o&gt;&gt;&gt;15)+a|0)&amp;a|~o&amp;n)+t[7]-45705983|0)&lt;&lt;22|r&gt;&gt;&gt;10)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&amp;o|~r&amp;a)+t[8]+1770035416|0)&lt;&lt;7|n&gt;&gt;&gt;25)+r|0)&amp;r|~n&amp;o)+t[9]-1958414417|0)&lt;&lt;12|a&gt;&gt;&gt;20)+n|0)&amp;n|~a&amp;r)+t[10]-42063|0)&lt;&lt;17|o&gt;&gt;&gt;15)+a|0)&amp;a|~o&amp;n)+t[11]-1990404162|0)&lt;&lt;22|r&gt;&gt;&gt;10)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&amp;o|~r&amp;a)+t[12]+1804603682|0)&lt;&lt;7|n&gt;&gt;&gt;25)+r|0)&amp;r|~n&amp;o)+t[13]-40341101|0)&lt;&lt;12|a&gt;&gt;&gt;20)+n|0)&amp;n|~a&amp;r)+t[14]-1502002290|0)&lt;&lt;17|o&gt;&gt;&gt;15)+a|0)&amp;a|~o&amp;n)+t[15]+1236535329|0)&lt;&lt;22|r&gt;&gt;&gt;10)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&amp;a|o&amp;~a)+t[1]-165796510|0)&lt;&lt;5|n&gt;&gt;&gt;27)+r|0)&amp;o|r&amp;~o)+t[6]-1069501632|0)&lt;&lt;9|a&gt;&gt;&gt;23)+n|0)&amp;r|n&amp;~r)+t[11]+643717713|0)&lt;&lt;14|o&gt;&gt;&gt;18)+a|0)&amp;n|a&amp;~n)+t[0]-373897302|0)&lt;&lt;20|r&gt;&gt;&gt;12)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&amp;a|o&amp;~a)+t[5]-701558691|0)&lt;&lt;5|n&gt;&gt;&gt;27)+r|0)&amp;o|r&amp;~o)+t[10]+38016083|0)&lt;&lt;9|a&gt;&gt;&gt;23)+n|0)&amp;r|n&amp;~r)+t[15]-660478335|0)&lt;&lt;14|o&gt;&gt;&gt;18)+a|0)&amp;n|a&amp;~n)+t[4]-405537848|0)&lt;&lt;20|r&gt;&gt;&gt;12)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&amp;a|o&amp;~a)+t[9]+568446438|0)&lt;&lt;5|n&gt;&gt;&gt;27)+r|0)&amp;o|r&amp;~o)+t[14]-1019803690|0)&lt;&lt;9|a&gt;&gt;&gt;23)+n|0)&amp;r|n&amp;~r)+t[3]-187363961|0)&lt;&lt;14|o&gt;&gt;&gt;18)+a|0)&amp;n|a&amp;~n)+t[8]+1163531501|0)&lt;&lt;20|r&gt;&gt;&gt;12)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&amp;a|o&amp;~a)+t[13]-1444681467|0)&lt;&lt;5|n&gt;&gt;&gt;27)+r|0)&amp;o|r&amp;~o)+t[2]-51403784|0)&lt;&lt;9|a&gt;&gt;&gt;23)+n|0)&amp;r|n&amp;~r)+t[7]+1735328473|0)&lt;&lt;14|o&gt;&gt;&gt;18)+a|0)&amp;n|a&amp;~n)+t[12]-1926607734|0)&lt;&lt;20|r&gt;&gt;&gt;12)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r^o^a)+t[5]-378558|0)&lt;&lt;4|n&gt;&gt;&gt;28)+r|0)^r^o)+t[8]-2022574463|0)&lt;&lt;11|a&gt;&gt;&gt;21)+n|0)^n^r)+t[11]+1839030562|0)&lt;&lt;16|o&gt;&gt;&gt;16)+a|0)^a^n)+t[14]-35309556|0)&lt;&lt;23|r&gt;&gt;&gt;9)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r^o^a)+t[1]-1530992060|0)&lt;&lt;4|n&gt;&gt;&gt;28)+r|0)^r^o)+t[4]+1272893353|0)&lt;&lt;11|a&gt;&gt;&gt;21)+n|0)^n^r)+t[7]-155497632|0)&lt;&lt;16|o&gt;&gt;&gt;16)+a|0)^a^n)+t[10]-1094730640|0)&lt;&lt;23|r&gt;&gt;&gt;9)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r^o^a)+t[13]+681279174|0)&lt;&lt;4|n&gt;&gt;&gt;28)+r|0)^r^o)+t[0]-358537222|0)&lt;&lt;11|a&gt;&gt;&gt;21)+n|0)^n^r)+t[3]-722521979|0)&lt;&lt;16|o&gt;&gt;&gt;16)+a|0)^a^n)+t[6]+76029189|0)&lt;&lt;23|r&gt;&gt;&gt;9)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r^o^a)+t[9]-640364487|0)&lt;&lt;4|n&gt;&gt;&gt;28)+r|0)^r^o)+t[12]-421815835|0)&lt;&lt;11|a&gt;&gt;&gt;21)+n|0)^n^r)+t[15]+530742520|0)&lt;&lt;16|o&gt;&gt;&gt;16)+a|0)^a^n)+t[2]-995338651|0)&lt;&lt;23|r&gt;&gt;&gt;9)+o|0,r=((r+=((a=((a+=(r^((n=((n+=(o^(r|~a))+t[0]-198630844|0)&lt;&lt;6|n&gt;&gt;&gt;26)+r|0)|~o))+t[7]+1126891415|0)&lt;&lt;10|a&gt;&gt;&gt;22)+n|0)^((o=((o+=(n^(a|~r))+t[14]-1416354905|0)&lt;&lt;15|o&gt;&gt;&gt;17)+a|0)|~n))+t[5]-57434055|0)&lt;&lt;21|r&gt;&gt;&gt;11)+o|0,r=((r+=((a=((a+=(r^((n=((n+=(o^(r|~a))+t[12]+1700485571|0)&lt;&lt;6|n&gt;&gt;&gt;26)+r|0)|~o))+t[3]-1894986606|0)&lt;&lt;10|a&gt;&gt;&gt;22)+n|0)^((o=((o+=(n^(a|~r))+t[10]-1051523|0)&lt;&lt;15|o&gt;&gt;&gt;17)+a|0)|~n))+t[1]-2054922799|0)&lt;&lt;21|r&gt;&gt;&gt;11)+o|0,r=((r+=((a=((a+=(r^((n=((n+=(o^(r|~a))+t[8]+1873313359|0)&lt;&lt;6|n&gt;&gt;&gt;26)+r|0)|~o))+t[15]-30611744|0)&lt;&lt;10|a&gt;&gt;&gt;22)+n|0)^((o=((o+=(n^(a|~r))+t[6]-1560198380|0)&lt;&lt;15|o&gt;&gt;&gt;17)+a|0)|~n))+t[13]+1309151649|0)&lt;&lt;21|r&gt;&gt;&gt;11)+o|0,r=((r+=((a=((a+=(r^((n=((n+=(o^(r|~a))+t[4]-145523070|0)&lt;&lt;6|n&gt;&gt;&gt;26)+r|0)|~o))+t[11]-1120210379|0)&lt;&lt;10|a&gt;&gt;&gt;22)+n|0)^((o=((o+=(n^(a|~r))+t[2]+718787259|0)&lt;&lt;15|o&gt;&gt;&gt;17)+a|0)|~n))+t[9]-343485551|0)&lt;&lt;21|r&gt;&gt;&gt;11)+o|0,e[0]=n+e[0]|0,e[1]=r+e[1]|0,e[2]=o+e[2]|0,e[3]=a+e[3]|0}function r(e){var t,n=[];for(t=0;t&lt;64;t+=4)n[t&gt;&gt;2]=e.charCodeAt(t)+(e.charCodeAt(t+1)&lt;&lt;8)+(e.charCodeAt(t+2)&lt;&lt;16)+(e.charCodeAt(t+3)&lt;&lt;24);return n}function o(e){var t,n=[];for(t=0;t&lt;64;t+=4)n[t&gt;&gt;2]=e[t]+(e[t+1]&lt;&lt;8)+(e[t+2]&lt;&lt;16)+(e[t+3]&lt;&lt;24);return n}function a(e){var t,o,a,i,s,l,c=e.length,u=[1732584193,-271733879,-1732584194,271733878];for(t=64;t&lt;=c;t+=64)n(u,r(e.substring(t-64,t)));for(o=(e=e.substring(t-64)).length,a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],t=0;t&lt;o;t+=1)a[t&gt;&gt;2]|=e.charCodeAt(t)&lt;&lt;(t%4&lt;&lt;3);if(a[t&gt;&gt;2]|=128&lt;&lt;(t%4&lt;&lt;3),t&gt;55)for(n(u,a),t=0;t&lt;16;t+=1)a[t]=0;return i=(i=8*c).toString(16).match(/(.*?)(.{0,8})$/),s=parseInt(i[2],16),l=parseInt(i[1],16)||0,a[14]=s,a[15]=l,n(u,a),u}function i(e){var t,r,a,i,s,l,c=e.length,u=[1732584193,-271733879,-1732584194,271733878];for(t=64;t&lt;=c;t+=64)n(u,o(e.subarray(t-64,t)));for(r=(e=t-64&lt;c?e.subarray(t-64):new Uint8Array(0)).length,a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],t=0;t&lt;r;t+=1)a[t&gt;&gt;2]|=e[t]&lt;&lt;(t%4&lt;&lt;3);if(a[t&gt;&gt;2]|=128&lt;&lt;(t%4&lt;&lt;3),t&gt;55)for(n(u,a),t=0;t&lt;16;t+=1)a[t]=0;return i=(i=8*c).toString(16).match(/(.*?)(.{0,8})$/),s=parseInt(i[2],16),l=parseInt(i[1],16)||0,a[14]=s,a[15]=l,n(u,a),u}function s(e){var n,r=&quot;&quot;;for(n=0;n&lt;4;n+=1)r+=t[e&gt;&gt;8*n+4&amp;15]+t[e&gt;&gt;8*n&amp;15];return r}function l(e){var t;for(t=0;t&lt;e.length;t+=1)e[t]=s(e[t]);return e.join(&quot;&quot;)}function c(e){return/[\\u0080-\\uFFFF]/.test(e)&amp;&amp;(e=unescape(encodeURIComponent(e))),e}function u(e,t){var n,r=e.length,o=new ArrayBuffer(r),a=new Uint8Array(o);for(n=0;n&lt;r;n+=1)a[n]=e.charCodeAt(n);return t?a:o}function d(e){return String.fromCharCode.apply(null,new Uint8Array(e))}function p(e,t,n){var r=new Uint8Array(e.byteLength+t.byteLength);return r.set(new Uint8Array(e)),r.set(new Uint8Array(t),e.byteLength),n?r:r.buffer}function f(e){var t,n=[],r=e.length;for(t=0;t&lt;r-1;t+=2)n.push(parseInt(e.substr(t,2),16));return String.fromCharCode.apply(String,n)}function g(){this.reset()}return l(a(&quot;hello&quot;)),&quot;undefined&quot;==typeof ArrayBuffer||ArrayBuffer.prototype.slice||function(){function t(e,t){return(e=0|e||0)&lt;0?Math.max(e+t,0):Math.min(e,t)}ArrayBuffer.prototype.slice=function(n,r){var o,a,i,s,l=this.byteLength,c=t(n,l),u=l;return r!==e&amp;&amp;(u=t(r,l)),c&gt;u?new ArrayBuffer(0):(o=u-c,a=new ArrayBuffer(o),i=new Uint8Array(a),s=new Uint8Array(this,c,o),i.set(s),a)}}(),g.prototype.append=function(e){return this.appendBinary(c(e)),this},g.prototype.appendBinary=function(e){this._buff+=e,this._length+=e.length;var t,o=this._buff.length;for(t=64;t&lt;=o;t+=64)n(this._hash,r(this._buff.substring(t-64,t)));return this._buff=this._buff.substring(t-64),this},g.prototype.end=function(e){var t,n,r=this._buff,o=r.length,a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(t=0;t&lt;o;t+=1)a[t&gt;&gt;2]|=r.charCodeAt(t)&lt;&lt;(t%4&lt;&lt;3);return this._finish(a,o),n=l(this._hash),e&amp;&amp;(n=f(n)),this.reset(),n},g.prototype.reset=function(){return this._buff=&quot;&quot;,this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},g.prototype.getState=function(){return{buff:this._buff,length:this._length,hash:this._hash.slice()}},g.prototype.setState=function(e){return this._buff=e.buff,this._length=e.length,this._hash=e.hash,this},g.prototype.destroy=function(){delete this._hash,delete this._buff,delete this._length},g.prototype._finish=function(e,t){var r,o,a,i=t;if(e[i&gt;&gt;2]|=128&lt;&lt;(i%4&lt;&lt;3),i&gt;55)for(n(this._hash,e),i=0;i&lt;16;i+=1)e[i]=0;r=(r=8*this._length).toString(16).match(/(.*?)(.{0,8})$/),o=parseInt(r[2],16),a=parseInt(r[1],16)||0,e[14]=o,e[15]=a,n(this._hash,e)},g.hash=function(e,t){return g.hashBinary(c(e),t)},g.hashBinary=function(e,t){var n=l(a(e));return t?f(n):n},g.ArrayBuffer=function(){this.reset()},g.ArrayBuffer.prototype.append=function(e){var t,r=p(this._buff.buffer,e,!0),a=r.length;for(this._length+=e.byteLength,t=64;t&lt;=a;t+=64)n(this._hash,o(r.subarray(t-64,t)));return this._buff=t-64&lt;a?new Uint8Array(r.buffer.slice(t-64)):new Uint8Array(0),this},g.ArrayBuffer.prototype.end=function(e){var t,n,r=this._buff,o=r.length,a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(t=0;t&lt;o;t+=1)a[t&gt;&gt;2]|=r[t]&lt;&lt;(t%4&lt;&lt;3);return this._finish(a,o),n=l(this._hash),e&amp;&amp;(n=f(n)),this.reset(),n},g.ArrayBuffer.prototype.reset=function(){return this._buff=new Uint8Array(0),this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},g.ArrayBuffer.prototype.getState=function(){var e=g.prototype.getState.call(this);return e.buff=d(e.buff),e},g.ArrayBuffer.prototype.setState=function(e){return e.buff=u(e.buff,!0),g.prototype.setState.call(this,e)},g.ArrayBuffer.prototype.destroy=g.prototype.destroy,g.ArrayBuffer.prototype._finish=g.prototype._finish,g.ArrayBuffer.hash=function(e,t){var n=l(i(new Uint8Array(e)));return t?f(n):n},g}()}(Iv);var Ov=Iv.exports;const Rv=[&quot;lastShaderProgramBound&quot;,&quot;context&quot;,&quot;_openGLRenderWindow&quot;];const Mv={lastShaderProgramBound:null,shaderPrograms:null,context:null};function Dv(e,t,n={}){Object.assign(t,Mv,n),t.shaderPrograms={},sn.obj(e,t),sn.setGet(e,t,Rv),sn.moveToProtected(e,t,[&quot;openGLRenderWindow&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkShaderCache&quot;),e.replaceShaderValues=(e,n,r)=&gt;{let o=n;r.length&gt;0&amp;&amp;(o=vd.substitute(o,&quot;VSOut&quot;,&quot;GSOut&quot;).result);const a=t._openGLRenderWindow.getWebgl2();let i=&quot;\\n&quot;,s=&quot;#version 100\\n&quot;;a?s=&quot;#version 300 es\\n#define attribute in\\n#define textureCube texture\\n#define texture2D texture\\n#define textureCubeLod textureLod\\n#define texture2DLod textureLod\\n&quot;:(t.context.getExtension(&quot;OES_standard_derivatives&quot;),t.context.getExtension(&quot;EXT_frag_depth&quot;)&amp;&amp;(i=&quot;#extension GL_EXT_frag_depth : enable\\n&quot;),t.context.getExtension(&quot;EXT_shader_texture_lod&quot;)&amp;&amp;(i+=&quot;#extension GL_EXT_shader_texture_lod : enable\\n#define textureCubeLod textureCubeLodEXT\\n#define texture2DLod texture2DLodEXT&quot;)),o=vd.substitute(o,&quot;//VTK::System::Dec&quot;,[`${s}\\n`,a?&quot;&quot;:&quot;#extension GL_OES_standard_derivatives : enable\\n&quot;,i,&quot;#ifdef GL_FRAGMENT_PRECISION_HIGH&quot;,&quot;precision highp float;&quot;,&quot;precision highp int;&quot;,&quot;#else&quot;,&quot;precision mediump float;&quot;,&quot;precision mediump int;&quot;,&quot;#endif&quot;]).result;let l=vd.substitute(e,&quot;//VTK::System::Dec&quot;,[`${s}\\n`,&quot;#ifdef GL_FRAGMENT_PRECISION_HIGH&quot;,&quot;precision highp float;&quot;,&quot;precision highp int;&quot;,&quot;#else&quot;,&quot;precision mediump float;&quot;,&quot;precision mediump int;&quot;,&quot;#endif&quot;]).result;if(a){l=vd.substitute(l,&quot;varying&quot;,&quot;out&quot;).result,o=vd.substitute(o,&quot;varying&quot;,&quot;in&quot;).result;let e=&quot;&quot;,t=0;for(;o.includes(`gl_FragData[${t}]`);)o=vd.substitute(o,`gl_FragData\\\\[${t}\\\\]`,`fragOutput${t}`).result,e+=`layout(location = ${t}) out vec4 fragOutput${t};\\n`,t++;o=vd.substitute(o,&quot;//VTK::Output::Dec&quot;,e).result}return{VSSource:l,FSSource:o,GSSource:vd.substitute(r,&quot;//VTK::System::Dec&quot;,s).result}},e.readyShaderProgramArray=(t,n,r)=&gt;{const o=e.replaceShaderValues(t,n,r),a=e.getShaderProgram(o.VSSource,o.FSSource,o.GSSource);return e.readyShaderProgram(a)},e.readyShaderProgram=t=&gt;t&amp;&amp;(t.getCompiled()||t.compileShader())&amp;&amp;e.bindShaderProgram(t)?t:null,e.getShaderProgram=(e,n,r)=&gt;{const o=`${e}${n}${r}`,a=Ov.hash(o);if(!(a in t.shaderPrograms)){const o=vd.newInstance();return o.setContext(t.context),o.getVertexShader().setSource(e),o.getFragmentShader().setSource(n),r&amp;&amp;o.getGeometryShader().setSource(r),o.setMd5Hash(a),t.shaderPrograms[a]=o,o}return t.shaderPrograms[a]},e.releaseGraphicsResources=n=&gt;{e.releaseCurrentShaderProgram(),Object.keys(t.shaderPrograms).map((e=&gt;t.shaderPrograms[e])).forEach((e=&gt;e.cleanup())),t.shaderPrograms={}},e.releaseCurrentShaderProgram=()=&gt;{t.lastShaderProgramBound&amp;&amp;(t.lastShaderProgramBound.cleanup(),t.lastShaderProgramBound=null)},e.bindShaderProgram=e=&gt;(t.lastShaderProgramBound===e||(t.lastShaderProgramBound&amp;&amp;t.lastShaderProgramBound.release(),e.bind(),t.lastShaderProgramBound=e),1)}(e,t)}var Ev={newInstance:sn.newInstance(Dv,&quot;vtkShaderCache&quot;),extend:Dv};const{vtkErrorMacro:Vv}=sn;const Lv={context:null,numberOfTextureUnits:0,textureUnits:0};function Bv(e,t,n={}){Object.assign(t,Lv,n),sn.obj(e,t),t.textureUnits=[],sn.get(e,t,[&quot;numberOfTextureUnits&quot;]),sn.setGet(e,t,[&quot;context&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLTextureUnitManager&quot;),e.deleteTable=()=&gt;{for(let e=0;e&lt;t.numberOfTextureUnits;++e)!0===t.textureUnits[e]&amp;&amp;Vv(&quot;some texture units  were not properly released&quot;);t.textureUnits=[],t.numberOfTextureUnits=0},e.setContext=n=&gt;{if(t.context!==n){if(0!==t.context&amp;&amp;e.deleteTable(),t.context=n,t.context){t.numberOfTextureUnits=n.getParameter(n.MAX_TEXTURE_IMAGE_UNITS);for(let e=0;e&lt;t.numberOfTextureUnits;++e)t.textureUnits[e]=!1}e.modified()}},e.allocate=()=&gt;{for(let n=0;n&lt;t.numberOfTextureUnits;n++)if(!e.isAllocated(n))return t.textureUnits[n]=!0,n;return-1},e.allocateUnit=n=&gt;e.isAllocated(n)?-1:(t.textureUnits[n]=!0,n),e.isAllocated=e=&gt;t.textureUnits[e],e.free=e=&gt;{t.textureUnits[e]=!1},e.freeAll=()=&gt;{for(let e=0;e&lt;t.numberOfTextureUnits;++e)t.textureUnits[e]=!1}}(e,t)}var Fv={newInstance:sn.newInstance(Bv,&quot;vtkOpenGLTextureUnitManager&quot;),extend:Bv};const Nv={size:void 0,selector:void 0};function kv(e,t,n={}){Object.assign(t,Nv,n),t.size||(t.size=[300,300]),sn.getArray(e,t,[&quot;size&quot;],2),sn.get(e,t,[&quot;selector&quot;]),pn.extend(e,t,n),function(e,t){t.classHierarchy.push(&quot;vtkRenderWindowViewNode&quot;),e.getViewNodeFactory=()=&gt;null,e.getAspectRatio=()=&gt;t.size[0]/t.size[1],e.getAspectRatioForRenderer=e=&gt;{const n=e.getViewportByReference();return t.size[0]*(n[2]-n[0])/((n[3]-n[1])*t.size[1])},e.isInViewport=(t,n,r)=&gt;{const o=r.getViewportByReference(),a=e.getFramebufferSize();return o[0]*a[0]&lt;=t&amp;&amp;o[2]*a[0]&gt;=t&amp;&amp;o[1]*a[1]&lt;=n&amp;&amp;o[3]*a[1]&gt;=n},e.getViewportSize=t=&gt;{const n=t.getViewportByReference(),r=e.getFramebufferSize();return[(n[2]-n[0])*r[0],(n[3]-n[1])*r[1]]},e.getViewportCenter=t=&gt;{const n=e.getViewportSize(t);return[.5*n[0],.5*n[1]]},e.displayToNormalizedDisplay=(t,n,r)=&gt;{const o=e.getFramebufferSize();return[t/o[0],n/o[1],r]},e.normalizedDisplayToDisplay=(t,n,r)=&gt;{const o=e.getFramebufferSize();return[t*o[0],n*o[1],r]},e.worldToView=(e,t,n,r)=&gt;r.worldToView(e,t,n),e.viewToWorld=(e,t,n,r)=&gt;r.viewToWorld(e,t,n),e.worldToDisplay=(t,n,r,o)=&gt;{const a=o.worldToView(t,n,r),i=e.getViewportSize(o),s=o.viewToProjection(a[0],a[1],a[2],i[0]/i[1]),l=o.projectionToNormalizedDisplay(s[0],s[1],s[2]);return e.normalizedDisplayToDisplay(l[0],l[1],l[2])},e.displayToWorld=(t,n,r,o)=&gt;{const a=e.displayToNormalizedDisplay(t,n,r),i=o.normalizedDisplayToProjection(a[0],a[1],a[2]),s=e.getViewportSize(o),l=o.projectionToView(i[0],i[1],i[2],s[0]/s[1]);return o.viewToWorld(l[0],l[1],l[2])},e.normalizedDisplayToViewport=(t,n,r,o)=&gt;{let a=o.getViewportByReference();a=e.normalizedDisplayToDisplay(a[0],a[1],0);const i=e.normalizedDisplayToDisplay(t,n,r);return[i[0]-a[0]-.5,i[1]-a[1]-.5,r]},e.viewportToNormalizedViewport=(t,n,r,o)=&gt;{const a=e.getViewportSize(o);return a&amp;&amp;0!==a[0]&amp;&amp;0!==a[1]?[t/(a[0]-1),n/(a[1]-1),r]:[t,n,r]},e.normalizedViewportToViewport=(t,n,r,o)=&gt;{const a=e.getViewportSize(o);return[t*(a[0]-1),n*(a[1]-1),r]},e.displayToLocalDisplay=(t,n,r)=&gt;[t,e.getFramebufferSize()[1]-n-1,r],e.viewportToNormalizedDisplay=(t,n,r,o)=&gt;{let a=o.getViewportByReference();a=e.normalizedDisplayToDisplay(a[0],a[1],0);const i=t+a[0]+.5,s=n+a[1]+.5;return e.displayToNormalizedDisplay(i,s,r)},e.getComputedDevicePixelRatio=()=&gt;t.size[0]/e.getContainerSize()[0],e.getContainerSize=()=&gt;{sn.vtkErrorMacro(&quot;not implemented&quot;)},e.getPixelData=(e,t,n,r)=&gt;{sn.vtkErrorMacro(&quot;not implemented&quot;)},e.createSelector=()=&gt;{sn.vtkErrorMacro(&quot;not implemented&quot;)}}(e,t)}var Gv={newInstance:sn.newInstance(kv,&quot;vtkRenderWindowViewNode&quot;),extend:kv};function Uv(){const e=new Map,t={apply:(t,n,r)=&gt;e.has(r[0])?e.get(r[0]):t.apply(n,r)};const n=Object.create(null);return n.getParameter=(e,n,r,o)=&gt;new Proxy(o.bind(e),t),n.depthMask=(t,n,r,o)=&gt;{return new Proxy(o.bind(t),(a=t.DEPTH_WRITEMASK,{apply:(t,n,r)=&gt;(e.set(a,r[0]),t.apply(n,r))}));var a},{get(e,t,r){if(&quot;__getUnderlyingContext&quot;===t)return()=&gt;e;let o=Reflect.get(e,t,e);o instanceof Function&amp;&amp;(o=o.bind(e));const a=n[t];return a?a(e,t,r,o):o}}}const{vtkDebugMacro:_v,vtkErrorMacro:Kv}=sn,zv={position:&quot;absolute&quot;,top:0,left:0,width:&quot;100%&quot;,height:&quot;100%&quot;},Wv=[&quot;activateTexture&quot;,&quot;deactivateTexture&quot;,&quot;disableCullFace&quot;,&quot;enableCullFace&quot;,&quot;get3DContext&quot;,&quot;getActiveFramebuffer&quot;,&quot;getContext&quot;,&quot;getDefaultTextureByteSize&quot;,&quot;getDefaultTextureInternalFormat&quot;,&quot;getDefaultToWebgl2&quot;,&quot;getGLInformations&quot;,&quot;getGraphicsMemoryInfo&quot;,&quot;getGraphicsResourceForObject&quot;,&quot;getHardwareMaximumLineWidth&quot;,&quot;getPixelData&quot;,&quot;getShaderCache&quot;,&quot;getTextureUnitForTexture&quot;,&quot;getTextureUnitManager&quot;,&quot;getWebgl2&quot;,&quot;makeCurrent&quot;,&quot;releaseGraphicsResources&quot;,&quot;registerGraphicsResourceUser&quot;,&quot;unregisterGraphicsResourceUser&quot;,&quot;restoreContext&quot;,&quot;setActiveFramebuffer&quot;,&quot;setContext&quot;,&quot;setDefaultToWebgl2&quot;,&quot;setGraphicsResourceForObject&quot;];function Hv(e,t,n){const r=e.createFramebuffer(),o=e.createTexture();e.bindTexture(e.TEXTURE_2D,o),e.texImage2D(e.TEXTURE_2D,0,t,2,2,0,t,n,null),e.bindFramebuffer(e.FRAMEBUFFER,r),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,o,0);const a=e.checkFramebufferStatus(e.FRAMEBUFFER);return e.bindFramebuffer(e.FRAMEBUFFER,null),e.bindTexture(e.TEXTURE_2D,null),a===e.FRAMEBUFFER_COMPLETE}let jv=0;const Xv=[];function qv(e){e.preventDefault()}function Yv(e,t){let n;t.classHierarchy.push(&quot;vtkOpenGLRenderWindow&quot;),e.getViewNodeFactory=()=&gt;t.myFactory,t.canvas.addEventListener(&quot;webglcontextlost&quot;,qv,!1),t.canvas.addEventListener(&quot;webglcontextrestored&quot;,e.restoreContext,!1);const r=[0,0];let o;e.onModified((function(){t.renderable&amp;&amp;(t.size[0]===r[0]&amp;&amp;t.size[1]===r[1]||(r[0]=t.size[0],r[1]=t.size[1],t.canvas.setAttribute(&quot;width&quot;,t.size[0]),t.canvas.setAttribute(&quot;height&quot;,t.size[1]))),t.viewStream&amp;&amp;t.viewStream.setSize(t.size[0],t.size[1]),t.canvas.style.display=t.useOffScreen?&quot;none&quot;:&quot;block&quot;,t.el&amp;&amp;(t.el.style.cursor=t.cursorVisibility?t.cursor:&quot;none&quot;),t.containerSize=null})),e.buildPass=n=&gt;{if(n){if(!t.renderable)return;e.prepareNodes(),e.addMissingNodes(t.renderable.getRenderersByReference()),e.addMissingNodes(t.renderable.getChildRenderWindowsByReference()),e.removeUnusedNodes(),e.initialize(),t.children.forEach((t=&gt;{t.setOpenGLRenderWindow?.(e)}))}},e.initialize=()=&gt;{if(!t.initialized){if(t.rootOpenGLRenderWindow=e.getLastAncestorOfType(&quot;vtkOpenGLRenderWindow&quot;),t.rootOpenGLRenderWindow)t.context2D=e.get2DContext();else{t.context=e.get3DContext(),e.resizeFromChildRenderWindows(),t.context&amp;&amp;(jv++,Xv.forEach((e=&gt;e(jv)))),t.textureUnitManager=Fv.newInstance(),t.textureUnitManager.setContext(t.context),t.shaderCache.setContext(t.context);const n=t.context;n.blendFuncSeparate(n.SRC_ALPHA,n.ONE_MINUS_SRC_ALPHA,n.ONE,n.ONE_MINUS_SRC_ALPHA),n.depthFunc(n.LEQUAL),n.enable(n.BLEND)}t.initialized=!0}},e.makeCurrent=()=&gt;{t.context.makeCurrent()},e.setContainer=n=&gt;{t.el&amp;&amp;t.el!==n&amp;&amp;(t.canvas.parentNode!==t.el&amp;&amp;Kv(&quot;Error: canvas parent node does not match container&quot;),t.el.removeChild(t.canvas),t.el.contains(t.bgImage)&amp;&amp;t.el.removeChild(t.bgImage)),t.el!==n&amp;&amp;(t.el=n,t.el&amp;&amp;(t.el.appendChild(t.canvas),t.useBackgroundImage&amp;&amp;t.el.appendChild(t.bgImage)),e.modified())},e.getContainer=()=&gt;t.el,e.getContainerSize=()=&gt;{if(!t.containerSize&amp;&amp;t.el){const{width:e,height:n}=t.el.getBoundingClientRect();t.containerSize=[e,n]}return t.containerSize||t.size},e.getFramebufferSize=()=&gt;{const e=t.activeFramebuffer?.getSize();return e||t.size},e.getPixelData=(e,n,r,o)=&gt;{const a=new Uint8Array((r-e+1)*(o-n+1)*4);return t.context.readPixels(e,n,r-e+1,o-n+1,t.context.RGBA,t.context.UNSIGNED_BYTE,a),a},e.get3DContext=(e={preserveDrawingBuffer:!1,depth:!0,alpha:!0,powerPreference:&quot;high-performance&quot;})=&gt;{let r=null;const o=&quot;undefined&quot;!=typeof WebGL2RenderingContext;return t.webgl2=!1,t.defaultToWebgl2&amp;&amp;o&amp;&amp;(r=t.canvas.getContext(&quot;webgl2&quot;,e),r&amp;&amp;(t.webgl2=!0,_v(&quot;using webgl2&quot;))),r||(_v(&quot;using webgl1&quot;),r=t.canvas.getContext(&quot;webgl&quot;,e)||t.canvas.getContext(&quot;experimental-webgl&quot;,e)),r||Kv(&quot;no webgl context&quot;),new Proxy(r,(n||(n=Uv()),n))},e.get2DContext=(e={})=&gt;t.canvas.getContext(&quot;2d&quot;,e),e.restoreContext=()=&gt;{const t=vv.newInstance();t.setCurrentOperation(&quot;Release&quot;),t.traverse(e,null)},e.activateTexture=n=&gt;{const r=t._textureResourceIds.get(n);if(void 0!==r)return void t.context.activeTexture(t.context.TEXTURE0+r);const o=e.getTextureUnitManager().allocate();o&lt;0?Kv(&quot;Hardware does not support the number of textures defined.&quot;):(t._textureResourceIds.set(n,o),t.context.activeTexture(t.context.TEXTURE0+o))},e.deactivateTexture=n=&gt;{const r=t._textureResourceIds.get(n);void 0!==r&amp;&amp;(e.getTextureUnitManager().free(r),t._textureResourceIds.delete(n))},e.getTextureUnitForTexture=e=&gt;{const n=t._textureResourceIds.get(e);return void 0!==n?n:-1},e.getDefaultTextureByteSize=(e,n=null,r=!1)=&gt;{if(t.webgl2)switch(e){case ms.CHAR:case ms.SIGNED_CHAR:case ms.UNSIGNED_CHAR:return 1;case n:case r:case ms.UNSIGNED_SHORT:case ms.SHORT:case ms.VOID:return 2;default:return 4}return 1},e.getDefaultTextureInternalFormat=(e,n,r=null,o=!1)=&gt;{if(t.webgl2)switch(e){case ms.UNSIGNED_CHAR:switch(n){case 1:return t.context.R8;case 2:return t.context.RG8;case 3:return t.context.RGB8;default:return t.context.RGBA8}case r&amp;&amp;!o&amp;&amp;ms.UNSIGNED_SHORT:switch(n){case 1:return r.R16_EXT;case 2:return r.RG16_EXT;case 3:return r.RGB16_EXT;default:return r.RGBA16_EXT}case r&amp;&amp;!o&amp;&amp;ms.SHORT:switch(n){case 1:return r.R16_SNORM_EXT;case 2:return r.RG16_SNORM_EXT;case 3:return r.RGB16_SNORM_EXT;default:return r.RGBA16_SNORM_EXT}default:switch(n){case 1:return o?t.context.R16F:t.context.R32F;case 2:return o?t.context.RG16F:t.context.RG32F;case 3:return o?t.context.RGB16F:t.context.RGB32F;default:return o?t.context.RGBA16F:t.context.RGBA32F}}switch(n){case 1:return t.context.LUMINANCE;case 2:return t.context.LUMINANCE_ALPHA;case 3:return t.context.RGB;default:return t.context.RGBA}},e.setBackgroundImage=e=&gt;{t.bgImage.src=e.src},e.setUseBackgroundImage=e=&gt;{t.useBackgroundImage=e,t.useBackgroundImage&amp;&amp;!t.el.contains(t.bgImage)?t.el.appendChild(t.bgImage):!t.useBackgroundImage&amp;&amp;t.el.contains(t.bgImage)&amp;&amp;t.el.removeChild(t.bgImage)},e.captureNextImage=(n=&quot;image/png&quot;,{resetCamera:r=!1,size:o=null,scale:a=1}={})=&gt;{if(t.deleted)return null;t.imageFormat=n;const i=t.notifyStartCaptureImage;return t.notifyStartCaptureImage=!0,t._screenshot={size:o||1!==a?o||t.size.map((e=&gt;e*a)):null},new Promise(((n,o)=&gt;{const a=e.onImageReady((o=&gt;{if(null===t._screenshot.size)t.notifyStartCaptureImage=i,a.unsubscribe(),t._screenshot.placeHolder&amp;&amp;(t.size=t._screenshot.originalSize,e.modified(),t._screenshot.cameras&amp;&amp;t._screenshot.cameras.forEach((({restoreParamsFn:e,arg:t})=&gt;e(t))),e.traverseAllPasses(),t.el.removeChild(t._screenshot.placeHolder),t._screenshot.placeHolder.remove(),t._screenshot=null),n(o);else{const n=document.createElement(&quot;img&quot;);if(n.style=zv,n.src=o,t._screenshot.placeHolder=t.el.appendChild(n),t.canvas.style.display=&quot;none&quot;,t._screenshot.originalSize=t.size,t.size=t._screenshot.size,t.rootOpenGLRenderWindow?.resizeFromChildRenderWindows(),t._screenshot.size=null,e.modified(),r){const e=!0!==r;t._screenshot.cameras=t.renderable.getRenderers().map((t=&gt;{const n=t.getActiveCamera(),o=n.get(&quot;focalPoint&quot;,&quot;position&quot;,&quot;parallelScale&quot;);return{resetCameraArgs:e?{renderer:t}:void 0,resetCameraFn:e?r:t.resetCamera,restoreParamsFn:n.set,arg:JSON.parse(JSON.stringify(o))}})),t._screenshot.cameras.forEach((({resetCameraFn:e,resetCameraArgs:t})=&gt;e(t)))}e.traverseAllPasses()}}))}))},e.getHardwareMaximumLineWidth=()=&gt;{if(null!=o)return o;const t=e.get3DContext(),n=t.getParameter(t.ALIASED_LINE_WIDTH_RANGE);return o=n[1],n[1]},e.getGLInformations=()=&gt;{if(t._glInformation)return t._glInformation;const n=e.get3DContext(),r=n.getExtension(&quot;OES_texture_float&quot;),o=n.getExtension(&quot;OES_texture_half_float&quot;),a=n.getExtension(&quot;WEBGL_debug_renderer_info&quot;),i=n.getExtension(&quot;WEBGL_draw_buffers&quot;),s=n.getExtension(&quot;EXT_texture_filter_anisotropic&quot;)||n.getExtension(&quot;WEBKIT_EXT_texture_filter_anisotropic&quot;),l=[[&quot;Max Vertex Attributes&quot;,&quot;MAX_VERTEX_ATTRIBS&quot;,n.getParameter(n.MAX_VERTEX_ATTRIBS)],[&quot;Max Varying Vectors&quot;,&quot;MAX_VARYING_VECTORS&quot;,n.getParameter(n.MAX_VARYING_VECTORS)],[&quot;Max Vertex Uniform Vectors&quot;,&quot;MAX_VERTEX_UNIFORM_VECTORS&quot;,n.getParameter(n.MAX_VERTEX_UNIFORM_VECTORS)],[&quot;Max Fragment Uniform Vectors&quot;,&quot;MAX_FRAGMENT_UNIFORM_VECTORS&quot;,n.getParameter(n.MAX_FRAGMENT_UNIFORM_VECTORS)],[&quot;Max Fragment Texture Image Units&quot;,&quot;MAX_TEXTURE_IMAGE_UNITS&quot;,n.getParameter(n.MAX_TEXTURE_IMAGE_UNITS)],[&quot;Max Vertex Texture Image Units&quot;,&quot;MAX_VERTEX_TEXTURE_IMAGE_UNITS&quot;,n.getParameter(n.MAX_VERTEX_TEXTURE_IMAGE_UNITS)],[&quot;Max Combined Texture Image Units&quot;,&quot;MAX_COMBINED_TEXTURE_IMAGE_UNITS&quot;,n.getParameter(n.MAX_COMBINED_TEXTURE_IMAGE_UNITS)],[&quot;Max 2D Texture Size&quot;,&quot;MAX_TEXTURE_SIZE&quot;,n.getParameter(n.MAX_TEXTURE_SIZE)],[&quot;Max Cube Texture Size&quot;,&quot;MAX_CUBE_MAP_TEXTURE_SIZE&quot;,n.getParameter(n.MAX_CUBE_MAP_TEXTURE_SIZE)],[&quot;Max Texture Anisotropy&quot;,&quot;MAX_TEXTURE_MAX_ANISOTROPY_EXT&quot;,s&amp;&amp;n.getParameter(s.MAX_TEXTURE_MAX_ANISOTROPY_EXT)],[&quot;Point Size Range&quot;,&quot;ALIASED_POINT_SIZE_RANGE&quot;,n.getParameter(n.ALIASED_POINT_SIZE_RANGE).join(&quot; - &quot;)],[&quot;Line Width Range&quot;,&quot;ALIASED_LINE_WIDTH_RANGE&quot;,n.getParameter(n.ALIASED_LINE_WIDTH_RANGE).join(&quot; - &quot;)],[&quot;Max Viewport Dimensions&quot;,&quot;MAX_VIEWPORT_DIMS&quot;,n.getParameter(n.MAX_VIEWPORT_DIMS).join(&quot; - &quot;)],[&quot;Max Renderbuffer Size&quot;,&quot;MAX_RENDERBUFFER_SIZE&quot;,n.getParameter(n.MAX_RENDERBUFFER_SIZE)],[&quot;Framebuffer Red Bits&quot;,&quot;RED_BITS&quot;,n.getParameter(n.RED_BITS)],[&quot;Framebuffer Green Bits&quot;,&quot;GREEN_BITS&quot;,n.getParameter(n.GREEN_BITS)],[&quot;Framebuffer Blue Bits&quot;,&quot;BLUE_BITS&quot;,n.getParameter(n.BLUE_BITS)],[&quot;Framebuffer Alpha Bits&quot;,&quot;ALPHA_BITS&quot;,n.getParameter(n.ALPHA_BITS)],[&quot;Framebuffer Depth Bits&quot;,&quot;DEPTH_BITS&quot;,n.getParameter(n.DEPTH_BITS)],[&quot;Framebuffer Stencil Bits&quot;,&quot;STENCIL_BITS&quot;,n.getParameter(n.STENCIL_BITS)],[&quot;Framebuffer Subpixel Bits&quot;,&quot;SUBPIXEL_BITS&quot;,n.getParameter(n.SUBPIXEL_BITS)],[&quot;MSAA Samples&quot;,&quot;SAMPLES&quot;,n.getParameter(n.SAMPLES)],[&quot;MSAA Sample Buffers&quot;,&quot;SAMPLE_BUFFERS&quot;,n.getParameter(n.SAMPLE_BUFFERS)],[&quot;Supported Formats for UByte Render Targets     &quot;,&quot;UNSIGNED_BYTE RENDER TARGET FORMATS&quot;,[r&amp;&amp;Hv(n,n.RGBA,n.UNSIGNED_BYTE)?&quot;RGBA&quot;:&quot;&quot;,r&amp;&amp;Hv(n,n.RGB,n.UNSIGNED_BYTE)?&quot;RGB&quot;:&quot;&quot;,r&amp;&amp;Hv(n,n.LUMINANCE,n.UNSIGNED_BYTE)?&quot;LUMINANCE&quot;:&quot;&quot;,r&amp;&amp;Hv(n,n.ALPHA,n.UNSIGNED_BYTE)?&quot;ALPHA&quot;:&quot;&quot;,r&amp;&amp;Hv(n,n.LUMINANCE_ALPHA,n.UNSIGNED_BYTE)?&quot;LUMINANCE_ALPHA&quot;:&quot;&quot;].join(&quot; &quot;)],[&quot;Supported Formats for Half Float Render Targets&quot;,&quot;HALF FLOAT RENDER TARGET FORMATS&quot;,[o&amp;&amp;Hv(n,n.RGBA,o.HALF_FLOAT_OES)?&quot;RGBA&quot;:&quot;&quot;,o&amp;&amp;Hv(n,n.RGB,o.HALF_FLOAT_OES)?&quot;RGB&quot;:&quot;&quot;,o&amp;&amp;Hv(n,n.LUMINANCE,o.HALF_FLOAT_OES)?&quot;LUMINANCE&quot;:&quot;&quot;,o&amp;&amp;Hv(n,n.ALPHA,o.HALF_FLOAT_OES)?&quot;ALPHA&quot;:&quot;&quot;,o&amp;&amp;Hv(n,n.LUMINANCE_ALPHA,o.HALF_FLOAT_OES)?&quot;LUMINANCE_ALPHA&quot;:&quot;&quot;].join(&quot; &quot;)],[&quot;Supported Formats for Full Float Render Targets&quot;,&quot;FLOAT RENDER TARGET FORMATS&quot;,[r&amp;&amp;Hv(n,n.RGBA,n.FLOAT)?&quot;RGBA&quot;:&quot;&quot;,r&amp;&amp;Hv(n,n.RGB,n.FLOAT)?&quot;RGB&quot;:&quot;&quot;,r&amp;&amp;Hv(n,n.LUMINANCE,n.FLOAT)?&quot;LUMINANCE&quot;:&quot;&quot;,r&amp;&amp;Hv(n,n.ALPHA,n.FLOAT)?&quot;ALPHA&quot;:&quot;&quot;,r&amp;&amp;Hv(n,n.LUMINANCE_ALPHA,n.FLOAT)?&quot;LUMINANCE_ALPHA&quot;:&quot;&quot;].join(&quot; &quot;)],[&quot;Max Multiple Render Targets Buffers&quot;,&quot;MAX_DRAW_BUFFERS_WEBGL&quot;,i?n.getParameter(i.MAX_DRAW_BUFFERS_WEBGL):0],[&quot;High Float Precision in Vertex Shader&quot;,&quot;HIGH_FLOAT VERTEX_SHADER&quot;,[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_FLOAT).precision,&quot; (-2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_FLOAT).rangeMin,&quot;&lt;/sup&gt; - 2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_FLOAT).rangeMax,&quot;&lt;/sup&gt;)&quot;].join(&quot;&quot;)],[&quot;Medium Float Precision in Vertex Shader&quot;,&quot;MEDIUM_FLOAT VERTEX_SHADER&quot;,[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).precision,&quot; (-2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).rangeMin,&quot;&lt;/sup&gt; - 2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).rangeMax,&quot;&lt;/sup&gt;)&quot;].join(&quot;&quot;)],[&quot;Low Float Precision in Vertex Shader&quot;,&quot;LOW_FLOAT VERTEX_SHADER&quot;,[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_FLOAT).precision,&quot; (-2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_FLOAT).rangeMin,&quot;&lt;/sup&gt; - 2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_FLOAT).rangeMax,&quot;&lt;/sup&gt;)&quot;].join(&quot;&quot;)],[&quot;High Float Precision in Fragment Shader&quot;,&quot;HIGH_FLOAT FRAGMENT_SHADER&quot;,[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).precision,&quot; (-2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).rangeMin,&quot;&lt;/sup&gt; - 2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).rangeMax,&quot;&lt;/sup&gt;)&quot;].join(&quot;&quot;)],[&quot;Medium Float Precision in Fragment Shader&quot;,&quot;MEDIUM_FLOAT FRAGMENT_SHADER&quot;,[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).precision,&quot; (-2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).rangeMin,&quot;&lt;/sup&gt; - 2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).rangeMax,&quot;&lt;/sup&gt;)&quot;].join(&quot;&quot;)],[&quot;Low Float Precision in Fragment Shader&quot;,&quot;LOW_FLOAT FRAGMENT_SHADER&quot;,[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_FLOAT).precision,&quot; (-2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_FLOAT).rangeMin,&quot;&lt;/sup&gt; - 2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_FLOAT).rangeMax,&quot;&lt;/sup&gt;)&quot;].join(&quot;&quot;)],[&quot;High Int Precision in Vertex Shader&quot;,&quot;HIGH_INT VERTEX_SHADER&quot;,[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_INT).precision,&quot; (-2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_INT).rangeMin,&quot;&lt;/sup&gt; - 2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_INT).rangeMax,&quot;&lt;/sup&gt;)&quot;].join(&quot;&quot;)],[&quot;Medium Int Precision in Vertex Shader&quot;,&quot;MEDIUM_INT VERTEX_SHADER&quot;,[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_INT).precision,&quot; (-2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_INT).rangeMin,&quot;&lt;/sup&gt; - 2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_INT).rangeMax,&quot;&lt;/sup&gt;)&quot;].join(&quot;&quot;)],[&quot;Low Int Precision in Vertex Shader&quot;,&quot;LOW_INT VERTEX_SHADER&quot;,[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_INT).precision,&quot; (-2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_INT).rangeMin,&quot;&lt;/sup&gt; - 2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_INT).rangeMax,&quot;&lt;/sup&gt;)&quot;].join(&quot;&quot;)],[&quot;High Int Precision in Fragment Shader&quot;,&quot;HIGH_INT FRAGMENT_SHADER&quot;,[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_INT).precision,&quot; (-2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_INT).rangeMin,&quot;&lt;/sup&gt; - 2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_INT).rangeMax,&quot;&lt;/sup&gt;)&quot;].join(&quot;&quot;)],[&quot;Medium Int Precision in Fragment Shader&quot;,&quot;MEDIUM_INT FRAGMENT_SHADER&quot;,[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_INT).precision,&quot; (-2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_INT).rangeMin,&quot;&lt;/sup&gt; - 2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_INT).rangeMax,&quot;&lt;/sup&gt;)&quot;].join(&quot;&quot;)],[&quot;Low Int Precision in Fragment Shader&quot;,&quot;LOW_INT FRAGMENT_SHADER&quot;,[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_INT).precision,&quot; (-2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_INT).rangeMin,&quot;&lt;/sup&gt; - 2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_INT).rangeMax,&quot;&lt;/sup&gt;)&quot;].join(&quot;&quot;)],[&quot;Supported Extensions&quot;,&quot;EXTENSIONS&quot;,n.getSupportedExtensions().join(&quot;&lt;br/&gt;\\t\\t\\t\\t\\t    &quot;)],[&quot;WebGL Renderer&quot;,&quot;RENDERER&quot;,n.getParameter(n.RENDERER)],[&quot;WebGL Vendor&quot;,&quot;VENDOR&quot;,n.getParameter(n.VENDOR)],[&quot;WebGL Version&quot;,&quot;VERSION&quot;,n.getParameter(n.VERSION)],[&quot;Shading Language Version&quot;,&quot;SHADING_LANGUAGE_VERSION&quot;,n.getParameter(n.SHADING_LANGUAGE_VERSION)],[&quot;Unmasked Renderer&quot;,&quot;UNMASKED_RENDERER&quot;,a&amp;&amp;n.getParameter(a.UNMASKED_RENDERER_WEBGL)],[&quot;Unmasked Vendor&quot;,&quot;UNMASKED_VENDOR&quot;,a&amp;&amp;n.getParameter(a.UNMASKED_VENDOR_WEBGL)],[&quot;WebGL Version&quot;,&quot;WEBGL_VERSION&quot;,t.webgl2?2:1]],c={};for(;l.length;){const[e,t,n]=l.pop();t&amp;&amp;(c[t]={label:e,value:n})}return t._glInformation=c,c},e.traverseAllPasses=()=&gt;{if(t.renderPasses)for(let n=0;n&lt;t.renderPasses.length;++n)t.renderPasses[n].traverse(e,null);e.copyParentContent(),t.notifyStartCaptureImage&amp;&amp;function(n=t.imageFormat){const r=document.createElement(&quot;canvas&quot;),o=r.getContext(&quot;2d&quot;);r.width=t.canvas.width,r.height=t.canvas.height,o.drawImage(t.canvas,0,0);const a=t.canvas.getBoundingClientRect();t.renderable.getRenderers().forEach((e=&gt;{e.getViewProps().forEach((e=&gt;{if(e.getContainer){const t=e.getContainer().getElementsByTagName(&quot;canvas&quot;);for(let e=0;e&lt;t.length;e++){const n=t[e],r=n.getBoundingClientRect(),i=r.x-a.x,s=r.y-a.y;o.drawImage(n,i,s)}}}))}));const i=r.toDataURL(n);r.remove(),e.invokeImageReady(i)}();const n=t.renderable.getChildRenderWindowsByReference();for(let t=0;t&lt;n.length;++t)e.getViewNodeFor(n[t])?.traverseAllPasses()},e.copyParentContent=()=&gt;{const e=t.rootOpenGLRenderWindow;if(!e||!t.context2D||t.children.some((e=&gt;!!e.getSelector?.())))return;const n=e.getCanvas(),r=t.canvas;t.context2D.drawImage(n,0,n.height-r.height,r.width,r.height,0,0,r.width,r.height)},e.resizeFromChildRenderWindows=()=&gt;{const n=t.renderable.getChildRenderWindowsByReference();if(n.length&gt;0){const t=[0,0];for(let r=0;r&lt;n.length;++r){const o=e.getViewNodeFor(n[r])?.getSize();o&amp;&amp;(t[0]=o[0]&gt;t[0]?o[0]:t[0],t[1]=o[1]&gt;t[1]?o[1]:t[1])}e.setSize(...t)}},e.disableCullFace=()=&gt;{t.cullFaceEnabled&amp;&amp;(t.context.disable(t.context.CULL_FACE),t.cullFaceEnabled=!1)},e.enableCullFace=()=&gt;{t.cullFaceEnabled||(t.context.enable(t.context.CULL_FACE),t.cullFaceEnabled=!0)},e.setViewStream=n=&gt;{if(t.viewStream===n)return!1;if(t.subscription&amp;&amp;(t.subscription.unsubscribe(),t.subscription=null),t.viewStream=n,t.viewStream){t.renderable.getRenderers()[0].getBackgroundByReference()[3]=0,e.setUseBackgroundImage(!0),t.subscription=t.viewStream.onImageReady((t=&gt;e.setBackgroundImage(t.image))),t.viewStream.setSize(t.size[0],t.size[1]),t.viewStream.invalidateCache(),t.viewStream.render(),e.modified()}return!0},e.createSelector=()=&gt;{const t=af.newInstance();return t.setOpenGLRenderWindow(e),t},e.delete=sn.chain((()=&gt;{t.context&amp;&amp;(jv--,Xv.forEach((e=&gt;e(jv)))),e.setContainer(),e.setViewStream()}),(function(){t.canvas.removeEventListener(&quot;webglcontextlost&quot;,qv),t.canvas.removeEventListener(&quot;webglcontextrestored&quot;,e.restoreContext)}),e.delete),e.setActiveFramebuffer=e=&gt;{t.activeFramebuffer=e};const a=e.setSize;e.setSize=(t,n)=&gt;{const r=a(t,n);return r&amp;&amp;e.invokeWindowResizeEvent({width:t,height:n}),r},e.registerGraphicsResourceUser=(n,r)=&gt;{t._graphicsResources.has(n)||e.setGraphicsResourceForObject(n,null,null);const o=t._graphicsResources.get(n);o?.users.add(r)},e.unregisterGraphicsResourceUser=(n,r)=&gt;{const o=t._graphicsResources.get(n);o&amp;&amp;(o.users.delete(r),o.users.size||(o.oglObject?.releaseGraphicsResources(e),t._graphicsResources.delete(n)))},e.getGraphicsResourceForObject=e=&gt;t._graphicsResources.get(e),e.setGraphicsResourceForObject=(n,r,o)=&gt;{if(!n)return;const a=t._graphicsResources.get(n);a?.oglObject?.releaseGraphicsResources(e),t._graphicsResources.set(n,{coreObject:n,oglObject:r,hash:o,users:a?.users??new Set})},e.getGraphicsMemoryInfo=()=&gt;{let e=0;return t._graphicsResources.forEach((({oglObject:t})=&gt;{e+=t.getAllocatedGPUMemoryInBytes()})),e},e.releaseGraphicsResources=()=&gt;{null!==t.shaderCache&amp;&amp;t.shaderCache.releaseGraphicsResources(e),t._graphicsResources.forEach((({oglObject:t})=&gt;{t.releaseGraphicsResources(e)})),t._graphicsResources.clear(),null!==t.textureUnitManager&amp;&amp;t.textureUnitManager.freeAll(),t.renderable.getRenderersByReference().forEach((t=&gt;{const n=e.getViewNodeFor(t);n?.releaseGraphicsResources()}))};const i={...e};Wv.forEach((n=&gt;{e[n]=(...e)=&gt;t.rootOpenGLRenderWindow?t.rootOpenGLRenderWindow[n](...e):i[n](...e)}))}const Jv={cullFaceEnabled:!1,shaderCache:null,initialized:!1,context:null,context2D:null,canvas:null,cursorVisibility:!0,cursor:&quot;pointer&quot;,textureUnitManager:null,textureResourceIds:null,containerSize:null,renderPasses:[],notifyStartCaptureImage:!1,webgl2:!1,defaultToWebgl2:!0,activeFramebuffer:null,imageFormat:&quot;image/png&quot;,useOffScreen:!1,useBackgroundImage:!1};const Zv=sn.newInstance((function(e,t,n={}){Object.assign(t,Jv,n),Gv.extend(e,t,n),t.canvas||(t.canvas=document.createElement(&quot;canvas&quot;),t.canvas.style.width=&quot;100%&quot;),t.selector||(t.selector=af.newInstance(),t.selector.setOpenGLRenderWindow(e)),t.bgImage=new Image,t.bgImage.style.position=&quot;absolute&quot;,t.bgImage.style.left=&quot;0&quot;,t.bgImage.style.top=&quot;0&quot;,t.bgImage.style.width=&quot;100%&quot;,t.bgImage.style.height=&quot;100%&quot;,t.bgImage.style.zIndex=&quot;-1&quot;,t._textureResourceIds=new Map,t._graphicsResources=new Map,t._glInformation=null,t.myFactory=yn.newInstance(),t.shaderCache=Ev.newInstance(),t.shaderCache.setOpenGLRenderWindow(e),t.renderPasses[0]=wv.newInstance(),sn.get(e,t,[&quot;shaderCache&quot;,&quot;textureUnitManager&quot;,&quot;webgl2&quot;,&quot;useBackgroundImage&quot;,&quot;activeFramebuffer&quot;,&quot;rootOpenGLRenderWindow&quot;]),sn.setGet(e,t,[&quot;initialized&quot;,&quot;context&quot;,&quot;context2D&quot;,&quot;canvas&quot;,&quot;renderPasses&quot;,&quot;notifyStartCaptureImage&quot;,&quot;defaultToWebgl2&quot;,&quot;cursor&quot;,&quot;useOffScreen&quot;]),sn.setGetArray(e,t,[&quot;size&quot;],2),sn.event(e,t,&quot;imageReady&quot;),sn.event(e,t,&quot;windowResizeEvent&quot;),Yv(e,t)}),&quot;vtkOpenGLRenderWindow&quot;);Oh(&quot;WebGL&quot;,Zv),vn(&quot;vtkRenderWindow&quot;,Zv);const Qv={device:null,handle:null};function $v(e,t,n={}){Object.assign(t,Qv,n),sn.obj(e,t),sn.get(e,t,[&quot;lastCameraMTime&quot;]),sn.setGet(e,t,[&quot;device&quot;,&quot;handle&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUShaderModule&quot;),e.initialize=(e,n)=&gt;{t.device=e,t.handle=t.device.getHandle().createShaderModule({code:n.getCode()})}}(e,t)}var eT={newInstance:sn.newInstance($v,&quot;vtkWebGPUShaderModule&quot;),extend:$v};const tT={shaderModules:null,device:null,window:null};function nT(e,t,n={}){Object.assign(t,tT,n),t._shaderModules=new Map,sn.obj(e,t),sn.setGet(e,t,[&quot;device&quot;,&quot;window&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUShaderCache&quot;),e.getShaderModule=e=&gt;{const n=e.getType(),r=e.getHash(),o=t._shaderModules.keys();for(let e=0;e&lt;o.length;e++){const a=o[e];if(a.getHash()===r&amp;&amp;a.getType()===n)return t._shaderModules.get(a)}const a=eT.newInstance();return a.initialize(t.device,e),t._shaderModules.set(e,a),a}}(e,t)}var rT={newInstance:sn.newInstance(nT,&quot;vtkWebGPUShaderCache&quot;),extend:nT,substitute:function(e,t,n,r=!0){const o=Array.isArray(n)?n.join(&quot;\\n&quot;):n;let a=!1;-1!==e.search(t)&amp;&amp;(a=!0);let i=&quot;&quot;;r&amp;&amp;(i=&quot;g&quot;);const s=new RegExp(t,i);return{replace:a,result:e.replace(s,o)}}};const oT={device:null,handle:null,label:null};function aT(e,t,n={}){Object.assign(t,oT,n),sn.obj(e,t),t.bindables=[],t.bindGroupTime={},sn.obj(t.bindGroupTime,{mtime:0}),sn.get(e,t,[&quot;bindGroupTime&quot;,&quot;handle&quot;,&quot;sizeInBytes&quot;,&quot;usage&quot;]),sn.setGet(e,t,[&quot;label&quot;,&quot;device&quot;,&quot;arrayInformation&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUBindGroup&quot;),e.setBindables=n=&gt;{if(t.bindables.length===n.length){let e=!0;for(let r=0;r&lt;t.bindables.length;r++)t.bindables[r]!==n[r]&amp;&amp;(e=!1);if(e)return}t.bindables=n,e.modified()},e.getBindGroupLayout=e=&gt;{const n=[];for(let e=0;e&lt;t.bindables.length;e++){const r=t.bindables[e].getBindGroupLayoutEntry();r.binding=e,n.push(r)}return e.getBindGroupLayout({entries:n})},e.getBindGroup=n=&gt;{let r=e.getMTime();for(let e=0;e&lt;t.bindables.length;e++){const n=t.bindables[e].getBindGroupTime().getMTime();r=n&gt;r?n:r}if(r&lt;t.bindGroupTime.getMTime())return t.bindGroup;const o=[];for(let e=0;e&lt;t.bindables.length;e++){const n=t.bindables[e].getBindGroupEntry();n.binding=e,o.push(n)}return t.bindGroup=n.getHandle().createBindGroup({layout:e.getBindGroupLayout(n),entries:o,label:t.label}),t.bindGroupTime.modified(),t.bindGroup},e.getShaderCode=e=&gt;{const n=[],r=e.getBindGroupLayoutCount(t.label);for(let e=0;e&lt;t.bindables.length;e++)n.push(t.bindables[e].getShaderCode(e,r));return n.join(&quot;\\n&quot;)}}(e,t)}var iT={newInstance:sn.newInstance(aT),extend:aT};const sT={extraPipelineSettings:null,handle:null,layouts:null,renderEncoder:null,shaderDescriptions:null,vertexState:null,topology:null,pipelineDescription:null};function lT(e,t,n={}){Object.assign(t,sT,n),Vt(e,t),t.layouts=[],t.shaderDescriptions=[],Bt(e,t,[&quot;handle&quot;,&quot;pipelineDescription&quot;]),Gt(e,t,[&quot;device&quot;,&quot;extraPipelineSettings&quot;,&quot;renderEncoder&quot;,&quot;topology&quot;,&quot;vertexState&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUPipeline&quot;),e.getShaderDescriptions=()=&gt;t.shaderDescriptions,e.applyPipelineSettings=(e,t)=&gt;t?{...e,...t,primitive:{...e.primitive||{},...t.primitive||{}},depthStencil:{...e.depthStencil||{},...t.depthStencil||{}},fragment:{...e.fragment||{},...t.fragment||{}}}:e,e.initialize=(n,r)=&gt;{t.pipelineDescription=e.applyPipelineSettings(t.renderEncoder.getPipelineSettings(),t.extraPipelineSettings),t.pipelineDescription.primitive.topology=t.topology,t.pipelineDescription.vertex=t.vertexState,t.pipelineDescription.label=r;const o=[];for(let e=0;e&lt;t.layouts.length;e++)o.push(t.layouts[e].layout);t.pipelineLayout=n.getHandle().createPipelineLayout({bindGroupLayouts:o}),t.pipelineDescription.layout=t.pipelineLayout;for(let e=0;e&lt;t.shaderDescriptions.length;e++){const r=t.shaderDescriptions[e],o=n.getShaderModule(r);&quot;vertex&quot;===r.getType()&amp;&amp;(t.pipelineDescription.vertex.module=o.getHandle(),t.pipelineDescription.vertex.entryPoint=&quot;main&quot;),&quot;fragment&quot;===r.getType()&amp;&amp;(t.pipelineDescription.fragment.module=o.getHandle(),t.pipelineDescription.fragment.entryPoint=&quot;main&quot;)}t.handle=n.getHandle().createRenderPipeline(t.pipelineDescription)},e.getShaderDescription=e=&gt;{for(let n=0;n&lt;t.shaderDescriptions.length;n++)if(t.shaderDescriptions[n].getType()===e)return t.shaderDescriptions[n];return null},e.addBindGroupLayout=e=&gt;{e&amp;&amp;t.layouts.push({layout:e.getBindGroupLayout(t.device),label:e.getLabel()})},e.getBindGroupLayout=e=&gt;t.layouts[e].layout,e.getBindGroupLayoutCount=e=&gt;{for(let n=0;n&lt;t.layouts.length;n++)if(t.layouts[n].label===e)return n;return 0},e.bindVertexInput=(e,t)=&gt;{t.bindBuffers(e)}}(e,t)}var cT={newInstance:Xt(lT,&quot;vtkWebGPUPipeline&quot;),extend:lT};const uT={type:null,hash:null,code:null,outputNames:null,outputTypes:null};function dT(e,t,n={}){Object.assign(t,uT,n),t.outputNames=[],t.outputTypes=[],t.outputInterpolations=[],t.builtinOutputNames=[],t.builtinOutputTypes=[],t.builtinInputNames=[],t.builtinInputTypes=[],sn.obj(e,t),sn.setGet(e,t,[&quot;type&quot;,&quot;hash&quot;,&quot;code&quot;]),sn.getArray(e,t,[&quot;outputTypes&quot;,&quot;outputNames&quot;,&quot;outputInterpolations&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUShaderDescription&quot;),e.hasOutput=e=&gt;t.outputNames.includes(e),e.addOutput=(e,n,r=void 0)=&gt;{t.outputTypes.push(e),t.outputNames.push(n),t.outputInterpolations.push(r)},e.addBuiltinOutput=(e,n)=&gt;{t.builtinOutputTypes.push(e),t.builtinOutputNames.push(n)},e.addBuiltinInput=(e,n)=&gt;{t.builtinInputTypes.push(e),t.builtinInputNames.push(n)},e.replaceShaderCode=(e,n)=&gt;{const r=[];let o=[];if(n&amp;&amp;r.push(n.getShaderCode()),e||t.builtinInputNames.length){const n=[];if(n.push(`struct ${t.type}Input\\n{`),e){const t=e.getOutputNamesByReference(),r=e.getOutputTypesByReference(),o=e.getOutputInterpolationsByReference();for(let e=0;e&lt;t.length;e++)void 0!==o[e]?n.push(`  @location(${e}) @interpolate(${o[e]}) ${t[e]} : ${r[e]},`):n.push(`  @location(${e}) ${t[e]} : ${r[e]},`)}for(let e=0;e&lt;t.builtinInputNames.length;e++)n.push(`  ${t.builtinInputNames[e]} : ${t.builtinInputTypes[e]},`);n.length&gt;1&amp;&amp;(n.push(&quot;};&quot;),o=n,r[r.length-1]+=&quot;,&quot;,r.push(`input: ${t.type}Input`))}if(r.length&amp;&amp;(t.code=rT.substitute(t.code,&quot;//VTK::IOStructs::Input&quot;,r).result),t.outputNames.length+t.builtinOutputNames.length){const e=[`struct ${t.type}Output\\n{`];for(let n=0;n&lt;t.outputNames.length;n++)void 0!==t.outputInterpolations[n]?e.push(`  @location(${n}) @interpolate(${t.outputInterpolations[n]}) ${t.outputNames[n]} : ${t.outputTypes[n]},`):e.push(`  @location(${n}) ${t.outputNames[n]} : ${t.outputTypes[n]},`);for(let n=0;n&lt;t.builtinOutputNames.length;n++)e.push(`  ${t.builtinOutputNames[n]} : ${t.builtinOutputTypes[n]},`);e.push(&quot;};&quot;),o=o.concat(e),t.code=rT.substitute(t.code,&quot;//VTK::IOStructs::Output&quot;,[`-&gt; ${t.type}Output`]).result}t.code=rT.substitute(t.code,&quot;//VTK::IOStructs::Dec&quot;,o).result}}(e,t)}var pT={newInstance:sn.newInstance(dT,&quot;vtkWebGPUShaderDescription&quot;),extend:dT};const fT={r8unorm:{numComponents:1,nativeType:Uint8Array,stride:1,elementSize:1,sampleType:&quot;float&quot;},r8snorm:{numComponents:1,nativeType:Int8Array,stride:1,elementSize:1,sampleType:&quot;float&quot;},r8uint:{numComponents:1,nativeType:Uint8Array,stride:1,elementSize:1,sampleType:&quot;uint&quot;},r8sint:{numComponents:1,nativeType:Int8Array,stride:1,elementSize:1,sampleType:&quot;sint&quot;},r16uint:{numComponents:1,nativeType:Uint16Array,stride:2,elementSize:2,sampleType:&quot;uint&quot;},r16sint:{numComponents:1,nativeType:Int16Array,stride:2,elementSize:2,sampleType:&quot;sint&quot;},r16float:{numComponents:1,nativeType:Float32Array,stride:2,elementSize:2,sampleType:&quot;float&quot;},rg8unorm:{numComponents:2,nativeType:Uint8Array,stride:2,elementSize:1,sampleType:&quot;float&quot;},rg8snorm:{numComponents:2,nativeType:Int8Array,stride:2,elementSize:1,sampleType:&quot;float&quot;},rg8uint:{numComponents:2,nativeType:Uint8Array,stride:2,elementSize:1,sampleType:&quot;uint&quot;},rg8sint:{numComponents:2,nativeType:Int8Array,stride:2,elementSize:1,sampleType:&quot;sint&quot;},r32uint:{numComponents:1,nativeType:Uint32Array,stride:4,elementSize:4,sampleType:&quot;uint&quot;},r32sint:{numComponents:1,nativeType:Int32Array,stride:4,elementSize:4,sampleType:&quot;sint&quot;},r32float:{numComponents:1,nativeType:Float32Array,stride:4,elementSize:4,sampleType:&quot;unfilterable-float&quot;},rg16uint:{numComponents:2,nativeType:Uint16Array,stride:4,elementSize:2,sampleType:&quot;uint&quot;},rg16sint:{numComponents:2,nativeType:Int16Array,stride:4,elementSize:2,sampleType:&quot;sint&quot;},rg16float:{numComponents:2,nativeType:Float32Array,stride:4,elementSize:2,sampleType:&quot;float&quot;},rgba8unorm:{numComponents:4,nativeType:Uint8Array,stride:4,elementSize:1,sampleType:&quot;float&quot;},&quot;rgba8unorm-srgb&quot;:{numComponents:4,nativeType:Uint8Array,stride:4,elementSize:1,sampleType:&quot;float&quot;},rgba8snorm:{numComponents:4,nativeType:Int8Array,stride:4,elementSize:1,sampleType:&quot;float&quot;},rgba8uint:{numComponents:4,nativeType:Uint8Array,stride:4,elementSize:1,sampleType:&quot;uint&quot;},rgba8sint:{numComponents:4,nativeType:Int8Array,stride:4,elementSize:1,sampleType:&quot;sint&quot;},bgra8unorm:{numComponents:4,nativeType:Uint8Array,stride:4,elementSize:1,sampleType:&quot;float&quot;},&quot;bgra8unorm-srgb&quot;:{numComponents:4,nativeType:Uint8Array,stride:4,elementSize:1,sampleType:&quot;float&quot;},rgb9e5ufloat:{numComponents:4,nativeType:Uint32Array,stride:4,sampleType:&quot;float&quot;},rgb10a2unorm:{numComponents:4,nativeType:Uint32Array,stride:4,sampleType:&quot;float&quot;},rg11b10ufloat:{numComponents:4,nativeType:Float32Array,stride:4,sampleType:&quot;float&quot;},rg32uint:{numComponents:2,nativeType:Uint32Array,stride:8,elementSize:4,sampleType:&quot;uint&quot;},rg32sint:{numComponents:2,nativeType:Int32Array,stride:8,elementSize:4,sampleType:&quot;sint&quot;},rg32float:{numComponents:2,nativeType:Float32Array,stride:8,elementSize:4,sampleType:&quot;unfilterable-float&quot;},rgba16uint:{numComponents:4,nativeType:Uint16Array,stride:8,elementSize:2,sampleType:&quot;uint&quot;},rgba16sint:{numComponents:4,nativeType:Int16Array,stride:8,elementSize:2,sampleType:&quot;sint&quot;},rgba16float:{numComponents:4,nativeType:Float32Array,stride:8,elementSize:2,sampleType:&quot;float&quot;},rgba32uint:{numComponents:4,nativeType:Uint32Array,stride:16,elementSize:4,sampleType:&quot;uint&quot;},rgba32sint:{numComponents:4,nativeType:Int32Array,stride:16,elementSize:4,sampleType:&quot;sint&quot;},rgba32float:{numComponents:4,nativeType:Float32Array,stride:16,elementSize:4,sampleType:&quot;unfilterable-float&quot;},stencil8:{numComponents:1,nativeType:Uint8Array,stride:1,elementSize:1,sampleType:&quot;uint&quot;},depth16unorm:{numComponents:1,nativeType:Uint16Array,stride:2,elementSize:2,sampleType:&quot;depth&quot;},depth24plus:{numComponents:1,nativeType:Uint32Array,stride:4,elementSize:3,sampleType:&quot;depth&quot;},&quot;depth24plus-stencil8&quot;:{numComponents:2,nativeType:Uint32Array,stride:4,sampleType:&quot;mixed&quot;},depth32float:{numComponents:1,nativeType:Float32Array,stride:4,elementSize:4,sampleType:&quot;depth&quot;}};var gT={getDetailsFromTextureFormat:function(e){return!e||e.length&lt;6?0:e in fT==!0?fT[e]:(Tt(`unknown format ${e}`),null)},getByteStrideFromBufferFormat:function(e){if(!e||e.length&lt;5)return 0;let t=1;&quot;x&quot;===e[e.length-2]&amp;&amp;(t=Number(e[e.length-1]));const n=1===t?e.length-1:e.length-3,r=Number(e[n]);return Number.isNaN(r)?(Tt(`unknown format ${e}`),0):t*(5-r/2)},getNumberOfComponentsFromBufferFormat:function(e){if(!e||e.length&lt;5)return 0;let t=1;return&quot;x&quot;===e[e.length-2]&amp;&amp;(t=Number(e[e.length-1])),t},getNativeTypeFromBufferFormat:function(e){if(!e||e.length&lt;5)return 0;let t;if(&quot;f&quot;===e[0])t=&quot;Float&quot;;else if(&quot;s&quot;===e[0])t=&quot;Int&quot;;else{if(&quot;u&quot;!==e[0])return void Tt(`unknown format ${e}`);t=&quot;Uint&quot;}const n=e.split(&quot;x&quot;)[0],r=Number(n[n.length-1]);if(!Number.isNaN(r))return t+=8*(5-r/2),t+=&quot;Array&quot;,t;Tt(`unknown format ${e}`)},getShaderTypeFromBufferFormat:function(e){let t;if(&quot;f&quot;===e[0]||&quot;n&quot;===e[1])t=&quot;f32&quot;;else if(&quot;s&quot;===e[0]&amp;&amp;&quot;i&quot;===e[1])t=&quot;i32&quot;;else{if(&quot;u&quot;!==e[0]||&quot;i&quot;!==e[1])return void Tt(`unknown format ${e}`);t=&quot;u32&quot;}let n=1;return&quot;x&quot;===e[e.length-2]&amp;&amp;(n=Number(e[e.length-1])),4===n?`vec4&lt;${t}&gt;`:3===n?`vec3&lt;${t}&gt;`:2===n?`vec2&lt;${t}&gt;`:t},getByteStrideFromShaderFormat:function(e){if(!e)return 0;let t=1;return&quot;vec&quot;===e.substring(0,3)?t=Number(e[3]):&quot;mat&quot;===e.substring(0,3)&amp;&amp;(t=e[3]*e[5]),4*t},getNativeTypeFromShaderFormat:function(e){if(e)return e.includes(&quot;f32&quot;)?&quot;Float32Array&quot;:e.includes(&quot;i32&quot;)?&quot;Int32Array&quot;:e.includes(&quot;u32&quot;)?&quot;Uint32Array&quot;:void Tt(`unknown format ${e}`)}};function mT(e,t){if(e===t)return!0;if(null==e||null==t)return!1;if(e.length!==t.length)return!1;for(let n=0;n&lt;e.length;++n)if(!t.includes(e[n]))return!1;return!0}const hT={inputs:null,bindingDescriptions:!1,attributeDescriptions:null,indexBuffer:null};function vT(e,t,n={}){Object.assign(t,hT,n),Vt(e,t),t.bindingDescriptions=[],t.attributeDescriptions=[],t.inputs=[],Gt(e,t,[&quot;created&quot;,&quot;device&quot;,&quot;handle&quot;,&quot;indexBuffer&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUVertexInput&quot;),e.addBuffer=(e,n,r=&quot;vertex&quot;)=&gt;{let o=n;Array.isArray(o)||(o=[o]);for(let n=0;n&lt;t.inputs.length;n++)if(mT(t.inputs[n].names,o)){if(t.inputs[n].buffer===e)return;return void(t.inputs[n].buffer=e)}t.inputs.push({buffer:e,stepMode:r,names:o}),t.inputs=t.inputs.sort(((e,t)=&gt;e.names[0]&lt;t.names[0]?-1:e.names[0]&gt;t.names[0]?1:0))},e.removeBufferIfPresent=e=&gt;{for(let n=0;n&lt;t.inputs.length;n++)t.inputs[n].names.includes(e)&amp;&amp;t.inputs.splice(n,1)},e.getBuffer=e=&gt;{for(let n=0;n&lt;t.inputs.length;n++)if(t.inputs[n].names.includes(e))return t.inputs[n].buffer;return null},e.hasAttribute=e=&gt;{for(let n=0;n&lt;t.inputs.length;n++)if(t.inputs[n].names.includes(e))return!0;return!1},e.getAttributeTime=e=&gt;{for(let n=0;n&lt;t.inputs.length;n++)if(t.inputs[n].names.includes(e))return t.inputs[n].buffer.getSourceTime();return 0},e.getShaderCode=()=&gt;{let e=&quot;&quot;,n=0;for(let r=0;r&lt;t.inputs.length;r++)for(let o=0;o&lt;t.inputs[r].names.length;o++){const a=t.inputs[r].buffer.getArrayInformation()[o],i=gT.getShaderTypeFromBufferFormat(a.format);n&gt;0&amp;&amp;(e+=&quot;,\\n&quot;),e=`${e}  @location(${n}) ${t.inputs[r].names[o]} : ${i}`,n++}return e},e.getVertexInputInformation=()=&gt;{const e={};if(t.inputs.length){const n=[];let r=0;for(let e=0;e&lt;t.inputs.length;e++){const o=t.inputs[e].buffer,a={arrayStride:o.getStrideInBytes(),stepMode:t.inputs[e].stepMode,attributes:[]},i=o.getArrayInformation();for(let n=0;n&lt;t.inputs[e].names.length;n++)a.attributes.push({shaderLocation:r,offset:i[n].offset,format:i[n].format}),r++;n.push(a)}e.buffers=n}return e},e.bindBuffers=e=&gt;{for(let n=0;n&lt;t.inputs.length;n++)e.setVertexBuffer(n,t.inputs[n].buffer.getHandle());t.indexBuffer&amp;&amp;e.setIndexBuffer(t.indexBuffer.getHandle(),t.indexBuffer.getArrayInformation()[0].format)},e.getReady=()=&gt;{},e.releaseGraphicsResources=()=&gt;{t.created&amp;&amp;(t.inputs=[],t.bindingDescriptions=[],t.attributeDescriptions=[])}}(e,t)}var TT={newInstance:Xt(vT,&quot;vtkWebGPUVertexInput&quot;),extend:vT};const xT={additionalBindables:void 0,bindGroup:null,device:null,fragmentShaderTemplate:null,numberOfInstances:1,numberOfVertices:0,pipelineHash:null,shaderReplacements:null,SSBO:null,textureViews:null,topology:&quot;triangle-list&quot;,UBO:null,vertexShaderTemplate:null,WebGPURenderer:null};function yT(e,t,n={}){Object.assign(t,xT,n),pn.extend(e,t,n),t.textureViews=[],t.vertexInput=TT.newInstance(),t.bindGroup=iT.newInstance({label:&quot;mapperBG&quot;}),t.additionalBindables=[],t.fragmentShaderTemplate=t.fragmentShaderTemplate||&quot;\\n//VTK::Renderer::Dec\\n\\n//VTK::Color::Dec\\n\\n//VTK::Normal::Dec\\n\\n//VTK::TCoord::Dec\\n\\n//VTK::Select::Dec\\n\\n//VTK::RenderEncoder::Dec\\n\\n//VTK::Mapper::Dec\\n\\n//VTK::IOStructs::Dec\\n\\n@fragment\\nfn main(\\n//VTK::IOStructs::Input\\n)\\n//VTK::IOStructs::Output\\n{\\n  var output : fragmentOutput;\\n\\n  //VTK::Color::Impl\\n\\n  //VTK::Normal::Impl\\n\\n  //VTK::Light::Impl\\n\\n  //VTK::TCoord::Impl\\n\\n  //VTK::Select::Impl\\n\\n  // var computedColor:vec4&lt;f32&gt; = vec4&lt;f32&gt;(1.0,0.5,0.5,1.0);\\n\\n  //VTK::RenderEncoder::Impl\\n  return output;\\n}\\n&quot;,t.vertexShaderTemplate=t.vertexShaderTemplate||&quot;\\n//VTK::Renderer::Dec\\n\\n//VTK::Color::Dec\\n\\n//VTK::Normal::Dec\\n\\n//VTK::TCoord::Dec\\n\\n//VTK::Select::Dec\\n\\n//VTK::Mapper::Dec\\n\\n//VTK::IOStructs::Dec\\n\\n@vertex\\nfn main(\\n//VTK::IOStructs::Input\\n)\\n//VTK::IOStructs::Output\\n{\\n  var output : vertexOutput;\\n\\n  // var vertex: vec4&lt;f32&gt; = vertexBC;\\n\\n  //VTK::Color::Impl\\n\\n  //VTK::Normal::Impl\\n\\n  //VTK::TCoord::Impl\\n\\n  //VTK::Select::Impl\\n\\n  //VTK::Position::Impl\\n\\n  return output;\\n}\\n&quot;,t.shaderReplacements=new Map,sn.get(e,t,[&quot;pipeline&quot;,&quot;vertexInput&quot;]),sn.setGet(e,t,[&quot;additionalBindables&quot;,&quot;device&quot;,&quot;fragmentShaderTemplate&quot;,&quot;interpolate&quot;,&quot;numberOfInstances&quot;,&quot;numberOfVertices&quot;,&quot;pipelineHash&quot;,&quot;shaderReplacements&quot;,&quot;SSBO&quot;,&quot;textureViews&quot;,&quot;topology&quot;,&quot;UBO&quot;,&quot;vertexShaderTemplate&quot;,&quot;WebGPURenderer&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUSimpleMapper&quot;),e.generateShaderDescriptions=(n,r,o)=&gt;{const a=pT.newInstance({type:&quot;vertex&quot;,hash:n,code:t.vertexShaderTemplate}),i=pT.newInstance({type:&quot;fragment&quot;,hash:n,code:t.fragmentShaderTemplate}),s=r.getShaderDescriptions();s.push(a),s.push(i);const l=t.vertexShaderTemplate+t.fragmentShaderTemplate,c=new RegExp(&quot;//VTK::[^:]*::&quot;,&quot;g&quot;),u=l.match(c).filter(((e,t,n)=&gt;n.indexOf(e)===t)),d=u.map((e=&gt;`replaceShader${e.substring(7,e.length-2)}`));for(let e=0;e&lt;d.length;e++){const a=d[e];&quot;replaceShaderIOStructs&quot;!==a&amp;&amp;t.shaderReplacements.has(a)&amp;&amp;t.shaderReplacements.get(a)(n,r,o)}e.replaceShaderIOStructs(n,r,o)},e.replaceShaderIOStructs=(e,t,n)=&gt;{const r=t.getShaderDescription(&quot;vertex&quot;);r.replaceShaderCode(null,n),t.getShaderDescription(&quot;fragment&quot;).replaceShaderCode(r)},e.replaceShaderRenderEncoder=(e,n,r)=&gt;{t.renderEncoder.replaceShaderCode(n)},t.shaderReplacements.set(&quot;replaceShaderRenderEncoder&quot;,e.replaceShaderRenderEncoder),e.replaceShaderRenderer=(e,n,r)=&gt;{if(!t.WebGPURenderer)return;const o=t.WebGPURenderer.getBindGroup().getShaderCode(n),a=n.getShaderDescription(&quot;vertex&quot;);let i=a.getCode();i=rT.substitute(i,&quot;//VTK::Renderer::Dec&quot;,[o]).result,a.setCode(i);const s=n.getShaderDescription(&quot;fragment&quot;);i=s.getCode(),i=rT.substitute(i,&quot;//VTK::Renderer::Dec&quot;,[o]).result,s.setCode(i)},t.shaderReplacements.set(&quot;replaceShaderRenderer&quot;,e.replaceShaderRenderer),e.replaceShaderMapper=(e,n,r)=&gt;{const o=t.bindGroup.getShaderCode(n),a=n.getShaderDescription(&quot;vertex&quot;);let i=a.getCode();i=rT.substitute(i,&quot;//VTK::Mapper::Dec&quot;,[o]).result,a.setCode(i);const s=n.getShaderDescription(&quot;fragment&quot;);s.addBuiltinInput(&quot;bool&quot;,&quot;@builtin(front_facing) frontFacing&quot;),i=s.getCode(),i=rT.substitute(i,&quot;//VTK::Mapper::Dec&quot;,[o]).result,s.setCode(i)},t.shaderReplacements.set(&quot;replaceShaderMapper&quot;,e.replaceShaderMapper),e.replaceShaderPosition=(e,t,n)=&gt;{const r=t.getShaderDescription(&quot;vertex&quot;);r.addBuiltinOutput(&quot;vec4&lt;f32&gt;&quot;,&quot;@builtin(position) Position&quot;);let o=r.getCode();o=rT.substitute(o,&quot;//VTK::Position::Impl&quot;,[&quot;    output.Position = rendererUBO.SCPCMatrix*vertexBC;&quot;]).result,r.setCode(o)},t.shaderReplacements.set(&quot;replaceShaderPosition&quot;,e.replaceShaderPosition),e.replaceShaderTCoord=(e,t,n)=&gt;{t.getShaderDescription(&quot;vertex&quot;).addOutput(&quot;vec2&lt;f32&gt;&quot;,&quot;tcoordVS&quot;)},t.shaderReplacements.set(&quot;replaceShaderTCoord&quot;,e.replaceShaderTCoord),e.addTextureView=e=&gt;{t.textureViews.includes(e)||t.textureViews.push(e)},e.prepareToDraw=n=&gt;{t.renderEncoder=n,e.updateInput(),e.updateBuffers(),e.updateBindings(),e.updatePipeline()},e.updateInput=()=&gt;{},e.updateBuffers=()=&gt;{},e.updateBindings=()=&gt;{t.bindGroup.setBindables(e.getBindables())},e.computePipelineHash=()=&gt;{},e.getPipelineSettings=()=&gt;null,e.registerDrawCallback=n=&gt;{n.registerDrawCallback(t.pipeline,e.draw)},e.prepareAndDraw=n=&gt;{e.prepareToDraw(n),n.setPipeline(t.pipeline),e.draw(n)},e.draw=e=&gt;{const n=e.getBoundPipeline();e.activateBindGroup(t.bindGroup),t.WebGPURenderer&amp;&amp;t.WebGPURenderer.bindUBO(e),n.bindVertexInput(e,t.vertexInput);const r=t.vertexInput.getIndexBuffer();r?e.drawIndexed(r.getIndexCount(),t.numberOfInstances,0,0,0):e.draw(t.numberOfVertices,t.numberOfInstances,0,0)},e.getBindables=()=&gt;{const e=[...t.additionalBindables];t.UBO&amp;&amp;e.push(t.UBO),t.SSBO&amp;&amp;e.push(t.SSBO);for(let n=0;n&lt;t.textureViews.length;n++){e.push(t.textureViews[n]);const r=t.textureViews[n].getSampler();r&amp;&amp;e.push(r)}return e},e.updatePipeline=()=&gt;{e.computePipelineHash(),t.pipeline=t.device.getPipeline(t.pipelineHash),t.pipeline||(t.pipeline=cT.newInstance(),t.pipeline.setDevice(t.device),t.WebGPURenderer&amp;&amp;t.pipeline.addBindGroupLayout(t.WebGPURenderer.getBindGroup()),t.pipeline.addBindGroupLayout(t.bindGroup),e.generateShaderDescriptions(t.pipelineHash,t.pipeline,t.vertexInput),t.pipeline.setExtraPipelineSettings(e.getPipelineSettings()),t.pipeline.setTopology(t.topology),t.pipeline.setRenderEncoder(t.renderEncoder),t.pipeline.setVertexState(t.vertexInput.getVertexInputInformation()),t.device.createPipeline(t.pipelineHash,t.pipeline))}}(e,t)}var bT={newInstance:sn.newInstance(yT,&quot;vtkWebGPUSimpleMapper&quot;),extend:yT};const AT={};function CT(e,t,n={}){Object.assign(t,AT,n),bT.extend(e,t,n),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUFullScreenQuad&quot;),e.replaceShaderPosition=(e,t,n)=&gt;{const r=t.getShaderDescription(&quot;vertex&quot;);r.addBuiltinOutput(&quot;vec4&lt;f32&gt;&quot;,&quot;@builtin(position) Position&quot;),r.addOutput(&quot;vec4&lt;f32&gt;&quot;,&quot;vertexVC&quot;);let o=r.getCode();o=rT.substitute(o,&quot;//VTK::Position::Impl&quot;,[&quot;output.tcoordVS = vec2&lt;f32&gt;(vertexBC.x * 0.5 + 0.5, 1.0 - vertexBC.y * 0.5 - 0.5);&quot;,&quot;output.Position = vec4&lt;f32&gt;(vertexBC, 1.0);&quot;,&quot;output.vertexVC = vec4&lt;f32&gt;(vertexBC, 1);&quot;]).result,r.setCode(o)},t.shaderReplacements.set(&quot;replaceShaderPosition&quot;,e.replaceShaderPosition),e.updateBuffers=()=&gt;{const e=t.device.getBufferManager().getFullScreenQuadBuffer();t.vertexInput.addBuffer(e,[&quot;vertexBC&quot;]),t.numberOfVertices=6}}(e,t)}var ST={newInstance:sn.newInstance(CT,&quot;vtkWebGPUFullScreenQuad&quot;),extend:CT};const PT=[&quot;setBindGroup&quot;,&quot;setIndexBuffer&quot;,&quot;setVertexBuffer&quot;,&quot;draw&quot;,&quot;drawIndexed&quot;];const wT={description:null,handle:null,boundPipeline:null,pipelineHash:null,pipelineSettings:null,replaceShaderCodeFunction:null,depthTextureView:null,label:null};function IT(e,t,n={}){Object.assign(t,wT,n),Vt(e,t),t.description={colorAttachments:[{view:void 0,loadOp:&quot;load&quot;,storeOp:&quot;store&quot;}],depthStencilAttachment:{view:void 0,depthLoadOp:&quot;clear&quot;,depthClearValue:0,depthStoreOp:&quot;store&quot;}},t.replaceShaderCodeFunction=e=&gt;{const t=e.getShaderDescription(&quot;fragment&quot;);t.addOutput(&quot;vec4&lt;f32&gt;&quot;,&quot;outColor&quot;);let n=t.getCode();n=rT.substitute(n,&quot;//VTK::RenderEncoder::Impl&quot;,[&quot;output.outColor = computedColor;&quot;]).result,t.setCode(n)},t.pipelineSettings={primitive:{cullMode:&quot;none&quot;},depthStencil:{depthWriteEnabled:!0,depthCompare:&quot;greater-equal&quot;,format:&quot;depth32float&quot;},fragment:{targets:[{format:&quot;rgba16float&quot;,blend:{color:{srcFactor:&quot;src-alpha&quot;,dstFactor:&quot;one-minus-src-alpha&quot;},alpha:{srcFactor:&quot;one&quot;,dstFactor:&quot;one-minus-src-alpha&quot;}}}]}},t.colorTextureViews=[],Bt(e,t,[&quot;boundPipeline&quot;,&quot;colorTextureViews&quot;]),Gt(e,t,[&quot;depthTextureView&quot;,&quot;description&quot;,&quot;handle&quot;,&quot;label&quot;,&quot;pipelineHash&quot;,&quot;pipelineSettings&quot;,&quot;replaceShaderCodeFunction&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPURenderEncoder&quot;),e.begin=e=&gt;{t.drawCallbacks=[],t.handle=e.beginRenderPass(t.description),t.label&amp;&amp;t.handle.pushDebugGroup(t.label)},e.end=()=&gt;{for(let n=0;n&lt;t.drawCallbacks.length;n++){const r=t.drawCallbacks[n],o=r.pipeline;e.setPipeline(o);for(let t=0;t&lt;r.callbacks.length;t++)r.callbacks[t](e)}t.label&amp;&amp;t.handle.popDebugGroup(),t.handle.end(),t.boundPipeline=null},e.setPipeline=e=&gt;{if(t.boundPipeline===e)return;t.handle.setPipeline(e.getHandle());const n=e.getPipelineDescription();if(t.colorTextureViews.length!==n.fragment.targets.length)console.log(`mismatched attachment counts on pipeline ${n.fragment.targets.length} while encoder has ${t.colorTextureViews.length}`),console.trace();else for(let e=0;e&lt;t.colorTextureViews.length;e++){const r=t.colorTextureViews[e].getTexture()?.getFormat();r&amp;&amp;r!==n.fragment.targets[e].format&amp;&amp;(console.log(`mismatched attachments for attachment ${e} on pipeline ${n.fragment.targets[e].format} while encoder has ${r}`),console.trace())}if(!t.depthTextureView!=!(&quot;depthStencil&quot;in n))console.log(&quot;mismatched depth attachments&quot;),console.trace();else if(t.depthTextureView){const e=t.depthTextureView.getTexture()?.getFormat();e&amp;&amp;e!==n.depthStencil.format&amp;&amp;(console.log(`mismatched depth attachments on pipeline ${n.depthStencil.format} while encoder has ${e}`),console.trace())}t.boundPipeline=e},e.replaceShaderCode=e=&gt;{t.replaceShaderCodeFunction(e)},e.setColorTextureView=(e,n)=&gt;{t.colorTextureViews[e]!==n&amp;&amp;(t.colorTextureViews[e]=n)},e.activateBindGroup=e=&gt;{const n=t.boundPipeline.getDevice(),r=t.boundPipeline.getBindGroupLayoutCount(e.getLabel());t.handle.setBindGroup(r,e.getBindGroup(n));const o=n.getBindGroupLayoutDescription(e.getBindGroupLayout(n)),a=n.getBindGroupLayoutDescription(t.boundPipeline.getBindGroupLayout(r));o!==a&amp;&amp;(console.log(`renderEncoder ${t.pipelineHash} mismatched bind group layouts bind group has\\n${o}\\n versus pipeline\\n${a}\\n`),console.trace())},e.attachTextureViews=()=&gt;{for(let e=0;e&lt;t.colorTextureViews.length;e++)t.description.colorAttachments[e]?t.description.colorAttachments[e].view=t.colorTextureViews[e].getHandle():t.description.colorAttachments[e]={view:t.colorTextureViews[e].getHandle()};t.depthTextureView&amp;&amp;(t.description.depthStencilAttachment.view=t.depthTextureView.getHandle())},e.registerDrawCallback=(e,n)=&gt;{for(let r=0;r&lt;t.drawCallbacks.length;r++)if(t.drawCallbacks[r].pipeline===e)return void t.drawCallbacks[r].callbacks.push(n);t.drawCallbacks.push({pipeline:e,callbacks:[n]})};for(let n=0;n&lt;PT.length;n++)e[PT[n]]=(...e)=&gt;t.handle[PT[n]](...e)}(e,t)}var OT={newInstance:Xt(IT,&quot;vtkWebGPURenderEncoder&quot;),extend:IT};const RT={device:null,handle:null,label:null,options:null};function MT(e,t,n={}){Object.assign(t,RT,n),sn.obj(e,t),t.options={},t.bindGroupLayoutEntry={visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,sampler:{}},t.bindGroupTime={},sn.obj(t.bindGroupTime,{mtime:0}),sn.get(e,t,[&quot;bindGroupTime&quot;,&quot;handle&quot;,&quot;options&quot;]),sn.setGet(e,t,[&quot;bindGroupLayoutEntry&quot;,&quot;device&quot;,&quot;label&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUSampler&quot;),e.create=(e,n={})=&gt;{t.device=e,t.options.addressModeU=n.addressModeU?n.addressModeU:&quot;clamp-to-edge&quot;,t.options.addressModeV=n.addressModeV?n.addressModeV:&quot;clamp-to-edge&quot;,t.options.addressModeW=n.addressModeW?n.addressModeW:&quot;clamp-to-edge&quot;,t.options.magFilter=n.magFilter?n.magFilter:&quot;nearest&quot;,t.options.minFilter=n.minFilter?n.minFilter:&quot;nearest&quot;,t.options.mipmapFilter=n.mipmapFilter?n.mipmapFilter:&quot;nearest&quot;,t.options.label=t.label,t.handle=t.device.getHandle().createSampler(t.options),t.bindGroupTime.modified()},e.getShaderCode=(e,n)=&gt;`@binding(${e}) @group(${n}) var ${t.label}: sampler;`,e.getBindGroupEntry=()=&gt;({resource:t.handle})}(e,t)}var DT={newInstance:sn.newInstance(MT),extend:MT};const ET={texture:null,handle:null,sampler:null,label:null};function VT(e,t,n={}){Object.assign(t,ET,n),sn.obj(e,t),t.bindGroupLayoutEntry={visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,texture:{sampleType:&quot;float&quot;,viewDimension:&quot;2d&quot;}},t.bindGroupTime={},sn.obj(t.bindGroupTime,{mtime:0}),sn.get(e,t,[&quot;bindGroupTime&quot;,&quot;texture&quot;]),sn.setGet(e,t,[&quot;bindGroupLayoutEntry&quot;,&quot;label&quot;,&quot;sampler&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUTextureView&quot;),e.create=(e,n)=&gt;{t.texture=e,t.options=n,t.options.dimension=t.options.dimension||&quot;2d&quot;,t.options.label=t.label,t.textureHandle=e.getHandle(),t.handle=t.textureHandle.createView(t.options),t.bindGroupLayoutEntry.texture.viewDimension=t.options.dimension;const r=gT.getDetailsFromTextureFormat(t.texture.getFormat());t.bindGroupLayoutEntry.texture.sampleType=r.sampleType},e.createFromTextureHandle=(e,n)=&gt;{t.texture=null,t.options=n,t.options.dimension=t.options.dimension||&quot;2d&quot;,t.options.label=t.label,t.textureHandle=e,t.handle=t.textureHandle.createView(t.options),t.bindGroupLayoutEntry.texture.viewDimension=t.options.dimension;const r=gT.getDetailsFromTextureFormat(n.format);t.bindGroupLayoutEntry.texture.sampleType=r.sampleType,t.bindGroupTime.modified()},e.getBindGroupEntry=()=&gt;({resource:e.getHandle()}),e.getShaderCode=(e,n)=&gt;{let r=&quot;f32&quot;;&quot;sint&quot;===t.bindGroupLayoutEntry.texture.sampleType?r=&quot;i32&quot;:&quot;uint&quot;===t.bindGroupLayoutEntry.texture.sampleType&amp;&amp;(r=&quot;u32&quot;);let o=`@binding(${e}) @group(${n}) var ${t.label}: texture_${t.options.dimension}&lt;${r}&gt;;`;return&quot;depth&quot;===t.bindGroupLayoutEntry.texture.sampleType&amp;&amp;(o=`@binding(${e}) @group(${n}) var ${t.label}: texture_depth_${t.options.dimension};`),o},e.addSampler=(n,r)=&gt;{const o=DT.newInstance({label:`${t.label}Sampler`});o.create(n,r),e.setSampler(o)},e.getBindGroupTime=()=&gt;(t.texture&amp;&amp;t.texture.getHandle()!==t.textureHandle&amp;&amp;(t.textureHandle=t.texture.getHandle(),t.handle=t.textureHandle.createView(t.options),t.bindGroupTime.modified()),t.bindGroupTime),e.getHandle=()=&gt;(t.texture&amp;&amp;t.texture.getHandle()!==t.textureHandle&amp;&amp;(t.textureHandle=t.texture.getHandle(),t.handle=t.textureHandle.createView(t.options),t.bindGroupTime.modified()),t.handle)}(e,t)}var LT={newInstance:sn.newInstance(VT),extend:VT};const{vtkErrorMacro:BT}=sn;function FT(e,t){t.classHierarchy.push(&quot;vtkWebGPUTexture&quot;);const n=(e,n,r,o)=&gt;{const a=gT.getDetailsFromTextureFormat(t.format),i=n*a.numComponents,s=i*r*o,l=2===a.elementSize&amp;&amp;&quot;float&quot;===a.sampleType;if(!e?.length&amp;&amp;s&gt;0)return BT(&quot;Texture upload failed: missing nativeArray data.&quot;),null;if(e.length&lt;s)return BT(`Texture upload failed: expected ${s} values but received ${e.length}.`),null;const c=e.length&gt;s?e.subarray(0,s):e,u=c.BYTES_PER_ELEMENT||a.elementSize,d=n*a.stride,p=256*Math.floor((d+255)/256),f=((e,t)=&gt;{if(2===e.elementSize&amp;&amp;&quot;float&quot;===e.sampleType)return&quot;Uint16Array&quot;;if(&quot;sint&quot;===e.sampleType){if(1===e.elementSize)return&quot;Int8Array&quot;;if(2===e.elementSize)return&quot;Int16Array&quot;;if(4===e.elementSize)return&quot;Int32Array&quot;}else if(&quot;unfilterable-float&quot;===e.sampleType){if(4===e.elementSize)return&quot;Float32Array&quot;}else{if(1===e.elementSize)return&quot;Uint8Array&quot;;if(2===e.elementSize)return&quot;Uint16Array&quot;;if(4===e.elementSize)return&quot;Uint32Array&quot;}return t})(a,c.constructor.name),g=p/(l?2:sn.newTypedArray(f,0).BYTES_PER_ELEMENT),m=i*u;if(!(l||c.constructor.name!==f||m!==p))return{data:c,bytesPerRow:p};const h=r*o,v=sn.newTypedArray(f,g*h);if(l)for(let e=0;e&lt;h;e++){const t=e*i,n=e*g;for(let e=0;e&lt;i;e++)v[n+e]=Md.toHalf(c[t+e])}else if(g===i)v.set(c);else for(let e=0;e&lt;h;e++)v.set(c.subarray(e*i,(e+1)*i),e*g);return{data:v,bytesPerRow:p}};e.create=(e,n)=&gt;{t.device=e,t.width=n.width,t.height=n.height,t.depth=n.depth?n.depth:1;const r=1===t.depth?&quot;2d&quot;:&quot;3d&quot;;t.format=n.format?n.format:&quot;rgba8unorm&quot;,t.mipLevel=n.mipLevel?n.mipLevel:0,t.usage=n.usage?n.usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST,t.handle=t.device.getHandle().createTexture({size:[t.width,t.height,t.depth],format:t.format,usage:t.usage,label:t.label,dimension:r,mipLevelCount:t.mipLevel+1})},e.assignFromHandle=(e,n,r)=&gt;{t.device=e,t.handle=n,t.width=r.width,t.height=r.height,t.depth=r.depth?r.depth:1,t.format=r.format?r.format:&quot;rgba8unorm&quot;,t.usage=r.usage?r.usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST},e.writeImageData=r=&gt;{let o=[];const a=n=&gt;{t.device.getHandle().queue.copyExternalImageToTexture({source:n,flipY:r.flip},{texture:t.handle,premultipliedAlpha:!0,mipLevel:0,origin:{x:0,y:0,z:0}},[n.width,n.height,t.depth]),3!==e.getDimensionality()&amp;&amp;t.mipLevel&gt;0&amp;&amp;Eu.generateMipmaps(t.device.getHandle(),t.handle,t.mipLevel+1),t.ready=!0};if(r.canvas)return void a(r.canvas);if(r.imageBitmap)return r.width=r.imageBitmap.width,r.height=r.imageBitmap.height,r.depth=1,r.format=&quot;rgba8unorm&quot;,r.flip=!0,void a(r.imageBitmap);if(r.jsImageData)return r.width=r.jsImageData.width,r.height=r.jsImageData.height,r.depth=1,r.format=&quot;rgba8unorm&quot;,r.flip=!0,void a(r.jsImageData);if(r.image)return r.width=r.image.width,r.height=r.image.height,r.depth=1,r.format=&quot;rgba8unorm&quot;,r.flip=!0,void a(r.image);r.nativeArray&amp;&amp;(o=r.nativeArray);const i=3===e.getDimensionality(),s=n(o,t.width,t.height,i?t.depth:1);if(!s)return;const l=s.data;t.device.getHandle().queue.writeTexture({texture:t.handle,mipLevel:0,origin:{x:0,y:0,z:0}},l,{offset:0,bytesPerRow:s.bytesPerRow,rowsPerImage:t.height},{width:t.width,height:t.height,depthOrArrayLayers:i?t.depth:1}),!i&amp;&amp;t.mipLevel&gt;0&amp;&amp;Eu.generateMipmaps(t.device.getHandle(),t.handle,t.mipLevel+1),t.ready=!0},e.writeSubImageData=r=&gt;{const o=r.x??0,a=r.y??0,i=r.z??0,s=r.width??t.width-o,l=r.height??t.height-a,c=r.depth??t.depth-i,u=r.nativeArray||[];if(!((e,n,r,o,a,i)=&gt;e&lt;0||n&lt;0||r&lt;0||o&lt;=0||a&lt;=0||i&lt;=0?(BT(`Texture upload failed: invalid write region origin=(${e}, ${n}, ${r}) size=(${o}, ${a}, ${i}).`),!1):!(e+o&gt;t.width||n+a&gt;t.height||r+i&gt;t.depth)||(BT(`Texture upload failed: write region origin=(${e}, ${n}, ${r}) size=(${o}, ${a}, ${i}) exceeds texture extent=(${t.width}, ${t.height}, ${t.depth}).`),!1))(o,a,i,s,l,c))return;const d=n(u,s,l,c);d&amp;&amp;(t.device.getHandle().queue.writeTexture({texture:t.handle,mipLevel:0,origin:{x:o,y:a,z:i}},d.data,{offset:0,bytesPerRow:d.bytesPerRow,rowsPerImage:l},{width:s,height:l,depthOrArrayLayers:c}),3!==e.getDimensionality()&amp;&amp;t.mipLevel&gt;0&amp;&amp;Eu.generateMipmaps(t.device.getHandle(),t.handle,t.mipLevel+1),t.ready=!0)},e.getScale=()=&gt;{const e=gT.getDetailsFromTextureFormat(t.format);return 2===e.elementSize&amp;&amp;&quot;float&quot;===e.sampleType?1:255},e.getNumberOfComponents=()=&gt;gT.getDetailsFromTextureFormat(t.format).numComponents,e.getDimensionality=()=&gt;{let e=0;return t.width&gt;1&amp;&amp;e++,t.height&gt;1&amp;&amp;e++,t.depth&gt;1&amp;&amp;e++,e},e.resizeToMatch=e=&gt;{e.getWidth()===t.width&amp;&amp;e.getHeight()===t.height&amp;&amp;e.getDepth()===t.depth||(t.width=e.getWidth(),t.height=e.getHeight(),t.depth=e.getDepth(),t.handle=t.device.getHandle().createTexture({size:[t.width,t.height,t.depth],format:t.format,usage:t.usage,label:t.label}))},e.resize=(e,n,r=1)=&gt;{e===t.width&amp;&amp;n===t.height&amp;&amp;r===t.depth||(t.width=e,t.height=n,t.depth=r,t.handle=t.device.getHandle().createTexture({size:[t.width,t.height,t.depth],format:t.format,usage:t.usage,label:t.label}))},e.createView=(n,r={})=&gt;{r.dimension||(r.dimension=1===t.depth?&quot;2d&quot;:&quot;3d&quot;);const o=LT.newInstance({label:n});return o.create(e,r),o}}const NT={device:null,handle:null,buffer:null,ready:!1,label:null};function kT(e,t,n={}){Object.assign(t,NT,n),sn.obj(e,t),sn.get(e,t,[&quot;handle&quot;,&quot;ready&quot;,&quot;width&quot;,&quot;height&quot;,&quot;depth&quot;,&quot;format&quot;,&quot;usage&quot;]),sn.setGet(e,t,[&quot;device&quot;,&quot;label&quot;]),FT(e,t)}var GT={newInstance:sn.newInstance(kT),extend:kT};const UT={renderEncoder:null,colorTexture:null,depthTexture:null};function _T(e,t,n={}){Object.assign(t,UT,n),vv.extend(e,t,n),sn.get(e,t,[&quot;colorTexture&quot;,&quot;depthTexture&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUOpaquePass&quot;),e.traverse=(n,r)=&gt;{if(t.deleted)return;t._currentParent=r;const o=r.getDevice();if(t.renderEncoder)t.colorTexture.resize(r.getCanvas().width,r.getCanvas().height),t.depthTexture.resize(r.getCanvas().width,r.getCanvas().height);else{e.createRenderEncoder(),t.colorTexture=GT.newInstance({label:&quot;opaquePassColor&quot;}),t.colorTexture.create(o,{width:r.getCanvas().width,height:r.getCanvas().height,format:&quot;rgba16float&quot;,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC});const n=t.colorTexture.createView(&quot;opaquePassColorTexture&quot;);t.renderEncoder.setColorTextureView(0,n),t.depthFormat=&quot;depth32float&quot;,t.depthTexture=GT.newInstance({label:&quot;opaquePassDepth&quot;}),t.depthTexture.create(o,{width:r.getCanvas().width,height:r.getCanvas().height,format:t.depthFormat,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC});const a=t.depthTexture.createView(&quot;opaquePassDepthTexture&quot;);t.renderEncoder.setDepthTextureView(a)}t.renderEncoder.attachTextureViews(),e.setCurrentOperation(&quot;opaquePass&quot;),n.setRenderEncoder(t.renderEncoder),n.traverse(e)},e.getColorTextureView=()=&gt;t.renderEncoder.getColorTextureViews()[0],e.getDepthTextureView=()=&gt;t.renderEncoder.getDepthTextureView(),e.createRenderEncoder=()=&gt;{t.renderEncoder=OT.newInstance({label:&quot;OpaquePass&quot;}),t.renderEncoder.setPipelineHash(&quot;op&quot;)}}(e,t)}var KT={newInstance:sn.newInstance(_T,&quot;vtkWebGPUOpaquePass&quot;),extend:_T};const zT={colorTextureView:null,depthTextureView:null};function WT(e,t,n={}){Object.assign(t,zT,n),vv.extend(e,t,n),sn.setGet(e,t,[&quot;colorTextureView&quot;,&quot;depthTextureView&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUOrderIndependentTranslucentPass&quot;),e.traverse=(n,r)=&gt;{if(t.deleted)return;t._currentParent=r;const o=r.getDevice();if(t.translucentRenderEncoder)t.translucentColorTexture.resizeToMatch(t.colorTextureView.getTexture()),t.translucentAccumulateTexture.resizeToMatch(t.colorTextureView.getTexture());else{e.createRenderEncoder(),e.createFinalEncoder(),t.translucentColorTexture=GT.newInstance({label:&quot;translucentPassColor&quot;}),t.translucentColorTexture.create(o,{width:r.getCanvas().width,height:r.getCanvas().height,format:&quot;rgba16float&quot;,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING});const n=t.translucentColorTexture.createView(&quot;oitpColorTexture&quot;);t.translucentRenderEncoder.setColorTextureView(0,n),t.translucentAccumulateTexture=GT.newInstance({label:&quot;translucentPassAccumulate&quot;}),t.translucentAccumulateTexture.create(o,{width:r.getCanvas().width,height:r.getCanvas().height,format:&quot;r16float&quot;,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING});const a=t.translucentAccumulateTexture.createView(&quot;oitpAccumTexture&quot;);t.translucentRenderEncoder.setColorTextureView(1,a),t.fullScreenQuad=ST.newInstance(),t.fullScreenQuad.setDevice(r.getDevice()),t.fullScreenQuad.setPipelineHash(&quot;oitpfsq&quot;),t.fullScreenQuad.setTextureViews(t.translucentRenderEncoder.getColorTextureViews()),t.fullScreenQuad.setFragmentShaderTemplate(&quot;\\n//VTK::Mapper::Dec\\n\\n//VTK::TCoord::Dec\\n\\n//VTK::RenderEncoder::Dec\\n\\n//VTK::IOStructs::Dec\\n\\n@fragment\\nfn main(\\n//VTK::IOStructs::Input\\n)\\n//VTK::IOStructs::Output\\n{\\n  var output: fragmentOutput;\\n\\n  var tcoord: vec2&lt;i32&gt; = vec2&lt;i32&gt;(i32(input.fragPos.x), i32(input.fragPos.y));\\n  var reveal: f32 = textureLoad(oitpAccumTexture, tcoord, 0).r;\\n  if (reveal == 1.0) { discard; }\\n  var tcolor: vec4&lt;f32&gt; = textureLoad(oitpColorTexture, tcoord, 0);\\n  var total: f32 = max(tcolor.a, 0.01);\\n  var computedColor: vec4&lt;f32&gt; = vec4&lt;f32&gt;(tcolor.r/total, tcolor.g/total, tcolor.b/total, 1.0 - reveal);\\n\\n  //VTK::RenderEncoder::Impl\\n  return output;\\n}\\n&quot;)}t.translucentRenderEncoder.setDepthTextureView(t.depthTextureView),t.translucentRenderEncoder.attachTextureViews(),e.setCurrentOperation(&quot;translucentPass&quot;),n.setRenderEncoder(t.translucentRenderEncoder),n.traverse(e),e.finalPass(r,n)},e.finalPass=(e,n)=&gt;{t.translucentFinalEncoder.setColorTextureView(0,t.colorTextureView),t.translucentFinalEncoder.attachTextureViews(),t.translucentFinalEncoder.begin(e.getCommandEncoder()),n.scissorAndViewport(t.translucentFinalEncoder),t.fullScreenQuad.prepareAndDraw(t.translucentFinalEncoder),t.translucentFinalEncoder.end()},e.getTextures=()=&gt;[t.translucentColorTexture,t.translucentAccumulateTexture],e.createRenderEncoder=()=&gt;{t.translucentRenderEncoder=OT.newInstance({label:&quot;translucentRender&quot;});const e=t.translucentRenderEncoder.getDescription();e.colorAttachments=[{view:void 0,clearValue:[0,0,0,0],loadOp:&quot;clear&quot;,storeOp:&quot;store&quot;},{view:void 0,clearValue:[1,0,0,0],loadOp:&quot;clear&quot;,storeOp:&quot;store&quot;}],e.depthStencilAttachment={view:void 0,depthLoadOp:&quot;load&quot;,depthStoreOp:&quot;store&quot;},t.translucentRenderEncoder.setReplaceShaderCodeFunction((e=&gt;{const t=e.getShaderDescription(&quot;fragment&quot;);t.addOutput(&quot;vec4&lt;f32&gt;&quot;,&quot;outColor&quot;),t.addOutput(&quot;f32&quot;,&quot;outAccum&quot;),t.addBuiltinInput(&quot;vec4&lt;f32&gt;&quot;,&quot;@builtin(position) fragPos&quot;);let n=t.getCode();n=rT.substitute(n,&quot;//VTK::RenderEncoder::Impl&quot;,[&quot;var w: f32 = computedColor.a * pow(0.1 + input.fragPos.z, 2.0);&quot;,&quot;output.outColor = vec4&lt;f32&gt;(computedColor.rgb*w, w);&quot;,&quot;output.outAccum = computedColor.a;&quot;]).result,t.setCode(n)})),t.translucentRenderEncoder.setPipelineHash(&quot;oitpr&quot;),t.translucentRenderEncoder.setPipelineSettings({primitive:{cullMode:&quot;none&quot;},depthStencil:{depthWriteEnabled:!1,depthCompare:&quot;greater&quot;,format:&quot;depth32float&quot;},fragment:{targets:[{format:&quot;rgba16float&quot;,blend:{color:{srcFactor:&quot;one&quot;,dstFactor:&quot;one&quot;},alpha:{srcFactor:&quot;one&quot;,dstFactor:&quot;one&quot;}}},{format:&quot;r16float&quot;,blend:{color:{srcFactor:&quot;zero&quot;,dstFactor:&quot;one-minus-src&quot;},alpha:{srcFactor:&quot;one&quot;,dstFactor:&quot;one-minus-src-alpha&quot;}}}]}})},e.createFinalEncoder=()=&gt;{t.translucentFinalEncoder=OT.newInstance({label:&quot;translucentFinal&quot;}),t.translucentFinalEncoder.setDescription({colorAttachments:[{view:null,loadOp:&quot;load&quot;,storeOp:&quot;store&quot;}]}),t.translucentFinalEncoder.setReplaceShaderCodeFunction((e=&gt;{const t=e.getShaderDescription(&quot;fragment&quot;);t.addOutput(&quot;vec4&lt;f32&gt;&quot;,&quot;outColor&quot;),t.addBuiltinInput(&quot;vec4&lt;f32&gt;&quot;,&quot;@builtin(position) fragPos&quot;);let n=t.getCode();n=rT.substitute(n,&quot;//VTK::RenderEncoder::Impl&quot;,[&quot;output.outColor = vec4&lt;f32&gt;(computedColor.rgb, computedColor.a);&quot;]).result,t.setCode(n)})),t.translucentFinalEncoder.setPipelineHash(&quot;oitpf&quot;),t.translucentFinalEncoder.setPipelineSettings({primitive:{cullMode:&quot;none&quot;},fragment:{targets:[{format:&quot;rgba16float&quot;,blend:{color:{srcFactor:&quot;src-alpha&quot;,dstFactor:&quot;one-minus-src-alpha&quot;},alpha:{srcFactor:&quot;one&quot;,dstFactor:&quot;one-minus-src-alpha&quot;}}}]}})}}(e,t)}var HT={newInstance:sn.newInstance(WT,&quot;vtkWebGPUOrderIndependentTranslucentPass&quot;),extend:WT};var jT={BufferUsage:{Verts:0,Lines:1,Triangles:2,Strips:3,LinesFromStrips:4,LinesFromTriangles:5,Points:6,UniformArray:7,PointArray:8,NormalsFromPoints:9,Texture:10,RawVertex:11,Storage:12,Index:13},PrimitiveTypes:{Start:0,Points:0,Lines:1,Triangles:2,TriangleStrips:3,TriangleEdges:4,TriangleStripEdges:5,End:6}};const XT=[&quot;getMappedRange&quot;,&quot;mapAsync&quot;,&quot;unmap&quot;];function qT(e,t){t.classHierarchy.push(&quot;vtkWebGPUBuffer&quot;),e.create=(e,n)=&gt;{t.handle=t.device.getHandle().createBuffer({size:e,usage:n,label:t.label}),t.sizeInBytes=e,t.usage=n},e.write=e=&gt;{!function(e,t,n,r){const o=r.byteLength,a=e.createBuffer({size:o,usage:GPUBufferUsage.COPY_SRC,mappedAtCreation:!0}),i=a.getMappedRange(0,o);new Uint8Array(i).set(new Uint8Array(r)),a.unmap();const s=e.createCommandEncoder();s.copyBufferToBuffer(a,0,t,n,o);const l=s.finish();e.queue.submit([l]),a.destroy()}(t.device.getHandle(),t.handle,0,e.buffer)},e.createAndWrite=(e,n)=&gt;{const r=4*Math.ceil(e.byteLength/4);t.handle=t.device.getHandle().createBuffer({size:r,usage:n,mappedAtCreation:!0,label:t.label}),t.sizeInBytes=r,t.usage=n,new Uint8Array(t.handle.getMappedRange()).set(new Uint8Array(e.buffer)),t.handle.unmap()};for(let n=0;n&lt;XT.length;n++)e[XT[n]]=(...e)=&gt;t.handle[XT[n]](...e)}const YT={device:null,handle:null,sizeInBytes:0,strideInBytes:0,arrayInformation:null,usage:null,label:null,sourceTime:null};function JT(e,t,n={}){Object.assign(t,YT,n),sn.obj(e,t),sn.get(e,t,[&quot;handle&quot;,&quot;sizeInBytes&quot;,&quot;usage&quot;]),sn.setGet(e,t,[&quot;strideInBytes&quot;,&quot;device&quot;,&quot;arrayInformation&quot;,&quot;label&quot;,&quot;sourceTime&quot;]),qT(e,t)}var ZT={newInstance:sn.newInstance(JT),extend:JT,...jT};const{Representation:QT}=us,{PrimitiveTypes:$T}=jT;class ex{constructor(){this.keys=new Uint32Array(10),this.values=new Uint32Array(10),this.count=0}clear(){this.count=0}has(e){for(let t=0;t&lt;this.count;t++)if(this.keys[t]===e)return!0}get(e){for(let t=0;t&lt;this.count;t++)if(this.keys[t]===e)return this.values[t]}set(e,t){this.count&lt;9&amp;&amp;(this.keys[this.count]=e,this.values[this.count++]=t)}}function tx(e,t,n){let r=e.pointIdToFlatId[t];return r&lt;0&amp;&amp;(r=e.flatId,e.pointIdToFlatId[t]=r,e.flatIdToPointId[e.flatId]=t,e.flatIdToCellId[e.flatId]=n,e.flatId++),r}function nx(e,t,n){const r=e.length;for(let o=0;o&lt;r;o++){let a=e[o];if(n.cellProvokedMap.has(a)){n.ibo[n.iboId++]=n.cellProvokedMap.get(a);for(let i=o+1;i&lt;o+r;i++){a=e[i%r];const o=tx(n,a,t);n.ibo[n.iboId++]=o}return}}for(let o=0;o&lt;r;o++){let a=e[o];if(!n.provokedPointIds[a]){let i=tx(n,a,t);n.provokedPointIds[a]=1,n.cellProvokedMap.set(a,i),n.flatIdToCellId[i]=t,n.ibo[n.iboId++]=i;for(let s=o+1;s&lt;o+r;s++)a=e[s%r],i=tx(n,a,t),n.ibo[n.iboId++]=i;return}}let o=e[0],a=n.flatId;n.cellProvokedMap.set(o,a),n.flatIdToPointId[n.flatId]=o,n.flatIdToCellId[n.flatId]=t,n.flatId++,n.ibo[n.iboId++]=a;for(let i=1;i&lt;r;i++)o=e[i],a=tx(n,o,t),n.ibo[n.iboId++]=a}function rx(e,t,n){const r=e.length;n.iboSize+=r;for(let t=0;t&lt;r;t++){const r=e[t];if(n.cellProvokedMap.has(r))return}for(let t=0;t&lt;r;t++){const r=e[t];if(!n.provokedPointIds[r])return n.provokedPointIds[r]=1,void n.cellProvokedMap.set(r,1)}n.cellProvokedMap.set(e[0],1),n.extraPoints++}let ox;const ax=new Uint32Array(1),ix=new Uint32Array(2),sx=new Uint32Array(3),lx={anythingToPoints(e,t,n,r,o){for(let a=0;a&lt;e;++a)ax[0]=t[n+a],ox(ax,r,o)},linesToWireframe(e,t,n,r,o){for(let a=0;a&lt;e-1;++a)ix[0]=t[n+a],ix[1]=t[n+a+1],ox(ix,r,o)},polysToWireframe(e,t,n,r,o){if(e&gt;2)for(let a=0;a&lt;e;++a)ix[0]=t[n+a],ix[1]=t[n+(a+1)%e],ox(ix,r,o)},stripsToWireframe(e,t,n,r,o){if(e&gt;2){for(let a=0;a&lt;e-1;++a)ix[0]=t[n+a],ix[1]=t[n+a+1],ox(ix,r,o);for(let a=0;a&lt;e-2;a++)ix[0]=t[n+a],ix[1]=t[n+a+2],ox(ix,r,o)}},polysToSurface(e,t,n,r,o){for(let a=0;a&lt;e-2;a++)sx[0]=t[n],sx[1]=t[n+a+1],sx[2]=t[n+a+2],ox(sx,r,o)},stripsToSurface(e,t,n,r,o){for(let a=0;a&lt;e-2;a++)sx[0]=t[n+a],sx[1]=t[n+a+1+a%2],sx[2]=t[n+a+1+(a+1)%2],ox(sx,r,o)}};function cx(e,t){t.classHierarchy.push(&quot;vtkWebGPUIndexBuffer&quot;),e.buildIndexBuffer=e=&gt;{const n=e.cells,r=e.primitiveType,o=e.representation,a=e.cellOffset,i=n.getData(),s=i.length,l=function(e){switch(e){case $T.Points:return&quot;points&quot;;case $T.Lines:return&quot;lines&quot;;case $T.Triangles:case $T.TriangleEdges:return&quot;polys&quot;;case $T.TriangleStripEdges:case $T.TriangleStrips:return&quot;strips&quot;;default:return&quot;&quot;}}(r),c=e.numberOfPoints,u={provokedPointIds:new Uint8Array(c),extraPoints:0,iboSize:0,flatId:0,iboId:0,cellProvokedMap:new ex};let d=null;d=o===QT.POINTS||r===$T.Points?lx.anythingToPoints:o===QT.WIREFRAME||r===$T.Lines?lx[`${l}ToWireframe`]:lx[`${l}ToSurface`],ox=rx;let p=a||0;for(let e=0;e&lt;s;)u.cellProvokedMap.clear(),d(i[e],i,e+1,p,u),e+=i[e]+1,p++;u.flatIdToPointId=c&lt;=65535?new Uint16Array(c+u.extraPoints):new Uint32Array(c+u.extraPoints),c+u.extraPoints&lt;36863?u.pointIdToFlatId=new Int16Array(c):u.pointIdToFlatId=new Int32Array(c),c+u.extraPoints&lt;=65535?(u.ibo=new Uint16Array(u.iboSize),e.format=&quot;uint16&quot;):(u.ibo=new Uint32Array(u.iboSize),e.format=&quot;uint32&quot;),u.flatIdToCellId=p&lt;=65535?new Uint16Array(c+u.extraPoints):new Uint32Array(c+u.extraPoints),u.pointIdToFlatId.fill(-1),u.provokedPointIds.fill(0),ox=nx,p=a||0;for(let e=0;e&lt;s;)u.cellProvokedMap.clear(),d(i[e],i,e+1,p,u),e+=i[e]+1,p++;delete u.provokedPointIds,delete u.pointIdToFlatId,e.nativeArray=u.ibo,t.flatIdToPointId=u.flatIdToPointId,t.flatIdToCellId=u.flatIdToCellId,t.flatSize=u.flatId,t.indexCount=u.iboId}}const ux={flatIdToPointId:null,flatIdToCellId:null,flatSize:0,indexCount:0};function dx(e,t,n={}){Object.assign(t,ux,n),ZT.extend(e,t,n),sn.setGet(e,t,[&quot;flatIdToPointId&quot;,&quot;flatIdToCellId&quot;,&quot;flatSize&quot;,&quot;indexCount&quot;]),cx(e,t)}var px={newInstance:sn.newInstance(dx),extend:dx,...jT};const{BufferUsage:fx}=jT,{vtkErrorMacro:gx}=ln,{VtkDataTypes:mx}=Is;function hx(e,t,n,r,o){const a={},i=e.getFlatSize();if(!i)return a;let s=[0,0,0,0];o.shift&amp;&amp;(o.shift.length?s=o.shift:s.fill(o.shift));let l=[1,1,1,1];o.scale&amp;&amp;(o.scale.length?l=o.scale:l.fill(o.scale));const c=!!Object.prototype.hasOwnProperty.call(o,&quot;packExtra&quot;)&amp;&amp;o.packExtra;let u,d=0;const p=Ct(r,i*(n+(c?1:0)));let f=e.getFlatIdToPointId();o.cellData&amp;&amp;(f=e.getFlatIdToCellId()),1===n?u=function(e){p[d++]=l[0]*t[e]+s[0]}:2===n?u=function(e){p[d++]=l[0]*t[e]+s[0],p[d++]=l[1]*t[e+1]+s[1]}:3!==n||c?3===n&amp;&amp;c?u=function(e){p[d++]=l[0]*t[e]+s[0],p[d++]=l[1]*t[e+1]+s[1],p[d++]=l[2]*t[e+2]+s[2],p[d++]=1*l[3]+s[3]}:4===n&amp;&amp;(u=function(e){p[d++]=l[0]*t[e]+s[0],p[d++]=l[1]*t[e+1]+s[1],p[d++]=l[2]*t[e+2]+s[2],p[d++]=l[3]*t[e+3]+s[3]}):u=function(e){p[d++]=l[0]*t[e]+s[0],p[d++]=l[1]*t[e+1]+s[1],p[d++]=l[2]*t[e+2]+s[2]};for(let e=0;e&lt;i;e++){u(n*f[e])}return a.nativeArray=p,a}function vx(e,t,n,r){const o=[];return Wo([e[3*r]-e[3*n],e[3*r+1]-e[3*n+1],e[3*r+2]-e[3*n+2]],[e[3*t]-e[3*n],e[3*t+1]-e[3*n+1],e[3*t+2]-e[3*n+2]],o),jo(o),o}function Tx(e,t){function n(e){let n,r;if(e.dataArray&amp;&amp;!e.nativeArray&amp;&amp;(e.nativeArray=e.dataArray.getData()),e.usage===fx.Index&amp;&amp;(n=px.newInstance({label:e.label}),n.setDevice(t.device),r=GPUBufferUsage.INDEX|GPUBufferUsage.COPY_DST,n.buildIndexBuffer(e),n.createAndWrite(e.nativeArray,r),n.setArrayInformation([{format:e.format}])),n||(n=ZT.newInstance({label:e.label}),n.setDevice(t.device)),e.usage===fx.UniformArray&amp;&amp;(r=GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST,n.createAndWrite(e.nativeArray,r)),e.usage===fx.Storage&amp;&amp;(r=GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST,n.createAndWrite(e.nativeArray,r)),e.usage===fx.Texture&amp;&amp;(r=GPUBufferUsage.COPY_SRC,n.createAndWrite(e.nativeArray,r)),e.usage===fx.PointArray){r=GPUBufferUsage.VERTEX;const t=gT.getNativeTypeFromBufferFormat(e.format),o=hx(e.indexBuffer,e.dataArray.getData(),e.dataArray.getNumberOfComponents(),t,{packExtra:e.packExtra,shift:e.shift,scale:e.scale,cellData:e.cellData,cellOffset:e.cellOffset});n.createAndWrite(o.nativeArray,r),n.setStrideInBytes(gT.getByteStrideFromBufferFormat(e.format)),n.setArrayInformation([{offset:0,format:e.format,interpolation:e.cellData?&quot;flat&quot;:&quot;perspective&quot;}])}if(e.usage===fx.NormalsFromPoints){r=GPUBufferUsage.VERTEX;const t=gT.getNativeTypeFromBufferFormat(e.format),o=function(e,t){const n=t.getData(),r=e.getData();if(!r||!n)return null;const o=new Int8Array(4*e.getNumberOfCells()),a=r.length;let i=0;for(let e=0;e&lt;a;){const t=vx(n,r[e+1],r[e+2],r[e+3]);o[i++]=127*t[0],o[i++]=127*t[1],o[i++]=127*t[2],o[i++]=127,e+=r[e]+1}return o}(e.cells,e.dataArray),a=hx(e.indexBuffer,o,4,t,{cellData:!0});n.createAndWrite(a.nativeArray,r),n.setStrideInBytes(gT.getByteStrideFromBufferFormat(e.format)),n.setArrayInformation([{offset:0,format:e.format,interpolation:&quot;flat&quot;}])}return e.usage===fx.RawVertex&amp;&amp;(r=GPUBufferUsage.VERTEX,n.createAndWrite(e.nativeArray,r),n.setStrideInBytes(gT.getByteStrideFromBufferFormat(e.format)),n.setArrayInformation([{offset:0,format:e.format}])),n.setSourceTime(e.time),n}t.classHierarchy.push(&quot;vtkWebGPUBufferManager&quot;),e.hasBuffer=e=&gt;t.device.hasCachedObject(e),e.getBuffer=e=&gt;e.hash?t.device.getCachedObject(e.hash,n,e):n(e),e.getBufferForPointArray=(t,n)=&gt;{const r=function(e){let t;switch(e.getDataType()){case mx.UNSIGNED_CHAR:t=&quot;uint8&quot;;break;case mx.FLOAT:t=&quot;float32&quot;;break;case mx.UNSIGNED_INT:t=&quot;uint32&quot;;break;case mx.INT:t=&quot;sint32&quot;;break;case mx.DOUBLE:t=&quot;float32&quot;;break;case mx.UNSIGNED_SHORT:t=&quot;uint16&quot;;break;case mx.SHORT:t=&quot;sin16&quot;;break;default:t=&quot;float32&quot;}switch(e.getNumberOfComponents()){case 2:t+=&quot;x2&quot;;break;case 3:t.includes(&quot;32&quot;)||gx(`unsupported x3 type for ${t}`),t+=&quot;x3&quot;;break;case 4:t+=&quot;x4&quot;}return t}(t),o={hash:`${t.getMTime()}I${n.getMTime()}${r}`,usage:fx.PointArray,format:r,dataArray:t,indexBuffer:n};return e.getBuffer(o)},e.getFullScreenQuadBuffer=()=&gt;{if(t.fullScreenQuadBuffer)return t.fullScreenQuadBuffer;t.fullScreenQuadBuffer=ZT.newInstance(),t.fullScreenQuadBuffer.setDevice(t.device);const e=new Float32Array([-1,-1,0,1,-1,0,1,1,0,-1,-1,0,1,1,0,-1,1,0]);return t.fullScreenQuadBuffer.createAndWrite(e,GPUBufferUsage.VERTEX),t.fullScreenQuadBuffer.setStrideInBytes(12),t.fullScreenQuadBuffer.setArrayInformation([{offset:0,format:&quot;float32x3&quot;}]),t.fullScreenQuadBuffer}}const xx={device:null,fullScreenQuadBuffer:null};function yx(e,t,n={}){Object.assign(t,xx,n),Vt(e,t),Gt(e,t,[&quot;device&quot;]),Tx(e,t)}var bx={newInstance:Xt(yx),extend:yx,...jT};const{BufferUsage:Ax}=bx,{vtkErrorMacro:Cx}=sn;const Sx={bufferEntries:null,bufferEntryNames:null,sizeInBytes:0,label:null,bindGroupLayoutEntry:null,bindGroupEntry:null};function Px(e,t,n={}){Object.assign(t,Sx,n),sn.obj(e,t),t._bufferEntryNames=new Map,t.bufferEntries=[],t.bindGroupLayoutEntry=t.bindGroupLayoutEntry||{buffer:{type:&quot;uniform&quot;}},t.sendTime={},sn.obj(t.sendTime,{mtime:0}),t.bindGroupTime={},sn.obj(t.bindGroupTime,{mtime:0}),t.sendDirty=!0,t.sortDirty=!0,sn.get(e,t,[&quot;binding&quot;,&quot;bindGroupTime&quot;]),sn.setGet(e,t,[&quot;bindGroupLayoutEntry&quot;,&quot;device&quot;,&quot;label&quot;,&quot;sizeInBytes&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUUniformBuffer&quot;),e.addEntry=(e,n)=&gt;{t._bufferEntryNames.has(e)?Cx(`entry named ${e} already exists`):(t.sortDirty=!0,t._bufferEntryNames.set(e,t.bufferEntries.length),t.bufferEntries.push({name:e,type:n,sizeInBytes:gT.getByteStrideFromShaderFormat(n),offset:-1,nativeType:gT.getNativeTypeFromShaderFormat(n),packed:!1}))},e.sortBufferEntries=()=&gt;{if(!t.sortDirty)return;let e=0;const n=[];let r=4;for(let e=0;e&lt;t.bufferEntries.length;e++){const n=t.bufferEntries[e];n.sizeInBytes%16==0&amp;&amp;(r=Math.max(16,r)),n.sizeInBytes%8==0&amp;&amp;(r=Math.max(8,r))}for(let r=0;r&lt;t.bufferEntries.length;r++){const o=t.bufferEntries[r];!1===o.packed&amp;&amp;o.sizeInBytes%16==0&amp;&amp;(o.packed=!0,o.offset=e,n.push(o),e+=o.sizeInBytes)}for(let r=0;r&lt;t.bufferEntries.length;r++){const o=t.bufferEntries[r];if(!1===o.packed&amp;&amp;12===o.sizeInBytes)for(let r=0;r&lt;t.bufferEntries.length;r++){const a=t.bufferEntries[r];if(!1===a.packed&amp;&amp;4===a.sizeInBytes){o.packed=!0,o.offset=e,n.push(o),e+=o.sizeInBytes,a.packed=!0,a.offset=e,n.push(a),e+=a.sizeInBytes;break}}}for(let r=0;r&lt;t.bufferEntries.length;r++){const o=t.bufferEntries[r];if(!o.packed&amp;&amp;o.sizeInBytes%8==0)for(let a=r+1;a&lt;t.bufferEntries.length;a++){const r=t.bufferEntries[a];if(!r.packed&amp;&amp;r.sizeInBytes%8==0){o.packed=!0,o.offset=e,n.push(o),e+=o.sizeInBytes,r.packed=!0,r.offset=e,n.push(r),e+=r.sizeInBytes;break}}}for(let r=0;r&lt;t.bufferEntries.length;r++){const o=t.bufferEntries[r];if(!o.packed&amp;&amp;o.sizeInBytes%8==0){let r=!1;for(let a=0;!r&amp;&amp;a&lt;t.bufferEntries.length;a++){const i=t.bufferEntries[a];if(!i.packed&amp;&amp;4===i.sizeInBytes)for(let s=a+1;s&lt;t.bufferEntries.length;s++){const a=t.bufferEntries[s];if(!a.packed&amp;&amp;4===a.sizeInBytes){o.packed=!0,o.offset=e,n.push(o),e+=o.sizeInBytes,i.packed=!0,i.offset=e,n.push(i),e+=i.sizeInBytes,a.packed=!0,a.offset=e,n.push(a),e+=a.sizeInBytes,r=!0;break}}}}}for(let r=0;r&lt;t.bufferEntries.length;r++){const o=t.bufferEntries[r];!o.packed&amp;&amp;o.sizeInBytes&gt;4&amp;&amp;(o.packed=!0,o.offset=e,n.push(o),e+=o.sizeInBytes)}for(let r=0;r&lt;t.bufferEntries.length;r++){const o=t.bufferEntries[r];o.packed||(o.packed=!0,o.offset=e,n.push(o),e+=o.sizeInBytes)}t.bufferEntries=n,t._bufferEntryNames.clear();for(let e=0;e&lt;t.bufferEntries.length;e++)t._bufferEntryNames.set(t.bufferEntries[e].name,e);t.sizeInBytes=e,t.sizeInBytes=r*Math.ceil(t.sizeInBytes/r),t.sortDirty=!1},e.sendIfNeeded=e=&gt;{if(!t.UBO){const n={nativeArray:t.Float32Array,usage:Ax.UniformArray,label:t.label};t.UBO=e.getBufferManager().getBuffer(n),t.bindGroupTime.modified(),t.sendDirty=!1}t.sendDirty&amp;&amp;(e.getHandle().queue.writeBuffer(t.UBO.getHandle(),0,t.arrayBuffer,0,t.sizeInBytes),t.sendDirty=!1),t.sendTime.modified()},e.createView=e=&gt;{e in t==0&amp;&amp;(t.arrayBuffer||(t.arrayBuffer=new ArrayBuffer(t.sizeInBytes)),t[e]=sn.newTypedArray(e,t.arrayBuffer))},e.setValue=(n,r)=&gt;{e.sortBufferEntries();const o=t._bufferEntryNames.get(n);if(void 0===o)return void Cx(`entry named ${n} not found in UBO`);const a=t.bufferEntries[o];e.createView(a.nativeType);const i=t[a.nativeType];a.lastValue!==r&amp;&amp;(i[a.offset/i.BYTES_PER_ELEMENT]=r,t.sendDirty=!0),a.lastValue=r},e.setArray=(n,r)=&gt;{e.sortBufferEntries();const o=t._bufferEntryNames.get(n);if(void 0===o)return void Cx(`entry named ${n} not found in UBO`);const a=t.bufferEntries[o];e.createView(a.nativeType);const i=t[a.nativeType];let s=!1;for(let e=0;e&lt;r.length;e++)a.lastValue&amp;&amp;a.lastValue[e]===r[e]||(i[a.offset/i.BYTES_PER_ELEMENT+e]=r[e],s=!0);s&amp;&amp;(t.sendDirty=!0,a.lastValue=[...r])},e.getBindGroupEntry=()=&gt;({resource:{buffer:t.UBO.getHandle()}}),e.getSendTime=()=&gt;t.sendTime.getMTime(),e.getShaderCode=(n,r)=&gt;{e.sortBufferEntries();const o=[`struct ${t.label}Struct\\n{`];for(let e=0;e&lt;t.bufferEntries.length;e++){const n=t.bufferEntries[e];o.push(`  ${n.name}: ${n.type},`)}return o.push(`};\\n@binding(${n}) @group(${r}) var&lt;uniform&gt; ${t.label}: ${t.label}Struct;`),o.join(&quot;\\n&quot;)}}(e,t)}var wx={newInstance:sn.newInstance(Px,&quot;vtkWebGPUUniformBuffer&quot;),extend:Px};const{BufferUsage:Ix}=bx,{vtkErrorMacro:Ox}=sn;const Rx={bufferEntries:null,bufferEntryNames:null,sizeInBytes:0,label:null,numberOfInstances:1};function Mx(e,t,n={}){Object.assign(t,Rx,n),sn.obj(e,t),t._bufferEntryNames=new Map,t.bufferEntries=[],t._sendTime={},sn.obj(t._sendTime,{mtime:0}),t.bindGroupTime={},sn.obj(t.bindGroupTime,{mtime:0}),t.bindGroupLayoutEntry=t.bindGroupLayoutEntry||{buffer:{type:&quot;read-only-storage&quot;}},sn.get(e,t,[&quot;bindGroupTime&quot;]),sn.setGet(e,t,[&quot;device&quot;,&quot;bindGroupLayoutEntry&quot;,&quot;label&quot;,&quot;numberOfInstances&quot;,&quot;sizeInBytes&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUStorageBuffer&quot;),e.addEntry=(e,n)=&gt;{if(t._bufferEntryNames.has(e))return void Ox(`entry named ${e} already exists`);t._bufferEntryNames.set(e,t.bufferEntries.length);const r=gT.getByteStrideFromShaderFormat(n);t.bufferEntries.push({name:e,type:n,sizeInBytes:r,offset:t.sizeInBytes,nativeType:gT.getNativeTypeFromShaderFormat(n)}),t.sizeInBytes+=r},e.send=e=&gt;{if(!t._buffer){const n={nativeArray:t.Float32Array,usage:Ix.Storage,label:t.label};return t._buffer=e.getBufferManager().getBuffer(n),t.bindGroupTime.modified(),void t._sendTime.modified()}e.getHandle().queue.writeBuffer(t._buffer.getHandle(),0,t.arrayBuffer,0,t.sizeInBytes*t.numberOfInstances),t._sendTime.modified()},e.createView=e=&gt;{e in t==0&amp;&amp;(t.arrayBuffer||(t.arrayBuffer=new ArrayBuffer(t.sizeInBytes*t.numberOfInstances)),t[e]=sn.newTypedArray(e,t.arrayBuffer))},e.setValue=(n,r,o)=&gt;{const a=t._bufferEntryNames.get(n);if(void 0===a)return void Ox(`entry named ${n} not found in UBO`);const i=t.bufferEntries[a];e.createView(i.nativeType);const s=t[i.nativeType];s[(i.offset+r*t.sizeInBytes)/s.BYTES_PER_ELEMENT]=o},e.setArray=(n,r,o)=&gt;{const a=t._bufferEntryNames.get(n);if(void 0===a)return void Ox(`entry named ${n} not found in UBO`);const i=t.bufferEntries[a];e.createView(i.nativeType);const s=t[i.nativeType],l=(i.offset+r*t.sizeInBytes)/s.BYTES_PER_ELEMENT;for(let e=0;e&lt;o.length;e++)s[l+e]=o[e]},e.setAllInstancesFromArray=(n,r)=&gt;{const o=t._bufferEntryNames.get(n);if(void 0===o)return void Ox(`entry named ${n} not found in UBO`);const a=t.bufferEntries[o];e.createView(a.nativeType);const i=t[a.nativeType],s=r.length/t.numberOfInstances;for(let e=0;e&lt;t.numberOfInstances;e++){const n=(a.offset+e*t.sizeInBytes)/i.BYTES_PER_ELEMENT;for(let t=0;t&lt;s;t++)i[n+t]=r[e*s+t]}},e.setAllInstancesFromArrayColorToFloat=(n,r)=&gt;{const o=t._bufferEntryNames.get(n);if(void 0===o)return void Ox(`entry named ${n} not found in UBO`);const a=t.bufferEntries[o];e.createView(a.nativeType);const i=t[a.nativeType],s=r.length/t.numberOfInstances;for(let e=0;e&lt;t.numberOfInstances;e++){const n=(a.offset+e*t.sizeInBytes)/i.BYTES_PER_ELEMENT;for(let t=0;t&lt;s;t++)i[n+t]=r[e*s+t]/255}},e.setAllInstancesFromArray3x3To4x4=(n,r)=&gt;{const o=t._bufferEntryNames.get(n);if(void 0===o)return void Ox(`entry named ${n} not found in UBO`);const a=t.bufferEntries[o];e.createView(a.nativeType);const i=t[a.nativeType];for(let e=0;e&lt;t.numberOfInstances;e++){const n=(a.offset+e*t.sizeInBytes)/i.BYTES_PER_ELEMENT;for(let t=0;t&lt;3;t++)for(let o=0;o&lt;3;o++)i[n+4*t+o]=r[9*e+3*t+o]}},e.getSendTime=()=&gt;t._sendTime.getMTime(),e.getShaderCode=(e,n)=&gt;{const r=[`struct ${t.label}StructEntry\\n{`];for(let e=0;e&lt;t.bufferEntries.length;e++){const n=t.bufferEntries[e];r.push(`  ${n.name}: ${n.type},`)}return r.push(`\\n};\\nstruct ${t.label}Struct\\n{\\n  values: array&lt;${t.label}StructEntry&gt;,\\n};\\n@binding(${e}) @group(${n}) var&lt;storage, read&gt; ${t.label}: ${t.label}Struct;\\n`),r.join(&quot;\\n&quot;)},e.getBindGroupEntry=()=&gt;({resource:{buffer:t._buffer.getHandle()}}),e.clearData=()=&gt;{t.numberOfInstances=0,t.sizeInBytes=0,t.bufferEntries=[],t._bufferEntryNames=new Map,t._buffer=null,delete t.arrayBuffer,delete t.Float32Array}}(e,t)}var Dx={newInstance:sn.newInstance(Mx,&quot;vtkWebGPUStorageBuffer&quot;),extend:Mx};function Ex(e,t,n){const r=e.getClippingPlanes().length;for(let o=0;o&lt;r;o++)e.getClippingPlaneInCoords(t,o,n[o]);return r}const Vx=`\\n//VTK::Renderer::Dec\\n\\n//VTK::Mapper::Dec\\n\\n//VTK::TCoord::Dec\\n\\n//VTK::Volume::TraverseDec\\n\\n//VTK::RenderEncoder::Dec\\n\\n//VTK::IOStructs::Dec\\n\\nfn getTextureValue(vTex: texture_3d&lt;f32&gt;, tpos: vec4&lt;f32&gt;) -&gt; f32\\n{\\n  // todo multicomponent support\\n  return textureSampleLevel(vTex, clampSampler, tpos.xyz, 0.0).r;\\n}\\n\\nfn intersectRayBoundsWithClipPlanes(vNum: i32, minPosSC: vec4&lt;f32&gt;, rayStepSC: vec4&lt;f32&gt;, rayBounds: vec2&lt;f32&gt;) -&gt; vec2&lt;f32&gt;\\n{\\n  var result: vec2&lt;f32&gt; = rayBounds;\\n  let clipCount: i32 = i32(volumeSSBO.values[vNum].clipPlaneStates.x);\\n  if (clipCount &lt;= 0)\\n  {\\n    return result;\\n  }\\n\\n  ${Array.from({length:6},((e,t)=&gt;`\\n  if (clipCount &gt; ${t})\\n  {\\n    let clipPlane${t}: vec4&lt;f32&gt; = volumeSSBO.values[vNum].clipPlane${t};\\n    let rayDirRatio${t}: f32 = dot(rayStepSC, clipPlane${t});\\n    let equationResult${t}: f32 = dot(minPosSC, clipPlane${t});\\n\\n    let absRayDirRatio${t}: f32 = abs(rayDirRatio${t});\\n    if (absRayDirRatio${t} &gt; 1e-6)\\n    {\\n      let intersection${t}: f32 = -equationResult${t} / rayDirRatio${t};\\n      result.x = select(result.x, max(result.x, intersection${t}), rayDirRatio${t} &gt; 0.0);\\n      result.y = select(result.y, min(result.y, intersection${t}), rayDirRatio${t} &lt; 0.0);\\n    }\\n    else if (equationResult${t} &lt; 0.0)\\n    {\\n      result.x = result.y;\\n    }\\n\\n    if (result.x &gt;= result.y)\\n    {\\n      return result;\\n    }\\n  }`)).join(&quot;\\n&quot;)}\\n\\n  return result;\\n}\\n\\nfn getGradient(vTex: texture_3d&lt;f32&gt;, tpos: vec4&lt;f32&gt;, vNum: i32, scalar: f32) -&gt; vec4&lt;f32&gt;\\n{\\n  var result: vec4&lt;f32&gt;;\\n\\n  var tstep: vec4&lt;f32&gt; = volumeSSBO.values[vNum].tstep;\\n  result.x = getTextureValue(vTex, tpos + vec4&lt;f32&gt;(tstep.x, 0.0, 0.0, 1.0)) - scalar;\\n  result.y = getTextureValue(vTex, tpos + vec4&lt;f32&gt;(0.0, tstep.y, 0.0, 1.0)) - scalar;\\n  result.z = getTextureValue(vTex, tpos + vec4&lt;f32&gt;(0.0, 0.0, tstep.z, 1.0)) - scalar;\\n  result.w = 0.0;\\n\\n  // divide by spacing as that is our delta\\n  result = result / volumeSSBO.values[vNum].spacing;\\n  // now we have a gradient in unit tcoords\\n\\n  var grad: f32 = length(result.xyz);\\n  if (grad &gt; 0.0)\\n  {\\n    // rotate to View Coords, needed for lighting and shading\\n    var nMat: mat4x4&lt;f32&gt; = rendererUBO.SCVCMatrix * volumeSSBO.values[vNum].planeNormals;\\n    result = nMat * result;\\n    result = result / length(result);\\n  }\\n\\n  // store gradient magnitude in .w\\n  result.w = grad;\\n\\n  return result;\\n}\\n\\nfn processVolume(vTex: texture_3d&lt;f32&gt;, vNum: i32, cNum: i32, posSC: vec4&lt;f32&gt;, tfunRows: f32) -&gt; vec4&lt;f32&gt;\\n{\\n  var outColor: vec4&lt;f32&gt; = vec4&lt;f32&gt;(0.0, 0.0, 0.0, 0.0);\\n\\n  // convert to tcoords and reject if outside the volume\\n  var tpos: vec4&lt;f32&gt; = volumeSSBO.values[vNum].SCTCMatrix*posSC;\\n  if (tpos.x &lt; 0.0 || tpos.y &lt; 0.0 || tpos.z &lt; 0.0 ||\\n      tpos.x &gt; 1.0 || tpos.y &gt; 1.0 || tpos.z &gt; 1.0) { return outColor; }\\n\\n  var scalar: f32 = getTextureValue(vTex, tpos);\\n\\n  var coord: vec2&lt;f32&gt; =\\n    vec2&lt;f32&gt;(scalar * componentSSBO.values[cNum].cScale + componentSSBO.values[cNum].cShift,\\n      (0.5 + 2.0 * f32(vNum)) / tfunRows);\\n  var color: vec4&lt;f32&gt; = textureSampleLevel(tfunTexture, clampSampler, coord, 0.0);\\n\\n  var gofactor: f32 = 1.0;\\n  var normal: vec4&lt;f32&gt; = vec4&lt;f32&gt;(0.0,0.0,0.0,0.0);\\n  if (componentSSBO.values[cNum].gomin &lt;  1.0 || volumeSSBO.values[vNum].shade[0] &gt; 0.0)\\n  {\\n    normal = getGradient(vTex, tpos, vNum, scalar);\\n    if (componentSSBO.values[cNum].gomin &lt;  1.0)\\n    {\\n      gofactor = clamp(normal.a*componentSSBO.values[cNum].goScale + componentSSBO.values[cNum].goShift,\\n      componentSSBO.values[cNum].gomin, componentSSBO.values[cNum].gomax);\\n    }\\n  }\\n\\n  coord.x = (scalar * componentSSBO.values[cNum].oScale + componentSSBO.values[cNum].oShift);\\n  var opacity: f32 = textureSampleLevel(ofunTexture, clampSampler, coord, 0.0).r;\\n\\n  if (volumeSSBO.values[vNum].shade[0] &gt; 0.0)\\n  {\\n    color = color*abs(normal.z);\\n  }\\n\\n  outColor = vec4&lt;f32&gt;(color.rgb, gofactor * opacity);\\n\\n  return outColor;\\n}\\n\\n// adjust the start and end point of a raycast such that it intersects the unit cube.\\n// This function is used to take a raycast starting point and step vector\\n// and numSteps and return the startijng and ending steps for intersecting the\\n// unit cube. Recall for a 3D texture, the unit cube is the range of texture coordsinates\\n// that have valid values. So this funtion can be used to take a ray in texture coordinates\\n// and bound it to intersecting the texture.\\n//\\nfn adjustBounds(tpos: vec4&lt;f32&gt;, tstep: vec4&lt;f32&gt;, numSteps: f32) -&gt; vec2&lt;f32&gt;\\n{\\n  var result: vec2&lt;f32&gt; = vec2&lt;f32&gt;(0.0, numSteps);\\n  var tpos2: vec4&lt;f32&gt; = tpos + tstep*numSteps;\\n\\n  // move tpos to the start of the volume\\n  var adjust: f32 =\\n    min(\\n      max(tpos.x/tstep.x, (tpos.x - 1.0)/tstep.x),\\n      min(\\n        max((tpos.y - 1.0)/tstep.y, tpos.y/tstep.y),\\n        max((tpos.z - 1.0)/tstep.z, tpos.z/tstep.z)));\\n  if (adjust &lt; 0.0)\\n  {\\n    result.x = result.x - adjust;\\n  }\\n\\n  // adjust length to the end\\n  adjust =\\n    max(\\n      min(tpos2.x/tstep.x, (tpos2.x - 1.0)/tstep.x),\\n      max(\\n        min((tpos2.y - 1.0)/tstep.y, tpos2.y/tstep.y),\\n        min((tpos2.z - 1.0)/tstep.z, tpos2.z/tstep.z)));\\n  if (adjust &gt; 0.0)\\n  {\\n    result.y = result.y - adjust;\\n  }\\n\\n  return result;\\n}\\n\\nfn getSimpleColor(scalar: f32, vNum: i32, cNum: i32) -&gt; vec4&lt;f32&gt;\\n{\\n  // how many rows (tfuns) do we have in our tfunTexture\\n  var tfunRows: f32 = f32(textureDimensions(tfunTexture).y);\\n\\n  var coord: vec2&lt;f32&gt; =\\n    vec2&lt;f32&gt;(scalar * componentSSBO.values[cNum].cScale + componentSSBO.values[cNum].cShift,\\n      (0.5 + 2.0 * f32(vNum)) / tfunRows);\\n  var color: vec4&lt;f32&gt; = textureSampleLevel(tfunTexture, clampSampler, coord, 0.0);\\n  coord.x = (scalar * componentSSBO.values[cNum].oScale + componentSSBO.values[cNum].oShift);\\n  var opacity: f32 = textureSampleLevel(ofunTexture, clampSampler, coord, 0.0).r;\\n  return vec4&lt;f32&gt;(color.rgb, opacity);\\n}\\n\\nfn traverseMax(vTex: texture_3d&lt;f32&gt;, vNum: i32, cNum: i32, rayLengthSC: f32, minPosSC: vec4&lt;f32&gt;, rayStepSC: vec4&lt;f32&gt;)\\n{\\n  // convert to tcoords and reject if outside the volume\\n  var numSteps: f32 = rayLengthSC/mapperUBO.SampleDistance;\\n  var tpos: vec4&lt;f32&gt; = volumeSSBO.values[vNum].SCTCMatrix*minPosSC;\\n  var tpos2: vec4&lt;f32&gt; = volumeSSBO.values[vNum].SCTCMatrix*(minPosSC + rayStepSC);\\n  var tstep: vec4&lt;f32&gt; = tpos2 - tpos;\\n\\n  var rayBounds: vec2&lt;f32&gt; = intersectRayBoundsWithClipPlanes(\\n    vNum,\\n    minPosSC,\\n    rayStepSC,\\n    adjustBounds(tpos, tstep, numSteps));\\n\\n  // did we hit anything\\n  if (rayBounds.x &gt;= rayBounds.y)\\n  {\\n    traverseVals[vNum] = vec4&lt;f32&gt;(0.0,0.0,0.0,0.0);\\n    return;\\n  }\\n\\n  tpos = tpos + tstep*rayBounds.x;\\n  var curDist: f32 = rayBounds.x;\\n  var maxVal: f32 = -1.0e37;\\n  loop\\n  {\\n    var scalar: f32 = getTextureValue(vTex, tpos);\\n    if (scalar &gt; maxVal)\\n    {\\n      maxVal = scalar;\\n    }\\n\\n    // increment position\\n    curDist = curDist + 1.0;\\n    tpos = tpos + tstep;\\n\\n    // check if we have reached a terminating condition\\n    if (curDist &gt; rayBounds.y) { break; }\\n  }\\n\\n  // process to get the color and opacity\\n  traverseVals[vNum] = getSimpleColor(maxVal, vNum, cNum);\\n}\\n\\nfn traverseMin(vTex: texture_3d&lt;f32&gt;, vNum: i32, cNum: i32, rayLengthSC: f32, minPosSC: vec4&lt;f32&gt;, rayStepSC: vec4&lt;f32&gt;)\\n{\\n  // convert to tcoords and reject if outside the volume\\n  var numSteps: f32 = rayLengthSC/mapperUBO.SampleDistance;\\n  var tpos: vec4&lt;f32&gt; = volumeSSBO.values[vNum].SCTCMatrix*minPosSC;\\n  var tpos2: vec4&lt;f32&gt; = volumeSSBO.values[vNum].SCTCMatrix*(minPosSC + rayStepSC);\\n  var tstep: vec4&lt;f32&gt; = tpos2 - tpos;\\n\\n  var rayBounds: vec2&lt;f32&gt; = intersectRayBoundsWithClipPlanes(\\n    vNum,\\n    minPosSC,\\n    rayStepSC,\\n    adjustBounds(tpos, tstep, numSteps));\\n\\n  // did we hit anything\\n  if (rayBounds.x &gt;= rayBounds.y)\\n  {\\n    traverseVals[vNum] = vec4&lt;f32&gt;(0.0,0.0,0.0,0.0);\\n    return;\\n  }\\n\\n  tpos = tpos + tstep*rayBounds.x;\\n  var curDist: f32 = rayBounds.x;\\n  var minVal: f32 = 1.0e37;\\n  loop\\n  {\\n    var scalar: f32 = getTextureValue(vTex, tpos);\\n    if (scalar &lt; minVal)\\n    {\\n      minVal = scalar;\\n    }\\n\\n    // increment position\\n    curDist = curDist + 1.0;\\n    tpos = tpos + tstep;\\n\\n    // check if we have reached a terminating condition\\n    if (curDist &gt; rayBounds.y) { break; }\\n  }\\n\\n  // process to get the color and opacity\\n  traverseVals[vNum] = getSimpleColor(minVal, vNum, cNum);\\n}\\n\\nfn traverseAverage(vTex: texture_3d&lt;f32&gt;, vNum: i32, cNum: i32, rayLengthSC: f32, minPosSC: vec4&lt;f32&gt;, rayStepSC: vec4&lt;f32&gt;)\\n{\\n  // convert to tcoords and reject if outside the volume\\n  var numSteps: f32 = rayLengthSC/mapperUBO.SampleDistance;\\n  var tpos: vec4&lt;f32&gt; = volumeSSBO.values[vNum].SCTCMatrix*minPosSC;\\n  var tpos2: vec4&lt;f32&gt; = volumeSSBO.values[vNum].SCTCMatrix*(minPosSC + rayStepSC);\\n  var tstep: vec4&lt;f32&gt; = tpos2 - tpos;\\n\\n  var rayBounds: vec2&lt;f32&gt; = intersectRayBoundsWithClipPlanes(\\n    vNum,\\n    minPosSC,\\n    rayStepSC,\\n    adjustBounds(tpos, tstep, numSteps));\\n\\n  // did we hit anything\\n  if (rayBounds.x &gt;= rayBounds.y)\\n  {\\n    traverseVals[vNum] = vec4&lt;f32&gt;(0.0,0.0,0.0,0.0);\\n    return;\\n  }\\n\\n  let ipRange: vec4&lt;f32&gt; = volumeSSBO.values[vNum].ipScalarRange;\\n  tpos = tpos + tstep*rayBounds.x;\\n  var curDist: f32 = rayBounds.x;\\n  var avgVal: f32 = 0.0;\\n  var sampleCount: f32 = 0.0;\\n  loop\\n  {\\n    var sample: f32 = getTextureValue(vTex, tpos);\\n    // right now leave filtering off until WebGL changes get merged\\n    // if (ipRange.z == 0.0 || sample &gt;= ipRange.x &amp;&amp; sample &lt;= ipRange.y)\\n    // {\\n      avgVal = avgVal + sample;\\n      sampleCount = sampleCount + 1.0;\\n    // }\\n\\n    // increment position\\n    curDist = curDist + 1.0;\\n    tpos = tpos + tstep;\\n\\n    // check if we have reached a terminating condition\\n    if (curDist &gt; rayBounds.y) { break; }\\n  }\\n\\n  if (sampleCount &lt;= 0.0)\\n  {\\n    traverseVals[vNum] = vec4&lt;f32&gt;(0.0,0.0,0.0,0.0);\\n    return;\\n  }\\n\\n  // process to get the color and opacity\\n  traverseVals[vNum] = getSimpleColor(avgVal/sampleCount, vNum, cNum);\\n}\\n\\nfn traverseAdditive(vTex: texture_3d&lt;f32&gt;, vNum: i32, cNum: i32, rayLengthSC: f32, minPosSC: vec4&lt;f32&gt;, rayStepSC: vec4&lt;f32&gt;)\\n{\\n  // convert to tcoords and reject if outside the volume\\n  var numSteps: f32 = rayLengthSC/mapperUBO.SampleDistance;\\n  var tpos: vec4&lt;f32&gt; = volumeSSBO.values[vNum].SCTCMatrix*minPosSC;\\n  var tpos2: vec4&lt;f32&gt; = volumeSSBO.values[vNum].SCTCMatrix*(minPosSC + rayStepSC);\\n  var tstep: vec4&lt;f32&gt; = tpos2 - tpos;\\n\\n  var rayBounds: vec2&lt;f32&gt; = intersectRayBoundsWithClipPlanes(\\n    vNum,\\n    minPosSC,\\n    rayStepSC,\\n    adjustBounds(tpos, tstep, numSteps));\\n\\n  // did we hit anything\\n  if (rayBounds.x &gt;= rayBounds.y)\\n  {\\n    traverseVals[vNum] = vec4&lt;f32&gt;(0.0,0.0,0.0,0.0);\\n    return;\\n  }\\n\\n  let ipRange: vec4&lt;f32&gt; = volumeSSBO.values[vNum].ipScalarRange;\\n  tpos = tpos + tstep*rayBounds.x;\\n  var curDist: f32 = rayBounds.x;\\n  var sumVal: f32 = 0.0;\\n  loop\\n  {\\n    var sample: f32 = getTextureValue(vTex, tpos);\\n    // right now leave filtering off until WebGL changes get merged\\n    // if (ipRange.z == 0.0 || sample &gt;= ipRange.x &amp;&amp; sample &lt;= ipRange.y)\\n    // {\\n      sumVal = sumVal + sample;\\n    // }\\n    // increment position\\n    curDist = curDist + 1.0;\\n    tpos = tpos + tstep;\\n\\n    // check if we have reached a terminating condition\\n    if (curDist &gt; rayBounds.y) { break; }\\n  }\\n\\n  // process to get the color and opacity\\n  traverseVals[vNum] = getSimpleColor(sumVal, vNum, cNum);\\n}\\n\\nfn composite(rayLengthSC: f32, minPosSC: vec4&lt;f32&gt;, rayStepSC: vec4&lt;f32&gt;) -&gt; vec4&lt;f32&gt;\\n{\\n  // initial ray position is at the beginning\\n  var rayPosSC: vec4&lt;f32&gt; = minPosSC;\\n\\n  // how many rows (tfuns) do we have in our tfunTexture\\n  var tfunRows: f32 = f32(textureDimensions(tfunTexture).y);\\n\\n  var curDist: f32 = 0.0;\\n  var computedColor: vec4&lt;f32&gt; = vec4&lt;f32&gt;(0.0, 0.0, 0.0, 0.0);\\n  var sampleColor: vec4&lt;f32&gt;;\\n  var numSteps: f32 = rayLengthSC/mapperUBO.SampleDistance;\\n//VTK::Volume::TraverseCalls\\n//VTK::Volume::TraverseInit\\n\\n  loop\\n  {\\n    // for each volume, sample and accumulate color\\n//VTK::Volume::CompositeCalls\\n\\n    // increment position\\n    curDist = curDist + mapperUBO.SampleDistance;\\n    rayPosSC = rayPosSC + rayStepSC;\\n\\n    // check if we have reached a terminating condition\\n    if (curDist &gt; rayLengthSC) { break; }\\n    if (computedColor.a &gt; 0.98) { break; }\\n  }\\n  return computedColor;\\n}\\n\\n@fragment\\nfn main(\\n//VTK::IOStructs::Input\\n)\\n//VTK::IOStructs::Output\\n{\\n  var output: fragmentOutput;\\n\\n  var rayMax: f32 = textureSampleLevel(maxTexture, clampSampler, input.tcoordVS, 0.0).r;\\n  var rayMin: f32 = textureSampleLevel(minTexture, clampSampler, input.tcoordVS, 0.0).r;\\n\\n  // discard empty rays\\n  if (rayMax &lt;= rayMin) { discard; }\\n  else\\n  {\\n    // compute start and end ray positions in view coordinates\\n    var minPosSC: vec4&lt;f32&gt; = rendererUBO.PCSCMatrix*vec4&lt;f32&gt;(2.0 * input.tcoordVS.x - 1.0, 1.0 - 2.0 * input.tcoordVS.y, rayMax, 1.0);\\n    minPosSC = minPosSC * (1.0 / minPosSC.w);\\n    var maxPosSC: vec4&lt;f32&gt; = rendererUBO.PCSCMatrix*vec4&lt;f32&gt;(2.0 * input.tcoordVS.x - 1.0, 1.0 - 2.0 * input.tcoordVS.y, rayMin, 1.0);\\n    maxPosSC = maxPosSC * (1.0 / maxPosSC.w);\\n\\n    var rayLengthSC: f32 = distance(minPosSC.xyz, maxPosSC.xyz);\\n    var rayStepSC: vec4&lt;f32&gt; = (maxPosSC - minPosSC)*(mapperUBO.SampleDistance/rayLengthSC);\\n    rayStepSC.w = 0.0;\\n\\n    var computedColor: vec4&lt;f32&gt;;\\n\\n//VTK::Volume::Loop\\n\\n//VTK::RenderEncoder::Impl\\n  }\\n\\n  return output;\\n}\\n`,Lx=new Float64Array(16),Bx=new Float64Array(16);const Fx={volumes:null,rowLength:1024,lastVolumeLength:0};function Nx(e,t,n={}){Object.assign(t,Fx,n),ST.extend(e,t,n),t.fragmentShaderTemplate=Vx,t.UBO=wx.newInstance({label:&quot;mapperUBO&quot;}),t.UBO.addEntry(&quot;SampleDistance&quot;,&quot;f32&quot;),t.SSBO=Dx.newInstance({label:&quot;volumeSSBO&quot;}),t.componentSSBO=Dx.newInstance({label:&quot;componentSSBO&quot;}),t.lutBuildTime={},sn.obj(t.lutBuildTime,{mtime:0}),t.clipPlanes=Array.from({length:6},(()=&gt;[0,0,0,0])),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUVolumePassFSQ&quot;),e.replaceShaderPosition=(e,t,n)=&gt;{const r=t.getShaderDescription(&quot;vertex&quot;);r.addBuiltinOutput(&quot;vec4&lt;f32&gt;&quot;,&quot;@builtin(position) Position&quot;);let o=r.getCode();o=rT.substitute(o,&quot;//VTK::Position::Impl&quot;,[&quot;output.tcoordVS = vec2&lt;f32&gt;(vertexBC.x * 0.5 + 0.5, 1.0 - vertexBC.y * 0.5 - 0.5);&quot;,&quot;output.Position = vec4&lt;f32&gt;(vertexBC, 1.0);&quot;]).result,r.setCode(o),t.getShaderDescription(&quot;fragment&quot;).addBuiltinInput(&quot;vec4&lt;f32&gt;&quot;,&quot;@builtin(position) fragPos&quot;)},t.shaderReplacements.set(&quot;replaceShaderPosition&quot;,e.replaceShaderPosition),e.replaceShaderVolume=(e,n,r)=&gt;{const o=n.getShaderDescription(&quot;fragment&quot;);let a=o.getCode();const i=[],s=[],l=[];for(let e=0;e&lt;t.volumes.length;e++)t.volumes[e].getRenderable().getMapper().getBlendMode()===hg.COMPOSITE_BLEND?(s.push(`  var tpos${e}: vec4&lt;f32&gt; = volumeSSBO.values[${e}].SCTCMatrix*minPosSC;`),s.push(`  var tpos2_${e}: vec4&lt;f32&gt; = volumeSSBO.values[${e}].SCTCMatrix*(minPosSC + rayStepSC);`),s.push(`  var tstep${e}: vec4&lt;f32&gt; = tpos2_${e} - tpos${e};`),s.push(`  var rayBounds${e}: vec2&lt;f32&gt; = intersectRayBoundsWithClipPlanes(${e}, minPosSC, rayStepSC, adjustBounds(tpos${e}, tstep${e}, numSteps));`),i.push(`    if (curDist &gt;= rayBounds${e}.x * mapperUBO.SampleDistance &amp;&amp; curDist &lt;= rayBounds${e}.y * mapperUBO.SampleDistance) {`),i.push(`      sampleColor = processVolume(volTexture${e}, ${e}, ${t.rowStarts[e]}, rayPosSC, tfunRows);`),i.push(&quot;    computedColor = vec4&lt;f32&gt;(\\n          sampleColor.a * sampleColor.rgb * (1.0 - computedColor.a) + computedColor.rgb,\\n          (1.0 - computedColor.a)*sampleColor.a + computedColor.a);&quot;),i.push(&quot;    }&quot;)):(l.push(`  sampleColor = traverseVals[${e}];`),l.push(&quot;  computedColor = vec4&lt;f32&gt;(\\n          sampleColor.a * sampleColor.rgb * (1.0 - computedColor.a) + computedColor.rgb,\\n          (1.0 - computedColor.a)*sampleColor.a + computedColor.a);&quot;));a=rT.substitute(a,&quot;//VTK::Volume::CompositeCalls&quot;,i).result,a=rT.substitute(a,&quot;//VTK::Volume::TraverseCalls&quot;,l).result,a=rT.substitute(a,&quot;//VTK::Volume::TraverseInit&quot;,s).result,a=rT.substitute(a,&quot;//VTK::Volume::TraverseDec&quot;,[`var&lt;private&gt; traverseVals: array&lt;vec4&lt;f32&gt;,${t.volumes.length}&gt;;`]).result;let c=!1;for(let e=0;e&lt;t.volumes.length;e++){const n=t.volumes[e].getRenderable().getMapper().getBlendMode();n===hg.COMPOSITE_BLEND?c=!0:n===hg.MAXIMUM_INTENSITY_BLEND?a=rT.substitute(a,&quot;//VTK::Volume::Loop&quot;,[`    traverseMax(volTexture${e}, ${e}, ${e}, rayLengthSC, minPosSC, rayStepSC);`,`    computedColor = traverseVals[${e}];`,&quot;//VTK::Volume::Loop&quot;]).result:n===hg.MINIMUM_INTENSITY_BLEND?a=rT.substitute(a,&quot;//VTK::Volume::Loop&quot;,[`    traverseMin(volTexture${e}, ${e}, ${e}, rayLengthSC, minPosSC, rayStepSC);`,`    computedColor = traverseVals[${e}];`,&quot;//VTK::Volume::Loop&quot;]).result:n===hg.AVERAGE_INTENSITY_BLEND?a=rT.substitute(a,&quot;//VTK::Volume::Loop&quot;,[`    traverseAverage(volTexture${e}, ${e}, ${e}, rayLengthSC, minPosSC, rayStepSC);`,`    computedColor = traverseVals[${e}];`,&quot;//VTK::Volume::Loop&quot;]).result:n===hg.ADDITIVE_INTENSITY_BLEND&amp;&amp;(a=rT.substitute(a,&quot;//VTK::Volume::Loop&quot;,[`    traverseAdditive(volTexture${e}, ${e}, ${e}, rayLengthSC, minPosSC, rayStepSC);`,`    computedColor = traverseVals[${e}];`,&quot;//VTK::Volume::Loop&quot;]).result)}c&amp;&amp;(a=rT.substitute(a,&quot;//VTK::Volume::Loop&quot;,[&quot;    computedColor = composite(rayLengthSC, minPosSC, rayStepSC);&quot;]).result),o.setCode(a)},t.shaderReplacements.set(&quot;replaceShaderVolume&quot;,e.replaceShaderVolume),e.updateLUTImage=n=&gt;{let r=e.getMTime();for(let e=0;e&lt;t.volumes.length;e++){const n=t.volumes[e].getRenderable(),o=n.getMapper().getInputData();r=Math.max(r,n.getMTime(),o.getMTime())}if(r&lt;t.lutBuildTime.getMTime())return;t.numRows=0,t.rowStarts=[];for(let e=0;e&lt;t.volumes.length;e++){t.rowStarts.push(t.numRows);const n=t.volumes[e].getRenderable(),r=n.getMapper(),o=n.getProperty(),a=r.getInputData(),i=(a.getPointData()&amp;&amp;a.getPointData().getScalars()).getNumberOfComponents(),s=o.getIndependentComponents()?i:1;t.numRows+=s}const o=new Uint8ClampedArray(2*t.numRows*t.rowLength*4),a=new Float32Array(2*t.numRows*t.rowLength);let i=0;const s=new Float32Array(3*t.rowLength),l=t.rowLength;for(let e=0;e&lt;t.volumes.length;e++){const n=t.volumes[e].getRenderable(),r=n.getMapper(),c=n.getProperty(),u=r.getInputData(),d=(u.getPointData()&amp;&amp;u.getPointData().getScalars()).getNumberOfComponents(),p=c.getIndependentComponents()?d:1;for(let e=0;e&lt;p;++e){const n=c.getRGBTransferFunction(e),r=n.getRange();n.getTable(r[0],r[1],l,s,1);let u=i*l*4;for(let e=0;e&lt;l;++e){o[u+4*e]=255*s[3*e],o[u+4*e+1]=255*s[3*e+1],o[u+4*e+2]=255*s[3*e+2],o[u+4*e+3]=255;for(let t=0;t&lt;4;t++)o[u+4*(l+e)+t]=o[u+4*e+t]}const d=c.getScalarOpacity(e),p=t.sampleDist/c.getScalarOpacityUnitDistance(e),f=d.getRange();d.getTable(f[0],f[1],l,s,1),u=i*l;for(let e=0;e&lt;l;++e)a[u+e]=1-(1-s[e])**p,a[u+e+l]=a[u+e];i+=2}}{const e={nativeArray:o,width:t.rowLength,height:2*t.numRows,depth:1,format:&quot;rgba8unorm&quot;},r=n.getTextureManager().getTexture(e).createView(&quot;tfunTexture&quot;);t.textureViews[2]=r}{const e={nativeArray:a,width:t.rowLength,height:2*t.numRows,depth:1,format:&quot;r16float&quot;},r=n.getTextureManager().getTexture(e).createView(&quot;ofunTexture&quot;);t.textureViews[3]=r}t.lutBuildTime.modified()},e.updateSSBO=n=&gt;{let r=Math.max(e.getMTime(),t.WebGPURenderer.getStabilizedTime());for(let e=0;e&lt;t.volumes.length;e++){const n=t.volumes[e].getRenderable(),o=n.getMapper(),a=o.getInputData();r=Math.max(r,n.getMTime(),a.getMTime(),o.getMTime(),o.getClippingPlanesMTime())}if(r&lt;t.SSBO.getSendTime())return;const o=t.WebGPURenderer.getStabilizedCenterByReference();t.SSBO.clearData(),t.SSBO.setNumberOfInstances(t.volumes.length);const a=new Float64Array(16*t.volumes.length),i=new Float64Array(16*t.volumes.length),s=Array.from({length:6},(()=&gt;new Float64Array(4*t.volumes.length))),l=new Float64Array(4*t.volumes.length),c=new Float64Array(4*t.volumes.length),u=new Float64Array(4*t.volumes.length),d=new Float64Array(4*t.volumes.length),p=new Float64Array(4*t.volumes.length);for(let e=0;e&lt;t.volumes.length;e++){const n=t.volumes[e].getRenderable(),r=n.getMapper(),f=r.getInputData();x(Lx),C(Lx,Lx,o);const g=n.getMatrix();y(Bx,g),b(Bx,Bx),A(Lx,Bx,Lx);const m=f.getWorldToIndex();A(Lx,m,Lx);const h=f.getDimensions();x(Bx),S(Bx,Bx,[1/h[0],1/h[1],1/h[2]]),A(Lx,Bx,Lx);for(let t=0;t&lt;16;t++)a[16*e+t]=Lx[t];b(Lx,Lx);for(let t=0;t&lt;4;t++)i[16*e+4*t]=Lx[4*t],i[16*e+4*t+1]=Lx[4*t+1],i[16*e+4*t+2]=Lx[4*t+2],i[16*e+4*t+3]=0;c[4*e]=1/h[0],c[4*e+1]=1/h[1],c[4*e+2]=1/h[2],c[4*e+3]=1,u[4*e]=n.getProperty().getShade()?1:0;const v=f.getSpacing();d[4*e]=v[0],d[4*e+1]=v[1],d[4*e+2]=v[2],d[4*e+3]=1;const T=t.textureViews[e+4].getTexture().getScale(),P=n.getProperty().getIpScalarRange();p[4*e]=P[0]/T,p[4*e+1]=P[1]/T,p[4*e+2]=n.getProperty().getFilterMode(),R(Bx,[-o[0],-o[1],-o[2]]);const w=Ex(r,Bx,t.clipPlanes);l[4*e]=w;for(let n=0;n&lt;w;n++){const r=4*e;s[n][r]=t.clipPlanes[n][0],s[n][r+1]=t.clipPlanes[n][1],s[n][r+2]=t.clipPlanes[n][2],s[n][r+3]=t.clipPlanes[n][3]}}t.SSBO.addEntry(&quot;SCTCMatrix&quot;,&quot;mat4x4&lt;f32&gt;&quot;),t.SSBO.addEntry(&quot;planeNormals&quot;,&quot;mat4x4&lt;f32&gt;&quot;),t.SSBO.addEntry(&quot;shade&quot;,&quot;vec4&lt;f32&gt;&quot;),t.SSBO.addEntry(&quot;tstep&quot;,&quot;vec4&lt;f32&gt;&quot;),t.SSBO.addEntry(&quot;spacing&quot;,&quot;vec4&lt;f32&gt;&quot;),t.SSBO.addEntry(&quot;ipScalarRange&quot;,&quot;vec4&lt;f32&gt;&quot;),function(e,t){for(let n=0;n&lt;6;n++)e.addEntry(`${t}${n}`,&quot;vec4&lt;f32&gt;&quot;)}(t.SSBO,&quot;clipPlane&quot;),t.SSBO.addEntry(&quot;clipPlaneStates&quot;,&quot;vec4&lt;f32&gt;&quot;),t.SSBO.setAllInstancesFromArray(&quot;SCTCMatrix&quot;,a),t.SSBO.setAllInstancesFromArray(&quot;planeNormals&quot;,i),t.SSBO.setAllInstancesFromArray(&quot;shade&quot;,u),t.SSBO.setAllInstancesFromArray(&quot;tstep&quot;,c),t.SSBO.setAllInstancesFromArray(&quot;spacing&quot;,d),t.SSBO.setAllInstancesFromArray(&quot;ipScalarRange&quot;,p);for(let e=0;e&lt;6;e++)t.SSBO.setAllInstancesFromArray(`clipPlane${e}`,s[e]);t.SSBO.setAllInstancesFromArray(&quot;clipPlaneStates&quot;,l),t.SSBO.send(n),t.componentSSBO.clearData(),t.componentSSBO.setNumberOfInstances(t.numRows);const f=new Float64Array(t.numRows),g=new Float64Array(t.numRows),m=new Float64Array(t.numRows),h=new Float64Array(t.numRows),v=new Float64Array(t.numRows),T=new Float64Array(t.numRows),P=new Float64Array(t.numRows),w=new Float64Array(t.numRows);let I=0;for(let e=0;e&lt;t.volumes.length;e++){const n=t.volumes[e].getRenderable(),r=n.getMapper(),o=n.getProperty(),a=r.getInputData(),i=(a.getPointData()&amp;&amp;a.getPointData().getScalars()).getNumberOfComponents(),s=o.getIndependentComponents(),l=t.textureViews[e+4].getTexture().getFormat(),c=gT.getDetailsFromTextureFormat(l),u={scale:[255],offset:[0]};2===c.elementSize&amp;&amp;&quot;float&quot;===c.sampleType&amp;&amp;(u.scale[0]=1);for(let e=0;e&lt;i;e++){const t=s?e:0,n=u.scale[e],r=o.getScalarOpacity(t).getRange(),a=n/(r[1]-r[0]),i=(u.offset[e]-r[0])/(r[1]-r[0]);h[I]=i,m[I]=a;const l=o.getRGBTransferFunction(t).getRange();if(g[I]=(u.offset[e]-l[0])/(l[1]-l[0]),f[I]=n/(l[1]-l[0]),o.getUseGradientOpacity(t)){const e=o.getGradientOpacityMinimumOpacity(t),r=o.getGradientOpacityMaximumOpacity(t);v[I]=e,T[I]=r;const a=[o.getGradientOpacityMinimumValue(t),o.getGradientOpacityMaximumValue(t)];w[I]=n*(r-e)/(a[1]-a[0]),P[I]=-a[0]*(r-e)/(a[1]-a[0])+e}else v[I]=1,T[I]=1,w[I]=0,P[I]=1;I++}}t.componentSSBO.addEntry(&quot;cScale&quot;,&quot;f32&quot;),t.componentSSBO.addEntry(&quot;cShift&quot;,&quot;f32&quot;),t.componentSSBO.addEntry(&quot;oScale&quot;,&quot;f32&quot;),t.componentSSBO.addEntry(&quot;oShift&quot;,&quot;f32&quot;),t.componentSSBO.addEntry(&quot;goShift&quot;,&quot;f32&quot;),t.componentSSBO.addEntry(&quot;goScale&quot;,&quot;f32&quot;),t.componentSSBO.addEntry(&quot;gomin&quot;,&quot;f32&quot;),t.componentSSBO.addEntry(&quot;gomax&quot;,&quot;f32&quot;),t.componentSSBO.setAllInstancesFromArray(&quot;cScale&quot;,f),t.componentSSBO.setAllInstancesFromArray(&quot;cShift&quot;,g),t.componentSSBO.setAllInstancesFromArray(&quot;oScale&quot;,m),t.componentSSBO.setAllInstancesFromArray(&quot;oShift&quot;,h),t.componentSSBO.setAllInstancesFromArray(&quot;goScale&quot;,w),t.componentSSBO.setAllInstancesFromArray(&quot;goShift&quot;,P),t.componentSSBO.setAllInstancesFromArray(&quot;gomin&quot;,v),t.componentSSBO.setAllInstancesFromArray(&quot;gomax&quot;,T),t.componentSSBO.send(n)};const n=e.updateBuffers;e.updateBuffers=()=&gt;{n();let r=t.volumes[0].getRenderable().getMapper().getSampleDistance();for(let e=0;e&lt;t.volumes.length;e++){const n=t.volumes[e].getRenderable().getMapper().getSampleDistance();n&lt;r&amp;&amp;(r=n)}t.sampleDist!==r&amp;&amp;(t.sampleDist=r,t.UBO.setValue(&quot;SampleDistance&quot;,r),t.UBO.sendIfNeeded(t.device));for(let e=0;e&lt;t.volumes.length;e++){const n=t.volumes[e].getRenderable().getMapper().getInputData(),r=t.device.getTextureManager().getTextureForImageData(n);if(!t.textureViews[e+4]||t.textureViews[e+4].getTexture()!==r){const n=r.createView(`volTexture${e}`);t.textureViews[e+4]=n}}if(t.volumes.length&lt;t.lastVolumeLength)for(let e=t.volumes.length;e&lt;t.lastVolumeLength;e++)t.textureViews.pop();t.lastVolumeLength=t.volumes.length,e.updateLUTImage(t.device),e.updateSSBO(t.device),t.clampSampler||(t.clampSampler=DT.newInstance({label:&quot;clampSampler&quot;}),t.clampSampler.create(t.device,{minFilter:&quot;linear&quot;,magFilter:&quot;linear&quot;}))},e.computePipelineHash=()=&gt;{t.pipelineHash=&quot;volfsq&quot;;for(let e=0;e&lt;t.volumes.length;e++){const n=t.volumes[e].getRenderable().getMapper().getBlendMode();t.pipelineHash+=`${n}`}},e.setVolumes=n=&gt;{if(!t.volumes||t.volumes.length!==n.length)return t.volumes=[...n],void e.modified();for(let r=0;r&lt;n.length;r++)if(n[r]!==t.volumes[r])return t.volumes=[...n],void e.modified()};const r=e.getBindables;e.getBindables=()=&gt;{const e=r();return e.push(t.componentSSBO),e.push(t.clampSampler),e}}(e,t)}var kx={newInstance:sn.newInstance(Nx,&quot;vtkWebGPUVolumePassFSQ&quot;),extend:Nx};const{Representation:Gx}=us,{BufferUsage:Ux,PrimitiveTypes:_x}=bx,Kx=[[0,4,6],[0,6,2],[1,3,7],[1,7,5],[0,5,4],[0,1,5],[2,6,7],[2,7,3],[0,3,1],[0,2,3],[4,5,7],[4,7,6]];const zx={colorTextureView:null,depthTextureView:null,volumes:null};function Wx(e,t,n={}){Object.assign(t,zx,n),vv.extend(e,t,n),t._mapper=bT.newInstance(),t._mapper.setFragmentShaderTemplate(&quot;\\n//VTK::Renderer::Dec\\n\\n//VTK::Select::Dec\\n\\n//VTK::VolumePass::Dec\\n\\n//VTK::TCoord::Dec\\n\\n//VTK::RenderEncoder::Dec\\n\\n//VTK::Mapper::Dec\\n\\n//VTK::IOStructs::Dec\\n\\n@fragment\\nfn main(\\n//VTK::IOStructs::Input\\n)\\n//VTK::IOStructs::Output\\n{\\n  var output : fragmentOutput;\\n\\n  //VTK::Select::Impl\\n\\n  //VTK::TCoord::Impl\\n\\n  //VTK::VolumePass::Impl\\n\\n  // use the maximum (closest) of the current value and the zbuffer\\n  // the blend func will then take the min to find the farthest stop value\\n  var stopval: f32 = max(input.fragPos.z, textureLoad(opaquePassDepthTexture, vec2&lt;i32&gt;(i32(input.fragPos.x), i32(input.fragPos.y)), 0));\\n\\n  //VTK::RenderEncoder::Impl\\n  return output;\\n}\\n&quot;),t._mapper.getShaderReplacements().set(&quot;replaceShaderVolumePass&quot;,((e,t,n)=&gt;{t.getShaderDescription(&quot;fragment&quot;).addBuiltinInput(&quot;vec4&lt;f32&gt;&quot;,&quot;@builtin(position) fragPos&quot;)})),t._boundsPoly=Ru.newInstance(),t._lastMTimes=[],sn.setGet(e,t,[&quot;colorTextureView&quot;,&quot;depthTextureView&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUVolumePass&quot;),e.initialize=n=&gt;{t._clearEncoder||e.createClearEncoder(n),t._mergeEncoder||e.createMergeEncoder(n),t._copyEncoder||e.createCopyEncoder(n),t._depthRangeEncoder||e.createDepthRangeEncoder(n),t.fullScreenQuad||(t.fullScreenQuad=kx.newInstance(),t.fullScreenQuad.setDevice(n.getDevice()),t.fullScreenQuad.setTextureViews([...t._depthRangeEncoder.getColorTextureViews()])),t._volumeCopyQuad||(t._volumeCopyQuad=ST.newInstance(),t._volumeCopyQuad.setPipelineHash(&quot;volpassfsq&quot;),t._volumeCopyQuad.setDevice(n.getDevice()),t._volumeCopyQuad.setFragmentShaderTemplate(&quot;\\n//VTK::Renderer::Dec\\n\\n//VTK::Mapper::Dec\\n\\n//VTK::TCoord::Dec\\n\\n//VTK::RenderEncoder::Dec\\n\\n//VTK::IOStructs::Dec\\n\\n@fragment\\nfn main(\\n//VTK::IOStructs::Input\\n)\\n//VTK::IOStructs::Output\\n{\\n  var output: fragmentOutput;\\n\\n  var computedColor: vec4&lt;f32&gt; = textureSample(volumePassColorTexture,\\n    volumePassColorTextureSampler, mapperUBO.tscale*input.tcoordVS);\\n\\n  //VTK::RenderEncoder::Impl\\n  return output;\\n}\\n&quot;),t._copyUBO=wx.newInstance({label:&quot;mapperUBO&quot;}),t._copyUBO.addEntry(&quot;tscale&quot;,&quot;vec2&lt;f32&gt;&quot;),t._volumeCopyQuad.setUBO(t._copyUBO),t._volumeCopyQuad.setTextureViews([t._colorTextureView]))},e.traverse=(n,r)=&gt;{if(t.deleted)return;t._currentParent=r,e.initialize(r),e.computeTiming(r),e.renderDepthBounds(n,r),t._firstGroup=!0;const o=r.getDevice(),a=o.getHandle().limits.maxSampledTexturesPerShaderStage-4;if(t.volumes.length&gt;a){const o=n.getRenderable().getActiveCamera().getPosition(),i=[];for(let e=0;e&lt;t.volumes.length;e++){const n=t.volumes[e].getRenderable().getBounds(),r=[.5*(n[1]+n[0]),.5*(n[3]+n[2]),.5*(n[5]+n[4])];i[e]=Yo(r,o)}const s=[...Array(t.volumes.length).keys()];s.sort(((e,t)=&gt;i[t]-i[e]));let l=[],c=s.length%a;for(let o=0;o&lt;s.length;o++)l.push(t.volumes[s[o]]),l.length&gt;=c&amp;&amp;(e.rayCastPass(r,n,l),l=[],c=a,t._firstGroup=!1)}else e.rayCastPass(r,n,t.volumes);if(t._volumeCopyQuad.setWebGPURenderer(n),t._useSmallViewport){const e=t._colorTextureView.getTexture().getWidth(),n=t._colorTextureView.getTexture().getHeight();t._copyUBO.setArray(&quot;tscale&quot;,[t._smallViewportWidth/e,t._smallViewportHeight/n])}else t._copyUBO.setArray(&quot;tscale&quot;,[1,1]);t._copyUBO.sendIfNeeded(o),t._copyEncoder.setColorTextureView(0,t.colorTextureView),t._copyEncoder.attachTextureViews(),t._copyEncoder.begin(r.getCommandEncoder()),n.scissorAndViewport(t._copyEncoder),t._volumeCopyQuad.prepareAndDraw(t._copyEncoder),t._copyEncoder.end()},e.delete=sn.chain((()=&gt;{t._animationRateSubscription&amp;&amp;(t._animationRateSubscription.unsubscribe(),t._animationRateSubscription=null)}),e.delete),e.computeTiming=e=&gt;{const n=e.getRenderable().getInteractor();if(null==t._lastScale){const e=t.volumes[0].getRenderable().getMapper();t._lastScale=e.getInitialInteractionScale()||1}t._useSmallViewport=!1,n.isAnimating()&amp;&amp;t._lastScale&gt;1.5&amp;&amp;(t._useSmallViewport=!0),t._colorTexture.resize(e.getCanvas().width,e.getCanvas().height),t._animationRateSubscription||(t._animationRateSubscription=n.onAnimationFrameRateUpdate((()=&gt;{const e=t.volumes[0].getRenderable().getMapper();if(e.getAutoAdjustSampleDistances()){const e=n.getRecentAnimationFrameRate(),r=t._lastScale*n.getDesiredUpdateRate()/e;t._lastScale=r,t._lastScale&gt;400&amp;&amp;(t._lastScale=400)}else t._lastScale=e.getImageSampleDistance()*e.getImageSampleDistance();t._lastScale&lt;1.5&amp;&amp;(t._lastScale=1.5)})))},e.rayCastPass=(e,n,r)=&gt;{const o=t._firstGroup?t._clearEncoder:t._mergeEncoder;o.attachTextureViews(),o.begin(e.getCommandEncoder());let a=t._colorTextureView.getTexture().getWidth(),i=t._colorTextureView.getTexture().getHeight();if(t._useSmallViewport){const n=e.getCanvas(),r=1/Math.sqrt(t._lastScale);t._smallViewportWidth=Math.ceil(r*n.width),t._smallViewportHeight=Math.ceil(r*n.height),a=t._smallViewportWidth,i=t._smallViewportHeight}o.getHandle().setViewport(0,0,a,i,0,1),o.getHandle().setScissorRect(0,0,a,i),t.fullScreenQuad.setWebGPURenderer(n),t.fullScreenQuad.setVolumes(r),t.fullScreenQuad.prepareAndDraw(o),o.end()},e.renderDepthBounds=(n,r)=&gt;{e.updateDepthPolyData(n);const o=t._boundsPoly,a=o.getPoints(),i=o.getPolys();let s={hash:`vp${i.getMTime()}`,usage:Ux.Index,cells:i,numberOfPoints:a.getNumberOfPoints(),primitiveType:_x.Triangles,representation:Gx.SURFACE};const l=r.getDevice().getBufferManager().getBuffer(s);t._mapper.getVertexInput().setIndexBuffer(l),s={usage:Ux.PointArray,format:&quot;float32x4&quot;,hash:`vp${a.getMTime()}${i.getMTime()}`,dataArray:a,indexBuffer:l,packExtra:!0};const c=r.getDevice().getBufferManager().getBuffer(s);t._mapper.getVertexInput().addBuffer(c,[&quot;vertexBC&quot;]),t._mapper.setNumberOfVertices(c.getSizeInBytes()/c.getStrideInBytes()),e.drawDepthRange(n,r)},e.updateDepthPolyData=e=&gt;{let n=!1;for(let e=0;e&lt;t.volumes.length;e++){const r=t.volumes[e].getMTime();t._lastMTimes[e]&amp;&amp;r===t._lastMTimes[e]||(n=!0,t._lastMTimes[e]=r)}const r=e.getStabilizedTime();if((t._lastMTimes.length&lt;=t.volumes.length||r!==t._lastMTimes[t.volumes.length])&amp;&amp;(n=!0,t._lastMTimes[t.volumes.length]=r),!n)return;const o=e.getStabilizedCenterByReference(),a=8*t.volumes.length,i=new Float64Array(3*a),s=12*t.volumes.length,l=new Uint16Array(4*s);for(let e=0;e&lt;t.volumes.length;e++){t.volumes[e].getBoundingCubePoints(i,24*e);let n=12*e*4;const r=8*e;for(let e=0;e&lt;12;e++)l[n++]=3,l[n++]=r+Kx[e][0],l[n++]=r+Kx[e][1],l[n++]=r+Kx[e][2]}for(let e=0;e&lt;i.length;e+=3)i[e]-=o[0],i[e+1]-=o[1],i[e+2]-=o[2];t._boundsPoly.getPoints().setData(i,3),t._boundsPoly.getPoints().modified(),t._boundsPoly.getPolys().setData(l,1),t._boundsPoly.getPolys().modified(),t._boundsPoly.modified()},e.drawDepthRange=(n,r)=&gt;{t._depthRangeTexture.resizeToMatch(t.colorTextureView.getTexture()),t._depthRangeTexture2.resizeToMatch(t.colorTextureView.getTexture()),t._depthRangeEncoder.attachTextureViews(),e.setCurrentOperation(&quot;volumeDepthRangePass&quot;),n.setRenderEncoder(t._depthRangeEncoder),n.volumeDepthRangePass(!0),t._mapper.setWebGPURenderer(n),t._mapper.prepareToDraw(t._depthRangeEncoder),t._mapper.registerDrawCallback(t._depthRangeEncoder),n.volumeDepthRangePass(!1)},e.createDepthRangeEncoder=e=&gt;{const n=e.getDevice();t._depthRangeEncoder=OT.newInstance({label:&quot;VolumePass DepthRange&quot;}),t._depthRangeEncoder.setPipelineHash(&quot;volr&quot;),t._depthRangeEncoder.setReplaceShaderCodeFunction((e=&gt;{const t=e.getShaderDescription(&quot;fragment&quot;);t.addOutput(&quot;vec4&lt;f32&gt;&quot;,&quot;outColor1&quot;),t.addOutput(&quot;vec4&lt;f32&gt;&quot;,&quot;outColor2&quot;);let n=t.getCode();n=rT.substitute(n,&quot;//VTK::RenderEncoder::Impl&quot;,[&quot;output.outColor1 = vec4&lt;f32&gt;(input.fragPos.z, 0.0, 0.0, 0.0);&quot;,&quot;output.outColor2 = vec4&lt;f32&gt;(stopval, 0.0, 0.0, 0.0);&quot;]).result,t.setCode(n)})),t._depthRangeEncoder.setDescription({colorAttachments:[{view:null,clearValue:[0,0,0,0],loadOp:&quot;clear&quot;,storeOp:&quot;store&quot;},{view:null,clearValue:[1,1,1,1],loadOp:&quot;clear&quot;,storeOp:&quot;store&quot;}]}),t._depthRangeEncoder.setPipelineSettings({primitive:{cullMode:&quot;none&quot;},fragment:{targets:[{format:&quot;r16float&quot;,blend:{color:{srcFactor:&quot;one&quot;,dstFactor:&quot;one&quot;,operation:&quot;max&quot;},alpha:{srcFactor:&quot;one&quot;,dstFactor:&quot;one&quot;,operation:&quot;max&quot;}}},{format:&quot;r16float&quot;,blend:{color:{srcFactor:&quot;one&quot;,dstFactor:&quot;one&quot;,operation:&quot;min&quot;},alpha:{srcFactor:&quot;one&quot;,dstFactor:&quot;one&quot;,operation:&quot;min&quot;}}}]}}),t._depthRangeTexture=GT.newInstance({label:&quot;volumePassMaxDepth&quot;}),t._depthRangeTexture.create(n,{width:e.getCanvas().width,height:e.getCanvas().height,format:&quot;r16float&quot;,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING});const r=t._depthRangeTexture.createView(&quot;maxTexture&quot;);t._depthRangeEncoder.setColorTextureView(0,r),t._depthRangeTexture2=GT.newInstance({label:&quot;volumePassDepthMin&quot;}),t._depthRangeTexture2.create(n,{width:e.getCanvas().width,height:e.getCanvas().height,format:&quot;r16float&quot;,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING});const o=t._depthRangeTexture2.createView(&quot;minTexture&quot;);t._depthRangeEncoder.setColorTextureView(1,o),t._mapper.setDevice(e.getDevice()),t._mapper.setTextureViews([t.depthTextureView])},e.createClearEncoder=e=&gt;{t._colorTexture=GT.newInstance({label:&quot;volumePassColor&quot;}),t._colorTexture.create(e.getDevice(),{width:e.getCanvas().width,height:e.getCanvas().height,format:&quot;bgra8unorm&quot;,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC}),t._colorTextureView=t._colorTexture.createView(&quot;volumePassColorTexture&quot;),t._colorTextureView.addSampler(e.getDevice(),{minFilter:&quot;linear&quot;,magFilter:&quot;linear&quot;}),t._clearEncoder=OT.newInstance({label:&quot;VolumePass Clear&quot;}),t._clearEncoder.setColorTextureView(0,t._colorTextureView),t._clearEncoder.setDescription({colorAttachments:[{view:null,clearValue:[0,0,0,0],loadOp:&quot;clear&quot;,storeOp:&quot;store&quot;}]}),t._clearEncoder.setPipelineHash(&quot;volpf&quot;),t._clearEncoder.setPipelineSettings({primitive:{cullMode:&quot;none&quot;},fragment:{targets:[{format:&quot;bgra8unorm&quot;,blend:{color:{srcFactor:&quot;src-alpha&quot;,dstFactor:&quot;one-minus-src-alpha&quot;},alpha:{srcFactor:&quot;one&quot;,dstFactor:&quot;one-minus-src-alpha&quot;}}}]}})},e.createCopyEncoder=e=&gt;{t._copyEncoder=OT.newInstance({label:&quot;volumePassCopy&quot;}),t._copyEncoder.setDescription({colorAttachments:[{view:null,loadOp:&quot;load&quot;,storeOp:&quot;store&quot;}]}),t._copyEncoder.setPipelineHash(&quot;volcopypf&quot;),t._copyEncoder.setPipelineSettings({primitive:{cullMode:&quot;none&quot;},fragment:{targets:[{format:&quot;rgba16float&quot;,blend:{color:{srcFactor:&quot;one&quot;,dstFactor:&quot;one-minus-src-alpha&quot;},alpha:{srcFactor:&quot;one&quot;,dstFactor:&quot;one-minus-src-alpha&quot;}}}]}})},e.createMergeEncoder=e=&gt;{t._mergeEncoder=OT.newInstance({label:&quot;volumePassMerge&quot;}),t._mergeEncoder.setColorTextureView(0,t._colorTextureView),t._mergeEncoder.setDescription({colorAttachments:[{view:null,loadOp:&quot;load&quot;,storeOp:&quot;store&quot;}]}),t._mergeEncoder.setReplaceShaderCodeFunction((e=&gt;{const t=e.getShaderDescription(&quot;fragment&quot;);t.addOutput(&quot;vec4&lt;f32&gt;&quot;,&quot;outColor&quot;);let n=t.getCode();n=rT.substitute(n,&quot;//VTK::RenderEncoder::Impl&quot;,[&quot;output.outColor = vec4&lt;f32&gt;(computedColor.rgb, computedColor.a);&quot;]).result,t.setCode(n)})),t._mergeEncoder.setPipelineHash(&quot;volpf&quot;),t._mergeEncoder.setPipelineSettings({primitive:{cullMode:&quot;none&quot;},fragment:{targets:[{format:&quot;bgra8unorm&quot;,blend:{color:{srcFactor:&quot;src-alpha&quot;,dstFactor:&quot;one-minus-src-alpha&quot;},alpha:{srcFactor:&quot;one&quot;,dstFactor:&quot;one-minus-src-alpha&quot;}}}]}})},e.setVolumes=n=&gt;{if(!t.volumes||t.volumes.length!==n.length)return t.volumes=[...n],void e.modified();for(let r=0;r&lt;n.length;r++)if(n[r]!==t.volumes[r])return t.volumes=[...n],void e.modified()}}(e,t)}var Hx={newInstance:sn.newInstance(Wx,&quot;vtkWebGPUVolumePass&quot;),extend:Wx};const jx={opaqueActorCount:0,translucentActorCount:0,volumes:null,opaqueRenderEncoder:null,translucentPass:null,volumePass:null};function Xx(e,t,n={}){Object.assign(t,jx,n),vv.extend(e,t,n),sn.setGet(e,t,[&quot;opaquePass&quot;,&quot;translucentPass&quot;,&quot;volumePass&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkForwardPass&quot;),e.traverse=(n,r=null)=&gt;{if(t.deleted)return;t._currentParent=r,e.setCurrentOperation(&quot;buildPass&quot;),n.traverse(e),t.opaquePass||(t.opaquePass=KT.newInstance());const o=n.getRenderable().getNumberOfLayers(),a=n.getChildren();for(let r=0;r&lt;o;r++)for(let o=0;o&lt;a.length;o++){const i=a[o],s=n.getRenderable().getRenderers()[o];s.getDraw()&amp;&amp;s.getLayer()===r&amp;&amp;(t.opaqueActorCount=0,t.translucentActorCount=0,t.volumes=[],e.setCurrentOperation(&quot;queryPass&quot;),i.traverse(e),e.setCurrentOperation(&quot;cameraPass&quot;),i.traverse(e),t.opaquePass.traverse(i,n),t.translucentActorCount&gt;0&amp;&amp;(t.translucentPass||(t.translucentPass=HT.newInstance()),t.translucentPass.setColorTextureView(t.opaquePass.getColorTextureView()),t.translucentPass.setDepthTextureView(t.opaquePass.getDepthTextureView()),t.translucentPass.traverse(i,n)),t.volumes.length&gt;0&amp;&amp;(t.volumePass||(t.volumePass=Hx.newInstance()),t.volumePass.setColorTextureView(t.opaquePass.getColorTextureView()),t.volumePass.setDepthTextureView(t.opaquePass.getDepthTextureView()),t.volumePass.setVolumes(t.volumes),t.volumePass.traverse(i,n)),e.finalPass(n,i))}},e.finalPass=(n,r)=&gt;{t._finalBlitEncoder||e.createFinalBlitEncoder(n),t._finalBlitOutputTextureView.createFromTextureHandle(n.getCurrentTexture(),{depth:1,format:n.getPresentationFormat()}),t._finalBlitEncoder.attachTextureViews(),t._finalBlitEncoder.begin(n.getCommandEncoder()),r.scissorAndViewport(t._finalBlitEncoder),t._fullScreenQuad.prepareAndDraw(t._finalBlitEncoder),t._finalBlitEncoder.end()},e.createFinalBlitEncoder=e=&gt;{t._finalBlitEncoder=OT.newInstance({label:&quot;forwardPassBlit&quot;}),t._finalBlitEncoder.setDescription({colorAttachments:[{view:null,loadOp:&quot;load&quot;,storeOp:&quot;store&quot;}]}),t._finalBlitEncoder.setPipelineHash(&quot;fpf&quot;),t._finalBlitEncoder.setPipelineSettings({primitive:{cullMode:&quot;none&quot;},fragment:{targets:[{format:e.getPresentationFormat(),blend:{color:{srcFactor:&quot;src-alpha&quot;,dstFactor:&quot;one-minus-src-alpha&quot;},alpha:{srcFactor:&quot;one&quot;,dstFactor:&quot;one-minus-src-alpha&quot;}}}]}}),t._fsqSampler=DT.newInstance({label:&quot;finalPassSampler&quot;}),t._fsqSampler.create(e.getDevice(),{minFilter:&quot;linear&quot;,magFilter:&quot;linear&quot;}),t._fullScreenQuad=ST.newInstance(),t._fullScreenQuad.setDevice(e.getDevice()),t._fullScreenQuad.setPipelineHash(&quot;fpfsq&quot;),t._fullScreenQuad.setTextureViews([t.opaquePass.getColorTextureView()]),t._fullScreenQuad.setAdditionalBindables([t._fsqSampler]),t._fullScreenQuad.setFragmentShaderTemplate(&quot;\\n//VTK::Mapper::Dec\\n\\n//VTK::TCoord::Dec\\n\\n//VTK::RenderEncoder::Dec\\n\\n//VTK::IOStructs::Dec\\n\\n@fragment\\nfn main(\\n//VTK::IOStructs::Input\\n)\\n//VTK::IOStructs::Output\\n{\\n  var output: fragmentOutput;\\n\\n  var computedColor: vec4&lt;f32&gt; = clamp(textureSampleLevel(opaquePassColorTexture, finalPassSampler, input.tcoordVS, 0.0),vec4&lt;f32&gt;(0.0),vec4&lt;f32&gt;(1.0));\\n\\n  //VTK::RenderEncoder::Impl\\n  return output;\\n}\\n&quot;),t._finalBlitOutputTextureView=LT.newInstance(),t._finalBlitEncoder.setColorTextureView(0,t._finalBlitOutputTextureView)},e.incrementOpaqueActorCount=()=&gt;t.opaqueActorCount++,e.incrementTranslucentActorCount=()=&gt;t.translucentActorCount++,e.addVolume=e=&gt;{t.volumes.push(e)}}(e,t)}var qx={newInstance:sn.newInstance(Xx,&quot;vtkForwardPass&quot;),extend:Xx};const{VtkDataTypes:Yx}=Is;const Jx={handle:null,device:null};function Zx(e,t,n={}){Object.assign(t,Jx,n),sn.obj(e,t),sn.setGet(e,t,[&quot;device&quot;]),function(e,t){function n(e){if(e.imageData){e.dataArray=e.imageData.getPointData().getScalars(),e.time=e.dataArray.getMTime(),e.nativeArray=e.dataArray.getData();const t=e.imageData.getDimensions();switch(e.width=t[0],e.height=t[1],e.depth=t[2],e.dataArray.getNumberOfComponents()){case 1:e.format=&quot;r&quot;;break;case 2:e.format=&quot;rg&quot;;break;default:e.format=&quot;rgba&quot;}switch(e.dataArray.getDataType()){case Yx.UNSIGNED_CHAR:e.format+=&quot;8unorm&quot;;break;case Yx.FLOAT:case Yx.UNSIGNED_INT:case Yx.INT:case Yx.DOUBLE:case Yx.UNSIGNED_SHORT:case Yx.SHORT:default:e.format+=&quot;16float&quot;}}e.image&amp;&amp;(e.width=e.image.width,e.height=e.image.height,e.depth=1,e.format=&quot;rgba8unorm&quot;,e.flip=!0,e.usage=GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.RENDER_ATTACHMENT),e.jsImageData&amp;&amp;(e.width=e.jsImageData.width,e.height=e.jsImageData.height,e.depth=1,e.format=&quot;rgba8unorm&quot;,e.flip=!0,e.nativeArray=e.jsImageData.data,e.usage=GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.RENDER_ATTACHMENT),e.imageBitmap&amp;&amp;(e.width=e.imageBitmap.width,e.height=e.imageBitmap.height,e.depth=1,e.format=&quot;rgba8unorm&quot;,e.flip=!0,e.usage=GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.RENDER_ATTACHMENT),e.canvas&amp;&amp;(e.width=e.canvas.width,e.height=e.canvas.height,e.depth=1,e.format=&quot;rgba8unorm&quot;,e.flip=!0,e.usage=GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.RENDER_ATTACHMENT)}function r(e){const n=GT.newInstance({label:e.label});return n.create(t.device,{width:e.width,height:e.height,depth:e.depth,format:e.format,usage:e.usage,mipLevel:e.mipLevel}),(e.nativeArray||e.image||e.canvas||e.imageBitmap)&amp;&amp;n.writeImageData(e),n}t.classHierarchy.push(&quot;vtkWebGPUTextureManager&quot;),e.getTexture=e=&gt;e.hash?t.device.getCachedObject(e.hash,r,e):r(e),e.getTextureForImageData=e=&gt;{const r={time:e.getMTime()};return r.imageData=e,n(r),r.hash=r.time+r.format+r.mipLevel,t.device.getTextureManager().getTexture(r)},e.getTextureForVTKTexture=(e,r=void 0)=&gt;{const o={time:e.getMTime(),label:r};return e.getInputData()?o.imageData=e.getInputData():e.getImage()?o.image=e.getImage():e.getJsImageData()?o.jsImageData=e.getJsImageData():e.getImageBitmap()?o.imageBitmap=e.getImageBitmap():e.getCanvas()&amp;&amp;(o.canvas=e.getCanvas()),n(o),o.mipLevel=e.getMipLevel(),o.hash=o.time+o.format+o.mipLevel,t.device.getTextureManager().getTexture(o)}}(e,t)}var Qx={newInstance:sn.newInstance(Zx),extend:Zx};class $x extends Map{constructor(){super(),this.registry=new FinalizationRegistry((e=&gt;{const t=super.get(e);t&amp;&amp;t.deref&amp;&amp;void 0===t.deref()&amp;&amp;super.delete(e)}))}getValue(e){const t=super.get(e);if(t){const n=t.deref();if(void 0!==n)return n;super.delete(e)}}setValue(e,t){let n;return t&amp;&amp;&quot;object&quot;==typeof t&amp;&amp;(n=new WeakRef(t),this.registry.register(t,e),super.set(e,n)),n}}const ey={handle:null,pipelines:null,shaderCache:null,bindGroupLayouts:null,bufferManager:null,textureManager:null};function ty(e,t,n={}){Object.assign(t,ey,n),Vt(e,t),Gt(e,t,[&quot;handle&quot;]),Bt(e,t,[&quot;bufferManager&quot;,&quot;shaderCache&quot;,&quot;textureManager&quot;]),t.objectCache=new $x,t.shaderCache=rT.newInstance(),t.shaderCache.setDevice(e),t.bindGroupLayouts=[],t.bufferManager=bx.newInstance(),t.bufferManager.setDevice(e),t.textureManager=Qx.newInstance(),t.textureManager.setDevice(e),t.pipelines={},function(e,t){t.classHierarchy.push(&quot;vtkWebGPUDevice&quot;),e.initialize=e=&gt;{t.handle=e},e.createCommandEncoder=()=&gt;t.handle.createCommandEncoder(),e.submitCommandEncoder=e=&gt;{t.handle.queue.submit([e.finish()])},e.getShaderModule=e=&gt;t.shaderCache.getShaderModule(e),e.getBindGroupLayout=e=&gt;{if(!e.entries)return null;for(let t=0;t&lt;e.entries.length;t++){const n=e.entries[t];n.binding=n.binding||0,n.visibility=n.visibility||GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT}const n=JSON.stringify(e);for(let e=0;e&lt;t.bindGroupLayouts.length;e++)if(t.bindGroupLayouts[e].sval===n)return t.bindGroupLayouts[e].layout;const r=t.handle.createBindGroupLayout(e);return t.bindGroupLayouts.push({sval:n,layout:r}),r},e.getBindGroupLayoutDescription=e=&gt;{for(let n=0;n&lt;t.bindGroupLayouts.length;n++)if(t.bindGroupLayouts[n].layout===e)return t.bindGroupLayouts[n].sval;return vtkErrorMacro(&quot;layout not found&quot;),console.trace(),null},e.getPipeline=e=&gt;e in t.pipelines?t.pipelines[e]:null,e.createPipeline=(n,r)=&gt;{r.initialize(e,n),t.pipelines[n]=r},e.onSubmittedWorkDone=()=&gt;t.handle.queue.onSubmittedWorkDone(),e.hasCachedObject=e=&gt;t.objectCache.getValue(e),e.getCachedObject=(e,n,...r)=&gt;{if(!e)return vtkErrorMacro(&quot;attempt to cache an object without a hash&quot;),null;const o=t.objectCache.getValue(e);if(o)return o;const a=n(...r);return t.objectCache.setValue(e,a),a}}(e,t)}var ny={newInstance:Xt(ty,&quot;vtkWebGPUDevice&quot;),extend:ty};const ry={selectionRenderEncoder:null,colorTexture:null,depthTexture:null};function oy(e,t,n={}){Object.assign(t,ry,n),vv.extend(e,t,n),sn.get(e,t,[&quot;colorTexture&quot;,&quot;depthTexture&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUHardwareSelectionPass&quot;),e.traverse=(n,r)=&gt;{if(t.deleted)return;t._currentParent=null,e.setCurrentOperation(&quot;buildPass&quot;),n.traverse(e);const o=n.getDevice();if(t.selectionRenderEncoder)t.colorTexture.resize(n.getCanvas().width,n.getCanvas().height),t.depthTexture.resizeToMatch(t.colorTexture);else{e.createRenderEncoder(),t.colorTexture=GT.newInstance({label:&quot;hardwareSelectorColor&quot;}),t.colorTexture.create(o,{width:n.getCanvas().width,height:n.getCanvas().height,format:&quot;rgba32uint&quot;,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_SRC});const r=t.colorTexture.createView(&quot;hardwareSelectColorTexture&quot;);t.selectionRenderEncoder.setColorTextureView(0,r),t.depthTexture=GT.newInstance({label:&quot;hardwareSelectorDepth&quot;}),t.depthTexture.create(o,{width:n.getCanvas().width,height:n.getCanvas().height,format:&quot;depth32float&quot;,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_SRC});const a=t.depthTexture.createView(&quot;hardwareSelectDepthTexture&quot;);t.selectionRenderEncoder.setDepthTextureView(a)}t.selectionRenderEncoder.attachTextureViews(),r.setRenderEncoder(t.selectionRenderEncoder),e.setCurrentOperation(&quot;cameraPass&quot;),r.traverse(e),e.setCurrentOperation(&quot;opaquePass&quot;),r.traverse(e)},e.createRenderEncoder=()=&gt;{t.selectionRenderEncoder=OT.newInstance({label:&quot;HardwareSelectionPass&quot;}),t.selectionRenderEncoder.setPipelineHash(&quot;sel&quot;),t.selectionRenderEncoder.setReplaceShaderCodeFunction((e=&gt;{const t=e.getShaderDescription(&quot;fragment&quot;);t.addOutput(&quot;vec4&lt;u32&gt;&quot;,&quot;outColor&quot;);let n=t.getCode();n=rT.substitute(n,&quot;//VTK::RenderEncoder::Impl&quot;,[&quot;output.outColor = vec4&lt;u32&gt;(mapperUBO.PropID, compositeID, 0u, 0u);&quot;]).result,t.setCode(n)})),t.selectionRenderEncoder.getDescription().colorAttachments[0].clearValue=[0,0,0,0],t.selectionRenderEncoder.setPipelineSettings({primitive:{cullMode:&quot;none&quot;},depthStencil:{depthWriteEnabled:!0,depthCompare:&quot;greater&quot;,format:&quot;depth32float&quot;},fragment:{targets:[{format:&quot;rgba32uint&quot;,blend:void 0}]}})}}(e,t)}var ay={newInstance:sn.newInstance(oy,&quot;vtkWebGPUHardwareSelectionPass&quot;),extend:oy};const{SelectionContent:iy,SelectionField:sy}=zp,{FieldAssociations:ly}=Qs,{vtkErrorMacro:cy}=sn;function uy(e){return`${e.propID} ${e.compositeID}`}function dy(e,t,n,r){const o=4*((n.height-t-1)*n.colorBufferWidth+e)+r;return n.colorValues[o]}function py(e,t,n,r){const o=n&lt;0?0:n;if(0===o){if(r[0]=t[0],r[1]=t[1],t[0]&lt;0||t[0]&gt;=e.width||t[1]&lt;0||t[1]&gt;=e.height)return null;const n=dy(t[0],t[1],e,0);if(n&lt;=0)return null;const o={};o.propID=n;let a=dy(t[0],t[1],e,1);if((a&lt;0||a&gt;16777215)&amp;&amp;(a=0),o.compositeID=a,e.captureZValues){const n=(e.height-t[1]-1)*e.zbufferBufferWidth+t[0];o.zValue=e.depthValues[n],o.zValue=e.webGPURenderer.convertToOpenGLDepth(o.zValue),o.displayPosition=t}return o}const a=[t[0],t[1]],i=[0,0];let s=py(e,t,0,r);if(s)return s;for(let t=1;t&lt;o;++t){for(let n=a[1]&gt;t?a[1]-t:0;n&lt;=a[1]+t;++n){if(i[1]=n,a[0]&gt;=t&amp;&amp;(i[0]=a[0]-t,s=py(e,i,0,r),s))return s;if(i[0]=a[0]+t,s=py(e,i,0,r),s)return s}for(let n=a[0]&gt;=t?a[0]-(t-1):0;n&lt;=a[0]+(t-1);++n){if(i[0]=n,a[1]&gt;=t&amp;&amp;(i[1]=a[1]-t,s=py(e,i,0,r),s))return s;if(i[1]=a[1]+t,s=py(e,i,0,r),s)return s}}return r[0]=t[0],r[1]=t[1],null}function fy(e,t,n,r,o){const a=Math.floor(t),i=Math.floor(n),s=Math.floor(r),l=Math.floor(o),c=new Map,u=[0,0];for(let t=i;t&lt;=l;t++)for(let n=a;n&lt;=s;n++){const r=py(e,[n,t],0,u);if(r){const t=uy(r);if(c.has(t)){const n=c.get(t);n.pixelCount++,e.captureZValues&amp;&amp;r.zValue&lt;n.info.zValue&amp;&amp;(n.info=r),-1===n.attributeIDs.indexOf(r.attributeID)&amp;&amp;n.attributeIDs.push(r.attributeID)}else c.set(t,{info:r,pixelCount:1,attributeIDs:[r.attributeID]})}}return function(e,t,n){const r=[];let o=0;return t.forEach(((t,a)=&gt;{const i=zp.newInstance();switch(i.setContentType(iy.INDICES),e){case ly.FIELD_ASSOCIATION_CELLS:i.setFieldType(sy.CELL);break;case ly.FIELD_ASSOCIATION_POINTS:i.setFieldType(sy.POINT);break;default:cy(&quot;Unknown field association&quot;)}i.getProperties().propID=t.info.propID;const s=n.webGPURenderer.getPropFromID(t.info.propID);i.getProperties().prop=s.getRenderable(),i.getProperties().compositeID=t.info.compositeID,i.getProperties().pixelCount=t.pixelCount,n.captureZValues&amp;&amp;(i.getProperties().displayPosition=[t.info.displayPosition[0],t.info.displayPosition[1],t.info.zValue],i.getProperties().worldPosition=n.webGPURenderWindow.displayToWorld(t.info.displayPosition[0],t.info.displayPosition[1],t.info.zValue,n.renderer)),i.setSelectionList(t.attributeIDs),r[o]=i,o++})),r}(e.fieldAssociation,c,e)}const gy={};function my(e,t,n={}){Object.assign(t,gy,n),Fp.extend(e,t,n),t._selectionPass=ay.newInstance(),sn.setGet(e,t,[&quot;_WebGPURenderWindow&quot;]),sn.moveToProtected(e,t,[&quot;WebGPURenderWindow&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUHardwareSelector&quot;),e.endSelection=()=&gt;{t.WebGPURenderer.setSelector(null)},e.getSourceDataAsync=async e=&gt;{if(!e||!t._WebGPURenderWindow)return cy(&quot;Renderer and view must be set before calling Select.&quot;),!1;t._WebGPURenderWindow.getRenderable().preRender(),t._WebGPURenderWindow.getInitialized()||(t._WebGPURenderWindow.initialize(),await new Promise((e=&gt;{t._WebGPURenderWindow.onInitialized(e)})));const n=t._WebGPURenderWindow.getViewNodeFor(e);if(!n)return!1;const r=n.getSuppressClear();n.setSuppressClear(!0),t._selectionPass.traverse(t._WebGPURenderWindow,n),n.setSuppressClear(r);const o=t._WebGPURenderWindow.getDevice(),a=t._selectionPass.getColorTexture(),i=t._selectionPass.getDepthTexture(),s={area:[0,0,a.getWidth()-1,a.getHeight()-1],captureZValues:t.captureZValues,fieldAssociation:t.fieldAssociation,renderer:e,webGPURenderer:n,webGPURenderWindow:t._WebGPURenderWindow,width:a.getWidth(),height:a.getHeight()};s.colorBufferWidth=16*Math.floor((s.width+15)/16),s.colorBufferSizeInBytes=s.colorBufferWidth*s.height*4*4;const l=ZT.newInstance({label:&quot;hardwareSelectColorBuffer&quot;});l.setDevice(o),l.create(s.colorBufferSizeInBytes,GPUBufferUsage.MAP_READ|GPUBufferUsage.COPY_DST);const c=t._WebGPURenderWindow.getCommandEncoder();let u;c.copyTextureToBuffer({texture:a.getHandle()},{buffer:l.getHandle(),bytesPerRow:16*s.colorBufferWidth,rowsPerImage:s.height},{width:s.width,height:s.height,depthOrArrayLayers:1}),t.captureZValues&amp;&amp;(s.zbufferBufferWidth=64*Math.floor((s.width+63)/64),u=ZT.newInstance({label:&quot;hardwareSelectDepthBuffer&quot;}),u.setDevice(o),s.zbufferSizeInBytes=s.height*s.zbufferBufferWidth*4,u.create(s.zbufferSizeInBytes,GPUBufferUsage.MAP_READ|GPUBufferUsage.COPY_DST),c.copyTextureToBuffer({texture:i.getHandle(),aspect:&quot;depth-only&quot;},{buffer:u.getHandle(),bytesPerRow:4*s.zbufferBufferWidth,rowsPerImage:s.height},{width:s.width,height:s.height,depthOrArrayLayers:1})),o.submitCommandEncoder(c);const d=l.mapAsync(GPUMapMode.READ);if(t.captureZValues){const e=u.mapAsync(GPUMapMode.READ);await Promise.all([d,e]),s.depthValues=new Float32Array(u.getMappedRange().slice()),u.unmap()}else await d;return s.colorValues=new Uint32Array(l.getMappedRange().slice()),l.unmap(),s.generateSelection=(e,t,n,r)=&gt;fy(s,e,t,n,r),s}}(e,t)}var hy={newInstance:sn.newInstance(my,&quot;vtkWebGPUHardwareSelector&quot;),extend:my};const vy=Object.create(null);const Ty={};function xy(e,t,n={}){Object.assign(t,Ty,n),t.overrides=vy,mn.extend(e,t,n),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUViewNodeFactory&quot;)}(0,t)}var yy={newInstance:sn.newInstance(xy,&quot;vtkWebGPUViewNodeFactory&quot;),extend:xy};const{vtkErrorMacro:by}=sn,Ay={position:&quot;absolute&quot;,top:0,left:0,width:&quot;100%&quot;,height:&quot;100%&quot;};function Cy(e,t){t.classHierarchy.push(&quot;vtkWebGPURenderWindow&quot;),e.getViewNodeFactory=()=&gt;t.myFactory;const n=[0,0];e.onModified((function(){t.renderable&amp;&amp;(t.size[0]===n[0]&amp;&amp;t.size[1]===n[1]||(n[0]=t.size[0],n[1]=t.size[1],t.canvas.setAttribute(&quot;width&quot;,t.size[0]),t.canvas.setAttribute(&quot;height&quot;,t.size[1]),e.recreateSwapChain())),t.viewStream&amp;&amp;t.viewStream.setSize(t.size[0],t.size[1]),t.canvas.style.display=t.useOffScreen?&quot;none&quot;:&quot;block&quot;,t.el&amp;&amp;(t.el.style.cursor=t.cursorVisibility?t.cursor:&quot;none&quot;),t.containerSize=null})),e.recreateSwapChain=()=&gt;{t.context&amp;&amp;(t.context.unconfigure(),t.presentationFormat=navigator.gpu.getPreferredCanvasFormat(t.adapter),t.context.configure({device:t.device.getHandle(),format:t.presentationFormat,alphaMode:&quot;premultiplied&quot;,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_DST,width:t.size[0],height:t.size[1]}),t._configured=!0)},e.getCurrentTexture=()=&gt;t.context.getCurrentTexture(),e.buildPass=n=&gt;{if(n){if(!t.renderable)return;e.prepareNodes(),e.addMissingNodes(t.renderable.getRenderersByReference()),e.removeUnusedNodes(),e.initialize()}else t.initialized&amp;&amp;(t._configured||e.recreateSwapChain(),t.commandEncoder=t.device.createCommandEncoder())},e.initialize=()=&gt;{if(!t.initializing){if(t.initializing=!0,!navigator.gpu)return void by(&quot;WebGPU is not enabled.&quot;);e.create3DContextAsync().then((()=&gt;{t.initialized=!0,t.deleted||e.invokeInitialized()}))}},e.setContainer=n=&gt;{t.el&amp;&amp;t.el!==n&amp;&amp;(t.canvas.parentNode!==t.el&amp;&amp;by(&quot;Error: canvas parent node does not match container&quot;),t.el.removeChild(t.canvas),t.el.contains(t.bgImage)&amp;&amp;t.el.removeChild(t.bgImage)),t.el!==n&amp;&amp;(t.el=n,t.el&amp;&amp;(t.el.appendChild(t.canvas),t.useBackgroundImage&amp;&amp;t.el.appendChild(t.bgImage)),e.modified())},e.getContainer=()=&gt;t.el,e.getContainerSize=()=&gt;{if(!t.containerSize&amp;&amp;t.el){const{width:e,height:n}=t.el.getBoundingClientRect();t.containerSize=[e,n]}return t.containerSize||t.size},e.getFramebufferSize=()=&gt;t.size,e.create3DContextAsync=async()=&gt;{t.adapter=await navigator.gpu.requestAdapter({powerPreference:&quot;high-performance&quot;}),t.deleted||(t.device=ny.newInstance(),t.device.initialize(await t.adapter.requestDevice({requiredLimits:{maxBufferSize:t.adapter.limits.maxBufferSize,maxStorageBufferBindingSize:t.adapter.limits.maxStorageBufferBindingSize,maxUniformBufferBindingSize:t.adapter.limits.maxUniformBufferBindingSize}})),t.deleted?t.device=null:t.context=t.canvas.getContext(&quot;webgpu&quot;))},e.releaseGraphicsResources=()=&gt;{const n=vv.newInstance();n.setCurrentOperation(&quot;Release&quot;),n.traverse(e,null),t.adapter=null,t.device=null,t.context=null,t.initialized=!1,t.initializing=!1},e.setBackgroundImage=e=&gt;{t.bgImage.src=e.src},e.setUseBackgroundImage=e=&gt;{t.useBackgroundImage=e,t.useBackgroundImage&amp;&amp;!t.el.contains(t.bgImage)?t.el.appendChild(t.bgImage):!t.useBackgroundImage&amp;&amp;t.el.contains(t.bgImage)&amp;&amp;t.el.removeChild(t.bgImage)},e.captureNextImage=(n=&quot;image/png&quot;,{resetCamera:r=!1,size:o=null,scale:a=1}={})=&gt;{if(t.deleted)return null;t.imageFormat=n;const i=t.notifyStartCaptureImage;return t.notifyStartCaptureImage=!0,t._screenshot={size:o||1!==a?o||t.size.map((e=&gt;e*a)):null},new Promise(((n,o)=&gt;{const a=e.onImageReady((o=&gt;{if(null===t._screenshot.size)t.notifyStartCaptureImage=i,a.unsubscribe(),t._screenshot.placeHolder&amp;&amp;(t.size=t._screenshot.originalSize,e.modified(),t._screenshot.cameras&amp;&amp;t._screenshot.cameras.forEach((({restoreParamsFn:e,arg:t})=&gt;e(t))),e.traverseAllPasses(),t.el.removeChild(t._screenshot.placeHolder),t._screenshot.placeHolder.remove(),t._screenshot=null),n(o);else{const n=document.createElement(&quot;img&quot;);if(n.style=Ay,n.src=o,t._screenshot.placeHolder=t.el.appendChild(n),t.canvas.style.display=&quot;none&quot;,t._screenshot.originalSize=t.size,t.size=t._screenshot.size,t._screenshot.size=null,e.modified(),r){const e=!0!==r;t._screenshot.cameras=t.renderable.getRenderers().map((t=&gt;{const n=t.getActiveCamera(),o=n.get(&quot;focalPoint&quot;,&quot;position&quot;,&quot;parallelScale&quot;);return{resetCameraArgs:e?{renderer:t}:void 0,resetCameraFn:e?r:t.resetCamera,restoreParamsFn:n.set,arg:JSON.parse(JSON.stringify(o))}})),t._screenshot.cameras.forEach((({resetCameraFn:e,resetCameraArgs:t})=&gt;e(t)))}e.traverseAllPasses()}}))}))},e.traverseAllPasses=()=&gt;{if(!t.deleted)if(t.initialized){if(t.renderPasses)for(let n=0;n&lt;t.renderPasses.length;++n)t.renderPasses[n].traverse(e,null);t.commandEncoder&amp;&amp;(t.device.submitCommandEncoder(t.commandEncoder),t.commandEncoder=null,t.notifyStartCaptureImage&amp;&amp;t.device.onSubmittedWorkDone().then((()=&gt;{!async function(n=t.imageFormat){const r=document.createElement(&quot;canvas&quot;),o=r.getContext(&quot;2d&quot;);r.width=t.canvas.width,r.height=t.canvas.height;const a=await e.getPixelsAsync(),i=new ImageData(a.colorValues,a.width,a.height);o.putImageData(i,0,0);const s=t.canvas.getBoundingClientRect();t.renderable.getRenderers().forEach((e=&gt;{e.getViewProps().forEach((e=&gt;{if(e.getContainer){const t=e.getContainer().getElementsByTagName(&quot;canvas&quot;);for(let e=0;e&lt;t.length;e++){const n=t[e],r=n.getBoundingClientRect(),a=r.x-s.x,i=r.y-s.y;o.drawImage(n,a,i)}}}))}));const l=r.toDataURL(n);r.remove(),e.invokeImageReady(l)}()})))}else{e.initialize();const t=e.onInitialized((()=&gt;{t.unsubscribe(),e.traverseAllPasses()}))}},e.setViewStream=n=&gt;{if(t.viewStream===n)return!1;if(t.subscription&amp;&amp;(t.subscription.unsubscribe(),t.subscription=null),t.viewStream=n,t.viewStream){t.renderable.getRenderers()[0].getBackgroundByReference()[3]=0,e.setUseBackgroundImage(!0),t.subscription=t.viewStream.onImageReady((t=&gt;e.setBackgroundImage(t.image))),t.viewStream.setSize(t.size[0],t.size[1]),t.viewStream.invalidateCache(),t.viewStream.render(),e.modified()}return!0},e.getUniquePropID=()=&gt;t.nextPropID++,e.getPropFromID=e=&gt;{for(let n=0;n&lt;t.children.length;n++){const r=t.children[n].getPropFromID(e);if(null!==r)return r}return null},e.getPixelsAsync=async()=&gt;{const e=t.device,n=t.renderPasses[0].getOpaquePass().getColorTexture(),r={width:n.getWidth(),height:n.getHeight()};r.colorBufferWidth=32*Math.floor((r.width+31)/32),r.colorBufferSizeInBytes=r.colorBufferWidth*r.height*8;const o=ZT.newInstance();o.setDevice(e),o.create(r.colorBufferSizeInBytes,GPUBufferUsage.MAP_READ|GPUBufferUsage.COPY_DST);const a=t.device.createCommandEncoder();a.copyTextureToBuffer({texture:n.getHandle()},{buffer:o.getHandle(),bytesPerRow:8*r.colorBufferWidth,rowsPerImage:r.height},{width:r.width,height:r.height,depthOrArrayLayers:1}),e.submitCommandEncoder(a);const i=o.mapAsync(GPUMapMode.READ);await i,r.colorValues=new Uint16Array(o.getMappedRange().slice()),o.unmap();const s=new Uint8ClampedArray(r.height*r.width*4);for(let e=0;e&lt;r.height;e++)for(let t=0;t&lt;r.width;t++){const n=4*(e*r.width+t),o=4*(e*r.colorBufferWidth+t);s[n]=255*Md.fromHalf(r.colorValues[o]),s[n+1]=255*Md.fromHalf(r.colorValues[o+1]),s[n+2]=255*Md.fromHalf(r.colorValues[o+2]),s[n+3]=255*Md.fromHalf(r.colorValues[o+3])}return r.colorValues=s,r},e.createSelector=()=&gt;{const t=hy.newInstance();return t.setWebGPURenderWindow(e),t};const r=e.setSize;e.setSize=(t,n)=&gt;{const o=r(t,n);return o&amp;&amp;e.invokeWindowResizeEvent({width:t,height:n}),o},e.delete=sn.chain(e.delete,e.setViewStream)}const Sy={initialized:!1,context:null,adapter:null,device:null,canvas:null,cursorVisibility:!0,cursor:&quot;pointer&quot;,containerSize:null,renderPasses:[],notifyStartCaptureImage:!1,imageFormat:&quot;image/png&quot;,useOffScreen:!1,useBackgroundImage:!1,nextPropID:1,xrSupported:!1,presentationFormat:null};const Py=sn.newInstance((function(e,t,n={}){Object.assign(t,Sy,n),t.canvas=document.createElement(&quot;canvas&quot;),t.canvas.style.width=&quot;100%&quot;,t.bgImage=new Image,t.bgImage.style.position=&quot;absolute&quot;,t.bgImage.style.left=&quot;0&quot;,t.bgImage.style.top=&quot;0&quot;,t.bgImage.style.width=&quot;100%&quot;,t.bgImage.style.height=&quot;100%&quot;,t.bgImage.style.zIndex=&quot;-1&quot;,Gv.extend(e,t,n),t.myFactory=yy.newInstance(),t.renderPasses[0]=qx.newInstance(),t.selector||(t.selector=hy.newInstance(),t.selector.setWebGPURenderWindow(e)),sn.event(e,t,&quot;imageReady&quot;),sn.event(e,t,&quot;initialized&quot;),sn.get(e,t,[&quot;commandEncoder&quot;,&quot;device&quot;,&quot;presentationFormat&quot;,&quot;useBackgroundImage&quot;,&quot;xrSupported&quot;]),sn.setGet(e,t,[&quot;initialized&quot;,&quot;context&quot;,&quot;canvas&quot;,&quot;device&quot;,&quot;renderPasses&quot;,&quot;notifyStartCaptureImage&quot;,&quot;cursor&quot;,&quot;useOffScreen&quot;]),sn.setGetArray(e,t,[&quot;size&quot;],2),sn.event(e,t,&quot;windowResizeEvent&quot;),Cy(e,t)}),&quot;vtkWebGPURenderWindow&quot;);var wy;Oh(&quot;WebGPU&quot;,Py),wy=Py,vy[&quot;vtkRenderWindow&quot;]=wy;const Iy=gv.extractURLParameters(),Oy={margin:&quot;0&quot;,padding:&quot;0&quot;,position:&quot;absolute&quot;,top:&quot;0&quot;,left:&quot;0&quot;,width:&quot;100%&quot;,height:&quot;100%&quot;,overflow:&quot;hidden&quot;},Ry={position:&quot;absolute&quot;,left:&quot;25px&quot;,top:&quot;25px&quot;,backgroundColor:&quot;white&quot;,borderRadius:&quot;5px&quot;,listStyle:&quot;none&quot;,padding:&quot;5px 10px&quot;,margin:&quot;0&quot;,display:&quot;block&quot;,border:&quot;solid 1px black&quot;,maxWidth:&quot;calc(100% - 70px)&quot;,maxHeight:&quot;calc(100% - 60px)&quot;,overflow:&quot;auto&quot;};function My(e,t){Object.keys(t).forEach((n=&gt;{e.style[n]=t[n]}))}const Dy={background:[.32,.34,.43],containerStyle:null,controlPanelStyle:null,listenWindowResize:!0,resizeCallback:null,controllerVisibility:!0};function Ey(e,t,n={}){Object.assign(t,Dy,n),sn.obj(e,t),sn.get(e,t,[&quot;renderWindow&quot;,&quot;renderer&quot;,&quot;apiSpecificRenderWindow&quot;,&quot;interactor&quot;,&quot;rootContainer&quot;,&quot;container&quot;,&quot;controlContainer&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkFullScreenRenderWindow&quot;);const n=document.querySelector(&quot;body&quot;);function r(t){&quot;c&quot;===String.fromCharCode(t.charCode)&amp;&amp;e.toggleControllerVisibility()}t.rootContainer||(t.rootContainer=n),t.container||(t.container=document.createElement(&quot;div&quot;),My(t.container,t.containerStyle||Oy),t.rootContainer.appendChild(t.container)),t.rootContainer===n&amp;&amp;(document.documentElement.style.height=&quot;100%&quot;,n.style.height=&quot;100%&quot;,n.style.padding=&quot;0&quot;,n.style.margin=&quot;0&quot;),t.renderWindow=Eh.newInstance(),t.renderer=wh.newInstance(),t.renderWindow.addRenderer(t.renderer),t.apiSpecificRenderWindow=t.renderWindow.newAPISpecificView(Iy.viewAPI??t.defaultViewAPI),t.apiSpecificRenderWindow.setContainer(t.container),t.renderWindow.addView(t.apiSpecificRenderWindow),t.interactor=Yh.newInstance(),t.interactor.setInteractorStyle(dv.newInstance()),t.interactor.setView(t.apiSpecificRenderWindow),t.interactor.initialize(),t.interactor.bindEvents(t.container),e.setBackground=t.renderer.setBackground,e.removeController=()=&gt;{const e=t.controlContainer;e&amp;&amp;e.parentNode.removeChild(e)},e.setControllerVisibility=e=&gt;{t.controllerVisibility=e,t.controlContainer&amp;&amp;(t.controlContainer.style.display=e?&quot;block&quot;:&quot;none&quot;)},e.toggleControllerVisibility=()=&gt;{e.setControllerVisibility(!t.controllerVisibility)},e.addController=n=&gt;{t.controlContainer=document.createElement(&quot;div&quot;),My(t.controlContainer,t.controlPanelStyle||Ry),t.rootContainer.appendChild(t.controlContainer),t.controlContainer.innerHTML=n,e.setControllerVisibility(t.controllerVisibility),t.rootContainer.addEventListener(&quot;keypress&quot;,r)},e.setBackground(...t.background),e.addRepresentation=e=&gt;{e.getActors().forEach((e=&gt;{t.renderer.addActor(e)}))},e.removeRepresentation=e=&gt;{e.getActors().forEach((e=&gt;t.renderer.removeActor(e)))},e.delete=sn.chain(e.setContainer,t.apiSpecificRenderWindow.delete,(()=&gt;{t.rootContainer?.removeEventListener(&quot;keypress&quot;,r),window.removeEventListener(&quot;resize&quot;,e.resize)}),e.delete),e.resize=()=&gt;{const e=t.container.getBoundingClientRect(),n=window.devicePixelRatio||1;t.apiSpecificRenderWindow.setSize(Math.floor(e.width*n),Math.floor(e.height*n)),t.resizeCallback&amp;&amp;t.resizeCallback(e),t.renderWindow.render()},e.setResizeCallback=n=&gt;{t.resizeCallback=n,e.resize()},t.listenWindowResize&amp;&amp;window.addEventListener(&quot;resize&quot;,e.resize),e.resize()}(e,t)}var Vy={newInstance:sn.newInstance(Ey),extend:Ey};var Ly={ColorSpace:{RGB:0,HSV:1,LAB:2,DIVERGING:3},Scale:{LINEAR:0,LOG10:1}};const{ColorSpace:By,Scale:Fy}=Ly,{ScalarMappingTarget:Ny}=yl,{vtkDebugMacro:ky,vtkErrorMacro:Gy,vtkWarningMacro:Uy}=sn;function _y(e,t){const n=e[0],r=e[1],o=e[2],a=Math.sqrt(n*n+r*r+o*o),i=a&gt;.001?Math.acos(n/a):0,s=i&gt;.001?Math.atan2(o,r):0;t[0]=a,t[1]=i,t[2]=s}function Ky(e,t){if(e[0]&gt;=t-.1)return e[2];const n=e[1]*Math.sqrt(t*t-e[0]*e[0])/(e[0]*Math.sin(e[1]));return e[2]&gt;-.3*Math.PI?e[2]+n:e[2]-n}function zy(e,t,n,r){const o=[],a=[];Pa(t,o),Pa(n,a);const i=[],s=[];_y(o,i),_y(a,s);let l=e;if(i[1]&gt;.05&amp;&amp;s[1]&gt;.05&amp;&amp;function(e,t){let n=e-t;for(n&lt;0&amp;&amp;(n=-n);n&gt;=2*Math.PI;)n-=2*Math.PI;return n&gt;Math.PI&amp;&amp;(n=2*Math.PI-n),n}(i[2],s[2])&gt;.33*Math.PI){let t=Math.max(i[0],s[0]);t=Math.max(88,t),e&lt;.5?(s[0]=t,s[1]=0,s[2]=0,l*=2):(i[0]=t,i[1]=0,i[2]=0,l=2*l-1)}i[1]&lt;.05&amp;&amp;s[1]&gt;.05?i[2]=Ky(s,i[0]):s[1]&lt;.05&amp;&amp;i[1]&gt;.05&amp;&amp;(s[2]=Ky(i,s[0]));const c=[];c[0]=(1-l)*i[0]+l*s[0],c[1]=(1-l)*i[1]+l*s[1],c[2]=(1-l)*i[2]+l*s[2];const u=[];!function(e,t){const n=e[0],r=e[1],o=e[2];t[0]=n*Math.cos(r),t[1]=n*Math.sin(r)*Math.cos(o),t[2]=n*Math.sin(r)*Math.sin(o)}(c,u),wa(u,r)}const Wy={clamping:!0,colorSpace:By.RGB,hSVWrap:!0,scale:Fy.LINEAR,nanColor:null,belowRangeColor:null,aboveRangeColor:null,useAboveRangeColor:!1,useBelowRangeColor:!1,allowDuplicateScalars:!1,table:null,tableSize:0,buildTime:null,nodes:null,discretize:!1,numberOfValues:256};function Hy(e,t,n={}){Object.assign(t,Wy,n),yl.extend(e,t,n),t.table=[],t.nodes=[],t.nanColor=[.5,0,0,1],t.belowRangeColor=[0,0,0,1],t.aboveRangeColor=[1,1,1,1],t.buildTime={},sn.obj(t.buildTime),sn.get(e,t,[&quot;buildTime&quot;,&quot;mappingRange&quot;]),sn.setGet(e,t,[&quot;useAboveRangeColor&quot;,&quot;useBelowRangeColor&quot;,&quot;discretize&quot;,&quot;numberOfValues&quot;,{type:&quot;enum&quot;,name:&quot;colorSpace&quot;,enum:By},{type:&quot;enum&quot;,name:&quot;scale&quot;,enum:Fy}]),sn.setArray(e,t,[&quot;nanColor&quot;,&quot;belowRangeColor&quot;,&quot;aboveRangeColor&quot;],4),sn.getArray(e,t,[&quot;nanColor&quot;,&quot;belowRangeColor&quot;,&quot;aboveRangeColor&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkColorTransferFunction&quot;),e.getSize=()=&gt;t.nodes.length,e.addRGBPoint=(t,n,r,o)=&gt;e.addRGBPointLong(t,n,r,o,.5,0),e.addRGBPointLong=(n,r,o,a,i=.5,s=0)=&gt;{if(i&lt;0||i&gt;1)return Gy(&quot;Midpoint outside range [0.0, 1.0]&quot;),-1;if(s&lt;0||s&gt;1)return Gy(&quot;Sharpness outside range [0.0, 1.0]&quot;),-1;t.allowDuplicateScalars||e.removePoint(n);const l={x:n,r:r,g:o,b:a,midpoint:i,sharpness:s};t.nodes.push(l),e.sortAndUpdateRange();let c=0;for(;c&lt;t.nodes.length&amp;&amp;t.nodes[c].x!==n;c++);return c&lt;t.nodes.length?c:-1},e.addHSVPoint=(t,n,r,o)=&gt;e.addHSVPointLong(t,n,r,o,.5,0),e.addHSVPointLong=(t,n,r,o,a=.5,i=0)=&gt;{const s=[];return ya([n,r,o],s),e.addRGBPoint(t,s[0],s[1],s[2],a,i)},e.setNodes=n=&gt;{if(t.nodes!==n){const r=JSON.stringify(t.nodes);t.nodes=n;const o=JSON.stringify(t.nodes);if(e.sortAndUpdateRange()||r!==o)return e.modified(),!0}return!1},e.sortAndUpdateRange=()=&gt;{const n=JSON.stringify(t.nodes);t.nodes.sort(((e,t)=&gt;e.x-t.x));const r=JSON.stringify(t.nodes),o=e.updateRange();return o||n===r?o:(e.modified(),!0)},e.updateRange=()=&gt;{const n=[2];n[0]=t.mappingRange[0],n[1]=t.mappingRange[1];const r=t.nodes.length;return r?(t.mappingRange[0]=t.nodes[0].x,t.mappingRange[1]=t.nodes[r-1].x):(t.mappingRange[0]=0,t.mappingRange[1]=0),(n[0]!==t.mappingRange[0]||n[1]!==t.mappingRange[1])&amp;&amp;(e.modified(),!0)},e.removePoint=n=&gt;{let r=0;for(;r&lt;t.nodes.length&amp;&amp;t.nodes[r].x!==n;r++);const o=r;if(r&gt;=t.nodes.length)return-1;let a=!1;return t.nodes.splice(r,1),0!==r&amp;&amp;r!==t.nodes.length||(a=e.updateRange()),a||e.modified(),o},e.movePoint=(n,r)=&gt;{if(n!==r){e.removePoint(r);for(let o=0;o&lt;t.nodes.length;o++)if(t.nodes[o].x===n){t.nodes[o].x=r,e.sortAndUpdateRange();break}}},e.removeAllPoints=()=&gt;{t.nodes=[],e.sortAndUpdateRange()},e.addRGBSegment=(n,r,o,a,i,s,l,c)=&gt;{e.sortAndUpdateRange();for(let e=0;e&lt;t.nodes.length;)t.nodes[e].x&gt;=n&amp;&amp;t.nodes[e].x&lt;=i?t.nodes.splice(e,1):e++;e.addRGBPointLong(n,r,o,a,.5,0),e.addRGBPointLong(i,s,l,c,.5,0),e.modified()},e.addHSVSegment=(t,n,r,o,a,i,s,l)=&gt;{const c=[i,s,l],u=[],d=[];ya([n,r,o],u),ya(c,d),e.addRGBSegment(t,u[0],u[1],u[2],a,d[0],d[1],d[2])},e.mapValue=t=&gt;{const n=[];return e.getColor(t,n),[Math.floor(255*n[0]+.5),Math.floor(255*n[1]+.5),Math.floor(255*n[2]+.5),255]},e.getColor=(n,r)=&gt;{if(t.indexedLookup){const t=e.getSize(),o=e.getAnnotatedValueIndexInternal(n);if(o&lt;0||0===t){const t=e.getNanColorByReference();r[0]=t[0],r[1]=t[1],r[2]=t[2]}else{const n=[];e.getNodeValue(o%t,n),r[0]=n[1],r[1]=n[2],r[2]=n[3]}}else e.getTable(n,n,1,r)},e.getRedValue=t=&gt;{const n=[];return e.getColor(t,n),n[0]},e.getGreenValue=t=&gt;{const n=[];return e.getColor(t,n),n[1]},e.getBlueValue=t=&gt;{const n=[];return e.getColor(t,n),n[2]},e.logScaleEnabled=()=&gt;t.scale===Fy.LOG10,e.usingLogScale=()=&gt;e.logScaleEnabled()&amp;&amp;t.mappingRange[0]&gt;0,e.getTable=(n,r,o,a)=&gt;{const i=e.usingLogScale(),s=i?Math.log10(Number(n)):Number(n),l=i?Math.log10(Number(r)):Number(r);if(ka(s)||ka(l)){for(let e=0;e&lt;o;e++)a[3*e+0]=t.nanColor[0],a[3*e+1]=t.nanColor[1],a[3*e+2]=t.nanColor[2];return}let c=0;const u=t.nodes.length;let d=0,p=0,f=0;0!==u&amp;&amp;(d=t.nodes[u-1].r,p=t.nodes[u-1].g,f=t.nodes[u-1].b);let g=0,m=0,h=0;const v=[0,0,0],T=[0,0,0];let x=0,y=0;const b=[];let A=t.mappingRange;i&amp;&amp;(A=[Math.log10(t.mappingRange[0]),Math.log10(t.mappingRange[1])]);for(let n=0;n&lt;o;n++){const r=3*n;if(g=o&gt;1?s+n/(o-1)*(l-s):.5*(s+l),t.discretize){const e=A;if(g&gt;=e[0]&amp;&amp;g&lt;=e[1]){const n=t.numberOfValues,r=e[1]-e[0];if(n&lt;=1)g=e[0]+r/2;else{const t=(g-e[0])/r,o=Ro(n*t);g=e[0]+o/(n-1)*r}}}for(;c&lt;u&amp;&amp;g&gt;t.nodes[c].x;)c++,c&lt;u&amp;&amp;(m=t.nodes[c-1].x,h=t.nodes[c].x,v[0]=t.nodes[c-1].r,T[0]=t.nodes[c].r,v[1]=t.nodes[c-1].g,T[1]=t.nodes[c].g,v[2]=t.nodes[c-1].b,T[2]=t.nodes[c].b,x=t.nodes[c-1].midpoint,y=t.nodes[c-1].sharpness,x&lt;1e-5&amp;&amp;(x=1e-5),x&gt;.99999&amp;&amp;(x=.99999));if(g&gt;A[1])a[r]=0,a[r+1]=0,a[r+2]=0,t.clamping&amp;&amp;(e.getUseAboveRangeColor()?(a[r]=t.aboveRangeColor[0],a[r+1]=t.aboveRangeColor[1],a[r+2]=t.aboveRangeColor[2]):(a[r]=d,a[r+1]=p,a[r+2]=f));else if(g&lt;A[0]||Ba(g)&amp;&amp;g&lt;0)a[r]=0,a[r+1]=0,a[r+2]=0,t.clamping&amp;&amp;(e.getUseBelowRangeColor()?(a[r]=t.belowRangeColor[0],a[r+1]=t.belowRangeColor[1],a[r+2]=t.belowRangeColor[2]):u&gt;0&amp;&amp;(a[r]=t.nodes[0].r,a[r+1]=t.nodes[0].g,a[r+2]=t.nodes[0].b));else if(0===c&amp;&amp;(Math.abs(g-s)&lt;1e-6||t.discretize))u&gt;0?(a[r]=t.nodes[0].r,a[r+1]=t.nodes[0].g,a[r+2]=t.nodes[0].b):(a[r]=0,a[r+1]=0,a[r+2]=0);else{let e=0;if(e=(g-m)/(h-m),e=e&lt;x?.5*e/x:.5+.5*(e-x)/(1-x),y&gt;.99){if(e&lt;.5){a[r]=v[0],a[r+1]=v[1],a[r+2]=v[2];continue}a[r]=T[0],a[r+1]=T[1],a[r+2]=T[2];continue}if(y&lt;.01){if(t.colorSpace===By.RGB)a[r]=(1-e)*v[0]+e*T[0],a[r+1]=(1-e)*v[1]+e*T[1],a[r+2]=(1-e)*v[2]+e*T[2];else if(t.colorSpace===By.HSV){const n=[],o=[];xa(v,n),xa(T,o),t.hSVWrap&amp;&amp;(n[0]-o[0]&gt;.5||o[0]-n[0]&gt;.5)&amp;&amp;(n[0]&gt;o[0]?n[0]-=1:o[0]-=1);const i=[];i[0]=(1-e)*n[0]+e*o[0],i[0]&lt;0&amp;&amp;(i[0]+=1),i[1]=(1-e)*n[1]+e*o[1],i[2]=(1-e)*n[2]+e*o[2],ya(i,b),a[r]=b[0],a[r+1]=b[1],a[r+2]=b[2]}else if(t.colorSpace===By.LAB){const t=[],n=[];Pa(v,t),Pa(T,n);const o=[];o[0]=(1-e)*t[0]+e*n[0],o[1]=(1-e)*t[1]+e*n[1],o[2]=(1-e)*t[2]+e*n[2],wa(o,b),a[r]=b[0],a[r+1]=b[1],a[r+2]=b[2]}else t.colorSpace===By.DIVERGING?(zy(e,v,T,b),a[r]=b[0],a[r+1]=b[1],a[r+2]=b[2]):Gy(&quot;ColorSpace set to invalid value.&quot;,t.colorSpace);continue}e&lt;.5?e=.5*(2*e)**(1+10*y):e&gt;.5&amp;&amp;(e=1-.5*(2*(1-e))**(1+10*y));const n=e*e,o=n*e,i=2*o-3*n+1,s=-2*o+3*n,l=o-2*n+e,c=o-n;let u,d;if(t.colorSpace===By.RGB)for(let e=0;e&lt;3;e++)u=T[e]-v[e],d=(1-y)*u,a[r+e]=i*v[e]+s*T[e]+l*d+c*d;else if(t.colorSpace===By.HSV){const e=[],n=[];xa(v,e),xa(T,n),t.hSVWrap&amp;&amp;(e[0]-n[0]&gt;.5||n[0]-e[0]&gt;.5)&amp;&amp;(e[0]&gt;n[0]?e[0]-=1:n[0]-=1);const o=[];for(let t=0;t&lt;3;t++)u=n[t]-e[t],d=(1-y)*u,o[t]=i*e[t]+s*n[t]+l*d+c*d,0===t&amp;&amp;o[t]&lt;0&amp;&amp;(o[t]+=1);ya(o,b),a[r]=b[0],a[r+1]=b[1],a[r+2]=b[2]}else if(t.colorSpace===By.LAB){const e=[],t=[];Pa(v,e),Pa(T,t);const n=[];for(let r=0;r&lt;3;r++)u=t[r]-e[r],d=(1-y)*u,n[r]=i*e[r]+s*t[r]+l*d+c*d;wa(n,b),a[r]=b[0],a[r+1]=b[1],a[r+2]=b[2]}else t.colorSpace===By.DIVERGING?(zy(e,v,T,b),a[r]=b[0],a[r+1]=b[1],a[r+2]=b[2]):Gy(&quot;ColorSpace set to invalid value.&quot;);for(let e=0;e&lt;3;e++)a[r+e]=a[r+e]&lt;0?0:a[r+e],a[r+e]=a[r+e]&gt;1?1:a[r+e]}}},e.getUint8Table=(n,r,o,a=!1)=&gt;{if(e.getMTime()&lt;=t.buildTime&amp;&amp;t.tableSize===o&amp;&amp;t.tableWithAlpha!==a)return t.table;if(0===t.nodes.length)return Gy(&quot;Attempting to lookup a value with no points in the function&quot;),t.table;const i=a?4:3;t.tableSize===o&amp;&amp;t.tableWithAlpha===a||(t.table=new Uint8Array(o*i),t.tableSize=o,t.tableWithAlpha=a);const s=[];e.getTable(n,r,o,s);for(let e=0;e&lt;o;e++)t.table[e*i+0]=Math.floor(255*s[3*e+0]+.5),t.table[e*i+1]=Math.floor(255*s[3*e+1]+.5),t.table[e*i+2]=Math.floor(255*s[3*e+2]+.5),a&amp;&amp;(t.table[e*i+3]=255);return t.buildTime.modified(),t.table},e.buildFunctionFromArray=n=&gt;{e.removeAllPoints();const r=n.getNumberOfComponents();for(let e=0;e&lt;n.getNumberOfTuples();e++)switch(r){case 3:t.nodes.push({x:e,r:n.getComponent(e,0),g:n.getComponent(e,1),b:n.getComponent(e,2),midpoint:.5,sharpness:0});break;case 4:t.nodes.push({x:n.getComponent(e,0),r:n.getComponent(e,1),g:n.getComponent(e,2),b:n.getComponent(e,3),midpoint:.5,sharpness:0});break;case 5:t.nodes.push({x:e,r:n.getComponent(e,0),g:n.getComponent(e,1),b:n.getComponent(e,2),midpoint:n.getComponent(e,4),sharpness:n.getComponent(e,5)});break;case 6:t.nodes.push({x:n.getComponent(e,0),r:n.getComponent(e,1),g:n.getComponent(e,2),b:n.getComponent(e,3),midpoint:n.getComponent(e,4),sharpness:n.getComponent(e,5)})}e.sortAndUpdateRange()},e.buildFunctionFromTable=(n,r,o,a)=&gt;{let i=0;e.removeAllPoints(),o&gt;1&amp;&amp;(i=(r-n)/(o-1));for(let e=0;e&lt;o;e++){const r={x:n+i*e,r:a[3*e],g:a[3*e+1],b:a[3*e+2],sharpness:0,midpoint:.5};t.nodes.push(r)}e.sortAndUpdateRange()},e.getNodeValue=(e,n)=&gt;e&lt;0||e&gt;=t.nodes.length?(Gy(&quot;Index out of range!&quot;),-1):(n[0]=t.nodes[e].x,n[1]=t.nodes[e].r,n[2]=t.nodes[e].g,n[3]=t.nodes[e].b,n[4]=t.nodes[e].midpoint,n[5]=t.nodes[e].sharpness,1),e.setNodeValue=(n,r)=&gt;{if(n&lt;0||n&gt;=t.nodes.length)return Gy(&quot;Index out of range!&quot;),-1;const o=t.nodes[n].x;return t.nodes[n].x=r[0],t.nodes[n].r=r[1],t.nodes[n].g=r[2],t.nodes[n].b=r[3],t.nodes[n].midpoint=r[4],t.nodes[n].sharpness=r[5],o!==r[0]?e.sortAndUpdateRange():e.modified(),1},e.getNumberOfAvailableColors=()=&gt;{if(t.indexedLookup&amp;&amp;e.getSize())return e.getSize();if(t.tableSize)return t.tableSize;const n=t.nodes?.length??0;return Math.max(4094,n)},e.getIndexedColor=(t,n)=&gt;{const r=e.getSize();if(r&gt;0&amp;&amp;t&gt;=0){const o=[];e.getNodeValue(t%r,o);for(let e=0;e&lt;3;++e)n[e]=o[e+1];return void(n[3]=1)}const o=e.getNanColorByReference();n[0]=o[0],n[1]=o[1],n[2]=o[2],n[3]=1},e.fillFromDataPointer=(t,n)=&gt;{if(!(t&lt;=0)&amp;&amp;n){e.removeAllPoints();for(let r=0;r&lt;t;r++)e.addRGBPoint(n[4*r],n[4*r+1],n[4*r+2],n[4*r+3])}},e.setMappingRange=(n,r)=&gt;{const o=[n,r],a=[n,r],i=e.getRange(),s=e.logScaleEnabled();if(i[1]===o[1]&amp;&amp;i[0]===o[0])return;if(o[1]===o[0])return void Gy(&quot;attempt to set zero width color range&quot;);s&amp;&amp;(o[0]&lt;=0?console.warn(&quot;attempt to set log scale color range with non-positive minimum&quot;):(a[0]=Math.log10(o[0]),a[1]=Math.log10(o[1])));const l=(a[1]-a[0])/(i[1]-i[0]),c=a[0]-i[0]*l;for(let e=0;e&lt;t.nodes.length;++e)t.nodes[e].x=t.nodes[e].x*l+c;t.mappingRange[0]=o[0],t.mappingRange[1]=o[1],e.modified()},e.adjustRange=n=&gt;{const r=e.getRange(),o=[];r[0]&lt;n[0]?(e.getColor(n[0],o),e.addRGBPoint(n[0],o[0],o[1],o[2])):(e.getColor(r[0],o),e.addRGBPoint(n[0],o[0],o[1],o[2])),r[1]&gt;n[1]?(e.getColor(n[1],o),e.addRGBPoint(n[1],o[0],o[1],o[2])):(e.getColor(r[1],o),e.addRGBPoint(n[1],o[0],o[1],o[2])),e.sortAndUpdateRange();for(let e=0;e&lt;t.nodes.length;)t.nodes[e].x&gt;=n[0]&amp;&amp;t.nodes[e].x&lt;=n[1]?t.nodes.splice(e,1):++e;return 1},e.estimateMinNumberOfSamples=(t,n)=&gt;{const r=e.findMinimumXDistance();return Math.ceil((n-t)/r)},e.findMinimumXDistance=()=&gt;{if(t.nodes.length&lt;2)return-1;let e=Number.MAX_VALUE;for(let n=0;n&lt;t.nodes.length-1;n++){const r=t.nodes[n+1].x-t.nodes[n].x;r&lt;e&amp;&amp;(e=r)}return e},e.mapScalarsThroughTable=(n,r,o,a)=&gt;{0!==e.getSize()?t.indexedLookup?e.mapDataIndexed(n,r,o,a):e.mapData(n,r,o,a):ky(&quot;Transfer Function Has No Points!&quot;)},e.mapData=(t,n,r,o)=&gt;{if(0===e.getSize())return void Uy(&quot;Transfer Function Has No Points!&quot;);const a=Math.floor(255*e.getAlpha()+.5),i=t.getNumberOfTuples(),s=t.getNumberOfComponents(),l=n.getData(),c=t.getData(),u=[];if(r===Ny.RGBA)for(let t=0;t&lt;i;t++){const n=c[t*s+o];e.getColor(n,u),l[4*t]=Math.floor(255*u[0]+.5),l[4*t+1]=Math.floor(255*u[1]+.5),l[4*t+2]=Math.floor(255*u[2]+.5),l[4*t+3]=a}if(r===Ny.RGB)for(let t=0;t&lt;i;t++){const n=c[t*s+o];e.getColor(n,u),l[3*t]=Math.floor(255*u[0]+.5),l[3*t+1]=Math.floor(255*u[1]+.5),l[3*t+2]=Math.floor(255*u[2]+.5)}if(r===Ny.LUMINANCE)for(let t=0;t&lt;i;t++){const n=c[t*s+o];e.getColor(n,u),l[t]=Math.floor(76.5*u[0]+150.45*u[1]+28.05*u[2]+.5)}if(r===Ny.LUMINANCE_ALPHA)for(let t=0;t&lt;i;t++){const n=c[t*s+o];e.getColor(n,u),l[2*t]=Math.floor(76.5*u[0]+150.45*u[1]+28.05*u[2]+.5),l[2*t+1]=a}},e.applyColorMap=n=&gt;{const r=JSON.stringify(t.colorSpace);n.ColorSpace&amp;&amp;(t.colorSpace=By[n.ColorSpace.toUpperCase()],void 0===t.colorSpace&amp;&amp;(Gy(`ColorSpace ${n.ColorSpace} not supported, using RGB instead`),t.colorSpace=By.RGB));let o=r!==JSON.stringify(t.colorSpace);const a=o||JSON.stringify(t.nanColor);if(n.NanColor)for(t.nanColor=[].concat(n.NanColor);t.nanColor.length&lt;4;)t.nanColor.push(1);o=o||a!==JSON.stringify(t.nanColor);const i=o||JSON.stringify(t.nodes);if(n.RGBPoints){const e=n.RGBPoints.length;t.nodes=[];const r=.5,o=0;for(let a=0;a&lt;e;a+=4)t.nodes.push({x:n.RGBPoints[a],r:n.RGBPoints[a+1],g:n.RGBPoints[a+2],b:n.RGBPoints[a+3],midpoint:r,sharpness:o})}const s=e.sortAndUpdateRange(),l=!s&amp;&amp;(o||i!==JSON.stringify(t.nodes));return l&amp;&amp;e.modified(),s||l}}(e,t)}var jy={newInstance:sn.newInstance(Hy,&quot;vtkColorTransferFunction&quot;),extend:Hy,...Ly};var Xy={OrientationModes:{DIRECTION:0,ROTATION:1,MATRIX:2},ScaleModes:{SCALE_BY_CONSTANT:0,SCALE_BY_MAGNITUDE:1,SCALE_BY_COMPONENTS:2}};const{OrientationModes:qy,ScaleModes:Yy}=Xy,{vtkErrorMacro:Jy}=sn;const Zy={orient:!0,orientationMode:qy.DIRECTION,orientationArray:null,scaling:!0,scaleFactor:1,scaleMode:Yy.SCALE_BY_MAGNITUDE,scaleArray:null,matrixArray:null,normalArray:null,colorArray:null};function Qy(e,t,n={}){Object.assign(t,Zy,n),Ql.extend(e,t,n),sn.algo(e,t,2,0),t.buildTime={},sn.obj(t.buildTime,{mtime:0}),sn.setGet(e,t,[&quot;orient&quot;,&quot;orientationMode&quot;,&quot;orientationArray&quot;,&quot;scaleArray&quot;,&quot;scaleFactor&quot;,&quot;scaleMode&quot;,&quot;scaling&quot;]),sn.get(e,t,[&quot;colorArray&quot;,&quot;matrixArray&quot;,&quot;normalArray&quot;,&quot;buildTime&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkGlyph3DMapper&quot;),e.getOrientationModeAsString=()=&gt;sn.enumToString(qy,t.orientationMode),e.setOrientationModeToDirection=()=&gt;e.setOrientationMode(qy.DIRECTION),e.setOrientationModeToRotation=()=&gt;e.setOrientationMode(qy.ROTATION),e.setOrientationModeToMatrix=()=&gt;e.setOrientationMode(qy.MATRIX),e.getOrientationArrayData=()=&gt;{const n=e.getInputData(0);return n&amp;&amp;n.getPointData()?t.orientationArray?n.getPointData().getArray(t.orientationArray):n.getPointData().getVectors():null},e.getScaleModeAsString=()=&gt;sn.enumToString(Yy,t.scaleMode),e.setScaleModeToScaleByMagnitude=()=&gt;e.setScaleMode(Yy.SCALE_BY_MAGNITUDE),e.setScaleModeToScaleByComponents=()=&gt;e.setScaleMode(Yy.SCALE_BY_COMPONENTS),e.setScaleModeToScaleByConstant=()=&gt;e.setScaleMode(Yy.SCALE_BY_CONSTANT),e.getScaleArrayData=()=&gt;{const n=e.getInputData(0);return n&amp;&amp;n.getPointData()?t.scaleArray?n.getPointData().getArray(t.scaleArray):n.getPointData().getScalars():null},e.computeBounds=()=&gt;e.buildArrays(),e.buildArrays=()=&gt;{const n=e.getInputData(0),r=e.getInputData(1);if(n&amp;&amp;r){if(t.buildTime.getMTime()&lt;r.getMTime()||t.buildTime.getMTime()&lt;n.getMTime()||t.buildTime.getMTime()&lt;e.getMTime()){const o=n.getPoints().getData();let a=e.getScaleArrayData(),i=null,l=0;a&amp;&amp;(i=a.getData(),l=a.getNumberOfComponents()),t.scaling&amp;&amp;a&amp;&amp;t.scaleMode===Yy.SCALE_BY_COMPONENTS&amp;&amp;3!==a.getNumberOfComponents()&amp;&amp;(Jy(&quot;Cannot scale by components since scale array does not have 3 components.&quot;),a=null);const c=r.getBounds(),p=[];Hi.getCorners(c,p),Hi.reset(t.bounds);const f=new Float64Array(3),g=e.getOrientationArrayData(),m=x(new Float64Array(16)),h=[],v=[],T=o.length/3;t.matrixArray=new Float32Array(16*T);const y=t.matrixArray.buffer;t.normalArray=new Float32Array(9*T);const b=t.normalArray.buffer,R=[],M=[];for(let e=0;e&lt;T;++e){const n=new Float32Array(y,64*e,16);if(h[0]=o[3*e],h[1]=o[3*e+1],h[2]=o[3*e+2],C(n,m,h),g)switch(g.getTuple(e,M),t.orientationMode){case qy.MATRIX:A(n,n,[...M.slice(0,3),0,...M.slice(3,6),0,...M.slice(6,9),0,0,0,0,1]);break;case qy.ROTATION:O(n,n,M[2]),w(n,n,M[0]),I(n,n,M[1]);break;case qy.DIRECTION:if(0===M[1]&amp;&amp;0===M[2])M[0]&lt;0&amp;&amp;I(n,n,3.1415926);else{const e=Ho(M),t=[];t[0]=(M[0]+e)/2,t[1]=M[1]/2,t[2]=M[2]/2,P(n,n,3.1415926,t)}}if(t.scaling){if(v[0]=t.scaleFactor,v[1]=t.scaleFactor,v[2]=t.scaleFactor,a)switch(t.scaleMode){case Yy.SCALE_BY_MAGNITUDE:for(let t=0;t&lt;l;++t)R[t]=i[e*l+t];v[0]*=Ho(R,l),v[1]=v[0],v[2]=v[0];break;case Yy.SCALE_BY_COMPONENTS:for(let t=0;t&lt;l;++t)R[t]=i[e*l+t];v[0]*=R[0],v[1]*=R[1],v[2]*=R[2];case Yy.SCALE_BY_CONSTANT:}0===v[0]&amp;&amp;(v[0]=1e-10),0===v[1]&amp;&amp;(v[1]=1e-10),0===v[2]&amp;&amp;(v[2]=1e-10),S(n,n,v)}for(let e=0;e&lt;8;++e)oe(f,p[e],n),Hi.addPoint(t.bounds,f);const r=new Float32Array(b,36*e,9);s(r,n),d(r,r),u(r,r)}const D=e.getAbstractScalars(n,t.scalarMode,t.arrayAccessMode,t.arrayId,t.colorByArrayName).scalars;t.useLookupTableScalarRange||e.getLookupTable().setRange(t.scalarRange[0],t.scalarRange[1]),t.colorArray=null;const E=e.getLookupTable();E&amp;&amp;D&amp;&amp;(E.build(),t.colorArray=E.mapScalars(D,t.colorMode,0)),t.buildTime.modified()}}else Hi.reset(t.bounds)},e.getPrimitiveCount=()=&gt;{const t=e.getInputData(1),n=e.getInputData().getPoints().getNumberOfValues()/3;return{points:n*t.getPoints().getNumberOfValues()/3,verts:n*(t.getVerts().getNumberOfValues()-t.getVerts().getNumberOfCells()),lines:n*(t.getLines().getNumberOfValues()-2*t.getLines().getNumberOfCells()),triangles:n*(t.getPolys().getNumberOfValues()-3*t.getLines().getNumberOfCells())}},e.setSourceConnection=t=&gt;e.setInputConnection(t,1)}(e,t)}var $y={newInstance:sn.newInstance(Qy,&quot;vtkGlyph3DMapper&quot;),extend:Qy,...Xy};const{vtkErrorMacro:eb}=sn;const tb={range:[0,0],clamping:!0,allowDuplicateScalars:!1};function nb(e,t,n={}){Object.assign(t,tb,n),sn.obj(e,t),t.nodes=[],sn.setGet(e,t,[&quot;allowDuplicateScalars&quot;,&quot;clamping&quot;]),sn.setArray(e,t,[&quot;range&quot;],2),sn.getArray(e,t,[&quot;range&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkPiecewiseFunction&quot;),e.getSize=()=&gt;t.nodes.length,e.getType=()=&gt;{let e,n=0,r=0;t.nodes.length&gt;0&amp;&amp;(n=t.nodes[0].y);for(let o=1;o&lt;t.nodes.length;o++){if(e=t.nodes[o].y,e!==n)if(e&gt;n)switch(r){case 0:case 1:r=1;break;default:r=3}else switch(r){case 0:case 2:r=2;break;default:r=3}if(n=e,3===r)break}switch(r){case 0:return&quot;Constant&quot;;case 1:return&quot;NonDecreasing&quot;;case 2:return&quot;NonIncreasing&quot;;default:return&quot;Varied&quot;}},e.getDataPointer=()=&gt;{const e=t.nodes.length;if(t.function=null,e&gt;0){t.function=[];for(let n=0;n&lt;e;n++)t.function[2*n]=t.nodes[n].x,t.function[2*n+1]=t.nodes[n].y}return t.function},e.getFirstNonZeroValue=()=&gt;{if(0===t.nodes.length)return 0;let e=1,n=0,r=0;for(;r&lt;t.nodes.length;r++)if(0!==t.nodes[r].y){e=0;break}return n=e?Number.MAX_VALUE:r&gt;0?t.nodes[r-1].x:t.clamping?-Number.MAX_VALUE:t.nodes[0].x,n},e.getNodeValue=(e,n)=&gt;{const r=t.nodes.length;return e&lt;0||e&gt;=r?(eb(&quot;Index out of range!&quot;),-1):(n[0]=t.nodes[e].x,n[1]=t.nodes[e].y,n[2]=t.nodes[e].midpoint,n[3]=t.nodes[e].sharpness,1)},e.setNodeValue=(n,r)=&gt;{const o=t.nodes.length;if(n&lt;0||n&gt;=o)return eb(&quot;Index out of range!&quot;),-1;const a=t.nodes[n].x;return t.nodes[n].x=r[0],t.nodes[n].y=r[1],t.nodes[n].midpoint=r[2],t.nodes[n].sharpness=r[3],a!==r[0]?e.sortAndUpdateRange():e.modified(),1},e.addPoint=(t,n)=&gt;e.addPointLong(t,n,.5,0),e.addPointLong=(n,r,o,a)=&gt;{if(o&lt;0||o&gt;1)return eb(&quot;Midpoint outside range [0.0, 1.0]&quot;),-1;if(a&lt;0||a&gt;1)return eb(&quot;Sharpness outside range [0.0, 1.0]&quot;),-1;t.allowDuplicateScalars||e.removePoint(n);const i={x:n,y:r,midpoint:o,sharpness:a};let s;for(t.nodes.push(i),e.sortAndUpdateRange(),s=0;s&lt;t.nodes.length&amp;&amp;t.nodes[s].x!==n;s++);return s&lt;t.nodes.length?s:-1},e.setNodes=n=&gt;{t.nodes!==n&amp;&amp;(t.nodes=n,e.sortAndUpdateRange())},e.sortAndUpdateRange=()=&gt;{t.nodes.sort(((e,t)=&gt;e.x-t.x)),e.updateRange()||e.modified()},e.updateRange=()=&gt;{const n=t.range.slice(),r=t.nodes.length;return r?(t.range[0]=t.nodes[0].x,t.range[1]=t.nodes[r-1].x):(t.range[0]=0,t.range[1]=0),(n[0]!==t.range[0]||n[1]!==t.range[1])&amp;&amp;(e.modified(),!0)},e.removePoint=n=&gt;{let r;for(r=0;r&lt;t.nodes.length&amp;&amp;t.nodes[r].x!==n;r++);if(r&gt;=t.nodes.length)return-1;const o=r;let a=!1;return t.nodes.splice(r,1),0!==r&amp;&amp;r!==t.nodes.length||(a=e.updateRange()),a||e.modified(),o},e.removeAllPoints=()=&gt;{t.nodes=[],e.sortAndUpdateRange()},e.addSegment=(n,r,o,a)=&gt;{e.sortAndUpdateRange();for(let e=0;e&lt;t.nodes.length;)t.nodes[e].x&gt;=n&amp;&amp;t.nodes[e].x&lt;=o?t.nodes.splice(e,1):e++;e.addPoint(n,r,.5,0),e.addPoint(o,a,.5,0)},e.getValue=t=&gt;{const n=[];return e.getTable(t,t,1,n),n[0]},e.adjustRange=n=&gt;{if(n.length&lt;2)return 0;const r=e.getRange();r[0]&lt;n[0]?e.addPoint(n[0],e.getValue(n[0])):e.addPoint(n[0],e.getValue(r[0])),r[1]&gt;n[1]?e.addPoint(n[1],e.getValue(n[1])):e.addPoint(n[1],e.getValue(r[1])),e.sortAndUpdateRange();for(let e=0;e&lt;t.nodes.length;)t.nodes[e].x&gt;=n[0]&amp;&amp;t.nodes[e].x&lt;=n[1]?t.nodes.splice(e,1):++e;return e.sortAndUpdateRange(),1},e.estimateMinNumberOfSamples=(t,n)=&gt;{const r=e.findMinimumXDistance();return Math.ceil((n-t)/r)},e.findMinimumXDistance=()=&gt;{const e=t.nodes.length;if(e&lt;2)return-1;let n=t.nodes[1].x-t.nodes[0].x;for(let r=0;r&lt;e-1;r++){const e=t.nodes[r+1].x-t.nodes[r].x;e&lt;n&amp;&amp;(n=e)}return n},e.getTable=(e,n,r,o,a=1)=&gt;{let i,s=0;const l=t.nodes.length;let c=0;0!==l&amp;&amp;(c=t.nodes[l-1].y);let u=0,d=0,p=0,f=0,g=0,m=0,h=0;for(i=0;i&lt;r;i++){const v=a*i;for(u=r&gt;1?e+i/(r-1)*(n-e):.5*(e+n);s&lt;l&amp;&amp;u&gt;t.nodes[s].x;)s++,s&lt;l&amp;&amp;(d=t.nodes[s-1].x,p=t.nodes[s].x,f=t.nodes[s-1].y,g=t.nodes[s].y,m=t.nodes[s-1].midpoint,h=t.nodes[s-1].sharpness,m&lt;1e-5&amp;&amp;(m=1e-5),m&gt;.99999&amp;&amp;(m=.99999));if(s&gt;=l)o[v]=t.clamping?c:0;else if(0===s)o[v]=t.clamping?t.nodes[0].y:0;else{let e=(u-d)/(p-d);if(e=e&lt;m?.5*e/m:.5+.5*(e-m)/(1-m),h&gt;.99){if(e&lt;.5){o[v]=f;continue}o[v]=g;continue}if(h&lt;.01){o[v]=(1-e)*f+e*g;continue}e&lt;.5?e=.5*(2*e)**(1+10*h):e&gt;.5&amp;&amp;(e=1-.5*(2*(1-e))**(1+10*h));const t=e*e,n=t*e,r=2*n-3*t+1,a=-2*n+3*t,i=n-2*t+e,s=n-t,l=(1-h)*(g-f);o[v]=r*f+a*g+i*l+s*l;const c=f&lt;g?f:g,T=f&gt;g?f:g;o[v]=o[v]&lt;c?c:o[v],o[v]=o[v]&gt;T?T:o[v]}}}}(e,t)}var rb={newInstance:sn.newInstance(nb,&quot;vtkPiecewiseFunction&quot;),extend:nb};const{InterpolationType:ob,OpacityMode:ab,FilterMode:ib,ColorMixPreset:sb}=mg,{vtkErrorMacro:lb}=sn;function cb(e,t,n={}){if(Object.assign(t,(e=&gt;({colorMixPreset:sb.DEFAULT,independentComponents:!0,interpolationType:ob.FAST_LINEAR,shade:!1,ambient:.1,diffuse:.7,specular:.2,specularPower:10,useLabelOutline:!1,labelOutlineThickness:[1],labelOutlineOpacity:1,ipScalarRange:[-1e6,1e6],filterMode:ib.OFF,preferSizeOverAccuracy:!1,computeNormalFromOpacity:!1,volumetricScatteringBlending:0,globalIlluminationReach:0,anisotropy:0,localAmbientOcclusion:!1,LAOKernelSize:15,LAOKernelRadius:7,updatedExtents:[],...e}))(n)),sn.obj(e,t),!t.componentData){t.componentData=[];for(let e=0;e&lt;4;++e)t.componentData.push({colorChannels:1,grayTransferFunction:null,rGBTransferFunction:null,scalarOpacity:null,scalarOpacityUnitDistance:1,opacityMode:ab.FRACTIONAL,gradientOpacityMinimumValue:0,gradientOpacityMinimumOpacity:0,gradientOpacityMaximumValue:1,gradientOpacityMaximumOpacity:1,useGradientOpacity:!1,componentWeight:1,forceNearestInterpolation:!1})}sn.setGet(e,t,[&quot;colorMixPreset&quot;,&quot;independentComponents&quot;,&quot;interpolationType&quot;,&quot;shade&quot;,&quot;ambient&quot;,&quot;diffuse&quot;,&quot;specular&quot;,&quot;specularPower&quot;,&quot;useLabelOutline&quot;,&quot;labelOutlineOpacity&quot;,&quot;filterMode&quot;,&quot;preferSizeOverAccuracy&quot;,&quot;computeNormalFromOpacity&quot;,&quot;volumetricScatteringBlending&quot;,&quot;globalIlluminationReach&quot;,&quot;anisotropy&quot;,&quot;localAmbientOcclusion&quot;,&quot;LAOKernelSize&quot;,&quot;LAOKernelRadius&quot;,&quot;updatedExtents&quot;]),sn.setGetArray(e,t,[&quot;ipScalarRange&quot;],2),sn.setGetArray(e,t,[&quot;labelOutlineThickness&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkVolumeProperty&quot;);const n={...e};e.getMTime=()=&gt;{let e,n=t.mtime;for(let r=0;r&lt;4;r++)1===t.componentData[r].colorChannels?t.componentData[r].grayTransferFunction&amp;&amp;(e=t.componentData[r].grayTransferFunction.getMTime(),n=n&gt;e?n:e):3===t.componentData[r].colorChannels&amp;&amp;t.componentData[r].rGBTransferFunction&amp;&amp;(e=t.componentData[r].rGBTransferFunction.getMTime(),n=n&gt;e?n:e),t.componentData[r].scalarOpacity&amp;&amp;(e=t.componentData[r].scalarOpacity.getMTime(),n=n&gt;e?n:e),t.componentData[r].gradientOpacity&amp;&amp;(t.componentData[r].disableGradientOpacity||(e=t.componentData[r].gradientOpacity.getMTime(),n=n&gt;e?n:e));return n},e.getColorChannels=e=&gt;e&lt;0||e&gt;3?(lb(&quot;Bad index - must be between 0 and 3&quot;),0):t.componentData[e].colorChannels,e.setGrayTransferFunction=(n=0,r=null)=&gt;{let o=!1;return t.componentData[n].grayTransferFunction!==r&amp;&amp;(t.componentData[n].grayTransferFunction=r,o=!0),1!==t.componentData[n].colorChannels&amp;&amp;(t.componentData[n].colorChannels=1,o=!0),o&amp;&amp;e.modified(),o},e.getGrayTransferFunction=(n=0)=&gt;(null===t.componentData[n].grayTransferFunction&amp;&amp;(t.componentData[n].grayTransferFunction=rb.newInstance(),t.componentData[n].grayTransferFunction.addPoint(0,0),t.componentData[n].grayTransferFunction.addPoint(1024,1),1!==t.componentData[n].colorChannels&amp;&amp;(t.componentData[n].colorChannels=1),e.modified()),t.componentData[n].grayTransferFunction),e.setRGBTransferFunction=(n=0,r=null)=&gt;{let o=!1;return t.componentData[n].rGBTransferFunction!==r&amp;&amp;(t.componentData[n].rGBTransferFunction=r,o=!0),3!==t.componentData[n].colorChannels&amp;&amp;(t.componentData[n].colorChannels=3,o=!0),o&amp;&amp;e.modified(),o},e.getRGBTransferFunction=(n=0)=&gt;(null===t.componentData[n].rGBTransferFunction&amp;&amp;(t.componentData[n].rGBTransferFunction=jy.newInstance(),t.componentData[n].rGBTransferFunction.addRGBPoint(0,0,0,0),t.componentData[n].rGBTransferFunction.addRGBPoint(1024,1,1,1),3!==t.componentData[n].colorChannels&amp;&amp;(t.componentData[n].colorChannels=3),e.modified()),t.componentData[n].rGBTransferFunction),e.setScalarOpacity=(n=0,r=null)=&gt;t.componentData[n].scalarOpacity!==r&amp;&amp;(t.componentData[n].scalarOpacity=r,e.modified(),!0),e.getScalarOpacity=(n=0)=&gt;(null===t.componentData[n].scalarOpacity&amp;&amp;(t.componentData[n].scalarOpacity=rb.newInstance(),t.componentData[n].scalarOpacity.addPoint(0,1),t.componentData[n].scalarOpacity.addPoint(1024,1),e.modified()),t.componentData[n].scalarOpacity),e.setComponentWeight=(n=0,r=1)=&gt;{if(n&lt;0||n&gt;=4)return lb(&quot;Invalid index&quot;),!1;const o=Math.min(1,Math.max(0,r));return t.componentData[n].componentWeight!==o&amp;&amp;(t.componentData[n].componentWeight=o,e.modified(),!0)},e.getComponentWeight=(e=0)=&gt;e&lt;0||e&gt;=4?(lb(&quot;Invalid index&quot;),0):t.componentData[e].componentWeight,e.setInterpolationTypeToNearest=()=&gt;e.setInterpolationType(ob.NEAREST),e.setInterpolationTypeToLinear=()=&gt;e.setInterpolationType(ob.LINEAR),e.setInterpolationTypeToFastLinear=()=&gt;e.setInterpolationType(ob.FAST_LINEAR),e.getInterpolationTypeAsString=()=&gt;sn.enumToString(ob,t.interpolationType),[&quot;useGradientOpacity&quot;,&quot;scalarOpacityUnitDistance&quot;,&quot;gradientOpacityMinimumValue&quot;,&quot;gradientOpacityMinimumOpacity&quot;,&quot;gradientOpacityMaximumValue&quot;,&quot;gradientOpacityMaximumOpacity&quot;,&quot;opacityMode&quot;,&quot;forceNearestInterpolation&quot;].forEach((n=&gt;{const r=sn.capitalize(n);e[`set${r}`]=(r,o)=&gt;t.componentData[r][`${n}`]!==o&amp;&amp;(t.componentData[r][`${n}`]=o,e.modified(),!0)})),[&quot;useGradientOpacity&quot;,&quot;scalarOpacityUnitDistance&quot;,&quot;gradientOpacityMinimumValue&quot;,&quot;gradientOpacityMinimumOpacity&quot;,&quot;gradientOpacityMaximumValue&quot;,&quot;gradientOpacityMaximumOpacity&quot;,&quot;opacityMode&quot;,&quot;forceNearestInterpolation&quot;].forEach((n=&gt;{const r=sn.capitalize(n);e[`get${r}`]=e=&gt;t.componentData[e][`${n}`]})),e.setAverageIPScalarRange=(t,n)=&gt;{console.warn(&quot;setAverageIPScalarRange is deprecated use setIpScalarRange&quot;),e.setIpScalarRange(t,n)},e.getFilterModeAsString=()=&gt;sn.enumToString(ib,t.filterMode),e.setFilterModeToOff=()=&gt;{e.setFilterMode(ib.OFF)},e.setFilterModeToNormalized=()=&gt;{e.setFilterMode(ib.NORMALIZED)},e.setFilterModeToRaw=()=&gt;{e.setFilterMode(ib.RAW)},e.setGlobalIlluminationReach=e=&gt;n.setGlobalIlluminationReach(Ra(e,0,1)),e.setVolumetricScatteringBlending=e=&gt;n.setVolumetricScatteringBlending(Ra(e,0,1)),e.setAnisotropy=e=&gt;n.setAnisotropy(Ra(e,-.99,.99)),e.setLAOKernelSize=e=&gt;n.setLAOKernelSize(Ro(Ra(e,1,32))),e.setLAOKernelRadius=e=&gt;n.setLAOKernelRadius(e&gt;=1?e:1)}(e,t)}var ub={newInstance:sn.newInstance(cb,&quot;vtkVolumeProperty&quot;),extend:cb,...mg};const db={mapper:null};function pb(e,t,n={}){Object.assign(t,db,n),ts.extend(e,t,n),t.boundsMTime={},sn.obj(t.boundsMTime),sn.setGet(e,t,[&quot;mapper&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkVolume&quot;),e.getVolumes=()=&gt;[e],e.makeProperty=ub.newInstance,e.getRedrawMTime=()=&gt;{let e=t.mtime;if(null!==t.mapper){let n=t.mapper.getMTime();e=n&gt;e?n:e,null!==t.mapper.getInput()&amp;&amp;(t.mapper.getInputAlgorithm().update(),n=t.mapper.getInput().getMTime(),e=n&gt;e?n:e)}return e}}(e,t)}var fb={newInstance:sn.newInstance(pb,&quot;vtkVolume&quot;),extend:pb};const{BlendMode:gb}=vg;const mb=[&quot;getAnisotropy&quot;,&quot;getComputeNormalFromOpacity&quot;,&quot;getFilterMode&quot;,&quot;getFilterModeAsString&quot;,&quot;getGlobalIlluminationReach&quot;,&quot;getIpScalarRange&quot;,&quot;getIpScalarRangeByReference&quot;,&quot;getLAOKernelRadius&quot;,&quot;getLAOKernelSize&quot;,&quot;getLocalAmbientOcclusion&quot;,&quot;getPreferSizeOverAccuracy&quot;,&quot;getVolumetricScatteringBlending&quot;,&quot;setAnisotropy&quot;,&quot;setAverageIPScalarRange&quot;,&quot;setComputeNormalFromOpacity&quot;,&quot;setFilterMode&quot;,&quot;setFilterModeToNormalized&quot;,&quot;setFilterModeToOff&quot;,&quot;setFilterModeToRaw&quot;,&quot;setGlobalIlluminationReach&quot;,&quot;setIpScalarRange&quot;,&quot;setIpScalarRangeFrom&quot;,&quot;setLAOKernelRadius&quot;,&quot;setLAOKernelSize&quot;,&quot;setLocalAmbientOcclusion&quot;,&quot;setPreferSizeOverAccuracy&quot;,&quot;setVolumetricScatteringBlending&quot;],hb={createRadonTransferFunction:function(e,t,n,r,o){let a=null;return o?(a=o,a.removeAllPoints()):a=rb.newInstance(),a.addPointLong(-1024,0,1,1),a.addPoint(e,t),a.addPoint(n,r),a}};function vb(e,t,n={}){Object.assign(t,(e=&gt;({bounds:[...Hi.INIT_BOUNDS],sampleDistance:1,imageSampleDistance:1,maximumSamplesPerRay:1e3,autoAdjustSampleDistances:!0,initialInteractionScale:1,interactionSampleDistanceFactor:1,blendMode:gb.COMPOSITE_BLEND,volumeShadowSamplingDistFactor:5,colorTextureWidth:1024,opacityTextureWidth:1024,labelOutlineTextureWidth:1024,...e}))(n)),Ls.extend(e,t,n),sn.setGet(e,t,[&quot;sampleDistance&quot;,&quot;imageSampleDistance&quot;,&quot;maximumSamplesPerRay&quot;,&quot;autoAdjustSampleDistances&quot;,&quot;initialInteractionScale&quot;,&quot;interactionSampleDistanceFactor&quot;,&quot;blendMode&quot;,&quot;volumeShadowSamplingDistFactor&quot;,&quot;colorTextureWidth&quot;,&quot;opacityTextureWidth&quot;,&quot;labelOutlineTextureWidth&quot;]),sn.event(e,t,&quot;lightingActivated&quot;),function(e,t){t.classHierarchy.push(&quot;vtkVolumeMapper&quot;);const n={...e};e.computeBounds=()=&gt;{const n=e.getInputData();n?(t.static||e.update(),Hi.setBounds(t.bounds,n.getBounds())):Hi.reset(t.bounds)},e.setBlendModeToComposite=()=&gt;{e.setBlendMode(gb.COMPOSITE_BLEND)},e.setBlendModeToMaximumIntensity=()=&gt;{e.setBlendMode(gb.MAXIMUM_INTENSITY_BLEND)},e.setBlendModeToMinimumIntensity=()=&gt;{e.setBlendMode(gb.MINIMUM_INTENSITY_BLEND)},e.setBlendModeToAverageIntensity=()=&gt;{e.setBlendMode(gb.AVERAGE_INTENSITY_BLEND)},e.setBlendModeToAdditiveIntensity=()=&gt;{e.setBlendMode(gb.ADDITIVE_INTENSITY_BLEND)},e.setBlendModeToRadonTransform=()=&gt;{e.setBlendMode(gb.RADON_TRANSFORM_BLEND)},e.getBlendModeAsString=()=&gt;sn.enumToString(gb,t.blendMode),e.setVolumeShadowSamplingDistFactor=e=&gt;n.setVolumeShadowSamplingDistFactor(e&gt;=1?e:1),mb.forEach((t=&gt;{e[t]=()=&gt;{throw new Error(`The method &quot;volumeMapper.${t}()&quot; doesn&#x27;t exist anymore. It is a rendering property that has been moved to the volume property. Replace your code with:\\nvolumeActor.getProperty().${t}()\\n`)}}))}(e,t)}var Tb={newInstance:sn.newInstance(vb,&quot;vtkVolumeMapper&quot;),extend:vb,...hb};const{InterpolationType:xb}=jf,{vtkErrorMacro:yb}=sn;function bb(e,t,n={}){if(Object.assign(t,(e=&gt;({independentComponents:!1,interpolationType:xb.LINEAR,colorWindow:255,colorLevel:127.5,ambient:1,diffuse:0,opacity:1,useLookupTableScalarRange:!1,useLabelOutline:!1,labelOutlineThickness:[1],labelOutlineOpacity:1,updatedExtents:[],...e}))(n)),sn.obj(e,t),!t.componentData){t.componentData=[];for(let e=0;e&lt;4;e++)t.componentData.push({rGBTransferFunction:null,piecewiseFunction:null,componentWeight:1})}sn.setGet(e,t,[&quot;independentComponents&quot;,&quot;interpolationType&quot;,&quot;colorWindow&quot;,&quot;colorLevel&quot;,&quot;ambient&quot;,&quot;diffuse&quot;,&quot;opacity&quot;,&quot;useLookupTableScalarRange&quot;,&quot;useLabelOutline&quot;,&quot;labelOutlineOpacity&quot;,&quot;updatedExtents&quot;]),sn.setGetArray(e,t,[&quot;labelOutlineThickness&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkImageProperty&quot;),e.getMTime=()=&gt;{let e,n=t.mtime;for(let r=0;r&lt;4;r++)t.componentData[r].rGBTransferFunction&amp;&amp;(e=t.componentData[r].rGBTransferFunction.getMTime(),n=n&gt;e?n:e),t.componentData[r].piecewiseFunction&amp;&amp;(e=t.componentData[r].piecewiseFunction.getMTime(),n=n&gt;e?n:e);return n},e.setRGBTransferFunction=(n=0,r=null)=&gt;{let o=n,a=r;return Number.isInteger(n)||(a=n,o=0),t.componentData[o].rGBTransferFunction!==a&amp;&amp;(t.componentData[o].rGBTransferFunction=a,e.modified(),!0)},e.getRGBTransferFunction=(e=0)=&gt;t.componentData[e].rGBTransferFunction,e.setPiecewiseFunction=(n=0,r=null)=&gt;{let o=n,a=r;return Number.isInteger(n)||(a=n,o=0),t.componentData[o].piecewiseFunction!==a&amp;&amp;(t.componentData[o].piecewiseFunction=a,e.modified(),!0)},e.getPiecewiseFunction=(e=0)=&gt;t.componentData[e].piecewiseFunction,e.setScalarOpacity=(t=0,n=null)=&gt;{let r=t,o=n;return Number.isInteger(t)||(o=t,r=0),e.setPiecewiseFunction(r,o)},e.getScalarOpacity=(t=0)=&gt;e.getPiecewiseFunction(t),e.setComponentWeight=(n=0,r=1)=&gt;{if(n&lt;0||n&gt;=4)return yb(&quot;Invalid index&quot;),!1;const o=Math.min(1,Math.max(0,r));return t.componentData[n].componentWeight!==o&amp;&amp;(t.componentData[n].componentWeight=o,e.modified(),!0)},e.getComponentWeight=(e=0)=&gt;e&lt;0||e&gt;=4?(yb(&quot;Invalid index&quot;),0):t.componentData[e].componentWeight,e.setInterpolationTypeToNearest=()=&gt;e.setInterpolationType(xb.NEAREST),e.setInterpolationTypeToLinear=()=&gt;e.setInterpolationType(xb.LINEAR),e.getInterpolationTypeAsString=()=&gt;sn.enumToString(xb,t.interpolationType)}(e,t)}var Ab={newInstance:sn.newInstance(bb,&quot;vtkImageProperty&quot;),extend:bb};const Cb={mapper:null,forceOpaque:!1,forceTranslucent:!1};function Sb(e,t,n={}){Object.assign(t,Cb,n),ts.extend(e,t,n),t.boundsMTime={},sn.obj(t.boundsMTime),sn.setGet(e,t,[&quot;mapper&quot;,&quot;forceOpaque&quot;,&quot;forceTranslucent&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkImageSlice&quot;),e.getActors=()=&gt;e,e.getImages=()=&gt;e,e.getIsOpaque=()=&gt;{if(t.forceOpaque)return!0;if(t.forceTranslucent)return!1;t.properties[0]||e.getProperty();let n=t.properties[0].getOpacity()&gt;=1;return n=n&amp;&amp;(!t.mapper||t.mapper.getIsOpaque()),n},e.hasTranslucentPolygonalGeometry=()=&gt;!1,e.makeProperty=Ab.newInstance,e.getBoundsForSlice=(n,r)=&gt;{const o=t.mapper.getBoundsForSlice(n,r);if(!Hi.isValid(o))return o;e.computeMatrix();const a=new Float64Array(16);return y(a,t.matrix),Hi.transformBounds(o,a)},e.getMinXBound=()=&gt;e.getBoundsByReference()[0],e.getMaxXBound=()=&gt;e.getBoundsByReference()[1],e.getMinYBound=()=&gt;e.getBoundsByReference()[2],e.getMaxYBound=()=&gt;e.getBoundsByReference()[3],e.getMinZBound=()=&gt;e.getBoundsByReference()[4],e.getMaxZBound=()=&gt;e.getBoundsByReference()[5],e.getRedrawMTime=()=&gt;{let e=t.mtime;if(null!==t.mapper){let n=t.mapper.getMTime();e=n&gt;e?n:e,null!==t.mapper.getInput()&amp;&amp;(t.mapper.getInputAlgorithm().update(),n=t.mapper.getInput().getMTime(),e=n&gt;e?n:e)}return t.properties.forEach((t=&gt;{e=Math.max(e,t.getMTime());const n=t.getRGBTransferFunction();null!==n&amp;&amp;(e=Math.max(e,n.getMTime()))})),e},e.getSupportsSelection=()=&gt;!!t.mapper&amp;&amp;t.mapper.getSupportsSelection()}(e,t)}var Pb={newInstance:sn.newInstance(Sb,&quot;vtkImageSlice&quot;),extend:Sb};const wb={slice:0,customDisplayExtent:[0,0,0,0,0,0],useCustomExtents:!1,backgroundColor:[0,0,0,1],colorTextureWidth:1024,opacityTextureWidth:1024,labelOutlineTextureWidth:1024};var Ib={extend:function(e,t,n={}){Object.assign(t,wb,n),Ls.extend(e,t,n),sn.setGet(e,t,[&quot;slice&quot;,&quot;useCustomExtents&quot;,&quot;colorTextureWidth&quot;,&quot;opacityTextureWidth&quot;,&quot;labelOutlineTextureWidth&quot;]),sn.setGetArray(e,t,[&quot;customDisplayExtent&quot;],6),sn.setGetArray(e,t,[&quot;backgroundColor&quot;],4),function(e,t){t.classHierarchy.push(&quot;vtkAbstractImageMapper&quot;),e.getIsOpaque=()=&gt;!0,e.getCurrentImage=()=&gt;null,e.getBoundsForSlice=()=&gt;(sn.vtkErrorMacro(&quot;vtkAbstractImageMapper.getBoundsForSlice - NOT IMPLEMENTED&quot;),Ga())}(e,t)}};function Ob(e,t,n){const r=n.getCurrentImage(),o=r.getExtent(),a=[o[0],o[2],o[4]],{ijkMode:i}=n.getClosestIJKAxis();let s=n.isA(&quot;vtkImageArrayMapper&quot;)?n.getSubSlice():n.getSlice();i!==n.getSlicingMode()&amp;&amp;(s=n.getSliceAtPosition(s)),a[i]+=s;const l=[0,0,0];r.indexToWorld(a,l),a[i]+=1;const c=[0,0,0];r.indexToWorld(a,c),c[0]-=l[0],c[1]-=l[1],c[2]-=l[2],te(c,c);const u=ai.intersectWithLine(e,t,l,c);if(u.intersection){const e=u.x,t=[0,0,0];return r.worldToIndex(e,t),{t:u.t,absoluteIJK:t}}return null}const{staticOffsetAPI:Rb,otherStaticMethods:Mb}=Ll,{SlicingMode:Db}=Qf;function Eb(e,t){function n(){let n;switch(t.slicingMode){case Db.X:n=0;break;case Db.Y:n=1;break;case Db.Z:n=2;break;default:return void(t.closestIJKAxis={ijkMode:t.slicingMode,flip:!1})}const r=Ua(e.getCurrentImage().getDirection());let o=0;for(;o&lt;3&amp;&amp;0===r[n+3*o];++o);const a=r[n+3*o]&lt;0;t.closestIJKAxis={ijkMode:o,flip:a}}t.classHierarchy.push(&quot;vtkImageMapper&quot;),e.getSliceAtPosition=n=&gt;{const r=e.getCurrentImage();let o;if(3===n.length)o=n;else if(Number.isFinite(n)){const e=r.getBounds();switch(t.slicingMode){case Db.X:o=[n,(e[3]+e[2])/2,(e[5]+e[4])/2];break;case Db.Y:o=[(e[1]+e[0])/2,n,(e[5]+e[4])/2];break;case Db.Z:o=[(e[1]+e[0])/2,(e[3]+e[2])/2,n]}}const a=[0,0,0];r.worldToIndex(o,a);const i=r.getExtent(),{ijkMode:s}=e.getClosestIJKAxis();let l=0;switch(s){case Db.I:l=Ra(a[0],i[0],i[1]);break;case Db.J:l=Ra(a[1],i[2],i[3]);break;case Db.K:l=Ra(a[2],i[4],i[5]);break;default:return 0}return l},e.setSliceFromCamera=n=&gt;{const r=n.getFocalPoint();switch(t.slicingMode){case Db.I:case Db.J:case Db.K:{const t=e.getSliceAtPosition(r);e.setSlice(t)}break;case Db.X:e.setSlice(r[0]);break;case Db.Y:e.setSlice(r[1]);break;case Db.Z:e.setSlice(r[2])}},e.setXSlice=t=&gt;{e.setSlicingMode(Db.X),e.setSlice(t)},e.setYSlice=t=&gt;{e.setSlicingMode(Db.Y),e.setSlice(t)},e.setZSlice=t=&gt;{e.setSlicingMode(Db.Z),e.setSlice(t)},e.setISlice=t=&gt;{e.setSlicingMode(Db.I),e.setSlice(t)},e.setJSlice=t=&gt;{e.setSlicingMode(Db.J),e.setSlice(t)},e.setKSlice=t=&gt;{e.setSlicingMode(Db.K),e.setSlice(t)},e.getSlicingModeNormal=()=&gt;{const n=[0,0,0],r=e.getCurrentImage().getDirection();switch(t.slicingMode){case Db.X:n[0]=1;break;case Db.Y:n[1]=1;break;case Db.Z:n[2]=1;break;case Db.I:$o(r,[1,0,0],n);break;case Db.J:$o(r,[0,1,0],n);break;case Db.K:$o(r,[0,0,1],n)}return n},e.setSlicingMode=r=&gt;{t.slicingMode!==r&amp;&amp;(t.slicingMode=r,e.getCurrentImage()&amp;&amp;n(),e.modified())},e.getClosestIJKAxis=()=&gt;(void 0!==t.closestIJKAxis&amp;&amp;t.closestIJKAxis.ijkMode!==Db.NONE||!e.getCurrentImage()||n(),t.closestIJKAxis),e.computeBounds=()=&gt;{const n=e.getCurrentImage();if(!n)return void Hi.reset(t.bounds);if(!t.useCustomExtents)return void Hi.setBounds(t.bounds,n.getBounds());const r=t.customDisplayExtent.slice(),{ijkMode:o}=e.getClosestIJKAxis();let a=t.slice;switch(o!==t.slicingMode&amp;&amp;(a=e.getSliceAtPosition(t.slice)),o){case Db.I:r[0]=a,r[1]=a;break;case Db.J:r[2]=a,r[3]=a;break;case Db.K:r[4]=a,r[5]=a}Hi.setBounds(t.bounds,n.extentToBounds(r))},e.getBoundsForSlice=(n=t.slice,r=0)=&gt;{const o=e.getCurrentImage();if(!o)return Ga();const a=o.getSpatialExtent(),{ijkMode:i}=e.getClosestIJKAxis();let s=n;switch(i!==t.slicingMode&amp;&amp;(s=e.getSliceAtPosition(n)),i){case Db.I:a[0]=s-r,a[1]=s+r;break;case Db.J:a[2]=s-r,a[3]=s+r;break;case Db.K:a[4]=s-r,a[5]=s+r}return o.extentToBounds(a)},e.intersectWithLineForPointPicking=(t,n)=&gt;function(e,t,n){const r=Ob(e,t,n);if(r){const e=n.getCurrentImage().getExtent(),t=[Math.round(r.absoluteIJK[0]),Math.round(r.absoluteIJK[1]),Math.round(r.absoluteIJK[2])];return t[0]&lt;e[0]||t[0]&gt;e[1]||t[1]&lt;e[2]||t[1]&gt;e[3]||t[2]&lt;e[4]||t[2]&gt;e[5]?null:{t:r.t,ijk:t}}return null}(t,n,e),e.intersectWithLineForCellPicking=(t,n)=&gt;function(e,t,n){const r=Ob(e,t,n);if(r){const e=n.getCurrentImage().getExtent(),t=r.absoluteIJK,o=[Math.floor(t[0]),Math.floor(t[1]),Math.floor(t[2])];if(o[0]&lt;e[0]||o[0]&gt;e[1]-1||o[1]&lt;e[2]||o[1]&gt;e[3]-1||o[2]&lt;e[4]||o[2]&gt;(e[5]?e[5]-1:e[5]))return null;const a=[t[0]-o[0],t[1]-o[1],t[2]-o[2]];return{t:r.t,ijk:o,pCoords:a}}return null}(t,n,e),e.getCurrentImage=()=&gt;e.getInputData()}const Vb={slicingMode:Db.NONE,closestIJKAxis:{ijkMode:Db.NONE,flip:!1},renderToRectangle:!1,sliceAtFocalPoint:!1,preferSizeOverAccuracy:!1};function Lb(e,t,n={}){Object.assign(t,Vb,n),Ib.extend(e,t,n),sn.get(e,t,[&quot;slicingMode&quot;]),sn.setGet(e,t,[&quot;closestIJKAxis&quot;,&quot;renderToRectangle&quot;,&quot;sliceAtFocalPoint&quot;,&quot;preferSizeOverAccuracy&quot;]),Ll.implementCoincidentTopologyMethods(e,t),Eb(e,t)}var Bb={newInstance:sn.newInstance(Lb,&quot;vtkImageMapper&quot;),extend:Lb,...Rb,...Mb,...Qf};const{vtkErrorMacro:Fb}=sn;function Nb(e,t,n,r){e.set(function(e,t){let n=0;return e.map(((e,r)=&gt;r===n?(n+=e+1,e):e+t))}(t,n),r)}const kb={outputPointsPrecision:Us.DEFAULT};function Gb(e,t,n={}){Object.assign(t,kb,n),sn.setGet(e,t,[&quot;outputPointsPrecision&quot;]),sn.obj(e,t),sn.algo(e,t,1,1),function(e,t){t.classHierarchy.push(&quot;vtkAppendPolyData&quot;),e.requestData=(n,r)=&gt;{const o=e.getNumberOfInputPorts();if(!o)return void Fb(&quot;No input specified.&quot;);if(1===o)return void(r[0]=n[0]);const a=r[0]&amp;&amp;n[0]!==r[0]?r[0].initialize():Ru.newInstance();let i=0,s=0,l=1,c=1,u=0,d=0,p=0,f=0,g=!0,m=!0,h=!0;for(let e=0;e&lt;o;e++){const t=n[e];if(!t)continue;const r=t.getPoints().getNumberOfPoints();i+=r,u+=t.getVerts().getNumberOfValues(),d+=t.getLines().getNumberOfValues(),p+=t.getStrips().getNumberOfValues(),f+=t.getPolys().getNumberOfValues(),r&amp;&amp;(c&amp;&amp;(c=0,s=t.getPoints().getDataType()),l=t.getPoints().getDataType(),s=s&gt;l?s:l);const o=t.getPointData();o?(g=g&amp;&amp;null!==o.getNormals(),m=m&amp;&amp;null!==o.getTCoords(),h=h&amp;&amp;null!==o.getScalars()):(g=!1,m=!1,h=!1)}t.outputPointsPrecision===Us.SINGLE?s=ms.FLOAT:t.outputPointsPrecision===Us.DOUBLE&amp;&amp;(s=ms.DOUBLE);const v=lc.newInstance({dataType:s});v.setNumberOfPoints(i);const T=v.getData(),x=new Uint32Array(u),y=new Uint32Array(d),b=new Uint32Array(p),A=new Uint32Array(f);let C=null,S=null,P=null;const w=n[o-1];if(g){const e=w.getPointData().getNormals();C=Is.newInstance({numberOfComponents:3,numberOfTuples:i,size:3*i,dataType:e.getDataType(),name:e.getName()})}if(m){const e=w.getPointData().getTCoords();S=Is.newInstance({numberOfComponents:2,numberOfTuples:i,size:2*i,dataType:e.getDataType(),name:e.getName()})}if(h){const e=w.getPointData().getScalars();P=Is.newInstance({numberOfComponents:e.getNumberOfComponents(),numberOfTuples:i,size:i*e.getNumberOfComponents(),dataType:e.getDataType(),name:e.getName()})}i=0,u=0,d=0,p=0,f=0;for(let e=0;e&lt;o;e++){const t=n[e];T.set(t.getPoints().getData(),3*i),Nb(x,t.getVerts().getData(),i,u),u+=t.getVerts().getNumberOfValues(),Nb(y,t.getLines().getData(),i,d),d+=t.getLines().getNumberOfValues(),Nb(b,t.getStrips().getData(),i,p),p+=t.getStrips().getNumberOfValues(),Nb(A,t.getPolys().getData(),i,f),f+=t.getPolys().getNumberOfValues();const r=t.getPointData();if(g){const e=r.getNormals();C.getData().set(e.getData(),3*i)}if(m){const e=r.getTCoords();S.getData().set(e.getData(),2*i)}if(h){const e=r.getScalars();P.getData().set(e.getData(),i*P.getNumberOfComponents())}i+=t.getPoints().getNumberOfPoints()}a.setPoints(v),a.getVerts().setData(x),a.getLines().setData(y),a.getStrips().setData(b),a.getPolys().setData(A),C&amp;&amp;a.getPointData().setNormals(C),S&amp;&amp;a.getPointData().setTCoords(S),P&amp;&amp;a.getPointData().setScalars(P),r[0]=a}}(e,t)}var Ub={newInstance:sn.newInstance(Gb,&quot;vtkAppendPolyData&quot;),extend:Gb};const _b={height:1,radius:.5,resolution:6,center:[0,0,0],direction:[1,0,0],capping:!0,pointType:&quot;Float64Array&quot;};function Kb(e,t,n={}){Object.assign(t,_b,n),sn.obj(e,t),sn.setGet(e,t,[&quot;height&quot;,&quot;radius&quot;,&quot;resolution&quot;,&quot;capping&quot;]),sn.setGetArray(e,t,[&quot;center&quot;,&quot;direction&quot;],3),sn.algo(e,t,0,1),function(e,t){t.classHierarchy.push(&quot;vtkConeSource&quot;),e.requestData=(e,n)=&gt;{const r=2*Math.PI/t.resolution,o=-t.height/2,a=t.resolution+1,i=4*t.resolution+1+t.resolution;let s=0;const l=sn.newTypedArray(t.pointType,3*a);let c=0;const u=new Uint32Array(i);l[0]=t.height/2,l[1]=0,l[2]=0,t.capping&amp;&amp;(u[c++]=t.resolution);for(let e=0;e&lt;t.resolution;e++)s++,l[3*s+0]=o,l[3*s+1]=t.radius*Math.cos(e*r),l[3*s+2]=t.radius*Math.sin(e*r),t.capping&amp;&amp;(u[t.resolution-c+++1]=s);for(let e=0;e&lt;t.resolution;e++)u[c++]=3,u[c++]=0,u[c++]=e+1,u[c++]=e+2&gt;t.resolution?1:e+2;Of.buildFromRadian().translate(...t.center).rotateFromDirections([1,0,0],t.direction).apply(l);const d=n[0]?.initialize()||Ru.newInstance();d.getPoints().setData(l,3),d.getPolys().setData(u,1),n[0]=d}}(e,t)}var zb={newInstance:sn.newInstance(Kb,&quot;vtkConeSource&quot;),extend:Kb};const Wb={height:1,initAngle:0,radius:1,resolution:6,center:[0,0,0],direction:[0,1,0],capping:!0,pointType:&quot;Float64Array&quot;};function Hb(e,t,n={}){Object.assign(t,Wb,n),sn.obj(e,t),sn.setGet(e,t,[&quot;height&quot;,&quot;initAngle&quot;,&quot;otherRadius&quot;,&quot;radius&quot;,&quot;resolution&quot;,&quot;capping&quot;]),sn.setGetArray(e,t,[&quot;center&quot;,&quot;direction&quot;],3),sn.algo(e,t,0,1),function(e,t){t.classHierarchy.push(&quot;vtkCylinderSource&quot;),e.requestData=(e,n)=&gt;{const r=2*Math.PI/t.resolution;let o=2*t.resolution,a=5*t.resolution;t.capping&amp;&amp;(o=4*t.resolution,a=7*t.resolution+2);const i=sn.newTypedArray(t.pointType,3*o);let s=0;const l=new Uint32Array(a),c=new Float32Array(3*o),u=Is.newInstance({numberOfComponents:3,values:c,name:&quot;Normals&quot;}),d=new Float32Array(2*o),p=Is.newInstance({numberOfComponents:2,values:d,name:&quot;TCoords&quot;}),f=[0,0,0],g=[0,0,0],m=[0,0,0],h=[0,0,0],v=[0,0],T=[0,0],x=null==t.otherRadius?t.radius:t.otherRadius;for(let e=0;e&lt;t.resolution;e++){f[0]=Math.cos(e*r+t.initAngle),g[0]=f[0],m[0]=t.radius*f[0]+t.center[0],h[0]=m[0],v[0]=Math.abs(2*e/t.resolution-1),T[0]=v[0],m[1]=.5*t.height+t.center[1],h[1]=-.5*t.height+t.center[1],v[1]=0,T[1]=1,f[2]=-Math.sin(e*r+t.initAngle),g[2]=f[2],m[2]=x*f[2]+t.center[2],h[2]=m[2];const n=2*e;for(let e=0;e&lt;3;e++)c[3*n+e]=f[e],c[3*(n+1)+e]=g[e],i[3*n+e]=m[e],i[3*(n+1)+e]=h[e],e&lt;2&amp;&amp;(d[2*n+e]=v[e],d[2*(n+1)+e]=T[e])}for(let e=0;e&lt;t.resolution;e++){l[s++]=4,l[s++]=2*e,l[s++]=2*e+1;const n=(2*e+3)%(2*t.resolution);l[s++]=n,l[s++]=n-1}if(t.capping){for(let e=0;e&lt;t.resolution;e++){m[0]=t.radius*Math.cos(e*r+t.initAngle),h[0]=m[0],v[0]=m[0],T[0]=m[0],m[0]+=t.center[0],h[0]+=t.center[0],f[1]=1,g[1]=-1,m[1]=.5*t.height+t.center[1],h[1]=-.5*t.height+t.center[1],m[2]=-x*Math.sin(e*r+t.initAngle),h[2]=m[2],v[1]=m[2],T[1]=m[2],m[2]+=t.center[2],h[2]+=t.center[2];const n=2*t.resolution+e,o=3*t.resolution+t.resolution-e-1;for(let e=0;e&lt;3;e++)c[3*n+e]=f[e],c[3*o+e]=g[e],i[3*n+e]=m[e],i[3*o+e]=h[e],e&lt;2&amp;&amp;(d[2*n+e]=v[e],d[2*o+e]=T[e])}l[s++]=t.resolution;for(let e=0;e&lt;t.resolution;e++)l[s++]=2*t.resolution+e;l[s++]=t.resolution;for(let e=0;e&lt;t.resolution;e++)l[s++]=3*t.resolution+e}Of.buildFromRadian().translate(...t.center).rotateFromDirections([0,1,0],t.direction).translate(...t.center.map((e=&gt;-1*e))).apply(i);const y=n[0]?.initialize()||Ru.newInstance();y.getPoints().setData(i,3),y.getPolys().setData(l,1),y.getPointData().setNormals(u),y.getPointData().setTCoords(p),n[0]=y}}(e,t)}var jb={newInstance:sn.newInstance(Hb,&quot;vtkCylinderSource&quot;),extend:Hb};const Xb={tipResolution:6,tipRadius:.1,tipLength:.35,shaftResolution:6,shaftRadius:.03,invert:!1,direction:[1,0,0],pointType:&quot;Float64Array&quot;};function qb(e,t,n={}){Object.assign(t,Xb,n),sn.obj(e,t),sn.setGet(e,t,[&quot;tipResolution&quot;,&quot;tipRadius&quot;,&quot;tipLength&quot;,&quot;shaftResolution&quot;,&quot;shaftRadius&quot;,&quot;invert&quot;]),sn.setGetArray(e,t,[&quot;direction&quot;],3),sn.algo(e,t,0,1),function(e,t){t.classHierarchy.push(&quot;vtkArrowSource&quot;),e.requestData=(e,n)=&gt;{const r=jb.newInstance({capping:!0});r.setResolution(t.shaftResolution),r.setRadius(t.shaftRadius),r.setHeight(1-t.tipLength),r.setCenter(0,.5*(1-t.tipLength),0);const o=r.getOutputData(),a=o.getPoints().getData(),i=o.getPointData().getNormals().getData();Of.buildFromDegree().rotateZ(-90).apply(a).apply(i);const s=zb.newInstance();s.setResolution(t.tipResolution),s.setHeight(t.tipLength),s.setRadius(t.tipRadius);const l=s.getOutputData(),c=l.getPoints().getData();Of.buildFromRadian().translate(1-.5*t.tipLength,0,0).apply(c);const u=Ub.newInstance();u.setInputData(o),u.addInputData(l);const d=u.getOutputData(),p=d.getPoints().getData();Of.buildFromRadian().translate(.5*t.tipLength-.5,0,0).apply(p),t.invert?(Of.buildFromRadian().rotateFromDirections([1,0,0],t.direction).scale(-1,-1,-1).apply(p),n[0]=d):(Of.buildFromRadian().rotateFromDirections([1,0,0],t.direction).scale(1,1,1).apply(p),n[0]=u.getOutputData())}}(e,t)}var Yb={newInstance:sn.newInstance(qb,&quot;vtkArrowSource&quot;),extend:qb};function Jb(e){const t=e.getPoints().getBounds(),n=[.5*-(t[0]+t[1]),.5*-(t[2]+t[3]),.5*-(t[4]+t[5])];Of.buildFromDegree().translate(...n).apply(e.getPoints().getData())}function Zb(e,t,n=!1){const r=e.getPoints().getBounds(),o=[0,0,0];o[t]=n?-r[2*t+1]:-r[2*t],Of.buildFromDegree().translate(...o).apply(e.getPoints().getData())}function Qb(e,t,n,r){const o=e.getPoints().getData().length,a=new Uint8ClampedArray(o);let i=0;for(;i&lt;o;)a[i++]=t,a[i++]=n,a[i++]=r;e.getPointData().setScalars(Is.newInstance({name:&quot;color&quot;,numberOfComponents:3,values:a}))}function $b(e,t,n={}){fs.extend(e,t,function(e){return{config:{recenter:!0,tipResolution:60,tipRadius:.1,tipLength:.2,shaftResolution:60,shaftRadius:.03,invert:!1,...e?.config},xConfig:{color:[255,0,0],invert:!1,...e?.xConfig},yConfig:{color:[255,255,0],invert:!1,...e?.yConfig},zConfig:{color:[0,128,0],invert:!1,...e?.zConfig}}}(n)),sn.setGet(e,t,[&quot;config&quot;,&quot;xConfig&quot;,&quot;yConfig&quot;,&quot;zConfig&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkAxesActor&quot;);const n=Ql.newInstance();e.setMapper(n),e.update=()=&gt;{let e={...t.config,...t.xConfig};const r=Yb.newInstance({direction:[1,0,0],...e}).getOutputData();t.config.recenter?Jb(r):Zb(r,0,e.invert),Qb(r,...e.color),e={...t.config,...t.yConfig};const o=Yb.newInstance({direction:[0,1,0],...e}).getOutputData();t.config.recenter?Jb(o):Zb(o,1,e.invert),Qb(o,...e.color),e={...t.config,...t.zConfig};const a=Yb.newInstance({direction:[0,0,1],...e}).getOutputData();t.config.recenter?Jb(a):Zb(a,2,e.invert),Qb(a,...e.color);const i=Ub.newInstance();i.setInputData(r),i.addInputData(o),i.addInputData(a),n.setInputConnection(i.getOutputPort())},e.update();const r=sn.debounce(e.update,0);e.setXAxisColor=t=&gt;e.setXConfig({...e.getXConfig(),color:t}),e.setYAxisColor=t=&gt;e.setYConfig({...e.getYConfig(),color:t}),e.setZAxisColor=t=&gt;e.setZConfig({...e.getZConfig(),color:t}),e.getXAxisColor=()=&gt;t.getXConfig().color,e.getYAxisColor=()=&gt;t.getYConfig().color,e.getZAxisColor=()=&gt;t.getZConfig().color,t._onConfigChanged=r,t._onXConfigChanged=r,t._onYConfigChanged=r,t._onZConfigChanged=r}(e,t)}var eA={newInstance:sn.newInstance($b,&quot;vtkAxesActor&quot;),extend:$b};const tA=&quot;resetcamera&quot;,nA=&quot;orientation&quot;,rA={MODE_RESET_CAMERA:tA,MODE_ORIENTATION:nA,MODE_SAME:&quot;same&quot;};function oA(e,t){t.classHierarchy.push(&quot;vtkCameraSynchronizer&quot;);const n=new Float64Array(9),r=new Float64Array(3),o=[];function a(){for(;o.length;)o.pop().unsubscribe();if(!t.srcRenderer||!t.dstRenderer)return;const n=t.srcRenderer.getActiveCamera(),r=t.srcRenderer.getRenderWindow().getInteractor();o.push(n.onModified((()=&gt;{r.isAnimating()||e.update()}))),o.push(r.onAnimation(e.update)),o.push(r.onEndAnimation(e.update))}t._onSrcRendererChanged=a,t._onDstRendererChanged=a,e.update=()=&gt;{if(!t.active||!t.srcRenderer||!t.dstRenderer)return;const e=t.srcRenderer.getActiveCamera(),o=t.dstRenderer.getActiveCamera(),a=function(e,t,r){return(n[0]!==e[0]||n[1]!==e[1]||n[2]!==e[2]||n[3]!==t[0]||n[4]!==t[1]||n[5]!==t[2]||n[6]!==r[0]||n[7]!==r[1]||n[8]!==r[2])&amp;&amp;(n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=t[0],n[4]=t[1],n[5]=t[2],n[6]=r[0],n[7]=r[1],n[8]=r[2],n)}(e.getReferenceByName(&quot;position&quot;),e.getReferenceByName(&quot;focalPoint&quot;),e.getReferenceByName(&quot;viewUp&quot;));a&amp;&amp;(t.mode===nA?(r[0]=a[0]-a[3],r[1]=a[1]-a[4],r[2]=a[2]-a[5],jo(r),o.setPosition(t.focalPoint[0]+t.distance*r[0],t.focalPoint[1]+t.distance*r[1],t.focalPoint[2]+t.distance*r[2]),o.setFocalPoint(t.focalPoint[0],t.focalPoint[1],t.focalPoint[2]),o.setViewUp(a[6],a[7],a[8])):(o.setPosition(a[0],a[1],a[2]),o.setFocalPoint(a[3],a[4],a[5]),o.setViewUp(a[6],a[7],a[8])),t.mode===tA&amp;&amp;t.dstRenderer.resetCamera())},e.delete=qt((()=&gt;e.setSrcRenderer(null)),e.delete),a()}const aA={mode:nA,focalPoint:[0,0,0],distance:6.8,active:!0};function iA(e,t,n={}){Object.assign(t,aA,n),Vt(e,t),Gt(e,t,[&quot;mode&quot;,&quot;active&quot;,&quot;srcRenderer&quot;,&quot;dstRenderer&quot;,&quot;distance&quot;]),Kt(e,t,[&quot;focalPoint&quot;],3,0),oA(e,t)}var sA={newInstance:Xt(iA,&quot;vtkCameraSynchronizer&quot;),extend:iA,SynchronizationMode:rA};const lA={};const cA={CameraSync:class{constructor(e,t){this.ctx=e,this.behavior=sA.newInstance(this.getProperties(t)),this.behavior.update()}getProperties({actorBounds:e,srcRenderer:t,dstRenderer:n}){return{distance:3.4*Math.max(e[1]-e[0],e[3]-e[2],e[5]-e[4]),focalPoint:[.5*(e[0]+e[1]),.5*(e[2]+e[3]),.5*(e[4]+e[5])],mode:sA.SynchronizationMode.MODE_ORIENTATION,srcRenderer:this.ctx.getInstance(t),dstRenderer:this.ctx.getInstance(n)}}update(e){this.behavior.set(this.getProperties(e)),this.behavior.update()}delete(){this.behavior.delete()}}};var uA={applyBehaviors:function(e,t,n){const r=e.get(&quot;synchronizedViewId&quot;).synchronizedViewId;if(!t.behaviors||!r)return;lA[r]||(lA[r]={});const o=lA[r];if(t.behaviors.autoOrientation){const t=e.getRenderers();if(!o.autoOrientationAxes&amp;&amp;2===t.length){let e=null,n=null;for(let r=0;r&lt;t.length;r++){const o=t[r];o.getInteractive()?e=o:n=o}e&amp;&amp;n&amp;&amp;(o.autoOrientationAxes=sA.newInstance({srcRenderer:e,dstRenderer:n}))}o.autoOrientationAxes&amp;&amp;2!==t.length&amp;&amp;(o.autoOrientationAxes.delete(),delete o.autoOrientationAxes)}const a=Object.keys(t.behaviors),i=Object.keys(o);for(let e=0;e&lt;a.length;e++){const r=a[e];if(o[r])o[r].update(t.behaviors[r]);else{const e=t.behaviors[r];cA[e.type]?o[r]=new cA[e.type](n,e):console.log(&quot;No mapping for&quot;,e)}}for(let e=0;e&lt;i.length;e++){const n=a[e];t.behaviors[n]||(o[n].delete(),delete o[n])}}};const dA={},pA=/instance:\\${([^}]+)}/,fA={},gA=[],mA={},hA={vtkPoints:lc,vtkCellArray:oc,vtkDataArray:Is};function vA(e){return e.map((e=&gt;pA.exec(e))).filter((e=&gt;e)).map((e=&gt;e[1]))}function TA(e,t=[]){return e.dependencies&amp;&amp;e.dependencies.forEach((e=&gt;{t.push(e.id),TA(e,t)})),t}function xA(e,t,n,r){if(!t)return Promise.reject(new Error(&quot;No instance provided.&quot;));const o=dA[e];return o&amp;&amp;o.update?o.update(t,n,r):Promise.reject(new Error(`No updater for ${e}`))}function yA(e,t={}){const n=dA[e];return n&amp;&amp;n.build?n.build(t):(console.log(&quot;No builder for&quot;,e),null)}function bA(){Object.keys(dA).forEach((e=&gt;{delete dA[e]}))}function AA(e){if(1===e[1].length)return-1===gA.indexOf(e[1][0]);let t=!1;for(let n=0;n&lt;e[1].length;n++)t=t||-1===gA.indexOf(e[1][n]);return t}function CA(e,t,n){n.start(),e.set(t.properties),t.dependencies&amp;&amp;t.dependencies.forEach((e=&gt;{const{id:t,type:r}=e;if(mA[r]){const{key:n,value:o}=mA[r];if(!n||e.properties[n]===o)return void gA.push((e=&gt;`instance:\\${${e}}`)(t))}let o=n.getInstance(t);o||(o=yA(r,{managedInstanceId:t}),n.registerInstance(t,o)),xA(r,o,e,n)})),t.calls&amp;&amp;t.calls.filter(AA).forEach((t=&gt;{var r;e[t[0]].apply(null,(r=n,t[1].map((e=&gt;{const t=pA.exec(e);return t?r.getInstance(t[1]):e}))))}));const r=[];if(t.arrays){const o=[],a=Object.values(t.arrays).map((t=&gt;(n.start(),n.getArray(t.hash,t.dataType,n).then(function(e,t,n){return r=&gt;{const o=t.registration?t.registration:&quot;addArray&quot;,a=t.location?e.getReferenceByName(t.location):e;let i=null;if(i=t.location?e.getReferenceByName(t.location).getArray(t.name):e[`get${o.substring(3)}`](),i)return i.getData()!==r&amp;&amp;n.push([i.setData,[r,t.numberOfComponents]]),i;const s=t.vtkClass?t.vtkClass:&quot;vtkDataArray&quot;,l=hA[s].newInstance({...t,values:r});return n.push([a[o],[l]]),l}}(e,t,o)).catch((e=&gt;{console.log(&quot;Error fetching array&quot;,JSON.stringify(t),e)})).finally(n.end))));n.start(),r.push(Promise.all(a).then((()=&gt;(o.length&amp;&amp;e.modified(),function(e){for(;e.length;){const[t,n]=e.shift();t(...n)}}(o),!0))).catch((e=&gt;{console.error(&quot;Error in array handling for state&quot;,JSON.stringify(t),e)})).finally(n.end))}return n.end(),Promise.all(r)}function SA(e,t,n){fA[t.id]||CA(e,t,n),fA[t.id]=!0}function PA(e,t){const n=[],r=e.getNumberOfArrays();for(let o=0;o&lt;r;o++){const r=e.getArray(o).getName();t.has(r)||n.push(r)}for(let t=0;t&lt;n.length;t++)e.removeArray(n[t])}function wA(e){const t=e.name?`_${e.name}`:&quot;&quot;;return`${e.hash}_${e.dataType}${t}`}function IA(e=[]){return(t,n,r)=&gt;{r.start();const o={...n.properties};n.arrays||(n.arrays={});for(let t=0;t&lt;e.length;t++){const r=e[t];if(n.properties[r]){const e=n.properties[r];e.registration=`set${Pt(r)}`;const t=wA(e);n.arrays[t]=e,delete o[r]}}const a=n.properties.fields||[];for(let e=0;e&lt;a.length;e++){const t=a[e],r=wA(t);n.arrays[r]=t}delete o.fields;const i={pointData:new Set,cellData:new Set,fieldData:new Set};a.forEach((({location:e,name:t})=&gt;{i[e].add(t)})),PA(t.getPointData(),i.pointData),PA(t.getCellData(),i.cellData);const s={...n};s.properties=o;const l=CA(t,s,r);return r.end(),l}}const OA=IA([&quot;points&quot;,&quot;polys&quot;,&quot;verts&quot;,&quot;lines&quot;,&quot;strips&quot;]),RA=IA([]);function MA(e,t=null,n=CA){yA||xA?dA[e]={build:t,update:n}:delete dA[e]}const DA={vtkMapper:[&quot;vtkOpenGLPolyDataMapper&quot;,&quot;vtkCompositePolyDataMapper2&quot;,&quot;vtkDataSetMapper&quot;],vtkProperty:[&quot;vtkOpenGLProperty&quot;],vtkRenderer:[&quot;vtkOpenGLRenderer&quot;],vtkCamera:[&quot;vtkOpenGLCamera&quot;],vtkColorTransferFunction:[&quot;vtkPVDiscretizableColorTransferFunction&quot;],vtkActor:[&quot;vtkOpenGLActor&quot;,&quot;vtkPVLODActor&quot;],vtkLight:[&quot;vtkOpenGLLight&quot;,&quot;vtkPVLight&quot;],vtkTexture:[&quot;vtkOpenGLTexture&quot;],vtkImageMapper:[&quot;vtkOpenGLImageSliceMapper&quot;],vtkVolumeMapper:[&quot;vtkFixedPointVolumeRayCastMapper&quot;]},EA={vtkAxesActor:{build:eA.newInstance,update:CA},vtkRenderWindow:{build:Eh.newInstance,update:function(e,t,n){t.calls&amp;&amp;t.calls.filter(AA).filter((e=&gt;&quot;removeRenderer&quot;===e[0])).forEach((e=&gt;{vA(e[1]).forEach((e=&gt;{n.getInstance(e).getViewProps().forEach((e=&gt;{const t=e.get(&quot;flattenedDepIds&quot;).flattenedDepIds;t&amp;&amp;t.forEach((e=&gt;n.unregisterInstance(e))),n.unregisterInstance(n.getInstanceId(e))}))}))})),e.render(),CA(e,t,n),uA.applyBehaviors(e,t,n)}},vtkRenderer:{build:wh.newInstance,update:function(e,t,n){CA(e,t,n);const r=new Set;t.dependencies&amp;&amp;t.dependencies.forEach((e=&gt;{const t=n.getInstance(e.id);if(t){const n=TA(e);t.set({flattenedDepIds:n},!0),n.forEach((e=&gt;r.add(e)))}}));const o=new Set;t.calls&amp;&amp;t.calls.filter(AA).filter((e=&gt;&quot;removeViewProp&quot;===e[0])).forEach((e=&gt;{vA(e[1]).forEach((e=&gt;{const t=n.getInstance(e).get(&quot;flattenedDepIds&quot;).flattenedDepIds;t&amp;&amp;t.forEach((e=&gt;o.add(e))),o.add(e)}))})),[...o].filter((e=&gt;!r.has(e))).forEach((e=&gt;n.unregisterInstance(e)))}},vtkLookupTable:{build:Sl.newInstance,update:CA},vtkCamera:{build:dh.newInstance,update:SA},vtkPolyData:{build:Ru.newInstance,update:OA},vtkImageData:{build:il.newInstance,update:RA},vtkMapper:{build:Ql.newInstance,update:CA},vtkGlyph3DMapper:{build:$y.newInstance,update:CA},vtkProperty:{build:us.newInstance,update:CA},vtkActor:{build:fs.newInstance,update:CA},vtkLight:{build:gh.newInstance,update:CA},vtkColorTransferFunction:{build:jy.newInstance,update:function(e,t,n){if(n.start(),t.properties.nodes){const n=t.properties.nodes.map((([e,t,n,r,o,a])=&gt;({x:e,r:t,g:n,b:r,midpoint:o,sharpness:a})));e.set({...t.properties,nodes:n},!0)}else e.set(t.properties);n.end()}},vtkTexture:{build:Eu.newInstance,update:CA},vtkVolume:{build:fb.newInstance,update:CA},vtkVolumeMapper:{build:Tb.newInstance,update:CA},vtkVolumeProperty:{build:ub.newInstance,update:CA},vtkImageSlice:{build:Pb.newInstance,update:CA},vtkImageMapper:{build:Bb.newInstance,update:CA},vtkImageProperty:{build:Ab.newInstance,update:CA},vtkPiecewiseFunction:{build:rb.newInstance,update:function(e,t,n){if(n.start(),t.properties.nodes){const n=t.properties.nodes.map((([e,t,n,r])=&gt;({x:e,y:t,midpoint:n,sharpness:r})));e.set({...t.properties,nodes:n},!0),e.sortAndUpdateRange()}else e.set(t.properties);n.end()}},vtkCubeAxesActor:{build:Yu.newInstance,update:CA},vtkScalarBarActor:{build:Op.newInstance,update:CA}};function VA(e=!0){e&amp;&amp;bA(),Object.keys(EA).forEach((e=&gt;{const t=EA[e];MA(e,t.build,t.update)}))}function LA(){Object.keys(DA).forEach((e=&gt;{DA[e].forEach((t=&gt;{dA[t]=dA[e]}))}))}VA(),LA(),mA.vtkPVLight={};var BA={build:yA,update:xA,genericUpdater:CA,oneTimeGenericUpdater:SA,setTypeMapping:MA,clearTypeMapping:bA,getSupportedTypes:function(){return Object.keys(dA)},clearOneTimeUpdaters:function(...e){if(0===e.length)return void Object.keys(fA).forEach((e=&gt;{delete fA[e]}));let t=e;return 1===t.length&amp;&amp;Array.isArray(t[0])&amp;&amp;(t=t[0]),t.forEach((e=&gt;{delete fA[e]})),t},updateRenderWindow:function(e,t,n){return xA(&quot;vtkRenderWindow&quot;,e,t,n)},excludeInstance:function(e,t,n){mA[e]={key:t,value:n}},setDefaultMapping:VA,applyDefaultAliases:LA,alwaysUpdateCamera:function(){MA(&quot;vtkCamera&quot;,dh.newInstance),LA()}};const FA={};function NA(){const e={};let t=null;return{setFetchArrayFunction:function(e){t=e},getArray:function(n,r,o){const a=e[n];return a?(a.mtimes[o.getActiveViewId()]=o.getMTime(),new Promise(((e,t)=&gt;{e(a.array)}))):t?new Promise(((a,i)=&gt;{t(n).then((t=&gt;{let i=t;if(&quot;string&quot;==typeof t&amp;&amp;(i=um.toArrayBuffer(t)),i instanceof Blob){const t=new FileReader;t.onload=()=&gt;{const i=Ct(r,t.result),s={[o.getActiveViewId()]:o.getMTime()};e[n]={mtimes:s,array:i},a(i)},t.readAsArrayBuffer(i)}else{const t=Ct(r,i),s={[o.getActiveViewId()]:o.getMTime()};e[n]={mtimes:s,array:t},a(t)}}),(e=&gt;{console.log(&quot;Error getting data array:&quot;),console.log(e),i(e)}))})):Promise.reject(new Error(&#x27;No array fetcher found, please use &quot;setArrayFetcher&quot; to provide one&#x27;))},emptyCachedArrays:function(){Object.keys(e).forEach((t=&gt;{delete e[t]}))},freeOldArrays:function(t,n){const r=n.getMTime()-t;Object.keys(e).filter((t=&gt;e[t].mtimes[n.getActiveViewId()])).filter((t=&gt;e[t].mtimes[n.getActiveViewId()]&lt;r)).forEach((t=&gt;{delete e[t]}))}}}function kA(){const e={};return{getInstance:function(t){return e[t]},getInstanceId:function(t){let n=null;return Object.keys(e).forEach((r=&gt;{t===e[r]&amp;&amp;(n=r)})),n},registerInstance:function(t,n){e[t]=n,n.set({remoteId:t},!0,!0)},unregisterInstance:function(t){delete e[t]},emptyCachedInstances:function(){Object.keys(e).forEach((t=&gt;{delete e[t]}))}}}function GA(){let e=0;const t={start(){e+=1,t.invokeProgressEvent(e)},end(){e-=1,t.invokeProgressEvent(e),0===e&amp;&amp;t.invokeProgressDone()},resetProgress(){e=0}},n={};return jt(t,n,&quot;progressEvent&quot;),jt(t,n,&quot;progressDone&quot;),t}function UA(){const e={};let t=&quot;default&quot;;return{getMTime:function(n){return e[n||t]||1},incrementMTime:function(n){const r=n||t;e[r]||(e[r]=1),e[r]+=1},setActiveViewId:function(e){t=e},getActiveViewId:function(){return t}}}function _A(e=&quot;default&quot;){let t=FA[e];return t||(t={...NA(),...kA(),...GA(),...UA()},FA[e]=t),t}function KA(e,t){let n=-1,r=100;const o=e=&gt;e.get(&quot;managedInstanceId&quot;).managedInstanceId,a=()=&gt;Jt(e,o);function i(t){e.set({synchronizedViewId:t},!0,!0)}function s(){return e.get(&quot;synchronizedViewId&quot;).synchronizedViewId}return{synchronize:function(o){s()||i(o.id);const a=o.mtime||0;return s()===o.id&amp;&amp;n&lt;a?new Promise(((i,s)=&gt;{const l=t.onProgressDone((()=&gt;{l.unsubscribe(),e.render(),i(!0)}));n=a,t.setActiveViewId(o.id),t.incrementMTime(),BA.updateRenderWindow(e,o,t),t.freeOldArrays(r,t)})):Promise.resolve(!1)},setSynchronizedViewId:i,getSynchronizedViewId:s,updateGarbageCollectorThreshold:function(e){r=e},getManagedInstanceIds:a,clearOneTimeUpdaters:function(){BA.clearOneTimeUpdaters(a())}}}const zA={synchronizerContextName:&quot;default&quot;,synchronizerContext:null,synchronizedViewId:null};function WA(e,t,n={}){Object.assign(t,zA,n),Eh.extend(e,t),Bt(e,t,[&quot;synchronizerContext&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkSynchronizableRenderWindow&quot;),t.synchronizerContext||(t.synchronizerContext=_A(t.synchronizerContextName));const n=KA(e,t.synchronizerContext);Object.keys(n).forEach((t=&gt;{e[t]?e[t]=qt(e[t],n[t]):e[t]=n[t]}))}(e,t)}var HA={newInstance:Xt(WA,&quot;vtkSynchronizableRenderWindow&quot;),extend:WA,getSynchronizerContext:_A,setSynchronizerContext:function(e,t){FA[e]=t},clearSynchronizerContext:function(e){if(e&amp;&amp;FA[e]&amp;&amp;delete FA[e],!e){const e=Object.keys(FA);for(let t=0;t&lt;e.length;t++)delete FA[e[t]]}},decorate:function(e,t=&quot;default&quot;){const n=KA(e,_A(t));return{...n,...e,delete:qt(e.delete,n.delete)}},createInstanceMap:kA,createArrayHandler:NA,createProgressHandler:GA,createSceneMtimeHandler:UA,vtkObjectManager:BA};const{vtkErrorMacro:jA,vtkDebugMacro:XA}=sn;let qA=0;function YA(e){const t=document.querySelector(`.webResource[data-url=&quot;${e}&quot;]`);return t?t.innerHTML:null}function JA(e){return&quot;/&quot;===e[0]?e.substr(1):e}const ZA={fetchJSON:function(e,t,n={}){return new Promise(((e,n)=&gt;{const r=YA(JA(t));null===r?n(new Error(`No such JSON ${t}`)):e(JSON.parse(r))}))},fetchText:function(e,t,n={}){return new Promise(((e,n)=&gt;{const r=YA(t);null===r?n(new Error(`No such text ${t}`)):e(r)}))},fetchArray:function(e,t,n,r={}){return new Promise(((o,a)=&gt;{const i=JA([t,n.ref.basepath,r.compression?`${n.ref.id}.gz`:n.ref.id].join(&quot;/&quot;)),s=YA(i);if(null===s)a(new Error(`No such array ${i}`));else{if(&quot;string&quot;===n.dataType){let e=atob(s);r.compression&amp;&amp;(e=Jm(Xm(e))),n.values=JSON.parse(e)}else{const e=new Uint8Array(um.toArrayBuffer(s));n.buffer=new ArrayBuffer(e.length);new Uint8Array(n.buffer).set(e),r.compression&amp;&amp;(&quot;string&quot;===n.dataType||&quot;JSON&quot;===n.dataType?n.buffer=Jm(Xm(new Uint8Array(n.buffer))):n.buffer=Xm(new Uint8Array(n.buffer)).buffer),&quot;JSON&quot;===n.ref.encode?n.values=JSON.parse(n.buffer):(nh.ENDIANNESS!==n.ref.encode&amp;&amp;nh.ENDIANNESS&amp;&amp;(XA(`Swap bytes of ${n.name}`),nh.swapBytes(n.buffer,gs[n.dataType])),n.values=sn.newTypedArray(n.dataType,n.buffer)),n.values.length!==n.size&amp;&amp;jA(`Error in FetchArray: ${n.name} does not have the proper array size. Got ${n.values.length}, instead of ${n.size}`)}delete n.ref,0==--qA&amp;&amp;e?.invokeBusy&amp;&amp;e.invokeBusy(!1),e?.modified&amp;&amp;e.modified(),o(n)}}))},fetchImage:function(e,t,n={}){return new Promise(((e,n)=&gt;{const r=function(e){return document.querySelector(`.webResource[data-url=&quot;${e}&quot;]`)}(t);r?e(r):n(new Error(`No such image ${t}`))}))}};pm(&quot;html&quot;,(e=&gt;ZA));const{vtkErrorMacro:QA,vtkDebugMacro:$A}=sn;function eC(e){return function(e){return&quot;/&quot;===e[0]?e.substr(1):e}(function(e){return new URL(e,&quot;http://any&quot;).pathname}(e))}function tC(e){return new Promise(((t,n)=&gt;{&quot;string&quot;==typeof e?t(function(e,t){if(t){for(var n=new gm(e.length),r=0;r&lt;e.length;++r)n[r]=e.charCodeAt(r);return n}if(qm)return qm.encode(e);var o=e.length,a=new gm(e.length+(e.length&gt;&gt;1)),i=0,s=function(e){a[i++]=e};for(r=0;r&lt;o;++r){if(i+5&gt;a.length){var l=new gm(i+8+(o-r&lt;&lt;1));l.set(a),a=l}var c=e.charCodeAt(r);c&lt;128||t?s(c):c&lt;2048?(s(192|c&gt;&gt;6),s(128|63&amp;c)):c&gt;55295&amp;&amp;c&lt;57344?(s(240|(c=65536+(1047552&amp;c)|1023&amp;e.charCodeAt(++r))&gt;&gt;18),s(128|c&gt;&gt;12&amp;63),s(128|c&gt;&gt;6&amp;63),s(128|63&amp;c)):(s(224|c&gt;&gt;12),s(128|c&gt;&gt;6&amp;63),s(128|63&amp;c))}return Fm(a,0,i)}(e)):e instanceof Blob?t(e.arrayBuffer().then((e=&gt;new Uint8Array(e)))):e instanceof ArrayBuffer?t(new Uint8Array(e)):e?.buffer instanceof ArrayBuffer?t(new Uint8Array(e.buffer)):n(new Error(&quot;Invalid datatype to unpack.&quot;))}))}const nC={create:function(e){let t=!1,n=0,r=null,o=&quot;&quot;;return tC(e.zipContent).then((n=&gt;{r=eh(n),t=!0;const a=[];Object.keys(r).forEach((e=&gt;{e.endsWith(&quot;index.json&quot;)&amp;&amp;a.push(e)})),a.sort(((e,t)=&gt;e.length-t.length)),o=a[0].replace(/index\\.json$/,&quot;&quot;),e.callback&amp;&amp;e.callback(r)})),{fetchArray:(e,a,i,s={})=&gt;new Promise(((l,c)=&gt;{t||QA(&quot;ERROR!!! zip not ready...&quot;);const u=eC([a,i.ref.basepath,s.compression?`${i.ref.id}.gz`:i.ref.id].join(&quot;/&quot;));function d(){delete i.ref,0==--n&amp;&amp;e?.invokeBusy&amp;&amp;e.invokeBusy(!1),e?.modified&amp;&amp;e.modified(),l(i)}1==++n&amp;&amp;e?.invokeBusy&amp;&amp;e.invokeBusy(!0);const p=r[`${o}${u}`];if(&quot;string&quot;!==i.dataType||s.compression){const e=function(e,t,n){return r=&gt;{e.buffer=new ArrayBuffer(r.length),new Uint8Array(e.buffer).set(r),t&amp;&amp;(&quot;string&quot;===e.dataType||&quot;JSON&quot;===e.dataType?e.buffer=Jm(Xm(new Uint8Array(e.buffer))):e.buffer=Xm(new Uint8Array(e.buffer)).buffer),&quot;JSON&quot;===e.ref.encode?e.values=JSON.parse(e.buffer):(nh.ENDIANNESS!==e.ref.encode&amp;&amp;nh.ENDIANNESS&amp;&amp;($A(`Swap bytes of ${e.name}`),nh.swapBytes(e.buffer,gs[e.dataType])),e.values=sn.newTypedArray(e.dataType,e.buffer)),e.values.length!==e.size&amp;&amp;QA(`Error in FetchArray: ${e.name} does not have the proper array size. Got ${e.values.length}, instead of ${e.size}`),n()}}(i,s.compression,d);e(p)}else{const e=function(e,t,n){return r=&gt;{e.values=t?JSON.parse(Jm(Xm(r))):JSON.parse(r),n()}}(i,s.compression,d);e(Jm(p))}})),fetchJSON(e,n,a={}){const i=eC(n);t||QA(&quot;ERROR!!! zip not ready...&quot;);const s=r[`${o}${i}`];if(a.compression){if(&quot;gz&quot;===a.compression){const e=Jm(Xm(s));return Promise.resolve(JSON.parse(e))}return Promise.reject(new Error(&quot;Invalid compression&quot;))}return Promise.resolve(JSON.parse(Jm(s)))},fetchText(e,n,a={}){const i=eC(n);t||QA(&quot;ERROR!!! zip not ready...&quot;);const s=r[`${o}${i}`];return a.compression?&quot;gz&quot;===a.compression?Promise.resolve(Jm(eh(s))):Promise.reject(new Error(&quot;Invalid compression&quot;)):Promise.resolve(Jm(s))},fetchImage(e,n,a={}){const i=eC(n);t||QA(&quot;ERROR!!! zip not ready...&quot;);const s=r[`${o}${i}`];return new Promise(((e,t)=&gt;{const n=new Image;n.onload=()=&gt;e(n),n.onerror=t;const r=cm(s.buffer);n.src=`data:image/${function(e){const t=e.split(&quot;.&quot;).pop().toLowerCase();return&quot;jpg&quot;===t?&quot;jpeg&quot;:t}(i)};base64,${r}`}))},fetchBinary(e,n,a={}){const i=eC(n);t||QA(&quot;ERROR!!! zip not ready...&quot;);const s=r[`${o}${i}`];return a.compression?&quot;gz&quot;===a.compression?Promise.resolve(Xm(s).buffer):Promise.reject(new Error(&quot;Invalid compression&quot;)):Promise.resolve(s.buffer)}}}};pm(&quot;zip&quot;,(e=&gt;nC.create(e)));var rC=&quot;viewer-module_fullScreen__1ikg5&quot;,oC=&quot;viewer-module_bigFileDrop__2WNUb&quot;,aC=&quot;viewer-module_progress__3thF3&quot;;!function(e,t){void 0===t&amp;&amp;(t={});var n=t.insertAt;if(e&amp;&amp;&quot;undefined&quot;!=typeof document){var r=document.head||document.getElementsByTagName(&quot;head&quot;)[0],o=document.createElement(&quot;style&quot;);o.type=&quot;text/css&quot;,&quot;top&quot;===n&amp;&amp;r.firstChild?r.insertBefore(o,r.firstChild):r.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}}(&quot;.viewer-module_fullScreen__1ikg5 {\\n  position: absolute;\\n  width: 100vw;\\n  height: 100vh;\\n  top: 0;\\n  left: 0;\\n  overflow: hidden;\\n  background: black;\\n  margin: 0;\\n  padding: 0;\\n  z-index: 0;\\n  display: flex;\\n  align-items: center;\\n  justify-content: center;\\n}\\n\\n.viewer-module_fullParentSize__1f1wn {\\n  position: absolute;\\n  width: 100%;\\n  height: 100%;\\n  top: 0;\\n  left: 0;\\n  overflow: hidden;\\n}\\n\\n.viewer-module_bigFileDrop__2WNUb {\\n  position: absolute;\\n  left: 50%;\\n  top: 50%;\\n  transform: translate(-50%, -50%);\\n  background-color: white;\\n  background-image: url(&#x27;data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAASABIAAD/4QBMRXhpZgAATU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAACWKADAAQAAAABAAACWAAAAAD/7QA4UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+/8AAEQgCWAJYAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/bAEMAAQEBAQEBAgEBAgMCAgIDBAMDAwMEBQQEBAQEBQYFBQUFBQUGBgYGBgYGBgcHBwcHBwgICAgICQkJCQkJCQkJCf/bAEMBAQEBAgICBAICBAkGBQYJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCf/dAAQAJv/aAAwDAQACEQMRAD8A/v4ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/Q/v4ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/R/v4ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/S/v4ooooAKKKKACiiigAooooAKKKKACiivwu/a8/bS+PfhT46634E8Aax/Y2l6PIlukcUELvIwjVnd3lR2yWY4AIAGOM5JAP3Ror+fZ/jD/wUtto/tMlv4lCDncdFBGPU/wCi4xVvwH/wUc/aK8A+Il074qwxa3bxuFuYLi3WzukHfY0SoFbH9+Ns+3WgD9/qK4L4Y/Erwl8XfBNj4+8E3H2iwvk3Lnh43HDxyLztdDww/EEggnvaACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAa7pGhkkIVVGSTwABXiF1+01+zvZztbXHjfRA6HBAvoWwfqGIrG/a3vbrT/2afGtxZuY3OlzJkddsgCMPxUkV+Av7KP7PVt+0p8RbzwJdaq2kLa6dJfeckInLGOWKPZtLpjPm5znt05oA/oL/AOGpP2cf+h40X/wMi/8Aiq6Twr8dPgx441dNA8H+KtK1K+kBKW9vdRPK4UZO1A25sAZOAcDmvzX/AOHTWj/9DxN/4L1/+SK9T+C//BN/w18JfiVpfxGuvFFzqb6TL58UC2y24aQAhdziVyVBOSABnoTgmgD9KqKx9S8Q6Bo11bWOr31vazXjbLeOaVEaVv7qKxBY+wzWxQAUVjjxF4fOtHw2L63OohPMNr5qecE/veXndj3xik1zxH4e8L2Q1LxLf2+nW5YIJbmVIULN0Xc5AyewoA2aKo3eqaZp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hgQPs/x14B8HfEzwzceD/Henxalp1yPnhlB6joysMMrDsykMOxFfnhrv/BLD4N32otdaFruq2EDNkwsYZgo9FYorY9N24+pNAHJfGf8Aa5/Z6+FXjCy8PfAPwZoniTVkmUS3VrbQxxIxICxwSwxkySMT95PlXj7xyB+sttJJNbxyzRmJ2UFkJBKkjkEjjjpxXyJ8Ev2HvgX8DtYj8T6Pb3GratCd0N3qLrI0JxjMSIiRqfRipYdmFfYNABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH//0P7+KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoor8+/gB+1d8RPir+1V42+BviGy06HSfDf9pfZpbeOZbh/sd9HbR+YzzOhyjkttRctgjA4oA/QSiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACivjz9tr9oPxn+zb8KtP8c+Brayuru71aKwdL9JJIxHJBPKSBFJE27dEuDuIwTx3H0F8JfFmo+PPhV4Z8c6wkcd3rWk2V/OkIIjWS5gSVwgYswUMxwCxOOpPWgD0GiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/0f7+KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr8X/2M/8AlIh8Vv8AuO/+naCv2gr8X/2M/wDlIh8Vv+47/wCnaCgD9oKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/Mf/gq5/ybvo3/AGMdv/6SXlfaH7N//Ju/gL/sXNL/APSSKvi//gq5/wAm76N/2Mdv/wCkl5X2h+zf/wAm7+Av+xc0v/0kioA9oooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//0v7+KKKKACiiigAooooAKKKKACiiigAooooAKCQBk1538Uvir4G+DXg+48c/EG+WysLfgZ5klkP3Y4kHLu2OAO2ScAEj8cvEHxc/ai/4KAeI7rwT8HLeTw74Miby7mVnMaFD/wA/c6gl2Yc+RFkY6hgN9AH358af2+P2fvg5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X8sniDWbrxHr194hvf8AXX9xLcSd/mlYu36mv6ldc0bTfEei3fh7WYzLZ38MlvOgZkLRyqUddyEMMqSMggjsa+Zf+GIP2Xv+hXH/AIG3v/x+vO4Vz7D4HndVNt22t09Wj0OKshxGO5FSaSV979fRM/nzt4JrqdLa3UvJIwVVHUknAA+pr+pTwV4dh8IeDtJ8J2+NmmWcFouOmIY1TP6V4Npf7GX7NWjanbaxp3hoR3FpKk0TG7u2AeNgyna0xU4IHBBB719P0+KuI6WOUI0U0lfe36Nhwrw5UwPPKs027bX/AFSCiiivjj7AK+MP2s/2U7P476YniXww0dp4msY9kbvxHcxDkRSHsQc7H7ZIPByv2fRXXgcdUw1VVqTs0cmOwNLE0nRqq6Z/LL4t8G+KvAety+G/GNhNp19CfmimUqcdiD0ZT2ZSQexNczX9SXjHwB4J+IWm/wBkeN9KttUtxkqtxGrlCe6MRlD7qQa+RfEn/BPP9n7W5mm0oajpGeQlrcB0H4TpK2P+BV+nYHj+hKNsRFp+Wq/zPzHHcAV4yvh5Jrz0f+R+E9Ffsyf+CaHw08zI8Q6ns9NsOfz2/wBK7fQP+CdvwC0mRZdUk1PVMclJ7hUQ/wDfmONsf8Cr0J8cYBK6bfy/zPPhwPj27NJfP/I/C+v6fvhL4f8A+EU+Fvhzw0y7WsdNtYXH+2kShj9S2SaxvBXwG+Dfw8ZJfB/huxtJk+7MYxJMMeksm6T/AMer1uvheJ+JY45RhTi0l36n3XDHDUsC5TqSTb7dAooor5A+vCiiigD/0/7+KKKKACiiigArl/E/hHRvFUcEmoQxtdWL+fZzsoZrecDCyLnuDg4PBwM9K6iik0nozKtRhUi4TV0fOH7O3wNl+D2malPrc6Xmq6jcMZJ0yR5KE+WPm5y2S7e5A525r6PooqadNQjyxOTKsro4LDxw2HVoxCiiirPQCiiigAooooAK8v1L4K/CjVtcTxNdaBZpqSHIuoY/Jmz6mSLYxPuTXqFFa0q04awdvQzqUYT0mrkUMKW8KwRliqAAFmLHj1ZiST7k5qWiisjQKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/1P7+KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/2Q==&#x27;);\\n  background-repeat: no-repeat;\\n  background-position: center;\\n  background-size: contain;\\n  border-radius: 10px;\\n  width: 50px;\\n  padding: calc(50vh - 2em) calc(50vw - 25px - 2em);\\n  cursor: pointer;\\n}\\n\\n.viewer-module_progress__3thF3 {\\n  flex: none;\\n  font-size: 50px;\\n  color: black;\\n  z-index: 1;\\n  background: rgba(128, 128, 128, 0.5);\\n  padding: 20px;\\n  border-radius: 10px;\\n  -webkit-user-select: none;\\n     -moz-user-select: none;\\n          user-select: none;\\n}\\n\\nbody {\\n  margin: 0;\\n}\\n\\nhtml {\\n  overflow: hidden;\\n}\\n&quot;);let iC=!0;function sC(e){e.preventDefault(),e.stopPropagation()}function lC(e,t){iC=!1,function(e){for(;e.firstChild;)e.removeChild(e.firstChild)}(e);const n=Vy.newInstance({background:[1,1,1],rootContainer:e,containerStyle:{height:&quot;100%&quot;,width:&quot;100%&quot;,position:&quot;absolute&quot;}}).getRenderWindow(),r=HA.getSynchronizerContext(),o=HA.decorate(n);function a(e){r.setFetchArrayFunction((t=&gt;Promise.resolve(e.hashes[t].content))),console.log(Object.keys(e)),o.synchronize(e.scene),o.render()}if(global.renderWindow=n,t.fileURL||t.url){const n=document.createElement(&quot;div&quot;);n.setAttribute(&quot;class&quot;,aC),e.appendChild(n);const r=e=&gt;{if(e.lengthComputable){const t=Math.floor(100*e.loaded/e.total);n.innerHTML=`Loading ${t}%`}else n.innerHTML=sn.formatBytesToProperUnit(e.loaded)};t.fileURL?sh.fetchBinary(t.fileURL,{progressCallback:r}).then((t=&gt;{e.removeChild(n);const r=fm.get(&quot;zip&quot;,{zipContent:t,callback:e=&gt;{r.fetchJSON(null,&quot;index.json&quot;).then(a)}})})):sh.fetchJSON(t.url,{progressCallback:r}).then((t=&gt;{e.removeChild(n),a(t)}))}else if(t.file){const e=fm.get(&quot;zip&quot;,{zipContent:t.file,callback:t=&gt;{e.fetchJSON(null,&quot;index.json&quot;).then(a)}})}else if(t.base64Str){const e=um.toArrayBuffer(t.base64Str),n=fm.get(&quot;zip&quot;,{zipContent:e,callback:e=&gt;{n.fetchJSON(null,&quot;index.json&quot;).then(a)}})}}function cC(e){iC=!1;const t=document.querySelector(&quot;.content&quot;)||document.querySelector(&quot;#vtk-root&quot;),n=document.querySelector(&quot;body&quot;),r=e||t||n;r!==e?(r.classList.add(rC),n.style.margin=&quot;0&quot;,n.style.padding=&quot;0&quot;):(n.style.margin=&quot;0&quot;,n.style.padding=&quot;0&quot;);const o=document.createElement(&quot;div&quot;);o.innerHTML=`&lt;div class=&quot;${oC}&quot;/&gt;&lt;input type=&quot;file&quot; accept=&quot;.zip,.vtksz&quot; style=&quot;display: none;&quot;/&gt;`,r.appendChild(o);const a=o.querySelector(&quot;input&quot;);function i(e){sC(e);const t=e.dataTransfer,n=e.target.files||t.files;if(1===n.length){r.removeChild(o);const e=n[0].name.split(&quot;.&quot;).slice(-1)[0];lC(r,{file:n[0],ext:e})}}a.addEventListener(&quot;change&quot;,i),o.addEventListener(&quot;drop&quot;,i),o.addEventListener(&quot;click&quot;,(e=&gt;a.click())),o.addEventListener(&quot;dragover&quot;,sC)}const uC=gv.extractURLParameters();if(uC.url||uC.fileURL){const e=document.querySelector(&quot;.content&quot;)||document.querySelector(&quot;#vtk-root&quot;),t=document.querySelector(&quot;body&quot;),n=e||t;n&amp;&amp;(n.classList.add(rC),t.style.margin=&quot;0&quot;,t.style.padding=&quot;0&quot;),iC=!1,function(e){if(!window.frameElement)return e(),!0;const t=window.frameElement.getClientRects().length&gt;0;t?e():function(e,t){new window.parent.IntersectionObserver(((e,n)=&gt;{e.forEach((e=&gt;{e.intersectionRatio&gt;0&amp;&amp;(t(),n.disconnect())}))})).observe(e)}(window.frameElement,e)}((()=&gt;lC(n,uC)))}return setTimeout((()=&gt;{iC&amp;&amp;cC()}),100),window.OfflineLocalView={initLocalFileLoader:cC,load:lC},e.initLocalFileLoader=cC,e.load=lC,Object.defineProperty(e,&quot;__esModule&quot;,{value:!0}),e}({});\n",
       "&lt;/script&gt;\n",
       "&lt;script&gt;\n",
       "var container = document.querySelector(&#x27;#vtk-root&#x27;);\n",
       "var base64Str = &quot;UEsDBBQAAAAIAMmOuVyrHVlyCDcAAOPxAAAKAAAAaW5kZXguanNvbu19abPiyNHuX3lj4n7TuLVvN+J+0MYqQAKxOiYc2gCxg4QEOPzfb1VKCMGh3T0zHo/79Tlj01Sm8qmsrKyqLClL/P2npRsvw/in//s/f//Jd1lPEEOJpbi5R/v+PPBpn56LLkdTlCQHf6M5LoArsRD68p0SP//PT8n1EGKB2mbvJgKnnE7uFdPTZI3J6B9rH+2SGNP8/S4JdwmmK8Vfzbh/U4aZ8vgTrqhq+zIwhhW+ReZ/WVdR7JyoVuV7+7QrG53hsqZoE2uWCpKVrLIH//5N7StkmkMpUlU+LuWFqKjfr+pXVKr0S2KtU+VvboxHpLo0lUTtjbzFFvpbinrXvyrfWxf1N5T+0lvdpJ5Jme/0dxSisIVCVeWpUl4YvLGfci84D/0r9rOVx987+9vfsL/9DfuX+F+xv/0N+9vfsL/9Dfvb37C//Q37P/R/b3/7G/a3v2H/T///9P//Fv//6R9oPfAknhYCX/LmDEWFHB8K87kQMp4oCBJHS+LfJMF8WpW+S6CyKA3RysMyb9YkLdxsSnJlWVJBvUef6tDm7EFclF97Dz586A++VPJzvAc/B5HKr+pDvv/gQ7le8tVmyc/x/JJvZCUfRLUHf1jyc7xWyVeHJT/H25f82qLk53hZyZ+UfOUxUHJ+VvKhkSpcNMMfTdAP5CNQGpc1o1QSNFfBh+b4o7Eo8db4A7xPA33OoCTma3D9DvigBAid8Ecbq6ZBff8PXCzkRVr2A9+jXR7FM4xEoQAmoIVQ8hie4xgcx8yffOz7JF4jn7depruJ+87LcD9YldmeFrtBpUzij7ysT2KaIjurerd15zZzfor5zZyP5fPyXV4r+Mq1Y1Obkp/32UMe8BnyGm+cw71Tm9pL/Qz5rJ9G/vj65wN1YeKRmI+ZH60MNP2xevxIZRiZlCgytDj3fYkPZEpiGFai2bkboAk9FDmR/hvLvOxJvk/it+9JiP2oZ43TQDwRjphMiGa2H2VWe6HUh8mx7ZOZQzezVtgTPVns8/bV33BOpoq1TrNxGQdT0h2vBtyQHvImkU32SqYlXD+zLkt/MxlzPYOcKHrWWZ7Dy0karYa1vtiT7KwZXQ5+MrmeO2RTT7lktR/QjhT47f2FTzp21qMnzZ3szM4KeXSYjnTRd/yNcPsuFYYHA+GPg/rSJXqJQZb6r+TEGOxV1hoOsl5Y6B+S2arQ3yFq53raXbnGMFNvhf4u6dUL/XXZ3k9ISx4Y48xKCv3r5PSu/4o8+SfhbFyUyUP/HllbFfp75GpFT3r1QTbJenKhv0Ye9UJ/Ud6eN+ZyOeYQvlvoXydZj9T6feNqDPVzNIhIeb+mMovervpaM7j1lTiiqKa0YFFMIdyEEReqQyprDm1dEpJk1VdOxnSzpScS4vuKeDj1ZvEt60zEuUsuLnpf0dLs1Mpk06D0OneNh8QN8a3bzfL4wQ7J37hZNBo6bRQTnsNZPbaXBpKPhlKLnzpOXxlJIqtQvlNba51a0/UW0fSWNeYrM9XW/K2rNClFPp/Fbm2tDIIkQDEg4iu9mX+W2UjvKk5imqw+b9bWer1TOzaWxB7Jp6mk1wYDp6uMzJ07a+91xF+Txnh42dpUpsfGYqPMewhfXlhDxtIopJ/Q6DonFc2NKCbvZOt6MkXynd02OJ5iGrVvsNzyThpySH550pn6Ll51laNjNElzFRtDlRLYzXoeIPs21z5ly14d2Ye4cHFIXYctCi2+3tY7thF+Z9Xyo6WQ6jOF4Ce31o6nW5ROu53U2EQZko942klW0mqmnPm2ffYvYovSTP5cm62Pi1um70j7lMz4G4oH2P5+zYUbxN9Hi2lh/5jSwP4zJWt00cDUdy1K3fGDiBDsDrKPQlMtc95GfK3LU56yztqGdm06iTVTJMTvih3OTI+3kaKGDWdpdk9tQ/fJ9Ww9ohG+vmBWQVizMX+87zDTerttKObmZotugPGX9XY88HVnpPTHdNpf9Yy2odL1vrD1Rj5qv6+kw8G2ro8UcnqeeI2li/jTYL4r7D8xZbD/SLGbVy+bSFOk36yeBGotxfYh2yZDLWjEJ7S6uSY9C7Wvx8aDbIui56zJGLcGZY+wfT/nnz91/vn0/z/X/2v0LMlOVs9Y6/Sosw4PhwWqnx8ta+vMRvNb4tWYsbtI0PrgtbhkJht7Kqudz3uxoYzR/JadrmclOvQMQ7ucWh3HDNe3rOcfs+g63aP5t2+3mv1LEhuG2lJ6m/2Co25lVIjmvyMzU+3GjDSGmjySTtRyo9wydTeygu5ugtafdU3vi5MmYVBqwtQoa0U1b1m7358YHHlA64PgbgfWMLvUhop5vHnL8dhH9m8fQ8GzUrS+DCihddjMB2h92DCNwVYTh0h+VMpb626fDMaXGqWiif4WU8spVa3/TDLsuTdwapTGkhd3Mm80qar+o9mWSLmtUlur+lEfmqErUdX2+23pbOxZtWZoTkswM9+kkP2upf0W8SnIZkTjdpKOQRaQjd2eyJTzqYt8eXajFS6unTOS6nEnIhWV6CyvYiIzNlNhdOqGiN9qJOeott3wItGTjPYhDSk5a85GW1KLYyy/CbaUN9/wJ2IxO+0XrmvLD/15Zams2A1r6BzyqNCJjzu2I2eN43GmyI6D+FptFXaJpZuJ5CX0ald/u5AzM9zVjsPrEvHnUqH/ihxHVqRw06GcWaPhFfnyFvE5v9B/JfcNMuhrvv0kX+p/k6+6SI/tZZOo1l/qv5IX2+Fkvtmg9lf0j+7664S/jJ3RtJkR1fbro0L/m2Qt10J3NfOf7Pfp/5/+/9/s/7AtnAe8LwiUJPAcxUiCyNMULzE8J9Ou6Lqs9Ddafrkp+H0Sv+uu4OOuX97Wx11BuMsFt+KUKf7IN+fA5/BHF/hwV239uBRE4WaHBXjAj/FXF3+oj7tsr3cN81t/WVlfDa6HD6MUasBdw6ysL8eDu2gDwAM+6Bc8+G/vKlbuyk1LpQE6v3XpPIhSKa8BC4RGpZL5Xb/Fo763dx3hLmHTLut73OBTQb8x8OGuYPNhT/gD+8Ht7FpWVrIqjZgrtQFQkAf8/K4ilKlSqbxS6K/8ruLjriR89PCnDu0RoFLM1+H6G/ChUqiPxR9d/FWH+kDIgjIoCe2HTsm7jij5xr7kQ//m906AP8jufOXR6cDPb+cPyru+qlryDarkA9FolnxncecXeFnJt0p+jvfg555nPfCGJR+eFAA/x+svSv6g5Od4jZIPTzJyft7erOQDMX/SAR+5UwEe+OcI5LE/q3AXegL1V5wGytg/VBeg8Uc+MqB/p5hfB3uD/7lQBn3AyPkgx1Aq+M8M7PH/ijvMAiNzaDfEi6EbyjIrS77gcULAiHNhzoQsviv1cof5uyR+1x3m8TlhUlLqLz3+ZDuUnO76cSox3aYjdG5ik/CEZpSyfVnTiZu6kEgmVaj0nBl9nSCGS46kD/W9tbPrgxvhdxYdMtIXpMVGy/qNvNDTNYHxLYzvYHwG8C2M72H8NuBbGN/E+ATgWxjfxPgC4KcYX8T4PcBPMb6I8bfEiY1vqUgymictjZ5EyBl1TaWJfhTZ3smZkttwr6TXbffqCCln2CQzf9Z/NOy3rU1P9lYSEc/QMh4YhsX05bEjk0ynLWN8C+M7GJ8AfAvj3zC+C/gWxvcw/gDwq/pj/BTjnzD+EfBTjO9h/KasbYNJerjuW6a0D1cZibdd6bLrdU6cNGWbJN5mpeubd1oJIgqTPuivz3k9HTbHc10251FMxNFEsby65+uk1GxHBMa3ML6O8a+Ab2H8FcZvA76F8U8YP/ygP8a3ML6J8c+An2J8E+MviKPcaqYLLaytiBO1jsgfrexdZ0xxx588ojDkRys3BHeaLolt3SS2t5tACochlYrWfuPxPes6JufsKE6Z3iRZMdubKBBmulmnV5Hndc4JN+21rzUXaZbw5g3Jixxh7Gk1TWuZ5chIfkhifAvj6xifA3wL4zs88DG+hfFPDMhjfAvjm0KPuVAbjG9hfJGA+jG+hfE9GfT70fU/CsejdTwf28ifjtHxhyynuHzC5f0PV863AqIszSXXZznJlySB5rxAoAMGLZqs7IsM+zecivb8iOg7RX77MyI2ajtXRtQEp3y0NbS7XLSWknOWbslgKW6XJ6VJ6BV+m4iOqpCkPYK8nJuBPGVIsspvqXXKOK234pm84xNP+FSOf16TsdveN46MJN4q/MYw5PduplkL8jT07MF54J2r/I4XNebjbkpmJKsV+nvv9F+jXWGhv1nhm/VCfwltPAv9q/xOt9A/Jtlrof8TflzovyXP7UJ/sap/p9A/IjOq0L/K70wK/a/kpDmhOttVIuiEU28tOHNiU3btWpP11l6cR2SH0nbjXTuWbyTXGhx3uzrit+3DacxQA0IgZ07KOOtrm9Tllm5c/dpqT9nNrstw41QSB+/sT1Xtf54vxe5s4Ug6wUpidyX4w5ttTqzNap/sUp90+6P5kuilmS41mWQ0nfLxzTaM7b6V9VVk//G+0N+UE56ZN6g94pf6L8jOutBfrMi3p4X+3EN/s1r/qNDffmd/qmr/1Cr0NyvtN61C/5D0L4X+ZsV+hlLofyW39fqZPYwdw9fXk3jdMCPasLXbYdMVRutrTXG2zpTVVqYeq6NaOOObWmDYNWMpc6S0jFqKrW4bnrDb6h0tdM5DfXOZGXZ9e2k16D177Srnfc3aNEhR9/VOAguiati9geTajG1rI0XT4hHjiXOjowniJZXc3ka3dba54sXB4DpTkikKeK7nqSGp7H55rLPyUrdbA8/fMc55MFPcFt9vjg8x2g34e8fjqKCl21177F5rR0+bKYyPzDs+u/WOdhKW21ze1EOtoejhYKRMGx1p0D536r4axf1TXn8r6DFce9LU+krzRk67Q0VDuwVqADlSsm6rF32TttL02lKIwDm21saiJql1o2fn7e90WL9uJIlWUwZszTh0+7taR2tNwlFuvzq9Xk1bcT+qKRkThJeG55Z5XU3VRONvN4n7DIP45vp8m/dPcjm9YH6vt5pKG+40aCm1mmyeEvWoxxW+FQ6lgZ0xyP56S+aNIDk8yatih2qxhhGNlAs1b6zT2nP9up2sGY1XkP3EaLcajDXGqMrr8d4L+uYM2d+aRcset97UqvXrzHTvnFst3D+j/TabNNV6p1o/7e90tzFE9Qcb3T225u0nvrI56UlqtZD9w5WqB5eW+cTvNW8m0xRF1P7eacF5tvBcf+c28FpynUT+ayRTPznIrVpVvjOZrKMztUX2/Zz//9z5/9P//1z/r/y1tNul3T7tr3b9Yln0xZvMbbLXFNZxwOj4HjjDNgfcsHOz9ah3MBvBgvRJz5DISS0JZLOyPtXph/w0l5dF+dpqsknjlFG2fszlCSQ/vMuTrNzp0fRwSNsdtnPD/5mZZE3v9ZPrgXryrMmCtvVBIR+SiuAPbsM0O3q3h3yp/4Ds3uVv1fq3hf4h6a6L+vWq/nwpX+p/q7b/XNbvUaX8w353/bs9yeLu9Ut+QgzX2d6/2nq7bL94mmu7ntBuGdqI3BrzlJ7Kttm9ZvND6CL/CxXtEguy06S0zLpd7Y2J+NZRoeaKd0T85pY+HGaXdnOtKATB8bVoT9idQcZ2634H+d+ZHm163pVpDrX+8ehdhq0mYWvdkRP2li20/nbN8VZrC2RzqJ7IZuaO5A5hqwZRl335Ougq9mZMLe3LqrnWI3d7WKbdGMnvhiHZrs21lmKsF/L0UqOblHpSZuLCbq8J22C61mK83CD/W5Jyz6lpcctQ+1mnm7oU4isz0lyQ6xHis4f2eLzt0a0hTqNu1IVgKNv6xWpe+dUN+WffPbqXdbfVWqvpaLTunRhKtrvMMV5eQgatvzfjMJPpmtJao8aw1uaoZbLdE1VeW2ndqK+kx4MZpj0f4Yeb2Ti0rzaS909LhRYW15EyFOqZalI1k9LHArOZD7pofa/VnfM0ma6imWLURbKtHAlzqBDGWROsxdKwm8RgttTJK7I/Pa4tGDQgTUOvSXLPIK+8YauWOm4dZ33EP29y+7cptTUKulzb2BhV+y98LaUNV2tTeqYy+01CySh+aCa7jFeTqItqDjaGaXJtSjHRaJKFIYqfWo7GJ+1ojNp/qvEWQZmCaSjHWstdJFfEb8txfzfY+YOaIrUMhSZHqrnWNbEv17J5oNuNWrINJaWL7N/mhXkrvbAmpYi6dhGVbk23exRxYEbbM+I36VGXE4x1x9DYY3Rt0OJMr9o/vRD7TZARHUOxidbEHZgqjt8GU6tODAZ9pZ3durIw1TuGTqfKRauhqdyuZ3J9QAcHbfQ5//zJ88+n//+5/i8P2vF6SU7NtSZr7XSt3tD+ocvvVXMZRsh+q0vjkpmMjOw/sxt7t7VF9u1Rbp/SVDy/X5a1SFavtGmonWWrvcuaqH/qEqVssrSP8NsXozm6DmumodHEjTkmO94o0/1RfEGdBXo6Z/02pfVCYq6day1k34ZJupZ9Ru3bWdJ4sw0aSN4/Sz1rraq4fzdnUybw/KzJtOOFys4cqrpM2x7RQfsnrT0hqHAZIPv5IdezqJaG7L9LucmGmSH7VuR7oRBoRLdtUhoVMvTUYlH/tPSyfjoU2WP3JJiUaqqd1mgwrelV/TfZYuNwRr9jqNelupD7Aq1X2z9T9IM7izgkv+7rl8wjZL1qv/1oQjGa3LXWut3eneKNMEPx29rf19KLFGYkaXU6+sbbW0M9CY6acvJ50zYu023CXY1wTV6IxiyUey3M702p8+lcw/FhLh9kZHPhdXQraSN+SrY2/CI5oPg0FQJvsBKnktTa3zb7Y0eyhkqgX7rIPxIkPyzkr2Sr3ybJYz9CfG2Z7ji6ifgoqMvr35ITYW+2ZO2K+Bk9HTpubVPR/0qqyu0mueuJtVacaCSTwxXSz6BL+V6f2y61C4P5l53ZH/Zx+5SyfjZd36RsQCN+X2Hc+nwwQvgXadzxBekYSsyu405GNx3ZbyX1rmh89k1b48r2MwStKKNzgPhEaE8bbRbxjUNpv0////T//2b/F7d1PbsGEfJfkenpWYQWVltth3P9Nt0NRoopNIP+4Ir8U1VnzbGYhSPUv7Mt/If2j7bY6OpaTUDr48lrM4niHJB/byxrKcY3FP9+y/9HQ7k9mK8n5lBL19JVCoSagfbPWRYaTgfF/2RdPBrzzd5cq9RGXJ3lFhpfaG0HBdD+0zjwktWNAuS/tdZFsoJtgMYnv1xInd00aimCxl/YcH1B6ye5ZQ+GtTw8yU+u4SwMZQ2tj6M13RqQMWpfpf5v+f9R1Ohk4WH9+p7e1aMar1fbr86Mkbhwcfs6aJPf15jgyX6yqKtcv3PpUIX9+8t6Kb/qK/Vuvddcer3OurD/eFS39Ty8im99ZR8st8ulJnfWhf29Q91uDneNTGZmiL+xI+PIN7UOVdg/5eul/jhH7xpuDtbVRPzc/tdaw26kU87SWlu9q8xXczpqZFTXKOyvLhv3+M5BfG0oEY3zrdc1Cvufg3ppP6db2r87LOx/QPpV5O/27w4L+69R+yr1u2QgjuqsjOrP7Y+Cw6r+o2TpjrMu1i+3f5ev2U27bP8iXrQDzsLty+1PBLWq/T79/9P//5v9v8yBlbQ8h3SA1gdTukYilyTXvsLt/WXY2V7rHSV2rbbPjbum3V6kdWkq9fDziaNy0cdjq95ReZ6db7kjWl8V7mLoHeGI9k95TZ1bTVLzPj/j9b2gXrvKTGjxo6Yu1jr6dGGytdCedeyaTmArSyj+GLpx/8xsFSNWBHJntZZKq2M3Y71eZxkC+XeZg9xR8xzSBK/PjW5gNAYDratYlibpDOPqsT7cZPSqcbiYdm1l8/pOv6D6U5PweWey1GOtUW8uZo0RWl+tRk+UbrUR2j/d/FxVo6O50IA+Wt/v+1vU/m2NqR9ZyTAkZT+nmsIy3bRtU1FDLr3pKP450c6535qRNV+vK9OMCUm6bTcmEs83WyqaX66rbSfpWttarFj2UibZuNW1NWOTyd5qjvx/FTkT8WhNkf3UYOZ0zvNRF8U/u3Sw5m3Uf4OBxWUHUatJ+pBzJ/5okPTsTr8/oARTRv6HH4Tjv1qsjoq/nt0+58QV8m9ic9Lj1EP2r+24WRAwS8TvxFEj3AWI35h6zjnzBsj+Q66jNbe03LNrsi5O1cvs1lW68ew2uGYzw9cvaagpTYfu2V0UPWprf4Hq95N4b4yyHbIfGW2Rxy0OPdscTO3Eq6fIvxM5a1hjQzaQfzU2+9Ux6Xdt/XpOzBqlofbflTZ87ZQrfejatYLoIP9W3aHk2Gtkf3Ha2EZRK0B81gm45TRCfI5dx31rnSD7x42bzM7aatdu1yVjR/S2+gOf94gcf3voP+zDK5eEEqSasRY9KbrYxJnhWn27J44XUylyHcSX73xCCkJtNWgh+eZ6aInLs3bjP+Ifq/i0ctPqY5dsijdR6l9vE37nyn20/zhsFNaY6rRyjgr+jWjys5N0OwZ927w5bfXctB1aGRW24B05/zIb9R/2oR/6O2TYS9V+q0H3bbV5mO/0YIPqL/V3ZCNayn7CIPnG/JQZYV9G9Y82L/ijKj6vsKV+ZNrt7OvTjdpH+w+g7VD7k7J9MlffDvXOaNm3DTumiT6bIvt+zj9/7vzz6f9/rv/XpVp/vo4zQ9KEWeeYcRJt2qoZt4cjXb3OFHbSqltzYVDztebSH/TTAPlX42gMgvMlw+tH5yydzHELjZ++uh5rSoL2l4055R3bS+WK+vfAneUT08XjY0CMh+uTivyzGdA4lwD538k+nMztYVZH/r+fnPqNPRpfKILqj+iQ1FpKOEj3Z5MUarF+uQwUnR6h8dmJplHU71nI/3lHOC88x6p11Pr2NrIaesu0e5xDn44SodWUJsfw2aKWGLHKhavkbEdIvjkTk0K+p/f1IXVg0Pg5E95BJgdo/9tcm+ui/lGnFxmcs8bjI1EPJ28oo/lBjNpZHn8ewv1hf026OvL/yX545iZofLVS9ly0fynbkz6l1AxfsXoJKbWPeH+/3AWF/dIbU7stDlbmkIdg3bPlwwb5Rzp2p7fu/jwkOdZKucO8TZmEbvautU2LR3ytNptERNprkvSKN7YTK+ROUqYs52OllaDxMWxZ3K67T4Zkgwy6wfrQQqsx4a1vfqeF/KPFSt5SH9oDhuhz4sbRp1delJuR3K1p+xryLy3aNEkkPyYnk2OszdkGK5KiPVbHuwbm16Pe5Ijqb5PZXX9PmkTeJdXGs4r+Y5JrFPrrskxduoLLIHm1XujfJmmn0H9F2mS4OJBMH+m/LvQfP/TXCW3tdVY3Bo1PJTssFAfpTxGDZqH/jeAC7SrIE2Qf41joPyQnbKH/TaqlB+Iw5XhoX65/k/z0/0///2/2f0hMZVzKFVyJ9kNmLodCKEs8xVESLfNCIEmh9DeBZp7PqH2fxO85o5YfPPvGGbX8TUpwUCm/Pj+5BdfDmRY4A+TC9fAmJTiztHlc3ym/wvGc/IybB9fDm5kgK2b7uP4bZ9jyNzftHtc/3jyVn1EDIpxRg4NA+Zms/eP6xxk4A477gGgI1z/eBHV4XP+NM24aZMUcH9cvyqrz406dBxH0ByOcHteDfgBaA/2h/cuSmJ8xix/Xf+MMnAb2TR7Xg2gbrgf9of1wxq0J+oN9z4/r4Q+Os+Vv5vJLo+Vn6EC/tOTn7zC74I/8jBtonZ9xgzK0DxqRn3EDffMzbo8zcqBEH66HM2dgb6s8A5a//+nxujMVarXhzNvjTN8AymAUeOoPH3UsoD7OEFbOyOVnwOBMGNhvWp4hVKH9A+DDGS44QzjF+tUf9cFBRiMujToCPnTi6lHf4wzd+HHGLD8TppT1gWkc4IN+wIIzY/Xhoz44Ywdn1mD8jIEP+m3L+ipn7PLXr4F++Zm08gyoCqYE5BroB52cn2FblPUNAQ/sB+Nj8jjzdnjU9ziDN4EzfqAf+LdbngHNBw28jTF38vmdo9QfZzDzSQH0Af/wsHwD5MHfAiwKIyt//ZsPZaj/isvgFPmghK8h5jfhTCL44wKux/Xlnp4PYjgDKUO5PLOogRVhELZw+3Onh6mlOS3568Wdn3vlMiv5TsnP8Zolv2WX/BxvXfI39p2f40WLkj8u+TmeWfJbfsnP8bKSD04B/BxvZZf8WcnP8Xolv7Uv+TmeVPK32Z1ftPfBt0s+jOd8Ut9hahv0A/85gL5wPfg/IOWv3wOoPRZtgynAH2BSNfFXDfwtxvJt0A/mmyO+Pj94C050AnnsGtq51N/EXp5Popl9R871TxZ3vq6V/NwebMnvdEp+jrco+aAE8HO8s33n67WSn+MJJb8zLfk5XlzyL9mdn+OlJT+fVC/lGV1NLvmddcnP8biSf13c+QVedufrZsnP8aiSD83RH/N/PonDmXQa+CAP/gZvguiC/cByNP7o4qp08G+qnN/zg8wcXA/6wnzLYH4Proehn59+h+thaLIYtQtUmI94XO7BQWgwLSwaFlY9z2yC+agH9gX/knDZAnw4A02W87sO8QMPfOhfmD9IXLX1qA86pYf9FxYlRcpP2yEz6+SjPmgPuLKM8a1iqiiHMdQHriwAH8pgKmWB+YZa1ofxexhKB/+SwX4dzNcwXl4f2Afm1/zgdzG+MXZW1gfrvwh80A8apdqYb5f1iYAH9oOmErl9ML/2qA+bVofxBG9usKCpjZxf1gdOJgIff9OhajCS4mO8IgjE169x2cHyGpZXm7hs4rIB+mW4DO+t1aEs4XIPynkjcHmOyzXMVzlcHuNyA8pQn4/LdVyfGuPyDMqgbxFf2Ti+MrDrY34M7QElQR/gm4uSD+Onie2b89OSn+OtAQ/zdaXk53hD9c7v2CUf8FqAD/xryc/xdvgf4Oudkp/jLdQ7v6uUfMBrY/mcT5f8HO+I/wG+Pi35OR7YB/jdrOTn7QX7xKV9gK8UQbyNhyIqG1C/gMs26IuvV8H/LSxvQDUylAGfK/2hD3zcvyr4m4PlDVy/2sXlPr7ewP6A4gcbv6MAl7H/qG1cLl4ILLGSKFM0Pacll2XCcB6KPuuj3SbvSrIAx/eeD9N/p8jvOk1vprs1xK9o2ifGA3IttEb5aV0t1m2GtLkDWZQpdzKW4bRpVlwf2sRJobpQbmrOfjMkk/qGhqmlqerRTiIxfgrxAca3AT8t8SnAT0v8IeCnJf4A8As+wh8DfppPXQifIHcHK7BiarRwhHBNM+Se4QdW1h5NbmL3YLskK6qyJVEjxeFoyznm+gvqahV1QH+j5/eA74mmSBvkuDYYWjaSF/l1c7cG/BTjexifAvwU44sYfwr4Kchj/H2uP6uNRq4N+mN84DsYvw74Kca/Yfztb9Of5ZuLq/QH6i83F4L0Xfr/6P6Dv/3Z77v9b35fLvxZHaPrkTdVH5KiMumn56xGeWKsjgxSymwa99+i7RT8UT8lEN9B/MAggE8ieXyorKls7vJDh0T8OsHw+vaA8R2MPwZ861zIj+qAD/6neQV/1LeIon4kD3yMjw996dr2Lj/0SKjf323q1nbSltD1zVFGrqMNk65IxOf3/KRJXpyhn2YtUtLpbE0tPujfDPrd9GLRtRW58vmrvGRjJ6U8qqHLt+niSGL8FOM7GP8K+BbGdzB+G/AtjG9i/OiD/hjfwvgnjJ8BvoXxTYy/J8/pQLBOJ6p3Eg/xeE3au7GUDlu0pVPyocGRl6FfT6VRY7niz2NK+qh/3FqlV1PjbuI4ltuyjZanlOqyZ4dvNPsu4KcYf4Xxt4BvYXwT4wuAb2H8E8YnPuqP8C2ML2L8JuBbGN/D+FOyF1NOejt1DVESbv3eD1eG+TMS+VkxHn60crwhXOvUmm9XgrlifHJtEHJq17yGQ0yi4YLUars43dC+fSPMFeFXx2voTaT1ZHTR02w5E3UkT4SEMoqDlFet1GGQfERi/BTjnzB+CPgWxvcI4GN8C+OLBMg/xis5XjvEBuNbGN8UoH6Mb2F8jwH9fnT9ZTFbpWQoNUW5PQz2xI9YtnD5hsvHH678PJ47ZLhvuenlxNQ82MqS+jHZpkIoHhxOuM06Ff8hF5rWWR/E8yZdCKfZCsnPekQ9nY6s3VEbr2B9h/nCwvi3fL7A+BbGd+D+CeBbGN/jQP7hP7K9mg8A38L4Jwnqx/gpxj/B+CV/dP2f44X6D1l+xCPGD1c+xBKRXvDbkKT54bAgDq2+kN5kuidyZODFsu6MbintUasVP5YVgTgK+2MqFG/zOR6JXQvFE+v9YqrL7WZPI6SkN7fSY2PskMJS3hIY38L4OsaPAN/C+DeMfwZ8C+OfMD4H+JZQvG3nuAd8C+ObGF8B/BTjexh/TYiezafZoC6bwvlCogBEWzLpLVgdTNrx91MidoMsZbuTk8N5g2sov+qvx4mXntLzUCeaY2VL7tPr2Fo2WaQjuVqieAzhWxhfx/gM4FsYX8f4LuBbGN/D+L78qj/GtzC+ifHXgJ9ifBHjL8i7PseTAG8XWmutQ8o5p+6KmveDJgHli1yjVoIh3KYf9F/LMp+eRyyKKa+9C0HispU2xcaN3AQ3gbzrc1wJ8PYljGdh/BPGbwO+hfFPGN/9oD/gYfwTxpcAP8X4Isbn8v2Xht9excH+8UcrP7+dav/DlT11mlhJw1YcqTGpof0Jsd2lB3wUQb5MbjG5NBUpvXKGekP87oIQgss15dP93uHWg1n70iBnu1Tonw6rrDnpRoQU+mEq6OuVyCP5M+CnGN/D+BHgWxjflIGP8S2ML2L8CPAtjO9h/CbgWxj/hPEXgG9h/BsP+v3o+gey20xPXdXxZJZeLH7IsoXLDi5HP1z5p3/gm7OxH+5CuPd6cE/FnVHqQuF7pRF+CxtTuceaJmujbvbDXRCextEu2Gf4ssNpfwhPSVT8KunuvPXCU29uutfwhEkMriYID1hs5+eX/fWpOvQnUPRc4HmBE7xH3RWOy845kfrpWZkewrzrE57e6OK5/npx2p93GO2v9Bfq5/+5f/yCb0yXbAbzqS+osfcPzE+jMDvsT0nOpDD9BSHJ9oMoCAMzWiyTaLdAV9KIvMHF2n6z2Weauw1P7p2ObYK+U6BqGIenNNT2m/1JPc/nHzh6eEiWT5xd6J60TYSigd3C2ri70NlvEPrOxxZBylG4Er+4oO/uFqFxObi7ONrv4AIesc9xOFi6qO/iAhQRoCYrDDd5EzB17/ubMxbsu0m0z+EReeteou152y06GctgHA532S5BuvhJlGJt6O/v9Ufffuz1QJDe93ph1499Pt/77gbe8gd9znyhJVESRVniaJGTRenn/2FQU0QB1SGwIsVSHIO0R9dJIkNREieIMiPRnIi797CPoyQ33l9pVvoiyzJLsYwgcTKHTE1zwhdJEjmWlhma5WSeRTRW/iJILMeyIs8wnMjwd08aHj740S+v3QUV0eIXlpdYihcokZUFFqGyHKqcpShGphiRoWnhFzx4f605edmb8+/NqfjJ/t0ISqM48qJNlFwLFz5E/tr1NmFRDE7uolJEvqTi8YSFk9M5xI50ihbR7rnpVN70qnk/MGPUjeHbYYsQUaPdJ8m/VEXn+5Mf9g7u8YwB5u4mDu9UB42WeHP2c6vdWUjtU8dNTtGlrJB68/GbGL/ggYDaAuPkr3/9KQ6Tjns4wHz1VzRo4gSP3//7f/5e9hPN0h7NU//46Zdf8CVIwMo75fpVER45MRopWOSX759tS3d4cZRCgRdHKbV+9RE0Xe03eCKLUIWo1sTZH9CktrgWU8kJJmgn2oblNOLi53GK74dx3NkHYXEh7nL3VA4EHl/K512Kesjc79fng4O9bfB04UN0VPVWCh734cn1Co//ui4o8Bf6Tv9Qc4UAkxlqhZsUlcVqiBwoxEYo5vmP/drcHc4Jftz4ra79S4AuQgKVLq607uu97HIMJf66Xq705ftevuvy0tvWfnMtmvLa34f8Faq/6YfFca7rxo3jD29j3eW989ODgvVyvvI+13uQoe23h/0uzNVhcUdGN5iLOLwinbCDFKbZwhz0F/6+iqFC/t2/QyDK7rzZwLz6x18tojWIpgRRomn8GxdoW1XKvmV9gIJ5JUZz1uG5K77313RfeuIpA7noDFzPS0e8ZDC/7Qf60Q+S8LYbqIqlOPG9qaB98yjcBIXor/4p15cWPuUB3N3NOXthd3/aooXgrc99q63f43N0pbX0N73oD7yawgEM/kNuxUoSI3DfksXTzAYFVMVamw/9+7RwChcRcsCSiSaRuyn/8fX45OsTUjG9vUxEzxPj13YbEEXDboPHLpe6m3P4diFZVugQEOfBhpuc84Y8wrBKxLFzd1DBQ+g1ivNCFOuDbOXCD6EAXvm8fRo+X/gU4JQXohVP+XBtJWBRP9R4Z7qbw9It+zQNcWg3yH0UFr+colX6+nFdsQTSsAQG4QVtbcD+xUVJEev99a8CCqTRVRJyIYbHMS5Q0N5J4p8oaIBI4oMio45AFOmJgnpMpp4oiC/TJUVETESUmScKjS6QuWcSukLmn0noCvmhgIjDdnSFLD2T0BWy/EzCDaToJxqDASnmmYavpdhnGoNp/DMN7zIo4UEDGEwTn2kCpknPNKwLTT3TZEyjn2gsmIV5pmFdaPaZhjcqNPdMw/rR/DMN60cLT+1gRUx7tigL+j2blAX9nm3KQR9RzzSsH/NsZw7rxzzbmYNdGvvUuRzWj3n2AU58Q8P6Mc+OwWH9mEfbwDVBvxd3Zd7QQL9nJ+ZBv0d7sfPz/Bsa1o+tuDsq81g/ln6myR9pAtaPfdhFQOoL9Bsa1plln2ncCw3phv9Ps9wzTXihoa8C6Mw/06QXGoIW5I80GEtsxc5IN5F5Q4PNc8XOSE7k3tD4NzThhYbsJILO0jNNeqZhG0vUGxr9QkNfJdBZfqaxLzQxnxE/0PgXGtJXEt7QsM7cwzf4Yq78QJNfaFw+g36g0S80Np9FP9DYFxqTT600Rz/T+BcanoKFNzTxhUblM+4HmvxMgzFJUe+I9Dsi80KUiqn4I/GlMTBJUPw74ktzOKGYommOeSFK74jyC5EvZu6PRPqFyBVz90ci+47IvRDZYvr+SBReiEwxgX8kvraIKabwJyJdzOEfia8toopZ/DuJL82EBYTh3hH5d8SXZsKaxIjviNI74ksz2fs0/ZH44oqsUEzAH4nsO+KLK8Iay/LviMI74svQYrmvEqV3xJcRx95H/kfiy9zB3rvniQhl9h2Re0fkX4j5TdR3RPF5dsyJ0jui/IYIC3mViMv8y6yeE5l3RPa7iS8rVE7k3xGFd0Tx56eFMCdK74jyG2IeD/DPbc8Dglci8/PTqp4T2Rcivug1TsiJ/AsRSwrCO6L481M4Al73gYjhhJegJyfKPz9FRzAGII6vEjEcxBWV2ArcHQKLKhHDiS/RGrg7hBaVsA7cHWKLKhHDQXBRCRTB3SG6qESU4O4fiKC89PNTPAqeLco/PwWz4NnSfWqsrJA0hCJVImxNXmJmcE0IRirBNbgmRCP0c5RBQzhSCdfBCz8QsYoQpNDPwRYNUQr9HL3REKbQzyEiDXFKZZ8BHgOBSmVDAn4gv+xcwA8gfKlucXAZ4pfqXgg3GwIYqrLZwI2BCKa6kxJLYmX7AhXBPuyhPBgdAhvqoTzYFyKbym4PrAahTWVbCAaSX/aPYAv5HuAURNjkUtTTfhT2tBT9tG3FuuS0h9lBhHre8ebYVBHSlUT8HbeksoPOm0txTxvt3DBUEWGWRPwdx0WVbXveV1QRx5ZEUF18ugmQewruhsq9gtwlqSKsvhPBo6ki/i6JWAr3t1hRCYYjXUT0JRFfQBfbgTsRJhi62DeURMAsNh0lETCLHUtJlO/ER6flSyVd7IFKIncnihUiYBY7rZIo34mV2nnALPZuJZG7Eyu149HK0MWusSTKd2Kl7QBFF/vQksjfiZXaQWfcJ3yl7dBkutgWl0QsxRR76pLI34mV2qFrmGLnfidCzzLFFr8ksndipXbwKzzxVZZxmFByYqV2cGA8mVaWRxjnObFSO4woIFZqh/s+2MsqaxGMq5xIVYh8QaysMODuDEz6D5XANXOiWCEyd6JQIQImECpE6U58KA/2/UgE04kvRP4dUXpDhCbnileI7DuicCdWlIdeAGNUmgmdCMSKQaC7MbFqT/AWTKhaHvwKiI8+YsADgVhRHhwYi977/Zd/wFODX/m0s3h2+vaxeOXB68ennpCn8XgQjTNlgmg+P8dfuQf8y/3B41uOu/XwY+2vi8aH0D9v3NPXrwiDr91+rlRQPn4pdC1vFN/xywvuBGufQQYKWlyAvj+4fpEQAOXHs9Iiz6RQ5cPTWJxvM3f9UDtvKpkm89N+l3wkw6OG4rZ1/jQNMcNxFCTLsuZNJe3mn/X911Mi5DmH1t/PlIj/8JQIgZ67rPBrUyJE2v2VKREPd3hxlEKBPzslgvoi/Vx5QPS/ISWisOxvTolgPTn8db1c6cv3vfwvSYmgRBEFZHPfl/hApiS0Uks0O3eDuRCGIifS+Pfg/50pESzzlcfT1BdZ4HhGEkROYtF2i6s8FWa+MCLFoyAQbYQ4VpDeZiJUHkez1BdeRiOIRaYUZb4C9RfuC9ouyCwjUaLMSSJkBvwzKOqLgHavPOoZEcmwFN69FVhQi8BInCiz+HE29w0sVDVPIQwU/vCCwIiPVAuO+SLIHIuCA1ZAI/+9Ul/LtJgHvC8IFM7RoLD5eLSnkhiek2lXdF1W+hvaQv77Ui1gv/qNXAu0v/u1yRYCI3MuFfJi6IYyMrfkCx4nBIw4F+ZMyGIv/jOSLb7Dm2XkHyLsV4rWv2X9cxfEF6JNHCMyaG1g8abggfWR9Q0sFGUygiALrMxLIleF+sD5niQOkZd5RmYewwKtC/kfI0sUw8JO5d+S0vH1CbWYnv/1KR3VhfAzpeMzpeMzpeMzpeMzpeMzpeMzpePnz5SOz5SOB/EzpeNB/EzpeJ4TPlM6PlM6np3hM6XjM6XjHr19pnR8pnR8pnR8pnR8pnQA8TOl4z8upeOrT2uLZ79/UEoHWgJkgRIljkXBH37eg28HS5UyBQsN9YWhnonwTgn/XwX0MWHk9+G9yS/5fYCf6Si/4Q0dAto3faaj/Meno/iBTP26dBSeQR3/q9/QcXeHD4kKoMB/SDqK9Mv/pnQUsOxvT0ehqF+djlL25fte/peko8xFWZpLrs9yki9JyK28QKADJnRDVvZFhoVfVPi3vqKDwnuFd4/whS+sJKKlhMYvP+JEHEU+Ej9EgUUbf7SrkfGrmsR//qy8+kYOEclyHEULMstLvPCtZ//0F1EWREFgOIpHNbEM+6RFBYmRv/HEnv/Cov0FiyJIFNtxPN4H33USvggch8JVgRJ4iWLfNudr6Sff/euD/5b0EwGHwt9IP2HZr7wW5avpJ9//OyD/7pd9fNV7cX6GhPbrqKORj0jMI9noHedf9yaQf1m9ZYIJdkmGlRn55w8ZJqzAyrQoiG+zXn75IzJMvjZHFjPuH5ZhAmvbZ4bJZ4bJZ4bJZ4bJZ4bJZ4bJZ4bJz58ZJp8ZJg/iZ4bJg/iZYfI8J3xmmHxmmDw7w2eGyWeGyT16+8ww+cww+cww+cww+cwwAeJnhsl/XIbJVx/AFo9z/6AMk+ekC+xW1Be+TLjIeXCHWKR4SWJYnpE5tOIKuInVBJPfhfMxv+R3wb1JL/ldeJ/ZJb86uyTw5nLw3mfhB4zeOGycRYm/LG/uJ+EuLpr4pXiO9O55xC8//wt/O+eP+EEfd3Pvukv5POP+iG0XKrsFPLBgi1SIBDX7DB0+wo+I4p9eU1B+uXfP/XFiI3SD0qQx/NyS8kDJK/stv+DjsqxE/8t6UPzYg2hQvhmA8nMeGP/av9QXFHELKJyXRYqTZE4WICtMFASKQ38s2iJAR1FfBJal0FqMVjBeRlfSHzv4qzlIf3Sf5b8o9Qf0Gmq9J8z/oHGHO0eWKBaNIl6QBAZvURGNff57OypxRhaHRiPL8Wg5E3lOFPFuB16hwMsMLzECI8mUgCMtXC2HxiuFeo9DA08Shf+GruM5V3C/8rtzv6XraI6ReLH8FL97BsVdKgsy6hE0DHmZkrjCHKi3WA5FnhSNpk2GFwRJ/K/oGH5Oo+D2z++Yv/wv7xmIKJ9y6BT4ib/y9/e+mggXFD9Ihi9xg2AUhRmOjP9JhiS8oe9XieQZ4L+yFhzSV0TuNvjK9XnQ9P3X50v0d19fLA7fj5/PSN9/fT5QICPx69ucr/7uJifQH3+S51f+7uYHH/9tv7tZveI3/u4m/fPXfnezyvmhf3eT+sfP35td/OjbN7+26sq/63c3/2kmOftFgkidpXgUtDAivsn/fbS7d3zvb2myX1CogiZ1ipZ4DseucB/4C83SDM5vk1FkSnH/5Lc0v24iXgwZ/9VEyiWMf6Q8/Zes+p+xB5b/+0YRVhTXy/0QLa7LfVaojsF+mmAT4Kb+NMXfbvjb7Kd/5OvXPFr8lN8OwWn+5TBLokMfZ6qf7wuQUBDdIDrH+ViQqKc/Jr/CDHcL2CrDJIFXs3nyESonV8DyQCANYaqBkXNRLlFc3lZg8D1QfKtPhOZen5jcPT9DglD49sTMjYS3Sr/JueiA+fCyyd8Y3NyDhu8JZn7fwPwPiWy+b+/92+MaPDX+uogDpopfsWJD7+cr9ouaSLiy7H5dRe4pQvi2SO6K92ML2yQ/CcLyAn5MhDoqgaX079gN++G8+equZfiQD+fevL9/nP75fXds/Ps6/vFnofF49cKlm0Z5Fu/fK/nClItMTuUj4+SXBvjK5iKIk/eXPIaoi6f1ckb+618e4+jd118qQzf3qMF152OccIcn+aAyUKtrN/r7/1BLAQIUAxQAAAAIAMmOuVyrHVlyCDcAAOPxAAAKAAAAAAAAAAAAAACAAQAAAABpbmRleC5qc29uUEsFBgAAAAABAAEAOAAAADA3AAAAAA==&quot;;\n",
       "\n",
       "OfflineLocalView.load(container, { base64Str });\n",
       "&lt;/script&gt;\n",
       "  &lt;/body&gt;\n",
       "&lt;/html&gt;\n",
       "\" class=\"pyvista\" style=\"width: 100%; height: 600px; border: 1px solid #ddd;\" loading=\"lazy\"></iframe>"
      ],
      "text/plain": [
       "<interactive PyVista scene>"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "swc_tree = Morphology.from_swc(\"../../data/morphology/example_tree.swc\")\n",
    "\n",
    "print(swc_tree.metric)\n",
    "print(swc_tree.topo())\n",
    "\n",
    "swc_tree.vis3d(notebook=True, jupyter_backend=\"html\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "07a5b786",
   "metadata": {},
   "source": [
    "### ASC: the same idea\n",
    "\n",
    "`ASC` loading follows the same pattern. We keep it equally simple: load the file, inspect the morphology, and draw it with the default 2D view."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "b056cb8e",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2026-04-22T03:24:34.533346900Z",
     "start_time": "2026-04-22T03:24:30.003810100Z"
    },
    "execution": {
     "iopub.execute_input": "2026-05-25T09:54:18.717208Z",
     "iopub.status.busy": "2026-05-25T09:54:18.716994Z",
     "iopub.status.idle": "2026-05-25T09:54:19.957446Z",
     "shell.execute_reply": "2026-05-25T09:54:19.955374Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/swl/braincell/braincell/io/asc/reader.py:584: UserWarning: from_points() produced 1 zero-length segment(s) from coincident consecutive points at index pair(s) [12]. These degenerate segments are kept but contribute zero volume.\n",
      "  return branch_class_for_type(segment.branch_type).from_points(\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Ignoring fixed x limits to fulfill fixed data aspect with adjustable data limits.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-----------------------------------\n",
      "n_branches       | 227\n",
      "n_stems          | 12\n",
      "n_bifurcations   | 108\n",
      "max_branch_order | 13\n",
      "total_length     | 4985.44 um\n",
      "mean_radius      | 0.31 um\n",
      "total_area       | 9806.74 um^2\n",
      "total_volume     | 3252.68 um^3\n",
      "max_path_dist    | 513.82 um\n",
      "-----------------------------------\n",
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<iframe srcdoc=\"&lt;!doctype html&gt;\n",
       "&lt;html lang=&quot;en&quot;&gt;\n",
       "  &lt;head&gt;\n",
       "    &lt;meta charset=&quot;utf-8&quot; /&gt;\n",
       "    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot; /&gt;\n",
       "    &lt;title&gt;VTK.js | Example - OfflineLocalView&lt;/title&gt;\n",
       "    &lt;style&gt;\n",
       "      html, body { margin: 0; padding: 0; height: 100%; }\n",
       "      body { font-family: sans-serif; }\n",
       "    &lt;/style&gt;\n",
       "  &lt;/head&gt;\n",
       "  &lt;body&gt;\n",
       "    &lt;div id=&quot;vtk-root&quot; style=&quot;height:100%; width:100%;&quot;&gt;&lt;/div&gt;\n",
       "    &lt;script&gt;\n",
       "      window.global = window.global || {};\n",
       "    &lt;/script&gt;\n",
       "    &lt;script&gt;var OfflineLocalView=function(e){&quot;use strict&quot;;const t=document.querySelector(&quot;head&quot;);t&amp;&amp;[16,32,96,160,196].forEach((e=&gt;{const n=document.createElement(&quot;link&quot;);n.setAttribute(&quot;rel&quot;,&quot;icon&quot;),n.setAttribute(&quot;href&quot;,`https://kitware.github.io/vtk-js/icon/favicon-${e}x${e}.png`),n.setAttribute(&quot;sizes&quot;,`${e}x${e}`),n.setAttribute(&quot;type&quot;,&quot;image/png&quot;),t.appendChild(n)}));var n=1e-6,r=&quot;undefined&quot;!=typeof Float32Array?Float32Array:Array,o=Math.PI/180;function a(e){return e*o}function i(){var e=new r(9);return r!=Float32Array&amp;&amp;(e[1]=0,e[2]=0,e[3]=0,e[5]=0,e[6]=0,e[7]=0),e[0]=1,e[4]=1,e[8]=1,e}function s(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[4],e[4]=t[5],e[5]=t[6],e[6]=t[8],e[7]=t[9],e[8]=t[10],e}function l(e,t,n,r,o,a,i,s,l,c){return e[0]=t,e[1]=n,e[2]=r,e[3]=o,e[4]=a,e[5]=i,e[6]=s,e[7]=l,e[8]=c,e}function c(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e}function u(e,t){if(e===t){var n=t[1],r=t[2],o=t[5];e[1]=t[3],e[2]=t[6],e[3]=n,e[5]=t[7],e[6]=r,e[7]=o}else e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8];return e}function d(e,t){var n=t[0],r=t[1],o=t[2],a=t[3],i=t[4],s=t[5],l=t[6],c=t[7],u=t[8],d=u*i-s*c,p=-u*a+s*l,f=c*a-i*l,g=n*d+r*p+o*f;return g?(g=1/g,e[0]=d*g,e[1]=(-u*r+o*c)*g,e[2]=(s*r-o*i)*g,e[3]=p*g,e[4]=(u*n-o*l)*g,e[5]=(-s*n+o*a)*g,e[6]=f*g,e[7]=(-c*n+r*l)*g,e[8]=(i*n-r*a)*g,e):null}function p(e,t,n){var r=t[0],o=t[1],a=t[2],i=t[3],s=t[4],l=t[5],c=t[6],u=t[7],d=t[8],p=n[0],f=n[1],g=n[2],m=n[3],h=n[4],v=n[5],T=n[6],x=n[7],y=n[8];return e[0]=p*r+f*i+g*c,e[1]=p*o+f*s+g*u,e[2]=p*a+f*l+g*d,e[3]=m*r+h*i+v*c,e[4]=m*o+h*s+v*u,e[5]=m*a+h*l+v*d,e[6]=T*r+x*i+y*c,e[7]=T*o+x*s+y*u,e[8]=T*a+x*l+y*d,e}function f(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e[3]=t[3]-n[3],e[4]=t[4]-n[4],e[5]=t[5]-n[5],e[6]=t[6]-n[6],e[7]=t[7]-n[7],e[8]=t[8]-n[8],e}Math.hypot||(Math.hypot=function(){for(var e=0,t=arguments.length;t--;)e+=arguments[t]*arguments[t];return Math.sqrt(e)});var g=p,m=f,h=Object.freeze({__proto__:null,create:i,fromMat4:s,clone:function(e){var t=new r(9);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t},copy:function(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},fromValues:function(e,t,n,o,a,i,s,l,c){var u=new r(9);return u[0]=e,u[1]=t,u[2]=n,u[3]=o,u[4]=a,u[5]=i,u[6]=s,u[7]=l,u[8]=c,u},set:l,identity:c,transpose:u,invert:d,adjoint:function(e,t){var n=t[0],r=t[1],o=t[2],a=t[3],i=t[4],s=t[5],l=t[6],c=t[7],u=t[8];return e[0]=i*u-s*c,e[1]=o*c-r*u,e[2]=r*s-o*i,e[3]=s*l-a*u,e[4]=n*u-o*l,e[5]=o*a-n*s,e[6]=a*c-i*l,e[7]=r*l-n*c,e[8]=n*i-r*a,e},determinant:function(e){var t=e[0],n=e[1],r=e[2],o=e[3],a=e[4],i=e[5],s=e[6],l=e[7],c=e[8];return t*(c*a-i*l)+n*(-c*o+i*s)+r*(l*o-a*s)},multiply:p,translate:function(e,t,n){var r=t[0],o=t[1],a=t[2],i=t[3],s=t[4],l=t[5],c=t[6],u=t[7],d=t[8],p=n[0],f=n[1];return e[0]=r,e[1]=o,e[2]=a,e[3]=i,e[4]=s,e[5]=l,e[6]=p*r+f*i+c,e[7]=p*o+f*s+u,e[8]=p*a+f*l+d,e},rotate:function(e,t,n){var r=t[0],o=t[1],a=t[2],i=t[3],s=t[4],l=t[5],c=t[6],u=t[7],d=t[8],p=Math.sin(n),f=Math.cos(n);return e[0]=f*r+p*i,e[1]=f*o+p*s,e[2]=f*a+p*l,e[3]=f*i-p*r,e[4]=f*s-p*o,e[5]=f*l-p*a,e[6]=c,e[7]=u,e[8]=d,e},scale:function(e,t,n){var r=n[0],o=n[1];return e[0]=r*t[0],e[1]=r*t[1],e[2]=r*t[2],e[3]=o*t[3],e[4]=o*t[4],e[5]=o*t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},fromTranslation:function(e,t){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=t[0],e[7]=t[1],e[8]=1,e},fromRotation:function(e,t){var n=Math.sin(t),r=Math.cos(t);return e[0]=r,e[1]=n,e[2]=0,e[3]=-n,e[4]=r,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e},fromScaling:function(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=0,e[4]=t[1],e[5]=0,e[6]=0,e[7]=0,e[8]=1,e},fromMat2d:function(e,t){return e[0]=t[0],e[1]=t[1],e[2]=0,e[3]=t[2],e[4]=t[3],e[5]=0,e[6]=t[4],e[7]=t[5],e[8]=1,e},fromQuat:function(e,t){var n=t[0],r=t[1],o=t[2],a=t[3],i=n+n,s=r+r,l=o+o,c=n*i,u=r*i,d=r*s,p=o*i,f=o*s,g=o*l,m=a*i,h=a*s,v=a*l;return e[0]=1-d-g,e[3]=u-v,e[6]=p+h,e[1]=u+v,e[4]=1-c-g,e[7]=f-m,e[2]=p-h,e[5]=f+m,e[8]=1-c-d,e},normalFromMat4:function(e,t){var n=t[0],r=t[1],o=t[2],a=t[3],i=t[4],s=t[5],l=t[6],c=t[7],u=t[8],d=t[9],p=t[10],f=t[11],g=t[12],m=t[13],h=t[14],v=t[15],T=n*s-r*i,x=n*l-o*i,y=n*c-a*i,b=r*l-o*s,A=r*c-a*s,C=o*c-a*l,S=u*m-d*g,P=u*h-p*g,w=u*v-f*g,I=d*h-p*m,O=d*v-f*m,R=p*v-f*h,M=T*R-x*O+y*I+b*w-A*P+C*S;return M?(M=1/M,e[0]=(s*R-l*O+c*I)*M,e[1]=(l*w-i*R-c*P)*M,e[2]=(i*O-s*w+c*S)*M,e[3]=(o*O-r*R-a*I)*M,e[4]=(n*R-o*w+a*P)*M,e[5]=(r*w-n*O-a*S)*M,e[6]=(m*C-h*A+v*b)*M,e[7]=(h*y-g*C-v*x)*M,e[8]=(g*A-m*y+v*T)*M,e):null},projection:function(e,t,n){return e[0]=2/t,e[1]=0,e[2]=0,e[3]=0,e[4]=-2/n,e[5]=0,e[6]=-1,e[7]=1,e[8]=1,e},str:function(e){return&quot;mat3(&quot;+e[0]+&quot;, &quot;+e[1]+&quot;, &quot;+e[2]+&quot;, &quot;+e[3]+&quot;, &quot;+e[4]+&quot;, &quot;+e[5]+&quot;, &quot;+e[6]+&quot;, &quot;+e[7]+&quot;, &quot;+e[8]+&quot;)&quot;},frob:function(e){return Math.hypot(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},add:function(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e[3]=t[3]+n[3],e[4]=t[4]+n[4],e[5]=t[5]+n[5],e[6]=t[6]+n[6],e[7]=t[7]+n[7],e[8]=t[8]+n[8],e},subtract:f,multiplyScalar:function(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e[4]=t[4]*n,e[5]=t[5]*n,e[6]=t[6]*n,e[7]=t[7]*n,e[8]=t[8]*n,e},multiplyScalarAndAdd:function(e,t,n,r){return e[0]=t[0]+n[0]*r,e[1]=t[1]+n[1]*r,e[2]=t[2]+n[2]*r,e[3]=t[3]+n[3]*r,e[4]=t[4]+n[4]*r,e[5]=t[5]+n[5]*r,e[6]=t[6]+n[6]*r,e[7]=t[7]+n[7]*r,e[8]=t[8]+n[8]*r,e},exactEquals:function(e,t){return e[0]===t[0]&amp;&amp;e[1]===t[1]&amp;&amp;e[2]===t[2]&amp;&amp;e[3]===t[3]&amp;&amp;e[4]===t[4]&amp;&amp;e[5]===t[5]&amp;&amp;e[6]===t[6]&amp;&amp;e[7]===t[7]&amp;&amp;e[8]===t[8]},equals:function(e,t){var r=e[0],o=e[1],a=e[2],i=e[3],s=e[4],l=e[5],c=e[6],u=e[7],d=e[8],p=t[0],f=t[1],g=t[2],m=t[3],h=t[4],v=t[5],T=t[6],x=t[7],y=t[8];return Math.abs(r-p)&lt;=n*Math.max(1,Math.abs(r),Math.abs(p))&amp;&amp;Math.abs(o-f)&lt;=n*Math.max(1,Math.abs(o),Math.abs(f))&amp;&amp;Math.abs(a-g)&lt;=n*Math.max(1,Math.abs(a),Math.abs(g))&amp;&amp;Math.abs(i-m)&lt;=n*Math.max(1,Math.abs(i),Math.abs(m))&amp;&amp;Math.abs(s-h)&lt;=n*Math.max(1,Math.abs(s),Math.abs(h))&amp;&amp;Math.abs(l-v)&lt;=n*Math.max(1,Math.abs(l),Math.abs(v))&amp;&amp;Math.abs(c-T)&lt;=n*Math.max(1,Math.abs(c),Math.abs(T))&amp;&amp;Math.abs(u-x)&lt;=n*Math.max(1,Math.abs(u),Math.abs(x))&amp;&amp;Math.abs(d-y)&lt;=n*Math.max(1,Math.abs(d),Math.abs(y))},mul:g,sub:m});function v(){var e=new r(16);return r!=Float32Array&amp;&amp;(e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0),e[0]=1,e[5]=1,e[10]=1,e[15]=1,e}function T(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function x(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function y(e,t){if(e===t){var n=t[1],r=t[2],o=t[3],a=t[6],i=t[7],s=t[11];e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=n,e[6]=t[9],e[7]=t[13],e[8]=r,e[9]=a,e[11]=t[14],e[12]=o,e[13]=i,e[14]=s}else e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15];return e}function b(e,t){var n=t[0],r=t[1],o=t[2],a=t[3],i=t[4],s=t[5],l=t[6],c=t[7],u=t[8],d=t[9],p=t[10],f=t[11],g=t[12],m=t[13],h=t[14],v=t[15],T=n*s-r*i,x=n*l-o*i,y=n*c-a*i,b=r*l-o*s,A=r*c-a*s,C=o*c-a*l,S=u*m-d*g,P=u*h-p*g,w=u*v-f*g,I=d*h-p*m,O=d*v-f*m,R=p*v-f*h,M=T*R-x*O+y*I+b*w-A*P+C*S;return M?(M=1/M,e[0]=(s*R-l*O+c*I)*M,e[1]=(o*O-r*R-a*I)*M,e[2]=(m*C-h*A+v*b)*M,e[3]=(p*A-d*C-f*b)*M,e[4]=(l*w-i*R-c*P)*M,e[5]=(n*R-o*w+a*P)*M,e[6]=(h*y-g*C-v*x)*M,e[7]=(u*C-p*y+f*x)*M,e[8]=(i*O-s*w+c*S)*M,e[9]=(r*w-n*O-a*S)*M,e[10]=(g*A-m*y+v*T)*M,e[11]=(d*y-u*A-f*T)*M,e[12]=(s*P-i*I-l*S)*M,e[13]=(n*I-r*P+o*S)*M,e[14]=(m*x-g*b-h*T)*M,e[15]=(u*b-d*x+p*T)*M,e):null}function A(e,t,n){var r=t[0],o=t[1],a=t[2],i=t[3],s=t[4],l=t[5],c=t[6],u=t[7],d=t[8],p=t[9],f=t[10],g=t[11],m=t[12],h=t[13],v=t[14],T=t[15],x=n[0],y=n[1],b=n[2],A=n[3];return e[0]=x*r+y*s+b*d+A*m,e[1]=x*o+y*l+b*p+A*h,e[2]=x*a+y*c+b*f+A*v,e[3]=x*i+y*u+b*g+A*T,x=n[4],y=n[5],b=n[6],A=n[7],e[4]=x*r+y*s+b*d+A*m,e[5]=x*o+y*l+b*p+A*h,e[6]=x*a+y*c+b*f+A*v,e[7]=x*i+y*u+b*g+A*T,x=n[8],y=n[9],b=n[10],A=n[11],e[8]=x*r+y*s+b*d+A*m,e[9]=x*o+y*l+b*p+A*h,e[10]=x*a+y*c+b*f+A*v,e[11]=x*i+y*u+b*g+A*T,x=n[12],y=n[13],b=n[14],A=n[15],e[12]=x*r+y*s+b*d+A*m,e[13]=x*o+y*l+b*p+A*h,e[14]=x*a+y*c+b*f+A*v,e[15]=x*i+y*u+b*g+A*T,e}function C(e,t,n){var r,o,a,i,s,l,c,u,d,p,f,g,m=n[0],h=n[1],v=n[2];return t===e?(e[12]=t[0]*m+t[4]*h+t[8]*v+t[12],e[13]=t[1]*m+t[5]*h+t[9]*v+t[13],e[14]=t[2]*m+t[6]*h+t[10]*v+t[14],e[15]=t[3]*m+t[7]*h+t[11]*v+t[15]):(r=t[0],o=t[1],a=t[2],i=t[3],s=t[4],l=t[5],c=t[6],u=t[7],d=t[8],p=t[9],f=t[10],g=t[11],e[0]=r,e[1]=o,e[2]=a,e[3]=i,e[4]=s,e[5]=l,e[6]=c,e[7]=u,e[8]=d,e[9]=p,e[10]=f,e[11]=g,e[12]=r*m+s*h+d*v+t[12],e[13]=o*m+l*h+p*v+t[13],e[14]=a*m+c*h+f*v+t[14],e[15]=i*m+u*h+g*v+t[15]),e}function S(e,t,n){var r=n[0],o=n[1],a=n[2];return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e[3]=t[3]*r,e[4]=t[4]*o,e[5]=t[5]*o,e[6]=t[6]*o,e[7]=t[7]*o,e[8]=t[8]*a,e[9]=t[9]*a,e[10]=t[10]*a,e[11]=t[11]*a,e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function P(e,t,r,o){var a,i,s,l,c,u,d,p,f,g,m,h,v,T,x,y,b,A,C,S,P,w,I,O,R=o[0],M=o[1],D=o[2],E=Math.hypot(R,M,D);return E&lt;n?null:(R*=E=1/E,M*=E,D*=E,a=Math.sin(r),s=1-(i=Math.cos(r)),l=t[0],c=t[1],u=t[2],d=t[3],p=t[4],f=t[5],g=t[6],m=t[7],h=t[8],v=t[9],T=t[10],x=t[11],y=R*R*s+i,b=M*R*s+D*a,A=D*R*s-M*a,C=R*M*s-D*a,S=M*M*s+i,P=D*M*s+R*a,w=R*D*s+M*a,I=M*D*s-R*a,O=D*D*s+i,e[0]=l*y+p*b+h*A,e[1]=c*y+f*b+v*A,e[2]=u*y+g*b+T*A,e[3]=d*y+m*b+x*A,e[4]=l*C+p*S+h*P,e[5]=c*C+f*S+v*P,e[6]=u*C+g*S+T*P,e[7]=d*C+m*S+x*P,e[8]=l*w+p*I+h*O,e[9]=c*w+f*I+v*O,e[10]=u*w+g*I+T*O,e[11]=d*w+m*I+x*O,t!==e&amp;&amp;(e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e)}function w(e,t,n){var r=Math.sin(n),o=Math.cos(n),a=t[4],i=t[5],s=t[6],l=t[7],c=t[8],u=t[9],d=t[10],p=t[11];return t!==e&amp;&amp;(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[4]=a*o+c*r,e[5]=i*o+u*r,e[6]=s*o+d*r,e[7]=l*o+p*r,e[8]=c*o-a*r,e[9]=u*o-i*r,e[10]=d*o-s*r,e[11]=p*o-l*r,e}function I(e,t,n){var r=Math.sin(n),o=Math.cos(n),a=t[0],i=t[1],s=t[2],l=t[3],c=t[8],u=t[9],d=t[10],p=t[11];return t!==e&amp;&amp;(e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=a*o-c*r,e[1]=i*o-u*r,e[2]=s*o-d*r,e[3]=l*o-p*r,e[8]=a*r+c*o,e[9]=i*r+u*o,e[10]=s*r+d*o,e[11]=l*r+p*o,e}function O(e,t,n){var r=Math.sin(n),o=Math.cos(n),a=t[0],i=t[1],s=t[2],l=t[3],c=t[4],u=t[5],d=t[6],p=t[7];return t!==e&amp;&amp;(e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=a*o+c*r,e[1]=i*o+u*r,e[2]=s*o+d*r,e[3]=l*o+p*r,e[4]=c*o-a*r,e[5]=u*o-i*r,e[6]=d*o-s*r,e[7]=p*o-l*r,e}function R(e,t){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=t[0],e[13]=t[1],e[14]=t[2],e[15]=1,e}function M(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=t[1],e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=t[2],e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function D(e,t,r){var o,a,i,s=r[0],l=r[1],c=r[2],u=Math.hypot(s,l,c);return u&lt;n?null:(s*=u=1/u,l*=u,c*=u,o=Math.sin(t),i=1-(a=Math.cos(t)),e[0]=s*s*i+a,e[1]=l*s*i+c*o,e[2]=c*s*i-l*o,e[3]=0,e[4]=s*l*i-c*o,e[5]=l*l*i+a,e[6]=c*l*i+s*o,e[7]=0,e[8]=s*c*i+l*o,e[9]=l*c*i-s*o,e[10]=c*c*i+a,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e)}function E(e,t,n){var r=t[0],o=t[1],a=t[2],i=t[3],s=r+r,l=o+o,c=a+a,u=r*s,d=r*l,p=r*c,f=o*l,g=o*c,m=a*c,h=i*s,v=i*l,T=i*c;return e[0]=1-(f+m),e[1]=d+T,e[2]=p-v,e[3]=0,e[4]=d-T,e[5]=1-(u+m),e[6]=g+h,e[7]=0,e[8]=p+v,e[9]=g-h,e[10]=1-(u+f),e[11]=0,e[12]=n[0],e[13]=n[1],e[14]=n[2],e[15]=1,e}function V(e,t){var n=t[0],r=t[1],o=t[2],a=t[4],i=t[5],s=t[6],l=t[8],c=t[9],u=t[10];return e[0]=Math.hypot(n,r,o),e[1]=Math.hypot(a,i,s),e[2]=Math.hypot(l,c,u),e}function L(e,t){var n=new r(3);V(n,t);var o=1/n[0],a=1/n[1],i=1/n[2],s=t[0]*o,l=t[1]*a,c=t[2]*i,u=t[4]*o,d=t[5]*a,p=t[6]*i,f=t[8]*o,g=t[9]*a,m=t[10]*i,h=s+d+m,v=0;return h&gt;0?(v=2*Math.sqrt(h+1),e[3]=.25*v,e[0]=(p-g)/v,e[1]=(f-c)/v,e[2]=(l-u)/v):s&gt;d&amp;&amp;s&gt;m?(v=2*Math.sqrt(1+s-d-m),e[3]=(p-g)/v,e[0]=.25*v,e[1]=(l+u)/v,e[2]=(f+c)/v):d&gt;m?(v=2*Math.sqrt(1+d-s-m),e[3]=(f-c)/v,e[0]=(l+u)/v,e[1]=.25*v,e[2]=(p+g)/v):(v=2*Math.sqrt(1+m-s-d),e[3]=(l-u)/v,e[0]=(f+c)/v,e[1]=(p+g)/v,e[2]=.25*v),e}function B(e,t,n,r){var o=t[0],a=t[1],i=t[2],s=t[3],l=o+o,c=a+a,u=i+i,d=o*l,p=o*c,f=o*u,g=a*c,m=a*u,h=i*u,v=s*l,T=s*c,x=s*u,y=r[0],b=r[1],A=r[2];return e[0]=(1-(g+h))*y,e[1]=(p+x)*y,e[2]=(f-T)*y,e[3]=0,e[4]=(p-x)*b,e[5]=(1-(d+h))*b,e[6]=(m+v)*b,e[7]=0,e[8]=(f+T)*A,e[9]=(m-v)*A,e[10]=(1-(d+g))*A,e[11]=0,e[12]=n[0],e[13]=n[1],e[14]=n[2],e[15]=1,e}function F(e,t){var n=t[0],r=t[1],o=t[2],a=t[3],i=n+n,s=r+r,l=o+o,c=n*i,u=r*i,d=r*s,p=o*i,f=o*s,g=o*l,m=a*i,h=a*s,v=a*l;return e[0]=1-d-g,e[1]=u+v,e[2]=p-h,e[3]=0,e[4]=u-v,e[5]=1-c-g,e[6]=f+m,e[7]=0,e[8]=p+h,e[9]=f-m,e[10]=1-c-d,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function N(e,t,n,r,o){var a,i=1/Math.tan(t/2);return e[0]=i/n,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=i,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,null!=o&amp;&amp;o!==1/0?(a=1/(r-o),e[10]=(o+r)*a,e[14]=2*o*r*a):(e[10]=-1,e[14]=-2*r),e}var k=N;function G(e,t,n,r,o,a,i){var s=1/(t-n),l=1/(r-o),c=1/(a-i);return e[0]=-2*s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*l,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*c,e[11]=0,e[12]=(t+n)*s,e[13]=(o+r)*l,e[14]=(i+a)*c,e[15]=1,e}var U=G;function _(e,t,r,o){var a,i,s,l,c,u,d,p,f,g,m=t[0],h=t[1],v=t[2],T=o[0],y=o[1],b=o[2],A=r[0],C=r[1],S=r[2];return Math.abs(m-A)&lt;n&amp;&amp;Math.abs(h-C)&lt;n&amp;&amp;Math.abs(v-S)&lt;n?x(e):(d=m-A,p=h-C,f=v-S,a=y*(f*=g=1/Math.hypot(d,p,f))-b*(p*=g),i=b*(d*=g)-T*f,s=T*p-y*d,(g=Math.hypot(a,i,s))?(a*=g=1/g,i*=g,s*=g):(a=0,i=0,s=0),l=p*s-f*i,c=f*a-d*s,u=d*i-p*a,(g=Math.hypot(l,c,u))?(l*=g=1/g,c*=g,u*=g):(l=0,c=0,u=0),e[0]=a,e[1]=l,e[2]=d,e[3]=0,e[4]=i,e[5]=c,e[6]=p,e[7]=0,e[8]=s,e[9]=u,e[10]=f,e[11]=0,e[12]=-(a*m+i*h+s*v),e[13]=-(l*m+c*h+u*v),e[14]=-(d*m+p*h+f*v),e[15]=1,e)}function K(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e[3]=t[3]-n[3],e[4]=t[4]-n[4],e[5]=t[5]-n[5],e[6]=t[6]-n[6],e[7]=t[7]-n[7],e[8]=t[8]-n[8],e[9]=t[9]-n[9],e[10]=t[10]-n[10],e[11]=t[11]-n[11],e[12]=t[12]-n[12],e[13]=t[13]-n[13],e[14]=t[14]-n[14],e[15]=t[15]-n[15],e}var z=A,W=K,H=Object.freeze({__proto__:null,create:v,clone:function(e){var t=new r(16);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t},copy:T,fromValues:function(e,t,n,o,a,i,s,l,c,u,d,p,f,g,m,h){var v=new r(16);return v[0]=e,v[1]=t,v[2]=n,v[3]=o,v[4]=a,v[5]=i,v[6]=s,v[7]=l,v[8]=c,v[9]=u,v[10]=d,v[11]=p,v[12]=f,v[13]=g,v[14]=m,v[15]=h,v},set:function(e,t,n,r,o,a,i,s,l,c,u,d,p,f,g,m,h){return e[0]=t,e[1]=n,e[2]=r,e[3]=o,e[4]=a,e[5]=i,e[6]=s,e[7]=l,e[8]=c,e[9]=u,e[10]=d,e[11]=p,e[12]=f,e[13]=g,e[14]=m,e[15]=h,e},identity:x,transpose:y,invert:b,adjoint:function(e,t){var n=t[0],r=t[1],o=t[2],a=t[3],i=t[4],s=t[5],l=t[6],c=t[7],u=t[8],d=t[9],p=t[10],f=t[11],g=t[12],m=t[13],h=t[14],v=t[15];return e[0]=s*(p*v-f*h)-d*(l*v-c*h)+m*(l*f-c*p),e[1]=-(r*(p*v-f*h)-d*(o*v-a*h)+m*(o*f-a*p)),e[2]=r*(l*v-c*h)-s*(o*v-a*h)+m*(o*c-a*l),e[3]=-(r*(l*f-c*p)-s*(o*f-a*p)+d*(o*c-a*l)),e[4]=-(i*(p*v-f*h)-u*(l*v-c*h)+g*(l*f-c*p)),e[5]=n*(p*v-f*h)-u*(o*v-a*h)+g*(o*f-a*p),e[6]=-(n*(l*v-c*h)-i*(o*v-a*h)+g*(o*c-a*l)),e[7]=n*(l*f-c*p)-i*(o*f-a*p)+u*(o*c-a*l),e[8]=i*(d*v-f*m)-u*(s*v-c*m)+g*(s*f-c*d),e[9]=-(n*(d*v-f*m)-u*(r*v-a*m)+g*(r*f-a*d)),e[10]=n*(s*v-c*m)-i*(r*v-a*m)+g*(r*c-a*s),e[11]=-(n*(s*f-c*d)-i*(r*f-a*d)+u*(r*c-a*s)),e[12]=-(i*(d*h-p*m)-u*(s*h-l*m)+g*(s*p-l*d)),e[13]=n*(d*h-p*m)-u*(r*h-o*m)+g*(r*p-o*d),e[14]=-(n*(s*h-l*m)-i*(r*h-o*m)+g*(r*l-o*s)),e[15]=n*(s*p-l*d)-i*(r*p-o*d)+u*(r*l-o*s),e},determinant:function(e){var t=e[0],n=e[1],r=e[2],o=e[3],a=e[4],i=e[5],s=e[6],l=e[7],c=e[8],u=e[9],d=e[10],p=e[11],f=e[12],g=e[13],m=e[14],h=e[15];return(t*i-n*a)*(d*h-p*m)-(t*s-r*a)*(u*h-p*g)+(t*l-o*a)*(u*m-d*g)+(n*s-r*i)*(c*h-p*f)-(n*l-o*i)*(c*m-d*f)+(r*l-o*s)*(c*g-u*f)},multiply:A,translate:C,scale:S,rotate:P,rotateX:w,rotateY:I,rotateZ:O,fromTranslation:R,fromScaling:M,fromRotation:D,fromXRotation:function(e,t){var n=Math.sin(t),r=Math.cos(t);return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=r,e[6]=n,e[7]=0,e[8]=0,e[9]=-n,e[10]=r,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e},fromYRotation:function(e,t){var n=Math.sin(t),r=Math.cos(t);return e[0]=r,e[1]=0,e[2]=-n,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=n,e[9]=0,e[10]=r,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e},fromZRotation:function(e,t){var n=Math.sin(t),r=Math.cos(t);return e[0]=r,e[1]=n,e[2]=0,e[3]=0,e[4]=-n,e[5]=r,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e},fromRotationTranslation:E,fromQuat2:function(e,t){var n=new r(3),o=-t[0],a=-t[1],i=-t[2],s=t[3],l=t[4],c=t[5],u=t[6],d=t[7],p=o*o+a*a+i*i+s*s;return p&gt;0?(n[0]=2*(l*s+d*o+c*i-u*a)/p,n[1]=2*(c*s+d*a+u*o-l*i)/p,n[2]=2*(u*s+d*i+l*a-c*o)/p):(n[0]=2*(l*s+d*o+c*i-u*a),n[1]=2*(c*s+d*a+u*o-l*i),n[2]=2*(u*s+d*i+l*a-c*o)),E(e,t,n),e},getTranslation:function(e,t){return e[0]=t[12],e[1]=t[13],e[2]=t[14],e},getScaling:V,getRotation:L,fromRotationTranslationScale:B,fromRotationTranslationScaleOrigin:function(e,t,n,r,o){var a=t[0],i=t[1],s=t[2],l=t[3],c=a+a,u=i+i,d=s+s,p=a*c,f=a*u,g=a*d,m=i*u,h=i*d,v=s*d,T=l*c,x=l*u,y=l*d,b=r[0],A=r[1],C=r[2],S=o[0],P=o[1],w=o[2],I=(1-(m+v))*b,O=(f+y)*b,R=(g-x)*b,M=(f-y)*A,D=(1-(p+v))*A,E=(h+T)*A,V=(g+x)*C,L=(h-T)*C,B=(1-(p+m))*C;return e[0]=I,e[1]=O,e[2]=R,e[3]=0,e[4]=M,e[5]=D,e[6]=E,e[7]=0,e[8]=V,e[9]=L,e[10]=B,e[11]=0,e[12]=n[0]+S-(I*S+M*P+V*w),e[13]=n[1]+P-(O*S+D*P+L*w),e[14]=n[2]+w-(R*S+E*P+B*w),e[15]=1,e},fromQuat:F,frustum:function(e,t,n,r,o,a,i){var s=1/(n-t),l=1/(o-r),c=1/(a-i);return e[0]=2*a*s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=2*a*l,e[6]=0,e[7]=0,e[8]=(n+t)*s,e[9]=(o+r)*l,e[10]=(i+a)*c,e[11]=-1,e[12]=0,e[13]=0,e[14]=i*a*2*c,e[15]=0,e},perspectiveNO:N,perspective:k,perspectiveZO:function(e,t,n,r,o){var a,i=1/Math.tan(t/2);return e[0]=i/n,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=i,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,null!=o&amp;&amp;o!==1/0?(a=1/(r-o),e[10]=o*a,e[14]=o*r*a):(e[10]=-1,e[14]=-r),e},perspectiveFromFieldOfView:function(e,t,n,r){var o=Math.tan(t.upDegrees*Math.PI/180),a=Math.tan(t.downDegrees*Math.PI/180),i=Math.tan(t.leftDegrees*Math.PI/180),s=Math.tan(t.rightDegrees*Math.PI/180),l=2/(i+s),c=2/(o+a);return e[0]=l,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=c,e[6]=0,e[7]=0,e[8]=-(i-s)*l*.5,e[9]=(o-a)*c*.5,e[10]=r/(n-r),e[11]=-1,e[12]=0,e[13]=0,e[14]=r*n/(n-r),e[15]=0,e},orthoNO:G,ortho:U,orthoZO:function(e,t,n,r,o,a,i){var s=1/(t-n),l=1/(r-o),c=1/(a-i);return e[0]=-2*s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*l,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=c,e[11]=0,e[12]=(t+n)*s,e[13]=(o+r)*l,e[14]=a*c,e[15]=1,e},lookAt:_,targetTo:function(e,t,n,r){var o=t[0],a=t[1],i=t[2],s=r[0],l=r[1],c=r[2],u=o-n[0],d=a-n[1],p=i-n[2],f=u*u+d*d+p*p;f&gt;0&amp;&amp;(u*=f=1/Math.sqrt(f),d*=f,p*=f);var g=l*p-c*d,m=c*u-s*p,h=s*d-l*u;return(f=g*g+m*m+h*h)&gt;0&amp;&amp;(g*=f=1/Math.sqrt(f),m*=f,h*=f),e[0]=g,e[1]=m,e[2]=h,e[3]=0,e[4]=d*h-p*m,e[5]=p*g-u*h,e[6]=u*m-d*g,e[7]=0,e[8]=u,e[9]=d,e[10]=p,e[11]=0,e[12]=o,e[13]=a,e[14]=i,e[15]=1,e},str:function(e){return&quot;mat4(&quot;+e[0]+&quot;, &quot;+e[1]+&quot;, &quot;+e[2]+&quot;, &quot;+e[3]+&quot;, &quot;+e[4]+&quot;, &quot;+e[5]+&quot;, &quot;+e[6]+&quot;, &quot;+e[7]+&quot;, &quot;+e[8]+&quot;, &quot;+e[9]+&quot;, &quot;+e[10]+&quot;, &quot;+e[11]+&quot;, &quot;+e[12]+&quot;, &quot;+e[13]+&quot;, &quot;+e[14]+&quot;, &quot;+e[15]+&quot;)&quot;},frob:function(e){return Math.hypot(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])},add:function(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e[3]=t[3]+n[3],e[4]=t[4]+n[4],e[5]=t[5]+n[5],e[6]=t[6]+n[6],e[7]=t[7]+n[7],e[8]=t[8]+n[8],e[9]=t[9]+n[9],e[10]=t[10]+n[10],e[11]=t[11]+n[11],e[12]=t[12]+n[12],e[13]=t[13]+n[13],e[14]=t[14]+n[14],e[15]=t[15]+n[15],e},subtract:K,multiplyScalar:function(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e[4]=t[4]*n,e[5]=t[5]*n,e[6]=t[6]*n,e[7]=t[7]*n,e[8]=t[8]*n,e[9]=t[9]*n,e[10]=t[10]*n,e[11]=t[11]*n,e[12]=t[12]*n,e[13]=t[13]*n,e[14]=t[14]*n,e[15]=t[15]*n,e},multiplyScalarAndAdd:function(e,t,n,r){return e[0]=t[0]+n[0]*r,e[1]=t[1]+n[1]*r,e[2]=t[2]+n[2]*r,e[3]=t[3]+n[3]*r,e[4]=t[4]+n[4]*r,e[5]=t[5]+n[5]*r,e[6]=t[6]+n[6]*r,e[7]=t[7]+n[7]*r,e[8]=t[8]+n[8]*r,e[9]=t[9]+n[9]*r,e[10]=t[10]+n[10]*r,e[11]=t[11]+n[11]*r,e[12]=t[12]+n[12]*r,e[13]=t[13]+n[13]*r,e[14]=t[14]+n[14]*r,e[15]=t[15]+n[15]*r,e},exactEquals:function(e,t){return e[0]===t[0]&amp;&amp;e[1]===t[1]&amp;&amp;e[2]===t[2]&amp;&amp;e[3]===t[3]&amp;&amp;e[4]===t[4]&amp;&amp;e[5]===t[5]&amp;&amp;e[6]===t[6]&amp;&amp;e[7]===t[7]&amp;&amp;e[8]===t[8]&amp;&amp;e[9]===t[9]&amp;&amp;e[10]===t[10]&amp;&amp;e[11]===t[11]&amp;&amp;e[12]===t[12]&amp;&amp;e[13]===t[13]&amp;&amp;e[14]===t[14]&amp;&amp;e[15]===t[15]},equals:function(e,t){var r=e[0],o=e[1],a=e[2],i=e[3],s=e[4],l=e[5],c=e[6],u=e[7],d=e[8],p=e[9],f=e[10],g=e[11],m=e[12],h=e[13],v=e[14],T=e[15],x=t[0],y=t[1],b=t[2],A=t[3],C=t[4],S=t[5],P=t[6],w=t[7],I=t[8],O=t[9],R=t[10],M=t[11],D=t[12],E=t[13],V=t[14],L=t[15];return Math.abs(r-x)&lt;=n*Math.max(1,Math.abs(r),Math.abs(x))&amp;&amp;Math.abs(o-y)&lt;=n*Math.max(1,Math.abs(o),Math.abs(y))&amp;&amp;Math.abs(a-b)&lt;=n*Math.max(1,Math.abs(a),Math.abs(b))&amp;&amp;Math.abs(i-A)&lt;=n*Math.max(1,Math.abs(i),Math.abs(A))&amp;&amp;Math.abs(s-C)&lt;=n*Math.max(1,Math.abs(s),Math.abs(C))&amp;&amp;Math.abs(l-S)&lt;=n*Math.max(1,Math.abs(l),Math.abs(S))&amp;&amp;Math.abs(c-P)&lt;=n*Math.max(1,Math.abs(c),Math.abs(P))&amp;&amp;Math.abs(u-w)&lt;=n*Math.max(1,Math.abs(u),Math.abs(w))&amp;&amp;Math.abs(d-I)&lt;=n*Math.max(1,Math.abs(d),Math.abs(I))&amp;&amp;Math.abs(p-O)&lt;=n*Math.max(1,Math.abs(p),Math.abs(O))&amp;&amp;Math.abs(f-R)&lt;=n*Math.max(1,Math.abs(f),Math.abs(R))&amp;&amp;Math.abs(g-M)&lt;=n*Math.max(1,Math.abs(g),Math.abs(M))&amp;&amp;Math.abs(m-D)&lt;=n*Math.max(1,Math.abs(m),Math.abs(D))&amp;&amp;Math.abs(h-E)&lt;=n*Math.max(1,Math.abs(h),Math.abs(E))&amp;&amp;Math.abs(v-V)&lt;=n*Math.max(1,Math.abs(v),Math.abs(V))&amp;&amp;Math.abs(T-L)&lt;=n*Math.max(1,Math.abs(T),Math.abs(L))},mul:z,sub:W});function j(){var e=new r(3);return r!=Float32Array&amp;&amp;(e[0]=0,e[1]=0,e[2]=0),e}function X(e){var t=e[0],n=e[1],r=e[2];return Math.hypot(t,n,r)}function q(e,t,n){var o=new r(3);return o[0]=e,o[1]=t,o[2]=n,o}function Y(e,t,n,r){return e[0]=t,e[1]=n,e[2]=r,e}function J(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e}function Z(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e}function Q(e,t,n){return e[0]=t[0]*n[0],e[1]=t[1]*n[1],e[2]=t[2]*n[2],e}function $(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e}function ee(e,t){return e[0]=1/t[0],e[1]=1/t[1],e[2]=1/t[2],e}function te(e,t){var n=t[0],r=t[1],o=t[2],a=n*n+r*r+o*o;return a&gt;0&amp;&amp;(a=1/Math.sqrt(a)),e[0]=t[0]*a,e[1]=t[1]*a,e[2]=t[2]*a,e}function ne(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function re(e,t,n){var r=t[0],o=t[1],a=t[2],i=n[0],s=n[1],l=n[2];return e[0]=o*l-a*s,e[1]=a*i-r*l,e[2]=r*s-o*i,e}function oe(e,t,n){var r=t[0],o=t[1],a=t[2],i=n[3]*r+n[7]*o+n[11]*a+n[15];return i=i||1,e[0]=(n[0]*r+n[4]*o+n[8]*a+n[12])/i,e[1]=(n[1]*r+n[5]*o+n[9]*a+n[13])/i,e[2]=(n[2]*r+n[6]*o+n[10]*a+n[14])/i,e}function ae(e,t,n){var r=t[0],o=t[1],a=t[2];return e[0]=r*n[0]+o*n[3]+a*n[6],e[1]=r*n[1]+o*n[4]+a*n[7],e[2]=r*n[2]+o*n[5]+a*n[8],e}function ie(e,t){return e[0]===t[0]&amp;&amp;e[1]===t[1]&amp;&amp;e[2]===t[2]}function se(e,t){var r=e[0],o=e[1],a=e[2],i=t[0],s=t[1],l=t[2];return Math.abs(r-i)&lt;=n*Math.max(1,Math.abs(r),Math.abs(i))&amp;&amp;Math.abs(o-s)&lt;=n*Math.max(1,Math.abs(o),Math.abs(s))&amp;&amp;Math.abs(a-l)&lt;=n*Math.max(1,Math.abs(a),Math.abs(l))}var le=Z,ce=Q,ue=function(e,t){var n=t[0]-e[0],r=t[1]-e[1],o=t[2]-e[2];return Math.hypot(n,r,o)};function de(e,t,n){var r=t[0],o=t[1],a=t[2],i=t[3];return e[0]=n[0]*r+n[4]*o+n[8]*a+n[12]*i,e[1]=n[1]*r+n[5]*o+n[9]*a+n[13]*i,e[2]=n[2]*r+n[6]*o+n[10]*a+n[14]*i,e[3]=n[3]*r+n[7]*o+n[11]*a+n[15]*i,e}function pe(){var e=new r(4);return r!=Float32Array&amp;&amp;(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}function fe(e,t,n){n*=.5;var r=Math.sin(n);return e[0]=r*t[0],e[1]=r*t[1],e[2]=r*t[2],e[3]=Math.cos(n),e}function ge(e,t,n){var r=t[0],o=t[1],a=t[2],i=t[3],s=n[0],l=n[1],c=n[2],u=n[3];return e[0]=r*u+i*s+o*c-a*l,e[1]=o*u+i*l+a*s-r*c,e[2]=a*u+i*c+r*l-o*s,e[3]=i*u-r*s-o*l-a*c,e}function me(e,t,r,o){var a,i,s,l,c,u=t[0],d=t[1],p=t[2],f=t[3],g=r[0],m=r[1],h=r[2],v=r[3];return(i=u*g+d*m+p*h+f*v)&lt;0&amp;&amp;(i=-i,g=-g,m=-m,h=-h,v=-v),1-i&gt;n?(a=Math.acos(i),s=Math.sin(a),l=Math.sin((1-o)*a)/s,c=Math.sin(o*a)/s):(l=1-o,c=o),e[0]=l*u+c*g,e[1]=l*d+c*m,e[2]=l*p+c*h,e[3]=l*f+c*v,e}j(),function(){var e,t=(e=new r(4),r!=Float32Array&amp;&amp;(e[0]=0,e[1]=0,e[2]=0,e[3]=0),e)}();var he=function(e,t,n,o){var a=new r(4);return a[0]=e,a[1]=t,a[2]=n,a[3]=o,a};j(),q(1,0,0),q(0,1,0),pe(),pe(),i();var ve,Te=&quot;undefined&quot;!=typeof globalThis?globalThis:&quot;undefined&quot;!=typeof window?window:&quot;undefined&quot;!=typeof global?global:&quot;undefined&quot;!=typeof self?self:{},xe=function e(t,n){if(t===n)return!0;if(t&amp;&amp;n&amp;&amp;&quot;object&quot;==typeof t&amp;&amp;&quot;object&quot;==typeof n){if(t.constructor!==n.constructor)return!1;var r,o,a;if(Array.isArray(t)){if((r=t.length)!=n.length)return!1;for(o=r;0!=o--;)if(!e(t[o],n[o]))return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&amp;&amp;t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if((r=(a=Object.keys(t)).length)!==Object.keys(n).length)return!1;for(o=r;0!=o--;)if(!Object.prototype.hasOwnProperty.call(n,a[o]))return!1;for(o=r;0!=o--;){var i=a[o];if(!e(t[i],n[i]))return!1}return!0}return t!=t&amp;&amp;n!=n},ye=Object.prototype.toString,be=function(e){var t=ye.call(e),n=&quot;[object Arguments]&quot;===t;return n||(n=&quot;[object Array]&quot;!==t&amp;&amp;null!==e&amp;&amp;&quot;object&quot;==typeof e&amp;&amp;&quot;number&quot;==typeof e.length&amp;&amp;e.length&gt;=0&amp;&amp;&quot;[object Function]&quot;===ye.call(e.callee)),n};if(!Object.keys){var Ae=Object.prototype.hasOwnProperty,Ce=Object.prototype.toString,Se=be,Pe=Object.prototype.propertyIsEnumerable,we=!Pe.call({toString:null},&quot;toString&quot;),Ie=Pe.call((function(){}),&quot;prototype&quot;),Oe=[&quot;toString&quot;,&quot;toLocaleString&quot;,&quot;valueOf&quot;,&quot;hasOwnProperty&quot;,&quot;isPrototypeOf&quot;,&quot;propertyIsEnumerable&quot;,&quot;constructor&quot;],Re=function(e){var t=e.constructor;return t&amp;&amp;t.prototype===e},Me={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},De=function(){if(&quot;undefined&quot;==typeof window)return!1;for(var e in window)try{if(!Me[&quot;$&quot;+e]&amp;&amp;Ae.call(window,e)&amp;&amp;null!==window[e]&amp;&amp;&quot;object&quot;==typeof window[e])try{Re(window[e])}catch(e){return!0}}catch(e){return!0}return!1}();ve=function(e){var t=null!==e&amp;&amp;&quot;object&quot;==typeof e,n=&quot;[object Function]&quot;===Ce.call(e),r=Se(e),o=t&amp;&amp;&quot;[object String]&quot;===Ce.call(e),a=[];if(!t&amp;&amp;!n&amp;&amp;!r)throw new TypeError(&quot;Object.keys called on a non-object&quot;);var i=Ie&amp;&amp;n;if(o&amp;&amp;e.length&gt;0&amp;&amp;!Ae.call(e,0))for(var s=0;s&lt;e.length;++s)a.push(String(s));if(r&amp;&amp;e.length&gt;0)for(var l=0;l&lt;e.length;++l)a.push(String(l));else for(var c in e)i&amp;&amp;&quot;prototype&quot;===c||!Ae.call(e,c)||a.push(String(c));if(we)for(var u=function(e){if(&quot;undefined&quot;==typeof window||!De)return Re(e);try{return Re(e)}catch(e){return!1}}(e),d=0;d&lt;Oe.length;++d)u&amp;&amp;&quot;constructor&quot;===Oe[d]||!Ae.call(e,Oe[d])||a.push(Oe[d]);return a}}var Ee=ve,Ve=Array.prototype.slice,Le=be,Be=Object.keys,Fe=Be?function(e){return Be(e)}:Ee,Ne=Object.keys;Fe.shim=function(){if(Object.keys){var e=function(){var e=Object.keys(arguments);return e&amp;&amp;e.length===arguments.length}(1,2);e||(Object.keys=function(e){return Le(e)?Ne(Ve.call(e)):Ne(e)})}else Object.keys=Fe;return Object.keys||Fe};var ke=Fe,Ge=&quot;function&quot;==typeof Symbol&amp;&amp;&quot;symbol&quot;==typeof Symbol(&quot;foo&quot;),Ue=Object.prototype.toString,_e=Array.prototype.concat,Ke=Object.defineProperty,ze=Ke&amp;&amp;function(){var e={};try{for(var t in Ke(e,&quot;x&quot;,{enumerable:!1,value:e}),e)return!1;return e.x===e}catch(e){return!1}}(),We=function(e,t,n,r){var o;(!(t in e)||&quot;function&quot;==typeof(o=r)&amp;&amp;&quot;[object Function]&quot;===Ue.call(o)&amp;&amp;r())&amp;&amp;(ze?Ke(e,t,{configurable:!0,enumerable:!1,value:n,writable:!0}):e[t]=n)},He=function(e,t){var n=arguments.length&gt;2?arguments[2]:{},r=ke(t);Ge&amp;&amp;(r=_e.call(r,Object.getOwnPropertySymbols(t)));for(var o=0;o&lt;r.length;o+=1)We(e,r[o],t[r[o]],n[r[o]])};He.supportsDescriptors=!!ze;var je=He,Xe={exports:{}};&quot;undefined&quot;!=typeof self?Xe.exports=self:&quot;undefined&quot;!=typeof window?Xe.exports=window:Xe.exports=Function(&quot;return this&quot;)();var qe=Xe.exports,Ye=function(){return&quot;object&quot;==typeof Te&amp;&amp;Te&amp;&amp;Te.Math===Math&amp;&amp;Te.Array===Array?Te:qe},Je=je,Ze=Ye,Qe=je,$e=Xe.exports,et=Ye,tt=function(){var e=Ze();if(Je.supportsDescriptors){var t=Object.getOwnPropertyDescriptor(e,&quot;globalThis&quot;);t&amp;&amp;(!t.configurable||!t.enumerable&amp;&amp;t.writable&amp;&amp;globalThis===e)||Object.defineProperty(e,&quot;globalThis&quot;,{configurable:!0,enumerable:!1,value:e,writable:!0})}else&quot;object&quot;==typeof globalThis&amp;&amp;globalThis===e||(e.globalThis=e);return e},nt=et(),rt=function(){return nt};Qe(rt,{getPolyfill:et,implementation:$e,shim:tt});const ot=rt(),at={vtkObject:()=&gt;null};function it(e){if(null==e)return e;if(e.isA)return e;if(!e.vtkClass)return ot.console&amp;&amp;ot.console.error&amp;&amp;ot.console.error(&quot;Invalid VTK object&quot;),null;const t=at[e.vtkClass];if(!t)return ot.console&amp;&amp;ot.console.error&amp;&amp;ot.console.error(`No vtk class found for Object of type ${e.vtkClass}`),null;const n={...e};Object.keys(n).forEach((e=&gt;{n[e]&amp;&amp;&quot;object&quot;==typeof n[e]&amp;&amp;n[e].vtkClass&amp;&amp;(n[e]=it(n[e]))}));const r=t(n);return r&amp;&amp;r.modified&amp;&amp;r.modified(),r}it.register=function(e,t){at[e]=t};class st extends Array{push(){for(let e=0;e&lt;arguments.length;e++)this.includes(arguments[e])||super.push(arguments[e]);return this.length}}let lt=0;const ct=e=&gt;{throw new Error(`Named parameter &#x27;${e}&#x27; is missing`)},ut=Symbol(&quot;void&quot;);const dt={};function pt(){}[&quot;log&quot;,&quot;debug&quot;,&quot;info&quot;,&quot;warn&quot;,&quot;error&quot;,&quot;time&quot;,&quot;timeEnd&quot;,&quot;group&quot;,&quot;groupEnd&quot;].forEach((e=&gt;{dt[e]=pt})),ot.console=console.hasOwnProperty(&quot;log&quot;)?console:dt;const ft={debug:pt,error:ot.console.error||pt,info:ot.console.info||pt,log:ot.console.log||pt,warn:ot.console.warn||pt};function gt(e,t){ft[e]&amp;&amp;(ft[e]=t||pt)}function mt(...e){ft.log(...e)}function ht(...e){ft.info(...e)}function vt(...e){ft.debug(...e)}function Tt(...e){ft.error(...e)}function xt(...e){ft.warn(...e)}const yt={};function bt(e){yt[e]||(ft.error(e),yt[e]=!0)}const At=Object.create(null);At.Float32Array=Float32Array,At.Float64Array=Float64Array,At.Uint8Array=Uint8Array,At.Int8Array=Int8Array,At.Uint16Array=Uint16Array,At.Int16Array=Int16Array,At.Uint32Array=Uint32Array,At.Int32Array=Int32Array,At.Uint8ClampedArray=Uint8ClampedArray;try{At.BigInt64Array=BigInt64Array,At.BigUint64Array=BigUint64Array}catch{}function Ct(e,...t){return new(At[e]||Float64Array)(...t)}function St(e,...t){return(At[e]||Float64Array).from(...t)}function Pt(e){return e.charAt(0).toUpperCase()+e.slice(1)}function wt(e){return Pt(&quot;_&quot;===e[0]?e.slice(1):e)}function It(e){return e.charAt(0).toLowerCase()+e.slice(1)}function Ot(e,t=2,n=1e3){const r=[&quot;TB&quot;,&quot;GB&quot;,&quot;MB&quot;,&quot;KB&quot;];let o=Number(e),a=&quot;B&quot;;for(;o&gt;n;)o/=n,a=r.pop();return`${o.toFixed(t)} ${a}`}function Rt(e,t=&quot; &quot;){const n=[];let r=e;for(;r&gt;1e3;)n.push((&quot;000&quot;+r%1e3).slice(-3)),r=Math.floor(r/1e3);return r&gt;0&amp;&amp;n.push(r),n.reverse(),n.join(t)}function Mt(e){Object.keys(e).forEach((t=&gt;{Array.isArray(e[t])&amp;&amp;(e[t]=[].concat(e[t]))}))}function Dt(e){setTimeout(e,0)}function Et(e,t){const n=performance.now();e.finally((()=&gt;{const e=performance.now()-n;t(e)}))}function Vt(e={},t={}){Mt(t);const n=[];if(Number.isInteger(t.mtime)||(t.mtime=++lt),&quot;classHierarchy&quot;in t){if(!(t.classHierarchy instanceof st)){const e=new st;for(let n=0;n&lt;t.classHierarchy.length;n++)e.push(t.classHierarchy[n]);t.classHierarchy=e}}else t.classHierarchy=new st(&quot;vtkObject&quot;);function r(e){n[e]=null}return e.isDeleted=()=&gt;!!t.deleted,e.modified=r=&gt;{t.deleted?Tt(&quot;instance deleted - cannot call any method&quot;):r&amp;&amp;r&lt;e.getMTime()||(t.mtime=++lt,n.forEach((t=&gt;t&amp;&amp;t(e))))},e.onModified=e=&gt;{if(t.deleted)return Tt(&quot;instance deleted - cannot call any method&quot;),null;const o=n.length;return n.push(e),function(e){return Object.freeze({unsubscribe:function(){r(e)}})}(o)},e.getMTime=()=&gt;t.mtime,e.isA=e=&gt;{let n=t.classHierarchy.length;for(;n--;)if(t.classHierarchy[n]===e)return!0;return!1},e.getClassName=(e=0)=&gt;t.classHierarchy[t.classHierarchy.length-1-e],e.set=(n={},r=!1,o=!1)=&gt;{let a=!1;return Object.keys(n).forEach((i=&gt;{const s=o?null:e[`set${Pt(i)}`];s&amp;&amp;Array.isArray(n[i])&amp;&amp;s.length&gt;1?a=s(...n[i])||a:s?a=s(n[i])||a:(-1!==[&quot;mtime&quot;].indexOf(i)||r||xt(`Warning: Set value to model directly ${i}, ${n[i]}`),a=t[i]!==n[i]||a,t[i]=n[i])})),a},e.get=(...e)=&gt;{if(!e.length)return t;const n={};return e.forEach((e=&gt;{n[e]=t[e]})),n},e.getReferenceByName=e=&gt;t[e],e.delete=()=&gt;{Object.keys(t).forEach((e=&gt;delete t[e])),n.forEach(((e,t)=&gt;r(t))),t.deleted=!0},e.getState=({preserveTypedArrays:n=!1}={})=&gt;{if(t.deleted)return null;const r={preserveTypedArrays:n},o={...t,vtkClass:e.getClassName()};Object.keys(o).forEach((e=&gt;{var t;null===o[e]||void 0===o[e]||&quot;_&quot;===e[0]?delete o[e]:o[e].isA?o[e]=o[e].getState(r):Array.isArray(o[e])?o[e]=o[e].map((e=&gt;e&amp;&amp;e.isA?e.getState(r):e)):(t=o[e],Object.values(At).some((e=&gt;t instanceof e))&amp;&amp;(n||(o[e]=Array.from(o[e]))))}));const a={};return Object.keys(o).sort().forEach((e=&gt;{a[e]=o[e]})),a.mtime&amp;&amp;delete a.mtime,a},e.shallowCopy=(n,r=!1)=&gt;{if(n.getClassName()!==e.getClassName())throw new Error(`Cannot ShallowCopy ${n.getClassName()} into ${e.getClassName()}`);const o=n.get(),a=Object.keys(t).sort();Object.keys(o).sort().forEach((e=&gt;{const n=a.indexOf(e);-1===n?r&amp;&amp;vt(`add ${e} in shallowCopy`):a.splice(n,1),t[e]=o[e]})),a.length&amp;&amp;r&amp;&amp;vt(`Untouched keys: ${a.join(&quot;, &quot;)}`),e.modified()},e.toJSON=function(){return e.getState()},e}const Lt={object:(e,t,n)=&gt;function(){return{...t[n.name]}}};function Bt(e,t,n){n.forEach((n=&gt;{if(&quot;object&quot;==typeof n){const r=Lt[n.type];e[`get${wt(n.name)}`]=r?r(e,t,n):()=&gt;t[n.name]}else e[`get${wt(n)}`]=()=&gt;t[n]}))}const Ft={enum(e,t,n){const r=`_on${wt(n.name)}Changed`;return o=&gt;{if(&quot;string&quot;==typeof o){if(void 0!==n.enum[o])return t[n.name]!==n.enum[o]&amp;&amp;(t[n.name]=n.enum[o],e.modified(),!0);throw Tt(`Set Enum with invalid argument ${n}, ${o}`),new RangeError(&quot;Set Enum with invalid string argument&quot;)}if(&quot;number&quot;==typeof o){if(t[n.name]!==o){if(-1!==Object.keys(n.enum).map((e=&gt;n.enum[e])).indexOf(o)){const a=t[n.name];return t[n.name]=o,t[r]?.(e,t,o,a),e.modified(),!0}throw Tt(`Set Enum outside numeric range ${n}, ${o}`),new RangeError(&quot;Set Enum outside numeric range&quot;)}return!1}throw Tt(`Set Enum with invalid argument (String/Number) ${n}, ${o}`),new TypeError(&quot;Set Enum with invalid argument (String/Number)&quot;)}},object(e,t,n){1===n.params?.length&amp;&amp;xt(&#x27;Setter of type &quot;object&quot; with a single &quot;param&quot; field is not supported&#x27;);const r=`_on${wt(n.name)}Changed`;return(...o)=&gt;{let a;if(a=o.length&gt;1&amp;&amp;n.params?.length?n.params.reduce(((e,t,n)=&gt;Object.assign(e,{[t]:o[n]})),{}):o[0],!xe(t[n.name],a)){const o=t[n.name];return t[n.name]=a,t[r]?.(e,t,a,o),e.modified(),!0}return!1}}};function Nt(e){if(&quot;object&quot;==typeof e){const t=Ft[e.type];if(t)return(n,r)=&gt;t(n,r,e);throw Tt(`No setter for field ${e}`),new TypeError(&quot;No setter for field&quot;)}return function(t,n){const r=`_on${wt(e)}Changed`;return function(o){if(n.deleted)return Tt(&quot;instance deleted - cannot call any method&quot;),!1;if(n[e]!==o){const a=n[e.name];return n[e]=o,n[r]?.(t,n,o,a),t.modified(),!0}return!1}}}function kt(e,t,n){n.forEach((n=&gt;{&quot;object&quot;==typeof n?e[`set${wt(n.name)}`]=Nt(n)(e,t):e[`set${wt(n)}`]=Nt(n)(e,t)}))}function Gt(e,t,n){Bt(e,t,n),kt(e,t,n)}function Ut(e,t,n){n.forEach((n=&gt;{e[`get${wt(n)}`]=()=&gt;t[n]?Array.from(t[n]):t[n],e[`get${wt(n)}ByReference`]=()=&gt;t[n]}))}function _t(e,t,n,r,o=void 0){n.forEach((n=&gt;{if(t[n]&amp;&amp;r&amp;&amp;t[n].length!==r)throw new RangeError(`Invalid initial number of values for array (${n})`);const a=`_on${wt(n)}Changed`;e[`set${wt(n)}`]=(...i)=&gt;{if(t.deleted)return Tt(&quot;instance deleted - cannot call any method&quot;),!1;let s,l=i,c=!1;if(1===l.length&amp;&amp;(null==l[0]||l[0].length&gt;=0)&amp;&amp;(l=l[0],c=!0),null==l)s=t[n]!==l;else{if(r&amp;&amp;l.length!==r){if(!(l.length&lt;r&amp;&amp;void 0!==o))throw new RangeError(`Invalid number of values for array setter (${n})`);for(l=Array.from(l),c=!1;l.length&lt;r;)l.push(o)}s=null==t[n]||t[n].length!==l.length;for(let e=0;!s&amp;&amp;e&lt;l.length;++e)s=t[n][e]!==l[e];s&amp;&amp;c&amp;&amp;(l=Array.from(l))}if(s){const r=t[n.name];t[n]=l,t[a]?.(e,t,l,r),e.modified()}return s},e[`set${wt(n)}From`]=e=&gt;{const r=t[n];e.forEach(((e,t)=&gt;{r[t]=e}))}}))}function Kt(e,t,n,r,o=void 0){Ut(e,t,n),_t(e,t,n,r,o)}function zt(e,t,n){for(let e=0;e&lt;n.length;e++){const r=n[e];void 0!==t[r]&amp;&amp;(t[`_${r}`]=t[r],delete t[r])}}function Wt(e,t,n,r){function o(n,r=0){t.deleted?Tt(&quot;instance deleted - cannot call any method&quot;):r&gt;=t.numberOfInputs?Tt(`algorithm ${e.getClassName()} only has ${t.numberOfInputs} input ports. To add more input ports, use addInputData()`):(t.inputData[r]!==n||t.inputConnection[r])&amp;&amp;(t.inputData[r]=n,t.inputConnection[r]=null,e.modified&amp;&amp;e.modified())}function a(n,r=0){if(t.deleted)Tt(&quot;instance deleted - cannot call any method&quot;);else{if(r&gt;=t.numberOfInputs){let n=`algorithm ${e.getClassName()} only has `;return n+=`${t.numberOfInputs}`,n+=&quot; input ports. To add more input ports, use addInputConnection()&quot;,void Tt(n)}t.inputData[r]=null,t.inputConnection[r]=n}}function i(){let e=t.numberOfInputs;for(;e&amp;&amp;!t.inputData[e-1]&amp;&amp;!t.inputConnection[e-1];)e--;return e===t.numberOfInputs&amp;&amp;t.numberOfInputs++,e}function s(n=0){return t.deleted?(Tt(&quot;instance deleted - cannot call any method&quot;),null):(e.shouldUpdate()&amp;&amp;e.update(),t.output[n])}if(t.inputData?t.inputData=t.inputData.map(it):t.inputData=[],t.inputConnection?t.inputConnection=t.inputConnection.map(it):t.inputConnection=[],t.output?t.output=t.output.map(it):t.output=[],t.inputArrayToProcess?t.inputArrayToProcess=t.inputArrayToProcess.map(it):t.inputArrayToProcess=[],t.numberOfInputs=n,e.shouldUpdate=()=&gt;{const n=e.getMTime();let o=1/0,a=r;for(;a--;){if(!t.output[a]||t.output[a].isDeleted())return!0;const e=t.output[a].getMTime();if(e&lt;n)return!0;e&lt;o&amp;&amp;(o=e)}for(a=t.numberOfInputs;a--;)if(t.inputConnection[a]?.filter.shouldUpdate()||e.getInputData(a)?.getMTime()&gt;o)return!0;return!1},t.numberOfInputs){let n=t.numberOfInputs;for(;n--;)t.inputData.push(null),t.inputConnection.push(null);e.setInputData=o,e.setInputConnection=a,e.addInputData=function(e){t.deleted?Tt(&quot;instance deleted - cannot call any method&quot;):o(e,i())},e.addInputConnection=function(e){t.deleted?Tt(&quot;instance deleted - cannot call any method&quot;):a(e,i())},e.getInputData=function(e=0){return t.inputConnection[e]&amp;&amp;(t.inputData[e]=t.inputConnection[e]()),t.inputData[e]},e.getInputConnection=function(e=0){return t.inputConnection[e]}}r&amp;&amp;(e.getOutputData=s,e.getOutputPort=function(t=0){const n=()=&gt;s(t);return n.filter=e,n}),e.update=()=&gt;{const n=[];if(t.numberOfInputs){let r=0;for(;r&lt;t.numberOfInputs;)n[r]=e.getInputData(r),r++}e.requestData&amp;&amp;!e.isDeleted()&amp;&amp;e.shouldUpdate()&amp;&amp;e.requestData(n,t.output)},e.getNumberOfInputPorts=()=&gt;t.numberOfInputs,e.getNumberOfOutputPorts=()=&gt;r||t.output.length,e.getInputArrayToProcess=e=&gt;{const n=t.inputArrayToProcess[e],r=t.inputData[e];return n&amp;&amp;r?r[`get${n.fieldAssociation}`]().getArray(n.arrayName):null},e.setInputArrayToProcess=(e,n,r,o=&quot;Scalars&quot;)=&gt;{for(;t.inputArrayToProcess.length&lt;e;)t.inputArrayToProcess.push(null);t.inputArrayToProcess[e]={arrayName:n,fieldAssociation:r,attributeType:o}}}const Ht=Symbol(&quot;Event abort&quot;);function jt(e,t,n){const r=[],o=e.delete;let a=1;function i(e){for(let t=0;t&lt;r.length;++t){const[n]=r[t];if(n===e)return void r.splice(t,1)}}e[`invoke${wt(n)}`]=function(){if(t.deleted)return void Tt(&quot;instance deleted - cannot call any method&quot;);const n=r.slice();for(let t=0;t&lt;n.length;++t){const[,r,o]=n[t];if(r)if(o&lt;0)setTimeout((()=&gt;r.apply(e,arguments)),1-o);else{if(r.apply(e,arguments)===Ht)break}}},e[`on${wt(n)}`]=(e,o=0)=&gt;{if(!e.apply)return console.error(`Invalid callback for event ${n}`),null;if(t.deleted)return Tt(&quot;instance deleted - cannot call any method&quot;),null;const s=a++;return r.push([s,e,o]),r.sort(((e,t)=&gt;t[2]-e[2])),function(e){return Object.freeze({unsubscribe:function(){i(e)}})}(s)},e.delete=()=&gt;{o(),r.forEach((([e])=&gt;i(e)))}}function Xt(e,t){const n=(t={})=&gt;{const n={};return e(n,{},t),Object.freeze(n)};return t&amp;&amp;it.register(t,n),n}function qt(...e){return(...t)=&gt;e.filter((e=&gt;!!e)).map((e=&gt;e(...t)))}function Yt(e){return e&amp;&amp;e.isA&amp;&amp;e.isA(&quot;vtkObject&quot;)}function Jt(e,t,n=[],r=[]){if(Yt(e)){if(r.indexOf(e)&gt;=0)return n;r.push(e);const o=t(e);void 0!==o&amp;&amp;n.push(o);const a=e.get();Object.keys(a).forEach((e=&gt;{const o=a[e];Array.isArray(o)?o.forEach((e=&gt;{Jt(e,t,n,r)})):Jt(o,t,n,r)}))}return n}function Zt(e,t,n){let r;const o=(...o)=&gt;{const a=this,i=n&amp;&amp;!r;clearTimeout(r),r=setTimeout((()=&gt;{r=null,n||e.apply(a,o)}),t),i&amp;&amp;e.apply(a,o)};return o.cancel=()=&gt;clearTimeout(r),o}function Qt(e,t){let n=!1,r=null;function o(){n=!1,null!==r&amp;&amp;(a(...r),r=null)}function a(...a){n?r=a:(n=!0,e(...a),setTimeout(o,t))}return a}function $t(e,t,n={}){t.keystore=Object.assign(t.keystore||{},n),e.setKey=(e,n)=&gt;{t.keystore[e]=n},e.getKey=e=&gt;t.keystore[e],e.getAllKeys=()=&gt;Object.keys(t.keystore),e.deleteKey=e=&gt;delete t.keystore[e],e.clearKeystore=()=&gt;e.getAllKeys().forEach((e=&gt;delete t.keystore[e]))}let en=1;const tn=&quot;__root__&quot;;function nn(e,t){$t(e,t);const n=e.delete;t.proxyId=&quot;&quot;+en++,t.ui=JSON.parse(JSON.stringify(t.ui||[])),Bt(e,t,[&quot;proxyId&quot;,&quot;proxyGroup&quot;,&quot;proxyName&quot;]),Gt(e,t,[&quot;proxyManager&quot;]);const r={},o={};function a(e,t){o[t]||(o[t]=[]);const n=o[t];for(let t=0;t&lt;e.length;t++)n.push(e[t].name),r[e[t].name]=e[t],e[t].children&amp;&amp;e[t].children.length&amp;&amp;a(e[t].children,e[t].name)}function i(n=tn){const r=[],a=t.proxyId,s=function(e=tn){return o[e]}(n)||[];for(let t=0;t&lt;s.length;t++){const n=s[t],o=e[`get${wt(n)}`],l={id:a,name:n,value:o?o():void 0},c=i(n);c.length&amp;&amp;(l.children=c),r.push(l)}return r}a(t.ui,tn),e.updateUI=n=&gt;{t.ui=JSON.parse(JSON.stringify(n||[])),Object.keys(r).forEach((e=&gt;delete r[e])),Object.keys(o).forEach((e=&gt;delete o[e])),a(t.ui,tn),e.modified()},e.updateProxyProperty=(e,t)=&gt;{const n=r[e];n?Object.assign(n,t):r[e]={...t}},e.activate=()=&gt;{if(t.proxyManager){const n=`setActive${wt(e.getProxyGroup().slice(0,-1))}`;t.proxyManager[n]&amp;&amp;t.proxyManager[n](e)}},t.propertyLinkSubscribers={},e.registerPropertyLinkForGC=(e,n)=&gt;{n in t.propertyLinkSubscribers||(t.propertyLinkSubscribers[n]=[]),t.propertyLinkSubscribers[n].push(e)},e.gcPropertyLinks=n=&gt;{const r=t.propertyLinkSubscribers[n]||[];for(;r.length;)r.pop().unbind(e)},t.propertyLinkMap={},e.getPropertyLink=(e,n=!1)=&gt;{if(t.propertyLinkMap[e])return t.propertyLinkMap[e];let r=null;const o=[];let a=0,i=!1;function s(n,s=!1){if(i)return null;const l=[];let c=null;for(a=o.length;a--;){const e=o[a];e.instance===n?c=e:l.push(e)}if(!c)return null;const u=c.instance[`get${wt(c.propertyName)}`]();if(!function(e,t){if(e===t)return!0;if(Array.isArray(e)&amp;&amp;Array.isArray(t)){if(e.length!==t.length)return!1;for(let n=0;n&lt;e.length;n++)if(e[n]!==t[n])return!1;return!0}return!1}(u,r)||s){for(r=u,i=!0;l.length;){const e=l.pop();e.instance.set({[e.propertyName]:r})}i=!1}return t.propertyLinkMap[e].persistent&amp;&amp;(t.propertyLinkMap[e].value=u),u}function l(e,t){const n=[];for(a=o.length;a--;){const r=o[a];r.instance!==e||r.propertyName!==t&amp;&amp;void 0!==t||(r.subscription.unsubscribe(),n.push(a))}for(;n.length;)o.splice(n.pop(),1)}const c={bind:function(n,r,a=!1){const i=n.onModified(s),c=o[0];return o.push({instance:n,propertyName:r,subscription:i}),a&amp;&amp;(t.propertyLinkMap[e].persistent&amp;&amp;void 0!==t.propertyLinkMap[e].value?n.set({[r]:t.propertyLinkMap[e].value}):c&amp;&amp;s(c.instance,!0)),{unsubscribe:()=&gt;l(n,r)}},unbind:l,unsubscribe:function(){for(;o.length;)o.pop().subscription.unsubscribe()},persistent:n};return t.propertyLinkMap[e]=c,c},e.listPropertyNames=()=&gt;i().map((e=&gt;e.name)),e.getPropertyByName=e=&gt;i().find((t=&gt;t.name===e)),e.getPropertyDomainByName=e=&gt;(r[e]||{}).domain,e.getProxySection=()=&gt;({id:t.proxyId,name:t.proxyGroup,ui:t.ui,properties:i()}),e.delete=()=&gt;{const r=Object.keys(t.propertyLinkMap);let o=r.length;for(;o--;)t.propertyLinkMap[r[o]].unsubscribe();Object.keys(t.propertyLinkSubscribers).forEach(e.gcPropertyLinks),n()},e.getState=()=&gt;null,Dt((function(){if(t.links)for(let n=0;n&lt;t.links.length;n++){const{link:r,property:o,persistent:a,updateOnBind:i,type:s}=t.links[n];if(&quot;application&quot;===s){const n=t.proxyManager.getPropertyLink(r,a);e.registerPropertyLinkForGC(n,&quot;application&quot;),n.bind(e,o,i)}}}))}function rn(e,t,n){const r=e.delete,o=[],a=Object.keys(n);let i=a.length;for(;i--;){const r=a[i],{modelKey:s,property:l,modified:c=!0}=n[r],u=wt(l),d=wt(r);e[`get${d}`]=t[s][`get${u}`],e[`set${d}`]=t[s][`set${u}`],c&amp;&amp;o.push(t[s].onModified(e.modified))}e.delete=()=&gt;{for(;o.length;)o.pop().unsubscribe();r()}}function on(e,t,n={},r={}){function o(e){const n=Object.keys(e);let r=n.length;for(;r--;){const o=n[r];t[o].set(e[o])}}t.this=e;const a=Object.keys(r);let i=a.length;for(;i--;){const s=a[i];t[s]=r[s];const l=n[s];e[`set${wt(s)}`]=n=&gt;{if(n!==t[s]){t[s]=n;o(l[n]),e.modified()}}}a.length&amp;&amp;Bt(e,t,a)}function an(e){let t=0,n=0,r=0,o=0;return&quot;detail&quot;in e&amp;&amp;(n=e.detail),&quot;wheelDelta&quot;in e&amp;&amp;(n=-e.wheelDelta/120),&quot;wheelDeltaY&quot;in e&amp;&amp;(n=-e.wheelDeltaY/120),&quot;wheelDeltaX&quot;in e&amp;&amp;(t=-e.wheelDeltaX/120),&quot;axis&quot;in e&amp;&amp;e.axis===e.HORIZONTAL_AXIS&amp;&amp;(t=n,n=0),r=10*t,o=10*n,&quot;deltaY&quot;in e&amp;&amp;(o=e.deltaY),&quot;deltaX&quot;in e&amp;&amp;(r=e.deltaX),(r||o)&amp;&amp;e.deltaMode&amp;&amp;(1===e.deltaMode?(r*=40,o*=40):(r*=800,o*=800)),r&amp;&amp;!t&amp;&amp;(t=r&lt;1?-1:1),o&amp;&amp;!n&amp;&amp;(n=o&lt;1?-1:1),{spinX:t,spinY:n||t,pixelX:r,pixelY:o||r}}var sn={algo:Wt,capitalize:Pt,chain:qt,debounce:Zt,enumToString:function(e,t){return Object.keys(e).find((n=&gt;e[n]===t))},event:jt,EVENT_ABORT:Ht,formatBytesToProperUnit:Ot,formatNumbersWithThousandSeparator:Rt,get:Bt,getArray:Ut,getCurrentGlobalMTime:function(){return lt},getStateArrayMapFunc:function(e){return e&amp;&amp;e.isA?e.getState():e},isVtkObject:Yt,keystore:$t,measurePromiseExecution:Et,moveToProtected:zt,newInstance:Xt,newTypedArray:Ct,newTypedArrayFrom:St,normalizeWheel:an,obj:Vt,proxy:nn,proxyPropertyMapping:rn,proxyPropertyState:on,safeArrays:Mt,set:kt,setArray:_t,setGet:Gt,setGetArray:Kt,setImmediate:Dt,setLoggerFunction:gt,throttle:Qt,traverseInstanceTree:Jt,TYPED_ARRAYS:At,uncapitalize:It,VOID:ut,vtkDebugMacro:vt,vtkErrorMacro:Tt,vtkInfoMacro:ht,vtkLogMacro:mt,vtkOnceErrorMacro:bt,vtkWarningMacro:xt,objectSetterMap:Ft,requiredParam:ct},ln=Object.freeze({__proto__:null,requiredParam:ct,VOID:ut,setLoggerFunction:gt,vtkLogMacro:mt,vtkInfoMacro:ht,vtkDebugMacro:vt,vtkErrorMacro:Tt,vtkWarningMacro:xt,vtkOnceErrorMacro:bt,TYPED_ARRAYS:At,newTypedArray:Ct,newTypedArrayFrom:St,capitalize:Pt,_capitalize:wt,uncapitalize:It,formatBytesToProperUnit:Ot,formatNumbersWithThousandSeparator:Rt,setImmediateVTK:Dt,measurePromiseExecution:Et,obj:Vt,get:Bt,set:kt,setGet:Gt,getArray:Ut,setArray:_t,setGetArray:Kt,moveToProtected:zt,algo:Wt,EVENT_ABORT:Ht,event:jt,newInstance:Xt,chain:qt,isVtkObject:Yt,traverseInstanceTree:Jt,debounce:Zt,throttle:Qt,keystore:$t,proxy:nn,proxyPropertyMapping:rn,proxyPropertyState:on,normalizeWheel:an,default:sn});const{vtkErrorMacro:cn}=sn;const un={renderable:null,myFactory:null,children:[],visited:!1};function dn(e,t,n={}){Object.assign(t,un,n),sn.obj(e,t),sn.event(e,t,&quot;event&quot;),t._renderableChildMap=new Map,sn.get(e,t,[&quot;visited&quot;]),sn.setGet(e,t,[&quot;_parent&quot;,&quot;renderable&quot;,&quot;myFactory&quot;]),sn.getArray(e,t,[&quot;children&quot;]),sn.moveToProtected(e,t,[&quot;parent&quot;]),function(e,t){function n(e,n){for(let r=0;r&lt;t.children.length;++r){const o=(n+1+r)%t.children.length;if(t.children[o]===e)return t.children[o]=t.children[n],t.children[n]=e,!0}return!1}t.classHierarchy.push(&quot;vtkViewNode&quot;),e.build=e=&gt;{},e.render=e=&gt;{},e.traverse=n=&gt;{const r=n.getTraverseOperation(),o=e[r];if(o)o(n);else{e.apply(n,!0);for(let e=0;e&lt;t.children.length;e++)t.children[e].traverse(n);e.apply(n,!1)}},e.apply=(t,n)=&gt;{const r=e[t.getOperation()];r&amp;&amp;r(n,t)},e.getViewNodeFor=(n,r=null)=&gt;{if(r&amp;&amp;r.renderable===n)return r;if(t.renderable===n)return e;for(let e=0;e&lt;t.children.length;++e){const r=t.children[e].getViewNodeFor(n);if(r)return r}},e.getFirstAncestorOfType=e=&gt;t._parent?t._parent.isA(e)?t._parent:t._parent.getFirstAncestorOfType(e):null,e.getLastAncestorOfType=e=&gt;{if(!t._parent)return null;return t._parent.getLastAncestorOfType(e)||(t._parent.isA(e)?t._parent:null)},e.addMissingNode=n=&gt;{if(!n)return;const r=t._renderableChildMap.get(n);if(void 0!==r)return r.setVisited(!0),r;const o=e.createViewNode(n);return o?(o.setParent(e),o.setVisited(!0),t._renderableChildMap.set(n,o),t.children.push(o),o):void 0},e.addMissingNodes=(r,o=!1)=&gt;{if(!r||!r.length)return;let a;for(let i=0;i&lt;r.length;++i){const s=r[i],l=e.addMissingNode(s);o&amp;&amp;void 0!==l&amp;&amp;(void 0===a?a=t.children.lastIndexOf(l):t.children[a]!==l&amp;&amp;n(t.children,l),a++)}},e.addMissingChildren=n=&gt;{if(n&amp;&amp;n.length)for(let r=0;r&lt;n.length;++r){const o=n[r];if(-1===t.children.indexOf(o)){o.setParent(e),t.children.push(o);const n=o.getRenderable();n&amp;&amp;t._renderableChildMap.set(n,o)}o.setVisited(!0)}},e.removeNode=e=&gt;{const n=t.children.findIndex((t=&gt;t===e));if(n&lt;0)return!1;const r=e.getRenderable();return r&amp;&amp;t._renderableChildMap.delete(r),e.delete(),t.children.splice(n,1),!0},e.prepareNodes=()=&gt;{for(let e=0;e&lt;t.children.length;++e)t.children[e].setVisited(!1)},e.setVisited=e=&gt;{t.visited=e},e.removeUnusedNodes=()=&gt;{let e=0;for(let n=0;n&lt;t.children.length;++n){const r=t.children[n];if(r.getVisited())t.children[e++]=r,r.setVisited(!1);else{const e=r.getRenderable();e&amp;&amp;t._renderableChildMap.delete(e),r.delete()}}t.children.length=e},e.createViewNode=e=&gt;{if(!t.myFactory)return cn(&quot;Cannot create view nodes without my own factory&quot;),null;const n=t.myFactory.createNode(e);return n&amp;&amp;n.setRenderable(e),n};const r=e.delete;e.delete=()=&gt;{for(let e=0;e&lt;t.children.length;e++)t.children[e].delete();r()}}(e,t)}var pn={newInstance:sn.newInstance(dn,&quot;vtkViewNode&quot;),extend:dn,PASS_TYPES:[&quot;Build&quot;,&quot;Render&quot;]};const fn={};function gn(e,t,n={}){Object.assign(t,fn,n),sn.obj(e,t),function(e,t){t.overrides||(t.overrides={}),t.classHierarchy.push(&quot;vtkViewNodeFactory&quot;),e.createNode=n=&gt;{if(n.isDeleted())return null;let r=0,o=n.getClassName(r++),a=!1;const i=Object.keys(t.overrides);for(;o&amp;&amp;!a;)-1!==i.indexOf(o)?a=!0:o=n.getClassName(r++);if(!a)return null;const s=t.overrides[o]();return s.setMyFactory(e),s}}(e,t)}var mn={newInstance:sn.newInstance(gn,&quot;vtkViewNodeFactory&quot;),extend:gn};const hn=Object.create(null);function vn(e,t){hn[e]=t}const Tn={};function xn(e,t,n={}){Object.assign(t,Tn,n),t.overrides=hn,mn.extend(e,t,n),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLViewNodeFactory&quot;)}(0,t)}var yn={newInstance:sn.newInstance(xn,&quot;vtkOpenGLViewNodeFactory&quot;),extend:xn};const bn={context:null,lastRenderer:null,keyMatrixTime:null,keyMatrices:null};vn(&quot;vtkCamera&quot;,Xt((function(e,t,n={}){Object.assign(t,bn,n),pn.extend(e,t,n),t.keyMatrixTime={},Vt(t.keyMatrixTime),t.keyMatrices={normalMatrix:new Float64Array(9),vcpc:new Float64Array(16),wcvc:new Float64Array(16),wcpc:new Float64Array(16)},Gt(e,t,[&quot;context&quot;,&quot;keyMatrixTime&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLCamera&quot;),e.buildPass=n=&gt;{n&amp;&amp;(t._openGLRenderer=e.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;),t._openGLRenderWindow=t._openGLRenderer.getParent(),t.context=t._openGLRenderWindow.getContext())},e.opaquePass=e=&gt;{if(e){const e=t._openGLRenderer.getTiledSizeAndOrigin();t.context.viewport(e.lowerLeftU,e.lowerLeftV,e.usize,e.vsize),t.context.scissor(e.lowerLeftU,e.lowerLeftV,e.usize,e.vsize)}},e.translucentPass=e.opaquePass,e.zBufferPass=e.opaquePass,e.opaqueZBufferPass=e.opaquePass,e.volumePass=e.opaquePass,e.getKeyMatrices=n=&gt;{if(n!==t.lastRenderer||t._openGLRenderWindow.getMTime()&gt;t.keyMatrixTime.getMTime()||e.getMTime()&gt;t.keyMatrixTime.getMTime()||n.getMTime()&gt;t.keyMatrixTime.getMTime()||t.renderable.getMTime()&gt;t.keyMatrixTime.getMTime()){T(t.keyMatrices.wcvc,t.renderable.getViewMatrix()),s(t.keyMatrices.normalMatrix,t.keyMatrices.wcvc),d(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix),y(t.keyMatrices.wcvc,t.keyMatrices.wcvc);const e=t._openGLRenderer.getAspectRatio();T(t.keyMatrices.vcpc,t.renderable.getProjectionMatrix(e,-1,1)),y(t.keyMatrices.vcpc,t.keyMatrices.vcpc),A(t.keyMatrices.wcpc,t.keyMatrices.vcpc,t.keyMatrices.wcvc),t.keyMatrixTime.modified(),t.lastRenderer=n}return t.keyMatrices}}(e,t)})));const{vtkDebugMacro:An}=ln;const Cn={context:null,_openGLRenderWindow:null,selector:null};vn(&quot;vtkRenderer&quot;,Xt((function(e,t,n={}){Object.assign(t,Cn,n),pn.extend(e,t,n),Bt(e,t,[&quot;shaderCache&quot;]),Gt(e,t,[&quot;selector&quot;]),zt(0,t,[&quot;openGLRenderWindow&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLRenderer&quot;),e.buildPass=n=&gt;{if(n){if(!t.renderable)return;e.updateLights(),e.prepareNodes(),e.addMissingNode(t.renderable.getActiveCamera()),e.addMissingNodes(t.renderable.getViewPropsWithNestedProps(),!0),e.removeUnusedNodes()}},e.updateLights=()=&gt;{let e=0;const n=t.renderable.getLightsByReference();for(let t=0;t&lt;n.length;++t)n[t].getSwitch()&gt;0&amp;&amp;e++;return e||(An(&quot;No lights are on, creating one.&quot;),t.renderable.createLight()),e},e.zBufferPass=n=&gt;{if(n){let n=0;const r=t.context;t.renderable.getTransparent()||(t.context.clearColor(1,0,0,1),n|=r.COLOR_BUFFER_BIT),t.renderable.getPreserveDepthBuffer()||(r.clearDepth(1),n|=r.DEPTH_BUFFER_BIT,t.context.depthMask(!0));const o=e.getTiledSizeAndOrigin();r.enable(r.SCISSOR_TEST),r.scissor(o.lowerLeftU,o.lowerLeftV,o.usize,o.vsize),r.viewport(o.lowerLeftU,o.lowerLeftV,o.usize,o.vsize),r.colorMask(!0,!0,!0,!0),n&amp;&amp;r.clear(n),r.enable(r.DEPTH_TEST)}},e.opaqueZBufferPass=t=&gt;e.zBufferPass(t),e.cameraPass=t=&gt;{t&amp;&amp;e.clear()},e.getAspectRatio=()=&gt;{const e=t._parent.getSizeByReference(),n=t.renderable.getViewportByReference();return e[0]*(n[2]-n[0])/((n[3]-n[1])*e[1])},e.getTiledSizeAndOrigin=()=&gt;{const e=t.renderable.getViewportByReference(),n=[0,0,1,1],r=e[0]-n[0],o=e[1]-n[1],a=t._parent.normalizedDisplayToDisplay(r,o),i=Math.round(a[0]),s=Math.round(a[1]),l=e[2]-n[0],c=e[3]-n[1],u=t._parent.normalizedDisplayToDisplay(l,c);let d=Math.round(u[0])-i,p=Math.round(u[1])-s;return d&lt;0&amp;&amp;(d=0),p&lt;0&amp;&amp;(p=0),{usize:d,vsize:p,lowerLeftU:i,lowerLeftV:s}},e.clear=()=&gt;{let n=0;const r=t.context;if(!t.renderable.getTransparent()){const e=t.renderable.getBackgroundByReference();r.clearColor(e[0],e[1],e[2],e[3]),n|=r.COLOR_BUFFER_BIT}t.renderable.getPreserveDepthBuffer()||(r.clearDepth(1),n|=r.DEPTH_BUFFER_BIT,r.depthMask(!0)),r.colorMask(!0,!0,!0,!0);const o=e.getTiledSizeAndOrigin();r.enable(r.SCISSOR_TEST),r.scissor(o.lowerLeftU,o.lowerLeftV,o.usize,o.vsize),r.viewport(o.lowerLeftU,o.lowerLeftV,o.usize,o.vsize),n&amp;&amp;r.clear(n),r.enable(r.DEPTH_TEST)},e.releaseGraphicsResources=()=&gt;{null!==t.selector&amp;&amp;t.selector.releaseGraphicsResources(),t.renderable&amp;&amp;t.renderable.getViewProps().forEach((e=&gt;{e.modified()}))},e.setOpenGLRenderWindow=n=&gt;{t._openGLRenderWindow!==n&amp;&amp;(e.releaseGraphicsResources(),t._openGLRenderWindow=n,t.context=null,n&amp;&amp;(t.context=t._openGLRenderWindow.getContext()))}}(e,t)}),&quot;vtkOpenGLRenderer&quot;));const Sn={context:null,keyMatrixTime:null,keyMatrices:null,activeTextures:null};vn(&quot;vtkActor&quot;,Xt((function(e,t,n={}){Object.assign(t,Sn,n),pn.extend(e,t,n),t.keyMatrixTime={},Vt(t.keyMatrixTime,{mtime:0}),t.keyMatrices={normalMatrix:c(new Float64Array(9)),mcwc:x(new Float64Array(16))},Gt(e,t,[&quot;context&quot;]),Bt(e,t,[&quot;activeTextures&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLActor&quot;),e.buildPass=n=&gt;{if(n){t._openGLRenderWindow=e.getLastAncestorOfType(&quot;vtkOpenGLRenderWindow&quot;),t._openGLRenderer=e.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;),t.context=t._openGLRenderWindow.getContext(),e.prepareNodes(),e.addMissingNodes(t.renderable.getTextures()),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes(),t.ogltextures=null,t.activeTextures=null;for(let e=0;e&lt;t.children.length;e++){const n=t.children[e];n.isA(&quot;vtkOpenGLTexture&quot;)?(t.ogltextures||(t.ogltextures=[]),t.ogltextures.push(n)):t.oglmapper=n}}},e.traverseZBufferPass=n=&gt;{t.renderable&amp;&amp;t.renderable.getNestedVisibility()&amp;&amp;(!t._openGLRenderer.getSelector()||t.renderable.getNestedPickable())&amp;&amp;(e.apply(n,!0),t.oglmapper.traverse(n),e.apply(n,!1))},e.traverseOpaqueZBufferPass=t=&gt;e.traverseOpaquePass(t),e.traverseOpaquePass=n=&gt;{t.renderable&amp;&amp;t.renderable.getNestedVisibility()&amp;&amp;t.renderable.getIsOpaque()&amp;&amp;(!t._openGLRenderer.getSelector()||t.renderable.getNestedPickable())&amp;&amp;(e.apply(n,!0),t.oglmapper.traverse(n),e.apply(n,!1))},e.traverseTranslucentPass=n=&gt;{!t.renderable||!t.renderable.getNestedVisibility()||t.renderable.getIsOpaque()||t._openGLRenderer.getSelector()&amp;&amp;!t.renderable.getNestedPickable()||(e.apply(n,!0),t.oglmapper.traverse(n),e.apply(n,!1))},e.activateTextures=()=&gt;{if(t.ogltextures){t.activeTextures=[];for(let e=0;e&lt;t.ogltextures.length;e++){const n=t.ogltextures[e];n.render(),n.getHandle()&amp;&amp;t.activeTextures.push(n)}}},e.queryPass=(e,n)=&gt;{if(e){if(!t.renderable||!t.renderable.getVisibility())return;t.renderable.getIsOpaque()?n.incrementOpaqueActorCount():n.incrementTranslucentActorCount()}},e.zBufferPass=(t,n)=&gt;e.opaquePass(t,n),e.opaqueZBufferPass=(t,n)=&gt;e.opaquePass(t,n),e.opaquePass=(n,r)=&gt;{if(n)t.context.depthMask(!0),e.activateTextures();else if(t.activeTextures)for(let e=0;e&lt;t.activeTextures.length;e++)t.activeTextures[e].deactivate()},e.translucentPass=(n,r)=&gt;{if(n)t.context.depthMask(t._openGLRenderer.getSelector()&amp;&amp;t.renderable.getNestedPickable()),e.activateTextures();else if(t.activeTextures)for(let e=0;e&lt;t.activeTextures.length;e++)t.activeTextures[e].deactivate()},e.getKeyMatrices=()=&gt;(t.renderable.getMTime()&gt;t.keyMatrixTime.getMTime()&amp;&amp;(t.renderable.computeMatrix(),T(t.keyMatrices.mcwc,t.renderable.getMatrix()),y(t.keyMatrices.mcwc,t.keyMatrices.mcwc),t.renderable.getIsIdentity()?c(t.keyMatrices.normalMatrix):(s(t.keyMatrices.normalMatrix,t.keyMatrices.mcwc),d(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix),u(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix)),t.keyMatrixTime.modified()),t.keyMatrices)}(e,t)})));const Pn={context:null,activeTextures:null};function wn(e,t){return null==e||null==t?NaN:e&lt;t?-1:e&gt;t?1:e&gt;=t?0:NaN}function In(e){let t=e,n=e,r=e;function o(e,t,o=0,a=e.length){if(o&lt;a){if(0!==n(t,t))return a;do{const n=o+a&gt;&gt;&gt;1;r(e[n],t)&lt;0?o=n+1:a=n}while(o&lt;a)}return o}return 1===e.length&amp;&amp;(t=(t,n)=&gt;e(t)-n,n=wn,r=(t,n)=&gt;wn(e(t),n)),{left:o,center:function(e,n,r=0,a=e.length){const i=o(e,n,r,a-1);return i&gt;r&amp;&amp;t(e[i-1],n)&gt;-t(e[i],n)?i-1:i},right:function(e,t,o=0,a=e.length){if(o&lt;a){if(0!==n(t,t))return a;do{const n=o+a&gt;&gt;&gt;1;r(e[n],t)&lt;=0?o=n+1:a=n}while(o&lt;a)}return o}}}vn(&quot;vtkActor2D&quot;,Xt((function(e,t,n={}){Object.assign(t,Pn,n),pn.extend(e,t,n),Gt(e,t,[&quot;context&quot;]),Bt(e,t,[&quot;activeTextures&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLActor2D&quot;),e.buildPass=n=&gt;{if(n){if(!t.renderable)return;t._openGLRenderWindow=e.getLastAncestorOfType(&quot;vtkOpenGLRenderWindow&quot;),t._openGLRenderer=e.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;),t.context=t._openGLRenderWindow.getContext(),e.prepareNodes(),e.addMissingNodes(t.renderable.getTextures()),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes(),t.ogltextures=null,t.activeTextures=null;for(let e=0;e&lt;t.children.length;e++){const n=t.children[e];n.isA(&quot;vtkOpenGLTexture&quot;)?(t.ogltextures||(t.ogltextures=[]),t.ogltextures.push(n)):t.oglmapper=n}}},e.queryPass=(e,n)=&gt;{if(e){if(!t.renderable||!t.renderable.getVisibility())return;n.incrementOverlayActorCount()}},e.traverseOpaquePass=n=&gt;{t.oglmapper&amp;&amp;t.renderable&amp;&amp;t.renderable.getNestedVisibility()&amp;&amp;t.renderable.getIsOpaque()&amp;&amp;(!t._openGLRenderer.getSelector()||t.renderable.getNestedPickable())&amp;&amp;(e.apply(n,!0),t.oglmapper.traverse(n),e.apply(n,!1))},e.traverseTranslucentPass=n=&gt;{t.oglmapper&amp;&amp;t.renderable&amp;&amp;t.renderable.getNestedVisibility()&amp;&amp;!t.renderable.getIsOpaque()&amp;&amp;(!t._openGLRenderer.getSelector()||t.renderable.getNestedPickable())&amp;&amp;(e.apply(n,!0),t.oglmapper.traverse(n),e.apply(n,!1))},e.traverseOverlayPass=n=&gt;{t.oglmapper&amp;&amp;t.renderable&amp;&amp;t.renderable.getNestedVisibility()&amp;&amp;(!t._openGLRenderer.getSelector()||t.renderable.getNestedPickable)&amp;&amp;(e.apply(n,!0),t.oglmapper.traverse(n),e.apply(n,!1))},e.activateTextures=()=&gt;{if(t.ogltextures){t.activeTextures=[];for(let e=0;e&lt;t.ogltextures.length;e++){const n=t.ogltextures[e];n.render(),n.getHandle()&amp;&amp;t.activeTextures.push(n)}}},e.opaquePass=(n,r)=&gt;{if(n)t.context.depthMask(!0),e.activateTextures();else if(t.activeTextures)for(let e=0;e&lt;t.activeTextures.length;e++)t.activeTextures[e].deactivate()},e.translucentPass=(n,r)=&gt;{if(n)t.context.depthMask(!1),e.activateTextures();else if(t.activeTextures)for(let e=0;e&lt;t.activeTextures.length;e++)t.activeTextures[e].deactivate()},e.overlayPass=(n,r)=&gt;{if(n)t.context.depthMask(!0),e.activateTextures();else if(t.activeTextures)for(let e=0;e&lt;t.activeTextures.length;e++)t.activeTextures[e].deactivate()}}(e,t)})));const On=In(wn).right;In((function(e){return null===e?NaN:+e})).center;var Rn=On,Mn=Math.sqrt(50),Dn=Math.sqrt(10),En=Math.sqrt(2);function Vn(e,t,n){var r=(t-e)/Math.max(0,n),o=Math.floor(Math.log(r)/Math.LN10),a=r/Math.pow(10,o);return o&gt;=0?(a&gt;=Mn?10:a&gt;=Dn?5:a&gt;=En?2:1)*Math.pow(10,o):-Math.pow(10,-o)/(a&gt;=Mn?10:a&gt;=Dn?5:a&gt;=En?2:1)}function Ln(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e)}return this}function Bn(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function Fn(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function Nn(){}var kn=.7,Gn=1/kn,Un=&quot;\\\\s*([+-]?\\\\d+)\\\\s*&quot;,_n=&quot;\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*&quot;,Kn=&quot;\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*&quot;,zn=/^#([0-9a-f]{3,8})$/,Wn=new RegExp(`^rgb\\\\(${Un},${Un},${Un}\\\\)$`),Hn=new RegExp(`^rgb\\\\(${Kn},${Kn},${Kn}\\\\)$`),jn=new RegExp(`^rgba\\\\(${Un},${Un},${Un},${_n}\\\\)$`),Xn=new RegExp(`^rgba\\\\(${Kn},${Kn},${Kn},${_n}\\\\)$`),qn=new RegExp(`^hsl\\\\(${_n},${Kn},${Kn}\\\\)$`),Yn=new RegExp(`^hsla\\\\(${_n},${Kn},${Kn},${_n}\\\\)$`),Jn={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function Zn(){return this.rgb().formatHex()}function Qn(){return this.rgb().formatRgb()}function $n(e){var t,n;return e=(e+&quot;&quot;).trim().toLowerCase(),(t=zn.exec(e))?(n=t[1].length,t=parseInt(t[1],16),6===n?er(t):3===n?new rr(t&gt;&gt;8&amp;15|t&gt;&gt;4&amp;240,t&gt;&gt;4&amp;15|240&amp;t,(15&amp;t)&lt;&lt;4|15&amp;t,1):8===n?tr(t&gt;&gt;24&amp;255,t&gt;&gt;16&amp;255,t&gt;&gt;8&amp;255,(255&amp;t)/255):4===n?tr(t&gt;&gt;12&amp;15|t&gt;&gt;8&amp;240,t&gt;&gt;8&amp;15|t&gt;&gt;4&amp;240,t&gt;&gt;4&amp;15|240&amp;t,((15&amp;t)&lt;&lt;4|15&amp;t)/255):null):(t=Wn.exec(e))?new rr(t[1],t[2],t[3],1):(t=Hn.exec(e))?new rr(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=jn.exec(e))?tr(t[1],t[2],t[3],t[4]):(t=Xn.exec(e))?tr(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=qn.exec(e))?cr(t[1],t[2]/100,t[3]/100,1):(t=Yn.exec(e))?cr(t[1],t[2]/100,t[3]/100,t[4]):Jn.hasOwnProperty(e)?er(Jn[e]):&quot;transparent&quot;===e?new rr(NaN,NaN,NaN,0):null}function er(e){return new rr(e&gt;&gt;16&amp;255,e&gt;&gt;8&amp;255,255&amp;e,1)}function tr(e,t,n,r){return r&lt;=0&amp;&amp;(e=t=n=NaN),new rr(e,t,n,r)}function nr(e,t,n,r){return 1===arguments.length?((o=e)instanceof Nn||(o=$n(o)),o?new rr((o=o.rgb()).r,o.g,o.b,o.opacity):new rr):new rr(e,t,n,null==r?1:r);var o}function rr(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}function or(){return`#${lr(this.r)}${lr(this.g)}${lr(this.b)}`}function ar(){const e=ir(this.opacity);return`${1===e?&quot;rgb(&quot;:&quot;rgba(&quot;}${sr(this.r)}, ${sr(this.g)}, ${sr(this.b)}${1===e?&quot;)&quot;:`, ${e})`}`}function ir(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function sr(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function lr(e){return((e=sr(e))&lt;16?&quot;0&quot;:&quot;&quot;)+e.toString(16)}function cr(e,t,n,r){return r&lt;=0?e=t=n=NaN:n&lt;=0||n&gt;=1?e=t=NaN:t&lt;=0&amp;&amp;(e=NaN),new dr(e,t,n,r)}function ur(e){if(e instanceof dr)return new dr(e.h,e.s,e.l,e.opacity);if(e instanceof Nn||(e=$n(e)),!e)return new dr;if(e instanceof dr)return e;var t=(e=e.rgb()).r/255,n=e.g/255,r=e.b/255,o=Math.min(t,n,r),a=Math.max(t,n,r),i=NaN,s=a-o,l=(a+o)/2;return s?(i=t===a?(n-r)/s+6*(n&lt;r):n===a?(r-t)/s+2:(t-n)/s+4,s/=l&lt;.5?a+o:2-a-o,i*=60):s=l&gt;0&amp;&amp;l&lt;1?0:i,new dr(i,s,l,e.opacity)}function dr(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}function pr(e){return(e=(e||0)%360)&lt;0?e+360:e}function fr(e){return Math.max(0,Math.min(1,e||0))}function gr(e,t,n){return 255*(e&lt;60?t+(n-t)*e/60:e&lt;180?n:e&lt;240?t+(n-t)*(240-e)/60:t)}Bn(Nn,$n,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:Zn,formatHex:Zn,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return ur(this).formatHsl()},formatRgb:Qn,toString:Qn}),Bn(rr,nr,Fn(Nn,{brighter(e){return e=null==e?Gn:Math.pow(Gn,e),new rr(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=null==e?kn:Math.pow(kn,e),new rr(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new rr(sr(this.r),sr(this.g),sr(this.b),ir(this.opacity))},displayable(){return-.5&lt;=this.r&amp;&amp;this.r&lt;255.5&amp;&amp;-.5&lt;=this.g&amp;&amp;this.g&lt;255.5&amp;&amp;-.5&lt;=this.b&amp;&amp;this.b&lt;255.5&amp;&amp;0&lt;=this.opacity&amp;&amp;this.opacity&lt;=1},hex:or,formatHex:or,formatHex8:function(){return`#${lr(this.r)}${lr(this.g)}${lr(this.b)}${lr(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:ar,toString:ar})),Bn(dr,(function(e,t,n,r){return 1===arguments.length?ur(e):new dr(e,t,n,null==r?1:r)}),Fn(Nn,{brighter(e){return e=null==e?Gn:Math.pow(Gn,e),new dr(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?kn:Math.pow(kn,e),new dr(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+360*(this.h&lt;0),t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n&lt;.5?n:1-n)*t,o=2*n-r;return new rr(gr(e&gt;=240?e-240:e+120,o,r),gr(e,o,r),gr(e&lt;120?e+240:e-120,o,r),this.opacity)},clamp(){return new dr(pr(this.h),fr(this.s),fr(this.l),ir(this.opacity))},displayable(){return(0&lt;=this.s&amp;&amp;this.s&lt;=1||isNaN(this.s))&amp;&amp;0&lt;=this.l&amp;&amp;this.l&lt;=1&amp;&amp;0&lt;=this.opacity&amp;&amp;this.opacity&lt;=1},formatHsl(){const e=ir(this.opacity);return`${1===e?&quot;hsl(&quot;:&quot;hsla(&quot;}${pr(this.h)}, ${100*fr(this.s)}%, ${100*fr(this.l)}%${1===e?&quot;)&quot;:`, ${e})`}`}}));var mr=e=&gt;()=&gt;e;function hr(e){return 1==(e=+e)?vr:function(t,n){return n-t?function(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}(t,n,e):mr(isNaN(t)?n:t)}}function vr(e,t){var n=t-e;return n?function(e,t){return function(n){return e+n*t}}(e,n):mr(isNaN(e)?t:e)}var Tr=function e(t){var n=hr(t);function r(e,t){var r=n((e=nr(e)).r,(t=nr(t)).r),o=n(e.g,t.g),a=n(e.b,t.b),i=vr(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=o(t),e.b=a(t),e.opacity=i(t),e+&quot;&quot;}}return r.gamma=e,r}(1);function xr(e,t){t||(t=[]);var n,r=e?Math.min(t.length,e.length):0,o=t.slice();return function(a){for(n=0;n&lt;r;++n)o[n]=e[n]*(1-a)+t[n]*a;return o}}function yr(e,t){var n,r=t?t.length:0,o=e?Math.min(r,e.length):0,a=new Array(o),i=new Array(r);for(n=0;n&lt;o;++n)a[n]=Ir(e[n],t[n]);for(;n&lt;r;++n)i[n]=t[n];return function(e){for(n=0;n&lt;o;++n)i[n]=a[n](e);return i}}function br(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function Ar(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function Cr(e,t){var n,r={},o={};for(n in null!==e&amp;&amp;&quot;object&quot;==typeof e||(e={}),null!==t&amp;&amp;&quot;object&quot;==typeof t||(t={}),t)n in e?r[n]=Ir(e[n],t[n]):o[n]=t[n];return function(e){for(n in r)o[n]=r[n](e);return o}}var Sr=/[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,Pr=new RegExp(Sr.source,&quot;g&quot;);function wr(e,t){var n,r,o,a=Sr.lastIndex=Pr.lastIndex=0,i=-1,s=[],l=[];for(e+=&quot;&quot;,t+=&quot;&quot;;(n=Sr.exec(e))&amp;&amp;(r=Pr.exec(t));)(o=r.index)&gt;a&amp;&amp;(o=t.slice(a,o),s[i]?s[i]+=o:s[++i]=o),(n=n[0])===(r=r[0])?s[i]?s[i]+=r:s[++i]=r:(s[++i]=null,l.push({i:i,x:Ar(n,r)})),a=Pr.lastIndex;return a&lt;t.length&amp;&amp;(o=t.slice(a),s[i]?s[i]+=o:s[++i]=o),s.length&lt;2?l[0]?function(e){return function(t){return e(t)+&quot;&quot;}}(l[0].x):function(e){return function(){return e}}(t):(t=l.length,function(e){for(var n,r=0;r&lt;t;++r)s[(n=l[r]).i]=n.x(e);return s.join(&quot;&quot;)})}function Ir(e,t){var n,r=typeof t;return null==t||&quot;boolean&quot;===r?mr(t):(&quot;number&quot;===r?Ar:&quot;string&quot;===r?(n=$n(t))?(t=n,Tr):wr:t instanceof $n?Tr:t instanceof Date?br:function(e){return ArrayBuffer.isView(e)&amp;&amp;!(e instanceof DataView)}(t)?xr:Array.isArray(t)?yr:&quot;function&quot;!=typeof t.valueOf&amp;&amp;&quot;function&quot;!=typeof t.toString||isNaN(t)?Cr:Ar)(e,t)}function Or(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}function Rr(e){return+e}var Mr=[0,1];function Dr(e){return e}function Er(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:function(e){return function(){return e}}(isNaN(t)?NaN:.5)}function Vr(e,t,n){var r=e[0],o=e[1],a=t[0],i=t[1];return o&lt;r?(r=Er(o,r),a=n(i,a)):(r=Er(r,o),a=n(a,i)),function(e){return a(r(e))}}function Lr(e,t,n){var r=Math.min(e.length,t.length)-1,o=new Array(r),a=new Array(r),i=-1;for(e[r]&lt;e[0]&amp;&amp;(e=e.slice().reverse(),t=t.slice().reverse());++i&lt;r;)o[i]=Er(e[i],e[i+1]),a[i]=n(t[i],t[i+1]);return function(t){var n=Rn(e,t,1,r)-1;return a[n](o[n](t))}}function Br(){var e,t,n,r,o,a,i=Mr,s=Mr,l=Ir,c=Dr;function u(){var e,t,n,l=Math.min(i.length,s.length);return c!==Dr&amp;&amp;(e=i[0],t=i[l-1],e&gt;t&amp;&amp;(n=e,e=t,t=n),c=function(n){return Math.max(e,Math.min(t,n))}),r=l&gt;2?Lr:Vr,o=a=null,d}function d(t){return null==t||isNaN(t=+t)?n:(o||(o=r(i.map(e),s,l)))(e(c(t)))}return d.invert=function(n){return c(t((a||(a=r(s,i.map(e),Ar)))(n)))},d.domain=function(e){return arguments.length?(i=Array.from(e,Rr),u()):i.slice()},d.range=function(e){return arguments.length?(s=Array.from(e),u()):s.slice()},d.rangeRound=function(e){return s=Array.from(e),l=Or,u()},d.clamp=function(e){return arguments.length?(c=!!e||Dr,u()):c!==Dr},d.interpolate=function(e){return arguments.length?(l=e,u()):l},d.unknown=function(e){return arguments.length?(n=e,d):n},function(n,r){return e=n,t=r,u()}}function Fr(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf(&quot;e&quot;))&lt;0)return null;var n,r=e.slice(0,n);return[r.length&gt;1?r[0]+r.slice(2):r,+e.slice(n+1)]}function Nr(e){return(e=Fr(Math.abs(e)))?e[1]:NaN}var kr,Gr=/^(?:(.)?([&lt;&gt;=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;function Ur(e){if(!(t=Gr.exec(e)))throw new Error(&quot;invalid format: &quot;+e);var t;return new _r({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&amp;&amp;t[8].slice(1),trim:t[9],type:t[10]})}function _r(e){this.fill=void 0===e.fill?&quot; &quot;:e.fill+&quot;&quot;,this.align=void 0===e.align?&quot;&gt;&quot;:e.align+&quot;&quot;,this.sign=void 0===e.sign?&quot;-&quot;:e.sign+&quot;&quot;,this.symbol=void 0===e.symbol?&quot;&quot;:e.symbol+&quot;&quot;,this.zero=!!e.zero,this.width=void 0===e.width?void 0:+e.width,this.comma=!!e.comma,this.precision=void 0===e.precision?void 0:+e.precision,this.trim=!!e.trim,this.type=void 0===e.type?&quot;&quot;:e.type+&quot;&quot;}function Kr(e,t){var n=Fr(e,t);if(!n)return e+&quot;&quot;;var r=n[0],o=n[1];return o&lt;0?&quot;0.&quot;+new Array(-o).join(&quot;0&quot;)+r:r.length&gt;o+1?r.slice(0,o+1)+&quot;.&quot;+r.slice(o+1):r+new Array(o-r.length+2).join(&quot;0&quot;)}Ur.prototype=_r.prototype,_r.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?&quot;0&quot;:&quot;&quot;)+(void 0===this.width?&quot;&quot;:Math.max(1,0|this.width))+(this.comma?&quot;,&quot;:&quot;&quot;)+(void 0===this.precision?&quot;&quot;:&quot;.&quot;+Math.max(0,0|this.precision))+(this.trim?&quot;~&quot;:&quot;&quot;)+this.type};var zr={&quot;%&quot;:(e,t)=&gt;(100*e).toFixed(t),b:e=&gt;Math.round(e).toString(2),c:e=&gt;e+&quot;&quot;,d:function(e){return Math.abs(e=Math.round(e))&gt;=1e21?e.toLocaleString(&quot;en&quot;).replace(/,/g,&quot;&quot;):e.toString(10)},e:(e,t)=&gt;e.toExponential(t),f:(e,t)=&gt;e.toFixed(t),g:(e,t)=&gt;e.toPrecision(t),o:e=&gt;Math.round(e).toString(8),p:(e,t)=&gt;Kr(100*e,t),r:Kr,s:function(e,t){var n=Fr(e,t);if(!n)return e+&quot;&quot;;var r=n[0],o=n[1],a=o-(kr=3*Math.max(-8,Math.min(8,Math.floor(o/3))))+1,i=r.length;return a===i?r:a&gt;i?r+new Array(a-i+1).join(&quot;0&quot;):a&gt;0?r.slice(0,a)+&quot;.&quot;+r.slice(a):&quot;0.&quot;+new Array(1-a).join(&quot;0&quot;)+Fr(e,Math.max(0,t+a-1))[0]},X:e=&gt;Math.round(e).toString(16).toUpperCase(),x:e=&gt;Math.round(e).toString(16)};function Wr(e){return e}var Hr,jr,Xr,qr=Array.prototype.map,Yr=[&quot;y&quot;,&quot;z&quot;,&quot;a&quot;,&quot;f&quot;,&quot;p&quot;,&quot;n&quot;,&quot;µ&quot;,&quot;m&quot;,&quot;&quot;,&quot;k&quot;,&quot;M&quot;,&quot;G&quot;,&quot;T&quot;,&quot;P&quot;,&quot;E&quot;,&quot;Z&quot;,&quot;Y&quot;];function Jr(e){var t,n,r=void 0===e.grouping||void 0===e.thousands?Wr:(t=qr.call(e.grouping,Number),n=e.thousands+&quot;&quot;,function(e,r){for(var o=e.length,a=[],i=0,s=t[0],l=0;o&gt;0&amp;&amp;s&gt;0&amp;&amp;(l+s+1&gt;r&amp;&amp;(s=Math.max(1,r-l)),a.push(e.substring(o-=s,o+s)),!((l+=s+1)&gt;r));)s=t[i=(i+1)%t.length];return a.reverse().join(n)}),o=void 0===e.currency?&quot;&quot;:e.currency[0]+&quot;&quot;,a=void 0===e.currency?&quot;&quot;:e.currency[1]+&quot;&quot;,i=void 0===e.decimal?&quot;.&quot;:e.decimal+&quot;&quot;,s=void 0===e.numerals?Wr:function(e){return function(t){return t.replace(/[0-9]/g,(function(t){return e[+t]}))}}(qr.call(e.numerals,String)),l=void 0===e.percent?&quot;%&quot;:e.percent+&quot;&quot;,c=void 0===e.minus?&quot;−&quot;:e.minus+&quot;&quot;,u=void 0===e.nan?&quot;NaN&quot;:e.nan+&quot;&quot;;function d(e){var t=(e=Ur(e)).fill,n=e.align,d=e.sign,p=e.symbol,f=e.zero,g=e.width,m=e.comma,h=e.precision,v=e.trim,T=e.type;&quot;n&quot;===T?(m=!0,T=&quot;g&quot;):zr[T]||(void 0===h&amp;&amp;(h=12),v=!0,T=&quot;g&quot;),(f||&quot;0&quot;===t&amp;&amp;&quot;=&quot;===n)&amp;&amp;(f=!0,t=&quot;0&quot;,n=&quot;=&quot;);var x=&quot;$&quot;===p?o:&quot;#&quot;===p&amp;&amp;/[boxX]/.test(T)?&quot;0&quot;+T.toLowerCase():&quot;&quot;,y=&quot;$&quot;===p?a:/[%p]/.test(T)?l:&quot;&quot;,b=zr[T],A=/[defgprs%]/.test(T);function C(e){var o,a,l,p=x,C=y;if(&quot;c&quot;===T)C=b(e)+C,e=&quot;&quot;;else{var S=(e=+e)&lt;0||1/e&lt;0;if(e=isNaN(e)?u:b(Math.abs(e),h),v&amp;&amp;(e=function(e){e:for(var t,n=e.length,r=1,o=-1;r&lt;n;++r)switch(e[r]){case&quot;.&quot;:o=t=r;break;case&quot;0&quot;:0===o&amp;&amp;(o=r),t=r;break;default:if(!+e[r])break e;o&gt;0&amp;&amp;(o=0)}return o&gt;0?e.slice(0,o)+e.slice(t+1):e}(e)),S&amp;&amp;0==+e&amp;&amp;&quot;+&quot;!==d&amp;&amp;(S=!1),p=(S?&quot;(&quot;===d?d:c:&quot;-&quot;===d||&quot;(&quot;===d?&quot;&quot;:d)+p,C=(&quot;s&quot;===T?Yr[8+kr/3]:&quot;&quot;)+C+(S&amp;&amp;&quot;(&quot;===d?&quot;)&quot;:&quot;&quot;),A)for(o=-1,a=e.length;++o&lt;a;)if(48&gt;(l=e.charCodeAt(o))||l&gt;57){C=(46===l?i+e.slice(o+1):e.slice(o))+C,e=e.slice(0,o);break}}m&amp;&amp;!f&amp;&amp;(e=r(e,1/0));var P=p.length+e.length+C.length,w=P&lt;g?new Array(g-P+1).join(t):&quot;&quot;;switch(m&amp;&amp;f&amp;&amp;(e=r(w+e,w.length?g-C.length:1/0),w=&quot;&quot;),n){case&quot;&lt;&quot;:e=p+e+C+w;break;case&quot;=&quot;:e=p+w+e+C;break;case&quot;^&quot;:e=w.slice(0,P=w.length&gt;&gt;1)+p+e+C+w.slice(P);break;default:e=w+p+e+C}return s(e)}return h=void 0===h?6:/[gprs]/.test(T)?Math.max(1,Math.min(21,h)):Math.max(0,Math.min(20,h)),C.toString=function(){return e+&quot;&quot;},C}return{format:d,formatPrefix:function(e,t){var n=d(((e=Ur(e)).type=&quot;f&quot;,e)),r=3*Math.max(-8,Math.min(8,Math.floor(Nr(t)/3))),o=Math.pow(10,-r),a=Yr[8+r/3];return function(e){return n(o*e)+a}}}}function Zr(e,t,n,r){var o,a=function(e,t,n){var r=Math.abs(t-e)/Math.max(0,n),o=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),a=r/o;return a&gt;=Mn?o*=10:a&gt;=Dn?o*=5:a&gt;=En&amp;&amp;(o*=2),t&lt;e?-o:o}(e,t,n);switch((r=Ur(null==r?&quot;,f&quot;:r)).type){case&quot;s&quot;:var i=Math.max(Math.abs(e),Math.abs(t));return null!=r.precision||isNaN(o=function(e,t){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(Nr(t)/3)))-Nr(Math.abs(e)))}(a,i))||(r.precision=o),Xr(r,i);case&quot;&quot;:case&quot;e&quot;:case&quot;g&quot;:case&quot;p&quot;:case&quot;r&quot;:null!=r.precision||isNaN(o=function(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,Nr(t)-Nr(e))+1}(a,Math.max(Math.abs(e),Math.abs(t))))||(r.precision=o-(&quot;e&quot;===r.type));break;case&quot;f&quot;:case&quot;%&quot;:null!=r.precision||isNaN(o=function(e){return Math.max(0,-Nr(Math.abs(e)))}(a))||(r.precision=o-2*(&quot;%&quot;===r.type))}return jr(r)}function Qr(e){var t=e.domain;return e.ticks=function(e){var n=t();return function(e,t,n){var r,o,a,i,s=-1;if(n=+n,(e=+e)==(t=+t)&amp;&amp;n&gt;0)return[e];if((r=t&lt;e)&amp;&amp;(o=e,e=t,t=o),0===(i=Vn(e,t,n))||!isFinite(i))return[];if(i&gt;0){let n=Math.round(e/i),r=Math.round(t/i);for(n*i&lt;e&amp;&amp;++n,r*i&gt;t&amp;&amp;--r,a=new Array(o=r-n+1);++s&lt;o;)a[s]=(n+s)*i}else{i=-i;let n=Math.round(e*i),r=Math.round(t*i);for(n/i&lt;e&amp;&amp;++n,r/i&gt;t&amp;&amp;--r,a=new Array(o=r-n+1);++s&lt;o;)a[s]=(n+s)/i}return r&amp;&amp;a.reverse(),a}(n[0],n[n.length-1],null==e?10:e)},e.tickFormat=function(e,n){var r=t();return Zr(r[0],r[r.length-1],null==e?10:e,n)},e.nice=function(n){null==n&amp;&amp;(n=10);var r,o,a=t(),i=0,s=a.length-1,l=a[i],c=a[s],u=10;for(c&lt;l&amp;&amp;(o=l,l=c,c=o,o=i,i=s,s=o);u-- &gt;0;){if((o=Vn(l,c,n))===r)return a[i]=l,a[s]=c,t(a);if(o&gt;0)l=Math.floor(l/o)*o,c=Math.ceil(c/o)*o;else{if(!(o&lt;0))break;l=Math.ceil(l*o)/o,c=Math.floor(c*o)/o}r=o}return e},e}function $r(){var e=Br()(Dr,Dr);return e.copy=function(){return t=e,$r().domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown());var t},Ln.apply(e,arguments),Qr(e)}Hr=Jr({thousands:&quot;,&quot;,grouping:[3],currency:[&quot;$&quot;,&quot;&quot;]}),jr=Hr.format,Xr=Hr.formatPrefix;var eo={exports:{}};(function(e,t,n){function r(e){var t=this,n=function(){var e=4022871197,t=function(t){t=String(t);for(var n=0;n&lt;t.length;n++){var r=.02519603282416938*(e+=t.charCodeAt(n));r-=e=r&gt;&gt;&gt;0,e=(r*=e)&gt;&gt;&gt;0,e+=4294967296*(r-=e)}return 2.3283064365386963e-10*(e&gt;&gt;&gt;0)};return t}();t.next=function(){var e=2091639*t.s0+2.3283064365386963e-10*t.c;return t.s0=t.s1,t.s1=t.s2,t.s2=e-(t.c=0|e)},t.c=1,t.s0=n(&quot; &quot;),t.s1=n(&quot; &quot;),t.s2=n(&quot; &quot;),t.s0-=n(e),t.s0&lt;0&amp;&amp;(t.s0+=1),t.s1-=n(e),t.s1&lt;0&amp;&amp;(t.s1+=1),t.s2-=n(e),t.s2&lt;0&amp;&amp;(t.s2+=1),n=null}function o(e,t){return t.c=e.c,t.s0=e.s0,t.s1=e.s1,t.s2=e.s2,t}function a(e,t){var n=new r(e),a=t&amp;&amp;t.state,i=n.next;return i.int32=function(){return 4294967296*n.next()|0},i.double=function(){return i()+11102230246251565e-32*(2097152*i()|0)},i.quick=i,a&amp;&amp;(&quot;object&quot;==typeof a&amp;&amp;o(a,n),i.state=function(){return o(n,{})}),i}t&amp;&amp;t.exports?t.exports=a:n&amp;&amp;n.amd?n((function(){return a})):this.alea=a})(0,eo,!1);var to={exports:{}};!function(e){!function(e,t,n){function r(e){var t=this,n=&quot;&quot;;t.x=0,t.y=0,t.z=0,t.w=0,t.next=function(){var e=t.x^t.x&lt;&lt;11;return t.x=t.y,t.y=t.z,t.z=t.w,t.w^=t.w&gt;&gt;&gt;19^e^e&gt;&gt;&gt;8},e===(0|e)?t.x=e:n+=e;for(var r=0;r&lt;n.length+64;r++)t.x^=0|n.charCodeAt(r),t.next()}function o(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t}function a(e,t){var n=new r(e),a=t&amp;&amp;t.state,i=function(){return(n.next()&gt;&gt;&gt;0)/4294967296};return i.double=function(){do{var e=((n.next()&gt;&gt;&gt;11)+(n.next()&gt;&gt;&gt;0)/4294967296)/(1&lt;&lt;21)}while(0===e);return e},i.int32=n.next,i.quick=i,a&amp;&amp;(&quot;object&quot;==typeof a&amp;&amp;o(a,n),i.state=function(){return o(n,{})}),i}t&amp;&amp;t.exports?t.exports=a:n&amp;&amp;n.amd?n((function(){return a})):this.xor128=a}(0,e,!1)}(to);var no={exports:{}};!function(e){!function(e,t,n){function r(e){var t=this,n=&quot;&quot;;t.next=function(){var e=t.x^t.x&gt;&gt;&gt;2;return t.x=t.y,t.y=t.z,t.z=t.w,t.w=t.v,(t.d=t.d+362437|0)+(t.v=t.v^t.v&lt;&lt;4^e^e&lt;&lt;1)|0},t.x=0,t.y=0,t.z=0,t.w=0,t.v=0,e===(0|e)?t.x=e:n+=e;for(var r=0;r&lt;n.length+64;r++)t.x^=0|n.charCodeAt(r),r==n.length&amp;&amp;(t.d=t.x&lt;&lt;10^t.x&gt;&gt;&gt;4),t.next()}function o(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t.v=e.v,t.d=e.d,t}function a(e,t){var n=new r(e),a=t&amp;&amp;t.state,i=function(){return(n.next()&gt;&gt;&gt;0)/4294967296};return i.double=function(){do{var e=((n.next()&gt;&gt;&gt;11)+(n.next()&gt;&gt;&gt;0)/4294967296)/(1&lt;&lt;21)}while(0===e);return e},i.int32=n.next,i.quick=i,a&amp;&amp;(&quot;object&quot;==typeof a&amp;&amp;o(a,n),i.state=function(){return o(n,{})}),i}t&amp;&amp;t.exports?t.exports=a:n&amp;&amp;n.amd?n((function(){return a})):this.xorwow=a}(0,e,!1)}(no);var ro={exports:{}};!function(e){!function(e,t,n){function r(e){var t=this;t.next=function(){var e,n,r=t.x,o=t.i;return e=r[o],n=(e^=e&gt;&gt;&gt;7)^e&lt;&lt;24,n^=(e=r[o+1&amp;7])^e&gt;&gt;&gt;10,n^=(e=r[o+3&amp;7])^e&gt;&gt;&gt;3,n^=(e=r[o+4&amp;7])^e&lt;&lt;7,e=r[o+7&amp;7],n^=(e^=e&lt;&lt;13)^e&lt;&lt;9,r[o]=n,t.i=o+1&amp;7,n},function(e,t){var n,r=[];if(t===(0|t))r[0]=t;else for(t=&quot;&quot;+t,n=0;n&lt;t.length;++n)r[7&amp;n]=r[7&amp;n]&lt;&lt;15^t.charCodeAt(n)+r[n+1&amp;7]&lt;&lt;13;for(;r.length&lt;8;)r.push(0);for(n=0;n&lt;8&amp;&amp;0===r[n];++n);for(8==n?r[7]=-1:r[n],e.x=r,e.i=0,n=256;n&gt;0;--n)e.next()}(t,e)}function o(e,t){return t.x=e.x.slice(),t.i=e.i,t}function a(e,t){null==e&amp;&amp;(e=+new Date);var n=new r(e),a=t&amp;&amp;t.state,i=function(){return(n.next()&gt;&gt;&gt;0)/4294967296};return i.double=function(){do{var e=((n.next()&gt;&gt;&gt;11)+(n.next()&gt;&gt;&gt;0)/4294967296)/(1&lt;&lt;21)}while(0===e);return e},i.int32=n.next,i.quick=i,a&amp;&amp;(a.x&amp;&amp;o(a,n),i.state=function(){return o(n,{})}),i}t&amp;&amp;t.exports?t.exports=a:n&amp;&amp;n.amd?n((function(){return a})):this.xorshift7=a}(0,e,!1)}(ro);var oo={exports:{}};!function(e){!function(e,t,n){function r(e){var t=this;t.next=function(){var e,n,r=t.w,o=t.X,a=t.i;return t.w=r=r+1640531527|0,n=o[a+34&amp;127],e=o[a=a+1&amp;127],n^=n&lt;&lt;13,e^=e&lt;&lt;17,n^=n&gt;&gt;&gt;15,e^=e&gt;&gt;&gt;12,n=o[a]=n^e,t.i=a,n+(r^r&gt;&gt;&gt;16)|0},function(e,t){var n,r,o,a,i,s=[],l=128;for(t===(0|t)?(r=t,t=null):(t+=&quot;\\0&quot;,r=0,l=Math.max(l,t.length)),o=0,a=-32;a&lt;l;++a)t&amp;&amp;(r^=t.charCodeAt((a+32)%t.length)),0===a&amp;&amp;(i=r),r^=r&lt;&lt;10,r^=r&gt;&gt;&gt;15,r^=r&lt;&lt;4,r^=r&gt;&gt;&gt;13,a&gt;=0&amp;&amp;(i=i+1640531527|0,o=0==(n=s[127&amp;a]^=r+i)?o+1:0);for(o&gt;=128&amp;&amp;(s[127&amp;(t&amp;&amp;t.length||0)]=-1),o=127,a=512;a&gt;0;--a)r=s[o+34&amp;127],n=s[o=o+1&amp;127],r^=r&lt;&lt;13,n^=n&lt;&lt;17,r^=r&gt;&gt;&gt;15,n^=n&gt;&gt;&gt;12,s[o]=r^n;e.w=i,e.X=s,e.i=o}(t,e)}function o(e,t){return t.i=e.i,t.w=e.w,t.X=e.X.slice(),t}function a(e,t){null==e&amp;&amp;(e=+new Date);var n=new r(e),a=t&amp;&amp;t.state,i=function(){return(n.next()&gt;&gt;&gt;0)/4294967296};return i.double=function(){do{var e=((n.next()&gt;&gt;&gt;11)+(n.next()&gt;&gt;&gt;0)/4294967296)/(1&lt;&lt;21)}while(0===e);return e},i.int32=n.next,i.quick=i,a&amp;&amp;(a.X&amp;&amp;o(a,n),i.state=function(){return o(n,{})}),i}t&amp;&amp;t.exports?t.exports=a:n&amp;&amp;n.amd?n((function(){return a})):this.xor4096=a}(0,e,!1)}(oo);var ao={exports:{}};!function(e){!function(e,t,n){function r(e){var t=this,n=&quot;&quot;;t.next=function(){var e=t.b,n=t.c,r=t.d,o=t.a;return e=e&lt;&lt;25^e&gt;&gt;&gt;7^n,n=n-r|0,r=r&lt;&lt;24^r&gt;&gt;&gt;8^o,o=o-e|0,t.b=e=e&lt;&lt;20^e&gt;&gt;&gt;12^n,t.c=n=n-r|0,t.d=r&lt;&lt;16^n&gt;&gt;&gt;16^o,t.a=o-e|0},t.a=0,t.b=0,t.c=-1640531527,t.d=1367130551,e===Math.floor(e)?(t.a=e/4294967296|0,t.b=0|e):n+=e;for(var r=0;r&lt;n.length+20;r++)t.b^=0|n.charCodeAt(r),t.next()}function o(e,t){return t.a=e.a,t.b=e.b,t.c=e.c,t.d=e.d,t}function a(e,t){var n=new r(e),a=t&amp;&amp;t.state,i=function(){return(n.next()&gt;&gt;&gt;0)/4294967296};return i.double=function(){do{var e=((n.next()&gt;&gt;&gt;11)+(n.next()&gt;&gt;&gt;0)/4294967296)/(1&lt;&lt;21)}while(0===e);return e},i.int32=n.next,i.quick=i,a&amp;&amp;(&quot;object&quot;==typeof a&amp;&amp;o(a,n),i.state=function(){return o(n,{})}),i}t&amp;&amp;t.exports?t.exports=a:n&amp;&amp;n.amd?n((function(){return a})):this.tychei=a}(0,e,!1)}(ao);var io={exports:{}};!function(e){!function(t,n,r){var o,a=256,i=&quot;random&quot;,s=r.pow(a,6),l=r.pow(2,52),c=2*l,u=255;function d(e,u,d){var v=[],T=m(g((u=1==u?{entropy:!0}:u||{}).entropy?[e,h(n)]:null==e?function(){try{var e;return o&amp;&amp;(e=o.randomBytes)?e=e(a):(e=new Uint8Array(a),(t.crypto||t.msCrypto).getRandomValues(e)),h(e)}catch(e){var r=t.navigator,i=r&amp;&amp;r.plugins;return[+new Date,t,i,t.screen,h(n)]}}():e,3),v),x=new p(v),y=function(){for(var e=x.g(6),t=s,n=0;e&lt;l;)e=(e+n)*a,t*=a,n=x.g(1);for(;e&gt;=c;)e/=2,t/=2,n&gt;&gt;&gt;=1;return(e+n)/t};return y.int32=function(){return 0|x.g(4)},y.quick=function(){return x.g(4)/4294967296},y.double=y,m(h(x.S),n),(u.pass||d||function(e,t,n,o){return o&amp;&amp;(o.S&amp;&amp;f(o,x),e.state=function(){return f(x,{})}),n?(r[i]=e,t):e})(y,T,&quot;global&quot;in u?u.global:this==r,u.state)}function p(e){var t,n=e.length,r=this,o=0,i=r.i=r.j=0,s=r.S=[];for(n||(e=[n++]);o&lt;a;)s[o]=o++;for(o=0;o&lt;a;o++)s[o]=s[i=u&amp;i+e[o%n]+(t=s[o])],s[i]=t;(r.g=function(e){for(var t,n=0,o=r.i,i=r.j,s=r.S;e--;)t=s[o=u&amp;o+1],n=n*a+s[u&amp;(s[o]=s[i=u&amp;i+t])+(s[i]=t)];return r.i=o,r.j=i,n})(a)}function f(e,t){return t.i=e.i,t.j=e.j,t.S=e.S.slice(),t}function g(e,t){var n,r=[],o=typeof e;if(t&amp;&amp;&quot;object&quot;==o)for(n in e)try{r.push(g(e[n],t-1))}catch(e){}return r.length?r:&quot;string&quot;==o?e:e+&quot;\\0&quot;}function m(e,t){for(var n,r=e+&quot;&quot;,o=0;o&lt;r.length;)t[u&amp;o]=u&amp;(n^=19*t[u&amp;o])+r.charCodeAt(o++);return h(t)}function h(e){return String.fromCharCode.apply(0,e)}if(m(r.random(),n),e.exports){e.exports=d;try{o=require(&quot;crypto&quot;)}catch(e){}}else r[&quot;seed&quot;+i]=d}(&quot;undefined&quot;!=typeof self?self:Te,[],Math)}(io);var so=eo.exports,lo=to.exports,co=no.exports,uo=ro.exports,po=oo.exports,fo=ao.exports,go=io.exports;go.alea=so,go.xor128=lo,go.xorwow=co,go.xorshift7=uo,go.xor4096=po,go.tychei=fo;var mo=go;const ho=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],vo=[1,0,0,0,1,0,0,0,1],To=1e-12,{vtkErrorMacro:xo,vtkWarningMacro:yo}=sn;let bo=0;function Ao(e){return()=&gt;xo(`vtkMath::${e} - NOT IMPLEMENTED`)}function Co(e,t,n,r){let o;for(let a=0;a&lt;t;a++)o=e[n*t+a],e[n*t+a]=e[r*t+a],e[r*t+a]=o}function So(e,t,n,r){let o;for(let a=0;a&lt;t;a++)o=e[a*t+n],e[a*t+n]=e[a*t+r],e[a*t+r]=o}function Po(e=3){const t=Array(e);for(let n=0;n&lt;e;++n)t[n]=0;return t}function wo(e){return e/180*Math.PI}function Io(e){return 180*e/Math.PI}const{round:Oo,floor:Ro,ceil:Mo,min:Do,max:Eo}=Math;const Vo=Ao(&quot;ceilLog2&quot;),Lo=Ao(&quot;factorial&quot;);function Bo(e){let t=1;for(;t&lt;e;)t*=2;return t}function Fo(e){return e===Bo(e)}const No=Ao(&quot;gaussian&quot;);function ko(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n}function Go(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n}function Uo(e,t){return e[0]*=t,e[1]*=t,e[2]*=t,e}function _o(e,t){return e[0]*=t,e[1]*=t,e}function Ko(e,t,n,r){return r[0]=e[0]+t[0]*n,r[1]=e[1]+t[1]*n,r[2]=e[2]+t[2]*n,r}function zo(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function Wo(e,t,n){const r=e[1]*t[2]-e[2]*t[1],o=e[2]*t[0]-e[0]*t[2],a=e[0]*t[1]-e[1]*t[0];return n[0]=r,n[1]=o,n[2]=a,n}function Ho(e,t=3){switch(t){case 1:return Math.abs(e);case 2:return Math.sqrt(e[0]*e[0]+e[1]*e[1]);case 3:return Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);default:{let n=0;for(let r=0;r&lt;t;r++)n+=e[r]*e[r];return Math.sqrt(n)}}}function jo(e){const t=Ho(e);return 0!==t&amp;&amp;(e[0]/=t,e[1]/=t,e[2]/=t),t}function Xo(e){const t=Ho(e,3);return 0!==t&amp;&amp;(e[0]/=t,e[1]/=t,e[2]/=t,e[3]/=t),t}function qo(e,t){return e[0]*t[0]+e[1]*t[1]}function Yo(e,t){return(e[0]-t[0])*(e[0]-t[0])+(e[1]-t[1])*(e[1]-t[1])+(e[2]-t[2])*(e[2]-t[2])}function Jo(e){return Math.sqrt(e[0]*e[0]+e[1]*e[1])}function Zo(e){const t=Jo(e);return 0!==t&amp;&amp;(e[0]/=t,e[1]/=t),t}function Qo(...e){return 2===e.length?e[0][0]*e[1][1]-e[1][0]*e[0][1]:4===e.length?e[0]*e[3]-e[1]*e[2]:Number.NaN}function $o(e,t,n){const r=e[0]*t[0]+e[1]*t[1]+e[2]*t[2],o=e[3]*t[0]+e[4]*t[1]+e[5]*t[2],a=e[6]*t[0]+e[7]*t[1]+e[8]*t[2];n[0]=r,n[1]=o,n[2]=a}function ea(e,t,n){const r=[...e],o=[...t];for(let e=0;e&lt;3;e++)n[e]=r[0]*o[e]+r[1]*o[e+3]+r[2]*o[e+6],n[e+3]=r[3]*o[e]+r[4]*o[e+3]+r[5]*o[e+6],n[e+6]=r[6]*o[e]+r[7]*o[e+3]+r[8]*o[e+6]}function ta(e,t){let n;n=e[3],t[3]=e[1],t[1]=n,n=e[6],t[6]=e[2],t[2]=n,n=e[7],t[7]=e[5],t[5]=n,t[0]=e[0],t[4]=e[4],t[8]=e[8]}function na(e){return e[0]*e[4]*e[8]+e[3]*e[7]*e[2]+e[6]*e[1]*e[5]-e[0]*e[7]*e[5]-e[3]*e[1]*e[8]-e[6]*e[4]*e[2]}function ra(e,t,n=1e-6){if(e.length!==t.length)return!1;return e.every((function(e,r){return Math.abs(e-t[r])&lt;=n}))}const oa=ra;function aa(e){for(let t=0;t&lt;3;t++)e[3*t]=e[3*t+1]=e[3*t+2]=0,e[3*t+t]=1}function ia(e,t){for(let n=0;n&lt;e;n++){for(let r=0;r&lt;e;r++)t[n*e+r]=0;t[n*e+n]=1}return t}function sa(e,t){const n=e[0]*e[0],r=e[0]*e[1],o=e[0]*e[2],a=e[0]*e[3],i=e[1]*e[1],s=e[2]*e[2],l=e[3]*e[3],c=e[1]*e[2],u=e[1]*e[3],d=e[2]*e[3],p=i+s+l;let f=1/(n+p);const g=(n-p)*f;f*=2,t[0]=i*f+g,t[3]=(c+a)*f,t[6]=(u-o)*f,t[1]=(c-a)*f,t[4]=s*f+g,t[7]=(d+r)*f,t[2]=(u+o)*f,t[5]=(d-r)*f,t[8]=l*f+g}function la(e,t=0){if(!`${e}`.includes(&quot;e&quot;))return+`${Math.round(`${e}e+${t}`)}e-${t}`;const n=`${e}`.split(&quot;e&quot;);let r=&quot;&quot;;return+n[1]+t&gt;0&amp;&amp;(r=&quot;+&quot;),+`${Math.round(`${+n[0]}e${r}${+n[1]+t}`)}e-${t}`}function ca(e,t=[0,0,0],n=0){return t[0]=la(e[0],n),t[1]=la(e[1],n),t[2]=la(e[2],n),t}function ua(e,t,n,r){let o,a,i,s,l,c,u,d,p,f,g,m,h,v,T,x;const y=Po(t),b=Po(t),A=(e,t,n)=&gt;{v=e[t],h=e[n],e[t]=v-m*(h+v*f),e[n]=h+m*(v-h*f)};for(ia(t,r),l=0;l&lt;t;l++)y[l]=n[l]=e[l+l*t],b[l]=0;for(o=0;o&lt;20;o++){for(g=0,l=0;l&lt;t-1;l++)for(s=l+1;s&lt;t;s++)g+=Math.abs(e[l*t+s]);if(0===g)break;for(u=o&lt;3?.2*g/(t*t):0,l=0;l&lt;t-1;l++)for(s=l+1;s&lt;t;s++)if(v=100*Math.abs(e[l*t+s]),o&gt;3&amp;&amp;Math.abs(n[l])+v===Math.abs(n[l])&amp;&amp;Math.abs(n[s])+v===Math.abs(n[s]))e[l*t+s]=0;else if(Math.abs(e[l*t+s])&gt;u){for(h=n[s]-n[l],Math.abs(h)+v===Math.abs(h)?p=e[l*t+s]/h:(d=.5*h/e[l*t+s],p=1/(Math.abs(d)+Math.sqrt(1+d*d)),d&lt;0&amp;&amp;(p=-p)),T=1/Math.sqrt(1+p*p),m=p*T,f=m/(1+T),h=p*e[l*t+s],b[l]-=h,b[s]+=h,n[l]-=h,n[s]+=h,e[l*t+s]=0,a=0;a&lt;=l-1;a++)A(e,a*t+l,a*t+s);for(a=l+1;a&lt;=s-1;a++)A(e,l*t+a,a*t+s);for(a=s+1;a&lt;t;a++)A(e,l*t+a,s*t+a);for(a=0;a&lt;t;a++)A(r,a*t+l,a*t+s)}for(l=0;l&lt;t;l++)y[l]+=b[l],n[l]=y[l],b[l]=0}if(o&gt;=20)return yo(&quot;vtkMath::Jacobi: Error extracting eigenfunctions&quot;),0;for(a=0;a&lt;t-1;a++){for(i=a,x=n[i],o=a+1;o&lt;t;o++)(n[o]&gt;=x||Math.abs(n[o]-x)&lt;To)&amp;&amp;(i=o,x=n[i]);i!==a&amp;&amp;(n[i]=n[a],n[a]=x,So(r,t,a,i))}const C=(t&gt;&gt;1)+(1&amp;t);for(c=0,o=0;o&lt;t*t;o++)r[o]&gt;=0&amp;&amp;c++;if(c&lt;C)for(o=0;o&lt;t;o++)r[o*t+a]*=-1;return 1}function da(e,t){const n=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];n[0]=e[0]+e[4]+e[8],n[5]=e[0]-e[4]-e[8],n[10]=-e[0]+e[4]-e[8],n[15]=-e[0]-e[4]+e[8],n[1]=n[4]=e[7]-e[5],n[2]=n[8]=e[2]-e[6],n[3]=n[12]=e[3]-e[1],n[6]=n[9]=e[3]+e[1],n[7]=n[13]=e[2]+e[6],n[11]=n[14]=e[7]+e[5];const r=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];ua([...n],4,[0,0,0,0],r),t[0]=r[0],t[1]=r[4],t[2]=r[8],t[3]=r[12]}function pa(e,t){for(let n=0;n&lt;9;n++)t[n]=e[n];const n=Po(3),r=Po(3);let o;for(let e=0;e&lt;3;e++){const r=Math.abs(t[3*e]),a=Math.abs(t[3*e+1]),i=Math.abs(t[3*e+2]);o=a&gt;r?a:r,o=i&gt;o?i:o,n[e]=1,0!==o&amp;&amp;(n[e]/=o)}const a=Math.abs(t[0])*n[0],i=Math.abs(t[3])*n[1],s=Math.abs(t[6])*n[2];r[0]=0,o=a,i&gt;=o&amp;&amp;(o=i,r[0]=1),s&gt;=o&amp;&amp;(r[0]=2),0!==r[0]&amp;&amp;(So(t,3,r[0],0),n[r[0]]=n[0]);const l=Math.abs(t[4])*n[1],c=Math.abs(t[7])*n[2];r[1]=1,o=l,c&gt;=o&amp;&amp;(r[1]=2,So(t,3,1,2)),r[2]=2;let u=0;if(na(t)&lt;0){u=1;for(let e=0;e&lt;9;e++)t[e]=-t[e]}const d=Po(4);if(da(t,d),sa(d,t),u)for(let e=0;e&lt;9;e++)t[e]=-t[e];1!==r[1]&amp;&amp;So(t,3,r[1],1),0!==r[0]&amp;&amp;So(t,3,r[0],0)}function fa(e,t,n){let r,o,a,i,s,l;if(ua([...e],3,t,n),t[0]!==t[1]||t[0]!==t[2]){for(ta(n,n),r=0;r&lt;3;r++)if(t[(r+1)%3]===t[(r+2)%3]){for(l=Math.abs(n[3*r]),i=0,o=1;o&lt;3;o++)l&lt;(s=Math.abs(n[3*r+o]))&amp;&amp;(l=s,i=o);i!==r&amp;&amp;(s=t[i],t[i]=t[r],t[r]=s,Co(n,3,r,i)),n[3*i+i]&lt;0&amp;&amp;(n[3*i]=-n[3*i],n[3*i+1]=-n[3*i+1],n[3*i+2]=-n[3*i+2]),o=(i+1)%3,a=(i+2)%3,n[3*o]=0,n[3*o+1]=0,n[3*o+2]=0,n[3*o+o]=1;const e=Wo([n[3*i],n[3*i+1],n[3*i+2]],[n[3*o],n[3*o+1],n[3*o+2]],[]);jo(e);const c=Wo(e,[n[3*i],n[3*i+1],n[3*i+2]],[]);for(let t=0;t&lt;3;t++)n[3*a+t]=e[t],n[3*o+t]=c[t];return void ta(n,n)}for(l=Math.abs(n[0]),i=0,r=1;r&lt;3;r++)l&lt;(s=Math.abs(n[3*r]))&amp;&amp;(l=s,i=r);if(0!==i){const e=t[i];t[i]=t[0],t[0]=e,Co(n,3,i,0)}if(Math.abs(n[4])&lt;Math.abs(n[7])){const e=t[2];t[2]=t[1],t[1]=e,Co(n,3,1,2)}for(r=0;r&lt;2;r++)n[3*r+r]&lt;0&amp;&amp;(n[3*r]=-n[3*r],n[3*r+1]=-n[3*r+1],n[3*r+2]=-n[3*r+2]);na(n)&lt;0&amp;&amp;(n[6]=-n[6],n[7]=-n[7],n[8]=-n[8]),ta(n,n)}else aa(n)}function ga(e,t,n){let r,o,a,i,s,l,c,u=0;const d=Po(n);for(r=0;r&lt;n;r++){for(i=0,o=0;o&lt;n;o++)(c=Math.abs(e[r*n+o]))&gt;i&amp;&amp;(i=c);if(0===i)return yo(&quot;Unable to factor linear system&quot;),0;d[r]=1/i}for(o=0;o&lt;n;o++){for(r=0;r&lt;o;r++){for(s=e[r*n+o],a=0;a&lt;r;a++)s-=e[r*n+a]*e[a*n+o];e[r*n+o]=s}for(i=0,r=o;r&lt;n;r++){for(s=e[r*n+o],a=0;a&lt;o;a++)s-=e[r*n+a]*e[a*n+o];e[r*n+o]=s,(l=d[r]*Math.abs(s))&gt;=i&amp;&amp;(i=l,u=r)}if(o!==u){for(a=0;a&lt;n;a++)l=e[u*n+a],e[u*n+a]=e[o*n+a],e[o*n+a]=l;d[u]=d[o]}if(t[o]=u,Math.abs(e[o*n+o])&lt;=To)return yo(&quot;Unable to factor linear system&quot;),0;if(o!==n-1)for(l=1/e[o*n+o],r=o+1;r&lt;n;r++)e[r*n+o]*=l}return 1}function ma(e,t,n,r){let o,a,i,s,l;for(i=-1,o=0;o&lt;r;o++){if(s=t[o],l=n[s],n[s]=n[o],i&gt;=0)for(a=i;a&lt;=o-1;a++)l-=e[o*r+a]*n[a];else 0!==l&amp;&amp;(i=o);n[o]=l}for(o=r-1;o&gt;=0;o--){for(l=n[o],a=o+1;a&lt;r;a++)l-=e[o*r+a]*n[a];n[o]=l/e[o*r+o]}}function ha(e,t,n){if(2===n){const n=Po(2),r=Qo(e[0],e[1],e[2],e[3]);return 0===r?0:(n[0]=(e[3]*t[0]-e[1]*t[1])/r,n[1]=(-e[2]*t[0]+e[0]*t[1])/r,t[0]=n[0],t[1]=n[1],1)}if(1===n)return 0===e[0]?0:(t[0]/=e[0],1);const r=Po(n);return 0===ga(e,r,n)?0:(ma(e,r,t,n),1)}function va(e,t,n,r=null,o=null){const a=r||Po(n),i=o||Po(n);if(0===ga(e,a,n))return null;for(let r=0;r&lt;n;r++){for(let e=0;e&lt;n;e++)i[e]=0;i[r]=1,ma(e,a,i,n);for(let e=0;e&lt;n;e++)t[e*n+r]=i[e]}return t}function Ta(e,t,n,r){if(e&lt;n)return yo(&quot;Insufficient number of samples. Underdetermined.&quot;),0;let o,a,i;const s=Po(n*n),l=Po(n),c=Po(n*n);for(i=0;i&lt;e;i++)for(o=0;o&lt;n;o++)for(a=o;a&lt;n;a++)s[o*n+a]+=t[i*n+o]*t[i*n+a];for(o=0;o&lt;n;o++)for(a=0;a&lt;o;a++)s[o*n+a]=s[a*n+o];for(ua(s,n,l,c),o=0;o&lt;n;o++)r[o]=c[o*n+n-1];return 1}function xa(e,t){let n,r;const[o,a,i]=e,s=1/6;let l=o,c=o;a&gt;l?l=a:a&lt;c&amp;&amp;(c=a),i&gt;l?l=i:i&lt;c&amp;&amp;(c=i);const u=l;r=u&gt;0?(l-c)/l:0,r&gt;0?(n=o===l?s*(a-i)/(l-c):a===l?1/3+s*(i-o)/(l-c):2/3+s*(o-a)/(l-c),n&lt;0&amp;&amp;(n+=1)):n=0,t[0]=n,t[1]=r,t[2]=u}function ya(e,t){const[n,r,o]=e,a=1/3,i=1/6,s=2/3,l=5/6;let c,u,d;n&gt;i&amp;&amp;n&lt;=a?(u=1,c=(a-n)/i,d=0):n&gt;a&amp;&amp;n&lt;=.5?(u=1,d=(n-a)/i,c=0):n&gt;.5&amp;&amp;n&lt;=s?(d=1,u=(s-n)/i,c=0):n&gt;s&amp;&amp;n&lt;=l?(d=1,c=(n-s)/i,u=0):n&gt;l&amp;&amp;n&lt;=1?(c=1,d=(1-n)/i,u=0):(c=1,u=n/i,d=0),c=r*c+(1-r),u=r*u+(1-r),d=r*d+(1-r),c*=o,u*=o,d*=o,t[0]=c,t[1]=u,t[2]=d}function ba(e,t){const[n,r,o]=e;let a=(n+16)/116,i=r/500+a,s=a-o/200;a**3&gt;.008856?a**=3:a=(a-16/116)/7.787,i**3&gt;.008856?i**=3:i=(i-16/116)/7.787,s**3&gt;.008856?s**=3:s=(s-16/116)/7.787;t[0]=.9505*i,t[1]=1*a,t[2]=1.089*s}function Aa(e,t){const[n,r,o]=e;let a=n/.9505,i=r/1,s=o/1.089;a&gt;.008856?a**=1/3:a=7.787*a+16/116,i&gt;.008856?i**=1/3:i=7.787*i+16/116,s&gt;.008856?s**=1/3:s=7.787*s+16/116,t[0]=116*i-16,t[1]=500*(a-i),t[2]=200*(i-s)}function Ca(e,t){const[n,r,o]=e;let a=3.2406*n+-1.5372*r+-.4986*o,i=-.9689*n+1.8758*r+.0415*o,s=.0557*n+-.204*r+1.057*o;a&gt;.0031308?a=1.055*a**(1/2.4)-.055:a*=12.92,i&gt;.0031308?i=1.055*i**(1/2.4)-.055:i*=12.92,s&gt;.0031308?s=1.055*s**(1/2.4)-.055:s*=12.92;let l=a;l&lt;i&amp;&amp;(l=i),l&lt;s&amp;&amp;(l=s),l&gt;1&amp;&amp;(a/=l,i/=l,s/=l),a&lt;0&amp;&amp;(a=0),i&lt;0&amp;&amp;(i=0),s&lt;0&amp;&amp;(s=0),t[0]=a,t[1]=i,t[2]=s}function Sa(e,t){let[n,r,o]=e;n&gt;.04045?n=((n+.055)/1.055)**2.4:n/=12.92,r&gt;.04045?r=((r+.055)/1.055)**2.4:r/=12.92,o&gt;.04045?o=((o+.055)/1.055)**2.4:o/=12.92,t[0]=.4124*n+.3576*r+.1805*o,t[1]=.2126*n+.7152*r+.0722*o,t[2]=.0193*n+.1192*r+.9505*o}function Pa(e,t){const n=[0,0,0];Sa(e,n),Aa(n,t)}function wa(e,t){const n=[0,0,0];ba(e,n),Ca(n,t)}function Ia(e){return e[0]=1,e[1]=-1,e[2]=1,e[3]=-1,e[4]=1,e[5]=-1,e}function Oa(e){return!(e[1]-e[0]&lt;0)}function Ra(e,t,n){return e&lt;t?t:e&gt;n?n:e}function Ma(e,t,n,r=[0,0,0]){return r[0]=Ra(e[0],t[0],n[0]),r[1]=Ra(e[1],t[1],n[1]),r[2]=Ra(e[2],t[2],n[2]),r}const Da=Ao(&quot;GetScalarTypeFittingRange&quot;),Ea=Ao(&quot;GetAdjustedScalarRange&quot;);const Va=1/0,La=-1/0,Ba=e=&gt;!Number.isFinite(e),{isFinite:Fa,isNaN:Na}=Number,ka=Na;function Ga(){return[].concat([Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE])}function Ua(e,t=3){const n=new Array(t),r=new Array(t);for(let e=0;e&lt;t;++e)n[e]=e,r[e]=e;for(let o=t-1;o&gt;0;o--){let a=-1/0,i=0,s=0;for(let l=0;l&lt;=o;++l){const c=n[l];for(let n=0;n&lt;=o;++n){const o=r[n],u=Math.abs(e[c+t*o]);u&gt;a&amp;&amp;(a=u,i=l,s=n)}}[n[o],n[i]]=[n[i],n[o]],[r[o],r[s]]=[r[s],r[o]]}const o=new Array(t*t).fill(0);for(let a=0;a&lt;t;++a){const i=n[a]+t*r[a];o[i]=e[i]&lt;0?-1:1}return o}function _a(e){const t=Math.floor(255*e);return t&gt;15?t.toString(16):`0${t.toString(16)}`}function Ka(e){return Math.round(255*e)}var za={Pi:()=&gt;Math.PI,ldexp:function(e,t){return t&gt;1023?e*2**1023*2**(t-1023):t&lt;-1074?5e-324*e*2**(t+1074):e*2**t},radiansFromDegrees:wo,degreesFromRadians:Io,round:Oo,floor:Ro,ceil:Mo,ceilLog2:Vo,min:Do,max:Eo,arrayMin:function(e,t=0,n=1){let r=1/0;for(let o=t,a=e.length;o&lt;a;o+=n)e[o]&lt;r&amp;&amp;(r=e[o]);return r},arrayMax:function(e,t=0,n=1){let r=-1/0;for(let o=t,a=e.length;o&lt;a;o+=n)r&lt;e[o]&amp;&amp;(r=e[o]);return r},arrayRange:function(e,t=0,n=1){let r=1/0,o=-1/0;for(let a=t,i=e.length;a&lt;i;a+=n)e[a]&lt;r&amp;&amp;(r=e[a]),o&lt;e[a]&amp;&amp;(o=e[a]);return[r,o]},isPowerOfTwo:Fo,nearestPowerOfTwo:Bo,factorial:Lo,binomial:function(e,t){let n=1;for(let r=1;r&lt;=t;++r)n*=(e-r+1)/r;return Math.floor(n)},beginCombination:function(e,t){if(e&lt;t)return 0;const n=Po(t);for(let e=0;e&lt;t;++e)n[e]=e;return n},nextCombination:function(e,t,n){let r=0;for(let o=t-1;o&gt;=0;--o)if(n[o]&lt;e-t+o){let e=n[o]+1;for(;o&lt;t;)n[o++]=e++;r=1;break}return r},randomSeed:function(e){mo(`${e}`,{global:!0}),bo=e},getSeed:function(){return bo},random:function(e=0,t=1){return e+(t-e)*Math.random()},gaussian:No,add:ko,subtract:Go,multiplyScalar:Uo,multiplyScalar2D:_o,multiplyAccumulate:Ko,multiplyAccumulate2D:function(e,t,n,r){return r[0]=e[0]+t[0]*n,r[1]=e[1]+t[1]*n,r},dot:zo,outer:function(e,t,n){n[0]=e[0]*t[0],n[1]=e[0]*t[1],n[2]=e[0]*t[2],n[3]=e[1]*t[0],n[4]=e[1]*t[1],n[5]=e[1]*t[2],n[6]=e[2]*t[0],n[7]=e[2]*t[1],n[8]=e[2]*t[2]},cross:Wo,norm:Ho,normalize:jo,perpendiculars:function(e,t,n,r){const o=e[0]*e[0],a=e[1]*e[1],i=e[2]*e[2],s=Math.sqrt(o+a+i);let l,c,u;o&gt;a&amp;&amp;o&gt;i?(l=0,c=1,u=2):a&gt;i?(l=1,c=2,u=0):(l=2,c=0,u=1);const d=e[l]/s,p=e[c]/s,f=e[u]/s,g=Math.sqrt(d*d+f*f);if(0!==r){const e=Math.sin(r),o=Math.cos(r);t&amp;&amp;(t[l]=(f*o-d*p*e)/g,t[c]=e*g,t[u]=(-d*o-p*f*e)/g),n&amp;&amp;(n[l]=(-f*e-d*p*o)/g,n[c]=o*g,n[u]=(d*e-p*f*o)/g)}else t&amp;&amp;(t[l]=f/g,t[c]=0,t[u]=-d/g),n&amp;&amp;(n[l]=-d*p/g,n[c]=g,n[u]=-p*f/g)},projectVector:function(e,t,n){const r=zo(t,t);if(0===r)return n[0]=0,n[1]=0,n[2]=0,!1;const o=zo(e,t)/r;for(let e=0;e&lt;3;e++)n[e]=t[e];return Uo(n,o),!0},projectVector2D:function(e,t,n){const r=qo(t,t);if(0===r)return n[0]=0,n[1]=0,!1;const o=qo(e,t)/r;for(let e=0;e&lt;2;e++)n[e]=t[e];return _o(n,o),!0},distance2BetweenPoints:Yo,angleBetweenVectors:function(e,t){const n=[0,0,0];return Wo(e,t,n),Math.atan2(Ho(n),zo(e,t))},gaussianAmplitude:function(e,t,n){const r=Math.abs(e-n);return 1/Math.sqrt(2*Math.PI*t)*Math.exp(-(r**2)/(2*t))},gaussianWeight:function(e,t,n){const r=Math.abs(e-n);return Math.exp(-(r**2)/(2*t))},dot2D:qo,outer2D:function(e,t,n){n[0]=e[0]*t[0],n[1]=e[0]*t[1],n[2]=e[1]*t[0],n[3]=e[1]*t[1]},norm2D:Jo,normalize2D:Zo,determinant2x2:Qo,LUFactor3x3:function(e,t){let n,r,o;const a=[0,0,0];for(let t=0;t&lt;3;t++)o=Math.abs(e[3*t]),(r=Math.abs(e[3*t+1]))&gt;o&amp;&amp;(o=r),(r=Math.abs(e[3*t+2]))&gt;o&amp;&amp;(o=r),a[t]=1/o;o=a[0]*Math.abs(e[0]),n=0,(r=a[1]*Math.abs(e[3]))&gt;=o&amp;&amp;(o=r,n=1),(r=a[2]*Math.abs(e[6]))&gt;=o&amp;&amp;(n=2),0!==n&amp;&amp;(Co(e,3,n,0),a[n]=a[0]),t[0]=n,e[3]/=e[0],e[6]/=e[0],e[4]-=e[3]*e[1],e[7]-=e[6]*e[1],o=a[1]*Math.abs(e[4]),n=1,(r=a[2]*Math.abs(e[7]))&gt;=o&amp;&amp;(n=2,Co(e,3,1,2),a[2]=a[1]),t[1]=n,e[7]/=e[4],e[5]-=e[3]*e[2],e[8]-=e[6]*e[2]+e[7]*e[5],t[2]=2},LUSolve3x3:function(e,t,n){let r=n[t[0]];n[t[0]]=n[0],n[0]=r,r=n[t[1]],n[t[1]]=n[1],n[1]=r-e[3]*n[0],r=n[t[2]],n[t[2]]=n[2],n[2]=r-e[6]*n[0]-e[7]*n[1],n[2]/=e[8],n[1]=(n[1]-e[5]*n[2])/e[4],n[0]=(n[0]-e[1]*n[1]-e[2]*n[2])/e[0]},linearSolve3x3:function(e,t,n){const r=e[0],o=e[1],a=e[2],i=e[3],s=e[4],l=e[5],c=e[6],u=e[7],d=e[8],p=+Qo(s,u,l,d),f=-Qo(i,c,l,d),g=+Qo(i,c,s,u),m=-Qo(o,u,a,d),h=+Qo(r,c,a,d),v=-Qo(r,c,o,u),T=+Qo(o,s,a,l),x=-Qo(r,i,a,l),y=+Qo(r,i,o,s),b=r*p+o*f+a*g,A=p*t[0]+m*t[1]+T*t[2],C=f*t[0]+h*t[1]+x*t[2],S=g*t[0]+v*t[1]+y*t[2];n[0]=A/b,n[1]=C/b,n[2]=S/b},multiply3x3_vect3:$o,multiply3x3_mat3:ea,multiplyMatrix:function(e,t,n,r,o,a,i){r!==o&amp;&amp;xo(&quot;Number of columns of A must match number of rows of B.&quot;);const s=[...e],l=[...t];for(let e=0;e&lt;n;e++)for(let t=0;t&lt;a;t++){i[e*a+t]=0;for(let n=0;n&lt;r;n++)i[e*a+t]+=s[e*r+n]*l[t+a*n]}},transpose3x3:ta,invert3x3:function(e,t){const n=e[0],r=e[1],o=e[2],a=e[3],i=e[4],s=e[5],l=e[6],c=e[7],u=e[8],d=+Qo(i,c,s,u),p=-Qo(a,l,s,u),f=+Qo(a,l,i,c),g=-Qo(r,c,o,u),m=+Qo(n,l,o,u),h=-Qo(n,l,r,c),v=+Qo(r,i,o,s),T=-Qo(n,a,o,s),x=+Qo(n,a,r,i),y=n*d+r*p+o*f;0===y&amp;&amp;yo(&quot;Matrix has 0 determinant&quot;),t[0]=d/y,t[3]=p/y,t[6]=f/y,t[1]=g/y,t[4]=m/y,t[7]=h/y,t[2]=v/y,t[5]=T/y,t[8]=x/y},identity3x3:aa,identity:ia,isIdentity:function(e,t=1e-6){return oa(e,ho,t)},isIdentity3x3:function(e,t=1e-6){return oa(e,vo,t)},determinant3x3:na,quaternionToMatrix3x3:sa,areEquals:ra,areMatricesEqual:oa,roundNumber:la,roundVector:ca,matrix3x3ToQuaternion:da,multiplyQuaternion:function(e,t,n){const r=e[0]*t[0],o=e[0]*t[1],a=e[0]*t[2],i=e[0]*t[3],s=e[1]*t[0],l=e[1]*t[1],c=e[1]*t[2],u=e[1]*t[3],d=e[2]*t[0],p=e[2]*t[1],f=e[2]*t[2],g=e[2]*t[3],m=e[3]*t[0],h=e[3]*t[1],v=e[3]*t[2],T=e[3]*t[3];n[0]=r-l-f-T,n[1]=o+s+g-v,n[2]=a-u+d+h,n[3]=i+c-p+m},orthogonalize3x3:pa,diagonalize3x3:fa,singularValueDecomposition3x3:function(e,t,n,r){let o;const a=[...e],i=na(a);if(i&lt;0)for(o=0;o&lt;9;o++)a[o]=-a[o];pa(a,t),ta(a,a),ea(a,t,r),fa(r,n,r),ea(t,r,t),ta(r,r),i&lt;0&amp;&amp;(n[0]=-n[0],n[1]=-n[1],n[2]=-n[2])},solveLinearSystem:ha,invertMatrix:va,luFactorLinearSystem:ga,luSolveLinearSystem:ma,estimateMatrixCondition:function(e,t){let n=+Number.MAX_VALUE,r=-Number.MAX_VALUE;for(let n=0;n&lt;t;n++)for(let o=n;o&lt;t;o++)Math.abs(e[n*t+o])&gt;r&amp;&amp;(r=Math.abs(e[n*t+o]));for(let r=0;r&lt;t;r++)Math.abs(e[r*t+r])&lt;n&amp;&amp;(n=Math.abs(e[r*t+r]));return 0===n?Number.MAX_VALUE:r/n},jacobi:function(e,t,n){return ua(e,3,t,n)},jacobiN:ua,solveHomogeneousLeastSquares:Ta,solveLeastSquares:function(e,t,n,r,o,a,i=!0){if(e&lt;n||e&lt;o)return yo(&quot;Insufficient number of samples. Underdetermined.&quot;),0;const s=Po(o);let l,c,u,d,p=1,f=0,g=0;if(i){for(u=0;u&lt;o;u++)s[u]=1;for(c=0;c&lt;e;c++)for(u=0;u&lt;o;u++)Math.abs(r[c*o+u])&gt;To&amp;&amp;(p=0,s[u]=0);if(p&amp;&amp;1===o)return yo(&quot;Detected homogeneous system (Y=0), calling SolveHomogeneousLeastSquares()&quot;),Ta(e,t,n,a);if(p)g=1;else for(u=0;u&lt;o;u++)s[u]&amp;&amp;(g=1)}g&amp;&amp;(l=Po(n),f=Ta(e,t,n,l));const m=Po(n*n),h=Po(n*n),v=Po(n*o);for(d=0;d&lt;e;d++)for(c=0;c&lt;n;c++){for(u=c;u&lt;n;u++)m[c*n+u]+=t[d*n+c]*t[d*n+u];for(u=0;u&lt;o;u++)v[c*o+u]+=t[d*n+c]*r[d*o+u]}for(c=0;c&lt;n;c++)for(u=0;u&lt;c;u++)m[c*n+u]=m[u*n+c];const T=va(m,h,n);if(T)for(c=0;c&lt;n;c++)for(u=0;u&lt;o;u++)for(a[c*o+u]=0,d=0;d&lt;n;d++)a[c*o+u]+=h[c*n+d]*v[d*o+u];if(g)for(u=0;u&lt;o;u++)if(s[u])for(c=0;c&lt;n;c++)a[c*o+u]=l[c*o];return g?f&amp;&amp;T:T},hex2float:function(e,t=[0,.5,1]){switch(e.length){case 3:return t[0]=17*parseInt(e[0],16)/255,t[1]=17*parseInt(e[1],16)/255,t[2]=17*parseInt(e[2],16)/255,t;case 4:return t[0]=17*parseInt(e[1],16)/255,t[1]=17*parseInt(e[2],16)/255,t[2]=17*parseInt(e[3],16)/255,t;case 6:return t[0]=parseInt(e.substr(0,2),16)/255,t[1]=parseInt(e.substr(2,2),16)/255,t[2]=parseInt(e.substr(4,2),16)/255,t;case 7:return t[0]=parseInt(e.substr(1,2),16)/255,t[1]=parseInt(e.substr(3,2),16)/255,t[2]=parseInt(e.substr(5,2),16)/255,t;case 9:return t[0]=parseInt(e.substr(1,2),16)/255,t[1]=parseInt(e.substr(3,2),16)/255,t[2]=parseInt(e.substr(5,2),16)/255,t[3]=parseInt(e.substr(7,2),16)/255,t;default:return t}},rgb2hsv:xa,hsv2rgb:ya,lab2xyz:ba,xyz2lab:Aa,xyz2rgb:Ca,rgb2xyz:Sa,rgb2lab:Pa,lab2rgb:wa,uninitializeBounds:Ia,areBoundsInitialized:Oa,computeBoundsFromPoints:function(e,t,n){return n[0]=Math.min(e[0],t[0]),n[1]=Math.max(e[0],t[0]),n[2]=Math.min(e[1],t[1]),n[3]=Math.max(e[1],t[1]),n[4]=Math.min(e[2],t[2]),n[5]=Math.max(e[2],t[2]),n},clampValue:Ra,clampVector:Ma,clampAndNormalizeValue:function(e,t){let n=0;return t[0]!==t[1]&amp;&amp;(n=e&lt;t[0]?t[0]:e&gt;t[1]?t[1]:e,n=(n-t[0])/(t[1]-t[0])),n},getScalarTypeFittingRange:Da,getAdjustedScalarRange:Ea,extentIsWithinOtherExtent:function(e,t){if(!e||!t)return 0;for(let n=0;n&lt;6;n+=2)if(e[n]&lt;t[n]||e[n]&gt;t[n+1]||e[n+1]&lt;t[n]||e[n+1]&gt;t[n+1])return 0;return 1},boundsIsWithinOtherBounds:function(e,t,n){if(!e||!t)return 0;for(let r=0;r&lt;6;r+=2)if(e[r]+n[r/2]&lt;t[r]||e[r]-n[r/2]&gt;t[r+1]||e[r+1]+n[r/2]&lt;t[r]||e[r+1]-n[r/2]&gt;t[r+1])return 0;return 1},pointIsWithinBounds:function(e,t,n){if(!e||!t||!n)return 0;for(let r=0;r&lt;3;r++)if(e[r]+n[r]&lt;t[2*r]||e[r]-n[r]&gt;t[2*r+1])return 0;return 1},solve3PointCircle:function(e,t,n,r){const o=Po(3),a=Po(3),i=Po(3),s=Po(3),l=Po(3),c=Po(3);for(let r=0;r&lt;3;++r)o[r]=e[r]-t[r],a[r]=t[r]-n[r],i[r]=n[r]-e[r],s[r]=-o[r],l[r]=-a[r],c[r]=-i[r];const u=Ho(s),d=Ho(l),p=Ho(i),f=Po(3);Wo(o,a,f);const g=Ho(f),m=u*d*p/(2*g),h=2*g*g,v=d*d*zo(o,c)/h,T=p*p*zo(s,a)/h,x=u*u*zo(i,l)/h;for(let o=0;o&lt;3;++o)r[o]=v*e[o]+T*t[o]+x*n[o];return m},inf:Va,negInf:La,isInf:Ba,isNan:Na,isNaN:Na,isFinite:Fa,createUninitializedBounds:Ga,getMajorAxisIndex:function(e){let t=-1,n=-1;for(let r=0;r&lt;e.length;r++){const o=Math.abs(e[r]);o&gt;t&amp;&amp;(n=r,t=o)}return n},getMinorAxisIndex:function(e){let t=1/0,n=-1;for(let r=0;r&lt;e.length;r++){const o=Math.abs(e[r]);o&lt;t&amp;&amp;(n=r,t=o)}return n},getSparseOrthogonalMatrix:Ua,floatToHex2:_a,floatRGB2HexCode:function(e,t=&quot;#&quot;){return`${t}${e.map(_a).join(&quot;&quot;)}`},float2CssRGBA:function(e){return 3===e.length?`rgb(${e.map(Ka).join(&quot;, &quot;)})`:`rgba(${Ka(e[0]||0)}, ${Ka(e[1]||0)}, ${Ka(e[2]||0)}, ${e[3]||0})`}};const Wa={};function Ha(e,t,n={}){Object.assign(t,Wa,n),sn.obj(e,t),sn.setGet(e,t,[&quot;transform&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkImplicitFunction&quot;),e.functionValue=n=&gt;{if(!t.transform)return e.evaluateFunction(n);const r=[];return t.transform.transformPoint(n,r),e.evaluateFunction(r)},e.evaluateFunction=e=&gt;{sn.vtkErrorMacro(&quot;not implemented&quot;)}}(e,t)}var ja={newInstance:sn.newInstance(Ha,&quot;vtkImplicitFunction&quot;),extend:Ha};const Xa=1e-6,qa=&quot;coincide&quot;,Ya=&quot;disjoint&quot;;function Ja(e,t,n){const r=n[0]*(e[0]-t[0])+n[1]*(e[1]-t[1])+n[2]*(e[2]-t[2]);return Math.abs(r)}function Za(e,t,n,r){const o=[];Go(e,t,o);const a=zo(n,o);r[0]=e[0]-a*n[0],r[1]=e[1]-a*n[1],r[2]=e[2]-a*n[2]}function Qa(e,t,n){const r=zo(e,t);let o=zo(t,t);return 0===o&amp;&amp;(o=1),n[0]=e[0]-r*t[0]/o,n[1]=e[1]-r*t[1]/o,n[2]=e[2]-r*t[2]/o,n}function $a(e,t,n,r){const o=[];Go(e,t,o);const a=zo(n,o),i=zo(n,n);0!==i?(r[0]=e[0]-a*n[0]/i,r[1]=e[1]-a*n[1]/i,r[2]=e[2]-a*n[2]/i):(r[0]=e[0],r[1]=e[1],r[2]=e[2])}function ei(e,t,n,r){const o={intersection:!1,betweenPoints:!1,t:Number.MAX_VALUE,x:[]},a=[],i=[];Go(t,e,a),Go(n,e,i);const s=zo(r,i),l=zo(r,a);let c,u;return c=l&lt;0?-l:l,u=s&lt;0?-s*Xa:s*Xa,c&lt;=u||(o.t=s/l,o.x[0]=e[0]+o.t*a[0],o.x[1]=e[1]+o.t*a[1],o.x[2]=e[2]+o.t*a[2],o.intersection=!0,o.betweenPoints=o.t&gt;=0&amp;&amp;o.t&lt;=1),o}function ti(e,t,n,r){const o={intersection:!1,l0:[],l1:[],error:null},a=[];Wo(t,r,a);const i=a.map((e=&gt;Math.abs(e)));if(i[0]+i[1]+i[2]&lt;Xa){const r=[];return Go(e,n,r),0===zo(t,r)?o.error=qa:o.error=Ya,o}let s;s=i[0]&gt;i[1]&amp;&amp;i[0]&gt;i[2]?&quot;x&quot;:i[1]&gt;i[2]?&quot;y&quot;:&quot;z&quot;;const l=[],c=-zo(t,e),u=-zo(r,n);switch(s){case&quot;x&quot;:l[0]=0,l[1]=(u*t[2]-c*r[2])/a[0],l[2]=(c*r[1]-u*t[1])/a[0];break;case&quot;y&quot;:l[0]=(c*r[2]-u*t[2])/a[1],l[1]=0,l[2]=(u*t[0]-c*r[0])/a[1];break;case&quot;z&quot;:l[0]=(u*t[1]-c*r[1])/a[2],l[1]=(c*r[0]-u*t[0])/a[2],l[2]=0}return o.l0=l,ko(l,a,o.l1),o.intersection=!0,o}const ni={evaluate:function(e,t,n){return e[0]*(n[0]-t[0])+e[1]*(n[1]-t[1])+e[2]*(n[2]-t[2])},distanceToPlane:Ja,projectPoint:Za,projectVector:Qa,generalizedProjectPoint:$a,intersectWithLine:ei,intersectWithPlane:ti,DISJOINT:Ya,COINCIDE:qa};const ri={normal:[0,0,1],origin:[0,0,0]};function oi(e,t,n={}){Object.assign(t,ri,n),ja.extend(e,t,n),sn.setGetArray(e,t,[&quot;normal&quot;,&quot;origin&quot;],3),function(e,t){t.classHierarchy.push(&quot;vtkPlane&quot;),e.distanceToPlane=e=&gt;Ja(e,t.origin,t.normal),e.projectPoint=(e,n)=&gt;{Za(e,t.origin,t.normal,n)},e.projectVector=(e,n)=&gt;Qa(e,t.normal,n),e.push=e=&gt;{if(0!==e)for(let n=0;n&lt;3;n++)t.origin[n]+=e*t.normal[n]},e.generalizedProjectPoint=(e,n)=&gt;{$a(e,t.origin,t.normal,n)},e.evaluateFunction=(e,n,r)=&gt;Array.isArray(e)?t.normal[0]*(e[0]-t.origin[0])+t.normal[1]*(e[1]-t.origin[1])+t.normal[2]*(e[2]-t.origin[2]):t.normal[0]*(e-t.origin[0])+t.normal[1]*(n-t.origin[1])+t.normal[2]*(r-t.origin[2]),e.evaluateGradient=e=&gt;[t.normal[0],t.normal[1],t.normal[2]],e.intersectWithLine=(e,n)=&gt;ei(e,n,t.origin,t.normal),e.intersectWithPlane=(e,n)=&gt;ti(e,n,t.origin,t.normal)}(e,t)}var ai={newInstance:sn.newInstance(oi,&quot;vtkPlane&quot;),extend:oi,...ni};const ii=[Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE];function si(e,t){return e[0]===t[0]&amp;&amp;e[1]===t[1]&amp;&amp;e[2]===t[2]&amp;&amp;e[3]===t[3]&amp;&amp;e[4]===t[4]&amp;&amp;e[5]===t[5]}function li(e){return e?.length&gt;=6&amp;&amp;e[0]&lt;=e[1]&amp;&amp;e[2]&lt;=e[3]&amp;&amp;e[4]&lt;=e[5]}function ci(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e}function ui(e){return ci(e,ii)}function di(e,t,n,r){const[o,a,i,s,l,c]=e;return&quot;number&quot;==typeof t?(e[0]=o&lt;t?o:t,e[1]=a&gt;t?a:t,e[2]=i&lt;n?i:n,e[3]=s&gt;n?s:n,e[4]=l&lt;r?l:r,e[5]=c&gt;r?c:r):(e[0]=o&lt;t[0]?o:t[0],e[1]=a&gt;t[0]?a:t[0],e[2]=i&lt;t[1]?i:t[1],e[3]=s&gt;t[1]?s:t[1],e[4]=l&lt;t[2]?l:t[2],e[5]=c&gt;t[2]?c:t[2]),e}function pi(e,t){if(0===t.length)return e;if(Array.isArray(t[0]))for(let n=0;n&lt;t.length;++n)di(e,...t[n]);else for(let n=0;n&lt;t.length;n+=3)di(e,...t.slice(n,n+3));return e}function fi(e,t,n,r,o,a,i){const[s,l,c,u,d,p]=e;return void 0===i?(e[0]=Math.min(t[0],s),e[1]=Math.max(t[1],l),e[2]=Math.min(t[2],c),e[3]=Math.max(t[3],u),e[4]=Math.min(t[4],d),e[5]=Math.max(t[5],p)):(e[0]=Math.min(t,s),e[1]=Math.max(n,l),e[2]=Math.min(r,c),e[3]=Math.max(o,u),e[4]=Math.min(a,d),e[5]=Math.max(i,p)),e}function gi(e,t,n,r){const[o,a,i,s,l,c]=e;return e[0]=t,e[1]=t&gt;a?t:a,e[2]=n,e[3]=n&gt;s?n:s,e[4]=r,e[5]=r&gt;c?r:c,o!==t||i!==n||l!==r}function mi(e,t,n,r){const[o,a,i,s,l,c]=e;return e[0]=t&lt;o?t:o,e[1]=t,e[2]=n&lt;i?n:i,e[3]=n,e[4]=r&lt;l?r:l,e[5]=r,a!==t||s!==n||c!==r}function hi(e,t){return null==t?function(e){const t=[0,0,0];let n=-1,r=0,o=0;for(let a=0;a&lt;3;++a)o=e[2*a+1]-e[2*a],o&gt;r&amp;&amp;(r=o,n=a),t[a]=o&gt;0?1:0;if(n&lt;0)return hi(e,.5);for(let n=0;n&lt;3;++n)if(!t[n]){const t=.005*r;e[2*n]-=t,e[2*n+1]+=t}return e}(e):(e[0]-=t,e[1]+=t,e[2]-=t,e[3]+=t,e[4]-=t,e[5]+=t,e)}function vi(e,t,n,r){return!!li(e)&amp;&amp;(t&gt;=0?(e[0]*=t,e[1]*=t):(e[0]=t*e[1],e[1]=t*e[0]),n&gt;=0?(e[2]*=n,e[3]*=n):(e[2]=n*e[3],e[3]=n*e[2]),r&gt;=0?(e[4]*=r,e[5]*=r):(e[4]=r*e[5],e[5]=r*e[4]),!0)}function Ti(e){return[.5*(e[0]+e[1]),.5*(e[2]+e[3]),.5*(e[4]+e[5])]}function xi(e,t){return e[2*t+1]-e[2*t]}function yi(e){return[xi(e,0),xi(e,1),xi(e,2)]}function bi(e){return e.slice(0,2)}function Ai(e){return e.slice(2,4)}function Ci(e){return e.slice(4,6)}function Si(e){const t=yi(e);return t[0]&gt;t[1]?t[0]&gt;t[2]?t[0]:t[2]:t[1]&gt;t[2]?t[1]:t[2]}function Pi(e){if(li(e)){const t=yi(e);return t[0]*t[0]+t[1]*t[1]+t[2]*t[2]}return null}function wi(e){const t=Pi(e);return null!==t?Math.sqrt(t):null}function Ii(e){return[e[0],e[2],e[4]]}function Oi(e){return[e[1],e[3],e[5]]}function Ri(e,t){return e&lt;=0&amp;&amp;t&gt;=0||e&gt;=0&amp;&amp;t&lt;=0}function Mi(e,t){return t[0]=[e[0],e[2],e[4]],t[1]=[e[0],e[2],e[5]],t[2]=[e[0],e[3],e[4]],t[3]=[e[0],e[3],e[5]],t[4]=[e[1],e[2],e[4]],t[5]=[e[1],e[2],e[5]],t[6]=[e[1],e[3],e[4]],t[7]=[e[1],e[3],e[5]],t}function Di(e,t,n){return t[0]=e[0],t[1]=e[2],t[2]=e[4],n[0]=e[1],n[1]=e[3],n[2]=e[5],t}function Ei(e,t,n=[]){const r=Mi(e,[]);for(let e=0;e&lt;r.length;++e)oe(r[e],r[e],t);return ui(n),pi(n,r)}function Vi(e,t=[]){return t[0]=.5*(e[1]-e[0]),t[1]=.5*(e[3]-e[2]),t[2]=.5*(e[5]-e[4]),t}function Li(e,t,n,r){const o=[].concat(ii),a=e.getData();for(let e=0;e&lt;a.length;e+=3){const i=[a[e],a[e+1],a[e+2]],s=zo(i,t);o[0]=Math.min(s,o[0]),o[1]=Math.max(s,o[1]);const l=zo(i,n);o[2]=Math.min(l,o[2]),o[3]=Math.max(l,o[3]);const c=zo(i,r);o[4]=Math.min(c,o[4]),o[5]=Math.max(c,o[5])}return o}function Bi(e,t,n,r,o){let a=!0;const i=[];let s=0;const l=[],c=[0,0,0];for(let n=0;n&lt;3;n++)t[n]&lt;e[2*n]?(i[n]=1,c[n]=e[2*n],a=!1):t[n]&gt;e[2*n+1]?(i[n]=0,c[n]=e[2*n+1],a=!1):i[n]=2;if(a)return r[0]=t[0],r[1]=t[1],r[2]=t[2],o[0]=0,1;for(let e=0;e&lt;3;e++)2!==i[e]&amp;&amp;0!==n[e]?l[e]=(c[e]-t[e])/n[e]:l[e]=-1;for(let e=0;e&lt;3;e++)l[s]&lt;l[e]&amp;&amp;(s=e);if(l[s]&gt;1||l[s]&lt;0)return 0;o[0]=l[s];for(let o=0;o&lt;3;o++)if(s!==o){if(r[o]=t[o]+l[s]*n[o],r[o]&lt;e[2*o]||r[o]&gt;e[2*o+1])return 0}else r[o]=c[o];return 1}function Fi(e,t,n){const r=[];let o=0,a=1,i=1;for(let s=4;s&lt;=5;++s){r[2]=e[s];for(let s=2;s&lt;=3;++s){r[1]=e[s];for(let s=0;s&lt;=1;++s)if(r[0]=e[s],o=ai.evaluate(n,t,r),i&amp;&amp;(a=o&gt;=0?1:-1,i=0),0===o||a&gt;0&amp;&amp;o&lt;0||a&lt;0&amp;&amp;o&gt;0)return 1}}return 0}function Ni(e,t){if(!li(e)||!li(t))return!1;const n=[0,0,0,0,0,0];let r;for(let o=0;o&lt;3;o++)if(r=!1,t[2*o]&gt;=e[2*o]&amp;&amp;t[2*o]&lt;=e[2*o+1]?(r=!0,n[2*o]=t[2*o]):e[2*o]&gt;=t[2*o]&amp;&amp;e[2*o]&lt;=t[2*o+1]&amp;&amp;(r=!0,n[2*o]=e[2*o]),t[2*o+1]&gt;=e[2*o]&amp;&amp;t[2*o+1]&lt;=e[2*o+1]?(r=!0,n[2*o+1]=t[2*o+1]):e[2*o+1]&gt;=t[2*o]&amp;&amp;e[2*o+1]&lt;=t[2*o+1]&amp;&amp;(r=!0,n[2*o+1]=e[2*o+1]),!r)return!1;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],!0}function ki(e,t){if(!li(e)||!li(t))return!1;for(let n=0;n&lt;3;n++)if(!(t[2*n]&gt;=e[2*n]&amp;&amp;t[2*n]&lt;=e[2*n+1]||e[2*n]&gt;=t[2*n]&amp;&amp;e[2*n]&lt;=t[2*n+1]||t[2*n+1]&gt;=e[2*n]&amp;&amp;t[2*n+1]&lt;=e[2*n+1]||e[2*n+1]&gt;=t[2*n]&amp;&amp;e[2*n+1]&lt;=t[2*n+1]))return!1;return!0}function Gi(e,t,n,r){return!(t&lt;e[0]||t&gt;e[1])&amp;&amp;(!(n&lt;e[2]||n&gt;e[3])&amp;&amp;!(r&lt;e[4]||r&gt;e[5]))}function Ui(e,t,n){const r=[[0,1,2,3,4,5,6,7],[0,1,4,5,2,3,6,7],[0,2,4,6,1,3,5,7]],o=[0,0,0,0,0,0,0,0];let a=0;for(let r=0;r&lt;2;r++)for(let i=2;i&lt;4;i++)for(let s=4;s&lt;6;s++){const l=[e[r],e[i],e[s]];o[a++]=ai.evaluate(n,t,l)}let i=2;for(;i--&amp;&amp;!(Ri(o[r[i][0]],o[r[i][4]])&amp;&amp;Ri(o[r[i][1]],o[r[i][5]])&amp;&amp;Ri(o[r[i][2]],o[r[i][6]])&amp;&amp;Ri(o[r[i][3]],o[r[i][7]])););if(i&lt;0)return!1;const s=Math.sign(n[i]),l=Math.abs((e[2*i+1]-e[2*i])*n[i]);let c=s&gt;0?1:0;for(let e=0;e&lt;4;e++){if(0===l)continue;const t=Math.abs(o[r[i][e]])/l;s&gt;0&amp;&amp;t&lt;c&amp;&amp;(c=t),s&lt;0&amp;&amp;t&gt;c&amp;&amp;(c=t)}const u=(1-c)*e[2*i]+c*e[2*i+1];return s&gt;0?e[2*i]=u:e[2*i+1]=u,!0}function _i(e,t){for(let e=0;e&lt;3;++e)t[e]=t[e]&lt;1?1:t[e];let n=t[0]*t[1]*t[2];for(;n&gt;e;){for(let e=0;e&lt;3;++e)t[e]=t[e]&gt;1?t[e]-1:1;n=t[0]*t[1]*t[2]}}function Ki(e,t,n,r=[]){t=t&lt;=0?1:t;let o=0;const a=[0,0,0];let i=-1,s=0;const l=yi(e),c=l[0]+l[1]+l[2],u=c*(.001/3);for(let e=0;e&lt;3;++e)l[e]&gt;s&amp;&amp;(i=e,s=l[e]),l[e]&gt;u?(a[e]=1,o++):a[e]=0;const d=Ii(e),p=Oi(e);if(o&lt;1)return n[0]=1,n[1]=1,n[2]=1,r[0]=d[0]-.5,r[1]=p[0]+.5,r[2]=d[1]-.5,r[3]=p[1]+.5,r[4]=d[2]-.5,r[5]=p[2]+.5,1;let f=t;f/=a[0]?l[0]/c:1,f/=a[1]?l[1]/c:1,f/=a[2]?l[2]/c:1,f**=1/o;for(let e=0;e&lt;3;++e)n[e]=a[e]?Math.floor(f*l[e]/c):1,n[e]=n[e]&lt;1?1:n[e];_i(t,n);const g=.5*l[i]/n[i];for(let e=0;e&lt;3;++e)a[e]?(r[2*e]=d[e],r[2*e+1]=p[e]):(r[2*e]=d[e]-g,r[2*e+1]=p[e]+g);return n[0]*n[1]*n[2]}function zi(e,t){if(e[0]&gt;=t[0]&amp;&amp;e[0]&lt;=t[1]&amp;&amp;e[1]&gt;=t[2]&amp;&amp;e[1]&lt;=t[3]&amp;&amp;e[2]&gt;=t[4]&amp;&amp;e[2]&lt;=t[5])return 0;const n=[0,0,0];return e[0]&lt;t[0]?n[0]=t[0]-e[0]:e[0]&gt;t[1]&amp;&amp;(n[0]=e[0]-t[1]),e[1]&lt;t[2]?n[1]=t[2]-e[1]:e[1]&gt;t[3]&amp;&amp;(n[1]=e[1]-t[3]),e[2]&lt;t[4]?n[2]=t[4]-e[2]:e[2]&gt;t[5]&amp;&amp;(n[2]=e[2]-t[5]),zo(n,n)}class Wi{constructor(e){this.bounds=e,this.bounds||(this.bounds=new Float64Array(ii))}getBounds(){return this.bounds}equals(e){return si(this.bounds,e)}isValid(){return li(this.bounds)}setBounds(e){return ci(this.bounds,e)}reset(){return ui(this.bounds)}addPoint(...e){return di(this.bounds,...e)}addPoints(e){return pi(this.bounds,e)}addBounds(e,t,n,r,o,a){return fi(this.bounds,e,t,n,r,o,a)}setMinPoint(e,t,n){return gi(this.bounds,e,t,n)}setMaxPoint(e,t,n){return mi(this.bounds,e,t,n)}inflate(e){return hi(this.bounds,e)}scale(e,t,n){return vi(this.bounds,e,t,n)}getCenter(){return Ti(this.bounds)}getLength(e){return xi(this.bounds,e)}getLengths(){return yi(this.bounds)}getMaxLength(){return Si(this.bounds)}getDiagonalLength(){return wi(this.bounds)}getDiagonalLength2(){return Pi(this.bounds)}getMinPoint(){return Ii(this.bounds)}getMaxPoint(){return Oi(this.bounds)}getXRange(){return bi(this.bounds)}getYRange(){return Ai(this.bounds)}getZRange(){return Ci(this.bounds)}getCorners(e){return Mi(this.bounds,e)}computeCornerPoints(e,t){return Di(this.bounds,e,t)}computeLocalBounds(e,t,n){return Li(this.bounds,e,t,n)}transformBounds(e,t=[]){return Ei(this.bounds,e,t)}computeScale3(e){return Vi(this.bounds,e)}cutWithPlane(e,t){return Ui(this.bounds,e,t)}intersectBox(e,t,n,r){return Bi(this.bounds,e,t,n,r)}intersectPlane(e,t){return Fi(this.bounds,e,t)}intersect(e){return Ni(this.bounds,e)}intersects(e){return ki(this.bounds,e)}containsPoint(e,t,n){return Gi(this.bounds,e,t,n)}contains(e){return ki(this.bounds,e)}computeDivisions(e,t,n=[]){return Ki(this.bounds,e,t,n)}distance2ToBounds(e){return zi(e,this.bounds)}}var Hi={newInstance:function(e){const t=e&amp;&amp;e.bounds;return new Wi(t)},...{equals:si,isValid:li,setBounds:ci,reset:ui,addPoint:di,addPoints:pi,addBounds:fi,setMinPoint:gi,setMaxPoint:mi,inflate:hi,scale:vi,scaleAboutCenter:function(e,t,n,r){if(!li(e))return!1;const o=Ti(e);return e[0]-=o[0],e[1]-=o[0],e[2]-=o[1],e[3]-=o[1],e[4]-=o[2],e[5]-=o[2],vi(e,t,n,r),e[0]+=o[0],e[1]+=o[0],e[2]+=o[1],e[3]+=o[1],e[4]+=o[2],e[5]+=o[2],!0},getCenter:Ti,getLength:xi,getLengths:yi,getMaxLength:Si,getDiagonalLength:wi,getDiagonalLength2:Pi,getMinPoint:Ii,getMaxPoint:Oi,getXRange:bi,getYRange:Ai,getZRange:Ci,getCorners:Mi,computeCornerPoints:Di,computeLocalBounds:Li,transformBounds:Ei,computeScale3:Vi,cutWithPlane:Ui,intersectBox:Bi,intersectPlane:Fi,intersect:Ni,intersects:ki,containsPoint:Gi,contains:function(e,t){return!!ki(e,t)&amp;&amp;(!!Gi(e,...Ii(t))&amp;&amp;!!Gi(e,...Oi(t)))},computeDivisions:Ki,clampDivisions:_i,distance2ToBounds:zi,INIT_BOUNDS:ii}};var ji={CoordinateSystem:{DISPLAY:0,WORLD:1}};const{CoordinateSystem:Xi}=ji;function qi(e){return()=&gt;sn.vtkErrorMacro(`vtkProp::${e} - NOT IMPLEMENTED`)}const Yi={allocatedRenderTime:10,coordinateSystem:Xi.WORLD,dragable:!0,estimatedRenderTime:0,paths:null,pickable:!0,renderTimeMultiplier:1,savedEstimatedRenderTime:0,textures:[],useBounds:!0,visibility:!0};function Ji(e,t,n={}){Object.assign(t,Yi,n),sn.obj(e,t),sn.get(e,t,[&quot;estimatedRenderTime&quot;,&quot;allocatedRenderTime&quot;]),sn.setGet(e,t,[&quot;_parentProp&quot;,&quot;coordinateSystem&quot;,&quot;dragable&quot;,&quot;pickable&quot;,&quot;renderTimeMultiplier&quot;,&quot;useBounds&quot;,&quot;visibility&quot;]),sn.moveToProtected(e,t,[&quot;parentProp&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkProp&quot;),e.getMTime=()=&gt;{let e=t.mtime;for(let n=0;n&lt;t.textures.length;++n){const r=t.textures[n].getMTime();r&gt;e&amp;&amp;(e=r)}return e},e.processSelectorPixelBuffers=(e,t)=&gt;{},e.getNestedProps=()=&gt;null,e.getActors=()=&gt;[],e.getActors2D=()=&gt;[],e.getVolumes=()=&gt;[],e.pick=qi(&quot;pick&quot;),e.hasKey=qi(&quot;hasKey&quot;),e.getNestedVisibility=()=&gt;t.visibility&amp;&amp;(!t._parentProp||t._parentProp.getNestedVisibility()),e.getNestedPickable=()=&gt;t.pickable&amp;&amp;(!t._parentProp||t._parentProp.getNestedPickable()),e.getNestedDragable=()=&gt;t.dragable&amp;&amp;(!t._parentProp||t._parentProp.getNestedDragable()),e.getRedrawMTime=()=&gt;t.mtime,e.setEstimatedRenderTime=e=&gt;{t.estimatedRenderTime=e,t.savedEstimatedRenderTime=e},e.restoreEstimatedRenderTime=()=&gt;{t.estimatedRenderTime=t.savedEstimatedRenderTime},e.addEstimatedRenderTime=e=&gt;{t.estimatedRenderTime+=e},e.setAllocatedRenderTime=e=&gt;{t.allocatedRenderTime=e,t.savedEstimatedRenderTime=t.estimatedRenderTime,t.estimatedRenderTime=0},e.getSupportsSelection=()=&gt;!1,e.getTextures=()=&gt;t.textures,e.hasTexture=e=&gt;-1!==t.textures.indexOf(e),e.addTexture=n=&gt;{n&amp;&amp;!e.hasTexture(n)&amp;&amp;(t.textures=t.textures.concat(n),e.modified())},e.removeTexture=n=&gt;{const r=t.textures.filter((e=&gt;e!==n));t.textures.length!==r.length&amp;&amp;(t.textures=r,e.modified())},e.removeAllTextures=()=&gt;{t.textures=[],e.modified()},e.setCoordinateSystemToWorld=()=&gt;e.setCoordinateSystem(Xi.WORLD),e.setCoordinateSystemToDisplay=()=&gt;e.setCoordinateSystem(Xi.DISPLAY)}(e,t)}var Zi={newInstance:sn.newInstance(Ji,&quot;vtkProp&quot;),extend:Ji,...ji};function Qi(e,t){t.classHierarchy.push(&quot;vtkProp3D&quot;),e.addPosition=n=&gt;{t.position=t.position.map(((e,t)=&gt;e+n[t])),e.modified()},e.getOrientationWXYZ=()=&gt;{const e=pe();L(e,t.rotation);const r=new Float64Array(3),o=function(e,t){var r=2*Math.acos(t[3]),o=Math.sin(r/2);return o&gt;n?(e[0]=t[0]/o,e[1]=t[1]/o,e[2]=t[2]/o):(e[0]=1,e[1]=0,e[2]=0),r}(r,e);return[Io(o),r[0],r[1],r[2]]},e.getOrientationQuaternion=(e=[])=&gt;L(e,t.rotation),e.rotateX=n=&gt;{0!==n&amp;&amp;(w(t.rotation,t.rotation,wo(n)),e.modified())},e.rotateY=n=&gt;{0!==n&amp;&amp;(I(t.rotation,t.rotation,wo(n)),e.modified())},e.rotateZ=n=&gt;{0!==n&amp;&amp;(O(t.rotation,t.rotation,wo(n)),e.modified())},e.rotateWXYZ=(n,r,o,a)=&gt;{if(0===n||0===r&amp;&amp;0===o&amp;&amp;0===a)return;const i=wo(n),s=pe();fe(s,[r,o,a],i);const l=new Float64Array(16);F(l,s),A(t.rotation,t.rotation,l),e.modified()},e.rotateQuaternion=n=&gt;{if(Math.abs(n[3])&gt;=.999999)return;const r=F(new Float64Array(16),n);A(t.rotation,t.rotation,r),e.modified()},e.setOrientation=(n,r,o)=&gt;(n!==t.orientation[0]||r!==t.orientation[1]||o!==t.orientation[2])&amp;&amp;(t.orientation=[n,r,o],x(t.rotation),e.rotateZ(o),e.rotateX(n),e.rotateY(r),e.modified(),!0),e.setOrientationFromQuaternion=n=&gt;{const r=v();return F(r,n),!oa(r,t.rotation)&amp;&amp;(t.rotation=r,e.modified(),!0)},e.setUserMatrix=n=&gt;!oa(t.userMatrix,n)&amp;&amp;(T(t.userMatrix,n),e.modified(),!0),e.getMatrix=()=&gt;(e.computeMatrix(),t.matrix),e.computeMatrix=()=&gt;{if(e.getMTime()&gt;t.matrixMTime.getMTime()){x(t.matrix),t.userMatrix&amp;&amp;A(t.matrix,t.matrix,t.userMatrix),C(t.matrix,t.matrix,t.origin),C(t.matrix,t.matrix,t.position),A(t.matrix,t.matrix,t.rotation),S(t.matrix,t.matrix,t.scale),C(t.matrix,t.matrix,[-t.origin[0],-t.origin[1],-t.origin[2]]),y(t.matrix,t.matrix),t.isIdentity=!0;for(let e=0;e&lt;4;++e)for(let n=0;n&lt;4;++n)(e===n?1:0)!==t.matrix[e+4*n]&amp;&amp;(t.isIdentity=!1);t.matrixMTime.modified()}},e.computeBounds=()=&gt;{if(null===t.mapper)return void Hi.reset(t.bounds);const n=t.mapper.getBounds();if(!n||6!==n.length||!Hi.isValid(n))return t.mapperBounds=n,Hi.reset(t.bounds),void t.boundsMTime.modified();if(!t.mapperBounds||!n.every(((e,r)=&gt;n[r]===t.mapperBounds[r]))||e.getMTime()&gt;t.boundsMTime.getMTime()){sn.vtkDebugMacro(&quot;Recomputing bounds...&quot;),t.mapperBounds=n,e.computeMatrix();const r=new Float64Array(16);y(r,t.matrix),Hi.transformBounds(n,r,t.bounds),t.boundsMTime.modified()}};const r=e.getBounds;e.getBounds=()=&gt;(e.computeBounds(),r());const o=e.getBoundsByReference;e.getBoundsByReference=()=&gt;(e.computeBounds(),o()),e.getCenter=()=&gt;Hi.getCenter(e.getBoundsByReference()),e.getLength=()=&gt;Hi.getLength(e.getBoundsByReference()),e.getXRange=()=&gt;Hi.getXRange(e.getBoundsByReference()),e.getYRange=()=&gt;Hi.getYRange(e.getBoundsByReference()),e.getZRange=()=&gt;Hi.getZRange(e.getBoundsByReference()),e.getUserMatrix=()=&gt;t.userMatrix,e.onModified((function(){e.computeMatrix()})),e.getProperty=(n=0)=&gt;(null==t.properties[n]&amp;&amp;(t.properties[n]=e.makeProperty?.()),t.properties[n]),e.getProperties=()=&gt;(0===t.properties.length&amp;&amp;(t.properties[0]=e.makeProperty?.()),t.properties),e.setProperty=(e,n)=&gt;{const r=Number.isInteger(e),[o,a]=r?[e,n]:[0,e];return t.properties[o]!==a&amp;&amp;(t.properties[o]=a,!0)},e.getMTime=()=&gt;{let e=t.mtime;return t.properties.forEach((t=&gt;{if(null!==t){const n=t.getMTime();e=n&gt;e?n:e}})),e}}const $i={bounds:[...Hi.INIT_BOUNDS],origin:[0,0,0],position:[0,0,0],orientation:[0,0,0],rotation:null,scale:[1,1,1],properties:[],userMatrix:null,userMatrixMTime:null,cachedProp3D:null,isIdentity:!0,matrixMTime:null};function es(e,t,n={}){Object.assign(t,$i,n),Zi.extend(e,t,n),t.matrixMTime={},sn.obj(t.matrixMTime),sn.get(e,t,[&quot;isIdentity&quot;]),sn.getArray(e,t,[&quot;orientation&quot;]),sn.setGetArray(e,t,[&quot;origin&quot;,&quot;position&quot;,&quot;scale&quot;],3),sn.setGet(e,t,[&quot;properties&quot;]),sn.getArray(e,t,[&quot;bounds&quot;],6),t.matrix=x(new Float64Array(16)),t.rotation=x(new Float64Array(16)),t.userMatrix=x(new Float64Array(16)),t.transform=null,Qi(e,t)}var ts={newInstance:sn.newInstance(es,&quot;vtkProp3D&quot;),extend:es};const ns={FLAT:0,GOURAUD:1,PHONG:2},rs={POINTS:0,WIREFRAME:1,SURFACE:2};var os={Shading:ns,Representation:rs,Interpolation:ns};const{Representation:as,Interpolation:is}=os;function ss(e){return()=&gt;sn.vtkErrorMacro(`vtkProperty::${e} - NOT IMPLEMENTED`)}const ls={color:[1,1,1],ambientColor:[1,1,1],diffuseColor:[1,1,1],specularColor:[1,1,1],edgeColor:[0,0,0],ambient:0,diffuse:1,metallic:0,roughness:.6,normalStrength:1,emission:1,baseIOR:1.45,specular:0,specularPower:1,opacity:1,edgeOpacity:1,interpolation:is.GOURAUD,representation:as.SURFACE,edgeVisibility:!1,backfaceCulling:!1,frontfaceCulling:!1,pointSize:1,lineWidth:1,lighting:!0,shading:!1,materialName:null,ORMTexture:null,RMTexture:null};function cs(e,t,n={}){Object.assign(t,ls,n),sn.obj(e,t),sn.setGet(e,t,[&quot;lighting&quot;,&quot;interpolation&quot;,&quot;ambient&quot;,&quot;diffuse&quot;,&quot;metallic&quot;,&quot;roughness&quot;,&quot;normalStrength&quot;,&quot;emission&quot;,&quot;baseIOR&quot;,&quot;specular&quot;,&quot;specularPower&quot;,&quot;opacity&quot;,&quot;edgeOpacity&quot;,&quot;edgeVisibility&quot;,&quot;lineWidth&quot;,&quot;pointSize&quot;,&quot;backfaceCulling&quot;,&quot;frontfaceCulling&quot;,&quot;representation&quot;,&quot;diffuseTexture&quot;,&quot;metallicTexture&quot;,&quot;roughnessTexture&quot;,&quot;normalTexture&quot;,&quot;ambientOcclusionTexture&quot;,&quot;emissionTexture&quot;,&quot;ORMTexture&quot;,&quot;RMTexture&quot;]),sn.setGetArray(e,t,[&quot;ambientColor&quot;,&quot;specularColor&quot;,&quot;diffuseColor&quot;,&quot;edgeColor&quot;],3),function(e,t){t.classHierarchy.push(&quot;vtkProperty&quot;),e.setColor=(n,r,o)=&gt;{Array.isArray(n)?t.color[0]===n[0]&amp;&amp;t.color[1]===n[1]&amp;&amp;t.color[2]===n[2]||(t.color[0]=n[0],t.color[1]=n[1],t.color[2]=n[2],e.modified()):t.color[0]===n&amp;&amp;t.color[1]===r&amp;&amp;t.color[2]===o||(t.color[0]=n,t.color[1]=r,t.color[2]=o,e.modified()),e.setDiffuseColor(t.color),e.setAmbientColor(t.color),e.setSpecularColor(t.color)},e.computeCompositeColor=ss(&quot;ComputeCompositeColor&quot;),e.getColor=()=&gt;{let e=0;t.ambient+t.diffuse+t.specular&gt;0&amp;&amp;(e=1/(t.ambient+t.diffuse+t.specular));for(let n=0;n&lt;3;n++)t.color[n]=e*(t.ambient*t.ambientColor[n]+t.diffuse*t.diffuseColor[n]+t.specular*t.specularColor[n]);return[].concat(t.color)},e.setSpecularPower=n=&gt;{const r=1/Math.max(1,n);t.roughness===r&amp;&amp;t.specularPower===n||(t.specularPower=n,t.roughness=r,e.modified())},e.addShaderVariable=ss(&quot;AddShaderVariable&quot;),e.setInterpolationToFlat=()=&gt;e.setInterpolation(is.FLAT),e.setInterpolationToGouraud=()=&gt;e.setInterpolation(is.GOURAUD),e.setInterpolationToPhong=()=&gt;e.setInterpolation(is.PHONG),e.getInterpolationAsString=()=&gt;sn.enumToString(is,t.interpolation),e.setRepresentationToWireframe=()=&gt;e.setRepresentation(as.WIREFRAME),e.setRepresentationToSurface=()=&gt;e.setRepresentation(as.SURFACE),e.setRepresentationToPoints=()=&gt;e.setRepresentation(as.POINTS),e.getRepresentationAsString=()=&gt;sn.enumToString(as,t.representation)}(e,t)}var us={newInstance:sn.newInstance(cs,&quot;vtkProperty&quot;),extend:cs,...os};const ds={mapper:null,backfaceProperty:null,forceOpaque:!1,forceTranslucent:!1};function ps(e,t,n={}){Object.assign(t,ds,n),ts.extend(e,t,n),t.boundsMTime={},sn.obj(t.boundsMTime),sn.setGet(e,t,[&quot;backfaceProperty&quot;,&quot;forceOpaque&quot;,&quot;forceTranslucent&quot;,&quot;mapper&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkActor&quot;);const n={...e};e.getActors=()=&gt;[e],e.getIsOpaque=()=&gt;{if(t.forceOpaque)return!0;if(t.forceTranslucent)return!1;t.properties[0]||e.getProperty();let n=t.properties[0].getOpacity()&gt;=1;return n=n&amp;&amp;(!t.texture||!t.texture.isTranslucent()),n=n&amp;&amp;(!t.mapper||t.mapper.getIsOpaque()),n},e.hasTranslucentPolygonalGeometry=()=&gt;null!==t.mapper&amp;&amp;(t.properties[0]||e.getProperty(),!e.getIsOpaque()),e.makeProperty=us.newInstance,e.getMTime=()=&gt;{let e=n.getMTime();if(null!==t.backfaceProperty){const n=t.backfaceProperty.getMTime();e=n&gt;e?n:e}return e},e.getRedrawMTime=()=&gt;{let e=t.mtime;if(null!==t.mapper){let n=t.mapper.getMTime();e=n&gt;e?n:e,null!==t.mapper.getInput()&amp;&amp;(t.mapper.getInputAlgorithm().update(),n=t.mapper.getInput().getMTime(),e=n&gt;e?n:e)}return e},e.getSupportsSelection=()=&gt;!!t.mapper&amp;&amp;t.mapper.getSupportsSelection(),e.processSelectorPixelBuffers=(e,n)=&gt;{t.mapper&amp;&amp;t.mapper.processSelectorPixelBuffers&amp;&amp;t.mapper.processSelectorPixelBuffers(e,n)}}(e,t)}var fs={newInstance:sn.newInstance(ps,&quot;vtkActor&quot;),extend:ps};const gs={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},ms={VOID:&quot;&quot;,CHAR:&quot;Int8Array&quot;,SIGNED_CHAR:&quot;Int8Array&quot;,UNSIGNED_CHAR:&quot;Uint8Array&quot;,UNSIGNED_CHAR_CLAMPED:&quot;Uint8ClampedArray&quot;,SHORT:&quot;Int16Array&quot;,UNSIGNED_SHORT:&quot;Uint16Array&quot;,INT:&quot;Int32Array&quot;,UNSIGNED_INT:&quot;Uint32Array&quot;,FLOAT:&quot;Float32Array&quot;,DOUBLE:&quot;Float64Array&quot;};var hs={DefaultDataType:ms.FLOAT,DataTypeByteSize:gs,VtkDataTypes:ms};const{vtkErrorMacro:vs}=ln,{DefaultDataType:Ts}=hs;function xs(e,t,n){const r=e.length;let o,a,i=Number.MAX_VALUE,s=-Number.MAX_VALUE;for(a=t;a&lt;r;a+=n)if(!Number.isNaN(e[a])){i=e[a],s=i;break}for(;a&lt;r;a+=n)o=e[a],o&lt;i?i=o:o&gt;s&amp;&amp;(s=o);return{min:i,max:s}}function ys(e,t=0,n=1){if(t&lt;0&amp;&amp;n&gt;1){const t=e.length/n,r=new Float64Array(t);for(let o=0,a=0;o&lt;t;++o){for(let t=a+n;a&lt;t;++a)r[o]+=e[a]*e[a];r[o]**=.5}return xs(r,0,1)}return xs(e,t&lt;0?0:t,n)}function bs(e,t=0){const n=e||[];for(;n.length&lt;=t;)n.push(null);return n}function As(e){return Object.prototype.toString.call(e).slice(8,-1)}const Cs={computeRange:ys,createRangeHelper:function(){let e=Number.MAX_VALUE,t=-Number.MAX_VALUE,n=0,r=0;return{add(o){e&gt;o&amp;&amp;(e=o),t&lt;o&amp;&amp;(t=o),n++,r+=o},get:()=&gt;({min:e,max:t,count:n,sum:r,mean:r/n}),getRange:()=&gt;({min:e,max:t})}},fastComputeRange:xs,getDataType:As,getMaxNorm:function(e){const t=e.getNumberOfComponents();let n=0;const r=new Array(t);for(let o=0;o&lt;e.getNumberOfTuples();++o){e.getTuple(o,r);const a=Ho(r,t);a&gt;n&amp;&amp;(n=a)}return n}};const Ss={name:&quot;&quot;,numberOfComponents:1,dataType:Ts,rangeTuple:[0,0]};function Ps(e,t,n={}){if(Object.assign(t,Ss,n),Array.isArray(n.values)&amp;&amp;void 0===n.dataType&amp;&amp;console.warn(&quot;vtkDataArray.newInstance: no dataType provided, converting to Float32Array&quot;),!t.empty&amp;&amp;!t.values&amp;&amp;!t.size)throw new TypeError(&quot;Cannot create vtkDataArray object without: size &gt; 0, values&quot;);if(t.values?Array.isArray(t.values)&amp;&amp;(t.values=St(t.dataType,t.values)):t.values=Ct(t.dataType,t.size),t.values&amp;&amp;(t.size=t.size??t.values.length,t.dataType=As(t.values)),Vt(e,t),kt(e,t,[&quot;name&quot;,&quot;numberOfComponents&quot;]),t.size%t.numberOfComponents!=0)throw new RangeError(&quot;model.size is not a multiple of model.numberOfComponents&quot;);!function(e,t){function n(n){if(n&lt;0)return!1;const r=e.getNumberOfComponents(),o=t.values.length/(r&gt;0?r:1);if(n===o)return!0;if(n&gt;o){const e=t.values;return t.values=Ct(t.dataType,(n+o)*r),t.values.set(e),!0}return t.size&gt;n*r&amp;&amp;(t.size=n*r,e.dataChange()),!0}t.classHierarchy.push(&quot;vtkDataArray&quot;),e.dataChange=()=&gt;{t.ranges=null,e.modified()},e.allocate=t=&gt;{n(e.getNumberOfTuples()+t)},e.resize=r=&gt;{n(r);const o=r*e.getNumberOfComponents();return t.size!==o&amp;&amp;(t.size=o,e.dataChange(),!0)},e.initialize=()=&gt;(e.resize(0),e),e.getElementComponentSize=()=&gt;t.values.BYTES_PER_ELEMENT,e.getComponent=(e,n=0)=&gt;t.values[e*t.numberOfComponents+n],e.setComponent=(n,r,o)=&gt;{o!==t.values[n*t.numberOfComponents+r]&amp;&amp;(t.values[n*t.numberOfComponents+r]=o,e.dataChange())},e.getValue=n=&gt;{const r=n/t.numberOfComponents,o=n%t.numberOfComponents;return e.getComponent(r,o)},e.setValue=(n,r)=&gt;{const o=n/t.numberOfComponents,a=n%t.numberOfComponents;e.setComponent(o,a,r)},e.getData=()=&gt;t.size===t.values.length?t.values:t.values.subarray(0,t.size),e.getRange=(n=-1)=&gt;{let r=n;r&lt;0&amp;&amp;(r=1===t.numberOfComponents?0:t.numberOfComponents);let o=null;return t.ranges||(t.ranges=bs(t.ranges,t.numberOfComponents)),o=t.ranges[r],o?(t.rangeTuple[0]=o.min,t.rangeTuple[1]=o.max,t.rangeTuple):(o=ys(e.getData(),n,t.numberOfComponents),t.ranges[r]=o,t.rangeTuple[0]=o.min,t.rangeTuple[1]=o.max,t.rangeTuple)},e.setRange=(e,n)=&gt;{t.ranges||(t.ranges=bs(t.ranges,t.numberOfComponents));const r={min:e.min,max:e.max};return t.ranges[n]=r,t.rangeTuple[0]=r.min,t.rangeTuple[1]=r.max,t.rangeTuple},e.getRanges=(n=!0)=&gt;{if(!n)return structuredClone(t.ranges);const r=[];for(let n=0;n&lt;t.numberOfComponents;n++){const[t,o]=e.getRange(n),a={min:t,max:o};r.push(a)}if(t.numberOfComponents&gt;1){const[t,n]=e.getRange(-1),o={min:t,max:n};r.push(o)}return r},e.setTuple=(e,n)=&gt;{const r=e*t.numberOfComponents;for(let e=0;e&lt;t.numberOfComponents;e++)t.values[r+e]=n[e]},e.setTuples=(e,n)=&gt;{let r=e*t.numberOfComponents;const o=Math.min(n.length,t.size-r);for(let e=0;e&lt;o;)t.values[r++]=n[e++]},e.insertTuple=(r,o)=&gt;(t.size&lt;=r*t.numberOfComponents&amp;&amp;(t.size=(r+1)*t.numberOfComponents,n(r+1)),e.setTuple(r,o),r),e.insertTuples=(r,o)=&gt;{const a=r+o.length/t.numberOfComponents;return t.size&lt;a*t.numberOfComponents&amp;&amp;(t.size=a*t.numberOfComponents,n(a)),e.setTuples(r,o),a},e.insertNextTuple=n=&gt;{const r=t.size/t.numberOfComponents;return e.insertTuple(r,n)},e.insertNextTuples=n=&gt;{const r=t.size/t.numberOfComponents;return e.insertTuples(r,n)},e.findTuple=(e,n=1e-6)=&gt;{for(let r=0;r&lt;t.size;r+=t.numberOfComponents)if(Math.abs(e[0]-t.values[r])&lt;=n){let o=!0;for(let a=1;a&lt;t.numberOfComponents;++a)if(Math.abs(e[a]-t.values[r+a])&gt;n){o=!1;break}if(o)return r/t.numberOfComponents}return-1},e.getTuple=(e,n=[])=&gt;{const r=t.numberOfComponents||1,o=e*r;switch(r){case 4:n[3]=t.values[o+3];case 3:n[2]=t.values[o+2];case 2:n[1]=t.values[o+1];case 1:n[0]=t.values[o];break;default:for(let e=r-1;e&gt;=0;--e)n[e]=t.values[o+e]}return n},e.getTuples=(n,r)=&gt;{const o=(n??0)*t.numberOfComponents,a=(r??e.getNumberOfTuples())*t.numberOfComponents,i=e.getData().subarray(o,a);return i.length&gt;0?i:null},e.getTupleLocation=(e=1)=&gt;e*t.numberOfComponents,e.getNumberOfComponents=()=&gt;t.numberOfComponents,e.getNumberOfValues=()=&gt;t.size,e.getNumberOfTuples=()=&gt;t.size/t.numberOfComponents,e.getDataType=()=&gt;t.dataType,e.newClone=()=&gt;ws({empty:!0,name:t.name,dataType:t.dataType,numberOfComponents:t.numberOfComponents}),e.getName=()=&gt;(t.name||(e.modified(),t.name=`vtkDataArray${e.getMTime()}`),t.name),e.setData=(n,r)=&gt;{t.values=n,t.size=n.length,t.dataType=As(n),r&amp;&amp;(t.numberOfComponents=r),t.size%t.numberOfComponents!=0&amp;&amp;(t.numberOfComponents=1),e.dataChange()},e.getState=({preserveTypedArrays:n=!1}={})=&gt;{if(t.deleted)return null;const r={...t,vtkClass:e.getClassName()};n||(r.values=Array.from(r.values)),delete r.buffer,Object.keys(r).forEach((e=&gt;{r[e]||delete r[e]}));const o={};return Object.keys(r).sort().forEach((e=&gt;{o[e]=r[e]})),o.mtime&amp;&amp;delete o.mtime,o},e.deepCopy=n=&gt;{const r=e.getDataType(),o=t.values;e.shallowCopy(n),t.ranges=structuredClone(n.getRanges()),o?.length&gt;=n.getNumberOfValues()&amp;&amp;r===n.getDataType()?(o.set(n.getData()),t.values=o,e.dataChange()):e.setData(n.getData().slice())},e.interpolateTuple=(n,r,o,a,i,s)=&gt;{const l=t.numberOfComponents||1;l===r.getNumberOfComponents()&amp;&amp;l===a.getNumberOfComponents()||vs(&quot;numberOfComponents must match&quot;);const c=r.getTuple(o),u=a.getTuple(i),d=[];switch(d.length=l,l){case 4:d[3]=c[3]+(u[3]-c[3])*s;case 3:d[2]=c[2]+(u[2]-c[2])*s;case 2:d[1]=c[1]+(u[1]-c[1])*s;case 1:d[0]=c[0]+(u[0]-c[0])*s;break;default:for(let e=0;e&lt;l;e++)d[e]=c[e]+(u[e]-c[e])*s}return e.insertTuple(n,d)}}(e,t)}const ws=Xt(Ps,&quot;vtkDataArray&quot;);var Is={newInstance:ws,extend:Ps,...Cs,...hs};const{vtkErrorMacro:Os}=sn,Rs=new Float64Array(16),Ms=new Float64Array(4);function Ds(e,t){const n=e.getNormalByReference(),r=e.getOriginByReference();return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=-(n[0]*r[0]+n[1]*r[1]+n[2]*r[2]),t}const Es={clippingPlanes:[]};var Vs={extend:function(e,t,n={}){Object.assign(t,Es,n),sn.obj(e,t),sn.algo(e,t,1,0),t.clippingPlanes||(t.clippingPlanes=[]),function(e,t){t.classHierarchy.push(&quot;vtkAbstractMapper&quot;),e.update=()=&gt;{e.getInputData()},e.addClippingPlane=n=&gt;!!n.isA(&quot;vtkPlane&quot;)&amp;&amp;!t.clippingPlanes.includes(n)&amp;&amp;(t.clippingPlanes.push(n),e.modified(),!0),e.getNumberOfClippingPlanes=()=&gt;t.clippingPlanes.length,e.removeAllClippingPlanes=()=&gt;0!==t.clippingPlanes.length&amp;&amp;(t.clippingPlanes.length=0,e.modified(),!0),e.removeClippingPlane=n=&gt;{const r=t.clippingPlanes.indexOf(n);return-1!==r&amp;&amp;(t.clippingPlanes.splice(r,1),e.modified(),!0)},e.getClippingPlanes=()=&gt;t.clippingPlanes,e.getClippingPlanesMTime=()=&gt;{let e=0;for(let n=0;n&lt;t.clippingPlanes.length;n++)e=Math.max(e,t.clippingPlanes[n].getMTime());return e},e.setClippingPlanes=t=&gt;{if(t)if(Array.isArray(t)){const n=t.length;for(let r=0;r&lt;n&amp;&amp;r&lt;6;r++)e.addClippingPlane(t[r])}else e.addClippingPlane(t)},e.getClippingPlaneInCoords=(e,n,r)=&gt;{if(n&lt;0||n&gt;=t.clippingPlanes?.length)return void Os(`Clipping plane index ${n} is out of range.`);const o=r||new Float64Array(4);return Ds(t.clippingPlanes[n],Ms),b(Rs,e),y(Rs,Rs),de(o,Ms,Rs),o},e.getClippingPlaneInDataCoords=(e,n,r)=&gt;{const o=t.clippingPlanes;if(o){const t=o.length;if(n&gt;=0&amp;&amp;n&lt;t)return Ds(o[n],Ms),void de(r,Ms,e)}Os(`Clipping plane index ${n} is out of range.`)}}(e,t)}};var Ls={extend:function(e,t,n={}){Object.assign(t,(e=&gt;({bounds:[...Hi.INIT_BOUNDS],center:[0,0,0],viewSpecificProperties:{},...e}))(n)),Vs.extend(e,t,n),sn.setGet(e,t,[&quot;viewSpecificProperties&quot;]),sn.getArray(e,t,[&quot;bounds&quot;],6),function(e,t){e.computeBounds=()=&gt;{sn.vtkErrorMacro(&quot;vtkAbstractMapper3D.computeBounds - NOT IMPLEMENTED&quot;)};const n=e.getBounds;e.getBounds=()=&gt;(e.computeBounds(),n());const r=e.getBoundsByReference;e.getBoundsByReference=()=&gt;(e.computeBounds(),r()),e.getCenter=()=&gt;{const n=e.getBoundsByReference();return t.center=Hi.isValid(n)?Hi.getCenter(n):null,t.center?.slice()},e.getLength=()=&gt;{const t=e.getBoundsByReference();return Hi.getDiagonalLength(t)}}(e,t)}};const{vtkErrorMacro:Bs,vtkWarningMacro:Fs}=sn;const Ns={arrays:[],copyFieldFlags:[],doCopyAllOn:!0,doCopyAllOff:!1};function ks(e,t,n={}){Object.assign(t,Ns,n),sn.obj(e,t),function(e,t){t.classHierarchy.push(&quot;vtkFieldData&quot;);const n=e.getState;t.arrays&amp;&amp;(t.arrays=t.arrays.map((e=&gt;({data:it(e.data)})))),e.initialize=()=&gt;{e.initializeFields(),e.copyAllOn(),e.clearFieldFlags()},e.initializeFields=()=&gt;{t.arrays=[],t.copyFieldFlags={},e.modified()},e.copyStructure=n=&gt;{e.initializeFields(),t.copyFieldFlags=n.getCopyFieldFlags().map((e=&gt;e)),t.arrays=n.getArrays().map((e=&gt;({data:e})))},e.getNumberOfArrays=()=&gt;t.arrays.length,e.getNumberOfActiveArrays=()=&gt;t.arrays.length,e.addArray=n=&gt;{const r=n.getName(),{array:o,index:a}=e.getArrayWithIndex(r);return null!=o?(t.arrays[a]={data:n},a):(t.arrays=[].concat(t.arrays,{data:n}),t.arrays.length-1)},e.removeAllArrays=()=&gt;{t.arrays=[]},e.removeArray=n=&gt;{const r=t.arrays.findIndex((e=&gt;e.data.getName()===n));return e.removeArrayByIndex(r)},e.removeArrayByIndex=e=&gt;-1!==e&amp;&amp;e&lt;t.arrays.length&amp;&amp;(t.arrays.splice(e,1),!0),e.getArrays=()=&gt;t.arrays.map((e=&gt;e.data)),e.getArray=t=&gt;&quot;number&quot;==typeof t?e.getArrayByIndex(t):e.getArrayByName(t),e.getArrayByName=e=&gt;t.arrays.reduce(((t,n,r)=&gt;n.data.getName()===e?n.data:t),null),e.getArrayWithIndex=e=&gt;{const n=t.arrays.findIndex((t=&gt;t.data.getName()===e));return{array:-1!==n?t.arrays[n].data:null,index:n}},e.getArrayByIndex=e=&gt;e&gt;=0&amp;&amp;e&lt;t.arrays.length?t.arrays[e].data:null,e.hasArray=t=&gt;e.getArrayWithIndex(t).index&gt;=0,e.getArrayName=e=&gt;{const n=t.arrays[e];return n?n.data.getName():&quot;&quot;},e.getCopyFieldFlags=()=&gt;t.copyFieldFlags,e.getFlag=e=&gt;t.copyFieldFlags[e],e.passData=(n,r=-1,o=-1)=&gt;{n.getArrays().forEach((a=&gt;{const i=e.getFlag(a.getName());if(!1!==i&amp;&amp;(!t.doCopyAllOff||!0===i)&amp;&amp;a){let t=e.getArrayByName(a.getName());if(t)if(a.getNumberOfComponents()===t.getNumberOfComponents())if(r&gt;-1&amp;&amp;r&lt;a.getNumberOfTuples()){const e=o&gt;-1?o:r;t.insertTuple(e,a.getTuple(r))}else t.insertTuples(0,a.getTuples());else Bs(&quot;Unhandled case in passData&quot;);else if(r&lt;0||r&gt;a.getNumberOfTuples())e.addArray(a),n.getAttributes(a).forEach((t=&gt;{e.setAttribute(a,t)}));else{const i=a.getNumberOfComponents();let s=a.getNumberOfValues();const l=o&gt;-1?o:r;s&lt;=l*i&amp;&amp;(s=(l+1)*i),t=Is.newInstance({name:a.getName(),dataType:a.getDataType(),numberOfComponents:i,values:sn.newTypedArray(a.getDataType(),s),size:0}),t.insertTuple(l,a.getTuple(r)),e.addArray(t),n.getAttributes(a).forEach((n=&gt;{e.setAttribute(t,n)}))}}}))},e.interpolateData=(n,r=-1,o=-1,a=-1,i=.5)=&gt;{n.getArrays().forEach((s=&gt;{const l=e.getFlag(s.getName());if(!1!==l&amp;&amp;(!t.doCopyAllOff||!0===l)&amp;&amp;s){let t=e.getArrayByName(s.getName());if(t)if(s.getNumberOfComponents()===t.getNumberOfComponents())if(r&gt;-1&amp;&amp;r&lt;s.getNumberOfTuples()){const e=a&gt;-1?a:r;t.interpolateTuple(e,s,r,s,o,i),Fs(&quot;Unexpected case in interpolateData&quot;)}else t.insertTuples(s.getTuples());else Bs(&quot;Unhandled case in interpolateData&quot;);else if(r&lt;0||o&lt;0||r&gt;s.getNumberOfTuples())e.addArray(s),n.getAttributes(s).forEach((t=&gt;{e.setAttribute(s,t)}));else{const l=s.getNumberOfComponents();let c=s.getNumberOfValues();const u=a&gt;-1?a:r;c&lt;=u*l&amp;&amp;(c=(u+1)*l),t=Is.newInstance({name:s.getName(),dataType:s.getDataType(),numberOfComponents:l,values:sn.newTypedArray(s.getDataType(),c),size:0}),t.interpolateTuple(u,s,r,s,o,i),e.addArray(t),n.getAttributes(s).forEach((n=&gt;{e.setAttribute(t,n)}))}}}))},e.copyFieldOn=e=&gt;{t.copyFieldFlags[e]=!0},e.copyFieldOff=e=&gt;{t.copyFieldFlags[e]=!1},e.copyAllOn=()=&gt;{t.doCopyAllOn&amp;&amp;!t.doCopyAllOff||(t.doCopyAllOn=!0,t.doCopyAllOff=!1,e.modified())},e.copyAllOff=()=&gt;{!t.doCopyAllOn&amp;&amp;t.doCopyAllOff||(t.doCopyAllOn=!1,t.doCopyAllOff=!0,e.modified())},e.clearFieldFlags=()=&gt;{t.copyFieldFlags={}},e.deepCopy=e=&gt;{t.arrays=e.getArrays().map((e=&gt;{const t=e.newClone();return t.deepCopy(e),{data:t}}))},e.copyFlags=e=&gt;e.getCopyFieldFlags().map((e=&gt;e)),e.reset=()=&gt;t.arrays.forEach((e=&gt;e.data.reset())),e.getMTime=()=&gt;t.arrays.reduce(((e,t)=&gt;t.data.getMTime()&gt;e?t.data.getMTime():e),t.mtime),e.getNumberOfComponents=()=&gt;t.arrays.reduce(((e,t)=&gt;e+t.data.getNumberOfComponents()),0),e.getNumberOfTuples=()=&gt;t.arrays.length&gt;0?t.arrays[0].getNumberOfTuples():0,e.getState=e=&gt;{const r=n(e);return r&amp;&amp;(r.arrays=t.arrays.map((t=&gt;({data:t.data.getState(e)})))),r}}(e,t)}var Gs={newInstance:sn.newInstance(ks,&quot;vtkFieldData&quot;),extend:ks};const Us={DEFAULT:0,SINGLE:1,DOUBLE:2};var _s={AttributeCopyOperations:{COPYTUPLE:0,INTERPOLATE:1,PASSDATA:2,ALLCOPY:3},AttributeLimitTypes:{MAX:0,EXACT:1,NOLIMIT:2},AttributeTypes:{SCALARS:0,VECTORS:1,NORMALS:2,TCOORDS:3,TENSORS:4,GLOBALIDS:5,PEDIGREEIDS:6,EDGEFLAG:7,NUM_ATTRIBUTES:8},CellGhostTypes:{DUPLICATECELL:1,HIGHCONNECTIVITYCELL:2,LOWCONNECTIVITYCELL:4,REFINEDCELL:8,EXTERIORCELL:16,HIDDENCELL:32},DesiredOutputPrecision:Us,PointGhostTypes:{DUPLICATEPOINT:1,HIDDENPOINT:2},ghostArrayName:&quot;vtkGhostType&quot;};const{AttributeTypes:Ks,AttributeCopyOperations:zs}=_s,{vtkWarningMacro:Ws}=sn;const Hs={activeScalars:-1,activeVectors:-1,activeTensors:-1,activeNormals:-1,activeTCoords:-1,activeGlobalIds:-1,activePedigreeIds:-1};function js(e,t,n={}){Object.assign(t,Hs,n),Gs.extend(e,t,n),sn.setGet(e,t,[&quot;activeScalars&quot;,&quot;activeNormals&quot;,&quot;activeTCoords&quot;,&quot;activeVectors&quot;,&quot;activeTensors&quot;,&quot;activeGlobalIds&quot;,&quot;activePedigreeIds&quot;]),t.arrays||(t.arrays={}),function(e,t){const n=[&quot;Scalars&quot;,&quot;Vectors&quot;,&quot;Normals&quot;,&quot;TCoords&quot;,&quot;Tensors&quot;,&quot;GlobalIds&quot;,&quot;PedigreeIds&quot;];function r(e){let t=n.find((t=&gt;Ks[t.toUpperCase()]===e||&quot;number&quot;!=typeof e&amp;&amp;t.toLowerCase()===e.toLowerCase()));return void 0===t&amp;&amp;(t=null),t}t.classHierarchy.push(&quot;vtkDataSetAttributes&quot;);const o={...e};e.checkNumberOfComponents=e=&gt;!0,e.setAttribute=(n,o)=&gt;{const a=r(o);if(n&amp;&amp;&quot;PEDIGREEIDS&quot;===a.toUpperCase()&amp;&amp;!n.isA(&quot;vtkDataArray&quot;))return Ws(`Cannot set attribute ${a}. The attribute must be a vtkDataArray.`),-1;if(n&amp;&amp;!e.checkNumberOfComponents(n,a))return Ws(`Cannot set attribute ${a}. Incorrect number of components.`),-1;if(n){const r=e.addArray(n);t[`active${a}`]=r}else t[`active${a}`]=-1;return e.modified(),t[`active${a}`]},e.getAttributes=t=&gt;n.filter((n=&gt;e[`get${n}`]()===t)),e.setActiveAttributeByName=(t,n)=&gt;e.setActiveAttributeByIndex(e.getArrayWithIndex(t).index,n),e.setActiveAttributeByIndex=(n,o)=&gt;{const a=r(o);if(n&gt;=0&amp;&amp;n&lt;t.arrays.length){if(&quot;PEDIGREEIDS&quot;!==a.toUpperCase()){const t=e.getArrayByIndex(n);if(!t.isA(&quot;vtkDataArray&quot;))return Ws(`Cannot set attribute ${a}. Only vtkDataArray subclasses can be set as active attributes.`),-1;if(!e.checkNumberOfComponents(t,a))return Ws(`Cannot set attribute ${a}. Incorrect number of components.`),-1}return t[`active${a}`]=n,e.modified(),n}return-1===n&amp;&amp;(t[`active${a}`]=n,e.modified()),-1},e.getActiveAttribute=t=&gt;{const n=r(t);return e[`get${n}`]()},e.removeAllArrays=()=&gt;{n.forEach((e=&gt;{t[`active${e}`]=-1})),o.removeAllArrays()},e.removeArrayByIndex=e=&gt;(-1!==e&amp;&amp;n.forEach((n=&gt;{e===t[`active${n}`]?t[`active${n}`]=-1:e&lt;t[`active${n}`]&amp;&amp;(t[`active${n}`]-=1)})),o.removeArrayByIndex(e)),n.forEach((n=&gt;{const r=`active${n}`;e[`get${n}`]=()=&gt;e.getArrayByIndex(t[r]),e[`set${n}`]=t=&gt;e.setAttribute(t,n),e[`setActive${n}`]=t=&gt;e.setActiveAttributeByIndex(e.getArrayWithIndex(t).index,n),e[`copy${n}Off`]=()=&gt;{const e=n.toUpperCase();t.copyAttributeFlags[zs.PASSDATA][Ks[e]]=!1},e[`copy${n}On`]=()=&gt;{const e=n.toUpperCase();t.copyAttributeFlags[zs.PASSDATA][Ks[e]]=!0}})),e.initializeAttributeCopyFlags=()=&gt;{t.copyAttributeFlags=[],Object.keys(zs).filter((e=&gt;&quot;ALLCOPY&quot;!==e)).forEach((e=&gt;{t.copyAttributeFlags[zs[e]]=Object.keys(Ks).filter((e=&gt;&quot;NUM_ATTRIBUTES&quot;!==e)).reduce(((e,t)=&gt;(e[Ks[t]]=!0,e)),[])})),t.copyAttributeFlags[zs.COPYTUPLE][Ks.GLOBALIDS]=!1,t.copyAttributeFlags[zs.INTERPOLATE][Ks.GLOBALIDS]=!1,t.copyAttributeFlags[zs.COPYTUPLE][Ks.PEDIGREEIDS]=!1},e.initialize=sn.chain(e.initialize,e.initializeAttributeCopyFlags),t.dataArrays&amp;&amp;Object.keys(t.dataArrays).length&amp;&amp;Object.keys(t.dataArrays).forEach((n=&gt;{t.dataArrays[n].ref||&quot;vtkDataArray&quot;!==t.dataArrays[n].type||e.addArray(Is.newInstance(t.dataArrays[n]))}));const a=e.shallowCopy;e.shallowCopy=(e,n)=&gt;{a(e,n),t.arrays=e.getArrays().map((e=&gt;{const t=e.newClone();return t.shallowCopy(e,n),{data:t}}))},e.initializeAttributeCopyFlags()}(e,t)}var Xs={newInstance:sn.newInstance(js,&quot;vtkDataSetAttributes&quot;),extend:js,..._s};var qs={FieldDataTypes:{UNIFORM:0,DATA_OBJECT_FIELD:0,COORDINATE:1,POINT_DATA:1,POINT:2,POINT_FIELD_DATA:2,CELL:3,CELL_FIELD_DATA:3,VERTEX:4,VERTEX_FIELD_DATA:4,EDGE:5,EDGE_FIELD_DATA:5,ROW:6,ROW_DATA:6},FieldAssociations:{FIELD_ASSOCIATION_POINTS:0,FIELD_ASSOCIATION_CELLS:1,FIELD_ASSOCIATION_NONE:2,FIELD_ASSOCIATION_POINTS_THEN_CELLS:3,FIELD_ASSOCIATION_VERTICES:4,FIELD_ASSOCIATION_EDGES:5,FIELD_ASSOCIATION_ROWS:6,NUMBER_OF_ASSOCIATIONS:7}};const Ys=[&quot;pointData&quot;,&quot;cellData&quot;,&quot;fieldData&quot;];const Js={};function Zs(e,t,n={}){Object.assign(t,Js,n),sn.obj(e,t),sn.setGet(e,t,Ys),sn.getArray(e,t,[&quot;bounds&quot;],6),function(e,t){t.classHierarchy.push(&quot;vtkDataSet&quot;),Ys.forEach((e=&gt;{t[e]?t[e]=it(t[e]):t[e]=Xs.newInstance()})),e.computeBounds=()=&gt;{if(t.modifiedTime&amp;&amp;t.computeTime&amp;&amp;t.modifiedTime&gt;t.computeTime||!t.computeTime){const n=e.getPoints();n?.getNumberOfPoints()?Hi.setBounds(t.bounds,n.getBoundsByReference()):t.bounds=za.createUninitializedBounds(),t.computeTime=sn.getCurrentGlobalMTime()}},e.getLength2=()=&gt;{const t=e.getBoundsByReference();return t&amp;&amp;6===t.length?Hi.getDiagonalLength2(t):0},e.getLength=()=&gt;Math.sqrt(e.getLength2()),e.getCenter=()=&gt;{const t=e.getBoundsByReference();return t&amp;&amp;6===t.length?Hi.getCenter(t):[0,0,0]},e.getCellBounds=t=&gt;{const n=e.getCell(t);return n?n.getBounds():za.createUninitializedBounds()},e.getBounds=sn.chain((()=&gt;e.computeBounds),e.getBounds),e.getBoundsByReference=sn.chain((()=&gt;e.computeBounds),e.getBoundsByReference);const n=e.shallowCopy;e.shallowCopy=(e,r=!1)=&gt;{n(e,r),Ys.forEach((n=&gt;{t[n]=Xs.newInstance(),t[n].shallowCopy(e.getReferenceByName(n))}))};const r=e.getMTime;e.getMTime=()=&gt;Ys.reduce(((e,n)=&gt;Math.max(e,t[n]?.getMTime()??e)),r()),e.initialize=()=&gt;(Ys.forEach((e=&gt;t[e]?.initialize())),e)}(e,t)}var Qs={newInstance:sn.newInstance(Zs,&quot;vtkDataSet&quot;),extend:Zs,...qs};const $s={UNCHANGED:0,SINGLE_POINT:1,X_LINE:2,Y_LINE:3,Z_LINE:4,XY_PLANE:5,YZ_PLANE:6,XZ_PLANE:7,XYZ_GRID:8,EMPTY:9};var el={StructuredType:$s};const{StructuredType:tl}=el;var nl={getDataDescriptionFromExtent:function(e){let t=0;for(let n=0;n&lt;3;++n)e[2*n]&lt;e[2*n+1]&amp;&amp;t++;return e[0]&gt;e[1]||e[2]&gt;e[3]||e[4]&gt;e[5]?tl.EMPTY:3===t?tl.XYZ_GRID:2===t?e[0]===e[1]?tl.YZ_PLANE:e[2]===e[3]?tl.XZ_PLANE:tl.XY_PLANE:1===t?e[0]&lt;e[1]?tl.X_LINE:e[2]&lt;e[3]?tl.Y_LINE:tl.Z_LINE:tl.SINGLE_POINT},...el};const{vtkErrorMacro:rl}=sn;const ol={direction:null,indexToWorld:null,worldToIndex:null,spacing:[1,1,1],origin:[0,0,0],extent:[0,-1,0,-1,0,-1],dataDescription:$s.EMPTY};function al(e,t,n={}){Object.assign(t,ol,n),Qs.extend(e,t,n),t.direction?Array.isArray(t.direction)&amp;&amp;(t.direction=new Float64Array(t.direction.slice(0,9))):t.direction=c(new Float64Array(9)),t.indexToWorld=new Float64Array(16),t.worldToIndex=new Float64Array(16),sn.get(e,t,[&quot;indexToWorld&quot;,&quot;worldToIndex&quot;]),sn.setGetArray(e,t,[&quot;origin&quot;,&quot;spacing&quot;],3),sn.setGetArray(e,t,[&quot;direction&quot;],9),sn.getArray(e,t,[&quot;extent&quot;],6),function(e,t){t.classHierarchy.push(&quot;vtkImageData&quot;),e.setExtent=(...n)=&gt;{if(t.deleted)return rl(&quot;instance deleted - cannot call any method&quot;),!1;const r=1===n.length?n[0]:n;if(6!==r.length)return!1;const o=t.extent.some(((e,t)=&gt;e!==r[t]));return o&amp;&amp;(t.extent=r.slice(),t.dataDescription=nl.getDataDescriptionFromExtent(t.extent),e.modified()),o},e.setDimensions=(...n)=&gt;{let r,o,a;if(t.deleted)rl(&quot;instance deleted - cannot call any method&quot;);else{if(1===n.length){const e=n[0];r=e[0],o=e[1],a=e[2]}else{if(3!==n.length)return void rl(&quot;Bad dimension specification&quot;);r=n[0],o=n[1],a=n[2]}e.setExtent(0,r-1,0,o-1,0,a-1)}},e.getDimensions=()=&gt;[t.extent[1]-t.extent[0]+1,t.extent[3]-t.extent[2]+1,t.extent[5]-t.extent[4]+1],e.getNumberOfCells=()=&gt;{const t=e.getDimensions();let n=1;for(let e=0;e&lt;3;e++){if(0===t[e])return 0;t[e]&gt;1&amp;&amp;(n*=t[e]-1)}return n},e.getNumberOfPoints=()=&gt;{const t=e.getDimensions();return t[0]*t[1]*t[2]},e.getPoint=n=&gt;{const r=e.getDimensions();if(0===r[0]||0===r[1]||0===r[2])return rl(&quot;Requesting a point from an empty image.&quot;),null;const o=new Float64Array(3);switch(t.dataDescription){case $s.EMPTY:return null;case $s.SINGLE_POINT:break;case $s.X_LINE:o[0]=n;break;case $s.Y_LINE:o[1]=n;break;case $s.Z_LINE:o[2]=n;break;case $s.XY_PLANE:o[0]=n%r[0],o[1]=n/r[0];break;case $s.YZ_PLANE:o[1]=n%r[1],o[2]=n/r[1];break;case $s.XZ_PLANE:o[0]=n%r[0],o[2]=n/r[0];break;case $s.XYZ_GRID:o[0]=n%r[0],o[1]=n/r[0]%r[1],o[2]=n/(r[0]*r[1]);break;default:rl(&quot;Invalid dataDescription&quot;)}const a=[0,0,0];return e.indexToWorld(o,a),a},e.getBounds=()=&gt;e.extentToBounds(e.getSpatialExtent()),e.extentToBounds=e=&gt;Hi.transformBounds(e,t.indexToWorld),e.getSpatialExtent=()=&gt;Hi.inflate([...t.extent],.5),e.computeTransforms=()=&gt;{R(t.indexToWorld,t.origin),t.indexToWorld[0]=t.direction[0],t.indexToWorld[1]=t.direction[1],t.indexToWorld[2]=t.direction[2],t.indexToWorld[4]=t.direction[3],t.indexToWorld[5]=t.direction[4],t.indexToWorld[6]=t.direction[5],t.indexToWorld[8]=t.direction[6],t.indexToWorld[9]=t.direction[7],t.indexToWorld[10]=t.direction[8],S(t.indexToWorld,t.indexToWorld,t.spacing),b(t.worldToIndex,t.indexToWorld)},e.indexToWorld=(e,n=[])=&gt;(oe(n,e,t.indexToWorld),n),e.indexToWorldVec3=e.indexToWorld,e.worldToIndex=(e,n=[])=&gt;(oe(n,e,t.worldToIndex),n),e.worldToIndexVec3=e.worldToIndex,e.indexToWorldBounds=(e,n=[])=&gt;Hi.transformBounds(e,t.indexToWorld,n),e.worldToIndexBounds=(e,n=[])=&gt;Hi.transformBounds(e,t.worldToIndex,n),t._onOriginChanged=e.computeTransforms,t._onDirectionChanged=e.computeTransforms,t._onSpacingChanged=e.computeTransforms,e.computeTransforms(),e.getCenter=()=&gt;Hi.getCenter(e.getBounds()),e.computeHistogram=(t,n=null)=&gt;{const r=[0,0,0,0,0,0];e.worldToIndexBounds(t,r);const o=[0,0,0],a=[0,0,0];Hi.computeCornerPoints(r,o,a),ca(o,o),ca(a,a);const i=e.getDimensions();Ma(o,[0,0,0],[i[0]-1,i[1]-1,i[2]-1],o),Ma(a,[0,0,0],[i[0]-1,i[1]-1,i[2]-1],a);const s=i[0],l=i[0]*i[1],c=e.getPointData().getScalars().getData();let u=-1/0,d=1/0,p=0,f=0,g=0;for(let e=o[2];e&lt;=a[2];e++)for(let t=o[1];t&lt;=a[1];t++){let i=o[0]+t*s+e*l;for(let s=o[0];s&lt;=a[0];s++){if(!n||n([s,t,e],r)){const e=c[i];e&gt;u&amp;&amp;(u=e),e&lt;d&amp;&amp;(d=e),p+=e*e,f+=e,g+=1}++i}}const m=g&gt;0?f/g:0,h=g?Math.abs(p/g-m*m):0;return{minimum:d,maximum:u,average:m,variance:h,sigma:Math.sqrt(h),count:g}},e.computeIncrements=(e,t=1)=&gt;{const n=[];let r=t;for(let t=0;t&lt;3;++t)n[t]=r,r*=e[2*t+1]-e[2*t]+1;return n},e.computeOffsetIndex=([t,n,r])=&gt;{const o=e.getExtent(),a=e.getPointData().getScalars().getNumberOfComponents(),i=e.computeIncrements(o,a);return Math.floor((Math.round(t)-o[0])*i[0]+(Math.round(n)-o[2])*i[1]+(Math.round(r)-o[4])*i[2])},e.getOffsetIndexFromWorld=t=&gt;{const n=e.getExtent(),r=e.worldToIndex(t);for(let e=0;e&lt;3;++e)if(r[e]&lt;n[2*e]||r[e]&gt;n[2*e+1])return rl(`GetScalarPointer: Pixel ${r} is not in memory. Current extent = ${n}`),NaN;return e.computeOffsetIndex(r)},e.getScalarValueFromWorld=(t,n=0)=&gt;{const r=e.getPointData().getScalars().getNumberOfComponents();if(n&lt;0||n&gt;=r)return rl(`GetScalarPointer: Scalar Component ${n} is not within bounds. Current Scalar numberOfComponents: ${r}`),NaN;const o=e.getOffsetIndexFromWorld(t);return Number.isNaN(o)?o:e.getPointData().getScalars().getComponent(o,n)};const n=e.initialize;e.initialize=()=&gt;(e.set({direction:c(t.direction),spacing:[1,1,1],origin:[0,0,0],extent:[0,-1,0,-1,0,-1],dataDescription:$s.EMPTY}),n())}(e,t)}var il={newInstance:sn.newInstance(al,&quot;vtkImageData&quot;),extend:al};const sl={LUMINANCE:1,LUMINANCE_ALPHA:2,RGB:3,RGBA:4};var ll={VectorMode:{MAGNITUDE:0,COMPONENT:1,RGBCOLORS:2},ScalarMappingTarget:sl,Scale:{LINEAR:0,LOG10:1}};var cl={ColorMode:{DEFAULT:0,MAP_SCALARS:1,DIRECT_SCALARS:2},GetArray:{BY_ID:0,BY_NAME:1},ScalarMode:{DEFAULT:0,USE_POINT_DATA:1,USE_CELL_DATA:2,USE_POINT_FIELD_DATA:3,USE_CELL_FIELD_DATA:4,USE_FIELD_DATA:5}};const{ScalarMappingTarget:ul,Scale:dl,VectorMode:pl}=ll,{VtkDataTypes:fl}=Is,{ColorMode:gl}=cl,{vtkErrorMacro:ml}=sn;function hl(e){return e}function vl(e){return Math.floor(255*e+.5)}const Tl={alpha:1,vectorComponent:0,vectorSize:-1,vectorMode:pl.COMPONENT,mappingRange:null,annotationArray:null,annotatedValueMap:null,indexedLookup:!1,scale:dl.LINEAR};function xl(e,t,n={}){Object.assign(t,Tl,n),sn.obj(e,t),t.mappingRange=[0,255],t.annotationArray=[],t.annotatedValueMap=[],sn.setGet(e,t,[&quot;vectorSize&quot;,&quot;vectorComponent&quot;,&quot;vectorMode&quot;,&quot;alpha&quot;,&quot;indexedLookup&quot;]),sn.setArray(e,t,[&quot;mappingRange&quot;],2),sn.getArray(e,t,[&quot;mappingRange&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkScalarsToColors&quot;),e.setVectorModeToMagnitude=()=&gt;e.setVectorMode(pl.MAGNITUDE),e.setVectorModeToComponent=()=&gt;e.setVectorMode(pl.COMPONENT),e.setVectorModeToRGBColors=()=&gt;e.setVectorMode(pl.RGBCOLORS),e.build=()=&gt;{},e.isOpaque=()=&gt;!0,e.setAnnotations=(n,r)=&gt;{if(!(n&amp;&amp;!r||!n&amp;&amp;r))if(n&amp;&amp;r&amp;&amp;n.length!==r.length)ml(&quot;Values and annotations do not have the same number of tuples so ignoring&quot;);else{if(t.annotationArray=[],r&amp;&amp;n){const e=r.length;for(let o=0;o&lt;e;o++)t.annotationArray.push({value:n[o],annotation:String(r[o])})}e.updateAnnotatedValueMap(),e.modified()}},e.setAnnotation=(n,r)=&gt;{let o=e.checkForAnnotatedValue(n),a=!1;return o&gt;=0?t.annotationArray[o].annotation!==r&amp;&amp;(t.annotationArray[o].annotation=r,a=!0):(t.annotationArray.push({value:n,annotation:r}),o=t.annotationArray.length-1,a=!0),a&amp;&amp;(e.updateAnnotatedValueMap(),e.modified()),o},e.getNumberOfAnnotatedValues=()=&gt;t.annotationArray.length,e.getAnnotatedValue=e=&gt;e&lt;0||e&gt;=t.annotationArray.length?null:t.annotationArray[e].value,e.getAnnotation=e=&gt;void 0===t.annotationArray[e]?null:t.annotationArray[e].annotation,e.getAnnotatedValueIndex=n=&gt;t.annotationArray.length?e.checkForAnnotatedValue(n):-1,e.removeAnnotation=n=&gt;{const r=e.checkForAnnotatedValue(n),o=r&gt;=0;return o&amp;&amp;(t.annotationArray.splice(r,1),e.updateAnnotatedValueMap(),e.modified()),o},e.resetAnnotations=()=&gt;{t.annotationArray=[],t.annotatedValueMap=[],e.modified()},e.getAnnotationColor=(n,r)=&gt;{if(t.indexedLookup){const t=e.getAnnotatedValueIndex(n);e.getIndexedColor(t,r)}else e.getColor(parseFloat(n),r),r[3]=1},e.checkForAnnotatedValue=t=&gt;e.getAnnotatedValueIndexInternal(t),e.getAnnotatedValueIndexInternal=e=&gt;{if(void 0!==t.annotatedValueMap[e]){const n=t.annotationArray.length;return t.annotatedValueMap[e]%n}return-1},e.getIndexedColor=(e,t)=&gt;{t[0]=0,t[1]=0,t[2]=0,t[3]=0},e.updateAnnotatedValueMap=()=&gt;{t.annotatedValueMap=[];const e=t.annotationArray.length;for(let n=0;n&lt;e;n++)t.annotatedValueMap[t.annotationArray[n].value]=n},e.mapScalars=(t,n,r)=&gt;{const o=t.getNumberOfComponents();let a=null;if(n===gl.DEFAULT&amp;&amp;(t.getDataType()===fl.UNSIGNED_CHAR||t.getDataType()===fl.UNSIGNED_CHAR_CLAMPED)||n===gl.DIRECT_SCALARS&amp;&amp;t)a=e.convertToRGBA(t,o,t.getNumberOfTuples());else{const n={type:&quot;vtkDataArray&quot;,name:&quot;temp&quot;,numberOfComponents:4,dataType:fl.UNSIGNED_CHAR},i=sn.newTypedArray(n.dataType,4*t.getNumberOfTuples());n.values=i,n.size=i.length,a=Is.newInstance(n);let s=r;s&lt;0&amp;&amp;o&gt;1?e.mapVectorsThroughTable(t,a,ul.RGBA,-1,-1):(s&lt;0&amp;&amp;(s=0),s&gt;=o&amp;&amp;(s=o-1),e.mapScalarsThroughTable(t,a,ul.RGBA,s))}return a},e.mapVectorsToMagnitude=(e,t,n)=&gt;{const r=e.getNumberOfTuples(),o=e.getNumberOfComponents(),a=t.getData(),i=e.getData();for(let e=0;e&lt;r;e++){let t=0;for(let r=0;r&lt;n;r++)t+=i[e*o+r]*i[e*o+r];a[e]=Math.sqrt(t)}},e.mapVectorsThroughTable=(t,n,r,o,a)=&gt;{let i=e.getVectorMode(),s=a,l=o;const c=t.getNumberOfComponents();i===pl.COMPONENT?(-1===l&amp;&amp;(l=e.getVectorComponent()),l&lt;0&amp;&amp;(l=0),l&gt;=c&amp;&amp;(l=c-1)):(-1===s&amp;&amp;(s=e.getVectorSize()),s&lt;=0?(l=0,s=c):(l&lt;0&amp;&amp;(l=0),l&gt;=c&amp;&amp;(l=c-1),l+s&gt;c&amp;&amp;(s=c-l)),i!==pl.MAGNITUDE||1!==c&amp;&amp;1!==s||(i=pl.COMPONENT));let u=0;switch(l&gt;0&amp;&amp;(u=l),i){case pl.COMPONENT:e.mapScalarsThroughTable(t,n,r,u);break;case pl.RGBCOLORS:break;case pl.MAGNITUDE:default:{const o=Is.newInstance({numberOfComponents:1,values:new Float32Array(t.getNumberOfTuples())});e.mapVectorsToMagnitude(t,o,s),e.mapScalarsThroughTable(o,n,r,0);break}}},e.luminanceToRGBA=(e,t,n,r)=&gt;{const o=r(n),a=t.getData(),i=e.getData(),s=a.length;let l=0;for(let e=0;e&lt;s;e+=1){const t=r(a[e]);i[4*l]=t,i[4*l+1]=t,i[4*l+2]=t,i[4*l+3]=o,l++}},e.luminanceAlphaToRGBA=(e,t,n,r)=&gt;{const o=t.getData(),a=e.getData(),i=o.length;let s=0;for(let e=0;e&lt;i;e+=2){const t=r(o[e]);a[s]=t,a[s+1]=t,a[s+2]=t,a[s+3]=r(o[e+1])*n,s+=4}},e.rGBToRGBA=(e,t,n,r)=&gt;{const o=vl(n),a=t.getData(),i=e.getData(),s=a.length;let l=0;for(let e=0;e&lt;s;e+=3)i[4*l]=r(a[e]),i[4*l+1]=r(a[e+1]),i[4*l+2]=r(a[e+2]),i[4*l+3]=o,l++},e.rGBAToRGBA=(e,t,n,r)=&gt;{const o=t.getData(),a=e.getData(),i=o.length;let s=0;for(let e=0;e&lt;i;e+=4)a[4*s]=r(o[e]),a[4*s+1]=r(o[e+1]),a[4*s+2]=r(o[e+2]),a[4*s+3]=r(o[e+3])*n,s++},e.convertToRGBA=(n,r,o)=&gt;{let{alpha:a}=t;if(4===r&amp;&amp;a&gt;=1&amp;&amp;n.getDataType()===fl.UNSIGNED_CHAR)return n;const i=Is.newInstance({numberOfComponents:4,empty:!0,size:4*o,dataType:fl.UNSIGNED_CHAR});if(o&lt;=0)return i;a=a&gt;0?a:0,a=a&lt;1?a:1;let s=hl;switch(n.getDataType()!==fl.FLOAT&amp;&amp;n.getDataType()!==fl.DOUBLE||(s=vl),r){case 1:e.luminanceToRGBA(i,n,a,s);break;case 2:e.luminanceAlphaToRGBA(i,n,s);break;case 3:e.rGBToRGBA(i,n,a,s);break;case 4:e.rGBAToRGBA(i,n,a,s);break;default:return ml(&quot;Cannot convert colors&quot;),null}return i},e.usingLogScale=()=&gt;!1,e.getNumberOfAvailableColors=()=&gt;16777216,e.setRange=(t,n)=&gt;e.setMappingRange(t,n),e.getRange=()=&gt;e.getMappingRange(),e.areScalarsOpaque=(n,r,o)=&gt;{if(!n)return e.isOpaque();const a=n.getNumberOfComponents();return(r!==gl.DEFAULT||n.getDataType()!==fl.UNSIGNED_CHAR)&amp;&amp;r!==gl.DIRECT_SCALARS||(3===a||1===a?t.alpha&gt;=1:255===n.getRange(a-1)[0])}}(e,t)}var yl={newInstance:sn.newInstance(xl,&quot;vtkScalarsToColors&quot;),extend:xl,...ll};const{vtkErrorMacro:bl}=sn;const Al={numberOfColors:256,hueRange:[0,.66667],saturationRange:[1,1],valueRange:[1,1],alphaRange:[1,1],nanColor:[.5,0,0,1],belowRangeColor:[0,0,0,1],aboveRangeColor:[1,1,1,1],useAboveRangeColor:!1,useBelowRangeColor:!1,alpha:1};function Cl(e,t,n={}){Object.assign(t,Al,n),yl.extend(e,t,n),t.table||(t.table=[]),t.buildTime={},sn.obj(t.buildTime),t.opaqueFlagBuildTime={},sn.obj(t.opaqueFlagBuildTime,{mtime:0}),t.insertTime={},sn.obj(t.insertTime,{mtime:0}),sn.get(e,t,[&quot;buildTime&quot;]),sn.setGet(e,t,[&quot;numberOfColors&quot;,&quot;useAboveRangeColor&quot;,&quot;useBelowRangeColor&quot;]),sn.setArray(e,t,[&quot;alphaRange&quot;,&quot;hueRange&quot;,&quot;saturationRange&quot;,&quot;valueRange&quot;],2),sn.setArray(e,t,[&quot;nanColor&quot;,&quot;belowRangeColor&quot;,&quot;aboveRangeColor&quot;],4),sn.getArray(e,t,[&quot;hueRange&quot;,&quot;saturationRange&quot;,&quot;valueRange&quot;,&quot;alphaRange&quot;,&quot;nanColor&quot;,&quot;belowRangeColor&quot;,&quot;aboveRangeColor&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkLookupTable&quot;),e.isOpaque=()=&gt;{if(t.opaqueFlagBuildTime.getMTime()&lt;e.getMTime()){let e=!0;t.nanColor[3]&lt;1&amp;&amp;(e=0),t.useBelowRangeColor&amp;&amp;t.belowRangeColor[3]&lt;1&amp;&amp;(e=0),t.useAboveRangeColor&amp;&amp;t.aboveRangeColor[3]&lt;1&amp;&amp;(e=0);for(let n=3;n&lt;t.table.length&amp;&amp;e;n+=4)t.table[n]&lt;255&amp;&amp;(e=!1);t.opaqueFlag=e,t.opaqueFlagBuildTime.modified()}return t.opaqueFlag},e.usingLogScale=()=&gt;!1,e.getNumberOfAvailableColors=()=&gt;t.table.length/4-3,e.linearIndexLookup=(e,t)=&gt;{let n=0;const r=Number(e);return r&lt;t.range[0]?n=t.maxIndex+0+1.5:r&gt;t.range[1]?n=t.maxIndex+1+1.5:(n=(r+t.shift)*t.scale,n=n&lt;t.maxIndex?n:t.maxIndex),Math.floor(n)},e.linearLookup=(t,n,r)=&gt;{let o=0;o=ka(t)?Math.floor(r.maxIndex+1.5+2):e.linearIndexLookup(t,r);const a=4*o;return n.slice(a,a+4)},e.indexedLookupFunction=(n,r,o)=&gt;{let a=e.getAnnotatedValueIndexInternal(n);-1===a&amp;&amp;(a=t.numberOfColors+2);const i=4*a;return[r[i],r[i+1],r[i+2],r[i+3]]},e.lookupShiftAndScale=(e,t)=&gt;{t.shift=-e[0],t.scale=Number.MAX_VALUE,e[1]&gt;e[0]&amp;&amp;(t.scale=(t.maxIndex+1)/(e[1]-e[0]))},e.mapScalarsThroughTable=(n,r,o,a)=&gt;{let i=e.linearLookup;t.indexedLookup&amp;&amp;(i=e.indexedLookupFunction);const s=e.getMappingRange(),l={maxIndex:e.getNumberOfColors()-1,range:s,shift:0,scale:0};e.lookupShiftAndScale(s,l);const c=e.getAlpha(),u=n.getNumberOfTuples(),d=n.getNumberOfComponents(),p=r.getData(),f=n.getData();if(c&gt;=1){if(o===sl.RGBA)for(let e=0;e&lt;u;e++){const n=i(f[e*d+a],t.table,l);p[4*e]=n[0],p[4*e+1]=n[1],p[4*e+2]=n[2],p[4*e+3]=n[3]}}else if(o===sl.RGBA)for(let e=0;e&lt;u;e++){const n=i(f[e*d+a],t.table,l);p[4*e]=n[0],p[4*e+1]=n[1],p[4*e+2]=n[2],p[4*e+3]=Math.floor(n[3]*c+.5)}},e.forceBuild=()=&gt;{let n=0,r=0,o=0,a=0;const i=t.numberOfColors-1;i&amp;&amp;(n=(t.hueRange[1]-t.hueRange[0])/i,r=(t.saturationRange[1]-t.saturationRange[0])/i,o=(t.valueRange[1]-t.valueRange[0])/i,a=(t.alphaRange[1]-t.alphaRange[0])/i),t.table.length=4*i+16;const s=[],l=[];for(let e=0;e&lt;=i;e++)s[0]=t.hueRange[0]+e*n,s[1]=t.saturationRange[0]+e*r,s[2]=t.valueRange[0]+e*o,ya(s,l),l[3]=t.alphaRange[0]+e*a,t.table[4*e]=255*l[0]+.5,t.table[4*e+1]=255*l[1]+.5,t.table[4*e+2]=255*l[2]+.5,t.table[4*e+3]=255*l[3]+.5;e.buildSpecialColors(),t.buildTime.modified()},e.setTable=n=&gt;{if(Array.isArray(n)){const r=n[0].length;t.numberOfColors=n.length;const o=4-r;let a=0;for(let e=0;e&lt;t.numberOfColors;e++)t.table[4*e]=255,t.table[4*e+1]=255,t.table[4*e+2]=255,t.table[4*e+3]=255;for(let e=0;e&lt;n.length;e++){const i=n[e];for(let e=0;e&lt;r;e++)t.table[a++]=i[e];a+=o}return e.buildSpecialColors(),t.insertTime.modified(),e.modified(),!0}if(4!==n.getNumberOfComponents())return bl(&quot;Expected 4 components for RGBA colors&quot;),!1;if(n.getDataType()!==ms.UNSIGNED_CHAR)return bl(&quot;Expected unsigned char values for RGBA colors&quot;),!1;t.numberOfColors=n.getNumberOfTuples();const r=n.getData();t.table.length=r.length;for(let e=0;e&lt;r.length;e++)t.table[e]=r[e];return e.buildSpecialColors(),t.insertTime.modified(),e.modified(),!0},e.buildSpecialColors=()=&gt;{const{numberOfColors:e}=t,n=t.table;let r=4*(e+0);t.useBelowRangeColor||0===e?(n[r]=255*t.belowRangeColor[0]+.5,n[r+1]=255*t.belowRangeColor[1]+.5,n[r+2]=255*t.belowRangeColor[2]+.5,n[r+3]=255*t.belowRangeColor[3]+.5):(n[r]=n[0],n[r+1]=n[1],n[r+2]=n[2],n[r+3]=n[3]),r=4*(e+1),t.useAboveRangeColor||0===e?(n[r]=255*t.aboveRangeColor[0]+.5,n[r+1]=255*t.aboveRangeColor[1]+.5,n[r+2]=255*t.aboveRangeColor[2]+.5,n[r+3]=255*t.aboveRangeColor[3]+.5):(n[r]=n[4*(e-1)+0],n[r+1]=n[4*(e-1)+1],n[r+2]=n[4*(e-1)+2],n[r+3]=n[4*(e-1)+3]),r=4*(e+2),n[r]=255*t.nanColor[0]+.5,n[r+1]=255*t.nanColor[1]+.5,n[r+2]=255*t.nanColor[2]+.5,n[r+3]=255*t.nanColor[3]+.5},e.build=()=&gt;{(t.table.length&lt;1||e.getMTime()&gt;t.buildTime.getMTime()&amp;&amp;t.insertTime.getMTime()&lt;=t.buildTime.getMTime())&amp;&amp;e.forceBuild()},t.table.length&gt;0&amp;&amp;(e.buildSpecialColors(),t.insertTime.modified())}(e,t)}var Sl={newInstance:sn.newInstance(Cl,&quot;vtkLookupTable&quot;),extend:Cl};const Pl={Off:0,PolygonOffset:1};let wl=Pl.PolygonOffset,Il=Pl.Off;const Ol=[&quot;VTK_RESOLVE_OFF&quot;,&quot;VTK_RESOLVE_POLYGON_OFFSET&quot;];function Rl(e=0){const t=Il===e;return Il=e,t}var Ml={Resolve:Pl,getResolveCoincidentTopologyAsString:function(){return Ol[Il]},getResolveCoincidentTopologyPolygonOffsetFaces:function(){return wl},getResolveCoincidentTopology:function(){return Il},setResolveCoincidentTopology:Rl,setResolveCoincidentTopologyPolygonOffsetFaces:function(e){const t=wl===e;return wl=e,t},setResolveCoincidentTopologyToDefault:function(){return Rl(Pl.Off)},setResolveCoincidentTopologyToOff:function(){return Rl(Pl.Off)},setResolveCoincidentTopologyToPolygonOffset:function(){return Rl(Pl.PolygonOffset)}};function Dl(e,t,n){n.forEach((n=&gt;{e[`get${n.method}`]=()=&gt;t[n.key],e[`set${n.method}`]=sn.objectSetterMap.object(e,t,{name:n.key,params:[&quot;factor&quot;,&quot;offset&quot;]})}))}const El=[&quot;Polygon&quot;,&quot;Line&quot;,&quot;Point&quot;],Vl={modified:()=&gt;{}};Dl(Vl,{Polygon:{factor:2,offset:0},Line:{factor:1,offset:-1},Point:{factor:0,offset:-2}},El.map((e=&gt;({key:e,method:`ResolveCoincidentTopology${e}OffsetParameters`}))));var Ll={implementCoincidentTopologyMethods:function(e,t){void 0===t.resolveCoincidentTopology&amp;&amp;(t.resolveCoincidentTopology=!1),sn.setGet(e,t,[&quot;resolveCoincidentTopology&quot;]),t.topologyOffset={Polygon:{factor:0,offset:0},Line:{factor:0,offset:0},Point:{factor:0,offset:0}},Object.keys(Ml).forEach((t=&gt;{e[t]=Ml[t]})),Object.keys(Vl).filter((e=&gt;&quot;modified&quot;!==e)).forEach((t=&gt;{e[t]=Vl[t]})),Dl(e,t.topologyOffset,El.map((e=&gt;({key:e,method:`RelativeCoincidentTopology${e}OffsetParameters`})))),e.getCoincidentTopologyPolygonOffsetParameters=()=&gt;{const t=Vl.getResolveCoincidentTopologyPolygonOffsetParameters(),n=e.getRelativeCoincidentTopologyPolygonOffsetParameters();return{factor:t.factor+n.factor,offset:t.offset+n.offset}},e.getCoincidentTopologyLineOffsetParameters=()=&gt;{const t=Vl.getResolveCoincidentTopologyLineOffsetParameters(),n=e.getRelativeCoincidentTopologyLineOffsetParameters();return{factor:t.factor+n.factor,offset:t.offset+n.offset}},e.getCoincidentTopologyPointOffsetParameter=()=&gt;{const t=Vl.getResolveCoincidentTopologyPointOffsetParameters(),n=e.getRelativeCoincidentTopologyPointOffsetParameters();return{factor:t.factor+n.factor,offset:t.offset+n.offset}}},staticOffsetAPI:Vl,otherStaticMethods:Ml,CATEGORIES:El,Resolve:Pl};const Bl={MIN_KNOWN_PASS:0,ACTOR_PASS:0,COMPOSITE_INDEX_PASS:1,ID_LOW24:2,ID_HIGH24:3,MAX_KNOWN_PASS:3};var Fl={PassTypes:Bl};const{FieldAssociations:Nl}=Qs,{staticOffsetAPI:kl,otherStaticMethods:Gl}=Ll,{ColorMode:Ul,ScalarMode:_l,GetArray:Kl}=cl,{VectorMode:zl}=ll,{VtkDataTypes:Wl}=Is;function Hl(e){return()=&gt;sn.vtkErrorMacro(`vtkMapper::${e} - NOT IMPLEMENTED`)}function jl(e,t){const n=e[1]%2==0?1:-1;if(e[0]+=n,e[0]&gt;=t[0]||e[0]&lt;0){const r=e[2]%2==0?1:-1;e[0]-=n,e[1]+=r,(e[1]&gt;=t[1]||e[1]&lt;0)&amp;&amp;(e[1]-=r,e[2]++)}}function Xl(e,t,n){const r=Math.floor(t),o=r%(2*n[0]);let a,i;o&lt;n[0]?(e[0]=o,a=1,i=e[0]===n[0]-1):(e[0]=2*n[0]-1-o,a=-1,i=0===e[0]);const s=Math.floor(r/n[0]),l=s%(2*n[1]);let c,u;l&lt;n[1]?(e[1]=l,c=1,u=e[1]===n[1]-1):(e[1]=2*n[1]-1-l,c=-1,u=0===e[1]),e[2]=Math.floor(s/n[1]);const d=t-r;i?u?e[2]+=d:e[1]+=c*d:e[0]+=a*d,e[0]=(e[0]+.5)/n[0],e[1]=(e[1]+.5)/n[1],e[2]=(e[2]+.5)/n[2]}const ql=new WeakMap;function Yl(e,t){t.classHierarchy.push(&quot;vtkMapper&quot;),e.computeBounds=()=&gt;{const n=e.getInputData();n?(t.static||e.update(),Hi.setBounds(t.bounds,n.getBounds())):Hi.reset(t.bounds)},e.setForceCompileOnly=e=&gt;{t.forceCompileOnly=e},e.setSelectionWebGLIdsToVTKIds=e=&gt;{t.selectionWebGLIdsToVTKIds=e},e.createDefaultLookupTable=()=&gt;{t.lookupTable=Sl.newInstance()},e.getColorModeAsString=()=&gt;sn.enumToString(Ul,t.colorMode),e.setColorModeToDefault=()=&gt;e.setColorMode(0),e.setColorModeToMapScalars=()=&gt;e.setColorMode(1),e.setColorModeToDirectScalars=()=&gt;e.setColorMode(2),e.getScalarModeAsString=()=&gt;sn.enumToString(_l,t.scalarMode),e.setScalarModeToDefault=()=&gt;e.setScalarMode(0),e.setScalarModeToUsePointData=()=&gt;e.setScalarMode(1),e.setScalarModeToUseCellData=()=&gt;e.setScalarMode(2),e.setScalarModeToUsePointFieldData=()=&gt;e.setScalarMode(3),e.setScalarModeToUseCellFieldData=()=&gt;e.setScalarMode(4),e.setScalarModeToUseFieldData=()=&gt;e.setScalarMode(5),e.getAbstractScalars=(e,n,r,o,a)=&gt;{if(!e||!t.scalarVisibility)return{scalars:null,cellFlag:!1};let i=null,s=!1;if(n===_l.DEFAULT)i=e.getPointData().getScalars(),i||(i=e.getCellData().getScalars(),s=!0);else if(n===_l.USE_POINT_DATA)i=e.getPointData().getScalars();else if(n===_l.USE_CELL_DATA)i=e.getCellData().getScalars(),s=!0;else if(n===_l.USE_POINT_FIELD_DATA){const t=e.getPointData();i=r===Kl.BY_ID?t.getArrayByIndex(o):t.getArrayByName(a)}else if(n===_l.USE_CELL_FIELD_DATA){const t=e.getCellData();s=!0,i=r===Kl.BY_ID?t.getArrayByIndex(o):t.getArrayByName(a)}else if(n===_l.USE_FIELD_DATA){const t=e.getFieldData();i=r===Kl.BY_ID?t.getArrayByIndex(o):t.getArrayByName(a)}return{scalars:i,cellFlag:s}},e.mapScalars=(n,r)=&gt;{const{scalars:o,cellFlag:a}=e.getAbstractScalars(n,t.scalarMode,t.arrayAccessMode,t.arrayId,t.colorByArrayName);if(t.areScalarsMappedFromCells=a,!o)return t.colorCoordinates=null,t.colorTextureMap=null,void(t.colorMapColors=null);const i=`${e.getMTime()}${o.getMTime()}${r}`;if(t.colorBuildString!==i){if(t.useLookupTableScalarRange||e.getLookupTable().setRange(t.scalarRange[0],t.scalarRange[1]),e.canUseTextureMapForColoring(o,a))t.mapScalarsToTexture(o,a,r);else{t.colorCoordinates=null,t.colorTextureMap=null;const n=e.getLookupTable();n&amp;&amp;(n.build(),t.colorMapColors=n.mapScalars(o,t.colorMode,t.fieldDataTupleId))}t.colorBuildString=`${e.getMTime()}${o.getMTime()}${r}`}},t.mapScalarsToTexture=(n,r,o)=&gt;{const a=t.lookupTable.getRange(),i=t.lookupTable.usingLogScale(),s=t.lookupTable.getAlpha(),l=i?[Math.log10(a[0]),Math.log10(a[1])]:a;if(t.colorMapColors=null,null==t.colorTextureMap||e.getMTime()&gt;t.colorTextureMap.getMTime()||t.lookupTable.getMTime()&gt;t.colorTextureMap.getMTime()||t.lookupTable.getAlpha()!==o){t.lookupTable.setAlpha(o),t.colorTextureMap=null,t.lookupTable.build();const e=t.lookupTable.getNumberOfAvailableColors(),n=2048,a=2,d=r?n**3-3:4096-2;t.numberOfColorsInRange=Math.min(Math.max(e,a),d);const p=t.numberOfColorsInRange+3,f=t.numberOfColorsInRange+2,g=r?[Math.min(Math.ceil(p/n**0),n),Math.min(Math.ceil(p/n**1),n),Math.min(Math.ceil(p/n**2),n)]:[f,2,1],m=g[0]*g[1]*g[2],h=new Float64Array(m);h.fill(NaN);const v=t.numberOfColorsInRange,T=v+2,x=[0,0,0],y=l[0],b=l[1]-l[0];for(let e=0;e&lt;T;++e){const t=y+b*(e-1)/(v-1),n=i?10**t:t;h[(u=g,(c=x)[0]+u[0]*(c[1]+u[1]*c[2]))]=n,jl(x,g)}const A=Is.newInstance({numberOfComponents:1,values:h}),C=t.lookupTable.mapScalars(A,t.colorMode,0);t.colorTextureMap=il.newInstance(),t.colorTextureMap.setDimensions(g),t.colorTextureMap.getPointData().setScalars(C),t.lookupTable.setAlpha(s)}var c,u;const d=t.lookupTable.getVectorMode()===zl.MAGNITUDE&amp;&amp;n.getNumberOfComponents()&gt;1?-1:t.lookupTable.getVectorComponent();t.colorCoordinates=function(e,t,n,r,o,a,i){const s=new Array(arguments.length);for(let e=0;e&lt;arguments.length;++e){const t=arguments[e];s[e]=t.getMTime?.()??t}const l=s.join(&quot;/&quot;),c=ql.get(e);if(c&amp;&amp;c.stringHash===l)return c.textureCoordinates;const u=(n[1]-n[0])/(o-1),[d,p]=[n[0]-u,n[1]+u],f=d-.5*u,g=1/(p-d+u),m=d,h=(o+1)/(p-d),v=e.getData(),T=e.getNumberOfTuples(),x=e.getNumberOfComponents(),y=t&lt;0||t&gt;=x,b=a[2]&lt;=1?2:3,A=Is.newInstance({numberOfComponents:b,values:new Float32Array(T*b)}),C=A.getData(),S=[0,0,0];Xl(S,o+2,a);let P=0,w=0;const I=[.5,.5,.5];for(let e=0;e&lt;T;++e){let e;if(y){let t=0;for(let e=0;e&lt;x;++e){const n=Number(v[P+e]);t+=n*n}e=Math.sqrt(t)}else e=Number(v[P+t]);if(r&amp;&amp;(e=Math.log10(e)),P+=x,ka(e))I[0]=S[0],I[1]=S[1],I[2]=S[2];else if(i){let t=(e-m)*h;t&lt;1?t=0:t&gt;o&amp;&amp;(t=o+1),Xl(I,t,a)}else{I[1]=.49;const t=(e-f)*g;I[0]=t&gt;1e3?1e3:t&lt;-1e3?-1e3:t}for(let e=0;e&lt;b;++e)C[w++]=I[e]}return ql.set(e,{stringHash:l,textureCoordinates:A}),A}(n,d,l,i,t.numberOfColorsInRange,t.colorTextureMap.getDimensions(),r)},e.getIsOpaque=()=&gt;{const n=e.getInputData(),r=e.getAbstractScalars(n,t.scalarMode,t.arrayAccessMode,t.arrayId,t.colorByArrayName).scalars;if(!t.scalarVisibility||null==r)return!0;const o=e.getLookupTable();return!o||(o.build(),o.areScalarsOpaque(r,t.colorMode,-1))},e.canUseTextureMapForColoring=(e,n)=&gt;!(!n||t.colorMode===Ul.DIRECT_SCALARS)||!!t.interpolateScalarsBeforeMapping&amp;&amp;((!t.lookupTable||!t.lookupTable.getIndexedLookup())&amp;&amp;(!!e&amp;&amp;((t.colorMode!==Ul.DEFAULT||e.getDataType()!==Wl.UNSIGNED_CHAR)&amp;&amp;t.colorMode!==Ul.DIRECT_SCALARS))),e.clearColorArrays=()=&gt;{t.colorMapColors=null,t.colorCoordinates=null,t.colorTextureMap=null},e.getLookupTable=()=&gt;(t.lookupTable||e.createDefaultLookupTable(),t.lookupTable),e.getMTime=()=&gt;{let e=t.mtime;if(null!==t.lookupTable){const n=t.lookupTable.getMTime();e=n&gt;e?n:e}return e},e.getPrimitiveCount=()=&gt;{const t=e.getInputData();return{points:t.getPoints().getNumberOfValues()/3,verts:t.getVerts().getNumberOfValues()-t.getVerts().getNumberOfCells(),lines:t.getLines().getNumberOfValues()-2*t.getLines().getNumberOfCells(),triangles:t.getPolys().getNumberOfValues()-3*t.getPolys().getNumberOfCells()}},e.acquireInvertibleLookupTable=Hl(&quot;AcquireInvertibleLookupTable&quot;),e.valueToColor=Hl(&quot;ValueToColor&quot;),e.colorToValue=Hl(&quot;ColorToValue&quot;),e.useInvertibleColorFor=Hl(&quot;UseInvertibleColorFor&quot;),e.clearInvertibleColor=Hl(&quot;ClearInvertibleColor&quot;),e.processSelectorPixelBuffers=(e,n)=&gt;{if(!e||!t.selectionWebGLIdsToVTKIds||!t.populateSelectionSettings)return;const r=e.getRawPixelBuffer(Bl.ID_LOW24),o=e.getRawPixelBuffer(Bl.ID_HIGH24),a=e.getCurrentPass(),i=e.getFieldAssociation();let s=null;i===Nl.FIELD_ASSOCIATION_POINTS?s=t.selectionWebGLIdsToVTKIds.points:i===Nl.FIELD_ASSOCIATION_CELLS&amp;&amp;(s=t.selectionWebGLIdsToVTKIds.cells),s&amp;&amp;n.forEach((t=&gt;{if(a===Bl.ID_LOW24){let n=0;o&amp;&amp;(n+=o[t],n*=256),n+=r[t+2],n*=256,n+=r[t+1],n*=256,n+=r[t];const a=s[n],i=e.getPixelBuffer(Bl.ID_LOW24);i[t]=255&amp;a,i[t+1]=(65280&amp;a)&gt;&gt;8,i[t+2]=(16711680&amp;a)&gt;&gt;16}else if(a===Bl.ID_HIGH24&amp;&amp;o){let n=0;n+=o[t],n*=256,n+=r[t+2],n*=256,n+=r[t+1],n*=256,n+=r[t];const a=s[n];e.getPixelBuffer(Bl.ID_HIGH24)[t]=(4278190080&amp;a)&gt;&gt;24}}))}}const Jl={colorMapColors:null,areScalarsMappedFromCells:!1,static:!1,lookupTable:null,scalarVisibility:!0,scalarRange:[0,1],useLookupTableScalarRange:!1,colorMode:0,scalarMode:0,arrayAccessMode:1,renderTime:0,colorByArrayName:null,fieldDataTupleId:-1,populateSelectionSettings:!0,selectionWebGLIdsToVTKIds:null,interpolateScalarsBeforeMapping:!1,colorCoordinates:null,colorTextureMap:null,numberOfColorsInRange:0,forceCompileOnly:0,useInvertibleColors:!1,invertibleScalars:null,customShaderAttributes:[]};function Zl(e,t,n={}){Object.assign(t,Jl,n),Ls.extend(e,t,n),sn.get(e,t,[&quot;areScalarsMappedFromCells&quot;,&quot;colorCoordinates&quot;,&quot;colorMapColors&quot;,&quot;colorTextureMap&quot;,&quot;numberOfColorsInRange&quot;,&quot;selectionWebGLIdsToVTKIds&quot;]),sn.setGet(e,t,[&quot;colorByArrayName&quot;,&quot;arrayAccessMode&quot;,&quot;colorMode&quot;,&quot;fieldDataTupleId&quot;,&quot;interpolateScalarsBeforeMapping&quot;,&quot;lookupTable&quot;,&quot;populateSelectionSettings&quot;,&quot;renderTime&quot;,&quot;scalarMode&quot;,&quot;scalarVisibility&quot;,&quot;static&quot;,&quot;useLookupTableScalarRange&quot;,&quot;customShaderAttributes&quot;]),sn.setGetArray(e,t,[&quot;scalarRange&quot;],2),Ll.implementCoincidentTopologyMethods(e,t),Yl(e,t)}var Ql={newInstance:sn.newInstance(Zl,&quot;vtkMapper&quot;),extend:Zl,...kl,...Gl,...cl};const{isVtkObject:$l}=sn;function ec(e){const t=[];for(let n=0;n&lt;e.length;n+=e[n]+1)t.push(e[n]);return t}function tc(e){let t=0;for(let n=0;n&lt;e.length;)n+=e[n]+1,t++;return t}const nc={extractCellSizes:ec,getNumberOfCells:tc};function rc(e,t,n={}){Is.extend(e,t,function(e){return{empty:!0,numberOfComponents:1,dataType:ms.UNSIGNED_INT,...e}}(n)),function(e,t){t.classHierarchy.push(&quot;vtkCellArray&quot;);const n={...e};e.getNumberOfCells=n=&gt;void 0===t.numberOfCells||n?(t.cellSizes?t.numberOfCells=t.cellSizes.length:t.numberOfCells=tc(e.getData()),t.numberOfCells):t.numberOfCells,e.getCellSizes=n=&gt;void 0===t.cellSizes||n?(t.cellSizes=ec(e.getData()),t.cellSizes):t.cellSizes,e.resize=r=&gt;{const o=e.getNumberOfTuples();n.resize(r);const a=e.getNumberOfTuples();a&lt;o&amp;&amp;(0===a?(t.numberOfCells=0,t.cellSizes=[]):(t.numberOfCells=void 0,t.cellSizes=void 0))},e.setData=e=&gt;{n.setData(e,1),t.numberOfCells=void 0,t.cellSizes=void 0},e.getCell=e=&gt;{let n=e;const r=t.values[n++];return t.values.subarray(n,n+r)},e.insertNextCell=n=&gt;{let r;r=$l(n)?n.getPointsIds():n;const o=e.getNumberOfCells();return e.insertNextTuples([r.length,...r]),++t.numberOfCells,null!=t.cellSizes&amp;&amp;t.cellSizes.push(r.length),o},e.getMaxCellSize=()=&gt;e.getCellSizes().reduce(((e,t)=&gt;Math.max(e,t)),0)}(e,t)}var oc={newInstance:sn.newInstance(rc,&quot;vtkCellArray&quot;),extend:rc,...nc};const{vtkErrorMacro:ac}=sn;const ic={empty:!0,numberOfComponents:3,dataType:ms.FLOAT,bounds:[1,-1,1,-1,1,-1]};function sc(e,t,n={}){Object.assign(t,ic,n),Is.extend(e,t,n),sn.getArray(e,t,[&quot;bounds&quot;],6),function(e,t){let n=0;t.classHierarchy.push(&quot;vtkPoints&quot;),e.getNumberOfPoints=e.getNumberOfTuples,e.setNumberOfPoints=(n,r=3)=&gt;{e.getNumberOfPoints()!==n&amp;&amp;(t.size=n*r,t.values=sn.newTypedArray(t.dataType,t.size),e.setNumberOfComponents(r),e.modified())},e.setPoint=(t,...n)=&gt;{e.setTuple(t,n)},e.getPoint=e.getTuple,e.findPoint=e.findTuple,e.insertNextPoint=(t,n,r)=&gt;e.insertNextTuple([t,n,r]),e.insertPoint=(t,n)=&gt;e.insertTuple(t,n);const r=e.getBounds;e.getBounds=()=&gt;(n&lt;t.mtime&amp;&amp;e.computeBounds(),r());const o=e.getBoundsByReference;e.getBoundsByReference=()=&gt;(n&lt;t.mtime&amp;&amp;e.computeBounds(),o()),e.computeBounds=()=&gt;{if(3===e.getNumberOfComponents()){const n=e.getRange(0);t.bounds[0]=n[0],t.bounds[1]=n[1];const r=e.getRange(1);t.bounds[2]=r[0],t.bounds[3]=r[1];const o=e.getRange(2);t.bounds[4]=o[0],t.bounds[5]=o[1]}else if(2===e.getNumberOfComponents()){const n=e.getRange(0);t.bounds[0]=n[0],t.bounds[1]=n[1];const r=e.getRange(1);t.bounds[2]=r[0],t.bounds[3]=r[1],t.bounds[4]=0,t.bounds[5]=0}else ac(`getBounds called on an array with components of ${e.getNumberOfComponents()}`),Ia(t.bounds);n=sn.getCurrentGlobalMTime()},e.setNumberOfComponents(t.numberOfComponents&lt;2?3:t.numberOfComponents)}(e,t)}var lc={newInstance:sn.newInstance(sc,&quot;vtkPoints&quot;),extend:sc};const cc={bounds:[-1,-1,-1,-1,-1,-1],pointsIds:[]};function uc(e,t,n={}){Object.assign(t,cc,n),sn.obj(e,t),t.points||(t.points=lc.newInstance()),sn.get(e,t,[&quot;points&quot;,&quot;pointsIds&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkCell&quot;),e.initialize=(e,n=null)=&gt;{if(n){t.pointsIds=n;let r=t.points.getData();r.length!==3*t.pointsIds.length&amp;&amp;(r=sn.newTypedArray(e.getDataType(),3*t.pointsIds.length));const o=e.getData();t.pointsIds.forEach(((e,t)=&gt;{let n=3*e,a=3*t;r[a]=o[n],r[++a]=o[++n],r[++a]=o[++n]})),t.points.setData(r)}else{t.points=e,t.pointsIds=new Array(e.getNumberOfPoints());for(let n=e.getNumberOfPoints()-1;n&gt;=0;--n)t.pointsIds[n]=n}},e.getBounds=()=&gt;t.points.getBounds(),e.getLength2=()=&gt;{const t=Hi.getLengths(e.getBounds());return t[0]*t[0]+t[1]*t[1]+t[2]*t[2]},e.getParametricDistance=e=&gt;{let t,n=0;for(let r=0;r&lt;3;r++)t=e[r]&lt;0?-e[r]:e[r]&gt;1?e[r]-1:0,t&gt;n&amp;&amp;(n=t);return n},e.getNumberOfPoints=()=&gt;t.points.getNumberOfPoints(),e.deepCopy=e=&gt;{e.initialize(t.points,t.pointsIds)},e.getCellDimension=()=&gt;{},e.intersectWithLine=(e,t,n,r,o,a,i)=&gt;{},e.evaluatePosition=(e,t,n,r,o,a)=&gt;{sn.vtkErrorMacro(&quot;vtkCell.evaluatePosition is not implemented.&quot;)}}(e,t)}var dc={newInstance:sn.newInstance(uc,&quot;vtkCell&quot;),extend:uc};const pc={array:null,maxId:0,extend:0};function fc(e,t,n={}){Object.assign(t,pc,n),sn.obj(e,t),function(e,t){t.classHierarchy.push(&quot;vtkCellLinks&quot;),e.buildLinks=n=&gt;{const r=n.getPoints().getNumberOfPoints(),o=n.getNumberOfCells(),a=new Uint32Array(r);if(n.isA(&quot;vtkPolyData&quot;)){for(let t=0;t&lt;o;++t){const{cellPointIds:r}=n.getCellPoints(t);r.forEach((t=&gt;{e.incrementLinkCount(t)}))}e.allocateLinks(r),t.maxId=r-1;for(let t=0;t&lt;o;++t){const{cellPointIds:r}=n.getCellPoints(t);r.forEach((n=&gt;{e.insertCellReference(n,a[n]++,t)}))}}else{for(let t=0;t&lt;o;t++)dc.newInstance().getPointsIds().forEach((t=&gt;{e.incrementLinkCount(t)}));e.allocateLinks(r),t.maxId=r-1;for(let t=0;t&lt;o;++t)dc.newInstance().getPointsIds().forEach((n=&gt;{e.insertCellReference(n,a[n]++,t)}))}},e.allocate=(e,n=1e3)=&gt;{t.array=Array(e).fill().map((()=&gt;({ncells:0,cells:null}))),t.extend=n,t.maxId=-1},e.initialize=()=&gt;{t.array=null},e.getLink=e=&gt;t.array[e],e.getNcells=e=&gt;t.array[e].ncells,e.getCells=e=&gt;t.array[e].cells,e.insertNextPoint=e=&gt;{t.array.push({ncells:e,cells:Array(e)}),++t.maxId},e.insertNextCellReference=(e,n)=&gt;{t.array[e].cells[t.array[e].ncells++]=n},e.deletePoint=e=&gt;{t.array[e].ncells=0,t.array[e].cells=null},e.removeCellReference=(e,n)=&gt;{t.array[n].cells=t.array[n].cells.filter((t=&gt;t!==e)),t.array[n].ncells=t.array[n].cells.length},e.addCellReference=(e,n)=&gt;{t.array[n].cells[t.array[n].ncells++]=e},e.resizeCellList=(e,n)=&gt;{t.array[e].cells.length=n},e.squeeze=()=&gt;{!function(e,t){let n=t;for(t&gt;=e.array.length&amp;&amp;(n+=e.array.length);n&gt;e.array.length;)e.array.push({ncells:0,cells:null});e.array.length=n}(t,t.maxId+1)},e.reset=()=&gt;{t.maxId=-1},e.deepCopy=e=&gt;{t.array=[...e.array],t.extend=e.extend,t.maxId=e.maxId},e.incrementLinkCount=e=&gt;{++t.array[e].ncells},e.allocateLinks=e=&gt;{for(let n=0;n&lt;e;++n)t.array[n].cells=new Array(t.array[n].ncells)},e.insertCellReference=(e,n,r)=&gt;{t.array[e].cells[n]=r}}(e,t)}var gc={newInstance:sn.newInstance(fc,&quot;vtkCellLinks&quot;),extend:fc};const mc=0,hc=1,vc=2,Tc=3,xc=4,yc=5,bc=6,Ac=7,Cc=9,Sc=21,Pc=41,wc=42,Ic=[&quot;vtkEmptyCell&quot;,&quot;vtkVertex&quot;,&quot;vtkPolyVertex&quot;,&quot;vtkLine&quot;,&quot;vtkPolyLine&quot;,&quot;vtkTriangle&quot;,&quot;vtkTriangleStrip&quot;,&quot;vtkPolygon&quot;,&quot;vtkPixel&quot;,&quot;vtkQuad&quot;,&quot;vtkTetra&quot;,&quot;vtkVoxel&quot;,&quot;vtkHexahedron&quot;,&quot;vtkWedge&quot;,&quot;vtkPyramid&quot;,&quot;vtkPentagonalPrism&quot;,&quot;vtkHexagonalPrism&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;vtkQuadraticEdge&quot;,&quot;vtkQuadraticTriangle&quot;,&quot;vtkQuadraticQuad&quot;,&quot;vtkQuadraticTetra&quot;,&quot;vtkQuadraticHexahedron&quot;,&quot;vtkQuadraticWedge&quot;,&quot;vtkQuadraticPyramid&quot;,&quot;vtkBiQuadraticQuad&quot;,&quot;vtkTriQuadraticHexahedron&quot;,&quot;vtkQuadraticLinearQuad&quot;,&quot;vtkQuadraticLinearWedge&quot;,&quot;vtkBiQuadraticQuadraticWedge&quot;,&quot;vtkBiQuadraticQuadraticHexahedron&quot;,&quot;vtkBiQuadraticTriangle&quot;,&quot;vtkCubicLine&quot;,&quot;vtkQuadraticPolygon&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;vtkConvexPointSet&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;vtkParametricCurve&quot;,&quot;vtkParametricSurface&quot;,&quot;vtkParametricTriSurface&quot;,&quot;vtkParametricQuadSurface&quot;,&quot;vtkParametricTetraRegion&quot;,&quot;vtkParametricHexRegion&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;UnknownClass&quot;,&quot;vtkHigherOrderEdge&quot;,&quot;vtkHigherOrderTriangle&quot;,&quot;vtkHigherOrderQuad&quot;,&quot;vtkHigherOrderPolygon&quot;,&quot;vtkHigherOrderTetrahedron&quot;,&quot;vtkHigherOrderWedge&quot;,&quot;vtkHigherOrderPyramid&quot;,&quot;vtkHigherOrderHexahedron&quot;];const Oc={getClassNameFromTypeId:function(e){return e&lt;Ic.length?Ic[e]:&quot;UnknownClass&quot;},getTypeIdFromClassName:function(e){return Ic.findIndex(e)},isLinear:function(e){return e&lt;Sc||e===Pc||e===wc},hasSubCells:function(e){return e===bc||e===xc||e===vc}};const Rc={size:0,maxId:-1,extend:1e3};function Mc(e,t,n={}){Object.assign(t,Rc,n),sn.obj(e,t),sn.get(e,t,[&quot;size&quot;,&quot;maxId&quot;,&quot;extend&quot;]),sn.getArray(e,t,[&quot;typeArray&quot;,&quot;locationArray&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkCellTypes&quot;),e.allocate=(e=512,n=1e3)=&gt;{t.size=e&gt;0?e:1,t.extend=n&gt;0?n:1,t.maxId=-1,t.typeArray=new Uint8Array(e),t.locationArray=new Uint32Array(e)},e.insertCell=(e,n,r)=&gt;{t.typeArray[e]=n,t.locationArray[e]=r,e&gt;t.maxId&amp;&amp;(t.maxId=e)},e.insertNextCell=(n,r)=&gt;(e.insertCell(++t.maxId,n,r),t.maxId),e.setCellTypes=(e,n,r)=&gt;{t.size=e,t.typeArray=n,t.locationArray=r,t.maxId=e-1},e.getCellLocation=e=&gt;t.locationArray[e],e.deleteCell=e=&gt;{t.typeArray[e]=mc},e.getNumberOfTypes=()=&gt;t.maxId+1,e.isType=t=&gt;{const n=e.getNumberOfTypes();for(let r=0;r&lt;n;++r)if(t===e.getCellType(r))return!0;return!1},e.insertNextType=t=&gt;e.insertNextCell(t,-1),e.getCellType=e=&gt;t.typeArray[e],e.reset=()=&gt;{t.maxId=-1},e.deepCopy=n=&gt;{e.allocate(n.getSize(),n.getExtend()),t.typeArray.set(n.getTypeArray()),t.locationArray.set(n.getLocationArray()),t.maxId=n.getMaxId()}}(e,t)}var Dc={newInstance:sn.newInstance(Mc,&quot;vtkCellTypes&quot;),extend:Mc,...Oc};const Ec={NO_INTERSECTION:0,YES_INTERSECTION:1,ON_LINE:2};var Vc={IntersectionState:Ec};const{IntersectionState:Lc}=Vc;function Bc(e,t,n,r=null){const o={t:Number.MIN_VALUE,distance:0},a=[];let i;a[0]=n[0]-t[0],a[1]=n[1]-t[1],a[2]=n[2]-t[2];const s=a[0]*(e[0]-t[0])+a[1]*(e[1]-t[1])+a[2]*(e[2]-t[2]),l=zo(a,a);let c=1e-5*s;return 0!==l&amp;&amp;(o.t=s/l),c&lt;0&amp;&amp;(c=-c),-c&lt;l&amp;&amp;l&lt;c||l&lt;=0||o.t&lt;0?i=t:o.t&gt;1?i=n:(i=a,a[0]=t[0]+o.t*a[0],a[1]=t[1]+o.t*a[1],a[2]=t[2]+o.t*a[2]),r&amp;&amp;(r[0]=i[0],r[1]=i[1],r[2]=i[2]),o.distance=Yo(i,e),o}function Fc(e,t,n,r,o,a){const i=[],s=[],l=[];o[0]=0,a[0]=0,Go(t,e,i),Go(r,n,s),Go(n,e,l);const c=[zo(i,i),-zo(i,s),-zo(i,s),zo(s,s)],u=[];if(u[0]=zo(i,l),u[1]=-zo(s,l),0===ha(c,u,2)){let i=Number.MAX_VALUE;const s=[e,t,n,r],l=[n,n,e,e],c=[r,r,t,t];let u;a[0],a[0],o[0],o[0],o[0],o[0],a[0],a[0];for(let e=0;e&lt;4;e++)u=Bc(s[e],l[e],c[e]),u.distance&lt;i&amp;&amp;(i=u.distance,u.t);return Lc.ON_LINE}return o[0]=u[0],a[0]=u[1],o[0]&gt;=0&amp;&amp;o[0]&lt;=1&amp;&amp;a[0]&gt;=0&amp;&amp;a[0]&lt;=1?Lc.YES_INTERSECTION:Lc.NO_INTERSECTION}const Nc={distanceToLine:Bc,intersection:Fc};const kc={orientations:null};function Gc(e,t,n={}){Object.assign(t,kc,n),dc.extend(e,t,n),sn.setGet(e,t,[&quot;orientations&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkLine&quot;),e.getCellDimension=()=&gt;1,e.intersectWithLine=(e,n,r,o,a)=&gt;{const i={intersect:0,t:Number.MAX_VALUE,subId:0,betweenPoints:null};a[1]=0,a[2]=0;const s=[],l=[],c=[];t.points.getPoint(0,l),t.points.getPoint(1,c);const u=[],d=[],p=Fc(e,n,l,c,u,d);var f;if(i.t=u[0],i.betweenPoints=(f=i.t)&gt;=0&amp;&amp;f&lt;=1,a[0]=d[0],p===Lc.YES_INTERSECTION){for(let t=0;t&lt;3;t++)o[t]=l[t]+a[0]*(c[t]-l[t]),s[t]=e[t]+i.t*(n[t]-e[t]);if(Yo(o,s)&lt;=r*r)return i.intersect=1,i}else{let t;if(i.t&lt;0)return t=Bc(e,l,c,o),t.distance&lt;=r*r?(i.t=0,i.intersect=1,i.betweenPoints=!0,i):i;if(i.t&gt;1)return t=Bc(n,l,c,o),t.distance&lt;=r*r?(i.t=1,i.intersect=1,i.betweenPoints=!0,i):i;if(a[0]&lt;0)return a[0]=0,t=Bc(l,e,n,o),i.t=t.t,t.distance&lt;=r*r?(i.intersect=1,i):i;if(a[0]&gt;1)return a[0]=1,t=Bc(c,e,n,o),i.t=t.t,t.distance&lt;=r*r?(i.intersect=1,i):i}return i},e.evaluateLocation=(e,n,r)=&gt;{const o=[],a=[];t.points.getPoint(0,o),t.points.getPoint(1,a);for(let t=0;t&lt;3;t++)n[t]=o[t]+e[0]*(a[t]-o[t]);r[0]=1-e[0],r[1]=e[0]},e.evaluateOrientation=(e,n,r)=&gt;!!t.orientations&amp;&amp;(me(n,t.orientations[0],t.orientations[1],e[0]),r[0]=1-e[0],r[1]=e[0],!0)}(e,t)}var Uc={newInstance:sn.newInstance(Gc,&quot;vtkLine&quot;),extend:Gc,...Nc,...Vc};const _c={};function Kc(e,t,n={}){Object.assign(t,_c,n),Qs.extend(e,t,n),sn.setGet(e,t,[&quot;points&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkPointSet&quot;),t.points?t.points=it(t.points):t.points=lc.newInstance(),e.getNumberOfPoints=()=&gt;t.points.getNumberOfPoints(),e.getBounds=()=&gt;t.points?.getBounds(),e.computeBounds=()=&gt;{t.points?.computeBounds()};const n=e.shallowCopy;e.shallowCopy=(e,r=!1)=&gt;{n(e,r),t.points=lc.newInstance(),t.points.shallowCopy(e.getPoints())};const r=e.getMTime;e.getMTime=()=&gt;{const e=r();return Math.max(e,t.points?.getMTime()??e)};const o=e.initialize;e.initialize=()=&gt;(t.points?.initialize(),o())}(e,t)}var zc={newInstance:sn.newInstance(Kc,&quot;vtkPointSet&quot;),extend:Kc};const Wc={orientations:null,distanceFunction:ue};function Hc(e,t,n={}){Object.assign(t,Wc,n),dc.extend(e,t,n),sn.setGet(e,t,[&quot;orientations&quot;,&quot;distanceFunction&quot;]),t.distancesTime={},sn.obj(t.distancesTime,{mtime:0}),function(e,t){t.classHierarchy.push(&quot;vtkPolyLine&quot;);const n=Uc.newInstance();n.getPoints().setNumberOfPoints(2),e.getCellDimension=()=&gt;1,e.intersectWithLine=(r,o,a,i,s,l,c)=&gt;{const u={intersect:0,t:Number.MAX_VALUE,subId:0,betweenPoints:null},d=e.getNumberOfPoints()-1;let p=Number.MAX_VALUE;for(let e=0;e&lt;d;e++){const d=[0,0,0];n.getPoints().getData().set(t.points.getData().subarray(3*e,3*(e+2)));const f=n.intersectWithLine(a,i,s,l,c);if(1===f.intersect&amp;&amp;f.t&lt;=u.t+s&amp;&amp;f.t&gt;=r&amp;&amp;f.t&lt;=o){u.intersect=1;const t=n.getParametricDistance(d);if(t&lt;p||t===p&amp;&amp;f.t&lt;u.t){u.subId=e,u.t=f.t,p=t;for(let e=0;e&lt;3;e++)l[e],d[e]}}}return u},e.evaluateLocation=(e,r,o,a)=&gt;(n.getPoints().getData().set(t.points.getData().subarray(3*e,3*(e+2))),n.evaluateLocation(r,o,a)),e.evaluateOrientation=(e,r,o,a)=&gt;(t.orientations?n.setOrientations([t.orientations[e],t.orientations[e+1]]):n.setOrientations(null),n.evaluateOrientation(r,o,a)),e.getDistancesToFirstPoint=()=&gt;{const n=t.distancesTime.getMTime();if(n&lt;t.points.getMTime()||n&lt;e.getMTime()){const n=e.getNumberOfPoints();if(t.distances?t.distances.length=n:t.distances=new Array(n),n&gt;0){const e=new Array(3),a=new Array(3);let i=0;t.distances[0]=i,t.points.getPoint(0,e);for(let s=1;s&lt;n;++s)t.points.getPoint(s,a),i+=t.distanceFunction(e,a),t.distances[s]=i,o=a,(r=e)[0]=o[0],r[1]=o[1],r[2]=o[2]}t.distancesTime.modified()}var r,o;return t.distances},e.findPointIdAtDistanceFromFirstPoint=t=&gt;{const n=e.getDistancesToFirstPoint();if(n.length&lt;2)return-1;let r=0,o=n.length-1;if(t&lt;n[r]||t&gt;n[o]||0===n[o])return-1;for(;o-r&gt;1;){const e=Math.floor((r+o)/2);n[e]&lt;=t?r=e:o=e}return r}}(e,t)}var jc={newInstance:sn.newInstance(Hc,&quot;vtkPolyLine&quot;),extend:Hc};const Xc={elements:[]};function qc(e,t,n={}){Object.assign(t,Xc,n),sn.obj(e,t),function(e,t){t.classHierarchy.push(&quot;vtkPriorityQueue&quot;),e.push=(e,n)=&gt;{const r=t.elements.findIndex((t=&gt;t.priority&gt;e));t.elements.splice(r,0,{priority:e,element:n})},e.pop=()=&gt;t.elements.length&gt;0?t.elements.shift().element:null,e.deleteById=e=&gt;{t.elements=t.elements.filter((({element:t})=&gt;t.id!==e))},e.length=()=&gt;t.elements.length}(e,t)}var Yc={newInstance:sn.newInstance(qc,&quot;vtkPriorityQueue&quot;),extend:qc};const Jc=1e-6,Zc=1.1920929e-7,Qc={FAILURE:-1,OUTSIDE:0,INSIDE:1,INTERSECTION:2,ON_LINE:3};function $c(e,t,n,r,o){return(r[e]-n[e])*(o[t]-n[t])-(o[e]-n[e])*(r[t]-n[t])}const eu={PolygonWithPointIntersectionState:Qc,pointInPolygon:function(e,t,n,r){if(e[0]&lt;n[0]||e[0]&gt;n[1]||e[1]&lt;n[2]||e[1]&gt;n[3]||e[2]&lt;n[4]||e[2]&gt;n[5])return Qc.OUTSIDE;if(jo(r)&lt;=Zc)return Qc.FAILURE;let o=1e-8*((n[1]-n[0])*(n[1]-n[0])+(n[3]-n[2])*(n[3]-n[2])+(n[5]-n[4])*(n[5]-n[4]));o*=o,o=0===o?Zc:o;const a=[],i=[];for(let n=0;n&lt;t.length;){if(a[0]=t[n++],a[1]=t[n++],a[2]=t[n++],Yo(e,a)&lt;=o)return Qc.INSIDE;const{distance:r,t:s}=Uc.distanceToLine(e,a,i);if(r&lt;=o&amp;&amp;s&gt;0&amp;&amp;s&lt;1)return Qc.INSIDE}let s,l;Math.abs(r[0])&gt;Math.abs(r[1])?Math.abs(r[0])&gt;Math.abs(r[2])?(s=1,l=2):(s=0,l=1):Math.abs(r[1])&gt;Math.abs(r[2])?(s=0,l=2):(s=0,l=1);let c=0;for(let n=0;n&lt;t.length;)a[0]=t[n++],a[1]=t[n++],a[2]=t[n++],n&lt;t.length?(i[0]=t[n],i[1]=t[n+1],i[2]=t[n+2]):(i[0]=t[0],i[1]=t[1],i[2]=t[2]),a[l]&lt;=e[l]?i[l]&gt;e[l]&amp;&amp;$c(s,l,a,i,e)&gt;0&amp;&amp;++c:i[l]&lt;=e[l]&amp;&amp;$c(s,l,a,i,e)&lt;0&amp;&amp;--c;return 0===c?Qc.OUTSIDE:Qc.INSIDE},getBounds:function(e,t,n){const r=e.length,o=[];t.getPoint(e[0],o),n[0]=o[0],n[1]=o[0],n[2]=o[1],n[3]=o[1],n[4]=o[2],n[5]=o[2];for(let a=1;a&lt;r;a++)t.getPoint(e[a],o),Hi.addPoint(n,...o);const a=Hi.getLengths(n);return zo(a,a)},getNormal:function(e,t,n){n.length=3,n[0]=0,n[1]=0,n[2]=0;const r=[];let o=[],a=[];const i=[],s=[];t.getPoint(e[0],r),t.getPoint(e[1],o);for(let l=2;l&lt;e.length;l++){t.getPoint(e[l],a),Go(a,o,i),Go(r,o,s);const c=[0,0,0];Wo(i,s,c),ko(n,c,n),[o,a]=[a,o]}return jo(n)},computeCentroid:function(e,t,n=[0,0,0]){n[0]=0,n[1]=0,n[2]=0;const r=e.length,o=[];for(let a=0;a&lt;r;a++)t.getPoint(e[a],o),n[0]+=o[0],n[1]+=o[1],n[2]+=o[2];return n[0]/=r,n[1]/=r,n[2]/=r,n}};function tu(e,t){function n(e){const n=[0,0,0],r=[0,0,0],o=[0,0,0],a=[0,0,0];Go(e.point,e.previous.point,n),Go(e.next.point,e.point,r),Go(e.previous.point,e.next.point,o),Wo(n,r,a);const i=zo(a,t.normal);if(i&lt;=0)return-1;const s=Ho(n)+Ho(r)+Ho(o);return s*s/i}function r(e){if(t.pointCount&lt;=3)return!0;const n=e.previous,r=e.next,o=[0,0,0];Go(r.point,n.point,o);const a=[0,0,0];if(Wo(o,t.normal,a),jo(a),0===Ho(a))return!1;let i=ai.evaluate(a,n.point,r.next.point),s=i&gt;Jc?1:i&lt;-1e-6?-1:0,l=s&lt;0?1:0;for(let e=r.next.next;e.id!==n.id;e=e.next){const t=e.previous;i=ai.evaluate(a,n.point,e.point);const o=i&gt;Jc?1:i&lt;-1e-6?-1:0;if(o!==s){if(l||(l=o&lt;=0?1:0),Uc.intersection(n.point,r.point,e.point,t.point,[0],[0])===Ec.YES_INTERSECTION)return!1;s=o}}return 1===l}function o(e,r){t.pointCount-=1;const o=e.previous,a=e.next;t.tris=t.tris.concat(e.point),t.tris=t.tris.concat(a.point),t.tris=t.tris.concat(o.point),o.next=a,a.previous=o,r.deleteById(o.id),r.deleteById(a.id);const i=n(o);i&gt;0&amp;&amp;r.push(i,o);const s=n(a);s&gt;0&amp;&amp;r.push(s,a),e.id===t.firstPoint.id&amp;&amp;(t.firstPoint=a)}function a(){!function(){const e=[0,0,0],n=[0,0,0];t.normal=[0,0,0];const r=[...t.firstPoint.point];let o=t.firstPoint;for(let a=0;a&lt;t.pointCount;a++){Go(o.point,r,e),Go(o.next.point,r,n);const a=[0,0,0];Wo(e,n,a),ko(t.normal,a,t.normal),o=o.next}jo(t.normal)}();const e=Yc.newInstance();let a=t.firstPoint;for(let r=0;r&lt;t.pointCount;r++){const t=n(a);t&gt;0&amp;&amp;e.push(t,a),a=a.next}for(;t.pointCount&gt;2&amp;&amp;e.length()&gt;0;)if(t.pointCount===e.length()){o(e.pop(),e)}else{const t=e.pop();r(t)&amp;&amp;o(t,e)}return t.pointCount&lt;=2}t.classHierarchy.push(&quot;vtkPolygon&quot;),e.triangulate=()=&gt;t.firstPoint?a():null,e.setPoints=e=&gt;{t.pointCount=e.length,t.firstPoint={id:0,point:e[0],next:null,previous:null};let n=t.firstPoint;for(let r=1;r&lt;t.pointCount;r++)n.next={id:r,point:e[r],next:null,previous:n},n=n.next;t.firstPoint.previous=n,n.next=t.firstPoint},e.getPointArray=()=&gt;t.tris}const nu={firstPoint:null,pointCount:0,tris:[]};function ru(e,t,n={}){Object.assign(t,nu,n),sn.obj(e,t),tu(e,t)}var ou={newInstance:sn.newInstance(ru,&quot;vtkPolygon&quot;),extend:ru,...eu};function au(e,t,n,r){const o=n[0]-t[0],a=n[1]-t[1],i=n[2]-t[2],s=e[0]-t[0],l=e[1]-t[1],c=e[2]-t[2];r[0]=a*c-i*l,r[1]=i*s-o*c,r[2]=o*l-a*s}function iu(e,t,n,r){au(e,t,n,r);const o=Math.sqrt(r[0]*r[0]+r[1]*r[1]+r[2]*r[2]);0!==o&amp;&amp;(r[0]/=o,r[1]/=o,r[2]/=o)}function su(e){e[0]=-1,e[1]=1,e[2]=0,e[3]=-1,e[4]=0,e[5]=1}const lu=[[0,1],[1,2],[2,0]],cu=[1,2,4],uu=[[-1,-1,-1,-1,-1,-1,-1],[0,2,100,-1,-1,-1,-1],[1,0,101,-1,-1,-1,-1],[1,2,100,1,100,101,-1],[2,1,102,-1,-1,-1,-1],[0,1,102,102,100,0,-1],[0,101,2,2,101,102,-1],[100,101,102,-1,-1,-1,-1]],du={computeNormalDirection:au,computeNormal:iu,interpolationDerivs:su,intersectWithTriangle:function(e,t,n,r,o,a,i=1e-6){let s=!1;const l=[],c=[],u=[],d=[],p=[];iu(e,t,n,d),iu(r,o,a,p);const f=-zo(d,e),g=-zo(p,r),m=[zo(p,e)+g,zo(p,t)+g,zo(p,n)+g];if(m[0]*m[1]&gt;i&amp;&amp;m[0]*m[2]&gt;i)return{intersect:!1,coplanar:s,pt1:l,pt2:c,surfaceId:u};const h=[zo(d,r)+f,zo(d,o)+f,zo(d,a)+f];if(h[0]*h[1]&gt;i&amp;&amp;h[0]*h[2]&gt;i)return{intersect:!1,coplanar:s,pt1:l,pt2:c,surfaceId:u};if(Math.abs(d[0]-p[0])&lt;1e-9&amp;&amp;Math.abs(d[1]-p[1])&lt;1e-9&amp;&amp;Math.abs(d[2]-p[2])&lt;1e-9&amp;&amp;Math.abs(f-g)&lt;1e-9)return s=!0,{intersect:!1,coplanar:s,pt1:l,pt2:c,surfaceId:u};const v=[e,t,n],T=[r,o,a],x=zo(d,p),y=(f-g*x)/(x*x-1),b=(g-f*x)/(x*x-1),A=[y*d[0]+b*p[0],y*d[1]+b*p[1],y*d[2]+b*p[2]],C=Wo(d,p,[]);jo(C);let S=0,P=0;const w=[],I=[];let O,R,M=50,D=50;for(let t=0;t&lt;3;t++){const n=t,o=(t+1)%3,a=ai.intersectWithLine(v[n],v[o],r,p);a.intersection&amp;&amp;a.t&gt;0-i&amp;&amp;a.t&lt;1+i&amp;&amp;(a.t&lt;1+i&amp;&amp;a.t&gt;1-i&amp;&amp;(M=S),w[S++]=zo(a.x,C)-zo(A,C));const s=ai.intersectWithLine(T[n],T[o],e,d);s.intersection&amp;&amp;s.t&gt;0-i&amp;&amp;s.t&lt;1+i&amp;&amp;(s.t&lt;1+i&amp;&amp;s.t&gt;1-i&amp;&amp;(D=P),I[P++]=zo(s.x,C)-zo(A,C))}if(S&gt;2){S--;const e=w[2];w[2]=w[M],w[M]=e}if(P&gt;2){P--;const e=I[2];I[2]=I[D],I[D]=e}if(2!==S||2!==P)return{intersect:!1,coplanar:s,pt1:l,pt2:c,surfaceId:u};if(Number.isNaN(w[0])||Number.isNaN(w[1])||Number.isNaN(I[0])||Number.isNaN(I[1]))return{intersect:!1,coplanar:s,pt1:l,pt2:c,surfaceId:u};if(w[0]&gt;w[1]){const e=w[1];w[1]=w[0],w[0]=e}if(I[0]&gt;I[1]){const e=I[1];I[1]=I[0],I[0]=e}return w[1]&lt;I[0]||I[1]&lt;w[0]?{intersect:!1,coplanar:s,pt1:l,pt2:c,surfaceId:u}:(w[0]&lt;I[0]?w[1]&lt;I[1]?(u[0]=2,u[1]=1,O=I[0],R=w[1]):(u[0]=2,u[1]=2,O=I[0],R=I[1]):w[1]&lt;I[1]?(u[0]=1,u[1]=1,O=w[0],R=w[1]):(u[0]=1,u[1]=2,O=w[0],R=I[1]),Ko(A,C,O,l),Ko(A,C,R,c),{intersect:!0,coplanar:s,pt1:l,pt2:c,surfaceId:u})}};const pu={};function fu(e,t,n={}){Object.assign(t,pu,n),dc.extend(e,t,n),function(e,t){t.classHierarchy.push(&quot;vtkTriangle&quot;),e.getCellDimension=()=&gt;2,e.intersectWithLine=(n,r,o,a,i)=&gt;{const s={subId:0,t:Number.MAX_VALUE,intersect:0,betweenPoints:!1};i[2]=0;const l=[],c=o*o,u=[],d=[],p=[];t.points.getPoint(0,u),t.points.getPoint(1,d),t.points.getPoint(2,p);const f=[],g=[];if(iu(u,d,p,f),0!==f[0]||0!==f[1]||0!==f[2]){const t=ai.intersectWithLine(n,r,u,f);if(s.betweenPoints=t.betweenPoints,s.t=t.t,a[0]=t.x[0],a[1]=t.x[1],a[2]=t.x[2],!t.intersection)return i[0]=0,i[1]=0,s.intersect=0,s;const o=e.evaluatePosition(a,l,i,g);if(o.evaluation&gt;=0)return o.dist2&lt;=c?(s.intersect=1,s):(s.intersect=o.evaluation,s)}const m=Yo(u,d),h=Yo(d,p),v=Yo(p,u);t.line||(t.line=Uc.newInstance()),m&gt;h&amp;&amp;m&gt;v?(t.line.getPoints().setPoint(0,u),t.line.getPoints().setPoint(1,d)):h&gt;v&amp;&amp;h&gt;m?(t.line.getPoints().setPoint(0,d),t.line.getPoints().setPoint(1,p)):(t.line.getPoints().setPoint(0,p),t.line.getPoints().setPoint(1,u));const T=t.line.intersectWithLine(n,r,o,a,i);if(s.betweenPoints=T.betweenPoints,s.t=T.t,T.intersect){const e=[],t=[],n=[];for(let r=0;r&lt;3;r++)e[r]=u[r]-p[r],t[r]=d[r]-p[r],n[r]=a[r]-p[r];return i[0]=zo(n,e)/v,i[1]=zo(n,t)/h,s.intersect=1,s}return i[0]=0,i[1]=0,s.intersect=0,s},e.evaluatePosition=(e,n,r,o)=&gt;{const a={subId:0,dist2:0,evaluation:-1};let i,s;const l=[],c=[],u=[],d=[];let p;const f=[],g=[],m=[];let h=0,v=0;const T=[];let x,y,b,A=[];const C=[],S=[],P=[];a.subId=0,r[2]=0,t.points.getPoint(1,l),t.points.getPoint(2,c),t.points.getPoint(0,u),au(l,c,u,d),ai.generalizedProjectPoint(e,l,d,P);let w=0;for(i=0;i&lt;3;i++)p=d[i]&lt;0?-d[i]:d[i],p&gt;w&amp;&amp;(w=p,v=i);for(s=0,i=0;i&lt;3;i++)i!==v&amp;&amp;(T[s++]=i);for(i=0;i&lt;2;i++)f[i]=P[T[i]]-u[T[i]],g[i]=l[T[i]]-u[T[i]],m[i]=c[T[i]]-u[T[i]];if(h=Qo(g,m),0===h)return r[0]=0,r[1]=0,a.evaluation=-1,a;if(r[0]=Qo(f,m)/h,r[1]=Qo(g,f)/h,o[0]=1-(r[0]+r[1]),o[1]=r[0],o[2]=r[1],o[0]&gt;=0&amp;&amp;o[0]&lt;=1&amp;&amp;o[1]&gt;=0&amp;&amp;o[1]&lt;=1&amp;&amp;o[2]&gt;=0&amp;&amp;o[2]&lt;=1)n&amp;&amp;(a.dist2=Yo(P,e),n[0]=P[0],n[1]=P[1],n[2]=P[2]),a.evaluation=1;else{let t;if(n)if(o[1]&lt;0&amp;&amp;o[2]&lt;0)for(x=Yo(e,u),y=Uc.distanceToLine(e,l,u,t,C),b=Uc.distanceToLine(e,u,c,t,S),x&lt;y?(a.dist2=x,A=u):(a.dist2=y,A=C),b&lt;a.dist2&amp;&amp;(a.dist2=b,A=S),i=0;i&lt;3;i++)n[i]=A[i];else if(o[2]&lt;0&amp;&amp;o[0]&lt;0)for(x=Yo(e,l),y=Uc.distanceToLine(e,l,u,t,C),b=Uc.distanceToLine(e,l,c,t,S),x&lt;y?(a.dist2=x,A=l):(a.dist2=y,A=C),b&lt;a.dist2&amp;&amp;(a.dist2=b,A=S),i=0;i&lt;3;i++)n[i]=A[i];else if(o[1]&lt;0&amp;&amp;o[0]&lt;0)for(x=Yo(e,c),y=Uc.distanceToLine(e,c,u,t,C),b=Uc.distanceToLine(e,l,c,t,S),x&lt;y?(a.dist2=x,A=c):(a.dist2=y,A=C),b&lt;a.dist2&amp;&amp;(a.dist2=b,A=S),i=0;i&lt;3;i++)n[i]=A[i];else if(o[0]&lt;0){const t=Uc.distanceToLine(e,l,c,n);a.dist2=t.distance}else if(o[1]&lt;0){const t=Uc.distanceToLine(e,c,u,n);a.dist2=t.distance}else if(o[2]&lt;0){const t=Uc.distanceToLine(e,l,u,n);a.dist2=t.distance}a.evaluation=0}return a},e.evaluateLocation=(e,n,r)=&gt;{const o=[],a=[],i=[];t.points.getPoint(0,o),t.points.getPoint(1,a),t.points.getPoint(2,i);const s=1-e[0]-e[1];for(let t=0;t&lt;3;t++)n[t]=o[t]*s+a[t]*e[0]+i[t]*e[1];r[0]=s,r[1]=e[0],r[2]=e[1]},e.getParametricDistance=e=&gt;{let t,n=0;const r=[];r[0]=e[0],r[1]=e[1],r[2]=1-e[0]-e[1];for(let e=0;e&lt;3;e++)t=r[e]&lt;0?-r[e]:r[e]&gt;1?r[e]-1:0,t&gt;n&amp;&amp;(n=t);return n},e.derivatives=(e,n,r,o,a)=&gt;{const i=t.points.getPoint(0),s=t.points.getPoint(1),l=t.points.getPoint(2),c=[],u=[],d=[],p=[];iu(i,s,l,c),Go(s,i,u),Go(l,i,p),Wo(c,u,d);const f=jo(u);if(f&lt;=0||jo(d)&lt;=0){for(let e=0;e&lt;o;e++)for(let t=0;t&lt;3;t++)a[e*o+t]=0;return}const g=[0,0],m=[f,0],h=[zo(p,u),zo(p,d)],v=new Array(6);su(v);const T=[m[0]-g[0],m[1]-g[1],h[0]-g[0],h[1]-g[1]],x=sn.newTypedArray(At.Float64Array,4);va(T,x,2);for(let e=0;e&lt;o;e++){let t=0,n=0;for(let a=0;a&lt;3;a++)t+=v[a]*r[o*a+e],n+=v[3+a]*r[o*a+e];const i=t*x[0]+n*x[1],s=t*x[2]+n*x[3];a[3*e]=i*u[0]+s*d[0],a[3*e+1]=i*u[1]+s*d[1],a[3*e+2]=i*u[2]+s*d[2]}},e.cellBoundary=(e,n,r)=&gt;{const o=n[0]-n[1],a=.5*(1-n[0])-n[1],i=2*n[0]+n[1]-1;return o&gt;=0&amp;&amp;a&gt;=0?(r[0]=t.pointsIds[0],r[1]=t.pointsIds[1]):a&lt;0&amp;&amp;i&gt;=0?(r[0]=t.pointsIds[1],r[1]=t.pointsIds[2]):(r[0]=t.pointsIds[2],r[1]=t.pointsIds[0]),!(n[0]&lt;0||n[1]&lt;0||n[0]&gt;1||n[1]&gt;1||1-n[0]-n[1]&lt;0)},e.clip=(e,n,r,o,a,i,s,l,c,u)=&gt;{let d=0;for(let t=0;t&lt;3;t++){const r=n.getComponent(t,0);(u&amp;&amp;r&lt;=e||!u&amp;&amp;r&gt;e)&amp;&amp;(d+=cu[t])}const p=uu[d],f=[0,0,0],g=[0,0,0],m=[0,0,0],h=[0,0,0];for(let u=0;p[u]&gt;-1;u+=3){h[0]=0,h[1]=0,h[2]=0;for(let o=0;o&lt;3;o++){const s=p[u+o];if(s&gt;=100){const e=s-100;t.points.getPoint(e,f);const{inserted:n,id:l}=r.insertUniquePoint(f);h[o]=l,n&amp;&amp;i.passData(a,t.pointsIds[e],l)}else{const l=lu[s];let c=l[0],u=l[1],d=n.getComponent(l[1],0)-n.getComponent(l[0],0);d&lt;=0&amp;&amp;(c=l[1],u=l[0],d=-d);const p=0===d?0:(e-n.getComponent(c,0))/d;t.points.getPoint(c,g),t.points.getPoint(u,m);for(let e=0;e&lt;3;e++)f[e]=g[e]+p*(m[e]-g[e]);const{inserted:v,id:T}=r.insertUniquePoint(f);h[o]=T,v&amp;&amp;i.interpolateData(a,t.pointsIds[c],t.pointsIds[u],T,p)}}if(h[0]!==h[1]&amp;&amp;h[0]!==h[2]&amp;&amp;h[1]!==h[2]){const e=o.insertNextCell(h);c.passData(s,l,e)}}}}(e,t)}var gu={newInstance:sn.newInstance(fu,&quot;vtkTriangle&quot;),extend:fu,...du};const mu={};function hu(e,t,n={}){Object.assign(t,mu,n),dc.extend(e,t,n),function(e,t){t.classHierarchy.push(&quot;vtkQuad&quot;),e.getCellDimension=()=&gt;2,e.getCellType=()=&gt;Cc,e.getNumberOfEdges=()=&gt;4,e.getNumberOfFaces=()=&gt;0,e.intersectWithLine=(e,n,r,o,a)=&gt;{let i,s={subId:0,t:Number.MAX_VALUE,intersect:0,betweenPoints:!1};const l=t.points.getPoint(0,[]),c=t.points.getPoint(1,[]),u=t.points.getPoint(2,[]),d=t.points.getPoint(3,[]),p=Yo(l,u),f=Yo(c,d);if(p===f){let e,n=0,r=0;for(let o=0;o&lt;4;o++)e=t.pointsIds[o],e&gt;n&amp;&amp;(n=e,r=o);i=0===r||2===r?0:1}else i=p&lt;f?0:1;let g,m=null;t.triangle?m=t.triangle.getPoints():(t.triangle=gu.newInstance(),m=lc.newInstance(),m.setNumberOfPoints(3),t.triangle.initialize(m));const h={intersected:!1,subId:-1,x:[0,0,0],pCoords:[0,0,0],t:-1};let v;const T={intersected:!1,subId:-1,x:[0,0,0],pCoords:[0,0,0],t:-1};let x,y;switch(i){case 0:m.setPoint(0,...l),m.setPoint(1,...c),m.setPoint(2,...u),g=t.triangle.intersectWithLine(e,n,r,h.x,h.pCoords),m.setPoint(0,...u),m.setPoint(1,...d),m.setPoint(2,...l),v=t.triangle.intersectWithLine(e,n,r,T.x,T.pCoords),x=g.intersect&amp;&amp;v.intersect?g.t&lt;=v.t:g.intersect,y=g.intersect&amp;&amp;v.intersect?v.t&lt;g.t:v.intersect,x?(s=g,o[0]=h.x[0],o[1]=h.x[1],o[2]=h.x[2],a[0]=h.pCoords[0]+h.pCoords[1],a[1]=h.pCoords[1],a[2]=h.pCoords[2]):y&amp;&amp;(s=v,o[0]=T.x[0],o[1]=T.x[1],o[2]=T.x[2],a[0]=1-(T.pCoords[0]+T.pCoords[1]),a[1]=1-T.pCoords[1],a[2]=T.pCoords[2]);break;case 1:m.setPoint(0,...l),m.setPoint(1,...c),m.setPoint(2,...d),g=t.triangle.intersectWithLine(e,n,r,h.x,h.pCoords),m.setPoint(0,...u),m.setPoint(1,...d),m.setPoint(2,...c),v=t.triangle.intersectWithLine(e,n,r,T.x,T.pCoords),x=g.intersect&amp;&amp;v.intersect?g.t&lt;=v.t:g.intersect,y=g.intersect&amp;&amp;v.intersect?v.t&lt;g.t:v.intersect,x?(s=g,o[0]=h.x[0],o[1]=h.x[1],o[2]=h.x[2],a[0]=h.pCoords[0],a[1]=h.pCoords[1],a[2]=h.pCoords[2]):y&amp;&amp;(s=v,o[0]=T.x[0],o[1]=T.x[1],o[2]=T.x[2],a[0]=1-T.pCoords[0],a[1]=1-T.pCoords[1],a[2]=T.pCoords[2])}return s},e.interpolationFunctions=(e,t)=&gt;{const n=1-e[0],r=1-e[1];t[0]=n*r,t[1]=e[0]*r,t[2]=e[0]*e[1],t[3]=n*e[1]},e.evaluateLocation=(n,r,o)=&gt;{const a=[];e.interpolationFunctions(n,o),r[0]=0,r[1]=0,r[2]=0;for(let e=0;e&lt;4;e++){t.points.getPoint(e,a);for(let t=0;t&lt;3;t++)r[t]+=a[t]*o[e]}}}(e,t)}var vu={newInstance:sn.newInstance(hu,&quot;vtkQuad&quot;),extend:hu};const{vtkErrorMacro:Tu}=sn;const xu={decomposeStrip:function(e,t){if(!Array.isArray(e)||e.length&lt;3)return void Tu(&quot;decomposeStrip - Invalid points array&quot;);let n=e[0],r=e[1];for(let o=0;o&lt;e.length-2;o++){const a=e[o+2];o%2?t.insertNextCell([r,n,a]):t.insertNextCell([n,r,a]),n=r,r=a}}};function yu(e,t){t.classHierarchy.push(&quot;vtkTriangleStrip&quot;);const n=e.initialize;e.initialize=(e,r)=&gt;{t.triangle.initialize(e,r),n(e,r)},e.getCellType=()=&gt;bc,e.getCellDimension=()=&gt;2,e.getNumberOfEdges=()=&gt;t.pointsIds.length,e.getNumberOfFaces=()=&gt;0,e.evaluatePosition=(e,n,r,o,a)=&gt;{const i=[0,0,0];let s=Number.MAX_VALUE,l=0;const c=[],u=[],d=[];r[2]=0,u[0]=0,u[1]=0,u[2]=0;const p=t.triangle.getPoints();p.setNumberOfPoints(3);const f=t.triangle.getPointsIds().length;for(let e=0;e&lt;f;e++)a[e]=0;for(let o=0;o&lt;f-2;o++){const a=[];p.getPoint(o,a);const f=[];p.getPoint(o+1,f);const g=[];p.getPoint(o+2,g),p.setData(Float32Array.from([...a,...f,...g]),3);const m=t.triangle.evaluatePosition(e,d,i,c),h=m.dist2;m.evaluation&gt;=0&amp;&amp;(h&lt;s||h===s&amp;&amp;0===l)&amp;&amp;(l=m,n&amp;&amp;(n[0]=d[0],n[1]=d[1],n[2]=d[2]),r[0]=i[0],r[1]=i[1],s=h,u[0]=c[0],u[1]=c[1],u[2]=c[2])}return o[0]=s,a[0]=u[0],a[1]=u[1],a[2]=u[2],l},e.evaluateLocation=(e,n,r,o)=&gt;{const a=[[0,1,2],[1,0,2]],i=e%2,s=t.pointsIds.length;for(let e=0;e&lt;s;e++)o[e]=0;const l=1-n[0]-n[1];o[e]=l,o[e+1]=n[0],o[e+2]=n[1];const c=[];t.points.getPoint(e+a[i][0],c);const u=[];t.points.getPoint(e+a[i][1],u);const d=[];t.points.getPoint(e+a[i][2],d);for(let t=0;t&lt;3;t++)r[t]=c[t]*o[e]+u[t]*o[e+1]+d[t]*o[e+2]},e.cellBoundary=(e,n,r)=&gt;{const o=[[0,1,2],[1,0,2]],a=e%2,i=t.triangle.getPointsIds();return i[0]=t.pointsIds[o[a][0]],i[1]=t.pointsIds[o[a][1]],i[2]=t.pointsIds[o[a][2]],t.triangle.cellBoundary(0,n,r)},e.getEdge=e=&gt;{let n,r;const o=t.pointsIds.length;return 0===e?(n=0,r=1):e===o-1?(n=e-1,r=e):(n=e-1,r=e+1),t.line.getPointsIds()[0]=t.pointsIds[n],t.line.getPointsIds()[1]=t.pointsIds[r],t.line.getPoints().setPoint(0,t.points.getPoint(n)),t.line.getPoints().setPoint(1,t.points.getPoint(r)),t.line},e.intersectWithLine=(e,n,r,o,a)=&gt;{const i=t.pointsIds.length-2,s=t.triangle.getPoints();s.setNumberOfPoints(3);for(let l=0;l&lt;i;l++){const i=[];t.points.getPoint(t.pointsIds[l],i);const c=[];t.points.getPoint(t.pointsIds[l+1],c);const u=[];t.points.getPoint(t.pointsIds[l+2],u),s.setData(Float32Array.from([...i,...c,...u]),3);const d=t.triangle.intersectWithLine(e,n,r,o,a);if(d.intersect)return d}return!1},e.triangulate=()=&gt;{const e=t.points.getNumberOfPoints()-2;t.tris=new Array(3*e);const n=[[0,1,2],[1,0,2]];for(let r=0;r&lt;e;r++){const e=r%2;for(let o=0;o&lt;3;o++)t.tris[3*r+o]=r+n[e][o]}return!0},e.getPointArray=()=&gt;t.tris,e.derivatives=(e,n,r,o,a)=&gt;{const i=[];t.points.getPoint(e,i);const s=[];t.points.getPoint(e+1,s);const l=[];t.points.getPoint(e+2,l);const c=t.triangle.getPoints();c.setPoint(0,...i),c.setPoint(1,...s),c.setPoint(2,...l),t.triangle.derivatives(0,n,r,o,a)},e.getParametricCenter=e=&gt;(e[0]=.333333,e[1]=.333333,e[2]=0,Math.floor((t.pointsIds.length-2)/2)),e.contour=(e,t,n,r,o,a,i,s,l,c,u)=&gt;{return(d=&quot;contour&quot;,()=&gt;Tu(`vtkTriangleStrip.${d} - NOT IMPLEMENTED`))();var d},e.clip=(e,n,r,o,a,i,s,l,c,u)=&gt;{const d=t.points.getNumberOfPoints()-2,p=new Float32Array(3),f=n.newClone();f.setNumberOfComponents(n.getNumberOfComponents()),f.setData(p,n.getNumberOfComponents());const g=t.triangle.getPoints();g.setNumberOfPoints(3);const m=t.triangle.getPointsIds(),h=[0,0,0];for(let v=0;v&lt;d;v++){let d=v,T=v+1,x=v+2;v%2&amp;&amp;(d=v+2,T=v+1,x=v),g.setPoint(0,...t.points.getPoint(d,h)),g.setPoint(1,...t.points.getPoint(T,h)),g.setPoint(2,...t.points.getPoint(x,h)),m[0]=t.pointsIds[d],m[1]=t.pointsIds[T],m[2]=t.pointsIds[x],p[0]=n.getComponent(d,0),p[1]=n.getComponent(T,0),p[2]=n.getComponent(x,0),t.triangle.clip(e,f,r,o,a,i,s,l,c,u)}}}const bu={line:null,triangle:null,tris:null};function Au(e,t,n={}){Object.assign(t,bu,n),dc.extend(e,t,n),t.line||(t.line=Uc.newInstance()),t.triangle||(t.triangle=gu.newInstance()),yu(e,t)}var Cu={newInstance:sn.newInstance(Au,&quot;vtkTriangleStrip&quot;),extend:Au,...xu};const Su=[&quot;verts&quot;,&quot;lines&quot;,&quot;polys&quot;,&quot;strips&quot;],{vtkWarningMacro:Pu}=sn,wu={[Tc]:Uc,[Cc]:vu,[xc]:Uc,[yc]:gu,[bc]:Cu,[xc]:jc,[Ac]:ou};const Iu={};function Ou(e,t,n={}){Object.assign(t,Iu,n),zc.extend(e,t,n),sn.get(e,t,[&quot;cells&quot;,&quot;links&quot;]),sn.setGet(e,t,[&quot;verts&quot;,&quot;lines&quot;,&quot;polys&quot;,&quot;strips&quot;]),function(e,t){function n(e){return e.replace(/(?:^\\w|[A-Z]|\\b\\w)/g,(e=&gt;e.toUpperCase())).replace(/\\s+/g,&quot;&quot;)}function r(){t.cells=void 0,t.links=void 0}t.classHierarchy.push(&quot;vtkPolyData&quot;),Su.forEach((o=&gt;{e[`getNumberOf${n(o)}`]=()=&gt;t[o].getNumberOfCells(),t[o]?t[o]=it(t[o]):t[o]=oc.newInstance(),t[`_on${n(o)}Changed`]=r})),e.getNumberOfCells=()=&gt;Su.reduce(((e,n)=&gt;e+t[n].getNumberOfCells()),0);const o=e.shallowCopy;e.shallowCopy=(e,n=!1)=&gt;{o(e,n),Su.forEach((n=&gt;{t[n]=oc.newInstance(),t[n].shallowCopy(e.getReferenceByName(n))}))};const a=e.getMTime;e.getMTime=()=&gt;Su.reduce(((e,n)=&gt;Math.max(e,t[n]?.getMTime()??e)),a());const i=e.initialize;e.initialize=()=&gt;(Su.forEach((e=&gt;t[e]?.initialize())),r(),i()),e.buildCells=()=&gt;{const n=e.getNumberOfVerts(),r=e.getNumberOfLines(),o=e.getNumberOfPolys(),a=e.getNumberOfStrips(),i=n+r+o+a,s=new Uint8Array(i);let l=s;const c=new Uint32Array(i);let u=c;if(n){let e=0;t.verts.getCellSizes().forEach(((t,n)=&gt;{u[n]=e,l[n]=t&gt;1?vc:hc,e+=t+1})),u=u.subarray(n),l=l.subarray(n)}if(r){let e=0;t.lines.getCellSizes().forEach(((t,n)=&gt;{u[n]=e,l[n]=t&gt;2?xc:Tc,1===t&amp;&amp;Pu(&quot;Building VTK_LINE &quot;,n,&quot; with only one point, but VTK_LINE needs at least two points. Check the input.&quot;),e+=t+1})),u=u.subarray(r),l=l.subarray(r)}if(o){let e=0;t.polys.getCellSizes().forEach(((t,n)=&gt;{switch(u[n]=e,t){case 3:l[n]=yc;break;case 4:l[n]=Cc;break;default:l[n]=Ac}t&lt;3&amp;&amp;Pu(&quot;Building VTK_TRIANGLE &quot;,n,&quot; with less than three points, but VTK_TRIANGLE needs at least three points. Check the input.&quot;),e+=t+1})),u+=u.subarray(o),l+=l.subarray(o)}if(a){let e=0;l.fill(bc,0,a),t.strips.getCellSizes().forEach(((t,n)=&gt;{u[n]=e,e+=t+1}))}t.cells=Dc.newInstance(),t.cells.setCellTypes(i,s,c)},e.buildLinks=(n=0)=&gt;{null==t.cells&amp;&amp;e.buildCells(),t.links=gc.newInstance(),n&gt;0?t.links.allocate(n):t.links.allocate(e.getPoints().getNumberOfPoints()),t.links.buildLinks(e)},e.getCellType=e=&gt;t.cells.getCellType(e),e.getCellPoints=n=&gt;{const r=e.getCellType(n);let o=null;switch(r){case hc:case vc:o=t.verts;break;case Tc:case xc:o=t.lines;break;case yc:case Cc:case Ac:o=t.polys;break;case bc:o=t.strips;break;default:return o=null,{type:0,cellPointIds:null}}const a=t.cells.getCellLocation(n);return{cellType:r,cellPointIds:o.getCell(a)}},e.getPointCells=e=&gt;t.links.getCells(e),e.getCellEdgeNeighbors=(e,n,r)=&gt;{const o=t.links.getLink(n),a=t.links.getLink(r);return o.cells.filter((t=&gt;t!==e&amp;&amp;-1!==a.cells.indexOf(t)))},e.getCell=(t,n=null)=&gt;{const r=e.getCellPoints(t),o=n||wu[r.cellType].newInstance();return o.initialize(e.getPoints(),r.cellPointIds),o},e.getMaxCellSize=()=&gt;Su.reduce(((e,n)=&gt;Math.max(e,t[n]?.getMaxCellSize?.()??0)),0)}(e,t)}var Ru={newInstance:sn.newInstance(Ou,&quot;vtkPolyData&quot;),extend:Ou};const Mu={image:null,canvas:null,jsImageData:null,imageBitmap:null,imageLoaded:!1,repeat:!1,interpolate:!1,edgeClamp:!1,mipLevel:0,resizable:!1};function Du(e,t,n={}){Object.assign(t,Mu,n),sn.obj(e,t),sn.algo(e,t,6,0),sn.get(e,t,[&quot;canvas&quot;,&quot;image&quot;,&quot;jsImageData&quot;,&quot;imageBitmap&quot;,&quot;imageLoaded&quot;,&quot;resizable&quot;]),sn.setGet(e,t,[&quot;repeat&quot;,&quot;edgeClamp&quot;,&quot;interpolate&quot;,&quot;mipLevel&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkTexture&quot;),e.imageLoaded=()=&gt;{t.image.removeEventListener(&quot;load&quot;,e.imageLoaded),t.imageLoaded=!0,e.modified()},e.setJsImageData=n=&gt;{t.jsImageData!==n&amp;&amp;(null!==n&amp;&amp;(e.setInputData(null),e.setInputConnection(null),t.image=null,t.canvas=null,t.imageBitmap=null),t.jsImageData=n,t.imageLoaded=!0,e.modified())},e.setImageBitmap=n=&gt;{t.imageBitmap!==n&amp;&amp;(null!==n&amp;&amp;(e.setInputData(null),e.setInputConnection(null),t.image=null,t.canvas=null,t.jsImageData=null),t.imageBitmap=n,t.imageLoaded=!0,e.modified())},e.setCanvas=n=&gt;{t.canvas!==n&amp;&amp;(null!==n&amp;&amp;(e.setInputData(null),e.setInputConnection(null),t.image=null,t.imageBitmap=null,t.jsImageData=null),t.canvas=n,e.modified())},e.setImage=n=&gt;{t.image!==n&amp;&amp;(null!==n&amp;&amp;(e.setInputData(null),e.setInputConnection(null),t.canvas=null,t.jsImageData=null,t.imageBitmap=null),t.image=n,t.imageLoaded=!1,n.complete?e.imageLoaded():n.addEventListener(&quot;load&quot;,e.imageLoaded),e.modified())},e.getDimensionality=()=&gt;{let n=0,r=0,o=1;if(e.getInputData()){const t=e.getInputData();n=t.getDimensions()[0],r=t.getDimensions()[1],o=t.getDimensions()[2]}return t.jsImageData&amp;&amp;(n=t.jsImageData.width,r=t.jsImageData.height),t.canvas&amp;&amp;(n=t.canvas.width,r=t.canvas.height),t.image&amp;&amp;(n=t.image.width,r=t.image.height),t.imageBitmap&amp;&amp;(n=t.imageBitmap.width,r=t.imageBitmap.height),(n&gt;1)+(r&gt;1)+(o&gt;1)},e.getInputAsJsImageData=()=&gt;{if(!t.imageLoaded||e.getInputData())return null;if(t.jsImageData)return t.jsImageData;if(t.imageBitmap)return t.imageBitmap;if(t.canvas)return t.canvas.getContext(&quot;2d&quot;).getImageData(0,0,t.canvas.width,t.canvas.height);if(t.image){const e=t.image.width,n=t.image.height,r=new OffscreenCanvas(e,n).getContext(&quot;2d&quot;);return r.translate(0,n),r.scale(1,-1),r.drawImage(t.image,0,0,e,n),r.getImageData(0,0,e,n)}return null}}(e,t)}var Eu={newInstance:sn.newInstance(Du,&quot;vtkTexture&quot;),extend:Du,...{generateMipmaps:(e,t,n)=&gt;{const r=e.createShaderModule({code:&quot;\\n    @group(0) @binding(0) var inputTexture: texture_2d&lt;f32&gt;;\\n    @group(0) @binding(1) var outputTexture: texture_storage_2d&lt;rgba8unorm, write&gt;;\\n\\n    @compute @workgroup_size(8, 8)\\n    fn main(@builtin(global_invocation_id) global_id: vec3&lt;u32&gt;) {\\n      let texelCoord = vec2&lt;i32&gt;(global_id.xy);\\n      let outputSize = textureDimensions(outputTexture);\\n\\n      if (texelCoord.x &gt;= i32(outputSize.x) || texelCoord.y &gt;= i32(outputSize.y)) {\\n        return;\\n      }\\n\\n      let inputSize = textureDimensions(inputTexture);\\n      let scale = vec2&lt;f32&gt;(inputSize) / vec2&lt;f32&gt;(outputSize);\\n\\n      // Compute the floating-point source coordinate\\n      let srcCoord = (vec2&lt;f32&gt;(texelCoord) + 0.5) * scale - 0.5;\\n\\n      // Get integer coordinates for the four surrounding texels\\n      let x0 = i32(floor(srcCoord.x));\\n      let x1 = min(x0 + 1, i32(inputSize.x) - 1);\\n      let y0 = i32(floor(srcCoord.y));\\n      let y1 = min(y0 + 1, i32(inputSize.y) - 1);\\n\\n      // Compute the weights\\n      let wx = srcCoord.x - f32(x0);\\n      let wy = srcCoord.y - f32(y0);\\n\\n      // Fetch the four texels\\n      let c00 = textureLoad(inputTexture, vec2&lt;i32&gt;(x0, y0), 0);\\n      let c10 = textureLoad(inputTexture, vec2&lt;i32&gt;(x1, y0), 0);\\n      let c01 = textureLoad(inputTexture, vec2&lt;i32&gt;(x0, y1), 0);\\n      let c11 = textureLoad(inputTexture, vec2&lt;i32&gt;(x1, y1), 0);\\n\\n      // Bilinear interpolation\\n      let color = mix(\\n        mix(c00, c10, wx),\\n        mix(c01, c11, wx),\\n        wy\\n      );\\n\\n      textureStore(outputTexture, texelCoord, color);\\n    }\\n  &quot;}),o=e.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.COMPUTE,texture:{sampleType:&quot;float&quot;}},{binding:1,visibility:GPUShaderStage.COMPUTE,storageTexture:{format:&quot;rgba8unorm&quot;,access:&quot;write-only&quot;}},{binding:2,visibility:GPUShaderStage.COMPUTE,sampler:{type:&quot;filtering&quot;}}]}),a=e.createPipelineLayout({bindGroupLayouts:[o]}),i=e.createComputePipeline({label:&quot;ComputeMipmapPipeline&quot;,layout:a,compute:{module:r,entryPoint:&quot;main&quot;}}),s=e.createSampler({magFilter:&quot;linear&quot;,minFilter:&quot;linear&quot;});for(let r=1;r&lt;n;r++){const n=t.createView({baseMipLevel:r-1,mipLevelCount:1}),o=t.createView({baseMipLevel:r,mipLevelCount:1}),a=e.createBindGroup({layout:i.getBindGroupLayout(0),entries:[{binding:0,resource:n},{binding:1,resource:o},{binding:2,resource:s}]}),l=e.createCommandEncoder({label:&quot;MipmapGenerateCommandEncoder&quot;}),c=l.beginComputePass();c.setPipeline(i),c.setBindGroup(0,a);const u=Math.max(1,t.width&gt;&gt;r),d=Math.max(1,t.height&gt;&gt;r),p=Math.ceil(u/8),f=Math.ceil(d/8);c.dispatchWorkgroups(p,f),c.end(),e.queue.submit([l.finish()])}}}};const Vu=[[-1,0,0],[1,0,0],[0,-1,0],[0,1,0],[0,0,-1],[0,0,1]],Lu=[[8,7,11,3],[9,1,10,5],[4,9,0,8],[2,11,6,10],[0,3,2,1],[4,5,6,7]],Bu=[[0,1],[1,3],[2,3],[0,2],[4,5],[5,7],[6,7],[4,6],[0,4],[1,5],[3,7],[2,6]],Fu=[0,1,0,1,0,1,0,1,2,2,2,2],Nu=[[1,2],[1,2],[0,2],[0,2],[0,1],[0,1]],ku=new Float64Array(3),Gu=new Float64Array(3),Uu=new Float64Array(3),_u=new Float64Array(3),Ku=new Float64Array(3),zu=new Float64Array(3),Wu=new Float64Array(16);function Hu(e,t){e.strokeStyle=t.strokeColor,e.lineWidth=t.strokeSize,e.fillStyle=t.fontColor,e.font=`${t.fontStyle} ${t.fontSize}px ${t.fontFamily}`}function ju(e){const t=[],n=[];for(let r=0;r&lt;3;r++){const o=$r().domain([e[2*r],e[2*r+1]]);t[r]=o.ticks(5);const a=o.tickFormat(5);n[r]=t[r].map(a)}return{ticks:t,tickStrings:n}}const Xu=sn.newInstance(((e,t,n={renderable:null})=&gt;{Object.assign(t,{},n),sn.obj(e,t),t.tmPolyData=Ru.newInstance(),t.tmMapper=Ql.newInstance(),t.tmMapper.setInputData(t.tmPolyData),t.tmActor=fs.newInstance({parentProp:e}),t.tmActor.setMapper(t.tmMapper),sn.setGet(e,t,[&quot;renderable&quot;]),sn.get(e,t,[&quot;lastSize&quot;,&quot;lastAspectRatio&quot;,&quot;axisTextStyle&quot;,&quot;tickTextStyle&quot;,&quot;tmActor&quot;,&quot;ticks&quot;]),t.forceUpdate=!1,t.lastRedrawTime={},sn.obj(t.lastRedrawTime,{mtime:0}),t.lastRebuildTime={},sn.obj(t.lastRebuildTime,{mtime:0}),t.lastSize=[-1,-1],t.lastTickBounds=[],function(e,t){t.classHierarchy.push(&quot;vtkCubeAxesActorHelper&quot;),e.setRenderable=n=&gt;{t.renderable!==n&amp;&amp;(t.renderable=n,t.tmActor.addTexture(t.renderable.getTmTexture()),t.tmActor.setProperty(n.getProperty()),t.tmActor.setParentProp(n),e.modified())},e.createPolyDataForOneLabel=(e,n,r,o,a,i,s)=&gt;{const l=t.renderable.get_tmAtlas().get(e);if(!l)return;const c=t.renderable.getTextPolyData().getPoints().getData(),u=t.lastSize;ku[0]=c[3*n],ku[1]=c[3*n+1],ku[2]=c[3*n+2],oe(Uu,ku,r),Uu[0]+=.1,oe(Gu,Uu,o),Z(Ku,Gu,ku),Uu[0]-=.1,Uu[1]+=.1,oe(Gu,Uu,o),Z(zu,Gu,ku);for(let e=0;e&lt;3;e++)Ku[e]/=.05*u[0],zu[e]/=.05*u[1];let d=s.ptIdx,p=s.cellIdx;ku[0]=c[3*n],ku[1]=c[3*n+1],ku[2]=c[3*n+2],a[0]&lt;-.5?$(Uu,Ku,a[0]*i-l.width):a[0]&gt;.5?$(Uu,Ku,a[0]*i):$(Uu,Ku,a[0]*i-l.width/2),J(ku,ku,Uu),$(Uu,zu,a[1]*i-l.height/2),J(ku,ku,Uu),s.points[3*d]=ku[0],s.points[3*d+1]=ku[1],s.points[3*d+2]=ku[2],s.tcoords[2*d]=l.tcoords[0],s.tcoords[2*d+1]=l.tcoords[1],d++,$(Uu,Ku,l.width),J(ku,ku,Uu),s.points[3*d]=ku[0],s.points[3*d+1]=ku[1],s.points[3*d+2]=ku[2],s.tcoords[2*d]=l.tcoords[2],s.tcoords[2*d+1]=l.tcoords[3],d++,$(Uu,zu,l.height),J(ku,ku,Uu),s.points[3*d]=ku[0],s.points[3*d+1]=ku[1],s.points[3*d+2]=ku[2],s.tcoords[2*d]=l.tcoords[4],s.tcoords[2*d+1]=l.tcoords[5],d++,$(Uu,Ku,l.width),Z(ku,ku,Uu),s.points[3*d]=ku[0],s.points[3*d+1]=ku[1],s.points[3*d+2]=ku[2],s.tcoords[2*d]=l.tcoords[6],s.tcoords[2*d+1]=l.tcoords[7],d++,s.polys[4*p]=3,s.polys[4*p+1]=d-4,s.polys[4*p+2]=d-3,s.polys[4*p+3]=d-2,p++,s.polys[4*p]=3,s.polys[4*p+1]=d-4,s.polys[4*p+2]=d-2,s.polys[4*p+3]=d-1,s.ptIdx+=4,s.cellIdx+=2},e.updateTexturePolyData=()=&gt;{const n=t.camera.getCompositeProjectionMatrix(t.lastAspectRatio,-1,1);y(n,n);const r=t.renderable.getTextValues().length,o=4*r,a=2*r,i=new Float64Array(3*o),s=new Uint16Array(4*a),l=new Float32Array(2*o);b(Wu,n);const c={ptIdx:0,cellIdx:0,polys:s,points:i,tcoords:l};let u=0,d=0,p=0;const f=t.renderable.getTextPolyData().getPoints().getData(),g=t.renderable.getTextValues();for(;u&lt;f.length/3;){ku[0]=f[3*u],ku[1]=f[3*u+1],ku[2]=f[3*u+2],oe(Uu,ku,n),ku[0]=f[3*u+3],ku[1]=f[3*u+4],ku[2]=f[3*u+5],oe(_u,ku,n),Z(Uu,Uu,_u);const r=[Uu[0],Uu[1]];Zo(r),e.createPolyDataForOneLabel(g[d],u,n,Wu,r,t.renderable.getAxisTitlePixelOffset(),c),u+=2,d++;for(let o=0;o&lt;t.renderable.getTickCounts()[p];o++)e.createPolyDataForOneLabel(g[d],u,n,Wu,r,t.renderable.getTickLabelPixelOffset(),c),u++,d++;p++}const m=Is.newInstance({numberOfComponents:2,values:l,name:&quot;TextureCoordinates&quot;});t.tmPolyData.getPointData().setTCoords(m),t.tmPolyData.getPoints().setData(i,3),t.tmPolyData.getPoints().modified(),t.tmPolyData.getPolys().setData(s,1),t.tmPolyData.getPolys().modified(),t.tmPolyData.modified()},e.updateAPISpecificData=(n,r,o)=&gt;{t.lastSize[0]===n[0]&amp;&amp;t.lastSize[1]===n[1]||(t.lastSize[0]=n[0],t.lastSize[1]=n[1],t.lastAspectRatio=n[0]/n[1],t.forceUpdate=!0),t.camera=r,e.updateTexturePolyData()}}(e,t)}),&quot;vtkCubeAxesActorHelper&quot;);function qu(e,t,n={}){fs.extend(e,t,function(e,t,n){return{boundsScaleFactor:1.3,camera:null,dataBounds:[...Hi.INIT_BOUNDS],faceVisibilityAngle:8,gridLines:!0,axisLabels:null,axisTitlePixelOffset:35,tickLabelPixelOffset:12,generateTicks:ju,...n,axisTextStyle:{fontColor:&quot;white&quot;,fontStyle:&quot;normal&quot;,fontSize:18,fontFamily:&quot;serif&quot;,...n?.axisTextStyle},tickTextStyle:{fontColor:&quot;white&quot;,fontStyle:&quot;normal&quot;,fontSize:14,fontFamily:&quot;serif&quot;,...n?.tickTextStyle}}}(0,0,n)),t.lastFacesToDraw=[!1,!1,!1,!1,!1,!1],t.axisLabels=[&quot;X-Axis&quot;,&quot;Y-Axis&quot;,&quot;Z-Axis&quot;],t.tickCounts=[],t.textValues=[],t.lastTickBounds=[],t.tmCanvas=document.createElement(&quot;canvas&quot;),t.tmContext=t.tmCanvas.getContext(&quot;2d&quot;),t._tmAtlas=new Map,t.tmTexture=Eu.newInstance({resizable:!0}),t.tmTexture.setInterpolate(!1),e.getProperty().setDiffuse(0),e.getProperty().setAmbient(1),t.gridMapper=Ql.newInstance(),t.polyData=Ru.newInstance(),t.gridMapper.setInputData(t.polyData),t.gridActor=fs.newInstance(),t.gridActor.setMapper(t.gridMapper),t.gridActor.setProperty(e.getProperty()),t.gridActor.setParentProp(e),t.textPolyData=Ru.newInstance(),sn.setGet(e,t,[&quot;axisTitlePixelOffset&quot;,&quot;boundsScaleFactor&quot;,&quot;faceVisibilityAngle&quot;,&quot;gridLines&quot;,&quot;tickLabelPixelOffset&quot;,&quot;generateTicks&quot;]),sn.setGetArray(e,t,[&quot;dataBounds&quot;],6),sn.setGetArray(e,t,[&quot;axisLabels&quot;],3),sn.get(e,t,[&quot;axisTextStyle&quot;,&quot;tickTextStyle&quot;,&quot;camera&quot;,&quot;tmTexture&quot;,&quot;textValues&quot;,&quot;textPolyData&quot;,&quot;tickCounts&quot;,&quot;gridActor&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkCubeAxesActor&quot;),e.setCamera=n=&gt;{t.camera!==n&amp;&amp;(t.cameraModifiedSub&amp;&amp;(t.cameraModifiedSub.unsubscribe(),t.cameraModifiedSub=null),t.camera=n,n&amp;&amp;(t.cameraModifiedSub=n.onModified(e.update)),e.update(),e.modified())},e.computeFacesToDraw=()=&gt;{const e=t.camera.getViewMatrix();y(e,e);let n=!1;const r=Hi.getDiagonalLength(t.dataBounds),o=Math.sin(t.faceVisibilityAngle*Math.PI/180);for(let a=0;a&lt;6;a++){let i=!1;const s=Math.floor(a/2),l=(s+1)%3,c=(s+2)%3;t.dataBounds[2*l]!==t.dataBounds[2*l+1]&amp;&amp;t.dataBounds[2*c]!==t.dataBounds[2*c+1]&amp;&amp;(ku[s]=t.dataBounds[a]-.1*r*Vu[a][s],ku[l]=.5*(t.dataBounds[2*l]+t.dataBounds[2*l+1]),ku[c]=.5*(t.dataBounds[2*c]+t.dataBounds[2*c+1]),oe(Uu,ku,e),ku[s]=t.dataBounds[a],oe(_u,ku,e),Z(Uu,_u,Uu),te(Uu,Uu),i=Uu[2]&gt;o,t.camera.getParallelProjection()||(te(_u,_u),i=ne(_u,Uu)&gt;o)),i!==t.lastFacesToDraw[a]&amp;&amp;(t.lastFacesToDraw[a]=i,n=!0)}return n},e.updatePolyData=(e,n,r)=&gt;{let o=0,a=0;o+=8;let i=0;for(let e=0;e&lt;12;e++)n[e]&gt;0&amp;&amp;i++;if(a+=i,t.gridLines)for(let t=0;t&lt;6;t++)e[t]&amp;&amp;(o+=2*r[Nu[t][0]].length+2*r[Nu[t][1]].length,a+=r[Nu[t][0]].length+r[Nu[t][1]].length);const s=new Float64Array(3*o),l=new Uint32Array(3*a);let c=0,u=0;for(let e=0;e&lt;2;e++)for(let n=0;n&lt;2;n++)for(let r=0;r&lt;2;r++)s[3*c]=t.dataBounds[r],s[3*c+1]=t.dataBounds[2+n],s[3*c+2]=t.dataBounds[4+e],c++;for(let e=0;e&lt;12;e++)n[e]&gt;0&amp;&amp;(l[3*u]=2,l[3*u+1]=Bu[e][0],l[3*u+2]=Bu[e][1],u++);if(t.gridLines)for(let n=0;n&lt;6;n++)if(e[n]){const e=Math.floor(n/2);let o=r[Nu[n][0]];for(let r=0;r&lt;o.length;r++)s[3*c+e]=t.dataBounds[n],s[3*c+Nu[n][0]]=o[r],s[3*c+Nu[n][1]]=t.dataBounds[2*Nu[n][1]],c++,s[3*c+e]=t.dataBounds[n],s[3*c+Nu[n][0]]=o[r],s[3*c+Nu[n][1]]=t.dataBounds[2*Nu[n][1]+1],c++,l[3*u]=2,l[3*u+1]=c-2,l[3*u+2]=c-1,u++;o=r[Nu[n][1]];for(let r=0;r&lt;o.length;r++)s[3*c+e]=t.dataBounds[n],s[3*c+Nu[n][1]]=o[r],s[3*c+Nu[n][0]]=t.dataBounds[2*Nu[n][0]],c++,s[3*c+e]=t.dataBounds[n],s[3*c+Nu[n][1]]=o[r],s[3*c+Nu[n][0]]=t.dataBounds[2*Nu[n][0]+1],c++,l[3*u]=2,l[3*u+1]=c-2,l[3*u+2]=c-1,u++}t.polyData.getPoints().setData(s,3),t.polyData.getPoints().modified(),t.polyData.getLines().setData(l,1),t.polyData.getLines().modified(),t.polyData.modified()},e.updateTextData=(e,n,r,o)=&gt;{let a=0;for(let e=0;e&lt;12;e++)1===n[e]&amp;&amp;(a+=2,a+=r[Fu[e]].length);const i=t.polyData.getPoints().getData(),s=new Float64Array(3*a);let l=0,c=0,u=0;for(let a=0;a&lt;6;a++)if(e[a])for(let e=0;e&lt;4;e++){const d=Lu[a][e];if(1===n[d]){const e=Fu[d],n=3*Bu[d][0],p=3*Bu[d][1];s[3*l]=.5*(i[n]+i[p]),s[3*l+1]=.5*(i[n+1]+i[p+1]),s[3*l+2]=.5*(i[n+2]+i[p+2]),l++,s[3*l+Math.floor(a/2)]=t.dataBounds[a],s[3*l+Nu[a][0]]=.5*(t.dataBounds[2*Nu[a][0]]+t.dataBounds[2*Nu[a][0]+1]),s[3*l+Nu[a][1]]=.5*(t.dataBounds[2*Nu[a][1]]+t.dataBounds[2*Nu[a][1]+1]),l++,t.textValues[c]=t.axisLabels[e],c++;const f=(e+1)%3,g=(e+2)%3,m=r[e],h=o[e];t.tickCounts[u]=m.length;for(let r=0;r&lt;m.length;r++)s[3*l+e]=m[r],s[3*l+f]=i[n+f],s[3*l+g]=i[n+g],l++,t.textValues[c]=h[r],c++;u++}}t.textPolyData.getPoints().setData(s,3),t.textPolyData.modified()},e.update=()=&gt;{if(!t.camera)return;const n=e.computeFacesToDraw(),r=t.lastFacesToDraw;let o=!1;for(let e=0;e&lt;6;e++)t.dataBounds[e]!==t.lastTickBounds[e]&amp;&amp;(o=!0,t.lastTickBounds[e]=t.dataBounds[e]);if(n||o||t.forceUpdate){const n=new Array(12).fill(0);for(let e=0;e&lt;6;e++)if(r[e])for(let t=0;t&lt;4;t++)n[Lu[e][t]]++;const a=t.generateTicks(t.dataBounds);e.updatePolyData(r,n,a.ticks),e.updateTextData(r,n,a.ticks,a.tickStrings),(o||t.forceUpdate)&amp;&amp;e.updateTextureAtlas(a.tickStrings)}t.forceUpdate=!1},e.updateTextureAtlas=e=&gt;{t.tmContext.textBaseline=&quot;bottom&quot;,t.tmContext.textAlign=&quot;left&quot;,t._tmAtlas.clear();let n=0,r=1;for(let o=0;o&lt;3;o++){if(!t._tmAtlas.has(t.axisLabels[o])){Hu(t.tmContext,t.axisTextStyle);const e=t.tmContext.measureText(t.axisLabels[o]),a={height:e.actualBoundingBoxAscent+2,startingHeight:r,width:e.width+2,textStyle:t.axisTextStyle};t._tmAtlas.set(t.axisLabels[o],a),r+=a.height,n&lt;a.width&amp;&amp;(n=a.width)}Hu(t.tmContext,t.tickTextStyle);for(let a=0;a&lt;e[o].length;a++)if(!t._tmAtlas.has(e[o][a])){const i=t.tmContext.measureText(e[o][a]),s={height:i.actualBoundingBoxAscent+2,startingHeight:r,width:i.width+2,textStyle:t.tickTextStyle};t._tmAtlas.set(e[o][a],s),r+=s.height,n&lt;s.width&amp;&amp;(n=s.width)}}n=Bo(n),r=Bo(r),t._tmAtlas.forEach((e=&gt;{e.tcoords=[0,(r-e.startingHeight-e.height)/r,e.width/n,(r-e.startingHeight-e.height)/r,e.width/n,(r-e.startingHeight)/r,0,(r-e.startingHeight)/r]})),t.tmCanvas.width=n,t.tmCanvas.height=r,t.tmContext.textBaseline=&quot;bottom&quot;,t.tmContext.textAlign=&quot;left&quot;,t.tmContext.clearRect(0,0,n,r),t._tmAtlas.forEach(((e,n)=&gt;{Hu(t.tmContext,e.textStyle),t.tmContext.fillText(n,1,e.startingHeight+e.height-1)})),t.tmTexture.setCanvas(t.tmCanvas),t.tmTexture.modified()},e.onModified((()=&gt;{t.forceUpdate=!0,e.update()})),e.setTickTextStyle=n=&gt;{t.tickTextStyle={...t.tickTextStyle,...n},e.modified()},e.setAxisTextStyle=n=&gt;{t.axisTextStyle={...t.axisTextStyle,...n},e.modified()},e.get_tmAtlas=()=&gt;t._tmAtlas,e.computeBounds=()=&gt;{e.update(),Hi.setBounds(t.bounds,t.gridActor.getBounds()),Hi.scaleAboutCenter(t.bounds,t.boundsScaleFactor,t.boundsScaleFactor,t.boundsScaleFactor)};const n=e.setProperty;e.setProperty=e=&gt;{const r=n(e);return t.gridActor.setProperty(e),r}}(e,t)}var Yu={newInstance:sn.newInstance(qu,&quot;vtkCubeAxesActor&quot;),extend:qu,newCubeAxesActorHelper:Xu,defaultGenerateTicks:ju};const Ju={};vn(&quot;vtkCubeAxesActor&quot;,Xt((function(e,t,n={}){Object.assign(t,Ju,n),pn.extend(e,t,n),t.CubeAxesActorHelper=Yu.newCubeAxesActorHelper(),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLCubeAxesActor&quot;),e.buildPass=n=&gt;{n&amp;&amp;(t._openGLRenderer=e.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;),t._openGLRenderWindow=t._openGLRenderer.getParent(),t.CubeAxesActorHelper.getRenderable()||t.CubeAxesActorHelper.setRenderable(t.renderable),e.prepareNodes(),e.addMissingNode(t.CubeAxesActorHelper.getTmActor()),e.addMissingNode(t.renderable.getGridActor()),e.removeUnusedNodes())},e.opaquePass=(e,n)=&gt;{if(e){const e=t._openGLRenderer?t._openGLRenderer.getRenderable().getActiveCamera():null,n=t._openGLRenderer.getTiledSizeAndOrigin();t.CubeAxesActorHelper.updateAPISpecificData([n.usize,n.vsize],e,t._openGLRenderWindow.getRenderable())}}}(e,t)}),&quot;vtkOpenGLCubeAxesActor&quot;));const Zu={ARRAY_BUFFER:0,ELEMENT_ARRAY_BUFFER:1,TEXTURE_BUFFER:2};var Qu={ObjectType:Zu};const{ObjectType:$u}=Qu;const ed={objectType:$u.ARRAY_BUFFER,context:null,allocatedGPUMemoryInBytes:0};function td(e,t,n={}){Object.assign(t,ed,n),sn.obj(e,t),sn.get(e,t,[&quot;_openGLRenderWindow&quot;,&quot;allocatedGPUMemoryInBytes&quot;]),sn.moveToProtected(e,t,[&quot;openGLRenderWindow&quot;]),function(e,t){function n(e){switch(e){case $u.ELEMENT_ARRAY_BUFFER:return t.context.ELEMENT_ARRAY_BUFFER;case $u.TEXTURE_BUFFER:if(&quot;TEXTURE_BUFFER&quot;in t.context)return t.context.TEXTURE_BUFFER;case $u.ARRAY_BUFFER:default:return t.context.ARRAY_BUFFER}}t.classHierarchy.push(&quot;vtkOpenGLBufferObject&quot;);let r=null,o=null,a=!0,i=&quot;&quot;;e.getType=()=&gt;r,e.setType=e=&gt;{r=e},e.getHandle=()=&gt;o,e.isReady=()=&gt;!1===a,e.generateBuffer=e=&gt;{const a=n(e);return null===o&amp;&amp;(o=t.context.createBuffer(),r=e),n(r)===a},e.upload=(s,l)=&gt;e.generateBuffer(l)?(t.context.bindBuffer(n(r),o),t.context.bufferData(n(r),s,t.context.STATIC_DRAW),t.allocatedGPUMemoryInBytes=s.length*s.BYTES_PER_ELEMENT,a=!1,!0):(i=&quot;Trying to upload array buffer to incompatible buffer.&quot;,!1),e.bind=()=&gt;!!o&amp;&amp;(t.context.bindBuffer(n(r),o),!0),e.release=()=&gt;!!o&amp;&amp;(t.context.bindBuffer(n(r),null),!0),e.releaseGraphicsResources=()=&gt;{null!==o&amp;&amp;(t.context.bindBuffer(n(r),null),t.context.deleteBuffer(o),o=null,t.allocatedGPUMemoryInBytes=0)},e.setOpenGLRenderWindow=n=&gt;{t._openGLRenderWindow!==n&amp;&amp;(e.releaseGraphicsResources(),t._openGLRenderWindow=n,t.context=null,n&amp;&amp;(t.context=t._openGLRenderWindow.getContext()))},e.getError=()=&gt;i}(e,t)}var nd={newInstance:sn.newInstance(td),extend:td,...Qu};function rd(e){let t=0,n=0;for(let r=0;r&lt;3;++r){const o=e.getRange(r),a=o[1]-o[0];t+=a*a;const i=.5*(o[1]+o[0]);n+=i*i}const r=t&gt;0&amp;&amp;(Math.abs(n)/t&gt;1e6||Math.abs(Math.log10(t))&gt;3||0===t&amp;&amp;n&gt;1e6);if(r){const t=new Float64Array(3),n=new Float64Array(3);for(let r=0;r&lt;3;++r){const o=e.getRange(r),a=o[1]-o[0];t[r]=.5*(o[1]+o[0]),n[r]=a&gt;0?1/a:1}return{useShiftAndScale:r,coordShift:t,coordScale:n}}return{useShiftAndScale:r,coordShift:new Float32Array([0,0,0]),coordScale:new Float32Array([1,1,1])}}function od(e,t){const n=new Float64Array(3);ee(n,t);const r=new Float64Array(16);return B(r,pe(),e,n),r}const{vtkErrorMacro:ad}=sn;function id(e,t){t.classHierarchy.push(&quot;vtkOpenGLCellArrayBufferObject&quot;),e.setType(Zu.ARRAY_BUFFER),e.createVBO=(n,r,o,a,i=null)=&gt;{if(!n.getData()||!n.getData().length)return t.elementCount=0,0;t.blockSize=3,t.vertexOffset=0,t.normalOffset=0,t.tCoordOffset=0,t.tCoordComponents=0,t.colorComponents=0,t.colorOffset=0,t.customData=[];const s=a.points.getData();let l=null,c=null,u=null;const d=a.colors?a.colors.getNumberOfComponents():0,p=a.tcoords?a.tcoords.getNumberOfComponents():0;a.normals&amp;&amp;(t.normalOffset=4*t.blockSize,t.blockSize+=3,l=a.normals.getData()),a.customAttributes&amp;&amp;a.customAttributes.forEach((e=&gt;{e&amp;&amp;(t.customData.push({data:e.getData(),offset:4*t.blockSize,components:e.getNumberOfComponents(),name:e.getName()}),t.blockSize+=e.getNumberOfComponents())})),a.tcoords&amp;&amp;(t.tCoordOffset=4*t.blockSize,t.tCoordComponents=p,t.blockSize+=p,c=a.tcoords.getData()),a.colors?(t.colorComponents=a.colors.getNumberOfComponents(),t.colorOffset=0,u=a.colors.getData(),t.colorBO||(t.colorBO=nd.newInstance()),t.colorBO.setOpenGLRenderWindow(t._openGLRenderWindow)):t.colorBO=null,t.stride=4*t.blockSize;let f,g=0,m=0,h=0,v=0,T=0,x=0;const y={anythingToPoints(e,t,n,r){for(let o=0;o&lt;e;++o)f(t[n+o],r)},linesToWireframe(e,t,n,r){for(let o=0;o&lt;e-1;++o)f(t[n+o],r),f(t[n+o+1],r)},polysToWireframe(e,t,n,r){if(e&gt;2)for(let o=0;o&lt;e;++o)f(t[n+o],r),f(t[n+(o+1)%e],r)},stripsToWireframe(e,t,n,r){if(e&gt;2){for(let o=0;o&lt;e-1;++o)f(t[n+o],r),f(t[n+o+1],r);for(let o=0;o&lt;e-2;o++)f(t[n+o],r),f(t[n+o+2],r)}},polysToSurface(e,t,n,r){for(let o=0;o&lt;e-2;o++)f(t[n+0],r),f(t[n+o+1],r),f(t[n+o+2],r)},stripsToSurface(e,t,n,r){for(let o=0;o&lt;e-2;o++)f(t[n+o],r),f(t[n+o+1+o%2],r),f(t[n+o+1+(o+1)%2],r)}},b={anythingToPoints:(e,t)=&gt;e,linesToWireframe:(e,t)=&gt;e&gt;1?2*(e-1):0,polysToWireframe:(e,t)=&gt;e&gt;2?2*e:0,stripsToWireframe:(e,t)=&gt;e&gt;2?4*e-6:0,polysToSurface:(e,t)=&gt;e&gt;2?3*(e-2):0,stripsToSurface:(e,t,n)=&gt;e&gt;2?3*(e-2):0};let A=null,C=null;o===rs.POINTS||&quot;verts&quot;===r?(A=y.anythingToPoints,C=b.anythingToPoints):o===rs.WIREFRAME||&quot;lines&quot;===r?(A=y[`${r}ToWireframe`],C=b[`${r}ToWireframe`]):(A=y[`${r}ToSurface`],C=b[`${r}ToSurface`]);const S=n.getData(),P=S.length;let w=0;for(let e=0;e&lt;P;)w+=C(S[e],S),e+=S[e]+1;let I=null;const O=new Float32Array(w*t.blockSize);u&amp;&amp;(I=new Uint8Array(4*w));let R=0,M=0;const{useShiftAndScale:D,coordShift:E,coordScale:V}=rd(a.points);if(D?e.setCoordShiftAndScale(E,V):!0===t.coordShiftAndScaleEnabled&amp;&amp;e.setCoordShiftAndScale(null,null),i)if(i.points||i.cells){const e=new Int32Array(w+i.points.length);e.set(i.points),i.points=e;const t=new Int32Array(w+i.cells.length);t.set(i.cells),i.cells=t}else i.points=new Int32Array(w),i.cells=new Int32Array(w);let L=a.vertexOffset;f=function(e,n){if(i&amp;&amp;(i.points[L]=e,i.cells[L]=x+a.cellOffset),++L,g=3*e,t.coordShiftAndScaleEnabled?(O[R++]=(s[g++]-t.coordShift[0])*t.coordScale[0],O[R++]=(s[g++]-t.coordShift[1])*t.coordScale[1],O[R++]=(s[g++]-t.coordShift[2])*t.coordScale[2]):(O[R++]=s[g++],O[R++]=s[g++],O[R++]=s[g++]),null!==l&amp;&amp;(m=a.haveCellNormals?3*(x+a.cellOffset):3*e,O[R++]=l[m++],O[R++]=l[m++],O[R++]=l[m++]),t.customData.forEach((t=&gt;{T=e*t.components;for(let e=0;e&lt;t.components;++e)O[R++]=t.data[T++]})),null!==c){h=a.useTCoordsPerCell?n*p:e*p;for(let e=0;e&lt;p;++e)O[R++]=c[h++]}null!==u&amp;&amp;(v=a.haveCellScalars?(x+a.cellOffset)*d:e*d,I[M++]=u[v++],I[M++]=u[v++],I[M++]=u[v++],I[M++]=4===d?u[v++]:255)};for(let e=0;e&lt;P;e+=S[e]+1,x++)A(S[e],S,e+1,x+a.cellOffset);return t.elementCount=w,e.upload(O,Zu.ARRAY_BUFFER),t.colorBO&amp;&amp;(t.colorBOStride=4,t.colorBO.upload(I,Zu.ARRAY_BUFFER)),x},e.setCoordShiftAndScale=(e,n)=&gt;{null===e||e.constructor===Float64Array&amp;&amp;3===e.length?null===n||n.constructor===Float64Array&amp;&amp;3===n.length?(null!==t.coordShift&amp;&amp;null!==e&amp;&amp;se(e,t.coordShift)||(t.coordShift=e),null!==t.coordScale&amp;&amp;null!==n&amp;&amp;se(n,t.coordScale)||(t.coordScale=n),t.coordShiftAndScaleEnabled=function(e,t){return null!==e&amp;&amp;null!==t&amp;&amp;!(ie(e,[0,0,0])&amp;&amp;ie(t,[1,1,1]))}(t.coordShift,t.coordScale),t.coordShiftAndScaleEnabled?t.inverseShiftAndScaleMatrix=od(t.coordShift,t.coordScale):t.inverseShiftAndScaleMatrix=null):ad(&quot;Wrong type for coordScale, expected vec3 or null&quot;):ad(&quot;Wrong type for coordShift, expected vec3 or null&quot;)}}const sd={elementCount:0,stride:0,colorBOStride:0,vertexOffset:0,normalOffset:0,tCoordOffset:0,tCoordComponents:0,colorOffset:0,colorComponents:0,tcoordBO:null,customData:[],coordShift:null,coordScale:null,coordShiftAndScaleEnabled:!1,inverseShiftAndScaleMatrix:null};function ld(e,t,n={}){Object.assign(t,sd,n),nd.extend(e,t,n),sn.setGet(e,t,[&quot;colorBO&quot;,&quot;elementCount&quot;,&quot;stride&quot;,&quot;colorBOStride&quot;,&quot;vertexOffset&quot;,&quot;normalOffset&quot;,&quot;tCoordOffset&quot;,&quot;tCoordComponents&quot;,&quot;colorOffset&quot;,&quot;colorComponents&quot;,&quot;customData&quot;]),sn.get(e,t,[&quot;coordShift&quot;,&quot;coordScale&quot;,&quot;coordShiftAndScaleEnabled&quot;,&quot;inverseShiftAndScaleMatrix&quot;]),id(e,t)}var cd={newInstance:sn.newInstance(ld),extend:ld};const{vtkErrorMacro:ud}=sn;const dd={shaderType:&quot;Unknown&quot;,source:&quot;&quot;,error:&quot;&quot;,handle:0,dirty:!1,context:null};function pd(e,t,n={}){Object.assign(t,dd,n),sn.obj(e,t),sn.setGet(e,t,[&quot;shaderType&quot;,&quot;source&quot;,&quot;error&quot;,&quot;handle&quot;,&quot;context&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkShader&quot;),e.compile=()=&gt;{let e=t.context.VERTEX_SHADER;if(!t.source||!t.source.length||&quot;Unknown&quot;===t.shaderType)return!1;if(0!==t.handle&amp;&amp;(t.context.deleteShader(t.handle),t.handle=0),e=&quot;Fragment&quot;===t.shaderType?t.context.FRAGMENT_SHADER:t.context.VERTEX_SHADER,t.handle=t.context.createShader(e),t.context.shaderSource(t.handle,t.source),t.context.compileShader(t.handle),!t.context.getShaderParameter(t.handle,t.context.COMPILE_STATUS)){const e=t.context.getShaderInfoLog(t.handle);return ud(`Error compiling shader &#x27;${t.source}&#x27;: ${e}`),t.context.deleteShader(t.handle),t.handle=0,!1}return!0},e.cleanup=()=&gt;{&quot;Unknown&quot;!==t.shaderType&amp;&amp;0!==t.handle&amp;&amp;(t.context.deleteShader(t.handle),t.handle=0,t.dirty=!0)}}(e,t)}var fd={newInstance:sn.newInstance(pd,&quot;vtkShader&quot;),extend:pd};const{vtkErrorMacro:gd}=sn;const md={vertexShaderHandle:0,fragmentShaderHandle:0,geometryShaderHandle:0,vertexShader:null,fragmentShader:null,geometryShader:null,linked:!1,bound:!1,compiled:!1,error:&quot;&quot;,handle:0,numberOfOutputs:0,attributesLocs:null,uniformLocs:null,md5Hash:0,context:null,lastCameraMTime:null};function hd(e,t,n={}){Object.assign(t,md,n),t.attributesLocs={},t.uniformLocs={},t.vertexShader=fd.newInstance(),t.vertexShader.setShaderType(&quot;Vertex&quot;),t.fragmentShader=fd.newInstance(),t.fragmentShader.setShaderType(&quot;Fragment&quot;),t.geometryShader=fd.newInstance(),t.geometryShader.setShaderType(&quot;Geometry&quot;),sn.obj(e,t),sn.get(e,t,[&quot;lastCameraMTime&quot;]),sn.setGet(e,t,[&quot;error&quot;,&quot;handle&quot;,&quot;compiled&quot;,&quot;bound&quot;,&quot;md5Hash&quot;,&quot;vertexShader&quot;,&quot;fragmentShader&quot;,&quot;geometryShader&quot;,&quot;linked&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkShaderProgram&quot;),e.compileShader=()=&gt;t.vertexShader.compile()?t.fragmentShader.compile()?e.attachShader(t.vertexShader)&amp;&amp;e.attachShader(t.fragmentShader)?e.link()?(e.setCompiled(!0),1):(gd(`Links failed: ${t.error}`),0):(gd(t.error),0):(gd(t.fragmentShader.getSource().split(&quot;\\n&quot;).map(((e,t)=&gt;`${t}: ${e}`)).join(&quot;\\n&quot;)),gd(t.fragmentShader.getError()),0):(gd(t.vertexShader.getSource().split(&quot;\\n&quot;).map(((e,t)=&gt;`${t}: ${e}`)).join(&quot;\\n&quot;)),gd(t.vertexShader.getError()),0),e.cleanup=()=&gt;{&quot;Unknown&quot;!==t.shaderType&amp;&amp;0!==t.handle&amp;&amp;(e.release(),0!==t.vertexShaderHandle&amp;&amp;(t.context.detachShader(t.handle,t.vertexShaderHandle),t.vertexShaderHandle=0),0!==t.fragmentShaderHandle&amp;&amp;(t.context.detachShader(t.handle,t.fragmentShaderHandle),t.fragmentShaderHandle=0),t.context.deleteProgram(t.handle),t.handle=0,e.setCompiled(!1))},e.bind=()=&gt;!(!t.linked&amp;&amp;!e.link()||(t.context.useProgram(t.handle),e.setBound(!0),0)),e.isBound=()=&gt;!!t.bound,e.release=()=&gt;{t.context.useProgram(null),e.setBound(!1)},e.setContext=e=&gt;{t.vertexShader.setContext(e),t.fragmentShader.setContext(e),t.geometryShader.setContext(e)},e.link=()=&gt;{if(t.linked)return!0;if(0===t.handle)return t.error=&quot;Program has not been initialized, and/or does not have shaders.&quot;,!1;if(t.uniformLocs={},t.context.linkProgram(t.handle),!t.context.getProgramParameter(t.handle,t.context.LINK_STATUS)){const e=t.context.getProgramInfoLog(t.handle);return gd(`Error linking shader ${e}`),t.handle=0,!1}return e.setLinked(!0),t.attributeLocs={},!0},e.setUniformMatrix=(n,r)=&gt;{const o=e.findUniform(n);if(-1===o)return t.error=`Could not set uniform ${n} . No such uniform.`,!1;const a=new Float32Array(r);return t.context.uniformMatrix4fv(o,!1,a),!0},e.setUniformMatrix3x3=(n,r)=&gt;{const o=e.findUniform(n);if(-1===o)return t.error=`Could not set uniform ${n} . No such uniform.`,!1;const a=new Float32Array(r);return t.context.uniformMatrix3fv(o,!1,a),!0},e.setUniformf=(n,r)=&gt;{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform1f(o,r),!0)},e.setUniformfv=(n,r)=&gt;{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform1fv(o,r),!0)},e.setUniformi=(n,r)=&gt;{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform1i(o,r),!0)},e.setUniformiv=(n,r)=&gt;{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform1iv(o,r),!0)},e.setUniform2f=(n,r,o)=&gt;{const a=e.findUniform(n);if(-1===a)return t.error=`Could not set uniform ${n} . No such uniform.`,!1;if(void 0===o)throw new RangeError(&quot;Invalid number of values for array&quot;);return t.context.uniform2f(a,r,o),!0},e.setUniform2fv=(n,r)=&gt;{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform2fv(o,r),!0)},e.setUniform2i=(n,r,o)=&gt;{const a=e.findUniform(n);if(-1===a)return t.error=`Could not set uniform ${n} . No such uniform.`,!1;if(void 0===o)throw new RangeError(&quot;Invalid number of values for array&quot;);return t.context.uniform2i(a,r,o),!0},e.setUniform2iv=(n,r)=&gt;{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform2iv(o,r),!0)},e.setUniform3f=(n,r,o,a)=&gt;{const i=e.findUniform(n);if(-1===i)return t.error=`Could not set uniform ${n} . No such uniform.`,!1;if(void 0===a)throw new RangeError(&quot;Invalid number of values for array&quot;);return t.context.uniform3f(i,r,o,a),!0},e.setUniform3fArray=(n,r)=&gt;{const o=e.findUniform(n);if(-1===o)return t.error=`Could not set uniform ${n} . No such uniform.`,!1;if(!Array.isArray(r)||3!==r.length)throw new RangeError(&quot;Invalid number of values for array&quot;);return t.context.uniform3f(o,r[0],r[1],r[2]),!0},e.setUniform3fv=(n,r)=&gt;{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform3fv(o,r),!0)},e.setUniform3i=(n,...r)=&gt;{const o=e.findUniform(n);if(-1===o)return t.error=`Could not set uniform ${n} . No such uniform.`,!1;let a=r;if(1===a.length&amp;&amp;Array.isArray(a[0])&amp;&amp;(a=a[0]),3!==a.length)throw new RangeError(&quot;Invalid number of values for array&quot;);return t.context.uniform3i(o,a[0],a[1],a[2]),!0},e.setUniform3iv=(n,r)=&gt;{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform3iv(o,r),!0)},e.setUniform4f=(n,...r)=&gt;{const o=e.findUniform(n);if(-1===o)return t.error=`Could not set uniform ${n} . No such uniform.`,!1;let a=r;if(1===a.length&amp;&amp;Array.isArray(a[0])&amp;&amp;(a=a[0]),4!==a.length)throw new RangeError(&quot;Invalid number of values for array&quot;);return t.context.uniform4f(o,a[0],a[1],a[2],a[3]),!0},e.setUniform4fv=(n,r)=&gt;{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform4fv(o,r),!0)},e.setUniform4i=(n,...r)=&gt;{const o=e.findUniform(n);if(-1===o)return t.error=`Could not set uniform ${n} . No such uniform.`,!1;let a=r;if(1===a.length&amp;&amp;Array.isArray(a[0])&amp;&amp;(a=a[0]),4!==a.length)throw new RangeError(&quot;Invalid number of values for array&quot;);return t.context.uniform4i(o,a[0],a[1],a[2],a[3]),!0},e.setUniform4iv=(n,r)=&gt;{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform4iv(o,r),!0)},e.findUniform=e=&gt;{if(!e||!t.linked)return-1;let n=t.uniformLocs[e];return void 0!==n?n:(n=t.context.getUniformLocation(t.handle,e),null===n?(t.error=`Uniform ${e} not found in current shader program.`,t.uniformLocs[e]=-1,-1):(t.uniformLocs[e]=n,n))},e.isUniformUsed=e=&gt;{if(!e)return!1;let n=t.uniformLocs[e];return void 0!==n?null!==n:t.linked?(n=t.context.getUniformLocation(t.handle,e),t.uniformLocs[e]=n,null!==n):(gd(&quot;attempt to find uniform when the shader program is not linked&quot;),!1)},e.isAttributeUsed=e=&gt;{if(!e)return!1;if(e in t.attributeLocs)return!0;if(!t.linked)return gd(&quot;attempt to find uniform when the shader program is not linked&quot;),!1;const n=t.context.getAttribLocation(t.handle,e);return-1!==n&amp;&amp;(t.attributeLocs[e]=n,!0)},e.attachShader=n=&gt;{if(0===n.getHandle())return t.error=&quot;Shader object was not initialized, cannot attach it.&quot;,!1;if(&quot;Unknown&quot;===n.getShaderType())return t.error=&quot;Shader object is of type Unknown and cannot be used.&quot;,!1;if(0===t.handle){const e=t.context.createProgram();if(0===e)return t.error=&quot;Could not create shader program.&quot;,!1;t.handle=e,t.linked=!1}return&quot;Vertex&quot;===n.getShaderType()&amp;&amp;(0!==t.vertexShaderHandle&amp;&amp;t.context.detachShader(t.handle,t.vertexShaderHandle),t.vertexShaderHandle=n.getHandle()),&quot;Fragment&quot;===n.getShaderType()&amp;&amp;(0!==t.fragmentShaderHandle&amp;&amp;t.context.detachShader(t.handle,t.fragmentShaderHandle),t.fragmentShaderHandle=n.getHandle()),t.context.attachShader(t.handle,n.getHandle()),e.setLinked(!1),!0},e.detachShader=e=&gt;{if(0===e.getHandle())return t.error=&quot;shader object was not initialized, cannot attach it.&quot;,!1;if(&quot;Unknown&quot;===e.getShaderType())return t.error=&quot;Shader object is of type Unknown and cannot be used.&quot;,!1;switch(0===t.handle&amp;&amp;(t.error=&quot;This shader program has not been initialized yet.&quot;),e.getShaderType()){case&quot;Vertex&quot;:return t.vertexShaderHandle!==e.getHandle()?(t.error=&quot;The supplied shader was not attached to this program.&quot;,!1):(t.context.detachShader(t.handle,e.getHandle()),t.vertexShaderHandle=0,t.linked=!1,!0);case&quot;Fragment&quot;:return t.fragmentShaderHandle!==e.getHandle()?(t.error=&quot;The supplied shader was not attached to this program.&quot;,!1):(t.context.detachShader(t.handle,e.getHandle()),t.fragmentShaderHandle=0,t.linked=!1,!0);default:return!1}},e.setContext=e=&gt;{t.context=e,t.vertexShader.setContext(e),t.fragmentShader.setContext(e),t.geometryShader.setContext(e)},e.setLastCameraMTime=e=&gt;{t.lastCameraMTime=e}}(e,t)}var vd={newInstance:sn.newInstance(hd,&quot;vtkShaderProgram&quot;),extend:hd,substitute:function(e,t,n,r){const o=&quot;string&quot;==typeof n?n:n.join(&quot;\\n&quot;),a=!1===r?t:new RegExp(t,&quot;g&quot;),i=e.replace(a,o);return{replace:i!==o,result:i}}};const Td={forceEmulation:!1,handleVAO:0,handleProgram:0,supported:!0,buffers:null,context:null};function xd(e,t,n={}){Object.assign(t,Td,n),t.buffers=[],sn.obj(e,t),sn.get(e,t,[&quot;supported&quot;]),sn.setGet(e,t,[&quot;forceEmulation&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLVertexArrayObject&quot;),e.exposedMethod=()=&gt;{},e.initialize=()=&gt;{t.instancingExtension=null,t._openGLRenderWindow.getWebgl2()||(t.instancingExtension=t.context.getExtension(&quot;ANGLE_instanced_arrays&quot;)),!t.forceEmulation&amp;&amp;t._openGLRenderWindow&amp;&amp;t._openGLRenderWindow.getWebgl2()?(t.extension=null,t.supported=!0,t.handleVAO=t.context.createVertexArray()):(t.extension=t.context.getExtension(&quot;OES_vertex_array_object&quot;),!t.forceEmulation&amp;&amp;t.extension?(t.supported=!0,t.handleVAO=t.extension.createVertexArrayOES()):t.supported=!1)},e.isReady=()=&gt;0!==t.handleVAO||!1===t.supported,e.bind=()=&gt;{if(e.isReady()||e.initialize(),e.isReady()&amp;&amp;t.supported)t.extension?t.extension.bindVertexArrayOES(t.handleVAO):t.context.bindVertexArray(t.handleVAO);else if(e.isReady()){const e=t.context;for(let n=0;n&lt;t.buffers.length;++n){const r=t.buffers[n];t.context.bindBuffer(e.ARRAY_BUFFER,r.buffer);for(let n=0;n&lt;r.attributes.length;++n){const o=r.attributes[n],a=o.isMatrix?o.size:1;for(let n=0;n&lt;a;++n)e.enableVertexAttribArray(o.index+n),e.vertexAttribPointer(o.index+n,o.size,o.type,o.normalize,o.stride,o.offset+o.stride*n/o.size),o.divisor&gt;0&amp;&amp;(t.instancingExtension?t.instancingExtension.vertexAttribDivisorANGLE(o.index+n,1):e.vertexAttribDivisor(o.index+n,1))}}}},e.release=()=&gt;{if(e.isReady()&amp;&amp;t.supported)t.extension?t.extension.bindVertexArrayOES(null):t.context.bindVertexArray(null);else if(e.isReady()){const e=t.context;for(let n=0;n&lt;t.buffers.length;++n){const r=t.buffers[n];t.context.bindBuffer(e.ARRAY_BUFFER,r.buffer);for(let n=0;n&lt;r.attributes.length;++n){const o=r.attributes[n],a=o.isMatrix?o.size:1;for(let n=0;n&lt;a;++n)e.enableVertexAttribArray(o.index+n),e.vertexAttribPointer(o.index+n,o.size,o.type,o.normalize,o.stride,o.offset+o.stride*n/o.size),o.divisor&gt;0&amp;&amp;(t.instancingExtension?t.instancingExtension.vertexAttribDivisorANGLE(o.index+n,0):e.vertexAttribDivisor(o.index+n,0)),e.disableVertexAttribArray(o.index+n)}}}},e.shaderProgramChanged=()=&gt;{e.release(),t.handleVAO&amp;&amp;(t.extension?t.extension.deleteVertexArrayOES(t.handleVAO):t.context.deleteVertexArray(t.handleVAO)),t.handleVAO=0,t.handleProgram=0},e.releaseGraphicsResources=()=&gt;{e.shaderProgramChanged(),t.handleVAO&amp;&amp;(t.extension?t.extension.deleteVertexArrayOES(t.handleVAO):t.context.deleteVertexArray(t.handleVAO)),t.handleVAO=0,t.supported=!0,t.handleProgram=0},e.addAttributeArray=(t,n,r,o,a,i,s,l)=&gt;e.addAttributeArrayWithDivisor(t,n,r,o,a,i,s,l,0,!1),e.addAttributeArrayWithDivisor=(n,r,o,a,i,s,l,c,u,d)=&gt;{if(!n)return!1;if(!n.isBound()||0===r.getHandle()||r.getType()!==Zu.ARRAY_BUFFER)return!1;if(0===t.handleProgram&amp;&amp;(t.handleProgram=n.getHandle()),e.isReady()||e.initialize(),!e.isReady()||t.handleProgram!==n.getHandle())return!1;const p=t.context,f={};if(f.name=o,f.index=p.getAttribLocation(t.handleProgram,o),f.offset=a,f.stride=i,f.type=s,f.size=l,f.normalize=c,f.isMatrix=d,f.divisor=u,-1===f.Index)return!1;if(r.bind(),p.enableVertexAttribArray(f.index),p.vertexAttribPointer(f.index,f.size,f.type,f.normalize,f.stride,f.offset),u&gt;0&amp;&amp;(t.instancingExtension?t.instancingExtension.vertexAttribDivisorANGLE(f.index,1):p.vertexAttribDivisor(f.index,1)),f.buffer=r.getHandle(),!t.supported){let e=!1;for(let n=0;n&lt;t.buffers.length;++n){const r=t.buffers[n];if(r.buffer===f.buffer){e=!0;let t=!1;for(let e=0;e&lt;r.attributes.length;++e)r.attributes[e].name===o&amp;&amp;(t=!0,r.attributes[e]=f);t||r.attributes.push(f)}}e||t.buffers.push({buffer:f.buffer,attributes:[f]})}return!0},e.addAttributeMatrixWithDivisor=(n,r,o,a,i,s,l,c,u)=&gt;{const d=e.addAttributeArrayWithDivisor(n,r,o,a,i,s,l,c,u,!0);if(!d)return d;const p=t.context,f=p.getAttribLocation(t.handleProgram,o);for(let e=1;e&lt;l;e++)p.enableVertexAttribArray(f+e),p.vertexAttribPointer(f+e,l,s,c,i,a+i*e/l),u&gt;0&amp;&amp;(t.instancingExtension?t.instancingExtension.vertexAttribDivisorANGLE(f+e,1):p.vertexAttribDivisor(f+e,1));return!0},e.removeAttributeArray=n=&gt;{if(!e.isReady()||0===t.handleProgram)return!1;if(!t.supported)for(let e=0;e&lt;t.buffers.length;++e){const r=t.buffers[e];for(let o=0;o&lt;r.attributes.length;++o)if(r.attributes[o].name===n)return r.attributes.splice(o,1),r.attributes.length||t.buffers.splice(e,1),!0}return!0},e.setOpenGLRenderWindow=n=&gt;{t._openGLRenderWindow!==n&amp;&amp;(e.releaseGraphicsResources(),t._openGLRenderWindow=n,t.context=null,n&amp;&amp;(t.context=t._openGLRenderWindow.getContext()))}}(e,t)}var yd={newInstance:sn.newInstance(xd,&quot;vtkOpenGLVertexArrayObject&quot;),extend:xd};const bd={Start:0,Points:0,Lines:1,Tris:2,TriStrips:3,TrisEdges:4,TriStripsEdges:5,End:6};const Ad={context:null,program:null,shaderSourceTime:null,VAO:null,attributeUpdateTime:null,CABO:null,primitiveType:0,pointPicking:!1};function Cd(e,t,n={}){Object.assign(t,Ad,n),sn.obj(e,t),t.shaderSourceTime={},sn.obj(t.shaderSourceTime),t.attributeUpdateTime={},sn.obj(t.attributeUpdateTime),sn.setGet(e,t,[&quot;program&quot;,&quot;shaderSourceTime&quot;,&quot;VAO&quot;,&quot;attributeUpdateTime&quot;,&quot;CABO&quot;,&quot;primitiveType&quot;,&quot;pointPicking&quot;]),t.program=vd.newInstance(),t.VAO=yd.newInstance(),t.CABO=cd.newInstance(),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLHelper&quot;),e.setOpenGLRenderWindow=e=&gt;{t.context=e.getContext(),t.program.setContext(t.context),t.VAO.setOpenGLRenderWindow(e),t.CABO.setOpenGLRenderWindow(e)},e.releaseGraphicsResources=e=&gt;{t.VAO.releaseGraphicsResources(),t.CABO.releaseGraphicsResources(),t.CABO.setElementCount(0)},e.drawArrays=(n,r,o,a)=&gt;{if(t.CABO.getElementCount()){const i=e.getOpenGLMode(o),s=e.haveWideLines(n,r),l=t.context,c=l.getParameter(l.DEPTH_WRITEMASK);t.pointPicking&amp;&amp;l.depthMask(!1),i===l.LINES&amp;&amp;s?(e.updateShaders(n,r,a),l.drawArraysInstanced(i,0,t.CABO.getElementCount(),2*Math.ceil(r.getProperty().getLineWidth()))):(l.lineWidth(r.getProperty().getLineWidth()),e.updateShaders(n,r,a),l.drawArrays(i,0,t.CABO.getElementCount()),l.lineWidth(1));const u=(i===l.POINTS?1:0)||(i===l.LINES?2:3);return t.pointPicking&amp;&amp;l.depthMask(c),t.CABO.getElementCount()/u}return 0},e.getOpenGLMode=e=&gt;{if(t.pointPicking)return t.context.POINTS;const n=t.primitiveType;return e===rs.POINTS||n===bd.Points?t.context.POINTS:e===rs.WIREFRAME||n===bd.Lines||n===bd.TrisEdges||n===bd.TriStripsEdges?t.context.LINES:t.context.TRIANGLES},e.haveWideLines=(e,n)=&gt;n.getProperty().getLineWidth()&gt;1&amp;&amp;!(t.CABO.getOpenGLRenderWindow()&amp;&amp;t.CABO.getOpenGLRenderWindow().getHardwareMaximumLineWidth()&gt;=n.getProperty().getLineWidth()),e.getNeedToRebuildShaders=(t,n,r)=&gt;!!(r.getNeedToRebuildShaders(e,t,n)||0===e.getProgram()||e.getShaderSourceTime().getMTime()&lt;r.getMTime()||e.getShaderSourceTime().getMTime()&lt;n.getMTime()),e.updateShaders=(n,r,o)=&gt;{if(e.getNeedToRebuildShaders(n,r,o)){const a={Vertex:null,Fragment:null,Geometry:null};o.buildShaders(a,n,r);const i=t.CABO.getOpenGLRenderWindow().getShaderCache().readyShaderProgramArray(a.Vertex,a.Fragment,a.Geometry);i!==e.getProgram()&amp;&amp;(e.setProgram(i),e.getVAO().releaseGraphicsResources()),e.getShaderSourceTime().modified()}else t.CABO.getOpenGLRenderWindow().getShaderCache().readyShaderProgram(e.getProgram());e.getVAO().bind(),o.setMapperShaderParameters(e,n,r),o.setPropertyShaderParameters(e,n,r),o.setCameraShaderParameters(e,n,r),o.setLightingShaderParameters(e,n,r),o.invokeShaderCallbacks(e,n,r)},e.setMapperShaderParameters=(n,r,o)=&gt;{if(e.haveWideLines(n,r)){e.getProgram().setUniform2f(&quot;viewportSize&quot;,o.usize,o.vsize);const t=parseFloat(r.getProperty().getLineWidth()),n=t/2;e.getProgram().setUniformf(&quot;lineWidthStepSize&quot;,t/Math.ceil(t)),e.getProgram().setUniformf(&quot;halfLineWidth&quot;,n)}t.primitiveType===bd.Points||r.getProperty().getRepresentation()===rs.POINTS?e.getProgram().setUniformf(&quot;pointSize&quot;,r.getProperty().getPointSize()):t.pointPicking&amp;&amp;e.getProgram().setUniformf(&quot;pointSize&quot;,e.getPointPickingPrimitiveSize())},e.replaceShaderPositionVC=(n,r,o)=&gt;{let a=n.Vertex;a=vd.substitute(a,&quot;//VTK::PositionVC::Dec&quot;,[&quot;//VTK::PositionVC::Dec&quot;,&quot;uniform float pointSize;&quot;]).result,a=vd.substitute(a,&quot;//VTK::PositionVC::Impl&quot;,[&quot;//VTK::PositionVC::Impl&quot;,&quot;  gl_PointSize = pointSize;&quot;],!1).result,e.getOpenGLMode(o.getProperty().getRepresentation())===t.context.LINES&amp;&amp;e.haveWideLines(r,o)&amp;&amp;(a=vd.substitute(a,&quot;//VTK::PositionVC::Dec&quot;,[&quot;//VTK::PositionVC::Dec&quot;,&quot;uniform vec2 viewportSize;&quot;,&quot;uniform float lineWidthStepSize;&quot;,&quot;uniform float halfLineWidth;&quot;]).result,a=vd.substitute(a,&quot;//VTK::PositionVC::Impl&quot;,[&quot;//VTK::PositionVC::Impl&quot;,&quot; if (halfLineWidth &gt; 0.0)&quot;,&quot;   {&quot;,&quot;   float offset = float(gl_InstanceID / 2) * lineWidthStepSize - halfLineWidth;&quot;,&quot;   vec4 tmpPos = gl_Position;&quot;,&quot;   vec3 tmpPos2 = tmpPos.xyz / tmpPos.w;&quot;,&quot;   tmpPos2.x = tmpPos2.x + 2.0 * mod(float(gl_InstanceID), 2.0) * offset / viewportSize[0];&quot;,&quot;   tmpPos2.y = tmpPos2.y + 2.0 * mod(float(gl_InstanceID + 1), 2.0) * offset / viewportSize[1];&quot;,&quot;   gl_Position = vec4(tmpPos2.xyz * tmpPos.w, tmpPos.w);&quot;,&quot;   }&quot;]).result),n.Vertex=a},e.getPointPickingPrimitiveSize=()=&gt;t.primitiveType===bd.Points?2:t.primitiveType===bd.Lines?4:6,e.getAllocatedGPUMemoryInBytes=()=&gt;e.getCABO().getAllocatedGPUMemoryInBytes()}(e,t)}var Sd={newInstance:sn.newInstance(Cd),extend:Cd,primTypes:bd};const Pd={CLAMP_TO_EDGE:0,REPEAT:1,MIRRORED_REPEAT:2},wd={NEAREST:0,LINEAR:1,NEAREST_MIPMAP_NEAREST:2,NEAREST_MIPMAP_LINEAR:3,LINEAR_MIPMAP_NEAREST:4,LINEAR_MIPMAP_LINEAR:5};var Id={Wrap:Pd,Filter:wd};const Od=new Float32Array(1),Rd=new Int32Array(Od.buffer);var Md={fromHalf:function(e){const t=(32768&amp;e)&gt;&gt;15,n=(31744&amp;e)&gt;&gt;10,r=1023&amp;e;return 0===n?(t?-1:1)*2**-14*(r/1024):31===n?r?NaN:1/0*(t?-1:1):(t?-1:1)*2**(n-15)*(1+r/1024)},toHalf:function(e){Od[0]=e;const t=Rd[0];let n=t&gt;&gt;16&amp;32768,r=t&gt;&gt;12&amp;2047;const o=t&gt;&gt;23&amp;255;return o&lt;103?n:o&gt;142?(n|=31744,n|=(255===o?0:1)&amp;&amp;8388607&amp;t,n):o&lt;113?(r|=2048,n|=(r&gt;&gt;114-o)+(r&gt;&gt;113-o&amp;1),n):(n|=o-112&lt;&lt;10|r&gt;&gt;1,n+=1&amp;r,n)}};let Dd;function Ed(){return void 0===Dd&amp;&amp;(Dd=function(){try{const e=4,t=2,n=1,r=new Int16Array([0,32767]),o=[1,1],a=document.createElement(&quot;canvas&quot;);a.width=e,a.height=e;const i=a.getContext(&quot;webgl2&quot;);if(!i)return!1;const s=i.getExtension(&quot;EXT_texture_norm16&quot;);if(!s)return!1;const l=`#version 300 es\\n    void main() {\\n      gl_PointSize = ${e.toFixed(1)};\\n      gl_Position = vec4(0, 0, 0, 1);\\n    }\\n  `,c=&quot;#version 300 es\\n    precision highp float;\\n    precision highp int;\\n    precision highp sampler2D;\\n\\n    uniform sampler2D u_image;\\n\\n    out vec4 color;\\n\\n    void main() {\\n        vec4 intColor = texture(u_image, gl_PointCoord.xy);\\n        color = vec4(vec3(intColor.rrr), 1);\\n    }\\n    &quot;,u=i.createShader(i.VERTEX_SHADER);if(i.shaderSource(u,l),i.compileShader(u),!i.getShaderParameter(u,i.COMPILE_STATUS))return!1;const d=i.createShader(i.FRAGMENT_SHADER);if(i.shaderSource(d,c),i.compileShader(d),!i.getShaderParameter(d,i.COMPILE_STATUS))return!1;const p=i.createProgram();if(i.attachShader(p,u),i.attachShader(p,d),i.linkProgram(p),!i.getProgramParameter(p,i.LINK_STATUS))return!1;const f=i.createTexture();i.bindTexture(i.TEXTURE_2D,f),i.texImage2D(i.TEXTURE_2D,0,s.R16_SNORM_EXT,t,n,0,i.RED,i.SHORT,r),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.LINEAR),i.useProgram(p),i.drawArrays(i.POINTS,0,1);const g=new Uint8Array(4);i.readPixels(o[0],o[1],1,1,i.RGBA,i.UNSIGNED_BYTE,g);const[m,h,v]=g,T=i.getExtension(&quot;WEBGL_lose_context&quot;);return T&amp;&amp;T.loseContext(),m===h&amp;&amp;h===v&amp;&amp;0!==m}catch(e){return!1}}()),Dd}const{Wrap:Vd,Filter:Ld}=Id,{VtkDataTypes:Bd}=Is,{vtkDebugMacro:Fd,vtkErrorMacro:Nd,vtkWarningMacro:kd,requiredParam:Gd}=ln,{toHalf:Ud}=Md;function _d(e,t){function n(){return{internalFormat:t.internalFormat,format:t.format,openGLDataType:t.openGLDataType,width:t.width,height:t.height}}t.classHierarchy.push(&quot;vtkOpenGLTexture&quot;),e.render=(n=null)=&gt;{if(n?t._openGLRenderWindow=n:(t._openGLRenderer=e.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;),t._openGLRenderWindow=t._openGLRenderer.getLastAncestorOfType(&quot;vtkOpenGLRenderWindow&quot;)),t.context=t._openGLRenderWindow.getContext(),t.renderable.getInterpolate()?(t.generateMipmap?e.setMinificationFilter(Ld.LINEAR_MIPMAP_LINEAR):e.setMinificationFilter(Ld.LINEAR),e.setMagnificationFilter(Ld.LINEAR)):(e.setMinificationFilter(Ld.NEAREST),e.setMagnificationFilter(Ld.NEAREST)),t.renderable.getRepeat()&amp;&amp;(e.setWrapR(Vd.REPEAT),e.setWrapS(Vd.REPEAT),e.setWrapT(Vd.REPEAT)),t.renderable.getInputData()&amp;&amp;t.renderable.setImage(null),!t.handle||t.renderable.getMTime()&gt;t.textureBuildTime.getMTime()){if(null!==t.renderable.getImageBitmap()&amp;&amp;(t.renderable.getInterpolate()&amp;&amp;(t.generateMipmap=!0,e.setMinificationFilter(Ld.LINEAR_MIPMAP_LINEAR)),t.renderable.getImageBitmap()&amp;&amp;t.renderable.getImageLoaded()&amp;&amp;(e.create2DFromImageBitmap(t.renderable.getImageBitmap()),e.activate(),e.sendParameters(),t.textureBuildTime.modified())),null!==t.renderable.getImage()&amp;&amp;(t.renderable.getInterpolate()&amp;&amp;(t.generateMipmap=!0,e.setMinificationFilter(Ld.LINEAR_MIPMAP_LINEAR)),t.renderable.getImage()&amp;&amp;t.renderable.getImageLoaded()&amp;&amp;(e.create2DFromImage(t.renderable.getImage()),e.activate(),e.sendParameters(),t.textureBuildTime.modified())),null!==t.renderable.getCanvas()){t.renderable.getInterpolate()&amp;&amp;(t.generateMipmap=!0,e.setMinificationFilter(Ld.LINEAR_MIPMAP_LINEAR));const n=t.renderable.getCanvas();e.create2DFromRaw({width:n.width,height:n.height,numComps:4,dataType:Bd.UNSIGNED_CHAR,data:n,flip:!0}),e.activate(),e.sendParameters(),t.textureBuildTime.modified()}if(null!==t.renderable.getJsImageData()){const n=t.renderable.getJsImageData();t.renderable.getInterpolate()&amp;&amp;(t.generateMipmap=!0,e.setMinificationFilter(Ld.LINEAR_MIPMAP_LINEAR)),e.create2DFromRaw({width:n.width,height:n.height,numComps:4,dataType:Bd.UNSIGNED_CHAR,data:n.data,flip:!0}),e.activate(),e.sendParameters(),t.textureBuildTime.modified()}const n=t.renderable.getInputData(0);if(n&amp;&amp;n.getPointData().getScalars()){const r=n.getExtent(),o=n.getPointData().getScalars(),a=[];for(let e=0;e&lt;t.renderable.getNumberOfInputPorts();++e){const n=t.renderable.getInputData(e),r=n?n.getPointData().getScalars().getData():null;r&amp;&amp;a.push(r)}t.renderable.getInterpolate()&amp;&amp;4===o.getNumberOfComponents()&amp;&amp;(t.generateMipmap=!0,e.setMinificationFilter(Ld.LINEAR_MIPMAP_LINEAR)),a.length%6==0?e.createCubeFromRaw({width:r[1]-r[0]+1,height:r[3]-r[2]+1,numComps:o.getNumberOfComponents(),dataType:o.getDataType(),data:a}):e.create2DFromRaw({width:r[1]-r[0]+1,height:r[3]-r[2]+1,numComps:o.getNumberOfComponents(),dataType:o.getDataType(),data:o.getData()}),e.activate(),e.sendParameters(),t.textureBuildTime.modified()}}t.handle&amp;&amp;e.activate()};const r=()=&gt;{if(t.minificationFilter!==Ld.LINEAR&amp;&amp;t.magnificationFilter!==Ld.LINEAR||Ed())return t.oglNorm16Ext};function o(e){const[t,n,r,o,a,i]=e;return[n-t+1,o-r+1,i-a+1]}function a(e){const[t,n,r]=o(e);return t*n*r}function i(e,n,r=null){const o=new(r||e.constructor)(n.reduce(((e,t)=&gt;e+a(t)),0)),i=[t.width,t.height,t.depth];let s=0;return n.forEach((t=&gt;{!function(e,t,n,r,o){const[a,i,s,l,c,u]=n,[d,p]=t,f=d*p;let g=o;for(let t=c;t&lt;=u;t++){const n=t*f;for(let t=s;t&lt;=l;t++){const o=n+t*d;for(let t=o+a,n=o+i;t&lt;=n;t++,g++)r[g]=e[t]}}}(e,i,t,o,s),s+=a(t)})),o}function s(e){if(t._openGLRenderWindow.getWebgl2())return e;const n=[],r=t.width,o=t.height,a=t.components;if(e&amp;&amp;(!Fo(r)||!Fo(o))){const i=t.context.getExtension(&quot;OES_texture_half_float&quot;),s=Bo(r),l=Bo(o),c=s*l*t.components;for(let u=0;u&lt;e.length;u++)if(null!==e[u]){let d=null;const p=o/l,f=r/s;let g=!1;t.openGLDataType===t.context.FLOAT?d=new Float32Array(c):i&amp;&amp;t.openGLDataType===i.HALF_FLOAT_OES?(d=new Uint16Array(c),g=!0):d=new Uint8Array(c);for(let t=0;t&lt;l;t++){const n=t*s*a,i=t*p;let l=Math.floor(i),c=Math.ceil(i);c&gt;=o&amp;&amp;(c=o-1);const m=i-l,h=1-m;l=l*r*a,c=c*r*a;for(let t=0;t&lt;s;t++){const o=t*a,i=t*f;let s=Math.floor(i),p=Math.ceil(i);p&gt;=r&amp;&amp;(p=r-1);const v=i-s;s*=a,p*=a;for(let t=0;t&lt;a;t++)d[n+o+t]=g?Md.toHalf(Md.fromHalf(e[u][l+s+t])*h*(1-v)+Md.fromHalf(e[u][l+p+t])*h*v+Md.fromHalf(e[u][c+s+t])*m*(1-v)+Md.fromHalf(e[u][c+p+t])*m*v):e[u][l+s+t]*h*(1-v)+e[u][l+p+t]*h*v+e[u][c+s+t]*m*(1-v)+e[u][c+p+t]*m*v}}n.push(d),t.width=s,t.height=l}else n.push(null)}if(0===n.length)for(let t=0;t&lt;e.length;t++)n.push(e[t]);return n}function l(e){if(t._openGLRenderWindow){if(t.resizable||t.renderable?.getResizable())return!1;if(t._openGLRenderWindow.getWebgl2()){return!(t._openGLRenderWindow.getGLInformations().RENDERER.value.match(/WebKit/gi)&amp;&amp;navigator.platform.match(/Mac/gi)&amp;&amp;r())||e!==Bd.UNSIGNED_SHORT&amp;&amp;e!==Bd.SHORT}return!1}return!1}function c(n,r){const o=n.getNumberOfComponents(),a=n.getDataType(),i=n.getData(),s=new Array(o),l=new Array(o);for(let e=0;e&lt;o;++e){const[t,r]=n.getRange(e);s[e]=t,l[e]=r}const c=function(e,t,n){const r=new Array(n),o=new Array(n);for(let a=0;a&lt;n;++a)r[a]=e[a],o[a]=t[a]-e[a]||1;return{scale:o,offset:r}}(s,l,o);return function(n,r,o,a){e.getOpenGLDataType(n);const i=function(e,t){for(let n=0;n&lt;e.length;n++){const r=e[n],o=t[n]+r;if(r&lt;-2048||r&gt;2048||o&lt;-2048||o&gt;2048)return!1}return!0}(r,o)||a;let s=!1;if(t._openGLRenderWindow.getWebgl2())s=t.openGLDataType===t.context.FLOAT&amp;&amp;null===t.context.getExtension(&quot;OES_texture_float_linear&quot;)&amp;&amp;i||t.openGLDataType===t.context.HALF_FLOAT;else{const e=t.context.getExtension(&quot;OES_texture_half_float&quot;);s=e&amp;&amp;t.openGLDataType===e.HALF_FLOAT_OES}t.canUseHalfFloat=s&amp;&amp;i}(a,c.offset,c.scale,r),e.useHalfFloat()||e.getOpenGLDataType(a,!0),{numComps:o,dataType:a,data:i,scaleOffsets:c}}e.destroyTexture=()=&gt;{e.deactivate(),t.context&amp;&amp;t.handle&amp;&amp;t.context.deleteTexture(t.handle),t._prevTexParams=null,t.handle=0,t.numberOfDimensions=0,t.target=0,t.components=0,t.width=0,t.height=0,t.depth=0,e.resetFormatAndType()},e.createTexture=()=&gt;{t.handle||(t.handle=t.context.createTexture(),t.target&amp;&amp;(t.context.bindTexture(t.target,t.handle),t.context.texParameteri(t.target,t.context.TEXTURE_MIN_FILTER,e.getOpenGLFilterMode(t.minificationFilter)),t.context.texParameteri(t.target,t.context.TEXTURE_MAG_FILTER,e.getOpenGLFilterMode(t.magnificationFilter)),t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_S,e.getOpenGLWrapMode(t.wrapS)),t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_T,e.getOpenGLWrapMode(t.wrapT)),t._openGLRenderWindow.getWebgl2()&amp;&amp;t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_R,e.getOpenGLWrapMode(t.wrapR)),t.context.bindTexture(t.target,null)))},e.getTextureUnit=()=&gt;t._openGLRenderWindow?t._openGLRenderWindow.getTextureUnitForTexture(e):-1,e.activate=()=&gt;{t._openGLRenderWindow.activateTexture(e),e.bind()},e.deactivate=()=&gt;{t._openGLRenderWindow&amp;&amp;t._openGLRenderWindow.deactivateTexture(e)},e.releaseGraphicsResources=n=&gt;{n&amp;&amp;t.handle&amp;&amp;(n.activateTexture(e),n.deactivateTexture(e),t.context.deleteTexture(t.handle),t._prevTexParams=null,t.handle=0,t.numberOfDimensions=0,t.target=0,t.internalFormat=0,t.format=0,t.openGLDataType=0,t.components=0,t.width=0,t.height=0,t.depth=0,t.allocatedGPUMemoryInBytes=0),t.shaderProgram&amp;&amp;(t.shaderProgram.releaseGraphicsResources(n),t.shaderProgram=null)},e.bind=()=&gt;{t.context.bindTexture(t.target,t.handle),t.autoParameters&amp;&amp;e.getMTime()&gt;t.sendParametersTime.getMTime()&amp;&amp;e.sendParameters()},e.isBound=()=&gt;{let e=!1;if(t.context&amp;&amp;t.handle){let n=0;if(t.target===t.context.TEXTURE_2D)n=t.context.TEXTURE_BINDING_2D;else kd(&quot;impossible case&quot;);e=t.context.getIntegerv(n)===t.handle}return e},e.sendParameters=()=&gt;{t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_S,e.getOpenGLWrapMode(t.wrapS)),t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_T,e.getOpenGLWrapMode(t.wrapT)),t._openGLRenderWindow.getWebgl2()&amp;&amp;t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_R,e.getOpenGLWrapMode(t.wrapR)),t.context.texParameteri(t.target,t.context.TEXTURE_MIN_FILTER,e.getOpenGLFilterMode(t.minificationFilter)),t.context.texParameteri(t.target,t.context.TEXTURE_MAG_FILTER,e.getOpenGLFilterMode(t.magnificationFilter)),t._openGLRenderWindow.getWebgl2()&amp;&amp;(t.context.texParameteri(t.target,t.context.TEXTURE_BASE_LEVEL,t.baseLevel),t.context.texParameteri(t.target,t.context.TEXTURE_MAX_LEVEL,t.maxLevel)),t.sendParametersTime.modified()},e.getInternalFormat=(n,r)=&gt;(t._forceInternalFormat||(t.internalFormat=e.getDefaultInternalFormat(n,r)),t.internalFormat||Fd(`Unable to find suitable internal format for T=${n} NC= ${r}`),[t.context.R32F,t.context.RG32F,t.context.RGB32F,t.context.RGBA32F].includes(t.internalFormat)&amp;&amp;!t.context.getExtension(&quot;OES_texture_float_linear&quot;)&amp;&amp;kd(&quot;Failed to load OES_texture_float_linear. Texture filtering is not available for *32F internal formats.&quot;),t.internalFormat),e.getDefaultInternalFormat=(n,o)=&gt;{let a=0;return a=t._openGLRenderWindow.getDefaultTextureInternalFormat(n,o,r(),e.useHalfFloat()),a||(a||(Fd(&quot;Unsupported internal texture type!&quot;),Fd(`Unable to find suitable internal format for T=${n} NC= ${o}`)),a)},e.useHalfFloat=()=&gt;t.enableUseHalfFloat&amp;&amp;t.canUseHalfFloat,e.setInternalFormat=n=&gt;{t._forceInternalFormat=!0,n!==t.internalFormat&amp;&amp;(t.internalFormat=n,e.modified())},e.getFormat=(n,r)=&gt;(t.format=e.getDefaultFormat(n,r),t.format),e.getDefaultFormat=(e,n)=&gt;{if(t._openGLRenderWindow.getWebgl2())switch(n){case 1:return t.context.RED;case 2:return t.context.RG;case 3:default:return t.context.RGB;case 4:return t.context.RGBA}else switch(n){case 1:return t.context.LUMINANCE;case 2:return t.context.LUMINANCE_ALPHA;case 3:default:return t.context.RGB;case 4:return t.context.RGBA}},e.resetFormatAndType=()=&gt;{t._prevTexParams=null,t.format=0,t.internalFormat=0,t._forceInternalFormat=!1,t.openGLDataType=0},e.getDefaultDataType=n=&gt;{const o=e.useHalfFloat();if(t._openGLRenderWindow.getWebgl2())switch(n){case Bd.UNSIGNED_CHAR:return t.context.UNSIGNED_BYTE;case r()&amp;&amp;!o&amp;&amp;Bd.SHORT:return t.context.SHORT;case r()&amp;&amp;!o&amp;&amp;Bd.UNSIGNED_SHORT:return t.context.UNSIGNED_SHORT;case o&amp;&amp;Bd.SHORT:case o&amp;&amp;Bd.UNSIGNED_SHORT:return t.context.HALF_FLOAT;case Bd.FLOAT:case Bd.VOID:default:return t.context.FLOAT}switch(n){case Bd.UNSIGNED_CHAR:return t.context.UNSIGNED_BYTE;case Bd.FLOAT:case Bd.VOID:default:if(t.context.getExtension(&quot;OES_texture_float&quot;)&amp;&amp;t.context.getExtension(&quot;OES_texture_float_linear&quot;))return t.context.FLOAT;{const e=t.context.getExtension(&quot;OES_texture_half_float&quot;);if(e&amp;&amp;t.context.getExtension(&quot;OES_texture_half_float_linear&quot;))return e.HALF_FLOAT_OES}return t.context.UNSIGNED_BYTE}},e.getOpenGLDataType=(n,r=!1)=&gt;(t.openGLDataType&amp;&amp;!r||(t.openGLDataType=e.getDefaultDataType(n)),t.openGLDataType),e.getShiftAndScale=()=&gt;{let e=0,n=1;switch(t.openGLDataType){case t.context.BYTE:n=127.5,e=n-128;break;case t.context.UNSIGNED_BYTE:n=255,e=0;break;case t.context.SHORT:n=32767.5,e=n-32768;break;case t.context.UNSIGNED_SHORT:n=65536,e=0;break;case t.context.INT:n=2147483647.5,e=n-2147483648;break;case t.context.UNSIGNED_INT:n=4294967295,e=0;case t.context.FLOAT:}return{shift:e,scale:n}},e.getOpenGLFilterMode=e=&gt;{switch(e){case Ld.NEAREST:return t.context.NEAREST;case Ld.LINEAR:return t.context.LINEAR;case Ld.NEAREST_MIPMAP_NEAREST:return t.context.NEAREST_MIPMAP_NEAREST;case Ld.NEAREST_MIPMAP_LINEAR:return t.context.NEAREST_MIPMAP_LINEAR;case Ld.LINEAR_MIPMAP_NEAREST:return t.context.LINEAR_MIPMAP_NEAREST;case Ld.LINEAR_MIPMAP_LINEAR:return t.context.LINEAR_MIPMAP_LINEAR;default:return t.context.NEAREST}},e.getOpenGLWrapMode=e=&gt;{switch(e){case Vd.CLAMP_TO_EDGE:return t.context.CLAMP_TO_EDGE;case Vd.REPEAT:return t.context.REPEAT;case Vd.MIRRORED_REPEAT:return t.context.MIRRORED_REPEAT;default:return t.context.CLAMP_TO_EDGE}},e.updateArrayDataTypeForGL=(e,n,r=!1,o=[])=&gt;{const a=[];let s=t.width*t.height*t.components;r&amp;&amp;(s*=t.depth);const l=!!o.length;if(e!==Bd.FLOAT&amp;&amp;t.openGLDataType===t.context.FLOAT)for(let e=0;e&lt;n.length;e++)if(n[e])if(l)a.push(i(n[e],o,Float32Array));else{const t=n[e].length&gt;s?n[e].subarray(0,s):n[e];a.push(new Float32Array(t))}else a.push(null);if(e!==Bd.UNSIGNED_CHAR&amp;&amp;t.openGLDataType===t.context.UNSIGNED_BYTE)for(let e=0;e&lt;n.length;e++)if(n[e])if(l)a.push(i(n[e],o,Uint8Array));else{const t=n[e].length&gt;s?n[e].subarray(0,s):n[e];a.push(new Uint8Array(t))}else a.push(null);let c=!1;if(t._openGLRenderWindow.getWebgl2())c=t.openGLDataType===t.context.HALF_FLOAT;else{const e=t.context.getExtension(&quot;OES_texture_half_float&quot;);c=e&amp;&amp;t.openGLDataType===e.HALF_FLOAT_OES}if(c)for(let e=0;e&lt;n.length;e++)if(n[e]){const t=l?i(n[e],o):n[e],r=new Uint16Array(l?t.length:s),c=r.length;for(let e=0;e&lt;c;e++)r[e]=Ud(t[e]);a.push(r)}else a.push(null);if(0===a.length)for(let e=0;e&lt;n.length;e++)a.push(l&amp;&amp;n[e]?i(n[e],o):n[e]);return a},e.create2DFromRaw=({width:n=Gd(&quot;width&quot;),height:o=Gd(&quot;height&quot;),numComps:a=Gd(&quot;numComps&quot;),dataType:i=Gd(&quot;dataType&quot;),data:c=Gd(&quot;data&quot;),flip:u=!1}={})=&gt;{if(e.getOpenGLDataType(i,!0),e.getInternalFormat(i,a),e.getFormat(i,a),!t.internalFormat||!t.format||!t.openGLDataType)return Nd(&quot;Failed to determine texture parameters.&quot;),!1;t.target=t.context.TEXTURE_2D,t.components=a,t.width=n,t.height=o,t.depth=1,t.numberOfDimensions=2,t._openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind();const d=[c],p=s(e.updateArrayDataTypeForGL(i,d));return t.context.pixelStorei(t.context.UNPACK_FLIP_Y_WEBGL,u),t.context.pixelStorei(t.context.UNPACK_ALIGNMENT,1),l(i)?(t.context.texStorage2D(t.target,1,t.internalFormat,t.width,t.height),null!=p[0]&amp;&amp;t.context.texSubImage2D(t.target,0,0,0,t.width,t.height,t.format,t.openGLDataType,p[0])):t.context.texImage2D(t.target,0,t.internalFormat,t.width,t.height,0,t.format,t.openGLDataType,p[0]),t.generateMipmap&amp;&amp;t.context.generateMipmap(t.target),u&amp;&amp;t.context.pixelStorei(t.context.UNPACK_FLIP_Y_WEBGL,!1),t.allocatedGPUMemoryInBytes=t.width*t.height*t.depth*a*t._openGLRenderWindow.getDefaultTextureByteSize(i,r(),e.useHalfFloat()),e.deactivate(),!0},e.createCubeFromRaw=({width:n=Gd(&quot;width&quot;),height:o=Gd(&quot;height&quot;),numComps:a=Gd(&quot;numComps&quot;),dataType:i=Gd(&quot;dataType&quot;),data:c=Gd(&quot;data&quot;)}={})=&gt;{if(e.getOpenGLDataType(i),e.getInternalFormat(i,a),e.getFormat(i,a),!t.internalFormat||!t.format||!t.openGLDataType)return Nd(&quot;Failed to determine texture parameters.&quot;),!1;t.target=t.context.TEXTURE_CUBE_MAP,t.components=a,t.width=n,t.height=o,t.depth=1,t.numberOfDimensions=2,t._openGLRenderWindow.activateTexture(e),t.maxLevel=c.length/6-1,e.createTexture(),e.bind();const u=s(e.updateArrayDataTypeForGL(i,c)),d=[];let p=t.width,f=t.height;for(let e=0;e&lt;u.length;e++){e%6==0&amp;&amp;0!==e&amp;&amp;(p/=2,f/=2),d[e]=Ct(i,f*p*t.components);for(let n=0;n&lt;f;++n){const r=n*p*t.components,o=(f-n-1)*p*t.components;d[e].set(u[e].slice(o,o+p*t.components),r)}}t.context.pixelStorei(t.context.UNPACK_ALIGNMENT,1),l(i)&amp;&amp;t.context.texStorage2D(t.target,6,t.internalFormat,t.width,t.height);for(let e=0;e&lt;6;e++){let n=0,r=t.width,o=t.height;for(;r&gt;=1&amp;&amp;o&gt;=1;){let a=null;n&lt;=t.maxLevel&amp;&amp;(a=d[6*n+e]),l(i)?null!=a&amp;&amp;t.context.texSubImage2D(t.context.TEXTURE_CUBE_MAP_POSITIVE_X+e,n,0,0,r,o,t.format,t.openGLDataType,a):t.context.texImage2D(t.context.TEXTURE_CUBE_MAP_POSITIVE_X+e,n,t.internalFormat,r,o,0,t.format,t.openGLDataType,a),n++,r/=2,o/=2}}return t.allocatedGPUMemoryInBytes=t.width*t.height*t.depth*a*t._openGLRenderWindow.getDefaultTextureByteSize(i,r(),e.useHalfFloat()),e.deactivate(),!0},e.createDepthFromRaw=({width:n=Gd(&quot;width&quot;),height:o=Gd(&quot;height&quot;),dataType:a=Gd(&quot;dataType&quot;),data:i=Gd(&quot;data&quot;)}={})=&gt;(e.getOpenGLDataType(a),t.format=t.context.DEPTH_COMPONENT,t._openGLRenderWindow.getWebgl2()?a===Bd.FLOAT?t.internalFormat=t.context.DEPTH_COMPONENT32F:t.internalFormat=t.context.DEPTH_COMPONENT16:t.internalFormat=t.context.DEPTH_COMPONENT,t.internalFormat&amp;&amp;t.format&amp;&amp;t.openGLDataType?(t.target=t.context.TEXTURE_2D,t.components=1,t.width=n,t.height=o,t.depth=1,t.numberOfDimensions=2,t._openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind(),t.context.pixelStorei(t.context.UNPACK_ALIGNMENT,1),l(a)?(t.context.texStorage2D(t.target,1,t.internalFormat,t.width,t.height),null!=i&amp;&amp;t.context.texSubImage2D(t.target,0,0,0,t.width,t.height,t.format,t.openGLDataType,i)):t.context.texImage2D(t.target,0,t.internalFormat,t.width,t.height,0,t.format,t.openGLDataType,i),t.generateMipmap&amp;&amp;t.context.generateMipmap(t.target),t.allocatedGPUMemoryInBytes=t.width*t.height*t.depth*t.components*t._openGLRenderWindow.getDefaultTextureByteSize(a,r(),e.useHalfFloat()),e.deactivate(),!0):(Nd(&quot;Failed to determine texture parameters.&quot;),!1)),e.create2DFromImage=n=&gt;{if(e.getOpenGLDataType(Bd.UNSIGNED_CHAR),e.getInternalFormat(Bd.UNSIGNED_CHAR,4),e.getFormat(Bd.UNSIGNED_CHAR,4),!t.internalFormat||!t.format||!t.openGLDataType)return Nd(&quot;Failed to determine texture parameters.&quot;),!1;t.target=t.context.TEXTURE_2D,t.components=4,t.depth=1,t.numberOfDimensions=2,t._openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind();const o=!(t._openGLRenderWindow.getWebgl2()||Fo(n.width)&amp;&amp;Fo(n.height));let a=n,i=n.width,s=n.height,c=!0;const u=window.chrome;if(o||u){const e=new OffscreenCanvas(Bo(n.width),Bo(n.height));i=e.width,s=e.height;const t=e.getContext(&quot;2d&quot;);t.translate(0,e.height),t.scale(1,-1),t.drawImage(n,0,0,n.width,n.height,0,0,e.width,e.height),a=e,c=!1}return t.width=i,t.height=s,t.context.pixelStorei(t.context.UNPACK_FLIP_Y_WEBGL,c),t.context.pixelStorei(t.context.UNPACK_ALIGNMENT,1),l(Bd.UNSIGNED_CHAR)?(t.context.texStorage2D(t.target,1,t.internalFormat,t.width,t.height),t.context.texSubImage2D(t.target,0,0,0,t.width,t.height,t.format,t.openGLDataType,a)):t.context.texImage2D(t.target,0,t.internalFormat,t.width,t.height,0,t.format,t.openGLDataType,a),t.generateMipmap&amp;&amp;t.context.generateMipmap(t.target),t.allocatedGPUMemoryInBytes=t.width*t.height*t.depth*t.components*t._openGLRenderWindow.getDefaultTextureByteSize(Bd.UNSIGNED_CHAR,r(),e.useHalfFloat()),e.deactivate(),!0},e.create2DFromImageBitmap=n=&gt;(e.getOpenGLDataType(Bd.UNSIGNED_CHAR),e.getInternalFormat(Bd.UNSIGNED_CHAR,4),e.getFormat(Bd.UNSIGNED_CHAR,4),t.internalFormat&amp;&amp;t.format&amp;&amp;t.openGLDataType?(t.target=t.context.TEXTURE_2D,t.components=4,t.depth=1,t.numberOfDimensions=2,t._openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind(),t.context.pixelStorei(t.context.UNPACK_ALIGNMENT,1),t.width=n.width,t.height=n.height,l(Bd.UNSIGNED_CHAR)?(t.context.texStorage2D(t.target,1,t.internalFormat,t.width,t.height),t.context.texSubImage2D(t.target,0,0,0,t.width,t.height,t.format,t.openGLDataType,n)):t.context.texImage2D(t.target,0,t.internalFormat,t.width,t.height,0,t.format,t.openGLDataType,n),t.generateMipmap&amp;&amp;t.context.generateMipmap(t.target),t.allocatedGPUMemoryInBytes=t.width*t.height*t.depth*t.components*t._openGLRenderWindow.getDefaultTextureByteSize(Bd.UNSIGNED_CHAR,r(),e.useHalfFloat()),e.deactivate(),!0):(Nd(&quot;Failed to determine texture parameters.&quot;),!1)),e.create2DFilterableFromRaw=({width:t=Gd(&quot;width&quot;),height:n=Gd(&quot;height&quot;),numComps:r=Gd(&quot;numComps&quot;),dataType:o=Gd(&quot;dataType&quot;),data:a=Gd(&quot;data&quot;),preferSizeOverAccuracy:i=!1,ranges:s}={})=&gt;e.create2DFilterableFromDataArray({width:t,height:n,dataArray:Is.newInstance({numberOfComponents:r,dataType:o,values:a,ranges:s}),preferSizeOverAccuracy:i}),e.create2DFilterableFromDataArray=({width:t=Gd(&quot;width&quot;),height:n=Gd(&quot;height&quot;),dataArray:r=Gd(&quot;dataArray&quot;),preferSizeOverAccuracy:o=!1}={})=&gt;{const{numComps:a,dataType:i,data:s}=c(r,o);e.create2DFromRaw({width:t,height:n,numComps:a,dataType:i,data:s})},e.updateVolumeInfoForGL=(n,o)=&gt;{let a=!1;const i=e.useHalfFloat();t.volumeInfo?.scale&amp;&amp;t.volumeInfo?.offset||(t.volumeInfo={scale:new Array(o),offset:new Array(o)});for(let e=0;e&lt;o;++e)t.volumeInfo.scale[e]=1,t.volumeInfo.offset[e]=0;if(r()&amp;&amp;!i&amp;&amp;n===Bd.SHORT){for(let e=0;e&lt;o;++e)t.volumeInfo.scale[e]=32767;a=!0}if(r()&amp;&amp;!i&amp;&amp;n===Bd.UNSIGNED_SHORT){for(let e=0;e&lt;o;++e)t.volumeInfo.scale[e]=65535;a=!0}if(n===Bd.UNSIGNED_CHAR){for(let e=0;e&lt;o;++e)t.volumeInfo.scale[e]=255;a=!0}return(n===Bd.FLOAT||i&amp;&amp;(n===Bd.SHORT||n===Bd.UNSIGNED_SHORT))&amp;&amp;(a=!0),a},e.create3DFromRaw=({width:i=Gd(&quot;width&quot;),height:c=Gd(&quot;height&quot;),depth:u=Gd(&quot;depth&quot;),numComps:d=Gd(&quot;numComps&quot;),dataType:p=Gd(&quot;dataType&quot;),data:f=Gd(&quot;data&quot;),updatedExtents:g=[]}={})=&gt;{let m=p,h=f;if(!e.updateVolumeInfoForGL(m,d)&amp;&amp;h){const e=i*c*u,n=structuredClone(t.volumeInfo),r=new Float32Array(e*d);t.volumeInfo.offset=n.offset,t.volumeInfo.scale=n.scale;let o=0;const a=n.scale.map((e=&gt;1/e));for(let t=0;t&lt;e;t++)for(let e=0;e&lt;d;e++)r[o]=(h[o]-n.offset[e])*a[e],o++;m=Bd.FLOAT,h=r}if(e.getOpenGLDataType(m),e.getInternalFormat(m,d),e.getFormat(m,d),!t.internalFormat||!t.format||!t.openGLDataType)return Nd(&quot;Failed to determine texture parameters.&quot;),!1;t.target=t.context.TEXTURE_3D,t.components=d,t.width=i,t.height=c,t.depth=u,t.numberOfDimensions=3,t._openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind();const v=g.length&gt;0,T=!v||!xe(t._prevTexParams,n()),x=[h],y=s(e.updateArrayDataTypeForGL(m,x,!0,T?[]:g));if(t.context.pixelStorei(t.context.UNPACK_ALIGNMENT,1),T)l(m)?(t.context.texStorage3D(t.target,1,t.internalFormat,t.width,t.height,t.depth),null!=y[0]&amp;&amp;t.context.texSubImage3D(t.target,0,0,0,0,t.width,t.height,t.depth,t.format,t.openGLDataType,y[0])):t.context.texImage3D(t.target,0,t.internalFormat,t.width,t.height,t.depth,0,t.format,t.openGLDataType,y[0]),t._prevTexParams=n();else if(v){const e=y[0];let n=0;for(let r=0;r&lt;g.length;r++){const i=g[r],s=o(i),l=a(i),c=new e.constructor(e.buffer,n,l);n+=c.byteLength,t.context.texSubImage3D(t.target,0,i[0],i[2],i[4],s[0],s[1],s[2],t.format,t.openGLDataType,c)}}return t.generateMipmap&amp;&amp;t.context.generateMipmap(t.target),t.allocatedGPUMemoryInBytes=t.width*t.height*t.depth*t.components*t._openGLRenderWindow.getDefaultTextureByteSize(m,r(),e.useHalfFloat()),e.deactivate(),!0},e.create3DFilterableFromRaw=({width:t=Gd(&quot;width&quot;),height:n=Gd(&quot;height&quot;),depth:r=Gd(&quot;depth&quot;),numComps:o=Gd(&quot;numComps&quot;),dataType:a=Gd(&quot;dataType&quot;),data:i=Gd(&quot;data&quot;),preferSizeOverAccuracy:s=!1,ranges:l,updatedExtents:c=[]}={})=&gt;e.create3DFilterableFromDataArray({width:t,height:n,depth:r,dataArray:Is.newInstance({numberOfComponents:o,dataType:a,values:i,ranges:l}),preferSizeOverAccuracy:s,updatedExtents:c}),e.create3DFilterableFromDataArray=({width:n=Gd(&quot;width&quot;),height:r=Gd(&quot;height&quot;),depth:o=Gd(&quot;depth&quot;),dataArray:a=Gd(&quot;dataArray&quot;),preferSizeOverAccuracy:i=!1,updatedExtents:s=[]}={})=&gt;{const{numComps:u,dataType:d,data:p,scaleOffsets:f}=c(a,i),g=[],m=[];for(let e=0;e&lt;u;++e)g[e]=0,m[e]=1;if(t.volumeInfo={scale:m,offset:g,dataComputedScale:f.scale,dataComputedOffset:f.offset,width:n,height:r,depth:o},t._openGLRenderWindow.getWebgl2())return e.create3DFromRaw({width:n,height:r,depth:o,numComps:u,dataType:d,data:p,updatedExtents:s});const h=n*r*o,v=structuredClone(f);let T=(e,t,n,r,o)=&gt;{e[t]=n},x=Bd.UNSIGNED_CHAR;if(d===Bd.UNSIGNED_CHAR)for(let e=0;e&lt;u;++e)v.offset[e]=0,v.scale[e]=255;else t.context.getExtension(&quot;OES_texture_float&quot;)&amp;&amp;t.context.getExtension(&quot;OES_texture_float_linear&quot;)?(x=Bd.FLOAT,T=(e,t,n,r,o)=&gt;{e[t]=(n-r)/o}):(x=Bd.UNSIGNED_CHAR,T=(e,t,n,r,o)=&gt;{e[t]=255*(n-r)/o});if(e.getOpenGLDataType(x),e.getInternalFormat(x,u),e.getFormat(x,u),!t.internalFormat||!t.format||!t.openGLDataType)return Nd(&quot;Failed to determine texture parameters.&quot;),!1;t.target=t.context.TEXTURE_2D,t.components=u,t.depth=1,t.numberOfDimensions=2;let y=t.context.getParameter(t.context.MAX_TEXTURE_SIZE);y&gt;4096&amp;&amp;(x===Bd.FLOAT||u&gt;=3)&amp;&amp;(y=4096);let b=1,A=1;h&gt;y*y&amp;&amp;(b=Math.ceil(Math.sqrt(h/(y*y))),A=b);let C=Math.sqrt(h)/b;C=Bo(C);const S=Math.floor(C*b/n),P=Math.ceil(o/S),w=Bo(r*P/A);let I;t.width=C,t.height=w,t._openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind(),t.volumeInfo.xreps=S,t.volumeInfo.yreps=P,t.volumeInfo.xstride=b,t.volumeInfo.ystride=A,t.volumeInfo.offset=v.offset,t.volumeInfo.scale=v.scale;const O=C*w*u;I=x===Bd.FLOAT?new Float32Array(O):new Uint8Array(O);let R=0;const M=Math.floor(n/b),D=Math.floor(r/A);for(let e=0;e&lt;P;e++){const a=Math.min(S,o-e*S),i=u*(t.width-a*Math.floor(n/b));for(let t=0;t&lt;D;t++){for(let o=0;o&lt;a;o++){const a=u*((e*S+o)*n*r+A*t*n);for(let e=0;e&lt;M;e++)for(let t=0;t&lt;u;t++)T(I,R,p[a+b*e*u+t],v.offset[t],v.scale[t]),R++}R+=i}}return t.context.pixelStorei(t.context.UNPACK_ALIGNMENT,1),l(x)?(t.context.texStorage2D(t.target,1,t.internalFormat,t.width,t.height),null!=I&amp;&amp;t.context.texSubImage2D(t.target,0,0,0,t.width,t.height,t.format,t.openGLDataType,I)):t.context.texImage2D(t.target,0,t.internalFormat,t.width,t.height,0,t.format,t.openGLDataType,I),e.deactivate(),!0},e.setOpenGLRenderWindow=n=&gt;{t._openGLRenderWindow!==n&amp;&amp;(e.releaseGraphicsResources(),t._openGLRenderWindow=n,t.context=null,n&amp;&amp;(t.context=t._openGLRenderWindow.getContext()))},e.getMaximumTextureSize=e=&gt;e&amp;&amp;e.isCurrent()?e.getIntegerv(e.MAX_TEXTURE_SIZE):-1,e.enableUseHalfFloat=e=&gt;{t.enableUseHalfFloat=e}}const Kd={_openGLRenderWindow:null,_forceInternalFormat:!1,_prevTexParams:null,context:null,handle:0,sendParametersTime:null,textureBuildTime:null,numberOfDimensions:0,target:0,format:0,openGLDataType:0,components:0,width:0,height:0,depth:0,autoParameters:!0,wrapS:Vd.CLAMP_TO_EDGE,wrapT:Vd.CLAMP_TO_EDGE,wrapR:Vd.CLAMP_TO_EDGE,minificationFilter:Ld.NEAREST,magnificationFilter:Ld.NEAREST,minLOD:-1e3,maxLOD:1e3,baseLevel:0,maxLevel:1e3,generateMipmap:!1,oglNorm16Ext:null,allocatedGPUMemoryInBytes:0,enableUseHalfFloat:!0,canUseHalfFloat:!1};function zd(e,t,n={}){Object.assign(t,Kd,n),pn.extend(e,t,n),t.sendParametersTime={},Vt(t.sendParametersTime,{mtime:0}),t.textureBuildTime={},Vt(t.textureBuildTime,{mtime:0}),kt(e,t,[&quot;format&quot;,&quot;openGLDataType&quot;]),Gt(e,t,[&quot;keyMatrixTime&quot;,&quot;minificationFilter&quot;,&quot;magnificationFilter&quot;,&quot;wrapS&quot;,&quot;wrapT&quot;,&quot;wrapR&quot;,&quot;generateMipmap&quot;,&quot;oglNorm16Ext&quot;]),Bt(e,t,[&quot;width&quot;,&quot;height&quot;,&quot;volumeInfo&quot;,&quot;components&quot;,&quot;handle&quot;,&quot;target&quot;,&quot;allocatedGPUMemoryInBytes&quot;]),zt(0,t,[&quot;openGLRenderWindow&quot;]),_d(e,t)}const Wd=Xt(zd,&quot;vtkOpenGLTexture&quot;);var Hd={newInstance:Wd,extend:zd,...Id};vn(&quot;vtkTexture&quot;,Wd);var jd=&quot;//VTK::System::Dec\\n\\n/*=========================================================================\\n\\n  Program:   Visualization Toolkit\\n  Module:    vtkPolyDataVS.glsl\\n\\n  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n  All rights reserved.\\n  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n\\n     This software is distributed WITHOUT ANY WARRANTY; without even\\n     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n     PURPOSE.  See the above copyright notice for more information.\\n\\n=========================================================================*/\\n\\nattribute vec4 vertexMC;\\n\\n// frag position in VC\\n//VTK::PositionVC::Dec\\n\\n// optional normal declaration\\n//VTK::Normal::Dec\\n\\n// extra lighting parameters\\n//VTK::Light::Dec\\n\\n// Texture coordinates\\n//VTK::TCoord::Dec\\n\\n// material property values\\n//VTK::Color::Dec\\n\\n// clipping plane vars\\n//VTK::Clip::Dec\\n\\n// camera and actor matrix values\\n//VTK::Camera::Dec\\n\\n// Apple Bug\\n//VTK::PrimID::Dec\\n\\n// picking support\\n//VTK::Picking::Dec\\n\\nvoid main()\\n{\\n  //VTK::Color::Impl\\n\\n  //VTK::Normal::Impl\\n\\n  //VTK::TCoord::Impl\\n\\n  //VTK::Clip::Impl\\n\\n  //VTK::PrimID::Impl\\n\\n  //VTK::PositionVC::Impl\\n\\n  //VTK::Light::Impl\\n\\n  //VTK::Picking::Impl\\n}\\n&quot;,Xd=&quot;//VTK::System::Dec\\n\\n/*=========================================================================\\n\\n  Program:   Visualization Toolkit\\n  Module:    vtkPolyDataFS.glsl\\n\\n  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n  All rights reserved.\\n  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n\\n     This software is distributed WITHOUT ANY WARRANTY; without even\\n     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n     PURPOSE.  See the above copyright notice for more information.\\n\\n=========================================================================*/\\n// Template for the polydata mappers fragment shader\\n\\nuniform int PrimitiveIDOffset;\\n\\n// VC position of this fragment\\n//VTK::PositionVC::Dec\\n\\n// optional color passed in from the vertex shader, vertexColor\\n//VTK::Color::Dec\\n\\n// optional surface normal declaration\\n//VTK::Normal::Dec\\n\\n// extra lighting parameters\\n//VTK::Light::Dec\\n\\n// define vtkImageLabelOutlineOn\\n//VTK::ImageLabelOutlineOn\\n\\n// Texture coordinates\\n//VTK::TCoord::Dec\\n\\n// picking support\\n//VTK::Picking::Dec\\n\\n// Depth Peeling Support\\n//VTK::DepthPeeling::Dec\\n\\n// clipping plane vars\\n//VTK::Clip::Dec\\n\\n// label outline \\n//VTK::LabelOutline::Dec\\n\\n// the output of this shader\\n//VTK::Output::Dec\\n\\n// Apple Bug\\n//VTK::PrimID::Dec\\n\\n// handle coincident offsets\\n//VTK::Coincident::Dec\\n\\n//VTK::ZBuffer::Dec\\n\\n//VTK::LabelOutlineHelperFunction\\n\\nvoid main()\\n{\\n  // VC position of this fragment. This should not branch/return/discard.\\n  //VTK::PositionVC::Impl\\n\\n  // Place any calls that require uniform flow (e.g. dFdx) here.\\n  //VTK::UniformFlow::Impl\\n\\n  // Set gl_FragDepth here (gl_FragCoord.z by default)\\n  //VTK::Depth::Impl\\n\\n  // Early depth peeling abort:\\n  //VTK::DepthPeeling::PreColor\\n\\n  // Apple Bug\\n  //VTK::PrimID::Impl\\n\\n  //VTK::Clip::Impl\\n\\n  //VTK::Color::Impl\\n\\n  // Generate the normal if we are not passed in one\\n  //VTK::Normal::Impl\\n\\n  //VTK::TCoord::Impl\\n\\n  //VTK::Light::Impl\\n\\n  if (gl_FragData[0].a &lt;= 0.0)\\n    {\\n    discard;\\n    }\\n\\n  //VTK::DepthPeeling::Impl\\n\\n  //VTK::Picking::Impl\\n\\n  // handle coincident offsets\\n  //VTK::Coincident::Impl\\n\\n  //VTK::ZBuffer::Impl\\n\\n  //VTK::RenderPassFragmentShader::Impl\\n}\\n&quot;;var qd={implementReplaceShaderCoincidentOffset:function(e,t,n={}){e.replaceShaderCoincidentOffset=(n,r,o)=&gt;{const a=e.getCoincidentParameters(r,o);if(a&amp;&amp;(0!==a.factor||0!==a.offset)){let e=n.Fragment;e=vd.substitute(e,&quot;//VTK::Coincident::Dec&quot;,[&quot;uniform float cfactor;&quot;,&quot;uniform float coffset;&quot;]).result,t.context.getExtension(&quot;EXT_frag_depth&quot;)&amp;&amp;(0!==a.factor?(e=vd.substitute(e,&quot;//VTK::UniformFlow::Impl&quot;,[&quot;float cscale = length(vec2(dFdx(gl_FragCoord.z),dFdy(gl_FragCoord.z)));&quot;,&quot;//VTK::UniformFlow::Impl&quot;],!1).result,e=vd.substitute(e,&quot;//VTK::Depth::Impl&quot;,&quot;gl_FragDepthEXT = gl_FragCoord.z + cfactor*cscale + 0.000016*coffset;&quot;).result):e=vd.substitute(e,&quot;//VTK::Depth::Impl&quot;,&quot;gl_FragDepthEXT = gl_FragCoord.z + 0.000016*coffset;&quot;).result),t._openGLRenderWindow.getWebgl2()&amp;&amp;(0!==a.factor?(e=vd.substitute(e,&quot;//VTK::UniformFlow::Impl&quot;,[&quot;float cscale = length(vec2(dFdx(gl_FragCoord.z),dFdy(gl_FragCoord.z)));&quot;,&quot;//VTK::UniformFlow::Impl&quot;],!1).result,e=vd.substitute(e,&quot;//VTK::Depth::Impl&quot;,&quot;gl_FragDepth = gl_FragCoord.z + cfactor*cscale + 0.000016*coffset;&quot;).result):e=vd.substitute(e,&quot;//VTK::Depth::Impl&quot;,&quot;gl_FragDepth = gl_FragCoord.z + 0.000016*coffset;&quot;).result),n.Fragment=e}}},implementBuildShadersWithReplacements:function(e,t,n={}){e.applyShaderReplacements=(e,t,n)=&gt;{let r=null;if(t&amp;&amp;(r=t.ShaderReplacements),r)for(let t=0;t&lt;r.length;t++){const o=r[t];if(n&amp;&amp;o.replaceFirst||!n&amp;&amp;!o.replaceFirst){const t=o.shaderType,n=e[t],r=vd.substitute(n,o.originalValue,o.replacementValue,o.replaceAll);e[t]=r.result}}},e.buildShaders=(n,r,o)=&gt;{e.getReplacedShaderTemplate(n,r,o),t.lastRenderPassShaderReplacement=t.currentRenderPass?t.currentRenderPass.getShaderReplacement():null,t.lastRenderPassShaderReplacement&amp;&amp;t.lastRenderPassShaderReplacement(n);const a=t.renderable.getViewSpecificProperties().OpenGL;e.applyShaderReplacements(n,a,!0),e.replaceShaderValues(n,r,o),e.applyShaderReplacements(n,a)},e.getReplacedShaderTemplate=(n,r,o)=&gt;{const a=t.renderable.getViewSpecificProperties().OpenGL;e.getShaderTemplate(n,r,o);let i=n.Vertex;if(a){const e=a.VertexShaderCode;void 0!==e&amp;&amp;&quot;&quot;!==e&amp;&amp;(i=e)}n.Vertex=i;let s=n.Fragment;if(a){const e=a.FragmentShaderCode;void 0!==e&amp;&amp;&quot;&quot;!==e&amp;&amp;(s=e)}n.Fragment=s;let l=n.Geometry;if(a){const e=a.GeometryShaderCode;void 0!==e&amp;&amp;(l=e)}n.Geometry=l}}};const{FieldAssociations:Yd}=Qs,{primTypes:Jd}=Sd,{Representation:Zd,Shading:Qd}=us,{ScalarMode:$d}=Ql,{Filter:ep,Wrap:tp}=Hd,{vtkErrorMacro:np}=ln,rp={type:&quot;StartEvent&quot;},op={type:&quot;EndEvent&quot;},{CoordinateSystem:ap}=Zi;function ip(e,t){function n(e,t,n){return t.identity(n),e.reduce(((e,n,r)=&gt;0===r?n?t.copy(e,n):t.identity(e):n?t.multiply(e,e,n):e),n)}t.classHierarchy.push(&quot;vtkOpenGLPolyDataMapper&quot;),e.buildPass=n=&gt;{n&amp;&amp;(t.currentRenderPass=null,t.openGLActor=e.getFirstAncestorOfType(&quot;vtkOpenGLActor&quot;),t._openGLRenderer=t.openGLActor.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;),t._openGLRenderWindow=t._openGLRenderer.getLastAncestorOfType(&quot;vtkOpenGLRenderWindow&quot;),t.openGLCamera=t._openGLRenderer.getViewNodeFor(t._openGLRenderer.getRenderable().getActiveCamera(),t.openGLCamera))},e.translucentPass=(n,r)=&gt;{n&amp;&amp;(t.currentRenderPass=r,e.render())},e.zBufferPass=n=&gt;{n&amp;&amp;(t.haveSeenDepthRequest=!0,t.renderDepth=!0,e.render(),t.renderDepth=!1)},e.opaqueZBufferPass=t=&gt;e.zBufferPass(t),e.opaquePass=t=&gt;{t&amp;&amp;e.render()},e.render=()=&gt;{const n=t._openGLRenderWindow.getContext();if(t.context!==n){t.context=n;for(let e=Jd.Start;e&lt;Jd.End;e++)t.primitives[e].setOpenGLRenderWindow(t._openGLRenderWindow)}const r=t.openGLActor.getRenderable(),o=t._openGLRenderer.getRenderable();e.renderPiece(o,r)},e.getShaderTemplate=(e,t,n)=&gt;{e.Vertex=jd,e.Fragment=Xd,e.Geometry=&quot;&quot;},e.replaceShaderColor=(e,n,r)=&gt;{let o=e.Vertex,a=e.Geometry,i=e.Fragment;const s=t.lastBoundBO.getReferenceByName(&quot;lastLightComplexity&quot;);let l=[&quot;uniform float ambient;&quot;,&quot;uniform float diffuse;&quot;,&quot;uniform float specular;&quot;,&quot;uniform float opacityUniform; // the fragment opacity&quot;,&quot;uniform vec3 ambientColorUniform;&quot;,&quot;uniform vec3 diffuseColorUniform;&quot;];s&amp;&amp;(l=l.concat([&quot;uniform vec3 specularColorUniform;&quot;,&quot;uniform float specularPowerUniform;&quot;]));let c=[&quot;vec3 ambientColor;&quot;,&quot;  vec3 diffuseColor;&quot;,&quot;  float opacity;&quot;];s&amp;&amp;(c=c.concat([&quot;  vec3 specularColor;&quot;,&quot;  float specularPower;&quot;])),c=c.concat([&quot;  ambientColor = ambientColorUniform;&quot;,&quot;  diffuseColor = diffuseColorUniform;&quot;,&quot;  opacity = opacityUniform;&quot;]),s&amp;&amp;(c=c.concat([&quot;  specularColor = specularColorUniform;&quot;,&quot;  specularPower = specularPowerUniform;&quot;])),0===t.lastBoundBO.getCABO().getColorComponents()||t.drawingEdges||(l=l.concat([&quot;varying vec4 vertexColorVSOutput;&quot;]),o=vd.substitute(o,&quot;//VTK::Color::Dec&quot;,[&quot;attribute vec4 scalarColor;&quot;,&quot;varying vec4 vertexColorVSOutput;&quot;]).result,o=vd.substitute(o,&quot;//VTK::Color::Impl&quot;,[&quot;vertexColorVSOutput =  scalarColor;&quot;]).result,a=vd.substitute(a,&quot;//VTK::Color::Dec&quot;,[&quot;in vec4 vertexColorVSOutput[];&quot;,&quot;out vec4 vertexColorGSOutput;&quot;]).result,a=vd.substitute(a,&quot;//VTK::Color::Impl&quot;,[&quot;vertexColorGSOutput = vertexColorVSOutput[i];&quot;]).result),0===t.lastBoundBO.getCABO().getColorComponents()||t.drawingEdges?(t.renderable.getAreScalarsMappedFromCells()||t.renderable.getInterpolateScalarsBeforeMapping())&amp;&amp;t.renderable.getColorCoordinates()&amp;&amp;!t.drawingEdges?i=vd.substitute(i,&quot;//VTK::Color::Impl&quot;,c.concat([&quot;  vec4 texColor = texture2D(texture1, tcoordVCVSOutput.st);&quot;,&quot;  diffuseColor = texColor.rgb;&quot;,&quot;  ambientColor = texColor.rgb;&quot;,&quot;  opacity = opacity*texColor.a;&quot;])).result:(r.getBackfaceProperty()&amp;&amp;!t.drawingEdges&amp;&amp;(l=l.concat([&quot;uniform float opacityUniformBF; // the fragment opacity&quot;,&quot;uniform float ambientIntensityBF; // the material ambient&quot;,&quot;uniform float diffuseIntensityBF; // the material diffuse&quot;,&quot;uniform vec3 ambientColorUniformBF; // ambient material color&quot;,&quot;uniform vec3 diffuseColorUniformBF; // diffuse material color&quot;]),s?(l=l.concat([&quot;uniform float specularIntensityBF; // the material specular intensity&quot;,&quot;uniform vec3 specularColorUniformBF; // intensity weighted color&quot;,&quot;uniform float specularPowerUniformBF;&quot;]),c=c.concat([&quot;if (gl_FrontFacing == false) {&quot;,&quot;  ambientColor = ambientIntensityBF * ambientColorUniformBF;&quot;,&quot;  diffuseColor = diffuseIntensityBF * diffuseColorUniformBF;&quot;,&quot;  specularColor = specularIntensityBF * specularColorUniformBF;&quot;,&quot;  specularPower = specularPowerUniformBF;&quot;,&quot;  opacity = opacityUniformBF; }&quot;])):c=c.concat([&quot;if (gl_FrontFacing == false) {&quot;,&quot;  ambientColor = ambientIntensityBF * ambientColorUniformBF;&quot;,&quot;  diffuseColor = diffuseIntensityBF * diffuseColorUniformBF;&quot;,&quot;  opacity = opacityUniformBF; }&quot;])),t.haveCellScalars&amp;&amp;!t.drawingEdges&amp;&amp;(l=l.concat([&quot;uniform samplerBuffer texture1;&quot;])),i=vd.substitute(i,&quot;//VTK::Color::Impl&quot;,c).result):i=vd.substitute(i,&quot;//VTK::Color::Impl&quot;,c.concat([&quot;  diffuseColor = vertexColorVSOutput.rgb;&quot;,&quot;  ambientColor = vertexColorVSOutput.rgb;&quot;,&quot;  opacity = opacity*vertexColorVSOutput.a;&quot;])).result,i=vd.substitute(i,&quot;//VTK::Color::Dec&quot;,l).result,e.Vertex=o,e.Geometry=a,e.Fragment=i},e.replaceShaderLight=(e,n,r)=&gt;{let o=e.Fragment;const a=t.lastBoundBO.getReferenceByName(&quot;lastLightComplexity&quot;),i=t.lastBoundBO.getReferenceByName(&quot;lastLightCount&quot;);let s=[];switch(a){case 0:o=vd.substitute(o,&quot;//VTK::Light::Impl&quot;,[&quot;  gl_FragData[0] = vec4(ambientColor * ambient + diffuseColor * diffuse, opacity);&quot;,&quot;  //VTK::Light::Impl&quot;],!1).result;break;case 1:o=vd.substitute(o,&quot;//VTK::Light::Impl&quot;,[&quot;  float df = max(0.0, normalVCVSOutput.z);&quot;,&quot;  float sf = pow(df, specularPower);&quot;,&quot;  vec3 diffuseL = df * diffuseColor;&quot;,&quot;  vec3 specularL = sf * specularColor;&quot;,&quot;  gl_FragData[0] = vec4(ambientColor * ambient + diffuseL * diffuse + specularL * specular, opacity);&quot;,&quot;  //VTK::Light::Impl&quot;],!1).result;break;case 2:for(let e=0;e&lt;i;++e)s=s.concat([`uniform vec3 lightColor${e};`,`uniform vec3 lightDirectionVC${e}; // normalized`,`uniform vec3 lightHalfAngleVC${e}; // normalized`]);o=vd.substitute(o,&quot;//VTK::Light::Dec&quot;,s).result,s=[&quot;vec3 diffuseL = vec3(0,0,0);&quot;,&quot;  vec3 specularL = vec3(0,0,0);&quot;,&quot;  float df;&quot;];for(let e=0;e&lt;i;++e)s=s.concat([`  df = max(0.0, dot(normalVCVSOutput, -lightDirectionVC${e}));`,`  diffuseL += ((df) * lightColor${e});`,`  if (dot(normalVCVSOutput, lightDirectionVC${e}) &lt; 0.0)`,&quot;    {&quot;,`    float sf = sign(df)*pow(max(1e-5,\\n                                              dot(reflect(lightDirectionVC${e},normalVCVSOutput),\\n                                                  normalize(-vertexVC.xyz))),\\n                                         specularPower);`,`    specularL += (sf * lightColor${e});`,&quot;    }&quot;]);s=s.concat([&quot;  diffuseL = diffuseL * diffuseColor;&quot;,&quot;  specularL = specularL * specularColor;&quot;,&quot;  gl_FragData[0] = vec4(ambientColor * ambient + diffuseL * diffuse + specularL * specular, opacity);&quot;,&quot;  //VTK::Light::Impl&quot;]),o=vd.substitute(o,&quot;//VTK::Light::Impl&quot;,s,!1).result;break;case 3:for(let e=0;e&lt;i;++e)s=s.concat([`uniform vec3 lightColor${e};`,`uniform vec3 lightDirectionVC${e}; // normalized`,`uniform vec3 lightHalfAngleVC${e}; // normalized`,`uniform vec3 lightPositionVC${e};`,`uniform vec3 lightAttenuation${e};`,`uniform float lightConeAngle${e};`,`uniform float lightExponent${e};`,`uniform int lightPositional${e};`]);o=vd.substitute(o,&quot;//VTK::Light::Dec&quot;,s).result,s=[&quot;vec3 diffuseL = vec3(0,0,0);&quot;,&quot;  vec3 specularL = vec3(0,0,0);&quot;,&quot;  vec3 vertLightDirectionVC;&quot;,&quot;  float attenuation;&quot;,&quot;  float df;&quot;];for(let e=0;e&lt;i;++e)s=s.concat([&quot;  attenuation = 1.0;&quot;,`  if (lightPositional${e} == 0)`,&quot;    {&quot;,`      vertLightDirectionVC = lightDirectionVC${e};`,&quot;    }&quot;,&quot;  else&quot;,&quot;    {&quot;,`    vertLightDirectionVC = vertexVC.xyz - lightPositionVC${e};`,&quot;    float distanceVC = length(vertLightDirectionVC);&quot;,&quot;    vertLightDirectionVC = normalize(vertLightDirectionVC);&quot;,&quot;    attenuation = 1.0 /&quot;,`      (lightAttenuation${e}.x`,`       + lightAttenuation${e}.y * distanceVC`,`       + lightAttenuation${e}.z * distanceVC * distanceVC);`,&quot;    // per OpenGL standard cone angle is 90 or less for a spot light&quot;,`    if (lightConeAngle${e} &lt;= 90.0)`,&quot;      {&quot;,`      float coneDot = dot(vertLightDirectionVC, lightDirectionVC${e});`,&quot;      // if inside the cone&quot;,`      if (coneDot &gt;= cos(radians(lightConeAngle${e})))`,&quot;        {&quot;,`        attenuation = attenuation * pow(coneDot, lightExponent${e});`,&quot;        }&quot;,&quot;      else&quot;,&quot;        {&quot;,&quot;        attenuation = 0.0;&quot;,&quot;        }&quot;,&quot;      }&quot;,&quot;    }&quot;,&quot;    df = max(0.0, attenuation*dot(normalVCVSOutput, -vertLightDirectionVC));&quot;,`    diffuseL += ((df) * lightColor${e});`,&quot;    if (dot(normalVCVSOutput, vertLightDirectionVC) &lt; 0.0)&quot;,&quot;      {&quot;,`      float sf = sign(df)*attenuation*pow(max(1e-5,\\n                                                           dot(reflect(lightDirectionVC${e},\\n                                                                       normalVCVSOutput),\\n                                                               normalize(-vertexVC.xyz))),\\n                                                       specularPower);`,`    specularL += ((sf) * lightColor${e});`,&quot;    }&quot;]);s=s.concat([&quot;  diffuseL = diffuseL * diffuseColor;&quot;,&quot;  specularL = specularL * specularColor;&quot;,&quot;  gl_FragData[0] = vec4(ambientColor * ambient + diffuseL * diffuse + specularL * specular, opacity);&quot;,&quot;  //VTK::Light::Impl&quot;]),o=vd.substitute(o,&quot;//VTK::Light::Impl&quot;,s,!1).result;break;default:np(&quot;bad light complexity&quot;)}e.Fragment=o},e.replaceShaderNormal=(e,n,r)=&gt;{if(t.lastBoundBO.getReferenceByName(&quot;lastLightComplexity&quot;)&gt;0){let n=e.Vertex,o=e.Geometry,a=e.Fragment;t.lastBoundBO.getCABO().getNormalOffset()?(n=vd.substitute(n,&quot;//VTK::Normal::Dec&quot;,[&quot;attribute vec3 normalMC;&quot;,&quot;uniform mat3 normalMatrix;&quot;,&quot;varying vec3 normalVCVSOutput;&quot;]).result,n=vd.substitute(n,&quot;//VTK::Normal::Impl&quot;,[&quot;normalVCVSOutput = normalMatrix * normalMC;&quot;]).result,o=vd.substitute(o,&quot;//VTK::Normal::Dec&quot;,[&quot;in vec3 normalVCVSOutput[];&quot;,&quot;out vec3 normalVCGSOutput;&quot;]).result,o=vd.substitute(o,&quot;//VTK::Normal::Impl&quot;,[&quot;normalVCGSOutput = normalVCVSOutput[i];&quot;]).result,a=vd.substitute(a,&quot;//VTK::Normal::Dec&quot;,[&quot;varying vec3 normalVCVSOutput;&quot;]).result,a=vd.substitute(a,&quot;//VTK::Normal::Impl&quot;,[&quot;vec3 normalVCVSOutput = normalize(normalVCVSOutput);&quot;,&quot;  if (gl_FrontFacing == false) { normalVCVSOutput = -normalVCVSOutput; }&quot;]).result):t.haveCellNormals?(a=vd.substitute(a,&quot;//VTK::Normal::Dec&quot;,[&quot;uniform mat3 normalMatrix;&quot;,&quot;uniform samplerBuffer textureN;&quot;]).result,a=vd.substitute(a,&quot;//VTK::Normal::Impl&quot;,[&quot;vec3 normalVCVSOutput = normalize(normalMatrix *&quot;,&quot;    texelFetchBuffer(textureN, gl_PrimitiveID + PrimitiveIDOffset).xyz);&quot;,&quot;  if (gl_FrontFacing == false) { normalVCVSOutput = -normalVCVSOutput; }&quot;]).result):t.lastBoundBO.getOpenGLMode(r.getProperty().getRepresentation())===t.context.LINES?(a=vd.substitute(a,&quot;//VTK::UniformFlow::Impl&quot;,[&quot;  vec3 fdx = dFdx(vertexVC.xyz);&quot;,&quot;  vec3 fdy = dFdy(vertexVC.xyz);&quot;,&quot;  //VTK::UniformFlow::Impl&quot;]).result,a=vd.substitute(a,&quot;//VTK::Normal::Impl&quot;,[&quot;vec3 normalVCVSOutput;&quot;,&quot;  if (abs(fdx.x) &gt; 0.0)&quot;,&quot;    { fdx = normalize(fdx); normalVCVSOutput = normalize(cross(vec3(fdx.y, -fdx.x, 0.0), fdx)); }&quot;,&quot;  else { fdy = normalize(fdy); normalVCVSOutput = normalize(cross(vec3(fdy.y, -fdy.x, 0.0), fdy));}&quot;]).result):(a=vd.substitute(a,&quot;//VTK::Normal::Dec&quot;,[&quot;uniform int cameraParallel;&quot;]).result,a=vd.substitute(a,&quot;//VTK::UniformFlow::Impl&quot;,[&quot;  vec3 fdx = dFdx(vertexVC.xyz);&quot;,&quot;  vec3 fdy = dFdy(vertexVC.xyz);&quot;,&quot;  //VTK::UniformFlow::Impl&quot;]).result,a=vd.substitute(a,&quot;//VTK::Normal::Impl&quot;,[&quot;  fdx = normalize(fdx);&quot;,&quot;  fdy = normalize(fdy);&quot;,&quot;  vec3 normalVCVSOutput = normalize(cross(fdx,fdy));&quot;,&quot;  if (cameraParallel == 1 &amp;&amp; normalVCVSOutput.z &lt; 0.0) { normalVCVSOutput = -1.0*normalVCVSOutput; }&quot;,&quot;  if (cameraParallel == 0 &amp;&amp; dot(normalVCVSOutput,vertexVC.xyz) &gt; 0.0) { normalVCVSOutput = -1.0*normalVCVSOutput; }&quot;]).result),e.Vertex=n,e.Geometry=o,e.Fragment=a}},e.replaceShaderPositionVC=(e,n,r)=&gt;{t.lastBoundBO.replaceShaderPositionVC(e,n,r);let o=e.Vertex,a=e.Geometry,i=e.Fragment;t.lastBoundBO.getReferenceByName(&quot;lastLightComplexity&quot;)&gt;0?(o=vd.substitute(o,&quot;//VTK::PositionVC::Dec&quot;,[&quot;varying vec4 vertexVCVSOutput;&quot;]).result,o=vd.substitute(o,&quot;//VTK::PositionVC::Impl&quot;,[&quot;vertexVCVSOutput = MCVCMatrix * vertexMC;&quot;,&quot;  gl_Position = MCPCMatrix * vertexMC;&quot;]).result,o=vd.substitute(o,&quot;//VTK::Camera::Dec&quot;,[&quot;uniform mat4 MCPCMatrix;&quot;,&quot;uniform mat4 MCVCMatrix;&quot;]).result,a=vd.substitute(a,&quot;//VTK::PositionVC::Dec&quot;,[&quot;in vec4 vertexVCVSOutput[];&quot;,&quot;out vec4 vertexVCGSOutput;&quot;]).result,a=vd.substitute(a,&quot;//VTK::PositionVC::Impl&quot;,[&quot;vertexVCGSOutput = vertexVCVSOutput[i];&quot;]).result,i=vd.substitute(i,&quot;//VTK::PositionVC::Dec&quot;,[&quot;varying vec4 vertexVCVSOutput;&quot;]).result,i=vd.substitute(i,&quot;//VTK::PositionVC::Impl&quot;,[&quot;vec4 vertexVC = vertexVCVSOutput;&quot;]).result):(o=vd.substitute(o,&quot;//VTK::Camera::Dec&quot;,[&quot;uniform mat4 MCPCMatrix;&quot;]).result,o=vd.substitute(o,&quot;//VTK::PositionVC::Impl&quot;,[&quot;  gl_Position = MCPCMatrix * vertexMC;&quot;]).result),e.Vertex=o,e.Geometry=a,e.Fragment=i},e.replaceShaderTCoord=(e,n,r)=&gt;{if(t.lastBoundBO.getCABO().getTCoordOffset()){let n=e.Vertex,r=e.Geometry,o=e.Fragment;if(t.drawingEdges)return;n=vd.substitute(n,&quot;//VTK::TCoord::Impl&quot;,&quot;tcoordVCVSOutput = tcoordMC;&quot;).result;const a=t.openGLActor.getActiveTextures();let i=2,s=2;if(a&amp;&amp;a.length&gt;0&amp;&amp;(i=a[0].getComponents(),a[0].getTarget()===t.context.TEXTURE_CUBE_MAP&amp;&amp;(s=3)),t.renderable.getColorTextureMap()&amp;&amp;(i=t.renderable.getColorTextureMap().getPointData().getScalars().getNumberOfComponents(),s=2),2===s){if(n=vd.substitute(n,&quot;//VTK::TCoord::Dec&quot;,&quot;attribute vec2 tcoordMC; varying vec2 tcoordVCVSOutput;&quot;).result,r=vd.substitute(r,&quot;//VTK::TCoord::Dec&quot;,[&quot;in vec2 tcoordVCVSOutput[];&quot;,&quot;out vec2 tcoordVCGSOutput;&quot;]).result,r=vd.substitute(r,&quot;//VTK::TCoord::Impl&quot;,&quot;tcoordVCGSOutput = tcoordVCVSOutput[i];&quot;).result,o=vd.substitute(o,&quot;//VTK::TCoord::Dec&quot;,[&quot;varying vec2 tcoordVCVSOutput;&quot;,&quot;uniform sampler2D texture1;&quot;]).result,a&amp;&amp;a.length&gt;=1)switch(i){case 1:o=vd.substitute(o,&quot;//VTK::TCoord::Impl&quot;,[&quot;  vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);&quot;,&quot;  ambientColor = ambientColor*tcolor.r;&quot;,&quot;  diffuseColor = diffuseColor*tcolor.r;&quot;]).result;break;case 2:o=vd.substitute(o,&quot;//VTK::TCoord::Impl&quot;,[&quot;  vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);&quot;,&quot;  ambientColor = ambientColor*tcolor.r;&quot;,&quot;  diffuseColor = diffuseColor*tcolor.r;&quot;,&quot;  opacity = opacity * tcolor.g;&quot;]).result;break;default:o=vd.substitute(o,&quot;//VTK::TCoord::Impl&quot;,[&quot;  vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);&quot;,&quot;  ambientColor = ambientColor*tcolor.rgb;&quot;,&quot;  diffuseColor = diffuseColor*tcolor.rgb;&quot;,&quot;  opacity = opacity * tcolor.a;&quot;]).result}}else switch(n=vd.substitute(n,&quot;//VTK::TCoord::Dec&quot;,&quot;attribute vec3 tcoordMC; varying vec3 tcoordVCVSOutput;&quot;).result,r=vd.substitute(r,&quot;//VTK::TCoord::Dec&quot;,[&quot;in vec3 tcoordVCVSOutput[];&quot;,&quot;out vec3 tcoordVCGSOutput;&quot;]).result,r=vd.substitute(r,&quot;//VTK::TCoord::Impl&quot;,&quot;tcoordVCGSOutput = tcoordVCVSOutput[i];&quot;).result,o=vd.substitute(o,&quot;//VTK::TCoord::Dec&quot;,[&quot;varying vec3 tcoordVCVSOutput;&quot;,&quot;uniform samplerCube texture1;&quot;]).result,i){case 1:o=vd.substitute(o,&quot;//VTK::TCoord::Impl&quot;,[&quot;  vec4 tcolor = textureCube(texture1, tcoordVCVSOutput);&quot;,&quot;  ambientColor = ambientColor*tcolor.r;&quot;,&quot;  diffuseColor = diffuseColor*tcolor.r;&quot;]).result;break;case 2:o=vd.substitute(o,&quot;//VTK::TCoord::Impl&quot;,[&quot;  vec4 tcolor = textureCube(texture1, tcoordVCVSOutput);&quot;,&quot;  ambientColor = ambientColor*tcolor.r;&quot;,&quot;  diffuseColor = diffuseColor*tcolor.r;&quot;,&quot;  opacity = opacity * tcolor.g;&quot;]).result;break;default:o=vd.substitute(o,&quot;//VTK::TCoord::Impl&quot;,[&quot;  vec4 tcolor = textureCube(texture1, tcoordVCVSOutput);&quot;,&quot;  ambientColor = ambientColor*tcolor.rgb;&quot;,&quot;  diffuseColor = diffuseColor*tcolor.rgb;&quot;,&quot;  opacity = opacity * tcolor.a;&quot;]).result}e.Vertex=n,e.Geometry=r,e.Fragment=o}},e.replaceShaderClip=(e,n,r)=&gt;{let o=e.Vertex,a=e.Fragment;if(t.renderable.getNumberOfClippingPlanes()){const e=t.renderable.getNumberOfClippingPlanes();o=vd.substitute(o,&quot;//VTK::Clip::Dec&quot;,[&quot;uniform int numClipPlanes;&quot;,`uniform vec4 clipPlanes[${e}];`,`varying float clipDistancesVSOutput[${e}];`]).result,o=vd.substitute(o,&quot;//VTK::Clip::Impl&quot;,[`for (int planeNum = 0; planeNum &lt; ${e}; planeNum++)`,&quot;    {&quot;,&quot;    if (planeNum &gt;= numClipPlanes)&quot;,&quot;        {&quot;,&quot;        break;&quot;,&quot;        }&quot;,&quot;    clipDistancesVSOutput[planeNum] = dot(clipPlanes[planeNum], vertexMC);&quot;,&quot;    }&quot;]).result,a=vd.substitute(a,&quot;//VTK::Clip::Dec&quot;,[&quot;uniform int numClipPlanes;&quot;,`varying float clipDistancesVSOutput[${e}];`]).result,a=vd.substitute(a,&quot;//VTK::Clip::Impl&quot;,[`for (int planeNum = 0; planeNum &lt; ${e}; planeNum++)`,&quot;    {&quot;,&quot;    if (planeNum &gt;= numClipPlanes)&quot;,&quot;        {&quot;,&quot;        break;&quot;,&quot;        }&quot;,&quot;    if (clipDistancesVSOutput[planeNum] &lt; 0.0) discard;&quot;,&quot;    }&quot;]).result}e.Vertex=o,e.Fragment=a},e.getCoincidentParameters=(e,n)=&gt;{let r={factor:0,offset:0};const o=n.getProperty();if(t.renderable.getResolveCoincidentTopology()==Pl.PolygonOffset||o.getEdgeVisibility()&amp;&amp;o.getRepresentation()===Zd.SURFACE){const e=t.lastBoundBO.getPrimitiveType();e===Jd.Points||o.getRepresentation()===Zd.POINTS?r=t.renderable.getCoincidentTopologyPointOffsetParameter():e===Jd.Lines||o.getRepresentation()===Zd.WIREFRAME?r=t.renderable.getCoincidentTopologyLineOffsetParameters():e!==Jd.Tris&amp;&amp;e!==Jd.TriStrips||(r=t.renderable.getCoincidentTopologyPolygonOffsetParameters()),e!==Jd.TrisEdges&amp;&amp;e!==Jd.TriStripsEdges||(r=t.renderable.getCoincidentTopologyPolygonOffsetParameters(),r.factor/=2,r.offset/=2)}const a=t._openGLRenderer.getSelector();return a&amp;&amp;a.getFieldAssociation()===Yd.FIELD_ASSOCIATION_POINTS&amp;&amp;(r.offset-=2),r},e.replaceShaderPicking=(e,n,r)=&gt;{let o=e.Fragment,a=e.Vertex;if(o=vd.substitute(o,&quot;//VTK::Picking::Dec&quot;,[&quot;uniform int picking;&quot;,&quot;//VTK::Picking::Dec&quot;]).result,t._openGLRenderer.getSelector()){switch(t.lastSelectionState!==Bl.ID_LOW24&amp;&amp;t.lastSelectionState!==Bl.ID_HIGH24||(a=vd.substitute(a,&quot;//VTK::Picking::Dec&quot;,[&quot;flat out int vertexIDVSOutput;\\n&quot;,&quot;uniform int VertexIDOffset;\\n&quot;]).result,a=vd.substitute(a,&quot;//VTK::Picking::Impl&quot;,&quot;  vertexIDVSOutput = gl_VertexID + VertexIDOffset;\\n&quot;).result,o=vd.substitute(o,&quot;//VTK::Picking::Dec&quot;,&quot;flat in int vertexIDVSOutput;\\n&quot;).result,o=vd.substitute(o,&quot;//VTK::Picking::Impl&quot;,[&quot;  int idx = vertexIDVSOutput;&quot;,&quot;//VTK::Picking::Impl&quot;]).result),t.lastSelectionState){case Bl.ID_LOW24:o=vd.substitute(o,&quot;//VTK::Picking::Impl&quot;,&quot;  gl_FragData[0] = vec4(float(idx%256)/255.0, float((idx/256)%256)/255.0, float((idx/65536)%256)/255.0, 1.0);&quot;).result;break;case Bl.ID_HIGH24:o=vd.substitute(o,&quot;//VTK::Picking::Impl&quot;,&quot;  gl_FragData[0] = vec4(float((idx/16777216)%256)/255.0, 0.0, 0.0, 1.0);&quot;).result;break;default:o=vd.substitute(o,&quot;//VTK::Picking::Dec&quot;,&quot;uniform vec3 mapperIndex;&quot;).result,o=vd.substitute(o,&quot;//VTK::Picking::Impl&quot;,&quot;  gl_FragData[0] = picking != 0 ? vec4(mapperIndex,1.0) : gl_FragData[0];&quot;).result}e.Fragment=o,e.Vertex=a}},e.replaceShaderValues=(n,r,o)=&gt;{if(e.replaceShaderColor(n,r,o),e.replaceShaderNormal(n,r,o),e.replaceShaderLight(n,r,o),e.replaceShaderTCoord(n,r,o),e.replaceShaderPicking(n,r,o),e.replaceShaderClip(n,r,o),e.replaceShaderCoincidentOffset(n,r,o),e.replaceShaderPositionVC(n,r,o),t.haveSeenDepthRequest){let e=n.Fragment;e=vd.substitute(e,&quot;//VTK::ZBuffer::Dec&quot;,&quot;uniform int depthRequest;&quot;).result,e=vd.substitute(e,&quot;//VTK::ZBuffer::Impl&quot;,[&quot;if (depthRequest == 1) {&quot;,&quot;float iz = floor(gl_FragCoord.z*65535.0 + 0.1);&quot;,&quot;float rf = floor(iz/256.0)/255.0;&quot;,&quot;float gf = mod(iz,256.0)/255.0;&quot;,&quot;gl_FragData[0] = vec4(rf, gf, 0.0, 1.0); }&quot;]).result,n.Fragment=e}},e.getNeedToRebuildShaders=(e,n,r)=&gt;{let o=0,a=0;const i=e.getPrimitiveType(),s=t.currentInput;let l=!1;const c=s.getPointData().getNormals(),u=s.getCellData().getNormals(),d=r.getProperty().getInterpolation()===Qd.FLAT,p=r.getProperty().getRepresentation(),f=e.getOpenGLMode(p,i);if(f===t.context.TRIANGLES||u&amp;&amp;!c||!d&amp;&amp;c?l=!0:d||f!==t.context.LINES||(l=!0),r.getProperty().getLighting()&amp;&amp;l){o=0;const e=n.getLightsByReference();for(let t=0;t&lt;e.length;++t){const n=e[t];n.getSwitch()&gt;0&amp;&amp;(a++,0===o&amp;&amp;(o=1)),1===o&amp;&amp;(a&gt;1||1!==n.getIntensity()||!n.lightTypeIsHeadLight())&amp;&amp;(o=2),o&lt;3&amp;&amp;n.getPositional()&amp;&amp;(o=3)}}let g=!1;const m=t.lastBoundBO.getReferenceByName(&quot;lastLightComplexity&quot;),h=t.lastBoundBO.getReferenceByName(&quot;lastLightCount&quot;);return m===o&amp;&amp;h===a||(t.lastBoundBO.set({lastLightComplexity:o},!0),t.lastBoundBO.set({lastLightCount:a},!0),g=!0),(!t.currentRenderPass&amp;&amp;t.lastRenderPassShaderReplacement||t.currentRenderPass&amp;&amp;t.currentRenderPass.getShaderReplacement()!==t.lastRenderPassShaderReplacement)&amp;&amp;(g=!0),!!(t.lastHaveSeenDepthRequest!==t.haveSeenDepthRequest||e.getShaderSourceTime().getMTime()&lt;t.renderable.getMTime()||e.getShaderSourceTime().getMTime()&lt;t.currentInput.getMTime()||e.getShaderSourceTime().getMTime()&lt;t.selectionStateChanged.getMTime()||g)&amp;&amp;(t.lastHaveSeenDepthRequest=t.haveSeenDepthRequest,!0)},e.invokeShaderCallbacks=(e,n,r)=&gt;{const o=t.renderable.getViewSpecificProperties().ShadersCallbacks;o&amp;&amp;o.forEach((t=&gt;{t.callback(t.userData,e,n,r)}))},e.setMapperShaderParameters=(n,r,o)=&gt;{if(n.getProgram().isUniformUsed(&quot;PrimitiveIDOffset&quot;)&amp;&amp;n.getProgram().setUniformi(&quot;PrimitiveIDOffset&quot;,t.primitiveIDOffset),n.getProgram().isUniformUsed(&quot;VertexIDOffset&quot;)&amp;&amp;n.getProgram().setUniformi(&quot;VertexIDOffset&quot;,t.vertexIDOffset),n.getCABO().getElementCount()&amp;&amp;(t.VBOBuildTime.getMTime()&gt;n.getAttributeUpdateTime().getMTime()||n.getShaderSourceTime().getMTime()&gt;n.getAttributeUpdateTime().getMTime())){const e=t.lastBoundBO.getReferenceByName(&quot;lastLightComplexity&quot;);n.getProgram().isAttributeUsed(&quot;vertexMC&quot;)&amp;&amp;(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),&quot;vertexMC&quot;,n.getCABO().getVertexOffset(),n.getCABO().getStride(),t.context.FLOAT,3,!1)||np(&quot;Error setting vertexMC in shader VAO.&quot;)),n.getProgram().isAttributeUsed(&quot;normalMC&quot;)&amp;&amp;n.getCABO().getNormalOffset()&amp;&amp;e&gt;0?n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),&quot;normalMC&quot;,n.getCABO().getNormalOffset(),n.getCABO().getStride(),t.context.FLOAT,3,!1)||np(&quot;Error setting normalMC in shader VAO.&quot;):n.getVAO().removeAttributeArray(&quot;normalMC&quot;),t.renderable.getCustomShaderAttributes().forEach(((e,r)=&gt;{n.getProgram().isAttributeUsed(`${e}MC`)&amp;&amp;(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),`${e}MC`,n.getCABO().getCustomData()[r].offset,n.getCABO().getStride(),t.context.FLOAT,n.getCABO().getCustomData()[r].components,!1)||np(`Error setting ${e}MC in shader VAO.`))})),n.getProgram().isAttributeUsed(&quot;tcoordMC&quot;)&amp;&amp;n.getCABO().getTCoordOffset()?n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),&quot;tcoordMC&quot;,n.getCABO().getTCoordOffset(),n.getCABO().getStride(),t.context.FLOAT,n.getCABO().getTCoordComponents(),!1)||np(&quot;Error setting tcoordMC in shader VAO.&quot;):n.getVAO().removeAttributeArray(&quot;tcoordMC&quot;),n.getProgram().isAttributeUsed(&quot;scalarColor&quot;)&amp;&amp;n.getCABO().getColorComponents()?n.getVAO().addAttributeArray(n.getProgram(),n.getCABO().getColorBO(),&quot;scalarColor&quot;,n.getCABO().getColorOffset(),n.getCABO().getColorBOStride(),t.context.UNSIGNED_BYTE,4,!0)||np(&quot;Error setting scalarColor in shader VAO.&quot;):n.getVAO().removeAttributeArray(&quot;scalarColor&quot;),n.getAttributeUpdateTime().modified()}if(t.renderable.getNumberOfClippingPlanes()){const e=t.renderable.getNumberOfClippingPlanes(),r=[],a=n.getCABO().getCoordShiftAndScaleEnabled()?n.getCABO().getInverseShiftAndScaleMatrix():null,i=a?T(t.tmpMat4,o.getMatrix()):o.getMatrix();a&amp;&amp;(y(i,i),A(i,i,a),y(i,i));for(let n=0;n&lt;e;n++){const e=[];t.renderable.getClippingPlaneInDataCoords(i,n,e);for(let t=0;t&lt;4;t++)r.push(e[t])}n.getProgram().setUniformi(&quot;numClipPlanes&quot;,e),n.getProgram().setUniform4fv(&quot;clipPlanes&quot;,r)}t.internalColorTexture&amp;&amp;n.getProgram().isUniformUsed(&quot;texture1&quot;)&amp;&amp;n.getProgram().setUniformi(&quot;texture1&quot;,t.internalColorTexture.getTextureUnit());const a=t.openGLActor.getActiveTextures();if(a)for(let e=0;e&lt;a.length;++e){const t=a[e].getTextureUnit(),r=`texture${t+1}`;n.getProgram().isUniformUsed(r)&amp;&amp;n.getProgram().setUniformi(r,t)}if(t.haveSeenDepthRequest&amp;&amp;n.getProgram().setUniformi(&quot;depthRequest&quot;,t.renderDepth?1:0),n.getProgram().isUniformUsed(&quot;coffset&quot;)){const t=e.getCoincidentParameters(r,o);n.getProgram().setUniformf(&quot;coffset&quot;,t.offset),n.getProgram().isUniformUsed(&quot;cfactor&quot;)&amp;&amp;n.getProgram().setUniformf(&quot;cfactor&quot;,t.factor)}n.setMapperShaderParameters(r,o,t._openGLRenderer.getTiledSizeAndOrigin());const i=t._openGLRenderer.getSelector();n.getProgram().setUniform3fArray(&quot;mapperIndex&quot;,i?i.getPropColorValue():[0,0,0]),n.getProgram().setUniformi(&quot;picking&quot;,i?i.getCurrentPass()+1:0)},e.setLightingShaderParameters=(e,n,r)=&gt;{const o=t.lastBoundBO.getReferenceByName(&quot;lastLightComplexity&quot;);if(o&lt;2)return;const a=e.getProgram();let i=0;const s=n.getLightsByReference();for(let e=0;e&lt;s.length;++e){const r=s[e];if(r.getSwitch()&gt;0){const e=r.getColorByReference(),o=r.getIntensity();t.lightColor[0]=e[0]*o,t.lightColor[1]=e[1]*o,t.lightColor[2]=e[2]*o;const s=r.getDirection(),l=n.getActiveCamera().getViewMatrix(),c=[...s];r.lightTypeIsSceneLight()&amp;&amp;(c[0]=l[0]*s[0]+l[1]*s[1]+l[2]*s[2],c[1]=l[4]*s[0]+l[5]*s[1]+l[6]*s[2],c[2]=l[8]*s[0]+l[9]*s[1]+l[10]*s[2],jo(c)),t.lightDirection[0]=c[0],t.lightDirection[1]=c[1],t.lightDirection[2]=c[2],jo(t.lightDirection),a.setUniform3fArray(`lightColor${i}`,t.lightColor),a.setUniform3fArray(`lightDirectionVC${i}`,t.lightDirection),i++}}if(o&lt;3)return;const l=n.getActiveCamera().getViewMatrix();y(l,l),i=0;for(let e=0;e&lt;s.length;++e){const t=s[e];if(t.getSwitch()&gt;0){const e=t.getTransformedPosition(),n=new Float64Array(3);oe(n,e,l),a.setUniform3fArray(`lightAttenuation${i}`,t.getAttenuationValuesByReference()),a.setUniformi(`lightPositional${i}`,t.getPositional()),a.setUniformf(`lightExponent${i}`,t.getExponent()),a.setUniformf(`lightConeAngle${i}`,t.getConeAngle()),a.setUniform3fArray(`lightPositionVC${i}`,[n[0],n[1],n[2]]),i++}}},e.setCameraShaderParameters=(e,r,o)=&gt;{const a=e.getProgram(),i=t.openGLCamera.getKeyMatrices(r),s=r.getActiveCamera(),l=t.openGLCamera.getKeyMatrixTime().getMTime(),c=a.getLastCameraMTime(),u=e.getCABO().getCoordShiftAndScaleEnabled()?e.getCABO().getInverseShiftAndScaleMatrix():null,d=o.getIsIdentity(),p=d?{mcwc:null,normalMatrix:null}:t.openGLActor.getKeyMatrices();if(o.getCoordinateSystem()===ap.DISPLAY){const e=t._openGLRenderer.getTiledSizeAndOrigin();x(t.tmpMat4),t.tmpMat4[0]=2/e.usize,t.tmpMat4[12]=-1,t.tmpMat4[5]=2/e.vsize,t.tmpMat4[13]=-1,A(t.tmpMat4,t.tmpMat4,u),a.setUniformMatrix(&quot;MCPCMatrix&quot;,t.tmpMat4)}else a.setUniformMatrix(&quot;MCPCMatrix&quot;,n([i.wcpc,p.mcwc,u],H,t.tmpMat4));a.isUniformUsed(&quot;MCVCMatrix&quot;)&amp;&amp;a.setUniformMatrix(&quot;MCVCMatrix&quot;,n([i.wcvc,p.mcwc,u],H,t.tmpMat4)),a.isUniformUsed(&quot;normalMatrix&quot;)&amp;&amp;a.setUniformMatrix3x3(&quot;normalMatrix&quot;,n([i.normalMatrix,p.normalMatrix],h,t.tmpMat3)),c!==l&amp;&amp;(a.isUniformUsed(&quot;cameraParallel&quot;)&amp;&amp;a.setUniformi(&quot;cameraParallel&quot;,s.getParallelProjection()),a.setLastCameraMTime(l)),d||a.setLastCameraMTime(0)},e.setPropertyShaderParameters=(e,n,r)=&gt;{const o=e.getProgram();let a=r.getProperty();let i=t.drawingEdges||a.getRepresentation()===Zd.WIREFRAME?a.getEdgeOpacity():a.getOpacity(),s=t.drawingEdges?a.getEdgeColorByReference():a.getAmbientColorByReference(),l=t.drawingEdges?a.getEdgeColorByReference():a.getDiffuseColorByReference(),c=t.drawingEdges?1:a.getAmbient(),u=t.drawingEdges?0:a.getDiffuse(),d=t.drawingEdges?0:a.getSpecular();const p=a.getSpecularPower();o.setUniformf(&quot;opacityUniform&quot;,i),o.setUniform3fArray(&quot;ambientColorUniform&quot;,s),o.setUniform3fArray(&quot;diffuseColorUniform&quot;,l),o.setUniformf(&quot;ambient&quot;,c),o.setUniformf(&quot;diffuse&quot;,u);const f=t.lastBoundBO.getReferenceByName(&quot;lastLightComplexity&quot;);if(f&lt;1)return;let g=a.getSpecularColorByReference();if(o.setUniform3fArray(&quot;specularColorUniform&quot;,g),o.setUniformf(&quot;specularPowerUniform&quot;,p),o.setUniformf(&quot;specular&quot;,d),o.isUniformUsed(&quot;ambientIntensityBF&quot;)){if(a=r.getBackfaceProperty(),i=a.getOpacity(),s=a.getAmbientColor(),c=a.getAmbient(),l=a.getDiffuseColor(),u=a.getDiffuse(),g=a.getSpecularColor(),d=a.getSpecular(),o.setUniformf(&quot;ambientIntensityBF&quot;,c),o.setUniformf(&quot;diffuseIntensityBF&quot;,u),o.setUniformf(&quot;opacityUniformBF&quot;,i),o.setUniform3fArray(&quot;ambientColorUniformBF&quot;,s),o.setUniform3fArray(&quot;diffuseColorUniformBF&quot;,l),f&lt;1)return;o.setUniformf(&quot;specularIntensityBF&quot;,d),o.setUniform3fArray(&quot;specularColorUniformBF&quot;,g),o.setUniformf(&quot;specularPowerUniformBF&quot;,p)}},e.updateMaximumPointCellIds=(e,n)=&gt;{const r=t._openGLRenderer.getSelector();if(!r)return;if(t.selectionWebGLIdsToVTKIds?.points?.length){const e=t.selectionWebGLIdsToVTKIds.points.length;r.setMaximumPointId(e-1)}if(t.selectionWebGLIdsToVTKIds?.cells?.length){const e=t.selectionWebGLIdsToVTKIds.cells.length;r.setMaximumCellId(e-1)}r.getFieldAssociation()===Yd.FIELD_ASSOCIATION_POINTS&amp;&amp;(t.pointPicking=!0)},e.renderPieceStart=(n,r)=&gt;{t.primitiveIDOffset=0,t.vertexIDOffset=0;const o=function(e){const t=e.getSelector();return t?t.getCurrentPass():Bl.MIN_KNOWN_PASS-1}(t._openGLRenderer);t.lastSelectionState!==o&amp;&amp;(t.selectionStateChanged.modified(),t.lastSelectionState=o),t._openGLRenderer.getSelector()&amp;&amp;t._openGLRenderer.getSelector().renderProp(r),e.updateBufferObjects(n,r),t.renderable.getColorTextureMap()&amp;&amp;t.internalColorTexture.activate(),t.lastBoundBO=null},e.renderPieceDraw=(n,r)=&gt;{const o=r.getProperty().getRepresentation(),a=r.getProperty().getEdgeVisibility()&amp;&amp;o===Zd.SURFACE,i=t._openGLRenderer.getSelector(),s=i&amp;&amp;i.getFieldAssociation()===Yd.FIELD_ASSOCIATION_POINTS&amp;&amp;(t.lastSelectionState===Bl.ID_LOW24||t.lastSelectionState===Bl.ID_HIGH24);for(let i=Jd.Start;i&lt;Jd.End;i++){t.primitives[i].setPointPicking(s);t.primitives[i].getCABO().getElementCount()&amp;&amp;(t.drawingEdges=a&amp;&amp;(i===Jd.TrisEdges||i===Jd.TriStripsEdges),t.drawingEdges&amp;&amp;(t.renderDepth||t.lastSelectionState&gt;=0)||(t.lastBoundBO=t.primitives[i],t.primitiveIDOffset+=t.primitives[i].drawArrays(n,r,o,e),t.vertexIDOffset+=t.primitives[i].getCABO().getElementCount()))}},e.renderPieceFinish=(e,n)=&gt;{t.LastBoundBO&amp;&amp;t.LastBoundBO.getVAO().release(),t.renderable.getColorTextureMap()&amp;&amp;t.internalColorTexture.deactivate()},e.renderPiece=(n,r)=&gt;{if(e.invokeEvent(rp),t.renderable.getStatic()||t.renderable.update(),t.currentInput=t.renderable.getInputData(),e.invokeEvent(op),!t.currentInput)return void np(&quot;No input!&quot;);if(!t.currentInput.getPoints||!t.currentInput.getPoints().getNumberOfValues())return;const o=t.context,a=r.getProperty().getBackfaceCulling(),i=r.getProperty().getFrontfaceCulling();a||i?i?(t._openGLRenderWindow.enableCullFace(),o.cullFace(o.FRONT)):(t._openGLRenderWindow.enableCullFace(),o.cullFace(o.BACK)):t._openGLRenderWindow.disableCullFace(),e.renderPieceStart(n,r),e.renderPieceDraw(n,r),e.renderPieceFinish(n,r)},e.updateBufferObjects=(t,n)=&gt;{e.getNeedToRebuildBufferObjects(t,n)&amp;&amp;e.buildBufferObjects(t,n),e.updateMaximumPointCellIds()},e.getNeedToRebuildBufferObjects=(n,r)=&gt;{const o=t.VBOBuildTime.getMTime();return o&lt;e.getMTime()||o&lt;t.renderable.getMTime()||o&lt;r.getMTime()||o&lt;t.currentInput.getMTime()},e.buildBufferObjects=(e,n)=&gt;{const r=t.currentInput;if(null===r)return;t.renderable.mapScalars(r,1);const o=t.renderable.getColorMapColors();t.haveCellScalars=!1;const a=t.renderable.getScalarMode();t.renderable.getScalarVisibility()&amp;&amp;(a!==$d.USE_CELL_DATA&amp;&amp;a!==$d.USE_CELL_FIELD_DATA&amp;&amp;a!==$d.USE_FIELD_DATA&amp;&amp;r.getPointData().getScalars()||a===$d.USE_POINT_FIELD_DATA||!o||(t.haveCellScalars=!0));let i=n.getProperty().getInterpolation()!==Qd.FLAT?r.getPointData().getNormals():null;null===i&amp;&amp;r.getCellData().getNormals()&amp;&amp;(t.haveCellNormals=!0,i=r.getCellData().getNormals());const s=n.getProperty().getRepresentation();let l=r.getPointData().getTCoords();t.openGLActor.getActiveTextures()||(l=null);let c=!1;if(t.renderable.getColorCoordinates()){l=t.renderable.getColorCoordinates(),c=t.renderable.getAreScalarsMappedFromCells(),t.internalColorTexture||(t.internalColorTexture=Hd.newInstance({resizable:!0}));const e=t.internalColorTexture;e.setMinificationFilter(ep.NEAREST),e.setMagnificationFilter(ep.NEAREST),e.setWrapS(tp.CLAMP_TO_EDGE),e.setWrapT(tp.CLAMP_TO_EDGE),e.setOpenGLRenderWindow(t._openGLRenderWindow);const n=t.renderable.getColorTextureMap(),r=n.getExtent(),o=n.getPointData().getScalars();e.create2DFromRaw({width:r[1]-r[0]+1,height:r[3]-r[2]+1,numComps:o.getNumberOfComponents(),dataType:o.getDataType(),data:o.getData()}),e.activate(),e.sendParameters(),e.deactivate()}const u=t.renderable.getCustomShaderAttributes().map((e=&gt;r.getPointData().getArrayByName(e))),d=`${r.getMTime()}A${s}B${r.getMTime()}C${i?i.getMTime():1}D${o?o.getMTime():1}E${n.getProperty().getEdgeVisibility()}F${l?l.getMTime():1}G${u.map((e=&gt;e.getMTime())).join(&quot;,&quot;)}`;if(t.VBOBuildString!==d){const e={points:r.getPoints(),normals:i,tcoords:l,colors:o,cellOffset:0,vertexOffset:0,useTCoordsPerCell:c,haveCellScalars:t.haveCellScalars,haveCellNormals:t.haveCellNormals,customAttributes:u};t.renderable.getPopulateSelectionSettings()&amp;&amp;(t.selectionWebGLIdsToVTKIds={points:null,cells:null});const a=[{inRep:&quot;verts&quot;,cells:r.getVerts()},{inRep:&quot;lines&quot;,cells:r.getLines()},{inRep:&quot;polys&quot;,cells:r.getPolys()},{inRep:&quot;strips&quot;,cells:r.getStrips()},{inRep:&quot;polys&quot;,cells:r.getPolys()},{inRep:&quot;strips&quot;,cells:r.getStrips()}],p=n.getProperty().getEdgeVisibility()&amp;&amp;s===Zd.SURFACE;for(let n=Jd.Start;n&lt;Jd.End;n++)n!==Jd.TrisEdges&amp;&amp;n!==Jd.TriStripsEdges?(e.cellOffset+=t.primitives[n].getCABO().createVBO(a[n].cells,a[n].inRep,s,e,t.selectionWebGLIdsToVTKIds),e.vertexOffset+=t.primitives[n].getCABO().getElementCount()):p?t.primitives[n].getCABO().createVBO(a[n].cells,a[n].inRep,Zd.WIREFRAME,{...e,tcoords:null,colors:null,haveCellScalars:!1,haveCellNormals:!1}):t.primitives[n].releaseGraphicsResources();t.renderable.getPopulateSelectionSettings()&amp;&amp;t.renderable.setSelectionWebGLIdsToVTKIds(t.selectionWebGLIdsToVTKIds),t.VBOBuildString=d}t.VBOBuildTime.modified()},e.getAllocatedGPUMemoryInBytes=()=&gt;{let e=0;return t.primitives.forEach((t=&gt;{e+=t.getAllocatedGPUMemoryInBytes()})),e}}const sp={context:null,VBOBuildTime:0,VBOBuildString:null,primitives:null,primTypes:null,shaderRebuildString:null,tmpMat4:null,ambientColor:[],diffuseColor:[],specularColor:[],lightColor:[],lightDirection:[],lastHaveSeenDepthRequest:!1,haveSeenDepthRequest:!1,lastSelectionState:Bl.MIN_KNOWN_PASS-1,selectionStateChanged:null,selectionWebGLIdsToVTKIds:null,pointPicking:!1};function lp(e,t,n={}){Object.assign(t,sp,n),pn.extend(e,t,n),qd.implementReplaceShaderCoincidentOffset(e,t,n),qd.implementBuildShadersWithReplacements(e,t,n),t.primitives=[],t.primTypes=Jd,t.tmpMat3=c(new Float64Array(9)),t.tmpMat4=x(new Float64Array(16));for(let e=Jd.Start;e&lt;Jd.End;e++)t.primitives[e]=Sd.newInstance(),t.primitives[e].setPrimitiveType(e),t.primitives[e].set({lastLightComplexity:0,lastLightCount:0,lastSelectionPass:!1},!0);Gt(e,t,[&quot;context&quot;]),t.VBOBuildTime={},Vt(t.VBOBuildTime,{mtime:0}),t.selectionStateChanged={},Vt(t.selectionStateChanged,{mtime:0}),ip(e,t)}const cp=Xt(lp,&quot;vtkOpenGLPolyDataMapper&quot;);var up={newInstance:cp,extend:lp};vn(&quot;vtkMapper&quot;,cp);const dp=1,{primTypes:pp}=Sd,{Filter:fp,Wrap:gp}=Hd,{vtkErrorMacro:mp}=ln,hp={type:&quot;StartEvent&quot;},vp={type:&quot;EndEvent&quot;};const Tp={context:null,VBOBuildTime:0,VBOBuildString:null,primitives:null,primTypes:null,shaderRebuildString:null};const xp=Xt((function(e,t,n={}){Object.assign(t,Tp,n),pn.extend(e,t,n),qd.implementReplaceShaderCoincidentOffset(e,t,n),qd.implementBuildShadersWithReplacements(e,t,n),t.primitives=[],t.primTypes=pp,t.tmpMat4=x(new Float64Array(16));for(let e=pp.Start;e&lt;pp.End;e++)t.primitives[e]=Sd.newInstance(),t.primitives[e].setPrimitiveType(e),t.primitives[e].set({lastLightComplexity:0,lastLightCount:0,lastSelectionPass:!1},!0);Gt(e,t,[&quot;context&quot;]),t.VBOBuildTime={},Vt(t.VBOBuildTime,{mtime:0}),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLPolyDataMapper2D&quot;),e.buildPass=n=&gt;{n&amp;&amp;(t.openGLActor2D=e.getFirstAncestorOfType(&quot;vtkOpenGLActor2D&quot;),t._openGLRenderer=t.openGLActor2D.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;),t._openGLRenderWindow=t._openGLRenderer.getLastAncestorOfType(&quot;vtkOpenGLRenderWindow&quot;),t.openGLCamera=t._openGLRenderer.getViewNodeFor(t._openGLRenderer.getRenderable().getActiveCamera(),t.openGLCamera))},e.overlayPass=t=&gt;{t&amp;&amp;e.render()},e.getShaderTemplate=(e,t,n)=&gt;{e.Vertex=&quot;//VTK::System::Dec\\n\\n/*=========================================================================\\n\\n  Program:   Visualization Toolkit\\n  Module:    vtkPolyData2DVS.glsl\\n\\n  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n  All rights reserved.\\n  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n\\n     This software is distributed WITHOUT ANY WARRANTY; without even\\n     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n     PURPOSE.  See the above copyright notice for more information.\\n\\n=========================================================================*/\\n\\n// all variables that represent positions or directions have a suffix\\n// indicating the coordinate system they are in. The possible values are\\n// MC - Model Coordinates\\n// WC - WC world coordinates\\n// VC - View Coordinates\\n// DC - Display Coordinates\\n\\nin vec4 vertexWC;\\n\\n// frag position in VC\\n//VTK::PositionVC::Dec\\n\\n// material property values\\n//VTK::Color::Dec\\n\\n// Texture coordinates\\n//VTK::TCoord::Dec\\n\\n// Apple Bug\\n//VTK::PrimID::Dec\\n\\nuniform mat4 WCVCMatrix;  // World to view matrix\\n\\nvoid main()\\n{\\n  // Apple Bug\\n  //VTK::PrimID::Impl\\n\\n  gl_Position = WCVCMatrix*vertexWC;\\n\\n  //VTK::TCoord::Impl\\n\\n  //VTK::Color::Impl\\n\\n  //VTK::PositionVC::Impl\\n}\\n&quot;,e.Fragment=&quot;//VTK::System::Dec\\n\\n/*=========================================================================\\n\\n  Program:   Visualization Toolkit\\n  Module:    vtkPolyData2DFS.glsl\\n\\n  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n  All rights reserved.\\n  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n\\n     This software is distributed WITHOUT ANY WARRANTY; without even\\n     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n     PURPOSE.  See the above copyright notice for more information.\\n\\n=========================================================================*/\\n\\nuniform int PrimitiveIDOffset;\\n\\n// Texture coordinates\\n//VTK::TCoord::Dec\\n\\n// Scalar coloring\\n//VTK::Color::Dec\\n\\n// Depth Peeling\\n//VTK::DepthPeeling::Dec\\n\\n// picking support\\n//VTK::Picking::Dec\\n\\n// the output of this shader\\n//VTK::Output::Dec\\n\\n// Apple Bug\\n//VTK::PrimID::Dec\\n\\nvoid main()\\n{\\n  // Apple Bug\\n  //VTK::PrimID::Impl\\n\\n  //VTK::Color::Impl\\n  //VTK::TCoord::Impl\\n\\n  //VTK::DepthPeeling::Impl\\n  //VTK::Picking::Impl\\n\\n  if (gl_FragData[0].a &lt;= 0.0)\\n    {\\n    discard;\\n    }\\n}\\n&quot;,e.Geometry=&quot;&quot;},e.render=()=&gt;{const n=t._openGLRenderWindow.getContext();if(t.context!==n){t.context=n;for(let e=pp.Start;e&lt;pp.End;e++)t.primitives[e].setOpenGLRenderWindow(t._openGLRenderWindow)}const r=t.openGLActor2D.getRenderable(),o=t._openGLRenderer.getRenderable();e.renderPiece(o,r)},e.renderPiece=(n,r)=&gt;{if(e.invokeEvent(hp),t.renderable.getStatic()||t.renderable.update(),t.currentInput=t.renderable.getInputData(),e.invokeEvent(vp),!t.currentInput)return void mp(&quot;No input!&quot;);if(!t.currentInput.getPoints||!t.currentInput.getPoints().getNumberOfValues())return;const o=t.context;t._openGLRenderWindow.enableCullFace(),o.cullFace(o.BACK),e.renderPieceStart(n,r),e.renderPieceDraw(n,r),e.renderPieceFinish(n,r)},e.renderPieceStart=(n,r)=&gt;{t.primitiveIDOffset=0,t._openGLRenderer.getSelector()&amp;&amp;(t._openGLRenderer.getSelector().getCurrentPass(),t._openGLRenderer.getSelector().renderProp(r)),t.renderable.getColorTextureMap()&amp;&amp;t.internalColorTexture.activate(),e.updateBufferObjects(n,r),t.lastBoundBO=null},e.getNeedToRebuildShaders=(e,n,r)=&gt;e.getShaderSourceTime().getMTime()&lt;t.renderable.getMTime()||e.getShaderSourceTime().getMTime()&lt;t.currentInput.getMTime(),e.updateBufferObjects=(t,n)=&gt;{e.getNeedToRebuildBufferObjects(t,n)&amp;&amp;e.buildBufferObjects(t,n)},e.getNeedToRebuildBufferObjects=(n,r)=&gt;{const o=t.VBOBuildTime.getMTime();return!!(o&lt;e.getMTime()||o&lt;t._openGLRenderWindow.getMTime()||o&lt;t.renderable.getMTime()||o&lt;r.getMTime()||o&lt;t.currentInput.getMTime()||t.renderable.getTransformCoordinate()&amp;&amp;o&lt;n.getMTime())},e.buildBufferObjects=(e,n)=&gt;{const r=t.currentInput;if(null===r)return;t.renderable.mapScalars(r,n.getProperty().getOpacity());const o=t.renderable.getColorMapColors(),a=n.getProperty().getRepresentation();let i=r.getPointData().getTCoords();t.openGLActor2D.getActiveTextures()||(i=null);let s=!1;if(t.renderable.getColorCoordinates()){i=t.renderable.getColorCoordinates(),s=t.renderable.getAreScalarsMappedFromCells(),t.internalColorTexture||(t.internalColorTexture=Hd.newInstance({resizable:!0}));const e=t.internalColorTexture;e.setMinificationFilter(fp.NEAREST),e.setMagnificationFilter(fp.NEAREST),e.setWrapS(gp.CLAMP_TO_EDGE),e.setWrapT(gp.CLAMP_TO_EDGE),e.setOpenGLRenderWindow(t._openGLRenderWindow);const n=t.renderable.getColorTextureMap(),r=n.getExtent(),o=n.getPointData().getScalars();e.create2DFromRaw({width:r[1]-r[0]+1,height:r[3]-r[2]+1,numComps:o.getNumberOfComponents(),dataType:o.getDataType(),data:o.getData()}),e.activate(),e.sendParameters(),e.deactivate()}const l=t.renderable.getTransformCoordinate(),c=e.getRenderWindow().getViews()[0].getViewportSize(e),u=`${r.getMTime()}A${a}B${r.getMTime()}C${o?o.getMTime():1}D${i?i.getMTime():1}E${l?e.getMTime():1}F${c}`;if(t.VBOBuildString!==u){let n=r.getPoints();if(l){const t=lc.newInstance(),r=n.getNumberOfPoints();t.setNumberOfPoints(r);const o=[];for(let a=0;a&lt;r;++a){n.getPoint(a,o),l.setValue(o);const r=l.getComputedDoubleViewportValue(e);t.setPoint(a,r[0],r[1],0)}n=t}const c={points:n,tcoords:i,colors:o,cellOffset:0,useTCoordsPerCell:s,haveCellScalars:t.renderable.getAreScalarsMappedFromCells(),customAttributes:t.renderable.getCustomShaderAttributes().map((e=&gt;r.getPointData().getArrayByName(e)))};c.cellOffset+=t.primitives[pp.Points].getCABO().createVBO(r.getVerts(),&quot;verts&quot;,a,c),c.cellOffset+=t.primitives[pp.Lines].getCABO().createVBO(r.getLines(),&quot;lines&quot;,a,c),c.cellOffset+=t.primitives[pp.Tris].getCABO().createVBO(r.getPolys(),&quot;polys&quot;,a,c),c.cellOffset+=t.primitives[pp.TriStrips].getCABO().createVBO(r.getStrips(),&quot;strips&quot;,a,c),t.VBOBuildTime.modified(),t.VBOBuildString=u}},e.renderPieceDraw=(n,r)=&gt;{const o=r.getProperty().getRepresentation();t.context.depthMask(!0);for(let a=pp.Start;a&lt;pp.End;a++)t.primitives[a].getCABO().getElementCount()&amp;&amp;(t.lastBoundBO=t.primitives[a],t.primitiveIDOffset+=t.primitives[a].drawArrays(n,r,o,e))},e.renderPieceFinish=(e,n)=&gt;{t.lastBoundBO&amp;&amp;t.lastBoundBO.getVAO().release(),t.renderable.getColorTextureMap()&amp;&amp;t.internalColorTexture.deactivate()},e.replaceShaderValues=(t,n,r)=&gt;{e.replaceShaderColor(t,n,r),e.replaceShaderTCoord(t,n,r),e.replaceShaderPicking(t,n,r),e.replaceShaderPositionVC(t,n,r)},e.replaceShaderColor=(e,n,r)=&gt;{let o=e.Vertex,a=e.Geometry,i=e.Fragment,s=[&quot;uniform vec3 diffuseColorUniform;&quot;,&quot;uniform float opacityUniform;&quot;],l=[&quot;vec3 diffuseColor = diffuseColorUniform;&quot;,&quot;float opacity = opacityUniform;&quot;];0!==t.lastBoundBO.getCABO().getColorComponents()?(s=s.concat([&quot;varying vec4 vertexColorVSOutput;&quot;]),o=vd.substitute(o,&quot;//VTK::Color::Dec&quot;,[&quot;attribute vec4 scalarColor;&quot;,&quot;varying vec4 vertexColorVSOutput;&quot;]).result,o=vd.substitute(o,&quot;//VTK::Color::Impl&quot;,[&quot;vertexColorVSOutput =  scalarColor;&quot;]).result,a=vd.substitute(a,&quot;//VTK::Color::Dec&quot;,[&quot;in vec4 vertexColorVSOutput[];&quot;,&quot;out vec4 vertexColorGSOutput;&quot;]).result,a=vd.substitute(a,&quot;//VTK::Color::Impl&quot;,[&quot;vertexColorGSOutput = vertexColorVSOutput[i];&quot;]).result,i=vd.substitute(i,&quot;//VTK::Color::Impl&quot;,l.concat([&quot;  diffuseColor = vertexColorVSOutput.rgb;&quot;,&quot;  opacity = opacity*vertexColorVSOutput.a;&quot;])).result):t.renderable.getAreScalarsMappedFromCells()&amp;&amp;(l=l.concat([&quot;  vec4 texColor = texture2D(texture1, tcoordVCVSOutput.st);&quot;,&quot;  diffuseColor = texColor.rgb;&quot;,&quot;  opacity = opacity*texColor.a;&quot;])),l=l.concat([&quot;gl_FragData[0] = vec4(diffuseColor, opacity);&quot;]),i=vd.substitute(i,&quot;//VTK::Color::Dec&quot;,s).result,i=vd.substitute(i,&quot;//VTK::Color::Impl&quot;,l).result,e.Vertex=o,e.Geometry=a,e.Fragment=i},e.replaceShaderTCoord=(e,n,r)=&gt;{if(t.lastBoundBO.getCABO().getTCoordOffset()){let n=e.Vertex,r=e.Geometry,o=e.Fragment;const a=t.lastBoundBO.getCABO().getTCoordComponents();1===a?(n=vd.substitute(n,&quot;//VTK::TCoord::Dec&quot;,[&quot;in float tcoordMC;&quot;,&quot;out float tcoordVCVSOutput;&quot;]).result,n=vd.substitute(n,&quot;//VTK::TCoord::Impl&quot;,[&quot;tcoordVCVSOutput = tcoordMC;&quot;]).result,r=vd.substitute(r,&quot;//VTK::TCoord::Dec&quot;,[&quot;in float tcoordVCVSOutput[];\\n&quot;,&quot;out float tcoordVCGSOutput;&quot;]).result,r=vd.substitute(r,[&quot;//VTK::TCoord::Impl&quot;,&quot;tcoordVCGSOutput = tcoordVCVSOutput[i];&quot;]).result,o=vd.substitute(o,&quot;//VTK::TCoord::Dec&quot;,[&quot;in float tcoordVCVSOutput;&quot;,&quot;uniform sampler2D texture1;&quot;]).result,o=vd.substitute(o,&quot;//VTK::TCoord::Impl&quot;,[&quot;gl_FragData[0] = gl_FragData[0]*texture2D(texture1, vec2(tcoordVCVSOutput,0));&quot;]).result):2===a&amp;&amp;(n=vd.substitute(n,&quot;//VTK::TCoord::Dec&quot;,[&quot;in vec2 tcoordMC;&quot;,&quot;out vec2 tcoordVCVSOutput;&quot;]).result,n=vd.substitute(n,&quot;//VTK::TCoord::Impl&quot;,[&quot;tcoordVCVSOutput = tcoordMC;&quot;]).result,r=vd.substitute(r,&quot;//VTK::TCoord::Dec&quot;,[&quot;in vec2 tcoordVCVSOutput[];\\n&quot;,&quot;out vec2 tcoordVCGSOutput;&quot;]).result,r=vd.substitute(r,&quot;//VTK::TCoord::Impl&quot;,[&quot;tcoordVCGSOutput = tcoordVCVSOutput[i];&quot;]).result,o=vd.substitute(o,&quot;//VTK::TCoord::Dec&quot;,[&quot;in vec2 tcoordVCVSOutput;&quot;,&quot;uniform sampler2D texture1;&quot;]).result,o=vd.substitute(o,&quot;//VTK::TCoord::Impl&quot;,[&quot;gl_FragData[0] = gl_FragData[0]*texture2D(texture1, tcoordVCVSOutput.st);&quot;]).result),t.renderable.getAreScalarsMappedFromCells()&amp;&amp;(r=vd.substitute(r,&quot;//VTK::PrimID::Impl&quot;,[&quot;gl_PrimitiveID = gl_PrimitiveIDIn;&quot;]).result),e.Vertex=n,e.Geometry=r,e.Fragment=o}},e.replaceShaderPicking=(e,t,n)=&gt;{let r=e.Fragment;r=vd.substitute(r,&quot;//VTK::Picking::Dec&quot;,[&quot;uniform vec3 mapperIndex;&quot;,&quot;uniform int picking;&quot;]).result,r=vd.substitute(r,&quot;//VTK::Picking::Impl&quot;,&quot;  gl_FragData[0] = picking != 0 ? vec4(mapperIndex,1.0) : gl_FragData[0];&quot;).result,e.Fragment=r},e.replaceShaderPositionVC=(e,n,r)=&gt;{t.lastBoundBO.replaceShaderPositionVC(e,n,r)},e.invokeShaderCallbacks=(e,n,r)=&gt;{const o=t.renderable.getViewSpecificProperties().ShadersCallbacks;o&amp;&amp;o.forEach((t=&gt;{t.callback(t.userData,e,n,r)}))},e.setMapperShaderParameters=(e,n,r)=&gt;{if(e.getProgram().isUniformUsed(&quot;PrimitiveIDOffset&quot;)&amp;&amp;e.getProgram().setUniformi(&quot;PrimitiveIDOffset&quot;,t.primitiveIDOffset),e.getProgram().isAttributeUsed(&quot;vertexWC&quot;)&amp;&amp;(e.getVAO().addAttributeArray(e.getProgram(),e.getCABO(),&quot;vertexWC&quot;,e.getCABO().getVertexOffset(),e.getCABO().getStride(),t.context.FLOAT,3,!1)||mp(&quot;Error setting vertexWC in shader VAO.&quot;)),e.getCABO().getElementCount()&amp;&amp;(t.VBOBuildTime.getMTime()&gt;e.getAttributeUpdateTime().getMTime()||e.getShaderSourceTime().getMTime()&gt;e.getAttributeUpdateTime().getMTime())){t.renderable.getCustomShaderAttributes().forEach(((n,r)=&gt;{e.getProgram().isAttributeUsed(`${n}MC`)&amp;&amp;(e.getVAO().addAttributeArray(e.getProgram(),e.getCABO(),`${n}MC`,e.getCABO().getCustomData()[r].offset,e.getCABO().getStride(),t.context.FLOAT,e.getCABO().getCustomData()[r].components,!1)||mp(`Error setting ${n}MC in shader VAO.`))})),e.getProgram().isAttributeUsed(&quot;tcoordMC&quot;)&amp;&amp;e.getCABO().getTCoordOffset()?e.getVAO().addAttributeArray(e.getProgram(),e.getCABO(),&quot;tcoordMC&quot;,e.getCABO().getTCoordOffset(),e.getCABO().getStride(),t.context.FLOAT,e.getCABO().getTCoordComponents(),!1)||mp(&quot;Error setting tcoordMC in shader VAO.&quot;):e.getVAO().removeAttributeArray(&quot;tcoordMC&quot;),e.getProgram().isAttributeUsed(&quot;scalarColor&quot;)&amp;&amp;e.getCABO().getColorComponents()?e.getVAO().addAttributeArray(e.getProgram(),e.getCABO().getColorBO(),&quot;scalarColor&quot;,e.getCABO().getColorOffset(),e.getCABO().getColorBOStride(),t.context.UNSIGNED_BYTE,4,!0)||mp(&quot;Error setting scalarColor in shader VAO.&quot;):e.getVAO().removeAttributeArray(&quot;scalarColor&quot;),t.internalColorTexture&amp;&amp;e.getProgram().isUniformUsed(&quot;texture1&quot;)&amp;&amp;t.internalColorTexture.getTextureUnit()&gt;-1&amp;&amp;e.getProgram().setUniformi(&quot;texture1&quot;,t.internalColorTexture.getTextureUnit());const o=t.openGLActor2D.getActiveTextures();if(o)for(let t=0;t&lt;o.length;++t){const n=o[t].getTextureUnit(),r=`texture${n+1}`;e.getProgram().isUniformUsed(r)&amp;&amp;e.getProgram().setUniformi(r,n)}e.setMapperShaderParameters(n,r,t._openGLRenderer.getTiledSizeAndOrigin());const a=t._openGLRenderer.getSelector();e.getProgram().setUniform3fArray(&quot;mapperIndex&quot;,a?a.getPropColorValue():[0,0,0]),e.getProgram().setUniformi(&quot;picking&quot;,a?a.getCurrentPass()+1:0)}},e.setPropertyShaderParameters=(e,n,r)=&gt;{const o=t.renderable.getColorMapColors();if(!o||0===o.getNumberOfComponents()){const t=e.getProgram(),n=r.getProperty(),o=n.getOpacity();t.setUniformf(&quot;opacityUniform&quot;,o);const a=n.getColor();t.setUniform3fArray(&quot;diffuseColorUniform&quot;,a)}},e.setLightingShaderParameters=(e,t,n)=&gt;{},e.setCameraShaderParameters=(e,n,r)=&gt;{const o=e.getProgram(),a=e.getCABO().getCoordShiftAndScaleEnabled()?e.getCABO().getInverseShiftAndScaleMatrix():null,i=n.getRenderWindow().getViews()[0].getViewportSize(n),s=n.getViewport(),l=r.getActualPositionCoordinate().getComputedDoubleViewportValue(n),c=[0,0,1,1],u=[0,0,1,1];if(u[0]=s[0]&gt;=c[0]?s[0]:c[0],u[1]=s[1]&gt;=c[1]?s[1]:c[1],u[2]=s[2]&lt;=c[2]?s[2]:c[2],u[3]=s[3]&lt;=c[3]?s[3]:c[3],u[0]&gt;=u[2])return;if(u[1]&gt;=u[3])return;i[0]=Oo(i[0]*(u[2]-u[0])/(s[2]-s[0])),i[1]=Oo(i[1]*(u[3]-u[1])/(s[3]-s[1]));const d=t._openGLRenderer.getParent().getSize(),p=Oo(l[0]-(u[0]-s[0])*d[0]),f=Oo(l[1]-(u[1]-s[1])*d[1]),g=-p;let m=-p+i[0];const h=-f;let v=-f+i[1];g===m&amp;&amp;(m=g+1),h===v&amp;&amp;(v=h+1);const T=x(new Float64Array(16));var b,A,C;T[0]=2/(m-g),T[5]=2/(v-h),T[3]=-1*(m+g)/(m-g),T[7]=-1*(v+h)/(v-h),T[10]=0,T[11]=r.getProperty().getDisplayLocation()===dp?-1:1,T[15]=1,y(T,T),o.setUniformMatrix(&quot;WCVCMatrix&quot;,(b=[T,a],A=H,C=t.tmpMat4,A.identity(C),b.reduce(((e,t,n)=&gt;0===n?t?A.copy(e,t):A.identity(e):t?A.multiply(e,e,t):e),C)))},e.getAllocatedGPUMemoryInBytes=()=&gt;{let e=0;return t.primitives.forEach((t=&gt;{e+=t.getAllocatedGPUMemoryInBytes()})),e}}(e,t)}),&quot;vtkOpenGLPolyDataMapper2D&quot;);vn(&quot;vtkMapper2D&quot;,xp);var yp={Orientation:{HORIZONTAL:&quot;horizontal&quot;,VERTICAL:&quot;vertical&quot;,AUTO:&quot;auto&quot;}};const{VectorMode:bp}=yl,{Orientation:Ap}=yp;function Cp(e,t,n){e.strokeStyle=t.strokeColor,e.lineWidth=t.strokeSize,e.fillStyle=t.fontColor;const r=t.fontSize??n;e.font=`${t.fontStyle} ${r}px ${t.fontFamily}`}function Sp(e,t){return e=&gt;{const n=e.getLastSize(),r=(n[0]/700)**.8,o=(n[1]/700)**.8,a=Math.min(r,o),i=e.getAxisTextStyle(),s=e.getTickTextStyle();Object.assign(i,t.axisTextStyle),Object.assign(s,t.tickTextStyle),void 0===i.fontSize&amp;&amp;(i.fontSize=Math.max(24*a,12)),void 0===s.fontSize&amp;&amp;(e.getLastAspectRatio()&gt;1?s.fontSize=Math.max(20*a,10):s.fontSize=Math.max(16*a,10));const l=e.updateTextureAtlas();e.setTopTitle(!1);const c=e.getBoxSizeByReference();let u=!1;if(u=t.orientation===Ap.VERTICAL||t.orientation!==Ap.HORIZONTAL&amp;&amp;e.getLastAspectRatio()&gt;1,u)e.setTickLabelPixelOffset(.3*s.fontSize),l.titleWidth&lt;=l.tickWidth+e.getTickLabelPixelOffset()+.8*s.fontSize?(e.setTopTitle(!0),e.setAxisTitlePixelOffset(.2*s.fontSize),c[0]=2*(l.tickWidth+e.getTickLabelPixelOffset()+.8*s.fontSize)/n[0],e.setBoxPosition([.98-c[0],-.92])):(e.setAxisTitlePixelOffset(.2*s.fontSize),c[0]=2*(l.titleHeight+e.getAxisTitlePixelOffset()+l.tickWidth+e.getTickLabelPixelOffset()+.8*s.fontSize)/n[0],e.setBoxPosition([.99-c[0],-.92])),c[1]=Math.max(1.2,Math.min(1.84/o,1.84));else{e.setAxisTitlePixelOffset(1.2*s.fontSize),e.setTickLabelPixelOffset(.1*s.fontSize);const t=2*(.8*s.fontSize+l.titleHeight+e.getAxisTitlePixelOffset())/n[1],r=2*l.tickWidth/n[0];c[0]=Math.min(1.9,Math.max(1.4,1.4*r*(e.getTicks().length+3))),c[1]=t,e.setBoxPosition([-.5*c[0],-.97])}e.recomputeBarSegments(l)}}function Pp(e,t){return e=&gt;{const t=e.getLastTickBounds(),n=$r().domain([t[0],t[1]]),r=n.ticks(5),o=n.tickFormat(5);e.setTicks(r),e.setTickStrings(r.map(o))}}const wp=sn.newInstance(((e,t,n={renderable:null})=&gt;{Object.assign(t,{},n),sn.obj(e,t),sn.setGet(e,t,[&quot;axisTitlePixelOffset&quot;,&quot;tickLabelPixelOffset&quot;,&quot;renderable&quot;,&quot;topTitle&quot;,&quot;ticks&quot;,&quot;tickStrings&quot;,&quot;tickPositions&quot;]),sn.get(e,t,[&quot;lastSize&quot;,&quot;lastAspectRatio&quot;,&quot;lastTickBounds&quot;,&quot;axisTextStyle&quot;,&quot;tickTextStyle&quot;,&quot;barActor&quot;,&quot;tmActor&quot;]),sn.getArray(e,t,[&quot;boxPosition&quot;,&quot;boxSize&quot;]),sn.setArray(e,t,[&quot;boxPosition&quot;,&quot;boxSize&quot;],2),t.forceUpdate=!1,t.lastRebuildTime={},sn.obj(t.lastRebuildTime,{mtime:0}),t.lastSize=[-1,-1],t.tmCanvas=document.createElement(&quot;canvas&quot;),t.tmContext=t.tmCanvas.getContext(&quot;2d&quot;),t._tmAtlas=new Map,t.barMapper=Ql.newInstance(),t.barMapper.setInterpolateScalarsBeforeMapping(!0),t.barMapper.setUseLookupTableScalarRange(!0),t.polyData=Ru.newInstance(),t.barMapper.setInputData(t.polyData),t.barActor=fs.newInstance(),t.barActor.setMapper(t.barMapper),t.tmPolyData=Ru.newInstance(),t.tmMapper=Ql.newInstance(),t.tmMapper.setInputData(t.tmPolyData),t.tmTexture=Eu.newInstance({resizable:!0}),t.tmTexture.setInterpolate(!1),t.tmActor=fs.newInstance({parentProp:e}),t.tmActor.setMapper(t.tmMapper),t.tmActor.addTexture(t.tmTexture),t.barPosition=[0,0],t.barSize=[0,0],t.boxPosition=[.88,-.92],t.boxSize=[.1,1.1],t.lastTickBounds=[],function(e,t){t.classHierarchy.push(&quot;vtkScalarBarActorHelper&quot;),e.setRenderable=n=&gt;{t.renderable!==n&amp;&amp;(t.renderable=n,t.barActor.setProperty(n.getProperty()),t.barActor.setParentProp(n),t.barActor.setCoordinateSystemToDisplay(),t.tmActor.setProperty(n.getProperty()),t.tmActor.setParentProp(n),t.tmActor.setCoordinateSystemToDisplay(),t.generateTicks=n.generateTicks,t.axisTextStyle={...n.getAxisTextStyle()},t.tickTextStyle={...n.getTickTextStyle()},e.modified())},e.updateAPISpecificData=(n,r,o)=&gt;{t.lastSize[0]===n[0]&amp;&amp;t.lastSize[1]===n[1]||(t.lastSize[0]=n[0],t.lastSize[1]=n[1],t.lastAspectRatio=n[0]/n[1],t.forceUpdate=!0);const a=t.renderable.getScalarsToColors();if(a&amp;&amp;t.renderable.getVisibility()&amp;&amp;(t.barMapper.setLookupTable(a),t.camera=r,t.renderWindow=o,t.forceUpdate||Math.max(a.getMTime(),e.getMTime(),t.renderable.getMTime())&gt;t.lastRebuildTime.getMTime())){const n=a.getMappingRange();if(t.lastTickBounds=[...n],t.renderable.getGenerateTicks()(e),t.renderable.getAutomated())t.renderable.getAutoLayout()(e);else{t.axisTextStyle={...t.renderable.getAxisTextStyle()},t.tickTextStyle={...t.renderable.getTickTextStyle()},t.barPosition=[...t.renderable.getBarPosition()],t.barSize=[...t.renderable.getBarSize()],t.boxPosition=[...t.renderable.getBoxPosition()],t.boxSize=[...t.renderable.getBoxSize()],t.axisTitlePixelOffset=t.renderable.getAxisTitlePixelOffset(),t.tickLabelPixelOffset=t.renderable.getTickLabelPixelOffset();const n=e.updateTextureAtlas();e.recomputeBarSegments(n)}e.updatePolyDataForLabels(),e.updatePolyDataForBarSegments(),t.lastRebuildTime.modified(),t.forceUpdate=!1}},e.updateTextureAtlas=()=&gt;{t.tmContext.textBaseline=&quot;bottom&quot;,t.tmContext.textAlign=&quot;left&quot;;const n={},r=new Map;let o=0,a=1;Cp(t.tmContext,t.axisTextStyle,18);let i=t.tmContext.measureText(t.renderable.getAxisLabel()),s={height:i.actualBoundingBoxAscent+2,startingHeight:a,width:i.width+2,textStyle:t.axisTextStyle};r.set(t.renderable.getAxisLabel(),s),a+=s.height,o=s.width,n.titleWidth=s.width,n.titleHeight=s.height,n.tickWidth=0,n.tickHeight=0,Cp(t.tmContext,t.tickTextStyle,14);const l=[...e.getTickStrings(),&quot;NaN&quot;,&quot;Below&quot;,&quot;Above&quot;];for(let e=0;e&lt;l.length;e++)r.has(l[e])||(i=t.tmContext.measureText(l[e]),s={height:i.actualBoundingBoxAscent+2,startingHeight:a,width:i.width+2,textStyle:t.tickTextStyle},r.set(l[e],s),a+=s.height,o&lt;s.width&amp;&amp;(o=s.width),n.tickWidth&lt;s.width&amp;&amp;(n.tickWidth=s.width),n.tickHeight&lt;s.height&amp;&amp;(n.tickHeight=s.height));return o=Bo(o),a=Bo(a),r.forEach((e=&gt;{e.tcoords=[0,(a-e.startingHeight-e.height)/a,e.width/o,(a-e.startingHeight-e.height)/a,e.width/o,(a-e.startingHeight)/a,0,(a-e.startingHeight)/a]})),t.tmCanvas.width=o,t.tmCanvas.height=a,t.tmContext.textBaseline=&quot;bottom&quot;,t.tmContext.textAlign=&quot;left&quot;,t.tmContext.clearRect(0,0,o,a),r.forEach(((e,n)=&gt;{const r=e.textStyle===t.axisTextStyle?18:14;Cp(t.tmContext,e.textStyle,r),t.tmContext.fillText(n,1,e.startingHeight+e.height-1)})),t.tmTexture.setCanvas(t.tmCanvas),t.tmTexture.modified(),t._tmAtlas=r,n},e.computeBarSize=e=&gt;{t.vertical=t.boxSize[1]&gt;t.boxSize[0];const n=2*e.tickHeight/t.lastSize[1],r=[1,1];if(t.vertical){const o=2*(e.tickWidth+t.tickLabelPixelOffset)/t.lastSize[0];if(t.topTitle){const n=2*(e.titleHeight+t.axisTitlePixelOffset)/t.lastSize[1];t.barSize[0]=t.boxSize[0]-o,t.barSize[1]=t.boxSize[1]-n}else{const n=2*(e.titleHeight+t.axisTitlePixelOffset)/t.lastSize[0];t.barSize[0]=t.boxSize[0]-n-o,t.barSize[1]=t.boxSize[1]}t.barPosition[0]=t.boxPosition[0]+o,t.barPosition[1]=t.boxPosition[1],r[1]=n}else{const n=(2*e.tickWidth-8)/t.lastSize[0],o=2*(e.titleHeight+t.axisTitlePixelOffset)/t.lastSize[1];t.barSize[0]=t.boxSize[0],t.barPosition[0]=t.boxPosition[0],t.barSize[1]=t.boxSize[1]-o,t.barPosition[1]=t.boxPosition[1],r[0]=n}return r},e.recomputeBarSegments=n=&gt;{const r=e.computeBarSize(n);t.barSegments=[];const o=[0,0],a=t.vertical?1:0,i=t.vertical?.01:.02;function s(e,n){t.barSegments.push({corners:[[...o],[o[0]+r[0],o[1]],[o[0]+r[0],o[1]+r[1]],[o[0],o[1]+r[1]]],scalars:n,title:e}),o[a]+=r[a]+i}t.renderable.getDrawNanAnnotation()&amp;&amp;t.renderable.getScalarsToColors().getNanColor()&amp;&amp;s(&quot;NaN&quot;,[NaN,NaN,NaN,NaN]),t.renderable.getDrawBelowRangeSwatch()&amp;&amp;t.renderable.getScalarsToColors().getUseBelowRangeColor?.()&amp;&amp;s(&quot;Below&quot;,[-.1,-.1,-.1,-.1]);const l=t.renderable.getScalarsToColors().getUseAboveRangeColor?.();o[a]+=i;const c=r[a];r[a]=l?1-2*i-r[a]-o[a]:1-i-o[a],s(&quot;ticks&quot;,t.vertical?[0,0,.995,.995]:[0,.995,.995,0]),t.renderable.getDrawAboveRangeSwatch()&amp;&amp;l&amp;&amp;(r[a]=c,o[a]+=i,s(&quot;Above&quot;,[1.1,1.1,1.1,1.1]))};const n=new Float64Array(3);e.createPolyDataForOneLabel=(e,r,o,a,i,s)=&gt;{const l=t._tmAtlas.get(e);if(!l)return;let c=s.ptIdx,u=s.cellIdx;n[0]=(.5*r[0]+.5)*t.lastSize[0],n[1]=(.5*r[1]+.5)*t.lastSize[1],n[2]=r[2],n[0]+=i[0],n[1]+=i[1];const d=[],p=&quot;vertical&quot;===a?[1,0]:[0,1];&quot;vertical&quot;===a?(d[0]=l.width,d[1]=-l.height,&quot;middle&quot;===o[0]?n[1]-=l.width/2:&quot;right&quot;===o[0]&amp;&amp;(n[1]-=l.width),&quot;middle&quot;===o[1]?n[0]+=l.height/2:&quot;top&quot;===o[1]&amp;&amp;(n[0]+=l.height)):(d[0]=l.width,d[1]=l.height,&quot;middle&quot;===o[0]?n[0]-=l.width/2:&quot;right&quot;===o[0]&amp;&amp;(n[0]-=l.width),&quot;middle&quot;===o[1]?n[1]-=l.height/2:&quot;top&quot;===o[1]&amp;&amp;(n[1]-=l.height)),s.points[3*c]=n[0],s.points[3*c+1]=n[1],s.points[3*c+2]=n[2],s.tcoords[2*c]=l.tcoords[0],s.tcoords[2*c+1]=l.tcoords[1],c++,n[p[0]]+=d[0],s.points[3*c]=n[0],s.points[3*c+1]=n[1],s.points[3*c+2]=n[2],s.tcoords[2*c]=l.tcoords[2],s.tcoords[2*c+1]=l.tcoords[3],c++,n[p[1]]+=d[1],s.points[3*c]=n[0],s.points[3*c+1]=n[1],s.points[3*c+2]=n[2],s.tcoords[2*c]=l.tcoords[4],s.tcoords[2*c+1]=l.tcoords[5],c++,n[p[0]]-=d[0],s.points[3*c]=n[0],s.points[3*c+1]=n[1],s.points[3*c+2]=n[2],s.tcoords[2*c]=l.tcoords[6],s.tcoords[2*c+1]=l.tcoords[7],c++,s.polys[4*u]=3,s.polys[4*u+1]=c-4,s.polys[4*u+2]=c-3,s.polys[4*u+3]=c-2,u++,s.polys[4*u]=3,s.polys[4*u+1]=c-4,s.polys[4*u+2]=c-2,s.polys[4*u+3]=c-1,s.ptIdx+=4,s.cellIdx+=2};const r=new Float64Array(3);e.updatePolyDataForLabels=()=&gt;{const n=e.getTickStrings().length+t.barSegments.length,o=4*n,a=2*n,i=new Float64Array(3*o),s=new Uint16Array(4*a),l=new Float32Array(2*o),c={ptIdx:0,cellIdx:0,polys:s,points:i,tcoords:l},u=t.vertical?0:1,d=t.vertical?1:0;r[2]=-.99;const p=t.vertical?[&quot;right&quot;,&quot;middle&quot;]:[&quot;middle&quot;,&quot;bottom&quot;];let f=[0,1];const g=[0,0];t.vertical?(g[0]=-t.tickLabelPixelOffset,t.topTitle?(r[0]=t.boxPosition[0]+.5*t.boxSize[0],r[1]=t.barPosition[1]+t.barSize[1],e.createPolyDataForOneLabel(t.renderable.getAxisLabel(),r,[&quot;middle&quot;,&quot;bottom&quot;],&quot;horizontal&quot;,[0,t.axisTitlePixelOffset],c)):(r[0]=t.barPosition[0]+t.barSize[0],r[1]=t.barPosition[1]+.5*t.barSize[1],e.createPolyDataForOneLabel(t.renderable.getAxisLabel(),r,[&quot;middle&quot;,&quot;top&quot;],&quot;vertical&quot;,[t.axisTitlePixelOffset,0],c)),f=[-1,0]):(g[1]=t.tickLabelPixelOffset,r[0]=t.barPosition[0]+.5*t.barSize[0],r[1]=t.barPosition[1]+t.barSize[1],e.createPolyDataForOneLabel(t.renderable.getAxisLabel(),r,[&quot;middle&quot;,&quot;bottom&quot;],&quot;horizontal&quot;,[0,t.axisTitlePixelOffset],c)),r[u]=t.barPosition[u]+(.5*f[u]+.5)*t.barSize[u],r[d]=t.barPosition[d]+.5*t.barSize[d];let m=null;for(let n=0;n&lt;t.barSegments.length;n++){const o=t.barSegments[n];&quot;ticks&quot;===o.title?m=o:(r[d]=t.barPosition[d]+.5*t.barSize[d]*(o.corners[2][d]+o.corners[0][d]),e.createPolyDataForOneLabel(o.title,r,p,&quot;horizontal&quot;,g,c))}const h=t.barPosition[d]+t.barSize[d]*m.corners[0][d],v=t.barSize[d]*(m.corners[2][d]-m.corners[0][d]),T=e.getTicks(),x=e.getTickStrings(),y=e.getTickPositions();for(let n=0;n&lt;T.length;n++){const o=y?y[n]:(T[n]-t.lastTickBounds[0])/(t.lastTickBounds[1]-t.lastTickBounds[0]);r[d]=h+v*o,e.createPolyDataForOneLabel(x[n],r,p,&quot;horizontal&quot;,g,c)}const b=Is.newInstance({numberOfComponents:2,values:l,name:&quot;TextureCoordinates&quot;});t.tmPolyData.getPointData().setTCoords(b),t.tmPolyData.getPoints().setData(i,3),t.tmPolyData.getPoints().modified(),t.tmPolyData.getPolys().setData(s,1),t.tmPolyData.getPolys().modified(),t.tmPolyData.modified()},e.updatePolyDataForBarSegments=()=&gt;{const e=t.renderable.getScalarsToColors();let n=0;t.renderable.getDrawNanAnnotation()&amp;&amp;e.getNanColor()&amp;&amp;(n+=1),t.renderable.getDrawBelowRangeSwatch()&amp;&amp;e.getUseBelowRangeColor?.()&amp;&amp;(n+=1),t.renderable.getDrawAboveRangeSwatch()&amp;&amp;e.getUseAboveRangeColor?.()&amp;&amp;(n+=1);const o=4*(1+n),a=o;let i=1;e.getVectorMode()===bp.COMPONENT&amp;&amp;(i=e.getVectorComponent()+1);const s=new Float64Array(3*o),l=new Uint16Array(5*a),c=new Float32Array(o*i);let u=0,d=0;for(let e=0;e&lt;t.barSegments.length;e++){const n=t.barSegments[e];for(let e=0;e&lt;4;e++){r[0]=t.barPosition[0]+n.corners[e][0]*t.barSize[0],r[1]=t.barPosition[1]+n.corners[e][1]*t.barSize[1],s[3*u]=(.5*r[0]+.5)*t.lastSize[0],s[3*u+1]=(.5*r[1]+.5)*t.lastSize[1],s[3*u+2]=r[2];for(let r=0;r&lt;i;r++)c[u*i+r]=t.lastTickBounds[0]+n.scalars[e]*(t.lastTickBounds[1]-t.lastTickBounds[0]);u++}l[5*d]=4,l[5*d+1]=u-4,l[5*d+2]=u-3,l[5*d+3]=u-2,l[5*d+4]=u-1,d++}const p=Is.newInstance({numberOfComponents:i,values:c,name:&quot;Scalars&quot;});t.polyData.getPointData().setScalars(p),t.polyData.getPoints().setData(s,3),t.polyData.getPoints().modified(),t.polyData.getPolys().setData(l,1),t.polyData.getPolys().modified(),t.polyData.modified()}}(e,t)}),&quot;vtkScalarBarActorHelper&quot;);function Ip(e,t,n={}){Object.assign(t,function(e){return{automated:!0,autoLayout:null,axisLabel:&quot;Scalar Value&quot;,barPosition:[0,0],barSize:[0,0],boxPosition:[.88,-.92],boxSize:[.1,1.1],scalarToColors:null,axisTitlePixelOffset:36,axisTextStyle:{fontColor:&quot;white&quot;,fontStyle:&quot;normal&quot;,fontSize:void 0,fontFamily:&quot;serif&quot;},tickLabelPixelOffset:14,tickTextStyle:{fontColor:&quot;white&quot;,fontStyle:&quot;normal&quot;,fontSize:void 0,fontFamily:&quot;serif&quot;},generateTicks:null,drawNanAnnotation:!0,drawBelowRangeSwatch:!0,drawAboveRangeSwatch:!0,orientation:null,...e}}(n)),t.autoLayout||(t.autoLayout=Sp(0,t)),t.generateTicks||(t.generateTicks=Pp()),fs.extend(e,t,n),e.getProperty().setDiffuse(0),e.getProperty().setAmbient(1),sn.setGet(e,t,[&quot;automated&quot;,&quot;autoLayout&quot;,&quot;axisTitlePixelOffset&quot;,&quot;axisLabel&quot;,&quot;scalarsToColors&quot;,&quot;tickLabelPixelOffset&quot;,&quot;generateTicks&quot;,&quot;drawNanAnnotation&quot;,&quot;drawBelowRangeSwatch&quot;,&quot;drawAboveRangeSwatch&quot;,&quot;orientation&quot;]),sn.get(e,t,[&quot;axisTextStyle&quot;,&quot;tickTextStyle&quot;]),sn.getArray(e,t,[&quot;barPosition&quot;,&quot;barSize&quot;,&quot;boxPosition&quot;,&quot;boxSize&quot;]),sn.setArray(e,t,[&quot;barPosition&quot;,&quot;barSize&quot;,&quot;boxPosition&quot;,&quot;boxSize&quot;],2),function(e,t){t.classHierarchy.push(&quot;vtkScalarBarActor&quot;),e.setTickTextStyle=n=&gt;{t.tickTextStyle={...t.tickTextStyle,...n},e.modified()},e.setAxisTextStyle=n=&gt;{t.axisTextStyle={...t.axisTextStyle,...n},e.modified()},e.setOrientationToHorizontal=()=&gt;e.setOrientation(Ap.HORIZONTAL),e.setOrientationToVertical=()=&gt;e.setOrientation(Ap.VERTICAL),e.resetAutoLayoutToDefault=()=&gt;{e.setAutoLayout(Sp(0,t))},e.resetGenerateTicksToDefault=()=&gt;{e.setGenerateTicks(Pp())}}(e,t)}var Op={newInstance:sn.newInstance(Ip,&quot;vtkScalarBarActor&quot;),extend:Ip,newScalarBarActorHelper:wp,...yp};const Rp={};vn(&quot;vtkScalarBarActor&quot;,Xt((function(e,t,n={}){Object.assign(t,Rp,n),pn.extend(e,t,n),t.scalarBarActorHelper=Op.newScalarBarActorHelper(),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLScalarBarActor&quot;),e.buildPass=n=&gt;{n&amp;&amp;(t._openGLRenderer=e.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;),t._openGLRenderWindow=t._openGLRenderer.getParent(),t.scalarBarActorHelper.getRenderable()||t.scalarBarActorHelper.setRenderable(t.renderable),e.prepareNodes(),e.addMissingNode(t.scalarBarActorHelper.getBarActor()),e.addMissingNode(t.scalarBarActorHelper.getTmActor()),e.removeUnusedNodes())},e.opaquePass=(e,n)=&gt;{if(e){const e=t._openGLRenderer?t._openGLRenderer.getRenderable().getActiveCamera():null,n=t._openGLRenderer.getTiledSizeAndOrigin();t.scalarBarActorHelper.updateAPISpecificData([n.usize,n.vsize],e,t._openGLRenderWindow.getRenderable())}}}(e,t)}),&quot;vtkOpenGLScalarBarActor&quot;));const{vtkErrorMacro:Mp}=ln;const Dp={context:null};const Ep=Xt((function(e,t,n={}){Object.assign(t,Dp,n),pn.extend(e,t,n),t.openGLTexture=Hd.newInstance(),t.tris=Sd.newInstance(),t.keyMatrixTime={},Vt(t.keyMatrixTime,{mtime:0}),t.keyMatrices={normalMatrix:c(new Float64Array(9)),mcwc:x(new Float64Array(16))},Gt(e,t,[&quot;context&quot;]),Bt(e,t,[&quot;activeTextures&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLSkybox&quot;),e.buildPass=n=&gt;{if(n){t._openGLRenderer=e.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;),t._openGLRenderWindow=t._openGLRenderer.getParent(),t.context=t._openGLRenderWindow.getContext(),t.tris.setOpenGLRenderWindow(t._openGLRenderWindow),t.openGLTexture.setOpenGLRenderWindow(t._openGLRenderWindow);const n=t._openGLRenderer.getRenderable();t.openGLCamera=t._openGLRenderer.getViewNodeFor(n.getActiveCamera(),t.openGLCamera)}},e.queryPass=(e,n)=&gt;{if(e){if(!t.renderable||!t.renderable.getVisibility())return;n.incrementOpaqueActorCount()}},e.opaquePass=(n,r)=&gt;{if(n&amp;&amp;!t._openGLRenderer.getSelector()){e.updateBufferObjects(),t.context.depthMask(!0),t._openGLRenderWindow.getShaderCache().readyShaderProgram(t.tris.getProgram()),t.openGLTexture.render(t._openGLRenderWindow);const n=t.openGLTexture.getTextureUnit();t.tris.getProgram().setUniformi(&quot;sbtexture&quot;,n);const r=t._openGLRenderer.getRenderable(),o=t.openGLCamera.getKeyMatrices(r),a=new Float64Array(16);if(b(a,o.wcpc),t.tris.getProgram().setUniformMatrix(&quot;IMCPCMatrix&quot;,a),&quot;box&quot;===t.lastFormat){const e=r.getActiveCamera().getPosition();t.tris.getProgram().setUniform3f(&quot;camPos&quot;,e[0],e[1],e[2])}t.tris.getVAO().bind(),t.context.drawArrays(t.context.TRIANGLES,0,t.tris.getCABO().getElementCount()),t.tris.getVAO().release(),t.openGLTexture.deactivate()}},e.updateBufferObjects=()=&gt;{if(!t.tris.getCABO().getElementCount()){const e=new Float32Array(12);for(let t=0;t&lt;4;t++)e[3*t]=t%2*2-1,e[3*t+1]=t&gt;1?1:-1,e[3*t+2]=1;const n=Is.newInstance({numberOfComponents:3,values:e});n.setName(&quot;points&quot;);const r=new Uint16Array(8);r[0]=3,r[1]=0,r[2]=1,r[3]=3,r[4]=3,r[5]=0,r[6]=3,r[7]=2;const o=Is.newInstance({numberOfComponents:1,values:r});t.tris.getCABO().createVBO(o,&quot;polys&quot;,rs.SURFACE,{points:n,cellOffset:0})}t.renderable.getFormat()!==t.lastFormat&amp;&amp;(t.lastFormat=t.renderable.getFormat(),&quot;box&quot;===t.lastFormat&amp;&amp;t.tris.setProgram(t._openGLRenderWindow.getShaderCache().readyShaderProgramArray(&quot;//VTK::System::Dec\\n             attribute vec3 vertexMC;\\n             uniform mat4 IMCPCMatrix;\\n             varying vec3 TexCoords;\\n             void main () {\\n              gl_Position = vec4(vertexMC.xyz, 1.0);\\n              vec4 wpos = IMCPCMatrix * gl_Position;\\n              TexCoords = wpos.xyz/wpos.w;\\n             }&quot;,&quot;//VTK::System::Dec\\n             //VTK::Output::Dec\\n             varying vec3 TexCoords;\\n             uniform samplerCube sbtexture;\\n             uniform vec3 camPos;\\n             void main () {\\n               // skybox looks from inside out\\n               // which means we have to adjust\\n               // our tcoords. Otherwise text would\\n               // be flipped\\n               vec3 tc = normalize(TexCoords - camPos);\\n               if (abs(tc.z) &lt; max(abs(tc.x),abs(tc.y)))\\n               {\\n                 tc = vec3(1.0, 1.0, -1.0) * tc;\\n               }\\n               else\\n               {\\n                 tc = vec3(-1.0, 1.0, 1.0) * tc;\\n               }\\n               gl_FragData[0] = textureCube(sbtexture, tc);\\n             }&quot;,&quot;&quot;)),&quot;background&quot;===t.lastFormat&amp;&amp;t.tris.setProgram(t._openGLRenderWindow.getShaderCache().readyShaderProgramArray(&quot;//VTK::System::Dec\\n             attribute vec3 vertexMC;\\n             uniform mat4 IMCPCMatrix;\\n             varying vec2 TexCoords;\\n             void main () {\\n              gl_Position = vec4(vertexMC.xyz, 1.0);\\n              vec4 wpos = IMCPCMatrix * gl_Position;\\n              TexCoords = vec2(vertexMC.x, vertexMC.y)*0.5 + 0.5;\\n             }&quot;,&quot;//VTK::System::Dec\\n             //VTK::Output::Dec\\n             varying vec2 TexCoords;\\n             uniform sampler2D sbtexture;\\n             void main () {\\n               gl_FragData[0] = texture2D(sbtexture, TexCoords);\\n             }&quot;,&quot;&quot;)),t.tris.getShaderSourceTime().modified(),t.tris.getVAO().bind(),t.tris.getVAO().addAttributeArray(t.tris.getProgram(),t.tris.getCABO(),&quot;vertexMC&quot;,t.tris.getCABO().getVertexOffset(),t.tris.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE)||Mp(&quot;Error setting vertexMC in shader VAO.&quot;));const e=t.renderable.getTextures();e.length||Mp(&quot;vtkSkybox requires a texture map&quot;),t.openGLTexture.getRenderable()!==e[0]&amp;&amp;(t.openGLTexture.releaseGraphicsResources(t._openGLRenderWindow),t.openGLTexture.setRenderable(e[0]))}}(e,t)}));vn(&quot;vtkSkybox&quot;,Ep);const{FieldAssociations:Vp}=Qs;const Lp={fieldAssociation:Vp.FIELD_ASSOCIATION_CELLS,captureZValues:!1};function Bp(e,t,n={}){Object.assign(t,Lp,n),sn.obj(e,t),sn.setGet(e,t,[&quot;fieldAssociation&quot;,&quot;captureZValues&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkHardwareSelector&quot;),e.getSourceDataAsync=async(e,t,n,r,o)=&gt;{},e.selectAsync=async(t,n,r,o,a)=&gt;{const i=await e.getSourceDataAsync(t,n,r,o,a);return i?i.generateSelection(n,r,o,a):[]}}(e,t)}var Fp={newInstance:sn.newInstance(Bp,&quot;vtkHardwareSelector&quot;),extend:Bp};const Np={glFramebuffer:null,colorBuffers:null,depthTexture:null,previousDrawBinding:0,previousReadBinding:0,previousDrawBuffer:0,previousReadBuffer:0,previousActiveFramebuffer:null};function kp(e,t,n={}){Object.assign(t,Np,n),Vt(e,t),t.colorBuffers&amp;&amp;Tt(&quot;you cannot initialize colorBuffers through the constructor. You should call setColorBuffer() instead.&quot;),t.colorBuffers=[],Ut(e,t,[&quot;colorBuffers&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkFramebuffer&quot;),e.getBothMode=()=&gt;t.context.FRAMEBUFFER,e.saveCurrentBindingsAndBuffers=t=&gt;{const n=void 0!==t?t:e.getBothMode();e.saveCurrentBindings(n),e.saveCurrentBuffers(n)},e.saveCurrentBindings=e=&gt;{if(!t.context)return void Tt(&quot;you must set the OpenGLRenderWindow before calling saveCurrentBindings&quot;);const n=t.context;t.previousDrawBinding=n.getParameter(t.context.FRAMEBUFFER_BINDING),t.previousActiveFramebuffer=t._openGLRenderWindow.getActiveFramebuffer()},e.saveCurrentBuffers=e=&gt;{},e.restorePreviousBindingsAndBuffers=t=&gt;{const n=void 0!==t?t:e.getBothMode();e.restorePreviousBindings(n),e.restorePreviousBuffers(n)},e.restorePreviousBindings=e=&gt;{if(!t.context)return void Tt(&quot;you must set the OpenGLRenderWindow before calling restorePreviousBindings&quot;);const n=t.context;n.bindFramebuffer(n.FRAMEBUFFER,t.previousDrawBinding),t._openGLRenderWindow.setActiveFramebuffer(t.previousActiveFramebuffer)},e.restorePreviousBuffers=e=&gt;{},e.bind=(n=null)=&gt;{let r=n;null===r&amp;&amp;(r=t.context.FRAMEBUFFER),t.context.bindFramebuffer(r,t.glFramebuffer);for(let e=0;e&lt;t.colorBuffers.length;e++)t.colorBuffers[e].bind();t._openGLRenderWindow.setActiveFramebuffer(e)},e.create=(e,n)=&gt;{t.context?(t.glFramebuffer=t.context.createFramebuffer(),t.glFramebuffer.width=e,t.glFramebuffer.height=n):Tt(&quot;you must set the OpenGLRenderWindow before calling create&quot;)},e.setColorBuffer=(e,n=0)=&gt;{const r=t.context;if(!r)return void Tt(&quot;you must set the OpenGLRenderWindow before calling setColorBuffer&quot;);let o=r.COLOR_ATTACHMENT0;if(n&gt;0){if(!t._openGLRenderWindow.getWebgl2())return void Tt(&quot;Using multiple framebuffer attachments requires WebGL 2&quot;);o+=n}t.colorBuffers[n]=e,r.framebufferTexture2D(r.FRAMEBUFFER,o,r.TEXTURE_2D,e.getHandle(),0)},e.removeColorBuffer=(e=0)=&gt;{const n=t.context;if(!n)return void Tt(&quot;you must set the OpenGLRenderWindow before calling removeColorBuffer&quot;);let r=n.COLOR_ATTACHMENT0;if(e&gt;0){if(!t._openGLRenderWindow.getWebgl2())return void Tt(&quot;Using multiple framebuffer attachments requires WebGL 2&quot;);r+=e}n.framebufferTexture2D(n.FRAMEBUFFER,r,n.TEXTURE_2D,null,0),t.colorBuffers=t.colorBuffers.splice(e,1)},e.setDepthBuffer=e=&gt;{if(t.context)if(t._openGLRenderWindow.getWebgl2()){const n=t.context;n.framebufferTexture2D(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.TEXTURE_2D,e.getHandle(),0)}else Tt(&quot;Attaching depth buffer textures to fbo requires WebGL 2&quot;);else Tt(&quot;you must set the OpenGLRenderWindow before calling setDepthBuffer&quot;)},e.removeDepthBuffer=()=&gt;{if(t.context)if(t._openGLRenderWindow.getWebgl2()){const e=t.context;e.framebufferTexture2D(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.TEXTURE_2D,null,0)}else Tt(&quot;Attaching depth buffer textures to framebuffers requires WebGL 2&quot;);else Tt(&quot;you must set the OpenGLRenderWindow before calling removeDepthBuffer&quot;)},e.getGLFramebuffer=()=&gt;t.glFramebuffer,e.setOpenGLRenderWindow=n=&gt;{t._openGLRenderWindow!==n&amp;&amp;(e.releaseGraphicsResources(),t._openGLRenderWindow=n,t.context=null,n&amp;&amp;(t.context=t._openGLRenderWindow.getContext()))},e.releaseGraphicsResources=()=&gt;{t.glFramebuffer&amp;&amp;t.context.deleteFramebuffer(t.glFramebuffer)},e.getSize=()=&gt;null==t.glFramebuffer?null:[t.glFramebuffer.width,t.glFramebuffer.height],e.populateFramebuffer=()=&gt;{if(!t.context)return void Tt(&quot;you must set the OpenGLRenderWindow before calling populateFrameBuffer&quot;);e.bind();const n=t.context,r=Hd.newInstance();r.setOpenGLRenderWindow(t._openGLRenderWindow),r.setMinificationFilter(wd.LINEAR),r.setMagnificationFilter(wd.LINEAR),r.create2DFromRaw({width:t.glFramebuffer.width,height:t.glFramebuffer.height,numComps:4,dataType:ms.UNSIGNED_CHAR,data:null}),e.setColorBuffer(r),t.depthTexture=n.createRenderbuffer(),n.bindRenderbuffer(n.RENDERBUFFER,t.depthTexture),n.renderbufferStorage(n.RENDERBUFFER,n.DEPTH_COMPONENT16,t.glFramebuffer.width,t.glFramebuffer.height),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.RENDERBUFFER,t.depthTexture)},e.getColorTexture=()=&gt;t.colorBuffers[0]}(e,t)}var Gp={newInstance:Xt(kp,&quot;vtkFramebuffer&quot;),extend:kp};var Up={SelectionContent:{GLOBALIDS:0,PEDIGREEIDS:1,VALUES:2,INDICES:3,FRUSTUM:4,LOCATIONS:5,THRESHOLDS:6,BLOCKS:7,QUERY:8},SelectionField:{CELL:0,POINT:1,FIELD:2,VERTEX:3,EDGE:4,ROW:5}};const _p={contentType:-1,fieldType:-1,properties:null,selectionList:[]};function Kp(e,t,n={}){Object.assign(t,_p,n),sn.obj(e,t),t.properties={},sn.setGet(e,t,[&quot;contentType&quot;,&quot;fieldType&quot;,&quot;properties&quot;,&quot;selectionList&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkSelectionNode&quot;),e.getBounds=()=&gt;t.points.getBounds()}(e,t)}var zp={newInstance:sn.newInstance(Kp,&quot;vtkSelectionNode&quot;),extend:Kp,...Up};const{PassTypes:Wp}=Fl,{SelectionContent:Hp,SelectionField:jp}=zp,{FieldAssociations:Xp}=Qs,{vtkErrorMacro:qp,vtkDebugMacro:Yp}=sn;function Jp(e){return`${e.propID} ${e.compositeID}`}function Zp(e,t,n,r){if(!n)return 0;return n[4*(t*(r[2]-r[0]+1)+e)+3]}function Qp(e,t,n,r,o=null){if(!n)return 0;const a=4*(t*(r[2]-r[0]+1)+e),i=n[a],s=n[a+1];return 256*(256*n[a+2]+s)+i}function $p(e,t){let n=t;return n&lt;&lt;=24,n|=e,n}function ef(e,t,n,r){const o=n&lt;0?0:n;if(0===o){if(r[0]=t[0],r[1]=t[1],t[0]&lt;e.area[0]||t[0]&gt;e.area[2]||t[1]&lt;e.area[1]||t[1]&gt;e.area[3])return null;const n=[t[0]-e.area[0],t[1]-e.area[1]],o=Qp(n[0],n[1],e.pixBuffer[Wp.ACTOR_PASS],e.area,&quot;getPixelInformationWithData1&quot;);if(o&lt;=0||o-1&gt;=e.props.length)return null;const a={valid:!0};a.propID=o-1,a.prop=e.props[a.propID];let i=Qp(n[0],n[1],e.pixBuffer[Wp.COMPOSITE_INDEX_PASS],e.area,&quot;getPixelInformationWithData2&quot;);if((i&lt;0||i&gt;16777215)&amp;&amp;(i=0),a.compositeID=i-1,e.captureZValues){const r=4*(n[1]*(e.area[2]-e.area[0]+1)+n[0]);a.zValue=(256*e.zBuffer[r]+e.zBuffer[r+1])/65535,a.displayPosition=t}if(e.pixBuffer[Wp.ID_LOW24]&amp;&amp;0===Zp(n[0],n[1],e.pixBuffer[Wp.ID_LOW24],e.area))return a;const s=Qp(n[0],n[1],e.pixBuffer[Wp.ID_LOW24],e.area,&quot;getPixelInformationWithData3&quot;),l=Qp(n[0],n[1],e.pixBuffer[Wp.ID_HIGH24],e.area,&quot;getPixelInformationWithData4&quot;);return a.attributeID=$p(s,l),a}const a=[t[0],t[1]],i=[0,0];let s=ef(e,t,0,r);if(s&amp;&amp;s.valid)return s;for(let t=1;t&lt;o;++t){for(let n=a[1]&gt;t?a[1]-t:0;n&lt;=a[1]+t;++n){if(i[1]=n,a[0]&gt;=t&amp;&amp;(i[0]=a[0]-t,s=ef(e,i,0,r),s&amp;&amp;s.valid))return s;if(i[0]=a[0]+t,s=ef(e,i,0,r),s&amp;&amp;s.valid)return s}for(let n=a[0]&gt;=t?a[0]-(t-1):0;n&lt;=a[0]+(t-1);++n){if(i[0]=n,a[1]&gt;=t&amp;&amp;(i[1]=a[1]-t,s=ef(e,i,0,r),s&amp;&amp;s.valid))return s;if(i[1]=a[1]+t,s=ef(e,i,0,r),s&amp;&amp;s.valid)return s}}return r[0]=t[0],r[1]=t[1],null}function tf(e,t,n,r,o){const a=[];let i=0;return t.forEach(((t,s)=&gt;{const l=zp.newInstance();switch(l.setContentType(Hp.INDICES),e){case Xp.FIELD_ASSOCIATION_CELLS:l.setFieldType(jp.CELL);break;case Xp.FIELD_ASSOCIATION_POINTS:l.setFieldType(jp.POINT);break;default:qp(&quot;Unknown field association&quot;)}l.getProperties().propID=t.info.propID,l.getProperties().prop=t.info.prop,l.getProperties().compositeID=t.info.compositeID,l.getProperties().attributeID=t.info.attributeID,l.getProperties().pixelCount=t.pixelCount,n&amp;&amp;(l.getProperties().displayPosition=[t.info.displayPosition[0],t.info.displayPosition[1],t.info.zValue],l.getProperties().worldPosition=o.displayToWorld(t.info.displayPosition[0],t.info.displayPosition[1],t.info.zValue,r)),l.setSelectionList(t.attributeIDs),a[i]=l,i++})),a}function nf(e,t){t.classHierarchy.push(&quot;vtkOpenGLHardwareSelector&quot;),e.releasePixBuffers=()=&gt;{t.rawPixBuffer=[],t.pixBuffer=[],t.zBuffer=null},e.beginSelection=()=&gt;{t._openGLRenderer=t._openGLRenderWindow.getViewNodeFor(t._renderer,t._openGLRenderer),t.maxAttributeId=0;const n=t._openGLRenderWindow.getSize();if(t.framebuffer){t.framebuffer.setOpenGLRenderWindow(t._openGLRenderWindow),t.framebuffer.saveCurrentBindingsAndBuffers();const e=t.framebuffer.getSize();e&amp;&amp;e[0]===n[0]&amp;&amp;e[1]===n[1]?t.framebuffer.bind():(t.framebuffer.create(n[0],n[1]),t.framebuffer.populateFramebuffer())}else t.framebuffer=Gp.newInstance(),t.framebuffer.setOpenGLRenderWindow(t._openGLRenderWindow),t.framebuffer.saveCurrentBindingsAndBuffers(),t.framebuffer.create(n[0],n[1]),t.framebuffer.populateFramebuffer();if(t._openGLRenderer.clear(),t._openGLRenderer.setSelector(e),t.hitProps={},t.propPixels={},t.props=[],e.releasePixBuffers(),t.fieldAssociation===Xp.FIELD_ASSOCIATION_POINTS){const e=t._openGLRenderWindow.getContext(),n=e.isEnabled(e.BLEND);e.disable(e.BLEND),t._openGLRenderWindow.traverseAllPasses(),n&amp;&amp;e.enable(e.BLEND)}},e.endSelection=()=&gt;{t.hitProps={},t._openGLRenderer.setSelector(null),t.framebuffer.restorePreviousBindingsAndBuffers()},e.preCapturePass=()=&gt;{const e=t._openGLRenderWindow.getContext();t.originalBlending=e.isEnabled(e.BLEND),e.disable(e.BLEND)},e.postCapturePass=()=&gt;{const e=t._openGLRenderWindow.getContext();t.originalBlending&amp;&amp;e.enable(e.BLEND)},e.select=()=&gt;{let n=null;return e.captureBuffers()&amp;&amp;(n=e.generateSelection(t.area[0],t.area[1],t.area[2],t.area[3]),e.releasePixBuffers()),n},e.getSourceDataAsync=async(n,r,o,a,i)=&gt;{if(t._renderer=n,void 0===r){const n=t._openGLRenderWindow.getSize();e.setArea(0,0,n[0]-1,n[1]-1)}else e.setArea(r,o,a,i);if(!e.captureBuffers())return!1;const s={area:[...t.area],pixBuffer:[...t.pixBuffer],captureZValues:t.captureZValues,zBuffer:t.zBuffer,props:[...t.props],fieldAssociation:t.fieldAssociation,renderer:n,openGLRenderWindow:t._openGLRenderWindow};return s.generateSelection=(...e)=&gt;function(e,t,n,r,o){const a=Math.floor(t),i=Math.floor(n),s=Math.floor(r),l=Math.floor(o),c=new Map,u=[0,0];for(let t=i;t&lt;=l;t++)for(let n=a;n&lt;=s;n++){const r=ef(e,[n,t],0,u);if(r&amp;&amp;r.valid){const t=Jp(r);if(c.has(t)){const n=c.get(t);n.pixelCount++,e.captureZValues&amp;&amp;r.zValue&lt;n.info.zValue&amp;&amp;(n.info=r),-1===n.attributeIDs.indexOf(r.attributeID)&amp;&amp;n.attributeIDs.push(r.attributeID)}else c.set(t,{info:r,pixelCount:1,attributeIDs:[r.attributeID]})}}return tf(e.fieldAssociation,c,e.captureZValues,e.renderer,e.openGLRenderWindow)}(s,...e),s},e.captureBuffers=()=&gt;{if(!t._renderer||!t._openGLRenderWindow)return qp(&quot;Renderer and view must be set before calling Select.&quot;),!1;t._openGLRenderer=t._openGLRenderWindow.getViewNodeFor(t._renderer,t._openGLRenderer),t._openGLRenderWindow.getRenderable().preRender(),e.invokeEvent({type:&quot;StartEvent&quot;}),t.originalBackground=t._renderer.getBackgroundByReference(),t._renderer.setBackground(0,0,0,0);const n=t._openGLRenderWindow.getRenderPasses();e.beginSelection();const r=[];for(t.currentPass=Wp.MIN_KNOWN_PASS;t.currentPass&lt;=Wp.MAX_KNOWN_PASS;t.currentPass++)e.passRequired(t.currentPass)&amp;&amp;(e.preCapturePass(t.currentPass),t.captureZValues&amp;&amp;t.currentPass===Wp.ACTOR_PASS&amp;&amp;&quot;function&quot;==typeof n[0].requestDepth&amp;&amp;&quot;function&quot;==typeof n[0].getFramebuffer?(n[0].requestDepth(),t._openGLRenderWindow.traverseAllPasses()):t._openGLRenderWindow.traverseAllPasses(),e.postCapturePass(t.currentPass),e.savePixelBuffer(t.currentPass),r.push(t.currentPass));return r.forEach((n=&gt;{t.currentPass=n,e.processPixelBuffers()})),t.currentPass=Wp.MAX_KNOWN_PASS,e.endSelection(),t._renderer.setBackground(t.originalBackground),e.invokeEvent({type:&quot;EndEvent&quot;}),!0},e.processPixelBuffers=()=&gt;{t.props.forEach(((n,r)=&gt;{e.isPropHit(r)&amp;&amp;n.processSelectorPixelBuffers(e,t.propPixels[r])}))},e.passRequired=e=&gt;{if(e===Wp.ID_HIGH24){if(t.fieldAssociation===Xp.FIELD_ASSOCIATION_POINTS)return t.maximumPointId&gt;16777215;if(t.fieldAssociation===Xp.FIELD_ASSOCIATION_CELLS)return t.maximumCellId&gt;16777215}return!0},e.savePixelBuffer=n=&gt;{if(t.pixBuffer[n]=t._openGLRenderWindow.getPixelData(t.area[0],t.area[1],t.area[2],t.area[3]),!t.rawPixBuffer[n]){const e=(t.area[2]-t.area[0]+1)*(t.area[3]-t.area[1]+1)*4;t.rawPixBuffer[n]=new Uint8Array(e),t.rawPixBuffer[n].set(t.pixBuffer[n])}if(n===Wp.ACTOR_PASS){if(t.captureZValues){const e=t._openGLRenderWindow.getRenderPasses();if(&quot;function&quot;==typeof e[0].requestDepth&amp;&amp;&quot;function&quot;==typeof e[0].getFramebuffer){const n=e[0].getFramebuffer();n.saveCurrentBindingsAndBuffers(),n.bind(),t.zBuffer=t._openGLRenderWindow.getPixelData(t.area[0],t.area[1],t.area[2],t.area[3]),n.restorePreviousBindingsAndBuffers()}}e.buildPropHitList(t.rawPixBuffer[n])}},e.buildPropHitList=e=&gt;{let n=0;for(let r=0;r&lt;=t.area[3]-t.area[1];r++)for(let o=0;o&lt;=t.area[2]-t.area[0];o++){let a=Qp(o,r,e,t.area,&quot;buildPropHitList&quot;);a&gt;0&amp;&amp;(a--,a in t.hitProps||(t.hitProps[a]=!0,t.propPixels[a]=[]),t.propPixels[a].push(4*n)),++n}},e.renderProp=n=&gt;{t.currentPass===Wp.ACTOR_PASS&amp;&amp;(e.setPropColorValueFromInt(t.props.length+1),t.props.push(n))},e.renderCompositeIndex=n=&gt;{t.currentPass===Wp.COMPOSITE_INDEX_PASS&amp;&amp;e.setPropColorValueFromInt(n+1)},e.renderAttributeId=e=&gt;{e&lt;0||(t.maxAttributeId=e&gt;t.maxAttributeId?e:t.maxAttributeId)},e.passTypeToString=e=&gt;sn.enumToString(Wp,e),e.isPropHit=e=&gt;Boolean(t.hitProps[e]),e.setPropColorValueFromInt=e=&gt;{t.propColorValue[0]=e%256/255,t.propColorValue[1]=Math.floor(e/256)%256/255,t.propColorValue[2]=Math.floor(e/65536)%256/255},e.getPixelInformation=(n,r,o)=&gt;{const a=r&lt;0?0:r;if(Yp(&quot;getPixelInformation called&quot;,a),0===a){if(o[0]=n[0],o[1]=n[1],n[0]&lt;t.area[0]||n[0]&gt;t.area[2]||n[1]&lt;t.area[1]||n[1]&gt;t.area[3])return null;Yp(n),Yp(t.area);const e=[n[0]-t.area[0],n[1]-t.area[1]];Yp(&quot;adjusted displayPosition&quot;,e);const r=Qp(e[0],e[1],t.pixBuffer[Wp.ACTOR_PASS],t.area,&quot;getPixelInformation&quot;);if(Yp(&quot;actorid&quot;,r),r&lt;=0||r-1&gt;=t.props.length)return null;const a={valid:!0};a.propID=r-1,a.prop=t.props[a.propID];let i=Qp(e[0],e[1],t.pixBuffer[Wp.COMPOSITE_INDEX_PASS],t.area,&quot;getPixelInformation2&quot;);if((i&lt;0||i&gt;16777215)&amp;&amp;(i=0),a.compositeID=i-1,t.captureZValues){const r=4*(e[1]*(t.area[2]-t.area[0]+1)+e[0]);a.zValue=(256*t.zBuffer[r]+t.zBuffer[r+1])/65535,a.displayPosition=n}if(t.pixBuffer[Wp.ID_LOW24]&amp;&amp;0===Zp(e[0],e[1],t.pixBuffer[Wp.ID_LOW24],t.area))return a;const s=Qp(e[0],e[1],t.pixBuffer[Wp.ID_LOW24],t.area,&quot;getPixelInformation3&quot;),l=Qp(e[0],e[1],t.pixBuffer[Wp.ID_HIGH24],t.area,&quot;getPixelInformation4&quot;);return a.attributeID=$p(s,l),a}const i=[n[0],n[1]],s=[0,0];let l=e.getPixelInformation(n,0,o);if(l&amp;&amp;l.valid)return l;for(let t=1;t&lt;a;++t){for(let n=i[1]&gt;t?i[1]-t:0;n&lt;=i[1]+t;++n){if(s[1]=n,i[0]&gt;=t&amp;&amp;(s[0]=i[0]-t,l=e.getPixelInformation(s,0,o),l&amp;&amp;l.valid))return l;if(s[0]=i[0]+t,l=e.getPixelInformation(s,0,o),l&amp;&amp;l.valid)return l}for(let n=i[0]&gt;=t?i[0]-(t-1):0;n&lt;=i[0]+(t-1);++n){if(s[0]=n,i[1]&gt;=t&amp;&amp;(s[1]=i[1]-t,l=e.getPixelInformation(s,0,o),l&amp;&amp;l.valid))return l;if(s[1]=i[1]+t,l=e.getPixelInformation(s,0,o),l&amp;&amp;l.valid)return l}}return o[0]=n[0],o[1]=n[1],null},e.generateSelection=(n,r,o,a)=&gt;{const i=Math.floor(n),s=Math.floor(r),l=Math.floor(o),c=Math.floor(a),u=new Map,d=[0,0];for(let n=s;n&lt;=c;n++)for(let r=i;r&lt;=l;r++){const o=[r,n],a=e.getPixelInformation(o,0,d);if(a&amp;&amp;a.valid){const e=Jp(a);if(u.has(e)){const n=u.get(e);n.pixelCount++,t.captureZValues&amp;&amp;a.zValue&lt;n.info.zValue&amp;&amp;(n.info=a),-1===n.attributeIDs.indexOf(a.attributeID)&amp;&amp;n.attributeIDs.push(a.attributeID)}else u.set(e,{info:a,pixelCount:1,attributeIDs:[a.attributeID]})}}return tf(t.fieldAssociation,u,t.captureZValues,t._renderer,t._openGLRenderWindow)},e.getRawPixelBuffer=e=&gt;t.rawPixBuffer[e],e.getPixelBuffer=e=&gt;t.pixBuffer[e],e.attach=(e,n)=&gt;{t._openGLRenderWindow=e,t._renderer=n};const n=e.setArea;e.setArea=(...e)=&gt;!!n(...e)&amp;&amp;(t.area[0]=Math.floor(t.area[0]),t.area[1]=Math.floor(t.area[1]),t.area[2]=Math.floor(t.area[2]),t.area[3]=Math.floor(t.area[3]),!0)}const rf={area:void 0,currentPass:-1,propColorValue:null,props:null,maximumPointId:0,maximumCellId:0,idOffset:1};function of(e,t,n={}){Object.assign(t,rf,n),Fp.extend(e,t,n),t.propColorValue=[0,0,0],t.props=[],t.area||(t.area=[0,0,0,0]),sn.setGetArray(e,t,[&quot;area&quot;],4),sn.setGet(e,t,[&quot;_renderer&quot;,&quot;currentPass&quot;,&quot;_openGLRenderWindow&quot;,&quot;maximumPointId&quot;,&quot;maximumCellId&quot;]),sn.setGetArray(e,t,[&quot;propColorValue&quot;],3),sn.moveToProtected(e,t,[&quot;renderer&quot;,&quot;openGLRenderWindow&quot;]),sn.event(e,t,&quot;event&quot;),nf(e,t)}var af={newInstance:sn.newInstance(of,&quot;vtkOpenGLHardwareSelector&quot;),extend:of,...Fl};const{vtkErrorMacro:sf}=ln,{Representation:lf}=us,{ObjectType:cf}=nd,{PassTypes:uf}=af,df={type:&quot;StartEvent&quot;},pf={type:&quot;EndEvent&quot;};const ff={normalMatrix:null,mcpcMatrix:null,mcwcMatrix:null};const gf=Xt((function(e,t,n={}){Object.assign(t,ff,n),up.extend(e,t,n),t.tmpMat3=c(new Float64Array(9)),t.normalMatrix=c(new Float64Array(9)),t.mcpcMatrix=x(new Float64Array(16)),t.mcvcMatrix=x(new Float64Array(16)),t.tmpColor=[],t.glyphBOBuildTime={},Vt(t.glyphBOBuildTime,{mtime:0}),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLGlyph3DMapper&quot;);const n={...e};e.renderPiece=(n,r)=&gt;{if(e.invokeEvent(df),t.renderable.getStatic()||t.renderable.update(),t.currentInput=t.renderable.getInputData(1),e.invokeEvent(pf),!t.currentInput)return void sf(&quot;No input!&quot;);if(!t.currentInput.getPoints||!t.currentInput.getPoints().getNumberOfValues())return;const o=t.context;t._openGLRenderWindow.getWebgl2()?(t.hardwareSupport=!0,t.extension=null):t.extension||(t.extension=t.context.getExtension(&quot;ANGLE_instanced_arrays&quot;),t.hardwareSupport=!!t.extension);const a=r.getProperty().getBackfaceCulling(),i=r.getProperty().getFrontfaceCulling();a||i?i?(t._openGLRenderWindow.enableCullFace(),o.cullFace(o.FRONT)):(t._openGLRenderWindow.enableCullFace(),o.cullFace(o.BACK)):t._openGLRenderWindow.disableCullFace(),e.renderPieceStart(n,r),e.renderPieceDraw(n,r),e.renderPieceFinish(n,r)},e.multiply4x4WithOffset=(e,t,n,r)=&gt;{const o=t[0],a=t[1],i=t[2],s=t[3],l=t[4],c=t[5],u=t[6],d=t[7],p=t[8],f=t[9],g=t[10],m=t[11],h=t[12],v=t[13],T=t[14],x=t[15];let y=n[r],b=n[r+1],A=n[r+2],C=n[r+3];e[0]=y*o+b*l+A*p+C*h,e[1]=y*a+b*c+A*f+C*v,e[2]=y*i+b*u+A*g+C*T,e[3]=y*s+b*d+A*m+C*x,y=n[r+4],b=n[r+5],A=n[r+6],C=n[r+7],e[4]=y*o+b*l+A*p+C*h,e[5]=y*a+b*c+A*f+C*v,e[6]=y*i+b*u+A*g+C*T,e[7]=y*s+b*d+A*m+C*x,y=n[r+8],b=n[r+9],A=n[r+10],C=n[r+11],e[8]=y*o+b*l+A*p+C*h,e[9]=y*a+b*c+A*f+C*v,e[10]=y*i+b*u+A*g+C*T,e[11]=y*s+b*d+A*m+C*x,y=n[r+12],b=n[r+13],A=n[r+14],C=n[r+15],e[12]=y*o+b*l+A*p+C*h,e[13]=y*a+b*c+A*f+C*v,e[14]=y*i+b*u+A*g+C*T,e[15]=y*s+b*d+A*m+C*x},e.replaceShaderNormal=(e,r,o)=&gt;{if(t.hardwareSupport&amp;&amp;t.lastBoundBO.getReferenceByName(&quot;lastLightComplexity&quot;)&gt;0){let n=e.Vertex;t.lastBoundBO.getCABO().getNormalOffset()&amp;&amp;(n=vd.substitute(n,&quot;//VTK::Normal::Dec&quot;,[&quot;attribute vec3 normalMC;&quot;,&quot;attribute mat3 gNormal;&quot;,&quot;uniform mat3 normalMatrix;&quot;,&quot;varying vec3 normalVCVSOutput;&quot;]).result,n=vd.substitute(n,&quot;//VTK::Normal::Impl&quot;,[&quot;normalVCVSOutput = normalMatrix * gNormal * normalMC;&quot;]).result),e.Vertex=n}n.replaceShaderNormal(e,r,o)},e.replaceShaderClip=(e,r,o)=&gt;{if(t.hardwareSupport){let n=e.Vertex,r=e.Fragment;if(t.renderable.getNumberOfClippingPlanes()){const e=t.renderable.getNumberOfClippingPlanes();n=vd.substitute(n,&quot;//VTK::Clip::Dec&quot;,[&quot;uniform int numClipPlanes;&quot;,`uniform vec4 clipPlanes[${e}];`,`varying float clipDistancesVSOutput[${e}];`]).result,n=vd.substitute(n,&quot;//VTK::Clip::Impl&quot;,[`for (int planeNum = 0; planeNum &lt; ${e}; planeNum++)`,&quot;    {&quot;,&quot;    if (planeNum &gt;= numClipPlanes)&quot;,&quot;        {&quot;,&quot;        break;&quot;,&quot;        }&quot;,&quot;    vec4 gVertex = gMatrix * vertexMC;&quot;,&quot;    clipDistancesVSOutput[planeNum] = dot(clipPlanes[planeNum], gVertex);&quot;,&quot;    }&quot;]).result,r=vd.substitute(r,&quot;//VTK::Clip::Dec&quot;,[&quot;uniform int numClipPlanes;&quot;,`varying float clipDistancesVSOutput[${e}];`]).result,r=vd.substitute(r,&quot;//VTK::Clip::Impl&quot;,[`for (int planeNum = 0; planeNum &lt; ${e}; planeNum++)`,&quot;    {&quot;,&quot;    if (planeNum &gt;= numClipPlanes)&quot;,&quot;        {&quot;,&quot;        break;&quot;,&quot;        }&quot;,&quot;    if (clipDistancesVSOutput[planeNum] &lt; 0.0) discard;&quot;,&quot;    }&quot;]).result}e.Vertex=n,e.Fragment=r}n.replaceShaderClip(e,r,o)},e.replaceShaderColor=(e,r,o)=&gt;{if(t.hardwareSupport&amp;&amp;t.renderable.getColorArray()){let n=e.Vertex,r=e.Geometry,o=e.Fragment;const a=t.lastBoundBO.getReferenceByName(&quot;lastLightComplexity&quot;);let i=[&quot;uniform float ambient;&quot;,&quot;uniform float diffuse;&quot;,&quot;uniform float specular;&quot;,&quot;uniform float opacityUniform; // the fragment opacity&quot;];a&amp;&amp;(i=i.concat([&quot;uniform vec3 specularColorUniform;&quot;,&quot;uniform float specularPowerUniform;&quot;]));let s=[&quot;vec3 ambientColor;&quot;,&quot;  vec3 diffuseColor;&quot;,&quot;  float opacity;&quot;];a&amp;&amp;(s=s.concat([&quot;  vec3 specularColor;&quot;,&quot;  float specularPower;&quot;])),s=s.concat([&quot;  opacity = opacityUniform;&quot;]),a&amp;&amp;(s=s.concat([&quot;  specularColor = specularColorUniform;&quot;,&quot;  specularPower = specularPowerUniform;&quot;])),t.drawingEdges||(i=i.concat([&quot;varying vec4 vertexColorVSOutput;&quot;]),n=vd.substitute(n,&quot;//VTK::Color::Dec&quot;,[&quot;attribute vec4 gColor;&quot;,&quot;varying vec4 vertexColorVSOutput;&quot;]).result,n=vd.substitute(n,&quot;//VTK::Color::Impl&quot;,[&quot;vertexColorVSOutput = gColor;&quot;]).result,r=vd.substitute(r,&quot;//VTK::Color::Dec&quot;,[&quot;in vec4 vertexColorVSOutput[];&quot;,&quot;out vec4 vertexColorGSOutput;&quot;]).result,r=vd.substitute(r,&quot;//VTK::Color::Impl&quot;,[&quot;vertexColorGSOutput = vertexColorVSOutput[i];&quot;]).result,s=s.concat([&quot;  diffuseColor = vertexColorVSOutput.rgb;&quot;,&quot;  ambientColor = vertexColorVSOutput.rgb;&quot;,&quot;  opacity = opacity*vertexColorVSOutput.a;&quot;])),o=vd.substitute(o,&quot;//VTK::Color::Impl&quot;,s).result,o=vd.substitute(o,&quot;//VTK::Color::Dec&quot;,i).result,e.Vertex=n,e.Geometry=r,e.Fragment=o}n.replaceShaderColor(e,r,o)},e.replaceShaderPositionVC=(e,r,o)=&gt;{if(t.hardwareSupport){let n=e.Vertex;t.lastBoundBO.getReferenceByName(&quot;lastLightComplexity&quot;)&gt;0?(n=vd.substitute(n,&quot;//VTK::PositionVC::Impl&quot;,[&quot;vec4 gVertexMC = gMatrix * vertexMC;&quot;,&quot;vertexVCVSOutput = MCVCMatrix * gVertexMC;&quot;,&quot;  gl_Position = MCPCMatrix * gVertexMC;&quot;]).result,n=vd.substitute(n,&quot;//VTK::Camera::Dec&quot;,[&quot;attribute mat4 gMatrix;&quot;,&quot;uniform mat4 MCPCMatrix;&quot;,&quot;uniform mat4 MCVCMatrix;&quot;]).result):(n=vd.substitute(n,&quot;//VTK::Camera::Dec&quot;,[&quot;attribute mat4 gMatrix;&quot;,&quot;uniform mat4 MCPCMatrix;&quot;]).result,n=vd.substitute(n,&quot;//VTK::PositionVC::Impl&quot;,[&quot;vec4 gVertexMC = gMatrix * vertexMC;&quot;,&quot;  gl_Position = MCPCMatrix * gVertexMC;&quot;]).result),e.Vertex=n}n.replaceShaderPositionVC(e,r,o)},e.replaceShaderPicking=(e,r,o)=&gt;{if(t.hardwareSupport){let t=e.Fragment,n=e.Vertex;n=vd.substitute(n,&quot;//VTK::Picking::Dec&quot;,[&quot;attribute vec3 mapperIndexVS;&quot;,&quot;varying vec3 mapperIndexVSOutput;&quot;]).result,n=vd.substitute(n,&quot;//VTK::Picking::Impl&quot;,&quot;  mapperIndexVSOutput = mapperIndexVS;&quot;).result,e.Vertex=n,t=vd.substitute(t,&quot;//VTK::Picking::Dec&quot;,[&quot;varying vec3 mapperIndexVSOutput;&quot;,&quot;uniform vec3 mapperIndex;&quot;,&quot;uniform int picking;&quot;]).result,t=vd.substitute(t,&quot;//VTK::Picking::Impl&quot;,[&quot;  vec4 pickColor = picking == 2 ? vec4(mapperIndexVSOutput,1.0) : vec4(mapperIndex,1.0);&quot;,&quot;  gl_FragData[0] = picking != 0 ? pickColor : gl_FragData[0];&quot;]).result,e.Fragment=t}else n.replaceShaderPicking(e,r,o)},e.updateGlyphShaderParameters=(n,r,o,a,i,s,l,c)=&gt;{const u=o.getProgram();if(n){const e=t.normalMatrix,n=s,r=9*l,o=t.tmpMat3,a=e[0],i=e[1],c=e[2],d=e[3],p=e[4],f=e[5],g=e[6],m=e[7],h=e[8],v=n[r],T=n[r+1],x=n[r+2],y=n[r+3],b=n[r+4],A=n[r+5],C=n[r+6],S=n[r+7],P=n[r+8];o[0]=v*a+T*d+x*g,o[1]=v*i+T*p+x*m,o[2]=v*c+T*f+x*h,o[3]=y*a+b*d+A*g,o[4]=y*i+b*p+A*m,o[5]=y*c+b*f+A*h,o[6]=C*a+S*d+P*g,o[7]=C*i+S*p+P*m,o[8]=C*c+S*f+P*h,u.setUniformMatrix3x3(&quot;normalMatrix&quot;,t.tmpMat3)}if(e.multiply4x4WithOffset(t.tmpMat4,t.mcpcMatrix,i,16*l),u.setUniformMatrix(&quot;MCPCMatrix&quot;,t.tmpMat4),r&amp;&amp;(e.multiply4x4WithOffset(t.tmpMat4,t.mcvcMatrix,i,16*l),u.setUniformMatrix(&quot;MCVCMatrix&quot;,t.tmpMat4)),a){const e=a.getData();t.tmpColor[0]=e[4*l]/255,t.tmpColor[1]=e[4*l+1]/255,t.tmpColor[2]=e[4*l+2]/255,u.setUniform3fArray(&quot;ambientColorUniform&quot;,t.tmpColor),u.setUniform3fArray(&quot;diffuseColorUniform&quot;,t.tmpColor)}c&amp;&amp;u.setUniform3fArray(&quot;mapperIndex&quot;,c.getPropColorValue())},e.renderPieceDraw=(n,r)=&gt;{const o=r.getProperty().getRepresentation(),a=t.context,i=r.getProperty().getEdgeVisibility()&amp;&amp;o===lf.SURFACE,s=t.openGLCamera.getKeyMatrices(n),l=t.openGLActor.getKeyMatrices();p(t.normalMatrix,s.normalMatrix,l.normalMatrix),A(t.mcpcMatrix,s.wcpc,l.mcwc),A(t.mcvcMatrix,s.wcvc,l.mcwc);const c=t.renderable.getMatrixArray(),u=t.renderable.getNormalArray(),d=t.renderable.getColorArray(),f=c.length/16;let g=!1;t._openGLRenderer.getSelector()&amp;&amp;t._openGLRenderer.getSelector().getCurrentPass()===uf.COMPOSITE_INDEX_PASS&amp;&amp;(g=!0);for(let s=t.primTypes.Start;s&lt;t.primTypes.End;s++){const l=t.primitives[s].getCABO();if(l.getElementCount()){t.drawingEdges=i&amp;&amp;(s===t.primTypes.TrisEdges||s===t.primTypes.TriStripsEdges),t.lastBoundBO=t.primitives[s],t.primitives[s].updateShaders(n,r,e);const p=t.primitives[s].getProgram(),m=t.primitives[s].getOpenGLMode(o),h=p.isUniformUsed(&quot;normalMatrix&quot;),v=p.isUniformUsed(&quot;MCVCMatrix&quot;);if(t.hardwareSupport)t.extension?t.extension.drawArraysInstancedANGLE(m,0,l.getElementCount(),f):a.drawArraysInstanced(m,0,l.getElementCount(),f);else for(let n=0;n&lt;f;++n)g&amp;&amp;t._openGLRenderer.getSelector().renderCompositeIndex(n),e.updateGlyphShaderParameters(h,v,t.primitives[s],d,c,u,n,g?t._openGLRenderer.getSelector():null),a.drawArrays(m,0,l.getElementCount())}}},e.setMapperShaderParameters=(e,r,o)=&gt;{if(e.getCABO().getElementCount()&amp;&amp;(t.glyphBOBuildTime.getMTime()&gt;e.getAttributeUpdateTime().getMTime()||e.getShaderSourceTime().getMTime()&gt;e.getAttributeUpdateTime().getMTime()))return e.getProgram().isAttributeUsed(&quot;gMatrix&quot;)?e.getVAO().addAttributeMatrixWithDivisor(e.getProgram(),t.matrixBuffer,&quot;gMatrix&quot;,0,64,t.context.FLOAT,4,!1,1)||sf(&quot;Error setting gMatrix in shader VAO.&quot;):e.getVAO().removeAttributeArray(&quot;gMatrix&quot;),e.getProgram().isAttributeUsed(&quot;gNormal&quot;)?e.getVAO().addAttributeMatrixWithDivisor(e.getProgram(),t.normalBuffer,&quot;gNormal&quot;,0,36,t.context.FLOAT,3,!1,1)||sf(&quot;Error setting gNormal in shader VAO.&quot;):e.getVAO().removeAttributeArray(&quot;gNormal&quot;),e.getProgram().isAttributeUsed(&quot;gColor&quot;)?e.getVAO().addAttributeArrayWithDivisor(e.getProgram(),t.colorBuffer,&quot;gColor&quot;,0,4,t.context.UNSIGNED_BYTE,4,!0,1,!1)||sf(&quot;Error setting gColor in shader VAO.&quot;):e.getVAO().removeAttributeArray(&quot;gColor&quot;),e.getProgram().isAttributeUsed(&quot;mapperIndexVS&quot;)?e.getVAO().addAttributeArrayWithDivisor(e.getProgram(),t.pickBuffer,&quot;mapperIndexVS&quot;,0,4,t.context.UNSIGNED_BYTE,4,!0,1,!1)||sf(&quot;Error setting mapperIndexVS in shader VAO.&quot;):e.getVAO().removeAttributeArray(&quot;mapperIndexVS&quot;),n.setMapperShaderParameters(e,r,o),void e.getAttributeUpdateTime().modified();n.setMapperShaderParameters(e,r,o)},e.getNeedToRebuildBufferObjects=(e,r)=&gt;(t.renderable.buildArrays(),t.VBOBuildTime.getMTime()&lt;t.renderable.getBuildTime().getMTime()||n.getNeedToRebuildBufferObjects(e,r)),e.getNeedToRebuildShaders=(e,r,o)=&gt;!!(n.getNeedToRebuildShaders(e,r,o)||e.getShaderSourceTime().getMTime()&lt;t.renderable.getMTime()||e.getShaderSourceTime().getMTime()&lt;t.currentInput.getMTime()),e.buildBufferObjects=(e,r)=&gt;{const o=t.renderable.getMatrixArray(),a=t.renderable.getInputData(0).getPoints(),{useShiftAndScale:i,coordShift:s,coordScale:l}=rd(a);if(t.hardwareSupport){const e=t.renderable.getNormalArray(),n=t.renderable.getColorArray();if(t.matrixBuffer||(t.matrixBuffer=nd.newInstance(),t.matrixBuffer.setOpenGLRenderWindow(t._openGLRenderWindow),t.normalBuffer=nd.newInstance(),t.normalBuffer.setOpenGLRenderWindow(t._openGLRenderWindow),t.colorBuffer=nd.newInstance(),t.colorBuffer.setOpenGLRenderWindow(t._openGLRenderWindow),t.pickBuffer=nd.newInstance(),t.pickBuffer.setOpenGLRenderWindow(t._openGLRenderWindow)),i){const e=o.buffer,t=od(s,l);b(t,t);for(let n=0;n&lt;o.byteLength;n+=64){const r=new Float32Array(e,n,16);A(r,t,r)}}if(t.renderable.getBuildTime().getMTime()&gt;t.glyphBOBuildTime.getMTime()){t.matrixBuffer.upload(o,cf.ARRAY_BUFFER),t.normalBuffer.upload(e,cf.ARRAY_BUFFER),n?t.colorBuffer.upload(n.getData(),cf.ARRAY_BUFFER):t.colorBuffer.releaseGraphicsResources();const r=o.length/16,a=new Uint8Array(4*r);for(let e=0;e&lt;r;++e){let t=e+1;const n=4*e;a[n]=t%256,t-=a[n],t/=256,a[n+1]=t%256,t-=a[n+1],t/=256,a[n+2]=t%256,a[n+3]=255}t.pickBuffer.upload(a,cf.ARRAY_BUFFER),t.glyphBOBuildTime.modified()}}if(n.buildBufferObjects(e,r),i)for(let e=bd.Start;e&lt;bd.End;e++)t.primitives[e].getCABO().setCoordShiftAndScale(s,l)}}(e,t)}),&quot;vtkOpenGLGlyph3DMapper&quot;);vn(&quot;vtkGlyph3DMapper&quot;,gf);const{vtkErrorMacro:mf}=sn;class hf{constructor(){this.segmentMapping={},this.segments=[null],this.faces=[]}addSegment(e){const t=e[0],n=e[e.length-1];if(t===n||e.length&lt;2)return;const r=this.segmentMapping[t],o=this.segmentMapping[n];if(void 0!==r&amp;&amp;void 0!==o)if(Math.abs(r)===Math.abs(o)){const a=r&lt;o?o:r,i=this.segments[a];if(r&gt;0)for(let t=1;t&lt;e.length-1;t++)i.push(e[t]);else for(let t=1;t&lt;e.length-1;t++)i.unshift(e[e.length-1-t]);this.faces.push(i),this.segments[a]=null,this.segmentMapping[t]=void 0,this.segmentMapping[n]=void 0}else{const t=Math.abs(r),n=Math.abs(o),a=this.segments[t],i=this.segments[n];this.segments[t]=null,this.segments[n]=null,this.segmentMapping[a[0]]=void 0,this.segmentMapping[i[0]]=void 0,this.segmentMapping[a[a.length-1]]=void 0,this.segmentMapping[i[i.length-1]]=void 0,this.addSegment(e),this.addSegment(a),this.addSegment(i)}else if(void 0!==r){if(r&gt;0){const t=this.segments[r];for(let n=1;n&lt;e.length;n++)t.push(e[n]);this.segmentMapping[n]=r}else{const t=this.segments[-r];this.segmentMapping[n]=r;for(let n=1;n&lt;e.length;n++)t.unshift(e[n])}this.segmentMapping[t]=void 0}else if(void 0!==o){if(o&gt;0){const n=this.segments[o];for(let t=1;t&lt;e.length;t++)n.push(e[e.length-1-t]);this.segmentMapping[t]=o}else{const n=this.segments[-o];this.segmentMapping[t]=o;for(let t=1;t&lt;e.length;t++)n.unshift(e[e.length-t-1])}this.segmentMapping[n]=void 0}else{const r=this.segments.length;this.segments.push(e),this.segmentMapping[t]=-r,this.segmentMapping[n]=r}}}const vf={};function Tf(e,t,n={}){Object.assign(t,vf,n),sn.obj(e,t),sn.algo(e,t,1,1),function(e,t){t.classHierarchy.push(&quot;vtkClosedPolyLineToSurfaceFilter&quot;),e.requestData=(e,t)=&gt;{const n=e[0];if(!n)return void mf(&quot;Invalid or missing input&quot;);const r=t[0]?.initialize()||Ru.newInstance();r.shallowCopy(n);const o=new hf,a=n.getLines().getData();let i=0;for(;i&lt;a.length;){const e=a[i++],t=[];for(let n=0;n&lt;e;n++)t.push(a[i+n]);o.addSegment(t),i+=e}const{faces:s}=o;let l=s.length;for(let e=0;e&lt;s.length;e++)l+=s[e].length;const c=new Uint16Array(l);i=0;for(let e=0;e&lt;s.length;e++){const t=s[e];c[i++]=t.length;for(let e=0;e&lt;t.length;e++)c[i++]=t[e]}r.setPolys(oc.newInstance({values:c,name:&quot;faces&quot;})),t[0]=r}}(e,t)}var xf={newInstance:sn.newInstance(Tf,&quot;vtkClosedPolyLineToSurfaceFilter&quot;),extend:Tf};const{vtkErrorMacro:yf}=ln;function bf(e,t){t.classHierarchy.push(&quot;vtkCutter&quot;);const n={...e};function r(e,n){const r=e.getPoints(),o=r.getData(),a=e.getPointData(),i=r.getNumberOfPoints(),s=[],l=[],c=[],u={},d=a.getNumberOfArrays();for(let e=0;e&lt;d;e++)u[a.getArrayName(e)]=[];(!t.cutScalars||t.cutScalars.length&lt;i)&amp;&amp;(t.cutScalars=new Float32Array(i));let p=0,f=0;for(;p&lt;o.length;)t.cutScalars[f++]=t.cutFunction.evaluateFunction(o[p++],o[p++],o[p++]);const g=[],m=new Array(3),h=new Array(3),v=[];for(const n=function(e){const t=e.getPolys().getData(),n=e.getStrips().getData(),r={cellSize:0,cell:[],done:!1,polyIdx:0,stripIdx:0,remainingStripLength:0,next(){if(r.polyIdx&lt;t.length){r.cellSize=t[r.polyIdx];const e=r.polyIdx+1,n=e+r.cellSize;r.polyIdx=n;let o=0;for(let a=e;a&lt;n;++a)r.cell[o++]=t[a]}else if(r.stripIdx&lt;n.length){r.cellSize=3,0===r.remainingStripLength&amp;&amp;(r.remainingStripLength=n[r.stripIdx]-2,r.stripIdx+=3);const e=r.stripIdx-2,t=r.stripIdx+1;r.stripIdx++,r.remainingStripLength--;let o=0;for(let a=e;a&lt;t;++a)r.cell[o++]=n[a]}else{if(r.done)throw new Error(&quot;Iterator is done&quot;);r.done=!0}}};return r.next(),r}(e);!n.done;n.next()){if(n.cellSize&lt;=2)continue;for(let e=0;e&lt;n.cellSize;)v[e]=t.cutScalars[n.cell[e++]];const e=v[0]&gt;0;let r=!0;for(let t=1;t&lt;n.cell.length;t++){if(v[t]&gt;0!==e){r=!1;break}}if(r)continue;const i=[];for(let e=0;e&lt;n.cellSize;e++){const r=e+1===n.cellSize?0:e+1,s=v[e]&gt;0;if(v[r]&gt;0===s)continue;let l=e,c=r,u=v[c]-v[l];u&lt;=0&amp;&amp;(l=r,c=e,u*=-1);let p=0;0!==u&amp;&amp;(p=(t.cutValue-v[l])/u);const f=n.cell[l],g=n.cell[c];m[0]=o[3*f],m[1]=o[3*f+1],m[2]=o[3*f+2],h[0]=o[3*g],h[1]=o[3*g+1],h[2]=o[3*g+2];const T=[m[0]+p*(h[0]-m[0]),m[1]+p*(h[1]-m[1]),m[2]+p*(h[2]-m[2])],x={};for(let e=0;e&lt;d;e++){const t=a.getArrayByIndex(e),n=a.getArrayName(e),r=t.getData(),o=t.getNumberOfComponents(),i=new Array(o);for(let e=0;e&lt;o;e++){const t=r[o*f+e],n=r[o*g+e];i.push(t+p*(n-t))}x[n]=i}i.push({pointEdge1:f,pointEdge2:g,intersectedPoint:T,intersectedArrays:x,newPointID:-1})}for(let e=0;e&lt;i.length;e++){const t=i[e];let n=!1;for(let r=0;r&lt;g.length;r++){const o=g[r],a=t.pointEdge1===o.pointEdge1&amp;&amp;t.pointEdge2===o.pointEdge2,s=t.intersectedPoint[0]===o.intersectedPoint[0]&amp;&amp;t.intersectedPoint[1]===o.intersectedPoint[1]&amp;&amp;t.intersectedPoint[2]===o.intersectedPoint[2];if(a||s){n=!0,i[e].newPointID=g[r].newPointID;break}}n||(s.push(t.intersectedPoint[0]),s.push(t.intersectedPoint[1]),s.push(t.intersectedPoint[2]),Object.keys(t.intersectedArrays).forEach((e=&gt;{u[e].push(...t.intersectedArrays[e])})),i[e].newPointID=s.length/3-1,g.push(i[e]))}const p=i.length;2===p?l.push(p,i[0].newPointID,i[1].newPointID):p&gt;2&amp;&amp;(c.push(p),i.forEach((e=&gt;{c.push(e.newPointID)})))}n.getPoints().setData(St(r.getDataType(),s),3);const T=n.getPointData();for(let e=0;e&lt;d;e++){const t=a.getArrayName(e),n=Is.newInstance({name:t,dataType:a.getArrayByIndex(e).getDataType(),values:u[t],numberOfComponents:a.getArrayByIndex(e).getNumberOfComponents()});T.addArray(n)}0!==l.length&amp;&amp;n.getLines().setData(Uint16Array.from(l)),0!==c.length&amp;&amp;n.getPolys().setData(Uint16Array.from(c))}e.getMTime=()=&gt;{let e=n.getMTime();return t.cutFunction?(e=Math.max(e,t.cutFunction.getMTime()),e):e},e.requestData=(e,n)=&gt;{const o=e[0];if(!o)return void yf(&quot;Invalid or missing input&quot;);if(!t.cutFunction)return void yf(&quot;Missing cut function&quot;);const a=n[0]?.initialize()||Ru.newInstance();r(o,a),n[0]=a}}const Af={cutFunction:null,cutScalars:null,cutValue:0};function Cf(e,t,n={}){Object.assign(t,Af,n),Vt(e,t),Wt(e,t,1,1),Gt(e,t,[&quot;cutFunction&quot;,&quot;cutValue&quot;]),bf(e,t)}var Sf={newInstance:Xt(Cf,&quot;vtkCutter&quot;),extend:Cf};const Pf=e=&gt;e,wf=1e-6;class If{constructor(e=!1){this.matrix=x(new Float64Array(16)),this.tmp=new Float64Array(3),this.angleConv=e?a:Pf}rotateFromDirections(e,t){const n=new Float64Array(3),r=new Float64Array(3),o=new Float64Array(16);Y(n,e[0],e[1],e[2]),Y(r,t[0],t[1],t[2]),te(n,n),te(r,r);const a=ne(n,r);return a&gt;=1||(re(this.tmp,n,r),X(this.tmp)&lt;wf&amp;&amp;(re(this.tmp,[1,0,0],e),X(this.tmp)&lt;wf&amp;&amp;re(this.tmp,[0,1,0],e)),D(o,Math.acos(a),this.tmp),A(this.matrix,this.matrix,o)),this}rotate(e,t){return Y(this.tmp,...t),te(this.tmp,this.tmp),P(this.matrix,this.matrix,this.angleConv(e),this.tmp),this}rotateX(e){return w(this.matrix,this.matrix,this.angleConv(e)),this}rotateY(e){return I(this.matrix,this.matrix,this.angleConv(e)),this}rotateZ(e){return O(this.matrix,this.matrix,this.angleConv(e)),this}translate(e,t,n){return Y(this.tmp,e,t,n),C(this.matrix,this.matrix,this.tmp),this}scale(e,t,n){return Y(this.tmp,e,t,n),S(this.matrix,this.matrix,this.tmp),this}multiply(e){return A(this.matrix,this.matrix,e),this}multiply3x3(e){return A(this.matrix,this.matrix,[e[0],e[1],e[2],0,e[3],e[4],e[5],0,e[6],e[7],e[8],0,0,0,0,1]),this}invert(){return b(this.matrix,this.matrix),this}identity(){return x(this.matrix),this}apply(e,t=0,n=-1){if(oa(ho,this.matrix))return this;const r=-1===n?e.length:t+3*n;for(let n=t;n&lt;r;n+=3)Y(this.tmp,e[n],e[n+1],e[n+2]),oe(this.tmp,this.tmp,this.matrix),e[n]=this.tmp[0],e[n+1]=this.tmp[1],e[n+2]=this.tmp[2];return this}getMatrix(){return this.matrix}setMatrix(e){return e&amp;&amp;16===e.length&amp;&amp;T(this.matrix,e),this}}var Of={buildFromDegree:function(){return new If(!0)},buildFromRadian:function(){return new If(!1)}};const Rf=[2,0,1,2,2,3,2,4,5,2,6,7,2,0,2,2,1,3,2,4,6,2,5,7,2,0,4,2,1,5,2,2,6,2,3,7],Mf=[4,0,1,3,2,4,4,6,7,5,4,8,10,11,9,4,12,13,15,14,4,16,18,19,17,4,20,21,23,22];const Df={xLength:1,yLength:1,zLength:1,pointType:&quot;Float64Array&quot;,generate3DTextureCoordinates:!1,generateFaces:!0,generateLines:!1};function Ef(e,t,n={}){Object.assign(t,Df,n),sn.obj(e,t),sn.setGet(e,t,[&quot;xLength&quot;,&quot;yLength&quot;,&quot;zLength&quot;,&quot;generate3DTextureCoordinates&quot;,&quot;generateFaces&quot;,&quot;generateLines&quot;]),sn.setGetArray(e,t,[&quot;center&quot;,&quot;rotations&quot;],3),sn.setGetArray(e,t,[&quot;matrix&quot;],16),t._polys=oc.newInstance({values:Uint16Array.from(Mf)}),t._lineCells=oc.newInstance({values:Uint16Array.from(Rf)}),sn.moveToProtected(e,t,[&quot;polys&quot;,&quot;lineCells&quot;]),sn.algo(e,t,0,1),function(e,t){t.classHierarchy.push(&quot;vtkCubeSource&quot;),e.requestData=(e,n)=&gt;{const r=n[0]?.initialize()||Ru.newInstance();n[0]=r;const o=sn.newTypedArray(t.pointType,72);r.getPoints().setData(o,3);const a=sn.newTypedArray(t.pointType,72),i=Is.newInstance({name:&quot;Normals&quot;,values:a,numberOfComponents:3});r.getPointData().setNormals(i);let s=2;!0===t.generate3DTextureCoordinates&amp;&amp;(s=3);const l=sn.newTypedArray(t.pointType,24*s),c=Is.newInstance({name:&quot;TextureCoordinates&quot;,values:l,numberOfComponents:s});r.getPointData().setTCoords(c);const u=[0,0,0],d=[0,0,0],p=[0,0];let f=0;u[0]=-t.xLength/2,d[0]=-1,d[1]=0,d[2]=0;for(let e=0;e&lt;2;e++){u[1]=-t.yLength/2;for(let n=0;n&lt;2;n++){p[1]=u[1]+.5,u[2]=-t.zLength/2;for(let r=0;r&lt;2;r++)p[0]=(u[2]+.5)*(1-2*e),o[3*f]=u[0],o[3*f+1]=u[1],o[3*f+2]=u[2],a[3*f]=d[0],a[3*f+1]=d[1],a[3*f+2]=d[2],2===s?(l[f*s]=p[0],l[f*s+1]=p[1]):(l[f*s]=2*e-1,l[f*s+1]=2*n-1,l[f*s+2]=2*r-1),f++,u[2]+=t.zLength;u[1]+=t.yLength}u[0]+=t.xLength,d[0]+=2}u[1]=-t.yLength/2,d[1]=-1,d[0]=0,d[2]=0;for(let e=0;e&lt;2;e++){u[0]=-t.xLength/2;for(let n=0;n&lt;2;n++){p[0]=(u[0]+.5)*(2*e-1),u[2]=-t.zLength/2;for(let r=0;r&lt;2;r++)p[1]=-1*(u[2]+.5),o[3*f]=u[0],o[3*f+1]=u[1],o[3*f+2]=u[2],a[3*f]=d[0],a[3*f+1]=d[1],a[3*f+2]=d[2],2===s?(l[f*s]=p[0],l[f*s+1]=p[1]):(l[f*s]=2*n-1,l[f*s+1]=2*e-1,l[f*s+2]=2*r-1),f++,u[2]+=t.zLength;u[0]+=t.xLength}u[1]+=t.yLength,d[1]+=2}u[2]=-t.zLength/2,d[2]=-1,d[0]=0,d[1]=0;for(let e=0;e&lt;2;e++){u[1]=-t.yLength/2;for(let n=0;n&lt;2;n++){p[1]=u[1]+.5,u[0]=-t.xLength/2;for(let r=0;r&lt;2;r++)p[0]=(u[0]+.5)*(2*e-1),o[3*f]=u[0],o[3*f+1]=u[1],o[3*f+2]=u[2],a[3*f]=d[0],a[3*f+1]=d[1],a[3*f+2]=d[2],2===s?(l[f*s]=p[0],l[f*s+1]=p[1]):(l[f*s]=2*r-1,l[f*s+1]=2*n-1,l[f*s+2]=2*e-1),f++,u[0]+=t.xLength;u[1]+=t.yLength}u[2]+=t.zLength,d[2]+=2}if(t.rotations&amp;&amp;Of.buildFromDegree().rotateX(t.rotations[0]).rotateY(t.rotations[1]).rotateZ(t.rotations[2]).apply(o).apply(a),t.center&amp;&amp;Of.buildFromRadian().translate(...t.center).apply(o),t.matrix){Of.buildFromRadian().setMatrix(t.matrix).apply(o);const e=[t.matrix[0],t.matrix[1],t.matrix[2],0,t.matrix[4],t.matrix[5],t.matrix[6],0,t.matrix[8],t.matrix[9],t.matrix[10],0,0,0,0,1];Of.buildFromRadian().setMatrix(e).apply(a)}t.generateFaces?r.getPolys().deepCopy(t._polys):r.getPolys().initialize(),t.generateLines?(r.getLines().deepCopy(t._lineCells),r.getPointData().setNormals(null)):r.getLines().initialize(),r.modified()},e.setBounds=(...t)=&gt;{let n=[];if(Array.isArray(t[0]))n=t[0];else for(let e=0;e&lt;t.length;e++)n.push(t[e]);6===n.length&amp;&amp;(e.setXLength(n[1]-n[0]),e.setYLength(n[3]-n[2]),e.setZLength(n[5]-n[4]),e.setCenter([(n[0]+n[1])/2,(n[2]+n[3])/2,(n[4]+n[5])/2]))}}(e,t)}var Vf={newInstance:sn.newInstance(Ef,&quot;vtkCubeSource&quot;),extend:Ef};const{vtkErrorMacro:Lf}=sn;const Bf={};function Ff(e,t,n={}){Object.assign(t,Bf,n),sn.obj(e,t),sn.algo(e,t,1,1),t._cubeSource=Vf.newInstance(),sn.moveToProtected(e,t,[&quot;cubeSource&quot;,&quot;tmpOut&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkImageDataOutlineFilter&quot;);const n={...e};e.requestData=(e,n)=&gt;{const r=e[0];if(!r||!r.isA(&quot;vtkImageData&quot;))return void Lf(&quot;Invalid or missing input&quot;);const o=r.getSpatialExtent();o?(t._cubeSource.setBounds(o),t._cubeSource.setMatrix(r.getIndexToWorld()),n[0]=t._cubeSource.getOutputData()):Lf(&quot;Unable to fetch spatial extents of input image.&quot;)},e.getMTime=()=&gt;Math.max(n.getMTime(),t._cubeSource.getMTime()),e.setGenerateFaces=t._cubeSource.setGenerateFaces,e.setGenerateLines=t._cubeSource.setGenerateLines,e.getGenerateFaces=t._cubeSource.getGenerateFaces,e.getGenerateLines=t._cubeSource.getGenerateLines}(e,t)}var Nf={newInstance:sn.newInstance(Ff,&quot;vtkImageDataOutlineFilter&quot;),extend:Ff};const{vtkWarningMacro:kf}=sn;let Gf;const Uf={preMultiplyFlag:!1,matrix:[...ho]};function _f(e,t,n={}){Object.assign(t,Uf,n),sn.obj(e,t),sn.setGet(e,t,[&quot;preMultiplyFlag&quot;]),sn.setGetArray(e,t,[&quot;matrix&quot;],16),function(e,t){t.classHierarchy.push(&quot;vtkAbstractTransform&quot;,&quot;vtkHomogeneousTransform&quot;,&quot;vtkTransform&quot;),e.transformPoint=(e,n)=&gt;(oe(n,e,t.matrix),n),e.transformPoints=(e,n)=&gt;{const r=new Float64Array(3),o=new Float64Array(3);for(let a=0;a&lt;e.length;a+=3)r[0]=e[a],r[1]=e[a+1],r[2]=e[a+2],oe(o,r,t.matrix),n[a]=o[0],n[a+1]=o[1],n[a+2]=o[2];return n},e.preMultiply=()=&gt;{e.setPreMultiplyFlag(!0)},e.postMultiply=()=&gt;{e.setPreMultiplyFlag(!1)},e.transformMatrix=(e,n)=&gt;(t.preMultiplyFlag?A(n,t.matrix,e):A(n,e,t.matrix),n),e.transformMatrices=(e,n)=&gt;{const r=new Float64Array(16),o=new Float64Array(16),a=t.preMultiplyFlag?()=&gt;A(o,t.matrix,r):()=&gt;A(o,r,t.matrix);for(let t=0;t&lt;e.length;t+=16){for(let n=0;n&lt;16;++n)r[n]=e[t+n];a();for(let e=0;e&lt;16;++e)n[t+e]=o[e]}return n},e.getInverse=()=&gt;Gf({matrix:za.invertMatrix(Array.from(t.matrix),[],4),preMultiplyFlag:t.preMultiplyFlag}),e.translate=(n,r,o)=&gt;{if(0===n&amp;&amp;0===r&amp;&amp;0===o)return;const a=v();R(a,[n,r,o]),t.preMultiplyFlag?A(t.matrix,t.matrix,a):A(t.matrix,a,t.matrix),e.modified()},e.rotateWXYZ=(n,r,o,a)=&gt;{if(0===r&amp;&amp;0===o&amp;&amp;0===a)return void kf(&quot;No rotation applied, axis is zero vector.&quot;);if(0===n)return;const i=za.radiansFromDegrees(n),s=pe();fe(s,[r,o,a],i);const l=new Float64Array(16);F(l,s),t.preMultiplyFlag?A(t.matrix,t.matrix,l):A(t.matrix,l,t.matrix),e.modified()},e.rotateX=t=&gt;{e.rotateWXYZ(t,1,0,0)},e.rotateY=t=&gt;{e.rotateWXYZ(t,0,1,0)},e.rotateZ=t=&gt;{e.rotateWXYZ(t,0,0,1)},e.scale=(n,r,o)=&gt;{if(1===n&amp;&amp;1===r&amp;&amp;1===o)return;const a=v();M(a,[n,r,o]),t.preMultiplyFlag?A(t.matrix,t.matrix,a):A(t.matrix,a,t.matrix),e.modified()},e.transformNormal=(n,r=[])=&gt;{const o=s(i(),t.matrix),a=i();d(a,o);const l=i();return u(l,a),e.transformVector(n,r,l),za.normalize(r),r},e.transformNormals=(n,r)=&gt;{const o=n.getData(),a=r.getData(),l=[0,0,0],c=s(i(),t.matrix),p=i();d(p,c);const f=i();u(f,p);for(let t=0;t&lt;o.length;t+=3)l[0]=o[t],l[1]=o[t+1],l[2]=o[t+2],e.transformVector(l,l,f),za.normalize(l),a[t]=l[0],a[t+1]=l[1],a[t+2]=l[2]},e.transformVector=(e,n=[],r=null)=&gt;(ae(n,e,r||s(i(),t.matrix)),n),e.transformVectors=(t,n)=&gt;{const r=t.getData(),o=n.getData(),a=[0,0,0];for(let t=0;t&lt;r.length;t+=3)a[0]=r[t],a[1]=r[t+1],a[2]=r[t+2],e.transformVector(a,a),za.normalize(a),o[t]=a[0],o[t+1]=a[1],o[t+2]=a[2]},e.transformPointsNormalsVectors=(t,n,r,o,a,i,s=null,l=null)=&gt;{const c=t.getNumberOfPoints(),u=s?.length??0,d=new Float64Array(3),p=new Float64Array(3),f=new Float64Array(3),g=new Float64Array(3);let m=!1,h=!1,v=!1;const T=[];for(let x=0;x&lt;c;x++){if(t.getPoint(x,d),p.set(d),e.transformPoint(d,d),n.setPoint(x,...d),za.areEquals(p,d)||(m=!0),a){const t=a.getData(),n=i.getData();d[0]=t[3*x],d[1]=t[3*x+1],d[2]=t[3*x+2],f.set(d),e.transformVector(d,d),n[3*x]=d[0],n[3*x+1]=d[1],n[3*x+2]=d[2],za.areEquals(f,d)||(h=!0)}if(r){const t=r.getData(),n=o.getData();d[0]=t[3*x],d[1]=t[3*x+1],d[2]=t[3*x+2],g.set(d),e.transformNormal(d,d),n[3*x]=d[0],n[3*x+1]=d[1],n[3*x+2]=d[2],za.areEquals(g,d)||(v=!0)}if(s)for(let t=0;t&lt;u;t++){const n=s[t].getData(),r=l[t].getData();d[0]=n[3*x],d[1]=n[3*x+1],d[2]=n[3*x+2],f.set(d),e.transformVector(d,d),r[3*x]=d[0],r[3*x+1]=d[1],r[3*x+2]=d[2],za.arrayEqual(f,d)||T.includes(t)||T.push(t)}}m&amp;&amp;n.modified(),h&amp;&amp;i.modified(),v&amp;&amp;o.modified(),T.forEach((e=&gt;l[e].modified()))}}(e,t)}Gf=sn.newInstance(_f,&quot;vtkTransform&quot;);var Kf={newInstance:Gf,extend:_f};function zf(e,t,n){return e.length&gt;0?`${e.map((e=&gt;e?.getMTime()??&quot;x&quot;)).join(&quot;/&quot;)}-${t}-${n}`:&quot;0&quot;}function Wf(e,t){return`${t.getMTime()}`}const Hf={NEAREST:0,LINEAR:1};var jf={InterpolationType:Hf};const{vtkErrorMacro:Xf}=ln,qf=e=&gt;e.split(&quot;\\n&quot;).map((e=&gt;e.trim())).filter(Boolean);function Yf(e,t,n){return t.identity(n),e.reduce(((e,n,r)=&gt;0===r?n?t.copy(e,n):t.identity(e):n?t.multiply(e,e,n):e),n)}function Jf(e,t){t.classHierarchy.push(&quot;vtkOpenGLImageResliceMapper&quot;);const n=new Map;function r(t,r,o){r!==o&amp;&amp;(function(t,r){if(!r)return;const o=(n.get(r)??0)-1;o&lt;=0?(t.unregisterGraphicsResourceUser(r,e),n.delete(r)):n.set(r,o)}(t,r),function(t,r){if(!r)return;const o=n.get(r)??0,a=o+1;n.set(r,a),o&lt;=0&amp;&amp;t.registerGraphicsResourceUser(r,e)}(t,o))}function o(t){[...n.keys()].forEach((n=&gt;t.unregisterGraphicsResourceUser(n,e)))}function a(e,n,r,o,a){const i=e.map((e=&gt;e.join(&quot;-&quot;))).join(&quot;|&quot;);i!==t[o]&amp;&amp;(t[o]=i,t[a]&amp;&amp;t[a].releaseGraphicsResources(),t[a]=function(e,n,r){let o=t.renderable.getLabelOutlineTextureWidth();o&lt;=0&amp;&amp;(o=t.context.getParameter(t.context.MAX_TEXTURE_SIZE));const a=e.length,i=new n(o*a);for(let t=0;t&lt;a;t++){const n=e[t];for(let e=0;e&lt;o;e++)i[t*o+e]=n[e]??n[0]}const s=Hd.newInstance({resizable:!1});return s.setOpenGLRenderWindow(t._openGLRenderWindow),s.resetFormatAndType(),s.setMinificationFilter(wd.NEAREST),s.setMagnificationFilter(wd.NEAREST),s.create2DFromRaw({width:o,height:a,numComps:1,dataType:r,data:i}),s}(e,n,r))}e.buildPass=n=&gt;{if(n){t.currentRenderPass=null,t._openGLImageSlice=e.getFirstAncestorOfType(&quot;vtkOpenGLImageSlice&quot;),t._openGLRenderer=e.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;);const n=t._openGLRenderer.getRenderable();t._openGLCamera=t._openGLRenderer.getViewNodeFor(n.getActiveCamera(),t.openGLCamera);const r=t._openGLRenderWindow;t._openGLRenderWindow=t._openGLRenderer.getLastAncestorOfType(&quot;vtkOpenGLRenderWindow&quot;),r&amp;&amp;!r.isDeleted()&amp;&amp;r!==t._openGLRenderWindow&amp;&amp;o(r),t.context=t._openGLRenderWindow.getContext(),t.tris.setOpenGLRenderWindow(t._openGLRenderWindow)}},e.translucentPass=(n,r)=&gt;{n&amp;&amp;(t.currentRenderPass=r,e.render())},e.zBufferPass=n=&gt;{n&amp;&amp;(t.haveSeenDepthRequest=!0,t.renderDepth=!0,e.render(),t.renderDepth=!1)},e.opaqueZBufferPass=t=&gt;e.zBufferPass(t),e.opaquePass=t=&gt;{t&amp;&amp;e.render()},e.getCoincidentParameters=(e,n)=&gt;t.renderable.getResolveCoincidentTopology()==Pl.PolygonOffset?t.renderable.getCoincidentTopologyPolygonOffsetParameters():null,e.render=()=&gt;{const n=t._openGLImageSlice.getRenderable(),r=t._openGLRenderer.getRenderable();e.renderPiece(r,n)},e.renderPiece=(n,r)=&gt;{e.invokeEvent({type:&quot;StartEvent&quot;}),t.renderable.update();const o=t.renderable.getNumberOfInputPorts();t.currentValidInputs=[];for(let e=0;e&lt;o;++e){const n=t.renderable.getInputData(e);n&amp;&amp;!n.isDeleted()&amp;&amp;t.currentValidInputs.push({imageData:n,inputIndex:e})}const a=t.currentValidInputs.length;if(a&lt;=0)return void Xf(&quot;No input!&quot;);t.labelOutlineProperties=function(e,t){const n=[];for(let r=0;r&lt;t.length;r++){const o=e.getProperty(t[r].inputIndex);o?.getUseLabelOutline()&amp;&amp;n.push({property:o,arrayIndex:r})}return n}(r,t.currentValidInputs);const i=t.currentValidInputs[0].imageData.getPointData().getScalars();t.multiTexturePerVolumeEnabled=a&gt;1,t.numberOfComponents=t.multiTexturePerVolumeEnabled?a:i.getNumberOfComponents(),e.updateResliceGeometry(),e.renderPieceStart(n,r),e.renderPieceDraw(n,r),e.renderPieceFinish(n,r),e.invokeEvent({type:&quot;EndEvent&quot;})},e.renderPieceStart=(n,r)=&gt;{e.updateBufferObjects(n,r);const o=r.getProperties();t.currentValidInputs.forEach((({inputIndex:e},n)=&gt;{const r=o[e],a=t.scalarTextures[n];if(!r||!a)return;r.getInterpolationType()===Hf.NEAREST?(a.setMinificationFilter(wd.NEAREST),a.setMagnificationFilter(wd.NEAREST)):(a.setMinificationFilter(wd.LINEAR),a.setMagnificationFilter(wd.LINEAR))}));const a=t.currentValidInputs[0],i=o[a.inputIndex],s=i?.getInterpolationType();s===Hf.NEAREST?(t.colorTexture.setMinificationFilter(wd.NEAREST),t.colorTexture.setMagnificationFilter(wd.NEAREST),t.pwfTexture.setMinificationFilter(wd.NEAREST),t.pwfTexture.setMagnificationFilter(wd.NEAREST)):(t.colorTexture.setMinificationFilter(wd.LINEAR),t.colorTexture.setMagnificationFilter(wd.LINEAR),t.pwfTexture.setMinificationFilter(wd.LINEAR),t.pwfTexture.setMagnificationFilter(wd.LINEAR)),t.lastBoundBO=null},e.renderPieceDraw=(n,r)=&gt;{const o=t.context,a=t.labelOutlineProperties.length&gt;0,i=[...t.scalarTextures,t.colorTexture,t.pwfTexture];a&amp;&amp;(i.push(t.labelOutlineThicknessTexture),i.push(t.labelOutlineOpacityTexture)),i.forEach((e=&gt;e.activate())),e.updateShaders(t.tris,n,r),o.drawArrays(o.TRIANGLES,0,t.tris.getCABO().getElementCount()),t.tris.getVAO().release(),i.forEach((e=&gt;e.deactivate()))},e.renderPieceFinish=(e,t)=&gt;{},e.updateBufferObjects=(t,n)=&gt;{e.getNeedToRebuildBufferObjects(t,n)&amp;&amp;e.buildBufferObjects(t,n)},e.getNeedToRebuildBufferObjects=(n,r)=&gt;{const o=r.getProperty(t.currentValidInputs[0].inputIndex),a=t.labelOutlineProperties.length&gt;0;return t.VBOBuildTime.getMTime()&lt;e.getMTime()||t.VBOBuildTime.getMTime()&lt;r.getMTime()||t.VBOBuildTime.getMTime()&lt;t.renderable.getMTime()||t.VBOBuildTime.getMTime()&lt;o?.getMTime()||t.currentValidInputs.some((({imageData:e})=&gt;t.VBOBuildTime.getMTime()&lt;e.getMTime()))||t.VBOBuildTime.getMTime()&lt;t.resliceGeom.getMTime()||t.scalarTextures.length!==t.currentValidInputs.length||!t.scalarTextures.every((e=&gt;!!e?.getHandle()))||!t.colorTexture?.getHandle()||!t.pwfTexture?.getHandle()||a&amp;&amp;(!t.labelOutlineThicknessTexture?.getHandle()||!t.labelOutlineOpacityTexture?.getHandle())},e.buildBufferObjects=(n,o)=&gt;{const a=o.getProperties();t.currentValidInputs.forEach((({imageData:e,inputIndex:n},o)=&gt;{const i=e.getPointData().getScalars(),s=t._openGLRenderWindow.getGraphicsResourceForObject(i),l=Wf(0,i),c=!s?.oglObject?.getHandle()||s?.hash!==l,u=a[n],d=u?.getUpdatedExtents()??[],p=!!d.length;if(c&amp;&amp;!p){const n=Hd.newInstance();n.setOpenGLRenderWindow(t._openGLRenderWindow);const r=e.getDimensions();n.setOglNorm16Ext(t.context.getExtension(&quot;EXT_texture_norm16&quot;)),n.resetFormatAndType(),n.create3DFilterableFromDataArray({width:r[0],height:r[1],depth:r[2],dataArray:i}),t._openGLRenderWindow.setGraphicsResourceForObject(i,n,l),t.scalarTextures[o]=n}else t.scalarTextures[o]=s.oglObject;if(p){u.setUpdatedExtents([]);const n=e.getDimensions();t.scalarTextures[o].create3DFilterableFromDataArray({width:n[0],height:n[1],depth:n[2],dataArray:i,updatedExtents:d})}r(t._openGLRenderWindow,t._scalarTexturesCore[o],i),t._scalarTexturesCore[o]=i}));const i=t.currentValidInputs[0],s=a[i.inputIndex];if(!s)return void Xf(&quot;Missing property for first input&quot;);const l=s.getIndependentComponents(),c=l?t.numberOfComponents:1,u=l?2*c:1,d=[];for(let e=0;e&lt;c;++e)if(t.multiTexturePerVolumeEnabled){const n=t.currentValidInputs[e],r=n?a[n.inputIndex]:null;d.push(r?.getRGBTransferFunction()||null)}else d.push(s.getRGBTransferFunction(e));const p=zf(d,l,c),f=s.getRGBTransferFunction(),g=t._openGLRenderWindow.getGraphicsResourceForObject(f);if(!g?.oglObject?.getHandle()||g?.hash!==p){let e=t.renderable.getColorTextureWidth();e&lt;=0&amp;&amp;(e=t.context.getParameter(t.context.MAX_TEXTURE_SIZE));const n=new Uint8ClampedArray(e*u*3),r=Hd.newInstance();if(r.setOpenGLRenderWindow(t._openGLRenderWindow),f){const t=new Float32Array(3*e);for(let r=0;r&lt;c;r++){const o=d[r];if(o){const a=o.getRange();if(o.getTable(a[0],a[1],e,t,1),l)for(let o=0;o&lt;3*e;o++)n[r*e*6+o]=255*t[o],n[r*e*6+o+3*e]=255*t[o];else for(let o=0;o&lt;3*e;o++)n[r*e*3+o]=255*t[o]}}r.resetFormatAndType(),r.create2DFromRaw({width:e,height:u,numComps:3,dataType:ms.UNSIGNED_CHAR,data:n})}else{for(let t=0;t&lt;3*e;++t){const r=255*t/(3*(e-1));for(let o=0;o&lt;u;++o)n[o*e*3+t+0]=r,n[o*e*3+t+1]=r,n[o*e*3+t+2]=r}r.resetFormatAndType(),r.create2DFromRaw({width:e,height:1,numComps:3,dataType:ms.UNSIGNED_CHAR,data:n})}f&amp;&amp;t._openGLRenderWindow.setGraphicsResourceForObject(f,r,p),t.colorTexture=r}else t.colorTexture=g.oglObject;r(t._openGLRenderWindow,t._colorTextureCore,f),t._colorTextureCore=f;const m=[];for(let e=0;e&lt;c;++e)if(t.multiTexturePerVolumeEnabled){const n=t.currentValidInputs[e],r=n?a[n.inputIndex]:null;m.push(r?.getPiecewiseFunction()||null)}else m.push(s.getPiecewiseFunction(e));const h=zf(m,l,c),v=s.getPiecewiseFunction(),T=t._openGLRenderWindow.getGraphicsResourceForObject(v);if(!T?.oglObject?.getHandle()||T?.hash!==h){let e=t.renderable.getOpacityTextureWidth();e&lt;=0&amp;&amp;(e=t.context.getParameter(t.context.MAX_TEXTURE_SIZE));const n=e*u,r=new Uint8ClampedArray(n),o=Hd.newInstance();if(o.setOpenGLRenderWindow(t._openGLRenderWindow),v){const t=new Float32Array(n),r=new Float32Array(e);for(let n=0;n&lt;c;++n){const o=m[n];if(null===o)t.fill(1);else{const a=o.getRange();if(o.getTable(a[0],a[1],e,r,1),l)for(let o=0;o&lt;e;o++)t[n*e*2+o]=r[o],t[n*e*2+o+e]=r[o];else for(let n=0;n&lt;e;n++)t[n]=r[n]}}o.resetFormatAndType(),o.create2DFromRaw({width:e,height:u,numComps:1,dataType:ms.FLOAT,data:t})}else r.fill(255),o.resetFormatAndType(),o.create2DFromRaw({width:e,height:u,numComps:1,dataType:ms.UNSIGNED_CHAR,data:r});v&amp;&amp;t._openGLRenderWindow.setGraphicsResourceForObject(v,o,h),t.pwfTexture=o}else t.pwfTexture=T.oglObject;r(t._openGLRenderWindow,t._pwfTextureCore,v),t._pwfTextureCore=v,t.labelOutlineProperties.length&gt;0&amp;&amp;(e.updateLabelOutlineThicknessTexture(t.labelOutlineProperties),e.updateLabelOutlineOpacityTexture(t.labelOutlineProperties));const x=`${t.resliceGeom.getMTime()}A${t.renderable.getSlabThickness()}`;if(!t.tris.getCABO().getElementCount()||t.VBOBuildString!==x){const e=Is.newInstance({numberOfComponents:3,values:t.resliceGeom.getPoints().getData()});e.setName(&quot;points&quot;);const n=Is.newInstance({numberOfComponents:1,values:t.resliceGeom.getPolys().getData()}),r={points:e,cellOffset:0};if(t.renderable.getSlabThickness()&gt;0){const e=t.resliceGeom.getPointData().getNormals();e?r.normals=e:Xf(&quot;Slab mode requested without normals&quot;)}t.tris.getCABO().createVBO(n,&quot;polys&quot;,rs.SURFACE,r)}t.VBOBuildString=x,t.VBOBuildTime.modified()},e.updateShaders=(n,r,o)=&gt;{if(t.lastBoundBO=n,e.getNeedToRebuildShaders(n,r,o)){const a={Vertex:null,Fragment:null,Geometry:null};e.buildShaders(a,r,o);const i=t._openGLRenderWindow.getShaderCache().readyShaderProgramArray(a.Vertex,a.Fragment,a.Geometry);i!==n.getProgram()&amp;&amp;(n.setProgram(i),n.getVAO().releaseGraphicsResources()),n.getShaderSourceTime().modified()}else t._openGLRenderWindow.getShaderCache().readyShaderProgram(n.getProgram());n.getVAO().bind(),e.setMapperShaderParameters(n,r,o),e.setCameraShaderParameters(n,r,o),e.setPropertyShaderParameters(n,r,o)},e.setMapperShaderParameters=(n,r,o)=&gt;{const a=n.getProgram(),i=t.currentValidInputs[0].imageData;if(n.getCABO().getElementCount()&amp;&amp;(t.VBOBuildTime.getMTime()&gt;n.getAttributeUpdateTime().getMTime()||n.getShaderSourceTime().getMTime()&gt;n.getAttributeUpdateTime().getMTime())){t.scalarTextures.forEach(((e,t)=&gt;{a.setUniformi(`volumeTexture[${t}]`,e.getTextureUnit())})),a.isAttributeUsed(&quot;vertexWC&quot;)&amp;&amp;(n.getVAO().addAttributeArray(a,n.getCABO(),&quot;vertexWC&quot;,n.getCABO().getVertexOffset(),n.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE)||Xf(&quot;Error setting vertexWC in shader VAO.&quot;)),a.isAttributeUsed(&quot;normalWC&quot;)&amp;&amp;(n.getVAO().addAttributeArray(a,n.getCABO(),&quot;normalWC&quot;,n.getCABO().getNormalOffset(),n.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE)||Xf(&quot;Error setting normalWC in shader VAO.&quot;)),a.isUniformUsed(&quot;slabThickness&quot;)&amp;&amp;a.setUniformf(&quot;slabThickness&quot;,t.renderable.getSlabThickness()),a.isUniformUsed(&quot;spacing&quot;)&amp;&amp;a.setUniform3fv(&quot;spacing&quot;,i.getSpacing()),a.isUniformUsed(&quot;slabType&quot;)&amp;&amp;a.setUniformi(&quot;slabType&quot;,t.renderable.getSlabType()),a.isUniformUsed(&quot;slabTrapezoid&quot;)&amp;&amp;a.setUniformi(&quot;slabTrapezoid&quot;,t.renderable.getSlabTrapezoidIntegration());const e=n.getCABO().getCoordShiftAndScaleEnabled()?n.getCABO().getInverseShiftAndScaleMatrix():null;for(let n=0;n&lt;t.currentValidInputs.length;n++){const r=`WCTCMatrix${n}`;if(a.isUniformUsed(r)){const o=t.currentValidInputs[n].imageData,i=o.getDimensions();T(t.tmpMat4,o.getIndexToWorld()),C(t.tmpMat4,t.tmpMat4,[-.5,-.5,-.5]),S(t.tmpMat4,t.tmpMat4,i),b(t.tmpMat4,t.tmpMat4),e&amp;&amp;A(t.tmpMat4,t.tmpMat4,e),a.setUniformMatrix(r,t.tmpMat4)}}a.isUniformUsed(&quot;vboScaling&quot;)&amp;&amp;a.setUniform3fv(&quot;vboScaling&quot;,n.getCABO().getCoordScale()??[1,1,1]),n.getAttributeUpdateTime().modified()}if(t.haveSeenDepthRequest&amp;&amp;n.getProgram().setUniformi(&quot;depthRequest&quot;,t.renderDepth?1:0),n.getProgram().isUniformUsed(&quot;coffset&quot;)){const t=e.getCoincidentParameters(r,o);n.getProgram().setUniformf(&quot;coffset&quot;,t.offset),n.getProgram().isUniformUsed(&quot;cfactor&quot;)&amp;&amp;n.getProgram().setUniformf(&quot;cfactor&quot;,t.factor)}},e.setCameraShaderParameters=(e,n,r)=&gt;{const o=t._openGLCamera.getKeyMatrices(n),a=t._openGLImageSlice.getKeyMatrices(),i=e.getCABO().getCoordShiftAndScaleEnabled()?e.getCABO().getInverseShiftAndScaleMatrix():null,s=e.getProgram();s.isUniformUsed(&quot;MCPCMatrix&quot;)&amp;&amp;(x(t.tmpMat4),s.setUniformMatrix(&quot;MCPCMatrix&quot;,Yf([o.wcpc,a.mcwc,i],H,t.tmpMat4))),s.isUniformUsed(&quot;MCVCMatrix&quot;)&amp;&amp;(x(t.tmpMat4),s.setUniformMatrix(&quot;MCVCMatrix&quot;,Yf([o.wcvc,a.mcwc,i],H,t.tmpMat4)))},e.setPropertyShaderParameters=(e,n,r)=&gt;{const o=e.getProgram(),a=r.getProperty(t.currentValidInputs[0].inputIndex),i=t.multiTexturePerVolumeEnabled?1:a.getOpacity();o.setUniformf(&quot;opacity&quot;,i);const s=t.numberOfComponents,c=a.getIndependentComponents(),u=t.multiTexturePerVolumeEnabled,p=r.getProperties();if(c)for(let e=0;e&lt;s;++e){const n=u?p[t.currentValidInputs[e].inputIndex]:a;o.setUniformf(`mix${e}`,n.getComponentWeight(0))}for(let e=0;e&lt;s;e++){const n=u?e:0,r=u?0:e,i=t.scalarTextures[n].getVolumeInfo(),s=i.scale[r],l=i.offset[r],d=c?e:0,f=u?p[t.currentValidInputs[e].inputIndex]:a;let g=f.getColorWindow(),m=f.getColorLevel();const h=f.getRGBTransferFunction(u?0:d);if(h&amp;&amp;f.getUseLookupTableScalarRange()){const e=h.getRange();g=e[1]-e[0],m=.5*(e[1]+e[0])}const v=s/g,T=(l-m)/g+.5;o.setUniformf(`cshift${e}`,T),o.setUniformf(`cscale${e}`,v);let x=1,y=0;const b=f.getPiecewiseFunction(u?0:d);if(b){const e=b.getRange(),t=e[1]-e[0];x=s/t,y=(l-.5*(e[0]+e[1]))/t+.5}o.setUniformf(`pwfshift${e}`,y),o.setUniformf(`pwfscale${e}`,x)}const f=t.colorTexture.getTextureUnit();o.setUniformi(&quot;colorTexture1&quot;,f);const g=t.pwfTexture.getTextureUnit();if(o.setUniformi(&quot;pwfTexture1&quot;,g),o.setUniform4fv(&quot;backgroundColor&quot;,t.renderable.getBackgroundColor()),t.labelOutlineProperties.length&gt;0){const e=t.labelOutlineThicknessTexture.getTextureUnit();o.setUniformi(&quot;labelOutlineThicknessTexture&quot;,e);const n=t.labelOutlineOpacityTexture.getTextureUnit();o.setUniformi(&quot;labelOutlineOpacityTexture&quot;,n);let r=t.renderable.getLabelOutlineTextureWidth();r&lt;=0&amp;&amp;(r=t.context.getParameter(t.context.MAX_TEXTURE_SIZE)),o.setUniformf(&quot;labelOutlineTextureWidth&quot;,r),o.setUniformf(&quot;numLabelmaps&quot;,t.labelOutlineProperties.length);const a=t.renderable.getSlicePlane();if(t._tmpTangent1.fill(0),t._tmpTangent2.fill(0),a){const e=a.getNormal();za.perpendiculars(e,t._tmpTangent1,t._tmpTangent2,0)}else t._tmpTangent1[0]=1,t._tmpTangent2[1]=1;for(let e=0;e&lt;t.currentValidInputs.length;e++){const n=t.currentValidInputs[e].imageData;l(t._tmpMat3,...n.getDirection()),d(t._tmpMat3,t._tmpMat3),ae(t._tmpVec3a,t._tmpTangent1,t._tmpMat3),ae(t._tmpVec3b,t._tmpTangent2,t._tmpMat3);const r=`outlineTangent1_${e}`,a=`outlineTangent2_${e}`;o.isUniformUsed(r)&amp;&amp;o.setUniform3fv(r,t._tmpVec3a),o.isUniformUsed(a)&amp;&amp;o.setUniform3fv(a,t._tmpVec3b)}for(let e=0;e&lt;t.currentValidInputs.length;e++){const n=`texelSize${e}`;if(o.isUniformUsed(n)){const r=t.currentValidInputs[e].imageData,a=r.getDimensions(),i=r.getSpacing(),s=Math.min(Math.abs(i[0]),Math.abs(i[1]),Math.abs(i[2]));t._tmpTexelSize[0]=s/(a[0]*Math.abs(i[0])),t._tmpTexelSize[1]=s/(a[1]*Math.abs(i[1])),t._tmpTexelSize[2]=s/(a[2]*Math.abs(i[2])),o.setUniform3fv(n,t._tmpTexelSize)}}}},e.getNeedToRebuildShaders=(e,n,r)=&gt;{const o=r.getProperty(t.currentValidInputs[0].inputIndex).getIndependentComponents(),a=t.labelOutlineProperties.length&gt;0,i=t.renderable.getSlabThickness(),s=t.renderable.getSlabType(),l=t.renderable.getSlabTrapezoidIntegration();let c=!1;(!t.currentRenderPass&amp;&amp;t.lastRenderPassShaderReplacement||t.currentRenderPass&amp;&amp;t.currentRenderPass.getShaderReplacement()!==t.lastRenderPassShaderReplacement)&amp;&amp;(c=!0);const u=t.currentValidInputs?.length??0;return!(!c&amp;&amp;t.lastHaveSeenDepthRequest===t.haveSeenDepthRequest&amp;&amp;t.lastNumberOfComponents===t.numberOfComponents&amp;&amp;t.lastMultiTexturePerVolumeEnabled===t.multiTexturePerVolumeEnabled&amp;&amp;0!==e.getProgram()?.getHandle()&amp;&amp;t.lastIndependentComponents===o&amp;&amp;t.lastUseLabelOutline===a&amp;&amp;t.lastNumValidInputs===u&amp;&amp;t.lastSlabThickness===i&amp;&amp;t.lastSlabType===s&amp;&amp;t.lastSlabTrapezoidIntegration===l)&amp;&amp;(t.lastHaveSeenDepthRequest=t.haveSeenDepthRequest,t.lastNumberOfComponents=t.numberOfComponents,t.lastMultiTexturePerVolumeEnabled=t.multiTexturePerVolumeEnabled,t.lastIndependentComponents=o,t.lastUseLabelOutline=a,t.lastNumValidInputs=u,t.lastSlabThickness=i,t.lastSlabType=s,t.lastSlabTrapezoidIntegration=l,!0)},e.getShaderTemplate=(e,t,n)=&gt;{e.Vertex=&quot;//VTK::System::Dec\\n\\n/*=========================================================================\\n\\n  Program:   Visualization Toolkit\\n  Module:    vtkImageResliceMapperVS.glsl\\n\\n  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n  All rights reserved.\\n  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n\\n     This software is distributed WITHOUT ANY WARRANTY; without even\\n     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n     PURPOSE.  See the above copyright notice for more information.\\n\\n=========================================================================*/\\n\\n// all variables that represent positions or directions have a suffix\\n// indicating the coordinate system they are in. The possible values are\\n// MC - Model coordinates\\n// WC - World coordinates\\n// VC - View coordinates\\n// DC - Display coordinates\\n// TC - Texture coordinates\\n\\n// frag position in VC\\n//VTK::PositionVC::Dec\\n\\n// Texture coordinates\\n//VTK::TCoord::Dec\\n\\n// picking support\\n//VTK::Picking::Dec\\n\\n// camera and actor matrix values\\n//VTK::Camera::Dec\\n\\nvoid main()\\n{\\n  //VTK::PositionVC::Impl\\n\\n  //VTK::TCoord::Impl\\n\\n  //VTK::Picking::Impl\\n}\\n&quot;,e.Fragment=&quot;//VTK::System::Dec\\n\\n/*=========================================================================\\n\\n  Program:   Visualization Toolkit\\n  Module:    vtkImageResliceMapperFS.glsl\\n\\n  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n  All rights reserved.\\n  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n\\n     This software is distributed WITHOUT ANY WARRANTY; without even\\n     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n     PURPOSE.  See the above copyright notice for more information.\\n\\n=========================================================================*/\\n// Template for the gpu image mapper fragment shader\\n\\n// VC position of this fragment\\n//VTK::PositionVC::Dec\\n\\n// Texture coordinates\\n//VTK::TCoord::Dec\\n\\n// picking support\\n//VTK::Picking::Dec\\n\\n// handle coincident offsets\\n//VTK::Coincident::Dec\\n\\n//VTK::ZBuffer::Dec\\n\\n// the output of this shader\\n//VTK::Output::Dec\\n\\nvoid main()\\n{\\n  // VC position of this fragment. This should not branch/return/discard.\\n  //VTK::PositionVC::Impl\\n\\n  // Place any calls that require uniform flow (e.g. dFdx) here.\\n  //VTK::UniformFlow::Impl\\n\\n  // Set gl_FragDepth here (gl_FragCoord.z by default)\\n  //VTK::Depth::Impl\\n\\n  // Early depth peeling abort:\\n  //VTK::DepthPeeling::PreColor\\n\\n  //VTK::TCoord::Impl\\n\\n  if (gl_FragData[0].a &lt;= 0.0)\\n    {\\n    discard;\\n    }\\n\\n  //VTK::DepthPeeling::Impl\\n\\n  //VTK::Picking::Impl\\n\\n  // handle coincident offsets\\n  //VTK::Coincident::Impl\\n\\n  //VTK::ZBuffer::Impl\\n\\n  //VTK::RenderPassFragmentShader::Impl\\n}\\n&quot;,e.Geometry=&quot;&quot;},e.replaceShaderValues=(n,r,o)=&gt;{if(e.replaceShaderTCoord(n,r,o),e.replaceShaderPositionVC(n,r,o),t.haveSeenDepthRequest){let e=n.Fragment;e=vd.substitute(e,&quot;//VTK::ZBuffer::Dec&quot;,&quot;uniform int depthRequest;&quot;).result,e=vd.substitute(e,&quot;//VTK::ZBuffer::Impl&quot;,[&quot;if (depthRequest == 1) {&quot;,&quot;float iz = floor(gl_FragCoord.z*65535.0 + 0.1);&quot;,&quot;float rf = floor(iz/256.0)/255.0;&quot;,&quot;float gf = mod(iz,256.0)/255.0;&quot;,&quot;gl_FragData[0] = vec4(rf, gf, 0.0, 1.0); }&quot;]).result,n.Fragment=e}e.replaceShaderCoincidentOffset(n,r,o)},e.replaceShaderTCoord=(e,n,r)=&gt;{let o=e.Vertex;const a=e.Geometry;let i=e.Fragment;const s=t.labelOutlineProperties.length&gt;0,l=t.renderable.getSlabThickness();o=vd.substitute(o,&quot;//VTK::TCoord::Dec&quot;,[]).result,o=vd.substitute(o,&quot;//VTK::TCoord::Impl&quot;,[]).result;const c=t.numberOfComponents,u=r.getProperty(t.currentValidInputs[0].inputIndex).getIndependentComponents(),d=t.scalarTextures.length;let p=[`uniform highp sampler3D volumeTexture[${d}];`,&quot;uniform float cshift0;&quot;,&quot;uniform float cscale0;&quot;,&quot;uniform float pwfshift0;&quot;,&quot;uniform float pwfscale0;&quot;,&quot;uniform sampler2D colorTexture1;&quot;,&quot;uniform sampler2D pwfTexture1;&quot;,&quot;uniform float opacity;&quot;,&quot;uniform vec4 backgroundColor;&quot;];for(let e=0;e&lt;d;e++)p.push(`uniform mat4 WCTCMatrix${e};`);if(s){p=p.concat([&quot;uniform sampler2D labelOutlineThicknessTexture;&quot;,&quot;uniform sampler2D labelOutlineOpacityTexture;&quot;,&quot;uniform float labelOutlineTextureWidth;&quot;,&quot;uniform float numLabelmaps;&quot;]);for(let e=0;e&lt;d;e++)p.push(`uniform vec3 outlineTangent1_${e};`),p.push(`uniform vec3 outlineTangent2_${e};`),p.push(`uniform vec3 texelSize${e};`)}if(p.push(&quot;vec4 rawSampleTexture(vec3 worldPos) {&quot;),t.multiTexturePerVolumeEnabled){p.push(&quot;vec4 rawSample;&quot;);for(let e=0;e&lt;d;++e)p.push(`vec3 tc${e} = (WCTCMatrix${e} * vec4(worldPos, 1.0)).xyz;`,`rawSample[${e}] = texture(volumeTexture[${e}], tc${e})[0];`);p.push(&quot;return rawSample;&quot;,&quot;}&quot;)}else p.push(&quot;vec3 tc0 = (WCTCMatrix0 * vec4(worldPos, 1.0)).xyz;&quot;,&quot;return texture(volumeTexture[0], tc0);&quot;,&quot;}&quot;);if(u){for(let e=1;e&lt;c;e++)p=p.concat([`uniform float cshift${e};`,`uniform float cscale${e};`,`uniform float pwfshift${e};`,`uniform float pwfscale${e};`]);switch(c){case 1:p=p.concat([&quot;uniform float mix0;&quot;,&quot;#define height0 0.5&quot;]);break;case 2:p=p.concat([&quot;uniform float mix0;&quot;,&quot;uniform float mix1;&quot;,&quot;#define height0 0.25&quot;,&quot;#define height1 0.75&quot;]);break;case 3:p=p.concat([&quot;uniform float mix0;&quot;,&quot;uniform float mix1;&quot;,&quot;uniform float mix2;&quot;,&quot;#define height0 0.17&quot;,&quot;#define height1 0.5&quot;,&quot;#define height2 0.83&quot;]);break;case 4:p=p.concat([&quot;uniform float mix0;&quot;,&quot;uniform float mix1;&quot;,&quot;uniform float mix2;&quot;,&quot;uniform float mix3;&quot;,&quot;#define height0 0.125&quot;,&quot;#define height1 0.375&quot;,&quot;#define height2 0.625&quot;,&quot;#define height3 0.875&quot;]);break;default:Xf(&quot;Unsupported number of independent coordinates.&quot;)}}l&gt;0&amp;&amp;(p=p.concat([&quot;uniform vec3 spacing;&quot;,&quot;uniform float slabThickness;&quot;,&quot;uniform int slabType;&quot;,&quot;uniform int slabTrapezoid;&quot;,&quot;uniform vec3 vboScaling;&quot;]),p=p.concat([&quot;vec4 compositeValue(vec4 currVal, vec4 valToComp, int trapezoid)&quot;,&quot;{&quot;,&quot;  vec4 retVal = vec4(1.0);&quot;,&quot;  if (slabType == 0) // min&quot;,&quot;  {&quot;,&quot;    retVal = min(currVal, valToComp);&quot;,&quot;  }&quot;,&quot;  else if (slabType == 1) // max&quot;,&quot;  {&quot;,&quot;    retVal = max(currVal, valToComp);&quot;,&quot;  }&quot;,&quot;  else if (slabType == 3) // sum&quot;,&quot;  {&quot;,&quot;    retVal = currVal + (trapezoid &gt; 0 ? 0.5 * valToComp : valToComp); &quot;,&quot;  }&quot;,&quot;  else // mean&quot;,&quot;  {&quot;,&quot;    retVal = currVal + (trapezoid &gt; 0 ? 0.5 * valToComp : valToComp); &quot;,&quot;  }&quot;,&quot;  return retVal;&quot;,&quot;}&quot;])),i=vd.substitute(i,&quot;//VTK::TCoord::Dec&quot;,p).result;let f=[&quot;vec3 fragWorldPos = vertexWCVSOutput.xyz;&quot;,&quot;vec3 fragTexCoord = (WCTCMatrix0 * vec4(fragWorldPos, 1.0)).xyz;&quot;,&quot;if (any(greaterThan(fragTexCoord, vec3(1.0))) || any(lessThan(fragTexCoord, vec3(0.0))))&quot;,&quot;{&quot;,&quot;  // set the background color and exit&quot;,&quot;  gl_FragData[0] = backgroundColor;&quot;,&quot;  return;&quot;,&quot;}&quot;,&quot;vec4 tvalue = rawSampleTexture(fragWorldPos);&quot;];if(l&gt;0&amp;&amp;(f=f.concat([&quot;// Get the first and last samples&quot;,&quot;int numSlices = 1;&quot;,&quot;float scaling = min(min(spacing.x, spacing.y), spacing.z) * 0.5;&quot;,&quot;vec3 normalxspacing = scaling * normalWCVSOutput;&quot;,&quot;float distTraveled = length(normalxspacing);&quot;,&quot;int trapezoid = 0;&quot;,&quot;while (distTraveled &lt; slabThickness * 0.5)&quot;,&quot;{&quot;,&quot;  distTraveled += length(normalxspacing);&quot;,&quot;  float fnumSlices = float(numSlices);&quot;,&quot;  if (distTraveled &gt; slabThickness * 0.5)&quot;,&quot;  {&quot;,&quot;    // Before stepping outside the slab, sample at the boundaries&quot;,&quot;    normalxspacing = normalWCVSOutput * slabThickness * 0.5 / fnumSlices;&quot;,&quot;    trapezoid = slabTrapezoid;&quot;,&quot;  }&quot;,&quot;  vec3 worldPosNeg = vertexWCVSOutput.xyz - fnumSlices * normalxspacing * vboScaling;&quot;,&quot;  vec3 fragTCoordNeg = (WCTCMatrix0 * vec4(worldPosNeg, 1.0)).xyz;&quot;,&quot;  if (!any(greaterThan(fragTCoordNeg, vec3(1.0))) &amp;&amp; !any(lessThan(fragTCoordNeg, vec3(0.0))))&quot;,&quot;  {&quot;,&quot;    vec4 newVal = rawSampleTexture(worldPosNeg);&quot;,&quot;    tvalue = compositeValue(tvalue, newVal, trapezoid);&quot;,&quot;    numSlices += 1;&quot;,&quot;  }&quot;,&quot;  vec3 worldPosPos = vertexWCVSOutput.xyz + fnumSlices * normalxspacing * vboScaling;&quot;,&quot;  vec3 fragTCoordPos = (WCTCMatrix0 * vec4(worldPosPos, 1.0)).xyz;&quot;,&quot;  if (!any(greaterThan(fragTCoordPos, vec3(1.0))) &amp;&amp; !any(lessThan(fragTCoordPos, vec3(0.0))))&quot;,&quot;  {&quot;,&quot;    vec4 newVal = rawSampleTexture(worldPosPos);&quot;,&quot;    tvalue = compositeValue(tvalue, newVal, trapezoid);&quot;,&quot;    numSlices += 1;&quot;,&quot;  }&quot;,&quot;}&quot;,&quot;// Finally, if slab type is *mean*, divide the sum by the numSlices&quot;,&quot;if (slabType == 2)&quot;,&quot;{&quot;,&quot;  tvalue = tvalue / float(numSlices);&quot;,&quot;}&quot;])),u){const e=[&quot;r&quot;,&quot;g&quot;,&quot;b&quot;,&quot;a&quot;];for(let t=0;t&lt;c;++t)f=f.concat([`vec3 tcolor${t} = texture2D(colorTexture1, vec2(tvalue.${e[t]} * cscale${t} + cshift${t}, height${t})).rgb;`,`float compWeight${t} = mix${t} * texture2D(pwfTexture1, vec2(tvalue.${e[t]} * pwfscale${t} + pwfshift${t}, height${t})).r;`]);const n=[];if(s)for(let e=0;e&lt;c;e++){const o=r.getProperty(t.currentValidInputs[e].inputIndex);o?.getUseLabelOutline()&amp;&amp;n.push(e)}const o=e=&gt;{if(1===e)return[&quot;gl_FragData[0] = vec4(tcolor0.rgb, compWeight0 * opacity);&quot;];const t=Array.from({length:e},((e,t)=&gt;t)),n=t.map((e=&gt;`compWeight${e}`)).join(&quot; + &quot;),r=t.map((e=&gt;`(tcolor${e}.rgb * (compWeight${e} / weightSum))`)).join(&quot; + &quot;);return[`float weightSum = ${n};`,`gl_FragData[0] = vec4(vec3(${r}), opacity);`]};f=n.length&gt;0?f.concat(function(e,t){const n=[&quot;r&quot;,&quot;g&quot;,&quot;b&quot;,&quot;a&quot;],r=Array.from({length:t},((e,t)=&gt;t)),o=r.filter((t=&gt;!e.includes(t))),a=e.map((e=&gt;`vec3 labelTexCoord${e} = (WCTCMatrix${e} * vec4(fragWorldPos, 1.0)).xyz;`)).join(&quot;\\n                &quot;),i=0===e.length?&quot;&quot;:`float neighborLabel = ${e.map(((e,t)=&gt;0===t?`(labelInputIdx == ${t}) ? texture(volumeTexture[${e}], neighborTexCoord).r`:` : (labelInputIdx == ${t}) ? texture(volumeTexture[${e}], neighborTexCoord).r`)).join(&quot;&quot;)} : 0.0;`,s=[...o,...e].map((t=&gt;{const r=e.includes(t),o=e.indexOf(t);return r?`\\n        // Process input ${t} as labelmap\\n        {\\n          float labelValue = tvalue.${n[t]};\\n          int segmentIndex = int(labelValue * 255.0);\\n\\n          if (segmentIndex &gt; 0) {\\n            float textureCoordinate = float(segmentIndex - 1) / labelOutlineTextureWidth;\\n            float labelmapRow = (float(${o}) + 0.5) / numLabelmaps;\\n            float thicknessValue = texture2D(labelOutlineThicknessTexture, vec2(textureCoordinate, labelmapRow)).r;\\n            float labelOutlineOpacityValue = texture2D(labelOutlineOpacityTexture, vec2(textureCoordinate, labelmapRow)).r;\\n            int actualThickness = int(thicknessValue * 255.0);\\n\\n            vec3 currentLabelTC = labelTexCoord${t};\\n            vec3 currentTexelSize = texelSize${t};\\n            vec3 currentTangent1 = outlineTangent1_${t};\\n            vec3 currentTangent2 = outlineTangent2_${t};\\n\\n            bool pixelOnBorder = false;\\n            int labelInputIdx = ${o};\\n            for (int i = -actualThickness; i &lt;= actualThickness; i++) {\\n              for (int j = -actualThickness; j &lt;= actualThickness; j++) {\\n                if (i == 0 &amp;&amp; j == 0) continue;\\n                vec3 neighborTexCoord = currentLabelTC + float(i) * currentTangent1 * currentTexelSize + float(j) * currentTangent2 * currentTexelSize;\\n                if (any(greaterThan(neighborTexCoord, vec3(1.0))) || any(lessThan(neighborTexCoord, vec3(0.0)))) {\\n                  pixelOnBorder = true;\\n                  break;\\n                }\\n                ${i}\\n                if (neighborLabel != labelValue) {\\n                  pixelOnBorder = true;\\n                  break;\\n                }\\n              }\\n              if (pixelOnBorder) break;\\n            }\\n\\n            if (pixelOnBorder) {\\n              convergentColor.rgb = mix(convergentColor.rgb, tcolor${t}.rgb, labelOutlineOpacityValue);\\n              convergentColor.a = max(convergentColor.a, labelOutlineOpacityValue);\\n            } else if (compWeight${t} &gt; 0.0) {\\n              float fillAlpha = compWeight${t} * opacity;\\n              convergentColor.rgb = mix(convergentColor.rgb, tcolor${t}.rgb, fillAlpha);\\n              convergentColor.a = max(convergentColor.a, fillAlpha);\\n            }\\n          }\\n        }`:`\\n        // Process input ${t} as background image\\n        {\\n          float bgAlpha = compWeight${t} * opacity;\\n          convergentColor.rgb = mix(convergentColor.rgb, tcolor${t}.rgb, bgAlpha);\\n          convergentColor.a = max(convergentColor.a, bgAlpha);\\n        }`})).join(&quot;\\n        &quot;),l=e.length&gt;0?`labelmaps at input${e.length&gt;1?&quot;s&quot;:&quot;&quot;} ${e.join(&quot;, &quot;)}`:&quot;no labelmaps&quot;,c=o.length&gt;0?`background at input${o.length&gt;1?&quot;s&quot;:&quot;&quot;} ${o.join(&quot;, &quot;)}`:&quot;no background&quot;;return qf(`\\n      // Multi-texture mode: ${l}, ${c}\\n      vec4 convergentColor = vec4(0.0, 0.0, 0.0, 0.0);\\n\\n      // Compute labelmap texture coordinates\\n      ${a}\\n\\n      // Process each input in order\\n      ${s}\\n\\n      gl_FragData[0] = convergentColor;\\n    `)}(n,c)):f.concat(o(c))}else switch(c){case 1:f=s?f.concat([...qf(&quot;\\n                // Label outline mode for single component\\n                float centerValue = tvalue.r;\\n                int segmentIndex = int(centerValue * 255.0);\\n\\n                // Skip background (segment 0)\\n                if (segmentIndex == 0) {\\n                  gl_FragData[0] = vec4(0.0, 0.0, 0.0, 0.0);\\n                  return;\\n                }\\n\\n                // Get outline parameters for this segment (row 0 for single labelmap)\\n                float textureCoordinate = float(segmentIndex - 1) / labelOutlineTextureWidth;\\n                float labelmapRow = 0.5 / numLabelmaps;\\n                float thicknessValue = texture2D(labelOutlineThicknessTexture, vec2(textureCoordinate, labelmapRow)).r;\\n                float outlineOpacity = texture2D(labelOutlineOpacityTexture, vec2(textureCoordinate, labelmapRow)).r;\\n                int actualThickness = int(thicknessValue * 255.0);\\n\\n                // Get color for this segment\\n                vec3 tColor = texture2D(colorTexture1, vec2(centerValue * cscale0 + cshift0, 0.5)).rgb;\\n                float scalarOpacity = texture2D(pwfTexture1, vec2(centerValue * pwfscale0 + pwfshift0, 0.5)).r;\\n                float opacityToUse = scalarOpacity * opacity;\\n\\n                // Check neighbors for border detection\\n                bool pixelOnBorder = false;\\n                for (int i = -actualThickness; i &lt;= actualThickness; i++) {\\n                  for (int j = -actualThickness; j &lt;= actualThickness; j++) {\\n                    if (i == 0 &amp;&amp; j == 0) {\\n                      continue;\\n                    }\\n                    // Sample neighbor using tangent vectors in texture space\\n                    vec3 neighborTexCoord = fragTexCoord + float(i) * outlineTangent1_0 * texelSize0 + float(j) * outlineTangent2_0 * texelSize0;\\n\\n                    // Skip if outside texture bounds\\n                    if (any(greaterThan(neighborTexCoord, vec3(1.0))) || any(lessThan(neighborTexCoord, vec3(0.0)))) {\\n                      pixelOnBorder = true;\\n                      break;\\n                    }\\n\\n                    float neighborValue = texture(volumeTexture[0], neighborTexCoord).r;\\n                    if (neighborValue != centerValue) {\\n                      pixelOnBorder = true;\\n                      break;\\n                    }\\n                  }\\n                  if (pixelOnBorder) {\\n                    break;\\n                  }\\n                }\\n\\n                if (pixelOnBorder) {\\n                  gl_FragData[0] = vec4(tColor, outlineOpacity);\\n                } else {\\n                  gl_FragData[0] = vec4(tColor, opacityToUse);\\n                }\\n              &quot;)]):f.concat([&quot;// Dependent components&quot;,&quot;float intensity = tvalue.r;&quot;,&quot;vec3 tcolor = texture2D(colorTexture1, vec2(intensity * cscale0 + cshift0, 0.5)).rgb;&quot;,&quot;float scalarOpacity = texture2D(pwfTexture1, vec2(intensity * pwfscale0 + pwfshift0, 0.5)).r;&quot;,&quot;gl_FragData[0] = vec4(tcolor, scalarOpacity * opacity);&quot;]);break;case 2:f=f.concat([&quot;float intensity = tvalue.r*cscale0 + cshift0;&quot;,&quot;gl_FragData[0] = vec4(texture2D(colorTexture1, vec2(intensity, 0.5)).rgb, pwfscale0*tvalue.g + pwfshift0);&quot;]);break;case 3:f=f.concat([&quot;vec4 tcolor = cscale0*tvalue + cshift0;&quot;,&quot;gl_FragData[0] = vec4(texture2D(colorTexture1, vec2(tcolor.r,0.5)).r,&quot;,&quot;  texture2D(colorTexture1, vec2(tcolor.g,0.5)).r,&quot;,&quot;  texture2D(colorTexture1, vec2(tcolor.b,0.5)).r, opacity);&quot;]);break;default:f=f.concat([&quot;vec4 tcolor = cscale0*tvalue + cshift0;&quot;,&quot;gl_FragData[0] = vec4(texture2D(colorTexture1, vec2(tcolor.r,0.5)).r,&quot;,&quot;  texture2D(colorTexture1, vec2(tcolor.g,0.5)).r,&quot;,&quot;  texture2D(colorTexture1, vec2(tcolor.b,0.5)).r, tcolor.a);&quot;])}i=vd.substitute(i,&quot;//VTK::TCoord::Impl&quot;,f).result,e.Vertex=o,e.Fragment=i,e.Geometry=a},e.replaceShaderPositionVC=(n,r,o)=&gt;{let a=n.Vertex;const i=n.Geometry;let s=n.Fragment;const l=t.renderable.getSlabThickness();let c=[&quot;attribute vec4 vertexWC;&quot;,&quot;varying vec4 vertexWCVSOutput;&quot;];c=c.concat([`//${e.getMTime()}${t.resliceGeomUpdateString}`]),l&gt;0&amp;&amp;(c=c.concat([&quot;attribute vec3 normalWC;&quot;,&quot;varying vec3 normalWCVSOutput;&quot;])),a=vd.substitute(a,&quot;//VTK::PositionVC::Dec&quot;,c).result;let u=[&quot;gl_Position = MCPCMatrix * vertexWC;&quot;,&quot;vertexWCVSOutput = vertexWC;&quot;];l&gt;0&amp;&amp;(u=u.concat([&quot;normalWCVSOutput = normalWC;&quot;])),a=vd.substitute(a,&quot;//VTK::PositionVC::Impl&quot;,u).result,a=vd.substitute(a,&quot;//VTK::Camera::Dec&quot;,[&quot;uniform mat4 MCPCMatrix;&quot;,&quot;uniform mat4 MCVCMatrix;&quot;]).result;let d=[&quot;varying vec4 vertexWCVSOutput;&quot;];l&gt;0&amp;&amp;(d=d.concat([&quot;varying vec3 normalWCVSOutput;&quot;])),s=vd.substitute(s,&quot;//VTK::PositionVC::Dec&quot;,d).result,n.Vertex=a,n.Geometry=i,n.Fragment=s},e.updateResliceGeometry=()=&gt;{let e=&quot;&quot;;const n=t.currentValidInputs[0].imageData,r=n?.getBounds();let o=!0,a=2;const s=t.renderable.getSlicePolyData(),c=t.renderable.getSlicePlane();if(s)e=e.concat(`PolyData${s.getMTime()}`);else if(c){e=e.concat(`Plane${c.getMTime()}`);const t=i();n&amp;&amp;(e=e.concat(`Image${n.getMTime()}`),l(t,...n.getDirection()),d(t,t));const r=[...c.getNormal()];ae(r,r,t),[o,a]=function(e){za.normalize(e);const t=[0,0,0];for(let r=0;r&lt;3;++r){(n=t)[0]=0,n[1]=0,n[2]=0,t[r]=1;const o=za.dot(e,t);if(o&lt;-.999999||o&gt;.999999)return[!0,r]}var n;return[!1,2]}(r)}else{const o=ai.newInstance();o.setNormal(0,0,1);let a=[0,1,0,1,0,1];n&amp;&amp;(a=r),o.setOrigin(a[0],a[2],.5*(a[5]+a[4])),t.renderable.setSlicePlane(o),e=e.concat(`Plane${c?.getMTime()}`),n&amp;&amp;(e=e.concat(`Image${n.getMTime()}`))}if(!t.resliceGeom||t.resliceGeomUpdateString!==e){if(s)t.resliceGeom||(t.resliceGeom=Ru.newInstance()),t.resliceGeom.getPoints().setData(s.getPoints().getData(),3),t.resliceGeom.getPolys().setData(s.getPolys().getData(),1),t.resliceGeom.getPointData().setNormals(s.getPointData().getNormals());else if(c)if(o){const e=new Float32Array(12),r=n.worldToIndex(c.getOrigin(),[0,0,0]),o=[(a+1)%3,(a+2)%3].sort(),i=n.getSpatialExtent();let s=0;for(let t=0;t&lt;2;++t)for(let n=0;n&lt;2;++n)e[s+a]=r[a],e[s+o[0]]=i[2*o[0]+n],e[s+o[1]]=i[2*o[1]+t],s+=3;t.transform.setMatrix(n.getIndexToWorld()),t.transform.transformPoints(e,e);const l=new Uint16Array(8);l[0]=3,l[1]=0,l[2]=1,l[3]=3,l[4]=3,l[5]=0,l[6]=3,l[7]=2;const u=c.getNormal();za.normalize(u);const d=new Float32Array(12);for(let e=0;e&lt;4;++e)d[3*e]=u[0],d[3*e+1]=u[1],d[3*e+2]=u[2];t.resliceGeom||(t.resliceGeom=Ru.newInstance()),t.resliceGeom.getPoints().setData(e,3),t.resliceGeom.getPolys().setData(l,1);const p=Is.newInstance({numberOfComponents:3,values:d,name:&quot;Normals&quot;});t.resliceGeom.getPointData().setNormals(p)}else{t.outlineFilter.setInputData(n),t.cutter.setInputConnection(t.outlineFilter.getOutputPort()),t.cutter.setCutFunction(c),t.lineToSurfaceFilter.setInputConnection(t.cutter.getOutputPort()),t.lineToSurfaceFilter.update(),t.resliceGeom||(t.resliceGeom=Ru.newInstance());const e=t.lineToSurfaceFilter.getOutputData();t.resliceGeom.getPoints().setData(e.getPoints().getData(),3),t.resliceGeom.getPolys().setData(e.getPolys().getData(),1),t.resliceGeom.getPointData().setNormals(e.getPointData().getNormals());const r=c.getNormal(),o=t.resliceGeom.getNumberOfPoints();za.normalize(r);const a=new Float32Array(3*o);for(let e=0;e&lt;o;++e)a[3*e]=r[0],a[3*e+1]=r[1],a[3*e+2]=r[2];const i=Is.newInstance({numberOfComponents:3,values:a,name:&quot;Normals&quot;});t.resliceGeom.getPointData().setNormals(i)}else Xf(&quot;Something went wrong.&quot;,&quot;A default slice plane should have been created in the beginning of&quot;,&quot;updateResliceGeometry.&quot;);t.resliceGeomUpdateString=e,t.resliceGeom?.modified()}},e.updateLabelOutlineThicknessTexture=e=&gt;{a(e.map((({property:e})=&gt;e.getLabelOutlineThicknessByReference())),Uint8Array,ms.UNSIGNED_CHAR,&quot;_labelOutlineThicknessHash&quot;,&quot;labelOutlineThicknessTexture&quot;)},e.updateLabelOutlineOpacityTexture=e=&gt;{a(e.map((({property:e})=&gt;{let t=e.getLabelOutlineOpacity();return&quot;number&quot;==typeof t&amp;&amp;(t=[t]),t})),Float32Array,ms.FLOAT,&quot;_labelOutlineOpacityHash&quot;,&quot;labelOutlineOpacityTexture&quot;)},e.setScalarTextures=e=&gt;{t.scalarTextures=[...e],t._externalOpenGLTexture=!0},e.delete=qt((()=&gt;{t._openGLRenderWindow&amp;&amp;o(t._openGLRenderWindow),t.labelOutlineThicknessTexture&amp;&amp;(t.labelOutlineThicknessTexture.releaseGraphicsResources(),t.labelOutlineThicknessTexture=null),t.labelOutlineOpacityTexture&amp;&amp;(t.labelOutlineOpacityTexture.releaseGraphicsResources(),t.labelOutlineOpacityTexture=null)}),e.delete)}const Zf={VBOBuildTime:{},VBOBuildString:null,haveSeenDepthRequest:!1,lastHaveSeenDepthRequest:!1,lastIndependentComponents:!1,lastUseLabelOutline:!1,lastNumValidInputs:0,lastNumberOfComponents:0,lastMultiTexturePerVolumeEnabled:!1,lastSlabThickness:0,lastSlabTrapezoidIntegration:0,lastSlabType:-1,scalarTextures:[],_scalarTexturesCore:[],colorTexture:null,_colorTextureCore:null,pwfTexture:null,_pwfTextureCore:null,labelOutlineProperties:[],labelOutlineThicknessTexture:null,_labelOutlineThicknessHash:null,labelOutlineOpacityTexture:null,_labelOutlineOpacityHash:null,_externalOpenGLTexture:!1,resliceGeom:null,resliceGeomUpdateString:null,tris:null};vn(&quot;vtkImageResliceMapper&quot;,Xt((function(e,t,n={}){Object.assign(t,Zf,n),pn.extend(e,t,n),qd.implementReplaceShaderCoincidentOffset(e,t,n),qd.implementBuildShadersWithReplacements(e,t,n),t.tris=Sd.newInstance(),t.scalarTextures=[],t.colorTexture=null,t.pwfTexture=null,t.VBOBuildTime={},Vt(t.VBOBuildTime),t.tmpMat4=x(new Float64Array(16)),t._tmpMat3=i(),t._tmpVec3a=j(),t._tmpVec3b=j(),t._tmpTangent1=[0,0,0],t._tmpTangent2=[0,0,0],t._tmpTexelSize=[0,0,0],t.outlineFilter=Nf.newInstance(),t.outlineFilter.setGenerateFaces(!0),t.outlineFilter.setGenerateLines(!1),t.cubePolyData=Ru.newInstance(),t.cutter=Sf.newInstance(),t.lineToSurfaceFilter=xf.newInstance(),t.transform=Kf.newInstance(),Bt(e,t,[&quot;scalarTextures&quot;]),Jf(e,t)}),&quot;vtkOpenGLImageResliceMapper&quot;));var Qf={SlicingMode:{NONE:-1,I:0,J:1,K:2,X:3,Y:4,Z:5}};const{vtkErrorMacro:$f}=ln,{SlicingMode:eg}=Qf;function tg(e){const t=e.split(&quot;\\n&quot;),n=[];for(let e=0;e&lt;t.length;++e){const r=t[e].trim();r.length&gt;0&amp;&amp;n.push(r)}return n}const ng={VBOBuildTime:0,VBOBuildString:null,openGLTexture:null,tris:null,imagemat:null,imagematinv:null,colorTexture:null,pwfTexture:null,labelOutlineThicknessTexture:null,labelOutlineOpacityTexture:null,lastHaveSeenDepthRequest:!1,haveSeenDepthRequest:!1,lastTextureComponents:0};const rg=Xt((function(e,t,n={}){Object.assign(t,ng,n),pn.extend(e,t,n),qd.implementReplaceShaderCoincidentOffset(e,t,n),qd.implementBuildShadersWithReplacements(e,t,n),t.tris=Sd.newInstance(),t.imagemat=x(new Float64Array(16)),t.imagematinv=x(new Float64Array(16)),t.projectionToWorld=x(new Float64Array(16)),t.idxToView=x(new Float64Array(16)),t.idxNormalMatrix=c(new Float64Array(9)),t.modelToView=x(new Float64Array(16)),t.projectionToView=x(new Float64Array(16)),Gt(e,t,[]),t.VBOBuildTime={},Vt(t.VBOBuildTime),function(e,t){function n(n){t.openGLTexture.releaseGraphicsResources(n),[t._colorTransferFunc,t._pwFunc,t._labelOutlineThicknessArray,t._labelOutlineOpacity].forEach((t=&gt;n.unregisterGraphicsResourceUser(t,e)))}t.classHierarchy.push(&quot;vtkOpenGLImageMapper&quot;),e.buildPass=r=&gt;{if(r){t.currentRenderPass=null,t.openGLImageSlice=e.getFirstAncestorOfType(&quot;vtkOpenGLImageSlice&quot;),t._openGLRenderer=e.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;);const r=t._openGLRenderWindow;t._openGLRenderWindow=t._openGLRenderer.getLastAncestorOfType(&quot;vtkOpenGLRenderWindow&quot;),r&amp;&amp;!r.isDeleted()&amp;&amp;r!==t._openGLRenderWindow&amp;&amp;n(r),t.context=t._openGLRenderWindow.getContext(),t.tris.setOpenGLRenderWindow(t._openGLRenderWindow);const o=t._openGLRenderer.getRenderable();t.openGLCamera=t._openGLRenderer.getViewNodeFor(o.getActiveCamera(),t.openGLCamera),t.renderable.isA(&quot;vtkImageMapper&quot;)&amp;&amp;t.renderable.getSliceAtFocalPoint()&amp;&amp;t.renderable.setSliceFromCamera(o.getActiveCamera())}},e.translucentPass=(n,r)=&gt;{n&amp;&amp;(t.currentRenderPass=r,e.render())},e.zBufferPass=n=&gt;{n&amp;&amp;(t.haveSeenDepthRequest=!0,t.renderDepth=!0,e.render(),t.renderDepth=!1)},e.opaqueZBufferPass=t=&gt;e.zBufferPass(t),e.opaquePass=t=&gt;{t&amp;&amp;e.render()},e.getCoincidentParameters=(e,n)=&gt;t.renderable.getResolveCoincidentTopology()==Pl.PolygonOffset?t.renderable.getCoincidentTopologyPolygonOffsetParameters():null,e.render=()=&gt;{const n=t.openGLImageSlice.getRenderable(),r=t._openGLRenderer.getRenderable();e.renderPiece(r,n)},e.getShaderTemplate=(e,t,n)=&gt;{e.Vertex=jd,e.Fragment=Xd,e.Geometry=&quot;&quot;},e.replaceShaderValues=(n,r,o)=&gt;{let a=n.Vertex,i=n.Fragment;a=vd.substitute(a,&quot;//VTK::Camera::Dec&quot;,[&quot;uniform mat4 MCPCMatrix;&quot;]).result,a=vd.substitute(a,&quot;//VTK::PositionVC::Impl&quot;,[&quot;  gl_Position = MCPCMatrix * vertexMC;&quot;]).result,a=vd.substitute(a,&quot;//VTK::TCoord::Impl&quot;,&quot;tcoordVCVSOutput = tcoordMC;&quot;).result,a=vd.substitute(a,&quot;//VTK::TCoord::Dec&quot;,&quot;attribute vec2 tcoordMC; varying vec2 tcoordVCVSOutput;&quot;).result;const s=t.openGLTexture.getComponents(),l=o.getProperty().getIndependentComponents();let c=[&quot;varying vec2 tcoordVCVSOutput;&quot;,&quot;uniform float cshift0;&quot;,&quot;uniform float cscale0;&quot;,&quot;uniform float pwfshift0;&quot;,&quot;uniform float pwfscale0;&quot;,&quot;uniform sampler2D texture1;&quot;,&quot;uniform sampler2D colorTexture1;&quot;,&quot;uniform sampler2D pwfTexture1;&quot;,&quot;uniform float opacity;&quot;];if(o.getProperty().getUseLabelOutline()&amp;&amp;(c=c.concat([&quot;uniform sampler2D labelOutlineTexture1;&quot;,&quot;uniform sampler2D labelOutlineOpacityTexture1;&quot;])),l){for(let e=1;e&lt;s;e++)c=c.concat([`uniform float cshift${e};`,`uniform float cscale${e};`,`uniform float pwfshift${e};`,`uniform float pwfscale${e};`]);switch(s){case 1:c=c.concat([&quot;uniform float mix0;&quot;,&quot;#define height0 0.5&quot;]);break;case 2:c=c.concat([&quot;uniform float mix0;&quot;,&quot;uniform float mix1;&quot;,&quot;#define height0 0.25&quot;,&quot;#define height1 0.75&quot;]);break;case 3:c=c.concat([&quot;uniform float mix0;&quot;,&quot;uniform float mix1;&quot;,&quot;uniform float mix2;&quot;,&quot;#define height0 0.17&quot;,&quot;#define height1 0.5&quot;,&quot;#define height2 0.83&quot;]);break;case 4:c=c.concat([&quot;uniform float mix0;&quot;,&quot;uniform float mix1;&quot;,&quot;uniform float mix2;&quot;,&quot;uniform float mix3;&quot;,&quot;#define height0 0.125&quot;,&quot;#define height1 0.375&quot;,&quot;#define height2 0.625&quot;,&quot;#define height3 0.875&quot;]);break;default:$f(&quot;Unsupported number of independent coordinates.&quot;)}}if(i=vd.substitute(i,&quot;//VTK::TCoord::Dec&quot;,c).result,!0===o.getProperty().getUseLabelOutline()&amp;&amp;(i=vd.substitute(i,&quot;//VTK::LabelOutline::Dec&quot;,[&quot;uniform float vpWidth;&quot;,&quot;uniform float vpHeight;&quot;,&quot;uniform float vpOffsetX;&quot;,&quot;uniform float vpOffsetY;&quot;,&quot;uniform mat4 PCWCMatrix;&quot;,&quot;uniform mat4 vWCtoIDX;&quot;,&quot;uniform ivec3 imageDimensions;&quot;,&quot;uniform int sliceAxis;&quot;]).result,i=vd.substitute(i,&quot;//VTK::ImageLabelOutlineOn&quot;,&quot;#define vtkImageLabelOutlineOn&quot;).result,i=vd.substitute(i,&quot;//VTK::LabelOutlineHelperFunction&quot;,[&quot;#ifdef vtkImageLabelOutlineOn&quot;,&quot;vec3 fragCoordToIndexSpace(vec4 fragCoord) {&quot;,&quot;  vec4 pcPos = vec4(&quot;,&quot;    (fragCoord.x / vpWidth - vpOffsetX - 0.5) * 2.0,&quot;,&quot;    (fragCoord.y / vpHeight - vpOffsetY - 0.5) * 2.0,&quot;,&quot;    (fragCoord.z - 0.5) * 2.0,&quot;,&quot;    1.0);&quot;,&quot;&quot;,&quot;  vec4 worldCoord = PCWCMatrix * pcPos;&quot;,&quot;  vec4 vertex = (worldCoord/worldCoord.w);&quot;,&quot;&quot;,&quot;  vec3 index = (vWCtoIDX * vertex).xyz;&quot;,&quot;&quot;,&quot;  // half voxel fix for labelmapOutline&quot;,&quot;  return (index + vec3(0.5)) / vec3(imageDimensions);&quot;,&quot;}&quot;,&quot;vec2 getSliceCoords(vec3 coord, int axis) {&quot;,&quot;  if (axis == 0) return coord.yz;&quot;,&quot;  if (axis == 1) return coord.xz;&quot;,&quot;  if (axis == 2) return coord.xy;&quot;,&quot;}&quot;,&quot;#endif&quot;]).result),l){const e=[&quot;r&quot;,&quot;g&quot;,&quot;b&quot;,&quot;a&quot;];let t=[&quot;vec4 tvalue = texture2D(texture1, tcoordVCVSOutput);&quot;];for(let n=0;n&lt;s;n++)t=t.concat([`vec3 tcolor${n} = mix${n} * texture2D(colorTexture1, vec2(tvalue.${e[n]} * cscale${n} + cshift${n}, height${n})).rgb;`,`float compWeight${n} = mix${n} * texture2D(pwfTexture1, vec2(tvalue.${e[n]} * pwfscale${n} + pwfshift${n}, height${n})).r;`]);switch(s){case 1:t=t.concat([&quot;gl_FragData[0] = vec4(tcolor0.rgb, opacity);&quot;]);break;case 2:t=t.concat([&quot;float weightSum = compWeight0 + compWeight1;&quot;,&quot;gl_FragData[0] = vec4(vec3((tcolor0.rgb * (compWeight0 / weightSum)) + (tcolor1.rgb * (compWeight1 / weightSum))), opacity);&quot;]);break;case 3:t=t.concat([&quot;float weightSum = compWeight0 + compWeight1 + compWeight2;&quot;,&quot;gl_FragData[0] = vec4(vec3((tcolor0.rgb * (compWeight0 / weightSum)) + (tcolor1.rgb * (compWeight1 / weightSum)) + (tcolor2.rgb * (compWeight2 / weightSum))), opacity);&quot;]);break;case 4:t=t.concat([&quot;float weightSum = compWeight0 + compWeight1 + compWeight2 + compWeight3;&quot;,&quot;gl_FragData[0] = vec4(vec3((tcolor0.rgb * (compWeight0 / weightSum)) + (tcolor1.rgb * (compWeight1 / weightSum)) + (tcolor2.rgb * (compWeight2 / weightSum)) + (tcolor3.rgb * (compWeight3 / weightSum))), opacity);&quot;]);break;default:$f(&quot;Unsupported number of independent coordinates.&quot;)}i=vd.substitute(i,&quot;//VTK::TCoord::Impl&quot;,t).result}else switch(s){case 1:i=vd.substitute(i,&quot;//VTK::TCoord::Impl&quot;,[...tg(&quot;\\n                #ifdef vtkImageLabelOutlineOn\\n                  vec3 centerPosIS = fragCoordToIndexSpace(gl_FragCoord);\\n                  float centerValue = texture2D(texture1, getSliceCoords(centerPosIS, sliceAxis)).r;\\n                  bool pixelOnBorder = false;\\n                  vec3 tColor = texture2D(colorTexture1, vec2(centerValue * cscale0 + cshift0, 0.5)).rgb;\\n                  float scalarOpacity = texture2D(pwfTexture1, vec2(centerValue * pwfscale0 + pwfshift0, 0.5)).r;\\n                  float opacityToUse = scalarOpacity * opacity;\\n                  int segmentIndex = int(centerValue * 255.0);\\n                  float textureCoordinate = float(segmentIndex - 1) / 1024.0;\\n                  float textureValue = texture2D(labelOutlineTexture1, vec2(textureCoordinate, 0.5)).r;\\n                  float outlineOpacity = texture2D(labelOutlineOpacityTexture1, vec2(textureCoordinate, 0.5)).r;\\n                  int actualThickness = int(textureValue * 255.0);\\n\\n                  if (segmentIndex == 0){\\n                    gl_FragData[0] = vec4(0.0, 0.0, 0.0, 0.0);\\n                    return;\\n                  }\\n\\n                  for (int i = -actualThickness; i &lt;= actualThickness; i++) {\\n                    for (int j = -actualThickness; j &lt;= actualThickness; j++) {\\n                      if (i == 0 &amp;&amp; j == 0) {\\n                        continue;\\n                      }\\n                      vec4 neighborPixelCoord = vec4(gl_FragCoord.x + float(i),\\n                        gl_FragCoord.y + float(j),\\n                        gl_FragCoord.z, gl_FragCoord.w);\\n                      vec3 neighborPosIS = fragCoordToIndexSpace(neighborPixelCoord);\\n                      float value = texture2D(texture1, getSliceCoords(neighborPosIS, sliceAxis)).r;\\n                      if (value != centerValue) {\\n                        pixelOnBorder = true;\\n                        break;\\n                      }\\n                    }\\n                    if (pixelOnBorder == true) {\\n                      break;\\n                    }\\n                  }\\n                  if (pixelOnBorder == true) {\\n                    gl_FragData[0] = vec4(tColor, outlineOpacity);\\n                  }\\n                  else {\\n                    gl_FragData[0] = vec4(tColor, opacityToUse);\\n                  }\\n                #else\\n                  float intensity = texture2D(texture1, tcoordVCVSOutput).r;\\n                  vec3 tcolor = texture2D(colorTexture1, vec2(intensity * cscale0 + cshift0, 0.5)).rgb;\\n                  float scalarOpacity = texture2D(pwfTexture1, vec2(intensity * pwfscale0 + pwfshift0, 0.5)).r;\\n                  gl_FragData[0] = vec4(tcolor, scalarOpacity * opacity);\\n                #endif\\n                &quot;)]).result;break;case 2:i=vd.substitute(i,&quot;//VTK::TCoord::Impl&quot;,[&quot;vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);&quot;,&quot;float intensity = tcolor.r*cscale0 + cshift0;&quot;,&quot;gl_FragData[0] = vec4(texture2D(colorTexture1, vec2(intensity, 0.5)).rgb, pwfscale0*tcolor.g + pwfshift0);&quot;]).result;break;case 3:i=vd.substitute(i,&quot;//VTK::TCoord::Impl&quot;,[&quot;vec4 tcolor = cscale0*texture2D(texture1, tcoordVCVSOutput.st) + cshift0;&quot;,&quot;gl_FragData[0] = vec4(texture2D(colorTexture1, vec2(tcolor.r,0.5)).r,&quot;,&quot;  texture2D(colorTexture1, vec2(tcolor.g,0.5)).r,&quot;,&quot;  texture2D(colorTexture1, vec2(tcolor.b,0.5)).r, opacity);&quot;]).result;break;default:i=vd.substitute(i,&quot;//VTK::TCoord::Impl&quot;,[&quot;vec4 tcolor = cscale0*texture2D(texture1, tcoordVCVSOutput.st) + cshift0;&quot;,&quot;gl_FragData[0] = vec4(texture2D(colorTexture1, vec2(tcolor.r,0.5)).r,&quot;,&quot;  texture2D(colorTexture1, vec2(tcolor.g,0.5)).r,&quot;,&quot;  texture2D(colorTexture1, vec2(tcolor.b,0.5)).r, tcolor.a);&quot;]).result}t.haveSeenDepthRequest&amp;&amp;(i=vd.substitute(i,&quot;//VTK::ZBuffer::Dec&quot;,&quot;uniform int depthRequest;&quot;).result,i=vd.substitute(i,&quot;//VTK::ZBuffer::Impl&quot;,[&quot;if (depthRequest == 1) {&quot;,&quot;float iz = floor(gl_FragCoord.z*65535.0 + 0.1);&quot;,&quot;float rf = floor(iz/256.0)/255.0;&quot;,&quot;float gf = mod(iz,256.0)/255.0;&quot;,&quot;gl_FragData[0] = vec4(rf, gf, 0.0, 1.0); }&quot;]).result),n.Vertex=a,n.Fragment=i,e.replaceShaderClip(n,r,o),e.replaceShaderCoincidentOffset(n,r,o)},e.replaceShaderClip=(e,n,r)=&gt;{let o=e.Vertex,a=e.Fragment;if(t.renderable.getNumberOfClippingPlanes()){let e=t.renderable.getNumberOfClippingPlanes();e&gt;6&amp;&amp;(Tt(&quot;OpenGL has a limit of 6 clipping planes&quot;),e=6),o=vd.substitute(o,&quot;//VTK::Clip::Dec&quot;,[&quot;uniform int numClipPlanes;&quot;,&quot;uniform vec4 clipPlanes[6];&quot;,&quot;varying float clipDistancesVSOutput[6];&quot;]).result,o=vd.substitute(o,&quot;//VTK::Clip::Impl&quot;,[&quot;for (int planeNum = 0; planeNum &lt; 6; planeNum++)&quot;,&quot;    {&quot;,&quot;    if (planeNum &gt;= numClipPlanes)&quot;,&quot;        {&quot;,&quot;        break;&quot;,&quot;        }&quot;,&quot;    clipDistancesVSOutput[planeNum] = dot(clipPlanes[planeNum], vertexMC);&quot;,&quot;    }&quot;]).result,a=vd.substitute(a,&quot;//VTK::Clip::Dec&quot;,[&quot;uniform int numClipPlanes;&quot;,&quot;varying float clipDistancesVSOutput[6];&quot;]).result,a=vd.substitute(a,&quot;//VTK::Clip::Impl&quot;,[&quot;for (int planeNum = 0; planeNum &lt; 6; planeNum++)&quot;,&quot;    {&quot;,&quot;    if (planeNum &gt;= numClipPlanes)&quot;,&quot;        {&quot;,&quot;        break;&quot;,&quot;        }&quot;,&quot;    if (clipDistancesVSOutput[planeNum] &lt; 0.0) discard;&quot;,&quot;    }&quot;]).result}e.Vertex=o,e.Fragment=a},e.getNeedToRebuildShaders=(e,n,r)=&gt;{const o=t.openGLTexture.getComponents(),a=r.getProperty().getIndependentComponents();let i=!1;return(!t.currentRenderPass&amp;&amp;t.lastRenderPassShaderReplacement||t.currentRenderPass&amp;&amp;t.currentRenderPass.getShaderReplacement()!==t.lastRenderPassShaderReplacement)&amp;&amp;(i=!0),!!(i||t.lastHaveSeenDepthRequest!==t.haveSeenDepthRequest||0===e.getProgram()?.getHandle()||e.getShaderSourceTime().getMTime()&lt;t.renderable.getMTime()||e.getShaderSourceTime().getMTime()&lt;t.currentInput.getMTime()||e.getShaderSourceTime().getMTime()&lt;r.getProperty().getMTime()||t.lastTextureComponents!==o||t.lastIndependentComponents!==a)&amp;&amp;(t.lastHaveSeenDepthRequest=t.haveSeenDepthRequest,t.lastTextureComponents=o,t.lastIndependentComponents=a,!0)},e.updateShaders=(n,r,o)=&gt;{if(t.lastBoundBO=n,e.getNeedToRebuildShaders(n,r,o)){const a={Vertex:null,Fragment:null,Geometry:null};e.buildShaders(a,r,o);const i=t._openGLRenderWindow.getShaderCache().readyShaderProgramArray(a.Vertex,a.Fragment,a.Geometry);i!==n.getProgram()&amp;&amp;(n.setProgram(i),n.getVAO().releaseGraphicsResources()),n.getShaderSourceTime().modified()}else t._openGLRenderWindow.getShaderCache().readyShaderProgram(n.getProgram());n.getVAO().bind(),e.setMapperShaderParameters(n,r,o),e.setCameraShaderParameters(n,r,o),e.setPropertyShaderParameters(n,r,o)},e.setMapperShaderParameters=(n,r,o)=&gt;{n.getCABO().getElementCount()&amp;&amp;(t.VBOBuildTime&gt;n.getAttributeUpdateTime().getMTime()||n.getShaderSourceTime().getMTime()&gt;n.getAttributeUpdateTime().getMTime())&amp;&amp;(n.getProgram().isAttributeUsed(&quot;vertexMC&quot;)&amp;&amp;(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),&quot;vertexMC&quot;,n.getCABO().getVertexOffset(),n.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE)||$f(&quot;Error setting vertexMC in shader VAO.&quot;)),n.getProgram().isAttributeUsed(&quot;tcoordMC&quot;)&amp;&amp;n.getCABO().getTCoordOffset()&amp;&amp;(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),&quot;tcoordMC&quot;,n.getCABO().getTCoordOffset(),n.getCABO().getStride(),t.context.FLOAT,n.getCABO().getTCoordComponents(),t.context.FALSE)||$f(&quot;Error setting tcoordMC in shader VAO.&quot;)),n.getAttributeUpdateTime().modified());const a=t.openGLTexture.getTextureUnit();n.getProgram().setUniformi(&quot;texture1&quot;,a);const i=t.openGLTexture.getComponents(),s=o.getProperty().getIndependentComponents();if(s)for(let e=0;e&lt;i;e++)n.getProgram().setUniformf(`mix${e}`,o.getProperty().getComponentWeight(e));const l=t.openGLTexture.getShiftAndScale();for(let e=0;e&lt;i;e++){let t=o.getProperty().getColorWindow(),r=o.getProperty().getColorLevel();const a=s?e:0,i=o.getProperty().getRGBTransferFunction(a);if(i&amp;&amp;o.getProperty().getUseLookupTableScalarRange()){const e=i.getRange();t=e[1]-e[0],r=.5*(e[1]+e[0])}const c=l.scale/t,u=(l.shift-r)/t+.5;n.getProgram().setUniformf(`cshift${e}`,u),n.getProgram().setUniformf(`cscale${e}`,c)}for(let e=0;e&lt;i;e++){let t=1,r=0;const a=s?e:0,i=o.getProperty().getPiecewiseFunction(a);if(i){const e=i.getRange(),n=e[1]-e[0],o=.5*(e[0]+e[1]);t=l.scale/n,r=(l.shift-o)/n+.5}n.getProgram().setUniformf(`pwfshift${e}`,r),n.getProgram().setUniformf(`pwfscale${e}`,t)}if(t.haveSeenDepthRequest&amp;&amp;n.getProgram().setUniformi(&quot;depthRequest&quot;,t.renderDepth?1:0),n.getProgram().isUniformUsed(&quot;coffset&quot;)){const t=e.getCoincidentParameters(r,o);n.getProgram().setUniformf(&quot;coffset&quot;,t.offset),n.getProgram().isUniformUsed(&quot;cfactor&quot;)&amp;&amp;n.getProgram().setUniformf(&quot;cfactor&quot;,t.factor)}const c=t.colorTexture.getTextureUnit();n.getProgram().setUniformi(&quot;colorTexture1&quot;,c);const u=t.pwfTexture.getTextureUnit();if(n.getProgram().setUniformi(&quot;pwfTexture1&quot;,u),o.getProperty().getUseLabelOutline()){const e=t.labelOutlineThicknessTexture.getTextureUnit();n.getProgram().setUniformi(&quot;labelOutlineTexture1&quot;,e);const r=t.labelOutlineOpacityTexture.getTextureUnit();n.getProgram().setUniformi(&quot;labelOutlineOpacityTexture1&quot;,r)}if(t.renderable.getNumberOfClippingPlanes()){let e=t.renderable.getNumberOfClippingPlanes();e&gt;6&amp;&amp;(Tt(&quot;OpenGL has a limit of 6 clipping planes&quot;),e=6);const r=n.getCABO().getCoordShiftAndScaleEnabled()?n.getCABO().getInverseShiftAndScaleMatrix():null,a=r?T(t.imagematinv,o.getMatrix()):o.getMatrix();r&amp;&amp;(y(a,a),A(a,a,r),y(a,a)),y(t.imagemat,t.currentInput.getIndexToWorld()),A(t.imagematinv,a,t.imagemat);const i=[];for(let n=0;n&lt;e;n++){const e=[];t.renderable.getClippingPlaneInDataCoords(t.imagematinv,n,e);for(let t=0;t&lt;4;t++)i.push(e[t])}n.getProgram().setUniformi(&quot;numClipPlanes&quot;,e),n.getProgram().setUniform4fv(&quot;clipPlanes&quot;,i)}},e.setCameraShaderParameters=(n,r,o)=&gt;{const a=n.getProgram(),i=t.openGLImageSlice.getKeyMatrices(),s=t.currentInput,l=s.getIndexToWorld();A(t.imagemat,i.mcwc,l);const c=t.openGLCamera.getKeyMatrices(r);if(A(t.imagemat,c.wcpc,t.imagemat),n.getCABO().getCoordShiftAndScaleEnabled()){const e=n.getCABO().getInverseShiftAndScaleMatrix();A(t.imagemat,t.imagemat,e)}if(a.setUniformMatrix(&quot;MCPCMatrix&quot;,t.imagemat),!0===o.getProperty().getUseLabelOutline()){const n=s.getWorldToIndex(),o=s.getDimensions();let i=t.renderable.getClosestIJKAxis().ijkMode;i===eg.NONE&amp;&amp;(i=eg.K),a.setUniform3i(&quot;imageDimensions&quot;,o[0],o[1],o[2]),a.setUniformi(&quot;sliceAxis&quot;,i),a.setUniformMatrix(&quot;vWCtoIDX&quot;,n);const l=t.openGLCamera.getKeyMatrices(r);b(t.projectionToWorld,l.wcpc),t.openGLCamera.getKeyMatrices(r),a.setUniformMatrix(&quot;PCWCMatrix&quot;,t.projectionToWorld);const c=e.getRenderTargetSize();a.setUniformf(&quot;vpWidth&quot;,c[0]),a.setUniformf(&quot;vpHeight&quot;,c[1]);const u=e.getRenderTargetOffset();a.setUniformf(&quot;vpOffsetX&quot;,u[0]/c[0]),a.setUniformf(&quot;vpOffsetY&quot;,u[1]/c[1])}},e.setPropertyShaderParameters=(e,t,n)=&gt;{const r=e.getProgram(),o=n.getProperty().getOpacity();r.setUniformf(&quot;opacity&quot;,o)},e.renderPieceStart=(n,r)=&gt;{e.updateBufferObjects(n,r),t.lastBoundBO=null},e.renderPieceDraw=(n,r)=&gt;{const o=t.context;t.openGLTexture.activate(),t.colorTexture.activate(),r.getProperty().getUseLabelOutline()&amp;&amp;(t.labelOutlineThicknessTexture.activate(),t.labelOutlineOpacityTexture.activate()),t.pwfTexture.activate(),t.tris.getCABO().getElementCount()&amp;&amp;(e.updateShaders(t.tris,n,r),o.drawArrays(o.TRIANGLES,0,t.tris.getCABO().getElementCount()),t.tris.getVAO().release()),t.openGLTexture.deactivate(),t.colorTexture.deactivate(),r.getProperty().getUseLabelOutline()&amp;&amp;(t.labelOutlineThicknessTexture.deactivate(),t.labelOutlineOpacityTexture.deactivate()),t.pwfTexture.deactivate()},e.renderPieceFinish=(e,t)=&gt;{},e.renderPiece=(n,r)=&gt;{e.invokeEvent({type:&quot;StartEvent&quot;}),t.renderable.update(),t.currentInput=t.renderable.getCurrentImage(),e.invokeEvent({type:&quot;EndEvent&quot;}),t.currentInput?(e.renderPieceStart(n,r),e.renderPieceDraw(n,r),e.renderPieceFinish(n,r)):$f(&quot;No input!&quot;)},e.updateBufferObjects=(t,n)=&gt;{e.getNeedToRebuildBufferObjects(t,n)&amp;&amp;e.buildBufferObjects(t,n)},e.getNeedToRebuildBufferObjects=(n,r)=&gt;t.VBOBuildTime.getMTime()&lt;e.getMTime()||t.VBOBuildTime.getMTime()&lt;r.getMTime()||t.VBOBuildTime.getMTime()&lt;t.renderable.getMTime()||t.VBOBuildTime.getMTime()&lt;r.getProperty().getMTime()||t.VBOBuildTime.getMTime()&lt;t.currentInput.getMTime()||!t.openGLTexture?.getHandle()||!t.colorTexture?.getHandle()||r.getProperty().getUseLabelOutline()&amp;&amp;(!t.labelOutlineThicknessTexture?.getHandle()||!t.labelOutlineOpacityTexture?.getHandle())||!t.pwfTexture?.getHandle(),e.buildBufferObjects=(n,r)=&gt;{const o=t.currentInput;if(!o)return;const a=o.getPointData()&amp;&amp;o.getPointData().getScalars();if(!a)return;const i=a.getDataType(),s=a.getNumberOfComponents(),l=r.getProperty(),c=l.getInterpolationType(),u=l.getIndependentComponents(),d=u?s:1,p=u?2*d:1,f=[];for(let e=0;e&lt;d;++e)f.push(l.getRGBTransferFunction(e));const g=zf(f,u,d),m=l.getRGBTransferFunction(),h=t._openGLRenderWindow.getGraphicsResourceForObject(m);if(h?.oglObject?.getHandle()&amp;&amp;h?.hash===g)t.colorTexture=h.oglObject;else{t.colorTexture=Hd.newInstance({resizable:!0}),t.colorTexture.setOpenGLRenderWindow(t._openGLRenderWindow);let n=t.renderable.getColorTextureWidth();n&lt;=0&amp;&amp;(n=t.context.getParameter(t.context.MAX_TEXTURE_SIZE));const r=new Uint8ClampedArray(n*p*3);if(c===Hf.NEAREST?(t.colorTexture.setMinificationFilter(wd.NEAREST),t.colorTexture.setMagnificationFilter(wd.NEAREST)):(t.colorTexture.setMinificationFilter(wd.LINEAR),t.colorTexture.setMagnificationFilter(wd.LINEAR)),m){const e=new Float32Array(3*n);for(let t=0;t&lt;d;t++){const o=l.getRGBTransferFunction(t),a=o.getRange();if(o.getTable(a[0],a[1],n,e,1),u)for(let o=0;o&lt;3*n;o++)r[t*n*6+o]=255*e[o],r[t*n*6+o+3*n]=255*e[o];else for(let o=0;o&lt;3*n;o++)r[t*n*6+o]=255*e[o]}t.colorTexture.resetFormatAndType(),t.colorTexture.create2DFromRaw({width:n,height:p,numComps:3,dataType:ms.UNSIGNED_CHAR,data:r})}else{for(let e=0;e&lt;3*n;++e)r[e]=255*e/(3*(n-1)),r[e+1]=255*e/(3*(n-1)),r[e+2]=255*e/(3*(n-1));t.colorTexture.create2DFromRaw({width:n,height:1,numComps:3,dataType:ms.UNSIGNED_CHAR,data:r})}m&amp;&amp;(t._openGLRenderWindow.setGraphicsResourceForObject(m,t.colorTexture,g),m!==t._colorTransferFunc&amp;&amp;(t._openGLRenderWindow.registerGraphicsResourceUser(m,e),t._openGLRenderWindow.unregisterGraphicsResourceUser(t._colorTransferFunc,e)),t._colorTransferFunc=m)}const v=[];for(let e=0;e&lt;d;++e)v.push(l.getPiecewiseFunction(e));const T=zf(v,u,d),x=l.getPiecewiseFunction(),y=t._openGLRenderWindow.getGraphicsResourceForObject(x);if(y?.oglObject?.getHandle()&amp;&amp;y?.hash===T)t.pwfTexture=y.oglObject;else{let n=t.renderable.getOpacityTextureWidth();n&lt;=0&amp;&amp;(n=t.context.getParameter(t.context.MAX_TEXTURE_SIZE));const r=n*p,o=new Uint8ClampedArray(r);if(t.pwfTexture=Hd.newInstance({resizable:!0}),t.pwfTexture.setOpenGLRenderWindow(t._openGLRenderWindow),c===Hf.NEAREST?(t.pwfTexture.setMinificationFilter(wd.NEAREST),t.pwfTexture.setMagnificationFilter(wd.NEAREST)):(t.pwfTexture.setMinificationFilter(wd.LINEAR),t.pwfTexture.setMagnificationFilter(wd.LINEAR)),x){const e=new Float32Array(r),o=new Float32Array(n);for(let t=0;t&lt;d;++t){const r=l.getPiecewiseFunction(t);if(null===r)e.fill(1);else{const a=r.getRange();if(r.getTable(a[0],a[1],n,o,1),u)for(let r=0;r&lt;n;r++)e[t*n*2+r]=o[r],e[t*n*2+r+n]=o[r];else for(let r=0;r&lt;n;r++)e[t*n*2+r]=o[r]}}t.pwfTexture.resetFormatAndType(),t.pwfTexture.create2DFromRaw({width:n,height:p,numComps:1,dataType:ms.FLOAT,data:e})}else o.fill(255),t.pwfTexture.create2DFromRaw({width:n,height:1,numComps:1,dataType:ms.UNSIGNED_CHAR,data:o});x&amp;&amp;(t._openGLRenderWindow.setGraphicsResourceForObject(x,t.pwfTexture,T),x!==t._pwFunc&amp;&amp;(t._openGLRenderWindow.registerGraphicsResourceUser(x,e),t._openGLRenderWindow.unregisterGraphicsResourceUser(t._pwFunc,e)),t._pwFunc=x)}r.getProperty().getUseLabelOutline()&amp;&amp;(e.updatelabelOutlineThicknessTexture(r),e.updateLabelOutlineOpacityTexture(r));const{ijkMode:b}=t.renderable.getClosestIJKAxis();let A=t.renderable.getSlice();b!==t.renderable.getSlicingMode()&amp;&amp;(A=t.renderable.getSliceAtPosition(A));const C=t.renderable.isA(&quot;vtkImageArrayMapper&quot;)?t.renderable.getSubSlice():Math.round(A),S=o.getExtent();let P;b===eg.I&amp;&amp;(P=C-S[0]),b===eg.J&amp;&amp;(P=C-S[2]),b!==eg.K&amp;&amp;b!==eg.NONE||(P=C-S[4]);const w=`${A}A${o.getMTime()}A${a.getMTime()}B${e.getMTime()}C${t.renderable.getSlicingMode()}D${r.getProperty().getInterpolationType()}`;if(t.VBOBuildString!==w){const e=o.getDimensions();t.openGLTexture||(t.openGLTexture=Hd.newInstance({resizable:!0})),t.openGLTexture.setOpenGLRenderWindow(t._openGLRenderWindow),t.openGLTexture.setOglNorm16Ext(t.context.getExtension(&quot;EXT_texture_norm16&quot;)),c===Hf.NEAREST?(new Set([1,3,4]).has(s)&amp;&amp;i===ms.UNSIGNED_CHAR&amp;&amp;!u?(t.openGLTexture.setGenerateMipmap(!0),t.openGLTexture.setMinificationFilter(wd.NEAREST)):t.openGLTexture.setMinificationFilter(wd.NEAREST),t.openGLTexture.setMagnificationFilter(wd.NEAREST)):(4!==s||i!==ms.UNSIGNED_CHAR||u?t.openGLTexture.setMinificationFilter(wd.LINEAR):(t.openGLTexture.setGenerateMipmap(!0),t.openGLTexture.setMinificationFilter(wd.LINEAR_MIPMAP_LINEAR)),t.openGLTexture.setMagnificationFilter(wd.LINEAR)),t.openGLTexture.setWrapS(Pd.CLAMP_TO_EDGE),t.openGLTexture.setWrapT(Pd.CLAMP_TO_EDGE);const n=e[0]*e[1]*s,r=new Float32Array(12),l=new Float32Array(8);for(let e=0;e&lt;4;e++)l[2*e]=e%2?1:0,l[2*e+1]=e&gt;1?1:0;const d=[eg.X,eg.Y,eg.Z].includes(t.renderable.getSlicingMode())?A:C,p=o.getSpatialExtent(),f=a.getData();let g=null;if(b===eg.I){g=new f.constructor(e[2]*e[1]*s);let t=0;for(let n=0;n&lt;e[2];n++)for(let r=0;r&lt;e[1];r++){let o=(P+r*e[0]+n*e[0]*e[1])*s;t=(n*e[1]+r)*s;const a=o+s;for(;o&lt;a;)g[t++]=f[o++]}e[0]=e[1],e[1]=e[2],r[0]=d,r[1]=p[2],r[2]=p[4],r[3]=d,r[4]=p[3],r[5]=p[4],r[6]=d,r[7]=p[2],r[8]=p[5],r[9]=d,r[10]=p[3],r[11]=p[5]}else if(b===eg.J){g=new f.constructor(e[2]*e[0]*s);let t=0;for(let n=0;n&lt;e[2];n++)for(let r=0;r&lt;e[0];r++){let o=(r+P*e[0]+n*e[0]*e[1])*s;t=(n*e[0]+r)*s;const a=o+s;for(;o&lt;a;)g[t++]=f[o++]}e[1]=e[2],r[0]=p[0],r[1]=d,r[2]=p[4],r[3]=p[1],r[4]=d,r[5]=p[4],r[6]=p[0],r[7]=d,r[8]=p[5],r[9]=p[1],r[10]=d,r[11]=p[5]}else b===eg.K||b===eg.NONE?(g=f.subarray(P*n,(P+1)*n),r[0]=p[0],r[1]=p[2],r[2]=d,r[3]=p[1],r[4]=p[2],r[5]=d,r[6]=p[0],r[7]=p[3],r[8]=d,r[9]=p[1],r[10]=p[3],r[11]=d):$f(&quot;Reformat slicing not yet supported.&quot;);const m=a.getRanges();t.openGLTexture.resetFormatAndType(),t.openGLTexture.create2DFilterableFromRaw({width:e[0],height:e[1],numComps:s,dataType:a.getDataType(),data:g,preferSizeOverAccuracy:!!t.renderable.getPreferSizeOverAccuracy?.(),ranges:m}),t.openGLTexture.activate(),t.openGLTexture.sendParameters(),t.openGLTexture.deactivate();const h=Is.newInstance({numberOfComponents:3,values:r});h.setName(&quot;points&quot;);const v=Is.newInstance({numberOfComponents:2,values:l});v.setName(&quot;tcoords&quot;);const T=new Uint16Array(8);T[0]=3,T[1]=0,T[2]=1,T[3]=3,T[4]=3,T[5]=0,T[6]=3,T[7]=2;const x=Is.newInstance({numberOfComponents:1,values:T});t.tris.getCABO().createVBO(x,&quot;polys&quot;,rs.SURFACE,{points:h,tcoords:v,cellOffset:0}),t.VBOBuildTime.modified(),t.VBOBuildString=w}},e.updateLabelOutlineOpacityTexture=n=&gt;{let r=n.getProperty().getLabelOutlineOpacity();&quot;number&quot;==typeof r&amp;&amp;(r=t._cachedLabelOutlineOpacityObj?.[0]===r?t._cachedLabelOutlineOpacityObj:[r],t._cachedLabelOutlineOpacityObj=r);const o=t._openGLRenderWindow.getGraphicsResourceForObject(r),a=`${r.join(&quot;-&quot;)}`;if(o?.oglObject?.getHandle()&amp;&amp;o?.hash===a)t.labelOutlineOpacityTexture=o.oglObject;else{let n=t.renderable.getLabelOutlineTextureWidth();n&lt;=0&amp;&amp;(n=t.context.getParameter(t.context.MAX_TEXTURE_SIZE));const o=1,i=new Float32Array(n*o);for(let e=0;e&lt;n;++e)i[e]=r[e]??r[0];t.labelOutlineOpacityTexture=Hd.newInstance({resizable:!1}),t.labelOutlineOpacityTexture.setOpenGLRenderWindow(t._openGLRenderWindow),t.labelOutlineOpacityTexture.resetFormatAndType(),t.labelOutlineOpacityTexture.setMinificationFilter(wd.NEAREST),t.labelOutlineOpacityTexture.setMagnificationFilter(wd.NEAREST),t.labelOutlineOpacityTexture.create2DFromRaw({width:n,height:o,numComps:1,dataType:ms.FLOAT,data:i}),r&amp;&amp;(t._openGLRenderWindow.setGraphicsResourceForObject(r,t.labelOutlineOpacityTexture,a),r!==t._labelOutlineOpacity&amp;&amp;(t._openGLRenderWindow.registerGraphicsResourceUser(r,e),t._openGLRenderWindow.unregisterGraphicsResourceUser(t._labelOutlineOpacity,e)),t._labelOutlineOpacity=r)}},e.updatelabelOutlineThicknessTexture=n=&gt;{const r=n.getProperty().getLabelOutlineThicknessByReference(),o=t._openGLRenderWindow.getGraphicsResourceForObject(r),a=`${r.join(&quot;-&quot;)}`;if(o?.oglObject?.getHandle()&amp;&amp;o?.hash===a)t.labelOutlineThicknessTexture=o.oglObject;else{let n=t.renderable.getLabelOutlineTextureWidth();n&lt;=0&amp;&amp;(n=t.context.getParameter(t.context.MAX_TEXTURE_SIZE));const o=1,i=new Uint8Array(n*o);for(let e=0;e&lt;n;++e){const t=void 0!==r[e]?r[e]:r[0];i[e]=t}t.labelOutlineThicknessTexture=Hd.newInstance({resizable:!1}),t.labelOutlineThicknessTexture.setOpenGLRenderWindow(t._openGLRenderWindow),t.labelOutlineThicknessTexture.resetFormatAndType(),t.labelOutlineThicknessTexture.setMinificationFilter(wd.NEAREST),t.labelOutlineThicknessTexture.setMagnificationFilter(wd.NEAREST),t.labelOutlineThicknessTexture.create2DFromRaw({width:n,height:o,numComps:1,dataType:ms.UNSIGNED_CHAR,data:i}),r&amp;&amp;(t._openGLRenderWindow.setGraphicsResourceForObject(r,t.labelOutlineThicknessTexture,a),r!==t._labelOutlineThicknessArray&amp;&amp;(t._openGLRenderWindow.registerGraphicsResourceUser(r,e),t._openGLRenderWindow.unregisterGraphicsResourceUser(t._labelOutlineThicknessArray,e)),t._labelOutlineThicknessArray=r)}},e.getRenderTargetSize=()=&gt;{if(t._useSmallViewport)return[t._smallViewportWidth,t._smallViewportHeight];const{usize:e,vsize:n}=t._openGLRenderer.getTiledSizeAndOrigin();return[e,n]},e.getRenderTargetOffset=()=&gt;{const{lowerLeftU:e,lowerLeftV:n}=t._openGLRenderer.getTiledSizeAndOrigin();return[e,n]},e.delete=qt((()=&gt;{t._openGLRenderWindow&amp;&amp;n(t._openGLRenderWindow)}),e.delete)}(e,t)}),&quot;vtkOpenGLImageMapper&quot;);vn(&quot;vtkAbstractImageMapper&quot;,rg);const og=0,ag=1,ig=2,{vtkErrorMacro:sg}=sn;const lg={currentRenderPass:null,volumeTexture:null,colorTexture:null,pwfTexture:null,tris:null,lastHaveSeenDepthRequest:!1,haveSeenDepthRequest:!1,lastTextureComponents:0,lastIndependentComponents:0,imagemat:null,imagematinv:null};const cg=sn.newInstance((function(e,t,n={}){Object.assign(t,lg,n),pn.extend(e,t,n),qd.implementReplaceShaderCoincidentOffset(e,t,n),sn.algo(e,t,2,0),t.tris=Sd.newInstance(),t.volumeTexture=null,t.colorTexture=null,t.pwfTexture=null,t.imagemat=x(new Float64Array(16)),t.imagematinv=x(new Float64Array(16)),t.VBOBuildTime={},sn.obj(t.VBOBuildTime,{mtime:0}),function(e,t){function n(n){[t._scalars,t._colorTransferFunc,t._pwFunc].forEach((t=&gt;n.unregisterGraphicsResourceUser(t,e)))}t.classHierarchy.push(&quot;vtkOpenGLImageCPRMapper&quot;),e.buildPass=r=&gt;{if(r){t.currentRenderPass=null,t.openGLImageSlice=e.getFirstAncestorOfType(&quot;vtkOpenGLImageSlice&quot;),t._openGLRenderer=e.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;);const r=t._openGLRenderWindow;t._openGLRenderWindow=t._openGLRenderer.getLastAncestorOfType(&quot;vtkOpenGLRenderWindow&quot;),r&amp;&amp;!r.isDeleted()&amp;&amp;r!==t._openGLRenderWindow&amp;&amp;n(r),t.context=t._openGLRenderWindow.getContext(),t.openGLCamera=t._openGLRenderer.getViewNodeFor(t._openGLRenderer.getRenderable().getActiveCamera(),t.openGLCamera),t.tris.setOpenGLRenderWindow(t._openGLRenderWindow)}},e.opaquePass=(n,r)=&gt;{n&amp;&amp;(t.currentRenderPass=r,e.render())},e.opaqueZBufferPass=n=&gt;{n&amp;&amp;(t.haveSeenDepthRequest=!0,t.renderDepth=!0,e.render(),t.renderDepth=!1)},e.getCoincidentParameters=(e,n)=&gt;t.renderable.getResolveCoincidentTopology()===Pl.PolygonOffset?t.renderable.getCoincidentTopologyPolygonOffsetParameters():null,e.render=()=&gt;{const n=t.openGLImageSlice.getRenderable(),r=t._openGLRenderer.getRenderable();e.renderPiece(r,n)},e.renderPiece=(n,r)=&gt;{e.invokeEvent({type:&quot;StartEvent&quot;}),t.renderable.update(),e.invokeEvent({type:&quot;EndEvent&quot;}),t.renderable.preRenderCheck()&amp;&amp;(t.currentImageDataInput=t.renderable.getInputData(0),t.currentCenterlineInput=t.renderable.getOrientedCenterline(),e.renderPieceStart(n,r),e.renderPieceDraw(n,r),e.renderPieceFinish(n,r))},e.renderPieceStart=(t,n)=&gt;{e.updateBufferObjects(t,n)},e.renderPieceDraw=(n,r)=&gt;{const o=t.context;t.volumeTexture.activate(),t.colorTexture.activate(),t.pwfTexture.activate(),t.tris.getCABO().getElementCount()&amp;&amp;(e.updateShaders(t.tris,n,r),o.drawArrays(o.TRIANGLES,0,t.tris.getCABO().getElementCount()),t.tris.getVAO().release()),t.volumeTexture.deactivate(),t.colorTexture.deactivate(),t.pwfTexture.deactivate()},e.renderPieceFinish=(e,t)=&gt;{},e.updateBufferObjects=(n,r)=&gt;{e.getNeedToRebuildBufferObjects(n,r)&amp;&amp;e.buildBufferObjects(n,r),r.getProperty().getInterpolationType()===Hf.NEAREST?(t.volumeTexture.setMinificationFilter(wd.NEAREST),t.volumeTexture.setMagnificationFilter(wd.NEAREST),t.colorTexture.setMinificationFilter(wd.NEAREST),t.colorTexture.setMagnificationFilter(wd.NEAREST),t.pwfTexture.setMinificationFilter(wd.NEAREST),t.pwfTexture.setMagnificationFilter(wd.NEAREST)):(t.volumeTexture.setMinificationFilter(wd.LINEAR),t.volumeTexture.setMagnificationFilter(wd.LINEAR),t.colorTexture.setMinificationFilter(wd.LINEAR),t.colorTexture.setMagnificationFilter(wd.LINEAR),t.pwfTexture.setMinificationFilter(wd.LINEAR),t.pwfTexture.setMagnificationFilter(wd.LINEAR))},e.getNeedToRebuildBufferObjects=(n,r)=&gt;{const o=t.VBOBuildTime.getMTime();return o&lt;e.getMTime()||o&lt;t.renderable.getMTime()||o&lt;r.getMTime()||o&lt;t.currentImageDataInput.getMTime()||o&lt;t.currentCenterlineInput.getMTime()||!t.volumeTexture?.getHandle()},e.buildBufferObjects=(n,r)=&gt;{const o=t.currentImageDataInput,a=t.currentCenterlineInput,i=r.getProperty(),s=o?.getPointData()?.getScalars();if(!s)return;const l=t._openGLRenderWindow.getGraphicsResourceForObject(s),c=Wf(0,s),u=!l?.oglObject?.getHandle()||l?.hash!==c,d=i.getUpdatedExtents(),p=!!d.length;if(u){t.volumeTexture=Hd.newInstance(),t.volumeTexture.setOpenGLRenderWindow(t._openGLRenderWindow);const n=o.getDimensions();t.volumeTexture.setOglNorm16Ext(t.context.getExtension(&quot;EXT_texture_norm16&quot;)),t.volumeTexture.resetFormatAndType(),t.volumeTexture.create3DFilterableFromDataArray({width:n[0],height:n[1],depth:n[2],dataArray:s,preferSizeOverAccuracy:t.renderable.getPreferSizeOverAccuracy()}),t._openGLRenderWindow.setGraphicsResourceForObject(s,t.volumeTexture,c),s!==t._scalars&amp;&amp;(t._openGLRenderWindow.registerGraphicsResourceUser(s,e),t._openGLRenderWindow.unregisterGraphicsResourceUser(t._scalars,e)),t._scalars=s}else t.volumeTexture=l.oglObject;if(p){i.setUpdatedExtents([]);const e=o.getDimensions();t.volumeTexture.create3DFilterableFromDataArray({width:e[0],height:e[1],depth:e[2],dataArray:s,updatedExtents:d})}const f=s.getNumberOfComponents(),g=r.getProperty(),m=g.getIndependentComponents(),h=m?f:1,v=m?2*h:1,T=[];for(let e=0;e&lt;h;++e)T.push(g.getRGBTransferFunction(e));const x=zf(T,m,h),y=g.getRGBTransferFunction(),b=t._openGLRenderWindow.getGraphicsResourceForObject(y);if(b?.oglObject?.getHandle()&amp;&amp;b?.hash===x)t.colorTexture=b.oglObject;else{let n=t.renderable.getColorTextureWidth();n&lt;=0&amp;&amp;(n=t.context.getParameter(t.context.MAX_TEXTURE_SIZE));const r=new Uint8ClampedArray(n*v*3);if(t.colorTexture=Hd.newInstance(),t.colorTexture.setOpenGLRenderWindow(t._openGLRenderWindow),y){const e=new Float32Array(3*n);for(let t=0;t&lt;h;t++){const o=g.getRGBTransferFunction(t),a=o.getRange();if(o.getTable(a[0],a[1],n,e,1),m)for(let o=0;o&lt;3*n;o++)r[t*n*6+o]=255*e[o],r[t*n*6+o+3*n]=255*e[o];else for(let o=0;o&lt;3*n;o++)r[t*n*6+o]=255*e[o]}t.colorTexture.resetFormatAndType(),t.colorTexture.create2DFromRaw({width:n,height:v,numComps:3,dataType:ms.UNSIGNED_CHAR,data:r})}else{for(let e=0;e&lt;3*n;++e)r[e]=255*e/(3*(n-1)),r[e+1]=255*e/(3*(n-1)),r[e+2]=255*e/(3*(n-1));t.colorTexture.resetFormatAndType(),t.colorTexture.create2DFromRaw({width:n,height:1,numComps:3,dataType:ms.UNSIGNED_CHAR,data:r})}y&amp;&amp;(t._openGLRenderWindow.setGraphicsResourceForObject(y,t.colorTexture,x),y!==t._colorTransferFunc&amp;&amp;(t._openGLRenderWindow.registerGraphicsResourceUser(y,e),t._openGLRenderWindow.unregisterGraphicsResourceUser(t._colorTransferFunc,e)),t._colorTransferFunc=y)}const A=[];for(let e=0;e&lt;h;++e)A.push(g.getPiecewiseFunction(e));const C=zf(A,m,h),S=g.getPiecewiseFunction(),P=t._openGLRenderWindow.getGraphicsResourceForObject(S);if(P?.oglObject?.getHandle()&amp;&amp;P?.hash===C)t.pwfTexture=P.oglObject;else{let n=t.renderable.getOpacityTextureWidth();n&lt;=0&amp;&amp;(n=t.context.getParameter(t.context.MAX_TEXTURE_SIZE));const r=n*v,o=new Uint8ClampedArray(r);if(t.pwfTexture=Hd.newInstance(),t.pwfTexture.setOpenGLRenderWindow(t._openGLRenderWindow),S){const e=new Float32Array(r),o=new Float32Array(n);for(let t=0;t&lt;h;++t){const r=g.getPiecewiseFunction(t);if(null===r)e.fill(1);else{const a=r.getRange();if(r.getTable(a[0],a[1],n,o,1),m)for(let r=0;r&lt;n;r++)e[t*n*2+r]=o[r],e[t*n*2+r+n]=o[r];else for(let r=0;r&lt;n;r++)e[t*n*2+r]=o[r]}}t.pwfTexture.resetFormatAndType(),t.pwfTexture.create2DFromRaw({width:n,height:v,numComps:1,dataType:ms.FLOAT,data:e})}else o.fill(255),t.pwfTexture.resetFormatAndType(),t.pwfTexture.create2DFromRaw({width:n,height:1,numComps:1,dataType:ms.UNSIGNED_CHAR,data:o});S&amp;&amp;(t._openGLRenderWindow.setGraphicsResourceForObject(S,t.pwfTexture,C),S!==t._pwFunc&amp;&amp;(t._openGLRenderWindow.registerGraphicsResourceUser(S,e),t._openGLRenderWindow.unregisterGraphicsResourceUser(t._pwFunc,e)),t._pwFunc=S)}if(t.VBOBuildTime.getMTime()&lt;t.renderable.getMTime()||t.VBOBuildTime.getMTime()&lt;a.getMTime()){const e=a.getNumberOfPoints(),n=e&lt;=1?0:e-1,r=a.getDistancesToFirstPoint(),o=t.renderable.getHeight(),i=4*n,s=new Float32Array(3*i),l=t.renderable.getWidth();for(let e=0,t=0;e&lt;n;++e)s.set([0,o-r[e],0],t),t+=3,s.set([l,o-r[e],0],t),t+=3,s.set([l,o-r[e+1],0],t),t+=3,s.set([0,o-r[e+1],0],t),t+=3;const c=Is.newInstance({numberOfComponents:3,values:s});c.setName(&quot;points&quot;);const u=new Uint16Array(5*n);for(let e=0,t=0,r=0;e&lt;n;++e)u.set([4,r+3,r+2,r+1,r],t),t+=5,r+=4;const d=Is.newInstance({numberOfComponents:1,values:u}),p=a.getPoints(),f=new Float32Array(3*i),g=new Array(3),m=new Array(3);for(let e=0,t=0;e&lt;n;++e)p.getPoint(e,g),p.getPoint(e+1,m),f.set(g,t),t+=3,f.set(g,t),t+=3,f.set(m,t),t+=3,f.set(m,t),t+=3;const h=Is.newInstance({numberOfComponents:3,values:f,name:&quot;centerlinePosition&quot;}),v=new Float32Array(i);for(let e=0,t=0;e&lt;n;++e)v.set([0,1,3,2],t),t+=4;const T=[h,Is.newInstance({numberOfComponents:1,values:v,name:&quot;quadIndex&quot;})];if(!t.renderable.getUseUniformOrientation()){const e=t.renderable.getOrientedCenterline().getOrientations()??[],r=new Float32Array(4*i),o=new Float32Array(4*i);for(let t=0;t&lt;n;++t){const n=e[t],a=e[t+1];for(let e=0;e&lt;4;++e){const i=4*(e+4*t);r.set(n,i),o.set(a,i)}}const a=Is.newInstance({numberOfComponents:4,values:r,name:&quot;centerlineTopOrientation&quot;}),s=Is.newInstance({numberOfComponents:4,values:o,name:&quot;centerlineBotOrientation&quot;});T.push(a,s)}t.tris.getCABO().createVBO(d,&quot;polys&quot;,rs.SURFACE,{points:c,customAttributes:T}),t.VBOBuildTime.modified()}},e.getNeedToRebuildShaders=(e,n,r)=&gt;{const o=t.volumeTexture.getComponents(),a=r.getProperty().getIndependentComponents(),i=!!t.renderable.getCenterPoint(),s=t.renderable.getUseUniformOrientation(),l=t.renderable.isProjectionEnabled()&amp;&amp;t.renderable.getProjectionMode();return(0===e.getProgram()||t.lastUseCenterPoint!==i||t.lastUseUniformOrientation!==s||t.lastProjectionMode!==l||t.lastHaveSeenDepthRequest!==t.haveSeenDepthRequest||t.lastTextureComponents!==o||t.lastIndependentComponents!==a)&amp;&amp;(t.lastUseCenterPoint=i,t.lastUseUniformOrientation=s,t.lastProjectionMode=l,t.lastHaveSeenDepthRequest=t.haveSeenDepthRequest,t.lastTextureComponents=o,t.lastIndependentComponents=a,!0)},e.buildShaders=(t,n,r)=&gt;{e.getShaderTemplate(t,n,r),e.replaceShaderValues(t,n,r)},e.replaceShaderValues=(n,r,o)=&gt;{let a=n.Vertex,i=n.Fragment;const s=[&quot;vec3 applyQuaternionToVec(vec4 q, vec3 v) {&quot;,&quot;  float uvx = q.y * v.z - q.z * v.y;&quot;,&quot;  float uvy = q.z * v.x - q.x * v.z;&quot;,&quot;  float uvz = q.x * v.y - q.y * v.x;&quot;,&quot;  float uuvx = q.y * uvz - q.z * uvy;&quot;,&quot;  float uuvy = q.z * uvx - q.x * uvz;&quot;,&quot;  float uuvz = q.x * uvy - q.y * uvx;&quot;,&quot;  float w2 = q.w * 2.0;&quot;,&quot;  uvx *= w2;&quot;,&quot;  uvy *= w2;&quot;,&quot;  uvz *= w2;&quot;,&quot;  uuvx *= 2.0;&quot;,&quot;  uuvy *= 2.0;&quot;,&quot;  uuvz *= 2.0;&quot;,&quot;  return vec3(v.x + uvx + uuvx, v.y + uvy + uuvy, v.z + uvz + uuvz);&quot;,&quot;}&quot;];a=vd.substitute(a,&quot;//VTK::Camera::Dec&quot;,[&quot;uniform mat4 MCPCMatrix;&quot;]).result,a=vd.substitute(a,&quot;//VTK::PositionVC::Impl&quot;,[&quot;  gl_Position = MCPCMatrix * vertexMC;&quot;]).result;const l=[&quot;attribute vec3 centerlinePosition;&quot;,&quot;attribute float quadIndex;&quot;,&quot;uniform float width;&quot;,&quot;out vec2 quadOffsetVSOutput;&quot;,&quot;out vec3 centerlinePosVSOutput;&quot;],c=t.renderable.isProjectionEnabled(),u=t.renderable.getUseUniformOrientation();u?(l.push(&quot;out vec3 samplingDirVSOutput;&quot;,&quot;uniform vec4 centerlineOrientation;&quot;,&quot;uniform vec3 tangentDirection;&quot;,...s),c&amp;&amp;l.push(&quot;out vec3 projectionDirVSOutput;&quot;,&quot;uniform vec3 bitangentDirection;&quot;)):l.push(&quot;out vec4 centerlineTopOrientationVSOutput;&quot;,&quot;out vec4 centerlineBotOrientationVSOutput;&quot;,&quot;attribute vec4 centerlineTopOrientation;&quot;,&quot;attribute vec4 centerlineBotOrientation;&quot;),a=vd.substitute(a,&quot;//VTK::Color::Dec&quot;,l).result;const d=[&quot;quadOffsetVSOutput = vec2(width * (mod(quadIndex, 2.0) == 0.0 ? -0.5 : 0.5), quadIndex &gt; 1.0 ? 0.0 : 1.0);&quot;,&quot;centerlinePosVSOutput = centerlinePosition;&quot;];u?(d.push(&quot;samplingDirVSOutput = applyQuaternionToVec(centerlineOrientation, tangentDirection);&quot;),c&amp;&amp;d.push(&quot;projectionDirVSOutput = applyQuaternionToVec(centerlineOrientation, bitangentDirection);&quot;)):d.push(&quot;centerlineTopOrientationVSOutput = centerlineTopOrientation;&quot;,&quot;centerlineBotOrientationVSOutput = centerlineBotOrientation;&quot;),a=vd.substitute(a,&quot;//VTK::Color::Impl&quot;,d).result;const p=t.volumeTexture.getComponents(),f=o.getProperty().getIndependentComponents();let g=[&quot;uniform mat4 MCTCMatrix; // Model coordinates to texture coordinates&quot;,&quot;in vec2 quadOffsetVSOutput;&quot;,&quot;in vec3 centerlinePosVSOutput;&quot;,&quot;uniform highp sampler3D volumeTexture;&quot;,&quot;uniform sampler2D colorTexture1;&quot;,&quot;uniform sampler2D pwfTexture1;&quot;,&quot;uniform float opacity;&quot;,&quot;uniform vec4 backgroundColor;&quot;,&quot;uniform float cshift0;&quot;,&quot;uniform float cscale0;&quot;,&quot;uniform float pwfshift0;&quot;,&quot;uniform float pwfscale0;&quot;];c&amp;&amp;g.push(&quot;uniform vec3 volumeSizeMC;&quot;,&quot;uniform int projectionSlabNumberOfSamples;&quot;,&quot;uniform float projectionConstantOffset;&quot;,&quot;uniform float projectionStepLength;&quot;),u?(g.push(&quot;in vec3 samplingDirVSOutput;&quot;),c&amp;&amp;g.push(&quot;in vec3 projectionDirVSOutput;&quot;)):(g.push(&quot;uniform vec3 tangentDirection;&quot;,&quot;in vec4 centerlineTopOrientationVSOutput;&quot;,&quot;in vec4 centerlineBotOrientationVSOutput;&quot;,...s),c&amp;&amp;g.push(&quot;uniform vec3 bitangentDirection;&quot;));const m=t.renderable.getCenterPoint();if(m&amp;&amp;g.push(&quot;uniform vec3 globalCenterPoint;&quot;),f){for(let e=1;e&lt;p;e++)g=g.concat([`uniform float cshift${e};`,`uniform float cscale${e};`,`uniform float pwfshift${e};`,`uniform float pwfscale${e};`]);switch(p){case 1:g=g.concat([&quot;uniform float mix0;&quot;,&quot;#define height0 0.5&quot;]);break;case 2:g=g.concat([&quot;uniform float mix0;&quot;,&quot;uniform float mix1;&quot;,&quot;#define height0 0.25&quot;,&quot;#define height1 0.75&quot;]);break;case 3:g=g.concat([&quot;uniform float mix0;&quot;,&quot;uniform float mix1;&quot;,&quot;uniform float mix2;&quot;,&quot;#define height0 0.17&quot;,&quot;#define height1 0.5&quot;,&quot;#define height2 0.83&quot;]);break;case 4:g=g.concat([&quot;uniform float mix0;&quot;,&quot;uniform float mix1;&quot;,&quot;uniform float mix2;&quot;,&quot;uniform float mix3;&quot;,&quot;#define height0 0.125&quot;,&quot;#define height1 0.375&quot;,&quot;#define height2 0.625&quot;,&quot;#define height3 0.875&quot;]);break;default:sg(&quot;Unsupported number of independent coordinates.&quot;)}}i=vd.substitute(i,&quot;//VTK::TCoord::Dec&quot;,g).result;let h=[];if(u?(h.push(&quot;vec3 samplingDirection = samplingDirVSOutput;&quot;),c&amp;&amp;h.push(&quot;vec3 projectionDirection = projectionDirVSOutput;&quot;)):(h.push(&quot;vec4 q0 = centerlineBotOrientationVSOutput;&quot;,&quot;vec4 q1 = centerlineTopOrientationVSOutput;&quot;,&quot;float qCosAngle = dot(q0, q1);&quot;,&quot;vec4 interpolatedOrientation;&quot;,&quot;if (qCosAngle &gt; 0.999 || qCosAngle &lt; -0.999) {&quot;,&quot;  // Use LERP instead of SLERP when the two quaternions are close or opposite&quot;,&quot;  interpolatedOrientation = normalize(mix(q0, q1, quadOffsetVSOutput.y));&quot;,&quot;} else {&quot;,&quot;  float omega = acos(qCosAngle);&quot;,&quot;  interpolatedOrientation = normalize(sin((1.0 - quadOffsetVSOutput.y) * omega) * q0 + sin(quadOffsetVSOutput.y * omega) * q1);&quot;,&quot;}&quot;,&quot;vec3 samplingDirection = applyQuaternionToVec(interpolatedOrientation, tangentDirection);&quot;),c&amp;&amp;h.push(&quot;vec3 projectionDirection = applyQuaternionToVec(interpolatedOrientation, bitangentDirection);&quot;)),m?h.push(&quot;float baseOffset = dot(samplingDirection, globalCenterPoint - centerlinePosVSOutput);&quot;,&quot;float horizontalOffset = quadOffsetVSOutput.x + baseOffset;&quot;):h.push(&quot;float horizontalOffset = quadOffsetVSOutput.x;&quot;),h.push(&quot;vec3 volumePosMC = centerlinePosVSOutput + horizontalOffset * samplingDirection;&quot;,&quot;vec3 volumePosTC = (MCTCMatrix * vec4(volumePosMC, 1.0)).xyz;&quot;,&quot;if (any(lessThan(volumePosTC, vec3(0.0))) || any(greaterThan(volumePosTC, vec3(1.0))))&quot;,&quot;{&quot;,&quot;  // set the background color and exit&quot;,&quot;  gl_FragData[0] = backgroundColor;&quot;,&quot;  return;&quot;,&quot;}&quot;),c){const e=t.renderable.getProjectionMode();switch(e===ag?h.push(&quot;const vec4 initialProjectionTextureValue = vec4(1.0);&quot;):h.push(&quot;const vec4 initialProjectionTextureValue = vec4(0.0);&quot;),h.push(&quot;vec3 projectionScaledDirection = projectionDirection / volumeSizeMC;&quot;,&quot;vec3 projectionStep = projectionStepLength * projectionScaledDirection;&quot;,&quot;vec3 projectionStartPosition = volumePosTC + projectionConstantOffset * projectionScaledDirection;&quot;,&quot;vec4 tvalue = initialProjectionTextureValue;&quot;,&quot;for (int projectionSampleIdx = 0; projectionSampleIdx &lt; projectionSlabNumberOfSamples; ++projectionSampleIdx) {&quot;,&quot;  vec3 projectionSamplePosition = projectionStartPosition + float(projectionSampleIdx) * projectionStep;&quot;,&quot;  vec4 sampledTextureValue = texture(volumeTexture, projectionSamplePosition);&quot;),e){case og:h.push(&quot;  tvalue = max(tvalue, sampledTextureValue);&quot;);break;case ag:h.push(&quot;  tvalue = min(tvalue, sampledTextureValue);&quot;);break;default:h.push(&quot;  tvalue = tvalue + sampledTextureValue;&quot;)}h.push(&quot;}&quot;),e===ig&amp;&amp;h.push(&quot;tvalue = tvalue / float(projectionSlabNumberOfSamples);&quot;)}else h.push(&quot;vec4 tvalue = texture(volumeTexture, volumePosTC);&quot;);if(f){const e=[&quot;r&quot;,&quot;g&quot;,&quot;b&quot;,&quot;a&quot;];for(let t=0;t&lt;p;++t)h=h.concat([`vec3 tcolor${t} = mix${t} * texture2D(colorTexture1, vec2(tvalue.${e[t]} * cscale${t} + cshift${t}, height${t})).rgb;`,`float compWeight${t} = mix${t} * texture2D(pwfTexture1, vec2(tvalue.${e[t]} * pwfscale${t} + pwfshift${t}, height${t})).r;`]);switch(p){case 1:h=h.concat([&quot;gl_FragData[0] = vec4(tcolor0.rgb, compWeight0 * opacity);&quot;]);break;case 2:h=h.concat([&quot;float weightSum = compWeight0 + compWeight1;&quot;,&quot;gl_FragData[0] = vec4(vec3((tcolor0.rgb * (compWeight0 / weightSum)) + (tcolor1.rgb * (compWeight1 / weightSum))), opacity);&quot;]);break;case 3:h=h.concat([&quot;float weightSum = compWeight0 + compWeight1 + compWeight2;&quot;,&quot;gl_FragData[0] = vec4(vec3((tcolor0.rgb * (compWeight0 / weightSum)) + (tcolor1.rgb * (compWeight1 / weightSum)) + (tcolor2.rgb * (compWeight2 / weightSum))), opacity);&quot;]);break;case 4:h=h.concat([&quot;float weightSum = compWeight0 + compWeight1 + compWeight2 + compWeight3;&quot;,&quot;gl_FragData[0] = vec4(vec3((tcolor0.rgb * (compWeight0 / weightSum)) + (tcolor1.rgb * (compWeight1 / weightSum)) + (tcolor2.rgb * (compWeight2 / weightSum)) + (tcolor3.rgb * (compWeight3 / weightSum))), opacity);&quot;]);break;default:sg(&quot;Unsupported number of independent coordinates.&quot;)}}else switch(p){case 1:h=h.concat([&quot;// Dependent components&quot;,&quot;float intensity = tvalue.r;&quot;,&quot;vec3 tcolor = texture2D(colorTexture1, vec2(intensity * cscale0 + cshift0, 0.5)).rgb;&quot;,&quot;float scalarOpacity = texture2D(pwfTexture1, vec2(intensity * pwfscale0 + pwfshift0, 0.5)).r;&quot;,&quot;gl_FragData[0] = vec4(tcolor, scalarOpacity * opacity);&quot;]);break;case 2:h=h.concat([&quot;float intensity = tvalue.r*cscale0 + cshift0;&quot;,&quot;gl_FragData[0] = vec4(texture2D(colorTexture1, vec2(intensity, 0.5)).rgb, pwfscale0*tvalue.g + pwfshift0);&quot;]);break;case 3:h=h.concat([&quot;vec4 tcolor = cscale0*tvalue + cshift0;&quot;,&quot;gl_FragData[0] = vec4(texture2D(colorTexture1, vec2(tcolor.r,0.5)).r,&quot;,&quot;  texture2D(colorTexture1, vec2(tcolor.g,0.5)).r,&quot;,&quot;  texture2D(colorTexture1, vec2(tcolor.b,0.5)).r, opacity);&quot;]);break;default:h=h.concat([&quot;vec4 tcolor = cscale0*tvalue + cshift0;&quot;,&quot;gl_FragData[0] = vec4(texture2D(colorTexture1, vec2(tcolor.r,0.5)).r,&quot;,&quot;  texture2D(colorTexture1, vec2(tcolor.g,0.5)).r,&quot;,&quot;  texture2D(colorTexture1, vec2(tcolor.b,0.5)).r, tcolor.a);&quot;])}i=vd.substitute(i,&quot;//VTK::TCoord::Impl&quot;,h).result,t.haveSeenDepthRequest&amp;&amp;(i=vd.substitute(i,&quot;//VTK::ZBuffer::Dec&quot;,&quot;uniform int depthRequest;&quot;).result,i=vd.substitute(i,&quot;//VTK::ZBuffer::Impl&quot;,[&quot;if (depthRequest == 1) {&quot;,&quot;float iz = floor(gl_FragCoord.z*65535.0 + 0.1);&quot;,&quot;float rf = floor(iz/256.0)/255.0;&quot;,&quot;float gf = mod(iz,256.0)/255.0;&quot;,&quot;gl_FragData[0] = vec4(rf, gf, 0.0, 1.0); }&quot;]).result),n.Vertex=a,n.Fragment=i,e.replaceShaderClip(n,r,o),e.replaceShaderCoincidentOffset(n,r,o)},e.replaceShaderClip=(e,n,r)=&gt;{let o=e.Vertex,a=e.Fragment;if(t.renderable.getNumberOfClippingPlanes()){let e=t.renderable.getNumberOfClippingPlanes();e&gt;6&amp;&amp;(sn.vtkErrorMacro(&quot;OpenGL has a limit of 6 clipping planes&quot;),e=6),o=vd.substitute(o,&quot;//VTK::Clip::Dec&quot;,[&quot;uniform int numClipPlanes;&quot;,&quot;uniform vec4 clipPlanes[6];&quot;,&quot;varying float clipDistancesVSOutput[6];&quot;]).result,o=vd.substitute(o,&quot;//VTK::Clip::Impl&quot;,[&quot;for (int planeNum = 0; planeNum &lt; 6; planeNum++)&quot;,&quot;    {&quot;,&quot;    if (planeNum &gt;= numClipPlanes)&quot;,&quot;        {&quot;,&quot;        break;&quot;,&quot;        }&quot;,&quot;    clipDistancesVSOutput[planeNum] = dot(clipPlanes[planeNum], vertexMC);&quot;,&quot;    }&quot;]).result,a=vd.substitute(a,&quot;//VTK::Clip::Dec&quot;,[&quot;uniform int numClipPlanes;&quot;,&quot;varying float clipDistancesVSOutput[6];&quot;]).result,a=vd.substitute(a,&quot;//VTK::Clip::Impl&quot;,[&quot;for (int planeNum = 0; planeNum &lt; 6; planeNum++)&quot;,&quot;    {&quot;,&quot;    if (planeNum &gt;= numClipPlanes)&quot;,&quot;        {&quot;,&quot;        break;&quot;,&quot;        }&quot;,&quot;    if (clipDistancesVSOutput[planeNum] &lt; 0.0) discard;&quot;,&quot;    }&quot;]).result}e.Vertex=o,e.Fragment=a},e.getShaderTemplate=(e,t,n)=&gt;{e.Vertex=jd,e.Fragment=Xd,e.Geometry=&quot;&quot;},e.setMapperShaderParameters=(n,r,o)=&gt;{const a=n.getProgram(),i=n.getCABO();i.getElementCount()&amp;&amp;(t.VBOBuildTime.getMTime()&gt;n.getAttributeUpdateTime().getMTime()||n.getShaderSourceTime().getMTime()&gt;n.getAttributeUpdateTime().getMTime())&amp;&amp;(a.isAttributeUsed(&quot;vertexMC&quot;)&amp;&amp;(n.getVAO().addAttributeArray(a,i,&quot;vertexMC&quot;,i.getVertexOffset(),i.getStride(),t.context.FLOAT,3,t.context.FALSE)||sg(&quot;Error setting vertexMC in shader VAO.&quot;)),n.getCABO().getCustomData().forEach((e=&gt;{e&amp;&amp;a.isAttributeUsed(e.name)&amp;&amp;!n.getVAO().addAttributeArray(a,i,e.name,e.offset,i.getStride(),t.context.FLOAT,e.components,t.context.FALSE)&amp;&amp;sg(`Error setting ${e.name} in shader VAO.`)})),n.getAttributeUpdateTime().modified());const s=t.volumeTexture.getTextureUnit();if(a.setUniformi(&quot;volumeTexture&quot;,s),a.setUniformf(&quot;width&quot;,t.renderable.getWidth()),n.getProgram().setUniform4fv(&quot;backgroundColor&quot;,t.renderable.getBackgroundColor()),a.isUniformUsed(&quot;tangentDirection&quot;)){const e=t.renderable.getTangentDirection();n.getProgram().setUniform3fArray(&quot;tangentDirection&quot;,e)}if(a.isUniformUsed(&quot;bitangentDirection&quot;)){const e=t.renderable.getBitangentDirection();n.getProgram().setUniform3fArray(&quot;bitangentDirection&quot;,e)}if(a.isUniformUsed(&quot;centerlineOrientation&quot;)){const e=t.renderable.getUniformOrientation();n.getProgram().setUniform4fv(&quot;centerlineOrientation&quot;,e)}if(a.isUniformUsed(&quot;globalCenterPoint&quot;)){const e=t.renderable.getCenterPoint();a.setUniform3fArray(&quot;globalCenterPoint&quot;,e)}if(t.renderable.isProjectionEnabled()){const e=t.currentImageDataInput,n=e.getSpacing(),r=e.getDimensions(),o=t.renderable.getProjectionSlabThickness(),i=t.renderable.getProjectionSlabNumberOfSamples(),s=ce([],n,r);a.setUniform3fArray(&quot;volumeSizeMC&quot;,s),a.setUniformi(&quot;projectionSlabNumberOfSamples&quot;,i);const l=-.5*o;a.setUniformf(&quot;projectionConstantOffset&quot;,l);const c=o/(i-1);a.setUniformf(&quot;projectionStepLength&quot;,c)}const l=t.currentImageDataInput,c=l.getWorldToIndex(),u=M(new Float32Array(16),ee([],l.getDimensions())),d=z(u,u,c);if(a.setUniformMatrix(&quot;MCTCMatrix&quot;,d),t.haveSeenDepthRequest&amp;&amp;n.getProgram().setUniformi(&quot;depthRequest&quot;,t.renderDepth?1:0),t.renderable.getNumberOfClippingPlanes()){let e=t.renderable.getNumberOfClippingPlanes();e&gt;6&amp;&amp;(sn.vtkErrorMacro(&quot;OpenGL has a limit of 6 clipping planes&quot;),e=6);const n=i.getCoordShiftAndScaleEnabled()?i.getInverseShiftAndScaleMatrix():null,r=n?T(t.imagematinv,o.getMatrix()):o.getMatrix();n&amp;&amp;(y(r,r),A(r,r,n),y(r,r)),y(t.imagemat,t.currentImageDataInput.getIndexToWorld()),A(t.imagematinv,r,t.imagemat);const s=[];for(let n=0;n&lt;e;n++){const e=[];t.renderable.getClippingPlaneInDataCoords(t.imagematinv,n,e);for(let t=0;t&lt;4;t++)s.push(e[t])}a.setUniformi(&quot;numClipPlanes&quot;,e),a.setUniform4fv(&quot;clipPlanes&quot;,s)}if(a.isUniformUsed(&quot;coffset&quot;)){const t=e.getCoincidentParameters(r,o);a.setUniformf(&quot;coffset&quot;,t.offset),a.isUniformUsed(&quot;cfactor&quot;)&amp;&amp;a.setUniformf(&quot;cfactor&quot;,t.factor)}},e.setCameraShaderParameters=(e,n,r)=&gt;{const o=t.openGLImageSlice.getKeyMatrices().mcwc,a=t.openGLCamera.getKeyMatrices(n).wcpc;if(A(t.imagemat,a,o),e.getCABO().getCoordShiftAndScaleEnabled()){const n=e.getCABO().getInverseShiftAndScaleMatrix();A(t.imagemat,t.imagemat,n)}e.getProgram().setUniformMatrix(&quot;MCPCMatrix&quot;,t.imagemat)},e.setPropertyShaderParameters=(e,n,r)=&gt;{const o=e.getProgram(),a=r.getProperty(),i=a.getOpacity();o.setUniformf(&quot;opacity&quot;,i);const s=t.volumeTexture.getComponents(),l=a.getIndependentComponents();if(l)for(let e=0;e&lt;s;++e)o.setUniformf(`mix${e}`,a.getComponentWeight(e));const c=t.volumeTexture.getVolumeInfo();for(let e=0;e&lt;s;e++){let t=a.getColorWindow(),n=a.getColorLevel();const r=l?e:0,i=a.getRGBTransferFunction(r);if(i&amp;&amp;a.getUseLookupTableScalarRange()){const e=i.getRange();t=e[1]-e[0],n=.5*(e[1]+e[0])}const s=c.scale[e]/t,u=(c.offset[e]-n)/t+.5;o.setUniformf(`cshift${e}`,u),o.setUniformf(`cscale${e}`,s)}const u=t.colorTexture.getTextureUnit();o.setUniformi(&quot;colorTexture1&quot;,u);for(let e=0;e&lt;s;e++){let t=1,n=0;const r=l?e:0,i=a.getPiecewiseFunction(r);if(i){const r=i.getRange(),o=r[1]-r[0],a=.5*(r[0]+r[1]);t=c.scale[e]/o,n=(c.offset[e]-a)/o+.5}o.setUniformf(`pwfshift${e}`,n),o.setUniformf(`pwfscale${e}`,t)}const d=t.pwfTexture.getTextureUnit();o.setUniformi(&quot;pwfTexture1&quot;,d)},e.updateShaders=(n,r,o)=&gt;{if(e.getNeedToRebuildShaders(n,r,o)){const a={Vertex:null,Fragment:null,Geometry:null};e.buildShaders(a,r,o);const i=t._openGLRenderWindow.getShaderCache().readyShaderProgramArray(a.Vertex,a.Fragment,a.Geometry);i!==n.getProgram()&amp;&amp;(n.setProgram(i),n.getVAO().releaseGraphicsResources()),n.getShaderSourceTime().modified()}else t._openGLRenderWindow.getShaderCache().readyShaderProgram(n.getProgram());n.getVAO().bind(),e.setMapperShaderParameters(n,r,o),e.setCameraShaderParameters(n,r,o),e.setPropertyShaderParameters(n,r,o)},e.delete=sn.chain((()=&gt;{t._openGLRenderWindow&amp;&amp;n(t._openGLRenderWindow)}),e.delete)}(e,t)}),&quot;vtkOpenGLImageCPRMapper&quot;);vn(&quot;vtkImageCPRMapper&quot;,cg);const ug={context:null,keyMatrixTime:null,keyMatrices:null};vn(&quot;vtkImageSlice&quot;,Xt((function(e,t,n={}){Object.assign(t,ug,n),pn.extend(e,t,n),t.keyMatrixTime={},Vt(t.keyMatrixTime,{mtime:0}),t.keyMatrices={mcwc:x(new Float64Array(16))},Gt(e,t,[&quot;context&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLImageSlice&quot;),e.buildPass=n=&gt;{if(t.renderable&amp;&amp;t.renderable.getVisibility()&amp;&amp;n){if(!t.renderable)return;t._openGLRenderWindow=e.getLastAncestorOfType(&quot;vtkOpenGLRenderWindow&quot;),t._openGLRenderer=e.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;),t.context=t._openGLRenderWindow.getContext(),e.prepareNodes(),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes()}},e.traverseZBufferPass=n=&gt;{t.renderable&amp;&amp;t.renderable.getNestedVisibility()&amp;&amp;(!t._openGLRenderer.getSelector()||t.renderable.getNestedPickable())&amp;&amp;(e.apply(n,!0),t.children.forEach((e=&gt;{e.traverse(n)})),e.apply(n,!1))},e.traverseOpaqueZBufferPass=t=&gt;e.traverseOpaquePass(t),e.traverseOpaquePass=n=&gt;{t.renderable&amp;&amp;t.renderable.getNestedVisibility()&amp;&amp;t.renderable.getIsOpaque()&amp;&amp;(!t._openGLRenderer.getSelector()||t.renderable.getNestedPickable())&amp;&amp;(e.apply(n,!0),t.children.forEach((e=&gt;{e.traverse(n)})),e.apply(n,!1))},e.traverseTranslucentPass=n=&gt;{!t.renderable||!t.renderable.getNestedVisibility()||t.renderable.getIsOpaque()||t._openGLRenderer.getSelector()&amp;&amp;!t.renderable.getNestedPickable()||(e.apply(n,!0),t.children.forEach((e=&gt;{e.traverse(n)})),e.apply(n,!1))},e.queryPass=(e,n)=&gt;{if(e){if(!t.renderable||!t.renderable.getVisibility())return;t.renderable.getIsOpaque()?n.incrementOpaqueActorCount():n.incrementTranslucentActorCount()}},e.zBufferPass=(t,n)=&gt;e.opaquePass(t,n),e.opaqueZBufferPass=(t,n)=&gt;e.opaquePass(t,n),e.opaquePass=(e,n)=&gt;{e&amp;&amp;t.context.depthMask(!0)},e.translucentPass=(e,n)=&gt;{t.context.depthMask(!e)},e.getKeyMatrices=()=&gt;(t.renderable.getMTime()&gt;t.keyMatrixTime.getMTime()&amp;&amp;(T(t.keyMatrices.mcwc,t.renderable.getMatrix()),y(t.keyMatrices.mcwc,t.keyMatrices.mcwc),t.keyMatrixTime.modified()),t.keyMatrices)}(e,t)}),&quot;vtkOpenGLImageSlice&quot;));const dg={};vn(&quot;vtkVolume&quot;,Xt((function(e,t,n={}){Object.assign(t,dg,n),pn.extend(e,t,n),t.keyMatrixTime={},Vt(t.keyMatrixTime,{mtime:0}),t.normalMatrix=new Float64Array(9),t.MCWCMatrix=new Float64Array(16),Gt(e,t,[&quot;context&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLVolume&quot;),e.buildPass=n=&gt;{t.renderable&amp;&amp;t.renderable.getVisibility()&amp;&amp;n&amp;&amp;(t._openGLRenderWindow=e.getLastAncestorOfType(&quot;vtkOpenGLRenderWindow&quot;),t._openGLRenderer=e.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;),t.context=t._openGLRenderWindow.getContext(),e.prepareNodes(),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes())},e.queryPass=(e,n)=&gt;{if(e){if(!t.renderable||!t.renderable.getVisibility())return;n.incrementVolumeCount()}},e.traverseVolumePass=n=&gt;{t.renderable&amp;&amp;t.renderable.getNestedVisibility()&amp;&amp;(!t._openGLRenderer.getSelector()||t.renderable.getNestedPickable())&amp;&amp;(e.apply(n,!0),t.children[0].traverse(n),e.apply(n,!1))},e.volumePass=e=&gt;{t.renderable&amp;&amp;t.renderable.getVisibility()&amp;&amp;t.context.depthMask(!e)},e.getKeyMatrices=()=&gt;(t.renderable.getMTime()&gt;t.keyMatrixTime.getMTime()&amp;&amp;(t.renderable.computeMatrix(),T(t.MCWCMatrix,t.renderable.getMatrix()),y(t.MCWCMatrix,t.MCWCMatrix),t.renderable.getIsIdentity()?c(t.normalMatrix):(s(t.normalMatrix,t.MCWCMatrix),d(t.normalMatrix,t.normalMatrix),u(t.normalMatrix,t.normalMatrix)),t.keyMatrixTime.modified()),{mcwc:t.MCWCMatrix,normalMatrix:t.normalMatrix})}(e,t)}),&quot;vtkOpenGLVolume&quot;));const pg={NEAREST:0,LINEAR:1,FAST_LINEAR:2},fg={FRACTIONAL:0,PROPORTIONAL:1},gg={DEFAULT:0,ADDITIVE:1,COLORIZE:2,CUSTOM:3};var mg={InterpolationType:pg,OpacityMode:fg,ColorMixPreset:gg,FilterMode:{OFF:0,NORMALIZED:1,RAW:2}};const hg={COMPOSITE_BLEND:0,MAXIMUM_INTENSITY_BLEND:1,MINIMUM_INTENSITY_BLEND:2,AVERAGE_INTENSITY_BLEND:3,ADDITIVE_INTENSITY_BLEND:4,RADON_TRANSFORM_BLEND:5,LABELMAP_EDGE_PROJECTION_BLEND:6};var vg={BlendMode:hg};const{vtkWarningMacro:Tg,vtkErrorMacro:xg}=ln,yg={idxToView:x(new Float64Array(16)),vecISToVCMatrix:c(new Float64Array(9)),modelToView:x(new Float64Array(16)),projectionToView:x(new Float64Array(16)),projectionToWorld:x(new Float64Array(16))};function bg(e,t){function n(e){return e.getUseLabelOutline()||t.renderable.getBlendMode()===hg.LABELMAP_EDGE_PROJECTION_BLEND}t.classHierarchy.push(&quot;vtkOpenGLVolumeMapper&quot;);const r=new Map;function o(t,n,o){n!==o&amp;&amp;(function(t,n){if(!n)return;const o=(r.get(n)??0)-1;o&lt;=0?(t.unregisterGraphicsResourceUser(n,e),r.delete(n)):r.set(n,o)}(t,n),function(t,n){if(!n)return;const o=r.get(n)??0,a=o+1;r.set(n,a),o&lt;=0&amp;&amp;t.registerGraphicsResourceUser(n,e)}(t,o))}function a(t){[...r.keys()].forEach((n=&gt;t.unregisterGraphicsResourceUser(n,e)))}e.buildPass=()=&gt;{t.zBufferTexture=null},e.zBufferPass=(e,n)=&gt;{if(e){const e=n.getZBufferTexture();e!==t.zBufferTexture&amp;&amp;(t.zBufferTexture=e)}},e.opaqueZBufferPass=(t,n)=&gt;e.zBufferPass(t,n),e.volumePass=(n,r)=&gt;{if(n){const n=t._openGLRenderWindow;t._openGLRenderWindow=e.getLastAncestorOfType(&quot;vtkOpenGLRenderWindow&quot;),n&amp;&amp;!n.isDeleted()&amp;&amp;n!==t._openGLRenderWindow&amp;&amp;a(n),t.context=t._openGLRenderWindow.getContext(),t.tris.setOpenGLRenderWindow(t._openGLRenderWindow),t.jitterTexture.setOpenGLRenderWindow(t._openGLRenderWindow),t.framebuffer.setOpenGLRenderWindow(t._openGLRenderWindow),t.openGLVolume=e.getFirstAncestorOfType(&quot;vtkOpenGLVolume&quot;);const r=t.openGLVolume.getRenderable();t._openGLRenderer=e.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;);const o=t._openGLRenderer.getRenderable();t.openGLCamera=t._openGLRenderer.getViewNodeFor(o.getActiveCamera(),t.openGLCamera),e.renderPiece(o,r)}},e.getShaderTemplate=(e,t,n)=&gt;{e.Vertex=&quot;//VTK::System::Dec\\n\\n/*=========================================================================\\n\\n  Program:   Visualization Toolkit\\n  Module:    vtkVolumeVS.glsl\\n\\n  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n  All rights reserved.\\n  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n\\n     This software is distributed WITHOUT ANY WARRANTY; without even\\n     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n     PURPOSE.  See the above copyright notice for more information.\\n\\n=========================================================================*/\\n\\nattribute vec4 vertexDC;\\n\\nvarying vec3 vertexVCVSOutput;\\nuniform mat4 PCVCMatrix;\\n\\nuniform float dcxmin;\\nuniform float dcxmax;\\nuniform float dcymin;\\nuniform float dcymax;\\n\\nvoid main()\\n{\\n  // dcsmall is the device coords reduced to the\\n  // x y area covered by the volume\\n  vec4 dcsmall = vec4(\\n    dcxmin + 0.5 * (vertexDC.x + 1.0) * (dcxmax - dcxmin),\\n    dcymin + 0.5 * (vertexDC.y + 1.0) * (dcymax - dcymin),\\n    vertexDC.z,\\n    vertexDC.w);\\n  vec4 vcpos = PCVCMatrix * dcsmall;\\n  vertexVCVSOutput = vcpos.xyz/vcpos.w;\\n  gl_Position = dcsmall;\\n}\\n&quot;,e.Fragment=&quot;//VTK::System::Dec\\n\\n/*=========================================================================\\n\\n  Program:   Visualization Toolkit\\n  Module:    vtkVolumeFS.glsl\\n\\n  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n  All rights reserved.\\n  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n\\n     This software is distributed WITHOUT ANY WARRANTY; without even\\n     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n     PURPOSE.  See the above copyright notice for more information.\\n\\n=========================================================================*/\\n// Template for the volume mappers fragment shader\\n\\nconst float infinity = 3.402823466e38;\\n\\n// the output of this shader\\n//VTK::Output::Dec\\n\\nin vec3 vertexVCVSOutput;\\n\\n// From Sources\\\\Rendering\\\\Core\\\\VolumeProperty\\\\Constants.js\\n#define COMPOSITE_BLEND 0\\n#define MAXIMUM_INTENSITY_BLEND 1\\n#define MINIMUM_INTENSITY_BLEND 2\\n#define AVERAGE_INTENSITY_BLEND 3\\n#define ADDITIVE_INTENSITY_BLEND 4\\n#define RADON_TRANSFORM_BLEND 5\\n#define LABELMAP_EDGE_PROJECTION_BLEND 6\\n\\n#define vtkNumberOfLights //VTK::NumberOfLights\\n#define vtkMaxLaoKernelSize //VTK::MaxLaoKernelSize\\n#define vtkNumberOfComponents //VTK::NumberOfComponents\\n#define vtkBlendMode //VTK::BlendMode\\n#define vtkMaximumNumberOfSamples //VTK::MaximumNumberOfSamples\\n\\n//VTK::EnabledColorFunctions\\n\\n//VTK::EnabledLightings\\n\\n//VTK::EnabledMultiTexturePerVolume\\n\\n//VTK::EnabledGradientOpacity\\n\\n//VTK::EnabledIndependentComponents\\n\\n//VTK::vtkProportionalComponents\\n\\n//VTK::vtkForceNearestComponents\\n\\nuniform int twoSidedLighting;\\n\\n#if vtkMaxLaoKernelSize &gt; 0\\n  vec2 kernelSample[vtkMaxLaoKernelSize];\\n#endif\\n\\n// Textures\\n#ifdef EnabledMultiTexturePerVolume\\n  #define vtkNumberOfVolumeTextures vtkNumberOfComponents\\n#else\\n  #define vtkNumberOfVolumeTextures 1\\n#endif\\nuniform highp sampler3D volumeTexture[vtkNumberOfVolumeTextures];\\nuniform sampler2D colorTexture;\\nuniform sampler2D opacityTexture;\\nuniform sampler2D jtexture;\\nuniform sampler2D labelOutlineThicknessTexture;\\n\\nstruct Volume {\\n  // ---- Volume geometry settings ----\\n\\n  vec3 originVC;          // in VC\\n  vec3 spacing;           // in VC per IC\\n  vec3 inverseSpacing;    // 1/spacing\\n  ivec3 dimensions;       // in IC\\n  vec3 inverseDimensions; // 1/vec3(dimensions)\\n  mat3 vecISToVCMatrix;   // convert from IS to VC without translation\\n  mat3 vecVCToISMatrix;   // convert from VC to IS without translation\\n  mat4 PCWCMatrix;\\n  mat4 worldToIndex;\\n  float diagonalLength; // in VC, this is: length(size)\\n\\n  // ---- Texture settings ----\\n\\n  // Texture shift and scale\\n  vec4 colorTextureScale;\\n  vec4 colorTextureShift;\\n  vec4 opacityTextureScale;\\n  vec4 opacityTextureShift;\\n\\n  // The heights defined below are the locations for the up to four components\\n  // of the transfer functions. The transfer functions have a height of (2 *\\n  // numberOfComponents) pixels so the values are computed to hit the middle of\\n  // the two rows for that component\\n  vec4 transferFunctionsSampleHeight;\\n\\n  // ---- Mode specific settings ----\\n\\n  // Independent component default preset settings per component\\n  vec4 independentComponentMix;\\n\\n  // Additive / average blending mode settings\\n  vec4 ipScalarRangeMin;\\n  vec4 ipScalarRangeMax;\\n\\n  // ---- Rendering settings ----\\n\\n  // Lighting\\n  float ambient;\\n  float diffuse;\\n  float specular;\\n  float specularPower;\\n  int computeNormalFromOpacity;\\n\\n  // Gradient opacity\\n  vec4 gradientOpacityScale;\\n  vec4 gradientOpacityShift;\\n  vec4 gradientOpacityMin;\\n  vec4 gradientOpacityMax;\\n\\n  // Volume shadow\\n  float volumetricScatteringBlending;\\n  float globalIlluminationReach;\\n  float anisotropy;\\n  float anisotropySquared;\\n\\n  // LAO\\n  int kernelSize;\\n  int kernelRadius;\\n\\n  // Label outline\\n  float outlineOpacity;\\n};\\nuniform Volume volume;\\n\\nstruct Light {\\n  vec3 color;\\n  vec3 positionVC;\\n  vec3 directionVC; // normalized\\n  vec3 halfAngleVC;\\n  vec3 attenuation;\\n  float exponent;\\n  float coneAngle;\\n  int isPositional;\\n};\\n#if vtkNumberOfLights &gt; 0\\n  uniform Light lights[vtkNumberOfLights];\\n#endif\\n\\nuniform float vpWidth;\\nuniform float vpHeight;\\nuniform float vpOffsetX;\\nuniform float vpOffsetY;\\n\\n// Bitmasks for label outline\\nconst int MAX_SEGMENT_INDEX = 256; // Define as per expected maximum\\n#define MAX_SEGMENTS 256\\n#define UINT_SIZE 32\\n// We add UINT_SIZE - 1, as we want the ceil of the division instead of the\\n// floor\\n#define BITMASK_SIZE ((MAX_SEGMENTS + UINT_SIZE - 1) / UINT_SIZE)\\nuint labelOutlineBitmasks[BITMASK_SIZE];\\n\\n// Set the corresponding bit in the bitmask\\nvoid setLabelOutlineBit(int segmentIndex) {\\n  int arrayIndex = segmentIndex / UINT_SIZE;\\n  int bitIndex = segmentIndex % UINT_SIZE;\\n  labelOutlineBitmasks[arrayIndex] |= 1u &lt;&lt; bitIndex;\\n}\\n\\n// Check if a bit is set in the bitmask\\nbool isLabelOutlineBitSet(int segmentIndex) {\\n  int arrayIndex = segmentIndex / UINT_SIZE;\\n  int bitIndex = segmentIndex % UINT_SIZE;\\n  return ((labelOutlineBitmasks[arrayIndex] &amp; (1u &lt;&lt; bitIndex)) != 0u);\\n}\\n\\n// if you want to see the raw tiled\\n// data in webgl1 uncomment the following line\\n// #define debugtile\\n\\n// camera values\\nuniform float camThick;\\nuniform float camNear;\\nuniform float camFar;\\nuniform int cameraParallel;\\n\\n//VTK::ClipPlane::Dec\\n\\n// A random number between 0 and 1 that only depends on the fragment\\n// It uses the jtexture, so this random seed repeats by blocks of 32 fragments\\n// in screen space\\nfloat fragmentSeed;\\n\\n// sample texture is global\\nuniform float sampleDistance;\\nuniform float volumeShadowSampleDistance;\\n\\n// declaration for intermixed geometry\\n//VTK::ZBuffer::Dec\\n\\n//=======================================================================\\n// global and custom variables (a temporary section before photorealistics\\n// rendering module is complete)\\nvec3 rayDirVC;\\n\\n#define INV4PI 0.0796\\n#define EPSILON 0.001\\n#define PI 3.1415\\n#define PI2 9.8696\\n\\nvec4 rawSampleTexture(vec3 pos) {\\n  #ifdef EnabledMultiTexturePerVolume\\n    vec4 rawSample;\\n    rawSample[0] = texture(volumeTexture[0], pos)[0];\\n  #if vtkNumberOfComponents &gt; 1\\n    rawSample[1] = texture(volumeTexture[1], pos)[0];\\n  #endif\\n  #if vtkNumberOfComponents &gt; 2\\n    rawSample[2] = texture(volumeTexture[2], pos)[0];\\n  #endif\\n  #if vtkNumberOfComponents &gt; 3\\n    rawSample[3] = texture(volumeTexture[3], pos)[0];\\n  #endif\\n    return rawSample;\\n  #else\\n    return texture(volumeTexture[0], pos);\\n  #endif\\n}\\n\\nvec4 rawFetchTexture(ivec3 pos) {\\n  #ifdef EnabledMultiTexturePerVolume\\n    vec4 rawSample;\\n    #if vtkNumberOfComponents &gt; 0\\n      rawSample[0] = texelFetch(volumeTexture[0], pos, 0)[0];\\n    #endif\\n    #if vtkNumberOfComponents &gt; 1\\n      rawSample[1] = texelFetch(volumeTexture[1], pos, 0)[0];\\n    #endif\\n    #if vtkNumberOfComponents &gt; 2\\n      rawSample[2] = texelFetch(volumeTexture[2], pos, 0)[0];\\n    #endif\\n    #if vtkNumberOfComponents &gt; 3\\n      rawSample[3] = texelFetch(volumeTexture[3], pos, 0)[0];\\n    #endif\\n    return rawSample;\\n  #else\\n    return texelFetch(volumeTexture[0], pos, 0);\\n  #endif\\n}\\n\\nvec4 getTextureValue(vec3 pos) {\\n  vec4 tmp = rawSampleTexture(pos);\\n\\n  // Force nearest\\n  #if defined(vtkComponent0ForceNearest) || \\\\\\n      defined(vtkComponent1ForceNearest) || \\\\\\n      defined(vtkComponent2ForceNearest) || \\\\\\n      defined(vtkComponent3ForceNearest)\\n    vec3 nearestPos = (floor(pos * vec3(volume.dimensions)) + 0.5) *\\n                      volume.inverseDimensions;\\n    vec4 nearestValue = rawSampleTexture(nearestPos);\\n    #ifdef vtkComponent0ForceNearest\\n      tmp[0] = nearestValue[0];\\n    #endif\\n    #ifdef vtkComponent1ForceNearest\\n      tmp[1] = nearestValue[1];\\n    #endif\\n    #ifdef vtkComponent2ForceNearest\\n      tmp[2] = nearestValue[2];\\n    #endif\\n    #ifdef vtkComponent3ForceNearest\\n      tmp[3] = nearestValue[3];\\n    #endif\\n  #endif\\n\\n  // Set alpha when using dependent components\\n  #ifndef EnabledIndependentComponents\\n    #if vtkNumberOfComponents == 1\\n      tmp.a = tmp.r;\\n    #endif\\n    #if vtkNumberOfComponents == 2\\n      tmp.a = tmp.g;\\n    #endif\\n    #if vtkNumberOfComponents == 3\\n      tmp.a = length(tmp.rgb);\\n    #endif\\n  #endif\\n\\n  return tmp;\\n}\\n\\n// `height` is usually `volume.transferFunctionsSampleHeight[component]`\\n// when using independent component and `0.5` otherwise. Don&#x27;t move the if\\n// statement in these function, as the callers usually already knows if it is\\n// using independent component or not\\nfloat getOpacityFromTexture(float scalar, int component, float height) {\\n  float scaledScalar = scalar * volume.opacityTextureScale[component] +\\n                       volume.opacityTextureShift[component];\\n  return texture2D(opacityTexture, vec2(scaledScalar, height)).r;\\n}\\nvec3 getColorFromTexture(float scalar, int component, float height) {\\n  float scaledScalar = scalar * volume.colorTextureScale[component] +\\n                       volume.colorTextureShift[component];\\n  return texture2D(colorTexture, vec2(scaledScalar, height)).rgb;\\n}\\n\\n//=======================================================================\\n// transformation between VC and IS space\\n\\n// convert vector position from idx to vc\\nvec3 posIStoVC(vec3 posIS) {\\n  return volume.vecISToVCMatrix * posIS + volume.originVC;\\n}\\n\\n// convert vector position from vc to idx\\nvec3 posVCtoIS(vec3 posVC) {\\n  return volume.vecVCToISMatrix * (posVC - volume.originVC);\\n}\\n\\n// Rotate vector to view coordinate\\nvec3 vecISToVC(vec3 dirIS) {\\n  return volume.vecISToVCMatrix * dirIS;\\n}\\n\\n// Rotate vector to idx coordinate\\nvec3 vecVCToIS(vec3 dirVC) {\\n  return volume.vecVCToISMatrix * dirVC;\\n}\\n\\n//=======================================================================\\n// Given a normal compute the gradient opacity factors\\nfloat computeGradientOpacityFactor(float normalMag, int component) {\\n  float goscale = volume.gradientOpacityScale[component];\\n  float goshift = volume.gradientOpacityShift[component];\\n  float gomin = volume.gradientOpacityMin[component];\\n  float gomax = volume.gradientOpacityMax[component];\\n  return clamp(normalMag * goscale + goshift, gomin, gomax);\\n}\\n\\n#ifdef vtkClippingPlanesOn\\n  bool isPointClipped(vec3 posVC) {\\n    for (int i = 0; i &lt; clip_numPlanes; ++i) {\\n      if (dot(vec3(vClipPlaneOrigins[i] - posVC), vClipPlaneNormals[i]) &gt; 0.0) {\\n        return true;\\n      }\\n    }\\n    return false;\\n  }\\n#endif\\n\\n//=======================================================================\\n// compute the normal and gradient magnitude for a position, uses forward\\n// difference\\n\\n// The output normal is in VC\\nvec4 computeDensityNormal(vec3 opacityUCoords[2], float opacityTextureHeight,\\n                          float gradientOpacity, int component) {\\n  // Pass the scalars through the opacity functions\\n  vec4 opacityG;\\n  opacityG.x += getOpacityFromTexture(opacityUCoords[0].x, component,\\n                                      opacityTextureHeight);\\n  opacityG.y += getOpacityFromTexture(opacityUCoords[0].y, component,\\n                                      opacityTextureHeight);\\n  opacityG.z += getOpacityFromTexture(opacityUCoords[0].z, component,\\n                                      opacityTextureHeight);\\n  opacityG.x -= getOpacityFromTexture(opacityUCoords[1].x, component,\\n                                      opacityTextureHeight);\\n  opacityG.y -= getOpacityFromTexture(opacityUCoords[1].y, component,\\n                                      opacityTextureHeight);\\n  opacityG.z -= getOpacityFromTexture(opacityUCoords[1].z, component,\\n                                      opacityTextureHeight);\\n\\n  // Divide by spacing and convert to VC\\n  opacityG.xyz *= gradientOpacity * volume.inverseSpacing;\\n  opacityG.w = length(opacityG.xyz);\\n  if (opacityG.w == 0.0) {\\n    return vec4(0.0);\\n  }\\n\\n  // Normalize\\n  opacityG.xyz = normalize(vecISToVC(opacityG.xyz));\\n\\n  return opacityG;\\n}\\n\\n// The output normal is in VC\\nvec4 computeNormalForDensity(vec3 posIS, out vec3 scalarInterp[2],\\n                             const int opacityComponent) {\\n  vec3 offsetedPosIS;\\n  for (int axis = 0; axis &lt; 3; ++axis) {\\n    // Positive direction\\n    offsetedPosIS = posIS;\\n    offsetedPosIS[axis] += volume.inverseDimensions[axis];\\n    scalarInterp[0][axis] =\\n        getTextureValue(offsetedPosIS)[opacityComponent];\\n    #ifdef vtkClippingPlanesOn\\n      if (isPointClipped(posIStoVC(offsetedPosIS))) {\\n        scalarInterp[0][axis] = 0.0;\\n      }\\n    #endif\\n\\n    // Negative direction\\n    offsetedPosIS = posIS;\\n    offsetedPosIS[axis] -= volume.inverseDimensions[axis];\\n    scalarInterp[1][axis] =\\n        getTextureValue(offsetedPosIS)[opacityComponent];\\n    #ifdef vtkClippingPlanesOn\\n      if (isPointClipped(posIStoVC(offsetedPosIS))) {\\n        scalarInterp[1][axis] = 0.0;\\n      }\\n    #endif\\n  }\\n\\n  vec4 result;\\n  result.xyz = (scalarInterp[0] - scalarInterp[1]) * volume.inverseSpacing;\\n  result.w = length(result.xyz);\\n  if (result.w == 0.0) {\\n    return vec4(0.0);\\n  }\\n  result.xyz = normalize(vecISToVC(result.xyz));\\n  return result;\\n}\\n\\nvec4 fragCoordToPCPos(vec4 fragCoord) {\\n  return vec4((fragCoord.x / vpWidth - vpOffsetX - 0.5) * 2.0,\\n              (fragCoord.y / vpHeight - vpOffsetY - 0.5) * 2.0,\\n              (fragCoord.z - 0.5) * 2.0, 1.0);\\n}\\n\\nvec4 pcPosToWorldCoord(vec4 pcPos) {\\n  return volume.PCWCMatrix * pcPos;\\n}\\n\\nvec3 fragCoordToIndexSpace(vec4 fragCoord) {\\n  vec4 pcPos = fragCoordToPCPos(fragCoord);\\n  vec4 worldCoord = pcPosToWorldCoord(pcPos);\\n  vec4 vertex = (worldCoord / worldCoord.w);\\n\\n  vec3 index = (volume.worldToIndex * vertex).xyz;\\n\\n  // half voxel fix for labelmapOutline\\n  return (index + vec3(0.5)) * volume.inverseDimensions;\\n}\\n\\nvec3 fragCoordToWorld(vec4 fragCoord) {\\n  vec4 pcPos = fragCoordToPCPos(fragCoord);\\n  vec4 worldCoord = pcPosToWorldCoord(pcPos);\\n  return worldCoord.xyz;\\n}\\n\\n//=======================================================================\\n// Compute the normals and gradient magnitudes for a position for independent\\n// components The output normals are in VC\\nmat4 computeMat4Normal(vec3 posIS, vec4 tValue) {\\n  vec3 xvec = vec3(volume.inverseDimensions.x, 0.0, 0.0);\\n  vec3 yvec = vec3(0.0, volume.inverseDimensions.y, 0.0);\\n  vec3 zvec = vec3(0.0, 0.0, volume.inverseDimensions.z);\\n\\n  vec4 distX = getTextureValue(posIS + xvec) - getTextureValue(posIS - xvec);\\n  vec4 distY = getTextureValue(posIS + yvec) - getTextureValue(posIS - yvec);\\n  vec4 distZ = getTextureValue(posIS + zvec) - getTextureValue(posIS - zvec);\\n\\n  // divide by spacing\\n  distX *= 0.5 * volume.inverseSpacing.x;\\n  distY *= 0.5 * volume.inverseSpacing.y;\\n  distZ *= 0.5 * volume.inverseSpacing.z;\\n\\n  mat4 result;\\n\\n  // optionally compute the 1st component\\n  #if vtkNumberOfComponents &gt; 0 &amp;&amp; !defined(vtkComponent0Proportional)\\n    {\\n      const int component = 0;\\n      vec3 normal = vec3(distX[component], distY[component], distZ[component]);\\n      float normalLength = length(normal);\\n      if (normalLength &gt; 0.0) {\\n        normal = normalize(vecISToVC(normal));\\n      }\\n      result[component] = vec4(normal, normalLength);\\n    }\\n  #endif\\n\\n  // optionally compute the 2nd component\\n  #if vtkNumberOfComponents &gt; 1 &amp;&amp; !defined(vtkComponent1Proportional)\\n    {\\n      const int component = 1;\\n      vec3 normal = vec3(distX[component], distY[component], distZ[component]);\\n      float normalLength = length(normal);\\n      if (normalLength &gt; 0.0) {\\n        normal = normalize(vecISToVC(normal));\\n      }\\n      result[component] = vec4(normal, normalLength);\\n    }\\n  #endif\\n\\n  // optionally compute the 3rd component\\n  #if vtkNumberOfComponents &gt; 2 &amp;&amp; !defined(vtkComponent2Proportional)\\n    {\\n      const int component = 2;\\n      vec3 normal = vec3(distX[component], distY[component], distZ[component]);\\n      float normalLength = length(normal);\\n      if (normalLength &gt; 0.0) {\\n        normal = normalize(vecISToVC(normal));\\n      }\\n      result[component] = vec4(normal, normalLength);\\n    }\\n  #endif\\n\\n  // optionally compute the 4th component\\n  #if vtkNumberOfComponents &gt; 3 &amp;&amp; !defined(vtkComponent3Proportional)\\n    {\\n      const int component = 3;\\n      vec3 normal = vec3(distX[component], distY[component], distZ[component]);\\n      float normalLength = length(normal);\\n      if (normalLength &gt; 0.0) {\\n        normal = normalize(vecISToVC(normal));\\n      }\\n      result[component] = vec4(normal, normalLength);\\n    }\\n  #endif\\n\\n  return result;\\n}\\n\\n//=======================================================================\\n// global shadow - secondary ray\\n\\n// henyey greenstein phase function\\nfloat phaseFunction(float cos_angle) {\\n  // divide by 2.0 instead of 4pi to increase intensity\\n  float anisotropy = volume.anisotropy;\\n  if (abs(anisotropy) &lt;= EPSILON) {\\n    // isotropic scatter returns 0.5 instead of 1/4pi to increase intensity\\n    return 0.5;\\n  }\\n  float anisotropy2 = volume.anisotropySquared;\\n  return ((1.0 - anisotropy2) /\\n          pow(1.0 + anisotropy2 - 2.0 * anisotropy * cos_angle, 1.5)) /\\n         2.0;\\n}\\n\\n// Compute the two intersection distances of the ray with the volume in VC\\n// The entry point is `rayOriginVC + distanceMin * rayDirVC` and the exit point\\n// is `rayOriginVC + distanceMax * rayDirVC` If distanceMin &lt; distanceMax, the\\n// volume is not intersected The ray origin is inside the box when distanceMin &lt;\\n// 0.0 &lt; distanceMax\\nvec2 rayIntersectVolumeDistances(vec3 rayOriginVC, vec3 rayDirVC) {\\n  // Compute origin and direction in IS\\n  vec3 rayOriginIS = posVCtoIS(rayOriginVC);\\n  vec3 rayDirIS = vecVCToIS(rayDirVC);\\n  // Don&#x27;t check for infinity as the min/max combination afterward will always\\n  // find an intersection before infinity\\n  vec3 invDir = 1.0 / rayDirIS;\\n\\n  // We have: bound = origin + t * dir\\n  // So: t = (1/dir) * (bound - origin)\\n  vec3 distancesTo0 = invDir * (vec3(0.0) - rayOriginIS);\\n  vec3 distancesTo1 = invDir * (vec3(1.0) - rayOriginIS);\\n  // Min and max distances to plane intersection per plane\\n  vec3 dMinPerAxis = min(distancesTo0, distancesTo1);\\n  vec3 dMaxPerAxis = max(distancesTo0, distancesTo1);\\n  // Overall first and last intersection\\n  float distanceMin = max(dMinPerAxis.x, max(dMinPerAxis.y, dMinPerAxis.z));\\n  float distanceMax = min(dMaxPerAxis.x, min(dMaxPerAxis.y, dMaxPerAxis.z));\\n  return vec2(distanceMin, distanceMax);\\n}\\n\\n//=======================================================================\\n// local ambient occlusion\\n#if vtkMaxLaoKernelSize &gt; 0\\n\\n  // Return a random point on the unit sphere\\n  vec3 sampleDirectionUniform(int rayIndex) {\\n    // Each ray of each fragment should be different, two sources of randomness\\n    // are used. Only depends on ray index\\n    vec2 rayRandomness = kernelSample[rayIndex];\\n    // Only depends on fragment\\n    float fragmentRandomness = fragmentSeed;\\n    // Merge both source of randomness in a single uniform random variable using\\n    // the formula (x+y &lt; 1 ? x+y : x+y-1). The simpler formula (x+y)/2 doesn&#x27;t\\n    // result in a uniform distribution\\n    vec2 mergedRandom = rayRandomness + vec2(fragmentRandomness);\\n    mergedRandom -= vec2(greaterThanEqual(mergedRandom, vec2(1.0)));\\n\\n    // Insipred by:\\n    // https://karthikkaranth.me/blog/generating-random-points-in-a-sphere/#better-choice-of-spherical-coordinates\\n    float u = mergedRandom[0];\\n    float v = mergedRandom[1];\\n    float theta = u * 2.0 * PI;\\n    float phi = acos(2.0 * v - 1.0);\\n    float sinTheta = sin(theta);\\n    float cosTheta = cos(theta);\\n    float sinPhi = sin(phi);\\n    float cosPhi = cos(phi);\\n    return vec3(sinPhi * cosTheta, sinPhi * sinTheta, cosPhi);\\n  }\\n\\n  float computeLAO(vec3 posVC, vec4 normalVC, float originalOpacity) {\\n    // apply LAO only at selected locations, otherwise return full brightness\\n    if (normalVC.w &lt;= 0.0 || originalOpacity &lt;= 0.05) {\\n      return 1.0;\\n    }\\n\\n    #ifdef EnabledGradientOpacity\\n      float gradientOpacityFactor = computeGradientOpacityFactor(normalVC.w, 0);\\n    #endif\\n\\n    float visibilitySum = 0.0;\\n    float weightSum = 0.0;\\n    for (int i = 0; i &lt; volume.kernelSize; i++) {\\n      // Only sample on an hemisphere around the normalVC.xyz axis, so\\n      // normalDotRay should be negative\\n      vec3 rayDirectionVC = sampleDirectionUniform(i);\\n      float normalDotRay = dot(normalVC.xyz, rayDirectionVC);\\n      if (normalDotRay &gt; 0.0) {\\n        // Flip rayDirectionVC when it is in the wrong hemisphere\\n        rayDirectionVC = -rayDirectionVC;\\n        normalDotRay = -normalDotRay;\\n      }\\n\\n      vec3 currPosIS = posVCtoIS(posVC);\\n      float visibility = 1.0;\\n      vec3 randomDirStepIS = vecVCToIS(rayDirectionVC * sampleDistance);\\n      for (int j = 0; j &lt; volume.kernelRadius; j++) {\\n        currPosIS += randomDirStepIS;\\n        // If out of the volume, we are done\\n        if (any(lessThan(currPosIS, vec3(0.0))) ||\\n            any(greaterThan(currPosIS, vec3(1.0)))) {\\n          break;\\n        }\\n        float opacity = getOpacityFromTexture(getTextureValue(currPosIS).r, 0, 0.5);\\n        #ifdef EnabledGradientOpacity\\n          opacity *= gradientOpacityFactor;\\n        #endif\\n        visibility *= 1.0 - opacity;\\n        // If visibility is less than EPSILON, consider it to be 0\\n        if (visibility &lt; EPSILON) {\\n          visibility = 0.0;\\n          break;\\n        }\\n      }\\n      float rayWeight = -normalDotRay;\\n      visibilitySum += visibility * rayWeight;\\n      weightSum += rayWeight;\\n    }\\n\\n    // If no sample, LAO factor is one\\n    if (weightSum == 0.0) {\\n      return 1.0;\\n    }\\n\\n    // LAO factor is the average visibility:\\n    // - visibility low =&gt; ambient low\\n    // - visibility high =&gt; ambient high\\n    float lao = visibilitySum / weightSum;\\n\\n    // Reduce variance by clamping\\n    return clamp(lao, 0.3, 1.0);\\n  }\\n#endif\\n\\n//=======================================================================\\n// Volume shadows\\n#if vtkNumberOfLights &gt; 0\\n\\n  // Non-memoised version\\n  float computeVolumeShadowWithoutCache(vec3 posVC, vec3 lightDirNormVC) {\\n    // modify sample distance with a random number between 1.5 and 3.0\\n    float rayStepLength =\\n        volumeShadowSampleDistance * mix(1.5, 3.0, fragmentSeed);\\n\\n    // in case the first sample near surface has a very tiled light ray, we need\\n    // to offset start position\\n    vec3 initialPosVC = posVC + rayStepLength * lightDirNormVC;\\n\\n    #ifdef vtkClippingPlanesOn\\n      float clippingPlanesMaxDistance = infinity;\\n      for (int i = 0; i &lt; clip_numPlanes; ++i) {\\n        // Find distance of intersection with the plane\\n        // Points are clipped when:\\n        // dot(planeOrigin - (rayOrigin + distance * rayDirection), planeNormal) &gt; 0\\n        // This is equivalent to:\\n        // dot(planeOrigin - rayOrigin, planeNormal) - distance * dot(rayDirection,\\n        // planeNormal) &gt; 0.0\\n        // We precompute the dot products, so we clip ray points when:\\n        // dotOrigin - distance * dotDirection &gt; 0.0\\n        float dotOrigin =\\n            dot(vClipPlaneOrigins[i] - initialPosVC, vClipPlaneNormals[i]);\\n        if (dotOrigin &gt; 0.0) {\\n          // The initialPosVC is clipped by this plane\\n          return 1.0;\\n        }\\n        float dotDirection = dot(lightDirNormVC, vClipPlaneNormals[i]);\\n        if (dotDirection &lt; 0.0) {\\n          // We only hit the plane if dotDirection is negative, as (distance is\\n          // positive)\\n          float intersectionDistance =\\n              dotOrigin / dotDirection; // negative divided by negative =&gt; positive\\n          clippingPlanesMaxDistance =\\n              min(clippingPlanesMaxDistance, intersectionDistance);\\n        }\\n      }\\n    #endif\\n\\n    vec2 intersectionDistances =\\n        rayIntersectVolumeDistances(initialPosVC, lightDirNormVC);\\n\\n    if (intersectionDistances[1] &lt;= intersectionDistances[0] ||\\n        intersectionDistances[1] &lt;= 0.0) {\\n      // Volume not hit or behind the ray\\n      return 1.0;\\n    }\\n\\n    // When globalIlluminationReach is 0, no sample at all\\n    // When globalIlluminationReach is 1, the ray will go through the whole\\n    // volume\\n    float maxTravelDistance = mix(0.0, volume.diagonalLength,\\n                                  volume.globalIlluminationReach);\\n    float startDistance = max(intersectionDistances[0], 0.0);\\n    float endDistance = min(intersectionDistances[1], startDistance + maxTravelDistance);\\n    #ifdef vtkClippingPlanesOn\\n      endDistance = min(endDistance, clippingPlanesMaxDistance);\\n    #endif\\n    if (endDistance - startDistance &lt; 0.0) {\\n      return 1.0;\\n    }\\n\\n    // These two variables are used to compute posIS, without having to call\\n    // VCtoIS at each step\\n    vec3 initialPosIS = posVCtoIS(initialPosVC);\\n    // The light dir is scaled and rotated, but not translated, as it is a\\n    // vector (w = 0)\\n    vec3 scaledLightDirIS = vecVCToIS(lightDirNormVC);\\n\\n    float shadow = 1.0;\\n    for (float currentDistance = startDistance; currentDistance &lt;= endDistance;\\n          currentDistance += rayStepLength) {\\n      vec3 posIS = initialPosIS + currentDistance * scaledLightDirIS;\\n      vec4 scalar = getTextureValue(posIS);\\n      float opacity = getOpacityFromTexture(scalar.r, 0, 0.5);\\n      #if defined(EnabledGradientOpacity) &amp;&amp; !defined(EnabledIndependentComponents)\\n        vec3 scalarInterp[2];\\n        vec4 normal = computeNormalForDensity(posIS, scalarInterp, 3);\\n        float opacityFactor = computeGradientOpacityFactor(normal.w, 0);\\n        opacity *= opacityFactor;\\n      #endif\\n      shadow *= 1.0 - opacity;\\n\\n      // Early termination if shadow coeff is near 0.0\\n      if (shadow &lt; EPSILON) {\\n        return 0.0;\\n      }\\n    }\\n    return shadow;\\n  }\\n\\n  // Some cache for volume shadows\\n  struct {\\n    vec3 posVC;\\n    float shadow;\\n  } cachedShadows[vtkNumberOfLights];\\n\\n  // Memoised version\\n  float computeVolumeShadow(vec3 posVC, vec3 lightDirNormVC, int lightIdx) {\\n    if (posVC == cachedShadows[lightIdx].posVC) {\\n      return cachedShadows[lightIdx].shadow;\\n    }\\n    float shadow = computeVolumeShadowWithoutCache(posVC, lightDirNormVC);\\n    cachedShadows[lightIdx].posVC = posVC;\\n    cachedShadows[lightIdx].shadow = shadow;\\n    return shadow;\\n  }\\n\\n#endif\\n\\n//=======================================================================\\n// surface light contribution\\n#if vtkNumberOfLights &gt; 0\\n  vec3 applyLighting(vec3 tColor, vec4 normalVC) {\\n    vec3 diffuse = vec3(0.0, 0.0, 0.0);\\n    vec3 specular = vec3(0.0, 0.0, 0.0);\\n    for (int lightIdx = 0; lightIdx &lt; vtkNumberOfLights; lightIdx++) {\\n      float df = dot(normalVC.xyz, lights[lightIdx].directionVC);\\n      if (df &gt; 0.0) {\\n        diffuse += df * lights[lightIdx].color;\\n        float sf = dot(normalVC.xyz, -lights[lightIdx].halfAngleVC);\\n        if (sf &gt; 0.0) {\\n          specular += pow(sf, volume.specularPower) * lights[lightIdx].color;\\n        }\\n      }\\n    }\\n    return tColor * (diffuse * volume.diffuse + volume.ambient) +\\n          specular * volume.specular;\\n  }\\n\\n  vec3 applySurfaceShadowLighting(vec3 tColor, float alpha, vec3 posVC,\\n                                  vec4 normalVC) {\\n    // everything in VC\\n    vec3 diffuse = vec3(0.0);\\n    vec3 specular = vec3(0.0);\\n    for (int ligthIdx = 0; ligthIdx &lt; vtkNumberOfLights; ligthIdx++) {\\n      vec3 vertLightDirection;\\n      float attenuation;\\n      if (lights[ligthIdx].isPositional == 1) {\\n        vertLightDirection = posVC - lights[ligthIdx].positionVC;\\n        float lightDistance = length(vertLightDirection);\\n        // Normalize with precomputed length\\n        vertLightDirection = vertLightDirection / lightDistance;\\n        // Base attenuation\\n        vec3 attenuationPolynom = lights[ligthIdx].attenuation;\\n        attenuation =\\n            1.0 / (attenuationPolynom[0] +\\n                  lightDistance * (attenuationPolynom[1] +\\n                                    lightDistance * attenuationPolynom[2]));\\n        // Cone attenuation\\n        float coneDot = dot(vertLightDirection, lights[ligthIdx].directionVC);\\n        // Per OpenGL standard cone angle is 90 or less for a spot light\\n        if (lights[ligthIdx].coneAngle &lt;= 90.0) {\\n          if (coneDot &gt;= cos(radians(lights[ligthIdx].coneAngle))) {\\n            // Inside the cone\\n            attenuation *= pow(coneDot, lights[ligthIdx].exponent);\\n          } else {\\n            // Outside the cone\\n            attenuation = 0.0;\\n          }\\n        }\\n      } else {\\n        vertLightDirection = lights[ligthIdx].directionVC;\\n        attenuation = 1.0;\\n      }\\n\\n      float ndotL = dot(normalVC.xyz, vertLightDirection);\\n      if (ndotL &lt; 0.0 &amp;&amp; twoSidedLighting == 1) {\\n        ndotL = -ndotL;\\n      }\\n      if (ndotL &gt; 0.0) {\\n        // Diffuse\\n        diffuse += ndotL * attenuation * lights[ligthIdx].color;\\n        // Specular\\n        float vdotR =\\n            dot(-rayDirVC, normalize(vertLightDirection - 2.0 * ndotL * normalVC.xyz));\\n        if (vdotR &gt; 0.0) {\\n          specular += pow(vdotR, volume.specularPower) * attenuation *\\n                      lights[ligthIdx].color;\\n        }\\n      }\\n    }\\n    #if vtkMaxLaoKernelSize &gt; 0\\n      float laoFactor = computeLAO(posVC, normalVC, alpha);\\n    #else\\n      const float laoFactor = 1.0;\\n    #endif\\n    return tColor * (diffuse * volume.diffuse +\\n                    volume.ambient * laoFactor) +\\n          specular * volume.specular;\\n  }\\n\\n  vec3 applyVolumeShadowLighting(vec3 tColor, vec3 posVC) {\\n    // Here we have no effect of cones and no attenuation\\n    vec3 diffuse = vec3(0.0);\\n    for (int lightIdx = 0; lightIdx &lt; vtkNumberOfLights; lightIdx++) {\\n      vec3 lightDirVC = lights[lightIdx].isPositional == 1\\n                            ? normalize(lights[lightIdx].positionVC - posVC)\\n                            : -lights[lightIdx].directionVC;\\n      float shadowCoeff = computeVolumeShadow(posVC, lightDirVC, lightIdx);\\n      float phaseAttenuation = phaseFunction(dot(rayDirVC, lightDirVC));\\n      diffuse += phaseAttenuation * shadowCoeff * lights[lightIdx].color;\\n    }\\n    return tColor * (diffuse * volume.diffuse + volume.ambient);\\n  }\\n#endif\\n\\n// LAO of surface shadows and volume shadows only work with dependent components\\nvec3 applyAllLightning(vec3 tColor, float alpha, vec3 posVC,\\n                       vec4 surfaceNormalVC) {\\n  #if vtkNumberOfLights &gt; 0\\n    // 0 &lt;= volCoeff &lt; EPSILON =&gt; only surface shadows\\n    // EPSILON &lt;= volCoeff &lt; 1 - EPSILON =&gt; mix of surface and volume shadows\\n    // 1 - EPSILON &lt;= volCoeff =&gt; only volume shadows\\n    float volCoeff = volume.volumetricScatteringBlending *\\n                    (1.0 - alpha / 2.0) *\\n                    (1.0 - atan(surfaceNormalVC.w) * INV4PI);\\n\\n    // Compute surface lighting if needed\\n    vec3 surfaceShadedColor = tColor;\\n    #ifdef EnableSurfaceLighting\\n      if (volCoeff &lt; 1.0 - EPSILON) {\\n        surfaceShadedColor =\\n            applySurfaceShadowLighting(tColor, alpha, posVC, surfaceNormalVC);\\n      }\\n    #endif\\n\\n    // Compute volume lighting if needed\\n    vec3 volumeShadedColor = tColor;\\n    #ifdef EnableVolumeLighting\\n      if (volCoeff &gt;= EPSILON) {\\n        volumeShadedColor = applyVolumeShadowLighting(tColor, posVC);\\n      }\\n    #endif\\n\\n    // Return the right mix\\n    if (volCoeff &lt; EPSILON) {\\n      // Surface shadows\\n      return surfaceShadedColor;\\n    }\\n    if (volCoeff &gt;= 1.0 - EPSILON) {\\n      // Volume shadows\\n      return volumeShadedColor;\\n    }\\n    // Mix of surface and volume shadows\\n    return mix(surfaceShadedColor, volumeShadedColor, volCoeff);\\n  #endif\\n  return tColor;\\n}\\n\\nvec4 getColorForLabelOutline() {\\n  vec3 centerPosIS =\\n      fragCoordToIndexSpace(gl_FragCoord); // pos in texture space\\n  vec4 centerValue = getTextureValue(centerPosIS);\\n  bool pixelOnBorder = false;\\n  vec4 tColor = vec4(getColorFromTexture(centerValue.r, 0, 0.5),\\n                     getOpacityFromTexture(centerValue.r, 0, 0.5));\\n\\n  int segmentIndex = int(centerValue.r * 255.0);\\n\\n  // Use texture sampling for outlineThickness\\n  float textureCoordinate = float(segmentIndex - 1) / 1024.0;\\n  float textureValue =\\n      texture2D(labelOutlineThicknessTexture, vec2(textureCoordinate, 0.5)).r;\\n  int actualThickness = int(textureValue * 255.0);\\n\\n  // If it is the background (segment index 0), we should quickly bail out.\\n  // Previously, this was determined by tColor.a, which was incorrect as it\\n  // prevented the outline from appearing when the fill is 0.\\n  if (segmentIndex == 0) {\\n    return vec4(0, 0, 0, 0);\\n  }\\n\\n  // Only perform outline check on fragments rendering voxels that aren&#x27;t\\n  // invisible. Saves a bunch of needless checks on the background.\\n  // TODO define epsilon when building shader?\\n  for (int i = -actualThickness; i &lt;= actualThickness; i++) {\\n    for (int j = -actualThickness; j &lt;= actualThickness; j++) {\\n      if (i == 0 &amp;&amp; j == 0) {\\n        continue;\\n      }\\n\\n      vec4 neighborPixelCoord =\\n          vec4(gl_FragCoord.x + float(i), gl_FragCoord.y + float(j),\\n               gl_FragCoord.z, gl_FragCoord.w);\\n\\n      vec3 neighborPosIS = fragCoordToIndexSpace(neighborPixelCoord);\\n      vec4 value = getTextureValue(neighborPosIS);\\n\\n      // If any of my neighbours are not the same value as I\\n      // am, this means I am on the border of the segment.\\n      // We can break the loops\\n      if (any(notEqual(value, centerValue))) {\\n        pixelOnBorder = true;\\n        break;\\n      }\\n    }\\n\\n    if (pixelOnBorder == true) {\\n      break;\\n    }\\n  }\\n\\n  // If I am on the border, I am displayed at full opacity\\n  if (pixelOnBorder == true) {\\n    tColor.a = volume.outlineOpacity;\\n  }\\n\\n  return tColor;\\n}\\n\\nvec4 getColorForAdditivePreset(vec4 tValue, vec3 posVC, vec3 posIS) {\\n  // compute normals\\n  mat4 normalMat = computeMat4Normal(posIS, tValue);\\n  vec4 normalLights[2];\\n  normalLights[0] = normalMat[0];\\n  normalLights[1] = normalMat[1];\\n  #if vtkNumberOfLights &gt; 0\\n    if (volume.computeNormalFromOpacity == 1) {\\n      for (int component = 0; component &lt; 2; ++component) {\\n        vec3 scalarInterp[2];\\n        float height = volume.transferFunctionsSampleHeight[component];\\n        computeNormalForDensity(posIS, scalarInterp, component);\\n        normalLights[component] =\\n            computeDensityNormal(scalarInterp, height, 1.0, component);\\n      }\\n    }\\n  #endif\\n\\n  // compute opacities\\n  float opacities[2];\\n  opacities[0] = getOpacityFromTexture(\\n      tValue[0], 0, volume.transferFunctionsSampleHeight[0]);\\n  opacities[1] = getOpacityFromTexture(\\n      tValue[1], 1, volume.transferFunctionsSampleHeight[1]);\\n  #ifdef EnabledGradientOpacity\\n    for (int component = 0; component &lt; 2; ++component) {\\n      opacities[component] *=\\n          computeGradientOpacityFactor(normalMat[component].a, component);\\n    }\\n  #endif\\n  float opacitySum = opacities[0] + opacities[1];\\n  if (opacitySum &lt;= 0.0) {\\n    return vec4(0.0);\\n  }\\n\\n  // mix the colors and opacities\\n  vec3 colors[2];\\n  for (int component = 0; component &lt; 2; ++component) {\\n    float sampleHeight = volume.transferFunctionsSampleHeight[component];\\n    vec3 color = getColorFromTexture(tValue[component], component, sampleHeight);\\n    color = applyAllLightning(color, opacities[component], posVC,\\n                              normalLights[component]);\\n    colors[component] = color;\\n  }\\n  vec3 mixedColor =\\n      (opacities[0] * colors[0] + opacities[1] * colors[1]) / opacitySum;\\n  return vec4(mixedColor, min(1.0, opacitySum));\\n}\\n\\nvec4 getColorForColorizePreset(vec4 tValue, vec3 posVC, vec3 posIS) {\\n  // compute normals\\n  mat4 normalMat = computeMat4Normal(posIS, tValue);\\n  vec4 normalLight = normalMat[0];\\n  #if vtkNumberOfLights &gt; 0\\n    if (volume.computeNormalFromOpacity == 1) {\\n      vec3 scalarInterp[2];\\n      float height = volume.transferFunctionsSampleHeight[0];\\n      computeNormalForDensity(posIS, scalarInterp, 0);\\n      normalLight = computeDensityNormal(scalarInterp, height, 1.0, 0);\\n    }\\n  #endif\\n\\n  // compute opacities\\n  float opacity = getOpacityFromTexture(\\n      tValue[0], 0, volume.transferFunctionsSampleHeight[0]);\\n  #ifdef EnabledGradientOpacity\\n    opacity *= computeGradientOpacityFactor(normalMat[0].a, 0);\\n  #endif\\n\\n  // colorizing component\\n  vec3 colorizingColor = getColorFromTexture(\\n      tValue[0], 1, volume.transferFunctionsSampleHeight[1]);\\n  float colorizingOpacity = getOpacityFromTexture(\\n      tValue[1], 1, volume.transferFunctionsSampleHeight[1]);\\n\\n  // mix the colors and opacities\\n  vec3 color =\\n      getColorFromTexture(tValue[0], 0,\\n                          volume.transferFunctionsSampleHeight[0]) *\\n      mix(vec3(1.0), colorizingColor, colorizingOpacity);\\n  color = applyAllLightning(color, opacity, posVC, normalLight);\\n  return vec4(color, opacity);\\n}\\n\\nvec4 getColorForDefaultIndependentPreset(vec4 tValue, vec3 posIS) {\\n\\n  // compute the normal vectors as needed\\n  #if defined(EnabledGradientOpacity) || vtkNumberOfLights &gt; 0\\n    mat4 normalMat = computeMat4Normal(posIS, tValue);\\n  #endif\\n\\n  // process color and opacity for each component\\n  // initial value of alpha is determined by wether the first component is\\n  // proportional or not\\n  #if defined(vtkComponent0Proportional)\\n    // when it is proportional, it starts at 1 (neutral for multiplications)\\n    float alpha = 1.0;\\n  #else\\n    // when it is not proportional, it starts at 0 (neutral for additions)\\n    float alpha = 0.0;\\n  #endif\\n\\n  vec3 mixedColor = vec3(0.0);\\n  #if vtkNumberOfComponents &gt; 0\\n    {\\n      const int component = 0;\\n      vec3 color = getColorFromTexture(\\n          tValue[component], component,\\n          volume.transferFunctionsSampleHeight[component]);\\n      float opacity = getOpacityFromTexture(\\n          tValue[component], component,\\n          volume.transferFunctionsSampleHeight[component]);\\n      #if !defined(vtkComponent0Proportional)\\n        float alphaContribution = volume.independentComponentMix[component] * opacity;\\n        #ifdef EnabledGradientOpacity\\n          alphaContribution *= computeGradientOpacityFactor(normalMat[component].a, component);\\n        #endif\\n        alpha += alphaContribution;\\n        #if vtkNumberOfLights &gt; 0\\n          color = applyLighting(color, normalMat[component]);\\n        #endif\\n      #else\\n        color *= opacity;\\n        alpha *= mix(opacity, 1.0,\\n                    (1.0 - volume.independentComponentMix[component]));\\n      #endif\\n      mixedColor += volume.independentComponentMix[component] * color;\\n    }\\n  #endif\\n  #if vtkNumberOfComponents &gt; 1\\n    {\\n      const int component = 1;\\n      vec3 color = getColorFromTexture(\\n          tValue[component], component,\\n          volume.transferFunctionsSampleHeight[component]);\\n      float opacity = getOpacityFromTexture(\\n          tValue[component], component,\\n          volume.transferFunctionsSampleHeight[component]);\\n      #if !defined(vtkComponent1Proportional)\\n        float alphaContribution = volume.independentComponentMix[component] * opacity;\\n        #ifdef EnabledGradientOpacity\\n          alphaContribution *= computeGradientOpacityFactor(normalMat[component].a, component);\\n        #endif\\n        alpha += alphaContribution;\\n        #if vtkNumberOfLights &gt; 0\\n          color = applyLighting(color, normalMat[component]);\\n        #endif\\n      #else\\n        color *= opacity;\\n        alpha *= mix(opacity, 1.0,\\n                    (1.0 - volume.independentComponentMix[component]));\\n      #endif\\n      mixedColor += volume.independentComponentMix[component] * color;\\n    }\\n  #endif\\n  #if vtkNumberOfComponents &gt; 2\\n    {\\n      const int component = 2;\\n      vec3 color = getColorFromTexture(\\n          tValue[component], component,\\n          volume.transferFunctionsSampleHeight[component]);\\n      float opacity = getOpacityFromTexture(\\n          tValue[component], component,\\n          volume.transferFunctionsSampleHeight[component]);\\n      #if !defined(vtkComponent2Proportional)\\n        float alphaContribution = volume.independentComponentMix[component] * opacity;\\n        #ifdef EnabledGradientOpacity\\n          alphaContribution *= computeGradientOpacityFactor(normalMat[component].a, component);\\n        #endif\\n        alpha += alphaContribution;\\n        #if vtkNumberOfLights &gt; 0\\n          color = applyLighting(color, normalMat[component]);\\n        #endif\\n      #else\\n        color *= opacity;\\n        alpha *= mix(opacity, 1.0,\\n                    (1.0 - volume.independentComponentMix[component]));\\n      #endif\\n      mixedColor += volume.independentComponentMix[component] * color;\\n    }\\n  #endif\\n  #if vtkNumberOfComponents &gt; 3\\n    {\\n      const int component = 3;\\n      vec3 color = getColorFromTexture(\\n          tValue[component], component,\\n          volume.transferFunctionsSampleHeight[component]);\\n      float opacity = getOpacityFromTexture(\\n          tValue[component], component,\\n          volume.transferFunctionsSampleHeight[component]);\\n      #if !defined(vtkComponent3Proportional)\\n        float alphaContribution = volume.independentComponentMix[component] * opacity;\\n        #ifdef EnabledGradientOpacity\\n          alphaContribution *= computeGradientOpacityFactor(normalMat[component].a, component);\\n        #endif\\n        alpha += alphaContribution;\\n        #if vtkNumberOfLights &gt; 0\\n          color = applyLighting(color, normalMat[component]);\\n        #endif\\n      #else\\n        color *= opacity;\\n        alpha *= mix(opacity, 1.0,\\n                    (1.0 - volume.independentComponentMix[component]));\\n      #endif\\n      mixedColor += volume.independentComponentMix[component] * color;\\n    }\\n  #endif\\n\\n  return vec4(mixedColor, alpha);\\n}\\n\\nvec4 getColorForDependentComponents(vec4 tValue, vec3 posVC, vec3 posIS) {\\n  #if defined(EnabledGradientOpacity) || vtkNumberOfLights &gt; 0\\n    // use component 3 of the opacity texture as getTextureValue() sets alpha to\\n    // the opacity value\\n    vec3 scalarInterp[2];\\n    vec4 normal0 = computeNormalForDensity(posIS, scalarInterp, 3);\\n    float gradientOpacity = computeGradientOpacityFactor(normal0.a, 0);\\n  #endif\\n\\n  // get color and opacity\\n  #if vtkNumberOfComponents == 1\\n    vec3 tColor = getColorFromTexture(tValue.r, 0, 0.5);\\n    float alpha = getOpacityFromTexture(tValue.r, 0, 0.5);\\n  #endif\\n  #if vtkNumberOfComponents == 2\\n    vec3 tColor = vec3(tValue.r * volume.colorTextureScale[0] +\\n                  volume.colorTextureShift[0]);\\n    float alpha = getOpacityFromTexture(tValue.a, 1, 0.5);\\n  #endif\\n  #if vtkNumberOfComponents == 3\\n      vec3 tColor = tValue.rgb * volume.colorTextureScale.rgb +\\n              volume.colorTextureShift.rgb;\\n      float alpha = getOpacityFromTexture(tValue.a, 0, 0.5);\\n  #endif\\n  #if vtkNumberOfComponents == 4\\n      vec3 tColor = tValue.rgb * volume.colorTextureScale.rgb +\\n              volume.colorTextureShift.rgb;\\n      float alpha = getOpacityFromTexture(tValue.a, 3, 0.5);\\n  #endif\\n\\n  // Apply gradient opacity\\n  #if defined(EnabledGradientOpacity)\\n    alpha *= gradientOpacity;\\n  #endif\\n\\n  #if vtkNumberOfComponents == 1\\n    if (alpha &lt; EPSILON) {\\n      return vec4(0.0);\\n    }\\n  #endif\\n\\n  // lighting\\n  #if vtkNumberOfLights &gt; 0\\n    vec4 normalLight;\\n    if (volume.computeNormalFromOpacity == 1) {\\n      if (normal0[3] != 0.0) {\\n        normalLight =\\n            computeDensityNormal(scalarInterp, 0.5, gradientOpacity, 0);\\n        if (normalLight[3] == 0.0) {\\n          normalLight = normal0;\\n        }\\n      }\\n    } else {\\n      normalLight = normal0;\\n    }\\n    tColor = applyAllLightning(tColor, alpha, posVC, normalLight);\\n  #endif\\n\\n  return vec4(tColor, alpha);\\n}\\n\\nvec4 getColorForValue(vec4 tValue, vec3 posVC, vec3 posIS) {\\n  #ifdef EnableColorForValueFunctionId0\\n    return getColorForDependentComponents(tValue, posVC, posIS);\\n  #endif\\n\\n  #ifdef EnableColorForValueFunctionId1\\n    return getColorForAdditivePreset(tValue, posVC, posIS);\\n  #endif\\n\\n  #ifdef EnableColorForValueFunctionId2\\n    return getColorForColorizePreset(tValue, posVC, posIS);\\n  #endif\\n\\n  #ifdef EnableColorForValueFunctionId3\\n    /*\\n      * Mix the color information from all the independent components to get a\\n      * single rgba output. See other shader functions like\\n      * `getColorForAdditivePreset` to learn how to create a custom color mix.\\n      * The custom color mix should return a value, but if it doesn&#x27;t, it will\\n      * fallback on the default shading\\n      */\\n    //VTK::CustomColorMix\\n  #endif\\n\\n  #if defined(EnableColorForValueFunctionId4) || defined(EnableColorForValueFunctionId3)\\n    return getColorForDefaultIndependentPreset(tValue, posIS);\\n  #endif\\n\\n  #ifdef EnableColorForValueFunctionId5\\n    return getColorForLabelOutline();\\n  #endif\\n}\\n\\nbool valueWithinScalarRange(vec4 val) {\\n  #if vtkNumberOfComponents &gt; 1 &amp;&amp; !defined(EnabledIndependentComponents)\\n    return false;\\n  #endif\\n  vec4 rangeMin = volume.ipScalarRangeMin;\\n  vec4 rangeMax = volume.ipScalarRangeMax;\\n  for (int component = 0; component &lt; vtkNumberOfComponents; ++component) {\\n    if (val[component] &lt; rangeMin[component] ||\\n        rangeMax[component] &lt; val[component]) {\\n      return false;\\n    }\\n  }\\n  return true;\\n}\\n\\n#if vtkBlendMode == LABELMAP_EDGE_PROJECTION_BLEND\\n  bool checkOnEdgeForNeighbor(int xFragmentOffset, int yFragmentOffset,\\n                              int segmentIndex, vec3 stepIS) {\\n    vec3 volumeDimensions = vec3(volume.dimensions);\\n    vec4 neighborPixelCoord = vec4(gl_FragCoord.x + float(xFragmentOffset),\\n                                  gl_FragCoord.y + float(yFragmentOffset),\\n                                  gl_FragCoord.z, gl_FragCoord.w);\\n    vec3 originalNeighborPosIS = fragCoordToIndexSpace(neighborPixelCoord);\\n\\n    vec3 neighborPosIS = originalNeighborPosIS;\\n    for (int k = 0; k &lt; vtkMaximumNumberOfSamples / 2; ++k) {\\n      ivec3 texCoord = ivec3(neighborPosIS * volumeDimensions);\\n      vec4 texValue = rawFetchTexture(texCoord);\\n      if (int(texValue.g) == segmentIndex) {\\n        // not on edge\\n        return false;\\n      }\\n      neighborPosIS += stepIS;\\n    }\\n\\n    neighborPosIS = originalNeighborPosIS;\\n    for (int k = 0; k &lt; vtkMaximumNumberOfSamples / 2; ++k) {\\n      ivec3 texCoord = ivec3(neighborPosIS * volumeDimensions);\\n      vec4 texValue = rawFetchTexture(texCoord);\\n      if (int(texValue.g) == segmentIndex) {\\n        // not on edge\\n        return false;\\n      }\\n      neighborPosIS -= stepIS;\\n    }\\n\\n    // onedge\\n    float sampleHeight = volume.transferFunctionsSampleHeight[1];\\n    vec3 tColorSegment =\\n        getColorFromTexture(float(segmentIndex), 1, sampleHeight);\\n    float pwfValueSegment =\\n        getOpacityFromTexture(float(segmentIndex), 1, sampleHeight);\\n    gl_FragData[0] = vec4(tColorSegment, pwfValueSegment);\\n    return true;\\n  }\\n#endif\\n\\nvec4 getColorAtPos(vec3 posVC) {\\n  vec3 posIS = posVCtoIS(posVC);\\n  vec4 texValue = getTextureValue(posIS);\\n  return getColorForValue(texValue, posVC, posIS);\\n}\\n\\n//=======================================================================\\n// Apply the specified blend mode operation along the ray&#x27;s path.\\n//\\nvoid applyBlend(vec3 rayOriginVC, vec3 rayDirVC, float minDistance,\\n                float maxDistance) {\\n  // start slightly inside and apply some jitter\\n  vec3 stepVC = rayDirVC * sampleDistance;\\n  float raySteps = (maxDistance - minDistance) / sampleDistance;\\n\\n  // Avoid 0.0 jitter\\n  float jitter = 0.01 + 0.99 * fragmentSeed;\\n\\n  #if vtkBlendMode == COMPOSITE_BLEND\\n    // now map through opacity and color\\n    vec3 firstPosVC = rayOriginVC + minDistance * rayDirVC;\\n    vec4 firstColor = getColorAtPos(firstPosVC);\\n\\n    // handle very thin volumes\\n    if (raySteps &lt;= 1.0) {\\n      firstColor.a = 1.0 - pow(1.0 - firstColor.a, raySteps);\\n      gl_FragData[0] = firstColor;\\n      return;\\n    }\\n\\n    // first color only counts for `jitter` factor of the step\\n    firstColor.a = 1.0 - pow(1.0 - firstColor.a, jitter);\\n    vec4 color = vec4(firstColor.rgb * firstColor.a, firstColor.a);\\n    vec3 posVC = firstPosVC + jitter * stepVC;\\n    float stepsTraveled = jitter;\\n\\n    for (int i = 0; i &lt; vtkMaximumNumberOfSamples; ++i) {\\n      // If we have reached the last step, break\\n      if (stepsTraveled + 1.0 &gt;= raySteps) {\\n        break;\\n      }\\n      vec4 tColor = getColorAtPos(posVC);\\n\\n      color = color + vec4(tColor.rgb * tColor.a, tColor.a) * (1.0 - color.a);\\n      stepsTraveled++;\\n      posVC += stepVC;\\n      if (color.a &gt; 0.99) {\\n        color.a = 1.0;\\n        break;\\n      }\\n    }\\n\\n    if (color.a &lt; 0.99 &amp;&amp; (raySteps - stepsTraveled) &gt; 0.0) {\\n      vec3 endPosVC = rayOriginVC + maxDistance * rayDirVC;\\n      vec4 tColor = getColorAtPos(endPosVC);\\n      tColor.a = 1.0 - pow(1.0 - tColor.a, raySteps - stepsTraveled);\\n\\n      float mix = (1.0 - color.a);\\n      color = color + vec4(tColor.rgb * tColor.a, tColor.a) * mix;\\n    }\\n\\n    gl_FragData[0] = vec4(color.rgb / color.a, color.a);\\n  #endif\\n\\n  #if vtkBlendMode == MAXIMUM_INTENSITY_BLEND ||                                 \\\\\\n      vtkBlendMode == MINIMUM_INTENSITY_BLEND\\n    // Find maximum/minimum intensity along the ray.\\n\\n    // Define the operation we will use (min or max)\\n    #if vtkBlendMode == MAXIMUM_INTENSITY_BLEND\\n      #define OP max\\n    #else\\n      #define OP min\\n    #endif\\n\\n    vec3 posVC = rayOriginVC + minDistance * rayDirVC;\\n    float stepsTraveled = 0.0;\\n\\n    // Find a value to initialize the selected variables\\n    vec4 selectedValue;\\n    vec3 selectedPosVC;\\n    vec3 selectedPosIS;\\n    {\\n      vec3 posIS = posVCtoIS(posVC);\\n      selectedValue = getTextureValue(posIS);\\n      selectedPosVC = posVC;\\n      selectedPosIS = posIS;\\n    }\\n\\n    // If the clipping range is shorter than the sample distance\\n    // we can skip the sampling loop along the ray.\\n    if (raySteps &lt;= 1.0) {\\n      gl_FragData[0] = getColorForValue(selectedValue, selectedPosVC, selectedPosIS);\\n      return;\\n    }\\n\\n    posVC += jitter * stepVC;\\n    stepsTraveled += jitter;\\n\\n    // Sample along the ray until vtkMaximumNumberOfSamples,\\n    // ending slightly inside the total distance\\n    for (int i = 0; i &lt; vtkMaximumNumberOfSamples; ++i) {\\n      // If we have reached the last step, break\\n      if (stepsTraveled + 1.0 &gt;= raySteps) {\\n        break;\\n      }\\n\\n      // Get selected values\\n      vec3 posIS = posVCtoIS(posVC);\\n      vec4 previousSelectedValue = selectedValue;\\n      vec4 currentValue = getTextureValue(posIS);\\n      selectedValue = OP(selectedValue, currentValue);\\n      if (previousSelectedValue != selectedValue) {\\n        selectedPosVC = posVC;\\n        selectedPosIS = posIS;\\n      }\\n\\n      // Otherwise, continue along the ray\\n      stepsTraveled++;\\n      posVC += stepVC;\\n    }\\n\\n    // Perform the last step along the ray using the\\n    // residual distance\\n    posVC = rayOriginVC + maxDistance * rayDirVC;\\n    {\\n      vec3 posIS = posVCtoIS(posVC);\\n      vec4 previousSelectedValue = selectedValue;\\n      vec4 currentValue = getTextureValue(posIS);\\n      selectedValue = OP(selectedValue, currentValue);\\n      if (previousSelectedValue != selectedValue) {\\n        selectedPosVC = posVC;\\n        selectedPosIS = posIS;\\n      }\\n    }\\n\\n    gl_FragData[0] = getColorForValue(selectedValue, selectedPosVC, selectedPosIS);\\n  #endif\\n\\n  #if vtkBlendMode == ADDITIVE_INTENSITY_BLEND ||                                \\\\\\n      vtkBlendMode == AVERAGE_INTENSITY_BLEND\\n    vec4 sum = vec4(0.);\\n    #if vtkBlendMode == AVERAGE_INTENSITY_BLEND\\n      float totalWeight = 0.0;\\n    #endif\\n    vec3 posVC = rayOriginVC + minDistance * rayDirVC;\\n    float stepsTraveled = 0.0;\\n\\n    vec3 posIS = posVCtoIS(posVC);\\n    vec4 value = getTextureValue(posIS);\\n\\n    if (raySteps &lt;= 1.0) {\\n      gl_FragData[0] = getColorForValue(value * raySteps, posVC, posIS);\\n      return;\\n    }\\n\\n    if (valueWithinScalarRange(value)) {\\n      sum += value * jitter;\\n      #if vtkBlendMode == AVERAGE_INTENSITY_BLEND\\n        totalWeight += jitter;\\n      #endif\\n    }\\n    posVC += jitter * stepVC;\\n    stepsTraveled += jitter;\\n\\n    // Sample along the ray until vtkMaximumNumberOfSamples,\\n    // ending slightly inside the total distance\\n    for (int i = 0; i &lt; vtkMaximumNumberOfSamples; ++i) {\\n      // If we have reached the last step, break\\n      if (stepsTraveled + 1.0 &gt;= raySteps) {\\n        break;\\n      }\\n\\n      posIS = posVCtoIS(posVC);\\n      value = getTextureValue(posIS);\\n      // One can control the scalar range by setting the AverageIPScalarRange to\\n      // disregard scalar values, not in the range of interest, from the average\\n      // computation. Notes:\\n      // - We are comparing all values in the texture to see if any of them\\n      //   are outside of the scalar range. In the future we might want to allow\\n      //   scalar ranges for each component.\\n      if (valueWithinScalarRange(value)) {\\n        sum += value;\\n        #if vtkBlendMode == AVERAGE_INTENSITY_BLEND\\n          totalWeight++;\\n        #endif\\n      }\\n\\n      stepsTraveled++;\\n      posVC += stepVC;\\n    }\\n\\n    // Perform the last step along the ray using the\\n    // residual distance\\n    posVC = rayOriginVC + maxDistance * rayDirVC;\\n    posIS = posVCtoIS(posVC);\\n    value = getTextureValue(posIS);\\n    if (valueWithinScalarRange(value)) {\\n      sum += value;\\n      #if vtkBlendMode == AVERAGE_INTENSITY_BLEND\\n        totalWeight += raySteps - stepsTraveled;\\n      #endif\\n    }\\n\\n    #if vtkBlendMode == AVERAGE_INTENSITY_BLEND\\n      sum /= vec4(totalWeight, totalWeight, totalWeight, 1.0);\\n    #endif\\n\\n    gl_FragData[0] = getColorForValue(sum, posVC, posIS);\\n  #endif\\n\\n  #if vtkBlendMode == RADON_TRANSFORM_BLEND\\n    float normalizedRayIntensity = 1.0;\\n    vec3 posVC = rayOriginVC + minDistance * rayDirVC;\\n    float stepsTraveled = 0.0;\\n\\n    // handle very thin volumes\\n    if (raySteps &lt;= 1.0) {\\n      vec3 posIS = posVCtoIS(posVC);\\n      vec4 tValue = getTextureValue(posIS);\\n      normalizedRayIntensity -= raySteps * sampleDistance *\\n                                getOpacityFromTexture(tValue.r, 0, 0.5);\\n      gl_FragData[0] =\\n          vec4(getColorFromTexture(normalizedRayIntensity, 0, 0.5), 1.0);\\n      return;\\n    }\\n\\n    posVC += jitter * stepVC;\\n    stepsTraveled += jitter;\\n\\n    for (int i = 0; i &lt; vtkMaximumNumberOfSamples; ++i) {\\n      if (stepsTraveled + 1.0 &gt;= raySteps) {\\n        break;\\n      }\\n\\n      vec3 posIS = posVCtoIS(posVC);\\n      vec4 value = getTextureValue(posIS);\\n      // Convert scalar value to normalizedRayIntensity coefficient and\\n      // accumulate normalizedRayIntensity\\n      normalizedRayIntensity -=\\n          sampleDistance * getOpacityFromTexture(value.r, 0, 0.5);\\n\\n      posVC += stepVC;\\n      stepsTraveled++;\\n    }\\n\\n    // map normalizedRayIntensity to color\\n    gl_FragData[0] =\\n        vec4(getColorFromTexture(normalizedRayIntensity, 0, 0.5), 1.0);\\n  #endif\\n\\n  #if vtkBlendMode == LABELMAP_EDGE_PROJECTION_BLEND\\n    // Only works with a single volume\\n    vec3 posVC = rayOriginVC + minDistance * rayDirVC;\\n    float stepsTraveled = 0.0;\\n    vec3 posIS = posVCtoIS(posVC);\\n    vec4 tValue = getTextureValue(posIS);\\n    if (raySteps &lt;= 1.0) {\\n      gl_FragData[0] = getColorForValue(tValue, posVC, posIS);\\n      return;\\n    }\\n\\n    vec3 stepIS = vecVCToIS(stepVC);\\n    vec4 value = tValue;\\n    posIS += jitter * stepIS;\\n    stepsTraveled += jitter;\\n    vec3 maxPosIS = posIS; // Store the position of the max value\\n    int segmentIndex = int(value.g);\\n    bool originalPosHasSeenNonZero = false;\\n\\n    if (segmentIndex != 0) {\\n      // Tried using the segment index in an boolean array but reading\\n      // from the array by dynamic indexing was horrondously slow\\n      // so use bit masking instead and assign 1 to the bit corresponding to the\\n      // segment index and later check if the bit is set via bit operations\\n      setLabelOutlineBit(segmentIndex);\\n    }\\n\\n    // Sample along the ray until vtkMaximumNumberOfSamples,\\n    // ending slightly inside the total distance\\n    for (int i = 0; i &lt; vtkMaximumNumberOfSamples; ++i) {\\n      // If we have reached the last step, break\\n      if (stepsTraveled + 1.0 &gt;= raySteps) {\\n        break;\\n      }\\n\\n      // compute the scalar\\n      tValue = getTextureValue(posIS);\\n      segmentIndex = int(tValue.g);\\n\\n      if (segmentIndex != 0) {\\n        originalPosHasSeenNonZero = true;\\n        setLabelOutlineBit(segmentIndex);\\n      }\\n\\n      if (tValue.r &gt; value.r) {\\n        value = tValue;   // Update the max value\\n        maxPosIS = posIS; // Update the position where max occurred\\n      }\\n\\n      // Otherwise, continue along the ray\\n      stepsTraveled++;\\n      posIS += stepIS;\\n    }\\n\\n    // Perform the last step along the ray using the\\n    // residual distance\\n    posIS = posVCtoIS(rayOriginVC + maxDistance * rayDirVC);\\n    tValue = getTextureValue(posIS);\\n\\n    if (tValue.r &gt; value.r) {\\n      value = tValue;   // Update the max value\\n      maxPosIS = posIS; // Update the position where max occurred\\n    }\\n\\n    // If we have not seen any non-zero segments, we can return early\\n    // and grab color from the actual center value first component (image)\\n    if (!originalPosHasSeenNonZero) {\\n      vec3 maxPosVC = posIStoVC(maxPosIS);\\n      gl_FragData[0] = getColorForValue(value, maxPosVC, maxPosIS);\\n      return;\\n    }\\n\\n    vec3 neighborRayStepsIS = stepIS;\\n    float neighborRaySteps = raySteps;\\n    bool shouldLookInAllNeighbors = false;\\n\\n    vec3 volumeSpacings = volume.spacing;\\n    float minVoxelSpacing =\\n        min(volumeSpacings[0], min(volumeSpacings[1], volumeSpacings[2]));\\n    vec4 base =\\n        vec4(gl_FragCoord.x, gl_FragCoord.y, gl_FragCoord.z, gl_FragCoord.w);\\n\\n    vec4 baseXPlus = vec4(gl_FragCoord.x + 1.0, gl_FragCoord.y, gl_FragCoord.z,\\n                          gl_FragCoord.w);\\n    vec4 baseYPlus = vec4(gl_FragCoord.x, gl_FragCoord.y + 1.0, gl_FragCoord.z,\\n                          gl_FragCoord.w);\\n\\n    vec3 baseWorld = fragCoordToWorld(base);\\n    vec3 baseXPlusWorld = fragCoordToWorld(baseXPlus);\\n    vec3 baseYPlusWorld = fragCoordToWorld(baseYPlus);\\n\\n    float XPlusDiff = length(baseXPlusWorld - baseWorld);\\n    float YPlusDiff = length(baseYPlusWorld - baseWorld);\\n\\n    float minFragSpacingWorld = min(XPlusDiff, YPlusDiff);\\n\\n    for (int s = 1; s &lt; MAX_SEGMENT_INDEX; s++) {\\n      // bail out quickly if the segment index has not\\n      // been seen by the center segment\\n      if (!isLabelOutlineBitSet(s)) {\\n        continue;\\n      }\\n\\n      // Use texture sampling for outlineThickness so that we can have\\n      // per segment thickness\\n      float textureCoordinate = float(s - 1) / 1024.0;\\n      float textureValue =\\n          texture2D(labelOutlineThicknessTexture, vec2(textureCoordinate, 0.5)).r;\\n\\n      int actualThickness = int(textureValue * 255.0);\\n\\n      // check the extreme points in the neighborhood since there is a better\\n      // chance of finding the edge there, so that we can bail out\\n      // faster if we find the edge\\n      bool onEdge = checkOnEdgeForNeighbor(-actualThickness, -actualThickness, s,\\n                                          stepIS) ||\\n                    checkOnEdgeForNeighbor(actualThickness, actualThickness, s,\\n                                          stepIS) ||\\n                    checkOnEdgeForNeighbor(actualThickness, -actualThickness, s,\\n                                          stepIS) ||\\n                    checkOnEdgeForNeighbor(-actualThickness, +actualThickness, s,\\n                                          stepIS);\\n\\n      if (onEdge) {\\n        return;\\n      }\\n\\n      // since the next step is computationally expensive, we need to perform\\n      // some optimizations to avoid it if possible. One of the optimizations\\n      // is to check the whether the minimum of the voxel spacing is greater than\\n      // the 2 * the thickness of the outline segment. If that is the case\\n      // then we can safely skip the next step since we can be sure that the\\n      // the previous 4 checks on the extreme points would caught the entirety\\n      // of the all the fragments inside. i.e., this happens when we zoom out,\\n      if (minVoxelSpacing &gt;\\n          (2.0 * float(actualThickness) - 1.0) * minFragSpacingWorld) {\\n        continue;\\n      }\\n\\n      // Loop through the rest, skipping the processed extremes and the center\\n      for (int i = -actualThickness; i &lt;= actualThickness; i++) {\\n        for (int j = -actualThickness; j &lt;= actualThickness; j++) {\\n          if (i == 0 &amp;&amp; j == 0)\\n            continue; // Skip the center\\n          if (abs(i) == actualThickness &amp;&amp; abs(j) == actualThickness)\\n            continue; // Skip corners\\n          if (checkOnEdgeForNeighbor(i, j, s, stepIS)) {\\n            return;\\n          }\\n        }\\n      }\\n    }\\n\\n    float sampleHeight = volume.transferFunctionsSampleHeight[0];\\n    vec3 tColor0 = getColorFromTexture(value.r, 0, sampleHeight);\\n    float pwfValue0 = getOpacityFromTexture(value.r, 0, sampleHeight);\\n    gl_FragData[0] = vec4(tColor0, pwfValue0);\\n  #endif\\n}\\n\\n//=======================================================================\\n// given a\\n// - ray direction (rayDir)\\n// - starting point (vertexVCVSOutput)\\n// - bounding planes of the volume\\n// - optionally depth buffer values\\n// - far clipping plane\\n// compute the start/end distances of the ray we need to cast\\nvec2 computeRayDistances(vec3 rayOriginVC, vec3 rayDirVC) {\\n  vec2 dists = rayIntersectVolumeDistances(rayOriginVC, rayDirVC);\\n\\n  //VTK::ClipPlane::Impl\\n\\n  // do not go behind front clipping plane\\n  dists.x = max(0.0, dists.x);\\n\\n  // do not go PAST far clipping plane\\n  float farDist = -camThick / rayDirVC.z;\\n  dists.y = min(farDist, dists.y);\\n\\n  // Do not go past the zbuffer value if set\\n  // This is used for intermixing opaque geometry\\n  //VTK::ZBuffer::Impl\\n\\n  return dists;\\n}\\n\\nfloat getFragmentSeed() {\\n  // This first noise has a diagonal pattern\\n  float firstNoise =\\n      fract(sin(dot(gl_FragCoord.xy, vec2(12.9898, 78.233))) * 43758.5453);\\n  // This second noise is made out of blocks of CPU generated noise\\n  float secondNoise = texture2D(jtexture, gl_FragCoord.xy / 32.0).r;\\n  // Combine the two sources of noise in a way that the distribution is uniform\\n  // in [0,1[\\n  float noiseSum = firstNoise + secondNoise;\\n  return noiseSum &lt; 1.0 ? noiseSum : noiseSum - 1.0;\\n}\\n\\nvoid main() {\\n  fragmentSeed = getFragmentSeed();\\n\\n  if (cameraParallel == 1) {\\n    // Camera is parallel, so the rayDir is just the direction of the camera.\\n    rayDirVC = vec3(0.0, 0.0, -1.0);\\n  } else {\\n    // camera is at 0,0,0 so rayDir for perspective is just the vc coord\\n    rayDirVC = normalize(vertexVCVSOutput);\\n  }\\n\\n  vec3 rayOriginVC = vertexVCVSOutput;\\n  vec2 rayStartEndDistancesVC = computeRayDistances(rayOriginVC, rayDirVC);\\n  if (rayStartEndDistancesVC[1] &lt;= rayStartEndDistancesVC[0] ||\\n      rayStartEndDistancesVC[1] &lt;= 0.0) {\\n    // Volume not hit or behind the ray\\n    discard;\\n  }\\n\\n  // Perform the blending operation along the ray\\n  applyBlend(rayOriginVC, rayDirVC, rayStartEndDistancesVC[0], rayStartEndDistancesVC[1]);\\n}\\n&quot;,e.Geometry=&quot;&quot;},e.replaceShaderValues=(e,n,r)=&gt;{let o=e.Fragment;o=vd.substitute(o,&quot;//VTK::EnabledColorFunctions&quot;,`#define EnableColorForValueFunctionId${t.previousState.colorForValueFunctionId}`).result;const a=[];t.previousState.surfaceLightingEnabled&amp;&amp;a.push(&quot;Surface&quot;),t.previousState.volumeLightingEnabled&amp;&amp;a.push(&quot;Volume&quot;),o=vd.substitute(o,&quot;//VTK::EnabledLightings&quot;,a.map((e=&gt;`#define Enable${e}Lighting`))).result,t.previousState.multiTexturePerVolumeEnabled&amp;&amp;(o=vd.substitute(o,&quot;//VTK::EnabledMultiTexturePerVolume&quot;,&quot;#define EnabledMultiTexturePerVolume&quot;).result),t.previousState.useIndependentComponents&amp;&amp;(o=vd.substitute(o,&quot;//VTK::EnabledIndependentComponents&quot;,&quot;#define EnabledIndependentComponents&quot;).result),t.previousState.gradientOpacityEnabled&amp;&amp;(o=vd.substitute(o,&quot;//VTK::EnabledGradientOpacity&quot;,&quot;#define EnabledGradientOpacity&quot;).result),o=vd.substitute(o,&quot;//VTK::vtkProportionalComponents&quot;,t.previousState.proportionalComponents.map((e=&gt;`#define vtkComponent${e}Proportional`)).join(&quot;\\n&quot;)).result,o=vd.substitute(o,&quot;//VTK::vtkForceNearestComponents&quot;,t.previousState.forceNearestComponents.map((e=&gt;`#define vtkComponent${e}ForceNearest`)).join(&quot;\\n&quot;)).result,t.previousState.hasZBufferTexture&amp;&amp;(o=vd.substitute(o,&quot;//VTK::ZBuffer::Dec&quot;,[&quot;uniform sampler2D zBufferTexture;&quot;,&quot;uniform float vpZWidth;&quot;,&quot;uniform float vpZHeight;&quot;]).result,o=vd.substitute(o,&quot;//VTK::ZBuffer::Impl&quot;,[&quot;vec4 depthVec = texture2D(zBufferTexture, vec2(gl_FragCoord.x / vpZWidth, gl_FragCoord.y/vpZHeight));&quot;,&quot;float zdepth = (depthVec.r*256.0 + depthVec.g)/257.0;&quot;,&quot;zdepth = zdepth * 2.0 - 1.0;&quot;,&quot;if (cameraParallel == 0) {&quot;,&quot;zdepth = -2.0 * camFar * camNear / (zdepth*(camFar-camNear)-(camFar+camNear)) - camNear;}&quot;,&quot;else {&quot;,&quot;zdepth = (zdepth + 1.0) * 0.5 * (camFar - camNear);}\\n&quot;,&quot;zdepth = -zdepth/rayDirVC.z;&quot;,&quot;dists.y = min(zdepth,dists.y);&quot;]).result),o=vd.substitute(o,&quot;//VTK::BlendMode&quot;,`${t.previousState.blendMode}`).result,o=vd.substitute(o,&quot;//VTK::NumberOfLights&quot;,`${t.previousState.numberOfLights}`).result,o=vd.substitute(o,&quot;//VTK::MaxLaoKernelSize&quot;,`${t.previousState.maxLaoKernelSize}`).result,o=vd.substitute(o,&quot;//VTK::NumberOfComponents&quot;,`${t.previousState.numberOfComponents}`).result,o=vd.substitute(o,&quot;//VTK::MaximumNumberOfSamples&quot;,`${t.previousState.maximumNumberOfSamples}`).result,e.Fragment=o;const i=t.previousState.numberOfClippingPlanes;i&gt;0&amp;&amp;(o=vd.substitute(o,&quot;//VTK::ClipPlane::Dec&quot;,[&quot;uniform vec3 vClipPlaneNormals[6];&quot;,&quot;uniform float vClipPlaneDistances[6];&quot;,&quot;uniform vec3 vClipPlaneOrigins[6];&quot;,&quot;uniform int clip_numPlanes;&quot;,&quot;//VTK::ClipPlane::Dec&quot;,&quot;#define vtkClippingPlanesOn&quot;],!1).result,o=vd.substitute(o,&quot;//VTK::ClipPlane::Impl&quot;,[`for(int i = 0; i &lt; ${i}; i++) {`,&quot;  float rayDirRatio = dot(rayDirVC, vClipPlaneNormals[i]);&quot;,&quot;  float equationResult = dot(vertexVCVSOutput, vClipPlaneNormals[i]) + vClipPlaneDistances[i];&quot;,&quot;  if (rayDirRatio == 0.0)&quot;,&quot;  {&quot;,&quot;    if (equationResult &lt; 0.0) dists.x = dists.y;&quot;,&quot;    continue;&quot;,&quot;  }&quot;,&quot;  float result = -1.0 * equationResult / rayDirRatio;&quot;,&quot;  if (rayDirRatio &lt; 0.0) dists.y = min(dists.y, result);&quot;,&quot;  else dists.x = max(dists.x, result);&quot;,&quot;}&quot;,&quot;//VTK::ClipPlane::Impl&quot;],!1).result),e.Fragment=o},e.getNeedToRebuildShaders=(r,o,a)=&gt;{const i=!!t.zBufferTexture,s=t.currentValidInputs.length,l=t.numberOfLights,c=t.numberOfComponents,u=t.useIndependentComponents,d=a.getProperties(),p=t.currentValidInputs[0],f=d[p.inputIndex],g=s&gt;1,m=p.imageData.getBounds(),h=Hi.getDiagonalLength(m),v=Math.ceil(h/e.getCurrentSampleDistance(o));v&gt;t.renderable.getMaximumSamplesPerRay()&amp;&amp;Tg(`The number of steps required ${v} is larger than the specified maximum number of steps ${t.renderable.getMaximumSamplesPerRay()}.\\nPlease either change the volumeMapper sampleDistance or its maximum number of samples.`);const T=u?c:1;let x=!1;for(let e=0;e&lt;T;++e)if(f.getUseGradientOpacity(e)){x=!0;break}let y=0;const b=f.getLAOKernelSize();b&gt;y&amp;&amp;f.getLocalAmbientOcclusion()&amp;&amp;f.getAmbient()&gt;0&amp;&amp;(y=b);const A=t.renderable.getClippingPlanes().length,C=t.renderable.getViewSpecificProperties().OpenGL?.ShaderReplacements,S=t.currentRenderPass?.getShaderReplacement(),P=t.renderable.getBlendMode(),w=(()=&gt;{if(P!==hg.LABELMAP_EDGE_PROJECTION_BLEND&amp;&amp;n(f))return 5;if(u)switch(f.getColorMixPreset()){case gg.ADDITIVE:return 1;case gg.COLORIZE:return 2;case gg.CUSTOM:return 3;default:return 4}return 0})(),I=f.getVolumetricScatteringBlending()&lt;1,O=f.getVolumetricScatteringBlending()&gt;0;let R=!1;for(let e=0;e&lt;c;++e)if(f.getForceNearestInterpolation(e)){R=!0;break}const M=[],D=[];for(let e=0;e&lt;c;e++)f.getOpacityMode(e)===fg.PROPORTIONAL&amp;&amp;M.push(e),f.getForceNearestInterpolation(e)&amp;&amp;D.push(e);const E={numberOfComponents:c,useIndependentComponents:u,proportionalComponents:M,forceNearestComponents:D,blendMode:P,numberOfLights:l,numberOfValidInputs:s,maximumNumberOfSamples:v,hasZBufferTexture:i,maxLaoKernelSize:y,numberOfClippingPlanes:A,mapperShaderReplacements:C,renderPassShaderReplacements:S,colorForValueFunctionId:w,surfaceLightingEnabled:I,volumeLightingEnabled:O,forceNearestInterpolationEnabled:R,multiTexturePerVolumeEnabled:g,gradientOpacityEnabled:x};return(0===r.getProgram()?.getHandle()||!t.previousState||!xe(t.previousState,E))&amp;&amp;(t.previousState=E,!0)},e.updateShaders=(n,r,o)=&gt;{if(e.getNeedToRebuildShaders(n,r,o)){const a={Vertex:null,Fragment:null,Geometry:null};e.buildShaders(a,r,o);const i=t._openGLRenderWindow.getShaderCache().readyShaderProgramArray(a.Vertex,a.Fragment,a.Geometry);i!==n.getProgram()&amp;&amp;(n.setProgram(i),n.getVAO().releaseGraphicsResources()),n.getShaderSourceTime().modified()}else t._openGLRenderWindow.getShaderCache().readyShaderProgram(n.getProgram());n.getVAO().bind(),e.setMapperShaderParameters(n,r,o),e.setCameraShaderParameters(n,r,o),e.setPropertyShaderParameters(n,r,o),e.getClippingPlaneShaderParameters(n,r,o)},e.setMapperShaderParameters=(n,r,o)=&gt;{const a=n.getProgram();n.getCABO().getElementCount()&amp;&amp;(t.VBOBuildTime.getMTime()&gt;n.getAttributeUpdateTime().getMTime()||n.getShaderSourceTime().getMTime()&gt;n.getAttributeUpdateTime().getMTime())&amp;&amp;(a.isAttributeUsed(&quot;vertexDC&quot;)&amp;&amp;(n.getVAO().addAttributeArray(a,n.getCABO(),&quot;vertexDC&quot;,n.getCABO().getVertexOffset(),n.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE)||xg(&quot;Error setting vertexDC in shader VAO.&quot;)),n.getAttributeUpdateTime().modified());const i=e.getCurrentSampleDistance(r);a.setUniformf(&quot;sampleDistance&quot;,i);const s=i*t.renderable.getVolumeShadowSamplingDistFactor();a.setUniformf(&quot;volumeShadowSampleDistance&quot;,s),t.scalarTextures.forEach(((e,t)=&gt;{a.setUniformi(`volumeTexture[${t}]`,e.getTextureUnit())}));const l=o.getProperties()[t.currentValidInputs[0].inputIndex].getIpScalarRange(),c=new Float32Array(4),u=new Float32Array(4),d=(e,t,n)=&gt;{t?.dataComputedScale?.length&amp;&amp;(c[e]=l[0]*t.dataComputedScale[n]+t.dataComputedOffset[n],u[e]=l[1]*t.dataComputedScale[n]+t.dataComputedOffset[n],c[e]=(c[e]-t.offset[n])/t.scale[n],u[e]=(u[e]-t.offset[n])/t.scale[n])};if(t.previousState.multiTexturePerVolumeEnabled)t.scalarTextures.forEach(((e,t)=&gt;{const n=e.getVolumeInfo();d(t,n,0)}));else{const e=t.scalarTextures[0].getVolumeInfo();for(let t=0;t&lt;4;++t)d(t,e,t)}const p=&quot;volume&quot;;if(a.setUniform4f(`${p}.ipScalarRangeMin`,c[0],c[1],c[2],c[3]),a.setUniform4f(`${p}.ipScalarRangeMax`,u[0],u[1],u[2],u[3]),null!==t.zBufferTexture){a.setUniformi(&quot;zBufferTexture&quot;,t.zBufferTexture.getTextureUnit());const e=t._useSmallViewport?[t._smallViewportWidth,t._smallViewportHeight]:t._openGLRenderWindow.getFramebufferSize();a.setUniformf(&quot;vpZWidth&quot;,e[0]),a.setUniformf(&quot;vpZHeight&quot;,e[1])}},e.setCameraShaderParameters=(r,o,a)=&gt;{const{idxToView:i,vecISToVCMatrix:s,modelToView:l,projectionToView:c,projectionToWorld:u}=yg,f=t.openGLCamera.getKeyMatrices(o),g=t.openGLVolume.getKeyMatrices();A(l,f.wcvc,g.mcwc);const m=r.getProgram(),h=t.openGLCamera.getRenderable(),v=h.getParallelProjection(),T=h.getClippingRange();m.setUniformf(&quot;camThick&quot;,T[1]-T[0]),m.setUniformf(&quot;camNear&quot;,T[0]),m.setUniformf(&quot;camFar&quot;,T[1]),m.setUniformi(&quot;cameraParallel&quot;,v);const x=t.currentValidInputs[0],y=x.imageData.getBounds(),C=Hi.getCorners(y,[]).map((e=&gt;{if(oe(e,e,l),!v){$(e,e,-T[0]/(e[2]*X(e)))}return oe(e,e,f.vcpc),e})),S=Hi.addPoints([...Hi.INIT_BOUNDS],C);m.setUniformf(&quot;dcxmin&quot;,S[0]),m.setUniformf(&quot;dcxmax&quot;,S[1]),m.setUniformf(&quot;dcymin&quot;,S[2]),m.setUniformf(&quot;dcymax&quot;,S[3]);const P=e.getRenderTargetSize();m.setUniformf(&quot;vpWidth&quot;,P[0]),m.setUniformf(&quot;vpHeight&quot;,P[1]);const w=e.getRenderTargetOffset();m.setUniformf(&quot;vpOffsetX&quot;,w[0]/P[0]),m.setUniformf(&quot;vpOffsetY&quot;,w[1]/P[1]),b(c,f.vcpc),m.setUniformMatrix(&quot;PCVCMatrix&quot;,c),m.setUniformi(&quot;twoSidedLighting&quot;,o.getTwoSidedLighting());const I=new Array(2*t.previousState.maxLaoKernelSize);for(let e=0;e&lt;t.previousState.maxLaoKernelSize;e++)I[2*e]=Math.random(),I[2*e+1]=Math.random();if(m.setUniform2fv(&quot;kernelSample&quot;,I),t.numberOfLights&gt;0){let e=0;o.getLights().forEach((t=&gt;{if(t.getSwitch()&gt;0){const n=`lights[${e}]`,r=$([],t.getColor(),t.getIntensity());m.setUniform3fv(`${n}.color`,r);const o=t.getTransformedPosition();oe(o,o,l),m.setUniform3fv(`${n}.positionVC`,o);const a=[...t.getDirection()];ae(a,a,f.normalMatrix),te(a,a),m.setUniform3fv(`${n}.directionVC`,a);const i=[-.5*a[0],-.5*a[1],-.5*(a[2]-1)];m.setUniform3fv(`${n}.halfAngleVC`,i);const s=t.getAttenuationValues();m.setUniform3fv(`${n}.attenuation`,s);const c=t.getExponent();m.setUniformf(`${n}.exponent`,c);const u=t.getConeAngle();m.setUniformf(`${n}.coneAngle`,u);const d=t.getPositional();m.setUniformi(`${n}.isPositional`,d),e++}}))}const O=&quot;volume&quot;,R=a.getProperties()[x.inputIndex],M=x.imageData,D=M.getSpatialExtent(),E=M.getSpacing(),V=M.getDimensions(),L=M.getIndexToWorld(),B=M.getWorldToIndex(),F=M.getDirectionByReference();A(i,l,L),m.setUniform3fv(`${O}.spacing`,E);const N=ee([],E);m.setUniform3fv(`${O}.inverseSpacing`,N),m.setUniform3iv(`${O}.dimensions`,V),m.setUniform3fv(`${O}.inverseDimensions`,ee([],V)),m.setUniformMatrix(`${O}.worldToIndex`,B),s.fill(0);const k=Q(new Float64Array(3),V,E);s[0]=k[0],s[4]=k[1],s[8]=k[2],p(s,F,s),p(s,g.normalMatrix,s),p(s,f.normalMatrix,s),m.setUniformMatrix3x3(`${O}.vecISToVCMatrix`,s),m.setUniformMatrix3x3(`${O}.vecVCToISMatrix`,d(new Float32Array(9),s));const G=q(D[0],D[2],D[4]),U=oe(new Float64Array(3),G,i);m.setUniform3fv(`${O}.originVC`,U);const _=X(k);if(m.setUniformf(`${O}.diagonalLength`,_),n(R)){const e=h.getDistance();h.setClippingRange(e,e+.1);b(u,t.openGLCamera.getKeyMatrices(o).wcpc),h.setClippingRange(T[0],T[1]),t.openGLCamera.getKeyMatrices(o),m.setUniformMatrix(`${O}.PCWCMatrix`,u)}if(R.getVolumetricScatteringBlending()&gt;0&amp;&amp;(m.setUniformf(`${O}.globalIlluminationReach`,R.getGlobalIlluminationReach()),m.setUniformf(`${O}.volumetricScatteringBlending`,R.getVolumetricScatteringBlending()),m.setUniformf(`${O}.anisotropy`,R.getAnisotropy()),m.setUniformf(`${O}.anisotropySquared`,R.getAnisotropy()**2)),R.getLocalAmbientOcclusion()&amp;&amp;R.getAmbient()&gt;0){const e=R.getLAOKernelSize();m.setUniformi(`${O}.kernelSize`,e);const t=R.getLAOKernelRadius();m.setUniformi(`${O}.kernelRadius`,t)}else m.setUniformi(`${O}.kernelSize`,0)},e.setPropertyShaderParameters=(e,n,r)=&gt;{const o=e.getProgram();o.setUniformi(&quot;jtexture&quot;,t.jitterTexture.getTextureUnit());const a=r.getProperties();o.setUniformi(&quot;labelOutlineThicknessTexture&quot;,t.labelOutlineThicknessTexture.getTextureUnit()),o.setUniformi(&quot;opacityTexture&quot;,t.opacityTexture.getTextureUnit()),o.setUniformi(&quot;colorTexture&quot;,t.colorTexture.getTextureUnit());const i=&quot;volume&quot;,s=a[t.currentValidInputs[0].inputIndex],l=t.previousState.numberOfComponents,c=t.previousState.useIndependentComponents;if(c){const e=new Float32Array(4);for(let t=0;t&lt;l;t++)e[t]=s.getComponentWeight(t);o.setUniform4fv(`${i}.independentComponentMix`,e);const t=new Float32Array(4),n=1/l;for(let e=0;e&lt;l;++e)t[e]=(e+.5)*n;o.setUniform4fv(`${i}.transferFunctionsSampleHeight`,t)}const u=t.colorForValueFunctionId;o.setUniformi(`${i}.colorForValueFunctionId`,u);const d=s.getComputeNormalFromOpacity();o.setUniformi(`${i}.computeNormalFromOpacity`,d);const p=new Float32Array(4),f=new Float32Array(4),g=new Float32Array(4),m=new Float32Array(4);for(let e=0;e&lt;l;e++){const n=t.previousState.multiTexturePerVolumeEnabled,r=n?e:0,o=n?0:e,a=t.scalarTextures[r].getVolumeInfo(),i=c?e:0,l=a.scale[o],u=s.getRGBTransferFunction(i).getRange();p[e]=l/(u[1]-u[0]),f[e]=(a.offset[o]-u[0])/(u[1]-u[0]);const d=s.getScalarOpacity(i).getRange();g[e]=l/(d[1]-d[0]),m[e]=(a.offset[o]-d[0])/(d[1]-d[0])}if(o.setUniform4fv(`${i}.colorTextureScale`,p),o.setUniform4fv(`${i}.colorTextureShift`,f),o.setUniform4fv(`${i}.opacityTextureScale`,g),o.setUniform4fv(`${i}.opacityTextureShift`,m),t.previousState.gradientOpacityEnabled){const e=new Array(4),n=new Array(4),r=new Array(4),a=new Array(4);if(c)for(let o=0;o&lt;l;++o){const i=t.previousState.multiTexturePerVolumeEnabled,l=i?o:0,c=i?0:o,u=t.scalarTextures[l].getVolumeInfo().scale[c];if(s.getUseGradientOpacity(o)){const t=[s.getGradientOpacityMinimumOpacity(o),s.getGradientOpacityMaximumOpacity(o)],i=[s.getGradientOpacityMinimumValue(o),s.getGradientOpacityMaximumValue(o)];r[o]=t[0],a[o]=t[1],e[o]=u*(t[1]-t[0])/(i[1]-i[0]),n[o]=-i[0]*(t[1]-t[0])/(i[1]-i[0])+t[0]}else r[o]=1,a[o]=1,e[o]=0,n[o]=1}else{const o=l-1,i=t.previousState.multiTexturePerVolumeEnabled,c=i?o:0,u=i?0:o,d=t.scalarTextures[c].getVolumeInfo().scale[u],p=[s.getGradientOpacityMinimumOpacity(0),s.getGradientOpacityMaximumOpacity(0)],f=[s.getGradientOpacityMinimumValue(0),s.getGradientOpacityMaximumValue(0)];r[0]=p[0],a[0]=p[1],e[0]=d*(p[1]-p[0])/(f[1]-f[0]),n[0]=-f[0]*(p[1]-p[0])/(f[1]-f[0])+p[0]}o.setUniform4f(`${i}.gradientOpacityScale`,e),o.setUniform4f(`${i}.gradientOpacityShift`,n),o.setUniform4f(`${i}.gradientOpacityMin`,r),o.setUniform4f(`${i}.gradientOpacityMax`,a)}const h=s.getLabelOutlineOpacity();if(o.setUniformf(`${i}.outlineOpacity`,h),t.numberOfLights&gt;0){o.setUniformf(`${i}.ambient`,s.getAmbient()),o.setUniformf(`${i}.diffuse`,s.getDiffuse()),o.setUniformf(`${i}.specular`,s.getSpecular());const e=s.getSpecularPower();o.setUniformf(`${i}.specularPower`,0===e?1:e)}},e.getClippingPlaneShaderParameters=(e,n,r)=&gt;{if(t.renderable.getClippingPlanes().length&gt;0){const r=t.openGLCamera.getKeyMatrices(n),o=[],a=[],i=[],s=t.renderable.getClippingPlanes(),l=s.length;for(let e=0;e&lt;l;++e){const t=s[e].getNormal(),n=s[e].getOrigin();ae(t,t,r.normalMatrix),oe(n,n,r.wcvc);const l=-1*ne(n,t);o.push(t[0]),o.push(t[1]),o.push(t[2]),a.push(l),i.push(n[0]),i.push(n[1]),i.push(n[2])}const c=e.getProgram();c.setUniform3fv(&quot;vClipPlaneNormals&quot;,o),c.setUniformfv(&quot;vClipPlaneDistances&quot;,a),c.setUniform3fv(&quot;vClipPlaneOrigins&quot;,i),c.setUniformi(&quot;clip_numPlanes&quot;,l)}},e.delete=qt((()=&gt;{t._animationRateSubscription&amp;&amp;(t._animationRateSubscription.unsubscribe(),t._animationRateSubscription=null)}),(()=&gt;{t._openGLRenderWindow&amp;&amp;a(t._openGLRenderWindow)}),e.delete),e.getRenderTargetSize=()=&gt;{if(t._useSmallViewport)return[t._smallViewportWidth,t._smallViewportHeight];const{usize:e,vsize:n}=t._openGLRenderer.getTiledSizeAndOrigin();return[e,n]},e.getRenderTargetOffset=()=&gt;{const{lowerLeftU:e,lowerLeftV:n}=t._openGLRenderer.getTiledSizeAndOrigin();return[e,n]},e.getCurrentSampleDistance=e=&gt;{const n=e.getVTKWindow().getInteractor(),r=t.renderable.getSampleDistance();if(n.isAnimating()){return r*t.renderable.getInteractionSampleDistanceFactor()}return r},e.renderPieceStart=(n,r)=&gt;{const o=n.getVTKWindow().getInteractor();if(t._lastScale||(t._lastScale=t.renderable.getInitialInteractionScale()),t._useSmallViewport=!1,o.isAnimating()&amp;&amp;t._lastScale&gt;1.5&amp;&amp;(t._useSmallViewport=!0),t._animationRateSubscription||(t._animationRateSubscription=o.onAnimationFrameRateUpdate((()=&gt;{if(t.renderable.getAutoAdjustSampleDistances()){const e=o.getRecentAnimationFrameRate(),n=o.getDesiredUpdateRate()/e;(n&gt;1.15||n&lt;.85)&amp;&amp;(t._lastScale*=n),t._lastScale&gt;400&amp;&amp;(t._lastScale=400),t._lastScale&lt;1.5&amp;&amp;(t._lastScale=1.5)}else t._lastScale=t.renderable.getImageSampleDistance()*t.renderable.getImageSampleDistance()}))),t._useSmallViewport){const e=t._openGLRenderWindow.getFramebufferSize(),n=1/Math.sqrt(t._lastScale);if(t._smallViewportWidth=Math.ceil(n*e[0]),t._smallViewportHeight=Math.ceil(n*e[1]),t._smallViewportHeight&gt;e[1]&amp;&amp;(t._smallViewportHeight=e[1]),t._smallViewportWidth&gt;e[0]&amp;&amp;(t._smallViewportWidth=e[0]),t.framebuffer.saveCurrentBindingsAndBuffers(),null===t.framebuffer.getGLFramebuffer())t.framebuffer.create(e[0],e[1]),t.framebuffer.populateFramebuffer();else{const n=t.framebuffer.getSize();n&amp;&amp;n[0]===e[0]&amp;&amp;n[1]===e[1]||(t.framebuffer.create(e[0],e[1]),t.framebuffer.populateFramebuffer())}t.framebuffer.bind();const r=t.context;r.clearColor(0,0,0,0),r.colorMask(!0,!0,!0,!0),r.clear(r.COLOR_BUFFER_BIT),r.viewport(0,0,t._smallViewportWidth,t._smallViewportHeight),t.fvp=[t._smallViewportWidth/e[0],t._smallViewportHeight/e[1]]}t.context.disable(t.context.DEPTH_TEST),e.updateBufferObjects(n,r);const a=r.getProperties();t.currentValidInputs.forEach((({inputIndex:e})=&gt;{const n=a[e].getInterpolationType(),r=t.scalarTextures[e];n===pg.NEAREST?(r.setMinificationFilter(wd.NEAREST),r.setMagnificationFilter(wd.NEAREST)):(r.setMinificationFilter(wd.LINEAR),r.setMagnificationFilter(wd.LINEAR))})),null!==t.zBufferTexture&amp;&amp;t.zBufferTexture.activate()},e.renderPieceDraw=(n,r)=&gt;{const o=t.context,a=[...t.scalarTextures,t.colorTexture,t.opacityTexture,t.labelOutlineThicknessTexture,t.jitterTexture];a.forEach((e=&gt;e.activate())),e.updateShaders(t.tris,n,r),o.drawArrays(o.TRIANGLES,0,t.tris.getCABO().getElementCount()),t.tris.getVAO().release(),a.forEach((e=&gt;e.deactivate()))},e.renderPieceFinish=(e,n)=&gt;{if(null!==t.zBufferTexture&amp;&amp;t.zBufferTexture.deactivate(),t._useSmallViewport){if(t.framebuffer.restorePreviousBindingsAndBuffers(),null===t.copyShader){t.copyShader=t._openGLRenderWindow.getShaderCache().readyShaderProgramArray([&quot;//VTK::System::Dec&quot;,&quot;attribute vec4 vertexDC;&quot;,&quot;uniform vec2 tfactor;&quot;,&quot;varying vec2 tcoord;&quot;,&quot;void main() { tcoord = vec2(vertexDC.x*0.5 + 0.5, vertexDC.y*0.5 + 0.5) * tfactor; gl_Position = vertexDC; }&quot;].join(&quot;\\n&quot;),[&quot;//VTK::System::Dec&quot;,&quot;//VTK::Output::Dec&quot;,&quot;uniform sampler2D texture1;&quot;,&quot;varying vec2 tcoord;&quot;,&quot;void main() { gl_FragData[0] = texture2D(texture1,tcoord); }&quot;].join(&quot;\\n&quot;),&quot;&quot;);const e=t.copyShader;t.copyVAO=yd.newInstance(),t.copyVAO.setOpenGLRenderWindow(t._openGLRenderWindow),t.tris.getCABO().bind(),t.copyVAO.addAttributeArray(e,t.tris.getCABO(),&quot;vertexDC&quot;,t.tris.getCABO().getVertexOffset(),t.tris.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE)||xg(&quot;Error setting vertexDC in copy shader VAO.&quot;)}else t._openGLRenderWindow.getShaderCache().readyShaderProgram(t.copyShader);const e=t._openGLRenderWindow.getFramebufferSize();t.context.viewport(0,0,e[0],e[1]);const n=t.framebuffer.getColorTexture();n.activate(),t.copyShader.setUniformi(&quot;texture&quot;,n.getTextureUnit()),t.copyShader.setUniform2f(&quot;tfactor&quot;,t.fvp[0],t.fvp[1]);const r=t.context;r.blendFuncSeparate(r.ONE,r.ONE_MINUS_SRC_ALPHA,r.ONE,r.ONE_MINUS_SRC_ALPHA),t.context.drawArrays(t.context.TRIANGLES,0,t.tris.getCABO().getElementCount()),n.deactivate(),r.blendFuncSeparate(r.SRC_ALPHA,r.ONE_MINUS_SRC_ALPHA,r.ONE,r.ONE_MINUS_SRC_ALPHA)}},e.renderPiece=(n,r)=&gt;{e.invokeEvent({type:&quot;StartEvent&quot;}),t.renderable.update();const o=t.renderable.getNumberOfInputPorts();t.currentValidInputs=[];for(let e=0;e&lt;o;++e){const n=t.renderable.getInputData(e);n&amp;&amp;!n.isDeleted()&amp;&amp;t.currentValidInputs.push({imageData:n,inputIndex:e})}let a=0;if(t.currentValidInputs.length&gt;0){const e=r.getProperties(),o=t.currentValidInputs[0],i=o.imageData.getPointData().getScalars(),s=e[o.inputIndex];s.getShade()&amp;&amp;t.renderable.getBlendMode()===hg.COMPOSITE_BLEND&amp;&amp;n.getLights().forEach((e=&gt;{e.getSwitch()&gt;0&amp;&amp;a++}));const l=t.currentValidInputs.length,c=l&gt;1;t.numberOfComponents=c?l:i.getNumberOfComponents(),t.useIndependentComponents=function(e,t){const n=e.getIndependentComponents(),r=e.getColorMixPreset();return n&amp;&amp;t&gt;=2||!!r}(s,t.numberOfComponents)}a!==t.numberOfLights&amp;&amp;(t.numberOfLights=a,e.modified()),e.invokeEvent({type:&quot;EndEvent&quot;}),0!==t.currentValidInputs.length&amp;&amp;(e.renderPieceStart(n,r),e.renderPieceDraw(n,r),e.renderPieceFinish(n,r))},e.updateBufferObjects=(t,n)=&gt;{e.getNeedToRebuildBufferObjects(t,n)&amp;&amp;e.buildBufferObjects(t,n)},e.getNeedToRebuildBufferObjects=(n,r)=&gt;t.VBOBuildTime.getMTime()&lt;e.getMTime()||t.VBOBuildTime.getMTime()&lt;r.getMTime()||t.VBOBuildTime.getMTime()&lt;r.getProperty(t.currentValidInputs[0].inputIndex)?.getMTime()||t.VBOBuildTime.getMTime()&lt;t.renderable.getMTime()||t.currentValidInputs.some((({imageData:e})=&gt;t.VBOBuildTime.getMTime()&lt;e.getMTime()))||t.scalarTextures.length!==t.currentValidInputs.length||!t.scalarTextures.every((e=&gt;!!e?.getHandle()))||!t.colorTexture?.getHandle()||!t.opacityTexture?.getHandle()||!t.labelOutlineThicknessTexture?.getHandle()||!t.jitterTexture?.getHandle(),e.buildBufferObjects=(n,r)=&gt;{if(!t.jitterTexture.getHandle()){const e=new Float32Array(1024);for(let t=0;t&lt;1024;++t)e[t]=Math.random();t.jitterTexture.setMinificationFilter(wd.NEAREST),t.jitterTexture.setMagnificationFilter(wd.NEAREST),t.jitterTexture.create2DFromRaw({width:32,height:32,numComps:1,dataType:ms.FLOAT,data:e})}const a=r.getProperties(),i=t.currentValidInputs[0],s=a[i.inputIndex],l=t.numberOfComponents,c=t.useIndependentComponents,u=c?l:1,d=[];for(let e=0;e&lt;u;++e)d.push(s.getScalarOpacity(e));const p=zf(d,c,u),f=s.getScalarOpacity(),g=t._openGLRenderWindow.getGraphicsResourceForObject(f);if(!g?.oglObject?.getHandle()||g.hash!==p){const r=Hd.newInstance();r.setOpenGLRenderWindow(t._openGLRenderWindow);let o=t.renderable.getOpacityTextureWidth();o&lt;=0&amp;&amp;(o=t.context.getParameter(t.context.MAX_TEXTURE_SIZE));const a=2*o*u,i=new Float32Array(a),l=new Float32Array(o);for(let t=0;t&lt;u;++t){const r=s.getScalarOpacity(t),a=e.getCurrentSampleDistance(n)/s.getScalarOpacityUnitDistance(t),c=r.getRange();r.getTable(c[0],c[1],o,l,1);for(let e=0;e&lt;o;++e)i[t*o*2+e]=1-(1-l[e])**a,i[t*o*2+e+o]=i[t*o*2+e]}if(r.resetFormatAndType(),r.setMinificationFilter(wd.LINEAR),r.setMagnificationFilter(wd.LINEAR),t._openGLRenderWindow.getWebgl2()||t.context.getExtension(&quot;OES_texture_float&quot;)&amp;&amp;t.context.getExtension(&quot;OES_texture_float_linear&quot;))r.create2DFromRaw({width:o,height:2*u,numComps:1,dataType:ms.FLOAT,data:i});else{const e=new Uint8ClampedArray(a);for(let t=0;t&lt;a;++t)e[t]=255*i[t];r.create2DFromRaw({width:o,height:2*u,numComps:1,dataType:ms.UNSIGNED_CHAR,data:e})}f&amp;&amp;t._openGLRenderWindow.setGraphicsResourceForObject(f,r,p),t.opacityTexture=r}else t.opacityTexture=g.oglObject;o(t._openGLRenderWindow,t._opacityTextureCore,f),t._opacityTextureCore=f;const m=[];for(let e=0;e&lt;u;++e)m.push(s.getRGBTransferFunction(e));const h=zf(m,c,u),v=s.getRGBTransferFunction(),T=t._openGLRenderWindow.getGraphicsResourceForObject(v);if(!T?.oglObject?.getHandle()||T?.hash!==h){const e=Hd.newInstance();e.setOpenGLRenderWindow(t._openGLRenderWindow);let n=t.renderable.getColorTextureWidth();n&lt;=0&amp;&amp;(n=t.context.getParameter(t.context.MAX_TEXTURE_SIZE));const r=new Uint8ClampedArray(2*n*u*3),o=new Float32Array(3*n);for(let e=0;e&lt;u;++e){const t=s.getRGBTransferFunction(e),a=t.getRange();t.getTable(a[0],a[1],n,o,1);for(let t=0;t&lt;3*n;++t)r[e*n*6+t]=255*o[t],r[e*n*6+t+3*n]=255*o[t]}e.resetFormatAndType(),e.setMinificationFilter(wd.LINEAR),e.setMagnificationFilter(wd.LINEAR),e.create2DFromRaw({width:n,height:2*u,numComps:3,dataType:ms.UNSIGNED_CHAR,data:r}),t._openGLRenderWindow.setGraphicsResourceForObject(v,e,h),t.colorTexture=e}else t.colorTexture=T.oglObject;o(t._openGLRenderWindow,t._colorTextureCore,v),t._colorTextureCore=v,t.currentValidInputs.forEach((({imageData:e,inputIndex:n},r)=&gt;{const i=a[n],s=e.getPointData().getScalars(),l=t._openGLRenderWindow.getGraphicsResourceForObject(s),c=Wf(0,s),u=!l?.oglObject?.getHandle()||l?.hash!==c,d=i.getUpdatedExtents(),p=!!d.length;if(u&amp;&amp;!p){const n=Hd.newInstance();n.setOpenGLRenderWindow(t._openGLRenderWindow);const o=e.getDimensions();n.setOglNorm16Ext(t.context.getExtension(&quot;EXT_texture_norm16&quot;)),n.resetFormatAndType(),n.create3DFilterableFromDataArray({width:o[0],height:o[1],depth:o[2],dataArray:s,preferSizeOverAccuracy:i.getPreferSizeOverAccuracy()}),t._openGLRenderWindow.setGraphicsResourceForObject(s,n,c),t.scalarTextures[r]=n}else t.scalarTextures[r]=l.oglObject;if(p){i.setUpdatedExtents([]);const n=e.getDimensions();t.scalarTextures[r].create3DFilterableFromDataArray({width:n[0],height:n[1],depth:n[2],dataArray:s,updatedExtents:d})}o(t._openGLRenderWindow,t._scalarTexturesCore[r],s),t._scalarTexturesCore[r]=s}));const x=s.getLabelOutlineThickness(),y=t._openGLRenderWindow.getGraphicsResourceForObject(x),b=x.join(&quot;-&quot;);if(!y?.oglObject?.getHandle()||y?.hash!==b){const e=Hd.newInstance();e.setOpenGLRenderWindow(t._openGLRenderWindow);let n=t.renderable.getLabelOutlineTextureWidth();n&lt;=0&amp;&amp;(n=t.context.getParameter(t.context.MAX_TEXTURE_SIZE));const r=1,o=new Uint8Array(n*r);for(let e=0;e&lt;n;++e){const t=void 0!==x[e]?x[e]:x[0];o[e]=t}e.resetFormatAndType(),e.setMinificationFilter(wd.NEAREST),e.setMagnificationFilter(wd.NEAREST),e.create2DFromRaw({width:n,height:r,numComps:1,dataType:ms.UNSIGNED_CHAR,data:o}),x&amp;&amp;t._openGLRenderWindow.setGraphicsResourceForObject(x,e,b),t.labelOutlineThicknessTexture=e}else t.labelOutlineThicknessTexture=y.oglObject;if(o(t._openGLRenderWindow,t._labelOutlineThicknessTextureCore,x),t._labelOutlineThicknessTextureCore=x,!t.tris.getCABO().getElementCount()){const e=new Float32Array(12);for(let t=0;t&lt;4;t++)e[3*t]=t%2*2-1,e[3*t+1]=t&gt;1?1:-1,e[3*t+2]=-1;const n=new Uint16Array(8);n[0]=3,n[1]=0,n[2]=1,n[3]=3,n[4]=3,n[5]=0,n[6]=3,n[7]=2;const r=Is.newInstance({numberOfComponents:3,values:e});r.setName(&quot;points&quot;);const o=Is.newInstance({numberOfComponents:1,values:n});t.tris.getCABO().createVBO(o,&quot;polys&quot;,rs.SURFACE,{points:r,cellOffset:0})}t.VBOBuildTime.modified()}}const Ag={context:null,VBOBuildTime:null,scalarTextures:[],_scalarTexturesCore:[],opacityTexture:null,_opacityTextureCore:null,colorTexture:null,_colorTextureCore:null,labelOutlineThicknessTexture:null,_labelOutlineThicknessTextureCore:null,jitterTexture:null,tris:null,framebuffer:null,copyShader:null,copyVAO:null,lastXYF:1,targetXYF:1,zBufferTexture:null,lastZBufferTexture:null,fullViewportTime:1,idxToView:null,vecISToVCMatrix:null,modelToView:null,projectionToView:null,avgWindowArea:0,avgFrameTime:0};vn(&quot;vtkVolumeMapper&quot;,Xt((function(e,t,n={}){Object.assign(t,Ag,n),pn.extend(e,t,n),qd.implementBuildShadersWithReplacements(e,t,n),t.VBOBuildTime={},Vt(t.VBOBuildTime,{mtime:0}),t.tris=Sd.newInstance(),t.jitterTexture=Hd.newInstance(),t.jitterTexture.setWrapS(Pd.REPEAT),t.jitterTexture.setWrapT(Pd.REPEAT),t.framebuffer=Gp.newInstance(),Gt(e,t,[&quot;context&quot;]),bg(e,t)}),&quot;vtkOpenGLVolumeMapper&quot;));const{vtkDebugMacro:Cg}=ln;const Sg={};vn(&quot;vtkPixelSpaceCallbackMapper&quot;,Xt((function(e,t,n={}){Object.assign(t,Sg,n),pn.extend(e,t,n),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLPixelSpaceCallbackMapper&quot;),e.opaquePass=(n,r)=&gt;{t._openGLRenderer=e.getFirstAncestorOfType(&quot;vtkOpenGLRenderer&quot;),t._openGLRenderWindow=t._openGLRenderer.getLastAncestorOfType(&quot;vtkOpenGLRenderWindow&quot;);const o=t._openGLRenderer.getAspectRatio(),a=t._openGLRenderer?t._openGLRenderer.getRenderable().getActiveCamera():null,i=t._openGLRenderer.getTiledSizeAndOrigin();let s=null;if(t.renderable.getUseZValues()){const e=r.getZBufferTexture(),n=Math.floor(e.getWidth()),o=Math.floor(e.getHeight()),a=t._openGLRenderWindow.getContext();e.bind();const i=r.getFramebuffer();i?i.saveCurrentBindingsAndBuffers():Cg(&quot;No framebuffer to save/restore&quot;);const l=a.createFramebuffer();a.bindFramebuffer(a.FRAMEBUFFER,l),a.framebufferTexture2D(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0,a.TEXTURE_2D,e.getHandle(),0),a.checkFramebufferStatus(a.FRAMEBUFFER)===a.FRAMEBUFFER_COMPLETE&amp;&amp;(s=new Uint8Array(n*o*4),a.viewport(0,0,n,o),a.readPixels(0,0,n,o,a.RGBA,a.UNSIGNED_BYTE,s)),i&amp;&amp;i.restorePreviousBindingsAndBuffers(),a.deleteFramebuffer(l)}t.renderable.invokeCallback(t.renderable.getInputData(),a,o,i,s)},e.queryPass=(e,n)=&gt;{e&amp;&amp;t.renderable.getUseZValues()&amp;&amp;n.requestDepth()}}(e,t)}),&quot;vtkOpenGLPixelSpaceCallbackMapper&quot;));var Pg=&quot;//VTK::System::Dec\\n\\n/*=========================================================================\\n\\n  Program:   Visualization Toolkit\\n  Module:    vtktextureObjectVS.glsl\\n\\n  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n  All rights reserved.\\n  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n\\n     This software is distributed WITHOUT ANY WARRANTY; without even\\n     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n     PURPOSE.  See the above copyright notice for more information.\\n\\n=========================================================================*/\\n\\nattribute vec4 vertexDC;\\nattribute vec2 tcoordDC;\\nvarying vec2 tcoordVC;\\n\\nvoid main()\\n{\\n  tcoordVC = tcoordDC;\\n  gl_Position = vertexDC;\\n}\\n&quot;;const{Representation:wg}=us;function Ig(e,[t,n],r,o){const a=e.getContext(),i=Hd.newInstance({autoParameters:!1,wrapS:o,wrapT:o,minificationFilter:r,magnificationFilter:r,generateMipmap:!1,openGLDataType:a.FLOAT,baseLevel:0,maxLevel:0});return i.setOpenGLRenderWindow(e),i.setInternalFormat(a.RGBA32F),i.create2DFromRaw({width:t,height:n,numComps:4,dataType:&quot;Float32Array&quot;,data:null}),i.activate(),i.sendParameters(),i.deactivate(),i}function Og(e,t){return Ig(e,t,Hd.Filter.NEAREST,Hd.Wrap.CLAMP_TO_EDGE)}function Rg(e,t){var n,r;(t.classHierarchy.push(&quot;vtkLICPingPongBufferManager&quot;),t._openGLRenderWindow)?(t.quad=function(e){const t=Sd.newInstance();t.setOpenGLRenderWindow(e);const n=new Float32Array(12);for(let e=0;e&lt;4;e++)n[3*e]=e%2*2-1,n[3*e+1]=e&gt;1?1:-1,n[3*e+2]=0;const r=new Float32Array([0,0,1,0,0,1,1,1]),o=new Uint16Array(8);o[0]=3,o[1]=0,o[2]=1,o[3]=3,o[4]=3,o[5]=0,o[6]=3,o[7]=2;const a=Is.newInstance({numberOfComponents:3,values:n});a.setName(&quot;points&quot;);const i=Is.newInstance({numberOfComponents:1,values:o}),s=Is.newInstance({numberOfComponents:2,values:r});return t.getCABO().createVBO(i,&quot;polys&quot;,wg.SURFACE,{points:a,cellOffset:0,tcoords:s}),t}(t._openGLRenderWindow),t.context=t._openGLRenderWindow.getContext(),t.licTexture0=Og(t._openGLRenderWindow,t.size),t.seedTexture0=Og(t._openGLRenderWindow,t.size),t.licTexture1=Og(t._openGLRenderWindow,t.size),t.seedTexture1=Og(t._openGLRenderWindow,t.size),t.eeTexture=t.doEEPass?(n=t._openGLRenderWindow,r=t.size,Ig(n,r,Hd.Filter.NEAREST,Hd.Wrap.CLAMP_TO_EDGE)):null,t.imageVectorTexture=t.doVTPass?function(e,t){return Ig(e,t,Hd.Filter.LINEAR,Hd.Wrap.CLAMP_TO_EDGE)}(t._openGLRenderWindow,t.size):null,t.pingTextures[0]=t.licTexture0,t.pingTextures[1]=t.seedTexture0,t.pongTextures[0]=t.licTexture1,t.pongTextures[1]=t.seedTexture1,t.textures[0]=t.pingTextures,t.textures[1]=t.pongTextures,e.swap=()=&gt;{t.readIndex=1-t.readIndex},e.renderQuad=(e,n)=&gt;{const r=t.quad,o=t.context;let a=t.quadVAO;a||(a=yd.newInstance(),a.setOpenGLRenderWindow(t._openGLRenderWindow),t.quadVAO=a),t.previousProgramHash!==n.getMd5Hash()&amp;&amp;(a.shaderProgramChanged(),r.getCABO().bind(),a.addAttributeArray(n,r.getCABO(),&quot;vertexDC&quot;,r.getCABO().getVertexOffset(),r.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE),a.addAttributeArray(n,r.getCABO(),&quot;tcoordDC&quot;,r.getCABO().getTCoordOffset(),r.getCABO().getStride(),t.context.FLOAT,2,t.context.FALSE),t.previousProgramHash=n.getMd5Hash()),o.drawArrays(o.TRIANGLES,0,r.getCABO().getElementCount()),a.release()},e.getLastLICBuffer=()=&gt;0===t.readIndex?t.licTexture0:t.licTexture1,e.getLastSeedBuffer=()=&gt;0===t.readIndex?t.seedTexture0:t.seedTexture1,e.getLICBuffer=()=&gt;1-t.readIndex==0?t.licTexture0:t.licTexture1,e.getSeedBuffer=()=&gt;1-t.readIndex==0?t.seedTexture0:t.seedTexture1,e.getLICTextureUnit=()=&gt;{const e=t.textures[t.readIndex][0];return e.activate(),e.getTextureUnit()},e.getSeedTextureUnit=()=&gt;{const e=t.textures[t.readIndex][1];return e.activate(),e.getTextureUnit()},e.getNoiseTextureUnit=(e=0)=&gt;0===e?(t.noiseTexture.activate(),t.noiseTexture.getTextureUnit()):(t.eeTexture.activate(),t.eeTexture.getTextureUnit()),e.getVectorTextureUnit=()=&gt;(t.vectorTexture.activate(),t.vectorTexture.getTextureUnit()),e.getImageVectorTextureUnit=()=&gt;t.imageVectorTexture?(t.imageVectorTexture.activate(),t.imageVectorTexture.getTextureUnit()):e.getVectorTextureUnit(),e.getMaskVectorTextureUnit=()=&gt;t.maskVectorTexture?(t.maskVectorTexture.activate(),t.maskVectorTexture.getTextureUnit()):e.getImageVectorTextureUnit(),e.clearBuffers=(e=!1)=&gt;{const n=t.framebuffer,r=t.context;n.removeColorBuffer(0),n.removeColorBuffer(1),n.removeColorBuffer(2),n.removeColorBuffer(3),n.setColorBuffer(t.licTexture0,0),n.setColorBuffer(t.seedTexture0,1),n.setColorBuffer(t.licTexture1,2),n.setColorBuffer(t.seedTexture1,3);const o=[r.COLOR_ATTACHMENT0,r.COLOR_ATTACHMENT1,r.COLOR_ATTACHMENT2,r.COLOR_ATTACHMENT3];e&amp;&amp;(n.removeColorBuffer(4),n.setColorBuffer(t.eeTexture,4),o.push(r.COLOR_ATTACHMENT4)),r.drawBuffers(o),r.clearColor(0,1,0,0),r.disable(r.SCISSOR_TEST),r.disable(r.BLEND),r.clear(r.COLOR_BUFFER_BIT),n.removeColorBuffer(0),n.removeColorBuffer(1),n.removeColorBuffer(2),n.removeColorBuffer(3),e&amp;&amp;n.removeColorBuffer(4),r.drawBuffers([r.NONE])},e.clearBuffer=e=&gt;{const n=t.framebuffer,r=t.context;n.removeColorBuffer(0),n.setColorBuffer(e,0),r.drawBuffers([r.COLOR_ATTACHMENT0]),r.clearColor(0,1,0,0),r.disable(r.SCISSOR_TEST),r.disable(r.BLEND),r.clear(r.COLOR_BUFFER_BIT),n.removeColorBuffer(e,0),r.drawBuffers([r.NONE])},e.activateVectorTextures=()=&gt;{t.imageVectorTexture?t.imageVectorTexture.activate():t.vectorTexture.activate(),t.maskVectorTexture&amp;&amp;t.maskVectorTexture.activate()},e.deactivateVectorTextures=()=&gt;{t.imageVectorTexture?t.imageVectorTexture.deactivate():t.vectorTexture.deactivate(),t.maskVectorTexture&amp;&amp;t.maskVectorTexture.deactivate()},e.activateNoiseTexture=(e=0)=&gt;{switch(e){case 0:t.noiseTexture.activate();break;case 1:t.eeTexture.activate();break;default:console.error(&quot;Wrong LIC pass number&quot;)}},e.deactivateNoiseTexture=(e=0)=&gt;{switch(e){case 0:t.noiseTexture.deactivate();break;case 1:t.eeTexture.deactivate();break;default:console.error(&quot;Wrong LIC pass number&quot;)}},e.attachLICBuffers=()=&gt;{const e=t.textures[t.readIndex],n=t.textures[1-t.readIndex],r=t.framebuffer,o=t.context;e[0].activate(),e[1].activate(),r.removeColorBuffer(0),r.removeColorBuffer(1),r.setColorBuffer(n[0],0),r.setColorBuffer(n[1],1),o.drawBuffers([o.COLOR_ATTACHMENT0,o.COLOR_ATTACHMENT1])},e.detachLICBuffers=()=&gt;{const e=t.textures[t.readIndex],n=t.context,r=t.framebuffer;e[0].deactivate(),e[1].deactivate(),r.removeColorBuffer(0),r.removeColorBuffer(1),n.drawBuffers([n.NONE])},e.attachImageVectorBuffer=()=&gt;{const e=t.framebuffer,n=t.context;t.vectorTexture.activate(),e.removeColorBuffer(0),e.setColorBuffer(t.imageVectorTexture,0),n.drawBuffers([n.COLOR_ATTACHMENT0])},e.detachImageVectorBuffer=()=&gt;{const e=t.context,n=t.framebuffer;t.vectorTexture.deactivate(),n.removeColorBuffer(0),e.drawBuffers([e.NONE])},e.attachEEBuffer=()=&gt;{t.textures[t.readIndex][0].activate(),t.framebuffer.removeColorBuffer(0),t.framebuffer.setColorBuffer(t.eeTexture,0);const e=t.context;e.drawBuffers([e.COLOR_ATTACHMENT0])},e.detachEEBuffer=()=&gt;{const e=t.context;t.framebuffer.removeColorBuffer(0),e.drawBuffers([e.NONE]);t.textures[t.readIndex][0].deactivate()},e.detachBuffers=()=&gt;{const e=t.context,n=t.framebuffer;n.removeColorBuffer(0),n.removeColorBuffer(1),e.drawBuffers([e.NONE]);const r=t.textures[t.readIndex],o=t.textures[1-t.readIndex];r[0]&amp;&amp;r[0].deactivate(),r[1]&amp;&amp;r[1].deactivate(),o[0]&amp;&amp;o[0].deactivate(),o[1]&amp;&amp;o[1].deactivate(),t.eeTexture&amp;&amp;t.eeTexture.deactivate(),t.noiseTexture&amp;&amp;t.noiseTexture.deactivate()},e.getWriteIndex=()=&gt;1-t.readIndex,e.detachBuffers()):console.error(&quot;Pass renderwindow to ping pong manager&quot;)}const Mg={vectorTexture:null,maskVectorTexture:null,noiseTexture:null,doEEPass:!1,doVTPass:!1,readIndex:0,quad:null,lastProgramHash:null,framebuffer:null,size:null,pingTextures:[],pongTextures:[],textures:[]};function Dg(e,t,n={}){Object.assign(t,Mg,n),sn.obj(e,t),sn.get(e,t,[&quot;readIndex&quot;]),sn.setGet(e,t,[&quot;doEEPass&quot;,&quot;doVTPass&quot;,&quot;_openGLRenderWindow&quot;,&quot;vectorTexture&quot;,&quot;maskVectorTexture&quot;,&quot;noiseTexture&quot;,&quot;framebuffer&quot;,&quot;size&quot;]),sn.moveToProtected(e,t,[&quot;openGLRenderWindow&quot;]),Rg(e,t)}var Eg={newInstance:sn.newInstance(Dg,&quot;vtkLICPingPongBufferManager&quot;),extend:Dg};const Vg=0,Lg=1,Bg=2,Fg=3,Ng=1;const kg={shadersNeedBuild:!0,stepSize:1,numberOfSteps:10,enhancedLIC:!0,enhanceContrast:!1,lowContrastEnhancementFactor:0,highContrastEnhancementFactor:0,antiAlias:0,componentIds:[0,1],normalizeVectors:!0,maskThreshold:0,transformVectors:!0,bufs:null,isComposite:!0};function Gg(e,t,n={}){Object.assign(t,kg,n),sn.obj(e,t),sn.setGet(e,t,[&quot;context&quot;,&quot;_openGLRenderWindow&quot;,&quot;nuberOfSteps&quot;,&quot;stepSize&quot;,&quot;normalizeVectors&quot;,&quot;maskThreshold&quot;,&quot;enhancedLIC&quot;,&quot;enhanceContrast&quot;,&quot;lowLICContrastEnhancementFactor&quot;,&quot;highLICContrastEnhancementFactor&quot;,&quot;antiAlias&quot;,&quot;componentIds&quot;,&quot;isComposite&quot;]),sn.moveToProtected(e,t,[&quot;openGLRenderWindow&quot;]),function(e,t){function n(e,t){e.setUniformi(&quot;texLIC&quot;,t.getLICTextureUnit()),e.setUniformi(&quot;texSeedPts&quot;,t.getSeedTextureUnit())}function r(e,t,n){e.attachLICBuffers(),e.renderQuad(t,n),e.detachLICBuffers(),e.swap()}t.classHierarchy.push(&quot;vtkLineIntegralConvolution2D&quot;),e.buildAShader=e=&gt;t._openGLRenderWindow.getShaderCache().readyShaderProgramArray(Pg,e,&quot;&quot;),e.dumpTextureValues=(e,[n,r],o=t.context,a=t._openGLRenderWindow,i=4)=&gt;{const s=Gp.newInstance(),l=o;let c=null;return s.setOpenGLRenderWindow(a),s.saveCurrentBindingsAndBuffers(),s.create(n,r),s.populateFramebuffer(),s.setColorBuffer(e),c=new Float32Array(n*r*i),l.readPixels(0,0,n,r,4===i?l.RGBA:l.RGB,l.FLOAT,c),s.restorePreviousBindingsAndBuffers(),c},e.getTextureMinMax=(n,r,o=t.context,a=t._openGLRenderWindow)=&gt;{const i=e.dumpTextureValues(n,r,o,a,4);let s=Number.MAX_VALUE,l=Number.MIN_VALUE;for(let e=0;e&lt;i.length;e+=4)if(0===i[e+1]){const t=i[e];t&lt;s&amp;&amp;(s=t),t&gt;l&amp;&amp;(l=t)}return{min:s,max:l}},e.getComponentSelectionProgram=e=&gt;{const t=&quot;xyzw&quot;;return`.${t[e[0]]}${t[e[1]]}`},e.buildShaders=()=&gt;{t.LIC0ShaderProgram=e.buildAShader(&quot;//VTK::System::Dec\\n\\n//=========================================================================\\n//\\n//  Program:   Visualization Toolkit\\n//  Module:    vtkLineIntegralConvolution2D_LIC0.glsl\\n//\\n//  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n//  All rights reserved.\\n//  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n//\\n//     This software is distributed WITHOUT ANY WARRANTY; without even\\n//     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n//     PURPOSE.  See the above copyright notice for more information.\\n//\\n//=========================================================================\\n\\n/**\\nThis shader initializes the convolution for the LIC computation.\\n*/\\n\\n// the output of this shader\\nlayout(location = 0) out vec4 LICOutput;\\nlayout(location = 1) out vec4 SeedOutput;\\n\\nuniform sampler2D texMaskVectors;\\nuniform sampler2D texNoise;\\nuniform sampler2D texLIC;\\n\\nuniform int   uStepNo;         // in step 0 initialize lic and seeds, else just seeds\\nuniform int   uPassNo;         // in pass 1 hpf of pass 0 is convolved.\\nuniform float uMaskThreshold;  // if |V| &lt; uMaskThreshold render transparent\\nuniform vec2  uNoiseBoundsPt1; // tc of upper right pt of noise texture\\n\\nin vec2 tcoordVC;\\n\\n// convert from vector coordinate space to noise coordinate space.\\n// the noise texture is tiled across the *whole* domain\\nvec2 VectorTCToNoiseTC(vec2 vectc)\\n{\\n  return vectc/uNoiseBoundsPt1;\\n}\\n\\n// get the texture coordidnate to lookup noise value. this\\n// depends on the pass number.\\nvec2 getNoiseTC(vec2 vectc)\\n{\\n  // in pass 1 : convert from vector tc to noise tc\\n  // in pass 2 : use vector tc\\n  if (uPassNo == 0)\\n    {\\n    return VectorTCToNoiseTC(vectc);\\n    }\\n  else\\n    {\\n    return vectc;\\n    }\\n}\\n\\n// look up noise value at the given location. The location\\n// is supplied in vector texture coordinates, hence the\\n// need to convert to noise texture coordinates.\\nfloat getNoise(vec2 vectc)\\n{\\n  return texture2D(texNoise, getNoiseTC(vectc)).r;\\n}\\n\\nvoid main(void)\\n{\\n  vec2 vectc = tcoordVC.st;\\n\\n  // lic =&gt; (convolution, mask, 0, step count)\\n  if (uStepNo == 0)\\n    {\\n    float maskCriteria = length(texture2D(texMaskVectors, vectc).xyz);\\n    float maskFlag;\\n    if (maskCriteria &lt;= uMaskThreshold)\\n      {\\n      maskFlag = 1.0;\\n      }\\n    else\\n      {\\n      maskFlag = 0.0;\\n      }\\n    float noise = getNoise(vectc);\\n    LICOutput = vec4(noise, maskFlag, 0.0, 1.0);\\n    }\\n  else\\n    {\\n    LICOutput = texture2D(texLIC, vectc);\\n    }\\n\\n  // initial seed\\n  SeedOutput = vec4(vectc, 0.0, 1.0);\\n}\\n&quot;);const n=vd.substitute(&quot;//VTK::System::Dec\\n\\n//=========================================================================\\n//\\n//  Program:   Visualization Toolkit\\n//  Module:    vtkLineIntegralConvolution2D_VT.glsl\\n//\\n//  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n//  All rights reserved.\\n//  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n//\\n//     This software is distributed WITHOUT ANY WARRANTY; without even\\n//     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n//     PURPOSE.  See the above copyright notice for more information.\\n//\\n//=========================================================================\\n\\n// move vector field to normalized image space\\n// pre-processing for vtkLineIntegralConvolution2D\\n\\n// the output of this shader\\n//VTK::Output::Dec\\n\\n// Fragment shader used by the gaussian blur filter render pass.\\n\\nuniform sampler2D texVectors; // input texture\\nuniform vec2      uTexSize;   // size of texture\\n\\nin vec2 tcoordVC;\\n\\nvoid main(void)\\n{\\n  //VTK::LICComponentSelection::Impl\\n  V = V/uTexSize;\\n  gl_FragData[0] = vec4(V, 0.0, 1.0);\\n}\\n&quot;,&quot;//VTK::LICComponentSelection::Impl&quot;,`vec2 V = texture2D(texVectors, tcoordVC.st)${e.getComponentSelectionProgram(t.componentIds)};`).result;t.VTProgram=e.buildAShader(n);const r=vd.substitute(&quot;//VTK::System::Dec\\n\\n//=========================================================================\\n//\\n//  Program:   Visualization Toolkit\\n//  Module:    vtkLineIntegralConvolution2D_fs1.glsl\\n//\\n//  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n//  All rights reserved.\\n//  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n//\\n//     This software is distributed WITHOUT ANY WARRANTY; without even\\n//     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n//     PURPOSE.  See the above copyright notice for more information.\\n//\\n//=========================================================================\\n\\n// the output of this shader\\nlayout(location = 0) out vec4 LICOutput;\\nlayout(location = 1) out vec4 SeedOutput;\\n\\nuniform sampler2D  texVectors;\\nuniform sampler2D  texNoise;\\nuniform sampler2D  texLIC;\\nuniform sampler2D  texSeedPts;\\n\\nuniform int   uPassNo;          // in pass 1 hpf of pass 0 is convolved.\\nuniform float uStepSize;        // step size in parametric space\\n\\nuniform vec2  uNoiseBoundsPt1;  // tc of upper right pt of noise texture\\n\\nin vec2 tcoordVC;\\n\\n//VTK::LICVectorLookup::Impl\\n\\n// We need to do this manually since CLAMP_TO_BORDER and and borderColor\\n// are very poorly supported in webgl\\nvec2 clampToBorder(vec2 uv){\\n  if(uv.x &lt; 0.0 || uv.x &gt; 1.0 || uv.y &lt; 0.0 || uv.y &gt; 1.0)\\n  {\\n    return vec2(0.0, 0.0);\\n  }\\n  return getVector(uv);\\n}\\n\\n// convert from vector coordinate space to noise coordinate space.\\n// the noise texture is tiled across the whole domain\\nvec2 VectorTCToNoiseTC(vec2 vectc)\\n{\\n  return vectc/uNoiseBoundsPt1;\\n}\\n\\n// get the texture coordidnate to lookup noise value.\\n// in pass 1 repeatedly tile the noise texture across\\n// the computational domain.\\nvec2 getNoiseTC(vec2 tc)\\n{\\n  if (uPassNo == 0)\\n    {\\n    return VectorTCToNoiseTC(tc);\\n    }\\n  else\\n    {\\n    return tc;\\n    }\\n}\\n\\n// look up noise value at the given location. The location\\n// is supplied in vector texture coordinates, hence the need\\n// to convert to either noise or lic texture coordinates in\\n// pass 1 and 2 respectively.\\nfloat getNoise(vec2 vectc)\\n{\\n  return texture2D(texNoise, getNoiseTC(vectc)).r;\\n}\\n\\n// fourth-order Runge-Kutta streamline integration\\n// no bounds checks are made, therefore it&#x27;s essential\\n// to have the entire texture initialized to 0\\n// and set clamp to border and have border color 0\\n// an integer is set if the step was taken, keeping\\n// an accurate step count is necessary to prevent\\n// boundary artifacts. Don&#x27;t count the step if\\n// all vector lookups are identically 0. This is\\n// a proxy for \\&quot;stepped outside valid domain\\&quot;\\nvec2 rk4(vec2 pt0, float dt, out bool count)\\n{\\n  count=true;\\n  float dtHalf = dt * 0.5;\\n  vec2 pt1;\\n\\n  vec2 v0 = clampToBorder(pt0);\\n  pt1 = pt0 + v0 * dtHalf;\\n\\n  vec2 v1 = clampToBorder(pt1);\\n  pt1 = pt0 + v1 * dtHalf;\\n\\n  vec2 v2 = clampToBorder(pt1);\\n  pt1 = pt0 + v2 * dt;\\n\\n  vec2 v3 = clampToBorder(pt1);\\n  vec2 vSum = v0 + v1 + v1 + v2 + v2 + v3;\\n\\n  if (vSum == vec2(0.0, 0.0))\\n    {\\n      count = false;\\n    }\\n\\n  pt1 = pt0 + (vSum) * (dt * (1.0/6.0));\\n\\n return pt1;\\n}\\n\\nvoid main(void)\\n{\\n  vec2 lictc = tcoordVC.st;\\n  vec4 lic = texture2D(texLIC, lictc);\\n  vec2 pt0 = texture2D(texSeedPts, lictc).st;\\n\\n  bool count;\\n  vec2 pt1 = rk4(pt0, uStepSize, count);\\n\\n  if (count)\\n    {\\n    // accumulate lic step\\n    // (lic, mask, 0, step count)\\n    float noise = getNoise(pt1);\\n    LICOutput = vec4(lic.r + noise, lic.g, 0.0, lic.a + 1.0);\\n    SeedOutput = vec4(pt1, 0.0, 1.0);\\n    }\\n  else\\n    {\\n    // keep existing values\\n    LICOutput = lic;\\n    SeedOutput = vec4(pt0, 0.0, 1.0);\\n    }\\n}\\n&quot;,&quot;//VTK::LICVectorLookup::Impl&quot;,function(e=!0){return e?&quot;\\n    vec2 getVector( vec2 vectc )\\n\\n      {\\n\\n      vec2 V = texture2D( texVectors, vectc ).xy;\\n\\n      // normalize if |V| not 0\\n\\n      float lenV = length( V );\\n\\n      if ( lenV &gt; 1.0e-8 )\\n\\n        {\\n\\n        return V/lenV;\\n\\n        }\\n\\n      else\\n\\n        {\\n\\n        return vec2( 0.0, 0.0 );\\n\\n        }\\n\\n      }\\n\\n    &quot;:&quot;\\n    vec2 getVector( vec2 vectc )\\n\\n      {\\n\\n      return texture2D( texVectors, vectc ).xy;\\n\\n      }\\n\\n    &quot;}(t.normalizeVectors),!0).result;t.LICIShaderProgram=e.buildAShader(r),t.LICNShaderProgram=e.buildAShader(&quot; //VTK::System::Dec\\n\\n//=========================================================================\\n//\\n//  Program:   Visualization Toolkit\\n//  Module:    vtkLineIntegralConvolution2D_LICN.glsl\\n//\\n//  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n//  All rights reserved.\\n//  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n//\\n//     This software is distributed WITHOUT ANY WARRANTY; without even\\n//     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n//     PURPOSE.  See the above copyright notice for more information.\\n//\\n//=========================================================================\\n\\n// the output of this shader\\nlayout(location = 0) out vec4 LICOutput;\\nlayout(location = 1) out vec4 SeedOutput;\\n\\n/**\\nThis shader finalizes the convolution for the LIC computation\\napplying the normalization. eg. if box kernel is used the this\\nis the number of steps taken.\\n*/\\n\\nuniform sampler2D texLIC;\\n\\nin vec2 tcoordVC;\\n\\nvoid main(void)\\n{\\n  vec4 conv = texture2D(texLIC, tcoordVC.st);\\n  conv.r = conv.r/conv.a;\\n  // lic =&gt; (convolution, mask, 0, 1)\\n  LICOutput = vec4(conv.rg , 0.0, 1.0);\\n  SeedOutput = vec4(0.0, 0.0, 0.0, 0.0);\\n}\\n&quot;),t.CEProgram=e.buildAShader(&quot;//VTK::System::Dec\\n\\n//=========================================================================\\n//\\n//  Program:   Visualization Toolkit\\n//  Module:    vtkLineIntegralConvolution2D_CE.glsl\\n//\\n//  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n//  All rights reserved.\\n//  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n//\\n//     This software is distributed WITHOUT ANY WARRANTY; without even\\n//     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n//     PURPOSE.  See the above copyright notice for more information.\\n//\\n//=========================================================================\\n\\n// gray scale contrast enhance stage implemented via histogram stretching\\n// if the min and max are tweaked it can generate out-of-range values\\n// these will be clamped in 0 to 1\\n\\n// the output of this shader\\nlayout(location = 0) out vec4 LICOutput;\\nlayout(location = 1) out vec4 SeedOutput;\\n\\n\\nuniform sampler2D texLIC;  // most recent lic pass\\nuniform float uMin;        // min gray scale color value\\nuniform float uMaxMinDiff; // max-min\\n\\nin vec2 tcoordVC;\\n\\nvoid main( void )\\n{\\n  vec4 lic = texture2D(texLIC, tcoordVC.st);\\n  if (lic.g!=0.0)\\n    {\\n    LICOutput = lic;\\n    }\\n  else\\n    {\\n    float CElic = clamp((lic.r - uMin)/uMaxMinDiff, 0.0, 1.0);\\n    LICOutput = vec4(CElic, lic.gb, 1.0);\\n    }\\n    SeedOutput = vec4(0.0, 0.0, 0.0, 0.0);\\n}\\n&quot;),t.EEProgram=e.buildAShader(&quot;//VTK::System::Dec\\n\\n//=========================================================================\\n//\\n//  Program:   Visualization Toolkit\\n//  Module:    vtkLineIntegralConvolution2D_fs2.glsl\\n//\\n//  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n//  All rights reserved.\\n//  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n//\\n//     This software is distributed WITHOUT ANY WARRANTY; without even\\n//     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n//     PURPOSE.  See the above copyright notice for more information.\\n//\\n//=========================================================================\\n\\n// high-pass filter stage employed by vtkLineIntegralConvolution2D\\n// between LIC pass 1 and LIC pass 2. filtered LIC pass 1, becomes\\n// noise for pass2.\\n\\n// the output of this shader\\nlayout(location = 0) out vec4 EEOutput;\\n\\nuniform sampler2D texLIC; // most recent lic pass\\nuniform float     uDx;    // fragment size\\nuniform float     uDy;    // fragment size\\n\\nin vec2 tcoordVC;\\n\\n// kernel for simple laplace edge enhancement.\\n// p=Laplace(p)+p\\nfloat K[9] = float[9](\\n  -1.0, -1.0, -1.0,\\n  -1.0,  9.0, -1.0,\\n  -1.0, -1.0, -1.0\\n  );\\n\\n// determine if the fragment was masked\\nbool Masked(float val) { return val != 0.0; }\\n\\nvoid main(void)\\n{\\n  // tex coord neighbor offsets\\n  vec2 fragDx[9] = vec2[9](\\n    vec2(-uDx, uDy), vec2(0.0, uDy), vec2(uDx, uDy),\\n    vec2(-uDx, 0.0), vec2(0.0, 0.0), vec2(uDx, 0.0),\\n    vec2(-uDx,-uDy), vec2(0.0,-uDy), vec2(uDx,-uDy)\\n    );\\n\\n  vec2 lictc = tcoordVC.st;\\n\\n  // compute the convolution but don&#x27;t use convovled values if\\n  // any masked fragments on the stencil. Fragments outside\\n  // the valid domain are masked during initialization, and\\n  // texture wrap parameters are clamp to border with border\\n  // color that contains masked flag\\n  float conv = 0.0;\\n  bool dontUse = false;\\n  for (int i=0; i&lt;9; ++i)\\n    {\\n    vec2 tc = lictc + fragDx[i];\\n    vec4 lic = texture2D(texLIC, tc);\\n    dontUse = dontUse || Masked(lic.g);\\n    conv = conv + K[i] * lic.r;\\n    }\\n\\n  if (dontUse)\\n    {\\n    EEOutput = vec4(texture2D(texLIC, lictc).rg, 0.0, 1.0);\\n    }\\n  else\\n    {\\n    conv = clamp(conv, 0.0, 1.0);\\n    EEOutput = vec4(conv,texture2D(texLIC, lictc).g, 0.0, 1.0);\\n    }\\n\\n}\\n&quot;),t.AAHProgram=e.buildAShader(&quot;//VTK::System::Dec\\n\\n//=========================================================================\\n//\\n//  Program:   Visualization Toolkit\\n//  Module:    vtkLineIntegralConvolution2D_AAH.glsl\\n//\\n//  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n//  All rights reserved.\\n//  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n//\\n//     This software is distributed WITHOUT ANY WARRANTY; without even\\n//     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n//     PURPOSE.  See the above copyright notice for more information.\\n//\\n//=========================================================================\\n\\n// Anti-alias stage in vtkLineIntegralConvolution2D\\n// horizontal pass of a Gaussian convolution\\n\\n// the output of this shader\\nlayout(location = 0) out vec4 LICOutput;\\nlayout(location = 1) out vec4 SeedOutput;\\n\\nuniform sampler2D texLIC; // input texture\\nuniform float     uDx;    // fragment size\\n\\nin vec2 tcoordVC;\\n\\n// factored 3x3 Gaussian kernel\\n// K^T*K = G\\nfloat K[3] = float[3](0.141421356, 0.707106781, 0.141421356);\\n\\n// determine if the fragment was masked\\nbool Masked(float val){ return val != 0.0; }\\n\\nvoid main(void)\\n{\\n// neighbor offsets\\nvec2 fragDx[3] = vec2[3](vec2(-uDx,0.0), vec2(0.0,0.0), vec2(uDx,0.0));\\n\\n  vec2 lictc = tcoordVC.st;\\n  vec4 lic[3];\\n  bool dontUse = false;\\n  float conv = 0.0;\\n  for (int i=0; i&lt;3; ++i)\\n    {\\n    vec2 tc = lictc + fragDx[i];\\n    lic[i] = texture2D(texLIC, tc);\\n    dontUse = dontUse || Masked(lic[i].g);\\n    conv = conv + K[i] * lic[i].r;\\n    }\\n  // output is (conv, mask, skip, 1)\\n  if (dontUse)\\n    {\\n    LICOutput = vec4(lic[1].rg, 1.0, 1.0);\\n    }\\n  else\\n    {\\n    LICOutput = vec4(conv, lic[1].gb, 1.0);\\n    }\\n  SeedOutput = vec4(0.0, 0.0, 0.0, 0.0);\\n}\\n&quot;),t.AAVProgram=e.buildAShader(&quot;//VTK::System::Dec\\n\\n//=========================================================================\\n//\\n//  Program:   Visualization Toolkit\\n//  Module:    vtkLineIntegralConvolution2D_AAV.glsl\\n//\\n//  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n//  All rights reserved.\\n//  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n//\\n//     This software is distributed WITHOUT ANY WARRANTY; without even\\n//     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n//     PURPOSE.  See the above copyright notice for more information.\\n//\\n//=========================================================================\\n\\n// Anti-alias stage in vtkLineIntegralConvolution2D\\n// vertical pass of a Gaussian convolution\\n\\n// the output of this shader\\nlayout(location = 0) out vec4 LICOutput;\\nlayout(location = 1) out vec4 SeedOutput;\\n\\nuniform sampler2D texLIC; // input texture\\nuniform float     uDy;    // fragment size\\n\\nin vec2 tcoordVC;\\n\\n\\n// factored 3x3 Gaussian kernel\\n// K^T*K = G\\nfloat K[3] = float[3](0.141421356, 0.707106781, 0.141421356);\\n\\n// determine if the fragment was masked\\nbool Masked(float val){ return val != 0.0; }\\n\\nvoid main(void)\\n{\\n// neighbor offsets\\nvec2 fragDy[3] = vec2[3](vec2(0.0,-uDy), vec2(0.0,0.0), vec2(0.0,uDy));\\n\\n\\n  vec2 lictc = tcoordVC.st;\\n  vec4 lic[3];\\n  bool dontUse = false;\\n  float conv = 0.0;\\n  for (int i=0; i&lt;3; ++i)\\n    {\\n    vec2 tc = lictc + fragDy[i];\\n    lic[i] = texture2D(texLIC, tc);\\n    dontUse = dontUse || Masked(lic[i].g);\\n    conv = conv + K[i] * lic[i].r;\\n    }\\n  // output is (conv, mask, skip, 1)\\n  if (dontUse)\\n    {\\n    LICOutput = vec4(lic[1].rg, 1.0, 1.0);\\n    }\\n  else\\n    {\\n    LICOutput = vec4(conv, lic[1].gb, 1.0);\\n    }\\n  SeedOutput = vec4(0.0, 0.0, 0.0, 0.0);\\n}\\n&quot;)},e.executeLIC=(o,a,i,s,l,c)=&gt;{if(t._openGLRenderWindow=l,t.context=l.getContext(),Object.assign(t,c),o[0]&lt;=0||o[1]&lt;=0)return null;const u=[1/o[0],1/o[1]];let d=t.stepSize*Math.sqrt(u[0]*u[0]+u[1]*u[1]);d&lt;=0&amp;&amp;(d=1e-10);const p=t.context;let f=t.framebuffer;const g=f?.getSize();f&amp;&amp;g&amp;&amp;o[0]===g&amp;&amp;o[1]===g||(f=Gp.newInstance(),f.setOpenGLRenderWindow(t._openGLRenderWindow),f.saveCurrentBindingsAndBuffers(),f.create(...o),f.populateFramebuffer(),f.restorePreviousBindingsAndBuffers(),t.framebuffer=f),f.saveCurrentBindingsAndBuffers(),f.bind(),p.viewport(0,0,...o),p.scissor(0,0,...o),t.shadersNeedBuild&amp;&amp;(e.buildShaders(),t.shadersNeedBuild=!1),t.bufs?(t.bufs.setVectorTexture(a),t.bufs.setMaskVectorTexture(i),t.bufs.setNoiseTexture(s)):t.bufs=Eg.newInstance({openGLRenderWindow:l,doEEPass:t.enhancedLIC,doVTPass:t.transformVectors,vectorTexture:a,maskVectorTexture:i,noiseTexture:s,framebuffer:f,size:o});const m=[(s.getWidth()+1)/o[0],(s.getHeight()+1)/o[1]],h=1/o[0],v=1/o[1],T=t._openGLRenderWindow.getShaderCache();if(t.transformVectors){const e=t.VTProgram;T.readyShaderProgram(e),t.bufs.attachImageVectorBuffer(),e.setUniform2f(&quot;uTexSize&quot;,...o),e.setUniformi(&quot;texVectors&quot;,t.bufs.getVectorTextureUnit()),p.clearColor(0,0,0,0),p.clear(p.COLOR_BUFFER_BIT),t.bufs.renderQuad(o,e),t.bufs.detachImageVectorBuffer()}t.bufs.clearBuffers(t.enhancedLIC),t.bufs.activateVectorTextures(),t.bufs.activateNoiseTexture(0);const{LIC0ShaderProgram:x}=t;T.readyShaderProgram(x),x.setUniformi(&quot;uStepNo&quot;,0),x.setUniformi(&quot;uPassNo&quot;,0),x.setUniformf(&quot;uMaskThreshold&quot;,t.maskThreshold),x.setUniform2f(&quot;uNoiseBoundsPt1&quot;,...m),x.setUniformi(&quot;texMaskVectors&quot;,t.bufs.getMaskVectorTextureUnit()),x.setUniformi(&quot;texLIC&quot;,t.bufs.getLICTextureUnit()),x.setUniformi(&quot;texNoise&quot;,t.bufs.getNoiseTextureUnit(0)),r(t.bufs,o,x);const{LICIShaderProgram:y}=t;T.readyShaderProgram(y),y.setUniformi(&quot;uPassNo&quot;,0),y.setUniformf(&quot;uStepSize&quot;,-d),y.setUniform2f(&quot;uNoiseBoundsPt1&quot;,...m),y.setUniformi(&quot;texVectors&quot;,t.bufs.getImageVectorTextureUnit()),y.setUniformi(&quot;texNoise&quot;,t.bufs.getNoiseTextureUnit(0));for(let e=0;e&lt;t.numberOfSteps;++e)n(y,t.bufs),r(t.bufs,o,y);T.readyShaderProgram(x),x.setUniformi(&quot;uStepNo&quot;,1),n(x,t.bufs),r(t.bufs,o,x),T.readyShaderProgram(y),y.setUniformf(&quot;uStepSize&quot;,d);for(let e=0;e&lt;t.numberOfSteps;++e)n(y,t.bufs),r(t.bufs,o,y);t.bufs.deactivateNoiseTexture(0),t.bufs.deactivateVectorTextures();const{LICNShaderProgram:b}=t;if(T.readyShaderProgram(b),b.setUniformi(&quot;texLIC&quot;,t.bufs.getLICTextureUnit()),r(t.bufs,o,b),t.enhancedLIC){t.enhanceContrast!==Lg&amp;&amp;t.enhanceContrast!==Fg||e.contrastEnhance(!1,o),t.bufs.attachEEBuffer();const{EEProgram:a}=t;T.readyShaderProgram(a),a.setUniformi(&quot;texLIC&quot;,t.bufs.getLICTextureUnit()),a.setUniformf(&quot;uDx&quot;,h),a.setUniformf(&quot;uDy&quot;,v),t.bufs.renderQuad(o,a),t.bufs.detachEEBuffer(),t.bufs.detachBuffers(),t.bufs.clearBuffers(!1),t.bufs.activateVectorTextures(),t.bufs.activateNoiseTexture(1),T.readyShaderProgram(x),x.setUniformi(&quot;uStepNo&quot;,0),x.setUniformi(&quot;uPassNo&quot;,1),n(x,t.bufs),x.setUniformi(&quot;texNoise&quot;,t.bufs.getNoiseTextureUnit(1)),r(t.bufs,o,x),T.readyShaderProgram(y),y.setUniformi(&quot;uPassNo&quot;,1),y.setUniformf(&quot;uStepSize&quot;,-d),y.setUniformi(&quot;texNoise&quot;,t.bufs.getNoiseTextureUnit(1));const i=t.numberOfSteps/2;for(let e=0;e&lt;i;++e)n(y,t.bufs),r(t.bufs,o,y);T.readyShaderProgram(x),x.setUniformi(&quot;uStepNo&quot;,1),n(x,t.bufs),r(t.bufs,o,x),T.readyShaderProgram(y),y.setUniformf(&quot;uStepSize&quot;,d);for(let e=0;e&lt;i;++e)n(y,t.bufs),r(t.bufs,o,y);t.bufs.deactivateNoiseTexture(1),t.bufs.deactivateVectorTextures(),T.readyShaderProgram(b),b.setUniformi(&quot;texLIC&quot;,t.bufs.getLICTextureUnit()),b.setUniformi(&quot;texSeedPts&quot;,t.bufs.getSeedTextureUnit()),r(t.bufs,o,b)}if(t.antiAlias){const e=t.AAHProgram;T.readyShaderProgram(e),e.setUniformi(&quot;texLIC&quot;,t.bufs.getLICTextureUnit()),e.setUniformf(&quot;uDx&quot;,h);const a=t.AAVProgram;T.readyShaderProgram(a),a.setUniformi(&quot;texLIC&quot;,t.bufs.getLICTextureUnit()),a.setUniformf(&quot;uDy&quot;,v);for(let i=0;i&lt;t.antiAlias;++i)T.readyShaderProgram(e),n(e,t.bufs),r(t.bufs,o,e),T.readyShaderProgram(a),n(a,t.bufs),r(t.bufs,o,a)}return t.enhanceContrast!==Lg&amp;&amp;t.enhanceContrast!==Fg||e.contrastEnhance(!0,o),t.bufs.detachBuffers(),f.restorePreviousBindingsAndBuffers(),t.bufs.getLastLICBuffer()},e.contrastEnhance=(n,o)=&gt;{const a=t._openGLRenderWindow.getShaderCache();let{min:i,max:s}=e.getTextureMinMax(t.bufs.getLastLICBuffer(),o,t.context,t._openGLRenderWindow);(s&lt;=i||s&gt;1||i&lt;0)&amp;&amp;(console.error(&quot;Invalid color range: &quot;,i,s),i=0,s=1);let l=s-i;n&amp;&amp;(i+=l*t.lowLICContrastEnhancementFactor,s-=l*t.highLICContrastEnhancementFactor,l=s-i);const{CEProgram:c}=t;a.readyShaderProgram(c),c.setUniformi(&quot;texLIC&quot;,t.bufs.getLICTextureUnit()),c.setUniformf(&quot;uMin&quot;,i),c.setUniformf(&quot;uMaxMinDiff&quot;,l),r(t.bufs,o,c)}}(e,t)}var Ug={newInstance:sn.newInstance(Gg,&quot;vtkLineIntegralConvolution2D&quot;),extend:Gg};const _g={enableLIC:!1,nuberOfSteps:40,stepSize:.25,transformVectors:!0,normalizeVectors:!0,maskOnSurface:!1,maskThreshold:0,maskColor:[0,0,0],maskIntensity:0,enhancedLIC:!0,enhanceContrast:Vg,lowLICContrastEnhancementFactor:0,highLICContrastEnhancementFactor:0,lowColorContrastEnhancementFactor:0,highColorContrastEnhancementFactor:0,antiAlias:0,colorMode:0,LICIntensity:1,mapModeBias:0,noiseTextureSize:200,noiseTextureType:Ng,noiseGrainSize:8,noiseImpulseProbability:.1,noiseImpulseBackgroundValue:0,noiseGeneratorSeed:0,minNoiseValue:0,maxNoiseValue:1,numberOfNoiseLevels:2,shadersNeedBuilding:!0,reallocateTextures:!0,rebuildNoiseTexture:!1,viewPortScale:1};function Kg(e,t,n={}){Object.assign(t,_g,n),sn.obj(e,t),sn.setGet(e,t,[&quot;enableLIC&quot;,&quot;numberOfSteps&quot;,&quot;stepSize&quot;,&quot;normalizeVectors&quot;,&quot;transformVectors&quot;,&quot;maskOnSurface&quot;,&quot;maskThreshold&quot;,&quot;maskColor&quot;,&quot;maskIntensity&quot;,&quot;enhancedLIC&quot;,&quot;enhanceContrast&quot;,&quot;lowLICContrastEnhancementFactor&quot;,&quot;highLICContrastEnhancementFactor&quot;,&quot;lowColorContrastEnhancementFactor&quot;,&quot;highColorContrastEnhancementFactor&quot;,&quot;antiAlias&quot;,&quot;colorMode&quot;,&quot;LICIntensity&quot;,&quot;mapModeBias&quot;,&quot;noiseTextureSize&quot;,&quot;noiseTextureType&quot;,&quot;noiseGrainSize&quot;,&quot;minNoiseValue&quot;,&quot;maxNoiseValue&quot;,&quot;numberOfNoiseLevels&quot;,&quot;noiseImpulseProbability&quot;,&quot;noiseImpulseBackgroundValue&quot;,&quot;noiseGeneratorSeed&quot;,&quot;viewPortScale&quot;,&quot;rebuildNoiseTexture&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkSurfaceLICInterface&quot;)}(0,t)}var zg={newInstance:sn.newInstance(Kg,&quot;vtkSurfaceLICInterface&quot;),extend:Kg};const{Representation:Wg}=us;function Hg(e,t){t.classHierarchy.push(&quot;vtkOpenGLSurfaceLICInterface&quot;),e.renderQuad=(e,n)=&gt;{const r=t.licQuad,o=t.context;let a=t.licQuadVAO;a||(a=yd.newInstance(),a.setOpenGLRenderWindow(t._openGLRenderWindow),t.licQuadVAO=a),t.previousProgramHash!==n.getMd5Hash()&amp;&amp;(a.shaderProgramChanged(),r.getCABO().bind(),a.addAttributeArray(n,r.getCABO(),&quot;vertexDC&quot;,r.getCABO().getVertexOffset(),r.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE),a.addAttributeArray(n,r.getCABO(),&quot;tcoordDC&quot;,r.getCABO().getTCoordOffset(),r.getCABO().getStride(),t.context.FLOAT,2,t.context.FALSE),t.previousProgramHash=n.getMd5Hash()),o.drawArrays(o.TRIANGLES,0,r.getCABO().getElementCount()),a.release()},e.generateNoiseTexture=e=&gt;{if(!t.noiseTexture||t.licInterface.getRebuildNoiseTexture()){t.licInterface.setRebuildNoiseTexture(!1),t.noiseTexture&amp;&amp;t.noiseTexture.releaseGraphicsResources(),mo(t.noiseGeneratorSeed,{global:!0});let n=[];const{noiseTextureType:r,noiseGrainSize:o,numberOfNoiseLevels:a,noiseImpulseProbability:i,noiseImpulseBackgroundValue:s,minNoiseValue:l,maxNoiseValue:c}=t.licInterface.get(&quot;noiseTextureType&quot;,&quot;noiseGrainSize&quot;,&quot;numberOfNoiseLevels&quot;,&quot;noiseImpulseProbability&quot;,&quot;noiseImpulseBackgroundValue&quot;,&quot;minNoiseValue&quot;,&quot;maxNoiseValue&quot;);if(r===Ng)n=function(e,t,n,r,o,a){const i=Math.max(0,Math.min(1,n)),s=Float32Array.from({length:e*e},(()=&gt;{let e=0;if(1===i||Math.random()&gt;1-i)for(let t=0;t&lt;2048;++t)e+=Math.random();return e}));let l=0,c=2049;s.forEach((e=&gt;{c=1===i?e&lt;c?e:c:e&lt;c&amp;&amp;e&gt;0?e:c,l=e&gt;l?e:l}));let u=l-c;0===u&amp;&amp;(c=0,u=0===l?1:l);const d=t-1,p=0!==d?1/d:0,f=a-o;return s.map((e=&gt;{const n=e&lt;c?e:(e-c)/u,i=Math.floor(n*t);return e&gt;=c?1===t?a:o+(i&gt;d?d:i)*p*f:r}))}(Math.floor(e/o),a,i,s,l,c);else n=function([e,t],n,r,o){const a=o-r;return Float32Array.from({length:e*t},(()=&gt;{let e=Math.random();return e=Math.floor(e*n)/n,e=e*a+r,e&gt;1?1:e&lt;0?0:e}))}([Math.ceil(e/o),Math.ceil(e/o)],a,l,c);const u=1/o,d=Float32Array.from({length:e*e*4},((t,r)=&gt;{const a=r/4;if(r%4==0){const t=Math.floor(a%e*u),r=Math.floor(a/e*u);return n[r*(e/o)+t]}return r%4==1||r%4==3?1:0})),p=Hd.newInstance({wrapS:Hd.Wrap.REPEAT,wrapT:Hd.Wrap.REPEAT,minificationFilter:Hd.Filter.NEAREST,magnificationFilter:Hd.Filter.NEAREST,generateMipMap:!1,openGLDataType:t.context.FLOAT,baseLevel:0,maxLevel:0,autoParameters:!1});p.setOpenGLRenderWindow(t._openGLRenderWindow),p.create2DFromRaw({width:e,height:e,numComps:4,dataType:&quot;Float32Array&quot;,data:d}),p.activate(),p.sendParameters(),p.deactivate(),t.noiseTexture=p}},e.buildAShader=e=&gt;t._openGLRenderWindow.getShaderCache().readyShaderProgramArray(Pg,e,&quot;&quot;),e.allocateTextures=()=&gt;{const n=Hd.Filter.NEAREST,r=Hd.Filter.LINEAR,o=t._openGLRenderWindow;t.geometryImage||(t.geometryImage=e.allocateTexture(o,n)),t.vectorImage||(t.vectorImage=e.allocateTexture(o,r)),t.maskVectorImage||(t.maskVectorImage=e.allocateTexture(o,r)),t.LICImage||(t.LICImage=e.allocateTexture(o,n)),t.RGBColorImage||(t.RGBColorImage=e.allocateTexture(o,n)),t.HSLColorImage||(t.HSLColorImage=e.allocateTexture(o,n)),t.depthTexture||(t.depthTexture=e.allocateDepthTexture(o))},e.allocateTexture=(e,n)=&gt;{const r=t.context,o=Hd.newInstance({wrapS:Hd.Wrap.CLAMP_TO_EDGE,wrapT:Hd.Wrap.CLAMP_TO_EDGE,minificationFilter:n,magnificationFilter:n,generateMipmap:!1,openGLDataType:r.FLOAT,baseLevel:0,maxLevel:0,autoParameters:!1});return o.setOpenGLRenderWindow(e),o.setInternalFormat(r.RGBA32F),o.create2DFromRaw({width:t.size[0],height:t.size[1],numComps:4,dataType:&quot;Float32Array&quot;,data:null}),o.activate(),o.sendParameters(),o.deactivate(),o},e.allocateDepthTexture=e=&gt;{const n=t.context,r=Hd.newInstance({generateMipmap:!1,openGLDataType:n.FLOAT,autoParameters:!1});return r.setOpenGLRenderWindow(e),r.createDepthFromRaw({width:t.size[0],height:t.size[1],dataType:&quot;Float32Array&quot;,data:null}),r.activate(),r.sendParameters(),r.deactivate(),r},e.createFBO=()=&gt;{if(!t.framebuffer){t.licHelper=null;const e=Gp.newInstance();e.setOpenGLRenderWindow(t._openGLRenderWindow),e.saveCurrentBindingsAndBuffers(),e.create(...t.size),e.populateFramebuffer(),t.framebuffer=e,e.restorePreviousBindingsAndBuffers()}},e.completedGeometry=()=&gt;{const e=t.context,n=t.framebuffer;n.removeColorBuffer(0),n.removeColorBuffer(1),n.removeColorBuffer(2),n.removeDepthBuffer(),e.drawBuffers([e.NONE]),n.restorePreviousBindingsAndBuffers()},e.buildAllShaders=()=&gt;{t.shadersNeedBuilding&amp;&amp;(t.licColorPass=e.buildAShader(&quot;//VTK::System::Dec\\n\\n//=========================================================================\\n//\\n//  Program:   Visualization Toolkit\\n//  Module:    vtkSurfaceLICMapper_fs2.glsl\\n//\\n//  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n//  All rights reserved.\\n//  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n//\\n//     This software is distributed WITHOUT ANY WARRANTY; without even\\n//     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n//     PURPOSE.  See the above copyright notice for more information.\\n//\\n//=========================================================================\\n\\n// This shader combines surface geometry, LIC, and  scalar colors.\\n\\n// the output of this shader\\nlayout(location = 0) out vec4 RGBOutput;\\nlayout(location = 1) out vec4 HSLOutput;\\n\\nuniform sampler2D texVectors;       // vectors, depth\\nuniform sampler2D texGeomColors;    // scalar colors + lighting\\nuniform sampler2D texLIC;           // image lic\\nuniform int       uScalarColorMode; // select between blend, and map shader\\nuniform float     uLICIntensity;    // blend shader: blending factor for lic&#x27;d colors\\nuniform float     uMapBias;         // map shader: adjust the brightness of the result\\nuniform float     uMaskIntensity;   // blending factor for mask color\\nuniform vec3      uMaskColor;       // color for the masked out fragments\\n\\nin vec2 tcoordVC;\\n\\n/**\\nConvert from RGB color space into HSL colorspace.\\n*/\\nvec3 RGBToHSL(vec3 RGB)\\n{\\n  vec3 HSL = vec3(0.0, 0.0, 0.0);\\n\\n  float RGBMin = min(min(RGB.r, RGB.g), RGB.b);\\n  float RGBMax = max(max(RGB.r, RGB.g), RGB.b);\\n  float RGBMaxMinDiff = RGBMax - RGBMin;\\n\\n  HSL.z = (RGBMax + RGBMin) / 2.0;\\n\\n  if (RGBMaxMinDiff == 0.0)\\n    {\\n    // Gray scale\\n    HSL.x = 0.0;\\n    HSL.y = 0.0;\\n    }\\n  else\\n    {\\n    // Color\\n    if (HSL.z &lt; 0.5)\\n      HSL.y = RGBMaxMinDiff / (RGBMax + RGBMin);\\n    else\\n      HSL.y = RGBMaxMinDiff / (2.0 - RGBMax - RGBMin);\\n\\n    float dR\\n      = (((RGBMax - RGB.r) / 6.0) + (RGBMaxMinDiff / 2.0)) / RGBMaxMinDiff;\\n    float dG\\n      = (((RGBMax - RGB.g) / 6.0) + (RGBMaxMinDiff / 2.0)) / RGBMaxMinDiff;\\n    float dB\\n      = (((RGBMax - RGB.b) / 6.0) + (RGBMaxMinDiff / 2.0)) / RGBMaxMinDiff;\\n\\n    if (RGB.r == RGBMax)\\n      HSL.x = dB - dG;\\n    else\\n    if (RGB.g == RGBMax)\\n      HSL.x = (1.0 / 3.0) + dR - dB;\\n    else\\n    if (RGB.b == RGBMax)\\n      HSL.x = (2.0 / 3.0) + dG - dR;\\n\\n    if (HSL.x &lt; 0.0)\\n      HSL.x += 1.0;\\n\\n    if (HSL.x &gt; 1.0)\\n      HSL.x -= 1.0;\\n    }\\n\\n  return HSL;\\n}\\n\\n/**\\nHelper for HSL to RGB conversion.\\n*/\\nfloat Util(float v1, float v2, float vH)\\n{\\n  if (vH &lt; 0.0)\\n    vH += 1.0;\\n\\n  if (vH &gt; 1.0)\\n     vH -= 1.0;\\n\\n  if ((6.0 * vH) &lt; 1.0)\\n    return (v1 + (v2 - v1) * 6.0 * vH);\\n\\n  if ((2.0 * vH) &lt; 1.0)\\n    return (v2);\\n\\n  if ((3.0 * vH) &lt; 2.0)\\n    return (v1 + (v2 - v1) * ((2.0 / 3.0) - vH) * 6.0);\\n\\n  return v1;\\n}\\n\\n/**\\nConvert from HSL space into RGB space.\\n*/\\nvec3 HSLToRGB(vec3 HSL)\\n{\\n  vec3 RGB;\\n  if (HSL.y == 0.0)\\n    {\\n    // Gray\\n    RGB.r = HSL.z;\\n    RGB.g = HSL.z;\\n    RGB.b = HSL.z;\\n    }\\n  else\\n    {\\n    // Chromatic\\n    float v2;\\n    if (HSL.z &lt; 0.5)\\n      v2 = HSL.z * (1.0 + HSL.y);\\n    else\\n      v2 = (HSL.z + HSL.y) - (HSL.y * HSL.z);\\n\\n    float v1 = 2.0 * HSL.z - v2;\\n\\n    RGB.r = Util(v1, v2, HSL.x + (1.0 / 3.0));\\n    RGB.g = Util(v1, v2, HSL.x);\\n    RGB.b = Util(v1, v2, HSL.x - (1.0 / 3.0));\\n    }\\n\\n  return RGB.rgb;\\n}\\n\\nvoid main()\\n{\\n  vec4 lic = texture2D(texLIC, tcoordVC.st);\\n  vec4 geomColor = texture2D(texGeomColors, tcoordVC.st);\\n\\n  // depth is used to determine which fragment belong to us\\n  // and we can change\\n  float depth = texture2D(texVectors, tcoordVC.st).a;\\n\\n  vec3 fragColorRGB;\\n  float valid;\\n  if (depth &gt; 1.0e-3)\\n    {\\n    // we own it\\n    // shade LIC&#x27;ed geometry, or apply mask\\n    if (lic.g!=0.0)\\n      {\\n      // it&#x27;s masked\\n      // apply fragment mask\\n      fragColorRGB = uMaskIntensity * uMaskColor + (1.0 - uMaskIntensity) * geomColor.rgb;\\n      valid = 0.0;\\n      }\\n    else\\n      {\\n      if (uScalarColorMode==0)\\n        {\\n        // blend with scalars\\n        fragColorRGB = lic.rrr * uLICIntensity + geomColor.rgb * (1.0 - uLICIntensity);\\n        }\\n      else\\n        {\\n        // multiply with scalars\\n        fragColorRGB = geomColor.rgb * clamp((uMapBias + lic.r), 0.0, 1.0);\\n        }\\n      if (lic.b != 0.0)\\n        {\\n        // didn&#x27;t have the required guard pixels\\n        // don&#x27;t consider it in min max estimation\\n        // for histpgram stretching\\n        valid = 0.0;\\n        }\\n      else\\n        {\\n        // ok to use in min/max estimates for histogram\\n        // stretching\\n        valid = 1.0;\\n        }\\n      }\\n    }\\n  else\\n    {\\n    // we don&#x27;t own it\\n    // pass through scalars\\n    fragColorRGB = geomColor.rgb;\\n    valid = 0.0;\\n    }\\n\\n  // if no further stages this texture is\\n  // copied to the screen\\n  RGBOutput = vec4(fragColorRGB, geomColor.a);\\n\\n  // if further stages, move to hsl space for contrast\\n  // enhancement. encoding validity saves moving a texture to the cpu\\n  vec3 fragColorHSL = RGBToHSL(fragColorRGB);\\n  HSLOutput = vec4(fragColorHSL, valid);\\n}\\n&quot;),t.licCopyPass=e.buildAShader(&quot;//VTK::System::Dec\\n\\n//=========================================================================\\n//\\n//  Program:   Visualization Toolkit\\n//  Module:    vtkSurfaceLICMapper_DCpy.glsl\\n//\\n//  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n//  All rights reserved.\\n//  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n//\\n//     This software is distributed WITHOUT ANY WARRANTY; without even\\n//     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n//     PURPOSE.  See the above copyright notice for more information.\\n//\\n//=========================================================================\\n\\n// This shader copies fragments and depths to the output buffer\\n\\n// the output of this shader\\n//VTK::Output::Dec\\n\\nuniform sampler2D texDepth;     // z values from vertex shader\\nuniform sampler2D texRGBColors; // final rgb LIC colors\\n\\nin vec2 tcoordVC;\\n\\nvoid main()\\n{\\n  gl_FragDepth = texture2D(texDepth, tcoordVC).x;\\n  gl_FragData[0] = texture2D(texRGBColors, tcoordVC);\\n\\n  // since we render a screen aligned quad\\n  // we&#x27;re going to be writing fragments\\n  // not touched by the original geometry\\n  // it&#x27;s critical not to modify those\\n  // fragments.\\n  if (gl_FragDepth == 1.0)\\n    {\\n    discard;\\n    }\\n}\\n&quot;),t.enhanceContrastPass=e.buildAShader(&quot;//VTK::System::Dec\\n\\n//=========================================================================\\n//\\n//  Program:   Visualization Toolkit\\n//  Module:    vtkSurfaceLICMapper_CE.glsl\\n//\\n//  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n//  All rights reserved.\\n//  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n//\\n//     This software is distributed WITHOUT ANY WARRANTY; without even\\n//     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n//     PURPOSE.  See the above copyright notice for more information.\\n//\\n//=========================================================================\\n\\n// color contrast enhance stage implemented via histogram stretching\\n// on lightness channel. if the min and max are tweaked it can generate\\n// out-of-range values these will be clamped in 0 to 1\\n\\n// the output of this shader\\n//VTK::Output::Dec\\n\\nuniform sampler2D texGeomColors; // scalars + lighting\\nuniform sampler2D texLIC;        // image lic, mask\\nuniform sampler2D texHSLColors;  // hsla colors\\n\\nuniform float     uLMin;         // min lightness over all fragments\\nuniform float     uLMaxMinDiff;  // max - min lightness over all fragments\\n\\nin vec2 tcoordVC;\\n\\nvec3 HSLToRGB(vec3 HSL)\\n{\\n  vec3 RGB;\\n  float v;\\n  float h = HSL.x;\\n  float sl = HSL.y;\\n  float l = HSL.z;\\n\\n  v = (l &lt;= 0.5) ? (l * (1.0 + sl)) : (l + sl - l * sl);\\n  if (v &lt;= 0.0) {\\n    RGB = vec3(0.0,0.0,0.0);\\n  } else {\\n    float m;\\n    int sextant;\\n    float fract, vsf, mid1, mid2;\\n\\n    m = l + l - v;\\n    h *= 6.0;\\n    sextant = int(h);\\n    fract = h - float(sextant);\\n\\n    vsf = (v - m) * fract;\\n    mid1 = m + vsf;\\n    mid2 = v - vsf;\\n    switch (sextant) {\\n      case 0: RGB.r = v; RGB.g = mid1; RGB.b = m; break;\\n      case 1: RGB.r = mid2; RGB.g = v; RGB.b = m; break;\\n      case 2: RGB.r = m; RGB.g = v; RGB.b = mid1; break;\\n      case 3: RGB.r = m; RGB.g = mid2; RGB.b = v; break;\\n      case 4: RGB.r = mid1; RGB.g = m; RGB.b = v; break;\\n      case 5: RGB.r = v; RGB.g = m; RGB.b = mid2; break;\\n    }\\n  }\\n  return RGB;\\n}\\n\\nvoid main()\\n{\\n  // lookup hsl color , mask\\n  vec4 fragColor = texture2D(texHSLColors, tcoordVC.st);\\n\\n  // don&#x27;t modify masked fragments (masked =&gt; lic.g==1)\\n  vec4 lic = texture2D(texLIC, tcoordVC.st);\\n  if (lic.g==0.0)\\n    {\\n    // normalize lightness channel\\n    fragColor.z = clamp((fragColor.z - uLMin)/uLMaxMinDiff, 0.0, 1.0);\\n    }\\n\\n  // back into rgb space\\n  fragColor.rgb = HSLToRGB(fragColor.xyz);\\n\\n  // add alpha\\n  vec4 geomColor = texture2D(texGeomColors, tcoordVC.st);\\n  fragColor.a = geomColor.a;\\n\\n  gl_FragData[0] = fragColor;\\n}\\n&quot;),t.shadersNeedBuilding=!1)},e.initializeResources=()=&gt;{e.createFBO(),e.generateNoiseTexture(t.licInterface.getNoiseTextureSize()),e.allocateTextures(),e.buildAllShaders(),t.licQuad||(t.licQuad=function(e){const t=Sd.newInstance();t.setOpenGLRenderWindow(e);const n=new Float32Array(12);for(let e=0;e&lt;4;e++)n[3*e]=e%2*2-1,n[3*e+1]=e&gt;1?1:-1,n[3*e+2]=0;const r=new Float32Array([0,0,1,0,0,1,1,1]),o=new Uint16Array(8);o[0]=3,o[1]=0,o[2]=1,o[3]=3,o[4]=3,o[5]=0,o[6]=3,o[7]=2;const a=Is.newInstance({numberOfComponents:3,values:n});a.setName(&quot;points&quot;);const i=Is.newInstance({numberOfComponents:1,values:o}),s=Is.newInstance({numberOfComponents:2,values:r});return t.getCABO().createVBO(i,&quot;polys&quot;,Wg.SURFACE,{points:a,cellOffset:0,tcoords:s}),t}(t._openGLRenderWindow)),t.licHelper||(t.licHelper=Ug.newInstance())},e.prepareForGeometry=()=&gt;{const e=t.framebuffer;e.saveCurrentBindingsAndBuffers(),e.bind(),t.geometryImage.activate(),t.vectorImage.activate(),t.maskVectorImage.activate(),e.removeColorBuffer(0),e.removeColorBuffer(2),e.removeColorBuffer(3),e.setColorBuffer(t.geometryImage,0),e.setColorBuffer(t.vectorImage,2),e.setColorBuffer(t.maskVectorImage,3),e.setDepthBuffer(t.depthTexture);const n=t.context;n.drawBuffers([n.COLOR_ATTACHMENT0,n.NONE,n.COLOR_ATTACHMENT2,n.COLOR_ATTACHMENT3]),n.viewport(0,0,...t.size),n.scissor(0,0,...t.size),n.disable(n.BLEND),n.disable(n.DEPTH_TEST),n.disable(n.SCISSOR_TEST),n.clearColor(0,0,0,0),n.clear(n.DEPTH_BUFFER_BIT|n.COLOR_BUFFER_BIT)},e.copyToScreen=n=&gt;{t.RGBColorImage.activate(),t.depthTexture.activate(),t.licCopyPass||e.initializeResources();const r=t.licCopyPass;t._openGLRenderWindow.getShaderCache().readyShaderProgram(r);const o=t.context;o.viewport(0,0,...n),o.scissor(0,0,...n),o.disable(o.BLEND),o.enable(o.DEPTH_TEST),o.disable(o.SCISSOR_TEST),r.setUniformi(&quot;texDepth&quot;,t.depthTexture.getTextureUnit()),r.setUniformi(&quot;texRGBColors&quot;,t.RGBColorImage.getTextureUnit()),e.renderQuad(n,r),t.RGBColorImage.deactivate(),t.depthTexture.deactivate()},e.combineColorsAndLIC=()=&gt;{const n=t.context,r=t.framebuffer;r.saveCurrentBindingsAndBuffers(),r.bind(),r.create(...t.size),r.removeColorBuffer(0),r.removeColorBuffer(1),r.setColorBuffer(t.RGBColorImage,0),r.setColorBuffer(t.HSLColorImage,1),n.drawBuffers([n.COLOR_ATTACHMENT0,n.COLOR_ATTACHMENT1]),n.disable(n.DEPTH_TEST),n.clearColor(0,0,0,0),n.clear(n.COLOR_BUFFER_BIT),t.vectorImage.activate(),t.geometryImage.activate(),t.LICImage.activate(),t.licColorPass||e.initializeResources();const o=t.licColorPass;t._openGLRenderWindow.getShaderCache().readyShaderProgram(o),o.setUniformi(&quot;texVectors&quot;,t.vectorImage.getTextureUnit()),o.setUniformi(&quot;texGeomColors&quot;,t.geometryImage.getTextureUnit());const{colorMode:a,LICIntensity:i,mapModeBias:s,maskIntensity:l,maskColor:c,enhanceContrast:u,lowColorContrastEnhancementFactor:d,highColorContrastEnhancementFactor:p}=t.licInterface.get(&quot;colorMode&quot;,&quot;LICIntensity&quot;,&quot;mapModeBias&quot;,&quot;maskIntensity&quot;,&quot;maskColor&quot;,&quot;enhanceContrast&quot;,&quot;lowColorContrastEnhancementFactor&quot;,&quot;highColorContrastEnhancementFactor&quot;);if(o.setUniformi(&quot;texLIC&quot;,t.LICImage.getTextureUnit()),o.setUniformi(&quot;uScalarColorMode&quot;,a),o.setUniformf(&quot;uLICIntensity&quot;,i),o.setUniformf(&quot;uMapBias&quot;,s),o.setUniformf(&quot;uMaskIntensity&quot;,l),o.setUniform3f(&quot;uMaskColor&quot;,...c),e.renderQuad(t.size,o),t.vectorImage.deactivate(),t.geometryImage.deactivate(),t.LICImage.deactivate(),r.removeColorBuffer(0),r.removeColorBuffer(1),n.drawBuffers([n.NONE]),u===Bg||u===Fg){let o=0,a=1,i=a-o;o+=i*d,a-=i*p,i=a-o,r.setColorBuffer(t.RGBColorImage),n.drawBuffers([n.COLOR_ATTACHMENT0]),t.geometryImage.activate(),t.HSLColorImage.activate(),t.LICImage.activate(),t.enhanceContrastPass||e.initializeResources();const{enhanceContrastPass:s}=t;t._openGLRenderWindow.getShaderCache().readyShaderProgram(s),s.setUniformi(&quot;texGeomColors&quot;,t.geometryImage.getTextureUnit()),s.setUniformi(&quot;texHSLColors&quot;,t.HSLColorImage.getTextureUnit()),s.setUniformi(&quot;texLIC&quot;,t.LICImage.getTextureUnit()),s.setUniformf(&quot;uLMin&quot;,o),s.setUniformf(&quot;uLMaxMinDiff&quot;,i),e.renderQuad(t.size,s),t.geometryImage.deactivate(),t.HSLColorImage.deactivate(),t.LICImage.deactivate(),r.removeColorBuffer(0),n.drawBuffers([n.NONE])}r.restorePreviousBindingsAndBuffers()},e.applyLIC=()=&gt;{const e=t.licInterface.get(&quot;stepSize&quot;,&quot;numberOfSteps&quot;,&quot;enhancedLIC&quot;,&quot;enhanceContrast&quot;,&quot;lowLICContrastEnhancementFactor&quot;,&quot;highLICContrastEnhancementFactor&quot;,&quot;antiAlias&quot;,&quot;normalizeVectors&quot;,&quot;maskThreshold&quot;,&quot;transformVectors&quot;),n=t.licHelper.executeLIC(t.size,t.vectorImage,t.maskVectorImage,t.noiseTexture,t._openGLRenderWindow,e);if(!n)return console.error(&quot;Failed to compute image LIC&quot;),void(t.LICImage=null);t.LICImage=n},e.setSize=n=&gt;{Array.isArray(n)&amp;&amp;2===n.length&amp;&amp;(t.size&amp;&amp;t.size[0]===n[0]&amp;&amp;t.size[1]===n[1]||(t.size=n,e.releaseGraphicsResources()))},e.releaseGraphicsResources=()=&gt;{t.geometryImage&amp;&amp;(t.geometryImage.releaseGraphicsResources(),t.geometryImage=null),t.vectorImage&amp;&amp;(t.vectorImage.releaseGraphicsResources(),t.vectorImage=null),t.maskVectorImage&amp;&amp;(t.maskVectorImage.releaseGraphicsResources(),t.maskVectorImage=null),t.LICImage&amp;&amp;(t.LICImage.releaseGraphicsResources(),t.LICImage=null),t.RGBColorImage&amp;&amp;(t.RGBColorImage.releaseGraphicsResources(),t.RGBColorImage=null),t.HSLColorImage&amp;&amp;(t.HSLColorImage.releaseGraphicsResources(),t.HSLColorImage=null),t.depthTexture&amp;&amp;(t.depthTexture.releaseGraphicsResources(),t.depthTexture=null),t.framebuffer&amp;&amp;(t.framebuffer.releaseGraphicsResources(),t.framebuffer=null)}}const jg={context:null,shadersNeedBuilding:!0,reallocateTextures:!0,size:null,licInterface:null};function Xg(e,t,n={}){Object.assign(t,jg,n),zg.extend(e,t,n),sn.obj(e,t),sn.setGet(e,t,[&quot;context&quot;,&quot;_openGLRenderWindow&quot;,&quot;reallocateTextures&quot;,&quot;licInterface&quot;,&quot;size&quot;]),sn.moveToProtected(e,t,[&quot;openGLRenderWindow&quot;]),Hg(e,t)}var qg={newInstance:sn.newInstance(Xg,&quot;vtkSurfaceLICInterface&quot;),extend:Xg};const{vtkErrorMacro:Yg}=ln;const Jg={canDrawLIC:!1,rebuildLICShaders:!1,rebuildLICBuffers:!1,openGLLicInterface:null};const Zg=Xt((function(e,t,n={}){Object.assign(t,Jg,n),up.extend(e,t,n),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLSurfaceLICMapper&quot;);const n={...e};e.getNeedToRebuildShaders=(e,r,o)=&gt;t.rebuildLICShaders||n.getNeedToRebuildShaders(e,r,o),e.replaceShaderValues=(e,r,o)=&gt;{const a=t.lastBoundBO.getReferenceByName(&quot;lastLightComplexity&quot;);let i=e.Vertex,s=e.Fragment;const l=t.renderable.getInputArrayToProcess(0);if(l&amp;&amp;t.canDrawLIC){s=vd.substitute(s,&quot;//VTK::Output::Dec&quot;,[&quot;//VTK::Output::Dec&quot;,&quot;layout(location = 2) out vec4 vectorTexture;&quot;,&quot;layout(location = 3) out vec4 maskVectorTexture;&quot;]).result;const n=`${l.getName()}MC`;0===a&amp;&amp;t.lastBoundBO.set({lastLightComplexity:1},!0),i=vd.substitute(i,&quot;//VTK::TCoord::Dec&quot;,[`attribute vec3 ${n};`,&quot;out vec3 licOutput;&quot;,&quot;//VTK::TCoord::Dec&quot;]).result,i=vd.substitute(i,&quot;//VTK::TCoord::Impl&quot;,[`licOutput = ${n};`,&quot;//VTK::TCoord::Impl&quot;]).result,s=vd.substitute(s,&quot;//VTK::TCoord::Dec&quot;,[&quot;uniform int uMaskOnSurface;&quot;,&quot;uniform mat3 normalMatrix;&quot;,&quot;in vec3 licOutput;&quot;,&quot;//VTK::TCoord::Dec&quot;]).result,s=vd.substitute(s,&quot;//VTK::TCoord::Impl&quot;,[&quot;// projected vectors&quot;,&quot;  vec3 tcoordLIC = normalMatrix * licOutput;&quot;,&quot;  vec3 normN = normalize(normalVCVSOutput);&quot;,&quot;  float k = dot(tcoordLIC, normN);&quot;,&quot;  vec3 projected = (tcoordLIC - k*normN);&quot;,&quot;  vectorTexture = vec4(projected.x, projected.y, 0.0 , 1.0);&quot;,&quot;// vectors for fragment masking&quot;,&quot;  if (uMaskOnSurface == 0)&quot;,&quot;    {&quot;,&quot;    maskVectorTexture = vec4(licOutput, 1.0);&quot;,&quot;    }&quot;,&quot;  else&quot;,&quot;    {&quot;,&quot;    maskVectorTexture = vec4(projected.x, projected.y, 0.0 , 1.0);&quot;,&quot;    }&quot;,&quot;//VTK::TCoord::Impl&quot;],!1).result,e.Vertex=i}t.rebuildLICShaders=!1,e.Fragment=s,n.replaceShaderValues(e,r,o),a&gt;0&amp;&amp;t.lastBoundBO.set({lastLightComplexity:a},!0)},e.setMapperShaderParameters=(e,r,o)=&gt;{n.setMapperShaderParameters(e,r,o),t.canDrawLIC&amp;&amp;e.getProgram().setUniformi(&quot;uMaskOnSurface&quot;,t.maskOnSurface)},e.getNeedToRebuildBufferObjects=(e,r)=&gt;t.rebuildLICBuffers||n.getNeedToRebuildBufferObjects(e,r),e.buildBufferObjects=(e,r)=&gt;{if(t.canDrawLIC){const e=t.renderable.getInputArrayToProcess(0);e&amp;&amp;e.getNumberOfComponents()&gt;1&amp;&amp;t.renderable.setCustomShaderAttributes([e.getName()])}t.rebuildLICBuffers=!1,n.buildBufferObjects(e,r)},e.pushState=e=&gt;{t.stateCache={[e.BLEND]:e.isEnabled(e.BLEND),[e.DEPTH_TEST]:e.isEnabled(e.DEPTH_TEST),[e.SCISSOR_TEST]:e.isEnabled(e.SCISSOR_TEST),[e.CULL_FACE]:e.isEnabled(e.CULL_FACE)}},e.popState=e=&gt;{const n=n=&gt;t.stateCache[n]?e.enable(n):e.disable(n);n(e.BLEND),n(e.DEPTH_TEST),n(e.SCISSOR_TEST),n(e.CULL_FACE)},e.renderPiece=(r,o)=&gt;{let a=!0;t._openGLRenderWindow.getWebgl2()||(Yg(&quot;SurfaceLICMapper Requires WebGL 2&quot;),a=!1),t.context.getExtension(&quot;EXT_color_buffer_float&quot;)&amp;&amp;t.context.getExtension(&quot;OES_texture_float_linear&quot;)||(Yg(&quot;SurfaceLICMapper requires the EXT_color_buffer_float and OES_texture_float_linear WebGL2 extensions.&quot;),a=!1),t.currentInput=t.renderable.getInputData(),t.currentInput||(Yg(&quot;No input&quot;),a=!1);let i=t.renderable.getLicInterface();i||(i=zg.newInstance(),t.renderable.setLicInterface(i)),t.openGLLicInterface||(t.openGLLicInterface=qg.newInstance()),i!==t.openGLLicInterface.getLicInterface()&amp;&amp;t.openGLLicInterface.setLicInterface(i);const s=t.renderable.getInputArrayToProcess(0);if(i.getEnableLIC()&amp;&amp;(!s||s.getNumberOfComponents()&lt;2)&amp;&amp;(Yg(&quot;No vector input array&quot;),a=!1),i.getEnableLIC()||(a=!1),t.canDrawLIC!==a&amp;&amp;(t.rebuildLICShaders=!0,t.rebuildLICBuffers=!0),t.canDrawLIC=a,!a||!i.getEnableLIC())return void n.renderPiece(r,o);const l=t.context,c=o.getProperty().getBackfaceCulling(),u=o.getProperty().getFrontfaceCulling();c||u?u?(t._openGLRenderWindow.enableCullFace(),l.cullFace(l.FRONT)):(t._openGLRenderWindow.enableCullFace(),l.cullFace(l.BACK)):t._openGLRenderWindow.disableCullFace();const d=t._openGLRenderWindow.getSize(),p=d.map((e=&gt;Math.round(e*i.getViewPortScale())));t.openGLLicInterface.setSize(p),t.openGLLicInterface.setOpenGLRenderWindow(t._openGLRenderWindow),t.openGLLicInterface.setContext(t.context),e.pushState(t.context),t.openGLLicInterface.initializeResources(),t.openGLLicInterface.prepareForGeometry(),e.popState(t.context),n.renderPieceStart(r,o),n.renderPieceDraw(r,o),n.renderPieceFinish(r,o),e.pushState(t.context),t.VBOBuildTime.modified(),t.openGLLicInterface.completedGeometry(),t.context.disable(t.context.CULL_FACE),t.openGLLicInterface.applyLIC(),t.openGLLicInterface.combineColorsAndLIC(),t.openGLLicInterface.copyToScreen(d),e.popState(t.context)}}(e,t),Gt(e,t,[&quot;openGLLicInterface&quot;])}),&quot;vtkOpenGLSurfaceLICMapper&quot;);vn(&quot;vtkSurfaceLICMapper&quot;,Zg);const{vtkErrorMacro:Qg}=ln;const $g={};const em=Xt((function(e,t,n={}){Object.assign(t,$g,n),up.extend(e,t,n),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLSphereMapper&quot;);const n={...e};e.getShaderTemplate=(e,t,n)=&gt;{e.Vertex=&quot;//VTK::System::Dec\\n\\n/*=========================================================================\\n\\n  Program:   Visualization Toolkit\\n  Module:    vtkSphereMapperVS.glsl\\n\\n  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n  All rights reserved.\\n  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n\\n     This software is distributed WITHOUT ANY WARRANTY; without even\\n     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n     PURPOSE.  See the above copyright notice for more information.\\n\\n=========================================================================*/\\n// this shader implements imposters in OpenGL for Spheres\\n\\nattribute vec4 vertexMC;\\nattribute vec2 offsetMC;\\n\\n// optional normal declaration\\n//VTK::Normal::Dec\\n\\n//VTK::Picking::Dec\\n\\n// Texture coordinates\\n//VTK::TCoord::Dec\\n\\nuniform mat3 normalMatrix; // transform model coordinate directions to view coordinates\\n\\n// material property values\\n//VTK::Color::Dec\\n\\n// clipping plane vars\\n//VTK::Clip::Dec\\n\\n// camera and actor matrix values\\n//VTK::Camera::Dec\\n\\nvarying vec4 vertexVCVSOutput;\\nvarying float radiusVCVSOutput;\\nvarying vec3 centerVCVSOutput;\\n\\nuniform int cameraParallel;\\nuniform float scaleFactor;\\n\\nvoid main()\\n{\\n  //VTK::Picking::Impl\\n\\n  //VTK::Color::Impl\\n\\n  //VTK::Normal::Impl\\n\\n  //VTK::TCoord::Impl\\n\\n  //VTK::Clip::Impl\\n\\n  // compute the projected vertex position\\n  vec2 scaledOffsetMC = scaleFactor * offsetMC;\\n  vertexVCVSOutput = MCVCMatrix * vertexMC;\\n  centerVCVSOutput = vertexVCVSOutput.xyz;\\n  radiusVCVSOutput = length(scaledOffsetMC)*0.5;\\n\\n  // make the triangle face the camera\\n  if (cameraParallel == 0)\\n    {\\n    vec3 dir = normalize(-vertexVCVSOutput.xyz);\\n    vec3 base2 = normalize(cross(dir,vec3(1.0,0.0,0.0)));\\n    vec3 base1 = cross(base2,dir);\\n    vertexVCVSOutput.xyz = vertexVCVSOutput.xyz + scaledOffsetMC.x*base1 + scaledOffsetMC.y*base2;\\n    }\\n  else\\n    {\\n    // add in the offset\\n    vertexVCVSOutput.xy = vertexVCVSOutput.xy + scaledOffsetMC;\\n    }\\n\\n  gl_Position = VCPCMatrix * vertexVCVSOutput;\\n}\\n&quot;,e.Fragment=Xd,e.Geometry=&quot;&quot;},e.replaceShaderValues=(e,r,o)=&gt;{let a=e.Vertex,i=e.Fragment;a=vd.substitute(a,&quot;//VTK::Camera::Dec&quot;,[&quot;uniform mat4 VCPCMatrix;\\n&quot;,&quot;uniform mat4 MCVCMatrix;&quot;]).result,i=vd.substitute(i,&quot;//VTK::PositionVC::Dec&quot;,[&quot;varying vec4 vertexVCVSOutput;&quot;]).result,i=vd.substitute(i,&quot;//VTK::PositionVC::Impl&quot;,[&quot;vec4 vertexVC = vertexVCVSOutput;\\n&quot;]).result,i=vd.substitute(i,&quot;//VTK::Normal::Dec&quot;,[&quot;uniform float invertedDepth;\\n&quot;,&quot;uniform int cameraParallel;\\n&quot;,&quot;varying float radiusVCVSOutput;\\n&quot;,&quot;varying vec3 centerVCVSOutput;\\n&quot;,&quot;uniform mat4 VCPCMatrix;\\n&quot;]).result;let s=&quot;&quot;;t.context.getExtension(&quot;EXT_frag_depth&quot;)&amp;&amp;(s=&quot;gl_FragDepthEXT = (pos.z / pos.w + 1.0) / 2.0;\\n&quot;),t._openGLRenderWindow.getWebgl2()&amp;&amp;(s=&quot;gl_FragDepth = (pos.z / pos.w + 1.0) / 2.0;\\n&quot;),i=vd.substitute(i,&quot;//VTK::Depth::Impl&quot;,[&quot;  vec3 EyePos;\\n&quot;,&quot;  vec3 EyeDir;\\n&quot;,&quot;  if (cameraParallel != 0) {\\n&quot;,&quot;    EyePos = vec3(vertexVC.x, vertexVC.y, vertexVC.z + 3.0*radiusVCVSOutput);\\n&quot;,&quot;    EyeDir = vec3(0.0,0.0,-1.0); }\\n&quot;,&quot;  else {\\n&quot;,&quot;    EyeDir = vertexVC.xyz;\\n&quot;,&quot;    EyePos = vec3(0.0,0.0,0.0);\\n&quot;,&quot;    float lengthED = length(EyeDir);\\n&quot;,&quot;    EyeDir = normalize(EyeDir);\\n&quot;,&quot;    if (lengthED &gt; radiusVCVSOutput*3.0) {\\n&quot;,&quot;      EyePos = vertexVC.xyz - EyeDir*3.0*radiusVCVSOutput; }\\n&quot;,&quot;    }\\n&quot;,&quot;  EyePos = EyePos - centerVCVSOutput;\\n&quot;,&quot;  EyePos = EyePos/radiusVCVSOutput;\\n&quot;,&quot;  float b = 2.0*dot(EyePos,EyeDir);\\n&quot;,&quot;  float c = dot(EyePos,EyePos) - 1.0;\\n&quot;,&quot;  float d = b*b - 4.0*c;\\n&quot;,&quot;  vec3 normalVCVSOutput = vec3(0.0,0.0,1.0);\\n&quot;,&quot;  if (d &lt; 0.0) { discard; }\\n&quot;,&quot;  else {\\n&quot;,&quot;    float t = (-b - invertedDepth*sqrt(d))*0.5;\\n&quot;,&quot;    normalVCVSOutput = invertedDepth*normalize(EyePos + t*EyeDir);\\n&quot;,&quot;    vertexVC.xyz = normalVCVSOutput*radiusVCVSOutput + centerVCVSOutput;\\n&quot;,&quot;    }\\n&quot;,&quot;  vec4 pos = VCPCMatrix * vertexVC;\\n&quot;,s]).result,i=vd.substitute(i,&quot;//VTK::Normal::Impl&quot;,&quot;&quot;).result,t.haveSeenDepthRequest&amp;&amp;(i=vd.substitute(i,&quot;//VTK::ZBuffer::Impl&quot;,[&quot;if (depthRequest == 1) {&quot;,&quot;float computedZ = (pos.z / pos.w + 1.0) / 2.0;&quot;,&quot;float iz = floor(computedZ * 65535.0 + 0.1);&quot;,&quot;float rf = floor(iz/256.0)/255.0;&quot;,&quot;float gf = mod(iz,256.0)/255.0;&quot;,&quot;gl_FragData[0] = vec4(rf, gf, 0.0, 1.0); }&quot;]).result),e.Vertex=a,e.Fragment=i,n.replaceShaderValues(e,r,o)},e.setMapperShaderParameters=(e,r,o)=&gt;{if(e.getCABO().getElementCount()&amp;&amp;(t.VBOBuildTime&gt;e.getAttributeUpdateTime().getMTime()||e.getShaderSourceTime().getMTime()&gt;e.getAttributeUpdateTime().getMTime())&amp;&amp;e.getProgram().isAttributeUsed(&quot;offsetMC&quot;)&amp;&amp;(e.getVAO().addAttributeArray(e.getProgram(),e.getCABO(),&quot;offsetMC&quot;,12,e.getCABO().getStride(),t.context.FLOAT,2,!1)||Qg(&quot;Error setting &#x27;offsetMC&#x27; in shader VAO.&quot;)),e.getProgram().isUniformUsed(&quot;invertedDepth&quot;)&amp;&amp;e.getProgram().setUniformf(&quot;invertedDepth&quot;,t.invert?-1:1),e.getProgram().isUniformUsed(&quot;scaleFactor&quot;)){const n=t.currentInput.getPointData();null!=t.renderable.getScaleArray()&amp;&amp;n.hasArray(t.renderable.getScaleArray())?e.getProgram().setUniformf(&quot;scaleFactor&quot;,t.renderable.getScaleFactor()):e.getProgram().setUniformf(&quot;scaleFactor&quot;,1)}n.setMapperShaderParameters(e,r,o)},e.setCameraShaderParameters=(e,n,r)=&gt;{const o=e.getProgram(),a=n.getActiveCamera(),i=t.openGLCamera.getKeyMatrices(n);o.isUniformUsed(&quot;VCPCMatrix&quot;)&amp;&amp;o.setUniformMatrix(&quot;VCPCMatrix&quot;,i.vcpc);const s=new Float64Array(16);if(o.isUniformUsed(&quot;MCVCMatrix&quot;))if(r.getIsIdentity())T(s,i.wcvc),e.getCABO().getCoordShiftAndScaleEnabled()&amp;&amp;A(s,s,e.getCABO().getInverseShiftAndScaleMatrix()),o.setUniformMatrix(&quot;MCVCMatrix&quot;,s);else{const n=t.openGLActor.getKeyMatrices();A(s,i.wcvc,n.mcwc),e.getCABO().getCoordShiftAndScaleEnabled()&amp;&amp;A(s,s,e.getCABO().getInverseShiftAndScaleMatrix()),o.setUniformMatrix(&quot;MCVCMatrix&quot;,s)}o.isUniformUsed(&quot;cameraParallel&quot;)&amp;&amp;e.getProgram().setUniformi(&quot;cameraParallel&quot;,a.getParallelProjection())},e.getOpenGLMode=(e,n)=&gt;t.context.TRIANGLES,e.buildBufferObjects=(e,n)=&gt;{const r=t.currentInput;if(null===r)return;t.renderable.mapScalars(r,1);const o=t.renderable.getColorMapColors(),a=t.primitives[t.primTypes.Tris].getCABO(),i=r.getPointData(),s=r.getPoints(),l=s.getNumberOfPoints(),c=s.getData();let u=null;null!=t.renderable.getScaleArray()&amp;&amp;i.hasArray(t.renderable.getScaleArray())&amp;&amp;(u=i.getArray(t.renderable.getScaleArray()).getData());let d=null,p=0,f=null;o?(p=o.getNumberOfComponents(),a.setColorOffset(0),a.setColorBOStride(4),d=o.getData(),f=new Uint8Array(3*l*4),a.getColorBO()||a.setColorBO(nd.newInstance()),a.getColorBO().setOpenGLRenderWindow(t._openGLRenderWindow)):a.getColorBO()&amp;&amp;a.setColorBO(null),a.setColorComponents(p);const g=new Float32Array(5*l*3);a.setStride(20);const m=Math.cos(wo(30));let h=0,v=0;const{useShiftAndScale:T,coordShift:x,coordScale:y}=rd(s);T&amp;&amp;a.setCoordShiftAndScale(x,y);let b=0,A=0;for(let e=0;e&lt;l;++e){let n=t.renderable.getRadius();u&amp;&amp;(n=u[e]),h=3*e;const r=(c[h++]-x[0])*y[0],o=(c[h++]-x[1])*y[1],a=(c[h++]-x[2])*y[2];g[b++]=r,g[b++]=o,g[b++]=a,g[b++]=-2*n*m,g[b++]=-n,d&amp;&amp;(v=e*p,f[A++]=d[v],f[A++]=d[v+1],f[A++]=d[v+2],f[A++]=d[v+3]),g[b++]=r,g[b++]=o,g[b++]=a,g[b++]=2*n*m,g[b++]=-n,d&amp;&amp;(f[A++]=d[v],f[A++]=d[v+1],f[A++]=d[v+2],f[A++]=d[v+3]),g[b++]=r,g[b++]=o,g[b++]=a,g[b++]=0,g[b++]=2*n,d&amp;&amp;(f[A++]=d[v],f[A++]=d[v+1],f[A++]=d[v+2],f[A++]=d[v+3])}a.setElementCount(b/5),a.upload(g,Zu.ARRAY_BUFFER),o&amp;&amp;a.getColorBO().upload(f,Zu.ARRAY_BUFFER),t.VBOBuildTime.modified()}}(e,t)}),&quot;vtkOpenGLSphereMapper&quot;);vn(&quot;vtkSphereMapper&quot;,em);const{vtkErrorMacro:tm}=ln;const nm={};const rm=Xt((function(e,t,n={}){Object.assign(t,nm,n),up.extend(e,t,n),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLStickMapper&quot;);const n={...e};e.getShaderTemplate=(e,t,n)=&gt;{e.Vertex=&quot;//VTK::System::Dec\\n\\n/*=========================================================================\\n\\n  Program:   Visualization Toolkit\\n  Module:    vtkStickMapperVS.glsl\\n\\n  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\\n  All rights reserved.\\n  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\\n\\n     This software is distributed WITHOUT ANY WARRANTY; without even\\n     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\\n     PURPOSE.  See the above copyright notice for more information.\\n\\n=========================================================================*/\\n// this shader implements imposters in OpenGL for Sticks\\n\\nattribute vec4 vertexMC;\\nattribute vec3 orientMC;\\nattribute vec4 offsetMC;\\nattribute float radiusMC;\\n\\n// optional normal declaration\\n//VTK::Normal::Dec\\n\\n//VTK::Picking::Dec\\n\\n// Texture coordinates\\n//VTK::TCoord::Dec\\n\\nuniform mat3 normalMatrix; // transform model coordinate directions to view coordinates\\n\\n// material property values\\n//VTK::Color::Dec\\n\\n// clipping plane vars\\n//VTK::Clip::Dec\\n\\n// camera and actor matrix values\\n//VTK::Camera::Dec\\n\\nvarying vec4 vertexVCVSOutput;\\nvarying float radiusVCVSOutput;\\nvarying float lengthVCVSOutput;\\nvarying vec3 centerVCVSOutput;\\nvarying vec3 orientVCVSOutput;\\n\\nuniform int cameraParallel;\\n\\nvoid main()\\n{\\n  //VTK::Picking::Impl\\n\\n  //VTK::Color::Impl\\n\\n  //VTK::Normal::Impl\\n\\n  //VTK::TCoord::Impl\\n\\n  //VTK::Clip::Impl\\n\\n  vertexVCVSOutput = MCVCMatrix * vertexMC;\\n  centerVCVSOutput = vertexVCVSOutput.xyz;\\n  radiusVCVSOutput = radiusMC;\\n  lengthVCVSOutput = length(orientMC);\\n  orientVCVSOutput = normalMatrix * normalize(orientMC);\\n\\n  // make sure it is pointing out of the screen\\n  if (orientVCVSOutput.z &lt; 0.0)\\n    {\\n    orientVCVSOutput = -orientVCVSOutput;\\n    }\\n\\n  // make the basis\\n  vec3 xbase;\\n  vec3 ybase;\\n  vec3 dir = vec3(0.0,0.0,1.0);\\n  if (cameraParallel == 0)\\n    {\\n    dir = normalize(-vertexVCVSOutput.xyz);\\n    }\\n  if (abs(dot(dir,orientVCVSOutput)) == 1.0)\\n    {\\n    xbase = normalize(cross(vec3(0.0,1.0,0.0),orientVCVSOutput));\\n    ybase = cross(xbase,orientVCVSOutput);\\n    }\\n  else\\n    {\\n    xbase = normalize(cross(orientVCVSOutput,dir));\\n    ybase = cross(orientVCVSOutput,xbase);\\n    }\\n\\n  vec3 offsets = offsetMC.xyz*2.0-1.0;\\n  vertexVCVSOutput.xyz = vertexVCVSOutput.xyz +\\n    radiusVCVSOutput*offsets.x*xbase +\\n    radiusVCVSOutput*offsets.y*ybase +\\n    0.5*lengthVCVSOutput*offsets.z*orientVCVSOutput;\\n\\n  gl_Position = VCPCMatrix * vertexVCVSOutput;\\n}\\n&quot;,e.Fragment=Xd,e.Geometry=&quot;&quot;},e.replaceShaderValues=(e,r,o)=&gt;{let a=e.Vertex,i=e.Fragment;a=vd.substitute(a,&quot;//VTK::Camera::Dec&quot;,[&quot;uniform mat4 VCPCMatrix;\\n&quot;,&quot;uniform mat4 MCVCMatrix;&quot;]).result,i=vd.substitute(i,&quot;//VTK::PositionVC::Dec&quot;,&quot;varying vec4 vertexVCVSOutput;&quot;).result,i=vd.substitute(i,&quot;//VTK::PositionVC::Impl&quot;,&quot;  vec4 vertexVC = vertexVCVSOutput;\\n&quot;).result,i=vd.substitute(i,&quot;//VTK::Normal::Dec&quot;,[&quot;uniform int cameraParallel;\\n&quot;,&quot;varying float radiusVCVSOutput;\\n&quot;,&quot;varying vec3 orientVCVSOutput;\\n&quot;,&quot;varying float lengthVCVSOutput;\\n&quot;,&quot;varying vec3 centerVCVSOutput;\\n&quot;,&quot;uniform mat4 VCPCMatrix;\\n&quot;]).result;let s=&quot;&quot;;t.context.getExtension(&quot;EXT_frag_depth&quot;)&amp;&amp;(s=&quot;  gl_FragDepthEXT = (pos.z / pos.w + 1.0) / 2.0;\\n&quot;),t._openGLRenderWindow.getWebgl2()&amp;&amp;(s=&quot;gl_FragDepth = (pos.z / pos.w + 1.0) / 2.0;\\n&quot;),i=vd.substitute(i,&quot;//VTK::Depth::Impl&quot;,[&quot;  vec3 EyePos;\\n&quot;,&quot;  vec3 EyeDir;\\n&quot;,&quot;  if (cameraParallel != 0) {\\n&quot;,&quot;    EyePos = vec3(vertexVC.x, vertexVC.y, vertexVC.z + 3.0*radiusVCVSOutput);\\n&quot;,&quot;    EyeDir = vec3(0.0,0.0,-1.0); }\\n&quot;,&quot;  else {\\n&quot;,&quot;    EyeDir = vertexVC.xyz;\\n&quot;,&quot;    EyePos = vec3(0.0,0.0,0.0);\\n&quot;,&quot;    float lengthED = length(EyeDir);\\n&quot;,&quot;    EyeDir = normalize(EyeDir);\\n&quot;,&quot;    if (lengthED &gt; radiusVCVSOutput*3.0) {\\n&quot;,&quot;      EyePos = vertexVC.xyz - EyeDir*3.0*radiusVCVSOutput; }\\n&quot;,&quot;    }\\n&quot;,&quot;  EyePos = EyePos - centerVCVSOutput;\\n&quot;,&quot;  vec3 base1;\\n&quot;,&quot;  if (abs(orientVCVSOutput.z) &lt; 0.99) {\\n&quot;,&quot;    base1 = normalize(cross(orientVCVSOutput,vec3(0.0,0.0,1.0))); }\\n&quot;,&quot;  else {\\n&quot;,&quot;    base1 = normalize(cross(orientVCVSOutput,vec3(0.0,1.0,0.0))); }\\n&quot;,&quot;  vec3 base2 = cross(orientVCVSOutput,base1);\\n&quot;,&quot;  EyePos = vec3(dot(EyePos,base1),dot(EyePos,base2),dot(EyePos,orientVCVSOutput));\\n&quot;,&quot;  EyeDir = vec3(dot(EyeDir,base1),dot(EyeDir,base2),dot(EyeDir,orientVCVSOutput));\\n&quot;,&quot;  EyePos = EyePos/radiusVCVSOutput;\\n&quot;,&quot;  float a = EyeDir.x*EyeDir.x + EyeDir.y*EyeDir.y;\\n&quot;,&quot;  float b = 2.0*(EyePos.x*EyeDir.x + EyePos.y*EyeDir.y);\\n&quot;,&quot;  float c = EyePos.x*EyePos.x + EyePos.y*EyePos.y - 1.0;\\n&quot;,&quot;  float d = b*b - 4.0*a*c;\\n&quot;,&quot;  vec3 normalVCVSOutput = vec3(0.0,0.0,1.0);\\n&quot;,&quot;  if (d &lt; 0.0) { discard; }\\n&quot;,&quot;  else {\\n&quot;,&quot;    float t =  (-b - sqrt(d))/(2.0*a);\\n&quot;,&quot;    float tz = EyePos.z + t*EyeDir.z;\\n&quot;,&quot;    vec3 iPoint = EyePos + t*EyeDir;\\n&quot;,&quot;    if (abs(iPoint.z)*radiusVCVSOutput &gt; lengthVCVSOutput*0.5) {\\n&quot;,&quot;      float t2 = (-b + sqrt(d))/(2.0*a);\\n&quot;,&quot;      float tz2 = EyePos.z + t2*EyeDir.z;\\n&quot;,&quot;      if (tz2*radiusVCVSOutput &gt; lengthVCVSOutput*0.5 || tz*radiusVCVSOutput &lt; -0.5*lengthVCVSOutput) { discard; }\\n&quot;,&quot;      else {\\n&quot;,&quot;        normalVCVSOutput = orientVCVSOutput;\\n&quot;,&quot;        float t3 = (lengthVCVSOutput*0.5/radiusVCVSOutput - EyePos.z)/EyeDir.z;\\n&quot;,&quot;        iPoint = EyePos + t3*EyeDir;\\n&quot;,&quot;        vertexVC.xyz = radiusVCVSOutput*(iPoint.x*base1 + iPoint.y*base2 + iPoint.z*orientVCVSOutput) + centerVCVSOutput;\\n&quot;,&quot;        }\\n&quot;,&quot;      }\\n&quot;,&quot;    else {\\n&quot;,&quot;      normalVCVSOutput = iPoint.x*base1 + iPoint.y*base2;\\n&quot;,&quot;      vertexVC.xyz = radiusVCVSOutput*(normalVCVSOutput + iPoint.z*orientVCVSOutput) + centerVCVSOutput;\\n&quot;,&quot;      }\\n&quot;,&quot;    }\\n&quot;,&quot;  vec4 pos = VCPCMatrix * vertexVC;\\n&quot;,s]).result,i=vd.substitute(i,&quot;//VTK::Normal::Impl&quot;,&quot;&quot;).result,t.haveSeenDepthRequest&amp;&amp;(i=vd.substitute(i,&quot;//VTK::ZBuffer::Impl&quot;,[&quot;if (depthRequest == 1) {&quot;,&quot;float computedZ = (pos.z / pos.w + 1.0) / 2.0;&quot;,&quot;float iz = floor(computedZ * 65535.0 + 0.1);&quot;,&quot;float rf = floor(iz/256.0)/255.0;&quot;,&quot;float gf = mod(iz,256.0)/255.0;&quot;,&quot;gl_FragData[0] = vec4(rf, gf, 0.0, 1.0); }&quot;]).result),e.Vertex=a,e.Fragment=i,n.replaceShaderValues(e,r,o)},e.setMapperShaderParameters=(e,r,o)=&gt;{e.getCABO().getElementCount()&amp;&amp;(t.VBOBuildTime&gt;e.getAttributeUpdateTime().getMTime()||e.getShaderSourceTime().getMTime()&gt;e.getAttributeUpdateTime().getMTime())&amp;&amp;(e.getProgram().isAttributeUsed(&quot;orientMC&quot;)&amp;&amp;(e.getVAO().addAttributeArray(e.getProgram(),e.getCABO(),&quot;orientMC&quot;,12,e.getCABO().getStride(),t.context.FLOAT,3,!1)||tm(&quot;Error setting &#x27;orientMC&#x27; in shader VAO.&quot;)),e.getProgram().isAttributeUsed(&quot;offsetMC&quot;)&amp;&amp;(e.getVAO().addAttributeArray(e.getProgram(),e.getCABO().getColorBO(),&quot;offsetMC&quot;,0,e.getCABO().getColorBOStride(),t.context.UNSIGNED_BYTE,3,!0)||tm(&quot;Error setting &#x27;offsetMC&#x27; in shader VAO.&quot;)),e.getProgram().isAttributeUsed(&quot;radiusMC&quot;)&amp;&amp;(e.getVAO().addAttributeArray(e.getProgram(),e.getCABO(),&quot;radiusMC&quot;,24,e.getCABO().getStride(),t.context.FLOAT,1,!1)||tm(&quot;Error setting &#x27;radiusMC&#x27; in shader VAO.&quot;))),n.setMapperShaderParameters(e,r,o)},e.setCameraShaderParameters=(e,n,r)=&gt;{const o=e.getProgram(),a=n.getActiveCamera(),i=t.openGLCamera.getKeyMatrices(n);if(o.isUniformUsed(&quot;VCPCMatrix&quot;)&amp;&amp;o.setUniformMatrix(&quot;VCPCMatrix&quot;,i.vcpc),r.getIsIdentity())o.isUniformUsed(&quot;MCVCMatrix&quot;)&amp;&amp;o.setUniformMatrix(&quot;MCVCMatrix&quot;,i.wcvc),o.isUniformUsed(&quot;normalMatrix&quot;)&amp;&amp;o.setUniformMatrix3x3(&quot;normalMatrix&quot;,i.normalMatrix);else{const e=t.openGLActor.getKeyMatrices();if(o.isUniformUsed(&quot;MCVCMatrix&quot;)){const t=new Float64Array(16);A(t,i.wcvc,e.mcwc),o.setUniformMatrix(&quot;MCVCMatrix&quot;,t)}if(o.isUniformUsed(&quot;normalMatrix&quot;)){const t=new Float64Array(9);p(t,i.normalMatrix,e.normalMatrix),o.setUniformMatrix3x3(&quot;normalMatrix&quot;,t)}}o.isUniformUsed(&quot;cameraParallel&quot;)&amp;&amp;e.getProgram().setUniformi(&quot;cameraParallel&quot;,a.getParallelProjection())},e.getOpenGLMode=(e,n)=&gt;t.context.TRIANGLES,e.buildBufferObjects=(e,n)=&gt;{const r=t.currentInput;if(null===r)return;t.renderable.mapScalars(r,1);const o=t.renderable.getColorMapColors(),a=t.primitives[t.primTypes.Tris].getCABO(),i=r.getPointData(),s=r.getPoints(),l=s.getNumberOfPoints(),c=s.getData();let u=3;u+=4;let d=null,p=0;a.setColorBOStride(4),a.getColorBO()||a.setColorBO(nd.newInstance()),a.getColorBO().setOpenGLRenderWindow(t._openGLRenderWindow),o&amp;&amp;(p=o.getNumberOfComponents(),a.setColorOffset(4),d=o.getData(),a.setColorBOStride(8)),a.setColorComponents(p),a.setStride(28);const f=new Float32Array(7*l*12),g=new Uint8Array(12*l*(d?8:4));let m=null,h=null;null!=t.renderable.getScaleArray()&amp;&amp;i.hasArray(t.renderable.getScaleArray())&amp;&amp;(m=i.getArray(t.renderable.getScaleArray()).getData()),null!=t.renderable.getOrientationArray()&amp;&amp;i.hasArray(t.renderable.getOrientationArray())?h=i.getArray(t.renderable.getOrientationArray()).getData():tm([&quot;Error setting orientationArray.\\n&quot;,&quot;You have to specify the stick orientation&quot;]);const v=[0,1,3,0,3,2,2,3,5,2,5,4];let T=0,x=0,y=0,b=0;for(let e=0;e&lt;l;++e){let n=t.renderable.getLength(),r=t.renderable.getRadius();m&amp;&amp;(n=m[2*e],r=m[2*e+1]);for(let t=0;t&lt;v.length;++t)T=3*e,f[y++]=c[T++],f[y++]=c[T++],f[y++]=c[T++],T=3*e,f[y++]=h[T++]*n,f[y++]=h[T++]*n,f[y++]=h[T++]*n,f[y++]=r,g[b++]=v[t]%2*255,g[b++]=v[t]&gt;=4?255:0,g[b++]=v[t]&gt;=2?255:0,g[b++]=255,x=e*p,d&amp;&amp;(g[b++]=d[x],g[b++]=d[x+1],g[b++]=d[x+2],g[b++]=d[x+3])}a.setElementCount(y/7),a.upload(f,Zu.ARRAY_BUFFER),a.getColorBO().upload(g,Zu.ARRAY_BUFFER),t.VBOBuildTime.modified()}}(e,t)}),&quot;vtkOpenGLStickMapper&quot;);vn(&quot;vtkStickMapper&quot;,rm);const om=[];om[&quot;-&quot;.charCodeAt(0)]=62,om[&quot;_&quot;.charCodeAt(0)]=63;const am=&quot;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/&quot;;for(let e=0;e&lt;64;e++)om[am.charCodeAt(e)]=e;function im(e){return void 0!==om[e.charCodeAt(0)]}function sm(e,t,n,r){const{start:o,count:a}=t,i=a%4,s=Math.floor(a/4);let l=o,c=null,u=n;for(let t=0;t&lt;s;t++){for(;!im(e[l]);)l++;for(c=om[e.charCodeAt(l++)]&lt;&lt;18;!im(e[l]);)l++;for(c|=om[e.charCodeAt(l++)]&lt;&lt;12;!im(e[l]);)l++;for(c|=om[e.charCodeAt(l++)]&lt;&lt;6;!im(e[l]);)l++;c|=om[e.charCodeAt(l++)],r[u++]=c&gt;&gt;16&amp;255,r[u++]=c&gt;&gt;8&amp;255,r[u++]=255&amp;c}switch(i){case 3:for(;!im(e[l]);)l++;for(c=om[e.charCodeAt(l++)]&lt;&lt;10;!im(e[l]);)l++;for(c|=om[e.charCodeAt(l++)]&lt;&lt;4;!im(e[l]);)l++;c|=om[e.charCodeAt(l++)]&gt;&gt;2,r[u++]=c&gt;&gt;8&amp;255,r[u++]=255&amp;c;break;case 2:for(;!im(e[l]);)l++;for(c=om[e.charCodeAt(l++)]&lt;&lt;2;!im(e[l]);)l++;c|=om[e.charCodeAt(l++)]&gt;&gt;4,r[u++]=255&amp;c;break;case 1:throw new Error(&quot;BASE64: remain 1 should not happen&quot;)}return u}function lm(e,t,n){const r=(e&lt;&lt;16)+(t&lt;&lt;8)+n;return am[r&gt;&gt;18]+am[r&gt;&gt;12&amp;63]+am[r&gt;&gt;6&amp;63]+am[63&amp;r]}function cm(e){const t=new Uint8Array(e),n=e.byteLength%3,r=e.byteLength-n,o=Array(r/3);for(let e=0;e&lt;o.length;e++){const n=3*e;o[e]=lm(t[n],t[n+1],t[n+2])}if(n&gt;0){const e=lm(t[r],t[r+1]||0,t[r+2]||0);1===n?o.push(`${e.substr(0,2)}==`):2===n&amp;&amp;o.push(`${e.substr(0,3)}=`)}return o.join(&quot;&quot;)}var um={toArrayBuffer:function(e){const t=function(e){const t=e.length,n=[];let r=null;for(let o=0;o&lt;t;o++)im(e[o])?(r||(r={start:o,count:0}),r.count++,r.end=o):&quot;=&quot;===e[o]&amp;&amp;r&amp;&amp;(n.push(r),r=null);return r&amp;&amp;n.push(r),n}(e),n=t[t.length-1].end+1,r=(4-n%4)%4,o=new ArrayBuffer(3*(n+r)/4-r),a=new Uint8Array(o);let i=0;for(let n=0;n&lt;t.length;n++)i+=sm(e,t[n],i,a),i+=(4-t[n].count%4)%4;return o},fromArrayBuffer:cm};const dm={};function pm(e,t){dm[e]=t}var fm={get:function(e=&quot;http&quot;,t={}){return dm[e](t)},has:function(e){return!!dm[e]},registerType:pm},gm=Uint8Array,mm=Uint16Array,hm=Uint32Array,vm=new gm([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),Tm=new gm([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),xm=new gm([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),ym=function(e,t){for(var n=new mm(31),r=0;r&lt;31;++r)n[r]=t+=1&lt;&lt;e[r-1];var o=new hm(n[30]);for(r=1;r&lt;30;++r)for(var a=n[r];a&lt;n[r+1];++a)o[a]=a-n[r]&lt;&lt;5|r;return[n,o]},bm=ym(vm,2),Am=bm[0],Cm=bm[1];Am[28]=258,Cm[258]=28;for(var Sm=ym(Tm,0)[0],Pm=new mm(32768),wm=0;wm&lt;32768;++wm){var Im=(43690&amp;wm)&gt;&gt;&gt;1|(21845&amp;wm)&lt;&lt;1;Im=(61680&amp;(Im=(52428&amp;Im)&gt;&gt;&gt;2|(13107&amp;Im)&lt;&lt;2))&gt;&gt;&gt;4|(3855&amp;Im)&lt;&lt;4,Pm[wm]=((65280&amp;Im)&gt;&gt;&gt;8|(255&amp;Im)&lt;&lt;8)&gt;&gt;&gt;1}var Om=function(e,t,n){for(var r=e.length,o=0,a=new mm(t);o&lt;r;++o)e[o]&amp;&amp;++a[e[o]-1];var i,s=new mm(t);for(o=0;o&lt;t;++o)s[o]=s[o-1]+a[o-1]&lt;&lt;1;if(n){i=new mm(1&lt;&lt;t);var l=15-t;for(o=0;o&lt;r;++o)if(e[o])for(var c=o&lt;&lt;4|e[o],u=t-e[o],d=s[e[o]-1]++&lt;&lt;u,p=d|(1&lt;&lt;u)-1;d&lt;=p;++d)i[Pm[d]&gt;&gt;&gt;l]=c}else for(i=new mm(r),o=0;o&lt;r;++o)e[o]&amp;&amp;(i[o]=Pm[s[e[o]-1]++]&gt;&gt;&gt;15-e[o]);return i},Rm=new gm(288);for(wm=0;wm&lt;144;++wm)Rm[wm]=8;for(wm=144;wm&lt;256;++wm)Rm[wm]=9;for(wm=256;wm&lt;280;++wm)Rm[wm]=7;for(wm=280;wm&lt;288;++wm)Rm[wm]=8;var Mm=new gm(32);for(wm=0;wm&lt;32;++wm)Mm[wm]=5;var Dm=Om(Rm,9,1),Em=Om(Mm,5,1),Vm=function(e){for(var t=e[0],n=1;n&lt;e.length;++n)e[n]&gt;t&amp;&amp;(t=e[n]);return t},Lm=function(e,t,n){var r=t/8|0;return(e[r]|e[r+1]&lt;&lt;8)&gt;&gt;(7&amp;t)&amp;n},Bm=function(e,t){var n=t/8|0;return(e[n]|e[n+1]&lt;&lt;8|e[n+2]&lt;&lt;16)&gt;&gt;(7&amp;t)},Fm=function(e,t,n){(null==t||t&lt;0)&amp;&amp;(t=0),(null==n||n&gt;e.length)&amp;&amp;(n=e.length);var r=new(2==e.BYTES_PER_ELEMENT?mm:4==e.BYTES_PER_ELEMENT?hm:gm)(n-t);return r.set(e.subarray(t,n)),r},Nm=[&quot;unexpected EOF&quot;,&quot;invalid block type&quot;,&quot;invalid length/literal&quot;,&quot;invalid distance&quot;,&quot;stream finished&quot;,&quot;no stream handler&quot;,,&quot;no callback&quot;,&quot;invalid UTF-8 data&quot;,&quot;extra field too long&quot;,&quot;date not in range 1980-2099&quot;,&quot;filename too long&quot;,&quot;stream finishing&quot;,&quot;invalid zip data&quot;],km=function(e,t,n){var r=new Error(t||Nm[e]);if(r.code=e,Error.captureStackTrace&amp;&amp;Error.captureStackTrace(r,km),!n)throw r;return r},Gm=function(e,t,n){var r=e.length;if(!r||n&amp;&amp;n.f&amp;&amp;!n.l)return t||new gm(0);var o=!t||n,a=!n||n.i;n||(n={}),t||(t=new gm(3*r));var i=function(e){var n=t.length;if(e&gt;n){var r=new gm(Math.max(2*n,e));r.set(t),t=r}},s=n.f||0,l=n.p||0,c=n.b||0,u=n.l,d=n.d,p=n.m,f=n.n,g=8*r;do{if(!u){s=Lm(e,l,1);var m=Lm(e,l+1,3);if(l+=3,!m){var h=e[(I=4+((l+7)/8|0))-4]|e[I-3]&lt;&lt;8,v=I+h;if(v&gt;r){a&amp;&amp;km(0);break}o&amp;&amp;i(c+h),t.set(e.subarray(I,v),c),n.b=c+=h,n.p=l=8*v,n.f=s;continue}if(1==m)u=Dm,d=Em,p=9,f=5;else if(2==m){var T=Lm(e,l,31)+257,x=Lm(e,l+10,15)+4,y=T+Lm(e,l+5,31)+1;l+=14;for(var b=new gm(y),A=new gm(19),C=0;C&lt;x;++C)A[xm[C]]=Lm(e,l+3*C,7);l+=3*x;var S=Vm(A),P=(1&lt;&lt;S)-1,w=Om(A,S,1);for(C=0;C&lt;y;){var I,O=w[Lm(e,l,P)];if(l+=15&amp;O,(I=O&gt;&gt;&gt;4)&lt;16)b[C++]=I;else{var R=0,M=0;for(16==I?(M=3+Lm(e,l,3),l+=2,R=b[C-1]):17==I?(M=3+Lm(e,l,7),l+=3):18==I&amp;&amp;(M=11+Lm(e,l,127),l+=7);M--;)b[C++]=R}}var D=b.subarray(0,T),E=b.subarray(T);p=Vm(D),f=Vm(E),u=Om(D,p,1),d=Om(E,f,1)}else km(1);if(l&gt;g){a&amp;&amp;km(0);break}}o&amp;&amp;i(c+131072);for(var V=(1&lt;&lt;p)-1,L=(1&lt;&lt;f)-1,B=l;;B=l){var F=(R=u[Bm(e,l)&amp;V])&gt;&gt;&gt;4;if((l+=15&amp;R)&gt;g){a&amp;&amp;km(0);break}if(R||km(2),F&lt;256)t[c++]=F;else{if(256==F){B=l,u=null;break}var N=F-254;if(F&gt;264){var k=vm[C=F-257];N=Lm(e,l,(1&lt;&lt;k)-1)+Am[C],l+=k}var G=d[Bm(e,l)&amp;L],U=G&gt;&gt;&gt;4;G||km(3),l+=15&amp;G;E=Sm[U];if(U&gt;3){k=Tm[U];E+=Bm(e,l)&amp;(1&lt;&lt;k)-1,l+=k}if(l&gt;g){a&amp;&amp;km(0);break}o&amp;&amp;i(c+131072);for(var _=c+N;c&lt;_;c+=4)t[c]=t[c-E],t[c+1]=t[c+1-E],t[c+2]=t[c+2-E],t[c+3]=t[c+3-E];c=_}}n.l=u,n.p=B,n.b=c,n.f=s,u&amp;&amp;(s=1,n.m=p,n.d=d,n.n=f)}while(!s);return c==t.length?t:Fm(t,0,c)},Um=new gm(0),_m=function(e,t){return e[t]|e[t+1]&lt;&lt;8},Km=function(e,t){return(e[t]|e[t+1]&lt;&lt;8|e[t+2]&lt;&lt;16|e[t+3]&lt;&lt;24)&gt;&gt;&gt;0},zm=function(e,t){return Km(e,t)+4294967296*Km(e,t+4)};function Wm(e,t){return Gm(e,t)}function Hm(e,t){return Gm(e.subarray(function(e){31==e[0]&amp;&amp;139==e[1]&amp;&amp;8==e[2]||km(6,&quot;invalid gzip data&quot;);var t=e[3],n=10;4&amp;t&amp;&amp;(n+=e[10]|2+(e[11]&lt;&lt;8));for(var r=(t&gt;&gt;3&amp;1)+(t&gt;&gt;4&amp;1);r&gt;0;r-=!e[n++]);return n+(2&amp;t)}(e),-8),t||new gm((r=(n=e).length,(n[r-4]|n[r-3]&lt;&lt;8|n[r-2]&lt;&lt;16|n[r-1]&lt;&lt;24)&gt;&gt;&gt;0)));var n,r}function jm(e,t){return Gm(((8!=(15&amp;(n=e)[0])||n[0]&gt;&gt;&gt;4&gt;7||(n[0]&lt;&lt;8|n[1])%31)&amp;&amp;km(6,&quot;invalid zlib data&quot;),32&amp;n[1]&amp;&amp;km(6,&quot;invalid zlib data: preset dictionaries not supported&quot;),e.subarray(2,-4)),t);var n}function Xm(e,t){return 31==e[0]&amp;&amp;139==e[1]&amp;&amp;8==e[2]?Hm(e,t):8!=(15&amp;e[0])||e[0]&gt;&gt;4&gt;7||(e[0]&lt;&lt;8|e[1])%31?Wm(e,t):jm(e,t)}var qm=&quot;undefined&quot;!=typeof TextEncoder&amp;&amp;new TextEncoder,Ym=&quot;undefined&quot;!=typeof TextDecoder&amp;&amp;new TextDecoder;try{Ym.decode(Um,{stream:!0})}catch(e){}function Jm(e,t){if(t){for(var n=&quot;&quot;,r=0;r&lt;e.length;r+=16384)n+=String.fromCharCode.apply(null,e.subarray(r,r+16384));return n}if(Ym)return Ym.decode(e);var o=function(e){for(var t=&quot;&quot;,n=0;;){var r=e[n++],o=(r&gt;127)+(r&gt;223)+(r&gt;239);if(n+o&gt;e.length)return[t,Fm(e,n-1)];o?3==o?(r=((15&amp;r)&lt;&lt;18|(63&amp;e[n++])&lt;&lt;12|(63&amp;e[n++])&lt;&lt;6|63&amp;e[n++])-65536,t+=String.fromCharCode(55296|r&gt;&gt;10,56320|1023&amp;r)):t+=1&amp;o?String.fromCharCode((31&amp;r)&lt;&lt;6|63&amp;e[n++]):String.fromCharCode((15&amp;r)&lt;&lt;12|(63&amp;e[n++])&lt;&lt;6|63&amp;e[n++]):t+=String.fromCharCode(r)}}(e),a=o[0];return o[1].length&amp;&amp;km(8),a}var Zm=function(e,t){return t+30+_m(e,t+26)+_m(e,t+28)},Qm=function(e,t,n){var r=_m(e,t+28),o=Jm(e.subarray(t+46,t+46+r),!(2048&amp;_m(e,t+8))),a=t+46+r,i=Km(e,t+20),s=n&amp;&amp;4294967295==i?$m(e,a):[i,Km(e,t+24),Km(e,t+42)],l=s[0],c=s[1],u=s[2];return[_m(e,t+10),l,c,o,a+_m(e,t+30)+_m(e,t+32),u]},$m=function(e,t){for(;1!=_m(e,t);t+=4+_m(e,t+2));return[zm(e,t+12),zm(e,t+4),zm(e,t+20)]};function eh(e,t){for(var n={},r=e.length-22;101010256!=Km(e,r);--r)(!r||e.length-r&gt;65558)&amp;&amp;km(13);var o=_m(e,r+8);if(!o)return{};var a=Km(e,r+16),i=4294967295==a;i&amp;&amp;(r=Km(e,r-12),101075792!=Km(e,r)&amp;&amp;km(13),o=Km(e,r+32),a=Km(e,r+48));for(var s=t&amp;&amp;t.filter,l=0;l&lt;o;++l){var c=Qm(e,a,i),u=c[0],d=c[1],p=c[2],f=c[3],g=c[4],m=c[5],h=Zm(e,m);a=g,s&amp;&amp;!s({name:f,size:d,originalSize:p,compression:u})||(u?8==u?n[f]=Wm(e.subarray(h,h+d),new gm(p)):km(14,&quot;unknown compression type &quot;+u):n[f]=Fm(e,h,h+d))}return n}function th(){const e=new ArrayBuffer(4),t=new Uint8Array(e),n=new Uint32Array(e);return t[0]=161,t[1]=178,t[2]=195,t[3]=212,3569595041===n[0]?&quot;LittleEndian&quot;:2712847316===n[0]?&quot;BigEndian&quot;:null}var nh={ENDIANNESS:th(),getEndianness:th,swapBytes:function(e,t){if(t&lt;2)return;const n=new Int8Array(e),r=n.length,o=[];for(let e=0;e&lt;r;e+=t){for(let r=0;r&lt;t;r++)o.push(n[e+r]);for(let r=0;r&lt;t;r++)n[e+r]=o.pop()}}};const{vtkErrorMacro:rh,vtkDebugMacro:oh}=sn;let ah=0;function ih(e,t,n={}){const r=new XMLHttpRequest;return r.open(e,t,!0),n.headers&amp;&amp;Object.entries(n.headers).forEach((([e,t])=&gt;r.setRequestHeader(e,t))),n.progressCallback&amp;&amp;r.addEventListener(&quot;progress&quot;,n.progressCallback),r}const sh={fetchArray:function(e,t,n,r={}){return n.ref&amp;&amp;!n.ref.pending?new Promise(((o,a)=&gt;{let i=null;i=n.ref.url?n.ref.url:[t,n.ref.basepath,r.compression?`${n.ref.id}.gz`:n.ref.id].join(&quot;/&quot;);const s=ih(&quot;GET&quot;,i,r);s.onreadystatechange=t=&gt;{1===s.readyState&amp;&amp;(n.ref.pending=!0,1==++ah&amp;&amp;e?.invokeBusy&amp;&amp;e.invokeBusy(!0)),4===s.readyState&amp;&amp;(n.ref.pending=!1,200===s.status||0===s.status?(n.buffer=s.response,r.compression&amp;&amp;(&quot;string&quot;===n.dataType||&quot;JSON&quot;===n.dataType?n.buffer=Jm(Xm(new Uint8Array(n.buffer))):n.buffer=Xm(new Uint8Array(n.buffer)).buffer),&quot;JSON&quot;===n.ref.encode?n.values=JSON.parse(n.buffer):(nh.ENDIANNESS!==n.ref.encode&amp;&amp;nh.ENDIANNESS&amp;&amp;(oh(`Swap bytes of ${n.name}`),nh.swapBytes(n.buffer,gs[n.dataType])),n.values=sn.newTypedArray(n.dataType,n.buffer)),n.values.length!==n.size&amp;&amp;rh(`Error in FetchArray: ${n.name}, does not have the proper array size. Got ${n.values.length}, instead of ${n.size}`),delete n.ref,0==--ah&amp;&amp;e?.invokeBusy&amp;&amp;e.invokeBusy(!1),e?.modified&amp;&amp;e.modified(),o(n)):a({xhr:s,e:t}))},s.responseType=r.compression||&quot;string&quot;!==n.dataType?&quot;arraybuffer&quot;:&quot;text&quot;,s.send()})):Promise.resolve(n)},fetchJSON:function(e,t,n={}){return new Promise(((r,o)=&gt;{const a=ih(&quot;GET&quot;,t,n);a.onreadystatechange=t=&gt;{1===a.readyState&amp;&amp;1==++ah&amp;&amp;e?.invokeBusy&amp;&amp;e.invokeBusy(!0),4===a.readyState&amp;&amp;(0==--ah&amp;&amp;e?.invokeBusy&amp;&amp;e.invokeBusy(!1),200===a.status||0===a.status?n.compression?r(JSON.parse(Jm(Xm(new Uint8Array(a.response))))):r(JSON.parse(a.responseText)):o({xhr:a,e:t}))},a.responseType=n.compression?&quot;arraybuffer&quot;:&quot;text&quot;,a.send()}))},fetchText:function(e,t,n={}){return n&amp;&amp;n.compression&amp;&amp;&quot;gz&quot;!==n.compression&amp;&amp;(rh(&quot;Supported algorithms are: [gz]&quot;),rh(`Unkown compression algorithm: ${n.compression}`)),new Promise(((r,o)=&gt;{const a=ih(&quot;GET&quot;,t,n);a.onreadystatechange=t=&gt;{1===a.readyState&amp;&amp;1==++ah&amp;&amp;e?.invokeBusy&amp;&amp;e.invokeBusy(!0),4===a.readyState&amp;&amp;(0==--ah&amp;&amp;e?.invokeBusy&amp;&amp;e.invokeBusy(!1),200===a.status||0===a.status?n.compression?r(Jm(Xm(new Uint8Array(a.response)))):r(a.responseText):o({xhr:a,e:t}))},a.responseType=n.compression?&quot;arraybuffer&quot;:&quot;text&quot;,a.send()}))},fetchBinary:function(e,t={}){return t&amp;&amp;t.compression&amp;&amp;&quot;gz&quot;!==t.compression&amp;&amp;(rh(&quot;Supported algorithms are: [gz]&quot;),rh(`Unkown compression algorithm: ${t.compression}`)),new Promise(((n,r)=&gt;{const o=ih(&quot;GET&quot;,e,t);o.onreadystatechange=e=&gt;{4===o.readyState&amp;&amp;(200===o.status||0===o.status?t.compression?n(Xm(new Uint8Array(o.response)).buffer):n(o.response):r({xhr:o,e:e}))},o.responseType=&quot;arraybuffer&quot;,o.send()}))},fetchImage:function(e,t,n={}){return new Promise(((e,r)=&gt;{const o=new Image;n.crossOrigin&amp;&amp;(o.crossOrigin=n.crossOrigin),o.onload=()=&gt;e(o),o.onerror=r,o.src=t}))}};pm(&quot;http&quot;,(e=&gt;sh));const{vtkDebugMacro:lh}=sn;const ch={position:[0,0,1],focalPoint:[0,0,0],viewUp:[0,1,0],directionOfProjection:[0,0,-1],parallelProjection:!1,useHorizontalViewAngle:!1,viewAngle:30,parallelScale:1,clippingRange:[.01,1000.01],windowCenter:[0,0],viewPlaneNormal:[0,0,1],useOffAxisProjection:!1,screenBottomLeft:[-.5,-.5,-.5],screenBottomRight:[.5,-.5,-.5],screenTopRight:[.5,.5,-.5],freezeFocalPoint:!1,projectionMatrix:null,viewMatrix:null,modelTransformMatrix:null,cameraLightTransform:v(),physicalTranslation:[0,0,0],physicalScale:1,physicalViewUp:[0,1,0],physicalViewNorth:[0,0,-1]};function uh(e,t,n={}){Object.assign(t,ch,n),sn.obj(e,t),sn.get(e,t,[&quot;distance&quot;]),sn.setGet(e,t,[&quot;parallelProjection&quot;,&quot;useHorizontalViewAngle&quot;,&quot;viewAngle&quot;,&quot;parallelScale&quot;,&quot;useOffAxisProjection&quot;,&quot;freezeFocalPoint&quot;,&quot;physicalScale&quot;]),sn.getArray(e,t,[&quot;directionOfProjection&quot;,&quot;viewPlaneNormal&quot;,&quot;position&quot;,&quot;focalPoint&quot;]),sn.setGetArray(e,t,[&quot;clippingRange&quot;,&quot;windowCenter&quot;],2),sn.setGetArray(e,t,[&quot;viewUp&quot;,&quot;screenBottomLeft&quot;,&quot;screenBottomRight&quot;,&quot;screenTopRight&quot;,&quot;physicalTranslation&quot;,&quot;physicalViewUp&quot;,&quot;physicalViewNorth&quot;],3),function(e,t){t.classHierarchy.push(&quot;vtkCamera&quot;);const n=new Float64Array(3),r=new Float64Array([0,0,-1]),o=new Float64Array([0,1,0]),a=x(new Float64Array(16)),i=x(new Float64Array(16)),s=new Float64Array(3),l=new Float64Array(3),c=new Float64Array(3),u=x(new Float64Array(16)),d=x(new Float64Array(16)),p=new Float64Array(3),f=new Float64Array(3);function g(){t.viewPlaneNormal[0]=-t.directionOfProjection[0],t.viewPlaneNormal[1]=-t.directionOfProjection[1],t.viewPlaneNormal[2]=-t.directionOfProjection[2]}e.orthogonalizeViewUp=()=&gt;{const n=e.getViewMatrix();t.viewUp[0]=n[4],t.viewUp[1]=n[5],t.viewUp[2]=n[6],e.modified()},e.setPosition=(n,r,o)=&gt;{n===t.position[0]&amp;&amp;r===t.position[1]&amp;&amp;o===t.position[2]||(t.position[0]=n,t.position[1]=r,t.position[2]=o,e.computeDistance(),e.modified())},e.setFocalPoint=(n,r,o)=&gt;{n===t.focalPoint[0]&amp;&amp;r===t.focalPoint[1]&amp;&amp;o===t.focalPoint[2]||(t.focalPoint[0]=n,t.focalPoint[1]=r,t.focalPoint[2]=o,e.computeDistance(),e.modified())},e.setDistance=n=&gt;{if(t.distance===n)return;t.distance=n,t.distance&lt;1e-20&amp;&amp;(t.distance=1e-20,lh(&quot;Distance is set to minimum.&quot;));const r=t.directionOfProjection;t.focalPoint[0]=t.position[0]+r[0]*t.distance,t.focalPoint[1]=t.position[1]+r[1]*t.distance,t.focalPoint[2]=t.position[2]+r[2]*t.distance,e.modified()},e.computeDistance=()=&gt;{const e=t.focalPoint[0]-t.position[0],n=t.focalPoint[1]-t.position[1],r=t.focalPoint[2]-t.position[2];if(t.distance=Math.sqrt(e*e+n*n+r*r),t.distance&lt;1e-20){t.distance=1e-20,lh(&quot;Distance is set to minimum.&quot;);const e=t.directionOfProjection;t.focalPoint[0]=t.position[0]+e[0]*t.distance,t.focalPoint[1]=t.position[1]+e[1]*t.distance,t.focalPoint[2]=t.position[2]+e[2]*t.distance}t.directionOfProjection[0]=e/t.distance,t.directionOfProjection[1]=n/t.distance,t.directionOfProjection[2]=r/t.distance,g()},e.dolly=n=&gt;{if(n&lt;=0)return;const r=t.distance/n;e.setPosition(t.focalPoint[0]-r*t.directionOfProjection[0],t.focalPoint[1]-r*t.directionOfProjection[1],t.focalPoint[2]-r*t.directionOfProjection[2])},e.roll=n=&gt;{const r=t.position,o=t.focalPoint,a=t.viewUp,i=new Float64Array([a[0],a[1],a[2],0]);x(u);const s=new Float64Array([o[0]-r[0],o[1]-r[1],o[2]-r[2]]);P(u,u,wo(n),s),de(i,i,u),t.viewUp[0]=i[0],t.viewUp[1]=i[1],t.viewUp[2]=i[2],e.modified()},e.azimuth=n=&gt;{const r=t.focalPoint;x(d),C(d,d,r),P(d,d,wo(n),t.viewUp),C(d,d,[-r[0],-r[1],-r[2]]),oe(p,t.position,d),e.setPosition(p[0],p[1],p[2])},e.yaw=n=&gt;{const r=t.position;x(d),C(d,d,r),P(d,d,wo(n),t.viewUp),C(d,d,[-r[0],-r[1],-r[2]]),oe(f,t.focalPoint,d),e.setFocalPoint(f[0],f[1],f[2])},e.elevation=n=&gt;{const r=t.focalPoint,o=e.getViewMatrix(),a=[-o[0],-o[1],-o[2]];x(d),C(d,d,r),P(d,d,wo(n),a),C(d,d,[-r[0],-r[1],-r[2]]),oe(p,t.position,d),e.setPosition(p[0],p[1],p[2])},e.pitch=n=&gt;{const r=t.position,o=e.getViewMatrix(),a=[o[0],o[1],o[2]];x(d),C(d,d,r),P(d,d,wo(n),a),C(d,d,[-r[0],-r[1],-r[2]]),oe(f,t.focalPoint,d),e.setFocalPoint(...f)},e.zoom=n=&gt;{n&lt;=0||(t.parallelProjection?t.parallelScale/=n:t.viewAngle/=n,e.modified())},e.translate=(n,r,o)=&gt;{const a=[n,r,o];ko(t.position,a,t.position),ko(t.focalPoint,a,t.focalPoint),e.computeDistance(),e.modified()},e.applyTransform=n=&gt;{const r=[...t.viewUp,1],o=[],a=[],i=[];r[0]+=t.position[0],r[1]+=t.position[1],r[2]+=t.position[2],de(o,[...t.position,1],n),de(a,[...t.focalPoint,1],n),de(i,r,n),i[0]-=o[0],i[1]-=o[1],i[2]-=o[2],e.setPosition(...o.slice(0,3)),e.setFocalPoint(...a.slice(0,3)),e.setViewUp(...i.slice(0,3))},e.getThickness=()=&gt;t.clippingRange[1]-t.clippingRange[0],e.setThickness=n=&gt;{let r=n;r&lt;1e-20&amp;&amp;(r=1e-20,lh(&quot;Thickness is set to minimum.&quot;)),e.setClippingRange(t.clippingRange[0],t.clippingRange[0]+r)},e.setThicknessFromFocalPoint=n=&gt;{let r=n;r&lt;1e-20&amp;&amp;(r=1e-20,lh(&quot;Thickness is set to minimum.&quot;)),e.setClippingRange(t.distance-r/2,t.distance+r/2)},e.setRoll=e=&gt;{},e.getRoll=()=&gt;{},e.setObliqueAngles=(e,t)=&gt;{},e.getOrientation=()=&gt;{},e.getOrientationWXYZ=()=&gt;{},e.getFrustumPlanes=(t=1,n=new Float64Array(24))=&gt;{const r=[[1,0,0,1],[-1,0,0,1],[0,1,0,1],[0,-1,0,1],[0,0,1,1],[0,0,-1,1]],o=e.getCompositeProjectionMatrix(t,-1,1);for(let e=0;e&lt;6;e++)de(r[e],r[e],o),Xo(r[e]),n[4*e+0]=r[e][0],n[4*e+1]=r[e][1],n[4*e+2]=r[e][2],n[4*e+3]=r[e][3];return n},e.getCameraLightTransformMatrix=e=&gt;(T(e,t.cameraLightTransform),e),e.computeCameraLightTransform=()=&gt;{T(a,e.getViewMatrix()),b(a,a),M(i,[t.distance,t.distance,t.distance]),A(a,a,i),x(t.cameraLightTransform),C(t.cameraLightTransform,a,[0,0,-1])},e.deepCopy=e=&gt;{},e.physicalOrientationToWorldDirection=e=&gt;{const t=he(e[0],e[1],e[2],e[3]),n=pe(),r=he(0,0,1,0);var o,a;return a=t,(o=n)[0]=-a[0],o[1]=-a[1],o[2]=-a[2],o[3]=a[3],ge(r,t,r),ge(r,r,n),[r[0],r[1],r[2]]},e.getPhysicalToWorldMatrix=t=&gt;{e.getWorldToPhysicalMatrix(t),b(t,t)},e.getWorldToPhysicalMatrix=e=&gt;{x(e);const n=[3];Wo(t.physicalViewNorth,t.physicalViewUp,n),e[0]=n[0],e[1]=n[1],e[2]=n[2],e[4]=t.physicalViewUp[0],e[5]=t.physicalViewUp[1],e[6]=t.physicalViewUp[2],e[8]=-t.physicalViewNorth[0],e[9]=-t.physicalViewNorth[1],e[10]=-t.physicalViewNorth[2],y(e,e),Y(s,1/t.physicalScale,1/t.physicalScale,1/t.physicalScale),S(e,e,s),C(e,e,t.physicalTranslation)},e.computeViewParametersFromViewMatrix=i=&gt;{b(a,i),oe(s,n,a),e.computeDistance();const u=t.distance;e.setPosition(s[0],s[1],s[2]),oe(l,r,a),Z(l,l,s),te(l,l),e.setDirectionOfProjection(l[0],l[1],l[2]),oe(c,o,a),Z(c,c,s),te(c,c),e.setViewUp(c[0],c[1],c[2]),e.setDistance(u)},e.computeViewParametersFromPhysicalMatrix=t=&gt;{e.getWorldToPhysicalMatrix(a),A(a,t,a),e.computeViewParametersFromViewMatrix(a)},e.setModelTransformMatrix=e=&gt;{t.modelTransformMatrix=e},e.getModelTransformMatrix=()=&gt;t.modelTransformMatrix,e.setViewMatrix=n=&gt;{t.viewMatrix=n,t.viewMatrix&amp;&amp;(T(a,t.viewMatrix),e.computeViewParametersFromViewMatrix(a),y(t.viewMatrix,t.viewMatrix))},e.getViewMatrix=()=&gt;{if(t.viewMatrix)return t.modelTransformMatrix?(A(a,t.viewMatrix,t.modelTransformMatrix),a):t.viewMatrix;_(a,t.position,t.focalPoint,t.viewUp),y(a,a);const e=new Float64Array(16);return t.modelTransformMatrix?A(e,a,t.modelTransformMatrix):T(e,a),e},e.setProjectionMatrix=e=&gt;{t.projectionMatrix=e},e.getProjectionMatrix=(e,n,r)=&gt;{const o=new Float64Array(16);if(x(o),t.projectionMatrix){const e=1/t.physicalScale;return Y(s,e,e,e),T(o,t.projectionMatrix),S(o,o,s),y(o,o),o}x(a);const i=t.clippingRange[1]-t.clippingRange[0],l=[t.clippingRange[0]+(n+1)*i/2,t.clippingRange[0]+(r+1)*i/2];if(t.parallelProjection){const n=t.parallelScale*e,r=t.parallelScale,o=(t.windowCenter[0]-1)*n,i=(t.windowCenter[0]+1)*n,s=(t.windowCenter[1]-1)*r,c=(t.windowCenter[1]+1)*r;U(a,o,i,s,c,l[0],l[1]),y(a,a)}else{if(t.useOffAxisProjection)throw new Error(&quot;Off-Axis projection is not supported at this time&quot;);{const n=Math.tan(wo(t.viewAngle)/2);let r,o;!0===t.useHorizontalViewAngle?(r=t.clippingRange[0]*n,o=t.clippingRange[0]*n/e):(r=t.clippingRange[0]*n*e,o=t.clippingRange[0]*n);const i=(t.windowCenter[0]-1)*r,s=(t.windowCenter[0]+1)*r,c=(t.windowCenter[1]-1)*o,u=(t.windowCenter[1]+1)*o,d=l[0],p=l[1];a[0]=2*d/(s-i),a[5]=2*d/(u-c),a[2]=(i+s)/(s-i),a[6]=(c+u)/(u-c),a[10]=-(d+p)/(p-d),a[14]=-1,a[11]=-2*d*p/(p-d),a[15]=0}}return T(o,a),o},e.getCompositeProjectionMatrix=(t,n,r)=&gt;{const o=e.getViewMatrix(),a=e.getProjectionMatrix(t,n,r);return A(a,o,a),a},e.setDirectionOfProjection=(e,n,r)=&gt;{if(t.directionOfProjection[0]===e&amp;&amp;t.directionOfProjection[1]===n&amp;&amp;t.directionOfProjection[2]===r)return;t.directionOfProjection[0]=e,t.directionOfProjection[1]=n,t.directionOfProjection[2]=r;const o=t.directionOfProjection;t.focalPoint[0]=t.position[0]+o[0]*t.distance,t.focalPoint[1]=t.position[1]+o[1]*t.distance,t.focalPoint[2]=t.position[2]+o[2]*t.distance,g()},e.setDeviceAngles=(n,r,o,a)=&gt;{const i=[3];Wo(t.physicalViewNorth,t.physicalViewUp,i);const s=x(new Float64Array(16));P(s,s,wo(n),t.physicalViewUp),P(s,s,wo(r),i),P(s,s,wo(o),t.physicalViewNorth),P(s,s,wo(-a),t.physicalViewUp);const l=new Float64Array([-t.physicalViewUp[0],-t.physicalViewUp[1],-t.physicalViewUp[2]]),c=new Float64Array(t.physicalViewNorth);oe(l,l,s),oe(c,c,s),e.setDirectionOfProjection(l[0],l[1],l[2]),e.setViewUp(c[0],c[1],c[2]),e.modified()},e.setOrientationWXYZ=(t,n,r,o)=&gt;{const a=x(new Float64Array(16));if(0!==t&amp;&amp;(0!==n||0!==r||0!==o)){const e=wo(t),i=pe();fe(i,[n,r,o],e),F(a,i)}const i=new Float64Array(3);oe(i,[0,0,-1],a);const s=new Float64Array(3);oe(s,[0,1,0],a),e.setDirectionOfProjection(...i),e.setViewUp(...s),e.modified()},e.computeClippingRange=e=&gt;{let n=null,r=null;n=t.viewPlaneNormal,r=t.position;const o=-n[0],a=-n[1],i=-n[2],s=-(o*r[0]+a*r[1]+i*r[2]),l=[o*e[0]+a*e[2]+i*e[4]+s,1e-18];for(let t=0;t&lt;2;t++)for(let n=0;n&lt;2;n++)for(let r=0;r&lt;2;r++){const c=o*e[r]+a*e[2+n]+i*e[4+t]+s;l[0]=c&lt;l[0]?c:l[0],l[1]=c&gt;l[1]?c:l[1]}return l}}(e,t)}var dh={newInstance:sn.newInstance(uh,&quot;vtkCamera&quot;),extend:uh};const ph={switch:!0,intensity:1,color:[1,1,1],position:[0,0,1],focalPoint:[0,0,0],positional:!1,exponent:1,coneAngle:30,coneFalloff:5,attenuationValues:[1,0,0],transformMatrix:null,lightType:&quot;SceneLight&quot;,shadowAttenuation:1,direction:[0,0,0],directionMTime:0};function fh(e,t,n={}){Object.assign(t,ph,n),sn.obj(e,t),sn.setGet(e,t,[&quot;intensity&quot;,&quot;switch&quot;,&quot;positional&quot;,&quot;exponent&quot;,&quot;coneAngle&quot;,&quot;coneFalloff&quot;,&quot;transformMatrix&quot;,&quot;lightType&quot;,&quot;shadowAttenuation&quot;,&quot;attenuationValues&quot;]),sn.setGetArray(e,t,[&quot;color&quot;,&quot;position&quot;,&quot;focalPoint&quot;,&quot;attenuationValues&quot;],3),function(e,t){t.classHierarchy.push(&quot;vtkLight&quot;);const n=new Float64Array(3);e.getTransformedPosition=()=&gt;(t.transformMatrix?oe(n,t.position,t.transformMatrix):Y(n,t.position[0],t.position[1],t.position[2]),n),e.getTransformedFocalPoint=()=&gt;(t.transformMatrix?oe(n,t.focalPoint,t.transformMatrix):Y(n,t.focalPoint[0],t.focalPoint[1],t.focalPoint[2]),n),e.getDirection=()=&gt;(t.directionMTime&lt;t.mtime&amp;&amp;(le(t.direction,t.focalPoint,t.position),jo(t.direction),t.directionMTime=t.mtime),t.direction),e.setDirection=e=&gt;{const n=new Float64Array(3);le(n,t.position,e),t.focalPoint=n},e.setDirectionAngle=(t,n)=&gt;{const r=wo(t),o=wo(n);e.setPosition(Math.cos(r)*Math.sin(o),Math.sin(r),Math.cos(r)*Math.cos(o)),e.setFocalPoint(0,0,0),e.setPositional(0)},e.setLightTypeToHeadLight=()=&gt;{e.setLightType(&quot;HeadLight&quot;)},e.setLightTypeToCameraLight=()=&gt;{e.setLightType(&quot;CameraLight&quot;)},e.setLightTypeToSceneLight=()=&gt;{e.setTransformMatrix(null),e.setLightType(&quot;SceneLight&quot;)},e.lightTypeIsHeadLight=()=&gt;&quot;HeadLight&quot;===t.lightType,e.lightTypeIsSceneLight=()=&gt;&quot;SceneLight&quot;===t.lightType,e.lightTypeIsCameraLight=()=&gt;&quot;CameraLight&quot;===t.lightType}(e,t)}var gh={newInstance:sn.newInstance(fh,&quot;vtkLight&quot;),extend:fh,LIGHT_TYPES:[&quot;HeadLight&quot;,&quot;CameraLight&quot;,&quot;SceneLight&quot;]};const{vtkErrorMacro:mh}=sn;function hh(e,t){function n(e,t=[]){t.push(e);const r=e.getNestedProps();if(r&amp;&amp;r.length)for(let e=0;e&lt;r.length;e++)n(r[e],t);return t}var r;t.classHierarchy.push(&quot;vtkViewport&quot;),e.getViewProps=()=&gt;t.props,e.hasViewProp=e=&gt;t.props.includes(e),e.addViewProp=n=&gt;{n&amp;&amp;!e.hasViewProp(n)&amp;&amp;t.props.push(n)},e.removeViewProp=e=&gt;{const n=t.props.filter((t=&gt;t!==e));t.props.length!==n.length&amp;&amp;(t.props=n)},e.removeAllViewProps=()=&gt;{t.props=[]},e.getViewPropsWithNestedProps=()=&gt;{let e=[];t.actors2D=[];for(let r=0;r&lt;t.props.length;r++){const o=t.props[r].getActors2D();o&amp;&amp;(!Array.isArray(o)||o.length&gt;0)?t.actors2D=t.actors2D.concat(o):n(t.props[r],e)}return t.actors2D.sort(((e,t)=&gt;e.getLayerNumber()-t.getLayerNumber())),e=e.concat(t.actors2D),e},e.addActor2D=e.addViewProp,e.removeActor2D=t=&gt;{e.removeViewProp(t)},e.getActors2D=()=&gt;(t.actors2D=[],t.props.forEach((e=&gt;{t.actors2D=t.actors2D.concat(e.getActors2D())})),t.actors2D),e.displayToView=()=&gt;mh(&quot;call displayToView on your view instead&quot;),e.viewToDisplay=()=&gt;mh(&quot;callviewtodisplay on your view instead&quot;),e.getSize=()=&gt;mh(&quot;call getSize on your View instead&quot;),e.normalizedDisplayToProjection=(t,n,r)=&gt;{const o=e.normalizedDisplayToNormalizedViewport(t,n,r);return e.normalizedViewportToProjection(o[0],o[1],o[2])},e.normalizedDisplayToNormalizedViewport=(e,n,r)=&gt;{const o=[t.viewport[2]-t.viewport[0],t.viewport[3]-t.viewport[1]];return[(e-t.viewport[0])/o[0],(n-t.viewport[1])/o[1],r]},e.normalizedViewportToProjection=(e,t,n)=&gt;[2*e-1,2*t-1,2*n-1],e.projectionToNormalizedDisplay=(t,n,r)=&gt;{const o=e.projectionToNormalizedViewport(t,n,r);return e.normalizedViewportToNormalizedDisplay(o[0],o[1],o[2])},e.normalizedViewportToNormalizedDisplay=(e,n,r)=&gt;{const o=[t.viewport[2]-t.viewport[0],t.viewport[3]-t.viewport[1]];return[e*o[0]+t.viewport[0],n*o[1]+t.viewport[1],r]},e.projectionToNormalizedViewport=(e,t,n)=&gt;[.5*(e+1),.5*(t+1),.5*(n+1)],e.PickPropFrom=(r=&quot;PickPropFrom&quot;,()=&gt;mh(`vtkViewport::${r} - NOT IMPLEMENTED`))}const vh={background:[0,0,0],background2:[.2,.2,.2],gradientBackground:!1,viewport:[0,0,1,1],aspect:[1,1],pixelAspect:[1,1],props:[],actors2D:[]};function Th(e,t,n={}){Object.assign(t,vh,n),sn.obj(e,t),sn.event(e,t,&quot;event&quot;),sn.setGetArray(e,t,[&quot;viewport&quot;],4),sn.setGetArray(e,t,[&quot;background&quot;,&quot;background2&quot;],3),hh(e,t)}var xh={newInstance:sn.newInstance(Th,&quot;vtkViewport&quot;),extend:Th};const{vtkDebugMacro:yh,vtkErrorMacro:bh,vtkWarningMacro:Ah}=ln;function Ch(e){return()=&gt;bh(`vtkRenderer::${e} - NOT IMPLEMENTED`)}const Sh={pickedProp:null,activeCamera:null,allBounds:[],ambient:[1,1,1],allocatedRenderTime:100,timeFactor:1,automaticLightCreation:!0,twoSidedLighting:!0,lastRenderTimeInSeconds:-1,renderWindow:null,lights:[],actors:[],volumes:[],lightFollowCamera:!0,numberOfPropsRendered:0,propArray:null,pathArray:null,layer:0,preserveColorBuffer:!1,preserveDepthBuffer:!1,computeVisiblePropBounds:Ga(),interactive:!0,nearClippingPlaneTolerance:0,clippingRangeExpansion:.05,erase:!0,draw:!0,useShadows:!1,useDepthPeeling:!1,occlusionRatio:0,maximumNumberOfPeels:4,selector:null,delegate:null,texturedBackground:!1,backgroundTexture:null,environmentTexture:null,environmentTextureDiffuseStrength:1,environmentTextureSpecularStrength:1,useEnvironmentTextureAsBackground:!1,pass:0};function Ph(e,t,n={}){for(Object.assign(t,Sh,n),xh.extend(e,t,n),t.background||(t.background=[0,0,0,1]);t.background.length&lt;3;)t.background.push(0);3===t.background.length&amp;&amp;t.background.push(1),Bt(e,t,[&quot;_renderWindow&quot;,&quot;allocatedRenderTime&quot;,&quot;timeFactor&quot;,&quot;lastRenderTimeInSeconds&quot;,&quot;numberOfPropsRendered&quot;,&quot;lastRenderingUsedDepthPeeling&quot;,&quot;selector&quot;]),Gt(e,t,[&quot;twoSidedLighting&quot;,&quot;lightFollowCamera&quot;,&quot;automaticLightCreation&quot;,&quot;erase&quot;,&quot;draw&quot;,&quot;nearClippingPlaneTolerance&quot;,&quot;clippingRangeExpansion&quot;,&quot;backingStore&quot;,&quot;interactive&quot;,&quot;layer&quot;,&quot;preserveColorBuffer&quot;,&quot;preserveDepthBuffer&quot;,&quot;useDepthPeeling&quot;,&quot;occlusionRatio&quot;,&quot;maximumNumberOfPeels&quot;,&quot;delegate&quot;,&quot;backgroundTexture&quot;,&quot;texturedBackground&quot;,&quot;environmentTexture&quot;,&quot;environmentTextureDiffuseStrength&quot;,&quot;environmentTextureSpecularStrength&quot;,&quot;useEnvironmentTextureAsBackground&quot;,&quot;useShadows&quot;,&quot;pass&quot;]),Ut(e,t,[&quot;actors&quot;,&quot;volumes&quot;,&quot;lights&quot;]),Kt(e,t,[&quot;background&quot;],4,1),zt(0,t,[&quot;renderWindow&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkRenderer&quot;);const n={type:&quot;ComputeVisiblePropBoundsEvent&quot;,renderer:e},r={type:&quot;ResetCameraClippingRangeEvent&quot;,renderer:e},o={type:&quot;ResetCameraEvent&quot;,renderer:e};e.updateCamera=()=&gt;(t.activeCamera||(yh(&quot;No cameras are on, creating one.&quot;),e.getActiveCameraAndResetIfCreated()),t.activeCamera.render(e),!0),e.updateLightsGeometryToFollowCamera=()=&gt;{const n=e.getActiveCameraAndResetIfCreated();t.lights.forEach((e=&gt;{e.lightTypeIsSceneLight()||(e.lightTypeIsHeadLight()?(e.setPositionFrom(n.getPositionByReference()),e.setFocalPointFrom(n.getFocalPointByReference()),e.modified(n.getMTime())):e.lightTypeIsCameraLight()?e.setTransformMatrix(n.getCameraLightTransformMatrix(v())):bh(&quot;light has unknown light type&quot;,e.get()))}))},e.updateLightGeometry=()=&gt;!t.lightFollowCamera||e.updateLightsGeometryToFollowCamera(),e.allocateTime=Ch(&quot;allocateTime&quot;),e.updateGeometry=Ch(&quot;updateGeometry&quot;),e.getVTKWindow=()=&gt;t._renderWindow,e.setLayer=n=&gt;{yh(e.getClassName(),e,&quot;setting Layer to &quot;,n),t.layer!==n&amp;&amp;(t.layer=n,e.modified()),e.setPreserveColorBuffer(!!n)},e.setActiveCamera=n=&gt;t.activeCamera!==n&amp;&amp;(t.activeCamera=n,e.modified(),e.invokeEvent({type:&quot;ActiveCameraEvent&quot;,camera:n}),!0),e.makeCamera=()=&gt;{const t=dh.newInstance();return e.invokeEvent({type:&quot;CreateCameraEvent&quot;,camera:t}),t},e.getActiveCamera=()=&gt;(t.activeCamera||(t.activeCamera=e.makeCamera()),t.activeCamera),e.getActiveCameraAndResetIfCreated=()=&gt;(t.activeCamera||(e.getActiveCamera(),e.resetCamera()),t.activeCamera),e.getActors=()=&gt;(t.actors=[],t.props.forEach((e=&gt;{t.actors=t.actors.concat(e.getActors())})),t.actors),e.addActor=e.addViewProp,e.removeActor=n=&gt;{t.actors=t.actors.filter((e=&gt;e!==n)),e.removeViewProp(n),e.modified()},e.removeAllActors=()=&gt;{e.getActors().forEach((t=&gt;{e.removeViewProp(t)})),t.actors=[],e.modified()},e.getVolumes=()=&gt;(t.volumes=[],t.props.forEach((e=&gt;{t.volumes=t.volumes.concat(e.getVolumes())})),t.volumes),e.addVolume=e.addViewProp,e.removeVolume=n=&gt;{t.volumes=t.volumes.filter((e=&gt;e!==n)),e.removeViewProp(n),e.modified()},e.removeAllVolumes=()=&gt;{e.getVolumes().forEach((t=&gt;{e.removeViewProp(t)})),t.volumes=[],e.modified()},e.hasLight=e=&gt;t.lights.includes(e),e.addLight=n=&gt;{n&amp;&amp;!e.hasLight(n)&amp;&amp;(t.lights.push(n),e.modified())},e.removeLight=n=&gt;{t.lights=t.lights.filter((e=&gt;e!==n)),e.modified()},e.removeAllLights=()=&gt;{t.lights=[],e.modified()},e.setLightCollection=n=&gt;{t.lights=n,e.modified()},e.makeLight=gh.newInstance,e.createLight=()=&gt;{t.automaticLightCreation&amp;&amp;(t._createdLight&amp;&amp;(e.removeLight(t._createdLight),t._createdLight.delete(),t._createdLight=null),t._createdLight=e.makeLight(),e.addLight(t._createdLight),t._createdLight.setLightTypeToHeadLight(),t._createdLight.setPosition(e.getActiveCamera().getPosition()),t._createdLight.setFocalPoint(e.getActiveCamera().getFocalPoint()))},e.normalizedDisplayToWorld=(t,n,r,o)=&gt;{let a=e.normalizedDisplayToProjection(t,n,r);return a=e.projectionToView(a[0],a[1],a[2],o),e.viewToWorld(a[0],a[1],a[2])},e.worldToNormalizedDisplay=(t,n,r,o)=&gt;{let a=e.worldToView(t,n,r);return a=e.viewToProjection(a[0],a[1],a[2],o),e.projectionToNormalizedDisplay(a[0],a[1],a[2])},e.viewToWorld=(e,n,r)=&gt;{if(null===t.activeCamera)return bh(&quot;ViewToWorld: no active camera, cannot compute view to world, returning 0,0,0&quot;),[0,0,0];const o=t.activeCamera.getViewMatrix();b(o,o),y(o,o);const a=new Float64Array([e,n,r]);return oe(a,a,o),a},e.projectionToView=(e,n,r,o)=&gt;{if(null===t.activeCamera)return bh(&quot;ProjectionToView: no active camera, cannot compute projection to view, returning 0,0,0&quot;),[0,0,0];const a=t.activeCamera.getProjectionMatrix(o,-1,1);b(a,a),y(a,a);const i=new Float64Array([e,n,r]);return oe(i,i,a),i},e.worldToView=(e,n,r)=&gt;{if(null===t.activeCamera)return bh(&quot;WorldToView: no active camera, cannot compute view to world, returning 0,0,0&quot;),[0,0,0];const o=t.activeCamera.getViewMatrix();y(o,o);const a=new Float64Array([e,n,r]);return oe(a,a,o),a},e.viewToProjection=(e,n,r,o)=&gt;{if(null===t.activeCamera)return bh(&quot;ViewToProjection: no active camera, cannot compute view to projection, returning 0,0,0&quot;),[0,0,0];const a=t.activeCamera.getProjectionMatrix(o,-1,1);y(a,a);const i=new Float64Array([e,n,r]);return oe(i,i,a),i},e.computeVisiblePropBounds=()=&gt;{t.allBounds[0]=Hi.INIT_BOUNDS[0],t.allBounds[1]=Hi.INIT_BOUNDS[1],t.allBounds[2]=Hi.INIT_BOUNDS[2],t.allBounds[3]=Hi.INIT_BOUNDS[3],t.allBounds[4]=Hi.INIT_BOUNDS[4],t.allBounds[5]=Hi.INIT_BOUNDS[5];let r=!0;e.invokeEvent(n);for(let e=0;e&lt;t.props.length;++e){const n=t.props[e];if(n.getVisibility()&amp;&amp;n.getUseBounds()){const e=n.getBounds();e&amp;&amp;Oa(e)&amp;&amp;(r=!1,e[0]&lt;t.allBounds[0]&amp;&amp;(t.allBounds[0]=e[0]),e[1]&gt;t.allBounds[1]&amp;&amp;(t.allBounds[1]=e[1]),e[2]&lt;t.allBounds[2]&amp;&amp;(t.allBounds[2]=e[2]),e[3]&gt;t.allBounds[3]&amp;&amp;(t.allBounds[3]=e[3]),e[4]&lt;t.allBounds[4]&amp;&amp;(t.allBounds[4]=e[4]),e[5]&gt;t.allBounds[5]&amp;&amp;(t.allBounds[5]=e[5]))}}return r&amp;&amp;(Ia(t.allBounds),yh(&quot;Can&#x27;t compute bounds, no 3D props are visible&quot;)),t.allBounds},e.resetCamera=(n=null)=&gt;{const r=n||e.computeVisiblePropBounds(),a=[0,0,0];if(!Oa(r))return yh(&quot;Cannot reset camera!&quot;),!1;let i=null;if(!e.getActiveCamera())return bh(&quot;Trying to reset non-existent camera&quot;),!1;i=t.activeCamera.getViewPlaneNormal(),t.activeCamera.setViewAngle(30),a[0]=(r[0]+r[1])/2,a[1]=(r[2]+r[3])/2,a[2]=(r[4]+r[5])/2;let s=r[1]-r[0],l=r[3]-r[2],c=r[5]-r[4];s*=s,l*=l,c*=c;let u=s+l+c;u=0===u?1:u,u=.5*Math.sqrt(u);const d=wo(t.activeCamera.getViewAngle()),p=u,f=u/Math.sin(.5*d),g=t.activeCamera.getViewUp();return Math.abs(zo(g,i))&gt;.999&amp;&amp;(Ah(&quot;Resetting view-up since view plane normal is parallel&quot;),t.activeCamera.setViewUp(-g[2],g[0],g[1])),t.activeCamera.setFocalPoint(a[0],a[1],a[2]),t.activeCamera.setPosition(a[0]+f*i[0],a[1]+f*i[1],a[2]+f*i[2]),e.resetCameraClippingRange(r),t.activeCamera.setParallelScale(p),t.activeCamera.setPhysicalScale(u),t.activeCamera.setPhysicalTranslation(-a[0],-a[1],-a[2]),e.invokeEvent(o),!0},e.resetCameraClippingRange=(n=null)=&gt;{const o=n||e.computeVisiblePropBounds();if(!Oa(o))return yh(&quot;Cannot reset camera clipping range!&quot;),!1;if(e.getActiveCameraAndResetIfCreated(),!t.activeCamera)return bh(&quot;Trying to reset clipping range of non-existent camera&quot;),!1;const a=t.activeCamera.computeClippingRange(o);let i=0;if(t.activeCamera.getParallelProjection())i=.2*t.activeCamera.getParallelScale();else{const e=wo(t.activeCamera.getViewAngle());i=.2*Math.tan(e/2)*a[1]}return a[1]-a[0]&lt;i&amp;&amp;(i=i-a[1]+a[0],a[1]+=i/2,a[0]-=i/2),a[0]&lt;0&amp;&amp;(a[0]=0),a[0]=.99*a[0]-(a[1]-a[0])*t.clippingRangeExpansion,a[1]=1.01*a[1]+(a[1]-a[0])*t.clippingRangeExpansion,a[0]=a[0]&gt;=a[1]?.01*a[1]:a[0],t.nearClippingPlaneTolerance||(t.nearClippingPlaneTolerance=.01),a[0]&lt;t.nearClippingPlaneTolerance*a[1]&amp;&amp;(a[0]=t.nearClippingPlaneTolerance*a[1]),t.activeCamera.setClippingRange(a[0],a[1]),e.invokeEvent(r),!1},e.setRenderWindow=e=&gt;{e!==t._renderWindow&amp;&amp;(t._vtkWindow=e,t._renderWindow=e)},e.visibleActorCount=()=&gt;t.props.filter((e=&gt;e.getVisibility())).length,e.visibleVolumeCount=e.visibleActorCount,e.getMTime=()=&gt;{let e=t.mtime;const n=t.activeCamera?t.activeCamera.getMTime():0;n&gt;e&amp;&amp;(e=n);const r=t._createdLight?t._createdLight.getMTime():0;return r&gt;e&amp;&amp;(e=r),e},e.getTransparent=()=&gt;!!t.preserveColorBuffer,e.isActiveCameraCreated=()=&gt;!!t.activeCamera}(e,t)}var wh={newInstance:Xt(Ph,&quot;vtkRenderer&quot;),extend:Ph};const Ih=Object.create(null);function Oh(e,t){Ih[e]=t}function Rh(e,t={}){return Ih[e]&amp;&amp;Ih[e](t)}const Mh={defaultViewAPI:&quot;WebGL&quot;,renderers:[],views:[],interactor:null,neverRendered:!0,numberOfLayers:1,childRenderWindows:[]};function Dh(e,t,n={}){Object.assign(t,Mh,n),sn.obj(e,t),sn.setGet(e,t,[&quot;interactor&quot;,&quot;numberOfLayers&quot;,&quot;_views&quot;,&quot;defaultViewAPI&quot;]),sn.get(e,t,[&quot;neverRendered&quot;]),sn.getArray(e,t,[&quot;renderers&quot;,&quot;childRenderWindows&quot;]),sn.moveToProtected(e,t,[&quot;views&quot;]),sn.event(e,t,&quot;completion&quot;),function(e,t){t.classHierarchy.push(&quot;vtkRenderWindow&quot;),e.addRenderer=n=&gt;{e.hasRenderer(n)||(n.setRenderWindow(e),t.renderers.push(n),e.modified())},e.removeRenderer=n=&gt;{t.renderers=t.renderers.filter((e=&gt;e!==n)),e.modified()},e.hasRenderer=e=&gt;-1!==t.renderers.indexOf(e),e.newAPISpecificView=(e,n={})=&gt;Rh(e||t.defaultViewAPI,n),e.addView=n=&gt;{e.hasView(n)||(n.setRenderable(e),t._views.push(n),e.modified())},e.removeView=n=&gt;{t._views=t._views.filter((e=&gt;e!==n)),e.modified()},e.hasView=e=&gt;-1!==t._views.indexOf(e),e.preRender=()=&gt;{t.renderers.forEach((e=&gt;{e.isActiveCameraCreated()||e.resetCamera()}))},e.render=()=&gt;{e.preRender(),t.interactor?t.interactor.render():t._views.forEach((e=&gt;e.traverseAllPasses()))},e.getStatistics=()=&gt;{const e={propCount:0,invisiblePropCount:0,gpuMemoryMB:0};return t._views.forEach((t=&gt;{t.getGraphicsMemoryInfo&amp;&amp;(e.gpuMemoryMB+=t.getGraphicsMemoryInfo()/1e6)})),t.renderers.forEach((n=&gt;{const r=n.getViewProps(),o=t._views[0].getViewNodeFor(n);r.forEach((t=&gt;{if(t.getVisibility()){e.propCount+=1;const n=t.getMapper&amp;&amp;t.getMapper();if(n&amp;&amp;n.getPrimitiveCount){const t=o.getViewNodeFor(n);if(t){t.getAllocatedGPUMemoryInBytes&amp;&amp;(e.gpuMemoryMB+=t.getAllocatedGPUMemoryInBytes()/1e6);const r=n.getPrimitiveCount();Object.keys(r).forEach((t=&gt;{e[t]||(e[t]=0),e[t]+=r[t]}))}}}else e.invisiblePropCount+=1}))})),e.str=Object.keys(e).map((t=&gt;`${t}: ${e[t]}`)).join(&quot;\\n&quot;),e},e.captureImages=(n=&quot;image/png&quot;,r={})=&gt;(sn.setImmediate(e.render),t._views.map((e=&gt;e.captureNextImage?e.captureNextImage(n,r):void 0)).filter((e=&gt;!!e))),e.addRenderWindow=n=&gt;!t.childRenderWindows.includes(n)&amp;&amp;(t.childRenderWindows.push(n),e.modified(),!0),e.removeRenderWindow=n=&gt;{const r=t.childRenderWindows.findIndex((e=&gt;e===n));return!(r&lt;0||(t.childRenderWindows.splice(r,1),e.modified(),0))}}(e,t)}var Eh={newInstance:sn.newInstance(Dh,&quot;vtkRenderWindow&quot;),extend:Dh,registerViewConstructor:Oh,listViewAPIs:function(){return Object.keys(Ih)},newAPISpecificView:Rh};const Vh={Unknown:0,LeftController:1,RightController:2},Lh={Unknown:0,Trigger:1,TrackPad:2,Grip:3,Thumbstick:4,A:5,B:6,ApplicationMenu:7};var Bh={Device:Vh,Input:Lh,Axis:{Unknown:0,TouchpadX:1,TouchpadY:2,ThumbstickX:3,ThumbstickY:4},MouseButton:{LeftButton:1,MiddleButton:2,RightButton:3}};const{Device:Fh,Input:Nh}=Bh,{vtkWarningMacro:kh,vtkErrorMacro:Gh,normalizeWheel:Uh,vtkOnceErrorMacro:_h}=sn,Kh={ctrlKey:!1,altKey:!1,shiftKey:!1},zh={&quot;xr-standard&quot;:[Nh.Trigger,Nh.Grip,Nh.TrackPad,Nh.Thumbstick,Nh.A,Nh.B]},Wh=[&quot;StartAnimation&quot;,&quot;Animation&quot;,&quot;EndAnimation&quot;,&quot;PointerEnter&quot;,&quot;PointerLeave&quot;,&quot;MouseEnter&quot;,&quot;MouseLeave&quot;,&quot;StartMouseMove&quot;,&quot;MouseMove&quot;,&quot;EndMouseMove&quot;,&quot;LeftButtonPress&quot;,&quot;LeftButtonRelease&quot;,&quot;MiddleButtonPress&quot;,&quot;MiddleButtonRelease&quot;,&quot;RightButtonPress&quot;,&quot;RightButtonRelease&quot;,&quot;KeyPress&quot;,&quot;KeyDown&quot;,&quot;KeyUp&quot;,&quot;StartMouseWheel&quot;,&quot;MouseWheel&quot;,&quot;EndMouseWheel&quot;,&quot;StartPinch&quot;,&quot;Pinch&quot;,&quot;EndPinch&quot;,&quot;StartPan&quot;,&quot;Pan&quot;,&quot;EndPan&quot;,&quot;StartRotate&quot;,&quot;Rotate&quot;,&quot;EndRotate&quot;,&quot;Button3D&quot;,&quot;Move3D&quot;,&quot;StartPointerLock&quot;,&quot;EndPointerLock&quot;,&quot;StartInteraction&quot;,&quot;Interaction&quot;,&quot;EndInteraction&quot;,&quot;AnimationFrameRateUpdate&quot;];function Hh(e){e.cancelable&amp;&amp;e.preventDefault()}function jh(e){const t=Object.create(null);return e.forEach((({pointerId:e,position:n})=&gt;{t[e]=n})),t}const Xh={renderWindow:null,interactorStyle:null,picker:null,pickingManager:null,initialized:!1,enabled:!1,enableRender:!0,currentRenderer:null,lightFollowCamera:!0,desiredUpdateRate:30,stillUpdateRate:2,container:null,recognizeGestures:!0,currentGesture:&quot;Start&quot;,animationRequest:null,lastFrameTime:.1,recentAnimationFrameRate:10,wheelTimeoutID:0,moveTimeoutID:0,lastGamepadValues:{},preventDefaultOnPointerDown:!1,preventDefaultOnPointerUp:!1,mouseScrollDebounceByPass:!1};function qh(e,t,n={}){Object.assign(t,Xh,n),sn.obj(e,t),t._animationExtendedEnd=0,sn.event(e,t,&quot;RenderEvent&quot;),Wh.forEach((n=&gt;sn.event(e,t,n))),sn.get(e,t,[&quot;initialized&quot;,&quot;interactorStyle&quot;,&quot;lastFrameTime&quot;,&quot;recentAnimationFrameRate&quot;,&quot;_view&quot;]),sn.setGet(e,t,[&quot;container&quot;,&quot;lightFollowCamera&quot;,&quot;enabled&quot;,&quot;enableRender&quot;,&quot;recognizeGestures&quot;,&quot;desiredUpdateRate&quot;,&quot;stillUpdateRate&quot;,&quot;picker&quot;,&quot;preventDefaultOnPointerDown&quot;,&quot;preventDefaultOnPointerUp&quot;,&quot;mouseScrollDebounceByPass&quot;]),sn.moveToProtected(e,t,[&quot;view&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkRenderWindowInteractor&quot;);const n={...e},r=new Set,o=new Map;let a=1,i=0;function s(n,r){t._forcedRenderer||(t.currentRenderer=e.findPokedRenderer(n,r))}e.start=()=&gt;{(t.initialized||(e.initialize(),t.initialized))&amp;&amp;e.startEventLoop()},e.setRenderWindow=e=&gt;{Gh(&quot;you want to call setView(view) instead of setRenderWindow on a vtk.js interactor&quot;)},e.setInteractorStyle=n=&gt;{t.interactorStyle!==n&amp;&amp;(null!=t.interactorStyle&amp;&amp;t.interactorStyle.setInteractor(null),t.interactorStyle=n,null!=t.interactorStyle&amp;&amp;t.interactorStyle.getInteractor()!==e&amp;&amp;t.interactorStyle.setInteractor(e))},e.initialize=()=&gt;{t.initialized=!0,e.enable(),e.render()},e.enable=()=&gt;e.setEnabled(!0),e.disable=()=&gt;e.setEnabled(!1),e.startEventLoop=()=&gt;kh(&quot;empty event loop&quot;),e.getCurrentRenderer=()=&gt;(t.currentRenderer||s(0,0),t.currentRenderer);const l=t._getScreenEventPositionFor||function(e){const n=t._view.getCanvas(),r=n.getBoundingClientRect(),a=n.width/r.width,i=n.height/r.height,l={x:a*(e.clientX-r.left),y:i*(r.height-e.clientY+r.top),z:0,movementX:a*e.movementX,movementY:i*e.movementY};return(o.size&lt;=1||!t.currentRenderer)&amp;&amp;s(l.x,l.y),l};function c(e){return{controlKey:e.ctrlKey,altKey:e.altKey,shiftKey:e.shiftKey}}function u(e){const t=c(e);return{key:e.key,keyCode:e.charCode,...t}}function d(e){return e.pointerType||&quot;&quot;}const p=()=&gt;{if(null===t.container)return;const{container:n}=t;n.addEventListener(&quot;contextmenu&quot;,Hh),n.addEventListener(&quot;wheel&quot;,e.handleWheel),n.addEventListener(&quot;DOMMouseScroll&quot;,e.handleWheel),n.addEventListener(&quot;pointerenter&quot;,e.handlePointerEnter),n.addEventListener(&quot;pointerleave&quot;,e.handlePointerLeave),n.addEventListener(&quot;pointermove&quot;,e.handlePointerMove,{passive:!1}),n.addEventListener(&quot;pointerdown&quot;,e.handlePointerDown,{passive:!1}),n.addEventListener(&quot;pointerup&quot;,e.handlePointerUp),n.addEventListener(&quot;pointercancel&quot;,e.handlePointerCancel),n.addEventListener(&quot;keypress&quot;,e.handleKeyPress),n.addEventListener(&quot;keydown&quot;,e.handleKeyDown),document.addEventListener(&quot;keyup&quot;,e.handleKeyUp),document.addEventListener(&quot;pointerlockchange&quot;,e.handlePointerLockChange),n.tabIndex=0,n.style.touchAction=&quot;none&quot;,n.style.userSelect=&quot;none&quot;,n.style.webkitTapHighlightColor=&quot;rgba(0,0,0,0)&quot;};e.bindEvents=e=&gt;{null!==e&amp;&amp;n.setContainer(e)&amp;&amp;p()};const f=()=&gt;{clearTimeout(t.moveTimeoutID),clearTimeout(t.wheelTimeoutID),t.moveTimeoutID=0,t.wheelTimeoutID=0,a=1;const{container:n}=t;n&amp;&amp;(n.removeEventListener(&quot;contextmenu&quot;,Hh),n.removeEventListener(&quot;wheel&quot;,e.handleWheel),n.removeEventListener(&quot;DOMMouseScroll&quot;,e.handleWheel),n.removeEventListener(&quot;pointerenter&quot;,e.handlePointerEnter),n.removeEventListener(&quot;pointerleave&quot;,e.handlePointerLeave),n.removeEventListener(&quot;pointermove&quot;,e.handlePointerMove,{passive:!1}),n.removeEventListener(&quot;pointerdown&quot;,e.handlePointerDown,{passive:!1}),n.removeEventListener(&quot;pointerup&quot;,e.handlePointerUp),n.removeEventListener(&quot;pointercancel&quot;,e.handlePointerCancel),n.removeEventListener(&quot;keypress&quot;,e.handleKeyPress),n.removeEventListener(&quot;keydown&quot;,e.handleKeyDown)),document.removeEventListener(&quot;keyup&quot;,e.handleKeyUp),document.removeEventListener(&quot;pointerlockchange&quot;,e.handlePointerLockChange),o.clear(),i=0};function g(t,n,r){n&amp;~r&amp;1&amp;&amp;e.leftButtonReleaseEvent(t),n&amp;~r&amp;4&amp;&amp;e.middleButtonReleaseEvent(t),n&amp;~r&amp;2&amp;&amp;e.rightButtonReleaseEvent(t),~n&amp;r&amp;1&amp;&amp;e.leftButtonPressEvent(t),~n&amp;r&amp;4&amp;&amp;e.middleButtonPressEvent(t),~n&amp;r&amp;2&amp;&amp;e.rightButtonPressEvent(t)}function m(){t._view&amp;&amp;t.enabled&amp;&amp;t.enableRender&amp;&amp;(t.inRender=!0,t._view.traverseAllPasses(),t.inRender=!1),e.invokeRenderEvent()}e.unbindEvents=()=&gt;{f(),n.setContainer(null)},e.handleKeyPress=t=&gt;{const n=u(t);e.keyPressEvent(n)},e.handleKeyDown=t=&gt;{const n=u(t);e.keyDownEvent(n)},e.handleKeyUp=t=&gt;{const n=u(t);e.keyUpEvent(n)},e.handlePointerEnter=t=&gt;{const n={...c(t),position:l(t),deviceType:d(t)};e.pointerEnterEvent(n),&quot;mouse&quot;===n.deviceType&amp;&amp;e.mouseEnterEvent(n)},e.handlePointerLeave=t=&gt;{const n={...c(t),position:l(t),deviceType:d(t)};e.pointerLeaveEvent(n),&quot;mouse&quot;===n.deviceType&amp;&amp;e.mouseLeaveEvent(n)},e.handlePointerDown=n=&gt;{if(!(n.button&gt;2||e.isPointerLocked()))switch(t.preventDefaultOnPointerDown&amp;&amp;Hh(n),n.target.hasPointerCapture(n.pointerId)&amp;&amp;n.target.releasePointerCapture(n.pointerId),t.container.setPointerCapture(n.pointerId),o.has(n.pointerId)&amp;&amp;kh(&quot;[RenderWindowInteractor] duplicate pointerId detected&quot;),o.set(n.pointerId,{pointerId:n.pointerId,position:l(n)}),n.pointerType){case&quot;pen&quot;:case&quot;touch&quot;:e.handleTouchStart(n);break;default:e.handleMouseDown(n),i=n.buttons}},e.handlePointerUp=n=&gt;{if(o.has(n.pointerId))switch(t.preventDefaultOnPointerUp&amp;&amp;Hh(n),o.delete(n.pointerId),t.container.releasePointerCapture(n.pointerId),n.pointerType){case&quot;pen&quot;:case&quot;touch&quot;:e.handleTouchEnd(n);break;default:{const t=[1,4,2][n.button]??0;g({...c(n),position:l(n),deviceType:d(n)},i&amp;~t,n.buttons&amp;~t),e.handleMouseUp(n),i=n.buttons;break}}},e.handlePointerCancel=t=&gt;{if(o.has(t.pointerId))switch(o.delete(t.pointerId),t.pointerType){case&quot;pen&quot;:case&quot;touch&quot;:e.handleTouchEnd(t);break;default:g({...c(t),position:l(t),deviceType:d(t)},i,0),i=0}},e.handlePointerMove=t=&gt;{switch(o.has(t.pointerId)&amp;&amp;(o.get(t.pointerId).position=l(t)),t.pointerType){case&quot;pen&quot;:case&quot;touch&quot;:e.handleTouchMove(t);break;default:{const n=t.buttons;n!==i&amp;&amp;(g({...c(t),position:l(t),deviceType:d(t)},i,n),i=n),e.handleMouseMove(t);break}}},e.handleMouseDown=t=&gt;{const n={...c(t),position:l(t),deviceType:d(t)};switch(t.button){case 0:e.leftButtonPressEvent(n);break;case 1:e.middleButtonPressEvent(n);break;case 2:e.rightButtonPressEvent(n);break;default:Gh(`Unknown mouse button pressed: ${t.button}`)}},e.requestPointerLock=()=&gt;{t.container&amp;&amp;t.container.requestPointerLock()},e.exitPointerLock=()=&gt;document.exitPointerLock?.(),e.isPointerLocked=()=&gt;!!t.container&amp;&amp;document.pointerLockElement===t.container,e.handlePointerLockChange=()=&gt;{e.isPointerLocked()?e.startPointerLockEvent():e.endPointerLockEvent()},e.requestAnimation=n=&gt;{void 0!==n?r.has(n)?kh(&quot;requester is already registered for animating&quot;):(r.add(n),t.animationRequest||1!==r.size||t.xrAnimation||(t._animationStartTime=Date.now(),t._animationFrameCount=0,t.animationRequest=requestAnimationFrame(e.handleAnimation),e.startAnimationEvent())):Gh(&quot;undefined requester, can not start animating&quot;)},e.extendAnimation=n=&gt;{const o=Date.now()+n;t._animationExtendedEnd=Math.max(t._animationExtendedEnd,o),t.animationRequest||0!==r.size||t.xrAnimation||(t._animationStartTime=Date.now(),t._animationFrameCount=0,t.animationRequest=requestAnimationFrame(e.handleAnimation),e.startAnimationEvent())},e.isAnimating=()=&gt;t.xrAnimation||null!==t.animationRequest,e.cancelAnimation=(n,o=!1)=&gt;{if(r.has(n))r.delete(n),t.animationRequest&amp;&amp;0===r.size&amp;&amp;Date.now()&gt;t._animationExtendedEnd&amp;&amp;(cancelAnimationFrame(t.animationRequest),t.animationRequest=null,e.endAnimationEvent(),e.render());else if(!o){const e=n&amp;&amp;n.getClassName?n.getClassName():n;kh(`${e} did not request an animation`)}},e.switchToXRAnimation=()=&gt;{t.animationRequest&amp;&amp;(cancelAnimationFrame(t.animationRequest),t.animationRequest=null),t.xrAnimation=!0},e.returnFromXRAnimation=()=&gt;{t.xrAnimation=!1,0!==r.size&amp;&amp;(t.recentAnimationFrameRate=10,t.animationRequest=requestAnimationFrame(e.handleAnimation))},e.updateXRGamepads=(n,r,o)=&gt;{n.inputSources.forEach((n=&gt;{const a=null==n.gripSpace?null:r.getPose(n.gripSpace,o),i=null==n.gripSpace?null:r.getPose(n.targetRaySpace,o),s=n.gamepad,l=n.handedness;if(s){s.index in t.lastGamepadValues||(t.lastGamepadValues[s.index]={left:{buttons:{}},right:{buttons:{}},none:{buttons:{}}});for(let r=0;r&lt;s.buttons.length;++r)r in t.lastGamepadValues[s.index][l].buttons||(t.lastGamepadValues[s.index][l].buttons[r]=!1),t.lastGamepadValues[s.index][l].buttons[r]!==s.buttons[r].pressed&amp;&amp;null!=a&amp;&amp;(e.button3DEvent({gamepad:s,position:a.transform.position,orientation:a.transform.orientation,targetPosition:i.transform.position,targetOrientation:i.transform.orientation,pressed:s.buttons[r].pressed,device:&quot;left&quot;===n.handedness?Fh.LeftController:Fh.RightController,input:zh[s.mapping]&amp;&amp;zh[s.mapping][r]?zh[s.mapping][r]:Nh.Trigger}),t.lastGamepadValues[s.index][l].buttons[r]=s.buttons[r].pressed),t.lastGamepadValues[s.index][l].buttons[r]&amp;&amp;null!=a&amp;&amp;e.move3DEvent({gamepad:s,position:a.transform.position,orientation:a.transform.orientation,targetPosition:i.transform.position,targetOrientation:i.transform.orientation,device:&quot;left&quot;===n.handedness?Fh.LeftController:Fh.RightController})}}))},e.handleMouseMove=n=&gt;{const r={...c(n),position:l(n),deviceType:d(n)};0===t.moveTimeoutID?e.startMouseMoveEvent(r):(e.mouseMoveEvent(r),clearTimeout(t.moveTimeoutID)),t.moveTimeoutID=setTimeout((()=&gt;{e.endMouseMoveEvent(),t.moveTimeoutID=0}),200)},e.handleAnimation=()=&gt;{const n=Date.now();t._animationFrameCount++,n-t._animationStartTime&gt;1e3&amp;&amp;t._animationFrameCount&gt;1&amp;&amp;(t.recentAnimationFrameRate=1e3*(t._animationFrameCount-1)/(n-t._animationStartTime),t.lastFrameTime=1/t.recentAnimationFrameRate,e.animationFrameRateUpdateEvent(),t._animationStartTime=n,t._animationFrameCount=1),e.animationEvent(),m(),r.size&gt;0||Date.now()&lt;t._animationExtendedEnd?t.animationRequest=requestAnimationFrame(e.handleAnimation):(cancelAnimationFrame(t.animationRequest),t.animationRequest=null,e.endAnimationEvent(),e.render())},e.handleWheel=n=&gt;{Hh(n);const r={...Uh(n),...c(n),position:l(n),deviceType:d(n)};0===t.wheelTimeoutID&amp;&amp;(a=Math.abs(r.spinY)&gt;=.3?Math.abs(r.spinY):1),r.spinY/=a,0===t.wheelTimeoutID?(e.startMouseWheelEvent(r),e.mouseWheelEvent(r)):(e.mouseWheelEvent(r),clearTimeout(t.wheelTimeoutID)),t.mouseScrollDebounceByPass?(e.extendAnimation(600),e.endMouseWheelEvent(),t.wheelTimeoutID=0):t.wheelTimeoutID=setTimeout((()=&gt;{e.extendAnimation(600),e.endMouseWheelEvent(),t.wheelTimeoutID=0}),200)},e.handleMouseUp=t=&gt;{const n={...c(t),position:l(t),deviceType:d(t)};switch(t.button){case 0:e.leftButtonReleaseEvent(n);break;case 1:e.middleButtonReleaseEvent(n);break;case 2:e.rightButtonReleaseEvent(n);break;default:Gh(`Unknown mouse button released: ${t.button}`)}},e.handleTouchStart=n=&gt;{const r=[...o.values()];if(t.recognizeGestures&amp;&amp;r.length&gt;1){const t=jh(o);if(2===r.length){const t={...c(Kh),position:r[0].position,deviceType:d(n)};e.leftButtonReleaseEvent(t)}e.recognizeGesture(&quot;TouchStart&quot;,t)}else if(1===r.length){const t={...c(Kh),position:l(n),deviceType:d(n)};e.leftButtonPressEvent(t)}},e.handleTouchMove=n=&gt;{const r=[...o.values()];if(t.recognizeGestures&amp;&amp;r.length&gt;1){const t=jh(o);e.recognizeGesture(&quot;TouchMove&quot;,t)}else if(1===r.length){const t={...c(Kh),position:r[0].position,deviceType:d(n)};e.mouseMoveEvent(t)}},e.handleTouchEnd=n=&gt;{const r=[...o.values()];if(t.recognizeGestures)if(0===r.length){const t={...c(Kh),position:l(n),deviceType:d(n)};e.leftButtonReleaseEvent(t)}else if(1===r.length){const t=jh(o);e.recognizeGesture(&quot;TouchEnd&quot;,t);const a={...c(Kh),position:r[0].position,deviceType:d(n)};e.leftButtonPressEvent(a)}else{const t=jh(o);e.recognizeGesture(&quot;TouchMove&quot;,t)}else if(1===r.length){const t={...c(Kh),position:r[0].position,deviceType:d(n)};e.leftButtonReleaseEvent(t)}},e.setView=n=&gt;{t._view!==n&amp;&amp;(t._view=n,t._view.getRenderable().setInteractor(e),e.modified())},e.getFirstRenderer=()=&gt;t._view?.getRenderable()?.getRenderersByReference()?.[0],e.findPokedRenderer=(e=0,n=0)=&gt;{if(!t._view)return null;const r=t._view?.getRenderable()?.getRenderers();if(!r||0===r.length)return null;r.sort(((e,t)=&gt;e.getLayer()-t.getLayer()));let o=null,a=null,i=null,s=r.length;for(;s--;){const l=r[s];if(t._view.isInViewport(e,n,l)&amp;&amp;l.getInteractive()){i=l;break}null===o&amp;&amp;l.getInteractive()&amp;&amp;(o=l),null===a&amp;&amp;t._view.isInViewport(e,n,l)&amp;&amp;(a=l)}return null===i&amp;&amp;(i=o),null===i&amp;&amp;(i=a),null==i&amp;&amp;(i=r[0]),i},e.render=()=&gt;{e.isAnimating()||t.inRender||m()},Wh.forEach((n=&gt;{const r=n.charAt(0).toLowerCase()+n.slice(1);e[`${r}Event`]=r=&gt;{if(!t.enabled)return;if(!e.getCurrentRenderer())return void _h(&quot;\\n          Can not forward events without a current renderer on the interactor.\\n        &quot;);const o={type:n,pokedRenderer:t.currentRenderer,firstRenderer:e.getFirstRenderer(),...r};e[`invoke${n}`](o)}})),e.recognizeGesture=(n,r)=&gt;{if(Object.keys(r).length&gt;2)return;if(t.startingEventPositions||(t.startingEventPositions={}),&quot;TouchStart&quot;===n)return Object.keys(r).forEach((e=&gt;{t.startingEventPositions[e]=r[e]})),void(t.currentGesture=&quot;Start&quot;);if(&quot;TouchEnd&quot;===n)return&quot;Pinch&quot;===t.currentGesture&amp;&amp;(e.render(),e.endPinchEvent()),&quot;Rotate&quot;===t.currentGesture&amp;&amp;(e.render(),e.endRotateEvent()),&quot;Pan&quot;===t.currentGesture&amp;&amp;(e.render(),e.endPanEvent()),t.currentGesture=&quot;Start&quot;,void(t.startingEventPositions={});let o=0;const a=[],i=[];Object.keys(r).forEach((e=&gt;{a[o]=r[e],i[o]=t.startingEventPositions[e],o++}));const s=Math.sqrt((i[0].x-i[1].x)*(i[0].x-i[1].x)+(i[0].y-i[1].y)*(i[0].y-i[1].y)),l=Math.sqrt((a[0].x-a[1].x)*(a[0].x-a[1].x)+(a[0].y-a[1].y)*(a[0].y-a[1].y));let c=Io(Math.atan2(i[1].y-i[0].y,i[1].x-i[0].x)),u=Io(Math.atan2(a[1].y-a[0].y,a[1].x-a[0].x)),d=u-c;u=u+180&gt;=360?u-180:u+180,c=c+180&gt;=360?c-180:c+180,Math.abs(u-c)&lt;Math.abs(d)&amp;&amp;(d=u-c);const p=[];if(p[0]=(a[0].x-i[0].x+a[1].x-i[1].x)/2,p[1]=(a[0].y-i[0].y+a[1].y-i[1].y)/2,&quot;TouchMove&quot;===n)if(&quot;Start&quot;===t.currentGesture){let n=.01*Math.sqrt(t.container.clientWidth*t.container.clientWidth+t.container.clientHeight*t.container.clientHeight);n&lt;15&amp;&amp;(n=15);const o=Math.abs(l-s),a=3.1415926*l*Math.abs(d)/360,i=Math.sqrt(p[0]*p[0]+p[1]*p[1]);if(o&gt;n&amp;&amp;o&gt;a&amp;&amp;o&gt;i){t.currentGesture=&quot;Pinch&quot;;const n={scale:1,touches:r};e.startPinchEvent(n)}else if(a&gt;n&amp;&amp;a&gt;i){t.currentGesture=&quot;Rotate&quot;;const n={rotation:0,touches:r};e.startRotateEvent(n)}else if(i&gt;n){t.currentGesture=&quot;Pan&quot;;const n={translation:[0,0],touches:r};e.startPanEvent(n)}}else{if(&quot;Rotate&quot;===t.currentGesture){const t={rotation:d,touches:r};e.rotateEvent(t)}if(&quot;Pinch&quot;===t.currentGesture){const t={scale:l/s,touches:r};e.pinchEvent(t)}if(&quot;Pan&quot;===t.currentGesture){const t={translation:p,touches:r};e.panEvent(t)}}},e.handleVisibilityChange=()=&gt;{t._animationStartTime=Date.now(),t._animationFrameCount=0},e.setCurrentRenderer=e=&gt;{t._forcedRenderer=!!e,t.currentRenderer=e},e.setContainer=e=&gt;{f();const t=n.setContainer(e??null);return t&amp;&amp;p(),t},e.delete=()=&gt;{for(;r.size;)e.cancelAnimation(r.values().next().value);void 0!==document.hidden&amp;&amp;document.removeEventListener(&quot;visibilitychange&quot;,e.handleVisibilityChange),t.container&amp;&amp;e.setContainer(null),n.delete()},void 0!==document.hidden&amp;&amp;document.addEventListener(&quot;visibilitychange&quot;,e.handleVisibilityChange,!1)}(e,t)}var Yh={newInstance:sn.newInstance(qh,&quot;vtkRenderWindowInteractor&quot;),extend:qh,handledEvents:Wh,...Bh};const{vtkErrorMacro:Jh,VOID:Zh}=sn;const Qh={computeWorldToDisplay:function(e,t,n,r){return e.getRenderWindow().getViews()[0].worldToDisplay(t,n,r,e)},computeDisplayToWorld:function(e,t,n,r){return e.getRenderWindow().getViews()[0].displayToWorld(t,n,r,e)}};const $h={enabled:!0,priority:0,processEvents:!0,subscribedEvents:[]};function ev(e,t,n={}){Object.assign(t,$h,n),sn.obj(e,t),sn.event(e,t,&quot;InteractionEvent&quot;),sn.event(e,t,&quot;StartInteractionEvent&quot;),sn.event(e,t,&quot;EndInteractionEvent&quot;),sn.get(e,t,[&quot;_interactor&quot;,&quot;enabled&quot;]),sn.setGet(e,t,[&quot;priority&quot;,&quot;processEvents&quot;]),sn.moveToProtected(e,t,[&quot;interactor&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkInteractorObserver&quot;);const n={...e};function r(){for(;t.subscribedEvents.length;)t.subscribedEvents.pop().unsubscribe()}function o(){Yh.handledEvents.forEach((n=&gt;{e[`handle${n}`]&amp;&amp;t.subscribedEvents.push(t._interactor[`on${n}`]((r=&gt;t.processEvents?e[`handle${n}`](r):Zh),t.priority))}))}e.setInteractor=n=&gt;{n!==t._interactor&amp;&amp;(r(),t._interactor=n,n&amp;&amp;t.enabled&amp;&amp;o(),e.modified())},e.setEnabled=n=&gt;{n!==t.enabled&amp;&amp;(r(),n&amp;&amp;(t._interactor?o():Jh(&quot;\\n          The interactor must be set before subscribing to events\\n        &quot;)),t.enabled=n,e.modified())},e.computeDisplayToWorld=(e,n,r,o)=&gt;e?t._interactor.getView().displayToWorld(n,r,o,e):null,e.computeWorldToDisplay=(e,n,r,o)=&gt;e?t._interactor.getView().worldToDisplay(n,r,o,e):null,e.setPriority=e=&gt;{n.setPriority(e)&amp;&amp;t._interactor&amp;&amp;(r(),o())}}(e,t)}var tv={newInstance:sn.newInstance(ev,&quot;vtkInteractorObserver&quot;),extend:ev,...Qh};var nv={States:{IS_START:0,IS_NONE:0,IS_ROTATE:1,IS_PAN:2,IS_SPIN:3,IS_DOLLY:4,IS_CAMERA_POSE:11,IS_WINDOW_LEVEL:1024,IS_SLICE:1025}};const{States:rv}=nv,ov={Rotate:rv.IS_ROTATE,Pan:rv.IS_PAN,Spin:rv.IS_SPIN,Dolly:rv.IS_DOLLY,CameraPose:rv.IS_CAMERA_POSE,WindowLevel:rv.IS_WINDOW_LEVEL,Slice:rv.IS_SLICE};const av={state:rv.IS_NONE,handleObservers:1,autoAdjustCameraClippingRange:1};function iv(e,t,n={}){Object.assign(t,av,n),tv.extend(e,t,n),sn.setGet(e,t,[&quot;focusedRenderer&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkInteractorStyle&quot;),Object.keys(ov).forEach((n=&gt;{sn.event(e,t,`Start${n}Event`),e[`start${n}`]=()=&gt;{t.state===rv.IS_NONE&amp;&amp;(t.state=ov[n],t._interactor.requestAnimation(e),e.invokeStartInteractionEvent({type:&quot;StartInteractionEvent&quot;}),e[`invokeStart${n}Event`]({type:`Start${n}Event`}))},sn.event(e,t,`End${n}Event`),e[`end${n}`]=()=&gt;{t.state===ov[n]&amp;&amp;(t.state=rv.IS_NONE,t._interactor.cancelAnimation(e),e.invokeEndInteractionEvent({type:&quot;EndInteractionEvent&quot;}),e[`invokeEnd${n}Event`]({type:`End${n}Event`}),t._interactor.render())}})),t.getRenderer=e=&gt;t.focusedRenderer||e.pokedRenderer,e.handleKeyPress=e=&gt;{const n=t._interactor;let r=null;switch(e.key){case&quot;r&quot;:case&quot;R&quot;:t.getRenderer(e).resetCamera(),n.render();break;case&quot;w&quot;:case&quot;W&quot;:r=t.getRenderer(e).getActors(),r.forEach((e=&gt;{const t=e.getProperty();t.setRepresentationToWireframe&amp;&amp;t.setRepresentationToWireframe()})),n.render();break;case&quot;s&quot;:case&quot;S&quot;:r=t.getRenderer(e).getActors(),r.forEach((e=&gt;{const t=e.getProperty();t.setRepresentationToSurface&amp;&amp;t.setRepresentationToSurface()})),n.render();break;case&quot;v&quot;:case&quot;V&quot;:r=t.getRenderer(e).getActors(),r.forEach((e=&gt;{const t=e.getProperty();t.setRepresentationToPoints&amp;&amp;t.setRepresentationToPoints()})),n.render()}}}(e,t)}var sv={newInstance:sn.newInstance(iv,&quot;vtkInteractorStyle&quot;),extend:iv,...nv};const{States:lv}=nv;const cv={motionFactor:10,zoomFactor:10};function uv(e,t,n={}){Object.assign(t,cv,n),sv.extend(e,t,n),sn.setGet(e,t,[&quot;motionFactor&quot;,&quot;zoomFactor&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkInteractorStyleTrackballCamera&quot;),e.handleMouseMove=n=&gt;{const r=n.position,o=t.getRenderer(n);switch(t.state){case lv.IS_ROTATE:e.handleMouseRotate(o,r),e.invokeInteractionEvent({type:&quot;InteractionEvent&quot;});break;case lv.IS_PAN:e.handleMousePan(o,r),e.invokeInteractionEvent({type:&quot;InteractionEvent&quot;});break;case lv.IS_DOLLY:e.handleMouseDolly(o,r),e.invokeInteractionEvent({type:&quot;InteractionEvent&quot;});break;case lv.IS_SPIN:e.handleMouseSpin(o,r),e.invokeInteractionEvent({type:&quot;InteractionEvent&quot;})}t.previousPosition=r},e.handleButton3D=n=&gt;{!n||!n.pressed||n.device!==Vh.RightController||n.input!==Lh.Trigger&amp;&amp;n.input!==Lh.TrackPad?!n||n.pressed||n.device!==Vh.RightController||n.input!==Lh.Trigger&amp;&amp;n.input!==Lh.TrackPad||t.state!==lv.IS_CAMERA_POSE||e.endCameraPose():e.startCameraPose()},e.handleMove3D=n=&gt;{t.state===lv.IS_CAMERA_POSE&amp;&amp;e.updateCameraPose(n)},e.updateCameraPose=e=&gt;{const n=t.getRenderer(e).getActiveCamera(),r=n.getPhysicalTranslation(),o=.025*n.getPhysicalScale(),a=n.physicalOrientationToWorldDirection([e.orientation.x,e.orientation.y,e.orientation.z,e.orientation.w]);n.setPhysicalTranslation(r[0]+a[0]*o,r[1]+a[1]*o,r[2]+a[2]*o)},e.handleLeftButtonPress=n=&gt;{const r=n.position;t.previousPosition=r,n.shiftKey?n.controlKey||n.altKey?e.startDolly():e.startPan():n.controlKey||n.altKey?e.startSpin():e.startRotate()},e.handleLeftButtonRelease=()=&gt;{switch(t.state){case lv.IS_DOLLY:e.endDolly();break;case lv.IS_PAN:e.endPan();break;case lv.IS_SPIN:e.endSpin();break;case lv.IS_ROTATE:e.endRotate()}},e.handleStartMouseWheel=()=&gt;{e.startDolly()},e.handleEndMouseWheel=()=&gt;{e.endDolly()},e.handleStartPinch=n=&gt;{t.previousScale=n.scale,e.startDolly()},e.handleEndPinch=()=&gt;{e.endDolly()},e.handleStartRotate=n=&gt;{t.previousRotation=n.rotation,e.startRotate()},e.handleEndRotate=()=&gt;{e.endRotate()},e.handleStartPan=n=&gt;{t.previousTranslation=n.translation,e.startPan()},e.handleEndPan=()=&gt;{e.endPan()},e.handlePinch=n=&gt;{e.dollyByFactor(t.getRenderer(n),n.scale/t.previousScale),t.previousScale=n.scale},e.handlePan=n=&gt;{const r=t.getRenderer(n).getActiveCamera();let o=r.getFocalPoint();o=e.computeWorldToDisplay(t.getRenderer(n),o[0],o[1],o[2]);const a=o[2],i=n.translation,s=t.previousTranslation,l=e.computeDisplayToWorld(t.getRenderer(n),o[0]+i[0]-s[0],o[1]+i[1]-s[1],a),c=e.computeDisplayToWorld(t.getRenderer(n),o[0],o[1],a),u=[];u[0]=c[0]-l[0],u[1]=c[1]-l[1],u[2]=c[2]-l[2],o=r.getFocalPoint();const d=r.getPosition();r.setFocalPoint(u[0]+o[0],u[1]+o[1],u[2]+o[2]),r.setPosition(u[0]+d[0],u[1]+d[1],u[2]+d[2]),t._interactor.getLightFollowCamera()&amp;&amp;t.getRenderer(n).updateLightsGeometryToFollowCamera(),r.orthogonalizeViewUp(),t.previousTranslation=n.translation},e.handleRotate=e=&gt;{const n=t.getRenderer(e).getActiveCamera();n.roll(e.rotation-t.previousRotation),n.orthogonalizeViewUp(),t.previousRotation=e.rotation},e.handleMouseRotate=(e,n)=&gt;{if(!t.previousPosition)return;const r=t._interactor,o=n.x-t.previousPosition.x,a=n.y-t.previousPosition.y,i=r.getView().getViewportSize(e);let s=-.1,l=-.1;i[0]&amp;&amp;i[1]&amp;&amp;(s=-20/i[1],l=-20/i[0]);const c=o*l*t.motionFactor,u=a*s*t.motionFactor,d=e.getActiveCamera();Number.isNaN(c)||Number.isNaN(u)||(d.azimuth(c),d.elevation(u),d.orthogonalizeViewUp()),t.autoAdjustCameraClippingRange&amp;&amp;e.resetCameraClippingRange(),r.getLightFollowCamera()&amp;&amp;e.updateLightsGeometryToFollowCamera()},e.handleMouseSpin=(e,n)=&gt;{if(!t.previousPosition)return;const r=t._interactor,o=e.getActiveCamera(),a=r.getView().getViewportCenter(e),i=Io(Math.atan2(t.previousPosition.y-a[1],t.previousPosition.x-a[0])),s=Io(Math.atan2(n.y-a[1],n.x-a[0]))-i;Number.isNaN(s)||(o.roll(s),o.orthogonalizeViewUp())},e.handleMousePan=(n,r)=&gt;{if(!t.previousPosition)return;const o=n.getActiveCamera();let a=o.getFocalPoint();a=e.computeWorldToDisplay(n,a[0],a[1],a[2]);const i=a[2],s=e.computeDisplayToWorld(n,r.x,r.y,i),l=e.computeDisplayToWorld(n,t.previousPosition.x,t.previousPosition.y,i),c=[];c[0]=l[0]-s[0],c[1]=l[1]-s[1],c[2]=l[2]-s[2],a=o.getFocalPoint();const u=o.getPosition();o.setFocalPoint(c[0]+a[0],c[1]+a[1],c[2]+a[2]),o.setPosition(c[0]+u[0],c[1]+u[1],c[2]+u[2]),t._interactor.getLightFollowCamera()&amp;&amp;n.updateLightsGeometryToFollowCamera()},e.handleMouseDolly=(n,r)=&gt;{if(!t.previousPosition)return;const o=r.y-t.previousPosition.y,a=t._interactor.getView().getViewportCenter(n),i=t.motionFactor*o/a[1];e.dollyByFactor(n,1.1**i)},e.handleMouseWheel=n=&gt;{const r=1-n.spinY/t.zoomFactor;e.dollyByFactor(t.getRenderer(n),r)},e.dollyByFactor=(e,n)=&gt;{if(Number.isNaN(n))return;const r=e.getActiveCamera();r.getParallelProjection()?r.setParallelScale(r.getParallelScale()/n):(r.dolly(n),t.autoAdjustCameraClippingRange&amp;&amp;e.resetCameraClippingRange()),t._interactor.getLightFollowCamera()&amp;&amp;e.updateLightsGeometryToFollowCamera()}}(e,t)}var dv={newInstance:sn.newInstance(uv,&quot;vtkInteractorStyleTrackballCamera&quot;),extend:uv};function pv(e){return e}function fv(e){return null===e||&quot;null&quot;===e?null:&quot;true&quot;===e||&quot;false&quot;!==e&amp;&amp;(void 0!==e&amp;&amp;&quot;undefined&quot;!==e?&quot;[&quot;===e[0]&amp;&amp;&quot;]&quot;===e[e.length-1]?e.substring(1,e.length-1).split(&quot;,&quot;).map((e=&gt;fv(e.trim()))):&quot;&quot;===e||Number.isNaN(Number(e))?e:Number(e):void 0)}var gv={toNativeType:fv,extractURLParameters:function(e=!0,t=window.location.search){const n={},r=e?fv:pv;return new URLSearchParams(t).forEach(((e,t)=&gt;{t&amp;&amp;(n[t]=!e||r(e))})),n}};const mv={delegates:[],currentOperation:null,preDelegateOperations:[],postDelegateOperations:[],currentParent:null};function hv(e,t,n={}){Object.assign(t,mv,n),sn.obj(e,t),sn.get(e,t,[&quot;currentOperation&quot;]),sn.setGet(e,t,[&quot;delegates&quot;,&quot;_currentParent&quot;,&quot;preDelegateOperations&quot;,&quot;postDelegateOperations&quot;]),sn.moveToProtected(e,t,[&quot;currentParent&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkRenderPass&quot;),e.getOperation=()=&gt;t.currentOperation,e.setCurrentOperation=e=&gt;{t.currentOperation=e,t.currentTraverseOperation=`traverse${sn.capitalize(t.currentOperation)}`},e.getTraverseOperation=()=&gt;t.currentTraverseOperation,e.traverse=(n,r=null)=&gt;{t.deleted||(t._currentParent=r,t.preDelegateOperations.forEach((t=&gt;{e.setCurrentOperation(t),n.traverse(e)})),t.delegates.forEach((t=&gt;{t.traverse(n,e)})),t.postDelegateOperations.forEach((t=&gt;{e.setCurrentOperation(t),n.traverse(e)})))}}(e,t)}var vv={newInstance:sn.newInstance(hv,&quot;vtkRenderPass&quot;),extend:hv};const{Representation:Tv}=us,{vtkErrorMacro:xv}=sn;function yv(e){const t=vd.substitute(e.Fragment,&quot;//VTK::RenderPassFragmentShader::Impl&quot;,&quot;\\n      float weight = gl_FragData[0].a * pow(max(1.1 - gl_FragCoord.z, 0.0), 2.0);\\n      gl_FragData[0] = vec4(gl_FragData[0].rgb*weight, gl_FragData[0].a);\\n      gl_FragData[1].r = weight;\\n    &quot;,!1);e.Fragment=t.result}const bv={framebuffer:null,copyShader:null,tris:null};function Av(e,t,n={}){Object.assign(t,bv,n),vv.extend(e,t,n),t.VBOBuildTime={},sn.obj(t.VBOBuildTime,{mtime:0}),t.tris=Sd.newInstance(),sn.get(e,t,[&quot;framebuffer&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLOrderIndependentTranslucentPass&quot;),e.createVertexBuffer=()=&gt;{const e=new Float32Array([-1,-1,-1,1,-1,-1,-1,1,-1,1,1,-1]),n=new Float32Array([0,0,1,0,0,1,1,1]),r=new Uint16Array([4,0,1,3,2]),o=Is.newInstance({numberOfComponents:3,values:e});o.setName(&quot;points&quot;);const a=Is.newInstance({numberOfComponents:2,values:n});a.setName(&quot;tcoords&quot;);const i=Is.newInstance({numberOfComponents:1,values:r});t.tris.getCABO().createVBO(i,&quot;polys&quot;,Tv.SURFACE,{points:o,tcoords:a,cellOffset:0}),t.VBOBuildTime.modified()},e.createFramebuffer=e=&gt;{const n=e.getSize(),r=e.getContext();t.framebuffer=Gp.newInstance(),t.framebuffer.setOpenGLRenderWindow(e),t.framebuffer.create(...n),t.framebuffer.saveCurrentBindingsAndBuffers(),t.framebuffer.bind(),t.translucentRGBATexture=Hd.newInstance(),t.translucentRGBATexture.setInternalFormat(r.RGBA16F),t.translucentRGBATexture.setFormat(r.RGBA),t.translucentRGBATexture.setOpenGLDataType(r.HALF_FLOAT),t.translucentRGBATexture.setOpenGLRenderWindow(e),t.translucentRGBATexture.create2DFromRaw({width:n[0],height:n[1],numComps:4,dataType:&quot;Float32Array&quot;,data:null}),t.translucentRTexture=Hd.newInstance(),t.translucentRTexture.setInternalFormat(r.R16F),t.translucentRTexture.setFormat(r.RED),t.translucentRTexture.setOpenGLDataType(r.HALF_FLOAT),t.translucentRTexture.setOpenGLRenderWindow(e),t.translucentRTexture.create2DFromRaw({width:n[0],height:n[1],numComps:1,dataType:&quot;Float32Array&quot;,data:null}),t.translucentZTexture=Hd.newInstance(),t.translucentZTexture.setOpenGLRenderWindow(e),t.translucentZTexture.createDepthFromRaw({width:n[0],height:n[1],dataType:&quot;Float32Array&quot;,data:null}),t.framebuffer.setColorBuffer(t.translucentRGBATexture,0),t.framebuffer.setColorBuffer(t.translucentRTexture,1),t.framebuffer.setDepthBuffer(t.translucentZTexture)},e.createCopyShader=e=&gt;{t.copyShader=e.getShaderCache().readyShaderProgramArray([&quot;//VTK::System::Dec&quot;,&quot;attribute vec4 vertexDC;&quot;,&quot;attribute vec2 tcoordTC;&quot;,&quot;varying vec2 tcoord;&quot;,&quot;void main() { tcoord = tcoordTC; gl_Position = vertexDC; }&quot;].join(&quot;\\n&quot;),&quot;//VTK::System::Dec\\n\\nin vec2 tcoord;\\n\\nuniform sampler2D translucentRTexture;\\nuniform sampler2D translucentRGBATexture;\\n\\n// the output of this shader\\n//VTK::Output::Dec\\n\\nvoid main()\\n{\\n  vec4 t1Color = texture(translucentRGBATexture, tcoord);\\n  float t2Color = texture(translucentRTexture, tcoord).r;\\n  gl_FragData[0] = vec4(t1Color.rgb/max(t2Color,0.01), 1.0 - t1Color.a);\\n}\\n&quot;,&quot;&quot;)},e.createVBO=n=&gt;{const r=n.getContext();t.tris.setOpenGLRenderWindow(n),e.createVertexBuffer();const o=t.copyShader;t.tris.getCABO().bind(),t.copyVAO.addAttributeArray(o,t.tris.getCABO(),&quot;vertexDC&quot;,t.tris.getCABO().getVertexOffset(),t.tris.getCABO().getStride(),r.FLOAT,3,r.FALSE)||xv(&quot;Error setting vertexDC in copy shader VAO.&quot;),t.copyVAO.addAttributeArray(o,t.tris.getCABO(),&quot;tcoordTC&quot;,t.tris.getCABO().getTCoordOffset(),t.tris.getCABO().getStride(),r.FLOAT,2,r.FALSE)||xv(&quot;Error setting vertexDC in copy shader VAO.&quot;)},e.traverse=(n,r,o)=&gt;{if(t.deleted)return;const a=n.getSize(),i=n.getContext();if(t._supported=!1,r.getSelector()||!i||!n.getWebgl2()||!i.getExtension(&quot;EXT_color_buffer_half_float&quot;)&amp;&amp;!i.getExtension(&quot;EXT_color_buffer_float&quot;))return e.setCurrentOperation(&quot;translucentPass&quot;),void r.traverse(e);if(t._supported=!0,null===t.framebuffer)e.createFramebuffer(n);else{const r=t.framebuffer.getSize();null===r||r[0]!==a[0]||r[1]!==a[1]?(t.framebuffer.releaseGraphicsResources(),t.translucentRGBATexture.releaseGraphicsResources(n),t.translucentRTexture.releaseGraphicsResources(n),t.translucentZTexture.releaseGraphicsResources(n),e.createFramebuffer(n)):(t.framebuffer.saveCurrentBindingsAndBuffers(),t.framebuffer.bind())}i.drawBuffers([i.COLOR_ATTACHMENT0]),i.clearBufferfv(i.COLOR,0,[0,0,0,0]),i.clearBufferfv(i.DEPTH,0,[1]),i.colorMask(!1,!1,!1,!1),o.getOpaqueActorCount()&gt;0&amp;&amp;(o.setCurrentOperation(&quot;opaqueZBufferPass&quot;),r.traverse(o)),i.colorMask(!0,!0,!0,!0),i.drawBuffers([i.COLOR_ATTACHMENT0,i.COLOR_ATTACHMENT1]),i.viewport(0,0,a[0],a[1]),i.scissor(0,0,a[0],a[1]),i.clearBufferfv(i.COLOR,0,[0,0,0,1]),i.clearBufferfv(i.COLOR,1,[0,0,0,0]),i.enable(i.DEPTH_TEST),i.enable(i.BLEND),i.blendFuncSeparate(i.ONE,i.ONE,i.ZERO,i.ONE_MINUS_SRC_ALPHA),e.setCurrentOperation(&quot;translucentPass&quot;),r.traverse(e),i.drawBuffers([i.NONE]),t.framebuffer.restorePreviousBindingsAndBuffers(),null===t.copyShader?e.createCopyShader(n):n.getShaderCache().readyShaderProgram(t.copyShader),t.copyVAO||(t.copyVAO=yd.newInstance(),t.copyVAO.setOpenGLRenderWindow(n)),t.copyVAO.bind(),t.VBOBuildTime.getMTime()&lt;e.getMTime()&amp;&amp;e.createVBO(n),i.blendFuncSeparate(i.SRC_ALPHA,i.ONE_MINUS_SRC_ALPHA,i.ONE,i.ONE_MINUS_SRC_ALPHA),i.depthMask(!1),i.depthFunc(i.ALWAYS),i.viewport(0,0,a[0],a[1]),i.scissor(0,0,a[0],a[1]),t.translucentRGBATexture.activate(),t.copyShader.setUniformi(&quot;translucentRGBATexture&quot;,t.translucentRGBATexture.getTextureUnit()),t.translucentRTexture.activate(),t.copyShader.setUniformi(&quot;translucentRTexture&quot;,t.translucentRTexture.getTextureUnit()),i.drawArrays(i.TRIANGLES,0,t.tris.getCABO().getElementCount()),i.depthMask(!0),i.depthFunc(i.LEQUAL),t.translucentRGBATexture.deactivate(),t.translucentRTexture.deactivate();const s=r.getTiledSizeAndOrigin();i.scissor(s.lowerLeftU,s.lowerLeftV,s.usize,s.vsize),i.viewport(s.lowerLeftU,s.lowerLeftV,s.usize,s.vsize)},e.getShaderReplacement=()=&gt;t._supported?yv:null,e.releaseGraphicsResources=n=&gt;{t.framebuffer&amp;&amp;(t.framebuffer.releaseGraphicsResources(n),t.framebuffer=null),t.translucentRGBATexture&amp;&amp;(t.translucentRGBATexture.releaseGraphicsResources(n),t.translucentRGBATexture=null),t.translucentRTexture&amp;&amp;(t.translucentRTexture.releaseGraphicsResources(n),t.translucentRTexture=null),t.translucentZTexture&amp;&amp;(t.translucentZTexture.releaseGraphicsResources(n),t.translucentZTexture=null),t.copyVAO&amp;&amp;(t.copyVAO.releaseGraphicsResources(n),t.copyVAO=null),t.copyShader&amp;&amp;(t.copyShader.releaseGraphicsResources(n),t.copyShader=null),t.tris&amp;&amp;(t.tris.releaseGraphicsResources(n),t.tris=null),e.modified()}}(e,t)}var Cv={newInstance:sn.newInstance(Av,&quot;vtkOpenGLOrderIndependentTranslucentPass&quot;),extend:Av};const Sv={opaqueActorCount:0,translucentActorCount:0,volumeCount:0,overlayActorCount:0,framebuffer:null,depthRequested:!1};function Pv(e,t,n={}){Object.assign(t,Sv,n),vv.extend(e,t,n),sn.get(e,t,[&quot;framebuffer&quot;,&quot;opaqueActorCount&quot;,&quot;translucentActorCount&quot;,&quot;volumeCount&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkForwardPass&quot;),e.traverse=(n,r=null)=&gt;{if(t.deleted)return;t._currentParent=r,e.setCurrentOperation(&quot;buildPass&quot;),n.traverse(e);const o=n.getRenderable().getNumberOfLayers(),a=n.getRenderable().getRenderersByReference();for(let r=0;r&lt;o;r++)for(let o=0;o&lt;a.length;o++){const i=a[o],s=n.getViewNodeFor(i);if(i.getDraw()&amp;&amp;i.getLayer()===r){if(t.opaqueActorCount=0,t.translucentActorCount=0,t.volumeCount=0,t.overlayActorCount=0,e.setCurrentOperation(&quot;queryPass&quot;),s.traverse(e),(t.opaqueActorCount&gt;0||t.translucentActorCount&gt;0)&amp;&amp;t.volumeCount&gt;0||t.depthRequested){const r=n.getFramebufferSize();null===t.framebuffer&amp;&amp;(t.framebuffer=Gp.newInstance()),t.framebuffer.setOpenGLRenderWindow(n),t.framebuffer.saveCurrentBindingsAndBuffers();const o=t.framebuffer.getSize();null!==o&amp;&amp;o[0]===r[0]&amp;&amp;o[1]===r[1]||(t.framebuffer.create(r[0],r[1]),t.framebuffer.populateFramebuffer()),t.framebuffer.bind(),e.setCurrentOperation(&quot;zBufferPass&quot;),s.traverse(e),t.framebuffer.restorePreviousBindingsAndBuffers(),t.depthRequested=!1}e.setCurrentOperation(&quot;cameraPass&quot;),s.traverse(e),t.opaqueActorCount&gt;0&amp;&amp;(e.setCurrentOperation(&quot;opaquePass&quot;),s.traverse(e)),t.translucentActorCount&gt;0&amp;&amp;(t.translucentPass||(t.translucentPass=Cv.newInstance()),t.translucentPass.traverse(n,s,e)),t.volumeCount&gt;0&amp;&amp;(e.setCurrentOperation(&quot;volumePass&quot;),s.traverse(e)),t.overlayActorCount&gt;0&amp;&amp;(e.setCurrentOperation(&quot;overlayPass&quot;),s.traverse(e))}}},e.getZBufferTexture=()=&gt;t.framebuffer?t.framebuffer.getColorTexture():null,e.requestDepth=()=&gt;{t.depthRequested=!0},e.incrementOpaqueActorCount=()=&gt;t.opaqueActorCount++,e.incrementTranslucentActorCount=()=&gt;t.translucentActorCount++,e.incrementVolumeCount=()=&gt;t.volumeCount++,e.incrementOverlayActorCount=()=&gt;t.overlayActorCount++}(e,t)}var wv={newInstance:sn.newInstance(Pv,&quot;vtkForwardPass&quot;),extend:Pv},Iv={exports:{}};!function(e){e.exports=function(e){var t=[&quot;0&quot;,&quot;1&quot;,&quot;2&quot;,&quot;3&quot;,&quot;4&quot;,&quot;5&quot;,&quot;6&quot;,&quot;7&quot;,&quot;8&quot;,&quot;9&quot;,&quot;a&quot;,&quot;b&quot;,&quot;c&quot;,&quot;d&quot;,&quot;e&quot;,&quot;f&quot;];function n(e,t){var n=e[0],r=e[1],o=e[2],a=e[3];r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&amp;o|~r&amp;a)+t[0]-680876936|0)&lt;&lt;7|n&gt;&gt;&gt;25)+r|0)&amp;r|~n&amp;o)+t[1]-389564586|0)&lt;&lt;12|a&gt;&gt;&gt;20)+n|0)&amp;n|~a&amp;r)+t[2]+606105819|0)&lt;&lt;17|o&gt;&gt;&gt;15)+a|0)&amp;a|~o&amp;n)+t[3]-1044525330|0)&lt;&lt;22|r&gt;&gt;&gt;10)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&amp;o|~r&amp;a)+t[4]-176418897|0)&lt;&lt;7|n&gt;&gt;&gt;25)+r|0)&amp;r|~n&amp;o)+t[5]+1200080426|0)&lt;&lt;12|a&gt;&gt;&gt;20)+n|0)&amp;n|~a&amp;r)+t[6]-1473231341|0)&lt;&lt;17|o&gt;&gt;&gt;15)+a|0)&amp;a|~o&amp;n)+t[7]-45705983|0)&lt;&lt;22|r&gt;&gt;&gt;10)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&amp;o|~r&amp;a)+t[8]+1770035416|0)&lt;&lt;7|n&gt;&gt;&gt;25)+r|0)&amp;r|~n&amp;o)+t[9]-1958414417|0)&lt;&lt;12|a&gt;&gt;&gt;20)+n|0)&amp;n|~a&amp;r)+t[10]-42063|0)&lt;&lt;17|o&gt;&gt;&gt;15)+a|0)&amp;a|~o&amp;n)+t[11]-1990404162|0)&lt;&lt;22|r&gt;&gt;&gt;10)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&amp;o|~r&amp;a)+t[12]+1804603682|0)&lt;&lt;7|n&gt;&gt;&gt;25)+r|0)&amp;r|~n&amp;o)+t[13]-40341101|0)&lt;&lt;12|a&gt;&gt;&gt;20)+n|0)&amp;n|~a&amp;r)+t[14]-1502002290|0)&lt;&lt;17|o&gt;&gt;&gt;15)+a|0)&amp;a|~o&amp;n)+t[15]+1236535329|0)&lt;&lt;22|r&gt;&gt;&gt;10)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&amp;a|o&amp;~a)+t[1]-165796510|0)&lt;&lt;5|n&gt;&gt;&gt;27)+r|0)&amp;o|r&amp;~o)+t[6]-1069501632|0)&lt;&lt;9|a&gt;&gt;&gt;23)+n|0)&amp;r|n&amp;~r)+t[11]+643717713|0)&lt;&lt;14|o&gt;&gt;&gt;18)+a|0)&amp;n|a&amp;~n)+t[0]-373897302|0)&lt;&lt;20|r&gt;&gt;&gt;12)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&amp;a|o&amp;~a)+t[5]-701558691|0)&lt;&lt;5|n&gt;&gt;&gt;27)+r|0)&amp;o|r&amp;~o)+t[10]+38016083|0)&lt;&lt;9|a&gt;&gt;&gt;23)+n|0)&amp;r|n&amp;~r)+t[15]-660478335|0)&lt;&lt;14|o&gt;&gt;&gt;18)+a|0)&amp;n|a&amp;~n)+t[4]-405537848|0)&lt;&lt;20|r&gt;&gt;&gt;12)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&amp;a|o&amp;~a)+t[9]+568446438|0)&lt;&lt;5|n&gt;&gt;&gt;27)+r|0)&amp;o|r&amp;~o)+t[14]-1019803690|0)&lt;&lt;9|a&gt;&gt;&gt;23)+n|0)&amp;r|n&amp;~r)+t[3]-187363961|0)&lt;&lt;14|o&gt;&gt;&gt;18)+a|0)&amp;n|a&amp;~n)+t[8]+1163531501|0)&lt;&lt;20|r&gt;&gt;&gt;12)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&amp;a|o&amp;~a)+t[13]-1444681467|0)&lt;&lt;5|n&gt;&gt;&gt;27)+r|0)&amp;o|r&amp;~o)+t[2]-51403784|0)&lt;&lt;9|a&gt;&gt;&gt;23)+n|0)&amp;r|n&amp;~r)+t[7]+1735328473|0)&lt;&lt;14|o&gt;&gt;&gt;18)+a|0)&amp;n|a&amp;~n)+t[12]-1926607734|0)&lt;&lt;20|r&gt;&gt;&gt;12)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r^o^a)+t[5]-378558|0)&lt;&lt;4|n&gt;&gt;&gt;28)+r|0)^r^o)+t[8]-2022574463|0)&lt;&lt;11|a&gt;&gt;&gt;21)+n|0)^n^r)+t[11]+1839030562|0)&lt;&lt;16|o&gt;&gt;&gt;16)+a|0)^a^n)+t[14]-35309556|0)&lt;&lt;23|r&gt;&gt;&gt;9)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r^o^a)+t[1]-1530992060|0)&lt;&lt;4|n&gt;&gt;&gt;28)+r|0)^r^o)+t[4]+1272893353|0)&lt;&lt;11|a&gt;&gt;&gt;21)+n|0)^n^r)+t[7]-155497632|0)&lt;&lt;16|o&gt;&gt;&gt;16)+a|0)^a^n)+t[10]-1094730640|0)&lt;&lt;23|r&gt;&gt;&gt;9)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r^o^a)+t[13]+681279174|0)&lt;&lt;4|n&gt;&gt;&gt;28)+r|0)^r^o)+t[0]-358537222|0)&lt;&lt;11|a&gt;&gt;&gt;21)+n|0)^n^r)+t[3]-722521979|0)&lt;&lt;16|o&gt;&gt;&gt;16)+a|0)^a^n)+t[6]+76029189|0)&lt;&lt;23|r&gt;&gt;&gt;9)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r^o^a)+t[9]-640364487|0)&lt;&lt;4|n&gt;&gt;&gt;28)+r|0)^r^o)+t[12]-421815835|0)&lt;&lt;11|a&gt;&gt;&gt;21)+n|0)^n^r)+t[15]+530742520|0)&lt;&lt;16|o&gt;&gt;&gt;16)+a|0)^a^n)+t[2]-995338651|0)&lt;&lt;23|r&gt;&gt;&gt;9)+o|0,r=((r+=((a=((a+=(r^((n=((n+=(o^(r|~a))+t[0]-198630844|0)&lt;&lt;6|n&gt;&gt;&gt;26)+r|0)|~o))+t[7]+1126891415|0)&lt;&lt;10|a&gt;&gt;&gt;22)+n|0)^((o=((o+=(n^(a|~r))+t[14]-1416354905|0)&lt;&lt;15|o&gt;&gt;&gt;17)+a|0)|~n))+t[5]-57434055|0)&lt;&lt;21|r&gt;&gt;&gt;11)+o|0,r=((r+=((a=((a+=(r^((n=((n+=(o^(r|~a))+t[12]+1700485571|0)&lt;&lt;6|n&gt;&gt;&gt;26)+r|0)|~o))+t[3]-1894986606|0)&lt;&lt;10|a&gt;&gt;&gt;22)+n|0)^((o=((o+=(n^(a|~r))+t[10]-1051523|0)&lt;&lt;15|o&gt;&gt;&gt;17)+a|0)|~n))+t[1]-2054922799|0)&lt;&lt;21|r&gt;&gt;&gt;11)+o|0,r=((r+=((a=((a+=(r^((n=((n+=(o^(r|~a))+t[8]+1873313359|0)&lt;&lt;6|n&gt;&gt;&gt;26)+r|0)|~o))+t[15]-30611744|0)&lt;&lt;10|a&gt;&gt;&gt;22)+n|0)^((o=((o+=(n^(a|~r))+t[6]-1560198380|0)&lt;&lt;15|o&gt;&gt;&gt;17)+a|0)|~n))+t[13]+1309151649|0)&lt;&lt;21|r&gt;&gt;&gt;11)+o|0,r=((r+=((a=((a+=(r^((n=((n+=(o^(r|~a))+t[4]-145523070|0)&lt;&lt;6|n&gt;&gt;&gt;26)+r|0)|~o))+t[11]-1120210379|0)&lt;&lt;10|a&gt;&gt;&gt;22)+n|0)^((o=((o+=(n^(a|~r))+t[2]+718787259|0)&lt;&lt;15|o&gt;&gt;&gt;17)+a|0)|~n))+t[9]-343485551|0)&lt;&lt;21|r&gt;&gt;&gt;11)+o|0,e[0]=n+e[0]|0,e[1]=r+e[1]|0,e[2]=o+e[2]|0,e[3]=a+e[3]|0}function r(e){var t,n=[];for(t=0;t&lt;64;t+=4)n[t&gt;&gt;2]=e.charCodeAt(t)+(e.charCodeAt(t+1)&lt;&lt;8)+(e.charCodeAt(t+2)&lt;&lt;16)+(e.charCodeAt(t+3)&lt;&lt;24);return n}function o(e){var t,n=[];for(t=0;t&lt;64;t+=4)n[t&gt;&gt;2]=e[t]+(e[t+1]&lt;&lt;8)+(e[t+2]&lt;&lt;16)+(e[t+3]&lt;&lt;24);return n}function a(e){var t,o,a,i,s,l,c=e.length,u=[1732584193,-271733879,-1732584194,271733878];for(t=64;t&lt;=c;t+=64)n(u,r(e.substring(t-64,t)));for(o=(e=e.substring(t-64)).length,a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],t=0;t&lt;o;t+=1)a[t&gt;&gt;2]|=e.charCodeAt(t)&lt;&lt;(t%4&lt;&lt;3);if(a[t&gt;&gt;2]|=128&lt;&lt;(t%4&lt;&lt;3),t&gt;55)for(n(u,a),t=0;t&lt;16;t+=1)a[t]=0;return i=(i=8*c).toString(16).match(/(.*?)(.{0,8})$/),s=parseInt(i[2],16),l=parseInt(i[1],16)||0,a[14]=s,a[15]=l,n(u,a),u}function i(e){var t,r,a,i,s,l,c=e.length,u=[1732584193,-271733879,-1732584194,271733878];for(t=64;t&lt;=c;t+=64)n(u,o(e.subarray(t-64,t)));for(r=(e=t-64&lt;c?e.subarray(t-64):new Uint8Array(0)).length,a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],t=0;t&lt;r;t+=1)a[t&gt;&gt;2]|=e[t]&lt;&lt;(t%4&lt;&lt;3);if(a[t&gt;&gt;2]|=128&lt;&lt;(t%4&lt;&lt;3),t&gt;55)for(n(u,a),t=0;t&lt;16;t+=1)a[t]=0;return i=(i=8*c).toString(16).match(/(.*?)(.{0,8})$/),s=parseInt(i[2],16),l=parseInt(i[1],16)||0,a[14]=s,a[15]=l,n(u,a),u}function s(e){var n,r=&quot;&quot;;for(n=0;n&lt;4;n+=1)r+=t[e&gt;&gt;8*n+4&amp;15]+t[e&gt;&gt;8*n&amp;15];return r}function l(e){var t;for(t=0;t&lt;e.length;t+=1)e[t]=s(e[t]);return e.join(&quot;&quot;)}function c(e){return/[\\u0080-\\uFFFF]/.test(e)&amp;&amp;(e=unescape(encodeURIComponent(e))),e}function u(e,t){var n,r=e.length,o=new ArrayBuffer(r),a=new Uint8Array(o);for(n=0;n&lt;r;n+=1)a[n]=e.charCodeAt(n);return t?a:o}function d(e){return String.fromCharCode.apply(null,new Uint8Array(e))}function p(e,t,n){var r=new Uint8Array(e.byteLength+t.byteLength);return r.set(new Uint8Array(e)),r.set(new Uint8Array(t),e.byteLength),n?r:r.buffer}function f(e){var t,n=[],r=e.length;for(t=0;t&lt;r-1;t+=2)n.push(parseInt(e.substr(t,2),16));return String.fromCharCode.apply(String,n)}function g(){this.reset()}return l(a(&quot;hello&quot;)),&quot;undefined&quot;==typeof ArrayBuffer||ArrayBuffer.prototype.slice||function(){function t(e,t){return(e=0|e||0)&lt;0?Math.max(e+t,0):Math.min(e,t)}ArrayBuffer.prototype.slice=function(n,r){var o,a,i,s,l=this.byteLength,c=t(n,l),u=l;return r!==e&amp;&amp;(u=t(r,l)),c&gt;u?new ArrayBuffer(0):(o=u-c,a=new ArrayBuffer(o),i=new Uint8Array(a),s=new Uint8Array(this,c,o),i.set(s),a)}}(),g.prototype.append=function(e){return this.appendBinary(c(e)),this},g.prototype.appendBinary=function(e){this._buff+=e,this._length+=e.length;var t,o=this._buff.length;for(t=64;t&lt;=o;t+=64)n(this._hash,r(this._buff.substring(t-64,t)));return this._buff=this._buff.substring(t-64),this},g.prototype.end=function(e){var t,n,r=this._buff,o=r.length,a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(t=0;t&lt;o;t+=1)a[t&gt;&gt;2]|=r.charCodeAt(t)&lt;&lt;(t%4&lt;&lt;3);return this._finish(a,o),n=l(this._hash),e&amp;&amp;(n=f(n)),this.reset(),n},g.prototype.reset=function(){return this._buff=&quot;&quot;,this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},g.prototype.getState=function(){return{buff:this._buff,length:this._length,hash:this._hash.slice()}},g.prototype.setState=function(e){return this._buff=e.buff,this._length=e.length,this._hash=e.hash,this},g.prototype.destroy=function(){delete this._hash,delete this._buff,delete this._length},g.prototype._finish=function(e,t){var r,o,a,i=t;if(e[i&gt;&gt;2]|=128&lt;&lt;(i%4&lt;&lt;3),i&gt;55)for(n(this._hash,e),i=0;i&lt;16;i+=1)e[i]=0;r=(r=8*this._length).toString(16).match(/(.*?)(.{0,8})$/),o=parseInt(r[2],16),a=parseInt(r[1],16)||0,e[14]=o,e[15]=a,n(this._hash,e)},g.hash=function(e,t){return g.hashBinary(c(e),t)},g.hashBinary=function(e,t){var n=l(a(e));return t?f(n):n},g.ArrayBuffer=function(){this.reset()},g.ArrayBuffer.prototype.append=function(e){var t,r=p(this._buff.buffer,e,!0),a=r.length;for(this._length+=e.byteLength,t=64;t&lt;=a;t+=64)n(this._hash,o(r.subarray(t-64,t)));return this._buff=t-64&lt;a?new Uint8Array(r.buffer.slice(t-64)):new Uint8Array(0),this},g.ArrayBuffer.prototype.end=function(e){var t,n,r=this._buff,o=r.length,a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(t=0;t&lt;o;t+=1)a[t&gt;&gt;2]|=r[t]&lt;&lt;(t%4&lt;&lt;3);return this._finish(a,o),n=l(this._hash),e&amp;&amp;(n=f(n)),this.reset(),n},g.ArrayBuffer.prototype.reset=function(){return this._buff=new Uint8Array(0),this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},g.ArrayBuffer.prototype.getState=function(){var e=g.prototype.getState.call(this);return e.buff=d(e.buff),e},g.ArrayBuffer.prototype.setState=function(e){return e.buff=u(e.buff,!0),g.prototype.setState.call(this,e)},g.ArrayBuffer.prototype.destroy=g.prototype.destroy,g.ArrayBuffer.prototype._finish=g.prototype._finish,g.ArrayBuffer.hash=function(e,t){var n=l(i(new Uint8Array(e)));return t?f(n):n},g}()}(Iv);var Ov=Iv.exports;const Rv=[&quot;lastShaderProgramBound&quot;,&quot;context&quot;,&quot;_openGLRenderWindow&quot;];const Mv={lastShaderProgramBound:null,shaderPrograms:null,context:null};function Dv(e,t,n={}){Object.assign(t,Mv,n),t.shaderPrograms={},sn.obj(e,t),sn.setGet(e,t,Rv),sn.moveToProtected(e,t,[&quot;openGLRenderWindow&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkShaderCache&quot;),e.replaceShaderValues=(e,n,r)=&gt;{let o=n;r.length&gt;0&amp;&amp;(o=vd.substitute(o,&quot;VSOut&quot;,&quot;GSOut&quot;).result);const a=t._openGLRenderWindow.getWebgl2();let i=&quot;\\n&quot;,s=&quot;#version 100\\n&quot;;a?s=&quot;#version 300 es\\n#define attribute in\\n#define textureCube texture\\n#define texture2D texture\\n#define textureCubeLod textureLod\\n#define texture2DLod textureLod\\n&quot;:(t.context.getExtension(&quot;OES_standard_derivatives&quot;),t.context.getExtension(&quot;EXT_frag_depth&quot;)&amp;&amp;(i=&quot;#extension GL_EXT_frag_depth : enable\\n&quot;),t.context.getExtension(&quot;EXT_shader_texture_lod&quot;)&amp;&amp;(i+=&quot;#extension GL_EXT_shader_texture_lod : enable\\n#define textureCubeLod textureCubeLodEXT\\n#define texture2DLod texture2DLodEXT&quot;)),o=vd.substitute(o,&quot;//VTK::System::Dec&quot;,[`${s}\\n`,a?&quot;&quot;:&quot;#extension GL_OES_standard_derivatives : enable\\n&quot;,i,&quot;#ifdef GL_FRAGMENT_PRECISION_HIGH&quot;,&quot;precision highp float;&quot;,&quot;precision highp int;&quot;,&quot;#else&quot;,&quot;precision mediump float;&quot;,&quot;precision mediump int;&quot;,&quot;#endif&quot;]).result;let l=vd.substitute(e,&quot;//VTK::System::Dec&quot;,[`${s}\\n`,&quot;#ifdef GL_FRAGMENT_PRECISION_HIGH&quot;,&quot;precision highp float;&quot;,&quot;precision highp int;&quot;,&quot;#else&quot;,&quot;precision mediump float;&quot;,&quot;precision mediump int;&quot;,&quot;#endif&quot;]).result;if(a){l=vd.substitute(l,&quot;varying&quot;,&quot;out&quot;).result,o=vd.substitute(o,&quot;varying&quot;,&quot;in&quot;).result;let e=&quot;&quot;,t=0;for(;o.includes(`gl_FragData[${t}]`);)o=vd.substitute(o,`gl_FragData\\\\[${t}\\\\]`,`fragOutput${t}`).result,e+=`layout(location = ${t}) out vec4 fragOutput${t};\\n`,t++;o=vd.substitute(o,&quot;//VTK::Output::Dec&quot;,e).result}return{VSSource:l,FSSource:o,GSSource:vd.substitute(r,&quot;//VTK::System::Dec&quot;,s).result}},e.readyShaderProgramArray=(t,n,r)=&gt;{const o=e.replaceShaderValues(t,n,r),a=e.getShaderProgram(o.VSSource,o.FSSource,o.GSSource);return e.readyShaderProgram(a)},e.readyShaderProgram=t=&gt;t&amp;&amp;(t.getCompiled()||t.compileShader())&amp;&amp;e.bindShaderProgram(t)?t:null,e.getShaderProgram=(e,n,r)=&gt;{const o=`${e}${n}${r}`,a=Ov.hash(o);if(!(a in t.shaderPrograms)){const o=vd.newInstance();return o.setContext(t.context),o.getVertexShader().setSource(e),o.getFragmentShader().setSource(n),r&amp;&amp;o.getGeometryShader().setSource(r),o.setMd5Hash(a),t.shaderPrograms[a]=o,o}return t.shaderPrograms[a]},e.releaseGraphicsResources=n=&gt;{e.releaseCurrentShaderProgram(),Object.keys(t.shaderPrograms).map((e=&gt;t.shaderPrograms[e])).forEach((e=&gt;e.cleanup())),t.shaderPrograms={}},e.releaseCurrentShaderProgram=()=&gt;{t.lastShaderProgramBound&amp;&amp;(t.lastShaderProgramBound.cleanup(),t.lastShaderProgramBound=null)},e.bindShaderProgram=e=&gt;(t.lastShaderProgramBound===e||(t.lastShaderProgramBound&amp;&amp;t.lastShaderProgramBound.release(),e.bind(),t.lastShaderProgramBound=e),1)}(e,t)}var Ev={newInstance:sn.newInstance(Dv,&quot;vtkShaderCache&quot;),extend:Dv};const{vtkErrorMacro:Vv}=sn;const Lv={context:null,numberOfTextureUnits:0,textureUnits:0};function Bv(e,t,n={}){Object.assign(t,Lv,n),sn.obj(e,t),t.textureUnits=[],sn.get(e,t,[&quot;numberOfTextureUnits&quot;]),sn.setGet(e,t,[&quot;context&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkOpenGLTextureUnitManager&quot;),e.deleteTable=()=&gt;{for(let e=0;e&lt;t.numberOfTextureUnits;++e)!0===t.textureUnits[e]&amp;&amp;Vv(&quot;some texture units  were not properly released&quot;);t.textureUnits=[],t.numberOfTextureUnits=0},e.setContext=n=&gt;{if(t.context!==n){if(0!==t.context&amp;&amp;e.deleteTable(),t.context=n,t.context){t.numberOfTextureUnits=n.getParameter(n.MAX_TEXTURE_IMAGE_UNITS);for(let e=0;e&lt;t.numberOfTextureUnits;++e)t.textureUnits[e]=!1}e.modified()}},e.allocate=()=&gt;{for(let n=0;n&lt;t.numberOfTextureUnits;n++)if(!e.isAllocated(n))return t.textureUnits[n]=!0,n;return-1},e.allocateUnit=n=&gt;e.isAllocated(n)?-1:(t.textureUnits[n]=!0,n),e.isAllocated=e=&gt;t.textureUnits[e],e.free=e=&gt;{t.textureUnits[e]=!1},e.freeAll=()=&gt;{for(let e=0;e&lt;t.numberOfTextureUnits;++e)t.textureUnits[e]=!1}}(e,t)}var Fv={newInstance:sn.newInstance(Bv,&quot;vtkOpenGLTextureUnitManager&quot;),extend:Bv};const Nv={size:void 0,selector:void 0};function kv(e,t,n={}){Object.assign(t,Nv,n),t.size||(t.size=[300,300]),sn.getArray(e,t,[&quot;size&quot;],2),sn.get(e,t,[&quot;selector&quot;]),pn.extend(e,t,n),function(e,t){t.classHierarchy.push(&quot;vtkRenderWindowViewNode&quot;),e.getViewNodeFactory=()=&gt;null,e.getAspectRatio=()=&gt;t.size[0]/t.size[1],e.getAspectRatioForRenderer=e=&gt;{const n=e.getViewportByReference();return t.size[0]*(n[2]-n[0])/((n[3]-n[1])*t.size[1])},e.isInViewport=(t,n,r)=&gt;{const o=r.getViewportByReference(),a=e.getFramebufferSize();return o[0]*a[0]&lt;=t&amp;&amp;o[2]*a[0]&gt;=t&amp;&amp;o[1]*a[1]&lt;=n&amp;&amp;o[3]*a[1]&gt;=n},e.getViewportSize=t=&gt;{const n=t.getViewportByReference(),r=e.getFramebufferSize();return[(n[2]-n[0])*r[0],(n[3]-n[1])*r[1]]},e.getViewportCenter=t=&gt;{const n=e.getViewportSize(t);return[.5*n[0],.5*n[1]]},e.displayToNormalizedDisplay=(t,n,r)=&gt;{const o=e.getFramebufferSize();return[t/o[0],n/o[1],r]},e.normalizedDisplayToDisplay=(t,n,r)=&gt;{const o=e.getFramebufferSize();return[t*o[0],n*o[1],r]},e.worldToView=(e,t,n,r)=&gt;r.worldToView(e,t,n),e.viewToWorld=(e,t,n,r)=&gt;r.viewToWorld(e,t,n),e.worldToDisplay=(t,n,r,o)=&gt;{const a=o.worldToView(t,n,r),i=e.getViewportSize(o),s=o.viewToProjection(a[0],a[1],a[2],i[0]/i[1]),l=o.projectionToNormalizedDisplay(s[0],s[1],s[2]);return e.normalizedDisplayToDisplay(l[0],l[1],l[2])},e.displayToWorld=(t,n,r,o)=&gt;{const a=e.displayToNormalizedDisplay(t,n,r),i=o.normalizedDisplayToProjection(a[0],a[1],a[2]),s=e.getViewportSize(o),l=o.projectionToView(i[0],i[1],i[2],s[0]/s[1]);return o.viewToWorld(l[0],l[1],l[2])},e.normalizedDisplayToViewport=(t,n,r,o)=&gt;{let a=o.getViewportByReference();a=e.normalizedDisplayToDisplay(a[0],a[1],0);const i=e.normalizedDisplayToDisplay(t,n,r);return[i[0]-a[0]-.5,i[1]-a[1]-.5,r]},e.viewportToNormalizedViewport=(t,n,r,o)=&gt;{const a=e.getViewportSize(o);return a&amp;&amp;0!==a[0]&amp;&amp;0!==a[1]?[t/(a[0]-1),n/(a[1]-1),r]:[t,n,r]},e.normalizedViewportToViewport=(t,n,r,o)=&gt;{const a=e.getViewportSize(o);return[t*(a[0]-1),n*(a[1]-1),r]},e.displayToLocalDisplay=(t,n,r)=&gt;[t,e.getFramebufferSize()[1]-n-1,r],e.viewportToNormalizedDisplay=(t,n,r,o)=&gt;{let a=o.getViewportByReference();a=e.normalizedDisplayToDisplay(a[0],a[1],0);const i=t+a[0]+.5,s=n+a[1]+.5;return e.displayToNormalizedDisplay(i,s,r)},e.getComputedDevicePixelRatio=()=&gt;t.size[0]/e.getContainerSize()[0],e.getContainerSize=()=&gt;{sn.vtkErrorMacro(&quot;not implemented&quot;)},e.getPixelData=(e,t,n,r)=&gt;{sn.vtkErrorMacro(&quot;not implemented&quot;)},e.createSelector=()=&gt;{sn.vtkErrorMacro(&quot;not implemented&quot;)}}(e,t)}var Gv={newInstance:sn.newInstance(kv,&quot;vtkRenderWindowViewNode&quot;),extend:kv};function Uv(){const e=new Map,t={apply:(t,n,r)=&gt;e.has(r[0])?e.get(r[0]):t.apply(n,r)};const n=Object.create(null);return n.getParameter=(e,n,r,o)=&gt;new Proxy(o.bind(e),t),n.depthMask=(t,n,r,o)=&gt;{return new Proxy(o.bind(t),(a=t.DEPTH_WRITEMASK,{apply:(t,n,r)=&gt;(e.set(a,r[0]),t.apply(n,r))}));var a},{get(e,t,r){if(&quot;__getUnderlyingContext&quot;===t)return()=&gt;e;let o=Reflect.get(e,t,e);o instanceof Function&amp;&amp;(o=o.bind(e));const a=n[t];return a?a(e,t,r,o):o}}}const{vtkDebugMacro:_v,vtkErrorMacro:Kv}=sn,zv={position:&quot;absolute&quot;,top:0,left:0,width:&quot;100%&quot;,height:&quot;100%&quot;},Wv=[&quot;activateTexture&quot;,&quot;deactivateTexture&quot;,&quot;disableCullFace&quot;,&quot;enableCullFace&quot;,&quot;get3DContext&quot;,&quot;getActiveFramebuffer&quot;,&quot;getContext&quot;,&quot;getDefaultTextureByteSize&quot;,&quot;getDefaultTextureInternalFormat&quot;,&quot;getDefaultToWebgl2&quot;,&quot;getGLInformations&quot;,&quot;getGraphicsMemoryInfo&quot;,&quot;getGraphicsResourceForObject&quot;,&quot;getHardwareMaximumLineWidth&quot;,&quot;getPixelData&quot;,&quot;getShaderCache&quot;,&quot;getTextureUnitForTexture&quot;,&quot;getTextureUnitManager&quot;,&quot;getWebgl2&quot;,&quot;makeCurrent&quot;,&quot;releaseGraphicsResources&quot;,&quot;registerGraphicsResourceUser&quot;,&quot;unregisterGraphicsResourceUser&quot;,&quot;restoreContext&quot;,&quot;setActiveFramebuffer&quot;,&quot;setContext&quot;,&quot;setDefaultToWebgl2&quot;,&quot;setGraphicsResourceForObject&quot;];function Hv(e,t,n){const r=e.createFramebuffer(),o=e.createTexture();e.bindTexture(e.TEXTURE_2D,o),e.texImage2D(e.TEXTURE_2D,0,t,2,2,0,t,n,null),e.bindFramebuffer(e.FRAMEBUFFER,r),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,o,0);const a=e.checkFramebufferStatus(e.FRAMEBUFFER);return e.bindFramebuffer(e.FRAMEBUFFER,null),e.bindTexture(e.TEXTURE_2D,null),a===e.FRAMEBUFFER_COMPLETE}let jv=0;const Xv=[];function qv(e){e.preventDefault()}function Yv(e,t){let n;t.classHierarchy.push(&quot;vtkOpenGLRenderWindow&quot;),e.getViewNodeFactory=()=&gt;t.myFactory,t.canvas.addEventListener(&quot;webglcontextlost&quot;,qv,!1),t.canvas.addEventListener(&quot;webglcontextrestored&quot;,e.restoreContext,!1);const r=[0,0];let o;e.onModified((function(){t.renderable&amp;&amp;(t.size[0]===r[0]&amp;&amp;t.size[1]===r[1]||(r[0]=t.size[0],r[1]=t.size[1],t.canvas.setAttribute(&quot;width&quot;,t.size[0]),t.canvas.setAttribute(&quot;height&quot;,t.size[1]))),t.viewStream&amp;&amp;t.viewStream.setSize(t.size[0],t.size[1]),t.canvas.style.display=t.useOffScreen?&quot;none&quot;:&quot;block&quot;,t.el&amp;&amp;(t.el.style.cursor=t.cursorVisibility?t.cursor:&quot;none&quot;),t.containerSize=null})),e.buildPass=n=&gt;{if(n){if(!t.renderable)return;e.prepareNodes(),e.addMissingNodes(t.renderable.getRenderersByReference()),e.addMissingNodes(t.renderable.getChildRenderWindowsByReference()),e.removeUnusedNodes(),e.initialize(),t.children.forEach((t=&gt;{t.setOpenGLRenderWindow?.(e)}))}},e.initialize=()=&gt;{if(!t.initialized){if(t.rootOpenGLRenderWindow=e.getLastAncestorOfType(&quot;vtkOpenGLRenderWindow&quot;),t.rootOpenGLRenderWindow)t.context2D=e.get2DContext();else{t.context=e.get3DContext(),e.resizeFromChildRenderWindows(),t.context&amp;&amp;(jv++,Xv.forEach((e=&gt;e(jv)))),t.textureUnitManager=Fv.newInstance(),t.textureUnitManager.setContext(t.context),t.shaderCache.setContext(t.context);const n=t.context;n.blendFuncSeparate(n.SRC_ALPHA,n.ONE_MINUS_SRC_ALPHA,n.ONE,n.ONE_MINUS_SRC_ALPHA),n.depthFunc(n.LEQUAL),n.enable(n.BLEND)}t.initialized=!0}},e.makeCurrent=()=&gt;{t.context.makeCurrent()},e.setContainer=n=&gt;{t.el&amp;&amp;t.el!==n&amp;&amp;(t.canvas.parentNode!==t.el&amp;&amp;Kv(&quot;Error: canvas parent node does not match container&quot;),t.el.removeChild(t.canvas),t.el.contains(t.bgImage)&amp;&amp;t.el.removeChild(t.bgImage)),t.el!==n&amp;&amp;(t.el=n,t.el&amp;&amp;(t.el.appendChild(t.canvas),t.useBackgroundImage&amp;&amp;t.el.appendChild(t.bgImage)),e.modified())},e.getContainer=()=&gt;t.el,e.getContainerSize=()=&gt;{if(!t.containerSize&amp;&amp;t.el){const{width:e,height:n}=t.el.getBoundingClientRect();t.containerSize=[e,n]}return t.containerSize||t.size},e.getFramebufferSize=()=&gt;{const e=t.activeFramebuffer?.getSize();return e||t.size},e.getPixelData=(e,n,r,o)=&gt;{const a=new Uint8Array((r-e+1)*(o-n+1)*4);return t.context.readPixels(e,n,r-e+1,o-n+1,t.context.RGBA,t.context.UNSIGNED_BYTE,a),a},e.get3DContext=(e={preserveDrawingBuffer:!1,depth:!0,alpha:!0,powerPreference:&quot;high-performance&quot;})=&gt;{let r=null;const o=&quot;undefined&quot;!=typeof WebGL2RenderingContext;return t.webgl2=!1,t.defaultToWebgl2&amp;&amp;o&amp;&amp;(r=t.canvas.getContext(&quot;webgl2&quot;,e),r&amp;&amp;(t.webgl2=!0,_v(&quot;using webgl2&quot;))),r||(_v(&quot;using webgl1&quot;),r=t.canvas.getContext(&quot;webgl&quot;,e)||t.canvas.getContext(&quot;experimental-webgl&quot;,e)),r||Kv(&quot;no webgl context&quot;),new Proxy(r,(n||(n=Uv()),n))},e.get2DContext=(e={})=&gt;t.canvas.getContext(&quot;2d&quot;,e),e.restoreContext=()=&gt;{const t=vv.newInstance();t.setCurrentOperation(&quot;Release&quot;),t.traverse(e,null)},e.activateTexture=n=&gt;{const r=t._textureResourceIds.get(n);if(void 0!==r)return void t.context.activeTexture(t.context.TEXTURE0+r);const o=e.getTextureUnitManager().allocate();o&lt;0?Kv(&quot;Hardware does not support the number of textures defined.&quot;):(t._textureResourceIds.set(n,o),t.context.activeTexture(t.context.TEXTURE0+o))},e.deactivateTexture=n=&gt;{const r=t._textureResourceIds.get(n);void 0!==r&amp;&amp;(e.getTextureUnitManager().free(r),t._textureResourceIds.delete(n))},e.getTextureUnitForTexture=e=&gt;{const n=t._textureResourceIds.get(e);return void 0!==n?n:-1},e.getDefaultTextureByteSize=(e,n=null,r=!1)=&gt;{if(t.webgl2)switch(e){case ms.CHAR:case ms.SIGNED_CHAR:case ms.UNSIGNED_CHAR:return 1;case n:case r:case ms.UNSIGNED_SHORT:case ms.SHORT:case ms.VOID:return 2;default:return 4}return 1},e.getDefaultTextureInternalFormat=(e,n,r=null,o=!1)=&gt;{if(t.webgl2)switch(e){case ms.UNSIGNED_CHAR:switch(n){case 1:return t.context.R8;case 2:return t.context.RG8;case 3:return t.context.RGB8;default:return t.context.RGBA8}case r&amp;&amp;!o&amp;&amp;ms.UNSIGNED_SHORT:switch(n){case 1:return r.R16_EXT;case 2:return r.RG16_EXT;case 3:return r.RGB16_EXT;default:return r.RGBA16_EXT}case r&amp;&amp;!o&amp;&amp;ms.SHORT:switch(n){case 1:return r.R16_SNORM_EXT;case 2:return r.RG16_SNORM_EXT;case 3:return r.RGB16_SNORM_EXT;default:return r.RGBA16_SNORM_EXT}default:switch(n){case 1:return o?t.context.R16F:t.context.R32F;case 2:return o?t.context.RG16F:t.context.RG32F;case 3:return o?t.context.RGB16F:t.context.RGB32F;default:return o?t.context.RGBA16F:t.context.RGBA32F}}switch(n){case 1:return t.context.LUMINANCE;case 2:return t.context.LUMINANCE_ALPHA;case 3:return t.context.RGB;default:return t.context.RGBA}},e.setBackgroundImage=e=&gt;{t.bgImage.src=e.src},e.setUseBackgroundImage=e=&gt;{t.useBackgroundImage=e,t.useBackgroundImage&amp;&amp;!t.el.contains(t.bgImage)?t.el.appendChild(t.bgImage):!t.useBackgroundImage&amp;&amp;t.el.contains(t.bgImage)&amp;&amp;t.el.removeChild(t.bgImage)},e.captureNextImage=(n=&quot;image/png&quot;,{resetCamera:r=!1,size:o=null,scale:a=1}={})=&gt;{if(t.deleted)return null;t.imageFormat=n;const i=t.notifyStartCaptureImage;return t.notifyStartCaptureImage=!0,t._screenshot={size:o||1!==a?o||t.size.map((e=&gt;e*a)):null},new Promise(((n,o)=&gt;{const a=e.onImageReady((o=&gt;{if(null===t._screenshot.size)t.notifyStartCaptureImage=i,a.unsubscribe(),t._screenshot.placeHolder&amp;&amp;(t.size=t._screenshot.originalSize,e.modified(),t._screenshot.cameras&amp;&amp;t._screenshot.cameras.forEach((({restoreParamsFn:e,arg:t})=&gt;e(t))),e.traverseAllPasses(),t.el.removeChild(t._screenshot.placeHolder),t._screenshot.placeHolder.remove(),t._screenshot=null),n(o);else{const n=document.createElement(&quot;img&quot;);if(n.style=zv,n.src=o,t._screenshot.placeHolder=t.el.appendChild(n),t.canvas.style.display=&quot;none&quot;,t._screenshot.originalSize=t.size,t.size=t._screenshot.size,t.rootOpenGLRenderWindow?.resizeFromChildRenderWindows(),t._screenshot.size=null,e.modified(),r){const e=!0!==r;t._screenshot.cameras=t.renderable.getRenderers().map((t=&gt;{const n=t.getActiveCamera(),o=n.get(&quot;focalPoint&quot;,&quot;position&quot;,&quot;parallelScale&quot;);return{resetCameraArgs:e?{renderer:t}:void 0,resetCameraFn:e?r:t.resetCamera,restoreParamsFn:n.set,arg:JSON.parse(JSON.stringify(o))}})),t._screenshot.cameras.forEach((({resetCameraFn:e,resetCameraArgs:t})=&gt;e(t)))}e.traverseAllPasses()}}))}))},e.getHardwareMaximumLineWidth=()=&gt;{if(null!=o)return o;const t=e.get3DContext(),n=t.getParameter(t.ALIASED_LINE_WIDTH_RANGE);return o=n[1],n[1]},e.getGLInformations=()=&gt;{if(t._glInformation)return t._glInformation;const n=e.get3DContext(),r=n.getExtension(&quot;OES_texture_float&quot;),o=n.getExtension(&quot;OES_texture_half_float&quot;),a=n.getExtension(&quot;WEBGL_debug_renderer_info&quot;),i=n.getExtension(&quot;WEBGL_draw_buffers&quot;),s=n.getExtension(&quot;EXT_texture_filter_anisotropic&quot;)||n.getExtension(&quot;WEBKIT_EXT_texture_filter_anisotropic&quot;),l=[[&quot;Max Vertex Attributes&quot;,&quot;MAX_VERTEX_ATTRIBS&quot;,n.getParameter(n.MAX_VERTEX_ATTRIBS)],[&quot;Max Varying Vectors&quot;,&quot;MAX_VARYING_VECTORS&quot;,n.getParameter(n.MAX_VARYING_VECTORS)],[&quot;Max Vertex Uniform Vectors&quot;,&quot;MAX_VERTEX_UNIFORM_VECTORS&quot;,n.getParameter(n.MAX_VERTEX_UNIFORM_VECTORS)],[&quot;Max Fragment Uniform Vectors&quot;,&quot;MAX_FRAGMENT_UNIFORM_VECTORS&quot;,n.getParameter(n.MAX_FRAGMENT_UNIFORM_VECTORS)],[&quot;Max Fragment Texture Image Units&quot;,&quot;MAX_TEXTURE_IMAGE_UNITS&quot;,n.getParameter(n.MAX_TEXTURE_IMAGE_UNITS)],[&quot;Max Vertex Texture Image Units&quot;,&quot;MAX_VERTEX_TEXTURE_IMAGE_UNITS&quot;,n.getParameter(n.MAX_VERTEX_TEXTURE_IMAGE_UNITS)],[&quot;Max Combined Texture Image Units&quot;,&quot;MAX_COMBINED_TEXTURE_IMAGE_UNITS&quot;,n.getParameter(n.MAX_COMBINED_TEXTURE_IMAGE_UNITS)],[&quot;Max 2D Texture Size&quot;,&quot;MAX_TEXTURE_SIZE&quot;,n.getParameter(n.MAX_TEXTURE_SIZE)],[&quot;Max Cube Texture Size&quot;,&quot;MAX_CUBE_MAP_TEXTURE_SIZE&quot;,n.getParameter(n.MAX_CUBE_MAP_TEXTURE_SIZE)],[&quot;Max Texture Anisotropy&quot;,&quot;MAX_TEXTURE_MAX_ANISOTROPY_EXT&quot;,s&amp;&amp;n.getParameter(s.MAX_TEXTURE_MAX_ANISOTROPY_EXT)],[&quot;Point Size Range&quot;,&quot;ALIASED_POINT_SIZE_RANGE&quot;,n.getParameter(n.ALIASED_POINT_SIZE_RANGE).join(&quot; - &quot;)],[&quot;Line Width Range&quot;,&quot;ALIASED_LINE_WIDTH_RANGE&quot;,n.getParameter(n.ALIASED_LINE_WIDTH_RANGE).join(&quot; - &quot;)],[&quot;Max Viewport Dimensions&quot;,&quot;MAX_VIEWPORT_DIMS&quot;,n.getParameter(n.MAX_VIEWPORT_DIMS).join(&quot; - &quot;)],[&quot;Max Renderbuffer Size&quot;,&quot;MAX_RENDERBUFFER_SIZE&quot;,n.getParameter(n.MAX_RENDERBUFFER_SIZE)],[&quot;Framebuffer Red Bits&quot;,&quot;RED_BITS&quot;,n.getParameter(n.RED_BITS)],[&quot;Framebuffer Green Bits&quot;,&quot;GREEN_BITS&quot;,n.getParameter(n.GREEN_BITS)],[&quot;Framebuffer Blue Bits&quot;,&quot;BLUE_BITS&quot;,n.getParameter(n.BLUE_BITS)],[&quot;Framebuffer Alpha Bits&quot;,&quot;ALPHA_BITS&quot;,n.getParameter(n.ALPHA_BITS)],[&quot;Framebuffer Depth Bits&quot;,&quot;DEPTH_BITS&quot;,n.getParameter(n.DEPTH_BITS)],[&quot;Framebuffer Stencil Bits&quot;,&quot;STENCIL_BITS&quot;,n.getParameter(n.STENCIL_BITS)],[&quot;Framebuffer Subpixel Bits&quot;,&quot;SUBPIXEL_BITS&quot;,n.getParameter(n.SUBPIXEL_BITS)],[&quot;MSAA Samples&quot;,&quot;SAMPLES&quot;,n.getParameter(n.SAMPLES)],[&quot;MSAA Sample Buffers&quot;,&quot;SAMPLE_BUFFERS&quot;,n.getParameter(n.SAMPLE_BUFFERS)],[&quot;Supported Formats for UByte Render Targets     &quot;,&quot;UNSIGNED_BYTE RENDER TARGET FORMATS&quot;,[r&amp;&amp;Hv(n,n.RGBA,n.UNSIGNED_BYTE)?&quot;RGBA&quot;:&quot;&quot;,r&amp;&amp;Hv(n,n.RGB,n.UNSIGNED_BYTE)?&quot;RGB&quot;:&quot;&quot;,r&amp;&amp;Hv(n,n.LUMINANCE,n.UNSIGNED_BYTE)?&quot;LUMINANCE&quot;:&quot;&quot;,r&amp;&amp;Hv(n,n.ALPHA,n.UNSIGNED_BYTE)?&quot;ALPHA&quot;:&quot;&quot;,r&amp;&amp;Hv(n,n.LUMINANCE_ALPHA,n.UNSIGNED_BYTE)?&quot;LUMINANCE_ALPHA&quot;:&quot;&quot;].join(&quot; &quot;)],[&quot;Supported Formats for Half Float Render Targets&quot;,&quot;HALF FLOAT RENDER TARGET FORMATS&quot;,[o&amp;&amp;Hv(n,n.RGBA,o.HALF_FLOAT_OES)?&quot;RGBA&quot;:&quot;&quot;,o&amp;&amp;Hv(n,n.RGB,o.HALF_FLOAT_OES)?&quot;RGB&quot;:&quot;&quot;,o&amp;&amp;Hv(n,n.LUMINANCE,o.HALF_FLOAT_OES)?&quot;LUMINANCE&quot;:&quot;&quot;,o&amp;&amp;Hv(n,n.ALPHA,o.HALF_FLOAT_OES)?&quot;ALPHA&quot;:&quot;&quot;,o&amp;&amp;Hv(n,n.LUMINANCE_ALPHA,o.HALF_FLOAT_OES)?&quot;LUMINANCE_ALPHA&quot;:&quot;&quot;].join(&quot; &quot;)],[&quot;Supported Formats for Full Float Render Targets&quot;,&quot;FLOAT RENDER TARGET FORMATS&quot;,[r&amp;&amp;Hv(n,n.RGBA,n.FLOAT)?&quot;RGBA&quot;:&quot;&quot;,r&amp;&amp;Hv(n,n.RGB,n.FLOAT)?&quot;RGB&quot;:&quot;&quot;,r&amp;&amp;Hv(n,n.LUMINANCE,n.FLOAT)?&quot;LUMINANCE&quot;:&quot;&quot;,r&amp;&amp;Hv(n,n.ALPHA,n.FLOAT)?&quot;ALPHA&quot;:&quot;&quot;,r&amp;&amp;Hv(n,n.LUMINANCE_ALPHA,n.FLOAT)?&quot;LUMINANCE_ALPHA&quot;:&quot;&quot;].join(&quot; &quot;)],[&quot;Max Multiple Render Targets Buffers&quot;,&quot;MAX_DRAW_BUFFERS_WEBGL&quot;,i?n.getParameter(i.MAX_DRAW_BUFFERS_WEBGL):0],[&quot;High Float Precision in Vertex Shader&quot;,&quot;HIGH_FLOAT VERTEX_SHADER&quot;,[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_FLOAT).precision,&quot; (-2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_FLOAT).rangeMin,&quot;&lt;/sup&gt; - 2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_FLOAT).rangeMax,&quot;&lt;/sup&gt;)&quot;].join(&quot;&quot;)],[&quot;Medium Float Precision in Vertex Shader&quot;,&quot;MEDIUM_FLOAT VERTEX_SHADER&quot;,[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).precision,&quot; (-2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).rangeMin,&quot;&lt;/sup&gt; - 2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).rangeMax,&quot;&lt;/sup&gt;)&quot;].join(&quot;&quot;)],[&quot;Low Float Precision in Vertex Shader&quot;,&quot;LOW_FLOAT VERTEX_SHADER&quot;,[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_FLOAT).precision,&quot; (-2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_FLOAT).rangeMin,&quot;&lt;/sup&gt; - 2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_FLOAT).rangeMax,&quot;&lt;/sup&gt;)&quot;].join(&quot;&quot;)],[&quot;High Float Precision in Fragment Shader&quot;,&quot;HIGH_FLOAT FRAGMENT_SHADER&quot;,[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).precision,&quot; (-2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).rangeMin,&quot;&lt;/sup&gt; - 2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).rangeMax,&quot;&lt;/sup&gt;)&quot;].join(&quot;&quot;)],[&quot;Medium Float Precision in Fragment Shader&quot;,&quot;MEDIUM_FLOAT FRAGMENT_SHADER&quot;,[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).precision,&quot; (-2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).rangeMin,&quot;&lt;/sup&gt; - 2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).rangeMax,&quot;&lt;/sup&gt;)&quot;].join(&quot;&quot;)],[&quot;Low Float Precision in Fragment Shader&quot;,&quot;LOW_FLOAT FRAGMENT_SHADER&quot;,[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_FLOAT).precision,&quot; (-2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_FLOAT).rangeMin,&quot;&lt;/sup&gt; - 2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_FLOAT).rangeMax,&quot;&lt;/sup&gt;)&quot;].join(&quot;&quot;)],[&quot;High Int Precision in Vertex Shader&quot;,&quot;HIGH_INT VERTEX_SHADER&quot;,[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_INT).precision,&quot; (-2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_INT).rangeMin,&quot;&lt;/sup&gt; - 2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_INT).rangeMax,&quot;&lt;/sup&gt;)&quot;].join(&quot;&quot;)],[&quot;Medium Int Precision in Vertex Shader&quot;,&quot;MEDIUM_INT VERTEX_SHADER&quot;,[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_INT).precision,&quot; (-2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_INT).rangeMin,&quot;&lt;/sup&gt; - 2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_INT).rangeMax,&quot;&lt;/sup&gt;)&quot;].join(&quot;&quot;)],[&quot;Low Int Precision in Vertex Shader&quot;,&quot;LOW_INT VERTEX_SHADER&quot;,[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_INT).precision,&quot; (-2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_INT).rangeMin,&quot;&lt;/sup&gt; - 2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_INT).rangeMax,&quot;&lt;/sup&gt;)&quot;].join(&quot;&quot;)],[&quot;High Int Precision in Fragment Shader&quot;,&quot;HIGH_INT FRAGMENT_SHADER&quot;,[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_INT).precision,&quot; (-2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_INT).rangeMin,&quot;&lt;/sup&gt; - 2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_INT).rangeMax,&quot;&lt;/sup&gt;)&quot;].join(&quot;&quot;)],[&quot;Medium Int Precision in Fragment Shader&quot;,&quot;MEDIUM_INT FRAGMENT_SHADER&quot;,[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_INT).precision,&quot; (-2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_INT).rangeMin,&quot;&lt;/sup&gt; - 2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_INT).rangeMax,&quot;&lt;/sup&gt;)&quot;].join(&quot;&quot;)],[&quot;Low Int Precision in Fragment Shader&quot;,&quot;LOW_INT FRAGMENT_SHADER&quot;,[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_INT).precision,&quot; (-2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_INT).rangeMin,&quot;&lt;/sup&gt; - 2&lt;sup&gt;&quot;,n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_INT).rangeMax,&quot;&lt;/sup&gt;)&quot;].join(&quot;&quot;)],[&quot;Supported Extensions&quot;,&quot;EXTENSIONS&quot;,n.getSupportedExtensions().join(&quot;&lt;br/&gt;\\t\\t\\t\\t\\t    &quot;)],[&quot;WebGL Renderer&quot;,&quot;RENDERER&quot;,n.getParameter(n.RENDERER)],[&quot;WebGL Vendor&quot;,&quot;VENDOR&quot;,n.getParameter(n.VENDOR)],[&quot;WebGL Version&quot;,&quot;VERSION&quot;,n.getParameter(n.VERSION)],[&quot;Shading Language Version&quot;,&quot;SHADING_LANGUAGE_VERSION&quot;,n.getParameter(n.SHADING_LANGUAGE_VERSION)],[&quot;Unmasked Renderer&quot;,&quot;UNMASKED_RENDERER&quot;,a&amp;&amp;n.getParameter(a.UNMASKED_RENDERER_WEBGL)],[&quot;Unmasked Vendor&quot;,&quot;UNMASKED_VENDOR&quot;,a&amp;&amp;n.getParameter(a.UNMASKED_VENDOR_WEBGL)],[&quot;WebGL Version&quot;,&quot;WEBGL_VERSION&quot;,t.webgl2?2:1]],c={};for(;l.length;){const[e,t,n]=l.pop();t&amp;&amp;(c[t]={label:e,value:n})}return t._glInformation=c,c},e.traverseAllPasses=()=&gt;{if(t.renderPasses)for(let n=0;n&lt;t.renderPasses.length;++n)t.renderPasses[n].traverse(e,null);e.copyParentContent(),t.notifyStartCaptureImage&amp;&amp;function(n=t.imageFormat){const r=document.createElement(&quot;canvas&quot;),o=r.getContext(&quot;2d&quot;);r.width=t.canvas.width,r.height=t.canvas.height,o.drawImage(t.canvas,0,0);const a=t.canvas.getBoundingClientRect();t.renderable.getRenderers().forEach((e=&gt;{e.getViewProps().forEach((e=&gt;{if(e.getContainer){const t=e.getContainer().getElementsByTagName(&quot;canvas&quot;);for(let e=0;e&lt;t.length;e++){const n=t[e],r=n.getBoundingClientRect(),i=r.x-a.x,s=r.y-a.y;o.drawImage(n,i,s)}}}))}));const i=r.toDataURL(n);r.remove(),e.invokeImageReady(i)}();const n=t.renderable.getChildRenderWindowsByReference();for(let t=0;t&lt;n.length;++t)e.getViewNodeFor(n[t])?.traverseAllPasses()},e.copyParentContent=()=&gt;{const e=t.rootOpenGLRenderWindow;if(!e||!t.context2D||t.children.some((e=&gt;!!e.getSelector?.())))return;const n=e.getCanvas(),r=t.canvas;t.context2D.drawImage(n,0,n.height-r.height,r.width,r.height,0,0,r.width,r.height)},e.resizeFromChildRenderWindows=()=&gt;{const n=t.renderable.getChildRenderWindowsByReference();if(n.length&gt;0){const t=[0,0];for(let r=0;r&lt;n.length;++r){const o=e.getViewNodeFor(n[r])?.getSize();o&amp;&amp;(t[0]=o[0]&gt;t[0]?o[0]:t[0],t[1]=o[1]&gt;t[1]?o[1]:t[1])}e.setSize(...t)}},e.disableCullFace=()=&gt;{t.cullFaceEnabled&amp;&amp;(t.context.disable(t.context.CULL_FACE),t.cullFaceEnabled=!1)},e.enableCullFace=()=&gt;{t.cullFaceEnabled||(t.context.enable(t.context.CULL_FACE),t.cullFaceEnabled=!0)},e.setViewStream=n=&gt;{if(t.viewStream===n)return!1;if(t.subscription&amp;&amp;(t.subscription.unsubscribe(),t.subscription=null),t.viewStream=n,t.viewStream){t.renderable.getRenderers()[0].getBackgroundByReference()[3]=0,e.setUseBackgroundImage(!0),t.subscription=t.viewStream.onImageReady((t=&gt;e.setBackgroundImage(t.image))),t.viewStream.setSize(t.size[0],t.size[1]),t.viewStream.invalidateCache(),t.viewStream.render(),e.modified()}return!0},e.createSelector=()=&gt;{const t=af.newInstance();return t.setOpenGLRenderWindow(e),t},e.delete=sn.chain((()=&gt;{t.context&amp;&amp;(jv--,Xv.forEach((e=&gt;e(jv)))),e.setContainer(),e.setViewStream()}),(function(){t.canvas.removeEventListener(&quot;webglcontextlost&quot;,qv),t.canvas.removeEventListener(&quot;webglcontextrestored&quot;,e.restoreContext)}),e.delete),e.setActiveFramebuffer=e=&gt;{t.activeFramebuffer=e};const a=e.setSize;e.setSize=(t,n)=&gt;{const r=a(t,n);return r&amp;&amp;e.invokeWindowResizeEvent({width:t,height:n}),r},e.registerGraphicsResourceUser=(n,r)=&gt;{t._graphicsResources.has(n)||e.setGraphicsResourceForObject(n,null,null);const o=t._graphicsResources.get(n);o?.users.add(r)},e.unregisterGraphicsResourceUser=(n,r)=&gt;{const o=t._graphicsResources.get(n);o&amp;&amp;(o.users.delete(r),o.users.size||(o.oglObject?.releaseGraphicsResources(e),t._graphicsResources.delete(n)))},e.getGraphicsResourceForObject=e=&gt;t._graphicsResources.get(e),e.setGraphicsResourceForObject=(n,r,o)=&gt;{if(!n)return;const a=t._graphicsResources.get(n);a?.oglObject?.releaseGraphicsResources(e),t._graphicsResources.set(n,{coreObject:n,oglObject:r,hash:o,users:a?.users??new Set})},e.getGraphicsMemoryInfo=()=&gt;{let e=0;return t._graphicsResources.forEach((({oglObject:t})=&gt;{e+=t.getAllocatedGPUMemoryInBytes()})),e},e.releaseGraphicsResources=()=&gt;{null!==t.shaderCache&amp;&amp;t.shaderCache.releaseGraphicsResources(e),t._graphicsResources.forEach((({oglObject:t})=&gt;{t.releaseGraphicsResources(e)})),t._graphicsResources.clear(),null!==t.textureUnitManager&amp;&amp;t.textureUnitManager.freeAll(),t.renderable.getRenderersByReference().forEach((t=&gt;{const n=e.getViewNodeFor(t);n?.releaseGraphicsResources()}))};const i={...e};Wv.forEach((n=&gt;{e[n]=(...e)=&gt;t.rootOpenGLRenderWindow?t.rootOpenGLRenderWindow[n](...e):i[n](...e)}))}const Jv={cullFaceEnabled:!1,shaderCache:null,initialized:!1,context:null,context2D:null,canvas:null,cursorVisibility:!0,cursor:&quot;pointer&quot;,textureUnitManager:null,textureResourceIds:null,containerSize:null,renderPasses:[],notifyStartCaptureImage:!1,webgl2:!1,defaultToWebgl2:!0,activeFramebuffer:null,imageFormat:&quot;image/png&quot;,useOffScreen:!1,useBackgroundImage:!1};const Zv=sn.newInstance((function(e,t,n={}){Object.assign(t,Jv,n),Gv.extend(e,t,n),t.canvas||(t.canvas=document.createElement(&quot;canvas&quot;),t.canvas.style.width=&quot;100%&quot;),t.selector||(t.selector=af.newInstance(),t.selector.setOpenGLRenderWindow(e)),t.bgImage=new Image,t.bgImage.style.position=&quot;absolute&quot;,t.bgImage.style.left=&quot;0&quot;,t.bgImage.style.top=&quot;0&quot;,t.bgImage.style.width=&quot;100%&quot;,t.bgImage.style.height=&quot;100%&quot;,t.bgImage.style.zIndex=&quot;-1&quot;,t._textureResourceIds=new Map,t._graphicsResources=new Map,t._glInformation=null,t.myFactory=yn.newInstance(),t.shaderCache=Ev.newInstance(),t.shaderCache.setOpenGLRenderWindow(e),t.renderPasses[0]=wv.newInstance(),sn.get(e,t,[&quot;shaderCache&quot;,&quot;textureUnitManager&quot;,&quot;webgl2&quot;,&quot;useBackgroundImage&quot;,&quot;activeFramebuffer&quot;,&quot;rootOpenGLRenderWindow&quot;]),sn.setGet(e,t,[&quot;initialized&quot;,&quot;context&quot;,&quot;context2D&quot;,&quot;canvas&quot;,&quot;renderPasses&quot;,&quot;notifyStartCaptureImage&quot;,&quot;defaultToWebgl2&quot;,&quot;cursor&quot;,&quot;useOffScreen&quot;]),sn.setGetArray(e,t,[&quot;size&quot;],2),sn.event(e,t,&quot;imageReady&quot;),sn.event(e,t,&quot;windowResizeEvent&quot;),Yv(e,t)}),&quot;vtkOpenGLRenderWindow&quot;);Oh(&quot;WebGL&quot;,Zv),vn(&quot;vtkRenderWindow&quot;,Zv);const Qv={device:null,handle:null};function $v(e,t,n={}){Object.assign(t,Qv,n),sn.obj(e,t),sn.get(e,t,[&quot;lastCameraMTime&quot;]),sn.setGet(e,t,[&quot;device&quot;,&quot;handle&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUShaderModule&quot;),e.initialize=(e,n)=&gt;{t.device=e,t.handle=t.device.getHandle().createShaderModule({code:n.getCode()})}}(e,t)}var eT={newInstance:sn.newInstance($v,&quot;vtkWebGPUShaderModule&quot;),extend:$v};const tT={shaderModules:null,device:null,window:null};function nT(e,t,n={}){Object.assign(t,tT,n),t._shaderModules=new Map,sn.obj(e,t),sn.setGet(e,t,[&quot;device&quot;,&quot;window&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUShaderCache&quot;),e.getShaderModule=e=&gt;{const n=e.getType(),r=e.getHash(),o=t._shaderModules.keys();for(let e=0;e&lt;o.length;e++){const a=o[e];if(a.getHash()===r&amp;&amp;a.getType()===n)return t._shaderModules.get(a)}const a=eT.newInstance();return a.initialize(t.device,e),t._shaderModules.set(e,a),a}}(e,t)}var rT={newInstance:sn.newInstance(nT,&quot;vtkWebGPUShaderCache&quot;),extend:nT,substitute:function(e,t,n,r=!0){const o=Array.isArray(n)?n.join(&quot;\\n&quot;):n;let a=!1;-1!==e.search(t)&amp;&amp;(a=!0);let i=&quot;&quot;;r&amp;&amp;(i=&quot;g&quot;);const s=new RegExp(t,i);return{replace:a,result:e.replace(s,o)}}};const oT={device:null,handle:null,label:null};function aT(e,t,n={}){Object.assign(t,oT,n),sn.obj(e,t),t.bindables=[],t.bindGroupTime={},sn.obj(t.bindGroupTime,{mtime:0}),sn.get(e,t,[&quot;bindGroupTime&quot;,&quot;handle&quot;,&quot;sizeInBytes&quot;,&quot;usage&quot;]),sn.setGet(e,t,[&quot;label&quot;,&quot;device&quot;,&quot;arrayInformation&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUBindGroup&quot;),e.setBindables=n=&gt;{if(t.bindables.length===n.length){let e=!0;for(let r=0;r&lt;t.bindables.length;r++)t.bindables[r]!==n[r]&amp;&amp;(e=!1);if(e)return}t.bindables=n,e.modified()},e.getBindGroupLayout=e=&gt;{const n=[];for(let e=0;e&lt;t.bindables.length;e++){const r=t.bindables[e].getBindGroupLayoutEntry();r.binding=e,n.push(r)}return e.getBindGroupLayout({entries:n})},e.getBindGroup=n=&gt;{let r=e.getMTime();for(let e=0;e&lt;t.bindables.length;e++){const n=t.bindables[e].getBindGroupTime().getMTime();r=n&gt;r?n:r}if(r&lt;t.bindGroupTime.getMTime())return t.bindGroup;const o=[];for(let e=0;e&lt;t.bindables.length;e++){const n=t.bindables[e].getBindGroupEntry();n.binding=e,o.push(n)}return t.bindGroup=n.getHandle().createBindGroup({layout:e.getBindGroupLayout(n),entries:o,label:t.label}),t.bindGroupTime.modified(),t.bindGroup},e.getShaderCode=e=&gt;{const n=[],r=e.getBindGroupLayoutCount(t.label);for(let e=0;e&lt;t.bindables.length;e++)n.push(t.bindables[e].getShaderCode(e,r));return n.join(&quot;\\n&quot;)}}(e,t)}var iT={newInstance:sn.newInstance(aT),extend:aT};const sT={extraPipelineSettings:null,handle:null,layouts:null,renderEncoder:null,shaderDescriptions:null,vertexState:null,topology:null,pipelineDescription:null};function lT(e,t,n={}){Object.assign(t,sT,n),Vt(e,t),t.layouts=[],t.shaderDescriptions=[],Bt(e,t,[&quot;handle&quot;,&quot;pipelineDescription&quot;]),Gt(e,t,[&quot;device&quot;,&quot;extraPipelineSettings&quot;,&quot;renderEncoder&quot;,&quot;topology&quot;,&quot;vertexState&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUPipeline&quot;),e.getShaderDescriptions=()=&gt;t.shaderDescriptions,e.applyPipelineSettings=(e,t)=&gt;t?{...e,...t,primitive:{...e.primitive||{},...t.primitive||{}},depthStencil:{...e.depthStencil||{},...t.depthStencil||{}},fragment:{...e.fragment||{},...t.fragment||{}}}:e,e.initialize=(n,r)=&gt;{t.pipelineDescription=e.applyPipelineSettings(t.renderEncoder.getPipelineSettings(),t.extraPipelineSettings),t.pipelineDescription.primitive.topology=t.topology,t.pipelineDescription.vertex=t.vertexState,t.pipelineDescription.label=r;const o=[];for(let e=0;e&lt;t.layouts.length;e++)o.push(t.layouts[e].layout);t.pipelineLayout=n.getHandle().createPipelineLayout({bindGroupLayouts:o}),t.pipelineDescription.layout=t.pipelineLayout;for(let e=0;e&lt;t.shaderDescriptions.length;e++){const r=t.shaderDescriptions[e],o=n.getShaderModule(r);&quot;vertex&quot;===r.getType()&amp;&amp;(t.pipelineDescription.vertex.module=o.getHandle(),t.pipelineDescription.vertex.entryPoint=&quot;main&quot;),&quot;fragment&quot;===r.getType()&amp;&amp;(t.pipelineDescription.fragment.module=o.getHandle(),t.pipelineDescription.fragment.entryPoint=&quot;main&quot;)}t.handle=n.getHandle().createRenderPipeline(t.pipelineDescription)},e.getShaderDescription=e=&gt;{for(let n=0;n&lt;t.shaderDescriptions.length;n++)if(t.shaderDescriptions[n].getType()===e)return t.shaderDescriptions[n];return null},e.addBindGroupLayout=e=&gt;{e&amp;&amp;t.layouts.push({layout:e.getBindGroupLayout(t.device),label:e.getLabel()})},e.getBindGroupLayout=e=&gt;t.layouts[e].layout,e.getBindGroupLayoutCount=e=&gt;{for(let n=0;n&lt;t.layouts.length;n++)if(t.layouts[n].label===e)return n;return 0},e.bindVertexInput=(e,t)=&gt;{t.bindBuffers(e)}}(e,t)}var cT={newInstance:Xt(lT,&quot;vtkWebGPUPipeline&quot;),extend:lT};const uT={type:null,hash:null,code:null,outputNames:null,outputTypes:null};function dT(e,t,n={}){Object.assign(t,uT,n),t.outputNames=[],t.outputTypes=[],t.outputInterpolations=[],t.builtinOutputNames=[],t.builtinOutputTypes=[],t.builtinInputNames=[],t.builtinInputTypes=[],sn.obj(e,t),sn.setGet(e,t,[&quot;type&quot;,&quot;hash&quot;,&quot;code&quot;]),sn.getArray(e,t,[&quot;outputTypes&quot;,&quot;outputNames&quot;,&quot;outputInterpolations&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUShaderDescription&quot;),e.hasOutput=e=&gt;t.outputNames.includes(e),e.addOutput=(e,n,r=void 0)=&gt;{t.outputTypes.push(e),t.outputNames.push(n),t.outputInterpolations.push(r)},e.addBuiltinOutput=(e,n)=&gt;{t.builtinOutputTypes.push(e),t.builtinOutputNames.push(n)},e.addBuiltinInput=(e,n)=&gt;{t.builtinInputTypes.push(e),t.builtinInputNames.push(n)},e.replaceShaderCode=(e,n)=&gt;{const r=[];let o=[];if(n&amp;&amp;r.push(n.getShaderCode()),e||t.builtinInputNames.length){const n=[];if(n.push(`struct ${t.type}Input\\n{`),e){const t=e.getOutputNamesByReference(),r=e.getOutputTypesByReference(),o=e.getOutputInterpolationsByReference();for(let e=0;e&lt;t.length;e++)void 0!==o[e]?n.push(`  @location(${e}) @interpolate(${o[e]}) ${t[e]} : ${r[e]},`):n.push(`  @location(${e}) ${t[e]} : ${r[e]},`)}for(let e=0;e&lt;t.builtinInputNames.length;e++)n.push(`  ${t.builtinInputNames[e]} : ${t.builtinInputTypes[e]},`);n.length&gt;1&amp;&amp;(n.push(&quot;};&quot;),o=n,r[r.length-1]+=&quot;,&quot;,r.push(`input: ${t.type}Input`))}if(r.length&amp;&amp;(t.code=rT.substitute(t.code,&quot;//VTK::IOStructs::Input&quot;,r).result),t.outputNames.length+t.builtinOutputNames.length){const e=[`struct ${t.type}Output\\n{`];for(let n=0;n&lt;t.outputNames.length;n++)void 0!==t.outputInterpolations[n]?e.push(`  @location(${n}) @interpolate(${t.outputInterpolations[n]}) ${t.outputNames[n]} : ${t.outputTypes[n]},`):e.push(`  @location(${n}) ${t.outputNames[n]} : ${t.outputTypes[n]},`);for(let n=0;n&lt;t.builtinOutputNames.length;n++)e.push(`  ${t.builtinOutputNames[n]} : ${t.builtinOutputTypes[n]},`);e.push(&quot;};&quot;),o=o.concat(e),t.code=rT.substitute(t.code,&quot;//VTK::IOStructs::Output&quot;,[`-&gt; ${t.type}Output`]).result}t.code=rT.substitute(t.code,&quot;//VTK::IOStructs::Dec&quot;,o).result}}(e,t)}var pT={newInstance:sn.newInstance(dT,&quot;vtkWebGPUShaderDescription&quot;),extend:dT};const fT={r8unorm:{numComponents:1,nativeType:Uint8Array,stride:1,elementSize:1,sampleType:&quot;float&quot;},r8snorm:{numComponents:1,nativeType:Int8Array,stride:1,elementSize:1,sampleType:&quot;float&quot;},r8uint:{numComponents:1,nativeType:Uint8Array,stride:1,elementSize:1,sampleType:&quot;uint&quot;},r8sint:{numComponents:1,nativeType:Int8Array,stride:1,elementSize:1,sampleType:&quot;sint&quot;},r16uint:{numComponents:1,nativeType:Uint16Array,stride:2,elementSize:2,sampleType:&quot;uint&quot;},r16sint:{numComponents:1,nativeType:Int16Array,stride:2,elementSize:2,sampleType:&quot;sint&quot;},r16float:{numComponents:1,nativeType:Float32Array,stride:2,elementSize:2,sampleType:&quot;float&quot;},rg8unorm:{numComponents:2,nativeType:Uint8Array,stride:2,elementSize:1,sampleType:&quot;float&quot;},rg8snorm:{numComponents:2,nativeType:Int8Array,stride:2,elementSize:1,sampleType:&quot;float&quot;},rg8uint:{numComponents:2,nativeType:Uint8Array,stride:2,elementSize:1,sampleType:&quot;uint&quot;},rg8sint:{numComponents:2,nativeType:Int8Array,stride:2,elementSize:1,sampleType:&quot;sint&quot;},r32uint:{numComponents:1,nativeType:Uint32Array,stride:4,elementSize:4,sampleType:&quot;uint&quot;},r32sint:{numComponents:1,nativeType:Int32Array,stride:4,elementSize:4,sampleType:&quot;sint&quot;},r32float:{numComponents:1,nativeType:Float32Array,stride:4,elementSize:4,sampleType:&quot;unfilterable-float&quot;},rg16uint:{numComponents:2,nativeType:Uint16Array,stride:4,elementSize:2,sampleType:&quot;uint&quot;},rg16sint:{numComponents:2,nativeType:Int16Array,stride:4,elementSize:2,sampleType:&quot;sint&quot;},rg16float:{numComponents:2,nativeType:Float32Array,stride:4,elementSize:2,sampleType:&quot;float&quot;},rgba8unorm:{numComponents:4,nativeType:Uint8Array,stride:4,elementSize:1,sampleType:&quot;float&quot;},&quot;rgba8unorm-srgb&quot;:{numComponents:4,nativeType:Uint8Array,stride:4,elementSize:1,sampleType:&quot;float&quot;},rgba8snorm:{numComponents:4,nativeType:Int8Array,stride:4,elementSize:1,sampleType:&quot;float&quot;},rgba8uint:{numComponents:4,nativeType:Uint8Array,stride:4,elementSize:1,sampleType:&quot;uint&quot;},rgba8sint:{numComponents:4,nativeType:Int8Array,stride:4,elementSize:1,sampleType:&quot;sint&quot;},bgra8unorm:{numComponents:4,nativeType:Uint8Array,stride:4,elementSize:1,sampleType:&quot;float&quot;},&quot;bgra8unorm-srgb&quot;:{numComponents:4,nativeType:Uint8Array,stride:4,elementSize:1,sampleType:&quot;float&quot;},rgb9e5ufloat:{numComponents:4,nativeType:Uint32Array,stride:4,sampleType:&quot;float&quot;},rgb10a2unorm:{numComponents:4,nativeType:Uint32Array,stride:4,sampleType:&quot;float&quot;},rg11b10ufloat:{numComponents:4,nativeType:Float32Array,stride:4,sampleType:&quot;float&quot;},rg32uint:{numComponents:2,nativeType:Uint32Array,stride:8,elementSize:4,sampleType:&quot;uint&quot;},rg32sint:{numComponents:2,nativeType:Int32Array,stride:8,elementSize:4,sampleType:&quot;sint&quot;},rg32float:{numComponents:2,nativeType:Float32Array,stride:8,elementSize:4,sampleType:&quot;unfilterable-float&quot;},rgba16uint:{numComponents:4,nativeType:Uint16Array,stride:8,elementSize:2,sampleType:&quot;uint&quot;},rgba16sint:{numComponents:4,nativeType:Int16Array,stride:8,elementSize:2,sampleType:&quot;sint&quot;},rgba16float:{numComponents:4,nativeType:Float32Array,stride:8,elementSize:2,sampleType:&quot;float&quot;},rgba32uint:{numComponents:4,nativeType:Uint32Array,stride:16,elementSize:4,sampleType:&quot;uint&quot;},rgba32sint:{numComponents:4,nativeType:Int32Array,stride:16,elementSize:4,sampleType:&quot;sint&quot;},rgba32float:{numComponents:4,nativeType:Float32Array,stride:16,elementSize:4,sampleType:&quot;unfilterable-float&quot;},stencil8:{numComponents:1,nativeType:Uint8Array,stride:1,elementSize:1,sampleType:&quot;uint&quot;},depth16unorm:{numComponents:1,nativeType:Uint16Array,stride:2,elementSize:2,sampleType:&quot;depth&quot;},depth24plus:{numComponents:1,nativeType:Uint32Array,stride:4,elementSize:3,sampleType:&quot;depth&quot;},&quot;depth24plus-stencil8&quot;:{numComponents:2,nativeType:Uint32Array,stride:4,sampleType:&quot;mixed&quot;},depth32float:{numComponents:1,nativeType:Float32Array,stride:4,elementSize:4,sampleType:&quot;depth&quot;}};var gT={getDetailsFromTextureFormat:function(e){return!e||e.length&lt;6?0:e in fT==!0?fT[e]:(Tt(`unknown format ${e}`),null)},getByteStrideFromBufferFormat:function(e){if(!e||e.length&lt;5)return 0;let t=1;&quot;x&quot;===e[e.length-2]&amp;&amp;(t=Number(e[e.length-1]));const n=1===t?e.length-1:e.length-3,r=Number(e[n]);return Number.isNaN(r)?(Tt(`unknown format ${e}`),0):t*(5-r/2)},getNumberOfComponentsFromBufferFormat:function(e){if(!e||e.length&lt;5)return 0;let t=1;return&quot;x&quot;===e[e.length-2]&amp;&amp;(t=Number(e[e.length-1])),t},getNativeTypeFromBufferFormat:function(e){if(!e||e.length&lt;5)return 0;let t;if(&quot;f&quot;===e[0])t=&quot;Float&quot;;else if(&quot;s&quot;===e[0])t=&quot;Int&quot;;else{if(&quot;u&quot;!==e[0])return void Tt(`unknown format ${e}`);t=&quot;Uint&quot;}const n=e.split(&quot;x&quot;)[0],r=Number(n[n.length-1]);if(!Number.isNaN(r))return t+=8*(5-r/2),t+=&quot;Array&quot;,t;Tt(`unknown format ${e}`)},getShaderTypeFromBufferFormat:function(e){let t;if(&quot;f&quot;===e[0]||&quot;n&quot;===e[1])t=&quot;f32&quot;;else if(&quot;s&quot;===e[0]&amp;&amp;&quot;i&quot;===e[1])t=&quot;i32&quot;;else{if(&quot;u&quot;!==e[0]||&quot;i&quot;!==e[1])return void Tt(`unknown format ${e}`);t=&quot;u32&quot;}let n=1;return&quot;x&quot;===e[e.length-2]&amp;&amp;(n=Number(e[e.length-1])),4===n?`vec4&lt;${t}&gt;`:3===n?`vec3&lt;${t}&gt;`:2===n?`vec2&lt;${t}&gt;`:t},getByteStrideFromShaderFormat:function(e){if(!e)return 0;let t=1;return&quot;vec&quot;===e.substring(0,3)?t=Number(e[3]):&quot;mat&quot;===e.substring(0,3)&amp;&amp;(t=e[3]*e[5]),4*t},getNativeTypeFromShaderFormat:function(e){if(e)return e.includes(&quot;f32&quot;)?&quot;Float32Array&quot;:e.includes(&quot;i32&quot;)?&quot;Int32Array&quot;:e.includes(&quot;u32&quot;)?&quot;Uint32Array&quot;:void Tt(`unknown format ${e}`)}};function mT(e,t){if(e===t)return!0;if(null==e||null==t)return!1;if(e.length!==t.length)return!1;for(let n=0;n&lt;e.length;++n)if(!t.includes(e[n]))return!1;return!0}const hT={inputs:null,bindingDescriptions:!1,attributeDescriptions:null,indexBuffer:null};function vT(e,t,n={}){Object.assign(t,hT,n),Vt(e,t),t.bindingDescriptions=[],t.attributeDescriptions=[],t.inputs=[],Gt(e,t,[&quot;created&quot;,&quot;device&quot;,&quot;handle&quot;,&quot;indexBuffer&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUVertexInput&quot;),e.addBuffer=(e,n,r=&quot;vertex&quot;)=&gt;{let o=n;Array.isArray(o)||(o=[o]);for(let n=0;n&lt;t.inputs.length;n++)if(mT(t.inputs[n].names,o)){if(t.inputs[n].buffer===e)return;return void(t.inputs[n].buffer=e)}t.inputs.push({buffer:e,stepMode:r,names:o}),t.inputs=t.inputs.sort(((e,t)=&gt;e.names[0]&lt;t.names[0]?-1:e.names[0]&gt;t.names[0]?1:0))},e.removeBufferIfPresent=e=&gt;{for(let n=0;n&lt;t.inputs.length;n++)t.inputs[n].names.includes(e)&amp;&amp;t.inputs.splice(n,1)},e.getBuffer=e=&gt;{for(let n=0;n&lt;t.inputs.length;n++)if(t.inputs[n].names.includes(e))return t.inputs[n].buffer;return null},e.hasAttribute=e=&gt;{for(let n=0;n&lt;t.inputs.length;n++)if(t.inputs[n].names.includes(e))return!0;return!1},e.getAttributeTime=e=&gt;{for(let n=0;n&lt;t.inputs.length;n++)if(t.inputs[n].names.includes(e))return t.inputs[n].buffer.getSourceTime();return 0},e.getShaderCode=()=&gt;{let e=&quot;&quot;,n=0;for(let r=0;r&lt;t.inputs.length;r++)for(let o=0;o&lt;t.inputs[r].names.length;o++){const a=t.inputs[r].buffer.getArrayInformation()[o],i=gT.getShaderTypeFromBufferFormat(a.format);n&gt;0&amp;&amp;(e+=&quot;,\\n&quot;),e=`${e}  @location(${n}) ${t.inputs[r].names[o]} : ${i}`,n++}return e},e.getVertexInputInformation=()=&gt;{const e={};if(t.inputs.length){const n=[];let r=0;for(let e=0;e&lt;t.inputs.length;e++){const o=t.inputs[e].buffer,a={arrayStride:o.getStrideInBytes(),stepMode:t.inputs[e].stepMode,attributes:[]},i=o.getArrayInformation();for(let n=0;n&lt;t.inputs[e].names.length;n++)a.attributes.push({shaderLocation:r,offset:i[n].offset,format:i[n].format}),r++;n.push(a)}e.buffers=n}return e},e.bindBuffers=e=&gt;{for(let n=0;n&lt;t.inputs.length;n++)e.setVertexBuffer(n,t.inputs[n].buffer.getHandle());t.indexBuffer&amp;&amp;e.setIndexBuffer(t.indexBuffer.getHandle(),t.indexBuffer.getArrayInformation()[0].format)},e.getReady=()=&gt;{},e.releaseGraphicsResources=()=&gt;{t.created&amp;&amp;(t.inputs=[],t.bindingDescriptions=[],t.attributeDescriptions=[])}}(e,t)}var TT={newInstance:Xt(vT,&quot;vtkWebGPUVertexInput&quot;),extend:vT};const xT={additionalBindables:void 0,bindGroup:null,device:null,fragmentShaderTemplate:null,numberOfInstances:1,numberOfVertices:0,pipelineHash:null,shaderReplacements:null,SSBO:null,textureViews:null,topology:&quot;triangle-list&quot;,UBO:null,vertexShaderTemplate:null,WebGPURenderer:null};function yT(e,t,n={}){Object.assign(t,xT,n),pn.extend(e,t,n),t.textureViews=[],t.vertexInput=TT.newInstance(),t.bindGroup=iT.newInstance({label:&quot;mapperBG&quot;}),t.additionalBindables=[],t.fragmentShaderTemplate=t.fragmentShaderTemplate||&quot;\\n//VTK::Renderer::Dec\\n\\n//VTK::Color::Dec\\n\\n//VTK::Normal::Dec\\n\\n//VTK::TCoord::Dec\\n\\n//VTK::Select::Dec\\n\\n//VTK::RenderEncoder::Dec\\n\\n//VTK::Mapper::Dec\\n\\n//VTK::IOStructs::Dec\\n\\n@fragment\\nfn main(\\n//VTK::IOStructs::Input\\n)\\n//VTK::IOStructs::Output\\n{\\n  var output : fragmentOutput;\\n\\n  //VTK::Color::Impl\\n\\n  //VTK::Normal::Impl\\n\\n  //VTK::Light::Impl\\n\\n  //VTK::TCoord::Impl\\n\\n  //VTK::Select::Impl\\n\\n  // var computedColor:vec4&lt;f32&gt; = vec4&lt;f32&gt;(1.0,0.5,0.5,1.0);\\n\\n  //VTK::RenderEncoder::Impl\\n  return output;\\n}\\n&quot;,t.vertexShaderTemplate=t.vertexShaderTemplate||&quot;\\n//VTK::Renderer::Dec\\n\\n//VTK::Color::Dec\\n\\n//VTK::Normal::Dec\\n\\n//VTK::TCoord::Dec\\n\\n//VTK::Select::Dec\\n\\n//VTK::Mapper::Dec\\n\\n//VTK::IOStructs::Dec\\n\\n@vertex\\nfn main(\\n//VTK::IOStructs::Input\\n)\\n//VTK::IOStructs::Output\\n{\\n  var output : vertexOutput;\\n\\n  // var vertex: vec4&lt;f32&gt; = vertexBC;\\n\\n  //VTK::Color::Impl\\n\\n  //VTK::Normal::Impl\\n\\n  //VTK::TCoord::Impl\\n\\n  //VTK::Select::Impl\\n\\n  //VTK::Position::Impl\\n\\n  return output;\\n}\\n&quot;,t.shaderReplacements=new Map,sn.get(e,t,[&quot;pipeline&quot;,&quot;vertexInput&quot;]),sn.setGet(e,t,[&quot;additionalBindables&quot;,&quot;device&quot;,&quot;fragmentShaderTemplate&quot;,&quot;interpolate&quot;,&quot;numberOfInstances&quot;,&quot;numberOfVertices&quot;,&quot;pipelineHash&quot;,&quot;shaderReplacements&quot;,&quot;SSBO&quot;,&quot;textureViews&quot;,&quot;topology&quot;,&quot;UBO&quot;,&quot;vertexShaderTemplate&quot;,&quot;WebGPURenderer&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUSimpleMapper&quot;),e.generateShaderDescriptions=(n,r,o)=&gt;{const a=pT.newInstance({type:&quot;vertex&quot;,hash:n,code:t.vertexShaderTemplate}),i=pT.newInstance({type:&quot;fragment&quot;,hash:n,code:t.fragmentShaderTemplate}),s=r.getShaderDescriptions();s.push(a),s.push(i);const l=t.vertexShaderTemplate+t.fragmentShaderTemplate,c=new RegExp(&quot;//VTK::[^:]*::&quot;,&quot;g&quot;),u=l.match(c).filter(((e,t,n)=&gt;n.indexOf(e)===t)),d=u.map((e=&gt;`replaceShader${e.substring(7,e.length-2)}`));for(let e=0;e&lt;d.length;e++){const a=d[e];&quot;replaceShaderIOStructs&quot;!==a&amp;&amp;t.shaderReplacements.has(a)&amp;&amp;t.shaderReplacements.get(a)(n,r,o)}e.replaceShaderIOStructs(n,r,o)},e.replaceShaderIOStructs=(e,t,n)=&gt;{const r=t.getShaderDescription(&quot;vertex&quot;);r.replaceShaderCode(null,n),t.getShaderDescription(&quot;fragment&quot;).replaceShaderCode(r)},e.replaceShaderRenderEncoder=(e,n,r)=&gt;{t.renderEncoder.replaceShaderCode(n)},t.shaderReplacements.set(&quot;replaceShaderRenderEncoder&quot;,e.replaceShaderRenderEncoder),e.replaceShaderRenderer=(e,n,r)=&gt;{if(!t.WebGPURenderer)return;const o=t.WebGPURenderer.getBindGroup().getShaderCode(n),a=n.getShaderDescription(&quot;vertex&quot;);let i=a.getCode();i=rT.substitute(i,&quot;//VTK::Renderer::Dec&quot;,[o]).result,a.setCode(i);const s=n.getShaderDescription(&quot;fragment&quot;);i=s.getCode(),i=rT.substitute(i,&quot;//VTK::Renderer::Dec&quot;,[o]).result,s.setCode(i)},t.shaderReplacements.set(&quot;replaceShaderRenderer&quot;,e.replaceShaderRenderer),e.replaceShaderMapper=(e,n,r)=&gt;{const o=t.bindGroup.getShaderCode(n),a=n.getShaderDescription(&quot;vertex&quot;);let i=a.getCode();i=rT.substitute(i,&quot;//VTK::Mapper::Dec&quot;,[o]).result,a.setCode(i);const s=n.getShaderDescription(&quot;fragment&quot;);s.addBuiltinInput(&quot;bool&quot;,&quot;@builtin(front_facing) frontFacing&quot;),i=s.getCode(),i=rT.substitute(i,&quot;//VTK::Mapper::Dec&quot;,[o]).result,s.setCode(i)},t.shaderReplacements.set(&quot;replaceShaderMapper&quot;,e.replaceShaderMapper),e.replaceShaderPosition=(e,t,n)=&gt;{const r=t.getShaderDescription(&quot;vertex&quot;);r.addBuiltinOutput(&quot;vec4&lt;f32&gt;&quot;,&quot;@builtin(position) Position&quot;);let o=r.getCode();o=rT.substitute(o,&quot;//VTK::Position::Impl&quot;,[&quot;    output.Position = rendererUBO.SCPCMatrix*vertexBC;&quot;]).result,r.setCode(o)},t.shaderReplacements.set(&quot;replaceShaderPosition&quot;,e.replaceShaderPosition),e.replaceShaderTCoord=(e,t,n)=&gt;{t.getShaderDescription(&quot;vertex&quot;).addOutput(&quot;vec2&lt;f32&gt;&quot;,&quot;tcoordVS&quot;)},t.shaderReplacements.set(&quot;replaceShaderTCoord&quot;,e.replaceShaderTCoord),e.addTextureView=e=&gt;{t.textureViews.includes(e)||t.textureViews.push(e)},e.prepareToDraw=n=&gt;{t.renderEncoder=n,e.updateInput(),e.updateBuffers(),e.updateBindings(),e.updatePipeline()},e.updateInput=()=&gt;{},e.updateBuffers=()=&gt;{},e.updateBindings=()=&gt;{t.bindGroup.setBindables(e.getBindables())},e.computePipelineHash=()=&gt;{},e.getPipelineSettings=()=&gt;null,e.registerDrawCallback=n=&gt;{n.registerDrawCallback(t.pipeline,e.draw)},e.prepareAndDraw=n=&gt;{e.prepareToDraw(n),n.setPipeline(t.pipeline),e.draw(n)},e.draw=e=&gt;{const n=e.getBoundPipeline();e.activateBindGroup(t.bindGroup),t.WebGPURenderer&amp;&amp;t.WebGPURenderer.bindUBO(e),n.bindVertexInput(e,t.vertexInput);const r=t.vertexInput.getIndexBuffer();r?e.drawIndexed(r.getIndexCount(),t.numberOfInstances,0,0,0):e.draw(t.numberOfVertices,t.numberOfInstances,0,0)},e.getBindables=()=&gt;{const e=[...t.additionalBindables];t.UBO&amp;&amp;e.push(t.UBO),t.SSBO&amp;&amp;e.push(t.SSBO);for(let n=0;n&lt;t.textureViews.length;n++){e.push(t.textureViews[n]);const r=t.textureViews[n].getSampler();r&amp;&amp;e.push(r)}return e},e.updatePipeline=()=&gt;{e.computePipelineHash(),t.pipeline=t.device.getPipeline(t.pipelineHash),t.pipeline||(t.pipeline=cT.newInstance(),t.pipeline.setDevice(t.device),t.WebGPURenderer&amp;&amp;t.pipeline.addBindGroupLayout(t.WebGPURenderer.getBindGroup()),t.pipeline.addBindGroupLayout(t.bindGroup),e.generateShaderDescriptions(t.pipelineHash,t.pipeline,t.vertexInput),t.pipeline.setExtraPipelineSettings(e.getPipelineSettings()),t.pipeline.setTopology(t.topology),t.pipeline.setRenderEncoder(t.renderEncoder),t.pipeline.setVertexState(t.vertexInput.getVertexInputInformation()),t.device.createPipeline(t.pipelineHash,t.pipeline))}}(e,t)}var bT={newInstance:sn.newInstance(yT,&quot;vtkWebGPUSimpleMapper&quot;),extend:yT};const AT={};function CT(e,t,n={}){Object.assign(t,AT,n),bT.extend(e,t,n),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUFullScreenQuad&quot;),e.replaceShaderPosition=(e,t,n)=&gt;{const r=t.getShaderDescription(&quot;vertex&quot;);r.addBuiltinOutput(&quot;vec4&lt;f32&gt;&quot;,&quot;@builtin(position) Position&quot;),r.addOutput(&quot;vec4&lt;f32&gt;&quot;,&quot;vertexVC&quot;);let o=r.getCode();o=rT.substitute(o,&quot;//VTK::Position::Impl&quot;,[&quot;output.tcoordVS = vec2&lt;f32&gt;(vertexBC.x * 0.5 + 0.5, 1.0 - vertexBC.y * 0.5 - 0.5);&quot;,&quot;output.Position = vec4&lt;f32&gt;(vertexBC, 1.0);&quot;,&quot;output.vertexVC = vec4&lt;f32&gt;(vertexBC, 1);&quot;]).result,r.setCode(o)},t.shaderReplacements.set(&quot;replaceShaderPosition&quot;,e.replaceShaderPosition),e.updateBuffers=()=&gt;{const e=t.device.getBufferManager().getFullScreenQuadBuffer();t.vertexInput.addBuffer(e,[&quot;vertexBC&quot;]),t.numberOfVertices=6}}(e,t)}var ST={newInstance:sn.newInstance(CT,&quot;vtkWebGPUFullScreenQuad&quot;),extend:CT};const PT=[&quot;setBindGroup&quot;,&quot;setIndexBuffer&quot;,&quot;setVertexBuffer&quot;,&quot;draw&quot;,&quot;drawIndexed&quot;];const wT={description:null,handle:null,boundPipeline:null,pipelineHash:null,pipelineSettings:null,replaceShaderCodeFunction:null,depthTextureView:null,label:null};function IT(e,t,n={}){Object.assign(t,wT,n),Vt(e,t),t.description={colorAttachments:[{view:void 0,loadOp:&quot;load&quot;,storeOp:&quot;store&quot;}],depthStencilAttachment:{view:void 0,depthLoadOp:&quot;clear&quot;,depthClearValue:0,depthStoreOp:&quot;store&quot;}},t.replaceShaderCodeFunction=e=&gt;{const t=e.getShaderDescription(&quot;fragment&quot;);t.addOutput(&quot;vec4&lt;f32&gt;&quot;,&quot;outColor&quot;);let n=t.getCode();n=rT.substitute(n,&quot;//VTK::RenderEncoder::Impl&quot;,[&quot;output.outColor = computedColor;&quot;]).result,t.setCode(n)},t.pipelineSettings={primitive:{cullMode:&quot;none&quot;},depthStencil:{depthWriteEnabled:!0,depthCompare:&quot;greater-equal&quot;,format:&quot;depth32float&quot;},fragment:{targets:[{format:&quot;rgba16float&quot;,blend:{color:{srcFactor:&quot;src-alpha&quot;,dstFactor:&quot;one-minus-src-alpha&quot;},alpha:{srcFactor:&quot;one&quot;,dstFactor:&quot;one-minus-src-alpha&quot;}}}]}},t.colorTextureViews=[],Bt(e,t,[&quot;boundPipeline&quot;,&quot;colorTextureViews&quot;]),Gt(e,t,[&quot;depthTextureView&quot;,&quot;description&quot;,&quot;handle&quot;,&quot;label&quot;,&quot;pipelineHash&quot;,&quot;pipelineSettings&quot;,&quot;replaceShaderCodeFunction&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPURenderEncoder&quot;),e.begin=e=&gt;{t.drawCallbacks=[],t.handle=e.beginRenderPass(t.description),t.label&amp;&amp;t.handle.pushDebugGroup(t.label)},e.end=()=&gt;{for(let n=0;n&lt;t.drawCallbacks.length;n++){const r=t.drawCallbacks[n],o=r.pipeline;e.setPipeline(o);for(let t=0;t&lt;r.callbacks.length;t++)r.callbacks[t](e)}t.label&amp;&amp;t.handle.popDebugGroup(),t.handle.end(),t.boundPipeline=null},e.setPipeline=e=&gt;{if(t.boundPipeline===e)return;t.handle.setPipeline(e.getHandle());const n=e.getPipelineDescription();if(t.colorTextureViews.length!==n.fragment.targets.length)console.log(`mismatched attachment counts on pipeline ${n.fragment.targets.length} while encoder has ${t.colorTextureViews.length}`),console.trace();else for(let e=0;e&lt;t.colorTextureViews.length;e++){const r=t.colorTextureViews[e].getTexture()?.getFormat();r&amp;&amp;r!==n.fragment.targets[e].format&amp;&amp;(console.log(`mismatched attachments for attachment ${e} on pipeline ${n.fragment.targets[e].format} while encoder has ${r}`),console.trace())}if(!t.depthTextureView!=!(&quot;depthStencil&quot;in n))console.log(&quot;mismatched depth attachments&quot;),console.trace();else if(t.depthTextureView){const e=t.depthTextureView.getTexture()?.getFormat();e&amp;&amp;e!==n.depthStencil.format&amp;&amp;(console.log(`mismatched depth attachments on pipeline ${n.depthStencil.format} while encoder has ${e}`),console.trace())}t.boundPipeline=e},e.replaceShaderCode=e=&gt;{t.replaceShaderCodeFunction(e)},e.setColorTextureView=(e,n)=&gt;{t.colorTextureViews[e]!==n&amp;&amp;(t.colorTextureViews[e]=n)},e.activateBindGroup=e=&gt;{const n=t.boundPipeline.getDevice(),r=t.boundPipeline.getBindGroupLayoutCount(e.getLabel());t.handle.setBindGroup(r,e.getBindGroup(n));const o=n.getBindGroupLayoutDescription(e.getBindGroupLayout(n)),a=n.getBindGroupLayoutDescription(t.boundPipeline.getBindGroupLayout(r));o!==a&amp;&amp;(console.log(`renderEncoder ${t.pipelineHash} mismatched bind group layouts bind group has\\n${o}\\n versus pipeline\\n${a}\\n`),console.trace())},e.attachTextureViews=()=&gt;{for(let e=0;e&lt;t.colorTextureViews.length;e++)t.description.colorAttachments[e]?t.description.colorAttachments[e].view=t.colorTextureViews[e].getHandle():t.description.colorAttachments[e]={view:t.colorTextureViews[e].getHandle()};t.depthTextureView&amp;&amp;(t.description.depthStencilAttachment.view=t.depthTextureView.getHandle())},e.registerDrawCallback=(e,n)=&gt;{for(let r=0;r&lt;t.drawCallbacks.length;r++)if(t.drawCallbacks[r].pipeline===e)return void t.drawCallbacks[r].callbacks.push(n);t.drawCallbacks.push({pipeline:e,callbacks:[n]})};for(let n=0;n&lt;PT.length;n++)e[PT[n]]=(...e)=&gt;t.handle[PT[n]](...e)}(e,t)}var OT={newInstance:Xt(IT,&quot;vtkWebGPURenderEncoder&quot;),extend:IT};const RT={device:null,handle:null,label:null,options:null};function MT(e,t,n={}){Object.assign(t,RT,n),sn.obj(e,t),t.options={},t.bindGroupLayoutEntry={visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,sampler:{}},t.bindGroupTime={},sn.obj(t.bindGroupTime,{mtime:0}),sn.get(e,t,[&quot;bindGroupTime&quot;,&quot;handle&quot;,&quot;options&quot;]),sn.setGet(e,t,[&quot;bindGroupLayoutEntry&quot;,&quot;device&quot;,&quot;label&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUSampler&quot;),e.create=(e,n={})=&gt;{t.device=e,t.options.addressModeU=n.addressModeU?n.addressModeU:&quot;clamp-to-edge&quot;,t.options.addressModeV=n.addressModeV?n.addressModeV:&quot;clamp-to-edge&quot;,t.options.addressModeW=n.addressModeW?n.addressModeW:&quot;clamp-to-edge&quot;,t.options.magFilter=n.magFilter?n.magFilter:&quot;nearest&quot;,t.options.minFilter=n.minFilter?n.minFilter:&quot;nearest&quot;,t.options.mipmapFilter=n.mipmapFilter?n.mipmapFilter:&quot;nearest&quot;,t.options.label=t.label,t.handle=t.device.getHandle().createSampler(t.options),t.bindGroupTime.modified()},e.getShaderCode=(e,n)=&gt;`@binding(${e}) @group(${n}) var ${t.label}: sampler;`,e.getBindGroupEntry=()=&gt;({resource:t.handle})}(e,t)}var DT={newInstance:sn.newInstance(MT),extend:MT};const ET={texture:null,handle:null,sampler:null,label:null};function VT(e,t,n={}){Object.assign(t,ET,n),sn.obj(e,t),t.bindGroupLayoutEntry={visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,texture:{sampleType:&quot;float&quot;,viewDimension:&quot;2d&quot;}},t.bindGroupTime={},sn.obj(t.bindGroupTime,{mtime:0}),sn.get(e,t,[&quot;bindGroupTime&quot;,&quot;texture&quot;]),sn.setGet(e,t,[&quot;bindGroupLayoutEntry&quot;,&quot;label&quot;,&quot;sampler&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUTextureView&quot;),e.create=(e,n)=&gt;{t.texture=e,t.options=n,t.options.dimension=t.options.dimension||&quot;2d&quot;,t.options.label=t.label,t.textureHandle=e.getHandle(),t.handle=t.textureHandle.createView(t.options),t.bindGroupLayoutEntry.texture.viewDimension=t.options.dimension;const r=gT.getDetailsFromTextureFormat(t.texture.getFormat());t.bindGroupLayoutEntry.texture.sampleType=r.sampleType},e.createFromTextureHandle=(e,n)=&gt;{t.texture=null,t.options=n,t.options.dimension=t.options.dimension||&quot;2d&quot;,t.options.label=t.label,t.textureHandle=e,t.handle=t.textureHandle.createView(t.options),t.bindGroupLayoutEntry.texture.viewDimension=t.options.dimension;const r=gT.getDetailsFromTextureFormat(n.format);t.bindGroupLayoutEntry.texture.sampleType=r.sampleType,t.bindGroupTime.modified()},e.getBindGroupEntry=()=&gt;({resource:e.getHandle()}),e.getShaderCode=(e,n)=&gt;{let r=&quot;f32&quot;;&quot;sint&quot;===t.bindGroupLayoutEntry.texture.sampleType?r=&quot;i32&quot;:&quot;uint&quot;===t.bindGroupLayoutEntry.texture.sampleType&amp;&amp;(r=&quot;u32&quot;);let o=`@binding(${e}) @group(${n}) var ${t.label}: texture_${t.options.dimension}&lt;${r}&gt;;`;return&quot;depth&quot;===t.bindGroupLayoutEntry.texture.sampleType&amp;&amp;(o=`@binding(${e}) @group(${n}) var ${t.label}: texture_depth_${t.options.dimension};`),o},e.addSampler=(n,r)=&gt;{const o=DT.newInstance({label:`${t.label}Sampler`});o.create(n,r),e.setSampler(o)},e.getBindGroupTime=()=&gt;(t.texture&amp;&amp;t.texture.getHandle()!==t.textureHandle&amp;&amp;(t.textureHandle=t.texture.getHandle(),t.handle=t.textureHandle.createView(t.options),t.bindGroupTime.modified()),t.bindGroupTime),e.getHandle=()=&gt;(t.texture&amp;&amp;t.texture.getHandle()!==t.textureHandle&amp;&amp;(t.textureHandle=t.texture.getHandle(),t.handle=t.textureHandle.createView(t.options),t.bindGroupTime.modified()),t.handle)}(e,t)}var LT={newInstance:sn.newInstance(VT),extend:VT};const{vtkErrorMacro:BT}=sn;function FT(e,t){t.classHierarchy.push(&quot;vtkWebGPUTexture&quot;);const n=(e,n,r,o)=&gt;{const a=gT.getDetailsFromTextureFormat(t.format),i=n*a.numComponents,s=i*r*o,l=2===a.elementSize&amp;&amp;&quot;float&quot;===a.sampleType;if(!e?.length&amp;&amp;s&gt;0)return BT(&quot;Texture upload failed: missing nativeArray data.&quot;),null;if(e.length&lt;s)return BT(`Texture upload failed: expected ${s} values but received ${e.length}.`),null;const c=e.length&gt;s?e.subarray(0,s):e,u=c.BYTES_PER_ELEMENT||a.elementSize,d=n*a.stride,p=256*Math.floor((d+255)/256),f=((e,t)=&gt;{if(2===e.elementSize&amp;&amp;&quot;float&quot;===e.sampleType)return&quot;Uint16Array&quot;;if(&quot;sint&quot;===e.sampleType){if(1===e.elementSize)return&quot;Int8Array&quot;;if(2===e.elementSize)return&quot;Int16Array&quot;;if(4===e.elementSize)return&quot;Int32Array&quot;}else if(&quot;unfilterable-float&quot;===e.sampleType){if(4===e.elementSize)return&quot;Float32Array&quot;}else{if(1===e.elementSize)return&quot;Uint8Array&quot;;if(2===e.elementSize)return&quot;Uint16Array&quot;;if(4===e.elementSize)return&quot;Uint32Array&quot;}return t})(a,c.constructor.name),g=p/(l?2:sn.newTypedArray(f,0).BYTES_PER_ELEMENT),m=i*u;if(!(l||c.constructor.name!==f||m!==p))return{data:c,bytesPerRow:p};const h=r*o,v=sn.newTypedArray(f,g*h);if(l)for(let e=0;e&lt;h;e++){const t=e*i,n=e*g;for(let e=0;e&lt;i;e++)v[n+e]=Md.toHalf(c[t+e])}else if(g===i)v.set(c);else for(let e=0;e&lt;h;e++)v.set(c.subarray(e*i,(e+1)*i),e*g);return{data:v,bytesPerRow:p}};e.create=(e,n)=&gt;{t.device=e,t.width=n.width,t.height=n.height,t.depth=n.depth?n.depth:1;const r=1===t.depth?&quot;2d&quot;:&quot;3d&quot;;t.format=n.format?n.format:&quot;rgba8unorm&quot;,t.mipLevel=n.mipLevel?n.mipLevel:0,t.usage=n.usage?n.usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST,t.handle=t.device.getHandle().createTexture({size:[t.width,t.height,t.depth],format:t.format,usage:t.usage,label:t.label,dimension:r,mipLevelCount:t.mipLevel+1})},e.assignFromHandle=(e,n,r)=&gt;{t.device=e,t.handle=n,t.width=r.width,t.height=r.height,t.depth=r.depth?r.depth:1,t.format=r.format?r.format:&quot;rgba8unorm&quot;,t.usage=r.usage?r.usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST},e.writeImageData=r=&gt;{let o=[];const a=n=&gt;{t.device.getHandle().queue.copyExternalImageToTexture({source:n,flipY:r.flip},{texture:t.handle,premultipliedAlpha:!0,mipLevel:0,origin:{x:0,y:0,z:0}},[n.width,n.height,t.depth]),3!==e.getDimensionality()&amp;&amp;t.mipLevel&gt;0&amp;&amp;Eu.generateMipmaps(t.device.getHandle(),t.handle,t.mipLevel+1),t.ready=!0};if(r.canvas)return void a(r.canvas);if(r.imageBitmap)return r.width=r.imageBitmap.width,r.height=r.imageBitmap.height,r.depth=1,r.format=&quot;rgba8unorm&quot;,r.flip=!0,void a(r.imageBitmap);if(r.jsImageData)return r.width=r.jsImageData.width,r.height=r.jsImageData.height,r.depth=1,r.format=&quot;rgba8unorm&quot;,r.flip=!0,void a(r.jsImageData);if(r.image)return r.width=r.image.width,r.height=r.image.height,r.depth=1,r.format=&quot;rgba8unorm&quot;,r.flip=!0,void a(r.image);r.nativeArray&amp;&amp;(o=r.nativeArray);const i=3===e.getDimensionality(),s=n(o,t.width,t.height,i?t.depth:1);if(!s)return;const l=s.data;t.device.getHandle().queue.writeTexture({texture:t.handle,mipLevel:0,origin:{x:0,y:0,z:0}},l,{offset:0,bytesPerRow:s.bytesPerRow,rowsPerImage:t.height},{width:t.width,height:t.height,depthOrArrayLayers:i?t.depth:1}),!i&amp;&amp;t.mipLevel&gt;0&amp;&amp;Eu.generateMipmaps(t.device.getHandle(),t.handle,t.mipLevel+1),t.ready=!0},e.writeSubImageData=r=&gt;{const o=r.x??0,a=r.y??0,i=r.z??0,s=r.width??t.width-o,l=r.height??t.height-a,c=r.depth??t.depth-i,u=r.nativeArray||[];if(!((e,n,r,o,a,i)=&gt;e&lt;0||n&lt;0||r&lt;0||o&lt;=0||a&lt;=0||i&lt;=0?(BT(`Texture upload failed: invalid write region origin=(${e}, ${n}, ${r}) size=(${o}, ${a}, ${i}).`),!1):!(e+o&gt;t.width||n+a&gt;t.height||r+i&gt;t.depth)||(BT(`Texture upload failed: write region origin=(${e}, ${n}, ${r}) size=(${o}, ${a}, ${i}) exceeds texture extent=(${t.width}, ${t.height}, ${t.depth}).`),!1))(o,a,i,s,l,c))return;const d=n(u,s,l,c);d&amp;&amp;(t.device.getHandle().queue.writeTexture({texture:t.handle,mipLevel:0,origin:{x:o,y:a,z:i}},d.data,{offset:0,bytesPerRow:d.bytesPerRow,rowsPerImage:l},{width:s,height:l,depthOrArrayLayers:c}),3!==e.getDimensionality()&amp;&amp;t.mipLevel&gt;0&amp;&amp;Eu.generateMipmaps(t.device.getHandle(),t.handle,t.mipLevel+1),t.ready=!0)},e.getScale=()=&gt;{const e=gT.getDetailsFromTextureFormat(t.format);return 2===e.elementSize&amp;&amp;&quot;float&quot;===e.sampleType?1:255},e.getNumberOfComponents=()=&gt;gT.getDetailsFromTextureFormat(t.format).numComponents,e.getDimensionality=()=&gt;{let e=0;return t.width&gt;1&amp;&amp;e++,t.height&gt;1&amp;&amp;e++,t.depth&gt;1&amp;&amp;e++,e},e.resizeToMatch=e=&gt;{e.getWidth()===t.width&amp;&amp;e.getHeight()===t.height&amp;&amp;e.getDepth()===t.depth||(t.width=e.getWidth(),t.height=e.getHeight(),t.depth=e.getDepth(),t.handle=t.device.getHandle().createTexture({size:[t.width,t.height,t.depth],format:t.format,usage:t.usage,label:t.label}))},e.resize=(e,n,r=1)=&gt;{e===t.width&amp;&amp;n===t.height&amp;&amp;r===t.depth||(t.width=e,t.height=n,t.depth=r,t.handle=t.device.getHandle().createTexture({size:[t.width,t.height,t.depth],format:t.format,usage:t.usage,label:t.label}))},e.createView=(n,r={})=&gt;{r.dimension||(r.dimension=1===t.depth?&quot;2d&quot;:&quot;3d&quot;);const o=LT.newInstance({label:n});return o.create(e,r),o}}const NT={device:null,handle:null,buffer:null,ready:!1,label:null};function kT(e,t,n={}){Object.assign(t,NT,n),sn.obj(e,t),sn.get(e,t,[&quot;handle&quot;,&quot;ready&quot;,&quot;width&quot;,&quot;height&quot;,&quot;depth&quot;,&quot;format&quot;,&quot;usage&quot;]),sn.setGet(e,t,[&quot;device&quot;,&quot;label&quot;]),FT(e,t)}var GT={newInstance:sn.newInstance(kT),extend:kT};const UT={renderEncoder:null,colorTexture:null,depthTexture:null};function _T(e,t,n={}){Object.assign(t,UT,n),vv.extend(e,t,n),sn.get(e,t,[&quot;colorTexture&quot;,&quot;depthTexture&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUOpaquePass&quot;),e.traverse=(n,r)=&gt;{if(t.deleted)return;t._currentParent=r;const o=r.getDevice();if(t.renderEncoder)t.colorTexture.resize(r.getCanvas().width,r.getCanvas().height),t.depthTexture.resize(r.getCanvas().width,r.getCanvas().height);else{e.createRenderEncoder(),t.colorTexture=GT.newInstance({label:&quot;opaquePassColor&quot;}),t.colorTexture.create(o,{width:r.getCanvas().width,height:r.getCanvas().height,format:&quot;rgba16float&quot;,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC});const n=t.colorTexture.createView(&quot;opaquePassColorTexture&quot;);t.renderEncoder.setColorTextureView(0,n),t.depthFormat=&quot;depth32float&quot;,t.depthTexture=GT.newInstance({label:&quot;opaquePassDepth&quot;}),t.depthTexture.create(o,{width:r.getCanvas().width,height:r.getCanvas().height,format:t.depthFormat,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC});const a=t.depthTexture.createView(&quot;opaquePassDepthTexture&quot;);t.renderEncoder.setDepthTextureView(a)}t.renderEncoder.attachTextureViews(),e.setCurrentOperation(&quot;opaquePass&quot;),n.setRenderEncoder(t.renderEncoder),n.traverse(e)},e.getColorTextureView=()=&gt;t.renderEncoder.getColorTextureViews()[0],e.getDepthTextureView=()=&gt;t.renderEncoder.getDepthTextureView(),e.createRenderEncoder=()=&gt;{t.renderEncoder=OT.newInstance({label:&quot;OpaquePass&quot;}),t.renderEncoder.setPipelineHash(&quot;op&quot;)}}(e,t)}var KT={newInstance:sn.newInstance(_T,&quot;vtkWebGPUOpaquePass&quot;),extend:_T};const zT={colorTextureView:null,depthTextureView:null};function WT(e,t,n={}){Object.assign(t,zT,n),vv.extend(e,t,n),sn.setGet(e,t,[&quot;colorTextureView&quot;,&quot;depthTextureView&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUOrderIndependentTranslucentPass&quot;),e.traverse=(n,r)=&gt;{if(t.deleted)return;t._currentParent=r;const o=r.getDevice();if(t.translucentRenderEncoder)t.translucentColorTexture.resizeToMatch(t.colorTextureView.getTexture()),t.translucentAccumulateTexture.resizeToMatch(t.colorTextureView.getTexture());else{e.createRenderEncoder(),e.createFinalEncoder(),t.translucentColorTexture=GT.newInstance({label:&quot;translucentPassColor&quot;}),t.translucentColorTexture.create(o,{width:r.getCanvas().width,height:r.getCanvas().height,format:&quot;rgba16float&quot;,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING});const n=t.translucentColorTexture.createView(&quot;oitpColorTexture&quot;);t.translucentRenderEncoder.setColorTextureView(0,n),t.translucentAccumulateTexture=GT.newInstance({label:&quot;translucentPassAccumulate&quot;}),t.translucentAccumulateTexture.create(o,{width:r.getCanvas().width,height:r.getCanvas().height,format:&quot;r16float&quot;,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING});const a=t.translucentAccumulateTexture.createView(&quot;oitpAccumTexture&quot;);t.translucentRenderEncoder.setColorTextureView(1,a),t.fullScreenQuad=ST.newInstance(),t.fullScreenQuad.setDevice(r.getDevice()),t.fullScreenQuad.setPipelineHash(&quot;oitpfsq&quot;),t.fullScreenQuad.setTextureViews(t.translucentRenderEncoder.getColorTextureViews()),t.fullScreenQuad.setFragmentShaderTemplate(&quot;\\n//VTK::Mapper::Dec\\n\\n//VTK::TCoord::Dec\\n\\n//VTK::RenderEncoder::Dec\\n\\n//VTK::IOStructs::Dec\\n\\n@fragment\\nfn main(\\n//VTK::IOStructs::Input\\n)\\n//VTK::IOStructs::Output\\n{\\n  var output: fragmentOutput;\\n\\n  var tcoord: vec2&lt;i32&gt; = vec2&lt;i32&gt;(i32(input.fragPos.x), i32(input.fragPos.y));\\n  var reveal: f32 = textureLoad(oitpAccumTexture, tcoord, 0).r;\\n  if (reveal == 1.0) { discard; }\\n  var tcolor: vec4&lt;f32&gt; = textureLoad(oitpColorTexture, tcoord, 0);\\n  var total: f32 = max(tcolor.a, 0.01);\\n  var computedColor: vec4&lt;f32&gt; = vec4&lt;f32&gt;(tcolor.r/total, tcolor.g/total, tcolor.b/total, 1.0 - reveal);\\n\\n  //VTK::RenderEncoder::Impl\\n  return output;\\n}\\n&quot;)}t.translucentRenderEncoder.setDepthTextureView(t.depthTextureView),t.translucentRenderEncoder.attachTextureViews(),e.setCurrentOperation(&quot;translucentPass&quot;),n.setRenderEncoder(t.translucentRenderEncoder),n.traverse(e),e.finalPass(r,n)},e.finalPass=(e,n)=&gt;{t.translucentFinalEncoder.setColorTextureView(0,t.colorTextureView),t.translucentFinalEncoder.attachTextureViews(),t.translucentFinalEncoder.begin(e.getCommandEncoder()),n.scissorAndViewport(t.translucentFinalEncoder),t.fullScreenQuad.prepareAndDraw(t.translucentFinalEncoder),t.translucentFinalEncoder.end()},e.getTextures=()=&gt;[t.translucentColorTexture,t.translucentAccumulateTexture],e.createRenderEncoder=()=&gt;{t.translucentRenderEncoder=OT.newInstance({label:&quot;translucentRender&quot;});const e=t.translucentRenderEncoder.getDescription();e.colorAttachments=[{view:void 0,clearValue:[0,0,0,0],loadOp:&quot;clear&quot;,storeOp:&quot;store&quot;},{view:void 0,clearValue:[1,0,0,0],loadOp:&quot;clear&quot;,storeOp:&quot;store&quot;}],e.depthStencilAttachment={view:void 0,depthLoadOp:&quot;load&quot;,depthStoreOp:&quot;store&quot;},t.translucentRenderEncoder.setReplaceShaderCodeFunction((e=&gt;{const t=e.getShaderDescription(&quot;fragment&quot;);t.addOutput(&quot;vec4&lt;f32&gt;&quot;,&quot;outColor&quot;),t.addOutput(&quot;f32&quot;,&quot;outAccum&quot;),t.addBuiltinInput(&quot;vec4&lt;f32&gt;&quot;,&quot;@builtin(position) fragPos&quot;);let n=t.getCode();n=rT.substitute(n,&quot;//VTK::RenderEncoder::Impl&quot;,[&quot;var w: f32 = computedColor.a * pow(0.1 + input.fragPos.z, 2.0);&quot;,&quot;output.outColor = vec4&lt;f32&gt;(computedColor.rgb*w, w);&quot;,&quot;output.outAccum = computedColor.a;&quot;]).result,t.setCode(n)})),t.translucentRenderEncoder.setPipelineHash(&quot;oitpr&quot;),t.translucentRenderEncoder.setPipelineSettings({primitive:{cullMode:&quot;none&quot;},depthStencil:{depthWriteEnabled:!1,depthCompare:&quot;greater&quot;,format:&quot;depth32float&quot;},fragment:{targets:[{format:&quot;rgba16float&quot;,blend:{color:{srcFactor:&quot;one&quot;,dstFactor:&quot;one&quot;},alpha:{srcFactor:&quot;one&quot;,dstFactor:&quot;one&quot;}}},{format:&quot;r16float&quot;,blend:{color:{srcFactor:&quot;zero&quot;,dstFactor:&quot;one-minus-src&quot;},alpha:{srcFactor:&quot;one&quot;,dstFactor:&quot;one-minus-src-alpha&quot;}}}]}})},e.createFinalEncoder=()=&gt;{t.translucentFinalEncoder=OT.newInstance({label:&quot;translucentFinal&quot;}),t.translucentFinalEncoder.setDescription({colorAttachments:[{view:null,loadOp:&quot;load&quot;,storeOp:&quot;store&quot;}]}),t.translucentFinalEncoder.setReplaceShaderCodeFunction((e=&gt;{const t=e.getShaderDescription(&quot;fragment&quot;);t.addOutput(&quot;vec4&lt;f32&gt;&quot;,&quot;outColor&quot;),t.addBuiltinInput(&quot;vec4&lt;f32&gt;&quot;,&quot;@builtin(position) fragPos&quot;);let n=t.getCode();n=rT.substitute(n,&quot;//VTK::RenderEncoder::Impl&quot;,[&quot;output.outColor = vec4&lt;f32&gt;(computedColor.rgb, computedColor.a);&quot;]).result,t.setCode(n)})),t.translucentFinalEncoder.setPipelineHash(&quot;oitpf&quot;),t.translucentFinalEncoder.setPipelineSettings({primitive:{cullMode:&quot;none&quot;},fragment:{targets:[{format:&quot;rgba16float&quot;,blend:{color:{srcFactor:&quot;src-alpha&quot;,dstFactor:&quot;one-minus-src-alpha&quot;},alpha:{srcFactor:&quot;one&quot;,dstFactor:&quot;one-minus-src-alpha&quot;}}}]}})}}(e,t)}var HT={newInstance:sn.newInstance(WT,&quot;vtkWebGPUOrderIndependentTranslucentPass&quot;),extend:WT};var jT={BufferUsage:{Verts:0,Lines:1,Triangles:2,Strips:3,LinesFromStrips:4,LinesFromTriangles:5,Points:6,UniformArray:7,PointArray:8,NormalsFromPoints:9,Texture:10,RawVertex:11,Storage:12,Index:13},PrimitiveTypes:{Start:0,Points:0,Lines:1,Triangles:2,TriangleStrips:3,TriangleEdges:4,TriangleStripEdges:5,End:6}};const XT=[&quot;getMappedRange&quot;,&quot;mapAsync&quot;,&quot;unmap&quot;];function qT(e,t){t.classHierarchy.push(&quot;vtkWebGPUBuffer&quot;),e.create=(e,n)=&gt;{t.handle=t.device.getHandle().createBuffer({size:e,usage:n,label:t.label}),t.sizeInBytes=e,t.usage=n},e.write=e=&gt;{!function(e,t,n,r){const o=r.byteLength,a=e.createBuffer({size:o,usage:GPUBufferUsage.COPY_SRC,mappedAtCreation:!0}),i=a.getMappedRange(0,o);new Uint8Array(i).set(new Uint8Array(r)),a.unmap();const s=e.createCommandEncoder();s.copyBufferToBuffer(a,0,t,n,o);const l=s.finish();e.queue.submit([l]),a.destroy()}(t.device.getHandle(),t.handle,0,e.buffer)},e.createAndWrite=(e,n)=&gt;{const r=4*Math.ceil(e.byteLength/4);t.handle=t.device.getHandle().createBuffer({size:r,usage:n,mappedAtCreation:!0,label:t.label}),t.sizeInBytes=r,t.usage=n,new Uint8Array(t.handle.getMappedRange()).set(new Uint8Array(e.buffer)),t.handle.unmap()};for(let n=0;n&lt;XT.length;n++)e[XT[n]]=(...e)=&gt;t.handle[XT[n]](...e)}const YT={device:null,handle:null,sizeInBytes:0,strideInBytes:0,arrayInformation:null,usage:null,label:null,sourceTime:null};function JT(e,t,n={}){Object.assign(t,YT,n),sn.obj(e,t),sn.get(e,t,[&quot;handle&quot;,&quot;sizeInBytes&quot;,&quot;usage&quot;]),sn.setGet(e,t,[&quot;strideInBytes&quot;,&quot;device&quot;,&quot;arrayInformation&quot;,&quot;label&quot;,&quot;sourceTime&quot;]),qT(e,t)}var ZT={newInstance:sn.newInstance(JT),extend:JT,...jT};const{Representation:QT}=us,{PrimitiveTypes:$T}=jT;class ex{constructor(){this.keys=new Uint32Array(10),this.values=new Uint32Array(10),this.count=0}clear(){this.count=0}has(e){for(let t=0;t&lt;this.count;t++)if(this.keys[t]===e)return!0}get(e){for(let t=0;t&lt;this.count;t++)if(this.keys[t]===e)return this.values[t]}set(e,t){this.count&lt;9&amp;&amp;(this.keys[this.count]=e,this.values[this.count++]=t)}}function tx(e,t,n){let r=e.pointIdToFlatId[t];return r&lt;0&amp;&amp;(r=e.flatId,e.pointIdToFlatId[t]=r,e.flatIdToPointId[e.flatId]=t,e.flatIdToCellId[e.flatId]=n,e.flatId++),r}function nx(e,t,n){const r=e.length;for(let o=0;o&lt;r;o++){let a=e[o];if(n.cellProvokedMap.has(a)){n.ibo[n.iboId++]=n.cellProvokedMap.get(a);for(let i=o+1;i&lt;o+r;i++){a=e[i%r];const o=tx(n,a,t);n.ibo[n.iboId++]=o}return}}for(let o=0;o&lt;r;o++){let a=e[o];if(!n.provokedPointIds[a]){let i=tx(n,a,t);n.provokedPointIds[a]=1,n.cellProvokedMap.set(a,i),n.flatIdToCellId[i]=t,n.ibo[n.iboId++]=i;for(let s=o+1;s&lt;o+r;s++)a=e[s%r],i=tx(n,a,t),n.ibo[n.iboId++]=i;return}}let o=e[0],a=n.flatId;n.cellProvokedMap.set(o,a),n.flatIdToPointId[n.flatId]=o,n.flatIdToCellId[n.flatId]=t,n.flatId++,n.ibo[n.iboId++]=a;for(let i=1;i&lt;r;i++)o=e[i],a=tx(n,o,t),n.ibo[n.iboId++]=a}function rx(e,t,n){const r=e.length;n.iboSize+=r;for(let t=0;t&lt;r;t++){const r=e[t];if(n.cellProvokedMap.has(r))return}for(let t=0;t&lt;r;t++){const r=e[t];if(!n.provokedPointIds[r])return n.provokedPointIds[r]=1,void n.cellProvokedMap.set(r,1)}n.cellProvokedMap.set(e[0],1),n.extraPoints++}let ox;const ax=new Uint32Array(1),ix=new Uint32Array(2),sx=new Uint32Array(3),lx={anythingToPoints(e,t,n,r,o){for(let a=0;a&lt;e;++a)ax[0]=t[n+a],ox(ax,r,o)},linesToWireframe(e,t,n,r,o){for(let a=0;a&lt;e-1;++a)ix[0]=t[n+a],ix[1]=t[n+a+1],ox(ix,r,o)},polysToWireframe(e,t,n,r,o){if(e&gt;2)for(let a=0;a&lt;e;++a)ix[0]=t[n+a],ix[1]=t[n+(a+1)%e],ox(ix,r,o)},stripsToWireframe(e,t,n,r,o){if(e&gt;2){for(let a=0;a&lt;e-1;++a)ix[0]=t[n+a],ix[1]=t[n+a+1],ox(ix,r,o);for(let a=0;a&lt;e-2;a++)ix[0]=t[n+a],ix[1]=t[n+a+2],ox(ix,r,o)}},polysToSurface(e,t,n,r,o){for(let a=0;a&lt;e-2;a++)sx[0]=t[n],sx[1]=t[n+a+1],sx[2]=t[n+a+2],ox(sx,r,o)},stripsToSurface(e,t,n,r,o){for(let a=0;a&lt;e-2;a++)sx[0]=t[n+a],sx[1]=t[n+a+1+a%2],sx[2]=t[n+a+1+(a+1)%2],ox(sx,r,o)}};function cx(e,t){t.classHierarchy.push(&quot;vtkWebGPUIndexBuffer&quot;),e.buildIndexBuffer=e=&gt;{const n=e.cells,r=e.primitiveType,o=e.representation,a=e.cellOffset,i=n.getData(),s=i.length,l=function(e){switch(e){case $T.Points:return&quot;points&quot;;case $T.Lines:return&quot;lines&quot;;case $T.Triangles:case $T.TriangleEdges:return&quot;polys&quot;;case $T.TriangleStripEdges:case $T.TriangleStrips:return&quot;strips&quot;;default:return&quot;&quot;}}(r),c=e.numberOfPoints,u={provokedPointIds:new Uint8Array(c),extraPoints:0,iboSize:0,flatId:0,iboId:0,cellProvokedMap:new ex};let d=null;d=o===QT.POINTS||r===$T.Points?lx.anythingToPoints:o===QT.WIREFRAME||r===$T.Lines?lx[`${l}ToWireframe`]:lx[`${l}ToSurface`],ox=rx;let p=a||0;for(let e=0;e&lt;s;)u.cellProvokedMap.clear(),d(i[e],i,e+1,p,u),e+=i[e]+1,p++;u.flatIdToPointId=c&lt;=65535?new Uint16Array(c+u.extraPoints):new Uint32Array(c+u.extraPoints),c+u.extraPoints&lt;36863?u.pointIdToFlatId=new Int16Array(c):u.pointIdToFlatId=new Int32Array(c),c+u.extraPoints&lt;=65535?(u.ibo=new Uint16Array(u.iboSize),e.format=&quot;uint16&quot;):(u.ibo=new Uint32Array(u.iboSize),e.format=&quot;uint32&quot;),u.flatIdToCellId=p&lt;=65535?new Uint16Array(c+u.extraPoints):new Uint32Array(c+u.extraPoints),u.pointIdToFlatId.fill(-1),u.provokedPointIds.fill(0),ox=nx,p=a||0;for(let e=0;e&lt;s;)u.cellProvokedMap.clear(),d(i[e],i,e+1,p,u),e+=i[e]+1,p++;delete u.provokedPointIds,delete u.pointIdToFlatId,e.nativeArray=u.ibo,t.flatIdToPointId=u.flatIdToPointId,t.flatIdToCellId=u.flatIdToCellId,t.flatSize=u.flatId,t.indexCount=u.iboId}}const ux={flatIdToPointId:null,flatIdToCellId:null,flatSize:0,indexCount:0};function dx(e,t,n={}){Object.assign(t,ux,n),ZT.extend(e,t,n),sn.setGet(e,t,[&quot;flatIdToPointId&quot;,&quot;flatIdToCellId&quot;,&quot;flatSize&quot;,&quot;indexCount&quot;]),cx(e,t)}var px={newInstance:sn.newInstance(dx),extend:dx,...jT};const{BufferUsage:fx}=jT,{vtkErrorMacro:gx}=ln,{VtkDataTypes:mx}=Is;function hx(e,t,n,r,o){const a={},i=e.getFlatSize();if(!i)return a;let s=[0,0,0,0];o.shift&amp;&amp;(o.shift.length?s=o.shift:s.fill(o.shift));let l=[1,1,1,1];o.scale&amp;&amp;(o.scale.length?l=o.scale:l.fill(o.scale));const c=!!Object.prototype.hasOwnProperty.call(o,&quot;packExtra&quot;)&amp;&amp;o.packExtra;let u,d=0;const p=Ct(r,i*(n+(c?1:0)));let f=e.getFlatIdToPointId();o.cellData&amp;&amp;(f=e.getFlatIdToCellId()),1===n?u=function(e){p[d++]=l[0]*t[e]+s[0]}:2===n?u=function(e){p[d++]=l[0]*t[e]+s[0],p[d++]=l[1]*t[e+1]+s[1]}:3!==n||c?3===n&amp;&amp;c?u=function(e){p[d++]=l[0]*t[e]+s[0],p[d++]=l[1]*t[e+1]+s[1],p[d++]=l[2]*t[e+2]+s[2],p[d++]=1*l[3]+s[3]}:4===n&amp;&amp;(u=function(e){p[d++]=l[0]*t[e]+s[0],p[d++]=l[1]*t[e+1]+s[1],p[d++]=l[2]*t[e+2]+s[2],p[d++]=l[3]*t[e+3]+s[3]}):u=function(e){p[d++]=l[0]*t[e]+s[0],p[d++]=l[1]*t[e+1]+s[1],p[d++]=l[2]*t[e+2]+s[2]};for(let e=0;e&lt;i;e++){u(n*f[e])}return a.nativeArray=p,a}function vx(e,t,n,r){const o=[];return Wo([e[3*r]-e[3*n],e[3*r+1]-e[3*n+1],e[3*r+2]-e[3*n+2]],[e[3*t]-e[3*n],e[3*t+1]-e[3*n+1],e[3*t+2]-e[3*n+2]],o),jo(o),o}function Tx(e,t){function n(e){let n,r;if(e.dataArray&amp;&amp;!e.nativeArray&amp;&amp;(e.nativeArray=e.dataArray.getData()),e.usage===fx.Index&amp;&amp;(n=px.newInstance({label:e.label}),n.setDevice(t.device),r=GPUBufferUsage.INDEX|GPUBufferUsage.COPY_DST,n.buildIndexBuffer(e),n.createAndWrite(e.nativeArray,r),n.setArrayInformation([{format:e.format}])),n||(n=ZT.newInstance({label:e.label}),n.setDevice(t.device)),e.usage===fx.UniformArray&amp;&amp;(r=GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST,n.createAndWrite(e.nativeArray,r)),e.usage===fx.Storage&amp;&amp;(r=GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST,n.createAndWrite(e.nativeArray,r)),e.usage===fx.Texture&amp;&amp;(r=GPUBufferUsage.COPY_SRC,n.createAndWrite(e.nativeArray,r)),e.usage===fx.PointArray){r=GPUBufferUsage.VERTEX;const t=gT.getNativeTypeFromBufferFormat(e.format),o=hx(e.indexBuffer,e.dataArray.getData(),e.dataArray.getNumberOfComponents(),t,{packExtra:e.packExtra,shift:e.shift,scale:e.scale,cellData:e.cellData,cellOffset:e.cellOffset});n.createAndWrite(o.nativeArray,r),n.setStrideInBytes(gT.getByteStrideFromBufferFormat(e.format)),n.setArrayInformation([{offset:0,format:e.format,interpolation:e.cellData?&quot;flat&quot;:&quot;perspective&quot;}])}if(e.usage===fx.NormalsFromPoints){r=GPUBufferUsage.VERTEX;const t=gT.getNativeTypeFromBufferFormat(e.format),o=function(e,t){const n=t.getData(),r=e.getData();if(!r||!n)return null;const o=new Int8Array(4*e.getNumberOfCells()),a=r.length;let i=0;for(let e=0;e&lt;a;){const t=vx(n,r[e+1],r[e+2],r[e+3]);o[i++]=127*t[0],o[i++]=127*t[1],o[i++]=127*t[2],o[i++]=127,e+=r[e]+1}return o}(e.cells,e.dataArray),a=hx(e.indexBuffer,o,4,t,{cellData:!0});n.createAndWrite(a.nativeArray,r),n.setStrideInBytes(gT.getByteStrideFromBufferFormat(e.format)),n.setArrayInformation([{offset:0,format:e.format,interpolation:&quot;flat&quot;}])}return e.usage===fx.RawVertex&amp;&amp;(r=GPUBufferUsage.VERTEX,n.createAndWrite(e.nativeArray,r),n.setStrideInBytes(gT.getByteStrideFromBufferFormat(e.format)),n.setArrayInformation([{offset:0,format:e.format}])),n.setSourceTime(e.time),n}t.classHierarchy.push(&quot;vtkWebGPUBufferManager&quot;),e.hasBuffer=e=&gt;t.device.hasCachedObject(e),e.getBuffer=e=&gt;e.hash?t.device.getCachedObject(e.hash,n,e):n(e),e.getBufferForPointArray=(t,n)=&gt;{const r=function(e){let t;switch(e.getDataType()){case mx.UNSIGNED_CHAR:t=&quot;uint8&quot;;break;case mx.FLOAT:t=&quot;float32&quot;;break;case mx.UNSIGNED_INT:t=&quot;uint32&quot;;break;case mx.INT:t=&quot;sint32&quot;;break;case mx.DOUBLE:t=&quot;float32&quot;;break;case mx.UNSIGNED_SHORT:t=&quot;uint16&quot;;break;case mx.SHORT:t=&quot;sin16&quot;;break;default:t=&quot;float32&quot;}switch(e.getNumberOfComponents()){case 2:t+=&quot;x2&quot;;break;case 3:t.includes(&quot;32&quot;)||gx(`unsupported x3 type for ${t}`),t+=&quot;x3&quot;;break;case 4:t+=&quot;x4&quot;}return t}(t),o={hash:`${t.getMTime()}I${n.getMTime()}${r}`,usage:fx.PointArray,format:r,dataArray:t,indexBuffer:n};return e.getBuffer(o)},e.getFullScreenQuadBuffer=()=&gt;{if(t.fullScreenQuadBuffer)return t.fullScreenQuadBuffer;t.fullScreenQuadBuffer=ZT.newInstance(),t.fullScreenQuadBuffer.setDevice(t.device);const e=new Float32Array([-1,-1,0,1,-1,0,1,1,0,-1,-1,0,1,1,0,-1,1,0]);return t.fullScreenQuadBuffer.createAndWrite(e,GPUBufferUsage.VERTEX),t.fullScreenQuadBuffer.setStrideInBytes(12),t.fullScreenQuadBuffer.setArrayInformation([{offset:0,format:&quot;float32x3&quot;}]),t.fullScreenQuadBuffer}}const xx={device:null,fullScreenQuadBuffer:null};function yx(e,t,n={}){Object.assign(t,xx,n),Vt(e,t),Gt(e,t,[&quot;device&quot;]),Tx(e,t)}var bx={newInstance:Xt(yx),extend:yx,...jT};const{BufferUsage:Ax}=bx,{vtkErrorMacro:Cx}=sn;const Sx={bufferEntries:null,bufferEntryNames:null,sizeInBytes:0,label:null,bindGroupLayoutEntry:null,bindGroupEntry:null};function Px(e,t,n={}){Object.assign(t,Sx,n),sn.obj(e,t),t._bufferEntryNames=new Map,t.bufferEntries=[],t.bindGroupLayoutEntry=t.bindGroupLayoutEntry||{buffer:{type:&quot;uniform&quot;}},t.sendTime={},sn.obj(t.sendTime,{mtime:0}),t.bindGroupTime={},sn.obj(t.bindGroupTime,{mtime:0}),t.sendDirty=!0,t.sortDirty=!0,sn.get(e,t,[&quot;binding&quot;,&quot;bindGroupTime&quot;]),sn.setGet(e,t,[&quot;bindGroupLayoutEntry&quot;,&quot;device&quot;,&quot;label&quot;,&quot;sizeInBytes&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUUniformBuffer&quot;),e.addEntry=(e,n)=&gt;{t._bufferEntryNames.has(e)?Cx(`entry named ${e} already exists`):(t.sortDirty=!0,t._bufferEntryNames.set(e,t.bufferEntries.length),t.bufferEntries.push({name:e,type:n,sizeInBytes:gT.getByteStrideFromShaderFormat(n),offset:-1,nativeType:gT.getNativeTypeFromShaderFormat(n),packed:!1}))},e.sortBufferEntries=()=&gt;{if(!t.sortDirty)return;let e=0;const n=[];let r=4;for(let e=0;e&lt;t.bufferEntries.length;e++){const n=t.bufferEntries[e];n.sizeInBytes%16==0&amp;&amp;(r=Math.max(16,r)),n.sizeInBytes%8==0&amp;&amp;(r=Math.max(8,r))}for(let r=0;r&lt;t.bufferEntries.length;r++){const o=t.bufferEntries[r];!1===o.packed&amp;&amp;o.sizeInBytes%16==0&amp;&amp;(o.packed=!0,o.offset=e,n.push(o),e+=o.sizeInBytes)}for(let r=0;r&lt;t.bufferEntries.length;r++){const o=t.bufferEntries[r];if(!1===o.packed&amp;&amp;12===o.sizeInBytes)for(let r=0;r&lt;t.bufferEntries.length;r++){const a=t.bufferEntries[r];if(!1===a.packed&amp;&amp;4===a.sizeInBytes){o.packed=!0,o.offset=e,n.push(o),e+=o.sizeInBytes,a.packed=!0,a.offset=e,n.push(a),e+=a.sizeInBytes;break}}}for(let r=0;r&lt;t.bufferEntries.length;r++){const o=t.bufferEntries[r];if(!o.packed&amp;&amp;o.sizeInBytes%8==0)for(let a=r+1;a&lt;t.bufferEntries.length;a++){const r=t.bufferEntries[a];if(!r.packed&amp;&amp;r.sizeInBytes%8==0){o.packed=!0,o.offset=e,n.push(o),e+=o.sizeInBytes,r.packed=!0,r.offset=e,n.push(r),e+=r.sizeInBytes;break}}}for(let r=0;r&lt;t.bufferEntries.length;r++){const o=t.bufferEntries[r];if(!o.packed&amp;&amp;o.sizeInBytes%8==0){let r=!1;for(let a=0;!r&amp;&amp;a&lt;t.bufferEntries.length;a++){const i=t.bufferEntries[a];if(!i.packed&amp;&amp;4===i.sizeInBytes)for(let s=a+1;s&lt;t.bufferEntries.length;s++){const a=t.bufferEntries[s];if(!a.packed&amp;&amp;4===a.sizeInBytes){o.packed=!0,o.offset=e,n.push(o),e+=o.sizeInBytes,i.packed=!0,i.offset=e,n.push(i),e+=i.sizeInBytes,a.packed=!0,a.offset=e,n.push(a),e+=a.sizeInBytes,r=!0;break}}}}}for(let r=0;r&lt;t.bufferEntries.length;r++){const o=t.bufferEntries[r];!o.packed&amp;&amp;o.sizeInBytes&gt;4&amp;&amp;(o.packed=!0,o.offset=e,n.push(o),e+=o.sizeInBytes)}for(let r=0;r&lt;t.bufferEntries.length;r++){const o=t.bufferEntries[r];o.packed||(o.packed=!0,o.offset=e,n.push(o),e+=o.sizeInBytes)}t.bufferEntries=n,t._bufferEntryNames.clear();for(let e=0;e&lt;t.bufferEntries.length;e++)t._bufferEntryNames.set(t.bufferEntries[e].name,e);t.sizeInBytes=e,t.sizeInBytes=r*Math.ceil(t.sizeInBytes/r),t.sortDirty=!1},e.sendIfNeeded=e=&gt;{if(!t.UBO){const n={nativeArray:t.Float32Array,usage:Ax.UniformArray,label:t.label};t.UBO=e.getBufferManager().getBuffer(n),t.bindGroupTime.modified(),t.sendDirty=!1}t.sendDirty&amp;&amp;(e.getHandle().queue.writeBuffer(t.UBO.getHandle(),0,t.arrayBuffer,0,t.sizeInBytes),t.sendDirty=!1),t.sendTime.modified()},e.createView=e=&gt;{e in t==0&amp;&amp;(t.arrayBuffer||(t.arrayBuffer=new ArrayBuffer(t.sizeInBytes)),t[e]=sn.newTypedArray(e,t.arrayBuffer))},e.setValue=(n,r)=&gt;{e.sortBufferEntries();const o=t._bufferEntryNames.get(n);if(void 0===o)return void Cx(`entry named ${n} not found in UBO`);const a=t.bufferEntries[o];e.createView(a.nativeType);const i=t[a.nativeType];a.lastValue!==r&amp;&amp;(i[a.offset/i.BYTES_PER_ELEMENT]=r,t.sendDirty=!0),a.lastValue=r},e.setArray=(n,r)=&gt;{e.sortBufferEntries();const o=t._bufferEntryNames.get(n);if(void 0===o)return void Cx(`entry named ${n} not found in UBO`);const a=t.bufferEntries[o];e.createView(a.nativeType);const i=t[a.nativeType];let s=!1;for(let e=0;e&lt;r.length;e++)a.lastValue&amp;&amp;a.lastValue[e]===r[e]||(i[a.offset/i.BYTES_PER_ELEMENT+e]=r[e],s=!0);s&amp;&amp;(t.sendDirty=!0,a.lastValue=[...r])},e.getBindGroupEntry=()=&gt;({resource:{buffer:t.UBO.getHandle()}}),e.getSendTime=()=&gt;t.sendTime.getMTime(),e.getShaderCode=(n,r)=&gt;{e.sortBufferEntries();const o=[`struct ${t.label}Struct\\n{`];for(let e=0;e&lt;t.bufferEntries.length;e++){const n=t.bufferEntries[e];o.push(`  ${n.name}: ${n.type},`)}return o.push(`};\\n@binding(${n}) @group(${r}) var&lt;uniform&gt; ${t.label}: ${t.label}Struct;`),o.join(&quot;\\n&quot;)}}(e,t)}var wx={newInstance:sn.newInstance(Px,&quot;vtkWebGPUUniformBuffer&quot;),extend:Px};const{BufferUsage:Ix}=bx,{vtkErrorMacro:Ox}=sn;const Rx={bufferEntries:null,bufferEntryNames:null,sizeInBytes:0,label:null,numberOfInstances:1};function Mx(e,t,n={}){Object.assign(t,Rx,n),sn.obj(e,t),t._bufferEntryNames=new Map,t.bufferEntries=[],t._sendTime={},sn.obj(t._sendTime,{mtime:0}),t.bindGroupTime={},sn.obj(t.bindGroupTime,{mtime:0}),t.bindGroupLayoutEntry=t.bindGroupLayoutEntry||{buffer:{type:&quot;read-only-storage&quot;}},sn.get(e,t,[&quot;bindGroupTime&quot;]),sn.setGet(e,t,[&quot;device&quot;,&quot;bindGroupLayoutEntry&quot;,&quot;label&quot;,&quot;numberOfInstances&quot;,&quot;sizeInBytes&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUStorageBuffer&quot;),e.addEntry=(e,n)=&gt;{if(t._bufferEntryNames.has(e))return void Ox(`entry named ${e} already exists`);t._bufferEntryNames.set(e,t.bufferEntries.length);const r=gT.getByteStrideFromShaderFormat(n);t.bufferEntries.push({name:e,type:n,sizeInBytes:r,offset:t.sizeInBytes,nativeType:gT.getNativeTypeFromShaderFormat(n)}),t.sizeInBytes+=r},e.send=e=&gt;{if(!t._buffer){const n={nativeArray:t.Float32Array,usage:Ix.Storage,label:t.label};return t._buffer=e.getBufferManager().getBuffer(n),t.bindGroupTime.modified(),void t._sendTime.modified()}e.getHandle().queue.writeBuffer(t._buffer.getHandle(),0,t.arrayBuffer,0,t.sizeInBytes*t.numberOfInstances),t._sendTime.modified()},e.createView=e=&gt;{e in t==0&amp;&amp;(t.arrayBuffer||(t.arrayBuffer=new ArrayBuffer(t.sizeInBytes*t.numberOfInstances)),t[e]=sn.newTypedArray(e,t.arrayBuffer))},e.setValue=(n,r,o)=&gt;{const a=t._bufferEntryNames.get(n);if(void 0===a)return void Ox(`entry named ${n} not found in UBO`);const i=t.bufferEntries[a];e.createView(i.nativeType);const s=t[i.nativeType];s[(i.offset+r*t.sizeInBytes)/s.BYTES_PER_ELEMENT]=o},e.setArray=(n,r,o)=&gt;{const a=t._bufferEntryNames.get(n);if(void 0===a)return void Ox(`entry named ${n} not found in UBO`);const i=t.bufferEntries[a];e.createView(i.nativeType);const s=t[i.nativeType],l=(i.offset+r*t.sizeInBytes)/s.BYTES_PER_ELEMENT;for(let e=0;e&lt;o.length;e++)s[l+e]=o[e]},e.setAllInstancesFromArray=(n,r)=&gt;{const o=t._bufferEntryNames.get(n);if(void 0===o)return void Ox(`entry named ${n} not found in UBO`);const a=t.bufferEntries[o];e.createView(a.nativeType);const i=t[a.nativeType],s=r.length/t.numberOfInstances;for(let e=0;e&lt;t.numberOfInstances;e++){const n=(a.offset+e*t.sizeInBytes)/i.BYTES_PER_ELEMENT;for(let t=0;t&lt;s;t++)i[n+t]=r[e*s+t]}},e.setAllInstancesFromArrayColorToFloat=(n,r)=&gt;{const o=t._bufferEntryNames.get(n);if(void 0===o)return void Ox(`entry named ${n} not found in UBO`);const a=t.bufferEntries[o];e.createView(a.nativeType);const i=t[a.nativeType],s=r.length/t.numberOfInstances;for(let e=0;e&lt;t.numberOfInstances;e++){const n=(a.offset+e*t.sizeInBytes)/i.BYTES_PER_ELEMENT;for(let t=0;t&lt;s;t++)i[n+t]=r[e*s+t]/255}},e.setAllInstancesFromArray3x3To4x4=(n,r)=&gt;{const o=t._bufferEntryNames.get(n);if(void 0===o)return void Ox(`entry named ${n} not found in UBO`);const a=t.bufferEntries[o];e.createView(a.nativeType);const i=t[a.nativeType];for(let e=0;e&lt;t.numberOfInstances;e++){const n=(a.offset+e*t.sizeInBytes)/i.BYTES_PER_ELEMENT;for(let t=0;t&lt;3;t++)for(let o=0;o&lt;3;o++)i[n+4*t+o]=r[9*e+3*t+o]}},e.getSendTime=()=&gt;t._sendTime.getMTime(),e.getShaderCode=(e,n)=&gt;{const r=[`struct ${t.label}StructEntry\\n{`];for(let e=0;e&lt;t.bufferEntries.length;e++){const n=t.bufferEntries[e];r.push(`  ${n.name}: ${n.type},`)}return r.push(`\\n};\\nstruct ${t.label}Struct\\n{\\n  values: array&lt;${t.label}StructEntry&gt;,\\n};\\n@binding(${e}) @group(${n}) var&lt;storage, read&gt; ${t.label}: ${t.label}Struct;\\n`),r.join(&quot;\\n&quot;)},e.getBindGroupEntry=()=&gt;({resource:{buffer:t._buffer.getHandle()}}),e.clearData=()=&gt;{t.numberOfInstances=0,t.sizeInBytes=0,t.bufferEntries=[],t._bufferEntryNames=new Map,t._buffer=null,delete t.arrayBuffer,delete t.Float32Array}}(e,t)}var Dx={newInstance:sn.newInstance(Mx,&quot;vtkWebGPUStorageBuffer&quot;),extend:Mx};function Ex(e,t,n){const r=e.getClippingPlanes().length;for(let o=0;o&lt;r;o++)e.getClippingPlaneInCoords(t,o,n[o]);return r}const Vx=`\\n//VTK::Renderer::Dec\\n\\n//VTK::Mapper::Dec\\n\\n//VTK::TCoord::Dec\\n\\n//VTK::Volume::TraverseDec\\n\\n//VTK::RenderEncoder::Dec\\n\\n//VTK::IOStructs::Dec\\n\\nfn getTextureValue(vTex: texture_3d&lt;f32&gt;, tpos: vec4&lt;f32&gt;) -&gt; f32\\n{\\n  // todo multicomponent support\\n  return textureSampleLevel(vTex, clampSampler, tpos.xyz, 0.0).r;\\n}\\n\\nfn intersectRayBoundsWithClipPlanes(vNum: i32, minPosSC: vec4&lt;f32&gt;, rayStepSC: vec4&lt;f32&gt;, rayBounds: vec2&lt;f32&gt;) -&gt; vec2&lt;f32&gt;\\n{\\n  var result: vec2&lt;f32&gt; = rayBounds;\\n  let clipCount: i32 = i32(volumeSSBO.values[vNum].clipPlaneStates.x);\\n  if (clipCount &lt;= 0)\\n  {\\n    return result;\\n  }\\n\\n  ${Array.from({length:6},((e,t)=&gt;`\\n  if (clipCount &gt; ${t})\\n  {\\n    let clipPlane${t}: vec4&lt;f32&gt; = volumeSSBO.values[vNum].clipPlane${t};\\n    let rayDirRatio${t}: f32 = dot(rayStepSC, clipPlane${t});\\n    let equationResult${t}: f32 = dot(minPosSC, clipPlane${t});\\n\\n    let absRayDirRatio${t}: f32 = abs(rayDirRatio${t});\\n    if (absRayDirRatio${t} &gt; 1e-6)\\n    {\\n      let intersection${t}: f32 = -equationResult${t} / rayDirRatio${t};\\n      result.x = select(result.x, max(result.x, intersection${t}), rayDirRatio${t} &gt; 0.0);\\n      result.y = select(result.y, min(result.y, intersection${t}), rayDirRatio${t} &lt; 0.0);\\n    }\\n    else if (equationResult${t} &lt; 0.0)\\n    {\\n      result.x = result.y;\\n    }\\n\\n    if (result.x &gt;= result.y)\\n    {\\n      return result;\\n    }\\n  }`)).join(&quot;\\n&quot;)}\\n\\n  return result;\\n}\\n\\nfn getGradient(vTex: texture_3d&lt;f32&gt;, tpos: vec4&lt;f32&gt;, vNum: i32, scalar: f32) -&gt; vec4&lt;f32&gt;\\n{\\n  var result: vec4&lt;f32&gt;;\\n\\n  var tstep: vec4&lt;f32&gt; = volumeSSBO.values[vNum].tstep;\\n  result.x = getTextureValue(vTex, tpos + vec4&lt;f32&gt;(tstep.x, 0.0, 0.0, 1.0)) - scalar;\\n  result.y = getTextureValue(vTex, tpos + vec4&lt;f32&gt;(0.0, tstep.y, 0.0, 1.0)) - scalar;\\n  result.z = getTextureValue(vTex, tpos + vec4&lt;f32&gt;(0.0, 0.0, tstep.z, 1.0)) - scalar;\\n  result.w = 0.0;\\n\\n  // divide by spacing as that is our delta\\n  result = result / volumeSSBO.values[vNum].spacing;\\n  // now we have a gradient in unit tcoords\\n\\n  var grad: f32 = length(result.xyz);\\n  if (grad &gt; 0.0)\\n  {\\n    // rotate to View Coords, needed for lighting and shading\\n    var nMat: mat4x4&lt;f32&gt; = rendererUBO.SCVCMatrix * volumeSSBO.values[vNum].planeNormals;\\n    result = nMat * result;\\n    result = result / length(result);\\n  }\\n\\n  // store gradient magnitude in .w\\n  result.w = grad;\\n\\n  return result;\\n}\\n\\nfn processVolume(vTex: texture_3d&lt;f32&gt;, vNum: i32, cNum: i32, posSC: vec4&lt;f32&gt;, tfunRows: f32) -&gt; vec4&lt;f32&gt;\\n{\\n  var outColor: vec4&lt;f32&gt; = vec4&lt;f32&gt;(0.0, 0.0, 0.0, 0.0);\\n\\n  // convert to tcoords and reject if outside the volume\\n  var tpos: vec4&lt;f32&gt; = volumeSSBO.values[vNum].SCTCMatrix*posSC;\\n  if (tpos.x &lt; 0.0 || tpos.y &lt; 0.0 || tpos.z &lt; 0.0 ||\\n      tpos.x &gt; 1.0 || tpos.y &gt; 1.0 || tpos.z &gt; 1.0) { return outColor; }\\n\\n  var scalar: f32 = getTextureValue(vTex, tpos);\\n\\n  var coord: vec2&lt;f32&gt; =\\n    vec2&lt;f32&gt;(scalar * componentSSBO.values[cNum].cScale + componentSSBO.values[cNum].cShift,\\n      (0.5 + 2.0 * f32(vNum)) / tfunRows);\\n  var color: vec4&lt;f32&gt; = textureSampleLevel(tfunTexture, clampSampler, coord, 0.0);\\n\\n  var gofactor: f32 = 1.0;\\n  var normal: vec4&lt;f32&gt; = vec4&lt;f32&gt;(0.0,0.0,0.0,0.0);\\n  if (componentSSBO.values[cNum].gomin &lt;  1.0 || volumeSSBO.values[vNum].shade[0] &gt; 0.0)\\n  {\\n    normal = getGradient(vTex, tpos, vNum, scalar);\\n    if (componentSSBO.values[cNum].gomin &lt;  1.0)\\n    {\\n      gofactor = clamp(normal.a*componentSSBO.values[cNum].goScale + componentSSBO.values[cNum].goShift,\\n      componentSSBO.values[cNum].gomin, componentSSBO.values[cNum].gomax);\\n    }\\n  }\\n\\n  coord.x = (scalar * componentSSBO.values[cNum].oScale + componentSSBO.values[cNum].oShift);\\n  var opacity: f32 = textureSampleLevel(ofunTexture, clampSampler, coord, 0.0).r;\\n\\n  if (volumeSSBO.values[vNum].shade[0] &gt; 0.0)\\n  {\\n    color = color*abs(normal.z);\\n  }\\n\\n  outColor = vec4&lt;f32&gt;(color.rgb, gofactor * opacity);\\n\\n  return outColor;\\n}\\n\\n// adjust the start and end point of a raycast such that it intersects the unit cube.\\n// This function is used to take a raycast starting point and step vector\\n// and numSteps and return the startijng and ending steps for intersecting the\\n// unit cube. Recall for a 3D texture, the unit cube is the range of texture coordsinates\\n// that have valid values. So this funtion can be used to take a ray in texture coordinates\\n// and bound it to intersecting the texture.\\n//\\nfn adjustBounds(tpos: vec4&lt;f32&gt;, tstep: vec4&lt;f32&gt;, numSteps: f32) -&gt; vec2&lt;f32&gt;\\n{\\n  var result: vec2&lt;f32&gt; = vec2&lt;f32&gt;(0.0, numSteps);\\n  var tpos2: vec4&lt;f32&gt; = tpos + tstep*numSteps;\\n\\n  // move tpos to the start of the volume\\n  var adjust: f32 =\\n    min(\\n      max(tpos.x/tstep.x, (tpos.x - 1.0)/tstep.x),\\n      min(\\n        max((tpos.y - 1.0)/tstep.y, tpos.y/tstep.y),\\n        max((tpos.z - 1.0)/tstep.z, tpos.z/tstep.z)));\\n  if (adjust &lt; 0.0)\\n  {\\n    result.x = result.x - adjust;\\n  }\\n\\n  // adjust length to the end\\n  adjust =\\n    max(\\n      min(tpos2.x/tstep.x, (tpos2.x - 1.0)/tstep.x),\\n      max(\\n        min((tpos2.y - 1.0)/tstep.y, tpos2.y/tstep.y),\\n        min((tpos2.z - 1.0)/tstep.z, tpos2.z/tstep.z)));\\n  if (adjust &gt; 0.0)\\n  {\\n    result.y = result.y - adjust;\\n  }\\n\\n  return result;\\n}\\n\\nfn getSimpleColor(scalar: f32, vNum: i32, cNum: i32) -&gt; vec4&lt;f32&gt;\\n{\\n  // how many rows (tfuns) do we have in our tfunTexture\\n  var tfunRows: f32 = f32(textureDimensions(tfunTexture).y);\\n\\n  var coord: vec2&lt;f32&gt; =\\n    vec2&lt;f32&gt;(scalar * componentSSBO.values[cNum].cScale + componentSSBO.values[cNum].cShift,\\n      (0.5 + 2.0 * f32(vNum)) / tfunRows);\\n  var color: vec4&lt;f32&gt; = textureSampleLevel(tfunTexture, clampSampler, coord, 0.0);\\n  coord.x = (scalar * componentSSBO.values[cNum].oScale + componentSSBO.values[cNum].oShift);\\n  var opacity: f32 = textureSampleLevel(ofunTexture, clampSampler, coord, 0.0).r;\\n  return vec4&lt;f32&gt;(color.rgb, opacity);\\n}\\n\\nfn traverseMax(vTex: texture_3d&lt;f32&gt;, vNum: i32, cNum: i32, rayLengthSC: f32, minPosSC: vec4&lt;f32&gt;, rayStepSC: vec4&lt;f32&gt;)\\n{\\n  // convert to tcoords and reject if outside the volume\\n  var numSteps: f32 = rayLengthSC/mapperUBO.SampleDistance;\\n  var tpos: vec4&lt;f32&gt; = volumeSSBO.values[vNum].SCTCMatrix*minPosSC;\\n  var tpos2: vec4&lt;f32&gt; = volumeSSBO.values[vNum].SCTCMatrix*(minPosSC + rayStepSC);\\n  var tstep: vec4&lt;f32&gt; = tpos2 - tpos;\\n\\n  var rayBounds: vec2&lt;f32&gt; = intersectRayBoundsWithClipPlanes(\\n    vNum,\\n    minPosSC,\\n    rayStepSC,\\n    adjustBounds(tpos, tstep, numSteps));\\n\\n  // did we hit anything\\n  if (rayBounds.x &gt;= rayBounds.y)\\n  {\\n    traverseVals[vNum] = vec4&lt;f32&gt;(0.0,0.0,0.0,0.0);\\n    return;\\n  }\\n\\n  tpos = tpos + tstep*rayBounds.x;\\n  var curDist: f32 = rayBounds.x;\\n  var maxVal: f32 = -1.0e37;\\n  loop\\n  {\\n    var scalar: f32 = getTextureValue(vTex, tpos);\\n    if (scalar &gt; maxVal)\\n    {\\n      maxVal = scalar;\\n    }\\n\\n    // increment position\\n    curDist = curDist + 1.0;\\n    tpos = tpos + tstep;\\n\\n    // check if we have reached a terminating condition\\n    if (curDist &gt; rayBounds.y) { break; }\\n  }\\n\\n  // process to get the color and opacity\\n  traverseVals[vNum] = getSimpleColor(maxVal, vNum, cNum);\\n}\\n\\nfn traverseMin(vTex: texture_3d&lt;f32&gt;, vNum: i32, cNum: i32, rayLengthSC: f32, minPosSC: vec4&lt;f32&gt;, rayStepSC: vec4&lt;f32&gt;)\\n{\\n  // convert to tcoords and reject if outside the volume\\n  var numSteps: f32 = rayLengthSC/mapperUBO.SampleDistance;\\n  var tpos: vec4&lt;f32&gt; = volumeSSBO.values[vNum].SCTCMatrix*minPosSC;\\n  var tpos2: vec4&lt;f32&gt; = volumeSSBO.values[vNum].SCTCMatrix*(minPosSC + rayStepSC);\\n  var tstep: vec4&lt;f32&gt; = tpos2 - tpos;\\n\\n  var rayBounds: vec2&lt;f32&gt; = intersectRayBoundsWithClipPlanes(\\n    vNum,\\n    minPosSC,\\n    rayStepSC,\\n    adjustBounds(tpos, tstep, numSteps));\\n\\n  // did we hit anything\\n  if (rayBounds.x &gt;= rayBounds.y)\\n  {\\n    traverseVals[vNum] = vec4&lt;f32&gt;(0.0,0.0,0.0,0.0);\\n    return;\\n  }\\n\\n  tpos = tpos + tstep*rayBounds.x;\\n  var curDist: f32 = rayBounds.x;\\n  var minVal: f32 = 1.0e37;\\n  loop\\n  {\\n    var scalar: f32 = getTextureValue(vTex, tpos);\\n    if (scalar &lt; minVal)\\n    {\\n      minVal = scalar;\\n    }\\n\\n    // increment position\\n    curDist = curDist + 1.0;\\n    tpos = tpos + tstep;\\n\\n    // check if we have reached a terminating condition\\n    if (curDist &gt; rayBounds.y) { break; }\\n  }\\n\\n  // process to get the color and opacity\\n  traverseVals[vNum] = getSimpleColor(minVal, vNum, cNum);\\n}\\n\\nfn traverseAverage(vTex: texture_3d&lt;f32&gt;, vNum: i32, cNum: i32, rayLengthSC: f32, minPosSC: vec4&lt;f32&gt;, rayStepSC: vec4&lt;f32&gt;)\\n{\\n  // convert to tcoords and reject if outside the volume\\n  var numSteps: f32 = rayLengthSC/mapperUBO.SampleDistance;\\n  var tpos: vec4&lt;f32&gt; = volumeSSBO.values[vNum].SCTCMatrix*minPosSC;\\n  var tpos2: vec4&lt;f32&gt; = volumeSSBO.values[vNum].SCTCMatrix*(minPosSC + rayStepSC);\\n  var tstep: vec4&lt;f32&gt; = tpos2 - tpos;\\n\\n  var rayBounds: vec2&lt;f32&gt; = intersectRayBoundsWithClipPlanes(\\n    vNum,\\n    minPosSC,\\n    rayStepSC,\\n    adjustBounds(tpos, tstep, numSteps));\\n\\n  // did we hit anything\\n  if (rayBounds.x &gt;= rayBounds.y)\\n  {\\n    traverseVals[vNum] = vec4&lt;f32&gt;(0.0,0.0,0.0,0.0);\\n    return;\\n  }\\n\\n  let ipRange: vec4&lt;f32&gt; = volumeSSBO.values[vNum].ipScalarRange;\\n  tpos = tpos + tstep*rayBounds.x;\\n  var curDist: f32 = rayBounds.x;\\n  var avgVal: f32 = 0.0;\\n  var sampleCount: f32 = 0.0;\\n  loop\\n  {\\n    var sample: f32 = getTextureValue(vTex, tpos);\\n    // right now leave filtering off until WebGL changes get merged\\n    // if (ipRange.z == 0.0 || sample &gt;= ipRange.x &amp;&amp; sample &lt;= ipRange.y)\\n    // {\\n      avgVal = avgVal + sample;\\n      sampleCount = sampleCount + 1.0;\\n    // }\\n\\n    // increment position\\n    curDist = curDist + 1.0;\\n    tpos = tpos + tstep;\\n\\n    // check if we have reached a terminating condition\\n    if (curDist &gt; rayBounds.y) { break; }\\n  }\\n\\n  if (sampleCount &lt;= 0.0)\\n  {\\n    traverseVals[vNum] = vec4&lt;f32&gt;(0.0,0.0,0.0,0.0);\\n    return;\\n  }\\n\\n  // process to get the color and opacity\\n  traverseVals[vNum] = getSimpleColor(avgVal/sampleCount, vNum, cNum);\\n}\\n\\nfn traverseAdditive(vTex: texture_3d&lt;f32&gt;, vNum: i32, cNum: i32, rayLengthSC: f32, minPosSC: vec4&lt;f32&gt;, rayStepSC: vec4&lt;f32&gt;)\\n{\\n  // convert to tcoords and reject if outside the volume\\n  var numSteps: f32 = rayLengthSC/mapperUBO.SampleDistance;\\n  var tpos: vec4&lt;f32&gt; = volumeSSBO.values[vNum].SCTCMatrix*minPosSC;\\n  var tpos2: vec4&lt;f32&gt; = volumeSSBO.values[vNum].SCTCMatrix*(minPosSC + rayStepSC);\\n  var tstep: vec4&lt;f32&gt; = tpos2 - tpos;\\n\\n  var rayBounds: vec2&lt;f32&gt; = intersectRayBoundsWithClipPlanes(\\n    vNum,\\n    minPosSC,\\n    rayStepSC,\\n    adjustBounds(tpos, tstep, numSteps));\\n\\n  // did we hit anything\\n  if (rayBounds.x &gt;= rayBounds.y)\\n  {\\n    traverseVals[vNum] = vec4&lt;f32&gt;(0.0,0.0,0.0,0.0);\\n    return;\\n  }\\n\\n  let ipRange: vec4&lt;f32&gt; = volumeSSBO.values[vNum].ipScalarRange;\\n  tpos = tpos + tstep*rayBounds.x;\\n  var curDist: f32 = rayBounds.x;\\n  var sumVal: f32 = 0.0;\\n  loop\\n  {\\n    var sample: f32 = getTextureValue(vTex, tpos);\\n    // right now leave filtering off until WebGL changes get merged\\n    // if (ipRange.z == 0.0 || sample &gt;= ipRange.x &amp;&amp; sample &lt;= ipRange.y)\\n    // {\\n      sumVal = sumVal + sample;\\n    // }\\n    // increment position\\n    curDist = curDist + 1.0;\\n    tpos = tpos + tstep;\\n\\n    // check if we have reached a terminating condition\\n    if (curDist &gt; rayBounds.y) { break; }\\n  }\\n\\n  // process to get the color and opacity\\n  traverseVals[vNum] = getSimpleColor(sumVal, vNum, cNum);\\n}\\n\\nfn composite(rayLengthSC: f32, minPosSC: vec4&lt;f32&gt;, rayStepSC: vec4&lt;f32&gt;) -&gt; vec4&lt;f32&gt;\\n{\\n  // initial ray position is at the beginning\\n  var rayPosSC: vec4&lt;f32&gt; = minPosSC;\\n\\n  // how many rows (tfuns) do we have in our tfunTexture\\n  var tfunRows: f32 = f32(textureDimensions(tfunTexture).y);\\n\\n  var curDist: f32 = 0.0;\\n  var computedColor: vec4&lt;f32&gt; = vec4&lt;f32&gt;(0.0, 0.0, 0.0, 0.0);\\n  var sampleColor: vec4&lt;f32&gt;;\\n  var numSteps: f32 = rayLengthSC/mapperUBO.SampleDistance;\\n//VTK::Volume::TraverseCalls\\n//VTK::Volume::TraverseInit\\n\\n  loop\\n  {\\n    // for each volume, sample and accumulate color\\n//VTK::Volume::CompositeCalls\\n\\n    // increment position\\n    curDist = curDist + mapperUBO.SampleDistance;\\n    rayPosSC = rayPosSC + rayStepSC;\\n\\n    // check if we have reached a terminating condition\\n    if (curDist &gt; rayLengthSC) { break; }\\n    if (computedColor.a &gt; 0.98) { break; }\\n  }\\n  return computedColor;\\n}\\n\\n@fragment\\nfn main(\\n//VTK::IOStructs::Input\\n)\\n//VTK::IOStructs::Output\\n{\\n  var output: fragmentOutput;\\n\\n  var rayMax: f32 = textureSampleLevel(maxTexture, clampSampler, input.tcoordVS, 0.0).r;\\n  var rayMin: f32 = textureSampleLevel(minTexture, clampSampler, input.tcoordVS, 0.0).r;\\n\\n  // discard empty rays\\n  if (rayMax &lt;= rayMin) { discard; }\\n  else\\n  {\\n    // compute start and end ray positions in view coordinates\\n    var minPosSC: vec4&lt;f32&gt; = rendererUBO.PCSCMatrix*vec4&lt;f32&gt;(2.0 * input.tcoordVS.x - 1.0, 1.0 - 2.0 * input.tcoordVS.y, rayMax, 1.0);\\n    minPosSC = minPosSC * (1.0 / minPosSC.w);\\n    var maxPosSC: vec4&lt;f32&gt; = rendererUBO.PCSCMatrix*vec4&lt;f32&gt;(2.0 * input.tcoordVS.x - 1.0, 1.0 - 2.0 * input.tcoordVS.y, rayMin, 1.0);\\n    maxPosSC = maxPosSC * (1.0 / maxPosSC.w);\\n\\n    var rayLengthSC: f32 = distance(minPosSC.xyz, maxPosSC.xyz);\\n    var rayStepSC: vec4&lt;f32&gt; = (maxPosSC - minPosSC)*(mapperUBO.SampleDistance/rayLengthSC);\\n    rayStepSC.w = 0.0;\\n\\n    var computedColor: vec4&lt;f32&gt;;\\n\\n//VTK::Volume::Loop\\n\\n//VTK::RenderEncoder::Impl\\n  }\\n\\n  return output;\\n}\\n`,Lx=new Float64Array(16),Bx=new Float64Array(16);const Fx={volumes:null,rowLength:1024,lastVolumeLength:0};function Nx(e,t,n={}){Object.assign(t,Fx,n),ST.extend(e,t,n),t.fragmentShaderTemplate=Vx,t.UBO=wx.newInstance({label:&quot;mapperUBO&quot;}),t.UBO.addEntry(&quot;SampleDistance&quot;,&quot;f32&quot;),t.SSBO=Dx.newInstance({label:&quot;volumeSSBO&quot;}),t.componentSSBO=Dx.newInstance({label:&quot;componentSSBO&quot;}),t.lutBuildTime={},sn.obj(t.lutBuildTime,{mtime:0}),t.clipPlanes=Array.from({length:6},(()=&gt;[0,0,0,0])),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUVolumePassFSQ&quot;),e.replaceShaderPosition=(e,t,n)=&gt;{const r=t.getShaderDescription(&quot;vertex&quot;);r.addBuiltinOutput(&quot;vec4&lt;f32&gt;&quot;,&quot;@builtin(position) Position&quot;);let o=r.getCode();o=rT.substitute(o,&quot;//VTK::Position::Impl&quot;,[&quot;output.tcoordVS = vec2&lt;f32&gt;(vertexBC.x * 0.5 + 0.5, 1.0 - vertexBC.y * 0.5 - 0.5);&quot;,&quot;output.Position = vec4&lt;f32&gt;(vertexBC, 1.0);&quot;]).result,r.setCode(o),t.getShaderDescription(&quot;fragment&quot;).addBuiltinInput(&quot;vec4&lt;f32&gt;&quot;,&quot;@builtin(position) fragPos&quot;)},t.shaderReplacements.set(&quot;replaceShaderPosition&quot;,e.replaceShaderPosition),e.replaceShaderVolume=(e,n,r)=&gt;{const o=n.getShaderDescription(&quot;fragment&quot;);let a=o.getCode();const i=[],s=[],l=[];for(let e=0;e&lt;t.volumes.length;e++)t.volumes[e].getRenderable().getMapper().getBlendMode()===hg.COMPOSITE_BLEND?(s.push(`  var tpos${e}: vec4&lt;f32&gt; = volumeSSBO.values[${e}].SCTCMatrix*minPosSC;`),s.push(`  var tpos2_${e}: vec4&lt;f32&gt; = volumeSSBO.values[${e}].SCTCMatrix*(minPosSC + rayStepSC);`),s.push(`  var tstep${e}: vec4&lt;f32&gt; = tpos2_${e} - tpos${e};`),s.push(`  var rayBounds${e}: vec2&lt;f32&gt; = intersectRayBoundsWithClipPlanes(${e}, minPosSC, rayStepSC, adjustBounds(tpos${e}, tstep${e}, numSteps));`),i.push(`    if (curDist &gt;= rayBounds${e}.x * mapperUBO.SampleDistance &amp;&amp; curDist &lt;= rayBounds${e}.y * mapperUBO.SampleDistance) {`),i.push(`      sampleColor = processVolume(volTexture${e}, ${e}, ${t.rowStarts[e]}, rayPosSC, tfunRows);`),i.push(&quot;    computedColor = vec4&lt;f32&gt;(\\n          sampleColor.a * sampleColor.rgb * (1.0 - computedColor.a) + computedColor.rgb,\\n          (1.0 - computedColor.a)*sampleColor.a + computedColor.a);&quot;),i.push(&quot;    }&quot;)):(l.push(`  sampleColor = traverseVals[${e}];`),l.push(&quot;  computedColor = vec4&lt;f32&gt;(\\n          sampleColor.a * sampleColor.rgb * (1.0 - computedColor.a) + computedColor.rgb,\\n          (1.0 - computedColor.a)*sampleColor.a + computedColor.a);&quot;));a=rT.substitute(a,&quot;//VTK::Volume::CompositeCalls&quot;,i).result,a=rT.substitute(a,&quot;//VTK::Volume::TraverseCalls&quot;,l).result,a=rT.substitute(a,&quot;//VTK::Volume::TraverseInit&quot;,s).result,a=rT.substitute(a,&quot;//VTK::Volume::TraverseDec&quot;,[`var&lt;private&gt; traverseVals: array&lt;vec4&lt;f32&gt;,${t.volumes.length}&gt;;`]).result;let c=!1;for(let e=0;e&lt;t.volumes.length;e++){const n=t.volumes[e].getRenderable().getMapper().getBlendMode();n===hg.COMPOSITE_BLEND?c=!0:n===hg.MAXIMUM_INTENSITY_BLEND?a=rT.substitute(a,&quot;//VTK::Volume::Loop&quot;,[`    traverseMax(volTexture${e}, ${e}, ${e}, rayLengthSC, minPosSC, rayStepSC);`,`    computedColor = traverseVals[${e}];`,&quot;//VTK::Volume::Loop&quot;]).result:n===hg.MINIMUM_INTENSITY_BLEND?a=rT.substitute(a,&quot;//VTK::Volume::Loop&quot;,[`    traverseMin(volTexture${e}, ${e}, ${e}, rayLengthSC, minPosSC, rayStepSC);`,`    computedColor = traverseVals[${e}];`,&quot;//VTK::Volume::Loop&quot;]).result:n===hg.AVERAGE_INTENSITY_BLEND?a=rT.substitute(a,&quot;//VTK::Volume::Loop&quot;,[`    traverseAverage(volTexture${e}, ${e}, ${e}, rayLengthSC, minPosSC, rayStepSC);`,`    computedColor = traverseVals[${e}];`,&quot;//VTK::Volume::Loop&quot;]).result:n===hg.ADDITIVE_INTENSITY_BLEND&amp;&amp;(a=rT.substitute(a,&quot;//VTK::Volume::Loop&quot;,[`    traverseAdditive(volTexture${e}, ${e}, ${e}, rayLengthSC, minPosSC, rayStepSC);`,`    computedColor = traverseVals[${e}];`,&quot;//VTK::Volume::Loop&quot;]).result)}c&amp;&amp;(a=rT.substitute(a,&quot;//VTK::Volume::Loop&quot;,[&quot;    computedColor = composite(rayLengthSC, minPosSC, rayStepSC);&quot;]).result),o.setCode(a)},t.shaderReplacements.set(&quot;replaceShaderVolume&quot;,e.replaceShaderVolume),e.updateLUTImage=n=&gt;{let r=e.getMTime();for(let e=0;e&lt;t.volumes.length;e++){const n=t.volumes[e].getRenderable(),o=n.getMapper().getInputData();r=Math.max(r,n.getMTime(),o.getMTime())}if(r&lt;t.lutBuildTime.getMTime())return;t.numRows=0,t.rowStarts=[];for(let e=0;e&lt;t.volumes.length;e++){t.rowStarts.push(t.numRows);const n=t.volumes[e].getRenderable(),r=n.getMapper(),o=n.getProperty(),a=r.getInputData(),i=(a.getPointData()&amp;&amp;a.getPointData().getScalars()).getNumberOfComponents(),s=o.getIndependentComponents()?i:1;t.numRows+=s}const o=new Uint8ClampedArray(2*t.numRows*t.rowLength*4),a=new Float32Array(2*t.numRows*t.rowLength);let i=0;const s=new Float32Array(3*t.rowLength),l=t.rowLength;for(let e=0;e&lt;t.volumes.length;e++){const n=t.volumes[e].getRenderable(),r=n.getMapper(),c=n.getProperty(),u=r.getInputData(),d=(u.getPointData()&amp;&amp;u.getPointData().getScalars()).getNumberOfComponents(),p=c.getIndependentComponents()?d:1;for(let e=0;e&lt;p;++e){const n=c.getRGBTransferFunction(e),r=n.getRange();n.getTable(r[0],r[1],l,s,1);let u=i*l*4;for(let e=0;e&lt;l;++e){o[u+4*e]=255*s[3*e],o[u+4*e+1]=255*s[3*e+1],o[u+4*e+2]=255*s[3*e+2],o[u+4*e+3]=255;for(let t=0;t&lt;4;t++)o[u+4*(l+e)+t]=o[u+4*e+t]}const d=c.getScalarOpacity(e),p=t.sampleDist/c.getScalarOpacityUnitDistance(e),f=d.getRange();d.getTable(f[0],f[1],l,s,1),u=i*l;for(let e=0;e&lt;l;++e)a[u+e]=1-(1-s[e])**p,a[u+e+l]=a[u+e];i+=2}}{const e={nativeArray:o,width:t.rowLength,height:2*t.numRows,depth:1,format:&quot;rgba8unorm&quot;},r=n.getTextureManager().getTexture(e).createView(&quot;tfunTexture&quot;);t.textureViews[2]=r}{const e={nativeArray:a,width:t.rowLength,height:2*t.numRows,depth:1,format:&quot;r16float&quot;},r=n.getTextureManager().getTexture(e).createView(&quot;ofunTexture&quot;);t.textureViews[3]=r}t.lutBuildTime.modified()},e.updateSSBO=n=&gt;{let r=Math.max(e.getMTime(),t.WebGPURenderer.getStabilizedTime());for(let e=0;e&lt;t.volumes.length;e++){const n=t.volumes[e].getRenderable(),o=n.getMapper(),a=o.getInputData();r=Math.max(r,n.getMTime(),a.getMTime(),o.getMTime(),o.getClippingPlanesMTime())}if(r&lt;t.SSBO.getSendTime())return;const o=t.WebGPURenderer.getStabilizedCenterByReference();t.SSBO.clearData(),t.SSBO.setNumberOfInstances(t.volumes.length);const a=new Float64Array(16*t.volumes.length),i=new Float64Array(16*t.volumes.length),s=Array.from({length:6},(()=&gt;new Float64Array(4*t.volumes.length))),l=new Float64Array(4*t.volumes.length),c=new Float64Array(4*t.volumes.length),u=new Float64Array(4*t.volumes.length),d=new Float64Array(4*t.volumes.length),p=new Float64Array(4*t.volumes.length);for(let e=0;e&lt;t.volumes.length;e++){const n=t.volumes[e].getRenderable(),r=n.getMapper(),f=r.getInputData();x(Lx),C(Lx,Lx,o);const g=n.getMatrix();y(Bx,g),b(Bx,Bx),A(Lx,Bx,Lx);const m=f.getWorldToIndex();A(Lx,m,Lx);const h=f.getDimensions();x(Bx),S(Bx,Bx,[1/h[0],1/h[1],1/h[2]]),A(Lx,Bx,Lx);for(let t=0;t&lt;16;t++)a[16*e+t]=Lx[t];b(Lx,Lx);for(let t=0;t&lt;4;t++)i[16*e+4*t]=Lx[4*t],i[16*e+4*t+1]=Lx[4*t+1],i[16*e+4*t+2]=Lx[4*t+2],i[16*e+4*t+3]=0;c[4*e]=1/h[0],c[4*e+1]=1/h[1],c[4*e+2]=1/h[2],c[4*e+3]=1,u[4*e]=n.getProperty().getShade()?1:0;const v=f.getSpacing();d[4*e]=v[0],d[4*e+1]=v[1],d[4*e+2]=v[2],d[4*e+3]=1;const T=t.textureViews[e+4].getTexture().getScale(),P=n.getProperty().getIpScalarRange();p[4*e]=P[0]/T,p[4*e+1]=P[1]/T,p[4*e+2]=n.getProperty().getFilterMode(),R(Bx,[-o[0],-o[1],-o[2]]);const w=Ex(r,Bx,t.clipPlanes);l[4*e]=w;for(let n=0;n&lt;w;n++){const r=4*e;s[n][r]=t.clipPlanes[n][0],s[n][r+1]=t.clipPlanes[n][1],s[n][r+2]=t.clipPlanes[n][2],s[n][r+3]=t.clipPlanes[n][3]}}t.SSBO.addEntry(&quot;SCTCMatrix&quot;,&quot;mat4x4&lt;f32&gt;&quot;),t.SSBO.addEntry(&quot;planeNormals&quot;,&quot;mat4x4&lt;f32&gt;&quot;),t.SSBO.addEntry(&quot;shade&quot;,&quot;vec4&lt;f32&gt;&quot;),t.SSBO.addEntry(&quot;tstep&quot;,&quot;vec4&lt;f32&gt;&quot;),t.SSBO.addEntry(&quot;spacing&quot;,&quot;vec4&lt;f32&gt;&quot;),t.SSBO.addEntry(&quot;ipScalarRange&quot;,&quot;vec4&lt;f32&gt;&quot;),function(e,t){for(let n=0;n&lt;6;n++)e.addEntry(`${t}${n}`,&quot;vec4&lt;f32&gt;&quot;)}(t.SSBO,&quot;clipPlane&quot;),t.SSBO.addEntry(&quot;clipPlaneStates&quot;,&quot;vec4&lt;f32&gt;&quot;),t.SSBO.setAllInstancesFromArray(&quot;SCTCMatrix&quot;,a),t.SSBO.setAllInstancesFromArray(&quot;planeNormals&quot;,i),t.SSBO.setAllInstancesFromArray(&quot;shade&quot;,u),t.SSBO.setAllInstancesFromArray(&quot;tstep&quot;,c),t.SSBO.setAllInstancesFromArray(&quot;spacing&quot;,d),t.SSBO.setAllInstancesFromArray(&quot;ipScalarRange&quot;,p);for(let e=0;e&lt;6;e++)t.SSBO.setAllInstancesFromArray(`clipPlane${e}`,s[e]);t.SSBO.setAllInstancesFromArray(&quot;clipPlaneStates&quot;,l),t.SSBO.send(n),t.componentSSBO.clearData(),t.componentSSBO.setNumberOfInstances(t.numRows);const f=new Float64Array(t.numRows),g=new Float64Array(t.numRows),m=new Float64Array(t.numRows),h=new Float64Array(t.numRows),v=new Float64Array(t.numRows),T=new Float64Array(t.numRows),P=new Float64Array(t.numRows),w=new Float64Array(t.numRows);let I=0;for(let e=0;e&lt;t.volumes.length;e++){const n=t.volumes[e].getRenderable(),r=n.getMapper(),o=n.getProperty(),a=r.getInputData(),i=(a.getPointData()&amp;&amp;a.getPointData().getScalars()).getNumberOfComponents(),s=o.getIndependentComponents(),l=t.textureViews[e+4].getTexture().getFormat(),c=gT.getDetailsFromTextureFormat(l),u={scale:[255],offset:[0]};2===c.elementSize&amp;&amp;&quot;float&quot;===c.sampleType&amp;&amp;(u.scale[0]=1);for(let e=0;e&lt;i;e++){const t=s?e:0,n=u.scale[e],r=o.getScalarOpacity(t).getRange(),a=n/(r[1]-r[0]),i=(u.offset[e]-r[0])/(r[1]-r[0]);h[I]=i,m[I]=a;const l=o.getRGBTransferFunction(t).getRange();if(g[I]=(u.offset[e]-l[0])/(l[1]-l[0]),f[I]=n/(l[1]-l[0]),o.getUseGradientOpacity(t)){const e=o.getGradientOpacityMinimumOpacity(t),r=o.getGradientOpacityMaximumOpacity(t);v[I]=e,T[I]=r;const a=[o.getGradientOpacityMinimumValue(t),o.getGradientOpacityMaximumValue(t)];w[I]=n*(r-e)/(a[1]-a[0]),P[I]=-a[0]*(r-e)/(a[1]-a[0])+e}else v[I]=1,T[I]=1,w[I]=0,P[I]=1;I++}}t.componentSSBO.addEntry(&quot;cScale&quot;,&quot;f32&quot;),t.componentSSBO.addEntry(&quot;cShift&quot;,&quot;f32&quot;),t.componentSSBO.addEntry(&quot;oScale&quot;,&quot;f32&quot;),t.componentSSBO.addEntry(&quot;oShift&quot;,&quot;f32&quot;),t.componentSSBO.addEntry(&quot;goShift&quot;,&quot;f32&quot;),t.componentSSBO.addEntry(&quot;goScale&quot;,&quot;f32&quot;),t.componentSSBO.addEntry(&quot;gomin&quot;,&quot;f32&quot;),t.componentSSBO.addEntry(&quot;gomax&quot;,&quot;f32&quot;),t.componentSSBO.setAllInstancesFromArray(&quot;cScale&quot;,f),t.componentSSBO.setAllInstancesFromArray(&quot;cShift&quot;,g),t.componentSSBO.setAllInstancesFromArray(&quot;oScale&quot;,m),t.componentSSBO.setAllInstancesFromArray(&quot;oShift&quot;,h),t.componentSSBO.setAllInstancesFromArray(&quot;goScale&quot;,w),t.componentSSBO.setAllInstancesFromArray(&quot;goShift&quot;,P),t.componentSSBO.setAllInstancesFromArray(&quot;gomin&quot;,v),t.componentSSBO.setAllInstancesFromArray(&quot;gomax&quot;,T),t.componentSSBO.send(n)};const n=e.updateBuffers;e.updateBuffers=()=&gt;{n();let r=t.volumes[0].getRenderable().getMapper().getSampleDistance();for(let e=0;e&lt;t.volumes.length;e++){const n=t.volumes[e].getRenderable().getMapper().getSampleDistance();n&lt;r&amp;&amp;(r=n)}t.sampleDist!==r&amp;&amp;(t.sampleDist=r,t.UBO.setValue(&quot;SampleDistance&quot;,r),t.UBO.sendIfNeeded(t.device));for(let e=0;e&lt;t.volumes.length;e++){const n=t.volumes[e].getRenderable().getMapper().getInputData(),r=t.device.getTextureManager().getTextureForImageData(n);if(!t.textureViews[e+4]||t.textureViews[e+4].getTexture()!==r){const n=r.createView(`volTexture${e}`);t.textureViews[e+4]=n}}if(t.volumes.length&lt;t.lastVolumeLength)for(let e=t.volumes.length;e&lt;t.lastVolumeLength;e++)t.textureViews.pop();t.lastVolumeLength=t.volumes.length,e.updateLUTImage(t.device),e.updateSSBO(t.device),t.clampSampler||(t.clampSampler=DT.newInstance({label:&quot;clampSampler&quot;}),t.clampSampler.create(t.device,{minFilter:&quot;linear&quot;,magFilter:&quot;linear&quot;}))},e.computePipelineHash=()=&gt;{t.pipelineHash=&quot;volfsq&quot;;for(let e=0;e&lt;t.volumes.length;e++){const n=t.volumes[e].getRenderable().getMapper().getBlendMode();t.pipelineHash+=`${n}`}},e.setVolumes=n=&gt;{if(!t.volumes||t.volumes.length!==n.length)return t.volumes=[...n],void e.modified();for(let r=0;r&lt;n.length;r++)if(n[r]!==t.volumes[r])return t.volumes=[...n],void e.modified()};const r=e.getBindables;e.getBindables=()=&gt;{const e=r();return e.push(t.componentSSBO),e.push(t.clampSampler),e}}(e,t)}var kx={newInstance:sn.newInstance(Nx,&quot;vtkWebGPUVolumePassFSQ&quot;),extend:Nx};const{Representation:Gx}=us,{BufferUsage:Ux,PrimitiveTypes:_x}=bx,Kx=[[0,4,6],[0,6,2],[1,3,7],[1,7,5],[0,5,4],[0,1,5],[2,6,7],[2,7,3],[0,3,1],[0,2,3],[4,5,7],[4,7,6]];const zx={colorTextureView:null,depthTextureView:null,volumes:null};function Wx(e,t,n={}){Object.assign(t,zx,n),vv.extend(e,t,n),t._mapper=bT.newInstance(),t._mapper.setFragmentShaderTemplate(&quot;\\n//VTK::Renderer::Dec\\n\\n//VTK::Select::Dec\\n\\n//VTK::VolumePass::Dec\\n\\n//VTK::TCoord::Dec\\n\\n//VTK::RenderEncoder::Dec\\n\\n//VTK::Mapper::Dec\\n\\n//VTK::IOStructs::Dec\\n\\n@fragment\\nfn main(\\n//VTK::IOStructs::Input\\n)\\n//VTK::IOStructs::Output\\n{\\n  var output : fragmentOutput;\\n\\n  //VTK::Select::Impl\\n\\n  //VTK::TCoord::Impl\\n\\n  //VTK::VolumePass::Impl\\n\\n  // use the maximum (closest) of the current value and the zbuffer\\n  // the blend func will then take the min to find the farthest stop value\\n  var stopval: f32 = max(input.fragPos.z, textureLoad(opaquePassDepthTexture, vec2&lt;i32&gt;(i32(input.fragPos.x), i32(input.fragPos.y)), 0));\\n\\n  //VTK::RenderEncoder::Impl\\n  return output;\\n}\\n&quot;),t._mapper.getShaderReplacements().set(&quot;replaceShaderVolumePass&quot;,((e,t,n)=&gt;{t.getShaderDescription(&quot;fragment&quot;).addBuiltinInput(&quot;vec4&lt;f32&gt;&quot;,&quot;@builtin(position) fragPos&quot;)})),t._boundsPoly=Ru.newInstance(),t._lastMTimes=[],sn.setGet(e,t,[&quot;colorTextureView&quot;,&quot;depthTextureView&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUVolumePass&quot;),e.initialize=n=&gt;{t._clearEncoder||e.createClearEncoder(n),t._mergeEncoder||e.createMergeEncoder(n),t._copyEncoder||e.createCopyEncoder(n),t._depthRangeEncoder||e.createDepthRangeEncoder(n),t.fullScreenQuad||(t.fullScreenQuad=kx.newInstance(),t.fullScreenQuad.setDevice(n.getDevice()),t.fullScreenQuad.setTextureViews([...t._depthRangeEncoder.getColorTextureViews()])),t._volumeCopyQuad||(t._volumeCopyQuad=ST.newInstance(),t._volumeCopyQuad.setPipelineHash(&quot;volpassfsq&quot;),t._volumeCopyQuad.setDevice(n.getDevice()),t._volumeCopyQuad.setFragmentShaderTemplate(&quot;\\n//VTK::Renderer::Dec\\n\\n//VTK::Mapper::Dec\\n\\n//VTK::TCoord::Dec\\n\\n//VTK::RenderEncoder::Dec\\n\\n//VTK::IOStructs::Dec\\n\\n@fragment\\nfn main(\\n//VTK::IOStructs::Input\\n)\\n//VTK::IOStructs::Output\\n{\\n  var output: fragmentOutput;\\n\\n  var computedColor: vec4&lt;f32&gt; = textureSample(volumePassColorTexture,\\n    volumePassColorTextureSampler, mapperUBO.tscale*input.tcoordVS);\\n\\n  //VTK::RenderEncoder::Impl\\n  return output;\\n}\\n&quot;),t._copyUBO=wx.newInstance({label:&quot;mapperUBO&quot;}),t._copyUBO.addEntry(&quot;tscale&quot;,&quot;vec2&lt;f32&gt;&quot;),t._volumeCopyQuad.setUBO(t._copyUBO),t._volumeCopyQuad.setTextureViews([t._colorTextureView]))},e.traverse=(n,r)=&gt;{if(t.deleted)return;t._currentParent=r,e.initialize(r),e.computeTiming(r),e.renderDepthBounds(n,r),t._firstGroup=!0;const o=r.getDevice(),a=o.getHandle().limits.maxSampledTexturesPerShaderStage-4;if(t.volumes.length&gt;a){const o=n.getRenderable().getActiveCamera().getPosition(),i=[];for(let e=0;e&lt;t.volumes.length;e++){const n=t.volumes[e].getRenderable().getBounds(),r=[.5*(n[1]+n[0]),.5*(n[3]+n[2]),.5*(n[5]+n[4])];i[e]=Yo(r,o)}const s=[...Array(t.volumes.length).keys()];s.sort(((e,t)=&gt;i[t]-i[e]));let l=[],c=s.length%a;for(let o=0;o&lt;s.length;o++)l.push(t.volumes[s[o]]),l.length&gt;=c&amp;&amp;(e.rayCastPass(r,n,l),l=[],c=a,t._firstGroup=!1)}else e.rayCastPass(r,n,t.volumes);if(t._volumeCopyQuad.setWebGPURenderer(n),t._useSmallViewport){const e=t._colorTextureView.getTexture().getWidth(),n=t._colorTextureView.getTexture().getHeight();t._copyUBO.setArray(&quot;tscale&quot;,[t._smallViewportWidth/e,t._smallViewportHeight/n])}else t._copyUBO.setArray(&quot;tscale&quot;,[1,1]);t._copyUBO.sendIfNeeded(o),t._copyEncoder.setColorTextureView(0,t.colorTextureView),t._copyEncoder.attachTextureViews(),t._copyEncoder.begin(r.getCommandEncoder()),n.scissorAndViewport(t._copyEncoder),t._volumeCopyQuad.prepareAndDraw(t._copyEncoder),t._copyEncoder.end()},e.delete=sn.chain((()=&gt;{t._animationRateSubscription&amp;&amp;(t._animationRateSubscription.unsubscribe(),t._animationRateSubscription=null)}),e.delete),e.computeTiming=e=&gt;{const n=e.getRenderable().getInteractor();if(null==t._lastScale){const e=t.volumes[0].getRenderable().getMapper();t._lastScale=e.getInitialInteractionScale()||1}t._useSmallViewport=!1,n.isAnimating()&amp;&amp;t._lastScale&gt;1.5&amp;&amp;(t._useSmallViewport=!0),t._colorTexture.resize(e.getCanvas().width,e.getCanvas().height),t._animationRateSubscription||(t._animationRateSubscription=n.onAnimationFrameRateUpdate((()=&gt;{const e=t.volumes[0].getRenderable().getMapper();if(e.getAutoAdjustSampleDistances()){const e=n.getRecentAnimationFrameRate(),r=t._lastScale*n.getDesiredUpdateRate()/e;t._lastScale=r,t._lastScale&gt;400&amp;&amp;(t._lastScale=400)}else t._lastScale=e.getImageSampleDistance()*e.getImageSampleDistance();t._lastScale&lt;1.5&amp;&amp;(t._lastScale=1.5)})))},e.rayCastPass=(e,n,r)=&gt;{const o=t._firstGroup?t._clearEncoder:t._mergeEncoder;o.attachTextureViews(),o.begin(e.getCommandEncoder());let a=t._colorTextureView.getTexture().getWidth(),i=t._colorTextureView.getTexture().getHeight();if(t._useSmallViewport){const n=e.getCanvas(),r=1/Math.sqrt(t._lastScale);t._smallViewportWidth=Math.ceil(r*n.width),t._smallViewportHeight=Math.ceil(r*n.height),a=t._smallViewportWidth,i=t._smallViewportHeight}o.getHandle().setViewport(0,0,a,i,0,1),o.getHandle().setScissorRect(0,0,a,i),t.fullScreenQuad.setWebGPURenderer(n),t.fullScreenQuad.setVolumes(r),t.fullScreenQuad.prepareAndDraw(o),o.end()},e.renderDepthBounds=(n,r)=&gt;{e.updateDepthPolyData(n);const o=t._boundsPoly,a=o.getPoints(),i=o.getPolys();let s={hash:`vp${i.getMTime()}`,usage:Ux.Index,cells:i,numberOfPoints:a.getNumberOfPoints(),primitiveType:_x.Triangles,representation:Gx.SURFACE};const l=r.getDevice().getBufferManager().getBuffer(s);t._mapper.getVertexInput().setIndexBuffer(l),s={usage:Ux.PointArray,format:&quot;float32x4&quot;,hash:`vp${a.getMTime()}${i.getMTime()}`,dataArray:a,indexBuffer:l,packExtra:!0};const c=r.getDevice().getBufferManager().getBuffer(s);t._mapper.getVertexInput().addBuffer(c,[&quot;vertexBC&quot;]),t._mapper.setNumberOfVertices(c.getSizeInBytes()/c.getStrideInBytes()),e.drawDepthRange(n,r)},e.updateDepthPolyData=e=&gt;{let n=!1;for(let e=0;e&lt;t.volumes.length;e++){const r=t.volumes[e].getMTime();t._lastMTimes[e]&amp;&amp;r===t._lastMTimes[e]||(n=!0,t._lastMTimes[e]=r)}const r=e.getStabilizedTime();if((t._lastMTimes.length&lt;=t.volumes.length||r!==t._lastMTimes[t.volumes.length])&amp;&amp;(n=!0,t._lastMTimes[t.volumes.length]=r),!n)return;const o=e.getStabilizedCenterByReference(),a=8*t.volumes.length,i=new Float64Array(3*a),s=12*t.volumes.length,l=new Uint16Array(4*s);for(let e=0;e&lt;t.volumes.length;e++){t.volumes[e].getBoundingCubePoints(i,24*e);let n=12*e*4;const r=8*e;for(let e=0;e&lt;12;e++)l[n++]=3,l[n++]=r+Kx[e][0],l[n++]=r+Kx[e][1],l[n++]=r+Kx[e][2]}for(let e=0;e&lt;i.length;e+=3)i[e]-=o[0],i[e+1]-=o[1],i[e+2]-=o[2];t._boundsPoly.getPoints().setData(i,3),t._boundsPoly.getPoints().modified(),t._boundsPoly.getPolys().setData(l,1),t._boundsPoly.getPolys().modified(),t._boundsPoly.modified()},e.drawDepthRange=(n,r)=&gt;{t._depthRangeTexture.resizeToMatch(t.colorTextureView.getTexture()),t._depthRangeTexture2.resizeToMatch(t.colorTextureView.getTexture()),t._depthRangeEncoder.attachTextureViews(),e.setCurrentOperation(&quot;volumeDepthRangePass&quot;),n.setRenderEncoder(t._depthRangeEncoder),n.volumeDepthRangePass(!0),t._mapper.setWebGPURenderer(n),t._mapper.prepareToDraw(t._depthRangeEncoder),t._mapper.registerDrawCallback(t._depthRangeEncoder),n.volumeDepthRangePass(!1)},e.createDepthRangeEncoder=e=&gt;{const n=e.getDevice();t._depthRangeEncoder=OT.newInstance({label:&quot;VolumePass DepthRange&quot;}),t._depthRangeEncoder.setPipelineHash(&quot;volr&quot;),t._depthRangeEncoder.setReplaceShaderCodeFunction((e=&gt;{const t=e.getShaderDescription(&quot;fragment&quot;);t.addOutput(&quot;vec4&lt;f32&gt;&quot;,&quot;outColor1&quot;),t.addOutput(&quot;vec4&lt;f32&gt;&quot;,&quot;outColor2&quot;);let n=t.getCode();n=rT.substitute(n,&quot;//VTK::RenderEncoder::Impl&quot;,[&quot;output.outColor1 = vec4&lt;f32&gt;(input.fragPos.z, 0.0, 0.0, 0.0);&quot;,&quot;output.outColor2 = vec4&lt;f32&gt;(stopval, 0.0, 0.0, 0.0);&quot;]).result,t.setCode(n)})),t._depthRangeEncoder.setDescription({colorAttachments:[{view:null,clearValue:[0,0,0,0],loadOp:&quot;clear&quot;,storeOp:&quot;store&quot;},{view:null,clearValue:[1,1,1,1],loadOp:&quot;clear&quot;,storeOp:&quot;store&quot;}]}),t._depthRangeEncoder.setPipelineSettings({primitive:{cullMode:&quot;none&quot;},fragment:{targets:[{format:&quot;r16float&quot;,blend:{color:{srcFactor:&quot;one&quot;,dstFactor:&quot;one&quot;,operation:&quot;max&quot;},alpha:{srcFactor:&quot;one&quot;,dstFactor:&quot;one&quot;,operation:&quot;max&quot;}}},{format:&quot;r16float&quot;,blend:{color:{srcFactor:&quot;one&quot;,dstFactor:&quot;one&quot;,operation:&quot;min&quot;},alpha:{srcFactor:&quot;one&quot;,dstFactor:&quot;one&quot;,operation:&quot;min&quot;}}}]}}),t._depthRangeTexture=GT.newInstance({label:&quot;volumePassMaxDepth&quot;}),t._depthRangeTexture.create(n,{width:e.getCanvas().width,height:e.getCanvas().height,format:&quot;r16float&quot;,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING});const r=t._depthRangeTexture.createView(&quot;maxTexture&quot;);t._depthRangeEncoder.setColorTextureView(0,r),t._depthRangeTexture2=GT.newInstance({label:&quot;volumePassDepthMin&quot;}),t._depthRangeTexture2.create(n,{width:e.getCanvas().width,height:e.getCanvas().height,format:&quot;r16float&quot;,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING});const o=t._depthRangeTexture2.createView(&quot;minTexture&quot;);t._depthRangeEncoder.setColorTextureView(1,o),t._mapper.setDevice(e.getDevice()),t._mapper.setTextureViews([t.depthTextureView])},e.createClearEncoder=e=&gt;{t._colorTexture=GT.newInstance({label:&quot;volumePassColor&quot;}),t._colorTexture.create(e.getDevice(),{width:e.getCanvas().width,height:e.getCanvas().height,format:&quot;bgra8unorm&quot;,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC}),t._colorTextureView=t._colorTexture.createView(&quot;volumePassColorTexture&quot;),t._colorTextureView.addSampler(e.getDevice(),{minFilter:&quot;linear&quot;,magFilter:&quot;linear&quot;}),t._clearEncoder=OT.newInstance({label:&quot;VolumePass Clear&quot;}),t._clearEncoder.setColorTextureView(0,t._colorTextureView),t._clearEncoder.setDescription({colorAttachments:[{view:null,clearValue:[0,0,0,0],loadOp:&quot;clear&quot;,storeOp:&quot;store&quot;}]}),t._clearEncoder.setPipelineHash(&quot;volpf&quot;),t._clearEncoder.setPipelineSettings({primitive:{cullMode:&quot;none&quot;},fragment:{targets:[{format:&quot;bgra8unorm&quot;,blend:{color:{srcFactor:&quot;src-alpha&quot;,dstFactor:&quot;one-minus-src-alpha&quot;},alpha:{srcFactor:&quot;one&quot;,dstFactor:&quot;one-minus-src-alpha&quot;}}}]}})},e.createCopyEncoder=e=&gt;{t._copyEncoder=OT.newInstance({label:&quot;volumePassCopy&quot;}),t._copyEncoder.setDescription({colorAttachments:[{view:null,loadOp:&quot;load&quot;,storeOp:&quot;store&quot;}]}),t._copyEncoder.setPipelineHash(&quot;volcopypf&quot;),t._copyEncoder.setPipelineSettings({primitive:{cullMode:&quot;none&quot;},fragment:{targets:[{format:&quot;rgba16float&quot;,blend:{color:{srcFactor:&quot;one&quot;,dstFactor:&quot;one-minus-src-alpha&quot;},alpha:{srcFactor:&quot;one&quot;,dstFactor:&quot;one-minus-src-alpha&quot;}}}]}})},e.createMergeEncoder=e=&gt;{t._mergeEncoder=OT.newInstance({label:&quot;volumePassMerge&quot;}),t._mergeEncoder.setColorTextureView(0,t._colorTextureView),t._mergeEncoder.setDescription({colorAttachments:[{view:null,loadOp:&quot;load&quot;,storeOp:&quot;store&quot;}]}),t._mergeEncoder.setReplaceShaderCodeFunction((e=&gt;{const t=e.getShaderDescription(&quot;fragment&quot;);t.addOutput(&quot;vec4&lt;f32&gt;&quot;,&quot;outColor&quot;);let n=t.getCode();n=rT.substitute(n,&quot;//VTK::RenderEncoder::Impl&quot;,[&quot;output.outColor = vec4&lt;f32&gt;(computedColor.rgb, computedColor.a);&quot;]).result,t.setCode(n)})),t._mergeEncoder.setPipelineHash(&quot;volpf&quot;),t._mergeEncoder.setPipelineSettings({primitive:{cullMode:&quot;none&quot;},fragment:{targets:[{format:&quot;bgra8unorm&quot;,blend:{color:{srcFactor:&quot;src-alpha&quot;,dstFactor:&quot;one-minus-src-alpha&quot;},alpha:{srcFactor:&quot;one&quot;,dstFactor:&quot;one-minus-src-alpha&quot;}}}]}})},e.setVolumes=n=&gt;{if(!t.volumes||t.volumes.length!==n.length)return t.volumes=[...n],void e.modified();for(let r=0;r&lt;n.length;r++)if(n[r]!==t.volumes[r])return t.volumes=[...n],void e.modified()}}(e,t)}var Hx={newInstance:sn.newInstance(Wx,&quot;vtkWebGPUVolumePass&quot;),extend:Wx};const jx={opaqueActorCount:0,translucentActorCount:0,volumes:null,opaqueRenderEncoder:null,translucentPass:null,volumePass:null};function Xx(e,t,n={}){Object.assign(t,jx,n),vv.extend(e,t,n),sn.setGet(e,t,[&quot;opaquePass&quot;,&quot;translucentPass&quot;,&quot;volumePass&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkForwardPass&quot;),e.traverse=(n,r=null)=&gt;{if(t.deleted)return;t._currentParent=r,e.setCurrentOperation(&quot;buildPass&quot;),n.traverse(e),t.opaquePass||(t.opaquePass=KT.newInstance());const o=n.getRenderable().getNumberOfLayers(),a=n.getChildren();for(let r=0;r&lt;o;r++)for(let o=0;o&lt;a.length;o++){const i=a[o],s=n.getRenderable().getRenderers()[o];s.getDraw()&amp;&amp;s.getLayer()===r&amp;&amp;(t.opaqueActorCount=0,t.translucentActorCount=0,t.volumes=[],e.setCurrentOperation(&quot;queryPass&quot;),i.traverse(e),e.setCurrentOperation(&quot;cameraPass&quot;),i.traverse(e),t.opaquePass.traverse(i,n),t.translucentActorCount&gt;0&amp;&amp;(t.translucentPass||(t.translucentPass=HT.newInstance()),t.translucentPass.setColorTextureView(t.opaquePass.getColorTextureView()),t.translucentPass.setDepthTextureView(t.opaquePass.getDepthTextureView()),t.translucentPass.traverse(i,n)),t.volumes.length&gt;0&amp;&amp;(t.volumePass||(t.volumePass=Hx.newInstance()),t.volumePass.setColorTextureView(t.opaquePass.getColorTextureView()),t.volumePass.setDepthTextureView(t.opaquePass.getDepthTextureView()),t.volumePass.setVolumes(t.volumes),t.volumePass.traverse(i,n)),e.finalPass(n,i))}},e.finalPass=(n,r)=&gt;{t._finalBlitEncoder||e.createFinalBlitEncoder(n),t._finalBlitOutputTextureView.createFromTextureHandle(n.getCurrentTexture(),{depth:1,format:n.getPresentationFormat()}),t._finalBlitEncoder.attachTextureViews(),t._finalBlitEncoder.begin(n.getCommandEncoder()),r.scissorAndViewport(t._finalBlitEncoder),t._fullScreenQuad.prepareAndDraw(t._finalBlitEncoder),t._finalBlitEncoder.end()},e.createFinalBlitEncoder=e=&gt;{t._finalBlitEncoder=OT.newInstance({label:&quot;forwardPassBlit&quot;}),t._finalBlitEncoder.setDescription({colorAttachments:[{view:null,loadOp:&quot;load&quot;,storeOp:&quot;store&quot;}]}),t._finalBlitEncoder.setPipelineHash(&quot;fpf&quot;),t._finalBlitEncoder.setPipelineSettings({primitive:{cullMode:&quot;none&quot;},fragment:{targets:[{format:e.getPresentationFormat(),blend:{color:{srcFactor:&quot;src-alpha&quot;,dstFactor:&quot;one-minus-src-alpha&quot;},alpha:{srcFactor:&quot;one&quot;,dstFactor:&quot;one-minus-src-alpha&quot;}}}]}}),t._fsqSampler=DT.newInstance({label:&quot;finalPassSampler&quot;}),t._fsqSampler.create(e.getDevice(),{minFilter:&quot;linear&quot;,magFilter:&quot;linear&quot;}),t._fullScreenQuad=ST.newInstance(),t._fullScreenQuad.setDevice(e.getDevice()),t._fullScreenQuad.setPipelineHash(&quot;fpfsq&quot;),t._fullScreenQuad.setTextureViews([t.opaquePass.getColorTextureView()]),t._fullScreenQuad.setAdditionalBindables([t._fsqSampler]),t._fullScreenQuad.setFragmentShaderTemplate(&quot;\\n//VTK::Mapper::Dec\\n\\n//VTK::TCoord::Dec\\n\\n//VTK::RenderEncoder::Dec\\n\\n//VTK::IOStructs::Dec\\n\\n@fragment\\nfn main(\\n//VTK::IOStructs::Input\\n)\\n//VTK::IOStructs::Output\\n{\\n  var output: fragmentOutput;\\n\\n  var computedColor: vec4&lt;f32&gt; = clamp(textureSampleLevel(opaquePassColorTexture, finalPassSampler, input.tcoordVS, 0.0),vec4&lt;f32&gt;(0.0),vec4&lt;f32&gt;(1.0));\\n\\n  //VTK::RenderEncoder::Impl\\n  return output;\\n}\\n&quot;),t._finalBlitOutputTextureView=LT.newInstance(),t._finalBlitEncoder.setColorTextureView(0,t._finalBlitOutputTextureView)},e.incrementOpaqueActorCount=()=&gt;t.opaqueActorCount++,e.incrementTranslucentActorCount=()=&gt;t.translucentActorCount++,e.addVolume=e=&gt;{t.volumes.push(e)}}(e,t)}var qx={newInstance:sn.newInstance(Xx,&quot;vtkForwardPass&quot;),extend:Xx};const{VtkDataTypes:Yx}=Is;const Jx={handle:null,device:null};function Zx(e,t,n={}){Object.assign(t,Jx,n),sn.obj(e,t),sn.setGet(e,t,[&quot;device&quot;]),function(e,t){function n(e){if(e.imageData){e.dataArray=e.imageData.getPointData().getScalars(),e.time=e.dataArray.getMTime(),e.nativeArray=e.dataArray.getData();const t=e.imageData.getDimensions();switch(e.width=t[0],e.height=t[1],e.depth=t[2],e.dataArray.getNumberOfComponents()){case 1:e.format=&quot;r&quot;;break;case 2:e.format=&quot;rg&quot;;break;default:e.format=&quot;rgba&quot;}switch(e.dataArray.getDataType()){case Yx.UNSIGNED_CHAR:e.format+=&quot;8unorm&quot;;break;case Yx.FLOAT:case Yx.UNSIGNED_INT:case Yx.INT:case Yx.DOUBLE:case Yx.UNSIGNED_SHORT:case Yx.SHORT:default:e.format+=&quot;16float&quot;}}e.image&amp;&amp;(e.width=e.image.width,e.height=e.image.height,e.depth=1,e.format=&quot;rgba8unorm&quot;,e.flip=!0,e.usage=GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.RENDER_ATTACHMENT),e.jsImageData&amp;&amp;(e.width=e.jsImageData.width,e.height=e.jsImageData.height,e.depth=1,e.format=&quot;rgba8unorm&quot;,e.flip=!0,e.nativeArray=e.jsImageData.data,e.usage=GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.RENDER_ATTACHMENT),e.imageBitmap&amp;&amp;(e.width=e.imageBitmap.width,e.height=e.imageBitmap.height,e.depth=1,e.format=&quot;rgba8unorm&quot;,e.flip=!0,e.usage=GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.RENDER_ATTACHMENT),e.canvas&amp;&amp;(e.width=e.canvas.width,e.height=e.canvas.height,e.depth=1,e.format=&quot;rgba8unorm&quot;,e.flip=!0,e.usage=GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.RENDER_ATTACHMENT)}function r(e){const n=GT.newInstance({label:e.label});return n.create(t.device,{width:e.width,height:e.height,depth:e.depth,format:e.format,usage:e.usage,mipLevel:e.mipLevel}),(e.nativeArray||e.image||e.canvas||e.imageBitmap)&amp;&amp;n.writeImageData(e),n}t.classHierarchy.push(&quot;vtkWebGPUTextureManager&quot;),e.getTexture=e=&gt;e.hash?t.device.getCachedObject(e.hash,r,e):r(e),e.getTextureForImageData=e=&gt;{const r={time:e.getMTime()};return r.imageData=e,n(r),r.hash=r.time+r.format+r.mipLevel,t.device.getTextureManager().getTexture(r)},e.getTextureForVTKTexture=(e,r=void 0)=&gt;{const o={time:e.getMTime(),label:r};return e.getInputData()?o.imageData=e.getInputData():e.getImage()?o.image=e.getImage():e.getJsImageData()?o.jsImageData=e.getJsImageData():e.getImageBitmap()?o.imageBitmap=e.getImageBitmap():e.getCanvas()&amp;&amp;(o.canvas=e.getCanvas()),n(o),o.mipLevel=e.getMipLevel(),o.hash=o.time+o.format+o.mipLevel,t.device.getTextureManager().getTexture(o)}}(e,t)}var Qx={newInstance:sn.newInstance(Zx),extend:Zx};class $x extends Map{constructor(){super(),this.registry=new FinalizationRegistry((e=&gt;{const t=super.get(e);t&amp;&amp;t.deref&amp;&amp;void 0===t.deref()&amp;&amp;super.delete(e)}))}getValue(e){const t=super.get(e);if(t){const n=t.deref();if(void 0!==n)return n;super.delete(e)}}setValue(e,t){let n;return t&amp;&amp;&quot;object&quot;==typeof t&amp;&amp;(n=new WeakRef(t),this.registry.register(t,e),super.set(e,n)),n}}const ey={handle:null,pipelines:null,shaderCache:null,bindGroupLayouts:null,bufferManager:null,textureManager:null};function ty(e,t,n={}){Object.assign(t,ey,n),Vt(e,t),Gt(e,t,[&quot;handle&quot;]),Bt(e,t,[&quot;bufferManager&quot;,&quot;shaderCache&quot;,&quot;textureManager&quot;]),t.objectCache=new $x,t.shaderCache=rT.newInstance(),t.shaderCache.setDevice(e),t.bindGroupLayouts=[],t.bufferManager=bx.newInstance(),t.bufferManager.setDevice(e),t.textureManager=Qx.newInstance(),t.textureManager.setDevice(e),t.pipelines={},function(e,t){t.classHierarchy.push(&quot;vtkWebGPUDevice&quot;),e.initialize=e=&gt;{t.handle=e},e.createCommandEncoder=()=&gt;t.handle.createCommandEncoder(),e.submitCommandEncoder=e=&gt;{t.handle.queue.submit([e.finish()])},e.getShaderModule=e=&gt;t.shaderCache.getShaderModule(e),e.getBindGroupLayout=e=&gt;{if(!e.entries)return null;for(let t=0;t&lt;e.entries.length;t++){const n=e.entries[t];n.binding=n.binding||0,n.visibility=n.visibility||GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT}const n=JSON.stringify(e);for(let e=0;e&lt;t.bindGroupLayouts.length;e++)if(t.bindGroupLayouts[e].sval===n)return t.bindGroupLayouts[e].layout;const r=t.handle.createBindGroupLayout(e);return t.bindGroupLayouts.push({sval:n,layout:r}),r},e.getBindGroupLayoutDescription=e=&gt;{for(let n=0;n&lt;t.bindGroupLayouts.length;n++)if(t.bindGroupLayouts[n].layout===e)return t.bindGroupLayouts[n].sval;return vtkErrorMacro(&quot;layout not found&quot;),console.trace(),null},e.getPipeline=e=&gt;e in t.pipelines?t.pipelines[e]:null,e.createPipeline=(n,r)=&gt;{r.initialize(e,n),t.pipelines[n]=r},e.onSubmittedWorkDone=()=&gt;t.handle.queue.onSubmittedWorkDone(),e.hasCachedObject=e=&gt;t.objectCache.getValue(e),e.getCachedObject=(e,n,...r)=&gt;{if(!e)return vtkErrorMacro(&quot;attempt to cache an object without a hash&quot;),null;const o=t.objectCache.getValue(e);if(o)return o;const a=n(...r);return t.objectCache.setValue(e,a),a}}(e,t)}var ny={newInstance:Xt(ty,&quot;vtkWebGPUDevice&quot;),extend:ty};const ry={selectionRenderEncoder:null,colorTexture:null,depthTexture:null};function oy(e,t,n={}){Object.assign(t,ry,n),vv.extend(e,t,n),sn.get(e,t,[&quot;colorTexture&quot;,&quot;depthTexture&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUHardwareSelectionPass&quot;),e.traverse=(n,r)=&gt;{if(t.deleted)return;t._currentParent=null,e.setCurrentOperation(&quot;buildPass&quot;),n.traverse(e);const o=n.getDevice();if(t.selectionRenderEncoder)t.colorTexture.resize(n.getCanvas().width,n.getCanvas().height),t.depthTexture.resizeToMatch(t.colorTexture);else{e.createRenderEncoder(),t.colorTexture=GT.newInstance({label:&quot;hardwareSelectorColor&quot;}),t.colorTexture.create(o,{width:n.getCanvas().width,height:n.getCanvas().height,format:&quot;rgba32uint&quot;,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_SRC});const r=t.colorTexture.createView(&quot;hardwareSelectColorTexture&quot;);t.selectionRenderEncoder.setColorTextureView(0,r),t.depthTexture=GT.newInstance({label:&quot;hardwareSelectorDepth&quot;}),t.depthTexture.create(o,{width:n.getCanvas().width,height:n.getCanvas().height,format:&quot;depth32float&quot;,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_SRC});const a=t.depthTexture.createView(&quot;hardwareSelectDepthTexture&quot;);t.selectionRenderEncoder.setDepthTextureView(a)}t.selectionRenderEncoder.attachTextureViews(),r.setRenderEncoder(t.selectionRenderEncoder),e.setCurrentOperation(&quot;cameraPass&quot;),r.traverse(e),e.setCurrentOperation(&quot;opaquePass&quot;),r.traverse(e)},e.createRenderEncoder=()=&gt;{t.selectionRenderEncoder=OT.newInstance({label:&quot;HardwareSelectionPass&quot;}),t.selectionRenderEncoder.setPipelineHash(&quot;sel&quot;),t.selectionRenderEncoder.setReplaceShaderCodeFunction((e=&gt;{const t=e.getShaderDescription(&quot;fragment&quot;);t.addOutput(&quot;vec4&lt;u32&gt;&quot;,&quot;outColor&quot;);let n=t.getCode();n=rT.substitute(n,&quot;//VTK::RenderEncoder::Impl&quot;,[&quot;output.outColor = vec4&lt;u32&gt;(mapperUBO.PropID, compositeID, 0u, 0u);&quot;]).result,t.setCode(n)})),t.selectionRenderEncoder.getDescription().colorAttachments[0].clearValue=[0,0,0,0],t.selectionRenderEncoder.setPipelineSettings({primitive:{cullMode:&quot;none&quot;},depthStencil:{depthWriteEnabled:!0,depthCompare:&quot;greater&quot;,format:&quot;depth32float&quot;},fragment:{targets:[{format:&quot;rgba32uint&quot;,blend:void 0}]}})}}(e,t)}var ay={newInstance:sn.newInstance(oy,&quot;vtkWebGPUHardwareSelectionPass&quot;),extend:oy};const{SelectionContent:iy,SelectionField:sy}=zp,{FieldAssociations:ly}=Qs,{vtkErrorMacro:cy}=sn;function uy(e){return`${e.propID} ${e.compositeID}`}function dy(e,t,n,r){const o=4*((n.height-t-1)*n.colorBufferWidth+e)+r;return n.colorValues[o]}function py(e,t,n,r){const o=n&lt;0?0:n;if(0===o){if(r[0]=t[0],r[1]=t[1],t[0]&lt;0||t[0]&gt;=e.width||t[1]&lt;0||t[1]&gt;=e.height)return null;const n=dy(t[0],t[1],e,0);if(n&lt;=0)return null;const o={};o.propID=n;let a=dy(t[0],t[1],e,1);if((a&lt;0||a&gt;16777215)&amp;&amp;(a=0),o.compositeID=a,e.captureZValues){const n=(e.height-t[1]-1)*e.zbufferBufferWidth+t[0];o.zValue=e.depthValues[n],o.zValue=e.webGPURenderer.convertToOpenGLDepth(o.zValue),o.displayPosition=t}return o}const a=[t[0],t[1]],i=[0,0];let s=py(e,t,0,r);if(s)return s;for(let t=1;t&lt;o;++t){for(let n=a[1]&gt;t?a[1]-t:0;n&lt;=a[1]+t;++n){if(i[1]=n,a[0]&gt;=t&amp;&amp;(i[0]=a[0]-t,s=py(e,i,0,r),s))return s;if(i[0]=a[0]+t,s=py(e,i,0,r),s)return s}for(let n=a[0]&gt;=t?a[0]-(t-1):0;n&lt;=a[0]+(t-1);++n){if(i[0]=n,a[1]&gt;=t&amp;&amp;(i[1]=a[1]-t,s=py(e,i,0,r),s))return s;if(i[1]=a[1]+t,s=py(e,i,0,r),s)return s}}return r[0]=t[0],r[1]=t[1],null}function fy(e,t,n,r,o){const a=Math.floor(t),i=Math.floor(n),s=Math.floor(r),l=Math.floor(o),c=new Map,u=[0,0];for(let t=i;t&lt;=l;t++)for(let n=a;n&lt;=s;n++){const r=py(e,[n,t],0,u);if(r){const t=uy(r);if(c.has(t)){const n=c.get(t);n.pixelCount++,e.captureZValues&amp;&amp;r.zValue&lt;n.info.zValue&amp;&amp;(n.info=r),-1===n.attributeIDs.indexOf(r.attributeID)&amp;&amp;n.attributeIDs.push(r.attributeID)}else c.set(t,{info:r,pixelCount:1,attributeIDs:[r.attributeID]})}}return function(e,t,n){const r=[];let o=0;return t.forEach(((t,a)=&gt;{const i=zp.newInstance();switch(i.setContentType(iy.INDICES),e){case ly.FIELD_ASSOCIATION_CELLS:i.setFieldType(sy.CELL);break;case ly.FIELD_ASSOCIATION_POINTS:i.setFieldType(sy.POINT);break;default:cy(&quot;Unknown field association&quot;)}i.getProperties().propID=t.info.propID;const s=n.webGPURenderer.getPropFromID(t.info.propID);i.getProperties().prop=s.getRenderable(),i.getProperties().compositeID=t.info.compositeID,i.getProperties().pixelCount=t.pixelCount,n.captureZValues&amp;&amp;(i.getProperties().displayPosition=[t.info.displayPosition[0],t.info.displayPosition[1],t.info.zValue],i.getProperties().worldPosition=n.webGPURenderWindow.displayToWorld(t.info.displayPosition[0],t.info.displayPosition[1],t.info.zValue,n.renderer)),i.setSelectionList(t.attributeIDs),r[o]=i,o++})),r}(e.fieldAssociation,c,e)}const gy={};function my(e,t,n={}){Object.assign(t,gy,n),Fp.extend(e,t,n),t._selectionPass=ay.newInstance(),sn.setGet(e,t,[&quot;_WebGPURenderWindow&quot;]),sn.moveToProtected(e,t,[&quot;WebGPURenderWindow&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUHardwareSelector&quot;),e.endSelection=()=&gt;{t.WebGPURenderer.setSelector(null)},e.getSourceDataAsync=async e=&gt;{if(!e||!t._WebGPURenderWindow)return cy(&quot;Renderer and view must be set before calling Select.&quot;),!1;t._WebGPURenderWindow.getRenderable().preRender(),t._WebGPURenderWindow.getInitialized()||(t._WebGPURenderWindow.initialize(),await new Promise((e=&gt;{t._WebGPURenderWindow.onInitialized(e)})));const n=t._WebGPURenderWindow.getViewNodeFor(e);if(!n)return!1;const r=n.getSuppressClear();n.setSuppressClear(!0),t._selectionPass.traverse(t._WebGPURenderWindow,n),n.setSuppressClear(r);const o=t._WebGPURenderWindow.getDevice(),a=t._selectionPass.getColorTexture(),i=t._selectionPass.getDepthTexture(),s={area:[0,0,a.getWidth()-1,a.getHeight()-1],captureZValues:t.captureZValues,fieldAssociation:t.fieldAssociation,renderer:e,webGPURenderer:n,webGPURenderWindow:t._WebGPURenderWindow,width:a.getWidth(),height:a.getHeight()};s.colorBufferWidth=16*Math.floor((s.width+15)/16),s.colorBufferSizeInBytes=s.colorBufferWidth*s.height*4*4;const l=ZT.newInstance({label:&quot;hardwareSelectColorBuffer&quot;});l.setDevice(o),l.create(s.colorBufferSizeInBytes,GPUBufferUsage.MAP_READ|GPUBufferUsage.COPY_DST);const c=t._WebGPURenderWindow.getCommandEncoder();let u;c.copyTextureToBuffer({texture:a.getHandle()},{buffer:l.getHandle(),bytesPerRow:16*s.colorBufferWidth,rowsPerImage:s.height},{width:s.width,height:s.height,depthOrArrayLayers:1}),t.captureZValues&amp;&amp;(s.zbufferBufferWidth=64*Math.floor((s.width+63)/64),u=ZT.newInstance({label:&quot;hardwareSelectDepthBuffer&quot;}),u.setDevice(o),s.zbufferSizeInBytes=s.height*s.zbufferBufferWidth*4,u.create(s.zbufferSizeInBytes,GPUBufferUsage.MAP_READ|GPUBufferUsage.COPY_DST),c.copyTextureToBuffer({texture:i.getHandle(),aspect:&quot;depth-only&quot;},{buffer:u.getHandle(),bytesPerRow:4*s.zbufferBufferWidth,rowsPerImage:s.height},{width:s.width,height:s.height,depthOrArrayLayers:1})),o.submitCommandEncoder(c);const d=l.mapAsync(GPUMapMode.READ);if(t.captureZValues){const e=u.mapAsync(GPUMapMode.READ);await Promise.all([d,e]),s.depthValues=new Float32Array(u.getMappedRange().slice()),u.unmap()}else await d;return s.colorValues=new Uint32Array(l.getMappedRange().slice()),l.unmap(),s.generateSelection=(e,t,n,r)=&gt;fy(s,e,t,n,r),s}}(e,t)}var hy={newInstance:sn.newInstance(my,&quot;vtkWebGPUHardwareSelector&quot;),extend:my};const vy=Object.create(null);const Ty={};function xy(e,t,n={}){Object.assign(t,Ty,n),t.overrides=vy,mn.extend(e,t,n),function(e,t){t.classHierarchy.push(&quot;vtkWebGPUViewNodeFactory&quot;)}(0,t)}var yy={newInstance:sn.newInstance(xy,&quot;vtkWebGPUViewNodeFactory&quot;),extend:xy};const{vtkErrorMacro:by}=sn,Ay={position:&quot;absolute&quot;,top:0,left:0,width:&quot;100%&quot;,height:&quot;100%&quot;};function Cy(e,t){t.classHierarchy.push(&quot;vtkWebGPURenderWindow&quot;),e.getViewNodeFactory=()=&gt;t.myFactory;const n=[0,0];e.onModified((function(){t.renderable&amp;&amp;(t.size[0]===n[0]&amp;&amp;t.size[1]===n[1]||(n[0]=t.size[0],n[1]=t.size[1],t.canvas.setAttribute(&quot;width&quot;,t.size[0]),t.canvas.setAttribute(&quot;height&quot;,t.size[1]),e.recreateSwapChain())),t.viewStream&amp;&amp;t.viewStream.setSize(t.size[0],t.size[1]),t.canvas.style.display=t.useOffScreen?&quot;none&quot;:&quot;block&quot;,t.el&amp;&amp;(t.el.style.cursor=t.cursorVisibility?t.cursor:&quot;none&quot;),t.containerSize=null})),e.recreateSwapChain=()=&gt;{t.context&amp;&amp;(t.context.unconfigure(),t.presentationFormat=navigator.gpu.getPreferredCanvasFormat(t.adapter),t.context.configure({device:t.device.getHandle(),format:t.presentationFormat,alphaMode:&quot;premultiplied&quot;,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_DST,width:t.size[0],height:t.size[1]}),t._configured=!0)},e.getCurrentTexture=()=&gt;t.context.getCurrentTexture(),e.buildPass=n=&gt;{if(n){if(!t.renderable)return;e.prepareNodes(),e.addMissingNodes(t.renderable.getRenderersByReference()),e.removeUnusedNodes(),e.initialize()}else t.initialized&amp;&amp;(t._configured||e.recreateSwapChain(),t.commandEncoder=t.device.createCommandEncoder())},e.initialize=()=&gt;{if(!t.initializing){if(t.initializing=!0,!navigator.gpu)return void by(&quot;WebGPU is not enabled.&quot;);e.create3DContextAsync().then((()=&gt;{t.initialized=!0,t.deleted||e.invokeInitialized()}))}},e.setContainer=n=&gt;{t.el&amp;&amp;t.el!==n&amp;&amp;(t.canvas.parentNode!==t.el&amp;&amp;by(&quot;Error: canvas parent node does not match container&quot;),t.el.removeChild(t.canvas),t.el.contains(t.bgImage)&amp;&amp;t.el.removeChild(t.bgImage)),t.el!==n&amp;&amp;(t.el=n,t.el&amp;&amp;(t.el.appendChild(t.canvas),t.useBackgroundImage&amp;&amp;t.el.appendChild(t.bgImage)),e.modified())},e.getContainer=()=&gt;t.el,e.getContainerSize=()=&gt;{if(!t.containerSize&amp;&amp;t.el){const{width:e,height:n}=t.el.getBoundingClientRect();t.containerSize=[e,n]}return t.containerSize||t.size},e.getFramebufferSize=()=&gt;t.size,e.create3DContextAsync=async()=&gt;{t.adapter=await navigator.gpu.requestAdapter({powerPreference:&quot;high-performance&quot;}),t.deleted||(t.device=ny.newInstance(),t.device.initialize(await t.adapter.requestDevice({requiredLimits:{maxBufferSize:t.adapter.limits.maxBufferSize,maxStorageBufferBindingSize:t.adapter.limits.maxStorageBufferBindingSize,maxUniformBufferBindingSize:t.adapter.limits.maxUniformBufferBindingSize}})),t.deleted?t.device=null:t.context=t.canvas.getContext(&quot;webgpu&quot;))},e.releaseGraphicsResources=()=&gt;{const n=vv.newInstance();n.setCurrentOperation(&quot;Release&quot;),n.traverse(e,null),t.adapter=null,t.device=null,t.context=null,t.initialized=!1,t.initializing=!1},e.setBackgroundImage=e=&gt;{t.bgImage.src=e.src},e.setUseBackgroundImage=e=&gt;{t.useBackgroundImage=e,t.useBackgroundImage&amp;&amp;!t.el.contains(t.bgImage)?t.el.appendChild(t.bgImage):!t.useBackgroundImage&amp;&amp;t.el.contains(t.bgImage)&amp;&amp;t.el.removeChild(t.bgImage)},e.captureNextImage=(n=&quot;image/png&quot;,{resetCamera:r=!1,size:o=null,scale:a=1}={})=&gt;{if(t.deleted)return null;t.imageFormat=n;const i=t.notifyStartCaptureImage;return t.notifyStartCaptureImage=!0,t._screenshot={size:o||1!==a?o||t.size.map((e=&gt;e*a)):null},new Promise(((n,o)=&gt;{const a=e.onImageReady((o=&gt;{if(null===t._screenshot.size)t.notifyStartCaptureImage=i,a.unsubscribe(),t._screenshot.placeHolder&amp;&amp;(t.size=t._screenshot.originalSize,e.modified(),t._screenshot.cameras&amp;&amp;t._screenshot.cameras.forEach((({restoreParamsFn:e,arg:t})=&gt;e(t))),e.traverseAllPasses(),t.el.removeChild(t._screenshot.placeHolder),t._screenshot.placeHolder.remove(),t._screenshot=null),n(o);else{const n=document.createElement(&quot;img&quot;);if(n.style=Ay,n.src=o,t._screenshot.placeHolder=t.el.appendChild(n),t.canvas.style.display=&quot;none&quot;,t._screenshot.originalSize=t.size,t.size=t._screenshot.size,t._screenshot.size=null,e.modified(),r){const e=!0!==r;t._screenshot.cameras=t.renderable.getRenderers().map((t=&gt;{const n=t.getActiveCamera(),o=n.get(&quot;focalPoint&quot;,&quot;position&quot;,&quot;parallelScale&quot;);return{resetCameraArgs:e?{renderer:t}:void 0,resetCameraFn:e?r:t.resetCamera,restoreParamsFn:n.set,arg:JSON.parse(JSON.stringify(o))}})),t._screenshot.cameras.forEach((({resetCameraFn:e,resetCameraArgs:t})=&gt;e(t)))}e.traverseAllPasses()}}))}))},e.traverseAllPasses=()=&gt;{if(!t.deleted)if(t.initialized){if(t.renderPasses)for(let n=0;n&lt;t.renderPasses.length;++n)t.renderPasses[n].traverse(e,null);t.commandEncoder&amp;&amp;(t.device.submitCommandEncoder(t.commandEncoder),t.commandEncoder=null,t.notifyStartCaptureImage&amp;&amp;t.device.onSubmittedWorkDone().then((()=&gt;{!async function(n=t.imageFormat){const r=document.createElement(&quot;canvas&quot;),o=r.getContext(&quot;2d&quot;);r.width=t.canvas.width,r.height=t.canvas.height;const a=await e.getPixelsAsync(),i=new ImageData(a.colorValues,a.width,a.height);o.putImageData(i,0,0);const s=t.canvas.getBoundingClientRect();t.renderable.getRenderers().forEach((e=&gt;{e.getViewProps().forEach((e=&gt;{if(e.getContainer){const t=e.getContainer().getElementsByTagName(&quot;canvas&quot;);for(let e=0;e&lt;t.length;e++){const n=t[e],r=n.getBoundingClientRect(),a=r.x-s.x,i=r.y-s.y;o.drawImage(n,a,i)}}}))}));const l=r.toDataURL(n);r.remove(),e.invokeImageReady(l)}()})))}else{e.initialize();const t=e.onInitialized((()=&gt;{t.unsubscribe(),e.traverseAllPasses()}))}},e.setViewStream=n=&gt;{if(t.viewStream===n)return!1;if(t.subscription&amp;&amp;(t.subscription.unsubscribe(),t.subscription=null),t.viewStream=n,t.viewStream){t.renderable.getRenderers()[0].getBackgroundByReference()[3]=0,e.setUseBackgroundImage(!0),t.subscription=t.viewStream.onImageReady((t=&gt;e.setBackgroundImage(t.image))),t.viewStream.setSize(t.size[0],t.size[1]),t.viewStream.invalidateCache(),t.viewStream.render(),e.modified()}return!0},e.getUniquePropID=()=&gt;t.nextPropID++,e.getPropFromID=e=&gt;{for(let n=0;n&lt;t.children.length;n++){const r=t.children[n].getPropFromID(e);if(null!==r)return r}return null},e.getPixelsAsync=async()=&gt;{const e=t.device,n=t.renderPasses[0].getOpaquePass().getColorTexture(),r={width:n.getWidth(),height:n.getHeight()};r.colorBufferWidth=32*Math.floor((r.width+31)/32),r.colorBufferSizeInBytes=r.colorBufferWidth*r.height*8;const o=ZT.newInstance();o.setDevice(e),o.create(r.colorBufferSizeInBytes,GPUBufferUsage.MAP_READ|GPUBufferUsage.COPY_DST);const a=t.device.createCommandEncoder();a.copyTextureToBuffer({texture:n.getHandle()},{buffer:o.getHandle(),bytesPerRow:8*r.colorBufferWidth,rowsPerImage:r.height},{width:r.width,height:r.height,depthOrArrayLayers:1}),e.submitCommandEncoder(a);const i=o.mapAsync(GPUMapMode.READ);await i,r.colorValues=new Uint16Array(o.getMappedRange().slice()),o.unmap();const s=new Uint8ClampedArray(r.height*r.width*4);for(let e=0;e&lt;r.height;e++)for(let t=0;t&lt;r.width;t++){const n=4*(e*r.width+t),o=4*(e*r.colorBufferWidth+t);s[n]=255*Md.fromHalf(r.colorValues[o]),s[n+1]=255*Md.fromHalf(r.colorValues[o+1]),s[n+2]=255*Md.fromHalf(r.colorValues[o+2]),s[n+3]=255*Md.fromHalf(r.colorValues[o+3])}return r.colorValues=s,r},e.createSelector=()=&gt;{const t=hy.newInstance();return t.setWebGPURenderWindow(e),t};const r=e.setSize;e.setSize=(t,n)=&gt;{const o=r(t,n);return o&amp;&amp;e.invokeWindowResizeEvent({width:t,height:n}),o},e.delete=sn.chain(e.delete,e.setViewStream)}const Sy={initialized:!1,context:null,adapter:null,device:null,canvas:null,cursorVisibility:!0,cursor:&quot;pointer&quot;,containerSize:null,renderPasses:[],notifyStartCaptureImage:!1,imageFormat:&quot;image/png&quot;,useOffScreen:!1,useBackgroundImage:!1,nextPropID:1,xrSupported:!1,presentationFormat:null};const Py=sn.newInstance((function(e,t,n={}){Object.assign(t,Sy,n),t.canvas=document.createElement(&quot;canvas&quot;),t.canvas.style.width=&quot;100%&quot;,t.bgImage=new Image,t.bgImage.style.position=&quot;absolute&quot;,t.bgImage.style.left=&quot;0&quot;,t.bgImage.style.top=&quot;0&quot;,t.bgImage.style.width=&quot;100%&quot;,t.bgImage.style.height=&quot;100%&quot;,t.bgImage.style.zIndex=&quot;-1&quot;,Gv.extend(e,t,n),t.myFactory=yy.newInstance(),t.renderPasses[0]=qx.newInstance(),t.selector||(t.selector=hy.newInstance(),t.selector.setWebGPURenderWindow(e)),sn.event(e,t,&quot;imageReady&quot;),sn.event(e,t,&quot;initialized&quot;),sn.get(e,t,[&quot;commandEncoder&quot;,&quot;device&quot;,&quot;presentationFormat&quot;,&quot;useBackgroundImage&quot;,&quot;xrSupported&quot;]),sn.setGet(e,t,[&quot;initialized&quot;,&quot;context&quot;,&quot;canvas&quot;,&quot;device&quot;,&quot;renderPasses&quot;,&quot;notifyStartCaptureImage&quot;,&quot;cursor&quot;,&quot;useOffScreen&quot;]),sn.setGetArray(e,t,[&quot;size&quot;],2),sn.event(e,t,&quot;windowResizeEvent&quot;),Cy(e,t)}),&quot;vtkWebGPURenderWindow&quot;);var wy;Oh(&quot;WebGPU&quot;,Py),wy=Py,vy[&quot;vtkRenderWindow&quot;]=wy;const Iy=gv.extractURLParameters(),Oy={margin:&quot;0&quot;,padding:&quot;0&quot;,position:&quot;absolute&quot;,top:&quot;0&quot;,left:&quot;0&quot;,width:&quot;100%&quot;,height:&quot;100%&quot;,overflow:&quot;hidden&quot;},Ry={position:&quot;absolute&quot;,left:&quot;25px&quot;,top:&quot;25px&quot;,backgroundColor:&quot;white&quot;,borderRadius:&quot;5px&quot;,listStyle:&quot;none&quot;,padding:&quot;5px 10px&quot;,margin:&quot;0&quot;,display:&quot;block&quot;,border:&quot;solid 1px black&quot;,maxWidth:&quot;calc(100% - 70px)&quot;,maxHeight:&quot;calc(100% - 60px)&quot;,overflow:&quot;auto&quot;};function My(e,t){Object.keys(t).forEach((n=&gt;{e.style[n]=t[n]}))}const Dy={background:[.32,.34,.43],containerStyle:null,controlPanelStyle:null,listenWindowResize:!0,resizeCallback:null,controllerVisibility:!0};function Ey(e,t,n={}){Object.assign(t,Dy,n),sn.obj(e,t),sn.get(e,t,[&quot;renderWindow&quot;,&quot;renderer&quot;,&quot;apiSpecificRenderWindow&quot;,&quot;interactor&quot;,&quot;rootContainer&quot;,&quot;container&quot;,&quot;controlContainer&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkFullScreenRenderWindow&quot;);const n=document.querySelector(&quot;body&quot;);function r(t){&quot;c&quot;===String.fromCharCode(t.charCode)&amp;&amp;e.toggleControllerVisibility()}t.rootContainer||(t.rootContainer=n),t.container||(t.container=document.createElement(&quot;div&quot;),My(t.container,t.containerStyle||Oy),t.rootContainer.appendChild(t.container)),t.rootContainer===n&amp;&amp;(document.documentElement.style.height=&quot;100%&quot;,n.style.height=&quot;100%&quot;,n.style.padding=&quot;0&quot;,n.style.margin=&quot;0&quot;),t.renderWindow=Eh.newInstance(),t.renderer=wh.newInstance(),t.renderWindow.addRenderer(t.renderer),t.apiSpecificRenderWindow=t.renderWindow.newAPISpecificView(Iy.viewAPI??t.defaultViewAPI),t.apiSpecificRenderWindow.setContainer(t.container),t.renderWindow.addView(t.apiSpecificRenderWindow),t.interactor=Yh.newInstance(),t.interactor.setInteractorStyle(dv.newInstance()),t.interactor.setView(t.apiSpecificRenderWindow),t.interactor.initialize(),t.interactor.bindEvents(t.container),e.setBackground=t.renderer.setBackground,e.removeController=()=&gt;{const e=t.controlContainer;e&amp;&amp;e.parentNode.removeChild(e)},e.setControllerVisibility=e=&gt;{t.controllerVisibility=e,t.controlContainer&amp;&amp;(t.controlContainer.style.display=e?&quot;block&quot;:&quot;none&quot;)},e.toggleControllerVisibility=()=&gt;{e.setControllerVisibility(!t.controllerVisibility)},e.addController=n=&gt;{t.controlContainer=document.createElement(&quot;div&quot;),My(t.controlContainer,t.controlPanelStyle||Ry),t.rootContainer.appendChild(t.controlContainer),t.controlContainer.innerHTML=n,e.setControllerVisibility(t.controllerVisibility),t.rootContainer.addEventListener(&quot;keypress&quot;,r)},e.setBackground(...t.background),e.addRepresentation=e=&gt;{e.getActors().forEach((e=&gt;{t.renderer.addActor(e)}))},e.removeRepresentation=e=&gt;{e.getActors().forEach((e=&gt;t.renderer.removeActor(e)))},e.delete=sn.chain(e.setContainer,t.apiSpecificRenderWindow.delete,(()=&gt;{t.rootContainer?.removeEventListener(&quot;keypress&quot;,r),window.removeEventListener(&quot;resize&quot;,e.resize)}),e.delete),e.resize=()=&gt;{const e=t.container.getBoundingClientRect(),n=window.devicePixelRatio||1;t.apiSpecificRenderWindow.setSize(Math.floor(e.width*n),Math.floor(e.height*n)),t.resizeCallback&amp;&amp;t.resizeCallback(e),t.renderWindow.render()},e.setResizeCallback=n=&gt;{t.resizeCallback=n,e.resize()},t.listenWindowResize&amp;&amp;window.addEventListener(&quot;resize&quot;,e.resize),e.resize()}(e,t)}var Vy={newInstance:sn.newInstance(Ey),extend:Ey};var Ly={ColorSpace:{RGB:0,HSV:1,LAB:2,DIVERGING:3},Scale:{LINEAR:0,LOG10:1}};const{ColorSpace:By,Scale:Fy}=Ly,{ScalarMappingTarget:Ny}=yl,{vtkDebugMacro:ky,vtkErrorMacro:Gy,vtkWarningMacro:Uy}=sn;function _y(e,t){const n=e[0],r=e[1],o=e[2],a=Math.sqrt(n*n+r*r+o*o),i=a&gt;.001?Math.acos(n/a):0,s=i&gt;.001?Math.atan2(o,r):0;t[0]=a,t[1]=i,t[2]=s}function Ky(e,t){if(e[0]&gt;=t-.1)return e[2];const n=e[1]*Math.sqrt(t*t-e[0]*e[0])/(e[0]*Math.sin(e[1]));return e[2]&gt;-.3*Math.PI?e[2]+n:e[2]-n}function zy(e,t,n,r){const o=[],a=[];Pa(t,o),Pa(n,a);const i=[],s=[];_y(o,i),_y(a,s);let l=e;if(i[1]&gt;.05&amp;&amp;s[1]&gt;.05&amp;&amp;function(e,t){let n=e-t;for(n&lt;0&amp;&amp;(n=-n);n&gt;=2*Math.PI;)n-=2*Math.PI;return n&gt;Math.PI&amp;&amp;(n=2*Math.PI-n),n}(i[2],s[2])&gt;.33*Math.PI){let t=Math.max(i[0],s[0]);t=Math.max(88,t),e&lt;.5?(s[0]=t,s[1]=0,s[2]=0,l*=2):(i[0]=t,i[1]=0,i[2]=0,l=2*l-1)}i[1]&lt;.05&amp;&amp;s[1]&gt;.05?i[2]=Ky(s,i[0]):s[1]&lt;.05&amp;&amp;i[1]&gt;.05&amp;&amp;(s[2]=Ky(i,s[0]));const c=[];c[0]=(1-l)*i[0]+l*s[0],c[1]=(1-l)*i[1]+l*s[1],c[2]=(1-l)*i[2]+l*s[2];const u=[];!function(e,t){const n=e[0],r=e[1],o=e[2];t[0]=n*Math.cos(r),t[1]=n*Math.sin(r)*Math.cos(o),t[2]=n*Math.sin(r)*Math.sin(o)}(c,u),wa(u,r)}const Wy={clamping:!0,colorSpace:By.RGB,hSVWrap:!0,scale:Fy.LINEAR,nanColor:null,belowRangeColor:null,aboveRangeColor:null,useAboveRangeColor:!1,useBelowRangeColor:!1,allowDuplicateScalars:!1,table:null,tableSize:0,buildTime:null,nodes:null,discretize:!1,numberOfValues:256};function Hy(e,t,n={}){Object.assign(t,Wy,n),yl.extend(e,t,n),t.table=[],t.nodes=[],t.nanColor=[.5,0,0,1],t.belowRangeColor=[0,0,0,1],t.aboveRangeColor=[1,1,1,1],t.buildTime={},sn.obj(t.buildTime),sn.get(e,t,[&quot;buildTime&quot;,&quot;mappingRange&quot;]),sn.setGet(e,t,[&quot;useAboveRangeColor&quot;,&quot;useBelowRangeColor&quot;,&quot;discretize&quot;,&quot;numberOfValues&quot;,{type:&quot;enum&quot;,name:&quot;colorSpace&quot;,enum:By},{type:&quot;enum&quot;,name:&quot;scale&quot;,enum:Fy}]),sn.setArray(e,t,[&quot;nanColor&quot;,&quot;belowRangeColor&quot;,&quot;aboveRangeColor&quot;],4),sn.getArray(e,t,[&quot;nanColor&quot;,&quot;belowRangeColor&quot;,&quot;aboveRangeColor&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkColorTransferFunction&quot;),e.getSize=()=&gt;t.nodes.length,e.addRGBPoint=(t,n,r,o)=&gt;e.addRGBPointLong(t,n,r,o,.5,0),e.addRGBPointLong=(n,r,o,a,i=.5,s=0)=&gt;{if(i&lt;0||i&gt;1)return Gy(&quot;Midpoint outside range [0.0, 1.0]&quot;),-1;if(s&lt;0||s&gt;1)return Gy(&quot;Sharpness outside range [0.0, 1.0]&quot;),-1;t.allowDuplicateScalars||e.removePoint(n);const l={x:n,r:r,g:o,b:a,midpoint:i,sharpness:s};t.nodes.push(l),e.sortAndUpdateRange();let c=0;for(;c&lt;t.nodes.length&amp;&amp;t.nodes[c].x!==n;c++);return c&lt;t.nodes.length?c:-1},e.addHSVPoint=(t,n,r,o)=&gt;e.addHSVPointLong(t,n,r,o,.5,0),e.addHSVPointLong=(t,n,r,o,a=.5,i=0)=&gt;{const s=[];return ya([n,r,o],s),e.addRGBPoint(t,s[0],s[1],s[2],a,i)},e.setNodes=n=&gt;{if(t.nodes!==n){const r=JSON.stringify(t.nodes);t.nodes=n;const o=JSON.stringify(t.nodes);if(e.sortAndUpdateRange()||r!==o)return e.modified(),!0}return!1},e.sortAndUpdateRange=()=&gt;{const n=JSON.stringify(t.nodes);t.nodes.sort(((e,t)=&gt;e.x-t.x));const r=JSON.stringify(t.nodes),o=e.updateRange();return o||n===r?o:(e.modified(),!0)},e.updateRange=()=&gt;{const n=[2];n[0]=t.mappingRange[0],n[1]=t.mappingRange[1];const r=t.nodes.length;return r?(t.mappingRange[0]=t.nodes[0].x,t.mappingRange[1]=t.nodes[r-1].x):(t.mappingRange[0]=0,t.mappingRange[1]=0),(n[0]!==t.mappingRange[0]||n[1]!==t.mappingRange[1])&amp;&amp;(e.modified(),!0)},e.removePoint=n=&gt;{let r=0;for(;r&lt;t.nodes.length&amp;&amp;t.nodes[r].x!==n;r++);const o=r;if(r&gt;=t.nodes.length)return-1;let a=!1;return t.nodes.splice(r,1),0!==r&amp;&amp;r!==t.nodes.length||(a=e.updateRange()),a||e.modified(),o},e.movePoint=(n,r)=&gt;{if(n!==r){e.removePoint(r);for(let o=0;o&lt;t.nodes.length;o++)if(t.nodes[o].x===n){t.nodes[o].x=r,e.sortAndUpdateRange();break}}},e.removeAllPoints=()=&gt;{t.nodes=[],e.sortAndUpdateRange()},e.addRGBSegment=(n,r,o,a,i,s,l,c)=&gt;{e.sortAndUpdateRange();for(let e=0;e&lt;t.nodes.length;)t.nodes[e].x&gt;=n&amp;&amp;t.nodes[e].x&lt;=i?t.nodes.splice(e,1):e++;e.addRGBPointLong(n,r,o,a,.5,0),e.addRGBPointLong(i,s,l,c,.5,0),e.modified()},e.addHSVSegment=(t,n,r,o,a,i,s,l)=&gt;{const c=[i,s,l],u=[],d=[];ya([n,r,o],u),ya(c,d),e.addRGBSegment(t,u[0],u[1],u[2],a,d[0],d[1],d[2])},e.mapValue=t=&gt;{const n=[];return e.getColor(t,n),[Math.floor(255*n[0]+.5),Math.floor(255*n[1]+.5),Math.floor(255*n[2]+.5),255]},e.getColor=(n,r)=&gt;{if(t.indexedLookup){const t=e.getSize(),o=e.getAnnotatedValueIndexInternal(n);if(o&lt;0||0===t){const t=e.getNanColorByReference();r[0]=t[0],r[1]=t[1],r[2]=t[2]}else{const n=[];e.getNodeValue(o%t,n),r[0]=n[1],r[1]=n[2],r[2]=n[3]}}else e.getTable(n,n,1,r)},e.getRedValue=t=&gt;{const n=[];return e.getColor(t,n),n[0]},e.getGreenValue=t=&gt;{const n=[];return e.getColor(t,n),n[1]},e.getBlueValue=t=&gt;{const n=[];return e.getColor(t,n),n[2]},e.logScaleEnabled=()=&gt;t.scale===Fy.LOG10,e.usingLogScale=()=&gt;e.logScaleEnabled()&amp;&amp;t.mappingRange[0]&gt;0,e.getTable=(n,r,o,a)=&gt;{const i=e.usingLogScale(),s=i?Math.log10(Number(n)):Number(n),l=i?Math.log10(Number(r)):Number(r);if(ka(s)||ka(l)){for(let e=0;e&lt;o;e++)a[3*e+0]=t.nanColor[0],a[3*e+1]=t.nanColor[1],a[3*e+2]=t.nanColor[2];return}let c=0;const u=t.nodes.length;let d=0,p=0,f=0;0!==u&amp;&amp;(d=t.nodes[u-1].r,p=t.nodes[u-1].g,f=t.nodes[u-1].b);let g=0,m=0,h=0;const v=[0,0,0],T=[0,0,0];let x=0,y=0;const b=[];let A=t.mappingRange;i&amp;&amp;(A=[Math.log10(t.mappingRange[0]),Math.log10(t.mappingRange[1])]);for(let n=0;n&lt;o;n++){const r=3*n;if(g=o&gt;1?s+n/(o-1)*(l-s):.5*(s+l),t.discretize){const e=A;if(g&gt;=e[0]&amp;&amp;g&lt;=e[1]){const n=t.numberOfValues,r=e[1]-e[0];if(n&lt;=1)g=e[0]+r/2;else{const t=(g-e[0])/r,o=Ro(n*t);g=e[0]+o/(n-1)*r}}}for(;c&lt;u&amp;&amp;g&gt;t.nodes[c].x;)c++,c&lt;u&amp;&amp;(m=t.nodes[c-1].x,h=t.nodes[c].x,v[0]=t.nodes[c-1].r,T[0]=t.nodes[c].r,v[1]=t.nodes[c-1].g,T[1]=t.nodes[c].g,v[2]=t.nodes[c-1].b,T[2]=t.nodes[c].b,x=t.nodes[c-1].midpoint,y=t.nodes[c-1].sharpness,x&lt;1e-5&amp;&amp;(x=1e-5),x&gt;.99999&amp;&amp;(x=.99999));if(g&gt;A[1])a[r]=0,a[r+1]=0,a[r+2]=0,t.clamping&amp;&amp;(e.getUseAboveRangeColor()?(a[r]=t.aboveRangeColor[0],a[r+1]=t.aboveRangeColor[1],a[r+2]=t.aboveRangeColor[2]):(a[r]=d,a[r+1]=p,a[r+2]=f));else if(g&lt;A[0]||Ba(g)&amp;&amp;g&lt;0)a[r]=0,a[r+1]=0,a[r+2]=0,t.clamping&amp;&amp;(e.getUseBelowRangeColor()?(a[r]=t.belowRangeColor[0],a[r+1]=t.belowRangeColor[1],a[r+2]=t.belowRangeColor[2]):u&gt;0&amp;&amp;(a[r]=t.nodes[0].r,a[r+1]=t.nodes[0].g,a[r+2]=t.nodes[0].b));else if(0===c&amp;&amp;(Math.abs(g-s)&lt;1e-6||t.discretize))u&gt;0?(a[r]=t.nodes[0].r,a[r+1]=t.nodes[0].g,a[r+2]=t.nodes[0].b):(a[r]=0,a[r+1]=0,a[r+2]=0);else{let e=0;if(e=(g-m)/(h-m),e=e&lt;x?.5*e/x:.5+.5*(e-x)/(1-x),y&gt;.99){if(e&lt;.5){a[r]=v[0],a[r+1]=v[1],a[r+2]=v[2];continue}a[r]=T[0],a[r+1]=T[1],a[r+2]=T[2];continue}if(y&lt;.01){if(t.colorSpace===By.RGB)a[r]=(1-e)*v[0]+e*T[0],a[r+1]=(1-e)*v[1]+e*T[1],a[r+2]=(1-e)*v[2]+e*T[2];else if(t.colorSpace===By.HSV){const n=[],o=[];xa(v,n),xa(T,o),t.hSVWrap&amp;&amp;(n[0]-o[0]&gt;.5||o[0]-n[0]&gt;.5)&amp;&amp;(n[0]&gt;o[0]?n[0]-=1:o[0]-=1);const i=[];i[0]=(1-e)*n[0]+e*o[0],i[0]&lt;0&amp;&amp;(i[0]+=1),i[1]=(1-e)*n[1]+e*o[1],i[2]=(1-e)*n[2]+e*o[2],ya(i,b),a[r]=b[0],a[r+1]=b[1],a[r+2]=b[2]}else if(t.colorSpace===By.LAB){const t=[],n=[];Pa(v,t),Pa(T,n);const o=[];o[0]=(1-e)*t[0]+e*n[0],o[1]=(1-e)*t[1]+e*n[1],o[2]=(1-e)*t[2]+e*n[2],wa(o,b),a[r]=b[0],a[r+1]=b[1],a[r+2]=b[2]}else t.colorSpace===By.DIVERGING?(zy(e,v,T,b),a[r]=b[0],a[r+1]=b[1],a[r+2]=b[2]):Gy(&quot;ColorSpace set to invalid value.&quot;,t.colorSpace);continue}e&lt;.5?e=.5*(2*e)**(1+10*y):e&gt;.5&amp;&amp;(e=1-.5*(2*(1-e))**(1+10*y));const n=e*e,o=n*e,i=2*o-3*n+1,s=-2*o+3*n,l=o-2*n+e,c=o-n;let u,d;if(t.colorSpace===By.RGB)for(let e=0;e&lt;3;e++)u=T[e]-v[e],d=(1-y)*u,a[r+e]=i*v[e]+s*T[e]+l*d+c*d;else if(t.colorSpace===By.HSV){const e=[],n=[];xa(v,e),xa(T,n),t.hSVWrap&amp;&amp;(e[0]-n[0]&gt;.5||n[0]-e[0]&gt;.5)&amp;&amp;(e[0]&gt;n[0]?e[0]-=1:n[0]-=1);const o=[];for(let t=0;t&lt;3;t++)u=n[t]-e[t],d=(1-y)*u,o[t]=i*e[t]+s*n[t]+l*d+c*d,0===t&amp;&amp;o[t]&lt;0&amp;&amp;(o[t]+=1);ya(o,b),a[r]=b[0],a[r+1]=b[1],a[r+2]=b[2]}else if(t.colorSpace===By.LAB){const e=[],t=[];Pa(v,e),Pa(T,t);const n=[];for(let r=0;r&lt;3;r++)u=t[r]-e[r],d=(1-y)*u,n[r]=i*e[r]+s*t[r]+l*d+c*d;wa(n,b),a[r]=b[0],a[r+1]=b[1],a[r+2]=b[2]}else t.colorSpace===By.DIVERGING?(zy(e,v,T,b),a[r]=b[0],a[r+1]=b[1],a[r+2]=b[2]):Gy(&quot;ColorSpace set to invalid value.&quot;);for(let e=0;e&lt;3;e++)a[r+e]=a[r+e]&lt;0?0:a[r+e],a[r+e]=a[r+e]&gt;1?1:a[r+e]}}},e.getUint8Table=(n,r,o,a=!1)=&gt;{if(e.getMTime()&lt;=t.buildTime&amp;&amp;t.tableSize===o&amp;&amp;t.tableWithAlpha!==a)return t.table;if(0===t.nodes.length)return Gy(&quot;Attempting to lookup a value with no points in the function&quot;),t.table;const i=a?4:3;t.tableSize===o&amp;&amp;t.tableWithAlpha===a||(t.table=new Uint8Array(o*i),t.tableSize=o,t.tableWithAlpha=a);const s=[];e.getTable(n,r,o,s);for(let e=0;e&lt;o;e++)t.table[e*i+0]=Math.floor(255*s[3*e+0]+.5),t.table[e*i+1]=Math.floor(255*s[3*e+1]+.5),t.table[e*i+2]=Math.floor(255*s[3*e+2]+.5),a&amp;&amp;(t.table[e*i+3]=255);return t.buildTime.modified(),t.table},e.buildFunctionFromArray=n=&gt;{e.removeAllPoints();const r=n.getNumberOfComponents();for(let e=0;e&lt;n.getNumberOfTuples();e++)switch(r){case 3:t.nodes.push({x:e,r:n.getComponent(e,0),g:n.getComponent(e,1),b:n.getComponent(e,2),midpoint:.5,sharpness:0});break;case 4:t.nodes.push({x:n.getComponent(e,0),r:n.getComponent(e,1),g:n.getComponent(e,2),b:n.getComponent(e,3),midpoint:.5,sharpness:0});break;case 5:t.nodes.push({x:e,r:n.getComponent(e,0),g:n.getComponent(e,1),b:n.getComponent(e,2),midpoint:n.getComponent(e,4),sharpness:n.getComponent(e,5)});break;case 6:t.nodes.push({x:n.getComponent(e,0),r:n.getComponent(e,1),g:n.getComponent(e,2),b:n.getComponent(e,3),midpoint:n.getComponent(e,4),sharpness:n.getComponent(e,5)})}e.sortAndUpdateRange()},e.buildFunctionFromTable=(n,r,o,a)=&gt;{let i=0;e.removeAllPoints(),o&gt;1&amp;&amp;(i=(r-n)/(o-1));for(let e=0;e&lt;o;e++){const r={x:n+i*e,r:a[3*e],g:a[3*e+1],b:a[3*e+2],sharpness:0,midpoint:.5};t.nodes.push(r)}e.sortAndUpdateRange()},e.getNodeValue=(e,n)=&gt;e&lt;0||e&gt;=t.nodes.length?(Gy(&quot;Index out of range!&quot;),-1):(n[0]=t.nodes[e].x,n[1]=t.nodes[e].r,n[2]=t.nodes[e].g,n[3]=t.nodes[e].b,n[4]=t.nodes[e].midpoint,n[5]=t.nodes[e].sharpness,1),e.setNodeValue=(n,r)=&gt;{if(n&lt;0||n&gt;=t.nodes.length)return Gy(&quot;Index out of range!&quot;),-1;const o=t.nodes[n].x;return t.nodes[n].x=r[0],t.nodes[n].r=r[1],t.nodes[n].g=r[2],t.nodes[n].b=r[3],t.nodes[n].midpoint=r[4],t.nodes[n].sharpness=r[5],o!==r[0]?e.sortAndUpdateRange():e.modified(),1},e.getNumberOfAvailableColors=()=&gt;{if(t.indexedLookup&amp;&amp;e.getSize())return e.getSize();if(t.tableSize)return t.tableSize;const n=t.nodes?.length??0;return Math.max(4094,n)},e.getIndexedColor=(t,n)=&gt;{const r=e.getSize();if(r&gt;0&amp;&amp;t&gt;=0){const o=[];e.getNodeValue(t%r,o);for(let e=0;e&lt;3;++e)n[e]=o[e+1];return void(n[3]=1)}const o=e.getNanColorByReference();n[0]=o[0],n[1]=o[1],n[2]=o[2],n[3]=1},e.fillFromDataPointer=(t,n)=&gt;{if(!(t&lt;=0)&amp;&amp;n){e.removeAllPoints();for(let r=0;r&lt;t;r++)e.addRGBPoint(n[4*r],n[4*r+1],n[4*r+2],n[4*r+3])}},e.setMappingRange=(n,r)=&gt;{const o=[n,r],a=[n,r],i=e.getRange(),s=e.logScaleEnabled();if(i[1]===o[1]&amp;&amp;i[0]===o[0])return;if(o[1]===o[0])return void Gy(&quot;attempt to set zero width color range&quot;);s&amp;&amp;(o[0]&lt;=0?console.warn(&quot;attempt to set log scale color range with non-positive minimum&quot;):(a[0]=Math.log10(o[0]),a[1]=Math.log10(o[1])));const l=(a[1]-a[0])/(i[1]-i[0]),c=a[0]-i[0]*l;for(let e=0;e&lt;t.nodes.length;++e)t.nodes[e].x=t.nodes[e].x*l+c;t.mappingRange[0]=o[0],t.mappingRange[1]=o[1],e.modified()},e.adjustRange=n=&gt;{const r=e.getRange(),o=[];r[0]&lt;n[0]?(e.getColor(n[0],o),e.addRGBPoint(n[0],o[0],o[1],o[2])):(e.getColor(r[0],o),e.addRGBPoint(n[0],o[0],o[1],o[2])),r[1]&gt;n[1]?(e.getColor(n[1],o),e.addRGBPoint(n[1],o[0],o[1],o[2])):(e.getColor(r[1],o),e.addRGBPoint(n[1],o[0],o[1],o[2])),e.sortAndUpdateRange();for(let e=0;e&lt;t.nodes.length;)t.nodes[e].x&gt;=n[0]&amp;&amp;t.nodes[e].x&lt;=n[1]?t.nodes.splice(e,1):++e;return 1},e.estimateMinNumberOfSamples=(t,n)=&gt;{const r=e.findMinimumXDistance();return Math.ceil((n-t)/r)},e.findMinimumXDistance=()=&gt;{if(t.nodes.length&lt;2)return-1;let e=Number.MAX_VALUE;for(let n=0;n&lt;t.nodes.length-1;n++){const r=t.nodes[n+1].x-t.nodes[n].x;r&lt;e&amp;&amp;(e=r)}return e},e.mapScalarsThroughTable=(n,r,o,a)=&gt;{0!==e.getSize()?t.indexedLookup?e.mapDataIndexed(n,r,o,a):e.mapData(n,r,o,a):ky(&quot;Transfer Function Has No Points!&quot;)},e.mapData=(t,n,r,o)=&gt;{if(0===e.getSize())return void Uy(&quot;Transfer Function Has No Points!&quot;);const a=Math.floor(255*e.getAlpha()+.5),i=t.getNumberOfTuples(),s=t.getNumberOfComponents(),l=n.getData(),c=t.getData(),u=[];if(r===Ny.RGBA)for(let t=0;t&lt;i;t++){const n=c[t*s+o];e.getColor(n,u),l[4*t]=Math.floor(255*u[0]+.5),l[4*t+1]=Math.floor(255*u[1]+.5),l[4*t+2]=Math.floor(255*u[2]+.5),l[4*t+3]=a}if(r===Ny.RGB)for(let t=0;t&lt;i;t++){const n=c[t*s+o];e.getColor(n,u),l[3*t]=Math.floor(255*u[0]+.5),l[3*t+1]=Math.floor(255*u[1]+.5),l[3*t+2]=Math.floor(255*u[2]+.5)}if(r===Ny.LUMINANCE)for(let t=0;t&lt;i;t++){const n=c[t*s+o];e.getColor(n,u),l[t]=Math.floor(76.5*u[0]+150.45*u[1]+28.05*u[2]+.5)}if(r===Ny.LUMINANCE_ALPHA)for(let t=0;t&lt;i;t++){const n=c[t*s+o];e.getColor(n,u),l[2*t]=Math.floor(76.5*u[0]+150.45*u[1]+28.05*u[2]+.5),l[2*t+1]=a}},e.applyColorMap=n=&gt;{const r=JSON.stringify(t.colorSpace);n.ColorSpace&amp;&amp;(t.colorSpace=By[n.ColorSpace.toUpperCase()],void 0===t.colorSpace&amp;&amp;(Gy(`ColorSpace ${n.ColorSpace} not supported, using RGB instead`),t.colorSpace=By.RGB));let o=r!==JSON.stringify(t.colorSpace);const a=o||JSON.stringify(t.nanColor);if(n.NanColor)for(t.nanColor=[].concat(n.NanColor);t.nanColor.length&lt;4;)t.nanColor.push(1);o=o||a!==JSON.stringify(t.nanColor);const i=o||JSON.stringify(t.nodes);if(n.RGBPoints){const e=n.RGBPoints.length;t.nodes=[];const r=.5,o=0;for(let a=0;a&lt;e;a+=4)t.nodes.push({x:n.RGBPoints[a],r:n.RGBPoints[a+1],g:n.RGBPoints[a+2],b:n.RGBPoints[a+3],midpoint:r,sharpness:o})}const s=e.sortAndUpdateRange(),l=!s&amp;&amp;(o||i!==JSON.stringify(t.nodes));return l&amp;&amp;e.modified(),s||l}}(e,t)}var jy={newInstance:sn.newInstance(Hy,&quot;vtkColorTransferFunction&quot;),extend:Hy,...Ly};var Xy={OrientationModes:{DIRECTION:0,ROTATION:1,MATRIX:2},ScaleModes:{SCALE_BY_CONSTANT:0,SCALE_BY_MAGNITUDE:1,SCALE_BY_COMPONENTS:2}};const{OrientationModes:qy,ScaleModes:Yy}=Xy,{vtkErrorMacro:Jy}=sn;const Zy={orient:!0,orientationMode:qy.DIRECTION,orientationArray:null,scaling:!0,scaleFactor:1,scaleMode:Yy.SCALE_BY_MAGNITUDE,scaleArray:null,matrixArray:null,normalArray:null,colorArray:null};function Qy(e,t,n={}){Object.assign(t,Zy,n),Ql.extend(e,t,n),sn.algo(e,t,2,0),t.buildTime={},sn.obj(t.buildTime,{mtime:0}),sn.setGet(e,t,[&quot;orient&quot;,&quot;orientationMode&quot;,&quot;orientationArray&quot;,&quot;scaleArray&quot;,&quot;scaleFactor&quot;,&quot;scaleMode&quot;,&quot;scaling&quot;]),sn.get(e,t,[&quot;colorArray&quot;,&quot;matrixArray&quot;,&quot;normalArray&quot;,&quot;buildTime&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkGlyph3DMapper&quot;),e.getOrientationModeAsString=()=&gt;sn.enumToString(qy,t.orientationMode),e.setOrientationModeToDirection=()=&gt;e.setOrientationMode(qy.DIRECTION),e.setOrientationModeToRotation=()=&gt;e.setOrientationMode(qy.ROTATION),e.setOrientationModeToMatrix=()=&gt;e.setOrientationMode(qy.MATRIX),e.getOrientationArrayData=()=&gt;{const n=e.getInputData(0);return n&amp;&amp;n.getPointData()?t.orientationArray?n.getPointData().getArray(t.orientationArray):n.getPointData().getVectors():null},e.getScaleModeAsString=()=&gt;sn.enumToString(Yy,t.scaleMode),e.setScaleModeToScaleByMagnitude=()=&gt;e.setScaleMode(Yy.SCALE_BY_MAGNITUDE),e.setScaleModeToScaleByComponents=()=&gt;e.setScaleMode(Yy.SCALE_BY_COMPONENTS),e.setScaleModeToScaleByConstant=()=&gt;e.setScaleMode(Yy.SCALE_BY_CONSTANT),e.getScaleArrayData=()=&gt;{const n=e.getInputData(0);return n&amp;&amp;n.getPointData()?t.scaleArray?n.getPointData().getArray(t.scaleArray):n.getPointData().getScalars():null},e.computeBounds=()=&gt;e.buildArrays(),e.buildArrays=()=&gt;{const n=e.getInputData(0),r=e.getInputData(1);if(n&amp;&amp;r){if(t.buildTime.getMTime()&lt;r.getMTime()||t.buildTime.getMTime()&lt;n.getMTime()||t.buildTime.getMTime()&lt;e.getMTime()){const o=n.getPoints().getData();let a=e.getScaleArrayData(),i=null,l=0;a&amp;&amp;(i=a.getData(),l=a.getNumberOfComponents()),t.scaling&amp;&amp;a&amp;&amp;t.scaleMode===Yy.SCALE_BY_COMPONENTS&amp;&amp;3!==a.getNumberOfComponents()&amp;&amp;(Jy(&quot;Cannot scale by components since scale array does not have 3 components.&quot;),a=null);const c=r.getBounds(),p=[];Hi.getCorners(c,p),Hi.reset(t.bounds);const f=new Float64Array(3),g=e.getOrientationArrayData(),m=x(new Float64Array(16)),h=[],v=[],T=o.length/3;t.matrixArray=new Float32Array(16*T);const y=t.matrixArray.buffer;t.normalArray=new Float32Array(9*T);const b=t.normalArray.buffer,R=[],M=[];for(let e=0;e&lt;T;++e){const n=new Float32Array(y,64*e,16);if(h[0]=o[3*e],h[1]=o[3*e+1],h[2]=o[3*e+2],C(n,m,h),g)switch(g.getTuple(e,M),t.orientationMode){case qy.MATRIX:A(n,n,[...M.slice(0,3),0,...M.slice(3,6),0,...M.slice(6,9),0,0,0,0,1]);break;case qy.ROTATION:O(n,n,M[2]),w(n,n,M[0]),I(n,n,M[1]);break;case qy.DIRECTION:if(0===M[1]&amp;&amp;0===M[2])M[0]&lt;0&amp;&amp;I(n,n,3.1415926);else{const e=Ho(M),t=[];t[0]=(M[0]+e)/2,t[1]=M[1]/2,t[2]=M[2]/2,P(n,n,3.1415926,t)}}if(t.scaling){if(v[0]=t.scaleFactor,v[1]=t.scaleFactor,v[2]=t.scaleFactor,a)switch(t.scaleMode){case Yy.SCALE_BY_MAGNITUDE:for(let t=0;t&lt;l;++t)R[t]=i[e*l+t];v[0]*=Ho(R,l),v[1]=v[0],v[2]=v[0];break;case Yy.SCALE_BY_COMPONENTS:for(let t=0;t&lt;l;++t)R[t]=i[e*l+t];v[0]*=R[0],v[1]*=R[1],v[2]*=R[2];case Yy.SCALE_BY_CONSTANT:}0===v[0]&amp;&amp;(v[0]=1e-10),0===v[1]&amp;&amp;(v[1]=1e-10),0===v[2]&amp;&amp;(v[2]=1e-10),S(n,n,v)}for(let e=0;e&lt;8;++e)oe(f,p[e],n),Hi.addPoint(t.bounds,f);const r=new Float32Array(b,36*e,9);s(r,n),d(r,r),u(r,r)}const D=e.getAbstractScalars(n,t.scalarMode,t.arrayAccessMode,t.arrayId,t.colorByArrayName).scalars;t.useLookupTableScalarRange||e.getLookupTable().setRange(t.scalarRange[0],t.scalarRange[1]),t.colorArray=null;const E=e.getLookupTable();E&amp;&amp;D&amp;&amp;(E.build(),t.colorArray=E.mapScalars(D,t.colorMode,0)),t.buildTime.modified()}}else Hi.reset(t.bounds)},e.getPrimitiveCount=()=&gt;{const t=e.getInputData(1),n=e.getInputData().getPoints().getNumberOfValues()/3;return{points:n*t.getPoints().getNumberOfValues()/3,verts:n*(t.getVerts().getNumberOfValues()-t.getVerts().getNumberOfCells()),lines:n*(t.getLines().getNumberOfValues()-2*t.getLines().getNumberOfCells()),triangles:n*(t.getPolys().getNumberOfValues()-3*t.getLines().getNumberOfCells())}},e.setSourceConnection=t=&gt;e.setInputConnection(t,1)}(e,t)}var $y={newInstance:sn.newInstance(Qy,&quot;vtkGlyph3DMapper&quot;),extend:Qy,...Xy};const{vtkErrorMacro:eb}=sn;const tb={range:[0,0],clamping:!0,allowDuplicateScalars:!1};function nb(e,t,n={}){Object.assign(t,tb,n),sn.obj(e,t),t.nodes=[],sn.setGet(e,t,[&quot;allowDuplicateScalars&quot;,&quot;clamping&quot;]),sn.setArray(e,t,[&quot;range&quot;],2),sn.getArray(e,t,[&quot;range&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkPiecewiseFunction&quot;),e.getSize=()=&gt;t.nodes.length,e.getType=()=&gt;{let e,n=0,r=0;t.nodes.length&gt;0&amp;&amp;(n=t.nodes[0].y);for(let o=1;o&lt;t.nodes.length;o++){if(e=t.nodes[o].y,e!==n)if(e&gt;n)switch(r){case 0:case 1:r=1;break;default:r=3}else switch(r){case 0:case 2:r=2;break;default:r=3}if(n=e,3===r)break}switch(r){case 0:return&quot;Constant&quot;;case 1:return&quot;NonDecreasing&quot;;case 2:return&quot;NonIncreasing&quot;;default:return&quot;Varied&quot;}},e.getDataPointer=()=&gt;{const e=t.nodes.length;if(t.function=null,e&gt;0){t.function=[];for(let n=0;n&lt;e;n++)t.function[2*n]=t.nodes[n].x,t.function[2*n+1]=t.nodes[n].y}return t.function},e.getFirstNonZeroValue=()=&gt;{if(0===t.nodes.length)return 0;let e=1,n=0,r=0;for(;r&lt;t.nodes.length;r++)if(0!==t.nodes[r].y){e=0;break}return n=e?Number.MAX_VALUE:r&gt;0?t.nodes[r-1].x:t.clamping?-Number.MAX_VALUE:t.nodes[0].x,n},e.getNodeValue=(e,n)=&gt;{const r=t.nodes.length;return e&lt;0||e&gt;=r?(eb(&quot;Index out of range!&quot;),-1):(n[0]=t.nodes[e].x,n[1]=t.nodes[e].y,n[2]=t.nodes[e].midpoint,n[3]=t.nodes[e].sharpness,1)},e.setNodeValue=(n,r)=&gt;{const o=t.nodes.length;if(n&lt;0||n&gt;=o)return eb(&quot;Index out of range!&quot;),-1;const a=t.nodes[n].x;return t.nodes[n].x=r[0],t.nodes[n].y=r[1],t.nodes[n].midpoint=r[2],t.nodes[n].sharpness=r[3],a!==r[0]?e.sortAndUpdateRange():e.modified(),1},e.addPoint=(t,n)=&gt;e.addPointLong(t,n,.5,0),e.addPointLong=(n,r,o,a)=&gt;{if(o&lt;0||o&gt;1)return eb(&quot;Midpoint outside range [0.0, 1.0]&quot;),-1;if(a&lt;0||a&gt;1)return eb(&quot;Sharpness outside range [0.0, 1.0]&quot;),-1;t.allowDuplicateScalars||e.removePoint(n);const i={x:n,y:r,midpoint:o,sharpness:a};let s;for(t.nodes.push(i),e.sortAndUpdateRange(),s=0;s&lt;t.nodes.length&amp;&amp;t.nodes[s].x!==n;s++);return s&lt;t.nodes.length?s:-1},e.setNodes=n=&gt;{t.nodes!==n&amp;&amp;(t.nodes=n,e.sortAndUpdateRange())},e.sortAndUpdateRange=()=&gt;{t.nodes.sort(((e,t)=&gt;e.x-t.x)),e.updateRange()||e.modified()},e.updateRange=()=&gt;{const n=t.range.slice(),r=t.nodes.length;return r?(t.range[0]=t.nodes[0].x,t.range[1]=t.nodes[r-1].x):(t.range[0]=0,t.range[1]=0),(n[0]!==t.range[0]||n[1]!==t.range[1])&amp;&amp;(e.modified(),!0)},e.removePoint=n=&gt;{let r;for(r=0;r&lt;t.nodes.length&amp;&amp;t.nodes[r].x!==n;r++);if(r&gt;=t.nodes.length)return-1;const o=r;let a=!1;return t.nodes.splice(r,1),0!==r&amp;&amp;r!==t.nodes.length||(a=e.updateRange()),a||e.modified(),o},e.removeAllPoints=()=&gt;{t.nodes=[],e.sortAndUpdateRange()},e.addSegment=(n,r,o,a)=&gt;{e.sortAndUpdateRange();for(let e=0;e&lt;t.nodes.length;)t.nodes[e].x&gt;=n&amp;&amp;t.nodes[e].x&lt;=o?t.nodes.splice(e,1):e++;e.addPoint(n,r,.5,0),e.addPoint(o,a,.5,0)},e.getValue=t=&gt;{const n=[];return e.getTable(t,t,1,n),n[0]},e.adjustRange=n=&gt;{if(n.length&lt;2)return 0;const r=e.getRange();r[0]&lt;n[0]?e.addPoint(n[0],e.getValue(n[0])):e.addPoint(n[0],e.getValue(r[0])),r[1]&gt;n[1]?e.addPoint(n[1],e.getValue(n[1])):e.addPoint(n[1],e.getValue(r[1])),e.sortAndUpdateRange();for(let e=0;e&lt;t.nodes.length;)t.nodes[e].x&gt;=n[0]&amp;&amp;t.nodes[e].x&lt;=n[1]?t.nodes.splice(e,1):++e;return e.sortAndUpdateRange(),1},e.estimateMinNumberOfSamples=(t,n)=&gt;{const r=e.findMinimumXDistance();return Math.ceil((n-t)/r)},e.findMinimumXDistance=()=&gt;{const e=t.nodes.length;if(e&lt;2)return-1;let n=t.nodes[1].x-t.nodes[0].x;for(let r=0;r&lt;e-1;r++){const e=t.nodes[r+1].x-t.nodes[r].x;e&lt;n&amp;&amp;(n=e)}return n},e.getTable=(e,n,r,o,a=1)=&gt;{let i,s=0;const l=t.nodes.length;let c=0;0!==l&amp;&amp;(c=t.nodes[l-1].y);let u=0,d=0,p=0,f=0,g=0,m=0,h=0;for(i=0;i&lt;r;i++){const v=a*i;for(u=r&gt;1?e+i/(r-1)*(n-e):.5*(e+n);s&lt;l&amp;&amp;u&gt;t.nodes[s].x;)s++,s&lt;l&amp;&amp;(d=t.nodes[s-1].x,p=t.nodes[s].x,f=t.nodes[s-1].y,g=t.nodes[s].y,m=t.nodes[s-1].midpoint,h=t.nodes[s-1].sharpness,m&lt;1e-5&amp;&amp;(m=1e-5),m&gt;.99999&amp;&amp;(m=.99999));if(s&gt;=l)o[v]=t.clamping?c:0;else if(0===s)o[v]=t.clamping?t.nodes[0].y:0;else{let e=(u-d)/(p-d);if(e=e&lt;m?.5*e/m:.5+.5*(e-m)/(1-m),h&gt;.99){if(e&lt;.5){o[v]=f;continue}o[v]=g;continue}if(h&lt;.01){o[v]=(1-e)*f+e*g;continue}e&lt;.5?e=.5*(2*e)**(1+10*h):e&gt;.5&amp;&amp;(e=1-.5*(2*(1-e))**(1+10*h));const t=e*e,n=t*e,r=2*n-3*t+1,a=-2*n+3*t,i=n-2*t+e,s=n-t,l=(1-h)*(g-f);o[v]=r*f+a*g+i*l+s*l;const c=f&lt;g?f:g,T=f&gt;g?f:g;o[v]=o[v]&lt;c?c:o[v],o[v]=o[v]&gt;T?T:o[v]}}}}(e,t)}var rb={newInstance:sn.newInstance(nb,&quot;vtkPiecewiseFunction&quot;),extend:nb};const{InterpolationType:ob,OpacityMode:ab,FilterMode:ib,ColorMixPreset:sb}=mg,{vtkErrorMacro:lb}=sn;function cb(e,t,n={}){if(Object.assign(t,(e=&gt;({colorMixPreset:sb.DEFAULT,independentComponents:!0,interpolationType:ob.FAST_LINEAR,shade:!1,ambient:.1,diffuse:.7,specular:.2,specularPower:10,useLabelOutline:!1,labelOutlineThickness:[1],labelOutlineOpacity:1,ipScalarRange:[-1e6,1e6],filterMode:ib.OFF,preferSizeOverAccuracy:!1,computeNormalFromOpacity:!1,volumetricScatteringBlending:0,globalIlluminationReach:0,anisotropy:0,localAmbientOcclusion:!1,LAOKernelSize:15,LAOKernelRadius:7,updatedExtents:[],...e}))(n)),sn.obj(e,t),!t.componentData){t.componentData=[];for(let e=0;e&lt;4;++e)t.componentData.push({colorChannels:1,grayTransferFunction:null,rGBTransferFunction:null,scalarOpacity:null,scalarOpacityUnitDistance:1,opacityMode:ab.FRACTIONAL,gradientOpacityMinimumValue:0,gradientOpacityMinimumOpacity:0,gradientOpacityMaximumValue:1,gradientOpacityMaximumOpacity:1,useGradientOpacity:!1,componentWeight:1,forceNearestInterpolation:!1})}sn.setGet(e,t,[&quot;colorMixPreset&quot;,&quot;independentComponents&quot;,&quot;interpolationType&quot;,&quot;shade&quot;,&quot;ambient&quot;,&quot;diffuse&quot;,&quot;specular&quot;,&quot;specularPower&quot;,&quot;useLabelOutline&quot;,&quot;labelOutlineOpacity&quot;,&quot;filterMode&quot;,&quot;preferSizeOverAccuracy&quot;,&quot;computeNormalFromOpacity&quot;,&quot;volumetricScatteringBlending&quot;,&quot;globalIlluminationReach&quot;,&quot;anisotropy&quot;,&quot;localAmbientOcclusion&quot;,&quot;LAOKernelSize&quot;,&quot;LAOKernelRadius&quot;,&quot;updatedExtents&quot;]),sn.setGetArray(e,t,[&quot;ipScalarRange&quot;],2),sn.setGetArray(e,t,[&quot;labelOutlineThickness&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkVolumeProperty&quot;);const n={...e};e.getMTime=()=&gt;{let e,n=t.mtime;for(let r=0;r&lt;4;r++)1===t.componentData[r].colorChannels?t.componentData[r].grayTransferFunction&amp;&amp;(e=t.componentData[r].grayTransferFunction.getMTime(),n=n&gt;e?n:e):3===t.componentData[r].colorChannels&amp;&amp;t.componentData[r].rGBTransferFunction&amp;&amp;(e=t.componentData[r].rGBTransferFunction.getMTime(),n=n&gt;e?n:e),t.componentData[r].scalarOpacity&amp;&amp;(e=t.componentData[r].scalarOpacity.getMTime(),n=n&gt;e?n:e),t.componentData[r].gradientOpacity&amp;&amp;(t.componentData[r].disableGradientOpacity||(e=t.componentData[r].gradientOpacity.getMTime(),n=n&gt;e?n:e));return n},e.getColorChannels=e=&gt;e&lt;0||e&gt;3?(lb(&quot;Bad index - must be between 0 and 3&quot;),0):t.componentData[e].colorChannels,e.setGrayTransferFunction=(n=0,r=null)=&gt;{let o=!1;return t.componentData[n].grayTransferFunction!==r&amp;&amp;(t.componentData[n].grayTransferFunction=r,o=!0),1!==t.componentData[n].colorChannels&amp;&amp;(t.componentData[n].colorChannels=1,o=!0),o&amp;&amp;e.modified(),o},e.getGrayTransferFunction=(n=0)=&gt;(null===t.componentData[n].grayTransferFunction&amp;&amp;(t.componentData[n].grayTransferFunction=rb.newInstance(),t.componentData[n].grayTransferFunction.addPoint(0,0),t.componentData[n].grayTransferFunction.addPoint(1024,1),1!==t.componentData[n].colorChannels&amp;&amp;(t.componentData[n].colorChannels=1),e.modified()),t.componentData[n].grayTransferFunction),e.setRGBTransferFunction=(n=0,r=null)=&gt;{let o=!1;return t.componentData[n].rGBTransferFunction!==r&amp;&amp;(t.componentData[n].rGBTransferFunction=r,o=!0),3!==t.componentData[n].colorChannels&amp;&amp;(t.componentData[n].colorChannels=3,o=!0),o&amp;&amp;e.modified(),o},e.getRGBTransferFunction=(n=0)=&gt;(null===t.componentData[n].rGBTransferFunction&amp;&amp;(t.componentData[n].rGBTransferFunction=jy.newInstance(),t.componentData[n].rGBTransferFunction.addRGBPoint(0,0,0,0),t.componentData[n].rGBTransferFunction.addRGBPoint(1024,1,1,1),3!==t.componentData[n].colorChannels&amp;&amp;(t.componentData[n].colorChannels=3),e.modified()),t.componentData[n].rGBTransferFunction),e.setScalarOpacity=(n=0,r=null)=&gt;t.componentData[n].scalarOpacity!==r&amp;&amp;(t.componentData[n].scalarOpacity=r,e.modified(),!0),e.getScalarOpacity=(n=0)=&gt;(null===t.componentData[n].scalarOpacity&amp;&amp;(t.componentData[n].scalarOpacity=rb.newInstance(),t.componentData[n].scalarOpacity.addPoint(0,1),t.componentData[n].scalarOpacity.addPoint(1024,1),e.modified()),t.componentData[n].scalarOpacity),e.setComponentWeight=(n=0,r=1)=&gt;{if(n&lt;0||n&gt;=4)return lb(&quot;Invalid index&quot;),!1;const o=Math.min(1,Math.max(0,r));return t.componentData[n].componentWeight!==o&amp;&amp;(t.componentData[n].componentWeight=o,e.modified(),!0)},e.getComponentWeight=(e=0)=&gt;e&lt;0||e&gt;=4?(lb(&quot;Invalid index&quot;),0):t.componentData[e].componentWeight,e.setInterpolationTypeToNearest=()=&gt;e.setInterpolationType(ob.NEAREST),e.setInterpolationTypeToLinear=()=&gt;e.setInterpolationType(ob.LINEAR),e.setInterpolationTypeToFastLinear=()=&gt;e.setInterpolationType(ob.FAST_LINEAR),e.getInterpolationTypeAsString=()=&gt;sn.enumToString(ob,t.interpolationType),[&quot;useGradientOpacity&quot;,&quot;scalarOpacityUnitDistance&quot;,&quot;gradientOpacityMinimumValue&quot;,&quot;gradientOpacityMinimumOpacity&quot;,&quot;gradientOpacityMaximumValue&quot;,&quot;gradientOpacityMaximumOpacity&quot;,&quot;opacityMode&quot;,&quot;forceNearestInterpolation&quot;].forEach((n=&gt;{const r=sn.capitalize(n);e[`set${r}`]=(r,o)=&gt;t.componentData[r][`${n}`]!==o&amp;&amp;(t.componentData[r][`${n}`]=o,e.modified(),!0)})),[&quot;useGradientOpacity&quot;,&quot;scalarOpacityUnitDistance&quot;,&quot;gradientOpacityMinimumValue&quot;,&quot;gradientOpacityMinimumOpacity&quot;,&quot;gradientOpacityMaximumValue&quot;,&quot;gradientOpacityMaximumOpacity&quot;,&quot;opacityMode&quot;,&quot;forceNearestInterpolation&quot;].forEach((n=&gt;{const r=sn.capitalize(n);e[`get${r}`]=e=&gt;t.componentData[e][`${n}`]})),e.setAverageIPScalarRange=(t,n)=&gt;{console.warn(&quot;setAverageIPScalarRange is deprecated use setIpScalarRange&quot;),e.setIpScalarRange(t,n)},e.getFilterModeAsString=()=&gt;sn.enumToString(ib,t.filterMode),e.setFilterModeToOff=()=&gt;{e.setFilterMode(ib.OFF)},e.setFilterModeToNormalized=()=&gt;{e.setFilterMode(ib.NORMALIZED)},e.setFilterModeToRaw=()=&gt;{e.setFilterMode(ib.RAW)},e.setGlobalIlluminationReach=e=&gt;n.setGlobalIlluminationReach(Ra(e,0,1)),e.setVolumetricScatteringBlending=e=&gt;n.setVolumetricScatteringBlending(Ra(e,0,1)),e.setAnisotropy=e=&gt;n.setAnisotropy(Ra(e,-.99,.99)),e.setLAOKernelSize=e=&gt;n.setLAOKernelSize(Ro(Ra(e,1,32))),e.setLAOKernelRadius=e=&gt;n.setLAOKernelRadius(e&gt;=1?e:1)}(e,t)}var ub={newInstance:sn.newInstance(cb,&quot;vtkVolumeProperty&quot;),extend:cb,...mg};const db={mapper:null};function pb(e,t,n={}){Object.assign(t,db,n),ts.extend(e,t,n),t.boundsMTime={},sn.obj(t.boundsMTime),sn.setGet(e,t,[&quot;mapper&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkVolume&quot;),e.getVolumes=()=&gt;[e],e.makeProperty=ub.newInstance,e.getRedrawMTime=()=&gt;{let e=t.mtime;if(null!==t.mapper){let n=t.mapper.getMTime();e=n&gt;e?n:e,null!==t.mapper.getInput()&amp;&amp;(t.mapper.getInputAlgorithm().update(),n=t.mapper.getInput().getMTime(),e=n&gt;e?n:e)}return e}}(e,t)}var fb={newInstance:sn.newInstance(pb,&quot;vtkVolume&quot;),extend:pb};const{BlendMode:gb}=vg;const mb=[&quot;getAnisotropy&quot;,&quot;getComputeNormalFromOpacity&quot;,&quot;getFilterMode&quot;,&quot;getFilterModeAsString&quot;,&quot;getGlobalIlluminationReach&quot;,&quot;getIpScalarRange&quot;,&quot;getIpScalarRangeByReference&quot;,&quot;getLAOKernelRadius&quot;,&quot;getLAOKernelSize&quot;,&quot;getLocalAmbientOcclusion&quot;,&quot;getPreferSizeOverAccuracy&quot;,&quot;getVolumetricScatteringBlending&quot;,&quot;setAnisotropy&quot;,&quot;setAverageIPScalarRange&quot;,&quot;setComputeNormalFromOpacity&quot;,&quot;setFilterMode&quot;,&quot;setFilterModeToNormalized&quot;,&quot;setFilterModeToOff&quot;,&quot;setFilterModeToRaw&quot;,&quot;setGlobalIlluminationReach&quot;,&quot;setIpScalarRange&quot;,&quot;setIpScalarRangeFrom&quot;,&quot;setLAOKernelRadius&quot;,&quot;setLAOKernelSize&quot;,&quot;setLocalAmbientOcclusion&quot;,&quot;setPreferSizeOverAccuracy&quot;,&quot;setVolumetricScatteringBlending&quot;],hb={createRadonTransferFunction:function(e,t,n,r,o){let a=null;return o?(a=o,a.removeAllPoints()):a=rb.newInstance(),a.addPointLong(-1024,0,1,1),a.addPoint(e,t),a.addPoint(n,r),a}};function vb(e,t,n={}){Object.assign(t,(e=&gt;({bounds:[...Hi.INIT_BOUNDS],sampleDistance:1,imageSampleDistance:1,maximumSamplesPerRay:1e3,autoAdjustSampleDistances:!0,initialInteractionScale:1,interactionSampleDistanceFactor:1,blendMode:gb.COMPOSITE_BLEND,volumeShadowSamplingDistFactor:5,colorTextureWidth:1024,opacityTextureWidth:1024,labelOutlineTextureWidth:1024,...e}))(n)),Ls.extend(e,t,n),sn.setGet(e,t,[&quot;sampleDistance&quot;,&quot;imageSampleDistance&quot;,&quot;maximumSamplesPerRay&quot;,&quot;autoAdjustSampleDistances&quot;,&quot;initialInteractionScale&quot;,&quot;interactionSampleDistanceFactor&quot;,&quot;blendMode&quot;,&quot;volumeShadowSamplingDistFactor&quot;,&quot;colorTextureWidth&quot;,&quot;opacityTextureWidth&quot;,&quot;labelOutlineTextureWidth&quot;]),sn.event(e,t,&quot;lightingActivated&quot;),function(e,t){t.classHierarchy.push(&quot;vtkVolumeMapper&quot;);const n={...e};e.computeBounds=()=&gt;{const n=e.getInputData();n?(t.static||e.update(),Hi.setBounds(t.bounds,n.getBounds())):Hi.reset(t.bounds)},e.setBlendModeToComposite=()=&gt;{e.setBlendMode(gb.COMPOSITE_BLEND)},e.setBlendModeToMaximumIntensity=()=&gt;{e.setBlendMode(gb.MAXIMUM_INTENSITY_BLEND)},e.setBlendModeToMinimumIntensity=()=&gt;{e.setBlendMode(gb.MINIMUM_INTENSITY_BLEND)},e.setBlendModeToAverageIntensity=()=&gt;{e.setBlendMode(gb.AVERAGE_INTENSITY_BLEND)},e.setBlendModeToAdditiveIntensity=()=&gt;{e.setBlendMode(gb.ADDITIVE_INTENSITY_BLEND)},e.setBlendModeToRadonTransform=()=&gt;{e.setBlendMode(gb.RADON_TRANSFORM_BLEND)},e.getBlendModeAsString=()=&gt;sn.enumToString(gb,t.blendMode),e.setVolumeShadowSamplingDistFactor=e=&gt;n.setVolumeShadowSamplingDistFactor(e&gt;=1?e:1),mb.forEach((t=&gt;{e[t]=()=&gt;{throw new Error(`The method &quot;volumeMapper.${t}()&quot; doesn&#x27;t exist anymore. It is a rendering property that has been moved to the volume property. Replace your code with:\\nvolumeActor.getProperty().${t}()\\n`)}}))}(e,t)}var Tb={newInstance:sn.newInstance(vb,&quot;vtkVolumeMapper&quot;),extend:vb,...hb};const{InterpolationType:xb}=jf,{vtkErrorMacro:yb}=sn;function bb(e,t,n={}){if(Object.assign(t,(e=&gt;({independentComponents:!1,interpolationType:xb.LINEAR,colorWindow:255,colorLevel:127.5,ambient:1,diffuse:0,opacity:1,useLookupTableScalarRange:!1,useLabelOutline:!1,labelOutlineThickness:[1],labelOutlineOpacity:1,updatedExtents:[],...e}))(n)),sn.obj(e,t),!t.componentData){t.componentData=[];for(let e=0;e&lt;4;e++)t.componentData.push({rGBTransferFunction:null,piecewiseFunction:null,componentWeight:1})}sn.setGet(e,t,[&quot;independentComponents&quot;,&quot;interpolationType&quot;,&quot;colorWindow&quot;,&quot;colorLevel&quot;,&quot;ambient&quot;,&quot;diffuse&quot;,&quot;opacity&quot;,&quot;useLookupTableScalarRange&quot;,&quot;useLabelOutline&quot;,&quot;labelOutlineOpacity&quot;,&quot;updatedExtents&quot;]),sn.setGetArray(e,t,[&quot;labelOutlineThickness&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkImageProperty&quot;),e.getMTime=()=&gt;{let e,n=t.mtime;for(let r=0;r&lt;4;r++)t.componentData[r].rGBTransferFunction&amp;&amp;(e=t.componentData[r].rGBTransferFunction.getMTime(),n=n&gt;e?n:e),t.componentData[r].piecewiseFunction&amp;&amp;(e=t.componentData[r].piecewiseFunction.getMTime(),n=n&gt;e?n:e);return n},e.setRGBTransferFunction=(n=0,r=null)=&gt;{let o=n,a=r;return Number.isInteger(n)||(a=n,o=0),t.componentData[o].rGBTransferFunction!==a&amp;&amp;(t.componentData[o].rGBTransferFunction=a,e.modified(),!0)},e.getRGBTransferFunction=(e=0)=&gt;t.componentData[e].rGBTransferFunction,e.setPiecewiseFunction=(n=0,r=null)=&gt;{let o=n,a=r;return Number.isInteger(n)||(a=n,o=0),t.componentData[o].piecewiseFunction!==a&amp;&amp;(t.componentData[o].piecewiseFunction=a,e.modified(),!0)},e.getPiecewiseFunction=(e=0)=&gt;t.componentData[e].piecewiseFunction,e.setScalarOpacity=(t=0,n=null)=&gt;{let r=t,o=n;return Number.isInteger(t)||(o=t,r=0),e.setPiecewiseFunction(r,o)},e.getScalarOpacity=(t=0)=&gt;e.getPiecewiseFunction(t),e.setComponentWeight=(n=0,r=1)=&gt;{if(n&lt;0||n&gt;=4)return yb(&quot;Invalid index&quot;),!1;const o=Math.min(1,Math.max(0,r));return t.componentData[n].componentWeight!==o&amp;&amp;(t.componentData[n].componentWeight=o,e.modified(),!0)},e.getComponentWeight=(e=0)=&gt;e&lt;0||e&gt;=4?(yb(&quot;Invalid index&quot;),0):t.componentData[e].componentWeight,e.setInterpolationTypeToNearest=()=&gt;e.setInterpolationType(xb.NEAREST),e.setInterpolationTypeToLinear=()=&gt;e.setInterpolationType(xb.LINEAR),e.getInterpolationTypeAsString=()=&gt;sn.enumToString(xb,t.interpolationType)}(e,t)}var Ab={newInstance:sn.newInstance(bb,&quot;vtkImageProperty&quot;),extend:bb};const Cb={mapper:null,forceOpaque:!1,forceTranslucent:!1};function Sb(e,t,n={}){Object.assign(t,Cb,n),ts.extend(e,t,n),t.boundsMTime={},sn.obj(t.boundsMTime),sn.setGet(e,t,[&quot;mapper&quot;,&quot;forceOpaque&quot;,&quot;forceTranslucent&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkImageSlice&quot;),e.getActors=()=&gt;e,e.getImages=()=&gt;e,e.getIsOpaque=()=&gt;{if(t.forceOpaque)return!0;if(t.forceTranslucent)return!1;t.properties[0]||e.getProperty();let n=t.properties[0].getOpacity()&gt;=1;return n=n&amp;&amp;(!t.mapper||t.mapper.getIsOpaque()),n},e.hasTranslucentPolygonalGeometry=()=&gt;!1,e.makeProperty=Ab.newInstance,e.getBoundsForSlice=(n,r)=&gt;{const o=t.mapper.getBoundsForSlice(n,r);if(!Hi.isValid(o))return o;e.computeMatrix();const a=new Float64Array(16);return y(a,t.matrix),Hi.transformBounds(o,a)},e.getMinXBound=()=&gt;e.getBoundsByReference()[0],e.getMaxXBound=()=&gt;e.getBoundsByReference()[1],e.getMinYBound=()=&gt;e.getBoundsByReference()[2],e.getMaxYBound=()=&gt;e.getBoundsByReference()[3],e.getMinZBound=()=&gt;e.getBoundsByReference()[4],e.getMaxZBound=()=&gt;e.getBoundsByReference()[5],e.getRedrawMTime=()=&gt;{let e=t.mtime;if(null!==t.mapper){let n=t.mapper.getMTime();e=n&gt;e?n:e,null!==t.mapper.getInput()&amp;&amp;(t.mapper.getInputAlgorithm().update(),n=t.mapper.getInput().getMTime(),e=n&gt;e?n:e)}return t.properties.forEach((t=&gt;{e=Math.max(e,t.getMTime());const n=t.getRGBTransferFunction();null!==n&amp;&amp;(e=Math.max(e,n.getMTime()))})),e},e.getSupportsSelection=()=&gt;!!t.mapper&amp;&amp;t.mapper.getSupportsSelection()}(e,t)}var Pb={newInstance:sn.newInstance(Sb,&quot;vtkImageSlice&quot;),extend:Sb};const wb={slice:0,customDisplayExtent:[0,0,0,0,0,0],useCustomExtents:!1,backgroundColor:[0,0,0,1],colorTextureWidth:1024,opacityTextureWidth:1024,labelOutlineTextureWidth:1024};var Ib={extend:function(e,t,n={}){Object.assign(t,wb,n),Ls.extend(e,t,n),sn.setGet(e,t,[&quot;slice&quot;,&quot;useCustomExtents&quot;,&quot;colorTextureWidth&quot;,&quot;opacityTextureWidth&quot;,&quot;labelOutlineTextureWidth&quot;]),sn.setGetArray(e,t,[&quot;customDisplayExtent&quot;],6),sn.setGetArray(e,t,[&quot;backgroundColor&quot;],4),function(e,t){t.classHierarchy.push(&quot;vtkAbstractImageMapper&quot;),e.getIsOpaque=()=&gt;!0,e.getCurrentImage=()=&gt;null,e.getBoundsForSlice=()=&gt;(sn.vtkErrorMacro(&quot;vtkAbstractImageMapper.getBoundsForSlice - NOT IMPLEMENTED&quot;),Ga())}(e,t)}};function Ob(e,t,n){const r=n.getCurrentImage(),o=r.getExtent(),a=[o[0],o[2],o[4]],{ijkMode:i}=n.getClosestIJKAxis();let s=n.isA(&quot;vtkImageArrayMapper&quot;)?n.getSubSlice():n.getSlice();i!==n.getSlicingMode()&amp;&amp;(s=n.getSliceAtPosition(s)),a[i]+=s;const l=[0,0,0];r.indexToWorld(a,l),a[i]+=1;const c=[0,0,0];r.indexToWorld(a,c),c[0]-=l[0],c[1]-=l[1],c[2]-=l[2],te(c,c);const u=ai.intersectWithLine(e,t,l,c);if(u.intersection){const e=u.x,t=[0,0,0];return r.worldToIndex(e,t),{t:u.t,absoluteIJK:t}}return null}const{staticOffsetAPI:Rb,otherStaticMethods:Mb}=Ll,{SlicingMode:Db}=Qf;function Eb(e,t){function n(){let n;switch(t.slicingMode){case Db.X:n=0;break;case Db.Y:n=1;break;case Db.Z:n=2;break;default:return void(t.closestIJKAxis={ijkMode:t.slicingMode,flip:!1})}const r=Ua(e.getCurrentImage().getDirection());let o=0;for(;o&lt;3&amp;&amp;0===r[n+3*o];++o);const a=r[n+3*o]&lt;0;t.closestIJKAxis={ijkMode:o,flip:a}}t.classHierarchy.push(&quot;vtkImageMapper&quot;),e.getSliceAtPosition=n=&gt;{const r=e.getCurrentImage();let o;if(3===n.length)o=n;else if(Number.isFinite(n)){const e=r.getBounds();switch(t.slicingMode){case Db.X:o=[n,(e[3]+e[2])/2,(e[5]+e[4])/2];break;case Db.Y:o=[(e[1]+e[0])/2,n,(e[5]+e[4])/2];break;case Db.Z:o=[(e[1]+e[0])/2,(e[3]+e[2])/2,n]}}const a=[0,0,0];r.worldToIndex(o,a);const i=r.getExtent(),{ijkMode:s}=e.getClosestIJKAxis();let l=0;switch(s){case Db.I:l=Ra(a[0],i[0],i[1]);break;case Db.J:l=Ra(a[1],i[2],i[3]);break;case Db.K:l=Ra(a[2],i[4],i[5]);break;default:return 0}return l},e.setSliceFromCamera=n=&gt;{const r=n.getFocalPoint();switch(t.slicingMode){case Db.I:case Db.J:case Db.K:{const t=e.getSliceAtPosition(r);e.setSlice(t)}break;case Db.X:e.setSlice(r[0]);break;case Db.Y:e.setSlice(r[1]);break;case Db.Z:e.setSlice(r[2])}},e.setXSlice=t=&gt;{e.setSlicingMode(Db.X),e.setSlice(t)},e.setYSlice=t=&gt;{e.setSlicingMode(Db.Y),e.setSlice(t)},e.setZSlice=t=&gt;{e.setSlicingMode(Db.Z),e.setSlice(t)},e.setISlice=t=&gt;{e.setSlicingMode(Db.I),e.setSlice(t)},e.setJSlice=t=&gt;{e.setSlicingMode(Db.J),e.setSlice(t)},e.setKSlice=t=&gt;{e.setSlicingMode(Db.K),e.setSlice(t)},e.getSlicingModeNormal=()=&gt;{const n=[0,0,0],r=e.getCurrentImage().getDirection();switch(t.slicingMode){case Db.X:n[0]=1;break;case Db.Y:n[1]=1;break;case Db.Z:n[2]=1;break;case Db.I:$o(r,[1,0,0],n);break;case Db.J:$o(r,[0,1,0],n);break;case Db.K:$o(r,[0,0,1],n)}return n},e.setSlicingMode=r=&gt;{t.slicingMode!==r&amp;&amp;(t.slicingMode=r,e.getCurrentImage()&amp;&amp;n(),e.modified())},e.getClosestIJKAxis=()=&gt;(void 0!==t.closestIJKAxis&amp;&amp;t.closestIJKAxis.ijkMode!==Db.NONE||!e.getCurrentImage()||n(),t.closestIJKAxis),e.computeBounds=()=&gt;{const n=e.getCurrentImage();if(!n)return void Hi.reset(t.bounds);if(!t.useCustomExtents)return void Hi.setBounds(t.bounds,n.getBounds());const r=t.customDisplayExtent.slice(),{ijkMode:o}=e.getClosestIJKAxis();let a=t.slice;switch(o!==t.slicingMode&amp;&amp;(a=e.getSliceAtPosition(t.slice)),o){case Db.I:r[0]=a,r[1]=a;break;case Db.J:r[2]=a,r[3]=a;break;case Db.K:r[4]=a,r[5]=a}Hi.setBounds(t.bounds,n.extentToBounds(r))},e.getBoundsForSlice=(n=t.slice,r=0)=&gt;{const o=e.getCurrentImage();if(!o)return Ga();const a=o.getSpatialExtent(),{ijkMode:i}=e.getClosestIJKAxis();let s=n;switch(i!==t.slicingMode&amp;&amp;(s=e.getSliceAtPosition(n)),i){case Db.I:a[0]=s-r,a[1]=s+r;break;case Db.J:a[2]=s-r,a[3]=s+r;break;case Db.K:a[4]=s-r,a[5]=s+r}return o.extentToBounds(a)},e.intersectWithLineForPointPicking=(t,n)=&gt;function(e,t,n){const r=Ob(e,t,n);if(r){const e=n.getCurrentImage().getExtent(),t=[Math.round(r.absoluteIJK[0]),Math.round(r.absoluteIJK[1]),Math.round(r.absoluteIJK[2])];return t[0]&lt;e[0]||t[0]&gt;e[1]||t[1]&lt;e[2]||t[1]&gt;e[3]||t[2]&lt;e[4]||t[2]&gt;e[5]?null:{t:r.t,ijk:t}}return null}(t,n,e),e.intersectWithLineForCellPicking=(t,n)=&gt;function(e,t,n){const r=Ob(e,t,n);if(r){const e=n.getCurrentImage().getExtent(),t=r.absoluteIJK,o=[Math.floor(t[0]),Math.floor(t[1]),Math.floor(t[2])];if(o[0]&lt;e[0]||o[0]&gt;e[1]-1||o[1]&lt;e[2]||o[1]&gt;e[3]-1||o[2]&lt;e[4]||o[2]&gt;(e[5]?e[5]-1:e[5]))return null;const a=[t[0]-o[0],t[1]-o[1],t[2]-o[2]];return{t:r.t,ijk:o,pCoords:a}}return null}(t,n,e),e.getCurrentImage=()=&gt;e.getInputData()}const Vb={slicingMode:Db.NONE,closestIJKAxis:{ijkMode:Db.NONE,flip:!1},renderToRectangle:!1,sliceAtFocalPoint:!1,preferSizeOverAccuracy:!1};function Lb(e,t,n={}){Object.assign(t,Vb,n),Ib.extend(e,t,n),sn.get(e,t,[&quot;slicingMode&quot;]),sn.setGet(e,t,[&quot;closestIJKAxis&quot;,&quot;renderToRectangle&quot;,&quot;sliceAtFocalPoint&quot;,&quot;preferSizeOverAccuracy&quot;]),Ll.implementCoincidentTopologyMethods(e,t),Eb(e,t)}var Bb={newInstance:sn.newInstance(Lb,&quot;vtkImageMapper&quot;),extend:Lb,...Rb,...Mb,...Qf};const{vtkErrorMacro:Fb}=sn;function Nb(e,t,n,r){e.set(function(e,t){let n=0;return e.map(((e,r)=&gt;r===n?(n+=e+1,e):e+t))}(t,n),r)}const kb={outputPointsPrecision:Us.DEFAULT};function Gb(e,t,n={}){Object.assign(t,kb,n),sn.setGet(e,t,[&quot;outputPointsPrecision&quot;]),sn.obj(e,t),sn.algo(e,t,1,1),function(e,t){t.classHierarchy.push(&quot;vtkAppendPolyData&quot;),e.requestData=(n,r)=&gt;{const o=e.getNumberOfInputPorts();if(!o)return void Fb(&quot;No input specified.&quot;);if(1===o)return void(r[0]=n[0]);const a=r[0]&amp;&amp;n[0]!==r[0]?r[0].initialize():Ru.newInstance();let i=0,s=0,l=1,c=1,u=0,d=0,p=0,f=0,g=!0,m=!0,h=!0;for(let e=0;e&lt;o;e++){const t=n[e];if(!t)continue;const r=t.getPoints().getNumberOfPoints();i+=r,u+=t.getVerts().getNumberOfValues(),d+=t.getLines().getNumberOfValues(),p+=t.getStrips().getNumberOfValues(),f+=t.getPolys().getNumberOfValues(),r&amp;&amp;(c&amp;&amp;(c=0,s=t.getPoints().getDataType()),l=t.getPoints().getDataType(),s=s&gt;l?s:l);const o=t.getPointData();o?(g=g&amp;&amp;null!==o.getNormals(),m=m&amp;&amp;null!==o.getTCoords(),h=h&amp;&amp;null!==o.getScalars()):(g=!1,m=!1,h=!1)}t.outputPointsPrecision===Us.SINGLE?s=ms.FLOAT:t.outputPointsPrecision===Us.DOUBLE&amp;&amp;(s=ms.DOUBLE);const v=lc.newInstance({dataType:s});v.setNumberOfPoints(i);const T=v.getData(),x=new Uint32Array(u),y=new Uint32Array(d),b=new Uint32Array(p),A=new Uint32Array(f);let C=null,S=null,P=null;const w=n[o-1];if(g){const e=w.getPointData().getNormals();C=Is.newInstance({numberOfComponents:3,numberOfTuples:i,size:3*i,dataType:e.getDataType(),name:e.getName()})}if(m){const e=w.getPointData().getTCoords();S=Is.newInstance({numberOfComponents:2,numberOfTuples:i,size:2*i,dataType:e.getDataType(),name:e.getName()})}if(h){const e=w.getPointData().getScalars();P=Is.newInstance({numberOfComponents:e.getNumberOfComponents(),numberOfTuples:i,size:i*e.getNumberOfComponents(),dataType:e.getDataType(),name:e.getName()})}i=0,u=0,d=0,p=0,f=0;for(let e=0;e&lt;o;e++){const t=n[e];T.set(t.getPoints().getData(),3*i),Nb(x,t.getVerts().getData(),i,u),u+=t.getVerts().getNumberOfValues(),Nb(y,t.getLines().getData(),i,d),d+=t.getLines().getNumberOfValues(),Nb(b,t.getStrips().getData(),i,p),p+=t.getStrips().getNumberOfValues(),Nb(A,t.getPolys().getData(),i,f),f+=t.getPolys().getNumberOfValues();const r=t.getPointData();if(g){const e=r.getNormals();C.getData().set(e.getData(),3*i)}if(m){const e=r.getTCoords();S.getData().set(e.getData(),2*i)}if(h){const e=r.getScalars();P.getData().set(e.getData(),i*P.getNumberOfComponents())}i+=t.getPoints().getNumberOfPoints()}a.setPoints(v),a.getVerts().setData(x),a.getLines().setData(y),a.getStrips().setData(b),a.getPolys().setData(A),C&amp;&amp;a.getPointData().setNormals(C),S&amp;&amp;a.getPointData().setTCoords(S),P&amp;&amp;a.getPointData().setScalars(P),r[0]=a}}(e,t)}var Ub={newInstance:sn.newInstance(Gb,&quot;vtkAppendPolyData&quot;),extend:Gb};const _b={height:1,radius:.5,resolution:6,center:[0,0,0],direction:[1,0,0],capping:!0,pointType:&quot;Float64Array&quot;};function Kb(e,t,n={}){Object.assign(t,_b,n),sn.obj(e,t),sn.setGet(e,t,[&quot;height&quot;,&quot;radius&quot;,&quot;resolution&quot;,&quot;capping&quot;]),sn.setGetArray(e,t,[&quot;center&quot;,&quot;direction&quot;],3),sn.algo(e,t,0,1),function(e,t){t.classHierarchy.push(&quot;vtkConeSource&quot;),e.requestData=(e,n)=&gt;{const r=2*Math.PI/t.resolution,o=-t.height/2,a=t.resolution+1,i=4*t.resolution+1+t.resolution;let s=0;const l=sn.newTypedArray(t.pointType,3*a);let c=0;const u=new Uint32Array(i);l[0]=t.height/2,l[1]=0,l[2]=0,t.capping&amp;&amp;(u[c++]=t.resolution);for(let e=0;e&lt;t.resolution;e++)s++,l[3*s+0]=o,l[3*s+1]=t.radius*Math.cos(e*r),l[3*s+2]=t.radius*Math.sin(e*r),t.capping&amp;&amp;(u[t.resolution-c+++1]=s);for(let e=0;e&lt;t.resolution;e++)u[c++]=3,u[c++]=0,u[c++]=e+1,u[c++]=e+2&gt;t.resolution?1:e+2;Of.buildFromRadian().translate(...t.center).rotateFromDirections([1,0,0],t.direction).apply(l);const d=n[0]?.initialize()||Ru.newInstance();d.getPoints().setData(l,3),d.getPolys().setData(u,1),n[0]=d}}(e,t)}var zb={newInstance:sn.newInstance(Kb,&quot;vtkConeSource&quot;),extend:Kb};const Wb={height:1,initAngle:0,radius:1,resolution:6,center:[0,0,0],direction:[0,1,0],capping:!0,pointType:&quot;Float64Array&quot;};function Hb(e,t,n={}){Object.assign(t,Wb,n),sn.obj(e,t),sn.setGet(e,t,[&quot;height&quot;,&quot;initAngle&quot;,&quot;otherRadius&quot;,&quot;radius&quot;,&quot;resolution&quot;,&quot;capping&quot;]),sn.setGetArray(e,t,[&quot;center&quot;,&quot;direction&quot;],3),sn.algo(e,t,0,1),function(e,t){t.classHierarchy.push(&quot;vtkCylinderSource&quot;),e.requestData=(e,n)=&gt;{const r=2*Math.PI/t.resolution;let o=2*t.resolution,a=5*t.resolution;t.capping&amp;&amp;(o=4*t.resolution,a=7*t.resolution+2);const i=sn.newTypedArray(t.pointType,3*o);let s=0;const l=new Uint32Array(a),c=new Float32Array(3*o),u=Is.newInstance({numberOfComponents:3,values:c,name:&quot;Normals&quot;}),d=new Float32Array(2*o),p=Is.newInstance({numberOfComponents:2,values:d,name:&quot;TCoords&quot;}),f=[0,0,0],g=[0,0,0],m=[0,0,0],h=[0,0,0],v=[0,0],T=[0,0],x=null==t.otherRadius?t.radius:t.otherRadius;for(let e=0;e&lt;t.resolution;e++){f[0]=Math.cos(e*r+t.initAngle),g[0]=f[0],m[0]=t.radius*f[0]+t.center[0],h[0]=m[0],v[0]=Math.abs(2*e/t.resolution-1),T[0]=v[0],m[1]=.5*t.height+t.center[1],h[1]=-.5*t.height+t.center[1],v[1]=0,T[1]=1,f[2]=-Math.sin(e*r+t.initAngle),g[2]=f[2],m[2]=x*f[2]+t.center[2],h[2]=m[2];const n=2*e;for(let e=0;e&lt;3;e++)c[3*n+e]=f[e],c[3*(n+1)+e]=g[e],i[3*n+e]=m[e],i[3*(n+1)+e]=h[e],e&lt;2&amp;&amp;(d[2*n+e]=v[e],d[2*(n+1)+e]=T[e])}for(let e=0;e&lt;t.resolution;e++){l[s++]=4,l[s++]=2*e,l[s++]=2*e+1;const n=(2*e+3)%(2*t.resolution);l[s++]=n,l[s++]=n-1}if(t.capping){for(let e=0;e&lt;t.resolution;e++){m[0]=t.radius*Math.cos(e*r+t.initAngle),h[0]=m[0],v[0]=m[0],T[0]=m[0],m[0]+=t.center[0],h[0]+=t.center[0],f[1]=1,g[1]=-1,m[1]=.5*t.height+t.center[1],h[1]=-.5*t.height+t.center[1],m[2]=-x*Math.sin(e*r+t.initAngle),h[2]=m[2],v[1]=m[2],T[1]=m[2],m[2]+=t.center[2],h[2]+=t.center[2];const n=2*t.resolution+e,o=3*t.resolution+t.resolution-e-1;for(let e=0;e&lt;3;e++)c[3*n+e]=f[e],c[3*o+e]=g[e],i[3*n+e]=m[e],i[3*o+e]=h[e],e&lt;2&amp;&amp;(d[2*n+e]=v[e],d[2*o+e]=T[e])}l[s++]=t.resolution;for(let e=0;e&lt;t.resolution;e++)l[s++]=2*t.resolution+e;l[s++]=t.resolution;for(let e=0;e&lt;t.resolution;e++)l[s++]=3*t.resolution+e}Of.buildFromRadian().translate(...t.center).rotateFromDirections([0,1,0],t.direction).translate(...t.center.map((e=&gt;-1*e))).apply(i);const y=n[0]?.initialize()||Ru.newInstance();y.getPoints().setData(i,3),y.getPolys().setData(l,1),y.getPointData().setNormals(u),y.getPointData().setTCoords(p),n[0]=y}}(e,t)}var jb={newInstance:sn.newInstance(Hb,&quot;vtkCylinderSource&quot;),extend:Hb};const Xb={tipResolution:6,tipRadius:.1,tipLength:.35,shaftResolution:6,shaftRadius:.03,invert:!1,direction:[1,0,0],pointType:&quot;Float64Array&quot;};function qb(e,t,n={}){Object.assign(t,Xb,n),sn.obj(e,t),sn.setGet(e,t,[&quot;tipResolution&quot;,&quot;tipRadius&quot;,&quot;tipLength&quot;,&quot;shaftResolution&quot;,&quot;shaftRadius&quot;,&quot;invert&quot;]),sn.setGetArray(e,t,[&quot;direction&quot;],3),sn.algo(e,t,0,1),function(e,t){t.classHierarchy.push(&quot;vtkArrowSource&quot;),e.requestData=(e,n)=&gt;{const r=jb.newInstance({capping:!0});r.setResolution(t.shaftResolution),r.setRadius(t.shaftRadius),r.setHeight(1-t.tipLength),r.setCenter(0,.5*(1-t.tipLength),0);const o=r.getOutputData(),a=o.getPoints().getData(),i=o.getPointData().getNormals().getData();Of.buildFromDegree().rotateZ(-90).apply(a).apply(i);const s=zb.newInstance();s.setResolution(t.tipResolution),s.setHeight(t.tipLength),s.setRadius(t.tipRadius);const l=s.getOutputData(),c=l.getPoints().getData();Of.buildFromRadian().translate(1-.5*t.tipLength,0,0).apply(c);const u=Ub.newInstance();u.setInputData(o),u.addInputData(l);const d=u.getOutputData(),p=d.getPoints().getData();Of.buildFromRadian().translate(.5*t.tipLength-.5,0,0).apply(p),t.invert?(Of.buildFromRadian().rotateFromDirections([1,0,0],t.direction).scale(-1,-1,-1).apply(p),n[0]=d):(Of.buildFromRadian().rotateFromDirections([1,0,0],t.direction).scale(1,1,1).apply(p),n[0]=u.getOutputData())}}(e,t)}var Yb={newInstance:sn.newInstance(qb,&quot;vtkArrowSource&quot;),extend:qb};function Jb(e){const t=e.getPoints().getBounds(),n=[.5*-(t[0]+t[1]),.5*-(t[2]+t[3]),.5*-(t[4]+t[5])];Of.buildFromDegree().translate(...n).apply(e.getPoints().getData())}function Zb(e,t,n=!1){const r=e.getPoints().getBounds(),o=[0,0,0];o[t]=n?-r[2*t+1]:-r[2*t],Of.buildFromDegree().translate(...o).apply(e.getPoints().getData())}function Qb(e,t,n,r){const o=e.getPoints().getData().length,a=new Uint8ClampedArray(o);let i=0;for(;i&lt;o;)a[i++]=t,a[i++]=n,a[i++]=r;e.getPointData().setScalars(Is.newInstance({name:&quot;color&quot;,numberOfComponents:3,values:a}))}function $b(e,t,n={}){fs.extend(e,t,function(e){return{config:{recenter:!0,tipResolution:60,tipRadius:.1,tipLength:.2,shaftResolution:60,shaftRadius:.03,invert:!1,...e?.config},xConfig:{color:[255,0,0],invert:!1,...e?.xConfig},yConfig:{color:[255,255,0],invert:!1,...e?.yConfig},zConfig:{color:[0,128,0],invert:!1,...e?.zConfig}}}(n)),sn.setGet(e,t,[&quot;config&quot;,&quot;xConfig&quot;,&quot;yConfig&quot;,&quot;zConfig&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkAxesActor&quot;);const n=Ql.newInstance();e.setMapper(n),e.update=()=&gt;{let e={...t.config,...t.xConfig};const r=Yb.newInstance({direction:[1,0,0],...e}).getOutputData();t.config.recenter?Jb(r):Zb(r,0,e.invert),Qb(r,...e.color),e={...t.config,...t.yConfig};const o=Yb.newInstance({direction:[0,1,0],...e}).getOutputData();t.config.recenter?Jb(o):Zb(o,1,e.invert),Qb(o,...e.color),e={...t.config,...t.zConfig};const a=Yb.newInstance({direction:[0,0,1],...e}).getOutputData();t.config.recenter?Jb(a):Zb(a,2,e.invert),Qb(a,...e.color);const i=Ub.newInstance();i.setInputData(r),i.addInputData(o),i.addInputData(a),n.setInputConnection(i.getOutputPort())},e.update();const r=sn.debounce(e.update,0);e.setXAxisColor=t=&gt;e.setXConfig({...e.getXConfig(),color:t}),e.setYAxisColor=t=&gt;e.setYConfig({...e.getYConfig(),color:t}),e.setZAxisColor=t=&gt;e.setZConfig({...e.getZConfig(),color:t}),e.getXAxisColor=()=&gt;t.getXConfig().color,e.getYAxisColor=()=&gt;t.getYConfig().color,e.getZAxisColor=()=&gt;t.getZConfig().color,t._onConfigChanged=r,t._onXConfigChanged=r,t._onYConfigChanged=r,t._onZConfigChanged=r}(e,t)}var eA={newInstance:sn.newInstance($b,&quot;vtkAxesActor&quot;),extend:$b};const tA=&quot;resetcamera&quot;,nA=&quot;orientation&quot;,rA={MODE_RESET_CAMERA:tA,MODE_ORIENTATION:nA,MODE_SAME:&quot;same&quot;};function oA(e,t){t.classHierarchy.push(&quot;vtkCameraSynchronizer&quot;);const n=new Float64Array(9),r=new Float64Array(3),o=[];function a(){for(;o.length;)o.pop().unsubscribe();if(!t.srcRenderer||!t.dstRenderer)return;const n=t.srcRenderer.getActiveCamera(),r=t.srcRenderer.getRenderWindow().getInteractor();o.push(n.onModified((()=&gt;{r.isAnimating()||e.update()}))),o.push(r.onAnimation(e.update)),o.push(r.onEndAnimation(e.update))}t._onSrcRendererChanged=a,t._onDstRendererChanged=a,e.update=()=&gt;{if(!t.active||!t.srcRenderer||!t.dstRenderer)return;const e=t.srcRenderer.getActiveCamera(),o=t.dstRenderer.getActiveCamera(),a=function(e,t,r){return(n[0]!==e[0]||n[1]!==e[1]||n[2]!==e[2]||n[3]!==t[0]||n[4]!==t[1]||n[5]!==t[2]||n[6]!==r[0]||n[7]!==r[1]||n[8]!==r[2])&amp;&amp;(n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=t[0],n[4]=t[1],n[5]=t[2],n[6]=r[0],n[7]=r[1],n[8]=r[2],n)}(e.getReferenceByName(&quot;position&quot;),e.getReferenceByName(&quot;focalPoint&quot;),e.getReferenceByName(&quot;viewUp&quot;));a&amp;&amp;(t.mode===nA?(r[0]=a[0]-a[3],r[1]=a[1]-a[4],r[2]=a[2]-a[5],jo(r),o.setPosition(t.focalPoint[0]+t.distance*r[0],t.focalPoint[1]+t.distance*r[1],t.focalPoint[2]+t.distance*r[2]),o.setFocalPoint(t.focalPoint[0],t.focalPoint[1],t.focalPoint[2]),o.setViewUp(a[6],a[7],a[8])):(o.setPosition(a[0],a[1],a[2]),o.setFocalPoint(a[3],a[4],a[5]),o.setViewUp(a[6],a[7],a[8])),t.mode===tA&amp;&amp;t.dstRenderer.resetCamera())},e.delete=qt((()=&gt;e.setSrcRenderer(null)),e.delete),a()}const aA={mode:nA,focalPoint:[0,0,0],distance:6.8,active:!0};function iA(e,t,n={}){Object.assign(t,aA,n),Vt(e,t),Gt(e,t,[&quot;mode&quot;,&quot;active&quot;,&quot;srcRenderer&quot;,&quot;dstRenderer&quot;,&quot;distance&quot;]),Kt(e,t,[&quot;focalPoint&quot;],3,0),oA(e,t)}var sA={newInstance:Xt(iA,&quot;vtkCameraSynchronizer&quot;),extend:iA,SynchronizationMode:rA};const lA={};const cA={CameraSync:class{constructor(e,t){this.ctx=e,this.behavior=sA.newInstance(this.getProperties(t)),this.behavior.update()}getProperties({actorBounds:e,srcRenderer:t,dstRenderer:n}){return{distance:3.4*Math.max(e[1]-e[0],e[3]-e[2],e[5]-e[4]),focalPoint:[.5*(e[0]+e[1]),.5*(e[2]+e[3]),.5*(e[4]+e[5])],mode:sA.SynchronizationMode.MODE_ORIENTATION,srcRenderer:this.ctx.getInstance(t),dstRenderer:this.ctx.getInstance(n)}}update(e){this.behavior.set(this.getProperties(e)),this.behavior.update()}delete(){this.behavior.delete()}}};var uA={applyBehaviors:function(e,t,n){const r=e.get(&quot;synchronizedViewId&quot;).synchronizedViewId;if(!t.behaviors||!r)return;lA[r]||(lA[r]={});const o=lA[r];if(t.behaviors.autoOrientation){const t=e.getRenderers();if(!o.autoOrientationAxes&amp;&amp;2===t.length){let e=null,n=null;for(let r=0;r&lt;t.length;r++){const o=t[r];o.getInteractive()?e=o:n=o}e&amp;&amp;n&amp;&amp;(o.autoOrientationAxes=sA.newInstance({srcRenderer:e,dstRenderer:n}))}o.autoOrientationAxes&amp;&amp;2!==t.length&amp;&amp;(o.autoOrientationAxes.delete(),delete o.autoOrientationAxes)}const a=Object.keys(t.behaviors),i=Object.keys(o);for(let e=0;e&lt;a.length;e++){const r=a[e];if(o[r])o[r].update(t.behaviors[r]);else{const e=t.behaviors[r];cA[e.type]?o[r]=new cA[e.type](n,e):console.log(&quot;No mapping for&quot;,e)}}for(let e=0;e&lt;i.length;e++){const n=a[e];t.behaviors[n]||(o[n].delete(),delete o[n])}}};const dA={},pA=/instance:\\${([^}]+)}/,fA={},gA=[],mA={},hA={vtkPoints:lc,vtkCellArray:oc,vtkDataArray:Is};function vA(e){return e.map((e=&gt;pA.exec(e))).filter((e=&gt;e)).map((e=&gt;e[1]))}function TA(e,t=[]){return e.dependencies&amp;&amp;e.dependencies.forEach((e=&gt;{t.push(e.id),TA(e,t)})),t}function xA(e,t,n,r){if(!t)return Promise.reject(new Error(&quot;No instance provided.&quot;));const o=dA[e];return o&amp;&amp;o.update?o.update(t,n,r):Promise.reject(new Error(`No updater for ${e}`))}function yA(e,t={}){const n=dA[e];return n&amp;&amp;n.build?n.build(t):(console.log(&quot;No builder for&quot;,e),null)}function bA(){Object.keys(dA).forEach((e=&gt;{delete dA[e]}))}function AA(e){if(1===e[1].length)return-1===gA.indexOf(e[1][0]);let t=!1;for(let n=0;n&lt;e[1].length;n++)t=t||-1===gA.indexOf(e[1][n]);return t}function CA(e,t,n){n.start(),e.set(t.properties),t.dependencies&amp;&amp;t.dependencies.forEach((e=&gt;{const{id:t,type:r}=e;if(mA[r]){const{key:n,value:o}=mA[r];if(!n||e.properties[n]===o)return void gA.push((e=&gt;`instance:\\${${e}}`)(t))}let o=n.getInstance(t);o||(o=yA(r,{managedInstanceId:t}),n.registerInstance(t,o)),xA(r,o,e,n)})),t.calls&amp;&amp;t.calls.filter(AA).forEach((t=&gt;{var r;e[t[0]].apply(null,(r=n,t[1].map((e=&gt;{const t=pA.exec(e);return t?r.getInstance(t[1]):e}))))}));const r=[];if(t.arrays){const o=[],a=Object.values(t.arrays).map((t=&gt;(n.start(),n.getArray(t.hash,t.dataType,n).then(function(e,t,n){return r=&gt;{const o=t.registration?t.registration:&quot;addArray&quot;,a=t.location?e.getReferenceByName(t.location):e;let i=null;if(i=t.location?e.getReferenceByName(t.location).getArray(t.name):e[`get${o.substring(3)}`](),i)return i.getData()!==r&amp;&amp;n.push([i.setData,[r,t.numberOfComponents]]),i;const s=t.vtkClass?t.vtkClass:&quot;vtkDataArray&quot;,l=hA[s].newInstance({...t,values:r});return n.push([a[o],[l]]),l}}(e,t,o)).catch((e=&gt;{console.log(&quot;Error fetching array&quot;,JSON.stringify(t),e)})).finally(n.end))));n.start(),r.push(Promise.all(a).then((()=&gt;(o.length&amp;&amp;e.modified(),function(e){for(;e.length;){const[t,n]=e.shift();t(...n)}}(o),!0))).catch((e=&gt;{console.error(&quot;Error in array handling for state&quot;,JSON.stringify(t),e)})).finally(n.end))}return n.end(),Promise.all(r)}function SA(e,t,n){fA[t.id]||CA(e,t,n),fA[t.id]=!0}function PA(e,t){const n=[],r=e.getNumberOfArrays();for(let o=0;o&lt;r;o++){const r=e.getArray(o).getName();t.has(r)||n.push(r)}for(let t=0;t&lt;n.length;t++)e.removeArray(n[t])}function wA(e){const t=e.name?`_${e.name}`:&quot;&quot;;return`${e.hash}_${e.dataType}${t}`}function IA(e=[]){return(t,n,r)=&gt;{r.start();const o={...n.properties};n.arrays||(n.arrays={});for(let t=0;t&lt;e.length;t++){const r=e[t];if(n.properties[r]){const e=n.properties[r];e.registration=`set${Pt(r)}`;const t=wA(e);n.arrays[t]=e,delete o[r]}}const a=n.properties.fields||[];for(let e=0;e&lt;a.length;e++){const t=a[e],r=wA(t);n.arrays[r]=t}delete o.fields;const i={pointData:new Set,cellData:new Set,fieldData:new Set};a.forEach((({location:e,name:t})=&gt;{i[e].add(t)})),PA(t.getPointData(),i.pointData),PA(t.getCellData(),i.cellData);const s={...n};s.properties=o;const l=CA(t,s,r);return r.end(),l}}const OA=IA([&quot;points&quot;,&quot;polys&quot;,&quot;verts&quot;,&quot;lines&quot;,&quot;strips&quot;]),RA=IA([]);function MA(e,t=null,n=CA){yA||xA?dA[e]={build:t,update:n}:delete dA[e]}const DA={vtkMapper:[&quot;vtkOpenGLPolyDataMapper&quot;,&quot;vtkCompositePolyDataMapper2&quot;,&quot;vtkDataSetMapper&quot;],vtkProperty:[&quot;vtkOpenGLProperty&quot;],vtkRenderer:[&quot;vtkOpenGLRenderer&quot;],vtkCamera:[&quot;vtkOpenGLCamera&quot;],vtkColorTransferFunction:[&quot;vtkPVDiscretizableColorTransferFunction&quot;],vtkActor:[&quot;vtkOpenGLActor&quot;,&quot;vtkPVLODActor&quot;],vtkLight:[&quot;vtkOpenGLLight&quot;,&quot;vtkPVLight&quot;],vtkTexture:[&quot;vtkOpenGLTexture&quot;],vtkImageMapper:[&quot;vtkOpenGLImageSliceMapper&quot;],vtkVolumeMapper:[&quot;vtkFixedPointVolumeRayCastMapper&quot;]},EA={vtkAxesActor:{build:eA.newInstance,update:CA},vtkRenderWindow:{build:Eh.newInstance,update:function(e,t,n){t.calls&amp;&amp;t.calls.filter(AA).filter((e=&gt;&quot;removeRenderer&quot;===e[0])).forEach((e=&gt;{vA(e[1]).forEach((e=&gt;{n.getInstance(e).getViewProps().forEach((e=&gt;{const t=e.get(&quot;flattenedDepIds&quot;).flattenedDepIds;t&amp;&amp;t.forEach((e=&gt;n.unregisterInstance(e))),n.unregisterInstance(n.getInstanceId(e))}))}))})),e.render(),CA(e,t,n),uA.applyBehaviors(e,t,n)}},vtkRenderer:{build:wh.newInstance,update:function(e,t,n){CA(e,t,n);const r=new Set;t.dependencies&amp;&amp;t.dependencies.forEach((e=&gt;{const t=n.getInstance(e.id);if(t){const n=TA(e);t.set({flattenedDepIds:n},!0),n.forEach((e=&gt;r.add(e)))}}));const o=new Set;t.calls&amp;&amp;t.calls.filter(AA).filter((e=&gt;&quot;removeViewProp&quot;===e[0])).forEach((e=&gt;{vA(e[1]).forEach((e=&gt;{const t=n.getInstance(e).get(&quot;flattenedDepIds&quot;).flattenedDepIds;t&amp;&amp;t.forEach((e=&gt;o.add(e))),o.add(e)}))})),[...o].filter((e=&gt;!r.has(e))).forEach((e=&gt;n.unregisterInstance(e)))}},vtkLookupTable:{build:Sl.newInstance,update:CA},vtkCamera:{build:dh.newInstance,update:SA},vtkPolyData:{build:Ru.newInstance,update:OA},vtkImageData:{build:il.newInstance,update:RA},vtkMapper:{build:Ql.newInstance,update:CA},vtkGlyph3DMapper:{build:$y.newInstance,update:CA},vtkProperty:{build:us.newInstance,update:CA},vtkActor:{build:fs.newInstance,update:CA},vtkLight:{build:gh.newInstance,update:CA},vtkColorTransferFunction:{build:jy.newInstance,update:function(e,t,n){if(n.start(),t.properties.nodes){const n=t.properties.nodes.map((([e,t,n,r,o,a])=&gt;({x:e,r:t,g:n,b:r,midpoint:o,sharpness:a})));e.set({...t.properties,nodes:n},!0)}else e.set(t.properties);n.end()}},vtkTexture:{build:Eu.newInstance,update:CA},vtkVolume:{build:fb.newInstance,update:CA},vtkVolumeMapper:{build:Tb.newInstance,update:CA},vtkVolumeProperty:{build:ub.newInstance,update:CA},vtkImageSlice:{build:Pb.newInstance,update:CA},vtkImageMapper:{build:Bb.newInstance,update:CA},vtkImageProperty:{build:Ab.newInstance,update:CA},vtkPiecewiseFunction:{build:rb.newInstance,update:function(e,t,n){if(n.start(),t.properties.nodes){const n=t.properties.nodes.map((([e,t,n,r])=&gt;({x:e,y:t,midpoint:n,sharpness:r})));e.set({...t.properties,nodes:n},!0),e.sortAndUpdateRange()}else e.set(t.properties);n.end()}},vtkCubeAxesActor:{build:Yu.newInstance,update:CA},vtkScalarBarActor:{build:Op.newInstance,update:CA}};function VA(e=!0){e&amp;&amp;bA(),Object.keys(EA).forEach((e=&gt;{const t=EA[e];MA(e,t.build,t.update)}))}function LA(){Object.keys(DA).forEach((e=&gt;{DA[e].forEach((t=&gt;{dA[t]=dA[e]}))}))}VA(),LA(),mA.vtkPVLight={};var BA={build:yA,update:xA,genericUpdater:CA,oneTimeGenericUpdater:SA,setTypeMapping:MA,clearTypeMapping:bA,getSupportedTypes:function(){return Object.keys(dA)},clearOneTimeUpdaters:function(...e){if(0===e.length)return void Object.keys(fA).forEach((e=&gt;{delete fA[e]}));let t=e;return 1===t.length&amp;&amp;Array.isArray(t[0])&amp;&amp;(t=t[0]),t.forEach((e=&gt;{delete fA[e]})),t},updateRenderWindow:function(e,t,n){return xA(&quot;vtkRenderWindow&quot;,e,t,n)},excludeInstance:function(e,t,n){mA[e]={key:t,value:n}},setDefaultMapping:VA,applyDefaultAliases:LA,alwaysUpdateCamera:function(){MA(&quot;vtkCamera&quot;,dh.newInstance),LA()}};const FA={};function NA(){const e={};let t=null;return{setFetchArrayFunction:function(e){t=e},getArray:function(n,r,o){const a=e[n];return a?(a.mtimes[o.getActiveViewId()]=o.getMTime(),new Promise(((e,t)=&gt;{e(a.array)}))):t?new Promise(((a,i)=&gt;{t(n).then((t=&gt;{let i=t;if(&quot;string&quot;==typeof t&amp;&amp;(i=um.toArrayBuffer(t)),i instanceof Blob){const t=new FileReader;t.onload=()=&gt;{const i=Ct(r,t.result),s={[o.getActiveViewId()]:o.getMTime()};e[n]={mtimes:s,array:i},a(i)},t.readAsArrayBuffer(i)}else{const t=Ct(r,i),s={[o.getActiveViewId()]:o.getMTime()};e[n]={mtimes:s,array:t},a(t)}}),(e=&gt;{console.log(&quot;Error getting data array:&quot;),console.log(e),i(e)}))})):Promise.reject(new Error(&#x27;No array fetcher found, please use &quot;setArrayFetcher&quot; to provide one&#x27;))},emptyCachedArrays:function(){Object.keys(e).forEach((t=&gt;{delete e[t]}))},freeOldArrays:function(t,n){const r=n.getMTime()-t;Object.keys(e).filter((t=&gt;e[t].mtimes[n.getActiveViewId()])).filter((t=&gt;e[t].mtimes[n.getActiveViewId()]&lt;r)).forEach((t=&gt;{delete e[t]}))}}}function kA(){const e={};return{getInstance:function(t){return e[t]},getInstanceId:function(t){let n=null;return Object.keys(e).forEach((r=&gt;{t===e[r]&amp;&amp;(n=r)})),n},registerInstance:function(t,n){e[t]=n,n.set({remoteId:t},!0,!0)},unregisterInstance:function(t){delete e[t]},emptyCachedInstances:function(){Object.keys(e).forEach((t=&gt;{delete e[t]}))}}}function GA(){let e=0;const t={start(){e+=1,t.invokeProgressEvent(e)},end(){e-=1,t.invokeProgressEvent(e),0===e&amp;&amp;t.invokeProgressDone()},resetProgress(){e=0}},n={};return jt(t,n,&quot;progressEvent&quot;),jt(t,n,&quot;progressDone&quot;),t}function UA(){const e={};let t=&quot;default&quot;;return{getMTime:function(n){return e[n||t]||1},incrementMTime:function(n){const r=n||t;e[r]||(e[r]=1),e[r]+=1},setActiveViewId:function(e){t=e},getActiveViewId:function(){return t}}}function _A(e=&quot;default&quot;){let t=FA[e];return t||(t={...NA(),...kA(),...GA(),...UA()},FA[e]=t),t}function KA(e,t){let n=-1,r=100;const o=e=&gt;e.get(&quot;managedInstanceId&quot;).managedInstanceId,a=()=&gt;Jt(e,o);function i(t){e.set({synchronizedViewId:t},!0,!0)}function s(){return e.get(&quot;synchronizedViewId&quot;).synchronizedViewId}return{synchronize:function(o){s()||i(o.id);const a=o.mtime||0;return s()===o.id&amp;&amp;n&lt;a?new Promise(((i,s)=&gt;{const l=t.onProgressDone((()=&gt;{l.unsubscribe(),e.render(),i(!0)}));n=a,t.setActiveViewId(o.id),t.incrementMTime(),BA.updateRenderWindow(e,o,t),t.freeOldArrays(r,t)})):Promise.resolve(!1)},setSynchronizedViewId:i,getSynchronizedViewId:s,updateGarbageCollectorThreshold:function(e){r=e},getManagedInstanceIds:a,clearOneTimeUpdaters:function(){BA.clearOneTimeUpdaters(a())}}}const zA={synchronizerContextName:&quot;default&quot;,synchronizerContext:null,synchronizedViewId:null};function WA(e,t,n={}){Object.assign(t,zA,n),Eh.extend(e,t),Bt(e,t,[&quot;synchronizerContext&quot;]),function(e,t){t.classHierarchy.push(&quot;vtkSynchronizableRenderWindow&quot;),t.synchronizerContext||(t.synchronizerContext=_A(t.synchronizerContextName));const n=KA(e,t.synchronizerContext);Object.keys(n).forEach((t=&gt;{e[t]?e[t]=qt(e[t],n[t]):e[t]=n[t]}))}(e,t)}var HA={newInstance:Xt(WA,&quot;vtkSynchronizableRenderWindow&quot;),extend:WA,getSynchronizerContext:_A,setSynchronizerContext:function(e,t){FA[e]=t},clearSynchronizerContext:function(e){if(e&amp;&amp;FA[e]&amp;&amp;delete FA[e],!e){const e=Object.keys(FA);for(let t=0;t&lt;e.length;t++)delete FA[e[t]]}},decorate:function(e,t=&quot;default&quot;){const n=KA(e,_A(t));return{...n,...e,delete:qt(e.delete,n.delete)}},createInstanceMap:kA,createArrayHandler:NA,createProgressHandler:GA,createSceneMtimeHandler:UA,vtkObjectManager:BA};const{vtkErrorMacro:jA,vtkDebugMacro:XA}=sn;let qA=0;function YA(e){const t=document.querySelector(`.webResource[data-url=&quot;${e}&quot;]`);return t?t.innerHTML:null}function JA(e){return&quot;/&quot;===e[0]?e.substr(1):e}const ZA={fetchJSON:function(e,t,n={}){return new Promise(((e,n)=&gt;{const r=YA(JA(t));null===r?n(new Error(`No such JSON ${t}`)):e(JSON.parse(r))}))},fetchText:function(e,t,n={}){return new Promise(((e,n)=&gt;{const r=YA(t);null===r?n(new Error(`No such text ${t}`)):e(r)}))},fetchArray:function(e,t,n,r={}){return new Promise(((o,a)=&gt;{const i=JA([t,n.ref.basepath,r.compression?`${n.ref.id}.gz`:n.ref.id].join(&quot;/&quot;)),s=YA(i);if(null===s)a(new Error(`No such array ${i}`));else{if(&quot;string&quot;===n.dataType){let e=atob(s);r.compression&amp;&amp;(e=Jm(Xm(e))),n.values=JSON.parse(e)}else{const e=new Uint8Array(um.toArrayBuffer(s));n.buffer=new ArrayBuffer(e.length);new Uint8Array(n.buffer).set(e),r.compression&amp;&amp;(&quot;string&quot;===n.dataType||&quot;JSON&quot;===n.dataType?n.buffer=Jm(Xm(new Uint8Array(n.buffer))):n.buffer=Xm(new Uint8Array(n.buffer)).buffer),&quot;JSON&quot;===n.ref.encode?n.values=JSON.parse(n.buffer):(nh.ENDIANNESS!==n.ref.encode&amp;&amp;nh.ENDIANNESS&amp;&amp;(XA(`Swap bytes of ${n.name}`),nh.swapBytes(n.buffer,gs[n.dataType])),n.values=sn.newTypedArray(n.dataType,n.buffer)),n.values.length!==n.size&amp;&amp;jA(`Error in FetchArray: ${n.name} does not have the proper array size. Got ${n.values.length}, instead of ${n.size}`)}delete n.ref,0==--qA&amp;&amp;e?.invokeBusy&amp;&amp;e.invokeBusy(!1),e?.modified&amp;&amp;e.modified(),o(n)}}))},fetchImage:function(e,t,n={}){return new Promise(((e,n)=&gt;{const r=function(e){return document.querySelector(`.webResource[data-url=&quot;${e}&quot;]`)}(t);r?e(r):n(new Error(`No such image ${t}`))}))}};pm(&quot;html&quot;,(e=&gt;ZA));const{vtkErrorMacro:QA,vtkDebugMacro:$A}=sn;function eC(e){return function(e){return&quot;/&quot;===e[0]?e.substr(1):e}(function(e){return new URL(e,&quot;http://any&quot;).pathname}(e))}function tC(e){return new Promise(((t,n)=&gt;{&quot;string&quot;==typeof e?t(function(e,t){if(t){for(var n=new gm(e.length),r=0;r&lt;e.length;++r)n[r]=e.charCodeAt(r);return n}if(qm)return qm.encode(e);var o=e.length,a=new gm(e.length+(e.length&gt;&gt;1)),i=0,s=function(e){a[i++]=e};for(r=0;r&lt;o;++r){if(i+5&gt;a.length){var l=new gm(i+8+(o-r&lt;&lt;1));l.set(a),a=l}var c=e.charCodeAt(r);c&lt;128||t?s(c):c&lt;2048?(s(192|c&gt;&gt;6),s(128|63&amp;c)):c&gt;55295&amp;&amp;c&lt;57344?(s(240|(c=65536+(1047552&amp;c)|1023&amp;e.charCodeAt(++r))&gt;&gt;18),s(128|c&gt;&gt;12&amp;63),s(128|c&gt;&gt;6&amp;63),s(128|63&amp;c)):(s(224|c&gt;&gt;12),s(128|c&gt;&gt;6&amp;63),s(128|63&amp;c))}return Fm(a,0,i)}(e)):e instanceof Blob?t(e.arrayBuffer().then((e=&gt;new Uint8Array(e)))):e instanceof ArrayBuffer?t(new Uint8Array(e)):e?.buffer instanceof ArrayBuffer?t(new Uint8Array(e.buffer)):n(new Error(&quot;Invalid datatype to unpack.&quot;))}))}const nC={create:function(e){let t=!1,n=0,r=null,o=&quot;&quot;;return tC(e.zipContent).then((n=&gt;{r=eh(n),t=!0;const a=[];Object.keys(r).forEach((e=&gt;{e.endsWith(&quot;index.json&quot;)&amp;&amp;a.push(e)})),a.sort(((e,t)=&gt;e.length-t.length)),o=a[0].replace(/index\\.json$/,&quot;&quot;),e.callback&amp;&amp;e.callback(r)})),{fetchArray:(e,a,i,s={})=&gt;new Promise(((l,c)=&gt;{t||QA(&quot;ERROR!!! zip not ready...&quot;);const u=eC([a,i.ref.basepath,s.compression?`${i.ref.id}.gz`:i.ref.id].join(&quot;/&quot;));function d(){delete i.ref,0==--n&amp;&amp;e?.invokeBusy&amp;&amp;e.invokeBusy(!1),e?.modified&amp;&amp;e.modified(),l(i)}1==++n&amp;&amp;e?.invokeBusy&amp;&amp;e.invokeBusy(!0);const p=r[`${o}${u}`];if(&quot;string&quot;!==i.dataType||s.compression){const e=function(e,t,n){return r=&gt;{e.buffer=new ArrayBuffer(r.length),new Uint8Array(e.buffer).set(r),t&amp;&amp;(&quot;string&quot;===e.dataType||&quot;JSON&quot;===e.dataType?e.buffer=Jm(Xm(new Uint8Array(e.buffer))):e.buffer=Xm(new Uint8Array(e.buffer)).buffer),&quot;JSON&quot;===e.ref.encode?e.values=JSON.parse(e.buffer):(nh.ENDIANNESS!==e.ref.encode&amp;&amp;nh.ENDIANNESS&amp;&amp;($A(`Swap bytes of ${e.name}`),nh.swapBytes(e.buffer,gs[e.dataType])),e.values=sn.newTypedArray(e.dataType,e.buffer)),e.values.length!==e.size&amp;&amp;QA(`Error in FetchArray: ${e.name} does not have the proper array size. Got ${e.values.length}, instead of ${e.size}`),n()}}(i,s.compression,d);e(p)}else{const e=function(e,t,n){return r=&gt;{e.values=t?JSON.parse(Jm(Xm(r))):JSON.parse(r),n()}}(i,s.compression,d);e(Jm(p))}})),fetchJSON(e,n,a={}){const i=eC(n);t||QA(&quot;ERROR!!! zip not ready...&quot;);const s=r[`${o}${i}`];if(a.compression){if(&quot;gz&quot;===a.compression){const e=Jm(Xm(s));return Promise.resolve(JSON.parse(e))}return Promise.reject(new Error(&quot;Invalid compression&quot;))}return Promise.resolve(JSON.parse(Jm(s)))},fetchText(e,n,a={}){const i=eC(n);t||QA(&quot;ERROR!!! zip not ready...&quot;);const s=r[`${o}${i}`];return a.compression?&quot;gz&quot;===a.compression?Promise.resolve(Jm(eh(s))):Promise.reject(new Error(&quot;Invalid compression&quot;)):Promise.resolve(Jm(s))},fetchImage(e,n,a={}){const i=eC(n);t||QA(&quot;ERROR!!! zip not ready...&quot;);const s=r[`${o}${i}`];return new Promise(((e,t)=&gt;{const n=new Image;n.onload=()=&gt;e(n),n.onerror=t;const r=cm(s.buffer);n.src=`data:image/${function(e){const t=e.split(&quot;.&quot;).pop().toLowerCase();return&quot;jpg&quot;===t?&quot;jpeg&quot;:t}(i)};base64,${r}`}))},fetchBinary(e,n,a={}){const i=eC(n);t||QA(&quot;ERROR!!! zip not ready...&quot;);const s=r[`${o}${i}`];return a.compression?&quot;gz&quot;===a.compression?Promise.resolve(Xm(s).buffer):Promise.reject(new Error(&quot;Invalid compression&quot;)):Promise.resolve(s.buffer)}}}};pm(&quot;zip&quot;,(e=&gt;nC.create(e)));var rC=&quot;viewer-module_fullScreen__1ikg5&quot;,oC=&quot;viewer-module_bigFileDrop__2WNUb&quot;,aC=&quot;viewer-module_progress__3thF3&quot;;!function(e,t){void 0===t&amp;&amp;(t={});var n=t.insertAt;if(e&amp;&amp;&quot;undefined&quot;!=typeof document){var r=document.head||document.getElementsByTagName(&quot;head&quot;)[0],o=document.createElement(&quot;style&quot;);o.type=&quot;text/css&quot;,&quot;top&quot;===n&amp;&amp;r.firstChild?r.insertBefore(o,r.firstChild):r.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}}(&quot;.viewer-module_fullScreen__1ikg5 {\\n  position: absolute;\\n  width: 100vw;\\n  height: 100vh;\\n  top: 0;\\n  left: 0;\\n  overflow: hidden;\\n  background: black;\\n  margin: 0;\\n  padding: 0;\\n  z-index: 0;\\n  display: flex;\\n  align-items: center;\\n  justify-content: center;\\n}\\n\\n.viewer-module_fullParentSize__1f1wn {\\n  position: absolute;\\n  width: 100%;\\n  height: 100%;\\n  top: 0;\\n  left: 0;\\n  overflow: hidden;\\n}\\n\\n.viewer-module_bigFileDrop__2WNUb {\\n  position: absolute;\\n  left: 50%;\\n  top: 50%;\\n  transform: translate(-50%, -50%);\\n  background-color: white;\\n  background-image: url(&#x27;data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAASABIAAD/4QBMRXhpZgAATU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAACWKADAAQAAAABAAACWAAAAAD/7QA4UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+/8AAEQgCWAJYAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/bAEMAAQEBAQEBAgEBAgMCAgIDBAMDAwMEBQQEBAQEBQYFBQUFBQUGBgYGBgYGBgcHBwcHBwgICAgICQkJCQkJCQkJCf/bAEMBAQEBAgICBAICBAkGBQYJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCf/dAAQAJv/aAAwDAQACEQMRAD8A/v4ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/Q/v4ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/R/v4ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/S/v4ooooAKKKKACiiigAooooAKKKKACiivwu/a8/bS+PfhT46634E8Aax/Y2l6PIlukcUELvIwjVnd3lR2yWY4AIAGOM5JAP3Ror+fZ/jD/wUtto/tMlv4lCDncdFBGPU/wCi4xVvwH/wUc/aK8A+Il074qwxa3bxuFuYLi3WzukHfY0SoFbH9+Ns+3WgD9/qK4L4Y/Erwl8XfBNj4+8E3H2iwvk3Lnh43HDxyLztdDww/EEggnvaACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAa7pGhkkIVVGSTwABXiF1+01+zvZztbXHjfRA6HBAvoWwfqGIrG/a3vbrT/2afGtxZuY3OlzJkddsgCMPxUkV+Av7KP7PVt+0p8RbzwJdaq2kLa6dJfeckInLGOWKPZtLpjPm5znt05oA/oL/AOGpP2cf+h40X/wMi/8Aiq6Twr8dPgx441dNA8H+KtK1K+kBKW9vdRPK4UZO1A25sAZOAcDmvzX/AOHTWj/9DxN/4L1/+SK9T+C//BN/w18JfiVpfxGuvFFzqb6TL58UC2y24aQAhdziVyVBOSABnoTgmgD9KqKx9S8Q6Bo11bWOr31vazXjbLeOaVEaVv7qKxBY+wzWxQAUVjjxF4fOtHw2L63OohPMNr5qecE/veXndj3xik1zxH4e8L2Q1LxLf2+nW5YIJbmVIULN0Xc5AyewoA2aKo3eqaZp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hgQPs/x14B8HfEzwzceD/Henxalp1yPnhlB6joysMMrDsykMOxFfnhrv/BLD4N32otdaFruq2EDNkwsYZgo9FYorY9N24+pNAHJfGf8Aa5/Z6+FXjCy8PfAPwZoniTVkmUS3VrbQxxIxICxwSwxkySMT95PlXj7xyB+sttJJNbxyzRmJ2UFkJBKkjkEjjjpxXyJ8Ev2HvgX8DtYj8T6Pb3GratCd0N3qLrI0JxjMSIiRqfRipYdmFfYNABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH//0P7+KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoor8+/gB+1d8RPir+1V42+BviGy06HSfDf9pfZpbeOZbh/sd9HbR+YzzOhyjkttRctgjA4oA/QSiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACivjz9tr9oPxn+zb8KtP8c+Brayuru71aKwdL9JJIxHJBPKSBFJE27dEuDuIwTx3H0F8JfFmo+PPhV4Z8c6wkcd3rWk2V/OkIIjWS5gSVwgYswUMxwCxOOpPWgD0GiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/0f7+KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr8X/2M/8AlIh8Vv8AuO/+naCv2gr8X/2M/wDlIh8Vv+47/wCnaCgD9oKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/Mf/gq5/ybvo3/AGMdv/6SXlfaH7N//Ju/gL/sXNL/APSSKvi//gq5/wAm76N/2Mdv/wCkl5X2h+zf/wAm7+Av+xc0v/0kioA9oooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//0v7+KKKKACiiigAooooAKKKKACiiigAooooAKCQBk1538Uvir4G+DXg+48c/EG+WysLfgZ5klkP3Y4kHLu2OAO2ScAEj8cvEHxc/ai/4KAeI7rwT8HLeTw74Miby7mVnMaFD/wA/c6gl2Yc+RFkY6hgN9AH358af2+P2fvg5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X8sniDWbrxHr194hvf8AXX9xLcSd/mlYu36mv6ldc0bTfEei3fh7WYzLZ38MlvOgZkLRyqUddyEMMqSMggjsa+Zf+GIP2Xv+hXH/AIG3v/x+vO4Vz7D4HndVNt22t09Wj0OKshxGO5FSaSV979fRM/nzt4JrqdLa3UvJIwVVHUknAA+pr+pTwV4dh8IeDtJ8J2+NmmWcFouOmIY1TP6V4Npf7GX7NWjanbaxp3hoR3FpKk0TG7u2AeNgyna0xU4IHBBB719P0+KuI6WOUI0U0lfe36Nhwrw5UwPPKs027bX/AFSCiiivjj7AK+MP2s/2U7P476YniXww0dp4msY9kbvxHcxDkRSHsQc7H7ZIPByv2fRXXgcdUw1VVqTs0cmOwNLE0nRqq6Z/LL4t8G+KvAety+G/GNhNp19CfmimUqcdiD0ZT2ZSQexNczX9SXjHwB4J+IWm/wBkeN9KttUtxkqtxGrlCe6MRlD7qQa+RfEn/BPP9n7W5mm0oajpGeQlrcB0H4TpK2P+BV+nYHj+hKNsRFp+Wq/zPzHHcAV4yvh5Jrz0f+R+E9Ffsyf+CaHw08zI8Q6ns9NsOfz2/wBK7fQP+CdvwC0mRZdUk1PVMclJ7hUQ/wDfmONsf8Cr0J8cYBK6bfy/zPPhwPj27NJfP/I/C+v6fvhL4f8A+EU+Fvhzw0y7WsdNtYXH+2kShj9S2SaxvBXwG+Dfw8ZJfB/huxtJk+7MYxJMMeksm6T/AMer1uvheJ+JY45RhTi0l36n3XDHDUsC5TqSTb7dAooor5A+vCiiigD/0/7+KKKKACiiigArl/E/hHRvFUcEmoQxtdWL+fZzsoZrecDCyLnuDg4PBwM9K6iik0nozKtRhUi4TV0fOH7O3wNl+D2malPrc6Xmq6jcMZJ0yR5KE+WPm5y2S7e5A525r6PooqadNQjyxOTKsro4LDxw2HVoxCiiirPQCiiigAooooAK8v1L4K/CjVtcTxNdaBZpqSHIuoY/Jmz6mSLYxPuTXqFFa0q04awdvQzqUYT0mrkUMKW8KwRliqAAFmLHj1ZiST7k5qWiisjQKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/1P7+KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/2Q==&#x27;);\\n  background-repeat: no-repeat;\\n  background-position: center;\\n  background-size: contain;\\n  border-radius: 10px;\\n  width: 50px;\\n  padding: calc(50vh - 2em) calc(50vw - 25px - 2em);\\n  cursor: pointer;\\n}\\n\\n.viewer-module_progress__3thF3 {\\n  flex: none;\\n  font-size: 50px;\\n  color: black;\\n  z-index: 1;\\n  background: rgba(128, 128, 128, 0.5);\\n  padding: 20px;\\n  border-radius: 10px;\\n  -webkit-user-select: none;\\n     -moz-user-select: none;\\n          user-select: none;\\n}\\n\\nbody {\\n  margin: 0;\\n}\\n\\nhtml {\\n  overflow: hidden;\\n}\\n&quot;);let iC=!0;function sC(e){e.preventDefault(),e.stopPropagation()}function lC(e,t){iC=!1,function(e){for(;e.firstChild;)e.removeChild(e.firstChild)}(e);const n=Vy.newInstance({background:[1,1,1],rootContainer:e,containerStyle:{height:&quot;100%&quot;,width:&quot;100%&quot;,position:&quot;absolute&quot;}}).getRenderWindow(),r=HA.getSynchronizerContext(),o=HA.decorate(n);function a(e){r.setFetchArrayFunction((t=&gt;Promise.resolve(e.hashes[t].content))),console.log(Object.keys(e)),o.synchronize(e.scene),o.render()}if(global.renderWindow=n,t.fileURL||t.url){const n=document.createElement(&quot;div&quot;);n.setAttribute(&quot;class&quot;,aC),e.appendChild(n);const r=e=&gt;{if(e.lengthComputable){const t=Math.floor(100*e.loaded/e.total);n.innerHTML=`Loading ${t}%`}else n.innerHTML=sn.formatBytesToProperUnit(e.loaded)};t.fileURL?sh.fetchBinary(t.fileURL,{progressCallback:r}).then((t=&gt;{e.removeChild(n);const r=fm.get(&quot;zip&quot;,{zipContent:t,callback:e=&gt;{r.fetchJSON(null,&quot;index.json&quot;).then(a)}})})):sh.fetchJSON(t.url,{progressCallback:r}).then((t=&gt;{e.removeChild(n),a(t)}))}else if(t.file){const e=fm.get(&quot;zip&quot;,{zipContent:t.file,callback:t=&gt;{e.fetchJSON(null,&quot;index.json&quot;).then(a)}})}else if(t.base64Str){const e=um.toArrayBuffer(t.base64Str),n=fm.get(&quot;zip&quot;,{zipContent:e,callback:e=&gt;{n.fetchJSON(null,&quot;index.json&quot;).then(a)}})}}function cC(e){iC=!1;const t=document.querySelector(&quot;.content&quot;)||document.querySelector(&quot;#vtk-root&quot;),n=document.querySelector(&quot;body&quot;),r=e||t||n;r!==e?(r.classList.add(rC),n.style.margin=&quot;0&quot;,n.style.padding=&quot;0&quot;):(n.style.margin=&quot;0&quot;,n.style.padding=&quot;0&quot;);const o=document.createElement(&quot;div&quot;);o.innerHTML=`&lt;div class=&quot;${oC}&quot;/&gt;&lt;input type=&quot;file&quot; accept=&quot;.zip,.vtksz&quot; style=&quot;display: none;&quot;/&gt;`,r.appendChild(o);const a=o.querySelector(&quot;input&quot;);function i(e){sC(e);const t=e.dataTransfer,n=e.target.files||t.files;if(1===n.length){r.removeChild(o);const e=n[0].name.split(&quot;.&quot;).slice(-1)[0];lC(r,{file:n[0],ext:e})}}a.addEventListener(&quot;change&quot;,i),o.addEventListener(&quot;drop&quot;,i),o.addEventListener(&quot;click&quot;,(e=&gt;a.click())),o.addEventListener(&quot;dragover&quot;,sC)}const uC=gv.extractURLParameters();if(uC.url||uC.fileURL){const e=document.querySelector(&quot;.content&quot;)||document.querySelector(&quot;#vtk-root&quot;),t=document.querySelector(&quot;body&quot;),n=e||t;n&amp;&amp;(n.classList.add(rC),t.style.margin=&quot;0&quot;,t.style.padding=&quot;0&quot;),iC=!1,function(e){if(!window.frameElement)return e(),!0;const t=window.frameElement.getClientRects().length&gt;0;t?e():function(e,t){new window.parent.IntersectionObserver(((e,n)=&gt;{e.forEach((e=&gt;{e.intersectionRatio&gt;0&amp;&amp;(t(),n.disconnect())}))})).observe(e)}(window.frameElement,e)}((()=&gt;lC(n,uC)))}return setTimeout((()=&gt;{iC&amp;&amp;cC()}),100),window.OfflineLocalView={initLocalFileLoader:cC,load:lC},e.initLocalFileLoader=cC,e.load=lC,Object.defineProperty(e,&quot;__esModule&quot;,{value:!0}),e}({});\n",
       "&lt;/script&gt;\n",
       "&lt;script&gt;\n",
       "var container = document.querySelector(&#x27;#vtk-root&#x27;);\n",
       "var base64Str = &quot;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&quot;;\n",
       "\n",
       "OfflineLocalView.load(container, { base64Str });\n",
       "&lt;/script&gt;\n",
       "  &lt;/body&gt;\n",
       "&lt;/html&gt;\n",
       "\" class=\"pyvista\" style=\"width: 100%; height: 600px; border: 1px solid #ddd;\" loading=\"lazy\"></iframe>"
      ],
      "text/plain": [
       "<interactive PyVista scene>"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "asc_tree = Morphology.from_asc(\"../../data/morphology/goc.asc\")\n",
    "\n",
    "print(asc_tree.metric)\n",
    "\n",
    "asc_tree.vis2d(layout='projected', shape='line')\n",
    "asc_tree.vis3d(notebook=True, jupyter_backend=\"html\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8b8da4bf",
   "metadata": {},
   "source": [
    "## Summary\n",
    "\n",
    "You have now seen the core morphology workflow in BrainCell:\n",
    "\n",
    "- Build single branches with `from_lengths(...)` or `from_points(...)`.\n",
    "- Compare `radii` with `radii_proximal` / `radii_distal`, including a radius-jump example.\n",
    "- Inspect `Branch` attributes, topology, and morphology-level metrics.\n",
    "- Assemble an editable `Morphology` tree from those branches, including typed branch wrappers such as `Soma` and `Axon`.\n",
    "- Import reconstructed morphologies from `SWC` and `ASC` files with the basic entry points.\n",
    "\n",
    "A good next step is `cell.ipynb`, where morphology becomes the structural input to a multi-compartment cell model."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "braincell",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.15"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
