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