preschern.org
Klaus Preschern
Version 0.5 ∗
∗Copyright c© Klaus Preschern. All rights reserved.
Contents
1 Introduction 3
2 Projects 4
2.1 Content Management with LATEX . . . . . . . . . . . . . . . . . . . . 4
2.2 Solid Modeling with Implicit Surfaces . . . . . . . . . . . . . . . . . 4
2.3 Universal 3D Interface . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.4 3D Reconstruction with Implicit Surfaces . . . . . . . . . . . . . . . 5
2.5 2D und 3D Delaunay Triangulation . . . . . . . . . . . . . . . . . . . 6
2.6 JavaScript Image LinkerToolkit . . . . . . . . . . . . . . . . . . . . . . 6
2.7 WEB-Dock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.8 JaRT - a Java Ray Tracer . . . . . . . . . . . . . . . . . . . . . . . . 7
2.9 3D Desktop Browser . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.10 3D Desktop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.11 Generating 3D Icons in Real-Time . . . . . . . . . . . . . . . . . . . 8
2.12 Real-Time Rendering . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.13 Generating 3D Icons with Ray Tracing . . . . . . . . . . . . . . . . . 8
2.14 Modula-3 for OS/2 and MS-DOS . . . . . . . . . . . . . . . . . . . . 9
2.15 Modula-2 to C Translator . . . . . . . . . . . . . . . . . . . . . . . . 9
3 Details of selected projects 10
3.1 3D Reconstruction with Implicit Surfaces . . . . . . . . . . . . . . . 10
3.2 2D and 3D Delaunay Triangulation . . . . . . . . . . . . . . . . . . . 13
3.3 JavaScript Image LinkerToolkit . . . . . . . . . . . . . . . . . . . . . . 17
1
3.4 3D Desktop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4 About the Author 22
5 Dictionary of PDF Documents 23
6 Disclaimer 24
6.1 Content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
6.2 Referrals and Links . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
6.3 Copyright . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
6.4 Privacy policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
6.5 Legal validity of this disclaimer . . . . . . . . . . . . . . . . . . . . 25
7 References 26
2
1 Introduction
preschern.org does describe some of the authors projects. This document is the resultof one of these projects (see Section 2.1 for details). To keep the size of the docu-ment in an acceptable range, 3D models are not embedded directly, but are referencedby separate PDF documents instead. The 3D models, embedded in referenced PDFdocuments, are displayable with appropriate software, like Acrobat Reader version ≥8.0.
If there are problems displaying the DHTML internet content of preschern.org, thenthe following may help:
• In Internet Explorer deactivate the compatibility mode.
• If in Firefox local links and WEB-Dock (Section 2.7) links do not work (Bug ID638598), then this add on should help (no warranties).
• If nothing else helps, then JavaScript should be deactivated in the browser.
The web site is powered by (Section 2.6).
3
2 Projects
2.1 Content Management with LATEX
The content of preschern.org is described with LATEX[16, 17] and can be translated to different formats. Inthis way it is possible to create documents with a tableof contents, a list of references, citations and more thelike, with tools used for further processing. It is in ex-
ample possible to create this PDF document and to embed 3D models with the help ofthe Universal 3D interface, described in Section 2.3.
A compiler, written by the author, does translate the LATEX subset, used for the descrip-tion of the content, including some special LATEX macros (called ”hints”), to XML.This XML description is then translated to DHTML, with the help of XML layout de-scriptions (so called ”parts”). Via these layout descriptions, the content is connectedto JavaScript, which has been created with JaSIL (Section 2.6) from Java.
2.2 Solid Modeling with Implicit Surfaces
A signed distance field function assigns to every point|x,y,z| ∈ R3 a distance with a positive sign for pointsoutside the region enclosed by the represented surface,the value 0 for points on the surface and a negative signfor points inside the surface. Operations like point lo-cation or boolean operations for solid modeling (Con-structive Solid Geometry [CSG]) can be implementedquite efficiently with such functions.
The author has used Dual Contouring [13] for the fea-ture preserving extraction (polygonization) of surfaces.The following PDF document shows a 3D model cre-ated with implicit functions and extracted with DualContouring: .
4
2.3 Universal 3D Interface
Visualization includes the notion of pluralism and per-spectivism since there is an explicit attempt at repre-senting one, often textual (i.e. mathematical), descrip-tion in terms of a graphical one [10].
The standard ECMA-363 Universal 3D File Format(U3D) [7] defines the structures for storing 3D models.An interface, implemented by the author in Java, doessupport a subset of U3D for storing 3D scenes, created
with the graphics library described in Section 2.12.
With the help of the LATEX ”movie15” package multimedia content, like movies, soundand objects described with U3D, can be embedded in PDF documents, according tothe Adobe PDF specification version 1.6. With appropriate software, i.e. the AcrobatReader version ≥ 8, such objects are displayed in 3D. This enables a high qualityrepresentation of textual and graphical content.
2.4 3D Reconstruction with Implicit Surfaces
A surface can be described with an implicit functionof the form f (x,y,z) = f (p) = 0. A point p is on theimplicit surface if the result is zero when the point isinserted into the implicit function f .
A simple example is the unit sphere, which hasf (x,y,z) = x2 + y2 + z2 − 1 as its implicit function.Blending of implicit surfaces can be used for the re-construction of surfaces from unoriented point sets.The basic idea is to blend simple primitives, such asspheres. Each sphere can be seen as an ”atom”, and a”molecule” is obtained by blending its atoms.
The following PDF document contains a 3D model oftwo blended spheres: .
More in Section 3.1 . . .
5
2.5 2D und 3D Delaunay Triangulation
The Delaunay triangulation and the Voronoi diagramare dual structures and contain the same information indifferent form. They record everything about proximityof a set of objects in space.
These structures are used in applications for nearestneighbor queries, triangulations with maximized small-est angles, largest empty circles, minimum spanningtrees or traveling salesperson paths.
More in Section 3.2 . . .
2.6 JavaScript Image LinkerToolkit
The JaSIL.Toolkit currently contains three components.JaSIL.Self translates Java classes to JavaScript and cre-ates a runtime image which can be executed within cur-rent web browsers. In combination with JaSIL.GUI,which is a set of Java packages for creating GUIs forweb browsers and JaSIL.Harmony, a JDK based onJavaScript, it can be used to build Web-Applications.The JaSIL.Toolkit does provide optional support for
preemptive Java threads. Applications built with JaSIL.GUI can also be executed asJava Applets.
More in Section 3.3 . . .
2.7 WEB-Dock
The WEB-Dock provides fast and direct access to im-portant and/or frequently used web resources. Com-pared to similar solutions, like the task list (Task-Dock)of the 3D Desktops (Section 2.10) or Apple’s Dock, theefficient image-based rendering approach makes it pos-sible to use the WEB-Dock with current web browsers.The scaling of the icons, which can be used to increasethe icon density, and drag & drop are realized with fast
image switching, like in an animated cartoon. Stopping the cursor over one, in thisway selected, icon shows a short tool tip (hover help).
6
2.8 JaRT - a Java Ray Tracer
JaRT is a ray tracer developed with Java, which is usedto create GUI elements with 3D effects for web pages,like round corner boxes or frames with round edges.JaRT does support CSG operations for primitives likeplanes, boxes, spheres, cylinders, cones and for trian-gle meshes, including 3D text. Objects can be texturedwith planar, spherical and cylindrical texture projec-tions. The ray tracer does use Phong/Blinn lightning
equations with reflections and shadows. Image quality can be improved with super-sampling.
2.9 3D Desktop Browser
The structure and the elements of a 3D Desktop (Sec-tion 2.10) can be described with XML. The desktopbrowser creates a 3D view from the XML descrip-tion. Callbacks (i.e. for menus) can be written withJavaScript. The Document Object Model (DOM) of thedesktop does provide an interface for accessing desktop
elements.
2.10 3D Desktop
Based on the real-time rendering library, described inSection 2.12, a number of software components for a3D desktop have been developed. The desktop com-ponents implement Swing drag and drop interfaces andcontext menus. Components which support circle lists,spiral lists and a 3D task list (Task Dock) to show ac-
tivated functions, are available. The abstract list models are derived from the corre-sponding Swing models. A 3D folder instance provides a space for placing 3D objectsaround a center.
Screenshots in Section 3.4 . . .
7
2.11 Generating 3D Icons in Real-Time
The real-time rendering library, described in Section2.12, greatly improves the performance of the 3D icongeneration. A complex model, which requires severalhours of processing with the ray tracer is now trans-formed within minutes into an image with responsive3D elements. To improve the image quality supersam-pling is used for antialiasing.
To integrate 3D models and web content, layoutsare defined in XML. From these descriptions HTMLand JavaScript is generated with functions for cameramovements and animations.
2.12 Real-Time Rendering
Based on JOGL, a Java/OpenGL [2, 22] interface, theauthor has implemented a real-time rendering library.The components support reflections and shadows andcan be used within applets. Shaders have been de-veloped with the OpenGL Shading Language (GLSL)[15]. A simple text system is used to translate text dy-namically into 2D textures. The picking of objects isaccelerated by the graphics hardware. It is possibleto build 3D models with constructive solid geometry(CSG) operations from primitives. Furthermore withBlender created 3D objects can be used.
2.13 Generating 3D Icons with Ray Tracing
Tools have been developed for generating images of 3Dmodels with responsive areas (3D icons) which can beused in web designs. Such 3D elements are definedwith the Java programming language and the ray tracerPOV-Ray is used for rendering. Sensitive areas are de-fined by assigning ”sensors” to 3D objects for which
corresponding HTML code is generated automatically. Special panorama camera ab-stractions are used to create wide angle views without distortions.
An example generated with POV-Ray.
8
2.14 Modula-3 for OS/2 and MS-DOS
The Modula-3 system (compiler, runtime and library),which has been developed by Digital’s Systems Re-search Center (DEC-SRC), has been ported to OS/2(Warp and Merlin) and MS-DOS. Carsten Whimsterhas published an article about the Modula-3 for OS/2project in the Electronic Development Magazine, OS/2edition (EDM/2).
The author has ported the system after spending a summer at DEC-SRC in Palo Alto.
• Carsten’s article in EDM/2.
• Download Modula-3 for Warp or Merlin.
• Announcements of Modula-3 for OS/2 and MS DOS.
• More information about Modula-3 and some references [6, 12, 20].
2.15 Modula-2 to C Translator
The Modula-2 to C translator developed during thisproject is able to translate itself to C. The very portabletranslator is available for MS-DOS, UNIX and VMS.
• An introduction to parsing in German .
• A comprehensive project report in German .
• More information about Modula-2 and some ref-erences [4, 25].
9
3 Details of selected projects
3.1 3D Reconstruction with Implicit Surfaces
An implicit surface is defined by an implicit function which is a continuous functionover the domain R3. For example, a unit sphere may be defined using the implicitfunction f (p) = 1 ≤ |p|, for points p element of R3. Points on the sphere are thoselocations at which f (p) = 0. A short introduction to implicit surfaces can be foundin [1]. An important class of implicit surfaces are the ”blobby surfaces” [5]. Such asurface is described by:
f (p) =n−1
∑i=0
h(ri)
where n is the number of primitive objects and for each of these objects a distance ri
is computed, which is in example the distance from p to these objects. The blendingfunction h describes the region of influence of object i. For spheres, ri is in examplethe distance from p to the center of sphere i.
Figure 1: Two blendedspheres.
In this case, in the above equation, a single function hi
describes the profile of a ”blobby sphere” which is aGaussian function that has a particular center and stan-dard deviation. When the centers of two blobby spheresare close enough to one another, the implicit surface ap-pears as though the two spheres have melted together.
Figure 1 shows two such blended spheres. All pointson and between them, where they are blended together,are in the area of influence of the two centers and cre-ate the surface. The following PDF document shows acorresponding 3D model: .
To reconstruct the surface, a three-dimensional grid isplaced over the area where the surface is located andthe blending function is sampled at each grid point. Awell-known method for creating a triangle mesh fromsuch an implicit surface is the marching cubes [18] al-
gorithm.
The following reconstruction examples (Figure 2) are based on the range data from theStanford 3D Scanning Repository, used by courtesy of the Stanford Computer Graph-ics Laboratory. The rotation and translation information available with this range datahas been used to move the parts (range images) together to form the starting point set.
10
The information about mesh connectivity however has not been used for this examples.In this way the point set was used as unoriented point cloud.
(a) Bunny reconstructed from 362.272 points. (b) Dragon reconstructed from 1.235.765 points.
Figure 2: Reconstruction examples
Figure 3 shows the treatment of holes by different reconstruction approaches. What isbest depends on the requirements of the application area. A hole is either intentional(in example drilled into the surface) or may be caused by low point density deliveredby the scanning device. The bunny is shown from below where it has two holes andareas of low data density in the base plate.
Figure 3a is the result of Zipper [23]. The mesh produced by Zipper shows the holesand is not watertight.
The middle bunny (Figure 3b) is the one reconstructed with the above described im-plicit surface method. This bunny has a watertight mesh and shows the holes. It has adouble sided surface.
For the right bunny (Figure 3c) the Poisson surface reconstruction [14] method hasbeen used. This method does produce a watertight mesh with closed holes.
(a) Zipper (b) The authors approach. (c) Poisson
Figure 3: Reconstruction examples
11
The following PDF Dokument contains 3D models of the reconstruction examples:1.
1mesh quality reduced to 35K/70K vertices/faces
12
3.2 2D and 3D Delaunay Triangulation
The Delaunay triangulation and the Voronoi diagram are dual structures and containthe same information in different form. Computing one of these structures does au-tomatically create the other. Furthermore there is a connection between Delaunaytriangulations and convex hulls in one higher dimension. The Delaunay triangulationand the Voronoi diagram in d dimensions can be constructed from a convex hull ind+1 dimensions. The Delaunay triangulation for a set of d-dimensional points is theprojection of the points of the hull in d+1 dimensions. A introduction can be found in[21].
2D Delaunay Triangulation
Two algorithmic variants of the 2D Delaunay triangulation have been realized. One isthe incremental algorithm [19] and the other the recursive variant with a ”divide andconquer” strategy [11]. The two following images show the Delaunay triangulation(Figure 4a) and the corresponding Voronoi diagram (Figure 4b), created from 5964points.
(a) Delaunay triangulation (b) Voronoi diagram
Figure 4: Delaunay triangulation or Voronoi diagram in 2D
Figure 5 shows both, the Delaunay triangulation and the Voronoi diagram, in one im-age, for a set of 10 points.
13
Figure 5: Delaunay triangulation and Voronoi diagram in 2D
Voronoi Diagram on the Sphere
Figure 6 shows a Voronoi diagram, created from the positions of the capitals of 228countries (including overseas territories and the like) blended with the world map.The red dots show the GPS positions of the capitals, which have been transformed to3D points using the WGS-84 [24] ellipsoid. The diagram has been created from theconvex hull of these points. The following PDF document contains a 3D model withthis Voronoi diagram: . Figure 7 shows this Voronoi diagram of the whole world in2D.
3D Delaunay Triangulation
The implementation of the 3D Delaunay triangulation is based on the algorithm de-scribed in [9]. An extensive description (in German) can be found in [3].
The following two images (Figure 8a and Figure 8b) show the well known StanfordBunny. The right one shows a 3D Delaunay triangulation of 71 weighted points of itspoint set.
The 3D Delaunay triangulation for point sets with symmetries can be generated withthe help of Simulation of Simplicity [8]. The following two images (Figure 9a andFigure 9b) show an icosahedron. The right Figure 9b shows a possible 3D Delaunaytriangulation of this platonic solid.
The following PDF document contains 3D models of 3D Delaunay triangulations: .
14
Figure 6: Voronoi diagram on the sphere
Figure 7: Voronoi diagram of the whole world
15
(a) Stanford Bunny (b) 3D Delaunay triangulation of the bunny
Figure 8: Bunny 3D Delaunay Triangulation
(a) Icosahedron (b) 3D Delaunay triangulation of an icosahedron
Figure 9: 3D Delaunay Triangulation of Icosahedron
16
3.3 JavaScript Image LinkerToolkit
The JaSIL.Toolkit is used to translate applications de-veloped with Java to JavaScript. It currently con-tains three components: JaSIL.Self does translate Javaclasses and creates on the fly a JavaScript runtime im-age, JaSIL.GUI is used for building GUIs based on thedocument object model (DOM) and JaSIL.Harmony isa JDK based on Apache Harmony. The runtime imagecreated by the linker does contain only the referenced
classes, fields and methods.
The JaSIL project offers the possibility to explore the usage of preemptive Java threadswith JavaScript and their application in clients of Web-Applications. This includes thedevelopment of a toolkit that can be used to run such clients with JavaScript as well asJava applets.
JaSIL.Self does translate bytecode to JavaScript and does therefore use a more generalapproach than similar projects which use special Java front-ends. A topic is thereforethe application of techniques for bytecode optimization and decompilation. In princi-ple it should be possible to use JaSIL.Self to translate further languages with bytecodegenerating compilers to JavaScript.
Motivation for the Translation of Java to JavaScript
JavaScript is a functional language available on all popular current web browsers. Inthis way it is one of the most available and used platforms in the world. Java is apopular object oriented programming language with strong typing, which is availableon many different platforms also. Very good IDE support allows developers to ef-ficiently create and maintain complex Java applications. Porting Java to JavaScriptshould make the development of more scalable web applications with smart clients,which provide a better user experience and reduce the load on the server side, simplerand more efficient.
Java/JVM Compatibility
If performance of JavaScript is influenced, JaSIL.Self does provide options to provideless or more Java/JVM compatibility of the generated JavaScript code. Generatingsupport for preemptive Java threads, including synchronization is therefore optional.These threads are realized in software and do not provide real hardware based multi-processing. It is currently not intended to support dynamic class loading or client sidereflection.
17
Applications developed with JaSIL.GUI and JaSIL.Harmony can run as Java applets.This is due to the design of JaSIL.GUI which provides a DOM bridge for JavaScriptand Java applets. Depending on the Java plugin true hardware multiprocessing is pos-sible with applets. The Java applets use the JDK provided by SUN, but this API iscompatible with JaSIL.Harmony.
The applet compatibility can be used to test applications, built with the JaSIL.Toolkit,also under the conditions of the JVM implementation of a Java plugin.
A first Application with JaSIL
The web site can be started in two different forms. Both versions have been built fromthe same Java source code.
• JavaScript version
• Java-Applet Version (Starting it, requires acceptance of a certificate generatedby the author.)
Example with Threads
Pressing the button Word Counting Demo on the web site opens a dialog and starts asimple word counting task. It reads a file from the server, counts the words and displaysthe results in a table. Closing the dialog does terminate this task. Both versions -JavaScript and Java applet - use a thread with low priority for this task.
Because threads are used, the GUI remains responsive, the window can be moved orminimized to the WEB-Dock and the table is constantly updated. Java programmerscan use the thread concepts they are already familiar with. Note: The system doessupport threads with priorities. GUI activity can delay the word counting thread.
If the task would be started without threads, as foreground activity, the GUI would beblocked and the browser would periodically show annoying message boxes, because ascript is running too long. The table would be updated only when one of these mes-sage boxes is shown. Removing this behavior would require additional programming.Dividing up a complex task into smaller units can be non trivial and does increase theefforts for development and maintenance.
Related Projects
• Google Web Toolkit (GWT)
18
• Java2Script (J2S)
• Links: Web Programming Without Tiers
19
3.4 3D Desktop
Desktop with 3D Task List (Task-Dock)
The image shows the 3D task list withthe Recycler and the Language Selec-tion Box on it. Above the task list youcan see a number of 3D icons. Theviewer is located outside of the centerof the desktop folder.
Desktop with Background and Color/Material Selection
The image shows the 3D desktopwith 3D folders for background andcolor/material selection opened. The3D icons of the opened folders areplaced on the task list.
Background Selection View
The background selection foldershows a number of spheres with dif-ferent cube maps projected on them. Itis possible to change the backgroundof a opened 3D folder by dropping oneof these spheres on it.
20
Inside the 3D Desktop
The image shows the 3D Desktop withchanged background and another 3Dfolder opened. The opened folder is se-lected in the 3D icon list. The vieweris located in the center of the desktopfolder.
21
4 About the Author
Klaus Preschern has more than ten years experience in the development of softwarecomponents for Enterprise Resource Planning (ERP), Customer Relationship Man-agement (CRM) systems and host communication, used by banks and their computingcenters. Furthermore he develops software in the area of compiler construction, run-time systems and computer graphics.
He was a member of different development teams which performed ISO-9001 certifiedsoftware life cycles with corresponding quality control. The programming languagesused in these projects are mainly object oriented languages, like C/C++, C#, Smalltalkand Java.
His interests are centered around algorithms and data structures, programming lan-guages, compilers and runtime systems, content management and web-applications,computer graphics and computational geometry, user interfaces and operating systems.
22
5 Dictionary of PDF Documents
preschern.org (German version): .
preschern.org (English version): .
Example of CSG operations with implicit surfaces: .
3D model of two blended implicit surfaces: .
Voronoi diagram on the sphere: .
Examples of 3D Delaunay triangulations: .
Examples of 3D reconstructions: .
An introduction to parsing in German: .
Modula-2 - C Translator Report in German: .
23
6 Disclaimer
6.1 Content
The author reserves the right not to be responsible for the topicality, correctness, com-pleteness or quality of the information provided. Liability claims regarding damagecaused by the use of any information provided, including any kind of informationwhich is incomplete or incorrect, will therefore be rejected.
THIS CONTENT IS PROVIDED BY THE AUTHOR ”AS IS” AND ANY EXPRESSOR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IM-PLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTIC-ULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BELIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PRO-CUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ONANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABIL-ITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANYWAY OUT OF THE USE OF THIS CONTENT, EVEN IF ADVISED OF THE POS-SIBILITY OF SUCH DAMAGE.
All offers are not-binding and without obligation. Parts of the pages or the completepublication including all offers and information might be extended, changed or partlyor completely deleted by the author without separate announcement.
6.2 Referrals and Links
The author is not responsible for any contents linked or referred to from his pages - un-less he has full knowledge of illegal contents and would be able to prevent the visitorsof his site from viewing those pages. If any damage occurs by the use of informationpresented there, only the author of the respective pages might be liable, not the onewho has linked to these pages. Furthermore the author is not liable for any postings ormessages published by users of discussion boards, guestbooks or mailinglists providedon his page.
6.3 Copyright
The author intended not to use any copyrighted material for the publication or, if notpossible, to indicate the copyright of the respective object. All rights for any materialcreated by the author are reserved. Any duplication or use of objects such as images,
24
diagrams, sounds or texts in other electronic or printed publications is not permittedwithout the author’s agreement.
6.4 Privacy policy
If the opportunity for the input of personal or business data (email addresses, name, ad-dresses) is given, the input of these data takes place voluntarily. The use and paymentof all offered services are permitted - if and so far technically possible and reason-able - without specification of any personal data or under specification of anonymizeddata or an alias. The use of published postal addresses, telephone or fax numbersand email addresses for marketing purposes is prohibited, offenders sending unwantedspam messages will be punished.
6.5 Legal validity of this disclaimer
This disclaimer is to be regarded as part of the Internet publication which you werereferred from. If sections or individual terms of this statement are not legal or correct,the content or validity of the other parts remain uninfluenced by this fact.
25
7 References
[1] Tomas Akenine-Moller and Eric Haines: Real-Time Rendering, 2nd edition,A.K. Peters, 2002, Pages 526-527.
[2] Ken Arnold and James Gosling: The Java TM Programming Language,Addison-Wesley, 1996.
[3] Christoph Baudson und Edgar Klein: Berechnung und Visualisierung vonVoronoi Diagrammen in 3D, Diplomarbeit an der Rheinischen Friedrich-Wilhelms-Universitat Bonn, 2006.
[4] Gunther Blaschek, Gustav Pomberger und Franz Ritzinger: Einfuhrung in dieProgrammierung mit Modula-2, Springer Verlag, 1986.
[5] James F. Blinn: A Generalization of Algebraic Surface Drawing, ACM Trans-actions on Graphics, Vol. 1, No. 3, July 1982, Pages 235-256.
[6] Luca Cardelli, James Donahue, Lucille Glassman, Mick Jordan, Bill Kalsowand Greg Nelson: Modula-3 Report (revised), Systems Research Center, Re-search Report 52, 1989.
[7] Ecma International: Standard ECMA-363: Universal 3D File Format, Rue duRhone 114, CH-1204 Geneva, 4th Edition, June 2007.
[8] Herbert Edelsbrunner and Ernst Peter Mucke: Simulation of Simplicity: A Tech-nique to Cope with Degenerate Cases in Geometric Algorithms, ACM Transac-tions on Graphics, 9(1), 1990, Pages 66-104.
[9] Herbert Edelsbrunner and Nimish R. Shah: Incremental Topological FlippingWorks for Regular Triangulations, Algorithmica 15, 1996, Pages 223–241, Firstpublished in: Proceedings of the 8th Annual ACM Symposium on Computa-tional Geometry, 1992, Pages 43–52.
[10] Paul Fishwick: Exploring Multiple Visualization Perspectives with AestheticComputing, International Conference for Visual Languages and Computing,2003.
[11] Leonidas Guibas and Jorge Stolfi: Primitives for the Manipulation of GenerailSubdivisions and the Computation of Voronoi Diagrams, ACM Transactions onGraphics, Vol. 4, No. 2, Pages 74-123, April 1985.
[12] Samuel P. Harbison: Modula-3, Prentice Hall, 1992.
[13] Tao Ju, Frank Losasso, Scott Schaefer and Joe Warren: Dual contouring ofhermite data, ACM Transactions on Graphics, Volume 21, Number 3, Pages339–346, Proceedings of ACM SIGGRAPH July 2002.
26
[14] Michael Kazhdan, Matthew Bolitho and Hugues Hoppe: Poisson Surface Re-construction, Eurographics Symposium on Geometry Processing, 2006.
[15] John Kessenich (Editor): The OpenGL R© Shading Language (Language Ver-sion 4.0), The Khronos Group Inc., 2010.
[16] Donald E. Knuth: The TEXbook, Addison-Wesley, Reading, Massachusetts,1986.
[17] Leslie Lamport: LATEX: A Document Preparation System, Addison-Wesley,Reading, Massachusetts, 2nd edition, 1994.
[18] William E. Lorensen and Harvey E. Cline: Marching cubes: A high resolu-tion3D surface reconstruction algorithm, SIGGRAPH Computer Graphics, Vol-ume 21, Number 4, Pages 163–169, July 1987.
[19] Dani Lischinski: Incremental Delaunay Triangulation, Graphics Gems IV, Edi-tor: Paul S. Heckbert, AP Professional (Academic Press), Boston, 1994.
[20] Greg Nelson (Editor): Systems Programming with Modula-3, Prentice Hall Se-ries in Innovative Technology, 1991.
[21] Joseph O’Rourke: Computational Geometry in C, 2nd edition, Cambridge Uni-versity Press, 1998.
[22] Mark Segal and Kurt Akeley: The OpenGL R© Graphics System: A Specifica-tion, The Khronos Group Inc., 2010.
[23] Greg Turk and Marc Levoy: Zippered polygon meshes from range images,In Proceedings of SIGGRAPH ’94 (Orlando, FL, July 24-29, 1994), pages311–318. ACM Press, July 1994.
[24] National Imagery and Mapping Agency (NIMA): Department of Defense WorldGeodetic System 1984: Its Definition and Relationships with Local GeodeticSystems, NIMA Technical Report TR8350.2, 3rd edition, Amendment 1, Jan-uary 2000.
[25] Niklaus Wirth: Programmieren in Modula-2, Springer Verlag (Ubers. d. 3rd
corrected edition), 1985.
27