Skip to content

Commit cbc1c33

Browse files
committed
api
1 parent 8c9b51a commit cbc1c33

File tree

3 files changed

+48
-13
lines changed

3 files changed

+48
-13
lines changed

common/reviews/api/core.api.md

+25-4
Original file line numberDiff line numberDiff line change
@@ -1044,6 +1044,10 @@ export enum EVENTS {
10441044
// (undocumented)
10451045
DISPLAY_AREA_MODIFIED = "CORNERSTONE_DISPLAY_AREA_MODIFIED",
10461046
// (undocumented)
1047+
DYNAMIC_VOLUME_FRAME_NUMBER_CHANGED = "DYNAMIC_VOLUME_FRAME_NUMBER_CHANGED",
1048+
// (undocumented)
1049+
DYNAMIC_VOLUME_FRAME_NUMBER_LOADED = "DYNAMIC_VOLUME_FRAME_NUMBER_LOADED",
1050+
// (undocumented)
10471051
DYNAMIC_VOLUME_TIME_POINT_INDEX_CHANGED = "DYNAMIC_VOLUME_TIME_POINT_INDEX_CHANGED",
10481052
// (undocumented)
10491053
DYNAMIC_VOLUME_TIME_POINT_LOADED = "DYNAMIC_VOLUME_TIME_POINT_LOADED",
@@ -1566,13 +1570,16 @@ type IContourSet = ContourSet;
15661570

15671571
// @public (undocumented)
15681572
interface IDynamicImageVolume extends IImageVolume {
1573+
// (undocumented)
1574+
get frameNumber(): number;
1575+
set frameNumber(frameNumber: number);
15691576
// (undocumented)
15701577
get numTimePoints(): number;
15711578
// (undocumented)
15721579
scroll(delta: number): void;
15731580
// (undocumented)
15741581
get timePointIndex(): number;
1575-
set timePointIndex(newTimePointIndex: number);
1582+
set timePointIndex(timePointIndex: number);
15761583
}
15771584

15781585
// @public (undocumented)
@@ -2272,7 +2279,7 @@ export class ImageVolume {
22722279
// (undocumented)
22732280
modified(): void;
22742281
// (undocumented)
2275-
protected numFrames: number;
2282+
numFrames?: number;
22762283
// (undocumented)
22772284
numTimePoints?: number;
22782285
// (undocumented)
@@ -3588,12 +3595,21 @@ export class StreamingDynamicImageVolume extends BaseStreamingImageVolume implem
35883595
imageIdGroups: string[][];
35893596
}, streamingProperties: IStreamingVolumeProperties);
35903597
// (undocumented)
3598+
protected checkFrameCompletion(imageIdIndex: number): void;
3599+
// (undocumented)
35913600
protected checkTimePointCompletion(imageIdIndex: number): void;
35923601
// (undocumented)
3602+
flatImageIdIndexToFrameNumber(flatImageIdIndex: number): number;
3603+
// (undocumented)
35933604
flatImageIdIndexToImageIdIndex(flatImageIdIndex: number): number;
35943605
// (undocumented)
35953606
flatImageIdIndexToTimePointIndex(flatImageIdIndex: number): number;
35963607
// (undocumented)
3608+
get frameNumber(): number;
3609+
set frameNumber(frameNumber: number);
3610+
// (undocumented)
3611+
getCurrentFrameImageIds(): string[];
3612+
// (undocumented)
35973613
getCurrentTimePointImageIds(): string[];
35983614
// (undocumented)
35993615
getImageIdsToLoad(): string[];
@@ -3629,8 +3645,12 @@ export class StreamingDynamicImageVolume extends BaseStreamingImageVolume implem
36293645
};
36303646
}[];
36313647
// (undocumented)
3648+
isFrameLoaded(frameNumber: number): boolean;
3649+
// (undocumented)
36323650
isTimePointLoaded(timePointIndex: number): boolean;
36333651
// (undocumented)
3652+
numFrames: number;
3653+
// (undocumented)
36343654
numTimePoints: number;
36353655
// (undocumented)
36363656
scroll(delta: number): void;
@@ -4951,10 +4971,11 @@ class VoxelManager<T> {
49514971
dimensions: Point3;
49524972
}): VoxelManager<T>;
49534973
// (undocumented)
4954-
static createScalarDynamicVolumeVoxelManager({ imageIdGroups, dimensions, timePoint, numberOfComponents, }: {
4974+
static createScalarDynamicVolumeVoxelManager({ imageIdGroups, dimensions, timePoint, frameNumber, numberOfComponents, }: {
49554975
imageIdGroups: string[][];
49564976
dimensions: Point3;
4957-
timePoint: number;
4977+
timePoint?: number;
4978+
frameNumber?: number;
49584979
numberOfComponents?: number;
49594980
}): IVoxelManager<number> | IVoxelManager<RGB>;
49604981
// (undocumented)

packages/core/src/cache/classes/ImageVolume.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ export class ImageVolume {
2929
private _imageIdsIndexMap = new Map();
3030
private _imageURIsIndexMap = new Map();
3131
/** volume scalar data 3D or 4D */
32-
protected numFrames: number;
3332
protected totalNumFrames: number;
3433
protected cornerstoneImageMetaData = null;
3534

@@ -85,6 +84,7 @@ export class ImageVolume {
8584
dataType?: PixelDataTypedArrayString;
8685

8786
numTimePoints? = null as number;
87+
numFrames? = null as number;
8888

8989
constructor(props: ImageVolumeProps) {
9090
const {

packages/core/src/types/IDynamicImageVolume.ts

+22-8
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,39 @@
11
import type IImageVolume from './IImageVolume';
22

33
/**
4-
* Cornerstone ImageVolume interface. Todo: we should define new IVolume class
5-
* with appropriate typings for the other types of volume that don't have images (nrrd, nifti)
4+
* Interface for 4D Dynamic Image Volume that supports frame-based operations
65
*/
76
interface IDynamicImageVolume extends IImageVolume {
87
/**
9-
* Returns the active time point index
10-
* The first index starts at 1
8+
* Returns the active frame number (1-based)
9+
*/
10+
get frameNumber(): number;
11+
12+
/**
13+
* Set the active frame number which also updates the active scalar data
14+
* Frame numbers are 1-based
15+
*/
16+
set frameNumber(frameNumber: number);
17+
18+
/**
19+
* @deprecated Use frameNumber instead. timePointIndex is zero-based while frameNumber starts at 1.
1120
*/
1221
get timePointIndex(): number;
22+
1323
/**
14-
* Set the active time point index which also updates the active scalar data
15-
* The first index starts at 1
24+
* @deprecated Use frameNumber instead. timePointIndex is zero-based while frameNumber starts at 1.
1625
*/
17-
set timePointIndex(newTimePointIndex: number);
26+
set timePointIndex(timePointIndex: number);
27+
1828
/**
19-
* Returns the number of time points
29+
* @deprecated Use numFrames instead
2030
*/
2131
get numTimePoints(): number;
2232

33+
/**
34+
* Scroll through frames, handling wrapping at start/end
35+
* @param delta - The number of frames to scroll by (positive or negative)
36+
*/
2337
scroll(delta: number): void;
2438
}
2539

0 commit comments

Comments
 (0)