94
Figure
2.36
Wireframe
representation
of the
Frames
of the
Dividing-Walls
corresponding
to the 3D
subsurface
model presented
in figure
(2.34).
one
single
data
type:
the
Dart,
and
—
one
single
type
of
operator:
the
involution.
•
Rigor.
It is
well
known
that
controlling
the
construction
of a
geometric
object
and
avoiding topological inconsistencies
are key
issues
in
geometric
modeling.
At any
time,
the
topological properties
of a
cellular partition
P(A)
of
an
n-manifold
object
A can be
algebraically computed
and
controlled
on
the
associated
"abstract"
n-GMap.
This
can be
extremely
useful
during
the
construction process, since
it
enables
us to
predict
the
result
of
transforma-
tions.
As a
consequence,
it is
possible
to
control
a
priori [138]
the
consistency
of
these transformations.
From
a
programming
point
of
view
[23],
these
two
properties
of
GMaps
make
them
an
excellent
choice
for
developing
a
topological/geometrical
modeler:
• The
source code
of a
modeler based
on the
notion
of
GMap
can be
extremely
concise:
for
example,
the
kernel
of the
modeler implemented
in the
gOcad
software
comprises less than 1500 lines
of C++
source code [132,
52].
•
Response time
is
comparable with those
of
commercial products with similar
features
[23]
and may be
even better.
For
example,
the
main operations,
particularly
the
traversals,
have
a
time complexity
of
O(\D\),
where
\D\ is the
number
of
Darts. This
is not the
case
for
many commercial modelers
who
often
take
O(\D\
2
)
due to
their
lack
of
directly
accessible
topological
data.
•
Other classic data structures, such
as
those derived
from
the
well-known
"winged edge" [16,
17,
152]
or
"radial
edge"
[228],
often
take
up
compara-
ble
memory space
for a
more restricted modeling area.
• Due to the
algebraic nature
of the
notion
of
GMap,
it is
possible
to
test
the
consistency
of the
software
by
Algebraic Specification techniques
[23].
Such
an
approach
is
impossible
with
models
based
primarily
on
data
structures
rather
than
on
algebraic
properties.
CHAPTER 2. CELLULAR PARTITIONS
94