Construction of Medial AxisTransform of Domains Bound by
Free-form Entities
A ThesisSubmitted for the Degree ofDoctor of Philosophyin the Faculty of Engineering
ByM. Ramanathan
Department of Mechanical EngineeringIndian Institute of ScienceBangalore – 560 012, India
December 2003
Abstract
The Medial Axis Transform (MAT) was first introduced by Blum to describe biological
shapes. It can be viewed as the locus of the centre of a maximal disk/ball as it rolls inside a
2D/3D object. Since its introduction, MAT has found use in a wide variety of applications
that primarily involve reasoning about geometry or shape. However, the usage of MAT has
been restricted to analytical shapes because of the lack of algorithms for free-form objects.
Existing algorithms that claim to handle free-form objects either discretise the nonlinear
entities into polygonal/polyhedral convex edges/faces or use a sampled point set. Using the
point set model instead of exact representation does not yield the correct geometry of the
MAT. When free-form faces are discretised into polyhedral convex faces, additional effort is
required in trimming and post-processing the generated MAT to be in conformity with the
topology of the original free-form object.
The focus of this thesis is on developing and implementing simple and efficient geomet-
ric algorithms for generating MAT of domains bound by free-form entities. The objective is
to use the exact representation of the domain boundary to obtain a discrete representation
of the MAT that is exact within the precision of computation. 2D, 2.5D and 3D objects
having free-form boundaries are considered.
An algorithm for generating MAT of planar domains having curved boundaries is
first described. The algorithm works by tracing the footpoint of a normal MAT point on
one edge given the footpoint on another edge. The algorithm replaces the intersection of
nonlinear bisectors (favoured by current art) with intersection of linear normals, thereby
reducing the computational effort and complexity considerably. Efficient distance check
methods have been proposed to identify branch points of the MAT. Computation of MAT
for extruded/revolved free-form objects is then addressed. The proposed algorithm uses the
2D MAT of the profile (that is extruded or revolved) to construct the MAT of the extruded
solid or the solid of revolution. It is shown that the MAT points of the profile face are
sufficient to determine the topology and geometry of the MAT of this class of solids. Finally,
an extension of the algorithm for computation of MAT in 2D to 3D (solids bound by free-
i
Abstract ii
form surfaces) is presented. This is perhaps the first time that a tracing technique has been
used to generate MAT for 3D free-form objects.
Results of implementation are presented, followed by a discussion of issues such as
complexity, stability of the numerical procedures and directions for future work.
Acknowledgements
First and foremost, I would like to thank my guide, Prof. B. Gurumoorthy, for providing
valuable guidance through the course of this research work. A long discussion with him has
recharged my batteries many a time. His efforts while correcting the several drafts of the
manuscript need to be greatly appreciated. Students under him enjoy a good amount of
freedom which results in a smooth environment for work. His profound calmness and ways
of handling various problems have not only influenced me but have earned him a special
place even among his faculty colleagues.
My heartfelt thanks to Prof. Udipi Shrinivasa for guiding me when Prof. Gurumoorthy
was on sabbatical. I would like to thank Prof. M. N. Srinivasan, for providing me the initial
impetus needed at the start of my research programme. I thank Chairman of the department
for his constant support. I also thank Prof. A. Ghosal and Dr. S. S. Krishnan for their help.
I thank this great institution, the Indian Institute of Science, for providing me with
the required facilities. I also take this opportunity to thank the Government of India for
funding this research and also to my guide who helped me find support during the later part
of this research programme.
This institute provides great freedom to her students, thereby facilitating their involve-
ment in activities like sports, music etc.. I was greatly involved in the art of mridhangam
playing. To this note, I would like to thank Lakshmisha, Sriram, Vinod, Jayanth (and fam-
ily), Prasad and others for providing a great musical environment. I can even say that I
developed lot of interest and knowledge in Carnatic music (one of the two forms of Indian
classical music, the other one being Hindustani) because of my stay in IISc, though I should
mention that I overdid it at times. I also take this opportunity to thank my gurus, Vidwan
Madurai V. Pushpavanum and Vidwan Bangalore V. Praveen, for having taught me this
wonderful art.
Thanks are due to my other music friends, Guruprasad, Karthik (both of them play
flute) and his wife Gayathri, and singers Ajith, Vinod, Brindha, Sivasankari, Veena, Sriram
and Hindustani vocalist Baburaj and others like Giri who made my stay in IISc a very
iii
Acknowledgements iv
pleasant one.
I would like to thank Senthil, without whom I am afraid I would not have continued
for my Ph. D.. It is due to his talking at the time of distress that helped me immensely. I
would also like to thank Narayanan, Ganesh, Archana, Naga, and Sundi in this regard.
Thanks to my lab mates Mani, Bandla, Reddy, Nagesh, Bindu, Chaitra, Kshama,
Anup, Jeetu, Himanshu, Sridhar, Praveen and other friends like Murali for providing me
a challenging environment to work in. Thanks to Gurusathya and his family for providing
some rich home cooked food items whenever I felt bored with my “mess” food. Thanks also
to Sethu and Anand (M1). But for them, I would not have gone to dinner several times in
the nearby hotels of this institute. Thanks are also due to the department office staff Lokesh
and Mrs. Sumathi for their help whenever needed.
I specially thank my parents who provided me all the education and support needed
for me right from my birth. Thanks to my wife Vidya, in-laws, grandmother, uncle and
aunt for their constant support and encouragement. I take this opportunity to thank my
T-mama’s family for supporting me in whatever form they could from day one of my stay
in Bangalore. Chandrasekhar, a great friend, was of great help to me during my marriage
proceedings. A special thanks to him.
Thanks to Ms. Shashikala, Ganesh, Naresh and Vidya for reading my thesis and
giving some valuable suggestions that I believe have improved the quality of the thesis both
technically and typographically.
Last but not the least, I would like to thank the Tea-board of IISc, for providing us
with great tea and that is the place where most of us had immense discussions on our research
work.
Contents
Abstract i
Acknowledgements iii
List of Figures ix
List of Tables xii
1 Introduction 1
1.1 Axial/skeleton representation . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Skeleton representations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2.1 2.5D skeletons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2.2 Voronoi diagram/skeleton . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.3 Box skeleton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.4 Mid-surface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Medial axis transform (MAT) . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.1 Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.2 Properties of MAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.3 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4 Problem statement and thesis scope . . . . . . . . . . . . . . . . . . . . . . . 8
1.5 Outline of the thesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2 Literature review 12
2.1 Constructing bisectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2 Constructing MAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.1 Exact-Analytical representation as input . . . . . . . . . . . . . . . . 14
2.2.2 Tessellated representation of domain . . . . . . . . . . . . . . . . . . 19
2.2.3 Discrete representation: Input as point set . . . . . . . . . . . . . . . 22
v
Contents vi
2.2.4 Discrete input: Input as spatial decomposition . . . . . . . . . . . . . 26
2.2.5 Exact-Freeform: Numerical tracing of bisectors . . . . . . . . . . . . . 27
2.3 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3 Preliminaries for computing MAT 35
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2 Classification of vertices and edges . . . . . . . . . . . . . . . . . . . . . . . 35
3.3 Classification of points on 2D MAT . . . . . . . . . . . . . . . . . . . . . . . 35
3.4 Classification of points on 3D MAT . . . . . . . . . . . . . . . . . . . . . . . 37
3.5 Distance and curvature criterion for 2D and 3D MAT . . . . . . . . . . . . . 39
3.5.1 Illustration of distance and curvature criterion . . . . . . . . . . . . . 40
4 MAT of planar domains with curved boundaries 42
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.2 Overview of algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.3 Algorithm details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.3.1 Tracing step . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.3.2 Check for branch point . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.3.3 Tracing from a branch point . . . . . . . . . . . . . . . . . . . . . . . 46
4.3.4 Handling a reflex corner . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.3.5 Handling smooth junctions between edges . . . . . . . . . . . . . . . 50
4.3.6 Termination of the algorithm . . . . . . . . . . . . . . . . . . . . . . 50
4.4 Illustration of the algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.5 Results and discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.5.1 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.6 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5 MAT of 2.5D objects with free-form boundaries 63
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.2 Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.3 Overview of algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5.4 Theoretical background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
5.5 Algorithm details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
5.5.1 Identification of junction and seam points . . . . . . . . . . . . . . . 71
5.5.2 Finding other limit points . . . . . . . . . . . . . . . . . . . . . . . . 76
Contents vii
5.5.3 Seam identification between junction points . . . . . . . . . . . . . . 76
5.6 Results and discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
5.6.1 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.7 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
6 Algorithm for 3D objects bound by free-form surfaces 84
6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
6.2 Overview of the algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
6.3 Algorithm details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6.3.1 Tracing step . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.3.2 Checking for a junction point . . . . . . . . . . . . . . . . . . . . . . 88
6.3.3 Tracing from a junction point . . . . . . . . . . . . . . . . . . . . . . 89
6.3.4 Handling a reflex edge . . . . . . . . . . . . . . . . . . . . . . . . . . 93
6.3.5 Handling a smooth edge . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.3.6 Handling a reflex corner . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.3.7 Start of the algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.3.8 Termination of the algorithm . . . . . . . . . . . . . . . . . . . . . . 94
6.3.9 Determining the sheets . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.4 Illustration of the algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
6.5 Results and discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
6.5.1 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
6.6 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
7 Contributions, future work, and conclusions 107
7.1 Summary of contributions made by the thesis . . . . . . . . . . . . . . . . . 107
7.2 Future work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
7.2.1 Possible improvements in the algorithms described in this thesis . . . 108
7.2.2 Extension of 2.5D MAT algorithm to general 3D objects . . . . . . . 109
7.2.3 Generating mid-surface . . . . . . . . . . . . . . . . . . . . . . . . . . 113
7.2.4 MAT on a free-form surface . . . . . . . . . . . . . . . . . . . . . . . 113
7.3 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Appendix 115
A. Determining a point on 2D MAT . . . . . . . . . . . . . . . . . . . . . . . . 115
B. Theory for generating MAT of 2.5D objects . . . . . . . . . . . . . . . . . . 117
Contents viii
B.1 Normal theorem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
B.2 Calculation of principal curvatures . . . . . . . . . . . . . . . . . . . 119
C. Determining a point on 3D MAT . . . . . . . . . . . . . . . . . . . . . . . . 121
C.1 Tracing a seam between three surfaces . . . . . . . . . . . . . . . . . 121
C.2 Surface–surface–curve . . . . . . . . . . . . . . . . . . . . . . . . . . 123
C.3 Point–surface–surface . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Bibliography 127
List of publications 135
List of Figures
1.1 An object and its 2.5D skeleton. . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Difference between MAT (a) and Voronoi skeleton (b). . . . . . . . . . . . . 3
1.3 (a) Medial axis and (b) mid-curve. . . . . . . . . . . . . . . . . . . . . . . . 4
1.4 Boundary and its medial axis. . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1 Difference between MAT and bisector. . . . . . . . . . . . . . . . . . . . . . 30
2.2 No intersection point is found between bisectors B1 and B2 if some gap exists
[48]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.3 Effect of discretising boundary on 2D MAT. . . . . . . . . . . . . . . . . . . 31
2.4 Effect of discretising boundary on 3D MAT. . . . . . . . . . . . . . . . . . . 32
3.1 Classification of points on 2D MAT. . . . . . . . . . . . . . . . . . . . . . . . 36
3.2 Classification of points on 3D MAT. . . . . . . . . . . . . . . . . . . . . . . . 37
3.3 Distance criterion for 2D MAT. . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.4 Distance criterion for 3D MAT. . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.5 Curvature criterion for 2D MAT. . . . . . . . . . . . . . . . . . . . . . . . . 40
3.6 Curvature criterion for a 3D MAT point. . . . . . . . . . . . . . . . . . . . . 41
4.1 Parameterisation of edges. . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.2 Existence of a branch point. . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.3 Violation of curvature condition. . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.4 Handling a reflex corner. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.5 Tangential edges. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.6 Illustration of the algorithm. . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.7 MAT for test object 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.8 MAT for test object 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.9 MAT for test object 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
ix
List of Figures x
4.10 MAT for a spiral shaped object. . . . . . . . . . . . . . . . . . . . . . . . . 55
4.11 MAT for a multiply-connected object. . . . . . . . . . . . . . . . . . . . . . 56
4.12 MAT for another multiply-connected object. . . . . . . . . . . . . . . . . . 56
4.13 MAT for an object having tangential edges. . . . . . . . . . . . . . . . . . . 57
4.14 MAT for test object 2 with step size 0.01. . . . . . . . . . . . . . . . . . . . 58
4.15 MAT for test object 2 with step size 0.1. . . . . . . . . . . . . . . . . . . . . 59
4.16 Representation of MAT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.17 Branch point is obtained only by intersection of bisectors [16]. . . . . . . . . 61
5.1 Terminology for extruded objects. . . . . . . . . . . . . . . . . . . . . . . . . 64
5.2 Normal vector on extruded face. . . . . . . . . . . . . . . . . . . . . . . . . 66
5.3 Normals at the surface of revolution. . . . . . . . . . . . . . . . . . . . . . . 67
5.4 Geometric interpretation of normal curvature at p. . . . . . . . . . . . . . . 70
5.5 Junction points using branch points for extruded objects. . . . . . . . . . . . 71
5.6 Required span of revolution. . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
5.7 Seam points using normal points for extruded objects. . . . . . . . . . . . . . 74
5.8 Smooth case and violation of curvature criterion. . . . . . . . . . . . . . . . 76
5.9 Seam between junction points. . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.10 MAT for test object 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
5.11 MAT for test object 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.12 MAT for a multiply-connected object. . . . . . . . . . . . . . . . . . . . . . . 79
5.13 MAT for a multiply-connected polyhedral object. . . . . . . . . . . . . . . . 80
5.14 MAT for an object having smooth boundary and LMPC in the profile edges. 80
5.15 MAT for an object of revolution. . . . . . . . . . . . . . . . . . . . . . . . . 81
5.16 Object having a degenerate junction point. . . . . . . . . . . . . . . . . . . 81
6.1 Identifying the tracing direction. . . . . . . . . . . . . . . . . . . . . . . . . . 91
6.2 Failure of curvature criterion in 3D. . . . . . . . . . . . . . . . . . . . . . . . 92
6.3 Illustration of the algorithm. . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
6.4 Illustration of the algorithm (contd.). . . . . . . . . . . . . . . . . . . . . . . 97
6.5 Illustration of the algorithm (contd.). . . . . . . . . . . . . . . . . . . . . . . 98
6.6 Test object 1 and its 3D MAT. . . . . . . . . . . . . . . . . . . . . . . . . . 99
6.7 Test object 2 and its 3D MAT. . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.8 Test object 3 and its 3D MAT. . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.9 Test object 4 and its 3D MAT. . . . . . . . . . . . . . . . . . . . . . . . . . 101
List of Figures xi
6.10 Test object 5 and its 3D MAT. . . . . . . . . . . . . . . . . . . . . . . . . . 101
6.11 Test object 6 and its 3D MAT. . . . . . . . . . . . . . . . . . . . . . . . . . 102
6.12 Multiply-connected test object and its 3D MAT. . . . . . . . . . . . . . . . . 103
6.13 MAT for test object 5 at different step sizes. . . . . . . . . . . . . . . . . . . 104
7.1 Medial axis for union of two 3D objects. . . . . . . . . . . . . . . . . . . . . 110
7.2 Medial axis for union of objects. . . . . . . . . . . . . . . . . . . . . . . . . . 111
7.3 Medial axis for object obtained using difference operation. . . . . . . . . . . 112
List of Tables
4.1 Time taken for generation of MAT for typical objects . . . . . . . . . . . . . 57
4.2 Time taken for generation of MAT for various step sizes . . . . . . . . . . . . 59
5.1 Time taken for generation of MAT for some 2.5D typical objects . . . . . . . 82
6.1 Time taken for generation of 3D MAT for typical objects . . . . . . . . . . . 105
6.2 Comparison of MAT point co-ordinates for single and double precision . . . . 105
xii
Chapter 1
Introduction
1.1 Axial/skeleton representation
Describing a shape in terms of an arc called the ‘axis’ or ‘spine’, about which the shape is
locally symmetric, is called the axial representation of shapes [1]. The axis or spine is also
called ‘skeleton’ and hence the phrase ‘skeleton representation of shapes’1. Various skeletons
like medial axis transform (MAT), Voronoi skeletons/diagrams, box skeletons, mid-surface
and 2.5D skeletons are possible. In the literature, while there have been different skeletons
defined, the term ‘skeleton’ has become synonymous with MAT. In the following, different
skeletons that have been proposed in the literature are first discussed, followed by a detailed
description of MAT.
1.2 Skeleton representations
1.2.1 2.5D skeletons
A modelling tool available in most systems allows a solid to be constructed by defining a
profile and a span of extrusion along the normal to the profile plane. The profile defined
could be considered as a 2.5D skeleton of the resulting object. Each of the profiles in
Figures 1.1(b), 1.1(c) and 1.1(d) is a valid skeletal representation of the object shown
in Figure 1.1(a). Given the profile and the thickness along the normal, the object can be
reconstructed. However, such a representation is not always unique for a given object, and
hence cannot be defined formally. The 2.5D skeleton of an object could be useful in several
types of engineering analysis such as manufacturability analysis for net-shape manufacturing
of thin-walled parts, as in injection moulding and die casting [2].
1In the literature, both ‘skeleton representation’ and ‘skeletal representation’ have been used interchange-ably. In this thesis also, the two terms are used synonymously.
1
Chapter 1. Introduction 2
(b) (c)
(a)
(d)
Figure 1.1: An object and its 2.5D skeleton.
Chapter 1. Introduction 3
A
B C
D
F
E
B3
B1
A
B C
D
F
E
B3
B1
v1
v2
(a) (b)
Figure 1.2: Difference between MAT (a) and Voronoi skeleton (b).
1.2.2 Voronoi diagram/skeleton
A closely related structure to MAT is the Voronoi diagram/skeleton.
Let P = {p1, p2, ...., pn}, called sites, be a set of points in the two-dimensional Euclidean
plane. Voronoi region of pi denoted as V (pi), consists of all the points at least as close to pi
as to any other site [3].
V (pi) = {x : |pi − x| ≤ |pj − x|, ∀j 6= i} (1.1)
The set of all points that have more than one nearest neighbour form the Voronoi
diagram for the set of sites. Voronoi region and diagram can be elegantly defined using
halfplanes.
Definition 1.1 The halfplane h(ei, ej) is the set of points closer to ei than to ej.
Definition 1.2 Let S1 and S2 be two disjoint sets of elements. The Voronoi region V (S1, S2)
of S1 with respect to S2 is the set of all points closer to S1 than to S2.
In terms of half-planes, V (S1, S2) = ∪ei∈S1 ∩ej∈S2 h(ei, ej).
Definition 1.3 The Voronoi diagram VOD(S) of a set of elements S = {ei} is ∪ei∈SV (ei, S−ei).
Figure 1.2 shows the difference between MAT and Voronoi skeleton. It is clear that,
at any point on the Voronoi edge E-v1 (or E-v2) in Figure 1.2(b), the disk is not maximal
Chapter 1. Introduction 4
A
E1 F1
B C
D A
E1 F1
B C
D
(b)(a)
Figure 1.3: (a) Medial axis and (b) mid-curve.
and hence does not satisfy the maximality condition of MAT. However, it can be observed
that, in the case of linear (polygonal/polyhedral) domains, MAT (refer Figure 1.2(a)) is a
subset of Voronoi diagram (refer Figure 1.2(b)) if the interior is considered as the domain
and MAT is a superset of the Voronoi diagram if the domain is exterior [4]. A detailed
discussion about the Voronoi diagram can be found in [5].
1.2.3 Box skeleton
Box skeleton, introduced by Sudhalkar et al. [2], is based on the box or L∞ norm instead
of the Euclidean norm that forms the basis for generating the MAT (refer definition 1.4).
It has been shown that this skeleton could be an alternative to MAT. This was born out
of digital thinning in image analysis. The objects can be thought of as being made out of
unit squares or pixels. The problem is to delete some of the pixels, such that the object is
thinner, and is an abstraction of the original. Possible applications of this skeleton include
numerical analysis of injection moulding, feature recognition in injection moulding design,
automatic mesh generation, and as an initial solution for finding critical points in tracing
the Euclidean skeleton (MAT).
1.2.4 Mid-surface
Another skeleton, mid-surface [6], a variant of MAT, has been shown to be useful in various
applications and reflects the geometry of an object to a greater extent than MAT. The 2D
counterpart of the mid-surface is referred to as the mid-curve [7]. Figure 1.3(a) shows the
MAT and Figure 1.3 (b) shows the mid-curve of a 2D domain. The mid-surface abstracts
the shape well when the wall thicknesses in the part are small. It therefore finds extensive use
in abstracting models for use in simulation of near-net processes such as injection moulding,
where the typical parts are thin-walled and the simulation requires surface models.
Chapter 1. Introduction 5
1.3 Medial axis transform (MAT)
The medial axis transform was first introduced by Blum [8, 9] to describe biological shapes.
It can be viewed as the locus of the centre of a maximal disk as it rolls inside an object.
1.3.1 Definition
Definition 1.4 The medial axis (MA) of the set D, denoted M(D), is defined as the locus
of points inside D which lie at the centres of all closed disks (or balls in 3-D) which are
maximal in D, together with the limit points of this locus. A closed disk (or ball) is said to
be maximal in a subset D of the 2D (or 3D) space if it is contained in D but is not a proper
subset of any other disk (or ball) contained in D. The radius function of the MA of D is a
continuous, real-valued function defined on M(D) whose value at each point on the MA is
equal to the radius of the associated maximal disk or ball. The medial axis transform (MAT)
of D is the MA along with its associated radius function.
The boundary and the corresponding MAT of an object are shown in Figure 1.4(a).
If the boundary segments of the object consist of only points, straight line segments and
circular arcs, then the MAT segment is one of the conic sections [10]. Figure 1.4(b) shows
the MAT for a 3D object.
It should be noted that alternate definitions based on grassfire propagation, offsets and
other interpretations of MAT are possible [11]. In this thesis, the above definition is used
for generating MAT.
1.3.2 Properties of MAT
An important characteristic of MAT is that it can be used to simplify the original object
and still retain the original object’s information. For instance, the two-dimensional MAT
defines a unique, coordinate-system-independent decomposition of a planar shape into curves
and the three-dimensional MAT simplifies a solid model into a collection of surface patches.
MAT of an object is also called the symmetric axis transform of a part/shape.
Properties of MAT include:
• Uniqueness [12]: There is an unique MAT for a given object.
Chapter 1. Introduction 6
pq
Maximal sphere(b)(a)
A
B C
D
E F
Figure 1.4: Boundary and its medial axis.
• Invertibility [13]: With the axis and its radius function one can reconstruct the
object by taking the union of all circles centred on the points on the medial axis. The
radius function defines the radius of the circle at each point.
• Dimensional reduction [14]: The dimensionality of a MAT is at least one lower
than that of the object.
• Homotopical equivalence [15]: A MAT is homotopically equivalent to its object.
That is, the number of holes and enclosed voids remain the same.
• Bijective mapping [16]: There exists a bijective mapping between the object bound-
ary and its MAT. This means that for every point on the object boundary there is a
unique point on the MAT. Also for every point on the MAT, there exists corresponding
points on the boundary of the object. Such a correspondence has been well exploited
in generating meshes for an object using the corresponding MAT [17].
1.3.3 Applications
Since its introduction, the MAT has found use in a wide variety of applications that primarily
involve reasoning about geometry or shape. The MAT has been used in pattern analysis
Chapter 1. Introduction 7
and image analysis [18, 19]. Blum and Nagel proposed the MAT as a tool for describing 2D
shapes [12] which was then extended to 3D shapes [20]. The medial axis and medial surface
(3D MAT) have proven to be an useful tool for finite element mesh generation [21, 22] of
objects. The radius function, which provides ‘local size’ information of the object, is useful
for generating coarser or finer mesh, which is not directly available from B-rep. It has been
found useful in path generation for pocket machining [23] and robot motion planning [3].
MAT can also be used for model simplification for engineering analysis. Two fun-
damental simplification techniques are dimensional reduction and detail suppression. By
providing a reduced dimensional representation of an object, the MAT can assist in ab-
stracting a complicated shape to a simpler one. For instance, a complicated 3D shape might
be more simply represented as a swept polygon or thickened sheet. Geometric detail may be
suppressed with the assistance of medial axis, thus improving the performance of the anal-
ysis without significantly affecting the results [14, 24, 25]. There exists a bijective mapping
between the MAT and object boundary, which means that for an object, there is a unique
MAT and it is possible to reconstruct the object given its MAT [13, 26, 27]. This property
leads to more applications in engineering like mould design [28]. Further applications of
MAT in engineering analysis include VLSI design [29], design rule checking for sheet metal
components [30], shape blending [31] and process planning in solid free-form fabrication
[32].
MAT can potentially be used as a representation scheme in geometric modellers, along
with more popular schemes, such as constructive solid geometry (CSG) and boundary repre-
sentation (B-rep) [15]. More importantly, dimensional reduction and topological equivalence
make the MAT a simplified, abstract representation of the geometry. Since the MAT also
provides details with respect to the symmetry of the object, it can be used in applications
like shape smoothing [33].
Unlike for MAT/Voronoi diagram, no formal definition exists for other skeletons. These
skeletons are defined by the procedures used to construct them [2, 6]. Box-skeleton can be
viewed as a mid-surface that is obtained using a thinning procedure (which is commonly
applied in image analysis) while mid-surface can be viewed as a special case of 2.5D skeleton
applied to the object in the thinner direction (which itself needs an appropriate defini-
tion). Lack of proper definition hampers the development of algorithms for generating such
skeletons for an object. A formal definition of MAT backed by its capability in various
applications has served as motivation to develop algorithms for generating MAT in various
domains. However, lack of proper algorithms for generating MAT for general objects hinders
Chapter 1. Introduction 8
its use in real applications. In this thesis, generation of MAT has been considered.
1.4 Problem statement and thesis scope
The focus of this thesis is on developing and implementing simple and efficient geometric
algorithms for generating MAT of domains bound by free-form entities. 2D, 2.5D and 3D
objects with free-form boundaries are considered.
The existing approaches can be categorised according to the representation of the part
that is taken as input and the representation of the corresponding MAT that is output.
There are two constituents in the output - the geometry and the topology or con-
nectivity of the MAT. Geometry of the MAT refers to the representation of the underlying
geometric entities (curves, surfaces) corresponding to the entities in the MAT. Topology of
the MAT refers to the connectivity between the various MAT segments of the object. Topol-
ogy of the MAT can also be characterised by the pair/set of boundary entities in the object
that correspond to a segment in the MAT.
The input part model can be classified into the following:
• Exact representation - Here the geometry of the entities in the part boundary is rep-
resented exactly in the form of curve/surface equations. When the entities are repre-
sented by analytical equations, the representation is referred to as Exact-Analytical.
Otherwise the representation is referred to as Exact-Freeform.
• Tessellated representation - Here the boundary of the part is approximated by linear
entities such as edges and triangles/polygons.
• Discrete representation - Here the object is represented by a set of points sampled
along the part boundary or a cell decomposition of the object.
The latter two representations are approximate representations of the domain. The
representation of the MAT that is output can also be classified as follows:
• Continuous-Exact representation - Here the geometry of the entities in the MAT is
represented exactly in the form of curve/surface equations and points on the entities
satisfy the definition of MAT with respect to the exact representation of the part. The
topology of the MAT is correct.
Chapter 1. Introduction 9
• Continuous-Approximate representation - Here the geometry of the entities in the MAT
is represented in the form of curve/surface equations. However, the points on these
entities may not satisfy the definition of MAT with respect to the exact representation
of the part. The topology of the MAT is also incorrect.
• Discrete-Approximate representation - Here the MAT is represented by a set of points
that may not satisfy the definition of MAT with respect to the exact representation of
the part. The topology of the MAT may or may not be correct.
• Discrete-Exact representation - Here the MAT is represented by a set of points that
satisfies the definition of MAT with respect to the exact representation of the part
to within the precision available for computations. The topology of the MAT is also
correct.
Continuous-Exact output of the MAT has been possible only where the input repre-
sentation has been Exact-Analytical. For example, when the input contains line segments
and circular arcs, the output of the MAT has Continuous-Exact representation [21]. It may
be noted that the equations representing the MAT entities are also analytical.
When the input is Exact-Freeform, most approaches in the literature convert the input
to one of the approximate representations, either Tessellated or Discrete. When the input is
Tessellated, the MAT output is Continuous-Approximate. Hence, additional effort is required
in trimming and post-processing the generated MAT to be in conformity with the topology
of the original free-form object (see Figures 2.3 and 2.4). Otherwise, the additional MAT
segments distort any reasoning based on MAT. For finite element applications, such a MAT
representation may be sufficient whereas exact representation of the part has to be used
while constructing the MAT in applications such as casting, injection moulding etc., where
the geometry of the part has to be reconstructed from the MAT.
Using the Discrete representation of the object as input, a Discrete-Approximate rep-
resentation of the MAT is obtained. Algorithms using the Discrete representation usually
claim that a Discrete-Exact representation of the MAT can be obtained if the resolution of
sampling/cell size tends to zero. A few algorithms claim that the topology of the MAT is
captured correctly from the Discrete representation [22].
In this thesis, emphasis is placed on constructing MAT for Exact-Freeform objects.
In the remainder of the thesis, the terms Exact/exact representation and free-form are used
to refer to the classification Exact-Freeform. The output of the MAT is Discrete-Exact.
Using the exact representation of the part for constructing the MAT also eliminates the
Chapter 1. Introduction 10
need for additional processing required to remove the artificial segments that may arise due
to discretisation of the curved entities into polyhedral entities or the need for optimisation
to get the near-exact geometry in case of point set models.
This thesis addresses the following issues.
Construction of MAT of planar domains with curved boundaries
Algorithms for computing MAT of planar domains having curved boundaries have been a
hot topic of research of late and present numerous difficulties for researchers to arrive at
robust and efficient algorithms. Recently, bisector-based approaches have been developed
[16, 34]. However, this method requires intensive computations such as robust curve–curve
intersection procedure. In this thesis, a tracing technique based on the local intersection of
normals is proposed which replaces the intersection of bisector approaches used currently. It
has been shown that this algorithm is more efficient. Results of implementation are provided.
Most of the current 2D techniques are not easily extendable to 3D. However, in this thesis,
it is shown that this 2D MAT algorithm is easily extendable to 3D domains.
Construction of MAT of extruded/revolved free-form objects
In this thesis, a simple method is proposed for generating MAT of free-form extruded/revolved
objects from the MAT of the profile faces. The corresponding transformations of the MAT
of the profile face are used to get the 3D MAT of the object itself. It is shown that the MAT
points of the profile face are sufficient to determine the topology and geometry of the MAT
of this class of solids. Results of implementation are provided. Extension of this algorithm to
handle general 3D solids that are obtained by Boolean combinations of this class of objects
has also been discussed. This would enable the construction of MAT for objects in many
application areas like casting, where objects are a combination of 2.5D objects/features.
Construction of MAT of 3D objects bound by free-form surfaces
This algorithm is an extension of the tracing technique used for 2D MAT generation to
3D domain. Perhaps, this is the first time that a tracing technique for computing MAT of
3D free-form objects has been proposed. In a manner analogous to the 2D algorithm, the
algorithm finds the intersection of the normals to the surfaces to find points on the boundary
of the medial surface. These are used to construct the topology of the medial surface and
then points on the medial surface patches are determined.
Chapter 1. Introduction 11
1.5 Outline of the thesis
Chapter 2 of this thesis presents an overview of the existing approaches followed by a de-
tailed literature review and its summary. Chapter 3 presents the preliminaries required for
generating algorithms for MAT of free-form objects. In chapter 4, an algorithm for gener-
ating MAT of planar objects having curved boundaries is addressed. Chapter 5 describes
the computation of MAT for extruded/revolved free-form objects. Chapter 6 describes the
computation of MAT for 3D objects bound by free-form surfaces. Chapter 7 summarises the
contributions and concludes with directions on future work.
Chapter 2
Literature review
In this chapter, a detailed review of the literature in techniques used for computing both
2D and 3D MAT is presented. Related work on constructing bisectors of entities in 2D and
3D is reviewed first as this forms the basis for several approaches to construct MAT. The
chapter then concludes with a summary.
2.1 Constructing bisectors
The MAT was first introduced and explored by Blum [8, 9] to describe biological shape. Soon
after its introduction, various algorithms for computing the MAT were developed. From the
definition of MAT, it is clear that MAT entities are closely related to the bisectors between a
pair of entities on the domain boundary. A bisector is an entity which can be defined as being
equidistant between a pair of entities (vertices/edges in 2D or vertices/edges/faces in 3D). A
Continuous-Exact representation of MAT is therefore achievable only if it is possible to obtain
a continuous description of the bisector of pairs of boundary entities of the domains. In 2D
and 3D, these pairs would consist of edges and concave vertices, and faces, concave edges
and concave vertices, respectively. In the literature, it has been shown that a continuous
description of the bisector is possible only for a few special cases [35, 36].
Bisector for 2D objects
In this section, as well as in the next one, some related work on constructing bisectors of
entities is reviewed as this forms the basis for several approaches to construct the MAT.
Farouki and Johnstone [35] have presented an algorithm for computing the bisector of
a fixed point p and a regular parametric curve r(u). Initially, the untrimmed bisector (which
is simply the locus of points on the “curve normal lines” [35] that are equidistant from each
curve point r(u) and the given point p) is calculated. A distance function to calculate the
12
Chapter 2. Literature review 13
distance between a point q and r(u) is proposed and is defined as dist(q, r(u)) = inf |q−r(u)|for all u ∈ I, the parameter interval for the curve. True bisector is then defined as follows:
The bisector B(p, C) of a fixed point p and a plane curve C is the locus traced by a point
that remains equidistant with respect to p and C, in the sense of the above mentioned
distance function. Points on untrimmed bisectors are identified using equations derived for
polynomial and rational curves respectively. Local critical curvature points, class points and
circular points of the curve (a point of the curve r(u) is a class point if the tangent line at that
point passes through the fixed point p and is called circular point if the circle of curvature
at that point passes through p) are then identified. For each segment on the untrimmed
bisector delineated by those special points, the distances of the segment midpoint and the
curve is compared and that segment is discarded if these distances are unequal. Then the
critical points (a point q on the untrimmed bisector is a critical point if the circle (centred at
q and radius |q−p|, where p is the fixed point) at that point is tangent to r(u) at two or more
points) are identified (it is proved that a point on the untrimmed bisector is a critical point if
and only if it is a self-intersection of the untrimmed bisector). Each remaining segment (i.e.
the segments that remain after delineation using class and circular points) of the untrimmed
bisector is split at these self-intersections. For each of the resulting segments, distances
of the midpoint to that point and the curve are compared and the segment is discarded
if they are unequal. The remaining segments constitute the true bisector. It has been
acknowledged that the main difficulty in computing point/curve bisectors is undoubtedly
the ‘trimming’ (trimming here refers to the formation of true bisector from the untrimmed
bisector) procedure.
Elber and Kim [36] present a symbolic representation scheme for planar bisector curves
that allows the construction of bisector curves using B-spline subdivision techniques. Given
two planar curves C1(t) and C2(r) represented in polynomial/rational form, a bivariate poly-
nomial function F (t, r) is computed, the zero-set of which corresponds to the bisector curves.
Three different ways of deriving the bivariate functions Fi(t, r) are described. The determi-
nation of the zero-set is essentially a computational procedure that requires finding all the
points along the intersection curve between the graph surface Si(t, r) = (t, r, Fi(t, r)) and the
tr-plane, which is treated as a special case of the surface–surface intersection (SSI) problem.
The SSI is done using an adaptive subdivision method. Since the bivariate functions Fi(t, r)
can be symbolically computed and represented as a polynomial or rational function, their
zero-set results in a function of moderate degree when compared to bisectors obtained as
an implicit algebraic equation. Their algorithm also computes the bisector of a curve with
Chapter 2. Literature review 14
itself, or the self-bisector.
Bisector for 3D objects
Elber and Kim [37] proved that the bisector between a point and a rational space curve is
a rational ruled surface. They also derived the bisector between two rational space curves
and showed that it is also a rational surface except for the degenerate case in which the
two curves are coplanar. In general, the bisector surface of two space curves can be used
to compute the bisector surface of two canal surfaces which are generated by sweeping two
spheres of the same fixed radii along the two space curves. Since the bisector between two
planar rational curves is not rational in general [35], they propose two methods to handle
them. They have also proved that the bisector between a point and a rational surface is also
rational [38]. A direct implication of the previous statement is that the bisector between a
sphere and a surface with rational offset is also a rational surface (this bisector is however
determined by reducing it to identifying a bisector between a point and a rational surface).
They have also extended the special configurations of constructive solid geometry (CSG)
primitives in [39] and showed that a rational description is possible in some more cases such
as that of the bisector between two circular cones [40].
From the above, it can be seen that a Continuous-Exact description of the MAT is
possible only for a restricted set of domains. For all other domains, the MAT obtained is
available in Continuous-Approximate, Discrete-Approximate or Discrete-Exact representa-
tion (section 1.4). There have been several efforts reported for the construction of MAT.
These approaches can be classified based on, the representation of the domain that is used
as input, description of MAT that is generated, and the techniques used for constructing the
MAT. The description of the output MAT is dependent on the approach used and this in
turn depends on the input representation of the object. In the following, existing methods
are discussed based on the type of representation of the domain used as input.
2.2 Constructing MAT
2.2.1 Exact-Analytical representation as input
For Exact-Analytical input, a continuous description of the MAT is possible only if it is
possible to obtain a continuous description of the bisector of a pair of edges/faces in 2D/3D
respectively. As discussed above, it is possible to obtain a continuous description of the
bisector only for a few special cases. In 2D, for a point and a rational curve in a plane,
Chapter 2. Literature review 15
the bisector is a rational curve [35]. However, for the case of coplanar curves (polynomial
or rational), the bisector has been shown to be algebraic but not rational [35]. In 3D,
rational description or a closed-form rational representation is proven to be available only
for certain special cases – between two rational space curves [37] and for CSG primitives in
special configurations [39, 40, 41]. Bisector surface between two rational surfaces in R3 is
non-rational, in general [40]. Also, the bisector of simple geometries is not always simple.
While the bisector of two lines in the plane is a line, the bisector of two skewed lines in R3
is a hyperbolic paraboloid of one sheet [38].
Polygons (linear/curvilinear): Divide and conquer approach
Lee’s [42] algorithm for a simple polygon G with non-convex corners is based on the “divide
and conquer” method. It is shown here that the medial axis of G is the set of Voronoi edges
less the edges incident at the reflex vertices. The algorithm takes as input a sequence of
vertices of the simple polygon, each represented by its x- and y-coordinates, and partitions
the set of vertices into chains. Then the Voronoi diagram of each chain is computed. Next
these Voronoi diagrams are merged two at a time. A binary merge tree is suggested where
the leaves are the Voronoi diagram for chains and the internal nodes represent the Voronoi
diagram for the elements in the corresponding subtrees. Thus the root of the binary merge
tree represents the final Voronoi diagram of the simple polygon. The complexity of this
algorithm is O(N log N), N = n + m, where ‘n’ is the number of edges and ‘m’ is the
number of reflex vertices present in the object. It is shown that the Voronoi diagram of a
simple polygon is planar and has at the most 2(n + m) − 3 Voronoi edges and n + m − 2
Voronoi points. This is proven using the fact that the Voronoi polygon is path-connected.
Srinivasan and Nackman [43] presented an O(nh + n log n) algorithm for multiply-
connected polygons with ‘h’ holes. The algorithm does this by computing the individual
Voronoi diagrams and merging them. Initially, the Voronoi diagram of the outer boundary
is computed. Sorting of inner boundaries is done next. Voronoi diagram of each of the
inner boundaries is computed first. Then the merge curve is computed between the Voronoi
diagram of the inner boundary and the merged Voronoi diagram computed thus far. The
extraneous portion of the original Voronoi diagram is then discarded thus obtaining the
new merged Voronoi diagram. The Voronoi diagrams of the outer and inner boundaries are
computed using a simple extension of Lee’s [42] algorithm. Generally, computing the merge
curve is done by first finding the starting point on the curve and then traversing the merge
curve starting from that point. In this paper, a simple method is proposed for finding a
Chapter 2. Literature review 16
starting point by exploring the properties of the Voronoi diagram for multiply-connected
polygonal domains. It is proved that under certain conditions, merge curves are simple,
closed curves by showing that under these conditions Voronoi regions are simply-connected,
path-connected and bounded. The implementation details and an application (in which
equivalent resistance networks are derived from a B-rep of two-dimensional VLSI geometry)
of this algorithm are described in a companion paper [29].
Kim et al. [10] describe a divide and conquer method for constructing the Voronoi
diagram of a simple polygon consisting of points, lines segments and/or arcs which are
restricted to lie in a plane. The Voronoi diagram is computed using the bisectors that arise
out of the various entities present in the polygon. Since there are only three types of elements
– points, lines and arcs, only six combinations of bisector elements need to be considered. For
these three elements, it is shown that the bisector can be a linear, parabolic, hyperbolic or
elliptic arc. An effective region determines the corresponding bisector between two elements.
In this paper, particular emphasis is placed on the representation of bisectors using rational
quadratic Bezier curve. This enables a unified representation for the four different bisectors.
It is claimed that this facilitates in computations of intersections.
Wavefront approach
Held [44], in his paper, has proposed a wavefront propagation algorithm for generating
MAT of curvilinear objects consisting of points, lines and circular arcs and compared the
performance of his algorithm with that of Lee’s [42]. In the first step, a bisector b(o1, o2)
between each pair of consecutive contour objects is computed. In the second step, for every
triple o1, o2, o3 of consecutive contour objects, the corresponding contour bisectors b(o1, o2)
and b(o2, o3) and their intersections are computed. In the third step, a subset of these
intersections is selected as possible candidates for subsequent wavefront propagation. An
intersection between two bisectors is a suitable candidate if and only if no other intersection
with a smaller contour clearance is associated with either of the two bisectors. All candi-
dates are stored in a priority queue whose items are ordered according to increasing contour
clearance. After the priority queue is initialised, the actual wavefront propagation starts.
Merging operation begins with the first element in the queue. While processing, an inter-
section point needs to be stored if the actual front end of the priority queue corresponds to
an intersection which has a smaller clearance than the new intersection. Otherwise, the new
intersection can be accepted without any further manipulation of the queue. This subse-
quent accepting and computing of intersection until an insert into the queue takes place is
Chapter 2. Literature review 17
called a ‘run’. Individual runs are carried out until the final Voronoi diagram is eventually
constructed. As a termination condition, it is sufficient to check the defining contour objects
of the bisectors intersected by the merge bisector: the construction process is finished if two
coinciding intersections exist and if the bisectors intersected by the merge bisector share a
defining contour object. The polygonal version of the algorithm has been compared with
Lee’s and is shown to be faster. The algorithm has also been extended to compute offset
curves.
It is to be noted that, in both Lee’s as well as Held’s algorithm, the number of bisec-
tor intersections computed is proportional to the number of bisectors computed during the
execution of the algorithm. It is claimed that the wavefront algorithm computes only about
4–5% more bisectors than actually contained in the final Voronoi diagram whereas the divide
and conquer algorithm computes about 30% or more bisectors in excess. This is one reason
why these methods cannot be easily extended to objects consisting of free-form boundaries.
Another difficulty in extending either algorithm to handle general types of contour segments
is in the mathematical handling of more complicated bisectors and of their intersections,
which get substantially more difficult.
Polyhedral: Numerical tracing
Sherbrooke et al. [45] have presented an algorithm for computing the MAT of 3-D polyhedral
objects. The algorithm is based on a classification scheme which relates different parts of
the MAT to one another and also provides a continuous representation of the MA and
the associated radius function. The algorithm is based on offset sweeping of the boundary
segments and, using these, the tangent to the seam curve is defined. The algorithm traverses
a seam by integrating a system of differential equations that describes the seam using an
adaptive-step fourth-order Runge–Kutta method with checks at each step to determine if
there is another element about to become active. Implementation details like distance check
and determination of step sizes are discussed. When the seam reaches a junction point, the
triplets of entities corresponding to the other seams at the junction point are identified and
the corresponding seams are obtained. Each seam is tested for feasibility and degeneracy.
The completeness of the algorithm is proven and the representation of seams and sheets
is addressed. The algorithm has an average complexity of O(ns(n + s) log n), where ‘n’ is
the number of boundary entities, ‘s’ is the number of steps along each seam, and ‘ns’ the
number of seams. Stability of the algorithm is also discussed. This algorithm works for
multiply-connected faces (though they are converted into simply-connected faces) and is an
Chapter 2. Literature review 18
extension of the algorithm in [46] where it is applied to only simply-connected faces. They
[45] acknowledge that the scheme for classification of the terminal points of MAT for solids
with curved boundaries is more complicated. They indicate that it is possible to develop
a connectivity scheme similar to the one that they have developed for polyhedral objects.
However, formulating the equation for the tangent to the seam based on offset sweeps of
three free-form surfaces would appear to be difficult. The resulting formulation could also
lead to equations that are highly intractable. In this thesis, an algorithm for generating
MAT for free-form objects is proposed using a similar tracing scheme. However, points on
the seam are generated by traversing on the boundary and not on the tangent to the seam.
MAT construction using influence region/zone
Joan-Arinyo et al. [47] have presented an algorithm for computing MAT of 2D polygonal
domains by tracing its paths. A path is defined as the subset of the medial axis such that
all its points are generated by the same set of governors (boundary segments). A transition
point is a medial axis normal point (having two governors) where one of the two governors
changes. Hence a path is bound by two keypoints (keypoint can be an end point, a branch
point or a transition point). The algorithm starts from a convex vertex. If an initial keypoint
is known, only the final keypoint needs to be computed to trace the path. Computation of
candidate final keypoints depends on the nature of the two governors. The concept of
influence region (Voronoi region for an edge ‘e’ and vertex ‘v’) is used to determine the
candidate keypoints. The algorithm uses the analytical definition of bisectors available for
points (vertices) and open line segments to compute the Voronoi diagram. Once a candidate
final keypoint is determined, its validity is checked. Essentially it is checked if the disk at
this point intersects the boundary or not. If there are no intersections, the keypoint is a
valid one; otherwise, the intersecting boundary element closest to the path starting keypoint,
together with the path governors, defines a new keypoint. New paths are initiated from each
keypoint. The medial axis is generated in the form of a graph whose nodes are medial axis
keypoints and edges are medial axis paths bound by two keypoints.
Extension of this approach to handle domains with free-form entities runs into difficul-
ties because analytical definitions of the bisectors of the boundary entities are not available.
Moreover, intersection between a disk and free-form boundary segments may pose compu-
tational problems. However, the idea of starting from a convex vertex and controlling the
tracing by the keypoints (branch points/junction points) is similar to that proposed in this
thesis.
Chapter 2. Literature review 19
Chang et al. [48] have presented an algorithm for constructing MAT of 3D polyhedral
objects. Concept of influence zone which is similar to the influence region in [47], is used
to localise the generation of MAT. The influence zone is defined as the region bound by a
concave boundary element, either a concave vertex or a concave edge, and a set of surfaces
which are perpendicular to the adjacent boundary elements of this concave element. It has
been proved for a planar domain that any nonlinear medial surface section, if it exists, re-
sides inside an influence zone. Initially, the object is divided into sub-objects using influence
zones. MAT is then constructed for each region. The advantage of such an approach is
that finding the terminal point on MAT segments is efficient since the search for bound-
ary elements required to determine a junction point is localised. Also, since this method
uses the intersection between the influence shell and a nonlinear bisector to determine the
terminal points on that bisector, it alleviates the difficulties in the accurate computation
of the intersection of nonlinear bisectors. However, the use of influence zone still involves
the generation of additional bisector segments with the consequent additional effort in in-
tersecting the bisectors to trim them. Also, this algorithm requires stitching of individual
bisector elements to get the complete MAT. While the approach has been discussed for 3D
polyhedra, no results of implementation are provided. Extension of this algorithm to 3D
free-form objects looks unlikely without discretising into polyhedral boundary elements.
MAT of 3D objects
Dutta and Hoffmann [39, 41] present a mathematical approach for obtaining a closed form
solution for constructing MAT of CSG primitives consisting of planes, natural quadrics and
torii in certain configurations. The procedure outlined involves construction of Voronoi
surfaces (to identify equidistant points) for each pair of boundary entities, and trimming
these Voronoi surfaces by other Voronoi surfaces. The nature of surfaces in the primitive
solids is used to simplify the computation in the construction of the Voronoi surfaces to
the solution of algebraic equations. The trimming of these Voronoi surfaces is however,
non-trivial. Construction of these trim surfaces has been discussed but no implementation
results are provided.
2.2.2 Tessellated representation of domain
Since a continuous description of the MAT is possible from a continuous representation of the
part only for the case of polygons/polyhedra where the boundary consists of linear segments,
MAT for a free-form object has been obtained after converting it to a tessellated solid model
Chapter 2. Literature review 20
[49]. In this case, much of the effort is in identifying or obtaining the correct topology of the
MAT.
Wavefront approach
Gursoy and Patrikalakis [21] developed an algorithm to compute the MAT of a multiply-
connected planar region bound by circular arcs, and non-uniform rational B-spline (NURBS)
curves. NURBS curves, however are approximated by straight line segments. Their algo-
rithm is based on an offsetting process directed towards the interior of a shape which is
analogous to the propagation of a grass-fire wavefront towards the interior of a shape. The
offset at a distance ‘h’ of the boundary B of a planar region R is the envelope of the union of
all closed circular disks of radius ‘h’, the centres of which are points of B. The inward offset is
used for MAT generation. The main tasks in their algorithm are the determination of inward
offset distances and the associated branch points. Three distinct types of branch points are
determined analytically by appropriate intersections of the bisectors. Intermediate branch
points are computed using the consecutive boundary triplets whereas initial branch points
are identified using tangent intersection of two non-adjacent boundary contours. The final
branch point is a special case of an intermediate branch point and indicates the end of the
offset process. The set of branch points so computed is used to identify valid branch points.
Each MAT segment is then identified analytically using the appropriate straight/conic sec-
tions defined between two boundary elements. Approximation of NURBS by straight lines
generates artificial MAT segments and these are eliminated using a threshold technique.
MAT thus generated is used as a coarse discretisation to generate finite element meshes
automatically. The MAT algorithm has a worst-case complexity of O(n3). The implemen-
tation details and extension of the algorithm to trimmed surface patches is presented in a
companion paper [50]. It is quite evident that this algorithm is very complex if it is used
for generating MAT of free-form objects. Moreover, each MAT segment cannot be identified
analytically as it has been done here.
Divide and conquer approach
Kao [32], in his thesis, has presented an approach based on clearance functions associated
with object boundary to compute 2D medial axis transform. The clearance function at a
point on the boundary is the radius of the maximal inscribed disk that touches this point. The
clearance function at a point on the boundary is the infimum of the set of bisecting distances
for all pairs of boundary points that contain this point. A divide and conquer strategy has
Chapter 2. Literature review 21
been used to find the infimum. However, the effort in finding the set of bisecting distances still
remains high. An additional effort of finding the closest bisecting distance between points on
the outer and inner loops is required when handling multiply connected domains. Though
the algorithm is described for general 2D shapes, the objects are discretised into curvilinear
polygons. The nonlinear boundary entities are approximated with tangent continuous bi-arc
splines. This is due to the fact that the computed bisecting distances for the approximation
can be done analytically. In this algorithm, only the clearance function is computed and a
separate procedure is needed to convert the clearance functions to the medial axis. In this
approach therefore, the clearance function along with the geometry of the object boundary,
defines the medial axis transform of an object. The approximation of smooth shapes affects
the geometry of the computed medial axis.
Tracing method
Culver et al. [49] have presented an algorithm based on the classification of MAT points
as described in [45] using exact arithmetic instead of floating point arithmetic. In exact
arithmetic, each number is determined and stored to whatever precision is necessary. It
has been proven to be useful in the linear domain but in the nonlinear domain, it becomes
more difficult to apply effectively. This is because computations on nonlinear objects often
require algebraic numbers which cannot be explicitly represented by a finite number of bits.
It is indicated that the algebraic numbers could be represented as the root of a polynomial
(with rational coefficients) within a rational tolerance. Multivariate Sturm sequences or field
extensions are needed to achieve this. Their algorithm constructs the adjacency graph of
the medial axis while traversing it instead of piecewise linear approximations as in [45].
The sheets correspond to trimmed quadric surfaces, seams are algebraic curves with rational
coefficients and the junctions are points whose co-ordinates correspond to algebraic numbers.
The junction points are determined, not by taking tiny steps along the seam, but on accurate
topological analysis of the curve. Since the application of exact arithmetic tends to slow
down the process, several methods to improve the efficiency of the algorithm are proposed.
Non-convex polyhedra are converted to convex polyhedra and multiply-connected faces are
converted into simply-connected faces. These result in additional processing to obtain the
exact topology and geometry of MAT. Moreover, the extension of this algorithm to free-form
objects looks impossible without discretising these objects.
Foskey et al. [51], in their paper, presented an algorithm for a simplified medial
axis called θ-SMA that is parameterised by a separation angle (θ) formed by the vectors
Chapter 2. Literature review 22
connecting a point on the medial axis to the closest points on the boundary. A formal
characterisation of the degree of simplification of the θ-SMA as a function of θ is presented
based on the reconstruction property of the medial axis. The original volume of the object is
compared with the volume of the reconstructed object θ-SMA and a relation between them
has been derived as a function of θ. An algorithm based on the spatial subdivision technique
that uses uniform voxel grid as well as an adaptive subdivision of space has been presented.
This algorithm also uses fast computation of distance field and its gradient. Techniques that
improve the quality of approximation by using smoothing operations, and accelerate the
performance of the overall algorithm have been presented. The complexity of the algorithm
is shown to be a linear function of the input size. Though the algorithm appears to be fast, θ-
SMA does not, in general, preserve topological properties like connectedness and homotopy.
It has been argued that θ-SMA is useful in applications like dimensional reduction and mesh
generation. However, it appears that the reconstructed object using θ-SMA will not be close
to the original object topologically and geometrically.
2.2.3 Discrete representation: Input as point set
The domain in consideration is represented as a point set that is obtained by sampling the
boundary of the domain or cells obtained by a spatial decomposition of the domain. For
point set models [22, 52, 53, 54, 55, 56], MAT is computed based on the idea that the
circumspheres of the Delaunay triangulation of the point set approximate maximal spheres.
Cell decomposition methods [4, 51, 57, 58] discretise the domain into octrees. This method
has been shown to work for set-theoretic solid models [4] and polyhedral models [57, 58].
Reddy and Turkiyyah [59] propose an algorithm for determining the skeletons of 3D
polyhedra based on generalisation of the Voronoi diagram. They compute an abstract De-
launay triangulation of the polyhedron and use the result to obtain the dual, the generalised
Voronoi diagram. The Delaunay triangulation computed is a generalisation of the usual
Delaunay triangulation which connects isolated nodes together with line segments. In the
generalisation used here, nodes represent entities on the boundary of the domain, such as
a face, a non-convex edge or a non-convex vertex of the polyhedron. Therefore, the tri-
angulation is an abstract graph which still maintains duality with the generalised Voronoi
diagram. Two approaches, namely, a boundary point set (which uses only the points on the
boundary) and a mixed-dimensional boundary entity set (that uses the faces, non-convex
edges and non-convex vertices) are described for computing the skeleton of the polyhedron.
A limitation of the point set approach is the determination of a ‘valid’ point set (the point
Chapter 2. Literature review 23
set is valid if none of the edges of the Delaunay triangulation intersects the boundary of the
object) for which the solution has not been addressed. The algorithm requires solving a set
of nonlinear equations. A major limitation of these two approaches is that it computes only
an abstract geometry of the skeleton. The only specific geometry computed is the location of
Voronoi vertices. In the boundary point set approach, this information defines the geometry
of an approximate skeleton. The skeletal surface is approximated by the union of planar
Voronoi facets. In the mixed-dimensional boundary set approach, this information defines
only the critical points (terminal points of the MAT segments) of the skeleton. The pre-
cise definition of the geometry of the skeletal surfaces is not included. The implementation
does not compute the exact geometry of the skeleton. Rather, it derives only a symbolic
representation (which consists of the specification of non-redundant mid-surfaces and the
correspondence between the topology of the skeleton and the mid-surfaces) of the geometry.
It is mentioned that the computation of the nonlinear curves and surfaces can be a direct
extension of this work. Also, the Voronoi diagram generation algorithm used here [60] can-
not compute Voronoi diagrams whose facets are not homeomorphic to R2. This implies that
the presence of the inner loops in the Voronoi diagram cannot be captured and hence these
unconnected medial axes are not determined by the algorithm.
Sheehy et al. [22, 52] have presented an algorithm for medial surface construction
by exploiting the properties of domain Delaunay triangulation (DDT). The emphasis of the
algorithm is on computing the medial surface topology correctly. DDT establishes a rela-
tionship between the Delaunay triangulation vertices, edges and faces and the corresponding
entities of the object. DDT is a necessary but not a sufficient condition for capturing a
valid representation of medial surface topology. Further conditions are derived based on the
relationship between the maximal sphere and the approximate tangent (or touch) points of
the corresponding tetrahedron. It is approximate because the circumspheres of the tetrahe-
dra is only an approximate maximal sphere. Topological and geometric conditions are then
identified and enforced to give a more refined triangulation and a better starting point in the
computation. A classification of each tetrahedron to identify the degree of freedom of the
circumsphere corresponding to that tetrahedron within the DDT is proposed in a hierarchical
manner. The proposed scheme identifies any corruption of the medial surface topology and
also describes a strategy for resolving this. It is claimed that such measures are sufficient
to validate the integrity of the topology of the medial surface though this is not proven. It
is indicated that the developed algorithm can be extended to spheres having contact with
the object surface over a finite line or area. Though the algorithm captures the medial axis
Chapter 2. Literature review 24
topology, it appears that the geometry information is not identified even approximately.
Attali and Montanvert [54] propose algorithms for generating skeletons of an object for
two different representations of the object. One uses the point set that samples the boundary
and the other uses a polyhedral approximation. For the point set, the skeleton is obtained
using the notion of a polyball which is nothing but a finite union of balls that approximates
the object. It is proved that the skeleton of a polyball can be constructed exactly and this
approximates the skeleton of the object as well. The effort of finding the union of the balls is
not discussed. Since the points that define the balls are obtained by sampling the boundary,
this algorithm can handle only smooth shapes. Sharp corners and edges cannot be captured.
The point set method ensures convergence towards the exact skeleton but the polyhedral
method is shown to preserve homotopy and the reconstruction properties of the skeleton. As
an approximate representation of the object is used based on the sampling of the boundary,
changing the resolution of sampling significantly changes the topology and geometry of the
skeleton. Methods have been proposed for removing extraneous portions of the MAT using
criterion such as the angle between the governors. Moreover, convergence is not guaranteed
in the case of an object being approximated by a polyhedron.
Turkiyyah et al. [53] have proposed a method for generating the skeletons of free-
form implicit solid models using the domain discretisation technique. The method starts
with a Delaunay triangulation of the point set of an object and employs an optimisation
scheme to obtain a significantly improved estimate of the skeletal geometry. Conditions on
the point set sampling are presented to ensure that the topology of the Voronoi diagram is
a superset of the skeleton topology. Methods are presented to eliminate spurious tetrahedra
that might have formed due to the discretisation errors which may result in discrete point
set not conforming to boundary curvature. After an initial approximation to the skeleton,
an optimisation problem for every interior tetrahedron is formulated and solved to move
the vertices of Delaunay simplices and relocate the centres of their circumscribing spheres to
skeleton locations. Results of the algorithm are presented and compared with the results that
are obtained without applying the optimisation procedures. It is shown that the application
of optimisation techniques results in significant improvements. Though the techniques have
been proposed only for implicit solid models, which facilitate analytical representation for
surface normals and curvatures, it appears that their algorithm works for other mathematical
representations also because they use a point set sampled from the boundary along with
normal information at each point in the set.
Amenta and Kolluri [61] determine the medial axis of an object approximated by
Chapter 2. Literature review 25
finite union of balls. A modification of the characterisation of the medial axis as proposed
by Attali and Montanvert [54] is used. The sample points are first generated on the object
and the set of balls B is then generated and taken as input. Initially the union U and its
vertices V in the set of balls are calculated. The power diagram pow(B) (which is a weighted
Voronoi diagram, see [62] for details) and its dual, the regular triangulation (which is
similar to Delaunay triangulation) are then calculated. The α-complex, which is a subset of
simplices of the regular triangulation is then computed from which an α-shape S is computed.
The medial axis is then computed using the singular faces of S and the subset of Vor(V)
(Voronoi diagram of V, the vertices) that intersects the regular components of S. The regular
components of S are the full dimensional entities of the α-shape and the singular faces are the
entities of S with lower dimensions. Combinatorial tests have been developed for intersection
calculations. However, filtered arithmetic (that toggles between floating point arithmetic and
exact arithmetic) is used and this tends to slow down the algorithm considerably. Moreover,
generation of Voronoi diagram is done more than once, first for generating the power diagram
and once again when the Voronoi diagram is computed for the regular components of S and
this further slows down the algorithm. As the input is based on a sampling of the boundary,
only objects with smooth boundaries can be handled.
Dey and Zhao [55] approximate the medial axis as a Voronoi subcomplex using the
point cloud representation of the boundary surface of a solid. This algorithm computes a
subcomplex from the Voronoi diagram that lies close to the medial axis and converges to
it as the sampling density approaches infinity (the theory of this paper and the proof for
the convergence guarantee is available in a companion paper [63]). Two conditions, namely
angle condition (θ) (that is different from the angle condition in [54]) and ratio condition (ρ)
are used. It is shown through experiments that neither condition, when applied individually,
produces a ‘good’ approximation for the medial axis of an object. For example, larger values
of θ and ρ produce undesirable holes. It is shown by experiments that applying both the
conditions together produces a good approximation to the medial axis. It has been found
that the values of θ and ρ can be fixed to obtain a good medial axis for large data sets which
is not possible when these conditions are applied individually. Even then, the approximation
is better only where the data are dense. Near high-curvature regions, the approximation
contains artifacts and hence a separate smoothing procedure is required.
Dey et al. [56] present an algorithm for generating an approximate medial axis for
CAD objects (objects that consist of non-smooth edges and vertices). It is an extension of
the algorithm presented in [55]. This paper [56], discusses the difficulties in sampling of
Chapter 2. Literature review 26
such objects and remedial measures to overcome these.
2.2.4 Discrete input: Input as spatial decomposition
Lavender et al. [4] use an octree-based approach to determine the Voronoi diagram (more
precisely, MAT) for set theoretic solid models, composed of unions, intersections, and differ-
ences of primitive regions represented by a collection of polynomial inequalities. A slightly
different interpretation of the definition of Voronoi diagram that facilitates the derivation of
the Voronoi diagram for their domain is proposed. They observe that the definition of ‘sites’
is the key to the generation. It is shown that MAT is a subset of Voronoi diagram for the
interior of a domain and it is the opposite if the domain is exterior. A recursive technique
is proposed for the determination of the object and Voronoi divisions. Then the algorithm
prunes out the irrelevant information in the object division and also determines which part
of the Voronoi diagram lies in each Voronoi division box.
Lee and Lee [57] have presented an algorithm for generating the medial surface of a
polyhedral object based on voxelisation of that domain. It is based on the voxel–bisector
intersection relationship to calculate the junction points. Eleven types of bisector relation-
ships are derived between the boundary entities. Testing of whether that voxel is passing
through the bisector is done and, if so, the centre of such a voxel is claimed to be a point
on the medial axis. The algorithm starts by finding the junction points, then the seams and
sheets are generated. The algorithm uses simple floating point comparisons and does not use
any complex root-finding techniques. However, the algorithm does not generate all medial
surface patches. Only patches having corresponding points on the non-adjacent boundary
segments are generated. Moreover, the voxel size is not automatically determined and user
intervention is required in determining the initial voxel size. The effort in computing bisec-
tors has not been addressed. The algorithm seems to be very slow and incomplete and needs
major improvements before it can be used in practical models.
Etzion and Rappoport [58, 64] present an algorithm based on computing the symbolic
and geometric parts separately. Voronoi graph is used to determine the symbolic part. The
algorithm constructs a proximity structure subdivision (PSS) that recursively subdivides
space according to the distance of the cells from the entities of the polyhedron. PSS is
computed using an octree to represent the subdivision. Voronoi edges that intersect the
boundaries of the cells are identified and are termed Voronoi edge witnesses. Voronoi vertices
are extracted based on the assumption that a cell does not contain two different vertices with
the same governors. The cells in which this assumption fails are also determined. It is claimed
Chapter 2. Literature review 27
that the inaccuracy in the Voronoi graph is limited to these specific cells and the rest of the
Voronoi graph is correct and hence the overall accuracy is not affected greatly. The Voronoi
edges are then identified. The Voronoi diagram is computed using the symbolic information
present in the Voronoi graph. The symbolic information defines a set of equations to be
solved. It is guaranteed that the solutions of this set of equations is of the desired dimension
and the construction of PSS provides the necessary initial guesses. The operations used
in the algorithm are distance comparisons and solutions of linear, quadratic and quintic
polynomials in a single variable. In that sense, the algorithm is claimed to be more robust
than algorithms that use basic operations requiring higher precision. It is suggested that the
curved faces can be handled by linearising them. Representation of seams and sheets are
also discussed.
2.2.5 Exact-Freeform: Numerical tracing of bisectors
For Exact-Freeform objects, since the bisectors, in general, are non-rational, bisector curves
have to be traced numerically [65]. It has been shown in 2D, that MAT for Exact-Freeform
objects is possible through bisector curves [34]. In 3D, a similar principle (though not for
generating bisector surfaces) has been applied to generate MAT for a polyhedral object by
generating the boundary entities of MAT for the object [45, 46].
Constructing the MAT for planar domains with curved boundaries has been studied
by Chou [16] and Ramamurthy [66]. The main idea in these approaches revolves around
tracing the bisector of pairs of boundary entities and trimming the bisector to obtain the
correct topology of the MAT.
Chou [16], in his paper, has proposed a tracing technique for generating MAT of
planar domains that are closed and simply-connected. The boundary may consist of curved
segments including points, line segments, analytic curves and free-form curves, but holes are
not allowed. It is shown that the centres of curvature of locally maximal positive curvature
points on the boundary are also terminal points of MAT. The algorithm first generates the
bisectors between curves having the terminal points. Conditions are proposed for termination
of each bisector. Generally, bisectors consists of points on MAT and continue beyond. They
are trimmed by bisectors coming from some other terminal point and having the same
clearance circle radius. The intersection point thus obtained is the branch point of MAT.
Further, the tracing uses the information available at the intersection point to find the pair
for which the bisector is to be generated. A tree structure is used for construction in a
bottom-up approach. It is also proved that a point on the MAT needs to satisfy curvature
Chapter 2. Literature review 28
conditions. Extension of the algorithm to curves of zero curvature is also discussed. However,
no results (of implementation) have been provided. Since the tree structure has been used
for construction and the branch points are identified using the intersection of bisectors, the
algorithm cannot handle objects with holes.
Ramamurthy and Farouki [34] present the theoretical foundation for constructing
MAT from Voronoi diagrams for planar domains with curved boundaries. An incremental
approach to computing the Voronoi diagram is used, wherein a single boundary segment
is added to an existing boundary segment set at each step. The introduction of each new
segment entails modifying the Voronoi regions of the existing boundary segments and con-
structing the Voronoi region of the new segment. This is accomplished by (i) computing the
bisector of the new segment with each of the current boundary segments; (ii) updating the
Voronoi regions of the current boundary segments by partitioning them with these bisectors,
and (iii) constructing the Voronoi region of the new segment as a union of regions obtained
from the partitioning. When all the boundary segments are included, and their Voronoi re-
gions have been constructed, the Voronoi diagram of the boundary is obtained as the union
of the Voronoi polygons for each boundary segment. MAT is then obtained from the Voronoi
diagram by (i) removing edges of the Voronoi diagram that do not belong to the MAT, and
(ii) adding certain edges that do belong to MAT but are absent from the Voronoi diagram.
The details of the algorithm and implementation are presented in a companion paper [67].
Computation details for curve/curve bisectors are given in [65]. Degenerate cases that arise
in the computation of Voronoi diagram are discussed in [68].
Since the bisector is a superset of MAT for a boundary pair, generation of bisectors
to identify MAT appears to involve intensive computation. A robust curve–curve intersec-
tion procedure is needed to identify branch points. Degenerate cases have to be handled
separately.
Choi [69] has described an algorithm for generating MAT using the localization idea
based on the Domain Decomposition Lemma, which says that the MAT for the object can
be identified by the union of MAT of the appropriately subdivided regions. The tree data
structure is then developed and updated based on the subdivision that is carried out further.
The subdivision facilitates the identification of branch and terminal points. It is claimed that
the data structure guarantees the existence of such important points and makes the algorithm
efficient. A ‘killing homology’ procedure is used to convert the multiply-connected object
into several simply-connected objects. The algorithm uses a recovery procedure to determine
the accuracy. It appears that the subdivision is iterative based on the error calculation of
Chapter 2. Literature review 29
the recovery process which could be efficient but looks cumbersome. Though the algorithm
gives a topological structure of MAT of planar domains with free-form entities, it is not clear
of how the final MAT is computed geometrically.
2.3 Summary
When the input is Exact-Analytical or Exact-Freeform, most of the existing methods use
bisectors to generate MAT. However, bisector-based methods are computationally expensive
[36]. One problem with bisector-based methods is that considerable effort is spent in con-
structing bisector segments that may not be part of the final MAT. In addition to this, the
topology of the final MAT has to be ensured by correctly trimming each bisector segment and
connecting the valid segments. Alternately, pairs of entities that generate a valid bisector
(that will become part of a MAT segment) have to be identified and this needs additional
processing. This adds to the substantial effort already required in generating the bisector
segments. For example, the dashed line in Figure 2.1 (where B(a,b) denotes the bisector
between entity a and entity b on the boundary of the domain) shows the bisector curve for
the pair of edges AB and CD. The bisector consists of several segments some of which may
be nonlinear (segment P3-P4 in the figure corresponds to the set of points equidistant from
point B in edge AB and the edge CD). For the same pair of line segments AB and CD, when
it is part of the object ABCD, B1-B2 is the corresponding MAT segment, requiring trimming
of the rest of the segments forming the bisector. Moreover, problems due to round-off errors
are involved in finding the intersection of bisectors. For example, as shown in Figure 2.2,
the two bisectors which are supposed to join each other may not intersect because of some
round-off errors. This could impede implementation of algorithms which rely on accurate
intersection of bisectors.
Divide and conquer based methods require the computation of the intersection of bi-
sectors. Identifying whether more than one intersection point exists between the bisectors
actually involves a set of bisector intersections (in addition to the already existing Voronoi
diagrams which were computed using intersection of bisectors). Quite clearly, the divide and
conquer method is very complex if applied to free-form objects. Even when used for poly-
hedral objects, the merging step would involve processing large number of piecewise-quadric
surface patches and a robust surface–surface intersection routine is required to determine
the bounds of the resulting bisector surfaces.
When exact representation is taken as input, the bisector curves have to be traced
Chapter 2. Literature review 30
A
B
C
D
B(A,C)
B(C,AB)
B1 B2
B(AB,CD)
P3P1 P2
B(B,CD)
P4B(B,D)
Figure 2.1: Difference between MAT and bisector.
Nonlinear (parabola)bisector B2
Linear bisector B1
(a) (b)
Figure 2.2: No intersection point is found between bisectors B1 and B2 if some gap exists[48].
Chapter 2. Literature review 31
(a) (b)
Figure 2.3: Effect of discretising boundary on 2D MAT.
numerically and it has been shown to be possible in 2D domain. Recently, Sherbrooke et
al. [46, 45] implemented a numerical tracing method using partial differential equations
with floating point arithmetic that is applicable only for polyhedral objects. It is shown that
more accurate results can be obtained using exact arithmetic [49]. However, optimisation
methods are required to improve the speed because exact arithmetic has been proven to
be very slow. Tracing method for an Exact-Freeform object does not seem to have been
developed so far.
Construction of the MAT of CSG objects (obtained by Boolean combinations of prim-
itive objects such as cuboid, cylinder) involves nonlinear curves and surfaces and this has
been addressed in [39]. However, the approach is restricted to quadric curves and surfaces.
When a tessellated representation of a free-form domain is used, the output MAT
invariably consists of artificial MAT segments that are artifacts of the representation used
and not due to the underlying part geometry (see Figures 2.3, 2.4) [46]. Though the MAT
that is output is continuous, the points on the output MAT do not conform to the definition
of MAT for the exact domain. The output in this case is said to be Continuous-Approximate
MAT. It must be noted that additional effort is required in trimming and post-processing
the generated MAT to be in conformity with the topology of the original free-form object.
The additional MAT segments distort any reasoning based on MAT. For finite element
applications, such a MAT representation may be sufficient but exact representation of the
part has to be used to construct the MAT in applications where the geometry of the part
has to be reconstructed from the MAT [13]. Criteria that involve parameters such as angle,
ratio etc. have been used to get a closer approximation to the exact MAT ( [54, 55, 56]).
However, in general, skeleton property like homotopy is not preserved. Resulting MAT also
has many spikes and requires further processing.
Chapter 2. Literature review 32
(a) (b)
Figure 2.4: Effect of discretising boundary on 3D MAT.
In approaches using the point set representation of the domain, an infinite point set
is required to generate maximal spheres from circumspheres and hence the generated MAT
points do not conform to the definition of MAT with respect to the exact domain. Voronoi-
based algorithms such as [54, 55, 61] work on the assumption that the sample is dense.
However, with finite sampling, this density condition can never be satisfied at the non-
smooth edges and vertices that are quite common in CAD models. The approximate medial
axis with Voronoi facets stops before touching the convex edges and non-concave corners
while the true medial axis passes through them and hence the structure of the medial axis
for such objects is not complete. Further, due to inherent under-sampling, the medial axis is
approximated poorly near the sharp edges and corners. Proper approximation of medial axis
in the vicinity of sharp edges is required for applications like dimensional reduction, feature
recognition and suppression. A smoother approximation of medial axis in high-curvature
regions is possible only with smaller Voronoi facets. However, if the density is too low,
artifacts such as holes appear in the medial axis. Adaptive refining [52] based correction is
not proven to be correct and gives only the topology of the MAT and not the geometry.
Optimisation procedures have to be used to derive the exact geometry [53], but it is
shown to work only for implicit solid models.
Spatial decomposition of the domain using octree has been used to construct MAT for
set-theoretic solid models [4] and polyhedral models [57, 58]. However, the algorithm in [57]
does not generate all medial surface patches and the algorithm in [58] generates approximate
Voronoi graphs for degenerate Voronoi diagrams. Free-form solid models are required to be
Chapter 2. Literature review 33
discretised into polyhedral models for applying this method. Moreover, this method does
not provide a complete description of adjacency relationships unless the resolution is very
high.
Most algorithms that work for 2D domains do not extend to 3D domains. For instance,
the 2D divide and conquer algorithm [42] has not been generalised to 3D. The merging step
in the 2D algorithm constructs a piecewise-parabolic polygonal chain. The segments of the
chain are computed in order from one end to the other. In 3D, a divide and conquer algo-
rithm would presumably involve constructing large numbers of piecewise-quadratic surfaces.
The computation of such patches appears to be a very difficult problem, one that has not
been addressed so far. Similarly, the wavefront propagation algorithm does not appear to
generalise easily to three dimensions. Only algorithms based on tracing appear to be capable
of extension to 3D.
This thesis proposes the use of a tracing based algorithm that takes exact representa-
tion of an object as input to generate a Discrete-Exact representation of the MAT. Points
that are generated conform to MAT requirements. Using the exact representation of the
part for constructing the MAT eliminates the need for additional post-processing that is
required with other types of representations. To the best of the knowledge of the author, no
algorithm thus far has used the exact representation of a free-form object to generate the
MAT in 3D.
Chapter 4 in this thesis describes an algorithm for generating an approximation of the
MAT for 2D objects with free-form entities (exact representation). The algorithm is broadly
based on the idea of tracing proposed by Chou [16]. The algorithm presented however traces
the MAT of the part, segment by segment, by marching along the boundary (as opposed to
stepping along the bisector as done by Chou [16]). This allows the proposed algorithm to
handle multiply-connected objects.
Chapter 5 presents an elegant technique for generating MAT for extruded/revolved
objects with free-form entities. This method uses the tracing algorithm in chapter 4 for
generating MAT on the planar profile face. It is shown that the MAT points of the profile
face is sufficient to determine the topology and geometry of the extruded/revolved 3D object
under certain conditions.
Chapter 6 presents a tracing technique for constructing MAT of 3D objects bound
by free-form surfaces. This algorithm uses a connectivity scheme similar to the one used by
Sherbrooke [70]. However, this algorithm uses the boundary of the object to generate the
points on the seam and does not trace the seam using the tangent as done by Sherbrooke.
Chapter 2. Literature review 34
The algorithm is an extension of the algorithm described in chapter 4 for generating MAT
of curved boundaries in planar domain.
Chapter 3
Preliminaries for computing MAT
3.1 Introduction
In this chapter, terms used in the remainder of the thesis are defined. Classification of
vertices and edges in an object is first described, followed by the classification of points on
both 2D and 3D MAT. This chapter concludes with the details of distance and curvature
criterion to be satisfied by any point on the MAT.
3.2 Classification of vertices and edges
A reflex (concave) corner in a 2D object is one where the interior angle between the edges
at the corner is greater than 180◦. If the angle is equal to 180◦, then it is termed a smooth
vertex. Otherwise, it is termed a convex vertex.
In 3D, a convex edge is one where the interior angle between the faces is less than
180◦. If it is equal to 180◦, the edge is termed a smooth edge. Otherwise it is termed a
reflex (concave) edge. It is assumed that the above classification for an edge holds good at
all points on that edge. A vertex is convex if all the edges incident at that vertex are convex.
If at least one of the incident edges is concave, then the vertex is termed reflex/concave.
3.3 Classification of points on 2D MAT
Points on the MAT can be classified based on the properties of their maximal disks [12]. A
point whose maximal disk exactly touches two separate boundary segments is called normal
point. Point N (or any point on the line segment (A,E1) excluding the end points A and E1)
in Figure 3.1(a) is a normal point. Its underlying maximal disk is shown in Figure 3.1(b).
35
Chapter 3. Preliminaries for computing MAT 36
B
A
C
D
F1
Fp1
Fp2
Fp3
E1
Fp2
Fp1
NNA
E1 F1
B C
D
(a) (b)
(c) (d)
C
Figure 3.1: Classification of points on 2D MAT.
A point whose maximal disk touches the domain boundary in three or more separate
segments is called branch point. Points E1 and F1 in Figure 3.1(a) are branch points. Figure
3.1(c) shows the maximal disk corresponding to the branch point E1.
A point whose maximal disk exactly touches the boundary in one contiguous set is
called an end point. These points touch the boundary either at a point (such as A,B,C and
D, Figure 3.1(a)) where the corresponding maximal disk is of radius zero or at a set of points
such as in the case of a constant curvature circular arc, where the corresponding radius is
that of the radius of curvature of that portion of the arc as shown in Figure 3.1(d).
Blum and Nagel [12] view the MAT of a domain as a collection of simplified segments.
A simplified segment is a set of contiguous normal points bound by either a branch point or
an end point [12].
A point of contact of the underlying disk of a point on the MAT with the domain
boundary is called the footpoint of the point on the MAT. From the definition of the point
types in a MAT, a normal point has two footpoints (Fp1 and Fp2 in Figure 3.1(b)), a branch
point has three or more (Fp1, Fp2, and Fp3 in Figure 3.1(c)) and an end point has one or
more footpoints.
The boundary entities corresponding to a MAT point are referred to as generators. For
example, a normal point has two generators and a branch point has at least three generators.
Chapter 3. Preliminaries for computing MAT 37
Seam−End point
Rim
Seam
Junction point Sheet
A
K
D
B C
F G
HE
I J
L
Figure 3.2: Classification of points on 3D MAT.
3.4 Classification of points on 3D MAT
The various elements that generally comprise the 3D MAT have been defined by Sherbrooke
et al. [45] and Turkiyyah et al. [53]. These are reproduced here for completeness and are
illustrated in Figure 3.2.
Touchpoint: A point at which a maximal sphere is tangential to the boundary surface.
Though the terms ‘footpoint’ and ‘touchpoint’ have been used synonymously in the literature
regardless of the dimension of the domain, these two are used in this thesis in a distinct
manner (depending on the dimension of the domain) for clarity in description.
Seam: A connected space curve consisting of points that have three touchpoints and
are non-manifold. Points on the seam are called seam points. Any point on the segment AI
(refer Figure 3.2) excluding the points A and I is a seam point.
Junction point: A point where the seams intersect. A point such as ‘I’ in the Figure
3.2 is a junction point.
Seam-end point: These points do not arise from the maximal ball condition of the
MAT, but are actually on the limit points of the MAT. A seam-end point generally results
when a seam runs into the boundary of the solid. Therefore, vertices with convex edges
incident on them are seam-end points [45]. Points such as A and B in the Figure 3.2 are
seam-end points.
Chapter 3. Preliminaries for computing MAT 38
A-b1-e = 90
d(e,a1) = d(e,b1)
A-a1-e = 90o
o
e
a1
b1
A
e1b1
a1A
(a) (b)
A-a1-e1 = 90
A-a1-e1 = 90
o
o
d(e1,a1) = d(e1,b1)
Figure 3.3: Distance criterion for 2D MAT.
Skeletal edge: A connected space curve consisting of points whose maximal spheres
have a single touchpoint with the surface of the object. A skeletal edge is possible only if a
surface contains a point that has a locally maximal positive curvature (LMPC) [16].
Sheet: Sheet is a manifold subset of the MAT which is maximal in the sense that it is
connected and bounded only by seams and skeletal edges. For example, IJKLI in the Figure
3.2 is a sheet which is bound by the seams IJ, JK, KL, and LI. A seam corresponds to the
intersection of sheets.
Sheet point: A point in the interior of a sheet. Sheet points have precisely two touch-
points. For example, any point on the sheet IJKLI (Figure 3.2) that is not on the bounding
seams of that sheet is a sheet point.
Sheet-end point: These points also are among the limit points of the MAT, whereas a
seam-end point is a limit point of a seam, a sheet-end point is a limit point of a sheet. All
seam points are sheet-end points but all sheet-end points need not be seam points.
Rim: Connected components of sheet-end points are called rims. Convex edges (such
as AD in the Figure 3.2), resulting from the intersection of sheets with the boundary are
rims.
Governors: The boundary entities corresponding to a MAT point are referred to as
governors. From the classification of the points on 3D MAT, any seam point should be
equidistant to three governors, any sheet point should be equidistant to two governors and
the junction point should be equidistant to four or more governors.
Chapter 3. Preliminaries for computing MAT 39
A-a1-e = 90o
d(e,a1) = d(e,b1) = d(e,c1)
oA-b1-e = 90
o
A-c1-e = 90
Aa1
b1e1
c1
Ae
b1
a1
c1
d(e1,a1) = d(e1,b1) = d(e1,c1)
A-a1-e1 = 90o
o
oA-b1-e1 = 90
A-c1-e1 = 90
(a) (b)
Figure 3.4: Distance criterion for 3D MAT.
3.5 Distance and curvature criterion for 2D and 3D
MAT
From the definition of the MAT, the following two conditions that have to be satisfied by
points on a simplified segment can be derived [16].
Distance criterion: In 2D, any point on a simplified segment (apart from the end
points of the segment) should be equidistant to two boundary segments. In 3D, any point on
a seam (apart from the other points of the MAT) should be equidistant to three boundary
segments.
Curvature criterion: In 2D, the radius of curvature of the disk at any MAT point
should be less than or equal to the minimum of the local radius of curvature of the boundary
segments. Otherwise, the disk does not satisfy the maximal disk criterion [12]. In 3D,
the radius of curvature of the ball (or sphere) at any point on MAT should be less than
or equal to the minimum of the radius of curvatures (reciprocal of the maximum normal
curvatures) at the touchpoints of the boundary (this condition is similar to the condition to
avoid gouging (cutter interference) when a ball-endmill is used [71]). Otherwise, the ball
does not satisfy the maximal ball criterion (the ball pierces the boundary in the same way
Chapter 3. Preliminaries for computing MAT 40
Curvature criterion fails at D1
AB
C
CD1
D1
m
E1
A
C
M
D
E
CD B
(a) (b)
Figure 3.5: Curvature criterion for 2D MAT.
that the ball-end mill causes gouging). So the point is no longer a MAT point even though
the equidistant criterion is satisfied (one can call such points bisector points since they have
to be only equidistant [36]). The curvature criterion becomes very important in the case
of determining MAT points for free-form entities. Without this condition, the generated
points belong to a bisector segment and not to a MAT segment. This is also one reason why
any approach based on generating bisectors of free-form edge pairs would require additional
processing.
3.5.1 Illustration of distance and curvature criterion
In 2D, line segments e-a1 and e-b1 (refer Figure 3.3(a)) are normal to the boundary segments
and also equal in length. So the point ‘e’ is a point on the MAT. But for the point ‘e1’ shown
in Figure 3.3(b), even though the line segments e1-a1 and e1-b1 are normal to the boundary
segments, they are not equal in length. So point ‘e1’ is not a point on MAT. A similar
condition holds good for 3D. Figure 3.4 illustrates that condition.
Figure 3.5 illustrates the curvature criterion (the distance criterion is satisfied). Figure
3.5(a) shows that the ball is completely inside the boundary segments which implies that the
indicated curvature criterion is fully satisfied and point M becomes a MAT point. Violation
of this criterion indicates that the ball does not lie completely inside the boundary segments.
The point ‘m’ in Figure 3.5(b) is not a MAT point but still belongs to the set of bisector
points. A point belongs to the MAT only when it satisfies both criteria. Figure 3.6 illustrates
Chapter 3. Preliminaries for computing MAT 41
M
E
D
F
Curvature criterion fails here
m
(b)(a)
Figure 3.6: Curvature criterion for a 3D MAT point.
the curvature criterion for 3D objects.
Chapter 4
MAT of planar domains with curvedboundaries
4.1 Introduction
In this chapter, the problem of generating a MAT for planar objects with free-form curved
entities has been addressed. The algorithm proposed uses the exact representation of the
part and generates a Discrete-Exact representation of the MAT. An approximate rational
description (to within a defined tolerance) of the MAT can be obtained by fitting rational
spline curves to the points obtained on each MAT segment.
The algorithm is broadly based on the idea of tracing proposed by Chou [16]. The algo-
rithm presented however, traces the MAT of the part, segment by segment by marching along
the boundary (as opposed to stepping along the bisector as done by Chou [16]). This allows
the proposed algorithm to handle multiply-connected objects. This is because algorithms
based on bisectors involve two steps. The first step is to find the bisector segments between
edge pairs and the second is to find an arrangement of these bisector segments (or parts
thereof) that form the MAT. In the case of the approach referred to [16], the arrangement
is assumed to be represented as a tree. This precludes domains that are multiply-connected
as in such cases the arrangement will include a cycle. Here, a tree-based representation of
the MAT has been used but the representation is allowed to be a graph (when the domain is
multiply-connected). In this chapter, the term ‘boundary entities’ refers to boundary edges
as well as reflex corners in an object. The following sections describe the algorithm and
present the results of implementation. The chapter concludes with a summary.
42
Chapter 4. MAT of planar domains with curved boundaries 43
4.2 Overview of algorithm
The algorithm works by finding the footpoint of a normal MAT point on one edge given its
footpoint on another edge. This is accomplished by solving the intersection of the normals
to the two edges and imposing the distance criterion. The point on the MAT is obtained
by finding the intersection of the normals to the edges on the boundary followed by a check
against the curvature criterion. The algorithm therefore replaces the intersection of bisectors
(favoured by current art [16, 44, 66]) with the intersection of normals. Given that the
normals are linear, in contrast to bisectors which can be rational curves or quadratic conics,
the computational effort and complexity are reduced considerably.
Tracing of the MAT starts from a convex vertex, where both the footpoints are known
(they are the convex vertex itself). It is assumed that the input domain contains at least one
convex vertex. During the tracing of normal MAT points, at chosen intervals, the algorithm
checks for the existence of a branch point. This check is a distance check with all other
boundary entities that are not part of the current pair in the object. However, the algorithm
does not check against all the boundary entities and proposes a more restricted check that
gives the correct results. For determining the presence of a branch point it is shown that
it is sufficient to check for interference of the maximal disk, at the MAT point determined,
with boundary entities that have not been traced so far. This ensures that as the generation
of MAT progresses, the check for branch point involves fewer boundary entities.
Once the existence of a branch point is confirmed, two of the footpoints correspond-
ing to the branch point are known and the remaining footpoints of the branch point are
determined from the boundary entities that fail the distance check.
Failure of the curvature criterion indicates the presence of a point with locally maximal
positive curvature (curvature at a point ‘p’ on a curve is locally maximal if it is greater than
the curvatures at points p+ε and p−ε [16]) in the vicinity. In such cases, the MAT segment
terminates at the centre of curvature corresponding to the point that has the maximal
curvature locally. The tracing procedure used therefore originates at a convex vertex and
ends at either a convex vertex or at the centre of curvature of a point that has locally maximal
positive curvature (LMPC). At each branch point one or more new segments become available
for tracing and the algorithm traces each of them.
The algorithm terminates when all the convex vertices in the part have been visited
and no edge pairs remain to be traced at any branch point. The algorithm uses two step
sizes. One is used for generating the next MAT point and the other is used to check for
Chapter 4. MAT of planar domains with curved boundaries 44
A
e1
e2
u1
u2
right : u2left : u1
Figure 4.1: Parameterisation of edges.
potential branch points.
The output of the algorithm is a set of points on each MAT segment. Rational curves
are fitted to points in each segment to a desired tolerance to obtain the MAT segments.
4.3 Algorithm details
The algorithm for constructing the MAT consists of the following steps:
• Tracing step;
• Checking for a branch point;
• Proceeding from a branch point;
• Handling a reflex corner;
• Termination of the algorithm.
4.3.1 Tracing step
The boundary segments are parameterised such that the interior (material side) is always
to the left of the increasing direction of the parameter. The tracing step consists of the
following tasks.
1. Commence tracing from a convex vertex (let e1, e2 be the left and right edges at the
vertex A and u1 and u2 the parameters corresponding to the two edges respectively
(Figure 4.1)).
Chapter 4. MAT of planar domains with curved boundaries 45
2. Locate the next footpoint on e2 by incrementing u2 by the tracing step size (δu2).
3. Find the corresponding footpoint on e1. This step requires the intersection of normals
to the two edges and enforcing the distance criterion. The computational effort is in
finding the roots of a nonlinear equation in one variable (see Appendix A. for details).
Convergence is fast as a good initial guess is always available (the previous footpoint
on the edge).
4. Check if the intersection point satisfies the curvature criterion.
The intersection of normals that also satisfies the distance criterion is the MAT point.
Such a point exists as the MAT point is the intersection of the bisector and the normals
from the respective edges. Here one normal is fixed and the other is searched for such that
their intersection is the MAT point (equidistant from the respective edges).
The check against the curvature criterion is a comparison of the radius function (dis-
tance between the footpoint and the intersection point) with the radius of curvature at the
footpoint. The procedure followed when the curvature criterion is violated at a point during
tracing is discussed later during the description of tracing from a branch point.
4.3.2 Check for branch point
A simplified MAT segment terminates at one of the following – a convex vertex, a branch
point, or the centre of curvature of a point with locally maximal positive curvature. Ter-
mination of the tracing of a single MAT segment at a convex vertex is straightforward as
it only involves comparing the parameter values with the bounds on the same and checking
if the vertex is a convex vertex or not. When the segment terminates at a branch point,
however, additional checks are required to first determine the existence of the branch point
and then to trace a new segment from the branch point. Termination at the centre of curva-
ture of a point with locally maximal positive curvature is indicated by either failure in the
curvature criterion or when the end of an edge that is not a convex vertex is reached without
encountering a branch point. Both these cases are described later.
The existence of a branch point can be identified by finding the distance of the current
MAT point from the remaining boundary entities and checking if this distance is less than
the radius function at the current MAT point. This check is referred to as the distance check
as opposed to the distance criterion that has to be satisfied by a point on the MAT (chapter
3, section 3.5). It is extremely costly to check the distance at each and every point generated
Chapter 4. MAT of planar domains with curved boundaries 46
during the tracing with all the remaining boundary segments. Two things are done to reduce
the effort in this step. First, the distance check is done for only a few boundary segments
(and not all boundary segments in the part). Second, the check for existence of a branch
point is done only after a finite portion of the MAT segment is generated (and not at every
point on the MAT).
The distance check to identify a branch point need not include all the boundary seg-
ments because of the following propositions.
Proposition 4.1 Portions of the boundary entities for which the MAT segments have al-
ready been traced need not be considered in performing the distance check to identify branch
points, while generating subsequent MAT segments.
Proof: Let the proposition not be true. Then at some point ‘P’ on the MAT segment
being generated using the edge pair ei and ej, the maximal disk will cut one or more bound-
ary edges that have been already traced. In such a case, it is possible to find a smaller disk
centred at P which is tangential to an edge that has been cut (ek) and one of the two edges ei
and ej in the current pair. This would result in a point on the edge segment cut (ek) having
two MAT points corresponding to it. This violates the onto correspondence between a point
on the boundary and its corresponding MAT point (the correspondence relation between
the two is a continuous, one-to-one onto map) [16]. The onto correspondence holds even
in the presence of reflex (concave) corners when the reflex corner is represented by multiple
segments of zero length but with a normal. The maximal disk at point P therefore, cannot
cut any of the boundary edges that have already been traced. The proposition follows. 4
Checking for the existence of a branch point is not done at every point traced on
the MAT. It is therefore possible to overshoot a branch point during the tracing procedure.
A simple bisection procedure implemented between the last point on the MAT where the
distance check was not violated and the current point where it is violated will identify the
branch point.
4.3.3 Tracing from a branch point
At a branch point, the current segment being traced continues along two or more branches.
For each branch chosen (represented by a pair of edges or an edge and a reflex vertex),
the edge common with the edge pair corresponding to the current segment continues to be
traversed in the same direction. The direction of traversal for the new edge (handling reflex
Chapter 4. MAT of planar domains with curved boundaries 47
b
A E
B
b
A
B
D
E
b1
(a) (b)
b - Branch point b,b1 - Branch points
Figure 4.2: Existence of a branch point.
vertices is described later) in the pair, is opposite to the direction of traversal of the common
edge between the old and new pairs. If the common edge is traversed along the direction
of parameterisation (increasing value of its parameter), then the new edge is traversed in
the decreasing value of its parameter and vice versa. The points on the MAT segment
corresponding to this pair are determined as described earlier. This process can be made
more efficient by noting that when a pair is traversed from a branch point, further checks for
branch points need not be made if the pair has a common convex vertex (Proposition 4.2).
There may be branch points due to the edges in the current pair which however are trapped
by the failure of the curvature criterion.
The above procedure is repeated for any branch points encountered (where possible)
during tracing from a branch point. Tracing terminates at a convex vertex or at the centre
of curvature of locally maximal positive curvature or when no further branch points are
obtained.
Proposition 4.2 When a MAT segment is generated from a branch point by traversing
along a pair of edges that share a convex corner, no other branch point (involving a boundary
segment other than the current pair) will be encountered during the traversal till the convex
corner.
Proof: The proof is established by contradiction. Figure 4.2 illustrates the tracing
of the MAT from a branch point (point ‘b’) using the edge pair (AB, AE) that intersects
in a convex corner A. Since they intersect in a convex corner, it is clear that there cannot
be any other boundary segment between them. Assume that another branch point (‘b1’) is
encountered during the tracing along this edge pair. This implies that there are two MAT
Chapter 4. MAT of planar domains with curved boundaries 48
AB
C
D1
m
E1
F
G
BD
H
CD1Br
AB
C
D1
mBr
CC
(a) (b)
Figure 4.3: Violation of curvature condition.
segments for the pair (AB, AE). One from the branch point ‘b’ to branch point ‘b1’ and the
other that starts/ends from the end point A. As there can be only one MAT segment for
a pair of boundary segments (because of the one to one onto correspondence between the
points on the MAT and their corresponding points on the boundary segments), the tracing
of MAT from branch point ‘b’ to the convex corner cannot encounter any other branch point.
The proposition follows. 4
This implies that there is no need for the distance check for the MAT points generated
during traversal from a branch point along a pair of edges that share a convex corner. There
may be branch points due to the edges in the current pair. These are however trapped by
the failure of the curvature criterion.
Failure in the curvature criterion indicates that the tracing of MAT has missed a branch
point. This is because the check for branch points does not include the current edge pair
and in this case, the third footpoint also belongs to one of the edges in the edge pair used
for tracing. In Figure 4.3(a), MAT corresponding to the edge pair (AC, AB) is traced.
The curvature criterion is violated at the point D1 on edge AB indicating a branch point
earlier. The footpoints corresponding to this branch point (Br in the Figure 4.3(a)) are
G, F and H where F, H belong to the same edge AB. In this case, the branch point ‘Br’
can be identified by backtracking the traced MAT segment. During backtracking, at each
MAT point, the distance check for a branch point is performed with only the boundary
Chapter 4. MAT of planar domains with curved boundaries 49
D
A B
C
EF
G
N2A B
C D
EF
N1
N2
G D1
E1
(a) (b)
Figure 4.4: Handling a reflex corner.
segment where the curvature criterion has failed. From the branch point ‘Br’, the tracing is
done as usual. However, in one of the pairs, two boundary segments are the same but have
different footpoints. Note that the termination of the MAT segment corresponding to this
pair is the centre of curvature of the point where the curvature of the boundary segment is
positive and locally maximal. The point with LMPC is identified by traversing the boundary
segment between the two footpoints on this edge corresponding to the branch point Br. The
tracing of the MAT segment terminates when the updated parameter crosses the parameter
value of the point with LMPC. The centre of curvature at the point with LMPC is then
appended to the existing MAT points. Note that the maximal disk for this MAT point has
a single footpoint. Further tracing of the MAT now proceeds with the edge pair AC and AB
corresponding to the footpoints ‘G’ and ‘H’ (refer Figure 4.3(b)).
Checking against the curvature criterion is better than including the current edge pair
also in the check for branch points because the effort involved in the latter is greater. Chou
[16] finds the points with LMPC across the entire boundary of the domain. Here, in contrast,
the footpoints on the same boundary segment at a branch point are used to localise the region
over which the point with LMPC has to be determined.
4.3.4 Handling a reflex corner
A reflex corner is represented as a set of circular arcs with zero radius. Associated with
each circular arc segment is a normal. The normals are assigned to these segments in order
so that the change in the normal while crossing the reflex corner is divided across these
segments (see Figure 4.4). Tracing of points on the MAT for a pair consisting of an edge
and a reflex corner proceeds in the same manner as for tracing the MAT for a pair of edges.
Chapter 4. MAT of planar domains with curved boundaries 50
The check for the presence of a branch point has to be done here as well, since it is possible
to encounter a branch point as shown in Figure 4.4(a) (point G is one such point). Figure
4.4(b) shows the MAT segments that emanate from branch point G.
4.3.5 Handling smooth junctions between edges
The domain may contain edges that are tangential, that is, the junction between two edges is
smooth. In such cases, the tracing procedure does not terminate when the smooth junction
(end of the edge) is reached as it is not a convex vertex. The tracing procedure continues
with the neighbouring tangential edge and the other edge in the current pair (Figure 4.5(a)).
When this neighbouring tangential edge has the other edge in the current pair as its
other neighbour (refer Figure 4.5(b), where DE is the edge), it indicates that there is a
point on this edge where the curvature is locally maximal. This is because of the following
reasons: Since a single boundary segment is being traced (from either end), there can neither
be a convex corner nor a branch point with any other boundary segment. Since this MAT
segment has to terminate (as the domain is bounded), there has to be a point with locally
maximal positive curvature in the boundary segment (point ‘L’ in Figure 4.5(b)). The MAT
segment is now traced from the last MAT point traced to the centre of curvature at this
point (point ‘P’ in Figure 4.5(b)). Note however that there can be branch points due to
failure in the curvature criterion. In this case, there will be more than one point with LMPC
in the boundary segment and each of these terminal points can be obtained by the procedure
described earlier.
In other cases, termination of a MAT segment occurs at a branch point or convex
corner as described earlier.
4.3.6 Termination of the algorithm
The algorithm ends when all the convex vertices have been visited by the tracing step and
no edge pairs remain to be traced at any branch point.
4.4 Illustration of the algorithm
In this section, we use a simple example (Figure 4.6) to illustrate the procedure to construct
the MAT. Tracing starts at a convex vertex, ‘A’ (Figure 4.6(a)). For every footpoint on
edge AB (obtained by incrementing the parameter by the tracing step size) the tracing step
computes the corresponding footpoint on edge AG and the point on the MAT, Pi. In Figure
Chapter 4. MAT of planar domains with curved boundaries 51
C
D
A
B
E LP
A
B C
DEF
G
(a) (b)
Figure 4.5: Tangential edges.
4.6(b), the distance criterion is violated at point P′as the disk corresponding to this point
cuts the edge FG. The procedure then uses the bisection method between this point and
the previous point found on the MAT to identify the branch point B1 (Figure 4.6(c)). The
boundary segments corresponding to the branch point are AB, AG and FG. Tracing now
continues with the pair AG and FG. As these two edges share a convex vertex G, no check
for branch point is required and the tracing of the MAT segment ends at G (Figure 4.6(d)).
The tracing procedure next starts at B1 with the other possible pair of edges, namely, AB
and FG (Figure 4.6(e)).
Tracing with this pair continues till the point N1 on the MAT where one of the foot-
points (for the edge AB) reaches the limiting value (Figure 4.6(e)). This end point is also
a concave vertex that has been represented as a sequence of zero length edges with normals
uniformly varying between the normals to edges AB and BC at B. The procedure now traces
with pairs formed by the edge FG and each of these zero length edges at B in order to obtain
the segment N1-B2 of the MAT (Figure 4.6(f)). As explained earlier, B2 is identified as the
branch point. The procedure now traces the segment B2-F of the MAT using the edge pair
FG and EF (Figure 4.6(g)). Tracing starts again from the branch point B2 and proceeds
with the remaining dummy edges representing the concave vertex B and the edge EF. After
the last of the segments in the list of dummy edges is reached (at the point N2 on the MAT
in Figure 4.6(h)), the tracing continues with the edge pair BC and EF. Tracing of this pair
stops when BC reaches the limiting parameter value (at the MAT point S1 in Figure 4.6(i)).
Since C is a smooth corner, tracing of MAT continues between the pair CD and EF. Tracing
with this pair stops with the detection of the branch point B3 (Figure 4.6(j)) and the MAT
Chapter 4. MAT of planar domains with curved boundaries 52
iP
u2u1
P’u1
u2
u3
B1 P’
B1
N1B1B2
N1B1
N1B1B2 N2
N1B1B2
N2N1B1
B2
S1
N1B1B2
S1
B3
N2 N1B1
B3
B2
S1
N2 N2N1B1
B3
B2
S1
A B
C
D E
FG
BA
C
D E
FG
A B
C
D E
FG
A B
C
D E
FG
A B
C
D E
FG
A B
C
D E
FG
A B
C
D E
FG
A B
C
D E
FG
A B
C
D
FG
E
A B
C
D E
FG
A B
C
D E
FG
A B
C
D E
FG
(a) (b) (c)
(d) (e)
(g) (h) (i)
(f)
(j) (k) (l)
Figure 4.6: Illustration of the algorithm.
Chapter 4. MAT of planar domains with curved boundaries 53
segment B3–D is traced using the edge pair ED–DC (Figure 4.6(k)) . The procedure again
returns to the branch point B3 to trace with the other possible edge pair DE–EF (Figure
4.6(l)). When the tracing with this edge pair ends at point E, there are no edge pairs at any
branch point left to be traced and there are no convex vertices that have not been visited.
The procedure therefore terminates (Figure 4.6(l)).
4.5 Results and discussion
The algorithm described has been implemented and this section presents the results obtained
for some typical planar domains. The input to the algorithm is the B-rep of the object.
Curved entities are represented using rational B-Spline curves. The output is the set of
MAT segments and each MAT segment is available as either a set of points or a B-Spline
curve.
MAT obtained for some typical free-form planar objects are shown in Figures 4.7–
4.13. The algorithm is able to generate the MAT for objects with complex boundary profiles
(Figures 4.7, 4.8), concave vertices (Figure 4.9), spiral shaped (Figure 4.10) and multiply-
connected objects (Figures 4.11, 4.12), and objects with smooth corners (Figure 4.13).
Smooth vertices are marked by dots to distinguish the tangential edges in Figure 4.13. Note
that the MAT is generated even for domains with constricted passages and sharp changes in
the curvature along the boundary (Figure 4.8).
Table 4.1 shows the time taken for generating MAT for some of the figures. The
implementation is on a PIII machine with 256MB RAM on the RedHat Linux platform.
OpenGL (version 1.2) library functions have been used for display. The step size for tracing
and checking for branch points are 0.001 and 0.01 respectively. Figures 4.14 and 4.15
show the MAT for the object in Figure 4.8 with step sizes for tracing set at 0.01 and 0.1
respectively. Table 4.2 shows the time taken for generating MAT with different step sizes
for the object shown in Figure 4.8.
4.5.1 Discussion
Completeness
Since the algorithm traces the MAT segment by segment, and also since each segment starts
from a branch point (except the starting one) with a predetermined direction (as a parameter
in the edge to the left of MAT always decreases and that to the right always increases),
directed graphs can be used to represent MAT. The graph representing the MAT is acyclic
Chapter 4. MAT of planar domains with curved boundaries 54
Figure 4.7: MAT for test object 1.
Figure 4.8: MAT for test object 2.
Chapter 4. MAT of planar domains with curved boundaries 55
Figure 4.9: MAT for test object 3.
Figure 4.10: MAT for a spiral shaped object.
Chapter 4. MAT of planar domains with curved boundaries 56
Figure 4.11: MAT for a multiply-connected object.
Figure 4.12: MAT for another multiply-connected object.
Chapter 4. MAT of planar domains with curved boundaries 57
Figure 4.13: MAT for an object having tangential edges.
Figure no. No. of MATsegments
Time (inseconds)
4.7 21 34.8 9 24.9 15 24.11 32 6
Table 4.1: Time taken for generation of MAT for typical objects
for multiply-connected domains. Figure 4.16 shows the MAT for a multiply-connected
object and its representation as a directed acyclic graph (dag). The first node represents
the starting convex corner and the end nodes (no connecting segment from these nodes)
represent the remaining convex corners and centres of curvature of points with LMPC, while
the interior nodes represent the branch points.
The completeness of the algorithm can be derived from the graph structure of MAT.
‘Completeness’ here refers to the generation of all the segments constituting the MAT. The
starting and end nodes in the graph representing the MAT correspond to convex corners and
centres of curvature of points with LMPC present in the object. Each branch of the graph
corresponds to a MAT segment. Each downward traversal of a branch corresponds to the
Chapter 4. MAT of planar domains with curved boundaries 58
Figure 4.14: MAT for test object 2 with step size 0.01.
generation of a MAT segment. The algorithm starts at A (Figure 4.16(b)) and proceeds
toward 1 generating the segment A–1. From 1 the downward traversal generates the MAT
segments 1–2 and 1–4. Then it starts from 2 and generates 2–B and 2–3. From 4, MAT
segments 4–3 and 4–D are generated. Finally 3–C is generated. A topological sort [72] (a
variant of the depth-first search) lists all the convex corners in the object indicating that all
the MAT segments have been generated.
It may be noted that when a boundary edge has constant curvature portion, centre of
curvature of the point with locally maximal curvature is identified and used as a terminal
point for the MAT segment that is being traced.
Stability
The step size for tracing is chosen to be smaller than the smallest feature in the domain
(tracked through the length of boundary segments) so that no features are missed. Presently,
the implementation uses a step size of 0.001 (for domains scaled to 1) or one hundredth of the
smallest edge, whichever is smaller, for tracing. This choice gives a fine approximation to the
MAT with reasonably real-time response (order of seconds for the parts shown in the results
section). A larger step size will result in a coarser approximation but faster performance.
The step size for checking for branch points is taken to be an order of magnitude greater
than the step size for tracing.
Chapter 4. MAT of planar domains with curved boundaries 59
Figure 4.15: MAT for test object 2 with step size 0.1.
Figure no. step size Time (inseconds)
4.8 0.001 24.14 0.01 14.15 0.1 1
Table 4.2: Time taken for generation of MAT for various step sizes
The analysis of the algorithm with respect to the effect of numerical errors due to finite
precision indicates that the algorithm is stable with respect to round-off errors. The MAT
algorithm was implemented with single and double precision and there was no difference in
the result to within the tolerance used (10E − 6). The choice of branch point step size is
critical. A smaller value ensures correctness at the cost of greater effort. A larger value
may result in overshooting more than one branch point. One option could be to use a larger
branch point step size and backtrack after one branch point has been identified to ensure
that no other branch point has been missed. If the branch point step size is chosen correctly,
the algorithm is robust enough to capture an overshot branch point. The branching decisions
are therefore, made correctly. In practice, we have found that a value ten times the tracing
step size is appropriate for the branch point step size. It must be mentioned that as long
Chapter 4. MAT of planar domains with curved boundaries 60
A
B C
D
2 3
41
A
3 D
C
2
1
4
B
(a) (b)
Figure 4.16: Representation of MAT.
as the feature size constraint is not violated, even a coarser step size for tracing yields the
correct connectivity between the MAT segments.
Correctness
The proposed algorithm does not trace the bisectors for all the boundary pairs and then trim
them. Rather it traces the MAT segments directly by tracing the boundary of the domain.
As the points on the MAT determined are based on the definition of the MAT, the result
is always correct. Branching from one pair of boundary segments to another is also based
on the continuity of the MAT. The graph structure used both for tracing the boundary
and storing the MAT ensures completeness. As mentioned earlier, numerical tracing of
bisectors cannot be avoided and therefore, the proposed technique is as accurate as those
based on tracing bisectors. It is also believed that the trimming of bisectors requires as
much computation if not more than generating them to obtain the MAT [65]. Also, the
techniques based on tracing the bisectors have to subject the MAT segments generated to
the curvature criterion [16]. The algorithm does not have the problems of degeneracy as
mentioned by Kim et al. [10]. Degeneracy refers to the need for processing many branches
in the algorithm, each dealing with an exception to the main algorithm [10]. The main steps
of the algorithm described are those of tracing the simplified segment, checking for a branch
point and handling reflex corners. Each step in itself has no exceptions to handle and works
for the general case.
Chapter 4. MAT of planar domains with curved boundaries 61
B1
B2
DA
B C
E F
H G
P
B1
DA
B C
E F
H GP
(a) (b)
Figure 4.17: Branch point is obtained only by intersection of bisectors [16].
Complexity
Let ‘n’ be the number of boundary segments and ‘N ’ be the number of points on each
boundary segment. The complexity of the main computational tasks in the procedure are
O(1) for computing the intersection of two normals and O(n) for implementing the distance
check. The complexity for finding the part of the MAT corresponding to a single boundary
edge is O(Nn) and for the complete domain is O(Nn2), which is the worst case complexity
of the algorithm.
Comparison with Chou’s [16] method
Chou’s method is a bisector-based method whereas the present algorithm traces the MAT
along the boundary of the domain. This facilitates the use of line–line intersection technique
rather than the complex curve–curve intersection as required by Chou [16]. Moreover, this
algorithm can handle multiply-connected objects since a dag structure is used rather than a
tree structure. Also, Chou identifies the branch point of a bisector segment by intersection
with other bisector segments originating from another starting point and not by finding
other boundary segments violating the distance check. For example, the limit point P (refer
Figure 4.17(a)) of the bisector B1 is identified when the bisector B2 which starts from the
convex corner ‘C’ intersects B1, whereas the actual limit point P (shown in Figure 4.17(b))
has to be identified by finding the third equidistant boundary segment (which is GH here).
This is perhaps another reason why the algorithm in [16] cannot handle multiply-connected
objects. Tracing MAT along the boundary and intersecting normals also alleviates some of
the round-off errors involved in finding the intersection of bisectors as shown in Figure 2.2.
Chapter 4. MAT of planar domains with curved boundaries 62
4.6 Summary
An algorithm for generating the medial axis transform (MAT) for planar domains with
free-form boundaries has been described. The algorithm generates the MAT by a tracing
technique that marches along the object boundary rather than the bisectors of the boundary
entities. Criteria derived from the definition of the MAT are used to generate the points
on the MAT and to identify the branch points. The algorithm is shown to be robust and
correct. A smooth approximation to the desired accuracy is obtained by interpolating the
points obtained on each simplified segment of the MAT. Results of implementation on typ-
ical domains, including multiply-connected domains have been provided. The next chapter
presents an algorithm for extruded/revolved free-form objects using the 2D MAT algorithm
presented in this chapter. In chapter 6, an extension of the 2D MAT algorithm to construct
MAT for 3D objects bound by free-form surfaces has been presented.
Chapter 5
MAT of 2.5D objects with free-formboundaries
5.1 Introduction
In this chapter, the problem of generating a MAT for solids with free-form curved entities,
obtained by extrusion or revolution about an axis of a profile has been addressed. MAT for
such objects is generated from the 2D MAT of the profile being extruded or revolved. The 2D
MAT is obtained by the tracing algorithm described in chapter 4. The proposed algorithm
uses the exact representation of the part and generates a Discrete-Exact representation of
the MAT. An approximation (to within a defined tolerance) of the MAT can be obtained by
fitting the points with rational spline curves and surfaces, as appropriate. It is shown that
the MAT points of the profile face are sufficient to determine the topology and geometry of
the MAT of the above class of solids. The algorithm is also applicable to objects generated by
multiply-connected planar profile faces. This chapter is structured as follows: Terminology
used in generating MAT on extruded or revolved objects is described in the next section.
An overview of the algorithm is presented in the following section. Some theoretical results
that form the basis of the algorithm are derived in the subsequent section. Details of the
algorithm are then presented followed by results of implementation. The chapter concludes
with a discussion of the results and the algorithm.
5.2 Terminology
Start (end) profile plane (SPP (EPP)): The plane containing the profile at the start (end)
of the extrusion or revolution is referred to as the start (end) profile plane. Without loss of
generality in this chapter, it is assumed that the SPP is the xy-plane at origin.
63
Chapter 5. MAT of 2.5D objects with free-form boundaries 64
X
Y
Z
L
E
Start Profile Plane
Direction of Extrusion
End Profile Plane
Extruded face
Profile edge
Figure 5.1: Terminology for extruded objects.
Chapter 5. MAT of 2.5D objects with free-form boundaries 65
Profile edge: Object edges in the profile plane are called profile edges. Edges in the
SPP are called start profile edges (SPE) and, in EPP are called end profile edges (EPE). In
general, profile edge implies SPE unless otherwise stated.
Profile face: A profile face is a closed loop of profile edges. It can also be multiply-
connected. A profile face at SPP is called start profile face (SPF) and that at EPP is called
end profile face (EPF). In general, profile face implies SPF unless otherwise mentioned.
In this chapter, the profile face is assumed to lie in the xy-plane. In the case of extruded
solids the profile is extruded along the z-axis to obtain the solid, and in the case of solids of
revolution, the profile is revolved about the y-axis. The profile face is assumed to not contain
the axis of revolution. The span of revolution is assumed to be less than 360◦. Handling
solids of revolution without profile faces (span of revolution equal to 360◦) is discussed later.
Extruded (revolved) face: The face formed by extruding (revolving) a profile edge is
called an extruded (revolved) face. This face is bound by profile edges from both profile
planes in one direction and straight lines (circular arcs) in the other direction.
Parallels and meridians: In a solid of revolution, the circles described by the points on
profile edges are called the parallels and the various positions of the profile edges are called
the meridians.
Ruling: The straight line in the extruded face formed by a point on the profile edge is
called a ruling.
Rmax: This is the maximum radius value of the MAT on the profile face.
Figure 5.1 illustrates some of the above terminology. Figure 5.2(b) shows the ruling.
Figure 5.3(b) shows the parallels and meridians.
5.3 Overview of algorithm
The proposed algorithm uses the 2D MAT of the profile (that is extruded or revolved) to
construct the 3D MAT of the extruded solid or the solid of revolution. Most of the entities
forming the 3D MAT are obtained by applying the same transformation on the 2D MAT as
is applied to the profile. The critical task is to identify the limiting entities of the 3D MAT
(seam points, junction points, seam and skeletal edges) correctly. The algorithm identifies
these (see section 3.4 in chapter 3) from the limiting entities in the 2D MAT (branch
points, normal points and points with LMPC) of the profile. This is possible because the
two transformations considered (to obtain the solid) have the following characteristics along
the span of extrusion or revolution:
Chapter 5. MAT of 2.5D objects with free-form boundaries 66
Z
X
Y
u
w
a
b
c
Direction of ExtrusionE
Profile edge p(w)
on the profile edgeNormal at a point
Ruling
d
(a) (b)
Figure 5.2: Normal vector on extruded face.
Chapter 5. MAT of 2.5D objects with free-form boundaries 67
Profile edge
Direction of a normal
Parallels
Meridians
Direction of normalsthrough revolution
(a) (b)
Figure 5.3: Normals at the surface of revolution.
• The normal to the extruded/revolved face at a point on the profile face is along the
same direction as the normal to the corresponding profile edge at that point.
• The principal curvatures at any point on an extruded (or revolved) face are the cur-
vature at the corresponding point on the profile edge and the curvature at the rul-
ing/parallel respectively.
These two characteristics are derived for the two types of solids based on their transformation.
The algorithm starts with the 2D MAT on the start profile face (SPF) of the object.
The maximum value among the radii associated with the 2D MAT points is then identified.
This is then checked against the span of extrusion or revolution to determine whether it is
possible to generate the 3D MAT from the 2D MAT.
The junction points in the 3D MAT are first identified using the branch points of the
2D MAT. It is proved that the branch points of the profile faces are sufficient to completely
determine the junction points. Identification of junction points using branch points avoids
the need to perform a distance check at all seam points and with all faces of the object.
This reduces the computational complexity. Points on the seam are then generated using
Chapter 5. MAT of 2.5D objects with free-form boundaries 68
the normal points on the 2D MAT of the profile face (both ends). This is accomplished
by transforming the normal point on the 2D MAT of the SPF and the EPF. Note that
the MAT points corresponding to the EPF can be obtained by transformation of the MAT
points on the SPF by the span of the object. Alternately, the 3D MAT points from the
EPF can be obtained using the 2D MAT points from the SPF itself. The critical step is the
computation of the span of transformation (length of extrusion or the angle of revolution).
The span of transformation is computed based on the radius function of the 2D MAT. It
is shown that the seam points so obtained satisfy the distance criterion and the curvature
criterion. The algorithm therefore provides a simple method to obtain the MAT. Simplicity
of the proposed method is due to the elimination of complex and computationally expensive
numerical procedures that are normally associated with MAT.
Identification of junction points using the branch points generates three seams (if the
branch point is not a degenerate one). This is because a non-degenerate branch point has
three MAT segments. Since a non-degenerate junction point has four seams, the fourth seam
is identified next. The fourth seam is obtained by finding the ruling or parallel corresponding
to the junction point. The span of the transformation to identify the ruling/parallel is equal
to the span between the junction point derived from one profile face and its corresponding
junction point derived from the other profile face. This is repeated for all junction points till
all the seams associated with each junction point are obtained. However, a similar procedure
can be used to handle degenerate branch points that produce degenerate junction points and
no special procedures are required to handle such cases.
For profiles with free-form entities, 2D MAT segment can terminate at one of the
following – a convex vertex, a branch point, or the centre of curvature of a point with
LMPC. An end point of a 2D MAT segment that is not a branch point or a convex vertex,
is the centre of curvature of a point with LMPC ([16], chapter 4). The rulings/parallels
corresponding to these limit points in the 2D MAT are the principal curves in the notation
of Turkiyyah et al. [53]. The maximal spheres corresponding to these points have a single
point contact and the centres of such spheres form the skeletal edge. In our procedure, the
skeletal edge is obtained directly by transforming the limit point (which is the centre of
curvature corresponding to the point with LMPC in the profile edge) on the 2D MAT.
The algorithm terminates when all the limit points in the 2D MAT have been processed.
Interpolation of the seam points generates the seams. Sheets formed by seams between
junction points are obtained by transforming the seams and the remaining sheets are obtained
using a surface interpolation scheme. Seams and sheets can be represented as NURBS curves
Chapter 5. MAT of 2.5D objects with free-form boundaries 69
and surfaces respectively.
5.4 Theoretical background
It can be shown that the normal to the extruded/revolved face at a point on the profile
face is along the same direction as the normal to the corresponding profile edge at that
point. Moreover, it can also be shown that the normal at any other point on the extruded
or revolved face is obtained by a similar transformation of the normal at the corresponding
point on the profile edge.
Appendix B.1 states the above result as a theorem and provides a formal proof for
the same. Theorem .1 follows from the results for parallel transport in differential geometry
[73]. However, a formal proof has been derived for the parametric representation of the
profile and surface for the sake of completeness.
The significance of the above results is that a footpoint on the 2D MAT when trans-
formed (either by extrusion or revolution) is a potential touchpoint for the 3D MAT with
the transformed centre of the disk in the 2D MAT as the centre of the maximal ball.
It has been shown [73] that for a surface of extrusion or revolution, the lines of curvature
are the parallels and the meridians. Appendix B.2 presents the derivation of the principal
curvatures for the objects of extrusion and also for the surface of revolution represented
parametrically for the sake of completeness. Figure 5.4 shows the two principal planes
(containing the minimal curvature and maximal curvature curves respectively) at a point ‘p’
on an extruded surface.
Corollary 5.1 The curvature criterion is automatically satisfied at the 3D MAT point ob-
tained by transforming a 2D MAT point on the profile plane.
Proof for extruded objects
When k1 > 0 (refer Appendix B.2), it implies that maximal positive curvature at any point
on the surface of extrusion is the same as that on the corresponding profile edge (given by
‘k’). When k1 ≤ 0, the curvature criterion is not applicable as it is defined only for regions
of positive curvature [16]. Hence the corollary. 4
Proof for objects of revolution
Curvature criterion needs to be checked only around regions of maximal positive curvature.
Hence only the principal curvature lines on the surface need to be considered. For surface of
Chapter 5. MAT of 2.5D objects with free-form boundaries 70
p
2
Plane containing k1
Plane containing k
N
Figure 5.4: Geometric interpretation of normal curvature at p.
revolution the principal curvature lines are the meridians (profile) and the parallels respec-
tively (Appendix B.2). For a point on the profile, curvature criterion need not be checked
against the principal curvature along the meridian as the presence of 2D Mat ensures against
violation. For any point on the profile, the curvature is constant along the parallel (both
sintheta and x are constant along the parallel (refer Appendix B.2)). For the failure of
curvature criterion to happen with respect to the curvature along the parallel, the radius
of the maximal ball must be greater than the radius of curvature along the parallel. For a
closed domain, this is not possible. Therefore the curvature criterion will not be violated
along this principal direction as well. The corollary follows. 4The given theoretical background along with the above corollary 5.1 form the basis of
the procedure to construct the 3D MAT from the 2D MAT of the profile face.
5.5 Algorithm details
The algorithm finds the junction and seam points from the points on the 2D MAT of the two
profile faces. The seam points here belong to the seam that is either between the junction
points and convex vertices or between junction points and other limit points (corresponding
to points with maximal curvature) and are identified for each plane. Other limit points
of the 3D MAT (corresponding to points with maximal curvature) are then identified. The
Chapter 5. MAT of 2.5D objects with free-form boundaries 71
Maximal disk
r
r
r r
d
e
Maximal sphere
a
a’
b
b’
c’
c
Figure 5.5: Junction points using branch points for extruded objects.
remaining seams (corresponding to junction points from either profile planes) and the skeletal
edges at the limit points are identified. The algorithm terminates when all the limit points
in the 2D MAT have been processed and all the seams at each junction point have been
determined. The following three main steps in the algorithm are explained in detail.
• Identification of junction and seam points;
• Identification of other limit points;
• Seam identification between junction points.
5.5.1 Identification of junction and seam points
The junction points corresponding to the branch points in the profile face are identified first.
As mentioned earlier, the junction points are obtained by the transformation of the branch
points in the 2D MAT of the profile face. In order to do so, the span of this transformation
is identified first. The span is identified from the radius function of the 2D MAT.
When the transformation is extrusion, it is easy to see that the span of extrusion is
the radius of the disk at the branch point in the 2D MAT. This is illustrated in Figure 5.5.
Point ‘d’ in the figure corresponds to a branch point of the 2D MAT of SPF and its
corresponding footpoints are a, b and c. The maximal disk at the branch point is also shown.
Chapter 5. MAT of 2.5D objects with free-form boundaries 72
Extrusion of the branch point along the extrusion direction by a distance equal to the radius
of the disk, results in point ‘e’. To prove that point e is indeed a junction point in the 3D
MAT, consider the extrusion of the trimmed normals at the three footpoints – ‘ad’, ‘bd’ and
‘cd’ by the same distance to obtain the points a’, b’ and c’ respectively. Since the extrusion is
by the radius of the disk at d, d’ is the centre of a sphere. By theorem B.1, the touchpoints
of this sphere (points a’, b’, c’ and d) on the solid are along the normals to the respective
faces. Therefore, the point ‘e’ is a junction point. It may be noted that the curvature
condition is automatically satisfied by corollary 5.1. A similar procedure is applicable for
branch points in EPF but the extrusion is done along the opposite direction. The MAT
points corresponding to the EPF can be obtained by transformation of the MAT points on
the SPF by the span of the object. Alternately, the junction points from the EPF can be
obtained using the branch points from the SPF itself. For example, in the case of extrusion,
if the co-ordinates of a junction point obtained from SPF is (x, y, r) where ‘r’ is the span of
transformation, then the co-ordinates of the junction point from EPF is (x, y, L− r), where
‘L’ is the length of extrusion. A similar procedure holds good for objects of revolution also.
This procedure avoids the complex distance check required to identify a junction point.
Span of transformation for revolution
The span of transformation for obtaining the junction points when the solid is obtained by
revolving the profile face is derived as follows. Let m be the branch point in 2D MAT (Figure
5.6(a)) with its footpoints being a, b and c. Let the branch point m and the normals am,
bm and cm be revolved along the path of revolution to obtain the points m’, a’, b’ and c’
respectively. From theorem B.1, a sphere centred at m’ has the points a’, b’ and c’ as its
touchpoints (Figure 5.6(b)). Note that unlike in extruded objects, point m does not become
a touchpoint. This is because the normals are moved along the path of revolution (which is
not a direction perpendicular to the profile face). For this sphere to be the maximal sphere,
it is easy to see that the shortest distance between m’ and the SPP must be the radius ‘r’
of the maximal disk at m. Therefore, the span of revolution that ensures that the shortest
distance between ‘m’ and the SPP is ‘r’ is to be determined. Let the point on SPP that is
closest to m’ be d’. Since the SPP is the xy plane at origin, it follows that, r = | − xsinθ|(from equation B.7), where θ is the angle of revolution. Hence, θ = arcsin(r/x) is the
required span of transformation.
Since ‘r’ is the radius of a maximal disk (contained in the profile face) and the axis of
revolution is not in the profile face, ‘r’ can never be greater than ‘x’.
Chapter 5. MAT of 2.5D objects with free-form boundaries 73
rr
rm
a
b
c
Maximal disk
yz−plane
m’d’b’
m’a’ r r
rr
c’
rp
q
Maximal sphere xy−plane
Path of revolution
(b)(a)
Figure 5.6: Required span of revolution.
Chapter 5. MAT of 2.5D objects with free-form boundaries 74
r rr
rr
c
d
rb’
a
a’ b
Figure 5.7: Seam points using normal points for extruded objects.
Proposition 5.1 The junction points are completely determined from the branch points of
the profile faces at both the profile planes.
Proof: Let there be a junction point (non-degenerate) which does not correspond to
the branch point. This junction point has by definition four touchpoints on the object. An
inverse transformation of the maximal sphere at the junction point by the same span as was
used to obtain the junction point would yield a sphere centred at a point on the profile plane.
Projection of this sphere on the profile plane yields maximal disk that has three footpoints.
Hence, the corresponding point in the profile face has three equidistant profile edges which
has to be a branch point by definition. Hence the proposition. 4
The above proposition indicates that it is sufficient to use the branch points of both
profile faces to identify junction points and this is complete i.e. there cannot be any other
junction point. This is the reason why each seam point is not subjected to the distance check
to identify junction points.
Finding seam points
Points on the seam between the junction points identified above are obtained by transforming
the normal points in the 2D MAT by spans as identified above. It has been shown that both
Chapter 5. MAT of 2.5D objects with free-form boundaries 75
the distance and curvature criterion are satisfied at the 3D MAT points so obtained. The only
thing remaining to be proved is that each point so obtained has exactly three touchpoints
and therefore is a seam point.
With reference to Figure 5.7, let the point ‘c’ be a normal point in the 2D MAT of
the profile face. The corresponding footpoints are ‘a’ and ‘b’ and the radius of the disk is r.
From theorem B.1, transformation of the two footpoints yields the touchpoints of a sphere
of the same radius centred at a point obtained by transforming the centre of the disk. The
sphere therefore has three touchpoints and the centre of the sphere therefore is a seam point.
By a mere transformation of the normal points of MAT on the profile face, a point
on the seam satisfying the distance criterion is obtained. This process is repeated from the
EPF to generate seam points from the normal points of the MAT on the EPF. Alternately,
the seam points from the EPF can be obtained using the normal points from the SPF itself
in a similar manner to the generation of the junction points, as described earlier. It may
be noted that the span of transformation identified above to obtain the junction and seam
points also imposes a lower bound on the span of transformation used to obtain the solid.
If the distance through which the profile face extruded is less than 2 ∗Rmax (alternately the
angle through which the profile face is revolved is less than 2 ∗ arcsin(Rmax/x), where x is
the corresponding x-coordinate value of that MAT point), the above procedure to identify
the junction points and seam points will not work.
In the case of extruded solids, the sphere centred at the seam point obtained by extrud-
ing the normal point is not maximal only if the other profile face is less than the diameter
of this sphere away from the profile face being considered. A similar argument works for
the case of revolved solids. It is sufficient to consider Rmax because all other disks (and
consequently, the spheres) are smaller.
At the beginning of the algorithm, it is checked if the span of transformation of the
solid is greater than the respective lower bounds.
As long as the extruded distance is greater than twice the maximum radius of MAT
of the profile face, the above procedure identifies non-degenerate junction points. When the
extruded distance is equal to 2 ∗ Rmax, the algorithm generates degenerate junction points
and seams. Degenerate cases also arise when the radius value at a branch point becomes the
maximum radius value of MAT on the profile face. Similarly, degeneracies happen in the
case of objects of revolution if the angle of revolution is equal to the corresponding lower
bound.
Chapter 5. MAT of 2.5D objects with free-form boundaries 76
Maximal sphere
C
A
B
E
D
A1
C1
D1
E1
LMPC
B1
Skeletal edge
with single pointcontact
P
P1
Principal curve
Figure 5.8: Smooth case and violation of curvature criterion.
5.5.2 Finding other limit points
A 2D MAT segment terminates at one of the following – a convex vertex, a branch point, or
the centre of curvature of a point with LMPC. When the limit point is a convex corner, the
convex vertex also becomes a termination point for the 3D MAT. Identifying junction points
corresponding to the branch points has already been described above. This section describes
the identification of the entities in the 3D MAT corresponding to the centre of curvature of
a point with LMPC. In such cases, the maximal disk has a single footpoint on the boundary
i.e. the maximal disk touches the boundary at only one point.
The 3D limit point corresponding to this 2D limit point is obtained as in the other
cases by transforming the 2D limit point as described earlier. Similar to the seam between
junction points there are skeletal edges between such 3D limit points (obtained from the two
profile faces). The skeletal edge is obtained as a ruling (or parallel for solid of revolution)
between the limit point identified for the two profile faces (Figure 5.8).
The touchpoints corresponding to the points on the skeletal edge are points of extremal
maximal normal curvature [53].
5.5.3 Seam identification between junction points
At this instance, all the junction points have been identified but all the seams connected to
the junction points have not been identified. Figure 5.9(a) shows the junction points q, q’,
Chapter 5. MAT of 2.5D objects with free-form boundaries 77
S1
S2
c2
c1
Maximal sphere
qc
a
b
q’
s
s’
pq
Maximal sphere
Maximal disk
q’
s
s’
(a)(b)
Figure 5.9: Seam between junction points.
s and s’ and the seams (in thick lines) that have been obtained by transforming the branch
points and normal points of 2D MAT so far.
The junction points at this stage have only three seams each, as they are obtained from
branch points with three footpoints. The fourth seam is obtained as a ruling (or parallel
for solid of revolution) between the corresponding junction points in the two profile faces
(Figure 5.9(b)). These junction points are then flagged to avoid duplication. If the branch
points in the 2D MAT have more than three footpoints then the corresponding junction
point has more than four touchpoints. In such cases also, the procedure works and results
in degenerate seams (more than three touchpoints).
Proposition 5.2 Center of the maximal sphere at a junction point (obtained from a branch
point at SPP) generates points on the seam when the sphere is moved along the path of trans-
formation (extrusion or revolution) till it reaches a corresponding junction point generated
by EPP.
Proof: At the junction point the sphere has four touchpoints. Transforming the centre
of the sphere along the path of transformation of the profile face reduces the touchpoints by
one as the sphere no longer touches the profile face. As the other three touchpoints continue
to be touchpoints (by theorem B.1), the transformed centre now has only three touchpoints
Chapter 5. MAT of 2.5D objects with free-form boundaries 78
Figure 5.10: MAT for test object 1.
and therefore is a point on the seam. 4
5.6 Results and discussion
The algorithm described has been implemented and this section presents the results obtained
for some typical objects. Profile edges are represented as rational B-spline curves, the ex-
truded faces are represented by the equation for a ruled surface and the revolved faces are
represented by the corresponding surface of revolution equation. Representation of seams
and sheets obtained are discussed later.
MAT obtained for some free-form as well as polygonal extruded objects are shown in
Figures 5.10 to 5.14. The algorithm is able to generate MAT for objects with complex
boundary profiles (Figure 5.10), reflex edges (Figure 5.11), multiply-connected profiles
(Figure 5.12), polygonal extrusion (Figure 5.13) and smooth edges (Figure 5.14). Figure
5.15 shows the MAT for an object of revolution. Figure 5.16 shows that this algorithm can
handle objects having degenerate junction points.
Table 5.1 shows the time taken for generating 3D MAT for some of the figures. This
time includes the time for generating the MAT on the profile faces. The implementation is
Chapter 5. MAT of 2.5D objects with free-form boundaries 79
Figure 5.11: MAT for test object 2.
Figure 5.12: MAT for a multiply-connected object.
Chapter 5. MAT of 2.5D objects with free-form boundaries 80
Figure 5.13: MAT for a multiply-connected polyhedral object.
Figure 5.14: MAT for an object having smooth boundary and LMPC in the profile edges.
Chapter 5. MAT of 2.5D objects with free-form boundaries 81
Figure 5.15: MAT for an object of revolution.
Figure 5.16: Object having a degenerate junction point.
Chapter 5. MAT of 2.5D objects with free-form boundaries 82
Figure no. Numberof junctionpoints
Time (inseconds)
5.10 12 35.11 26 55.12 32 65.15 6 2
Table 5.1: Time taken for generation of MAT for some 2.5D typical objects
on a PIII machine with 256MB RAM.
5.6.1 Discussion
Accuracy of the 3D MAT generated depends on
• the step size used for generating the 2D MAT and
• the definition of the sheets from the seams.
Each seam is represented as a rational spine curve. The sheets which have the junction
points as its limits can be represented as surfaces of extrusion or revolution depending on
the transformation used to generate the solid. The geometry of the other sheets can be
computed since the defining entities (portions of two faces of the solid) of each sheet are
known. Assuming a touchpoint on one boundary entity, the corresponding touchpoint on
the other boundary entity can be identified numerically and thereby, the corresponding MAT
point itself. Since the bounding curves of the sheet are known, a suitable surface interpolation
scheme can then be used to identify the geometry of that sheet.
The completeness of the algorithm is argued as follows. ‘Completeness’ refers to the
generation of all seams in the 3D MAT. By proposition 5.1, all junction points are obtained
by processing all the branch points in the 2D MAT. Subsequent steps generate all the seams
at each junction point. Therefore all the seams and junction points are determined. The
complexity of the algorithm is quite obviously O(n2), where ‘n’ is the number of boundary
entities (edges and reflex vertices) present in the SPE.
When the solid is obtained by revolving a profile through 360◦, the junction points,
seams, other limit points and the sheets can be identified as described above. Since the two
profile faces are not present in the solid, the 3D entities that correspond to the two faces
Chapter 5. MAT of 2.5D objects with free-form boundaries 83
(convex end points, junction points and seams between junction points that are obtained
from a face) are not present in the final 3D MAT. In this case therefore, seams need not
be generated. In the implementation, only the junction points, end points and other limit
points in the profile face are identified and these are revolved to form the sheets.
The proposed algorithm does not use any differential equation for generating seam
and junction points. It exploits the nature of the solids under consideration and uses simple
transformations to find the MAT entities. Therefore, no complex numerical procedures need
to be used. As the points on MAT determined are based on the definition of MAT, the result
is always correct. The proposed technique is more accurate than differential equation based
methods as it involves only minimal numerical procedures. Moreover, this method is efficient
since a distance check is not done on each seam point to identify junction points. It is evident
from the table 5.1 that the time taken for generating 3D MAT using this algorithm is of the
order of seconds whereas other algorithms take time that is in the order of minutes even for
polyhedral objects [45]. Time taken for some free-form objects can be found in [53] and is
in the order of minutes even after incorporating complex optimisation techniques.
The approach described in [39] is quite involved as all boundary pairs have to be
considered and each Voronoi surface obtained has to be correctly trimmed. Moreover, their
approach involves simple algebraic equations only in the case of quadric curves and surfaces.
In contrast, our approach exploits the structure of solids (that form primitives in general)
to obtain a more accurate MAT in an efficient manner. Since the profile can be arbitrary
(as long as it is planar) the range of objects handled here is larger than the set of primitives
considered in [39].
5.7 Summary
An algorithm for generating the medial axis transform (MAT) for extruded or revolved
objects with free-form boundaries has been described. The algorithm generates the MAT by
a transformation of points available in the MAT of the profile faces instead of using numerical
tracing procedures. Criteria derived from the definition of the MAT are used to generate the
points on the MAT and identify the junction points. The algorithm is shown to be robust
and correct. Results of implementation on typical solids, including multiply-connected solids
have been provided.
Chapter 6
Algorithm for 3D objects bound byfree-form surfaces
6.1 Introduction
In this chapter, the problem of generating a MAT for solids with free-form entities is ad-
dressed. The algorithm proposed uses the exact representation of the part and generates a
Discrete-Exact representation of the MAT. Just as in the case of 2D domains, an approximate
rational description (to within a defined tolerance) of the MAT can be obtained by fitting
rational spline curves and surfaces to the MAT points generated. The algorithm presented
traces the MAT of the part, segment by segment by marching along the domain boundary.
This algorithm is an extension of the 2D MAT algorithm presented in chapter 4. Unlike
the 2D case, the equations to be solved here to obtain the footpoints and the corresponding
MAT point are multi-dimensional, and precisely five equations in six variables when surface
triplets are involved. Points on the MAT are obtained by tracing along one variable (tracing
parameter) and solving a system of five equations for the other variables. Moreover, in 3D
the determination of the tracing parameter and the direction of traversal is not obvious as
in 2D. Here, an elegant formulation and a procedure to determine the tracing direction are
presented. Unlike the approach in [46], which is also based on tracing, the present algorithm
traverses along the boundary to identify a point on the seam rather than traversing along
the tangent to a point on the seam. This facilitates the handling of free-form boundary
entities unlike in [46] where only polyhedral entities have been handled. This is because
the tangent to the MAT entities need not be determined at every step. In this chapter, the
term ‘boundary entities’ refers to boundary surfaces, reflex edges and reflex corners present
in the object.
This chapter is structured as follows: The next section presents an overview of the
algorithm. Details of the steps in the algorithm are presented next, followed by results of
84
Chapter 6. Algorithm for 3D objects bound by free-form surfaces 85
implementation. The chapter concludes with a discussion of the results and the algorithm.
6.2 Overview of the algorithm
The algorithm constructs the MAT by tracing the seam segments. The seam segments are
traced by marching along a parametric direction (referred to as the tracing parameter) on
one of the faces in a triplet and solving for the touchpoints of all three boundary entities
corresponding to a point on the seam. This is accomplished by solving the intersection of
the normals to the surfaces in the triplet and imposing the distance criterion. A point on
the MAT is obtained from the intersection of the normals to the surfaces at the touchpoints
followed by a check against the curvature criterion. Given that the normals are linear
in contrast to the bisectors which can be rational surfaces, the computational effort and
computational complexity are greatly reduced.
Tracing of a seam starts from a convex vertex, where all the touchpoints are known
(they are the convex vertex itself). It is assumed that the input domain contains at least
one convex vertex. During the tracing of seam points, at chosen intervals, the algorithm
checks for the existence of a junction point. This check is a distance check with all other
boundary entities of the object. The distance check is done by finding the minimum distance
between a point (here, a seam point) and a boundary entity (predominantly, a boundary
surface). To improve the efficiency of the check for junction points, a more restricted check
that gives the correct result is proposed. For determining the presence of a junction point,
it is shown that it is sufficient to check for interference with boundary entities that have not
been fully traced thus far. This ensures that as the generation of seams progresses, the check
for junction points involves fewer boundary entities.
Once the existence of a junction point is confirmed, three of the touchpoints corre-
sponding to the junction point are known and the remaining touchpoints of the junction
point are determined from the boundary entities that fail the distance check. At a junc-
tion point, there are at least four boundary entities that have touchpoints corresponding to
that junction point. Assuming a non-degenerate junction point (only four boundary entities
present at the junction point), the four triplets of boundary entities are identified (note that
one of the triplets is already used). Using the remaining triplets, other seam segments are
traced from the junction point. It is assumed that one of the entities in a triplet is a bound-
ary surface. The critical task here is the identification of the new tracing parameter and the
direction of tracing. These (parameter and direction) are fixed by determining/estimating
Chapter 6. Algorithm for 3D objects bound by free-form surfaces 86
the direction of the tangent to the new seam at the junction point. Alternately, a generate
and test procedure can be used with both parameters for each boundary surface present in
the triplet for the new seam.
Failure of curvature criterion indicates the presence of a point with extremal principal
curvature [53] in the vicinity. In such cases, the seam terminates at the centre of curvature
corresponding to the point that has the extremal principal curvature. The tracing procedure
used therefore, originates at a convex vertex and ends at either a convex vertex or at the
centre of curvature corresponding to the point that has the extremal principal curvature.
The algorithm terminates when all the convex vertices in the part have been visited,
no triplets remain to be traced at any junction point and all surfaces in the object have been
visited.
The output of the algorithm is a set of points on each seam. Rational curves are fit
to the points in each seam segment. Since sheets are bound by seam segments and a sheet
is generated by two faces in the object, the topology of the sheet can be determined by
grouping the seam segments where two of the faces in their governing triplet of faces are
the same. The sheets can then be determined either by using bisectors of the face pair or
through a numerical tracing scheme.
6.3 Algorithm details
Though this algorithm is an extension of the algorithm for constructing 2D MAT, all the
steps are described again in detail, as in each step there are variations due to the 3D domain.
For example, identification of the tracing direction at a junction point (which is trivial in 2D)
requires a separate procedure in 3D. Similarly, the additional lower dimensional boundary
entities in 3D require to be processed separately. The algorithm consists of the following
steps.
• Tracing step;
• Checking for a junction point;
• Tracing from a junction point;
• Handling a reflex edge;
• Handling a smooth edge;
Chapter 6. Algorithm for 3D objects bound by free-form surfaces 87
• Handling a reflex corner;
• Start of the algorithm;
• Termination of the algorithm;
• Determining the sheets.
6.3.1 Tracing step
The boundary surfaces are parameterised such that the normal at any point on the surface is
pointing away from the enclosed material. Let S1(u, v), S2(s, t), S3(q, r) be the surface triplet
under consideration. The tracing steps consists of the following tasks.
1. Modify the tracing parameter by the tracing step size along the direction of tracing.
The seam is traced by finding the intersection of normals to the three surfaces such
that the distance criterion is satisfied. The computational effort is in finding the roots
of five nonlinear equations in five variables (see Appendix C.1). Convergence is fast
as a good initial guess is always available (the previous touchpoints on the surfaces).
2. At each seam point, check if the intersection point satisfies the curvature criterion.
The intersection of normals that satisfy both the distance and curvature criterion
is a point on the seam. Such a point exists as the seam point is the intersection of two
bisectors. Here one parameter is fixed and the other parameters are searched for such that
their intersection of normals from their respective surfaces satisfy the distance criterion for
a point on a seam. The procedure to choose the tracing parameter and the tracing direction
is described later. The set of equations is solved using the globally convergent Newton–
Raphson method (Newton–Raphson method combined with line searches and backtracking)
[75].
The check against the curvature criterion is a comparison of the radius function (dis-
tance between the touchpoint and the seam point) with the radius of curvature (reciprocal
of maximum normal curvature) at the touchpoints. The maximum normal curvature is iden-
tified using the Gaussian (K) and mean (H) curvatures [73, 74]. The procedure followed
when the curvature criterion is violated at a point during tracing is discussed later during
the description of tracing from a junction point.
Chapter 6. Algorithm for 3D objects bound by free-form surfaces 88
6.3.2 Checking for a junction point
A seam terminates at one of the following – a convex corner, a junction point, or the centre of
extremal principal curvature. Termination of tracing of a seam at a convex corner is straight
forward as it only involves comparing the parameter values with the bounds on the same
and checking if the vertex is convex or not. When the seam terminates at a junction point,
additional checks are required to first determine the existence of the junction point and then
to trace seams from the junction point. Termination at the centre of curvature of a point
with extremal principal curvature is indicated either by failure in the curvature criterion or
when the end of a surface that is not a convex vertex is reached without encountering a
junction point.
The existence of the junction point can be identified by finding the distance of the
current seam point from the remaining boundary entities and checking if this distance is
less than the radius value at the current seam point. Distance between a seam point and
a boundary entity is identified by using the minimum distance calculation between a point
and the corresponding boundary entity. The boundary entities that are in the current triplet
are not used for finding the junction point. Since it is extremely expensive to check with
all the boundary entities at all the seam points, this effort is reduced by the following.
Distance check is not performed at all points generated on the seam. Checks for a junction
point is triggered by a different (and larger) step size called ‘junction point’ step size. It is
shown that the check for junction point need not consider boundary entities for which all
the corresponding seam segments have already been identified.
Proposition 6.1 Portions of the boundary entities for which the MAT segments have al-
ready been traced need not be considered in performing distance check to identify junction
points, while generating subsequent seam segments.
Proof: Let the proposition not be true. Then at some point ‘P’ on the seam segment
being generated using a triplet, the maximal ball cuts one or more boundary entities that
have been already traced. In such a case, it is possible to find a smaller ball centred at P
that is tangential to the boundary entity that has been cut and one of the three entities in
the current triplet. This results in a point on the boundary entity that was cut having two
MAT points corresponding to it. This violates the onto correspondence between a point on
the boundary of the domain and its corresponding MAT point (the correspondence relation
between the two is a continuous, one-to-one onto map) [16]. The maximal ball at point
P therefore, cannot cut any of the boundary entities that have already been traced. The
Chapter 6. Algorithm for 3D objects bound by free-form surfaces 89
proposition follows. 4
It must be mentioned that the above proposition holds even for portions of the bound-
ing entities for which the MAT segments have been traced. However (unlike the 2D case),
keeping track of this in 3D during the distance checks involves additional effort that would
nullify the gain in reduction of the search space.
Due to the different step sizes used for tracing the seam point and for checking junction
points, it is possible to overshoot a junction point during the tracing procedure. A simple
bisection procedure implemented between the last point on the seam where the distance
check was not violated and the current point where it violated identifies the junction point.
6.3.3 Tracing from a junction point
At a junction point, there are at least four boundary entities. Four triplets of boundary
entities are possible out of the four boundary entities. Let S1(u1, v1), S2(u2, v2), S3(u3, v3)
and S4(u4, v4) be the four boundary entities at a junction point. One of the triplets, say,
(S1(u1, v1), S2(u2, v2), S3(u3, v3)) has already been used for tracing a seam. For each of the
remaining triplets, the corresponding equations are solved to generate the seam. Once the
triplet generates a valid seam, that triplet is marked as visited to avoid duplicate tracing.
Note that when the triplet meets in a convex corner, there is no need to check for junction
points during tracing. This is because when the triplets meet in a convex corner, there is no
other junction point (see proposition 6.2) (note however that a junction point is possible if
there is a failure in the curvature criterion).
Proposition 6.2 When a MAT segment is generated from a junction point by traversing
along a surface triplet that share a convex corner, no other junction point (with a boundary
segment other than the current triplet) is encountered during the traversal till the convex
corner.
Proof: Let Si, Sj, and Sk be the surface triplet that intersects in a convex corner ‘A’,
the seam for this needing to be traced from a junction point ‘J’. Since they intersect in a
convex corner, it is clear that there cannot be any other boundary entity between them.
Assume that another junction point (say ‘J1’) is encountered during the tracing along this
surface triplet. This implies that there are two MAT segments for the same triplet, one from
the junction point ‘J’ to junction point ‘J1’ and the other that starts/ends from the end
convex corner ‘A’. As there can be only one MAT segment for a surface triplet (because of
Chapter 6. Algorithm for 3D objects bound by free-form surfaces 90
the one-to-one onto correspondence between the points on the MAT and their corresponding
points on the boundary segments), the tracing of MAT from junction point ‘J’ to the convex
corner cannot encounter any other junction point. The proposition follows. 4
Identifying the tracing direction
In this step, the tracing parameter and the direction along which tracing has to be done
from a junction point is determined. Due to the continuity of the MAT, in principle, either
parameter on a surface is a candidate tracing parameter. However, if the touchpoints of the
seam on a surface are along an iso-parametric curve on the surface (or close to it) then the
numerical procedure to identify the new seam point cannot use this parameter as the tracing
parameter. In such cases the other parameter on the surface has to be chosen as the tracing
parameter.
Since the triplet for which the seam has to be generated is known, a generate and test
procedure can be adopted to identify the parameter to be used for controlling the tracing
procedure and the direction in which the parameter has to be modified. The candidates are
the parameters of any one of the faces in the triplet. Since each parameter can be modified
along two directions there are four cases. Due to the continuity of the MAT one of these
directions has to result in a valid seam. If a valid seam is generated by marching one step in
any direction, that becomes the tracing direction. The seam point generated is valid if the
following conditions are satisfied: All the parameters (corresponding to touch points in each
face) are within their bounds. The seam point satisfies the distance criterion. Finally, the
distance of the remaining faces corresponding to the junction point from this seam point is
larger than the radius function at the junction point.
An alternate method to determine the tracing direction at the junction point uses the
direction of the tangent to the new seam at the junction point. The tangent to the new seam
is obtained from the touchpoints on the faces in the triplet corresponding to the new seam
as follows: The normal of the triangle formed by the touchpoints (refer Figure 6.1 where the
touchpoints T1, T3 and T4 form a triangle) through the junction point is the direction of
the tangent to the new seam corresponding to this triplet. The normal is projected onto the
tangent plane of one of the faces at the touchpoint. This face must have also been part of
the previous triplet for which the seam was traced. The tracing parameter and the direction
are then determined based on the direction of the projected normal. The parameter along
which the tangent is closest to the projected normal is taken as the tracing parameter. The
Chapter 6. Algorithm for 3D objects bound by free-form surfaces 91
A
B
T2
T1
T3
T4
C
D E
F
G
H
I J
L
M
N K
J1nor
Figure 6.1: Identifying the tracing direction.
Chapter 6. Algorithm for 3D objects bound by free-form surfaces 92
m
m
(a)
(b)
Maximal spherewith singlepoint contact
J
CC
Principal curve Skeletal edge
T2
T4T1
T3J
T
Figure 6.2: Failure of curvature criterion in 3D.
Chapter 6. Algorithm for 3D objects bound by free-form surfaces 93
choice of tracing direction is made based on the direction in which this parameter has moved
in tracing the previous seam.
Failure of curvature criterion
Failure in the curvature criterion implies that the tracing of the seam has missed a junction
point. Point ‘m’ in the Figure 6.2(a) is a point, where failure of curvature criterion happens
(‘T’ is the touchpoint on the surface where the curvature criterion fails). The failure in
curvature criterion facilitates the identification of the junction point ‘J’, where the fourth
surface corresponding to the junction point is also one of the surfaces in the current triplet.
Junction point ‘J’ is identified by backtracking the traced seam. During backtracking at each
seam point the distance check for a junction point is performed with only the surface where
the curvature criterion has failed. After ‘J’ is identified, the corresponding touchpoints are
T1, T2, T3 and T4, where T4 is the touchpoint on the surface where T1 also lies (refer Figure
6.2(a)). Checking against the curvature criterion is better than including the faces in the
current triplet in the check for junction point since this is cumbersome. From the junction
point ‘J’, the tracing can be done as usual. However, in two of the triplets, two surfaces
are the same but have different touchpoints. Note that the termination of one of the seam
ends at the centre of curvature of the point where the curvature criterion fails. The point on
the surface is called extremal maximal positive curvature point and a trace of such points
on the surface gives the principal curve. There exists a seam corresponding to the principal
curve called the skeletal edge (refer Figure 6.2(b)), where the maximal spheres have a single
touchpoint. Also, note that it is quite tedious to find the principal curve of any surface a
priori. Violation of the curvature criterion helps in identifying points on the principal curve.
6.3.4 Handling a reflex edge
A reflex edge is represented as a set of cylindrical arcs with zero radius. Associated with
each arc segment is a normal. The normals are assigned to these segments in order, such
that the change in the normal while crossing the reflex edge is divided uniformly across these
segments. Tracing of seam points is done using the equations in Appendix C.2 considering
one of the surfaces as a curve. The check for the presence of a junction point has to be done
here as well, since it is possible to encounter a junction point.
Chapter 6. Algorithm for 3D objects bound by free-form surfaces 94
6.3.5 Handling a smooth edge
The domain may contain edges that are tangential, i.e. the edge between two surfaces is a
smooth one. In such cases, the tracing procedure does not terminate when the smooth edge
is reached. The tracing procedure continues with the adjacent tangential surface and the
other entities in the current triplet. As in 2D, the termination of a seam segment can occur
at the centre of curvature of the point with extremal maximum normal curvature.
6.3.6 Handling a reflex corner
When a reflex corner is encountered while tracing (this is most likely to happen when one of
the boundary entities at a junction point is a reflex corner), the tracing procedure uses the
equations in Appendix C.3 considering one of the surfaces in the triplet to be a point.
It must be mentioned here that at the junction point there could be other combinations
of boundary entities forming the triplet responsible for a seam from the junction point. The
seam can be traced for any of these triplets using similar formulations as outlined for the 3
surfaces, 2 surfaces and 1 curve or 2 surfaces and 1 point combinations.
6.3.7 Start of the algorithm
Tracing starts from a convex corner. It is assumed that there is at least one convex corner
present in the object. One of the parameters of any of the incident faces is chosen as the
tracing parameter. The tracing direction is that which yields points inside the face.
6.3.8 Termination of the algorithm
The termination of the algorithm occurs when all the convex vertices are visited by tracing,
no triplets remain to be traced at any junction point and all the faces have been visited.
6.3.9 Determining the sheets
In this step, the sheets formed by the seam segments are identified using a procedure similar
to that described in [45]. Loops of seams and convex edges on the object boundary are
formed. Each seam is used in more than one loop. Each loop obtained forms the boundary
of a sheet. From each loop, the face pair that corresponds to the sheet is obtained by
identifying the common pair of faces in the triplets corresponding to each seam in the loop.
The geometry of the sheet can now be obtained by trimming the bisector of the pair of faces
Chapter 6. Algorithm for 3D objects bound by free-form surfaces 95
[77] with the bounding loop of seams. Alternately, a tracing procedure can be used with the
face pair to obtain sheet points. These are then fit with a surface to the desired accuracy
and trimmed with the bounding loop of seam segments.
6.4 Illustration of the algorithm
In this section, we use a simple example to illustrate the procedure to construct all the
seams and thereby the MAT of the object. Tracing starts at the convex corner ‘A’. Let us
assume that the surface S1(u, v) has the parameter ‘u’ in the direction AD and ‘v’ along
the direction AF. Let the parameter ‘u’ be incremented by δu. The other corresponding
parameters are then identified using the equations in Appendix C.1. Let ‘s’ be such a point
on the seam (refer Figure 6.3(a)). In Figure 6.3(b), the imposed distance check is violated
at point ‘s” as the sphere corresponding to this point cuts the surface S4. The procedure
then uses the bisection method between this point and the previous point found on the seam
to identify the junction point J1 (Figure 6.3(c)). The boundary surfaces corresponding to
this junction points are S1, S2, S3 and S4 (Figure 6.3(d)). The possible triplets of surfaces
that can be used for tracing a seam are {S1, S2, S4}, {S1, S3, S4} and {S2, S3, S4}. The first
triplet {S1, S2, S4} is then used for tracing the seam. The parameter to be fixed and whether
it needs to be incremented or decremented is then determined. Points on the seam generated
by this triplet do not need any distance check since these surfaces intersect at a convex corner
(Figure 6.4(a)). For other triplets, the points generated on the seam are tested for junction
points. The other two triplets are then processed. The triplet {S1, S3, S4} generates the seam
having the junction point J2 (Figure 6.4(b)). While processing the triplet {S2, S3, S4}, the
seam encounters a concave edge at n1 (Figure 6.4(c)). The procedure when one of the
triplets is a concave edge is then applied till it reaches n2 and the seam is continued till it
reaches the junction point J3 (Figure 6.4(d)). The surface triplets in junction points J2 and
J3 are then processed in a similar fashion. While tracing one of the triplets that contains S6,
the seam encounters a smooth edge (Figure 6.5(a)). Here the surface S6 is then replaced by
S7 and seam tracing continues in a similar manner to identify the junction point J4 (Figure
6.5(b)). Tracing of seams and hence the MAT of the object ends when all the convex corners
are visited and all the triplets at a junction point are processed (Figure 6.5(c)).
Chapter 6. Algorithm for 3D objects bound by free-form surfaces 96
n1
1S (u,v)
2S (s,t)
3S (q,r)
4S (o,p)
5S
6S
7S
8S
A
B
S
C
D E
G
F
H
I J
K
L
M
N
A
BC
E
G
H
J
L
M
N
I
D
F
K
S S’
J1A
B
E
C
D E
F
G
H
I J
K
L
M
N
S S’ J1A
B
T2
T1
T3
T4
C
D E
F
G
H
I J
L
M
N K
(c) (d)
(a) (b)
Figure 6.3: Illustration of the algorithm.
Chapter 6. Algorithm for 3D objects bound by free-form surfaces 97
S1
S2
S4
S3
S6
S7
S5
S8
J1A
BC
D E
F
G
H
I J
L
M
N
n1
S1
S2
S4
S3
S6
S7
S5
S8
J2J1A
BC
D E
F
G
H
I J
L
M
N
n1
S1
S2
S4
S6
S7S8
S3
n2
J2J1A
BC
D E
F
G
H
I J
L
M
N
n1
S1
S2
S4
S3
S6
S7S8
n2
J2J1A
BC
D E
F
G
H
I J
L
M
N
J3
(a) (b)
(c) (d)
Figure 6.4: Illustration of the algorithm (contd.).
Chapter 6. Algorithm for 3D objects bound by free-form surfaces 98
n1
S1
S2
S4
S3
S6
S7S8
n2
J2J1A
BC
D E
F
G
H
I J
L
M
N
J3
S n1
S1
S2
S4
S3
S6
S7S8
n2
J4
J2J1A
BC
D E
F
G
H
I J
L
M
N
J3
S
n1
S1
S2
S4
S3
S6
S7S8
n
J2J1A
BC
D E
F
G
H
I J
L
M
N
J4J3
J5
S
(a) (b)
(c)
Figure 6.5: Illustration of the algorithm (contd.).
Chapter 6. Algorithm for 3D objects bound by free-form surfaces 99
6.5 Results and discussion
The algorithm described has been implemented and this section presents the results obtained
for some test objects. Currently, only generation of the seams and determining the boundary
of sheets have been implemented.
MAT for some test objects having free-form boundary surfaces are shown in Figures
6.6 to 6.13. Table 6.1 shows the time taken in seconds and the number of seams generated
for the given objects. All these programs are run on a PIII 450 MHz with 256MB RAM.
The tracing step size is 10−3 and the junction point step size is ten times that of the tracing
step size i.e. 10−2. The overall tracing time ranges in the order of few seconds (for the
object shown in Figure 6.6) to few minutes (for the object shown in Figure 6.10). The
time durations look very reasonable (compared to the existing time scales which are quite
high even for polyhedral objects) and this validates the efficiency of this algorithm. Figure
6.13 shows the MAT for the object in Figure 6.10 with a tracing step size of 10−4 and the
junction point step size of 10−3. Time taken for generating the MAT is 1105s. Though the
time taken for generation of MAT is high (which is understandable as the step size is ten
times smaller than the previous one), note that the topology of the medial axis is not affected
by the step size chosen.
Figure 6.6: Test object 1 and its 3D MAT.
Chapter 6. Algorithm for 3D objects bound by free-form surfaces 100
Figure 6.7: Test object 2 and its 3D MAT.
Figure 6.8: Test object 3 and its 3D MAT.
Chapter 6. Algorithm for 3D objects bound by free-form surfaces 101
Figure 6.9: Test object 4 and its 3D MAT.
Figure 6.10: Test object 5 and its 3D MAT.
Chapter 6. Algorithm for 3D objects bound by free-form surfaces 102
Figure 6.11: Test object 6 and its 3D MAT.
6.5.1 Discussion
Multiply-connected object
It has been shown that, if the faces of the solid are simply-connected, all the sheets are
simply-connected as well [45]. When the object consists of multiply-connected faces, then
sheets may also be multiply-connected. Earlier approaches split the multiply-connected faces
into simply-connected faces. This results in additional sheets that need to be post-processed.
Moreover, splitting multiply-connected faces into simply-connected faces may be easy when
dealing with planar faces but such is not the case for nonlinear, free-form faces.
In the proposed approach, the faces that are handled during the tracing of seam seg-
ments are flagged. If there are convex vertices or faces that remain unflagged even though all
the triplets identified at junction points have been processed, multiply-connected sheets are
indicated. In this case, the tracing procedure is again initiated from the convex corner(s) that
has/have not been flagged. If there are unflagged faces but no unflagged convex vertices, the
present procedure cannot generate the multiply-connected sheets that are indicated. MAT
for a multiply-connected object is shown in Figure 6.12.
Chapter 6. Algorithm for 3D objects bound by free-form surfaces 103
(a) Test object 7 and its MAT
(b) In a different orientation
Figure 6.12: Multiply-connected test object and its 3D MAT.
Chapter 6. Algorithm for 3D objects bound by free-form surfaces 104
Figure 6.13: MAT for test object 5 at different step sizes.
Stability
The discussion on stability is along the same lines as that for the 2D MAT algorithm.
Choosing a step size is quite critical for this algorithm. It is safe to say that no hard and
fast rule exists to identify a correct step size. A small enough step size is recommended to
achieve good accuracy in tracing of the seams and to avoid overstepping, but not so small
that the process slows down. For the objects that have been used for testing, it was found
that a step size of 10−3 is sufficient to achieve an accuracy of around 10−6, though a larger
step size such as 10−2 may be sufficient for some objects. An automatic determination of
step sizes a priori looks unlikely, though a curvature-based step size can be explored.
The analysis of the algorithm with respect to the effect of numerical errors due to finite
precision indicates that the algorithm is stable with respect to round-off errors. The MAT
algorithm was implemented with single and double precision and there was no difference in
the result to within the tolerance used (10E − 6). Table 6.2 shows the values of some MAT
points in both single and double precisions. The choice of junction point step size is critical.
A smaller value ensures correctness at the cost of greater effort. A larger value may result
in overshooting more than one junction point. One option could be to use a larger junction
point step size and backtrack after one junction point has been identified to ensure that no
Chapter 6. Algorithm for 3D objects bound by free-form surfaces 105
Figurenumber
Number ofseams
Time (inseconds)
6.6 12 186.8 22 366.10 72 1156.11 64 96
Table 6.1: Time taken for generation of 3D MAT for typical objects
other junction point has been missed. If the junction point step size is chosen correctly, the
algorithm is robust enough to capture an overshot junction point. The branching decisions
are therefore, made correctly. In practice, we have found that a value ten times the tracing
step size is appropriate for the junction point step size. As long as the tracing step size is
below a threshold (smallest feature in the domain), the tracing procedure yields the correct
connectivity between the MAT segments.
Unlike the tracing approach of [46], determining the direction of the tangent is required
only at the junction points. Also, the procedure used to determine the tangent direction
does not require any iterative numerical procedure. Sherbrooke et al. [46] need numerical
procedures at each step to identify the tangent at each seam point (including junction points).
However, in our case it suffices if a reasonably close estimate of the tangent direction is
obtained. The exact tangent is not required.
Precision mat x mat y mat zSingle −8.499159 1.027492 16.027491Double −8.499160015365 1.027494860800 16.027494862937Single −8.572198 −2.901567 8.256032Double −8.572197516800 −2.901567719752 8.256032201107Single −8.499160 −26.027611 16.027609Double −8.499159600495 −26.027610348551 16.027609692876Single −15.971039 0.970950 8.455536Double −15.971037909199 0.970949478130 8.455536797018Single −0.374946 −7.879400 −0.374945Double −0.374945407219 −7.879400354699 −0.374945706072
Table 6.2: Comparison of MAT point co-ordinates for single and double precision
Chapter 6. Algorithm for 3D objects bound by free-form surfaces 106
Correctness, completeness and complexity
The proposed algorithm traces the MAT of the objects by tracing the seam segment by
segment. As the points on the seam are determined based on the definition of MAT, the
result is always correct. Branching from one triplet to the other is based on the continuity
of MAT.
Completeness of the algorithm is argued as follows. As the algorithm correctly identifies
the junction points and each of the triplets at every junction point are traced, the algorithm
generates all the seam segments when the sheets are simply connected. As discussed above,
by tracking the boundary entities as well (whether they have been visited during tracing
or not), the presence of multiply-connected sheets are identified correctly. The algorithm
therefore does not miss any entity in the MAT and generates all the seams (and sheets) in
the MAT.
The worst-case complexity of the MAT for a polyhedron is known to be O(n3+ε) [49],
where ‘n’ is the number of faces, edges and vertices of the polyhedron and ε > 0, though
a complexity of O(n2) is also likely. However, in the case of models bound by free-form
surfaces, there are many factors. A rough estimate of the complexity of our algorithm is
made as follows: Let ‘n’ be the number of boundary entities and ‘s’ be the number of
seams traced. Let ‘N ’ be the largest number of points traced on a seam segment. Since
the complexity for computing the intersection of three normals is O(1), the complexity of
computing the seam segments is O(Ns). Each check for a junction point has a complexity
of O(n) and therefore, the complexity due to the check for junction point is O(ns).
Assuming that the number of seams is a linear function of the number of boundary
entities present (i.e. s = cn, where ‘c’ is some constant), then the overall complexity for
the algorithm is O(Ncn + cn2). Therefore, the worst case complexity of the algorithm with
respect to the characteristic size of the input is O(n2).
6.6 Summary
An algorithm for generating the medial axis transform (MAT) of 3D objects with free-form
boundaries has been described. The algorithm generates the MAT by a tracing technique by
marching along the boundary of the object. Criteria derived from the definition of the MAT
are used to generate the points on the MAT and identify the junction points. The algorithm
is shown to be robust and correct. Results of implementation on some test solids have been
provided.
Chapter 7
Contributions, future work, andconclusions
This chapter summarises the contributions of the thesis and identifies the scope for future
work.
7.1 Summary of contributions made by the thesis
The main research contributions are as below.
• A new tracing scheme for generating the MAT of 2D (3D) objects bound by free-form
entities is proposed.
Unlike earlier approaches, the algorithm uses the local normal information to identify
a point on MAT by traversing along the boundary of the object rather than using
bisector-based methods as they incur a high computational cost. This approach leads
to the following advantages.
The algorithm computes intersection of normals to identify points on MAT. This re-
duces the computational complexity to a great extent since only a line–line intersection
procedure is required.
The identification of branch (junction) points is done based on the shortest path be-
tween a point and a curve (surface), which also avoids the curve–curve (surface–surface)
intersection as required by other algorithms. Moreover, the algorithm does not suffer
from the problems indicated in Figure 2.2.
Propositions 4.1 and 4.2 (Propositions 6.1 and 6.2) indicate that the number of
boundary segments that have to be subjected to distance check to identify branch
(junction) points decreases as the process of tracing continues. This increases the
algorithm efficiency, thereby reducing the time taken for generating 2D (3D) MAT.
107
Chapter 7. Contributions, future work, and conclusions 108
In 3D, the critical step of identifying the parameter to be fixed for tracing has been
addressed in an elegant manner thereby, improving the overall efficiency of this tech-
nique.
• In this thesis, a simple yet an efficient method has been proposed for constructing
MAT of extruded/revolved free-form objects.
The MAT on the profile face of the object is used to construct the MAT for this class
of objects. It has been shown that the critical points of this class of 2.5D objects can
be identified using the critical points on the MAT of the profile face itself.
Perhaps, the most important contribution of this thesis is the 2D MAT algorithm. This
is because, both in theory and practice, it has been shown to be useful in higher dimensions
also. First, it has been shown that the 2D MAT algorithm can be used to generate MAT
for 2.5D objects and, more importantly, it paves the way for developing a similar algorithm
for the 3D domain as well. This is unlike other 2D MAT algorithms (such as divide and
conquer methods) which have invariably proven to be difficult to extend to the 3D domain.
Moreover, the 2D MAT algorithm can also be used to generate the mid-surface of an object
and it appears that a tracing algorithm similar to the one described in Chapter 4 is possible
for generating MAT on a free-form surface also. These are discussed in the next section.
7.2 Future work
7.2.1 Possible improvements in the algorithms described in thisthesis
1. The proposed algorithms use floating point arithmetic for the required calculations.
Even with different precisions the correct results have been obtained for the examples
shown without any problems as far as robustness of the procedures is concerned. It
may be interesting to study the effect of the use of either interval or exact arithmetic
on the performance of the algorithms.
2. Automatic determination of step sizes a priori for any domain in any dimension looks
unlikely. Criteria have been proposed in the literature for selecting the resolution of
sampling (to obtain the point set representation) [55]. In this case however, an estimate
of the radius function is required. The tracing step size used in the algorithms proposed
in this thesis can be identified based on the curvature of the boundary of the domain.
Chapter 7. Contributions, future work, and conclusions 109
The effort involved in identifying the step size in this manner and the subsequent effect
on the algorithm needs further investigation.
7.2.2 Extension of 2.5D MAT algorithm to general 3D objects
Even though the scope of the procedures described in chapter 5 is restricted to solids of
extrusion and revolution, it is believed that the results obtained can be used to construct
MAT of more general solids analogous to the construction of 3D objects by Boolean com-
bination of simple objects. It must be mentioned here that typically all primitives used in
CAD systems fall in the category of either extruded or revolved solids. Given a general 3D
solid that is a combination of two or more solids of extrusion or revolution, the use of the
MAT of the primitives to obtain the MAT for the general solid is discussed.
Figure 7.1(a) shows two extruded objects A and B and their medial surfaces (in bold
lines). A general object obtained as a Boolean union of A and B is shown in Figure 7.1(b).
The MAT of the union of objects could be determined as follows. First, portions of the
boundaries of A and B that are not part of the union are identified. The MAT entities
corresponding to these portions of the boundary are then removed from the 3D MAT of A
and B respectively (Figure 7.1(c)). The portions of the remaining boundaries of A and B
for which the MAT points are not available are identified. The 3D MAT tracing procedure
(chapter 6) can now be used to generate the missing MAT entities (shown dotted in Figure
7.1(d)). This procedure is likely to be efficient because the number of domain entities involved
are smaller and the points where the tracing has to terminate are also known.
A 2D illustration of the above procedure is shown in Figure 7.2 for clarity. Frame (c)
in the figure shows the boundary entities (which includes the concave vertex c) for which the
MAT points have to be determined in bold and the termination points of the MAT for the
remainder of the domain are marked with filled dots. The tracing technique has now only to
march through the segments shown in bold to identify the missing MAT segments (shown
dotted in Figure 7.2(d)) that terminate at the points marked in frame (c).
The above idea works only for an object obtained as an union of two objects. In the
case of objects that would otherwise involve a difference operation, an approach similar to
convex decomposition may be used to identify the simpler objects that on union would yield
the object as illustrated in Figure 7.3.
The proposed method above has to be implemented and tested. This idea could vastly
improve the construction of MAT for objects in many application areas like casting where
the objects are predominantly a combination of 2.5D objects.
Chapter 7. Contributions, future work, and conclusions 110
Object A
Removed portions on MAT from Object A
(c)
Object B
(b)
(d)
(a)
Figure 7.1: Medial axis for union of two 3D objects.
Chapter 7. Contributions, future work, and conclusions 111
Object BObject A
(b)(a)
(d)(c)
c
Figure 7.2: Medial axis for union of objects.
Chapter 7. Contributions, future work, and conclusions 112
(a)
(c)
(b)
Figure 7.3: Medial axis for object obtained using difference operation.
Chapter 7. Contributions, future work, and conclusions 113
7.2.3 Generating mid-surface
The mid-surface of a part is currently used as an idealisation of 3D shape for purposes of
analysis/simulation of injection moulding and other near-net shape processes [6]. The mid-
surface has also been proposed as an intermediate representation for feature extraction, and
feature suppression for analysis.
Current efforts to generate the mid-surface either rely on user intervention and expen-
sive ray tracing procedure to identify pairs of faces that define mid-surface patches or work
on a very restricted domain. A completely automatic procedure to determine the mid-surface
of an object is possible using 2-D medial axis transform of each of its faces [76]. Briefly, the
procedure is described as follows. The algorithm takes as input a boundary representation
(B-rep) model of the part and the 2D MAT of each face in the B-rep. The 2D MAT is ob-
tained by the algorithm described in chapter 4. Mid-curves for each face are first constructed
from the 2D MAT. This step involves removal of some MAT segments and addition of some
new segments to account for the corners (convex and concave) in each face. Based on the
connectivity and the associated radius function, mid-curve segments across the faces in the
part are connected to form chains or loops. The face-pairs that define the mid-surface are
then identified from these chains (and loops) of mid-curve segments. The chains/loops that
result in valid face-pairs are flagged. In some special cases, the loops of mid-curve segments
directly yield the bounding edge loop of a mid-surface patch. The identification of face-pairs
terminates when all the faces in the object either have their mid-curves flagged or are one
of the faces in the face pair associated with a mid-curve that has been flagged. The mid-
surface patches are constructed from each face pair identified, by an offset-based procedure.
The information available with the mid-curve loops/chains is then used to connect/trim the
mid-surface patches to obtain the mid-surface.
7.2.4 MAT on a free-form surface
The tracing algorithm described for generating 2D MAT can be extended to generate MAT on
a free-form surface. For the MAT on a free-form surface, the distance criterion would involve
geodesic distances (distances measured along the surface). The disk in planar domains is
replaced by the locus of points that are at the same geodesic distance from a point. The
maximal disk in this case is one where no point on the boundary has a smaller geodesic
distance from the point. Despite these differences, it appears that the tracing procedure can
still be used to construct the MAT on free-form surfaces. The main change will be in the
Chapter 7. Contributions, future work, and conclusions 114
implementation of distance checks which require the construction of geodesic curves from a
point to a curve.
7.3 Conclusions
In this thesis, it has been shown that generation of MAT for free-form objects is possible
without converting them into a point set model or discretisation. In particular, constructing
MAT of 2D, 2.5D and 3D objects bound by free-form entities has been addressed. Algorithms
for constructing the MAT for domains with free-form entities have been developed and
implemented. It has been shown that the algorithms can handle reasonably complex objects.
The algorithms presented are shown to be correct, complete and efficient and can be classified
under tracing techniques for generating MAT. The algorithms are also run on single and
double precision floating point arithmetic and have been found to be stable. Though the
techniques proposed in this thesis have been targeted to handle free-form entities, the same
technique is also applicable for objects consisting of linear entities, i.e. either polygons or
polyhedra and no special procedure is required to handle such objects.
Appendix
A. Determining a point on 2D MAT
The procedure outlined here for determining the footpoint on the other edge and the inter-
section of the normals to obtain the point on MAT is based on the derivation in [36]. The
procedure is described here for completeness using the notation used in this thesis.
Let C1(u1) =(x1(u1), y1(u1)
)and C2(u2) =
(x2(u2), y2(u2)
)be the underlying curves
of edges e1 and e2 respectively. Curves C1(u1) and C2(u2) are planar regular rational curves
with C1-continuity.
Let N1(u1) =(− y
′1(u1), x
′1(u1)
)and N2(u2) =
(− y
′2(u2), x
′2(u2)
)be the (in plane)
normals of C1(u1) and C2(u2) respectively. The intersection point of the normal lines is given
by
C1(u1) + N1(u1)α = C2(u2) + N2(u2)β,
for some α and β. We then have the following two equations in two unknowns, α and β:
x1(u1)− y′1(u1)α = x2(u2)− y
′2(u2)β,
y1(u1) + x′1(u1)α = y2(u2) + x
′2(u2)β.
Solving for α and β
α = α(u1, u2) =
(x1(u1)− x2(u2)
)x′2(u2) +
(y1(u1)− y2(u2)
)y′2(u2)
x′2(u2)y
′1(u1)− x
′1(u1)y
′2(u2)
,
β = β(u1, u2) =
(x1(u1)− x2(u2)
)x′1(u1) +
(y1(u1)− y2(u2)
)y′1(u1)
x′2(u2)y
′1(u1)− x
′1(u1)y
′2(u2)
. (A.1)
The point of intersection of the two normals is given by:
P (u1, u2) = C1(u1) + N1(u1)α(u1, u2) = C2(u2) + N2(u2)β(u1, u2). (A.2)
For P (u1, u2) to be a point on the MAT of the edges e1 and e2, it must be equidistant
from e1(C1(u1)) and e2(C2(u2)):
115
Appendix 116
||P (u1, u2)− C1(u1)|| = ||(C1(u1) + N1(u1)α(u1, u2))− C1(u1)||= ||(C2(u2) + N2(u2)β(u1, u2))− C2(u2)||= ||P (u1, u2)− C2(u2)||.
The above condition simplifies to
||N1(u1)α(u1, u2)|| = ||N2(u2)β(u1, u2)||.Squaring the above equation and substituting α(u1, u2) and β(u1, u2) from equation
(A.1) into the resulting equation, we get
0 =⟨N1(u1), N1(u1)
⟩α(u1, u2)
2 −⟨N2(u2), N2(u2)
⟩β(u1, u2)
2
=⟨N1(u1), N1(u1)
⟩((x1(u1)− x2(u2))x
′2(u2) + (y1(u1)− y2(u2))y
′2(u2)
)2
(x′2(u2)y
′1(u1)− x
′1(u1)y
′2(u2)
)2
−⟨N2(u2), N2(u2)
⟩((x1(u1)− x2(u2))x
′1(u1) + (y1(u1)− y2(u2))y
′1(u1)
)2
(x′2(u2)y
′1(u1)− x
′1(u1)y
′2(u2)
)2 .
(A.3)
The denominator of equation (A.3) vanishes when the normals of the two curves are
either parallel or opposite (the normals overlap) at some values of parameters u1 and u2.
For the case where N1(u1) and N2(u2) are neither parallel nor opposite, the denominator of
equation (A.3) cannot vanish and the condition in equation (A.3) becomes:
0 = F1(u1, u2) =(x′1
2(u1) + y
′1
2(u1)
)((x1(u1)− x2(u2))x
′2(u2) + (y1(u1)− y2(u2))y
′2(u2)
)2
−(x′2
2(u2) + y
′2
2(u2)
)((x1(u1)− x2(u2))x
′1(u1) + (y1(u1)− y2(u2))y
′1(u1)
)2.
(A.4)
Given the parametric value u1 of the footpoint C1(u1) on edge e1 of the point on the
MAT, the solution of equation (A.4) is the parameter u2 of the corresponding footpoint
C2(u2) on edge e2. The point on the MAT is obtained from equation (A.2).
The condition
x′1(u1)y
′2(u2)− x
′2(u2)y
′1(u1) = 0, (A.5)
Appendix 117
indicates that the normals of the curves are parallel or opposite. For the cases where the nor-
mals overlap each other, the parametric variables (u1 and u2) must also satisfy the following
conditions:
(x1(u1)− x2(u2))x′1(u1) + (y1(u1)− y2(u2))y
′1(u1) = 0,
(x1(u1)− x2(u2))x′2(u2) + (y1(u1)− y2(u2))y
′2(u2) = 0. (A.6)
In these cases, the footpoint C2(u2) is obtained by intersecting the normal at C1(u1)
with the edge e2. The mid-point of the vector between the two footpoints C1(u1) and C2(u2)
is taken as the point on the MAT.
B. Theory for generating MAT of 2.5D objects
B.1 Normal theorem
Theorem .1 The normal to the extruded/revolved face at a point on the profile face is along
the same direction as the normal to the corresponding profile edge at that point. Moreover,
the normal at any other point on the extruded or revolved face is obtained by a similar
transformation of the normal at the corresponding point on the profile edge.
Proof for extruded faces
Let the profile edge be represented by p(w) = (x(w), y(w), 0). The normal n and curvature
k of the profile edge are given by:
n = (−yw, xw) (B.1)
k = (xwyww − ywxww)/((xw)2 + (yw)2)3/2 (B.2)
A point on a surface obtained by extruding a profile edge is given by:
Q(w, u) = [x(w) y(w) − du] (B.3)
where ‘d’ is the length of the ruling parallel to the negative z-axis.
The normal N at any point on the extruded face is given by the cross product of the
vectors Qw and Qu .
Appendix 118
N = QwΛQu (B.4)
where Λ denotes the cross product. Qt is the partial derivative of Q with respect to t.
Since,
Qw = [xw yw 0]
Qu = [0 0 − d] (B.5)
the normal vector N is given by
N = d[−yw xw 0] (B.6)
Comparing the equations B.6 and B.1 proves the above theorem (refer Figure 5.2(b)). 4
Proof for surface of revolution
The surface of revolution R(w, φ) obtained by revolving the profile edge about the y-axis is
given by:
R(w, φ) = [x(w)cosφ y(w) − x(w)sinφ] (B.7)
Normal on the surface of the revolution is given by the cross product RwΛRφ, where
Rw = Rw(w, φ) and Rφ = Rφ(w, φ).
RwΛRφ = [−xywcosφ xxw xywsinφ] (B.8)
The normal to the surface at the profile edge is obtained by evaluating the above
expression at φ = 0. At φ = 0, the above equation gives the following:
(RwΛRφ)|φ=0 = [−xyw xxw 0]
i.e., (RwΛRφ)|φ=0 = x[−yw xw 0] (B.9)
Also, equation B.8 can be written as:
(RwΛRφ)|φ=0 ∗Rot y, (B.10)
where Rot y is the matrix corresponding to y-axis rotation. Equations B.9 and B.10 prove
the theorem (Figure 5.3(b)). 4
Appendix 119
B.2 Calculation of principal curvatures
For extruded face
The expressions for the prinicpal curvatures determines the values of curvatures at the merid-
ians and parallels. For an object of extrusion, the principal curvatures of a surface Q(w, u)
are determined from the equation
k1, k2 = H ±√(H2 −K) (B.11)
where H is the mean curvature and K is the Gaussian curvature [73].
The Gaussian curvature K is given by [74]
K =AC −B2
|QwΛQu|4 (B.12)
and the mean curvature is given by [74]
H =A|Qu|2 − 2BQw.Qu + C|Qw|2
2|QwΛQu|3 (B.13)
where (A B C) = [QwΛQu].[Qww Quw Quu].
For a surface of extrusion (along u):
Qww = [xww yww 0],
Quu = 0,
Quw = 0. (B.14)
Therefore,
A = d(xwyww − ywxww),
B = 0,
C = 0. (B.15)
Substitution of A,B, and C gives K = 0 and
H =A|Qu|2
2|QwΛQu|3 (B.16)
Simplifying,
H = k/2 (B.17)
Appendix 120
where ‘k’ is the curvature of the profile edge. Hence,
k1 = k, (B.18)
k2 = 0. (B.19)
For surface of revolution
This is done similar to the derivation for the objects of extrusion.
For a surface of revolution R(w, φ), the second and mixed partial derivative values are
as follows.
Rww = [xwwcosφ yww − xwwsinφ] (B.20)
Rφφ = [−xcosφ 0 xsinφ] (B.21)
Rwφ = [−xwsinφ 0 − xwcosφ] (B.22)
Solving for A,B, and C yields the following:
A = xxwyww − xywxww, (B.23)
B = 0, (B.24)
C = x2yw. (B.25)
The corresponding Gaussian curvature K and mean curvature H are then obtained
from equations B.12 and B.13, as
K = kyw/(x((xw)2 + (yw)2)1/2),
H = k/2 + (yw/(2x((xw)2 + (yw)2)1/2)), (B.26)
where k is the curvature of the profile edge given by the equation B.2. The principal
curvatures are identified using equation B.11.
H2 −K = (k/2− (yw/(2x((xw)2 + (yw)2)1/2)))2,√(H2 −K) = k/2− (yw/(2x((xw)2 + (yw)2)1/2)). (B.27)
Appendix 121
Hence,
k1 = k, (B.28)
k2 = yw/(x((xw)2 + (yw)2)1/2). (B.29)
k2 can be simplified as sin θ/x, where θ is the angle made by the tangent to the profile
curve with respect to the x-axis.
C. Determining a point on 3D MAT
The following are based on the derivation for bisectors in [77].
C.1 Tracing a seam between three surfaces
Let S1(u, v), S2(s, t), S3(q, r) be three regular rational surfaces which are sufficiently differ-
entiable as required. We consider the seam between these three surfaces. For convenience,
we denote the surfaces as S1, S2 and S3. Let B be a point on the seam. Then, it should
satisfy the following equations:
⟨B − S1,
∂S1
∂u
⟩= 0, (C.1)
⟨B − S1,
∂S1
∂v
⟩= 0, (C.2)
⟨B − S2,
∂S2
∂s
⟩= 0, (C.3)
⟨B − S2,
∂S2
∂t
⟩= 0, (C.4)
⟨B − S3,
∂S3
∂q
⟩= 0, (C.5)
⟨B − S3,
∂S3
∂r
⟩= 0, (C.6)
〈B − S1, B − S1〉 − 〈B − S2, B − S2〉 = 0, (C.7)
〈B − S2, B − S2〉 − 〈B − S3, B − S3〉 = 0, (C.8)
〈B − S3, B − S3〉 − 〈B − S1, B − S1〉 = 0. (C.9)
Equations (C.1) and (C.2) mean that the point B is located on the normal line of S1.
Equations (C.3) and (C.4) mean that it is located on the normal line of S2 and equations
Appendix 122
(C.5) and (C.6) that it is located on the normal line of S3. Moreover, equations (C.7) – (C.9)
constrain the point B to be equidistant to the three boundary surfaces.
Combining equations (C.7) and (C.9), we get,
2 ∗ 〈B − S1, B − S1〉 = 〈B − S2, B − S2〉+ 〈B − S3, B − S3〉. (C.10)
Since B lies on the normal line of S1, it can be written as
B = S1 + αn1 (C.11)
where n1 = n1(u, v) = ∂S1
∂u∗ ∂S1
∂vis the normal vector of S1 and α ∈ R. Then equations
(C.1) and (C.2) are automatically satisfied. By substituting for B from equation (C.11) into
equation (C.10), we get the following equation:
2 ∗ 〈αn1, αn1〉 = 〈S1 + αn1 − S2, S1 + αn1 − S2〉+ 〈S1 + αn1 − S3, S1 + αn1 − S3〉α = α(u, v, s, t, q, r) = −
(〈S1 − S2, S1 − S2〉+ 〈S1 − S3, S1 − S3〉2 ∗
(〈S1 − S2, n1〉+ 〈S1 − S3, n1〉
))
(C.12)
Substituting the above in equation (C.11) and updating the equations (C.3) to (C.6)
and (C.9), we have:
⟨f,
∂S2
∂s
⟩= 0, (C.13)
⟨f,
∂S2
∂t
⟩= 0, (C.14)
⟨g,
∂S3
∂q
⟩= 0, (C.15)
⟨g,
∂S3
∂r
⟩= 0, (C.16)
〈f, f〉 − 〈g, g〉 = 0, (C.17)
where
f = B − S2 = (S1 − S2)−(〈S1 − S2, S1 − S2〉+ 〈S1 − S3, S1 − S3〉
2(〈S1 − S2, n1〉+ 〈S1 − S3, n1〉
))n1, (C.18)
g = B − S3 = (S1 − S3)−(〈S1 − S2, S1 − S2〉+ 〈S1 − S3, S1 − S3〉
2(〈S1 − S2, n1〉+ 〈S1 − S3, n1〉
))n1. (C.19)
Appendix 123
Note that f = f(u, v, s, t, q, r) and g = g(u, v, s, t, q, r). The common zero-set of
equations (C.13) to (C.17) satisfies all the constraints of equations (C.1) to (C.9). Fixing
one of the parameters (say ‘u’, for instance), the rest of the parameters can be identified by
solving the above zero-set equations. The point on the seam is then identified by substituting
the α value in equation (C.11), followed by a check for the curvature criterion.
C.2 Surface–surface–curve
Let S1(u, v), S2(s, t) be two regular rational surfaces and C1(r) be a rational curve which
are sufficiently differentiable as required. We consider the seam between these three entities.
For convenience, we denote the surfaces as S1, S2 and the curve as C1. Let B be a point on
the seam. B tnen should satisfy the following equations:
⟨B − S1,
∂S1
∂u
⟩= 0, (C.20)
⟨B − S1,
∂S1
∂v
⟩= 0, (C.21)
⟨B − S2,
∂S2
∂s
⟩= 0, (C.22)
⟨B − S2,
∂S2
∂t
⟩= 0, (C.23)
⟨B − C1,
dC1
dr
⟩= 0, (C.24)
〈B − C1, B − C1〉 − 〈B − S1, B − S1〉 = 0, (C.25)
〈B − S1, B − S1〉 − 〈B − S2, B − S2〉 = 0, (C.26)
〈B − S2, B − S2〉 − 〈B − C1, B − C1〉 = 0. (C.27)
Equations (C.20) and (C.21) mean that the point B is located on the normal line of S1.
Equations (C.22) and (C.23) mean that it is located on the normal line of S2 and equation
(C.25) that it is on the normal plane of C1. Moreover, equations (C.25), (C.26), and (C.27)
constrain the point B to be equidistant to the three boundary entities.
Combining equations (C.25) and (C.26), we get,
2 ∗ 〈B − S1, B − S1〉 = 〈B − C1, B − C1〉+ 〈B − S2, B − S2〉. (C.28)
Since B lies on the normal line of S1, it can be written as
B = S1 + αn1, (C.29)
Appendix 124
where n1 = n1(u, v) = ∂S1
∂u∗ ∂S1
∂vis the normal vector of S1 and α ∈ R. Then equations
(C.20) and (C.21) are automatically satisfied. By substituting for B from equation (C.29)
into equation (C.28), we get:
α = α(u, v, s, t, r) = −(〈S1 − C1, S1 − C1〉+ 〈S1 − S2, S1 − S2〉
2 ∗(〈S1 − C1, n1〉+ 〈S1 − S2, n1〉
)). (C.30)
Substituting the above in equation (C.28) and updating equations (C.22) to (C.25)
and (C.27), we have:
⟨f,
∂S2
∂s
⟩= 0, (C.31)
⟨f,
∂S2
∂t
⟩= 0, (C.32)
⟨g,
dC1
dr
⟩= 0, (C.33)
〈f, f〉 − 〈g, g〉 = 0, (C.34)
where,
f = B − S2 = (S1 − S2)−(〈S1 − C1, S1 − C1〉+ 〈S1 − S2, S1 − S2〉
2(〈S1 − C1, n1〉+ 〈S1 − S2, n1〉
))n1, (C.35)
g = B − C1 = (S1 − C1)−(〈S1 − C1, S1 − C1〉+ 〈S1 − S2, S1 − S2〉
2(〈S1 − C1, n1〉+ 〈S1 − S2, n1〉
))n1. (C.36)
Note that f = f(u, v, s, t, r) and g = g(u, v, s, t, r). The common zero-set of equations
(C.31) to (C.34) satisfies all the constraints of equations (C.20) to (C.27). Since, there is one
degree of freedom left in equations (C.31) to (C.34), solving this system of equations yields
a curve in R3.
C.3 Point–surface–surface
Let S1(u, v), S2(s, t) be two regular rational surfaces which are sufficiently differentiable as
required and let P be a point that is not on either surface. We consider the seam between
these three entities. For convenience, we denote the surfaces as S1, S2. Let B be a point on
the seam, which should satisfy the following equations:
Appendix 125
⟨B − S1,
∂S1
∂u
⟩= 0, (C.37)
⟨B − S1,
∂S1
∂v
⟩= 0, (C.38)
⟨B − S2,
∂S2
∂s
⟩= 0, (C.39)
⟨B − S2,
∂S2
∂t
⟩= 0, (C.40)
〈B − P,B − P 〉 − 〈B − S1, B − S1〉 = 0, (C.41)
〈B − S1, B − S1〉 − 〈B − S2, B − S2〉 = 0, (C.42)
〈B − S2, B − S2〉 − 〈B − P, B − P 〉 = 0. (C.43)
Equations (C.37) and (C.38) mean that the point B is located on the normal line of S1.
Equations (C.39) and (C.40) mean that it is on the normal line of S2. Moreover, equations
(C.41), (C.42), and (C.43) constrain the point B to be equidistant to the three boundary
entities.
Combining equations (C.41) and (C.42), we get,
2 ∗ 〈B − S1, B − S1〉 = 〈B − P, B − P 〉+ 〈B − S2, B − S2〉. (C.44)
Since B lies on the normal line of S1, it can be written as
B = S1 + αn1, (C.45)
where n1 = n1(u, v) = ∂S1
∂u∗ ∂S1
∂vis the normal vector of S1 and α ∈ R. Then equations
(C.37) and (C.38) are automatically satisfied. By substituting for B from equation (C.45)
into equation (C.44), we get:
α = α(u, v, s, t) = −(〈S1 − P, S1 − P 〉+ 〈S1 − S2, S1 − S2〉
2 ∗(〈S1 − P, n1〉+ 〈S1 − S2, n1〉
)). (C.46)
Substituting the above in equation (C.45) and updating the equations (C.39), (C.40)
and (C.43), we have:
⟨f,
∂S2
∂s
⟩= 0, (C.47)
⟨f,
∂S2
∂t
⟩= 0, (C.48)
〈f, f〉 − 〈g, g〉 = 0, (C.49)
Appendix 126
where,
f = B − S2 = (S1 − S2)−(〈S1 − P, S1 − P 〉+ 〈S1 − S2, S1 − S2〉
2(〈S1 − S2, n1〉+ 〈S1 − P, n1〉
))n1, (C.50)
g = B − P = (S1 − P )−(〈S1 − P, S1 − P 〉+ 〈S1 − S2, S1 − S2〉
2(〈S1 − S2, n1〉+ 〈S1 − P, n1〉
))n1. (C.51)
Note that f = f(u, v, s, t) and g = g(u, v, s, t). The common zero-set of equations
(C.47) to (C.49) satisfies all the constraints of equations (C.37) to (C.43). Since there is one
degree of freedom left in equations (C.47) to (C.49), solving this system of equations yields
a curve in R3.
Bibliography
[1] A. Rosenfeld, “Axial representations of shape”, Computer Vision, Graphics and Image
Processing, Volume 33, 1986, pp 156–173.
[2] A. Sudhalkar, L. Gursoz, and F. B. Prinz, “Box-skeletons of discrete solids”,
Computer-Aided Design, Volume 28, Number 6/7, 1996, pp 507–517.
[3] J. O’Rourke,“Computational Geometry in C”, Cambridge University Press, Cam-
bridge, 1993.
[4] D. Lavender, A. Bowyer, J. Davenport, A. Wallis and J. Woodwark, “Voronoi
diagrams of set theoretic solid models”, IEEE Computer Graphics and Applications,
Volume 12, Number 5, September 1992, pp 69–77.
[5] F. Aurenhammer, “A survey of fundamental geometric data structure”, ACM Com-
puting Surveys, Volume 23, Number 3, September 1991, pp 345–405.
[6] M. Rezayat,“Midsurface abstraction from 3D solid models: general theory and appli-
cations”, Computer-Aided Design, Volume 28, Number 11, 1996, pp 905–915.
[7] A. Fischer, A. Smolin, and G. Elber, “Mid-surfaces of profile-based freeforms of
mould design”, Journal of Manufacturing Science and Engineering, Transactions of the
ASME, Volume 121, May 1999, pp 202–207.
[8] H. Blum, “A transformation for extracting new descriptors of shape”, in Models for
the Perception of Speech and Visual Form, ed. Walthen Dunn, MIT Press, 1967, pp
362–380.
[9] H. Blum, “Biological shape and visual science (part I)”, Journal of Theoretical Biology,
Volume 38, 1973, pp 205–287.
127
Bibliography 128
[10] D. Kim, I. Hwang and B. Park, “Representing the Voronoi diagram of a simple
polygon using rational quadratic Bezier curves”, Computer-Aided Design, Volume 27,
Number 8, 1995, pp 605–614.
[11] P. J. Vermeer, “Medial axis transform to boundary representation conversion”, Ph.D.
Thesis, Department of Computer Science, Purdue University, West Lafayette, May 1994.
[12] H. Blum and R. N. Nagel, “Shape description using weighted symmetric axis fea-
tures”, Pattern Recognition, Volume 10, 1978, pp 167–180.
[13] S. Gelston and D. Dutta, “Boundary surface recovery from skeleton curves and
surfaces”, Computer Aided Geometric Design, Volume 12, January 1995, pp 27–51.
[14] C. G. Armstrong, “Modeling requirements for finite element analysis”, Computer-
Aided Design, Volume 26, Number 7, July 1994, pp 573–578.
[15] F. E. Wolter, “Cut locus and medial axis in global shape interrogation and repre-
sentation”, Design Laboratory Memorandum 92-2, Department of Ocean Engineering,
Massachusetts Institute of Technology, cambridge, MA,1992.
[16] J. J. Chou, “Voronoi diagrams for planar shapes” , IEEE Computer Graphics and
Applications, Volume 15, Number 2, March 1995, pp 52–59.
[17] W. R. Quadros, B. Gurumoorthy, K. Ramaswami, and F. B. Prinz, “Skele-
tons for representation and reasoning in engineering applications”, Engineering with
Computers, Volume 17, 2001, pp 186–198.
[18] G. S. Baja and E. Thiel, “(3-4)-Weighted skeleton decomposition for pattern rep-
resentation and description”, Pattern Recognition, Volume 27, Number 8, 1994, pp
1039–1049.
[19] U. Montanari, “Continuous skeletons from digitized images”, Journal of the Associa-
tion for Computing Machinery, Volume 16, Number 4, October 1969, pp 534–549.
[20] L. R. Nackman and S. M. Pizer , “Three dimensional shape description using
the symmetric axis transform”, IEEE Transaction on Pattern Analysis and Machine
Intelligence, Volume PAMI 7, Number 2, March 1985, pp 187–202.
Bibliography 129
[21] H. N. Gursoy and N. M. Patrikalakis, “An automatic coarse and finite surface mesh
generation scheme based on medial axis transform: Part 1 Algorithms”, Engineering
with Computers, Volume 8, 1992, pp 121–137.
[22] D. J. Sheehy, C. G. Armstrong, and D. J. Robinson, “Computing the medial
surface of a solid from a domain Delaunay triangulation”, Proceedings of the Symposium
on Solid Modeling and Applications, 1995, pp 201–212.
[23] M. Held, G. Lukacs and L. Andor, “Pocket machining based on contour-parallel
tool paths generated by means of proximity maps”, Computer-Aided Design, Volume
26, Number 3, March 1994, pp 189–203.
[24] C. G. Armstrong, D. J. Robinson, R. M. McKeag, T. S. Li, S. J. Bridgett, R.
J. Donaghy, and C. A. McGleenan, “Medials for meshing and more”, Proceedings,
4th International Meshing Rountable, October 1995.
[25] R. J. Donaghy, W. McCune, S. J. Bridgett, C. G. Armstrong, and R. M.
McKeag, “Dimensional reduction of analysis models”, Proceedings, 5th International
Meshing Rountable, October 1996, pp 307–320.
[26] F. E. Wolter and K. I. Friese, “Local and global methods for analysis interogation,
reconstruction, modification and design of shape”, Proceedings of Computer Graphics
International Conference, 2000, pp 137–151.
[27] P. Yushkevich, P. T. Fletcher, S. Joshi, A. Thall, S. M. Pizer, “Continuous
medial representations for geometric object modeling in 2D and 3D”, Image and Vision
Computing, Volume 21, 2003, pp 17–27.
[28] M. Ramanathan, “Medial axis transform for the prediction of shrinkage and distortion
in castings”, M.Sc. Thesis, Department of Mechanical Engineering, Indian Institute of
Science, Bangalore.
[29] S. N. Meshkat and C. M. Sakkas, “Voronoi diagram for multiply-connected polyg-
onal domains II: Implementation and application”, IBM Journal of Research and De-
velopment, Volume 31, Number 3, May 1987, pp 373–381.
[30] R. Radhakrishnan, A. Amsalu, M. Kamran, and B. O. Nnaji, “Design rule
checker for sheet metal components using medial axis transform and geometric reason-
ing”, Journal of Manufacturing Systems, Volume 15, Number 3, 1996, pp 179–189.
Bibliography 130
[31] M. Shapira and A. Rappoport, “Shape blending using the star-skeleton representa-
tion”, IEEE Computer Graphics and Applications, Volume 15, Number 2, March 1995,
pp 44–50.
[32] Ju-Hsein Kao,“Process planning for additive/subtractive solid free-form fabrication
using medial axis transform”, Ph.D. Thesis, Department of Mechanical Engineering,
Stanford University, CA, June 1999.
[33] S-B Ho and C. Dyer, “Shape smoothing using medial axis properties”, IEEE Pattern
Analysis and Machine Intelligence, Volume 8, Number 4, July 1986, pp 512–519.
[34] R. Ramamurthy and R. Farouki, “Voronoi diagram and medial axis algorithm for
planar domains with curved boundaries I. Theoretical foundations”, Journal of Com-
putational and Applied Mathematics, Volume 102, 1999, pp 119–141.
[35] R. Farouki and J. Johnstone, “The bisector of a point and a plane parametric
curve”, Computer Aided Geometric Design, Volume 11, Number 2, 1994, pp 117–151.
[36] G. Elber and M. Kim, “Bisector curves for planar rational curves”, Computer-Aided
Design, Volume 30, Number 14, 1998, pp 1089–1096.
[37] G. Elber and M. Kim, “The Bisector surface of rational space curves”, ACM Trans-
action on Graphics, Volume 17, Number 1, January 1998, pp 32–39.
[38] G. Elber and M. Kim, “Computing rational bisectors”, IEEE Computer Graphics
and Applications, Volume 19, Number 6, November/December 1999, pp 76–81.
[39] D. Dutta and C. M. Hoffmann, “On the skeleton of simple CSG Objects”, Journal of
Mechanical Design, Transaction of American Society of Mechanical Engineers (ASME),
Volume 115, March 1993, pp 87–94.
[40] G. Elber and M. Kim, “Rational bisectors of CSG primitives”, Proceedings of the
Symposium on Solid Modeling and Applications, Ann Arbor, Michigan, 1999, pp 159–
166.
[41] D. Dutta and C. M. Hoffmann, “A geometric investigation of the skeleton of CSG
objects”, Technical report CSD-TR-955, CAPO report CER-90-10, Computer Science
Department, Purdue University, West Lafayette, February 1990.
Bibliography 131
[42] D. T. Lee, “Medial axis transformation of a planar shape”, IEEE Transactions on
Pattern Analysis and Machine Intelligence, Volume PAMI-4, Number 4, July 1982, pp
362–369.
[43] V. Srinivasan and L. R. Nackman, “Voronoi diagram for multiply-connected polyg-
onal domains I: Algorithm”, IBM Journal of Research and Development, Volume 31,
Number 3, May 1987, pp 361–372.
[44] M. Held, “Voronoi diagram and offset curves of curvilinear polygons”, Computer-Aided
Design, Volume 30, Number 4, 1998, pp 287–300.
[45] E. C. Sherbrooke, N. M. Patrikalakis and E. Brisson, “An algorithm for me-
dial axis transform of 3-D polyhedral solids”, IEEE Transaction on Visualization and
Computer Graphics, Volume 2, Number 1, 1996, pp 44–61.
[46] E. C. Sherbrooke, N. M. Patrikalakis and E. Brisson, “Computation of the me-
dial axis transform of 3-D polyhedra”, Proceedings of the Symposium on Solid Modeling
and Applications, 1995, pp 187–199.
[47] R. Joan-Arinyo, L. Perez, and J. Vilaplana, “ Computing the medial axis trans-
form of polygonal domains by tracing paths”, Technical report LSI-99-8-R, Llenguatges
i Sistemes Informatics, University Politecnica de Catalunya, April 1999.
[48] Y. -C. Chang, J. -H. Kao, J. M. Pinnila, J. Dong, and F. B. Prinz, “Medial
axis transform of general 2D shapes and 3D polyhedra for engineering applications”,
6th IFIP Working Conference on Geometric Modeling: Fundamentals and Applications,
December 1998, Tokyo, Japan.
[49] T. Culver, J. Keyser, and D. Manocha, “Accurate computation of the medial axis
of a polyhedron”, Proceedings of the Symposium on Solid Modeling and Applications,
Ann Arbor, Michigan, 1999, pp 179–190.
[50] H. N. Gursoy and N. M. Patrikalakis, “An automatic coarse and finite surface
mesh generation scheme based on medial axis transform: Part 2 Implementation”, En-
gineering with Computers, Volume 8, 1992, pp 179–196.
[51] M. Foskey, M. C. Lin and D. Manocha, “Efficient computation of a simplified
medial axis”, Proceedings of the Symposium on Solid Modeling and Applications, 2003,
pp 96–107.
Bibliography 132
[52] D. J. Sheehy, C. G. Armstrong, and D. J. Robinson, “Shape description by
medial surface construction”, IEEE Trans. on Visualization and Computer Graphics,
Volume 2, Number 1, March 1996, pp 62–72.
[53] G. M. Turkiyyah, D. W. Storti, M. Ganter, H. Chen, and M. Vimawala, “An
accelerated triangulation method for computing skeletons of free-form solid models”,
Computer-Aided Design, Volume 29, Number 1, 1997, pp 5–19.
[54] D. Attali and A. Montanvert, “Computing and simplifying 2D and 3D continuous
skeletons”, Computer Vision and Image Understanding, Volume 67, Number 3, Septem-
ber 1997, pp 261–273.
[55] T. K. Dey and W. Zhao, “Approximate medial axis as a Voronoi subcomplex”,
Proceedings of the Symposium on Solid Modeling and Applications, 2002, pp 356–366.
[56] T. K. Dey, H. Woo and W. Zhao, “Approximate medial axis for CAD models”,
Proceedings of the Symposium on Solid Modeling and Applications, 2003, pp 280–285.
[57] Y. G. Lee and K. Lee, “Computing the medial surface of a 3-D boundary represen-
tation model”, Advances in Engineering Software, Volume 28, 1997, pp 593–605.
[58] M. Etzion and A. Rappoport, “Computing the Voronoi diagram of a 3-D poly-
hedron by separate computation of its symbolic and geometric parts”, Proceedings of
the Symposium on Solid Modeling and Applications, Ann Arbor, Michigan, 1999, pp
167–178.
[59] J. M. Reddy and G. M. Turkiyyah, “Computation of 3D skeletons using generalized
Delaunay triangulation technique”, Computer-Aided Design, Volume 27, Number 9,
September 1995, pp 677–694.
[60] D. Avis and H. K. Bhattacharya, “Algorithms for computing d-dimensional Voronoi
diagrams and their duals”, Advances in Computing Research, Volume 1, 1983, pp 159–
180.
[61] N. Amenta and R. K. Kolluri, “The medial axis of a union of balls”, Computational
Geometry: Theory and Applications, Volume 20, 2001, pp 25–37.
[62] N. Amenta, S. Choi and R. K. Kolluri, “The power crust”, Proceedings of the
Symposium on Solid Modeling and Applications, May 2001, pp 249–260.
Bibliography 133
[63] T. K. Dey and W. Zhao, “Approximating the medial axis from the Voronoi diagram
with a convergence guarantee”, www.cis.ohio-state.edu/∼tamaldey/paper/medial.pdf.
[64] M. Etzion and Ari Rappoport, “Computing Voronoi skeletons of a 3-D polyhedron
by space subdivision”, Computational Geometry, Theory and Applications, Volume 21,
2002, pp 87–120.
[65] R. Farouki and R. Ramamurthy, “Specified-precision computation of curve/curve
bisectors”, International Journal of Computational Geometry and Applications, Volume
8, Numbers 5 and 6, 1998, pp 599–617.
[66] R. Ramamurthy, “Voronoi diagrams and medial axes of planar domains with curved
boundaries”, Ph.D. Thesis, Department of Mechanical Engineering, University of Michi-
gan, Ann Arbor, Michigan, 1998.
[67] R. Ramamurthy and R. Farouki, “Voronoi diagram and medial axis algorithm for
planar domains with curved boundaries II. Detailed algorithm description”, Journal of
Computational and Applied Mathematics, Volume 102, 1999, pp 253–277.
[68] R. Farouki and R. Ramamurthy, “Degenerate point/curve and curve/curve bisec-
tors arising in medial axis computations for planar domains with curved boundaries”,
Computer Aided Geometric Design, Volume 15, 1998, pp 615–635.
[69] H. I. Choi, S. W. Choi and H. P. Moon, “New algorithm for medial axis transform
of plane domain”, Graphical Models and Image Processing, Volume 59, Number 6, 1997,
pp 463–483.
[70] E. C. Sherbrooke, “3-D Shape interrogation by medial axis transform”, Ph.D. Thesis,
Department of Ocean Engineering, Massachusetts Institute of Technology, Cambridge,
MA.
[71] B. K. Choi and C. S. Jun, “Ball-end cutter interference avoidance in NC machining
of sculptured surfaces”, Computer Aided Design, Volume 21, Number 6, July/August
1989, pp 371–378.
[72] A. V. Aho, J. E. Hopcroft and J. D. Ullman, ‘‘Data structures and algorithms”,
Addison-Wesley, Reading, MA, 2000.
Bibliography 134
[73] M. P. do Carmo, “Differential geometry of curves and surfaces”, Prentice-Hall, NJ,
1976.
[74] D. F. Rogers and J. A. Adams, “Mathematical elements for computer graphics”,
McGraw-Hill, New York, 1990.
[75] W. H. Press, S. A. Teukolsky, W. T. Vellerling, and B. P. Flannery, “Numerical
Recipes in C”, Cambridge University Press, Cambridge, 1998.
[76] M. Ramanathan and B. Gurumoorthy, “Generating mid-surface of a solid using
2D MAT of its faces”, submitted to CAD’04.
[77] G. Elber and M. Kim, “A computational model for nonrational bisector surfaces:
curve-surface and surface-surface bisectors”, TR-CIS9908, Center for Intelligent Sys-
tems technical reports, Department of Computer Science, Technion-Israel Institute of
Technology, Haifa, 1999.
List of publications
1. M. Ramanathan and B. Gurumoorthy, “Constructing medial axis transform of
planar domains with curved boundaries”, Computer-Aided Design, Volume 35, Number
7, June 2003, pp 619–632.
2. M. Ramanathan and B. Gurumoorthy, “Constructing medial axis transform of
extruded and revolved 3D objects with free-form boundaries”, Computer-Aided Design,
submitted and under review.
3. M. Ramanathan and B. Gurumoorthy, “A tracing algorithm for constructing
medial axis transform of 3D objects bound by free-form surfaces”, ACM Symposium
on Solid Modeling and Applications, 2004, submitted.
135