Skip to main content

Class: CompositeVoxelManager<T>

A simple, standard interface to the values associated with a voxel.

This interface is STRUCTURAL. VoxelManager implements it, and so can any other object - a composite that holds several sub voxel managers, for example. An earlier version of this file aliased the class (export type IVoxelManager<T> = VoxelManager<T>), and an alias admits only a subclass.

FOUR MEMBERS ARE OPTIONAL, and they are optional for a reason. They are not methods of the class. They are function-valued properties that a factory installs on the instance after the constructor returns, and only some of the factories install them:

  • getCompleteScalarDataArray
  • setCompleteScalarDataArray
  • invalidateCache
  • getRange

VoxelManager.createScalarVolumeVoxelManager and VoxelManager.createImageVoxelManager install none of the four, so a call to getRange() on one of those instances throws a TypeError.

A caller that holds a VOLUME voxel manager does not need a guard. Use IVolumeVoxelManager for that case, and see the note on that interface.

Type Parameters​

• T

Implements​

Constructors​

new CompositeVoxelManager()​

new CompositeVoxelManager<T>(__namedParameters): CompositeVoxelManager<T>

Parameters​

• __namedParameters: CompositeVoxelManagerOptions<T>

Returns​

CompositeVoxelManager<T>

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:629

Properties​

primary​

readonly primary: IVoxelManager<T>

The representation that defines the index space of the composite.

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:618

Accessors​

_get​

get _get(): (index) => T

Gets the value at a flat index. The factory supplies this function.

Returns​

Function

Parameters​

• index: number

Returns​

T

Gets the value at a flat index. The factory supplies this function.

Implementation of​

IVoxelManager._get

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1870


_getConstructor​

get _getConstructor(): () => (length) => PixelDataTypedArray

Gives the typed array constructor that the data expands to.

Returns​

Function

Returns​

Function

Parameters​

• length: number

Returns​

PixelDataTypedArray

Gives the typed array constructor that the data expands to.

Implementation of​

IVoxelManager._getConstructor

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1876


_getScalarData​

get _getScalarData(): () => ArrayLike<number>

Produces the scalar data, for a voxel manager that stores no array.

Returns​

Function

Returns​

ArrayLike<number>

Produces the scalar data, for a voxel manager that stores no array.

Implementation of​

IVoxelManager._getScalarData

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1882


_getScalarDataLength​

get _getScalarDataLength(): () => number

Gives the length of the array that getScalarData produces.

Returns​

Function

Returns​

number

Gives the length of the array that getScalarData produces.

Implementation of​

IVoxelManager._getScalarDataLength

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1879


_getSliceData​

get _getSliceData(): (args) => PixelDataTypedArray

Produces the data of one slice. No factory installs this member today, and no code reads it.

Returns​

Function

Parameters​

• args

• args.sliceIndex: number

• args.slicePlane: number

Returns​

PixelDataTypedArray

Produces the data of one slice. No factory installs this member today, and no code reads it.

Implementation of​

IVoxelManager._getSliceData

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1888


_set​

get _set(): (index, v) => boolean

Sets the value at a flat index. The factory supplies this function.

Returns​

Function

Parameters​

• index: number

• v: T

Returns​

boolean

Sets the value at a flat index. The factory supplies this function.

Implementation of​

IVoxelManager._set

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1873


_updateScalarData​

get _updateScalarData(): (scalarData) => PixelDataTypedArray

Refreshes an array that a caller holds from the sparse store.

Returns​

Function

Parameters​

• scalarData: ArrayLike<number>

Returns​

PixelDataTypedArray

Refreshes an array that a caller holds from the sparse store.

Implementation of​

IVoxelManager._updateScalarData

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1885


bytePerVoxel​

get bytePerVoxel(): number

The number of bytes in one voxel.

Returns​

number

The number of bytes in one voxel.

Implementation of​

IVoxelManager.bytePerVoxel

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1867


dimensions​

get dimensions(): Point3

The dimensions of the grid, as [width, height, depth].

Returns​

Point3

The dimensions of the grid, as [width, height, depth].

Implementation of​

IVoxelManager.dimensions

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1822


frameSize​

get frameSize(): number

dimensions[0] * dimensions[1], the number of voxels in one frame.

set frameSize(frameSize): void

dimensions[0] * dimensions[1], the number of voxels in one frame.

Parameters​

• frameSize: number

Returns​

number

dimensions[0] * dimensions[1], the number of voxels in one frame.

Implementation of​

IVoxelManager.frameSize

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1834


getCompleteScalarDataArray​

get getCompleteScalarDataArray(): () => ArrayLike<number>

Returns every voxel in one array. A factory installs this member, so a caller that does not know which factory made this voxel manager must guard the call. THE ARRAY IS READ ONLY: a write into the array does not reach the voxels.

Returns​

Function

Returns​

ArrayLike<number>

Returns every voxel in one array. A factory installs this member, so a caller that does not know which factory made this voxel manager must guard the call. THE ARRAY IS READ ONLY: a write into the array does not reach the voxels.

Implementation of​

IVoxelManager.getCompleteScalarDataArray

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1891


getRange​

get getRange(): () => [number, number]

Gets the [min, max] pair of the data. A factory installs this member.

Returns​

Function

Returns​

[number, number]

Gets the [min, max] pair of the data. A factory installs this member.

Implementation of​

IVoxelManager.getRange

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1900


grid​

get grid(): VoxelGrid

The grid of the primary representation.

Returns​

VoxelGrid

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:658


id​

get id(): string

The identifier that the factory gave this voxel manager.

Returns​

string

The identifier that the factory gave this voxel manager.

Implementation of​

IVoxelManager.id

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1819


invalidateCache​

get invalidateCache(): () => void

Drops any cached lookup. A factory installs this member.

Returns​

Function

Returns​

void

Drops any cached lookup. A factory installs this member.

Implementation of​

IVoxelManager.invalidateCache

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1897


isInObject​

get isInObject(): (pointLPS, pointIJK) => boolean

The default test that forEach applies, when the options give no test.

set isInObject(isInObject): void

The default test that forEach applies, when the options give no test.

Parameters​

• isInObject

Returns​

Function

Parameters​

• pointLPS: any

• pointIJK: any

Returns​

boolean

The default test that forEach applies, when the options give no test.

Implementation of​

IVoxelManager.isInObject

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1858


map​

get map(): Map<number, T> | IRLEVoxelMap<T>

The sparse store, for a voxel manager that a factory backed with a map or with an RLE map. It is undefined for a voxel manager over a typed array.

set map(map): void

The sparse store, for a voxel manager that a factory backed with a map or with an RLE map. It is undefined for a voxel manager over a typed array.

Parameters​

• map: Map<number, T> | IRLEVoxelMap<T>

Returns​

Map<number, T> | IRLEVoxelMap<T>

The sparse store, for a voxel manager that a factory backed with a map or with an RLE map. It is undefined for a voxel manager over a typed array.

Implementation of​

IVoxelManager.map

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1840


modifiedSlices​

get modifiedSlices(): Set<number>

The k indices of the frames that a write changed.

Returns​

Set<number>

The k indices of the frames that a write changed.

Implementation of​

IVoxelManager.modifiedSlices

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1855


numberOfComponents​

get numberOfComponents(): number

The number of components in each voxel. 1 for grayscale, 3 for RGB.

Returns​

number

The number of components in each voxel. 1 for grayscale, 3 for RGB.

Implementation of​

IVoxelManager.numberOfComponents

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1825


points​

get points(): Set<number>

The indices that a caller recorded with addPoint.

Returns​

Set<number>

The indices that a caller recorded with addPoint.

Implementation of​

IVoxelManager.points

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1852


setCompleteScalarDataArray​

get setCompleteScalarDataArray(): (scalarData) => void

Writes every voxel from one array. A factory installs this member.

Returns​

Function

Parameters​

• scalarData: ArrayLike<number>

Returns​

void

Writes every voxel from one array. A factory installs this member.

Implementation of​

IVoxelManager.setCompleteScalarDataArray

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1894


sizeInBytes​

get sizeInBytes(): number

The size of the data in bytes.

Returns​

number

The size of the data in bytes.

Implementation of​

IVoxelManager.sizeInBytes

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1864


sourceVoxelManager​

get sourceVoxelManager(): IVoxelManager<T>

The voxel manager that this one writes through to, for a history voxel manager or a preview voxel manager.

set sourceVoxelManager(voxelManager): void

The voxel manager that this one writes through to, for a history voxel manager or a preview voxel manager.

Parameters​

• voxelManager: IVoxelManager<T>

Returns​

IVoxelManager<T>

The voxel manager that this one writes through to, for a history voxel manager or a preview voxel manager.

Implementation of​

IVoxelManager.sourceVoxelManager

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1846


width​

get width(): number

dimensions[0], kept as a field because the index arithmetic reads it.

set width(width): void

dimensions[0], kept as a field because the index arithmetic reads it.

Parameters​

• width: number

Returns​

number

dimensions[0], kept as a field because the index arithmetic reads it.

Implementation of​

IVoxelManager.width

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1828

Methods​

acceptData()​

acceptData(__namedParameters): VoxelRepresentation<T>

Takes new data at a stated quality.

A loader calls this member when a brick, a sub-resolution frame or a full frame arrives. The data goes into the representation of its own grid, and the composite adds that representation when the composite does not hold it yet.

THE UNIT OF A DELIVERY IS NOT ALWAYS A FRAME. bounds states the region that the delivery covered, in the index space of that representation, so a brick of a brick store and a tile of a whole slide image each state their own box. frameIndex is the convenience for the case of one frame, and it builds the bounds of one k slice.

A call that states neither bounds nor frameIndex states the quality of every voxel that no delivery covers.

Parameters​

• __namedParameters

• __namedParameters.bounds?: BoundsIJK

• __namedParameters.frameIndex?: number

• __namedParameters.grid: VoxelGrid

• __namedParameters.imageIds?: string[]

The images of the image cache that hold the voxels of this representation, one for each slice of its grid. A loader that delivers a reduced level of a server store, or a brick, states them, and the voxels then live in the image cache with the full-resolution frames.

• __namedParameters.quality?: ImageQualityStatus = ImageQualityStatus.FULL_RESOLUTION

• __namedParameters.reduction?: VoxelReduction

How this data reached its spacing. none by default.

• __namedParameters.source?: VoxelDataSource

Where this data came from. A direct load by default.

• __namedParameters.statistic?: VoxelStatistic = VoxelStatistics.Average

• __namedParameters.voxelManager?: IVoxelManager<T>

Returns​

VoxelRepresentation<T>

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1063


addPoint()​

addPoint(point): void

Records a point, for example a point that the user clicked.

Parameters​

• point: number | Point3

Returns​

void

Implementation of​

IVoxelManager.addPoint

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1966


addRepresentation()​

addRepresentation(representation): VoxelRepresentation<T>

Adds a representation. The caller owns the voxel manager and the grid.

A representation that shares the key of a representation that the composite already holds REPLACES that representation, because one region at one resolution at one statistic has one sub voxel manager.

Parameters​

• representation: VoxelRepresentation<T>

Returns​

VoxelRepresentation<T>

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:674


clear()​

clear(): void

Clears the sparse store, the recorded frames, the points and the bounds.

Returns​

void

Implementation of​

IVoxelManager.clear

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1975


clearBounds()​

clearBounds(): void

Resets the recorded bounds.

Returns​

void

Implementation of​

IVoxelManager.clearBounds

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1926


coveringRepresentations()​

coveringRepresentations(region?, statistic?): VoxelRepresentation<T>[]

Gives every representation that covers the region, from the finest to the coarsest. A read that finds no value in one representation continues with the next, so a region that no representation covers yet - A HOLE - still gives a value from the coarsest representation that covers it. The user must not see a blank region.

Parameters​

• region?: BoundsIJK

• statistic?: VoxelStatistic

Returns​

VoxelRepresentation<T>[]

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:760


createRepresentation()​

createRepresentation(__namedParameters): VoxelRepresentation<T>

Derives a new representation, and adds it to the composite.

The source is the representation of sourceGrid, or the best that the composite holds. A box size is a whole number of at least 1, so the result is never finer than its source: A DERIVATION ALWAYS GOES FROM A HIGHER RESOLUTION TO A LOWER ONE, and data that no derivation can give comes from a direct load through acceptData.

Parameters​

• __namedParameters: CreateVoxelRepresentationOptions

Returns​

VoxelRepresentation<T>

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:778


dispose()​

dispose(): void

Stops every derivation that still runs. A volume that discards its composite calls this member, because a batch would otherwise write into a representation that nothing reads.

Returns​

void

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:862


fillGrid()​

fillGrid(grid, target, statistic): number

Fills a target grid from the best sources that the composite holds.

A FILL IS MANY TO ONE. Several representations can cover one region between them, which is the brick case, so the fill asks the composite for a value at each voxel of the target, and the composite answers from the best source that holds that voxel. There is no strategy parameter in this version.

Parameters​

• grid: VoxelGrid

• target: IVoxelManager<T>

• statistic: VoxelStatistic = VoxelStatistics.Average

Returns​

number

the number of voxels of the target that the fill wrote

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1514


forEach()​

forEach(callback, options?): void | PointInShape[]

Applies a callback to the voxels of this voxel manager. The iteration covers the bounds of the options, or the recorded bounds, or the whole grid. A voxel manager over a map iterates over the stored values only.

Both direction and spacing must reach this method through options.imageData for the LPS calculation.

The result holds the points only when options.returnPoints is true. The RLE path gives no result at all, which is why void is part of the type.

Parameters​

• callback: any

• options?: VoxelManagerForEachOptions

Returns​

void | PointInShape[]

Implementation of​

IVoxelManager.forEach

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1929


getArrayOfModifiedSlices()​

getArrayOfModifiedSlices(): number[]

The k indices of the frames that a write changed.

Returns​

number[]

Implementation of​

IVoxelManager.getArrayOfModifiedSlices

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1960


getAtIJK()​

getAtIJK(i, j, k): T

Gets the value at position i,j,k. Use this method, and not getAtIJKPoint, where the performance matters.

Parameters​

• i: number

• j: number

• k: number

Returns​

T

Implementation of​

IVoxelManager.getAtIJK

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1789


getAtIJKPoint()​

getAtIJKPoint(point): T

Gets the value at an IJK point.

Parameters​

• point: Point3

Returns​

T

Implementation of​

IVoxelManager.getAtIJKPoint

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1809


getAtIndex()​

getAtIndex(index): T

Gets the value at a flat index.

Parameters​

• index: number

Returns​

T

Implementation of​

IVoxelManager.getAtIndex

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1812


getBoundsIJK()​

getBoundsIJK(): BoundsIJK

The bounds of the voxels that a write changed, or the whole grid.

Returns​

BoundsIJK

Implementation of​

IVoxelManager.getBoundsIJK

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1920


getConstructor()​

getConstructor(): (length) => PixelDataTypedArray

The typed array constructor for the data. Defaults to Float32Array.

Returns​

Function

Parameters​

• length: number

Returns​

PixelDataTypedArray

Implementation of​

IVoxelManager.getConstructor

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1951


getDefaultBounds()​

getDefaultBounds(): BoundsIJK

The bounds of the whole grid.

Returns​

BoundsIJK

Implementation of​

IVoxelManager.getDefaultBounds

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1917


getGridQuality()​

getGridQuality(grid, __namedParameters): VoxelQualityRecord

The record of the data that a grid holds when it reads the best source of the composite.

A representation of that grid answers for itself. A grid that no representation holds is the grid of a texture that fills by box average straight from the source, and the record of the source deliveries, mapped into that grid, is then the record of the texture.

Parameters​

• grid: VoxelGrid

• __namedParameters = {}

• __namedParameters.region?: BoundsIJK

• __namedParameters.statistic?: VoxelStatistic = VoxelStatistics.Average

Returns​

VoxelQualityRecord

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:875


getMiddleSliceData()​

getMiddleSliceData(): PixelDataTypedArray

Gets the data of the middle slice on the k axis.

Returns​

PixelDataTypedArray

Implementation of​

IVoxelManager.getMiddleSliceData

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1958


getMinMax()​

getMinMax(): object

The min and max of the data.

A grayscale voxel manager gives a number for each of the two values, and an RGB voxel manager gives an array of three numbers, so the type of each value is T. A caller over a union of the two must test the result.

Returns​

object

max​

max: T

min​

min: T

Implementation of​

IVoxelManager.getMinMax

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1972


getPoints()​

getPoints(): Point3[]

The recorded points, as IJK points.

Returns​

Point3[]

Implementation of​

IVoxelManager.getPoints

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1969


getQuality()​

getQuality(selector): VoxelQualityRecord

The absolute record of the data that a reader would get for a region.

The reader states the same three inputs that the selection takes, so a reader that will draw at one eighth passes that ceiling and gets the record of the representation that it will really read. TWO VIEWPORTS OVER ONE VOLUME CAN THEREFORE HOLD A DIFFERENT RECORD AT ONE MOMENT, and each record is correct for its reader.

The record states no verdict. Commit 4 of this work adds the pure function that compares a record against the requirement of one reader.

Parameters​

• selector: VoxelRepresentationSelector = {}

Returns​

VoxelQualityRecord

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1559


getRegionQuality()​

getRegionQuality(representation, region?): VoxelQualityRecord

The absolute record of what one representation holds for a region.

The region belongs to the index space of the composite, and the function maps that region into the grid of the representation. The record then aggregates the deliveries that meet the region: THE RECORD OF ONE DELIVERY AND THE RECORD OF A REGION ARE THE SAME THING AT TWO SCALES.

The record states no verdict. A reader compares the record against its own requirement, so two viewports over one volume can report differently.

Parameters​

• representation: VoxelRepresentation<T>

• region?: BoundsIJK

Returns​

VoxelQualityRecord

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1441


getRepresentation()​

getRepresentation(grid, statistic): VoxelRepresentation<T>

Gives one representation DIRECTLY, by its grid and its statistic. No selection rule applies to a read through the result. A render path does this when it draws the sub-resolution data, and this is the only way to reach a statistic that a default selection does not consider.

Parameters​

• grid: VoxelGrid

• statistic: VoxelStatistic = VoxelStatistics.Average

Returns​

VoxelRepresentation<T>

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:697


getRepresentations()​

getRepresentations(): VoxelRepresentation<T>[]

Every representation that the composite holds, the primary included.

Returns​

VoxelRepresentation<T>[]

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:663


getScalarData()​

getScalarData(storeScalarData?): PixelDataTypedArray

Gets the scalar data. storeScalarData keeps an expansion, so that the next call returns the expansion and does not repeat the work.

Parameters​

• storeScalarData?: boolean

Returns​

PixelDataTypedArray

Throws​

Error - when no scalar data is available.

Implementation of​

IVoxelManager.getScalarData

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1936


getScalarDataLength()​

getScalarDataLength(): number

The length of the array that getScalarData produces.

Returns​

number

Throws​

Error - when the length can be neither measured nor derived.

Implementation of​

IVoxelManager.getScalarDataLength

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1948


getSliceData()​

getSliceData(args): PixelDataTypedArray

Gets the data of one slice, on one of the three axis aligned planes.

Parameters​

• args

• args.sliceIndex: number

• args.slicePlane: number

Returns​

PixelDataTypedArray

Implementation of​

IVoxelManager.getSliceData

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1954


getWritableScalarData()​

getWritableScalarData(): PixelDataTypedArray

The backing store that a caller can write into, or undefined when this voxel manager has none.

Returns​

PixelDataTypedArray

Implementation of​

IVoxelManager.getWritableScalarData

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1942


refreshDerivedFrames()​

refreshDerivedFrames(bounds, grid, statistic): number

Redoes the part of every derived representation that a delivery changed.

A derived voxel is a box of source voxels, and createRepresentation computes that box once, from the data that the composite held at that moment. A streaming loader delivers its frames after that moment, so without this member a derived representation keeps the empty result of the derivation for ever.

The work covers the boxes that the delivery touches, and not the whole volume: a volume of 3720 frames re-derives far too slowly to run on the arrival of each frame.

Parameters​

• bounds: BoundsIJK

the region of the delivery, in the index space of grid

• grid: VoxelGrid

the grid that the delivery wrote

• statistic: VoxelStatistic = VoxelStatistics.Average

the statistic that the delivery wrote

Returns​

number

the number of representations that this member changed

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1179


resetModifiedSlices()​

resetModifiedSlices(): void

Marks every frame as unchanged.

Returns​

void

Implementation of​

IVoxelManager.resetModifiedSlices

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1963


rleForEach()​

rleForEach(callback, options?): void

The forEach of an RLE backed voxel manager. See the RLE map for the callbacks that work at the level of a row or of a run, because those can be faster.

Parameters​

• callback: any

• options?: any

Returns​

void

Implementation of​

IVoxelManager.rleForEach

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1933


selectRepresentation()​

selectRepresentation(__namedParameters): VoxelRepresentation<T>

THE SELECTION RULE. It takes three inputs: the region, the statistic and the ceiling.

The rule selects the representation of the HIGHEST RESOLUTION THAT IS NOT HIGHER THAN THE CEILING, among those that match the statistic and cover the region. A tie of the resolution takes the better quality.

WHY THE CEILING MATTERS. Without it, a request that fills a texture at one eighth selects the full-resolution data, and it reduces that data at every fill.

WHEN NOTHING SITS AT THE CEILING the rule returns the best that exists. Every candidate is then finer than the ceiling, and the rule takes the coarsest of them, which is the cheapest source that still holds the resolution that the caller asked for.

THE RULE NEVER CREATES. createRepresentation creates, and a caller decides whether a new representation is worth its cost.

The rule resolves FOR A REGION, and not for each voxel, because a test inside the inner loop of a brush tool is too slow.

Parameters​

• __namedParameters: VoxelRepresentationSelector = {}

Returns​

VoxelRepresentation<T>

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:731


setAtIJK()​

setAtIJK(i, j, k, v): boolean

Sets the value at position i,j,k, and records the frame that the write changed. Use this method, and not setAtIJKPoint, where the performance matters.

Parameters​

• i: number

• j: number

• k: number

• v: any

Returns​

boolean

Implementation of​

IVoxelManager.setAtIJK

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1904


setAtIJKPoint()​

setAtIJKPoint(point, v): void

Sets the value at an IJK point, and records the frame.

Parameters​

• point: Point3

• v: any

Returns​

void

Implementation of​

IVoxelManager.setAtIJKPoint

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1906


setAtIndex()​

setAtIndex(index, v): boolean

Sets the value at a flat index, and records the frame.

Parameters​

• index: number

• v: any

Returns​

boolean

Implementation of​

IVoxelManager.setAtIndex

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1908


setBounds()​

setBounds(bounds): void

Replaces the recorded bounds.

Parameters​

• bounds: BoundsIJK

Returns​

void

Implementation of​

IVoxelManager.setBounds

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1923


setDeliveredQuality()​

setDeliveredQuality(representation, bounds, quality): boolean

Records the quality of one delivery of one representation.

A LOWER QUALITY NEVER REPLACES A HIGHER ONE for a region that a delivery already covered, which is the rule that BaseStreamingImageVolume.updateTextureAndTriggerEvents applies to cachedFrames: a decimated frame that arrives after the full frame must not take the record backwards.

Parameters​

• representation: VoxelRepresentation<T>

• bounds: BoundsIJK

• quality: ImageQualityStatus

Returns​

boolean

true when the record changed

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1325


setFromScalarData()​

setFromScalarData(scalarData): void

Copies an array INTO this voxel manager, in whatever representation this voxel manager uses. Use this method, and not getScalarData().set(...).

Parameters​

• scalarData: ArrayLike<number>

Returns​

void

Implementation of​

IVoxelManager.setFromScalarData

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1945


setScalarData()​

setScalarData(newScalarData): void

Installs an array as the backing store of this voxel manager.

Parameters​

• newScalarData: PixelDataTypedArray

Returns​

void

Implementation of​

IVoxelManager.setScalarData

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1939


toIJK()​

toIJK(index): Point3

Converts a flat index to an IJK point.

Parameters​

• index: number

Returns​

Point3

Implementation of​

IVoxelManager.toIJK

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1911


toIndex()​

toIndex(ijk): number

Converts an IJK point to a flat index.

Parameters​

• ijk: Point3

Returns​

number

Implementation of​

IVoxelManager.toIndex

Defined in​

packages/core/src/utilities/CompositeVoxelManager.ts:1914