File Applications/sliceomatic/sliceomatic.m SLICEOMATIC - Slice and isosurface volume exploration GUI SLICEOMATIC(DATA) - Use 3D double matrix DATA as a volume data Example: [x,y,z] = meshgrid(-2:.2:2, -2:.25:2, -2:.16:2); v = x .* exp(-x.^2 - y.^2 - z.^2); sliceomatic(v) Using SLICEOMATIC with no arguments is equivalent to the above example. SLICEOMATIC(DATA, X, Y, Z) - Run sliceomatic using the specified data coordinates for the volume DATA. X, Y, and Z are the vectors over which DATA is defined. ex: x = -2:.2:2; y = -2:.25:2; z = -2:.16:2; [X,Y,Z] = meshgrid(x,y,z); v = X .* exp(-X.^2 - Y.^2 - Z.^2); sliceomatic(v,x,y,z) Using the GUI: ------------- Create/Delete slices: The white bars on the top, left, and right allow insertion of new slices on the X, Y, and Z planes. Click in an empty area to add a new slice or surface. Right click on a control arrow to reconfigure or delete that slice. Create/Delete isosurfaces: The colored bar at the bottom is used to place and position an isosurface. The color in the bar indicates a position (as seen in the slice) where the isosurface will go. Right click on a control arrow to reconfigure or delete the isosurface. Orientation of the view: When the rotate camera button is on, the popup menu will control the camera. Turn off camera rotation in order to get individual control over properties of the slices and isosurfaces. Changing Defaults: The defaults menu provides default features of newly created slices and surfaces. The AllSlices menu controls properties of all the slices and surfaces in the scene. Use popup menus on the objects themselves, or the control arrows to change individual properties. Color & Alpha Maps: The Colormap popdown controls the currently active colormap. This map is used to color the slices. The Alphamap popdown controls the alphamap used on the slices. Use the color or alpha maps to change how areas of your data are highlighted. Controls Control: The Controls menu allows you to adjust how the controls look. An important feature here is the "Animate" item. You can enable or disable an animation when some changes are made. Since this is decorative, it may be important to turn this off for large data sets. Doing Cool Stuff: ---------------- Exploration: You can get a quick feel of the current data set by adding a slice using the ColorTexture option. Such a slice can be dragged through the data very quickly. Highlight an Area: If certain values in your data are interesting (very large, very small, or very median values) you can use transparency to make parts of your slices disappear. Choose AlphaTexture options from the defaults, and sweep some slices across your data. Use the AlphaMap to pick out certain data sets. The example given here looks best with the `vdown' alphamap. Contours on slices: You can add a contour onto a slice to further extract shapes from the data you are exploring. Auto-selecting contour limits will choose contours on a per slice basis. Auto-selecting contour lines from a volume arbitrarily specifies 10 levels based on the limits of the volume. Hidden Shapes: Use the isosurface control bar to create an isosurface. Be patient with this control. It often takes a while for the surface to be created. Click and hold the mouse button down until the first surface appears. Drag the surface through the values until you get something you like, then let go. If your data set is very large, you will need to wait while the new and more accurate isosurface is created. Volumes: You can simulate a volume object by creating lots of stacked slices. Simply use the proper Alphamap and transparent textures to highlight the correct data, and a large stack of slices will let you simulate a volume object. Customized Graphics: ------------------- To add your own graphics into the sliceomatic display, whatever that may be, you can use the following technique: 1) click on a control arrow 2) use gco to get the data for that object slice = getappdata(gco,'arrowslice') 3) use GET to get the cdata and position data which you can use to add your own graphics. Setting Default Values: ---------------------- If you want to change some default setup feature of sliceomatic, use the "Save Preferences" menu item. Future sliceomatic sessions will then retrieve those settings. BUGS: ---- 1) Inaccurate Slice Sliceomatic does not use the `slice' command. All slices are created by explicitly extracting data from the volume. As such, only slices at integer values are allowed. 2) Crashes MATLAB Sliceomatic uses the default OpenGL setup. If you encounter frequent crashes you can start by enabling software OpenGL rendering. This should always fix the problem, and would likely slow things down too. You should also update your graphics driver for your video card. On Windows, in particular, drivers are updated frequently. For detail on how to overcome these problems, visit this web page: http://www.mathworks.com/support/tech-notes/1200/1201.html See Also: SLICE, ISOSURFACE, ISOCAPS, CONTOURC, COLORMAP, SURFACE