+ All Categories
Home > Documents > preschern · 2013. 12. 1. · JaSIL.Self translates Java classes to JavaScript and cre-ates a...

preschern · 2013. 12. 1. · JaSIL.Self translates Java classes to JavaScript and cre-ates a...

Date post: 16-Mar-2021
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
28
preschern.org Klaus Preschern Version 0.5 * * Copyright c Klaus Preschern. All rights reserved.
Transcript
Page 1: preschern · 2013. 12. 1. · 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

preschern.org

Klaus Preschern

Version 0.5 ∗

∗Copyright c© Klaus Preschern. All rights reserved.

Page 2: preschern · 2013. 12. 1. · 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

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

Page 3: preschern · 2013. 12. 1. · 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

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

Page 4: preschern · 2013. 12. 1. · 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

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

Page 5: preschern · 2013. 12. 1. · 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

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

Page 6: preschern · 2013. 12. 1. · 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

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

Page 7: preschern · 2013. 12. 1. · 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

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

Page 8: preschern · 2013. 12. 1. · 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

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

Page 9: preschern · 2013. 12. 1. · 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

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

Page 10: preschern · 2013. 12. 1. · 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

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

Page 11: preschern · 2013. 12. 1. · 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

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

Page 12: preschern · 2013. 12. 1. · 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

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

Page 13: preschern · 2013. 12. 1. · 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

The following PDF Dokument contains 3D models of the reconstruction examples:1.

1mesh quality reduced to 35K/70K vertices/faces

12

Page 14: preschern · 2013. 12. 1. · 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

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

Page 15: preschern · 2013. 12. 1. · 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

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

Page 16: preschern · 2013. 12. 1. · 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

Figure 6: Voronoi diagram on the sphere

Figure 7: Voronoi diagram of the whole world

15

Page 17: preschern · 2013. 12. 1. · 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

(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

Page 18: preschern · 2013. 12. 1. · 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

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

Page 19: preschern · 2013. 12. 1. · 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

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

Page 20: preschern · 2013. 12. 1. · 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

• Java2Script (J2S)

• Links: Web Programming Without Tiers

19

Page 21: preschern · 2013. 12. 1. · 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

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

Page 22: preschern · 2013. 12. 1. · 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

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

Page 23: preschern · 2013. 12. 1. · 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

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

Page 24: preschern · 2013. 12. 1. · 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

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

Page 25: preschern · 2013. 12. 1. · 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

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

Page 26: preschern · 2013. 12. 1. · 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

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

Page 27: preschern · 2013. 12. 1. · 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

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

Page 28: preschern · 2013. 12. 1. · 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

[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


Recommended