pro mg_ogvolume_example, vol, _extra=e
compile_opt strictarr
viewgroup = obj_new('IDLgrViewGroup')
view = obj_new('IDLgrView', color=[0, 0, 0])
viewgroup->add, view
model = obj_new('IDLgrModel')
view->add, model
volume = obj_new('IDLgrVolume', bytscl(vol), $
interpolate=1, $
_extra=e)
volume->getProperty, xrange=xr, yrange=yr, zrange=zr
xc = mg_linear_function(xr, [-0.5, 0.5])
yc = mg_linear_function(yr, [-0.5, 0.5])
zc = mg_linear_function(zr, [-0.5, 0.5])
volume->setProperty, xcoord_conv=xc, ycoord_conv=yc, zcoord_conv=zc
palette = obj_new('IDLgrPalette')
viewgroup->add, palette
palette->loadCT, 5
palette->getProperty, red_values=r, green_values=g, blue_values=b
volume->setProperty, rgb_table0=[[r], [g], [b]]
model->rotate, [1, 0, 0], -90
model->rotate, [0, 1, 0], -15
model->rotate, [1, 0, 0], 25
xaxis = obj_new('IDLgrAxis', direction=0, range=xr, color=[255, 255, 255])
model->add, xaxis
yaxis = obj_new('IDLgrAxis', direction=1, range=yr, color=[255, 255, 255])
model->add, yaxis
zaxis = obj_new('IDLgrAxis', direction=2, range=zr, color=[255, 255, 255])
model->add, zaxis
model->add, volume
xaxis->setProperty, xcoord_conv=xc, ycoord_conv=yc, zcoord_conv=zc
yaxis->setProperty, xcoord_conv=xc, ycoord_conv=yc, zcoord_conv=zc
zaxis->setProperty, xcoord_conv=xc, ycoord_conv=yc, zcoord_conv=zc
window = obj_new('IDLgrWindow', dimensions=[500, 500], $
graphics_tree=viewgroup, _extra=e)
window->draw
end