Skip to content

Commit d1b4b31

Browse files
committed
add different volume lights
1 parent ffaf05f commit d1b4b31

4 files changed

Lines changed: 79 additions & 18 deletions

File tree

src/main/java/bigtrace/BigTraceControlPanel.java

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -939,8 +939,10 @@ synchronized void voxelChanged(double [] newVoxelSize)
939939
public void setRenderMethod(int nRenderType)
940940
{
941941
btdata.nRenderMethod = nRenderType;
942+
942943
Prefs.set("BigTrace.nRenderMethod",btdata.nRenderMethod);
943-
for(int i=0;i<bt.bvv_sources.size();i++)
944+
945+
for(int i = 0; i < bt.bvv_sources.size(); i++)
944946
{
945947
bt.bvv_sources.get(i).setRenderType(nRenderType);
946948
}
@@ -953,10 +955,24 @@ public void setRenderMethod(int nRenderType)
953955
if(nRenderType == BigTraceData.DATA_RENDER_MAX_INT)
954956
{
955957
bt.viewer.showMessage("maximum intensity");
956-
}
958+
}
959+
}
960+
961+
public void setVolumeLight(int nVolumeLight)
962+
{
963+
btdata.nVolumeLight = nVolumeLight;
964+
965+
Prefs.set("BigTrace.nVolumeLight", btdata.nVolumeLight);
957966

967+
for(int i = 0; i < bt.bvv_sources.size(); i++)
968+
{
969+
bt.bvv_sources.get(i).setLightingType( nVolumeLight );
970+
}
971+
if(bt.bvv_trace != null)
972+
bt.bvv_trace.setLightingType( nVolumeLight );
958973

959974
}
975+
960976
@Override
961977
public void actionPerformed(ActionEvent e) {
962978

src/main/java/bigtrace/BigTraceData.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,10 +132,20 @@ public class BigTraceData < T extends RealType< T > & NativeType< T > >
132132
public BCsettings bcTraceBox = new BCsettings();
133133

134134
public static final int DATA_RENDER_MAX_INT = 0, DATA_RENDER_VOLUMETRIC = 1;
135+
136+
public static final int VOLUMELIGHT_PLAIN = 0, VOLUMELIGHT_SHADED = 1, VOLUMELIGHT_SHINY = 2;
137+
135138
/** dataset rendering method
136139
* 0 maximum intensity,
137140
* 1 volumetric **/
138141
public int nRenderMethod = (int)Prefs.get("BigTrace.nRenderMethod", DATA_RENDER_MAX_INT);
142+
143+
/** dataset lighting option for volumetric rendering
144+
* 0 plain,
145+
* 1 shaded,
146+
* 2 shiny **/
147+
public int nVolumeLight = (int)Prefs.get("BigTrace.nVolumeLight", VOLUMELIGHT_PLAIN);
148+
139149

140150
/////////////////////////////////GLOBAL ROI APPEARANCE SETTINGS
141151

src/main/java/bigtrace/gui/RenderMethodPanel.java

Lines changed: 38 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,11 @@ public class RenderMethodPanel < T extends RealType< T > & NativeType< T > > ext
2121

2222
private static final long serialVersionUID = 7367842640615289454L;
2323

24-
public JComboBox<String> cbRenderMethod;
24+
public final JComboBox<String> cbRenderMethod;
2525

26-
public JComboBox<String> cbSurfaceRenderList;
26+
public final JComboBox<String> cbVolumeLight;
27+
28+
public final JComboBox<String> cbSurfaceRenderList;
2729

2830
String[] sSurfaceRenderType = {"plain", "shaded", "shiny", "silhouette"};
2931

@@ -36,28 +38,44 @@ public RenderMethodPanel(BigTrace<T> bt_)
3638

3739
GridBagLayout gridbag = new GridBagLayout();
3840
GridBagConstraints cd = new GridBagConstraints();
39-
String[] sMethods = new String[2];
40-
sMethods[0]="Max intensity";
41-
sMethods[1]="Volumetric";
42-
43-
cbRenderMethod = new JComboBox<>(sMethods);
41+
String[] sRenderMethods = new String[2];
42+
sRenderMethods[0] = "max intensity";
43+
sRenderMethods[1] = "volumetric";
44+
45+
String[] sLightOptions = new String[3];
46+
sLightOptions[0] = "plain";
47+
sLightOptions[1] = "shaded";
48+
sLightOptions[2] = "shiny";
49+
50+
cbRenderMethod = new JComboBox<>(sRenderMethods);
4451
cbRenderMethod.setSelectedIndex(bt.btData.nRenderMethod);
4552
cbRenderMethod.addActionListener(this);
4653

54+
cbVolumeLight = new JComboBox<>(sLightOptions);
55+
cbVolumeLight.setSelectedIndex(bt.btData.nVolumeLight);
56+
cbVolumeLight.addActionListener(this);
57+
58+
cbSurfaceRenderList = new JComboBox<>(sSurfaceRenderType);
59+
cbSurfaceRenderList.setSelectedIndex(bt.btData.surfaceRender);
60+
cbSurfaceRenderList.addActionListener(this);
61+
62+
4763
setLayout(gridbag);
4864

49-
cd.gridx=0;
50-
cd.gridy=0;
65+
cd.gridx = 0;
66+
cd.gridy = 0;
5167
GBCHelper.alighLoose(cd);
52-
this.add(new JLabel("Data:"),cd);
68+
this.add(new JLabel("Data render:"),cd);
5369
cd.gridx++;
5470
this.add(cbRenderMethod,cd);
5571

72+
cd.gridx = 0;
73+
cd.gridy++;
74+
this.add(new JLabel("Volume light:"),cd);
75+
cd.gridx++;
76+
this.add(cbVolumeLight,cd);
5677

57-
cbSurfaceRenderList = new JComboBox<>(sSurfaceRenderType);
58-
cbSurfaceRenderList.setSelectedIndex(bt.btData.surfaceRender);
59-
cbSurfaceRenderList.addActionListener(this);
60-
cd.gridx=0;
78+
cd.gridx = 0;
6179
cd.gridy++;
6280
this.add(new JLabel("ROI surface:"),cd);
6381
cd.gridx++;
@@ -69,6 +87,12 @@ public void actionPerformed(ActionEvent e) {
6987
{
7088
bt.btPanel.setRenderMethod(cbRenderMethod.getSelectedIndex());
7189
}
90+
91+
if(e.getSource() == cbVolumeLight)
92+
{
93+
bt.btPanel.setVolumeLight(cbVolumeLight.getSelectedIndex());
94+
}
95+
7296
if(e.getSource() == cbSurfaceRenderList)
7397
{
7498
if(bt.btData.surfaceRender != cbSurfaceRenderList.getSelectedIndex())

src/main/java/bigtrace/io/ViewsIO.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ public static < T extends RealType< T > & NativeType< T > > void saveView(final
5050
writer.write("BigTrace_View,version," + BigTraceData.sVersion + "\n");
5151
writer.write("FileNameFull," + bt.btData.sFileNameFullImg+"\n");
5252
writer.write("Render Type," + Integer.toString( bt.btData.nRenderMethod )+"\n");
53+
writer.write("Volume Light," + Integer.toString( bt.btData.nVolumeLight )+"\n");
54+
5355
writer.write("Canvas BG color," + Integer.toString( bt.btData.canvasBGColor.getRGB() )+"\n");
5456
writer.write("nHalfClickSizeWindow," + Integer.toString( bt.btData.nHalfClickSizeWindow )+"\n");
5557
writer.write("Zoom Box Size," + Integer.toString( bt.btData.nZoomBoxSize)+"\n");
@@ -213,7 +215,14 @@ public static < T extends RealType< T > & NativeType< T > > void loadView(final
213215
switch (line_array[0])
214216
{
215217
case "Render Type":
216-
bt.btPanel.setRenderMethod( Integer.parseInt( line_array[1]) );
218+
int nRenderMethod = Integer.parseInt( line_array[1]);
219+
bt.btPanel.setRenderMethod( nRenderMethod );
220+
bt.btPanel.renderMethodPanel.cbRenderMethod.setSelectedIndex( nRenderMethod );
221+
break;
222+
case "Volume Light":
223+
int nVolumeLight = Integer.parseInt( line_array[1]);
224+
bt.btPanel.setVolumeLight( nVolumeLight );
225+
bt.btPanel.renderMethodPanel.cbVolumeLight.setSelectedIndex( nVolumeLight );
217226
break;
218227
case "Canvas BG color":
219228
final Color bgColor = new Color(Integer.parseInt(line_array[1]));
@@ -276,7 +285,9 @@ public static < T extends RealType< T > & NativeType< T > > void loadView(final
276285
Prefs.set("BigTrace.crossSectionGridStep", bt.btData.crossSectionGridStep);
277286
break;
278287
case "surfaceRender":
279-
bt.btData.surfaceRender = Integer.parseInt( line_array[1] );
288+
int nSurfaceRender = Integer.parseInt( line_array[1]);
289+
bt.btData.surfaceRender = nSurfaceRender;
290+
bt.btPanel.renderMethodPanel.cbSurfaceRenderList.setSelectedIndex( nSurfaceRender );
280291
Prefs.set("BigTrace.surfaceRender", bt.btData.surfaceRender);
281292
break;
282293
case "silhouetteRender":

0 commit comments

Comments
 (0)