Simplifying

Flexible

Isosurfaces

Using

Local

Geometric

Measures

The

contour

tree

an

abstraction

of

a

scalar

field

that

encodes

the

nesting

relationships

of

isosurfaces

can

be

used

to

accelerate

isosurface

extraction

to

identify

important

isovalues

for

volume-rendering

transfer

functions

and

to

guide

exploratory

visualization

through

a

flexible

isosurface

interface

Many

real-world

data

sets

produce

unmanageably

large

contour

trees

which

require

meaningful

simplification

We

define

local

geometric

measures

for

individual

contours

such

as

surface

area

and

contained

volume

and

provide

an

algorithm

to

compute

these

measures

in

a

contour

tree

We

then

use

these

geometric

measures

to

simplify

the

contour

trees

suppressing

minor

topological

features

of

the

data

We

combine

this

with

a

flexible

isosurface

interface

to

allow

users

to

explore

individual

contours

of

a

dataset

interactively

e-mail

hcarr@cs.ubc.ca

e-mail

snoeyink@cs.unc.edu

e-mail

van@cs.ubc.ca

Isosurfaces

slicing

and

volume

rendering

are

the

three

main

techniques

for

visualizing

three-dimensional

scalar

fields

on

a

two-dimensional

display

A

recent

survey

-LSB-

Brodlie

and

Wood

-RSB-

describes

the

maturation

of

these

techniques

since

the

mid

For

example

improved

understanding

of

isosurfaces

has

produced

robust

definitions

of

watertight

surfaces

and

efficient

extraction

methods

We

believe

that

the

same

improved

understanding

and

structuring

leads

to

new

interfaces

that

give

the

user

better

methods

to

select

isosurfaces

of

interest

and

that

provide

a

rich

framework

for

data-guided

exploration

of

scalar

fields

Although

key

ideas

in

this

paper

apply

to

both

isosurfaces

and

volume

rendering

the

immediate

application

is

to

isosurface

rendering

An

isosurface

shows

the

surface

for

a

fixed

value

-LRB-

the

isovalue

-RRB-

of

the

scalar

field

and

is

the

analogue

of

equal-height

contour

lines

on

a

topographic

map

The

contour

tree

represents

the

nesting

relationships

of

connected

components

of

isosurfaces

which

we

call

contours

and

is

thus

a

topological

abstraction

of

a

scalar

field

Since

genus

changes

to

surfaces

do

not

affect

the

nesting

relationship

they

are

not

represented

in

the

contour

tree

Our

contribution

is

to

combine

the

flexible

isosurface

interface

-LSB-

Carr

and

Snoeyink

-RSB-

with

online

contour

tree

simplification

guided

by

geometric

properties

of

contours

to

produce

a

tool

for

interactive

exploration

of

large

noisy

experimentally-sampled

data

sets

An

additional

contribution

is

to

draw

attention

to

other

potential

applications

of

simplified

contour

trees

such

as

detail-preserving

denoising

automated

segmentation

and

atlasing

Figure

shows

a

comparison

between

a

conventional

isosurface

and

a

flexible

isosurface

extracted

from

the

same

data

set

after

contour

tree

simplification

On

the

left

the

outermost

surface

-LRB-

the

skull

-RRB-

occludes

other

surfaces

making

it

difficult

to

study

structures

inside

the

head

Moreover

the

contour

tree

for

this

data

set

has

over

million

edges

making

it

impractical

as

a

visual

representation

October

Austin

Texas

USA

IEEE

Visualization

IEEE

Contour

c

Contour

c

Contour

c

Contour

c

Contour

c

Contour

c

Contour

c

Contour

c

Contour

c

E

F

D

B

A

C

Figure

The

topographic

map

-LRB-

scalar

field

-RRB-

surface

rendering

and

contour

tree

for

a

volcanic

crater

lake

with

a

central

island

A

a

maximum

on

the

crater

edge

B

maximum

of

island

in

the

lake

F

lake

surface

C

and

D

saddle

points

On

the

right

is

a

flexible

isosurface

constructed

using

a

simplified

contour

tree

laid

out

and

coloured

to

emphasize

the

structure

of

the

data

set

Of

particular

interest

is

that

there

are

no

magic

numbers

embedded

in

the

code

Instead

the

surfaces

shown

were

chosen

directly

from

the

simplified

contour

tree

during

exploration

of

this

data

set

with

the

level

of

simplification

being

adjusted

as

needed

The

remainder

of

this

paper

is

as

follows

Section

reviews

work

on

contour

trees

in

visualization

Section

shows

how

to

simplify

the

contour

tree

and

the

effects

on

the

data

Section

shows

how

to

compute

local

geometric

measures

efficiently

to

guide

simplification

Section

gives

implementation

details

and

Section

reports

results

Finally

Section

gives

possible

future

extensions

Most

of

the

relevant

work

deals

with

a

topological

structure

called

the

contour

tree

that

is

becoming

increasingly

important

in

visualization

Section

reviews

the

contour

tree

and

algorithms

to

compute

it

Section

then

reviews

visualization

tools

that

use

the

contour

tree

while

Section

reviews

work

on

topological

simplification

and

on

efficient

computation

of

geometric

properties

The

Contour

Tree

For

a

scalar

field

f

IR

IR

the

level

set

of

an

isovalue

h

is

the

set

L

-LRB-

h

-RRB-

-LCB-

-LRB-

x

y

z

-RRB-

f

-LRB-

x

y

z

-RRB-

h

-RCB-

A

contour

is

a

connected

component

of

a

level

set

As

h

increases

contours

appear

at

local

minima

join

or

split

at

saddles

and

disappear

at

local

maxima

of

f

Shrinking

each

contour

to

a

single

point

gives

the

contour

tree

which

tracks

this

evolution

It

is

a

tree

because

the

domain

IR

is

simply-connected

in

more

general

domains

we

obtain

the

Reeb

graph

-LSB-

Reeb

-RSB-

which

is

used

in

Morse

theory

-LSB-

Matsumoto

Milnor

-RSB-

to

study

the

topology

of

manifolds

Figure

shows

a

scalar

field

describing

a

volcanic

crater

lake

with

a

central

island

The

contour

tree

of

this

field

is

an

abstract

but

meaningful

depiction

of

the

structure

of

all

local

maxima

minima

and

saddle

points

and

gives

clues

to

interesting

contours

Individual

contours

are

represented

uniquely

as

points

on

the

contour

tree

For

example

the

isolines

c

c

and

c

are

all

at

but

each

has

a

unique

location

on

the

contour

tree

The

contour

tree

has

been

used

for

fast

isosurface

extraction

-LSB-

van

Kreveld

et

al.

Carr

and

Snoeyink

-RSB-

to

guide

mesh

simplification

-LSB-

Chiang

and

Lu

-RSB-

to

find

important

isovalues

for

transfer

function

construction

-LSB-

Takahashi

et

al.

-RSB-

to

compute

topological

parameters

of

isosurfaces

-LSB-

Kettner

et

al.

-RSB-

as

an

abstract

representation

of

scalar

fields

-LSB-

Bajaj

et

al.

-RSB-

and

to

manipulate

individual

contours

-LSB-

Carr

and

Snoeyink

-RSB-

Algorithms

to

compute

the

contour

tree

efficiently

in

three

or

more

dimensions

have

been

given

for

simplicial

meshes

-LSB-

van

Kreveld

et

al.

Tarasov

and

Vyalyi

Carr

et

al.

Chiang

et

al.

Takahashi

et

al.

-RSB-

and

for

trilinear

meshes

-LSB-

Pascucci

and

Cole-McLaughlin

-RSB-

Much

of

this

work

focusses

on

clean

data

from

analytic

functions

or

numerical

simulation

see

for

example

-LSB-

Bajaj

et

al.

Takahashi

et

al.

-RSB-

All

of

the

topology

in

this

data

is

assumed

to

be

important

and

significant

effort

is

expended

on

representing

it

accurately

using

trilinear

interpolants

-LSB-

Pascucci

and

Cole-McLaughlin

-RSB-

and

topology-preserving

simplifications

-LSB-

Chiang

and

Lu

-RSB-

In

contrast

we

are

interested

in

noisy

experimentally-acquired

data

such

as

medical

datasets

We

expect

to

discard

small-scale

topological

features

so

that

we

can

focus

on

large-scale

features

We

have

therefore

chosen

to

work

with

the

well-known

Marching

Cubes

cases

-LSB-

Lorenson

and

Cline

Montani

et

al.

-RSB-

and

with

approximate

geometric

properties

This

paper

does

not

turn

on

these

choices

however

and

can

also

be

applied

to

trilinear

interpolants

and

exact

geometric

properties

Flexible

Isosurfaces

The

contour

spectrum

-LSB-

Bajaj

et

al.

-RSB-

uses

the

contour

tree

to

represent

the

topology

of

a

field

alongside

global

measures

of

level

sets

such

as

surface

area

and

enclosed

volume

In

contrast

the

flexible

isosurface

interface

-LSB-

Carr

and

Snoeyink

-RSB-

uses

the

contour

tree

actively

instead

of

passively

The

user

selects

an

individual

contour

from

the

contour

tree

or

from

the

isosurface

display

then

manipulates

it

Operations

include

contour

removal

and

contour

evolution

as

the

isovalue

is

changed

using

the

contour

tree

to

track

which

contours

to

display

This

interface

depends

on

attaching

isosurface

seeds

called

path

seeds

to

each

edge

of

the

contour

tree

so

that

individual

contours

can

be

extracted

on

demand

A

major

disadvantage

of

both

these

interfaces

is

that

contour

trees

with

more

than

a

few

tens

of

edges

make

poor

visual

abstractions

A

principal

contribution

of

this

paper

to

simplify

the

contour

tree

while

preserving

the

exploratory

capabilities

of

the

flexible

isosurface

This

requires

that

each

point

in

a

simplified

contour

tree

represents

an

extractable

contour

Moreover

extracted

contours

must

evolve

as

smoothly

as

possible

when

the

isovalue

is

adjusted

We

satisfy

these

constraint

with

simplifications

that

have

pre-dictable

effects

on

the

scalar

field

and

geometric

measures

that

tify

unimportant

contour

tree

edges

for

simplification

Simplification

and

Geometric

Measures

The

distinction

between

this

paper

and

other

work

that

simplifies

contour

trees

or

Reeb

graphs

is

our

emphasis

on

using

tree

structure

for

local

exploration

-LSB-

Takahashi

et

al.

-RSB-

simplify

the

contour

tree

by

replacing

three

edges

at

a

saddle

point

with

a

single

new

edge

based

on

the

height

of

the

edge

-LSB-

Takahashi

et

al.

-RSB-

use

the

approximate

volume

of

the

region

represented

by

the

subtree

that

is

discarded

Saddles

are

processed

until

only

a

few

remain

then

a

transfer

function

is

constructed

that

emphasizes

the

isovalues

of

those

saddles

Our

simplification

algorithm

extends

this

work

to

preserve

local

information

such

as

isosurface

seeds

and

to

compute

arbitrary

geometric

measures

of

importance

We

also

describe

the

effects

of

simplification

on

the

scalar

field

Since

removing

a

leaf

of

the

contour

tree

cancels

out

a

local

ex-tremum

with

a

saddle

this

form

of

simplification

can

be

shown

to

be

equivalent

to

topological

persistence

-LSB-

Edelsbrunner

et

al.

Edelsbrunner

et

al.

Bremer

et

al.

-RSB-

if

the

geometric

measure

used

is

height

For

other

measures

such

as

volume

or

hypervolume

the

method

described

in

this

paper

is

necessary

to

define

these

properties

but

thereafter

the

process

can

optionally

be

described

in

terms

of

persistence

Moreover

work

on

persistence

has

focussed

on

the

Morse

complex

which

is

difficult

to

compute

and

segments

data

according

to

the

gradient

of

the

field

When

the

boundary

of

an

object

such

as

an

organ

is

better

described

by

a

contour

than

by

drainage

contour

trees

are

more

directly

applicable

than

Morse

complexes

and

the

additional

overhead

of

working

with

the

Morse

complex

is

unnecessary

-LSB-

Hilaga

et

al.

-RSB-

have

shown

how

to

simplify

the

Reeb

graph

by

progressive

quantization

of

the

isovalue

to

obtain

a

multi-resolution

Reeb

graph

This

suffers

from

several

drawbacks

in

particular

that

it

is

strictly

tied

to

a

function

value

which

is

treated

as

height

-LRB-

or

persistence

-RRB-

Extension

to

geometric

measures

of

importance

such

as

volume

or

hypervolume

is

therefore

problematic

Moreover

the

quantization

used

imposes

serious

restrictions

on

isosurface

generation

and

the

level

of

simplification

as

well

as

generating

artifacts

related

to

the

quantization

In

particular

we

note

that

this

quantization

process

limits

potential

simplification

to

at

most

as

many

levels

as

there

are

bits

in

each

input

sample

Finally

this

method

is

relatively

slow

is

claimed

for

a

input

mesh

with

vertices

extensions

to

sample

volumetric

data

have

not

yet

been

published

Work

also

exists

on

computing

geometric

measures

efficiently

in

large

data

sets

-LSB-

Bentley

-RSB-

defined

problems

to

be

decomposable

if

their

solution

could

be

assembled

from

the

solutions

of

an

arbitrary

decomposition

into

subproblems

Decomposability

has

been

used

for

a

variety

of

problems

including

computation

of

geometric

properties

of

level

sets

-LSB-

Bajaj

et

al.

-RSB-

and

extraction

of

isosurfaces

-LSB-

Lorenson

and

Cline

-RSB-

We

use

decomposability

in

Section

to

compute

local

geometric

measures

Given

a

contour

tree

and

a

scalar

field

we

apply

graph

simplification

to

the

contour

tree

This

simplification

can

then

be

carried

back

to

simplify

the

input

data

Alternately

we

can

use

the

simplified

contour

tree

to

extract

the

reduced

set

of

isosurfaces

that

would

result

if

we

had

simplified

the

data

In

this

section

we

describe

the

contour

tree

structure

the

simplification

operators

and

the

algorithms

for

simplification

and

isosurface

extraction

Contour

Tree

Structure

A

contour

tree

is

the

result

of

contracting

every

contour

to

a

point

We

use

a

simple

tree

structure

in

which

every

vertex

is

assigned

a

y-coordinate

and

every

edge

is

associated

with

the

set

of

contours

between

its

vertices

We

store

path

seeds

for

generating

individual

contours

as

in

-LSB-

Carr

and

Snoeyink

-RSB-

That

is

we

store

a

pointer

to

a

monotone

path

that

intersects

all

contours

along

the

edge

which

then

serves

as

a

seed

to

generate

any

given

contour

In

this

section

we

assume

that

each

edge

has

a

simplification

value

-LRB-

weight

-RRB-

that

indicates

the

edge

's

priority

Low

priority

edges

are

good

candidates

for

simplification

Basic

Simplification

Operations

We

simplify

the

contour

tree

with

two

operations

leaf

pruning

and

vertex

reduction

Leaf

pruning

removes

a

leaf

of

the

tree

reducing

the

complexity

of

the

tree

as

shown

in

Figure

where

vertex

is

pruned

from

the

tree

on

the

left

to

produce

the

tree

in

the

middle

Vertex

reduction

chooses

a

vertex

with

one

neighbor

above

and

one

below

and

deletes

the

vertex

without

changing

the

essential

structure

of

the

contour

tree

This

is

also

illustrated

in

Figure

where

vertex

has

been

removed

from

the

tree

in

the

middle

to

produce

the

tree

on

the

right

Since

vertex

reductions

do

not

change

the

essential

structure

of

the

contour

tree

we

prefer

them

to

leaf

prunes

Also

pruning

the

only

up

or

down

edge

at

a

saddle

is

prohibited

to

preserve

the

edge

for

a

later

vertex

reduction

It

is

clear

that

these

operations

can

simplify

the

tree

to

any

desired

size

We

can

also

think

of

these

operations

as

having

well-defined

effects

on

the

underlying

scalar

field

pruning

a

leaf

corresponds

to

levelling

off

a

maximum

or

minimum

while

vertex

reduction

requires

no

changes

As

an

example

in

Figure

we

show

the

result

of

leaf-pruning

vertex

and

edge

from

the

tree

Since

represents

the

left-hand

maximum

pruning

it

flattens

out

the

maximum

as

shown

in

the

middle

terrain

Similarly

the

right-hand

image

shows

the

results

of

reducing

vertex

after

the

leaf

prune

The

edges

incident

to

vertex

in

the

tree

correspond

to

the

regions

above

and

below

the

contour

through

vertex

Removing

vertex

merely

combines

these

two

regions

into

one

The

fact

that

simplification

operations

can

be

interpreted

as

modifying

the

scalar

field

suggests

that

one

way

to

assess

the

cost

of

an

operation

is

to

measure

geometric

properties

of

the

change

We

show

how

this

can

be

done

efficiently

in

Section

Simplification

Algorithm

To

simplify

the

contour

tree

we

apply

the

following

rules

Always

perform

vertex

reduction

where

possible

Always

choose

the

least

important

leaf

to

prune

Never

prune

the

last

up

or

down

leaf

at

an

interior

vertex

We

implement

this

with

a

priority

queue

to

keep

track

of

the

leaves

of

the

tree

with

their

associated

pruning

cost

We

assume

that

for

each

edge

e

of

the

tree

we

know

two

costs

up

-LRB-

e

-RRB-

for

pruning

the

edge

from

the

bottom

up

i.e.

collapsing

the

edge

to

its

upper

vertex

and

down

-LRB-

e

-RRB-

for

the

cost

of

pruning

the

edge

from

the

Leaf

is

pruned

Vertex

is

reduced

Figure

Leaf

Pruning

Levels

Extrema

Vertex

Reduction

Leaves

Scalar

Field

Unchanged

top

downwards

We

add

each

leaf

to

the

priority

queue

with

priority

of

up

-LRB-

e

-RRB-

for

a

lower

leaf

and

down

-LRB-

e

-RRB-

for

an

upper

leaf

We

then

repeatedly

remove

the

lowest

cost

leaf

edge

from

the

priority

queue

and

prune

it

If

this

pruning

causes

a

vertex

to

become

reducible

we

do

so

immediately

When

a

vertex

is

reduced

two

edges

e

and

e

are

merged

into

a

simplified

edge

d

The

cost

of

pruning

d

is

based

on

the

costs

of

the

two

reduced

edges

Since

up

-LRB-

d

-RRB-

is

the

cost

of

pruning

d

upwards

we

set

it

to

up

-LRB-

e

-RRB-

the

cost

of

pruning

the

upper

edge

upwards

Similarly

we

set

down

-LRB-

d

-RRB-

to

down

-LRB-

e

-RRB-

the

cost

of

pruning

the

lower

edge

downwards

If

d

is

a

leaf

edge

we

add

it

to

the

priority

queue

To

simplify

queue

handling

we

mark

the

reduced

edges

for

lazy

deletion

When

a

marked

edge

reaches

the

front

of

the

priority

queue

we

discard

it

immediately

Similarly

when

the

edge

removed

from

the

queue

is

the

last

up

or

down

edge

at

its

interior

vertex

we

discard

it

preserving

it

for

a

later

vertex

reduction

A

few

observations

on

this

algorithm

First

any

desired

level

of

simplification

of

the

tree

can

be

achieved

in

a

number

of

queue

operations

linear

in

t

the

size

of

the

original

tree

Since

at

least

half

the

nodes

are

leaves

this

bound

is

tight

And

if

the

contour

tree

is

stored

as

nodes

with

circular

linked

lists

of

upwards

and

downwards

edges

every

operation

except

-LRB-

de

-RRB-

queueing

takes

constant

time

As

a

result

the

asymptotic

cost

of

this

algorithm

is

dominated

by

the

O

-LRB-

t

log

-LRB-

t

-RRB-

-RRB-

cost

of

maintaining

the

priority

queue

Second

the

simplified

contour

tree

can

still

be

used

to

extract

isosurface

contours

Vertex

reductions

build

monotone

paths

corresponding

to

the

simplified

edges

while

leaf

prunes

discard

entire

monotone

paths

Thus

any

edge

in

a

simplified

contour

tree

corresponds

to

a

monotone

path

through

the

original

contour

tree

To

generate

the

contour

at

a

given

isovalue

on

a

simplified

edge

we

perform

a

binary

search

along

the

contour

tree

edges

that

make

up

the

monotone

path

for

that

simplified

edge

This

search

identifies

the

unique

contour

tree

edge

that

spans

the

desired

isovalue

and

we

use

the

path

seed

associated

with

that

edge

to

generate

the

contour

Third

we

extract

contours

from

seeds

as

before

Instead

of

simplifying

individual

contours

we

reduce

the

set

of

contours

that

can

be

extracted

Surface

simplification

of

contours

is

a

separate

task

Finally

up

-LRB-

e

-RRB-

and

down

-LRB-

e

-RRB-

actually

need

not

be

set

except

at

leaves

of

the

tree

As

a

leaf

is

pruned

and

vertex

reduced

new

values

can

be

computed

using

information

from

the

old

nodes

and

edges

It

is

not

hard

to

show

by

induction

that

any

desired

level

of

simplification

of

the

tree

can

be

achieved

And

since

leaf

pruning

and

vertex

reduction

are

the

only

two

operations

the

net

result

can

also

be

a

meaningful

simplification

of

the

underlying

scalar

field

assuming

that

a

reasonable

geometric

measure

is

used

to

guide

the

simplification

We

therefore

next

discuss

geometric

measures

-LSB-

Bajaj

et

al.

-RSB-

compute

global

geometric

properties

and

display

them

alongside

the

contour

tree

in

the

contour

spectrum

-LSB-

Pascucci

and

Cole-McLaughlin

-RSB-

propagate

topological

indices

called

the

Betti

numbers

along

branches

of

the

contour

tree

based

on

previous

work

by

-LSB-

Pascucci

-RSB-

We

bring

these

two

ideas

together

to

compute

local

geometric

measures

for

individual

contours

In

scalar

fields

the

geometric

properties

we

could

compute

include

the

following

contour

properties

line

length

-LRB-

perimeter

-RRB-

cross-sectional

area

-LRB-

area

of

region

enclosed

by

the

contour

-RRB-

volume

-LRB-

of

the

region

enclosed

-RRB-

and

surface

area

-LRB-

of

the

function

over

the

region

-RRB-

In

scalar

fields

there

are

analogous

properties

that

include

isosurface

area

cross-sectional

volume

-LRB-

the

volume

of

the

region

enclosed

by

the

isosurface

-RRB-

and

hypervolume

-LRB-

the

integral

of

the

scalar

field

over

the

enclosed

volume

-RRB-

Figure

Contours

Sweeping

Past

a

Saddle

Point

Consider

a

plane

sweeping

through

the

field

in

Figure

from

high

to

low

isovalues

At

any

isovalue

h

the

plane

divides

the

field

into

regions

above

and

below

the

plane

As

the

isovalue

decreases

the

region

above

the

plane

grows

sweeping

past

the

vertices

of

the

mesh

one

at

a

time

Geometric

properties

of

this

region

can

be

written

as

functions

of

the

isovalue

h

Such

properties

are

decomposable

over

the

cells

of

the

input

data

for

each

cell

we

compute

a

piecewise

polynomial

function

and

sum

them

to

obtain

a

piecewise

polynomial

function

for

the

entire

region

-LSB-

Bajaj

et

al.

-RSB-

compute

these

functions

by

sweeping

through

the

isovalues

altering

the

function

as

each

vertex

is

passed

Figure

illustrates

this

process

showing

the

contours

immediately

above

and

below

a

vertex

s

As

the

plane

sweeps

past

s

the

function

is

unchanged

in

cells

outside

the

neighbourhood

of

s

but

changes

inside

the

neighbourhood

of

s

This

sweep

computes

global

geometric

properties

for

the

region

above

the

sweep

plane

Reversing

the

direction

of

the

sweep

computes

global

geometric

properties

for

the

region

below

the

sweep

plane

In

Figure

the

region

above

the

sweep

plane

at

consists

of

two

connected

components

one

defined

by

contours

c

and

c

the

other

by

c

To

compute

properties

for

these

components

we

sweep

along

an

edge

of

the

contour

tree

representing

a

single

contour

sweeping

through

the

data

This

lets

us

compute

functions

for

the

central

maximum

at

B.

For

the

crater

rim

defined

by

contours

c

and

c

we

use

inclusion/exclusion

We

sweep

one

contour

at

a

time

computing

properties

for

the

region

inside

the

contour

including

regions

above

and

below

the

isovalue

of

the

contour

The

area

of

the

crater

rim

can

then

be

computed

by

subtracting

the

area

inside

contour

c

from

the

area

inside

contour

c

We

define

local

geometric

measures

to

be

geometric

properties

of

regions

bounded

by

a

contour

We

compute

these

measures

in

a

manner

similar

to

the

global

sweep

of

-LSB-

Bajaj

et

al.

-RSB-

but

by

sweeping

contours

along

contour

tree

edges

Local

Geometric

Measures

To

define

local

geometric

measures

attached

to

contour

tree

edges

we

must

be

careful

with

terminology

Above

and

below

do

not

apply

to

the

region

inside

c

in

Figure

since

part

of

the

region

is

above

the

contour

and

part

is

below

Nor

do

inside

and

outside

which

lose

their

meaning

for

contours

that

intersect

the

boundary

We

therefore

define

upstart

and

downstart

regions

of

a

contour

An

upstart

region

is

a

region

reachable

from

the

contour

by

paths

that

initially

ascend

from

the

contour

and

never

return

to

it

For

contour

c

there

is

one

upstart

region

-LRB-

inside

-RRB-

and

one

downstart

region

-LRB-

outside

-RRB-

At

saddles

such

as

D

there

may

be

several

upstart

regions

Since

each

such

region

corresponds

to

an

edge

in

the

contour

tree

we

refer

for

example

to

the

upstart

region

at

D

for

arc

CD

We

now

define

upstart

and

downstart

functions

functions

computed

for

upstart

or

downstart

regions

Note

that

the

upstart

and

downstart

functions

do

not

have

to

be

the

same

For

example

the

length

of

a

contour

line

is

independent

of

sweep

direction

so

the

upstart

and

downstart

functions

for

contour

length

in

are

identical

But

the

area

enclosed

by

a

contour

depends

on

sweep

direction

so

the

upstart

and

downstart

functions

will

be

different

Since

upstart

and

downstart

functions

describe

geometric

properties

local

to

a

contour

we

refer

to

them

collectively

as

local

geometric

measures

These

measures

are

piecewise

polynomial

since

they

are

piecewise

polynomial

in

each

cell

Because

we

need

to

track

connectivity

for

inclusion/exclusion

they

are

not

strictly

decomposable

Stated

another

way

in

order

to

make

them

decomposable

we

need

to

know

the

connectivity

during

the

local

sweep

We

are

fortunate

that

the

contour

tree

encodes

this

connectivity

For

regular

data

we

approximate

region

size

with

vertex

count

as

in

-LSB-

Takahashi

et

al.

-RSB-

For

the

integral

of

f

over

region

R

we

sum

the

sample

values

to

get

x

R

f

-LRB-

x

-RRB-

the

correct

integral

is

the

limit

of

this

sum

as

sample

spacing

approaches

zero

When

we

prune

a

leaf

to

a

saddle

at

height

h

the

integral

over

the

region

flattened

is

x

R

-LRB-

f

-LRB-

x

-RRB-

h

-RRB-

-LRB-

x

R

f

-LRB-

x

-RRB-

-RRB-

Ah

where

A

is

the

area

of

region

R

In

three

dimensions

vertex

counting

measures

volume

and

summing

the

samples

gives

hypervolume

This

geometric

measure

is

quite

effective

on

the

data

sets

we

have

tested

in

Section

Combining

Local

Geometric

Measures

To

compute

local

geometric

measures

we

must

be

able

to

combine

upstart

functions

as

we

sweep

a

set

of

contours

past

a

vertex

In

Figure

we

must

combine

the

upstart

functions

for

contours

c

c

and

c

before

sweeping

past

s

We

must

then

update

the

combined

upstart

function

as

we

sweep

past

the

vertex

After

sweeping

past

s

we

know

the

combined

upstart

function

d

for

contours

d

d

and

d

We

remove

the

upstart

functions

for

d

and

d

from

d

to

obtain

the

upstart

function

for

d

We

assume

that

we

have

recursively

computed

the

upstart

functions

for

d

and

d

by

computing

the

downstart

functions

and

then

inverting

them

Let

us

illustrate

inversion

combination

and

removal

for

two

local

geometric

measures

in

two

dimensions

Contour

Length

Contour

length

is

independent

of

sweep

direction

so

these

operations

are

simple

Inversion

is

the

identity

operation

combination

sums

the

lengths

of

the

individual

contours

and

contours

are

removed

by

subtracting

their

lengths

Area

Area

depends

on

sweep

direction

so

inversion

subtracts

the

function

from

the

area

of

the

entire

field

Combining

upstart

functions

at

a

saddle

depends

on

whether

the

corresponding

edges

ascend

or

descend

from

the

saddle

For

ascending

edges

the

upstart

regions

are

disjoint

and

the

upstart

functions

are

summed

For

descending

edges

the

upstart

regions

overlap

and

the

upstart

functions

are

combined

by

inverting

to

downstart

functions

summing

and

re-inverting

Removing

upstart

functions

reverses

combination

Consider

Figure

once

more

The

upstart

region

of

d

contains

s

as

well

as

contours

c

c

and

c

Similarly

the

upstart

regions

of

d

and

d

contain

s

and

contours

c

c

and

c

However

the

downstart

regions

of

d

d

and

d

are

disjoint

and

can

be

summed

then

inverted

to

obtain

the

combination

of

the

upstart

regions

In

general

measures

of

contour

size

are

independent

of

sweep

direction

and

their

computation

follows

the

pattern

of

contour

length

Such

measures

include

surface

area

in

three

dimensions

and

hypersurface

volume

in

four

dimensions

Measures

of

region

size

depend

on

sweep

direction

and

their

computation

follows

the

pattern

of

cross-sectional

area

Such

measures

include

surface

area

and

volume

in

two

dimensions

and

isosurface

cross-sectional

volume

and

hypervolume

in

three

dimensions

Input

Fully

Augmented

Contour

Tree

C

A

local

geometric

measure

f

with

operations

Combine

-LRB-

f

f

m

-RRB-

local

geometric

measures

Update

-LRB-

f

v

-RRB-

that

updates

f

for

sweep

past

v

Remove

-LRB-

f

f

f

m

-RRB-

local

geometric

measures

Invert

-LRB-

-RRB-

from

down

-LRB-

e

-RRB-

to

up

-LRB-

e

-RRB-

or

vice

versa

Output

down

-LRB-

e

-RRB-

and

up

-LRB-

e

-RRB-

for

each

edge

e

in

C

Make

a

copy

C

of

C

for

each

vertex

v

do

If

v

is

a

leaf

of

C

enqueue

v

while

NumberOfArcs

-LRB-

C

-RRB-

do

Dequeue

v

and

retrieve

edge

e

-LRB-

u

v

-RRB-

from

C

Without

loss

of

generality

assume

e

ascends

from

v

Let

d

d

k

be

downward

arcs

at

v

in

C

Let

upBelow

Combine

-LRB-

down

-LRB-

d

-RRB-

down

-LRB-

d

k

-RRB-

Let

upAbove

Update

-LRB-

upBelow

v

-RRB-

Let

e

e

m

be

upwards

arcs

at

v

in

C

with

e

e

Let

f

i

Invert

-LRB-

down

-LRB-

e

i

-RRB-

-RRB-

for

i

m

Let

up

-LRB-

e

-RRB-

Remove

-LRB-

upAbove

f

f

m

-RRB-

Let

down

-LRB-

e

-RRB-

Invert

-LRB-

up

-LRB-

e

-RRB-

-RRB-

Delete

e

from

C

If

u

is

now

a

leaf

of

C

enqueue

u

Algorithm

Computing

Local

Geometric

Measures

-LRB-

a

-RRB-

Reduced

by

Height

-LRB-

Persistence

-RRB-

-LRB-

b

-RRB-

Reduced

by

Volume

-LRB-

Vertex

Count

-RRB-

-LRB-

c

-RRB-

Reduced

by

Hypervolume

-LRB-

Riemann

Sum

-RRB-

Figure

Comparison

of

Simplification

Using

Three

Local

Geometric

Measures

In

each

case

the

UNC

Head

data

set

has

been

simplified

to

edges

using

the

specified

measure

Each

trees

were

laid

out

using

the

dot

tool

with

no

manual

adjustment

Computing

Local

Geometric

Measures

Algorithm

shows

how

to

compute

edge

priorities

up

-LRB-

e

-RRB-

and

down

-LRB-

e

-RRB-

for

a

given

local

geometric

measure

This

algorithm

relies

on

Combine

-LRB-

-RRB-

Update

-LRB-

-RRB-

Invert

-LRB-

-RRB-

and

Remove

-LRB-

-RRB-

having

been

suitably

defined

and

can

be

integrated

into

the

merge

phase

of

the

contour

tree

algorithm

in

-LSB-

Carr

et

al.

-RSB-

The

algorithm

builds

a

queue

of

leaf

edges

in

Step

then

works

inwards

pruning

edges

as

it

goes

At

each

vertex

including

regular

points

the

computation

described

in

Section

is

performed

and

the

edge

is

deleted

from

the

tree

In

this

way

an

edge

is

processed

only

when

one

of

its

vertices

is

reduced

to

a

leaf

i.e.

when

all

other

edges

at

that

vertex

have

already

been

processed

Unlike

simplification

Algorithm

requires

the

fully

augmented

contour

tree

which

is

obtained

by

adding

every

vertex

in

the

input

mesh

to

the

contour

tree

This

makes

the

algorithm

linear

in

the

input

size

n

rather

than

the

tree

size

t

it

can

not

be

used

with

the

algorithms

of

-LSB-

Pascucci

and

Cole-McLaughlin

-RSB-

and

-LSB-

Chiang

et

al.

-RSB-

which

reduce

running

time

by

ignoring

regular

points

Comparison

of

Local

Geometric

Measures

In

Figure

we

show

the

results

of

simplifying

the

UNC

Head

data

set

with

three

different

geometric

measures

height

-LRB-

persistence

-RRB-

volume

and

hypervolume

In

each

case

the

contour

tree

has

been

reduced

to

edges

and

laid

out

using

dot

with

no

manual

intervention

In

the

left-hand

image

height

-LRB-

persistence

-RRB-

is

used

as

the

geometric

measure

All

of

the

edges

shown

are

tall

as

a

result

but

on

inspection

many

of

these

edges

are

caused

by

high-intensity

voxels

in

the

skull

or

in

blood

vessels

Most

of

the

corresponding

objects

are

quite

small

while

genuine

objects

of

interest

such

as

the

eyes

ventricular

cavities

and

nasal

cavity

have

already

been

suppressed

because

they

are

defined

by

limited

ranges

of

voxel

intensity

Also

on

the

corresponding

simplification

curve

we

observe

that

there

are

a

relatively

large

number

of

objects

with

large

intensity

ranges

again

on

further

inspection

these

tended

to

be

fragments

of

larger

objects

particularly

the

skull

In

comparison

the

middle

image

shows

the

results

of

using

volume

-LRB-

i.e.

vertex

count

-RRB-

as

the

geometric

measure

Not

only

does

this

focus

attention

on

a

few

objects

of

relatively

large

spatial

extent

but

the

simplification

curve

shows

a

much

more

rapid

drop-off

implying

that

there

are

fewer

objects

of

large

volume

than

there

are

of

large

height

Objects

such

as

the

eyeballs

are

represented

as

they

have

relatively

large

regions

despite

having

small

height

However

we

note

that

there

are

a

large

number

of

small-height

edges

at

the

bottom

of

the

contour

tree

These

edges

turn

out

to

be

caused

by

noise

and

artifacts

outside

the

skull

in

the

original

CT

scan

in

which

large

regions

are

either

slightly

higher

or

lower

in

isovalue

than

the

surrounding

regions

Finally

the

right-hand

image

shows

the

results

of

using

hypervolume

-LRB-

the

sum

of

sample

values

as

discussed

above

-RRB-

In

this

case

we

see

a

very

rapid

dropoff

of

importance

in

the

simplification

curve

with

only

or

so

regions

having

significance

We

note

that

this

measure

preserves

small-height

features

such

as

the

eyeballs

while

eliminating

most

of

the

apparent

noise

edges

at

the

bottom

of

the

tree

although

at

the

expense

of

representing

more

skull

fragments

than

the

volume

measure

In

general

we

have

found

that

this

measure

is

better

for

data

exploration

than

either

height

or

volume

since

it

balances

representation

of

tall

objects

with

representation

of

large

objects

We

do

not

claim

that

this

measure

is

universally

ideal

the

choice

of

simplification

measure

should

be

driven

by

domain-dependent

information

However

no

matter

what

measure

is

chosen

the

basic

mechanism

of

simplification

remains

We

have

combined

simplification

with

the

flexible

isosurface

interface

of

-LSB-

Carr

and

Snoeyink

-RSB-

which

uses

the

contour

tree

as

a

visual

index

to

contours

The

interface

window

shown

in

Figures

and

is

divided

into

data

contour

tree

and

simplification

curve

panels

The

data

panel

displays

the

set

of

contours

marked

in

the

contour

tree

panel

Contours

can

be

selected

in

either

panel

then

deleted

isolated

or

have

their

isovalue

adjusted

The

simplification

curve

panel

shows

a

log-log

plot

of

contour

tree

size

against

feature

size

the

highest

cost

of

any

edge

pruned

to

reach

the

given

level

of

simplification

Selecting

a

point

on

this

curve

determines

the

detail

shown

in

the

contour

tree

panel

For

efficiency

we

compute

contour

trees

for

the

surfaces

given

by

the

Marching

Cubes

cases

of

-LSB-

Montani

et

al.

-RSB-

instead

of

a

plicial

or

trilinear

mesh

because

these

surfaces

generate

roughly

fewer

triangles

than

even

a

minimal

simplicial

subdivision

of

the

voxels

with

of

the

directional

biases

identified

by

-LSB-

Carr

et

al.

-RSB-

and

because

they

are

significantly

simpler

to

compute

than

the

trilinear

interpolant

used

by

-LSB-

Pascucci

and

Cole-McLaughlin

-RSB-

There

is

a

loss

of

accuracy

but

since

our

simplification

discards

small-scale

details

of

the

topology

anyway

little

would

be

gained

from

more

complex

interpolants

Finally

as

in

-LSB-

Carr

et

al.

Pascucci

and

Cole-McLaughlin

Chiang

et

al.

-RSB-

we

use

simulation

of

simplicity

-LSB-

Edelsbrunner

and

M

ucke

-RSB-

to

guarantee

uniqueness

of

isovalues

then

collapse

zero-height

edges

in

the

tree

Implementation

details

can

be

found

in

-LSB-

Carr

-RSB-

We

used

a

variety

of

data

sets

to

test

these

methods

including

results

from

numerical

simulations

-LRB-

Nucleon

Silicium

Fuel

Neghip

Hydrogen

-RRB-

analytical

methods

-LRB-

ML

Shockwave

-RRB-

CT-scans

-LRB-

Lobster

Engine

Statue

Teapot

Bonsai

-RRB-

and

X-rays

-LRB-

Aneurysm

Foot

Skull

-RRB-

Table

lists

the

size

of

each

data

set

the

size

of

the

unsimplified

contour

tree

the

time

for

constructing

the

unsimplified

contour

tree

and

the

simplification

time

Times

were

obtained

using

a

GHz

Pentium

with

GB

RAM

and

the

hypervolume

measure

Data

Set

Data

Tree

Size

Size

CT

-LRB-

s

-RRB-

ST

-LRB-

s

-RRB-

Nucleon

ML

Silicium

Fuel

Neghip

Shockwave

Hydrogen

Lobster

Engine

Statue

Teapot

Aneurysm

Bonsai

Foot

Skull

CT

Head

UNC

Head

Tooth

Rat

Table

Data

sets

unsimplified

contour

tree

sizes

and

contour

tree

construction

time

-LRB-

CT

-RRB-

and

simplification

time

-LRB-

ST

-RRB-

in

seconds

The

size

of

the

contour

tree

is

proportional

to

the

number

of

local

extrema

in

the

input

data

For

analytic

and

simulated

data

sets

such

as

the

ones

shown

in

the

upper

half

of

Table

this

is

much

smaller

than

the

input

size

For

noisy

experimentally

acquired

data

such

as

the

ones

shown

in

the

lower

half

of

Table

the

size

of

the

contour

tree

is

roughly

proportional

to

the

input

size

The

time

required

to

simplify

the

contour

tree

using

local

geometric

measures

is

typi-cally

less

than

one

percent

of

the

time

of

constructing

the

original

contour

tree

plus

the

additional

cost

of

pre-computing

these

measures

during

contour

tree

construction

Examples

of

Data

Exploration

Figure

shows

the

result

of

exploring

of

the

UNC

Head

data

set

using

simplified

contour

trees

An

appropriate

level

of

simplification

was

chosen

on

the

simplification

curve

and

individual

contours

explored

until

the

image

shown

was

produced

Surfaces

identifiable

as

part

of

the

skull

were

not

chosen

because

they

occluded

the

view

of

internal

organs

although

two

contours

for

the

ventricular

system

were

chosen

despite

being

occluded

by

the

brain

surrounding

them

The

flexible

isosurface

interface

is

particularly

useful

in

this

context

because

it

lets

one

manipulate

a

single

contour

at

a

time

as

shown

in

the

video

submitted

with

this

paper

embryo

gut

lungs

eyes

brain

windpipe

shoulder

blades

breastbone

Figure

A

Pregnant

Rat

MRI

-LRB-

-RRB-

Despite

low

quality

data

simplifying

the

contour

tree

from

to

edges

allows

identification

of

several

anatomical

features

spinal

column

spinal

cord

ventricles

spinal

cord

spinal

column

ventricles

Figure

CT

of

a

Skull

-LRB-

-RRB-

Simplification

of

the

contour

tree

from

to

edges

isolates

the

ventricular

cavity

spinal

cord

and

spinal

column

Similarly

Figure

shows

the

result

of

a

similar

exploration

of

a

low-quality

MRI

scan

of

a

rat

from

the

Whole

Frog

Project

at

Whole.Frog/Whole.Frog.html

Again

simplification

reduces

the

contour

tree

to

a

useful

size

Figure

shows

a

spinal

column

spinal

cord

and

ventricular

cavity

identified

in

a

CT

data

set

from

the

University

of

Erlangen-Nuremberg

Other

examples

may

be

seen

on

the

accompanying

video

Each

of

these

images

took

less

than

minutes

to

produce

after

all

pre-processing

using

the

dot

tool

from

the

graphviz

package

-LRB-

-RRB-

to

lay

out

the

contour

tree

we

generally

then

made

a

few

adjustments

to

the

node

positions

for

clarity

Although

dot

produces

reasonable

layouts

for

trees

with

nodes

it

is

slow

sometimes

taking

several

minutes

and

the

layout

computed

usually

becomes

unsatisfactory

as

edges

are

added

or

subtracted

from

the

tree

Note

that

in

of

these

cases

was

any

special

constant

embedded

in

the

code

the

result

is

purely

a

function

of

the

topology

of

the

isosurfaces

of

the

input

data

We

have

presented

a

novel

algorithm

for

the

simplification

of

contour

trees

based

on

local

geometric

measures

The

algorithm

is

online

meaning

that

simplifications

can

be

done

and

undone

at

any

time

This

addresses

the

scalability

problems

of

the

contour

tree

in

exploratory

visualization

of

scalar

fields

The

simplification

can

also

be

reflected

back

onto

the

input

data

to

produce

an

on-line

simplified

scalar

field

The

algorithm

is

driven

by

local

geometric

measures

such

as

area

and

volume

which

make

the

simplifications

meaningful

Moreover

the

simplifications

can

be

tailored

to

a

particular

application

or

data

set

We

intend

to

explore

several

future

directions

We

could

compute

a

multi-dimensional

feature

vector

of

local

geometric

measures

and

allow

user-directed

simplification

of

the

contour

tree

with

different

measures

being

applied

in

different

regions

of

the

function

The

simplified

contour

tree

also

provides

a

data

structure

for

queries

With

local

feature

vectors

one

could

efficiently

answer

queries

such

as

Find

all

contours

with

volume

of

at

least

units

and

an

approximate

surface-area-to-volume

ratio

of

If

information

about

spatial

extents

-LRB-

e.g.

bounding

boxes

-RRB-

is

computed

then

spatial

constraints

can

also

be

included

Inverse

problems

could

also

be

posed

given

examples

of

a

feature

-LRB-

e.g.

a

tumor

-RRB-

what

should

the

query

constraints

be

to

find

such

features

Some

interface

issues

still

need

resolution

such

as

finding

a

fast

contour

tree

layout

that

is

clear

over

a

wide

range

of

levels

of

simplification

but

which

also

respects

the

convention

that

the

y-position

depends

on

the

isovalue

We

would

also

like

to

annotate

contours

using

the

flexible

isosurface

interface

rather

than

after

the

fact

as

we

have

done

in

Figure

and

Figures

and

to

enable

local

simplification

of

the

contour

tree

rather

than

the

single-parameter

simplification

presented

here

Isosurfaces

are

not

the

only

way

of

visualizing

volumetric

data

Other

methods

include

boundary

propagation

using

level

set

methods

or

T-snakes

We

believe

that

simplified

contour

trees

can

provide

seeds

for

these

methods

either

automatically

or

through

user

interaction

We

are

adapting

the

flexible

isosurface

interface

to

generate

transfer

functions

for

volume

rendering

These

transfer

functions

would

add

spatial

locality

to

volume

rendering

based

on

the

regions

corresponding

to

edges

of

the

simplified

contour

tree

Another

possible

direction

is

to

develop

more

local

geometric

measure

for

multilinear

interpolants

Lastly

the

algorithms

we

describe

work

in

arbitrary

dimensions

but

special

consideration

should

be

given

to

simplification

of

contour

trees

for

time-varying

data

Acknowledgements

are

due

to

the

National

Science

and

Engineering

Research

Council

of

Canada

-LRB-

NSERC

-RRB-

for

support

in

the

form

of

post-graduate

fellowships

and

research

grants

and

to

the

U.S.

National

Science

Foundation

-LRB-

NSF

-RRB-

and

the

Institute

for

Robotics

and

Intelligent

Systems

-LRB-

IRIS

-RRB-

for

research

grants

Acknowledgements

are

also

due

to

those

who

made

volumetric

data

available

at

volvis.org

and

other

sites

B

AJAJ

C.

L.

P

ASCUCCI

V.

AND

S

CHIKORE

D.

R.

The

Contour

Spectrum

In

Proceedings

of

IEEE

Visualization

B

ENTLEY

J.

L.

Decomposable

searching

problems

Inform

Process

Lett

B

REMER

P.-T.

E

DELSBRUNNER

H.

H

AMANN

B.

AND

P

ASCUCCI

V.

A

Multi-resolution

Data

Structure

for

Two-dimensional

Morse-Smale

Functions

In

Proceedings

of

IEEE

Visualization

B

RODLIE

K.

AND

W

OOD

J.

Recent

advances

in

volume

visualization

Computer

Graphics

Forum

-LRB-

June

-RRB-

C

ARR

H.

AND

S

NOEYINK

J.

Path

Seeds

and

Flexible

Isosurfaces

Using

Topology

for

Exploratory

Visualization

In

Proceedings

of

Eurographics

Visualization

Symposium

C

ARR

H.

M

OLLER

T.

AND

S

NOEYINK

J.

Simplicial

Subdivisions

and

Sampling

Artifacts

In

Proceedings

of

IEEE

Visualization

C

ARR

H.

S

NOEYINK

J.

AND

A

XEN

U.

Computing

Contour

Trees

in

All

Dimensions

Computational

Geometry

Theory

and

Applications

C

ARR

H.

Topological

Manipulation

of

Isosurfaces

PhD

thesis

University

of

British

Columbia

Vancouver

BC

Canada

C

HIANG

Y.-J.

AND

L

U

X.

Progressive

Simplification

of

Tetrahedral

Meshes

Preserving

All

Isosurface

Topologies

Computer

Graphics

Forum

to

appear

C

HIANG

Y.-J.

L

ENZ

T.

L

U

X.

AND

R

OTE

G.

Simple

and

Output-Sensitive

Construction

of

Contour

Trees

Using

Monotone

Paths

Tech

Rep.

ECG-TR

Institut

f

ur

Informatik

Freie

Universt

at

Berlin

E

DELSBRUNNER

H.

AND

M

UCKE

E.

P.

Simulation

of

Simplicity

A

technique

to

cope

with

degenerate

cases

in

geometric

algorithms

ACM

Transactions

on

Graphics

E

DELSBRUNNER

H.

L

ETSCHER

D.

AND

Z

OMORODIAN

A.

Topological

persistence

and

simplification

Discrete

Comput

Geom

E

DELSBRUNNER

H.

H

ARER

J.

AND

Z

OMORODIAN

A.

Hierarchical

Morse-Smale

complexes

for

piecewise

linear

Discrete

Comput

Geom

H

ILAGA

M.

S

HINAGAWA

Y.

K

OHMURA

T.

AND

K

UNII

T.

L.

Topology

matching

for

fully

automatic

similarity

estimation

of

shapes

In

SIGGRAPH

K

ETTNER

L.

R

OSSIGNAC

J.

AND

S

NOEYINK

J.

The

Safari

Interface

for

Visualizing

Time-Dependent

Volume

Data

Using

Iso-surfaces

and

Contour

Spectra

Computational

Geometry

Theory

and

Applications

L

ORENSON

W.

E.

AND

C

LINE

H.

E.

Marching

Cubes

A

High

Resolution

Surface

Construction

Algorithm

Computer

Graphics

M

ATSUMOTO

Y.

An

Introduction

to

Morse

Theory

AMS

M

ILNOR

J.

Morse

Theory

Princeton

University

Press

Princeton

NJ

M

ONTANI

C.

S

CATENI

R.

AND

S

COPIGNO

R.

A

modified

look-up

table

for

implicit

disambiguation

of

Marching

Cubes

Visual

Computer

P

ASCUCCI

V.

AND

C

OLE

M

C

L

AUGHLIN

K.

Efficient

Computation

of

the

Topology

of

Level

Sets

In

Proceedings

of

IEEE

Visualization

P

ASCUCCI

V.

On

the

Topology

of

the

Level

Sets

of

a

Scalar

Field

In

Abstracts

of

the

Canadian

Conference

on

Computational

Geometry

R

EEB

G.

Sur

les

points

singuliers

d'une

forme

de

Pfaff

compl

etement

int

egrable

ou

d'une

fonction

num

erique

Comptes

Rendus

de

l'Acad

emie

des

Sciences

de

Paris

T

AKAHASHI

S.

F

UJISHIRO

I.

AND

T

AKESHIMA

Y.

Topological

volume

skeletonization

and

its

application

to

transfer

function

design

Graphical

Models

T

AKAHASHI

S.

N

IELSON

G.

M.

T

AKESHIMA

Y.

AND

F

UJISHIRO

I.

Topological

Volume

Skeletonization

Using

Adaptive

Tetrahedralization

In

Geometric

Modelling

and

Processing

T

ARASOV

S.

P.

AND

V

YALYI

M.

N.

Construction

of

Contour

Trees

in

in

O

-LRB-

nlogn

-RRB-

steps

In

Proceedings

of

the

ACM

Symposium

on

Computational

Geometry

VAN

K

REVELD

M.

VAN

O

OSTRUM

R.

B

AJAJ

C.

L.

P

ASCUCCI

V.

AND

S

CHIKORE

D.

R.

Contour

Trees

and

Small

Seed

Sets

for

Isosurface

Traver-sal

In

Proceedings

of

the

ACM

Symposium

on

Computational

Geometry

O O B O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O

topological simplification
contour trees
isosurfaces