@niivue/niivue 0.53.1 → 0.54.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/index.d.ts CHANGED
@@ -683,6 +683,8 @@ declare enum COLORMAP_TYPE {
683
683
  type NVConfigOptions = {
684
684
  textHeight: number;
685
685
  colorbarHeight: number;
686
+ colorbarWidth: number;
687
+ showColorbarBorder: boolean;
686
688
  crosshairWidth: number;
687
689
  crosshairWidthUnit: 'voxels' | 'mm' | 'percent';
688
690
  crosshairGap: number;
@@ -772,6 +774,7 @@ type NVConfigOptions = {
772
774
  isAlphaClipDark: boolean;
773
775
  gradientOrder: number;
774
776
  gradientOpacity: number;
777
+ gradientAmount: number;
775
778
  invertScrollDirection: boolean;
776
779
  };
777
780
  declare const DEFAULT_OPTIONS: NVConfigOptions;
package/build/index.js CHANGED
@@ -17,7 +17,7 @@ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "
17
17
  import { mat4 as mat49, vec2, vec3 as vec314, vec4 as vec49 } from "gl-matrix";
18
18
 
19
19
  // package.json
20
- var version = "0.53.1";
20
+ var version = "0.54.0";
21
21
 
22
22
  // src/logger.ts
23
23
  var _Log = class _Log {
@@ -20386,6 +20386,10 @@ var COLORMAP_TYPE = /* @__PURE__ */ ((COLORMAP_TYPE2) => {
20386
20386
  var DEFAULT_OPTIONS = {
20387
20387
  textHeight: 0.06,
20388
20388
  colorbarHeight: 0.05,
20389
+ colorbarWidth: -1,
20390
+ // automatic (full width)
20391
+ showColorbarBorder: true,
20392
+ // show border around the colorbar
20389
20393
  crosshairWidth: 1,
20390
20394
  crosshairWidthUnit: "voxels",
20391
20395
  crosshairGap: 0,
@@ -20492,6 +20496,7 @@ var DEFAULT_OPTIONS = {
20492
20496
  isAlphaClipDark: false,
20493
20497
  gradientOrder: 1,
20494
20498
  gradientOpacity: 0,
20499
+ gradientAmount: 0,
20495
20500
  invertScrollDirection: false
20496
20501
  };
20497
20502
  var INITIAL_SCENE_DATA = {
@@ -28286,10 +28291,13 @@ var Niivue = class {
28286
28291
  this.renderShader = this.renderVolumeShader;
28287
28292
  if (this.renderGradientValues) {
28288
28293
  this.renderShader = this.renderGradientValuesShader;
28289
- } else if (gradientAmount > 0 || this.opts.gradientOpacity > 0) {
28290
- this.renderShader = this.renderGradientShader;
28291
- } else if (gradientAmount < 0) {
28292
- this.renderShader = this.renderSliceShader;
28294
+ } else {
28295
+ this.opts.gradientAmount = gradientAmount;
28296
+ if (gradientAmount > 0 || this.opts.gradientOpacity > 0) {
28297
+ this.renderShader = this.renderGradientShader;
28298
+ } else if (gradientAmount < 0) {
28299
+ this.renderShader = this.renderSliceShader;
28300
+ }
28293
28301
  }
28294
28302
  this.initRenderShader(this.renderShader, gradientAmount);
28295
28303
  this.renderShader.use(this.gl);
@@ -28323,6 +28331,9 @@ var Niivue = class {
28323
28331
  }
28324
28332
  this.initRenderShader(this.renderShader, this.gradientTextureAmount);
28325
28333
  this.renderShader.use(this.gl);
28334
+ if (this.gradientTextureAmount > 0) {
28335
+ this.refreshLayers(this.volumes[0], 0);
28336
+ }
28326
28337
  this.drawScene();
28327
28338
  }
28328
28339
  // not included in public docs.
@@ -28481,6 +28492,8 @@ var Niivue = class {
28481
28492
  this.refreshDrawing();
28482
28493
  }
28483
28494
  }
28495
+ await this.setGradientOpacity(this.opts.gradientOpacity);
28496
+ await this.setVolumeRenderIllumination(this.opts.gradientAmount);
28484
28497
  this.updateGLVolume();
28485
28498
  this.drawScene();
28486
28499
  this.onDocumentLoaded(document2);
@@ -32771,7 +32784,15 @@ var Niivue = class {
32771
32784
  let txtHt = Math.max(this.opts.textHeight, 0.01);
32772
32785
  txtHt = txtHt * Math.min(this.gl.canvas.height, this.gl.canvas.width);
32773
32786
  const fullHt = 3 * txtHt;
32774
- const leftTopWidthHeight = [0, this.gl.canvas.height - fullHt, this.gl.canvas.width, fullHt];
32787
+ const widthPercentage = this.opts.colorbarWidth > 0 && this.opts.colorbarWidth <= 1 ? this.opts.colorbarWidth : 1;
32788
+ const width = widthPercentage * this.gl.canvas.width;
32789
+ const leftTopWidthHeight = [
32790
+ (this.gl.canvas.width - width) / 2,
32791
+ // Center the colorbar horizontally
32792
+ this.gl.canvas.height - fullHt,
32793
+ width,
32794
+ fullHt
32795
+ ];
32775
32796
  this.colorbarHeight = leftTopWidthHeight[3] + 1;
32776
32797
  return leftTopWidthHeight;
32777
32798
  }
@@ -32797,7 +32818,9 @@ var Niivue = class {
32797
32818
  this.colorbarHeight = leftTopWidthHeight[3] + 1;
32798
32819
  const barLTWH = [leftTopWidthHeight[0] + margin, leftTopWidthHeight[1], leftTopWidthHeight[2] - 2 * margin, barHt];
32799
32820
  const rimLTWH = [barLTWH[0] - 1, barLTWH[1] - 1, barLTWH[2] + 2, barLTWH[3] + 2];
32800
- this.drawRect(rimLTWH, this.opts.crosshairColor);
32821
+ if (this.opts.showColorbarBorder) {
32822
+ this.drawRect(rimLTWH, this.opts.crosshairColor);
32823
+ }
32801
32824
  if (!this.colorbarShader) {
32802
32825
  throw new Error("colorbarShader undefined");
32803
32826
  }