NAME

     ijkmcube - generate isosurface using Marching Cubes


SYNOPSIS

     ijkmcube [OPTIONS] {isovalues} {input filename}


DESCRIPTION

     ijkmcube generates an isosurface using Marching Cubes or one
     of  its variants.  Input file contains scalar values in NRRD
     (Nearly Raw Raster Data) format.  When more  than  one  iso-
     value  is  specified,  the  program will generate a separate
     output file for each.


OPTIONS

     -octree
          Create an octree and identify grid cubes intersected by
          the  isosurface using the octree.  Speeds up isosurface
          generation when more than one isovalue is specified.

     -region L
          Divide the grid into regions  of  LxLxLx...  edges  and
          identify  grid  regions  intersected by the isosurface.
          Speeds up isosurface generation when more than one iso-
          value is specified.

     -nep Use an isosurface table with  negative,  equals  (zero)
          and  positive  vertex labels.  The equals vertex labels
          represents vertices whose scalar value equals the  iso-
          value.

     -snap D
          Apply algorithm SnapMC. Construct the  isosurface  mesh
          by  setting  the  scalar  value of grid vertices within
          distance D of the isosurface  to  the  isovalue.   This
          effectively  "snaps" isosurface vertices onto that grid
          vertex.  Construct the mesh using  the  NEP  (negative,
          equals, positive) lookup table and then move isosurface
          vertices back to original locations on the isosurface.

          Distance D is between 0.0  and  0.5  and  represents  a
          fraction of the grid edge.

     -ivol
          Construct an interval volume.

     -subsample S
          Subsample the input grid and then construct the isosur-
          face.   Subsample  the  input grid so that S grid edges
          are replaced by a single grid edge.

     -supersample S
          Supersample the  input  grid  and  then  construct  the
          isosurface.   Supersample  the  input grid so that each
          grid edge is replaced by S grid  edges.  Assign  scalar
          values to new grid vertices using multi-linear interpo-
          lation.

     -highres "{region_coordinates}"
          Define a high resolution region  in  a  multiresolution
          isosurface.  Coordinates must be surroundeded by double
          quotation marks.  Number of coordinates  is  twice  the
          grid  dimension.   List  coordinates of lowest point in
          region followed by coordinates of highest point.

     -topology "{isotable|cube_decider|adecider}"
          Choose isosurface topology in ambiguous cubes.

            isotable
                 Use  topology  from  isosurface  lookup   table.
                 (Default.)

            cube_decider
                 Determine topology of ambiguous  cubes  with  no
                 ambiguous  facets based on average value of cube
                 vertices.

            adecider
                 Use the asymptotic decider to determine  isosur-
                 face topology of ambiguous facets.  Breaks cubes
                 with ambiguous facets into pyramids.

     -interpolate "{linear|multilinear}"
          Use linear or multilinear  interpolation  to  determine
          location of isosurface vertices in cubes which are sub-
          divided into pyramids and/or simplices.  Every  isosur-
          face vertex is on a cube, pyramid or simplex edge.

            linear
                 Determine the location of the isosurface  vertex
                 using  linear  interpolation on the endpoints of
                 the cube, pyramid or simplex edge containing the
                 isosurface vertex.

            multilinear
                 Determine the location of the isosurface  vertex
                 using multilinear interpolation on the cube ver-
                 tices.

     -dir {isotable_directory}
          Set the  directory  containing  the  isosurface  lookup
          table  .xit (XML Isosurface Table) file.  An isosurface
          lookup table file of the appropriate dimension and type
          is required.

     -off Output the mesh in Geomview .off format. (Default.)

     -iv  Output the mesh in OpenInventor .iv format.

     -o {output_filename}
          Specify the output file name.  If the output file  name
          is not specified, the program constructs an appropriate
          file name.

     -stdout
          Send the output to standard output.

     -help
          Print a help message.

     -time
          Print program execution time information.

     -nowrite
          Do not write any output file.  Useful in  debugging  or
          in timing executions without creating output.

     -s   Silent mode.  Do  not  print  any  grid  or  isosurface
          information on the terminal.


EXAMPLES

     ijkmcube 10 data.nrrd
          Extract the isosurface with isovalue 10 from Nrrd  file
          data.nrrd.

     ijkmcube 10 20 30 data.nrrd
          Extract isosurfaces with isovalues 10, 20 and  30  from
          Nrrd file data.nrrd.

     ijkmcube 10 20 30 data.nrrd

     ijkmcube -octree 10 20 30 data.nrrd
          Build an octree on the grid in  data.nrrd  and  extract
          isosurfaces  with  isovalues  10,  20 and 30 using that
          octree.  Each isosurface is stored in a separate file.

     ijkmcube 10 20 30 data.nrrd

     ijkmcube -nep 10 data.nrrd
          Extract the isosurface with isovalue 10 using  an  iso-
          surface table with negative, equals and positive vertex
          labels.

     ijkmcube -snap 0.3 10 data.nrrd
          Extract the isosurface with isovalue 10 using algorithm
          SnapMC with a snap value 0.3.

     ijkmcube -ivol 10 20 data.nrrd
          Extract the interval volume representing scalar  values
          from 10 to 20.

     ijkmcube -ivol 10 20 25 data.nrrd
          Extract the interval volumes representing scalar values
          from  10  to  20  and  the interval volume representing
          scalar values from 20 to 25.  Each interval  volume  is
          stored in a separate file.

     ijkmcube -highres "50 60 70 55 65 75" 10 data3D.nrrd
          Extract a multiresolution isosurface with isovalue  10.
          The  rectangular  region  with lowest vertex (50,60,70)
          and highest  vertex  (55,65,75)  has  full  resolution.
          Regions  outside  this  rectangular  region  have lower
          resolution.

     ijkmcube -highres "40 40 40 60 60 60"
              -highres "50 50 50 70 70 70" 10 data3D.nrrd
          Extract a multiresolution isosurface with isovalue  10.
          Rectangular  regions  between (40,40,40) and (60,60,60)
          and between (50,50,50) and (70,70,70) have full resolu-
          tion  Regions  outside  these  rectangular regions have
          lower resolution.  Note that the full  resolution  rec-
          tangular regions may overlap.


NOTES

     -- Isosurface generation in 3D requires the .xit  (XML  Iso-
     surface Table) isosurface lookup table file iso.cube.3D.xit.

     -- Isosurface generation in 4D requires the  xit  isosurface
     lookup table file iso.cube.4D.xit.

     -- Interval volume generation in 3D requires the xit isosur-
     face lookup table file ivol.cube.3D.xit.

     -- Isosurface generation in 3D  with  the  options  -nep  or
     -snap  D  requires  the  xit  isosurface  lookup  table file
     iso.nep.cube.3D.xit.


SEE ALSO

     ijkgentable(1),xit(5).


AUTHOR

     Sundaresan Raman, Rephael Wenger








Man(1) output converted with man2html