Skip to content

Commit f03d81a

Browse files
committed
docs(usage): add demos for volume representation
1 parent 71b04b8 commit f03d81a

File tree

4 files changed

+190
-184
lines changed

4 files changed

+190
-184
lines changed

usage/src/App.jsx

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,13 @@ const demos = new Map([
2121
// ['Geometry/Glyph', lazy(() => import('./Geometry/Glyph'))],
2222
['Geometry/CutterExample', lazy(() => import('./Geometry/CutterExample'))],
2323
['Geometry/TubeExample', lazy(() => import('./Geometry/TubeExample'))],
24-
// ['Volume/SliceRendering', lazy(() => import('./Volume/SliceRendering'))],
25-
// ['Volume/ImageSeriesRendering', lazy(() => import('./Volume/ImageSeriesRendering'))],
24+
['Volume/SliceRendering', lazy(() => import('./Volume/SliceRendering'))],
2625
// [
2726
// 'Volume/SyntheticVolumeRendering',
2827
// lazy(() => import('./Volume/SyntheticVolumeRendering')),
2928
// ],
30-
// ['Volume/VolumeRendering', lazy(() => import('./Volume/VolumeRendering'))],
31-
// ['Volume/DynamicUpdate', lazy(() => import('./Volume/DynamicUpdate'))],
29+
['Volume/VolumeRendering', lazy(() => import('./Volume/VolumeRendering'))],
30+
['Volume/DynamicUpdate', lazy(() => import('./Volume/DynamicUpdate'))],
3231
[
3332
'Volume/ImageSeriesRendering',
3433
lazy(() => import('./Volume/ImageSeriesRendering')),

usage/src/Volume/DynamicUpdate.jsx

Lines changed: 57 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
1-
import React, { useState, useContext } from 'react';
1+
import { useContext, useState } from 'react';
22

33
import {
44
Contexts,
5-
View,
6-
VolumeRepresentation,
7-
SliceRepresentation,
8-
VolumeController,
9-
ShareDataSet,
5+
DataArray,
106
ImageData,
117
PointData,
12-
DataArray,
8+
RegisterDataSet,
9+
ShareDataSetRoot,
10+
SliceRepresentation,
11+
UseDataSet,
12+
View,
13+
VolumeController,
14+
VolumeRepresentation,
1315
} from 'react-vtk-js';
1416

1517
function generateRandomVolumeField(iMax, jMax, kMax) {
@@ -70,57 +72,61 @@ function Slider(props) {
7072
);
7173
}
7274

73-
function Example(props) {
75+
function Example() {
7476
const [fieldIdx, setFieldIdx] = useState(0);
7577
const colorWindow = fieldIdx ? 10 : 1;
7678
const colorLevel = fieldIdx ? 5 : 0.5;
7779

7880
return (
79-
<div style={{ width: '100%', height: '100%' }}>
80-
<View id='0'>
81-
<Slider
82-
max={FIELDS.length - 1}
83-
value={fieldIdx}
84-
setValue={setFieldIdx}
85-
/>
86-
<VolumeRepresentation>
87-
<VolumeController rescaleColorMap={false} />
88-
<ShareDataSet>
89-
<ImageData
90-
spacing={[1, 1, 1]}
91-
dimensions={[10, 10, 10]}
92-
origin={[0, 0, 0]}
93-
>
94-
<PointData>
95-
<DataArray
96-
registration='setScalars'
97-
type='Float32Array'
98-
values={FIELDS[fieldIdx]}
99-
/>
100-
</PointData>
101-
</ImageData>
102-
</ShareDataSet>
103-
</VolumeRepresentation>
104-
</View>
105-
<div
106-
style={{
107-
position: 'absolute',
108-
width: '20%',
109-
height: '20%',
110-
bottom: 0,
111-
right: 0,
112-
}}
113-
>
114-
<View background={[1, 1, 1]} triggerRender={fieldIdx}>
115-
<SliceRepresentation
116-
kSlice={5}
117-
property={{ colorWindow, colorLevel }}
118-
>
119-
<ShareDataSet />
120-
</SliceRepresentation>
81+
<ShareDataSetRoot>
82+
<RegisterDataSet id='image'>
83+
<ImageData
84+
spacing={[1, 1, 1]}
85+
dimensions={[10, 10, 10]}
86+
origin={[0, 0, 0]}
87+
>
88+
<PointData>
89+
<DataArray
90+
registration='setScalars'
91+
type='Float32Array'
92+
values={FIELDS[fieldIdx]}
93+
/>
94+
</PointData>
95+
</ImageData>
96+
</RegisterDataSet>
97+
<div style={{ width: '100%', height: '100%' }}>
98+
<View id='0'>
99+
<Slider
100+
max={FIELDS.length - 1}
101+
value={fieldIdx}
102+
setValue={setFieldIdx}
103+
/>
104+
<VolumeRepresentation>
105+
<VolumeController rescaleColorMap={false} />
106+
<UseDataSet id='image' />
107+
</VolumeRepresentation>
121108
</View>
109+
110+
<div
111+
style={{
112+
position: 'absolute',
113+
width: '20%',
114+
height: '20%',
115+
bottom: 0,
116+
right: 0,
117+
}}
118+
>
119+
<View background={[1, 1, 1]}>
120+
<SliceRepresentation
121+
kSlice={5}
122+
property={{ colorWindow, colorLevel }}
123+
>
124+
<UseDataSet id='image' />
125+
</SliceRepresentation>
126+
</View>
127+
</div>
122128
</div>
123-
</div>
129+
</ShareDataSetRoot>
124130
);
125131
}
126132

0 commit comments

Comments
 (0)