Home > Applications > sliceomatic > sliceomatic.m

iFit/sliceomatic

PURPOSE ^

SLICEOMATIC - Slice and isosurface volume exploration GUI

SYNOPSIS ^

function sliceomatic(p1,p2,xmesh,ymesh,zmesh)

DESCRIPTION ^

 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

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:
Generated on Mon 26-Nov-2018 15:08:42 by m2html © 2005. iFit (c) E.Farhi/ILL EUPL 1.1