diff --git a/work_report/.gitignore b/work_report/.gitignore
index 89a5763..6c67d50 100644
--- a/work_report/.gitignore
+++ b/work_report/.gitignore
@@ -1,20 +1,21 @@
-thesis.toc
-thesis.synctex.gz
-thesis.sublime-workspace
-thesis.sublime-project
-thesis.pdf
-thesis.lot
-thesis.log
-thesis.fls
-thesis.fdb_latexmk
-thesis.brf
-thesis.blg
-thesis.bbl
-thesis.aux
-.DS_Store
-propositions.synctex.gz
-propositions.pdf
-propositions.log
-propositions.fls
-propositions.fdb_latexmk
-propositions.aux
+template/auto/*
+20*pdf
+*.aux
+*.bbl
+*.blg
+*.log
+*.out
+*.toc
+Template-Documentation.tex
+main.pdf
+main-blx.bib
+*.bcf
+*.run.xml
+*test
+*old
+main.lof
+\#*
+\.\#*
+main.tdo
+*.synctex.gz
+template/blind*
diff --git a/work_report/Hall_of_fame.org b/work_report/Hall_of_fame.org
new file mode 100644
index 0000000..c098296
--- /dev/null
+++ b/work_report/Hall_of_fame.org
@@ -0,0 +1,57 @@
+
+* Hall of Fame
+
+Here is an (incomplete) list of great documents which were written
+using this LaTeX template and sent-in by their proud authors.
+
+Feel free to submit your own document as long it can be freely
+downloaded from the web. Either send me a pull-request via GitHub or
+send me an email: =add-my-document {at sign] Karl [dash} Voit (dot} at=
+
+** [[http://karl-voit.at/tagstore/downloads/Voit2012b.pdf][TagTrees: Improving Personal Information Management Using Associative Navigation]]
+
+- Author :: Karl Voit
+- Type :: PhD Thesis
+- Date :: November 2012
+
+- Project Webpage: http://Karl-Voit.at/tagstore/
+- [[http://karl-voit.at/tagstore/downloads/Voit2012b.bib][BibTeX file]]
+
+** [[https://github.com/M-Sabrina/Masterthesis-Meindlhumer-Sabrina/blob/master/Masterthesis_Meindlhumer.pdf][Comparison of different evaluation strategies for single-molecule force spectroscopy of antibody/antigen interactions]]
+
+- Author :: Sabrina Meindlhumer
+- Type :: Master's Thesis
+- Date :: September 2019
+
+- Project Webpage: https://github.com/M-Sabrina/Masterthesis-Meindlhumer-Sabrina
+
+** [[https://github.com/JKU-HFP/Masterthesis-Hofer-Julian/blob/master/masterthesis.pdf][Advanced excitation and spectroscopy schemes of single quantum dots]]
+
+
+- Author :: Julian Hofer
+- Type :: Master's Thesis
+- Date :: October 2019
+
+- Project Webpage: https://github.com/JKU-HFP/Masterthesis-Hofer-Julian
+
+
+
+ # TEMPLATE:
+ # Links with descriptions are written with two opening square brackets followed
+ # by the URL, one closing square bracket, one opening square bracket, the link
+ # text, and two closing square brackets. Links without descriptions are
+ # recognized without using any special markup.
+ #
+ # ** THE TITLE OF YOUR DOCUMENT
+ #
+ # OR:
+ #
+ # ** [[https://the/url/to_the_thesis.pdf][THE TITLE OF YOUR DOCUMENT]]
+ #
+ # - Author :: FIRSTNAME LASTNAME
+ # - Type :: Report | Bachelor Thesis | Master Thesis | PhD Thesis | Book | ...
+ # - Date :: MONTH AND YEAR OF FINALIZATION
+ #
+ # - Project Webpage: URL
+ # - [[http://karl-voit.at/tagstore/downloads/Voit2012b.bib][BibTeX file]] (WITH LINK)
+ # - WHATEVER PLEASES YOUR AUDIENCE
diff --git a/work_report/LICENSE b/work_report/LICENSE
deleted file mode 100644
index 2c4afab..0000000
--- a/work_report/LICENSE
+++ /dev/null
@@ -1,117 +0,0 @@
-CC0 1.0 Universal
-
-Statement of Purpose
-
-The laws of most jurisdictions throughout the world automatically confer
-exclusive Copyright and Related Rights (defined below) upon the creator and
-subsequent owner(s) (each and all, an "owner") of an original work of
-authorship and/or a database (each, a "Work").
-
-Certain owners wish to permanently relinquish those rights to a Work for the
-purpose of contributing to a commons of creative, cultural and scientific
-works ("Commons") that the public can reliably and without fear of later
-claims of infringement build upon, modify, incorporate in other works, reuse
-and redistribute as freely as possible in any form whatsoever and for any
-purposes, including without limitation commercial purposes. These owners may
-contribute to the Commons to promote the ideal of a free culture and the
-further production of creative, cultural and scientific works, or to gain
-reputation or greater distribution for their Work in part through the use and
-efforts of others.
-
-For these and/or other purposes and motivations, and without any expectation
-of additional consideration or compensation, the person associating CC0 with a
-Work (the "Affirmer"), to the extent that he or she is an owner of Copyright
-and Related Rights in the Work, voluntarily elects to apply CC0 to the Work
-and publicly distribute the Work under its terms, with knowledge of his or her
-Copyright and Related Rights in the Work and the meaning and intended legal
-effect of CC0 on those rights.
-
-1. Copyright and Related Rights. A Work made available under CC0 may be
-protected by copyright and related or neighboring rights ("Copyright and
-Related Rights"). Copyright and Related Rights include, but are not limited
-to, the following:
-
- i. the right to reproduce, adapt, distribute, perform, display, communicate,
- and translate a Work;
-
- ii. moral rights retained by the original author(s) and/or performer(s);
-
- iii. publicity and privacy rights pertaining to a person's image or likeness
- depicted in a Work;
-
- iv. rights protecting against unfair competition in regards to a Work,
- subject to the limitations in paragraph 4(a), below;
-
- v. rights protecting the extraction, dissemination, use and reuse of data in
- a Work;
-
- vi. database rights (such as those arising under Directive 96/9/EC of the
- European Parliament and of the Council of 11 March 1996 on the legal
- protection of databases, and under any national implementation thereof,
- including any amended or successor version of such directive); and
-
- vii. other similar, equivalent or corresponding rights throughout the world
- based on applicable law or treaty, and any national implementations thereof.
-
-2. Waiver. To the greatest extent permitted by, but not in contravention of,
-applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and
-unconditionally waives, abandons, and surrenders all of Affirmer's Copyright
-and Related Rights and associated claims and causes of action, whether now
-known or unknown (including existing as well as future claims and causes of
-action), in the Work (i) in all territories worldwide, (ii) for the maximum
-duration provided by applicable law or treaty (including future time
-extensions), (iii) in any current or future medium and for any number of
-copies, and (iv) for any purpose whatsoever, including without limitation
-commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes
-the Waiver for the benefit of each member of the public at large and to the
-detriment of Affirmer's heirs and successors, fully intending that such Waiver
-shall not be subject to revocation, rescission, cancellation, termination, or
-any other legal or equitable action to disrupt the quiet enjoyment of the Work
-by the public as contemplated by Affirmer's express Statement of Purpose.
-
-3. Public License Fallback. Should any part of the Waiver for any reason be
-judged legally invalid or ineffective under applicable law, then the Waiver
-shall be preserved to the maximum extent permitted taking into account
-Affirmer's express Statement of Purpose. In addition, to the extent the Waiver
-is so judged Affirmer hereby grants to each affected person a royalty-free,
-non transferable, non sublicensable, non exclusive, irrevocable and
-unconditional license to exercise Affirmer's Copyright and Related Rights in
-the Work (i) in all territories worldwide, (ii) for the maximum duration
-provided by applicable law or treaty (including future time extensions), (iii)
-in any current or future medium and for any number of copies, and (iv) for any
-purpose whatsoever, including without limitation commercial, advertising or
-promotional purposes (the "License"). The License shall be deemed effective as
-of the date CC0 was applied by Affirmer to the Work. Should any part of the
-License for any reason be judged legally invalid or ineffective under
-applicable law, such partial invalidity or ineffectiveness shall not
-invalidate the remainder of the License, and in such case Affirmer hereby
-affirms that he or she will not (i) exercise any of his or her remaining
-Copyright and Related Rights in the Work or (ii) assert any associated claims
-and causes of action with respect to the Work, in either case contrary to
-Affirmer's express Statement of Purpose.
-
-4. Limitations and Disclaimers.
-
- a. No trademark or patent rights held by Affirmer are waived, abandoned,
- surrendered, licensed or otherwise affected by this document.
-
- b. Affirmer offers the Work as-is and makes no representations or warranties
- of any kind concerning the Work, express, implied, statutory or otherwise,
- including without limitation warranties of title, merchantability, fitness
- for a particular purpose, non infringement, or the absence of latent or
- other defects, accuracy, or the present or absence of errors, whether or not
- discoverable, all to the greatest extent permissible under applicable law.
-
- c. Affirmer disclaims responsibility for clearing rights of other persons
- that may apply to the Work or any use thereof, including without limitation
- any person's Copyright and Related Rights in the Work. Further, Affirmer
- disclaims responsibility for obtaining any necessary consents, permissions
- or other rights required for any use of the Work.
-
- d. Affirmer understands and acknowledges that Creative Commons is not a
- party to this document and has no duty or obligation with respect to this
- CC0 or use of the Work.
-
-For more information, please see
-
-
diff --git a/work_report/Makefile b/work_report/Makefile
new file mode 100644
index 0000000..f5504f0
--- /dev/null
+++ b/work_report/Makefile
@@ -0,0 +1,109 @@
+## please modify the following line for naming the end products (PDFs, ZIPs, ...)
+PROJECTNAME = "Projectname"
+
+## -----------------------------------------
+## DO NOT EDIT BELOW THIS LINE
+## -----------------------------------------
+
+## Makefile von Karl Voit (Karl@Voit.net)
+
+## some Makefile-hints taken from:
+## http://www.ctan.org/tex-archive/help/uk-tex-faq/Makefile
+
+
+MAINDOCUMENTBASENAME = main
+MAINDOCUMENTFILENAME = ${MAINDOCUMENTBASENAME}.tex
+## COMMANDS:
+PDFLATEX_CMD = pdflatex
+#BIBTEX_CMD = bibtex
+BIBTEX_CMD = biber
+MAKEIDX_CMD = makeindex
+DATESTAMP = `/bin/date +%Y-%m-%d`
+DATESTAMP_AND_PROJECT = ${DATESTAMP}_${PROJECTNAME}
+#PDFVIEWER = xpdf
+PDFVIEWER = acroread
+TEMPLATEDOCUBASENAME = Template-Documentation
+TEMPLATEDOCUFILE = ${TEMPLATEDOCUBASENAME}.tex
+
+#help
+#helpThe main targets of this Makefile are:
+#help help this help
+.PHONY: help
+help:
+ @sed -n 's/^#help//p' < Makefile
+
+#help all see "pdf"
+.PHONY: all
+all: pdf
+
+#help pdf creates a pdf file using pdflatex
+.PHONY: pdf
+pdf:
+ ${PDFLATEX_CMD} ${MAINDOCUMENTFILENAME}
+ -${BIBTEX_CMD} ${MAINDOCUMENTBASENAME}
+ ${PDFLATEX_CMD} ${MAINDOCUMENTFILENAME}
+ ${PDFLATEX_CMD} ${MAINDOCUMENTFILENAME}
+ -mv ${MAINDOCUMENTBASENAME}.pdf ${DATESTAMP_AND_PROJECT}.pdf
+
+#help wc counts the words from the PDF generated
+wc: pdf
+ pdftops ${DATESTAMP_AND_PROJECT}.pdf
+ ps2ascii ${DATESTAMP_AND_PROJECT}.ps > ${DATESTAMP_AND_PROJECT}.txt
+ wc -w ${DATESTAMP_AND_PROJECT}.txt
+
+
+# --------------------------------------------------------
+
+#help view view the PDF-file
+.PHONY: view
+view: pdf
+ ${PDFVIEWER} ${DATESTAMP_AND_PROJECT}.pdf
+
+# --------------------------------------------------------
+
+
+#help clean clean up temporary files
+.PHONY: clean
+clean:
+ -rm -r *.bcf *.run.xml _*_.* *~ *.aux *-blx.bib *.bbl ${MAINDOCUMENTBASENAME}.dvi *.ps *.blg *.idx *.ilg *.ind *.toc *.log *.log *.brf *.out *.lof *.lot *.gxg *.glx *.gxs *.glo *.gls *.tdo -f
+
+#help purge cleaner than clean ;-)
+.PHONY: purge
+purge: clean
+ -rm 20*.pdf *.ps -f
+
+#help force force rebuild next run
+.PHONY: force
+force:
+ touch *tex
+
+# TOOLS:
+
+#help zip create ZIP-file
+.PHONY: zip
+zip: purge pdf clean
+ zip -r ../${PROJECTNAME}_${TIMESTAMP}.zip *
+
+.PHONY: publish
+publish: templatedocu pdf clean
+ -rm 20*.pdf ${TEMPLATEDOCUFILE} -f
+ git status
+
+#help templatedocu updates tex-files for the documentation of this template
+#help needs: echo, sed, grep
+.PHONY: templatedocu
+templatedocu:
+ grep "%doc%" template/preamble.tex | sed 's/^.*%doc% //' > ${TEMPLATEDOCUFILE}
+ grep "%doc%" template/mycommands.tex | sed 's/^.*%doc% //' >> ${TEMPLATEDOCUFILE}
+ grep "%doc%" template/typographic_settings.tex | sed 's/^.*%doc% //' >> ${TEMPLATEDOCUFILE}
+ grep "%doc%" template/pdf_settings.tex | sed 's/^.*%doc% //' >> ${TEMPLATEDOCUFILE}
+ echo "%%---------------------------------------%%" >>${TEMPLATEDOCUFILE}
+ printf '%s\n' "\printbibliography\end{document}" >>${TEMPLATEDOCUFILE}
+ ${PDFLATEX_CMD} ${TEMPLATEDOCUFILE}
+ ${PDFLATEX_CMD} ${TEMPLATEDOCUFILE}
+ ${BIBTEX_CMD} ${TEMPLATEDOCUBASENAME}
+ ${PDFLATEX_CMD} ${TEMPLATEDOCUFILE}
+
+
+#end
+
diff --git a/work_report/README.md b/work_report/README.md
deleted file mode 100644
index 46bf075..0000000
--- a/work_report/README.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# My PhD thesis
-
-Some related blog posts:
-* [How to self-publish your (LaTeX) thesis](https://3d.bk.tudelft.nl/ken/en/2016/03/20/self-publishing-your-latex-thesis.html)
-* [What is my LaTeX workflow](https://3d.bk.tudelft.nl/ken/en/2016/04/02/my-latex-thesis-workflow.html)
-* [How my 1.5 column layout works](https://3d.bk.tudelft.nl/ken/en/2016/04/17/a-1.5-column-layout-in-latex.html)
\ No newline at end of file
diff --git a/work_report/README.org b/work_report/README.org
new file mode 100644
index 0000000..1d10c70
--- /dev/null
+++ b/work_report/README.org
@@ -0,0 +1,100 @@
+
+* LaTeX-KOMA-template
+
+** Purpose of This Project
+
+This is a generic template for [[http://en.wikipedia.org/wiki/LaTeX][LaTeX]] documents using [[http://www.komascript.de/][KOMA Script]] classes
+which are pretty common at least in German spoken countries.
+
+The template does *not* want to contain each and every trick but should
+provide a *clean*, *consistent* and *well documented* starting point for any
+document exceeding a few pages. So if you plan to write a longer report,
+a diploma thesis, a PhD thesis, or similar, this template should give you
+a good basis.
+
+The focus is that you - the author - are able to concentrate on the *content*
+of your work rather than start fiddling around with the look of the document.
+Several typographic optimizations are included in order to get a final document
+that is optimized to deliver your content.
+
+Please do read [[https://github.com/novoid/LaTeX-KOMA-template/blob/master/Template-Documentation.pdf][Template-Documentation.pdf]].
+
+** Example Documents
+
+In case you want to see some example documents generated via this
+template, please do read [[https://github.com/novoid/LaTeX-KOMA-template/blob/master/Hall_of_fame.org][the Hall of Fame]].
+
+Do me a favor and *do submit the name or an URL of your final document* as well. It helps
+other people in their decision process and adds up to a very cool
+collection of results we can be proud of.
+
+#+ATTR_HTML: :style margin-left: auto; margin-right: auto;
+#+caption: Screenshot of the title page.
+[[figures/PDF preview - title page -- screenshots.png]]
+
+#+ATTR_HTML: :style margin-left: auto; margin-right: auto;
+#+caption: Screenshot of the table of contents page.
+[[figures/PDF preview - contents -- screenshots.png]]
+
+#+ATTR_HTML: :style margin-left: auto; margin-right: auto;
+#+caption: Screenshot of the first page of a chapter.
+[[figures/PDF preview - language and writing -- screenshots.png]]
+
+#+ATTR_HTML: :style margin-left: auto; margin-right: auto;
+#+caption: Screenshot of the bibliography.
+[[figures/PDF preview - bibliography -- screenshots.png]]
+
+
+** Requirements
+
+This template uses up-to-date technology like pdflatex, [[http://www.tex.ac.uk/tex-archive/info/translations/biblatex/de/][biblatex]]
+(instead of BibTeX-Format), [[http://en.wikipedia.org/wiki/Biber_(LaTeX)][biber]] (instead of bibtex-compiler), and
+optionally [[http://www.gnu.org/s/make/][GNU make.]] You should be familiar with compiling LaTeX
+documents by yourself. If you are new to LaTeX please get basic
+knowledge from tutorial pages such as [[http://LaTeX.TUGraz.at][this one]].
+
+You can find out more in [[https://github.com/novoid/LaTeX-KOMA-template/blob/master/Template-Documentation.pdf][Template-Documentation.pdf]].
+
+** What Makes This Template Special?
+
+The speciality of this consistent template is, that every setting in
+the preamble is *well documented* (in LaTeX). You can generate the
+documentation file "Template-Documentation.pdf" on your own by not
+removing the template documentation include command in the main LaTeX
+file and using [[http://www.gnu.org/software/make/][GNU make]] with the rule "templatedocu":
+
+#+begin_src sh
+make templatedocu
+#+end_src
+
+This command results in the "[[https://github.com/novoid/LaTeX-KOMA-template/blob/master/Template-Documentation.pdf][Template-Documentation.pdf]]" file
+containing the most current documentation of this template. Please
+refer to this PDF file for further information about the template.
+
+** How to Start?
+
+Please do read the "[[https://github.com/novoid/LaTeX-KOMA-template/blob/master/Template-Documentation.pdf][Template-Documentation.pdf]]" file which contains a
+"How to use this LaTeX template" section.
+
+** License
+
+This template is licensed under a [[https://creativecommons.org/licenses/by-sa/3.0/][Creative Commons
+ Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) license]]:
+
+- You can share (to copy, distribute and transmit) this template.
+- You can remix (adapt) this template.
+- You can make commercial use of the template.
+- In case you modify this template and share the derived template: You
+ must attribute the template such that you do not remove
+ (co-)authorship of Karl Voit and you must not remove the URL to [[https://github.com/novoid/LaTeX-KOMA-template][the
+ original repository on github]].
+- If you alter, transform, or build a new template upon this template,
+ you may distribute the resulting template only under the same or
+ similar license to this one.
+- There are *no restrictions* of any kind, however, related to the
+ resulting (PDF) document!
+- You may remove the colophon (but it's not recommended).
+
+** What Is Still Work in Progress?
+
+Please have a look at the file "[[https://github.com/novoid/LaTeX-KOMA-template/blob/master/template/todos.org][template/todos.org]]".
diff --git a/work_report/Template-Documentation.pdf b/work_report/Template-Documentation.pdf
new file mode 100644
index 0000000..58a0bc5
Binary files /dev/null and b/work_report/Template-Documentation.pdf differ
diff --git a/work_report/abstract.tex b/work_report/abstract.tex
new file mode 100644
index 0000000..d24c166
--- /dev/null
+++ b/work_report/abstract.tex
@@ -0,0 +1,23 @@
+%%%% Time-stamp: <2013-02-25 10:31:01 vk>
+
+
+\chapter*{Abstract}
+\label{cha:abstract}
+
+
+This is a placeholder for the abstract. It summarizes the whole thesis
+to give a very short overview. Usually, this the abstract is written
+when the whole thesis text is finished.
+
+
+
+%\glsresetall %% all glossary entries should be used in long form (again)
+%% vim:foldmethod=expr
+%% vim:fde=getline(v\:lnum)=~'^%%%%\ .\\+'?'>1'\:'='
+%%% Local Variables:
+%%% mode: latex
+%%% mode: auto-fill
+%%% mode: flyspell
+%%% eval: (ispell-change-dictionary "en_US")
+%%% TeX-master: "main"
+%%% End:
diff --git a/work_report/cleaning.tex b/work_report/cleaning.tex
deleted file mode 100644
index 070ab7d..0000000
--- a/work_report/cleaning.tex
+++ /dev/null
@@ -1,616 +0,0 @@
-% !TEX root = thesis.tex
-
-\chapter{Processing real-world datasets into clean geometric models}
-\label{ch:cleaning}
-
-The representations described in \refpa{pa:representation} and the operations described in \refpa{pa:operations} work well on perfectly \emph{valid} data.
-Objects are assumed not to overlap each other, to be properly closed with no degenerate geometries, and to have perfectly planar faces which are consistently oriented, among many other validity criteria.
-Unfortunately, as \refse{se:repair-motivation} explains, GIS processes often fail to clearly specify which criteria are expected and real-world data often fails to meet them, with consequences ranging from the innocuous to a complete inability to use a desired tool, including instances where software gives erroneous results unbeknownst to the user.
-As GIS datasets can be rather intricate and expensive to acquire, they are not easily replaceable and must therefore be \emph{repaired}, \ie\ they must be processed into geometric models that conform to certain validity specifications, so as to make them fit for use.
-
-In the context of this thesis, clean geometric models are important as they are the base for the higher-dimensional models using the representations and operations described in previous chapters.
-The following sections thus describe the background and a particular solution used in this thesis to obtain valid polygons and planar partitions in \refse{se:pprepair}, and valid polyhedra and 3D space partitions in \refse{se:3drepair}.
-The chapter concludes with a generalisation of the definition of validity in arbitrary dimensions in \refse{se:ndrepair}, which can be used for both higher-dimensional objects and space partitions.
-
-\refse{se:pprepair} is largely based on the papers:
-\begin{itemize}
-\paperpfgpprepair%
-\papercgeoprepair%
-\end{itemize}
-
-\section{Motivation}
-\label{se:repair-motivation}
-
-The representations described in \refpa{pa:representation} are each able to effectively represent a particular class of objects.
-For example, most data structures are intended for 3D space partitions whose 3D objects have surfaces that form 2-manifolds, and $n$D combinatorial maps are capable of representing subdivisions of orientable quasi-manifolds, which within this thesis are generally further limited to having only linear geometries.
-
-Similarly, the operations described in \refpa{pa:operations} can only return good results when the input fulfils certain requirements.
-For instance, the extrusion operation from \refch{ch:extrusion} requires the input data to form a space partition, the incremental construction algorithm from \refch{ch:incremental-construction} requires the ridges of the facets of an object to form matching pairs (\ie\ a quasi-manifold), and the linking approach from \refch{ch:linking-lods} will only form a valid 4D cell complex with 4-cells if a matching scheme that preserves all topological relationships between cells can be found or is provided.
-All these operations are also based on the assumption that the input cells themselves are valid, and are being completely bounded by valid lower-dimensional cells (\ie\ facets, ridges, etc.) so as to form a valid cell complex.
-
-The representations and operations presented in this thesis are not special in this sense.
-Validity assumptions are widely used in all software, especially when complex data is used as input, and are used to make many tasks more manageable, such as to interpret a dataset and load it into a particular data structure for internal usage, as well as for further operations that may be performed using this structure.
-However, GIS datasets are more complex than most other data\footnote{For instance, unlike other types of datasets, GIS objects often cannot be stored directly as a plain list of tuples, but are instead decomposed into primitives of a certain shape (\refse{se:spatial-modelling}), sometimes recursively, and these have to be defined in terms of its dimension and structure, topological relations, geometry and attributes, sometimes including rich semantics as well.}, and GIS software thus tends to make more assumptions than most other software.
-
-Moreover, though making sure that these assumptions are true is highly desirable, testing for every possible invalid configuration in a spatial dataset is cumbersome and often unnecessary for a particular task at hand, while testing for only some invalid configurations depending on what needs to be done can easily become intractable and can result in a large number of redundant tests.
-Running these validation tests can also be difficult and computationally expensive, as many tests take longer to execute than some of the common tasks that a GIS is used for (\eg\ visualisation of a dataset, simple statistical analyses, or checking the attributes of some objects).
-
-At the same time, the datasets found in the GIS world are very diverse and their properties vary significantly.
-They can be generated using a large variety of GIS, CAD and 3D modelling software based on different processes, complying to different specifications and stored in different formats, each of which follows its own internal logic and structure.
-Most importantly, GIS datasets are created for different purposes or meant for general-purpose applications (\eg\ CityGML \citep{CityGML2}).
-As such, a dataset's specifications are often only vaguely defined, are defined only with regard for a particular application, or are not conformed with in practice.
-
-\footnotetext[141]{\url{http://www.esri.com/software/arcgis/}}
-\footnotetext[142]{\url{http://www.qgis.org}}
-\footnotetext[143]{\url{http://www.safe.com/fme/}}
-\footnotetext[144]{\url{http://grass.osgeo.org/}}
-
-It is thus perhaps unsurprising that invalid GIS datasets are prevalent \citep[Ch.~7]{Panigrahi14} and a major source of problems for those who work with them.
-As shown in \reffig{fig:partially}, invalid datasets can be interpreted inconsistently in different software, leading to inconsistent or erroneous results.
-They can also make it impossible to perform a certain operation, either due to a failing precondition check or due to software crashes.
-% \footnote{Admittedly based on anecdotal evidence. However, it seems to be a consensus opinion.}.
-A partial solution to this issue lies in \emph{validating} these datasets, \ie\ identifying the problematic objects in the data so that they can be discarded or (manually) fixed.
-There are a variety of checklists and (semi) automatic tools for this purpose, such as those provided by SAFE\footnote{\url{http://blog.safe.com/2014/11/data-quality-checklist/}} and ESRI\footnote{\url{http://www.esri.com/software/arcgis/extensions/arcgis-data-reviewer/~/media/Files/Pdfs/library/fliers/pdfs/arcgis-data-reviewer-checks.pdf}}.
-\begin{figure}[tbp]
-\centering
-\subfloat[]{
-\includegraphics[height=0.35\linewidth]{figs/part-arcgis}
-\label{fig:part-arcgis}}
-\quad
-\subfloat[]{
-\includegraphics[height=0.35\linewidth]{figs/part-grass}
-\label{fig:part-grass}}
-\caption[Different interpretations of a polygon]{Different interpretations of a polygon with a hole that is partly outside its outer boundary ($p_3$ in \reffig{fig:p}).
-(a) ArcGIS\protect\footnotemark\ considers the overlapping region as a hole, but the non-overlapping part of the hole as a new polygon (QGIS\protect\footnotemark\ and FME\protect\footnotemark\ do this as well).
-(b) GRASS\protect\footnotemark\ removes the overlapping part from the polygon, becoming a new polygon with a different shape. No warning is shown in any software.}
-\label{fig:partially}
-\end{figure}
-
-For example, it is possible to incorporate a set of formal preconditions for every operation, as is done in the design by contract software engineering pattern \citep{Meyer86} or the Eiffel programming language \citep{ISO/IEC25436:2007}.
-However, simply discarding problematic (subsets of) datasets is not always feasible, as GIS datasets can be expensive to acquire and thus irreplaceable in practice, and manually fixing errors can be an extremely time-consuming process.
-In fact, according to \citet{McKenney98}, users of 3D CAD models for finite element analysis---which has similar requirements as certain computations in GIS, such as well-shaped and non-overlapping mesh elements---spend up to 70\% of their time fixing the input CAD models.
-While similar figures for GIS are to the best of my knowledge not available, it is worth noting that CAD software tends to produce better quality models than GIS software\footnote{There are many reasons for this. For instance, CAD software makes wider use of topological data structures, and also has topology-aware and smart interactive editing tools (\eg\ snapping to guide lines and nearby objects), which help to avoid problems where objects seem to be valid but have small errors, such as sliver polygons and shells that are not properly closed.}.
-
-A more complete solution therefore lies in using methods to automatically \emph{repair} a dataset, \ie\ to make it conform to a particular set of validity criteria, enabling the full use of many more datasets than would otherwise be possible.
-As this requires a rather complex defensive programming approach, testing for various types of partially overlapping cascading errors and fixing them accordingly, it is best performed separately and called as needed rather than integrated into every operation of a GIS.\@
-The following sections describe such independent repair methods as were used in this thesis, which involve the creation of valid (multi)polygons and planar partitions from 2D GIS datasets (\refse{se:pprepair}), and the creation of valid polyhedra and 3D space partitions from 3D BIM datasets (\refse{se:3drepair}).
-These were then used as input for the different experiments described in \refpa{pa:operations}.
-
-\section{Creating valid (multi)polygons and planar partitions}
-\label{se:pprepair}
-
-\subsection{What is a valid (multi)polygon or planar partition?}
-
-In most GIS file formats and the software that reads and writes them, polygons and multipolygons are defined in a manner that is consistent with the definitions in the Simple Features Specification \citep{SimpleFeatures1,ISO19125-1:2006}---an implementation of the ISO 19107 standard \citep{ISO19107:2005}.
-The specification states that: `\emph{A \texttt{Polygon} is a planar \texttt{Surface} defined by 1 exterior boundary and 0 or more interior boundaries. Each interior boundary defines a hole in the \texttt{Polygon}}'.
-Each of these boundaries is described as a \texttt{LinearRing} (\cf\ \reffigp{fig:sfs}).
-According to the specification, an outer ring should be oriented \emph{anticlockwise} when viewed from a predefined \emph{top} direction, which is generally (but not necessarily) the viewing direction in 2D or \emph{outwards} when the polygon specifies part of the boundary of a polyhedron.
-Inner rings should be oppositely oriented, \ie\ generally \emph{clockwise} when viewed from the top direction.
-
-The Simple Features Specification provides several \textbf{validity rules for polygons}, the most relevant of which are described below with examples of invalid polygons provided in \reffig{fig:p}.
-The rules can be summarised as follows:
-\marginpar{
-\captionsetup{type=figure}
-\centering
- \includegraphics[width=\marginparwidth]{figs/unitpolygons}
- \caption[Several invalid polygons]{Several invalid polygons, with their outer boundaries shown in black and their inner boundaries in grey. The orange areas represent one possible interpretation of the interior of the polygons. Polygon $p_{12}$ has an exterior and an interior boundary with the same geometry.}
-\label{fig:p}
-}
-\begin{itemize}
-\item each ring defining the exterior and interior boundaries is \emph{simple}, \ie\ non-self-intersecting ($p_{1}$ and $p_{10}$);
-\item each ring is closed ($p_{11}$), \ie\ its first and its last points should be the same;
-\item the rings of a polygon do not cross ($p_{3}$, $p_{7}$, $p_{8}$ and $p_{12}$), but they may intersect at one tangent point;
-\item a polygon does not have cut lines, spikes or punctures ($p_{5}$ and $p_{6}$);
-\item the interior of every polygon is a connected point set ($p_{4}$);
-\item each interior ring creates a new area that is disconnected from the exterior ($p_{2}$ and $p_{9}$).
-\end{itemize}
-
-Similarly, the specification provides a definition and some \textbf{validity rules for multipolygons}.
-A \texttt{MultiPolygon} is defined as a \texttt{MultiSurface} forming an aggregation of \texttt{Polygons}, which also follows certain validity criteria, which can be summarised as follows:
-
-\begin{itemize}
-\item the interiors of its polygons do not overlap, \ie\ their point set intersection should be empty;
-\item the boundaries of its polygons may only touch at a finite number of points;
-\item a multipolygon does not have cut lines, spikes or punctures;
-\item the interior of a multipolygon with more than one polygon is \emph{not} a connected point set.
-\end{itemize}
-
-Intuitively, a \emph{planar partition} is a set of polygons that form a subdivision of a region of the plane.
-Planar partitions are thus commonly used to model concepts where objects are expected not to overlap, such as land cover, cadastral parcels, or the administrative boundaries of a given country.
-Despite being a very frequently used representation in GIS, planar partitions are not explicitly defined in the main GIS standards.
-
-Within the classes in the ISO 19107 standard \citep[\S{}6.6]{ISO19107:2005}, a planar partition could be considered as a \texttt{GM\_CompositeSurface}, defined in the standard as `\emph{a collection of oriented surfaces that join in pairs on common boundary curves and which, when considered as a whole, form a single surface}'.
-By following this definition, overlaps between polygons are explicitly forbidden, as a \texttt{GM\_Complex} (a parent of \texttt{GM\_CompositeSurface}) is defined as `\emph{a set of primitive geometric objects (in a common coordinate system) whose interiors are disjoint}'.
-However, a \texttt{GM\_CompositeSurface} explicitly allows gaps between the surfaces, as these would simply result in inner rings within the overarching single surface.
-
-An alternative definition could be created based on the ISO 19123 standard \citep[\S{}6.8]{ISO19123:2007}---a standard focusing on coverages of various types.
-According to the standard, a planar partition can be considered as a type of \texttt{CV\_DiscreteSurfaceCoverage} where `\emph{the surfaces that constitute the domain of a coverage are mutually exclusive and exhaustively partition the extent of the coverage}'.
-Overlapping polygons are disallowed by them being `\emph{mutually exclusive}' and gaps are disallowed by the surfaces `\emph{exhaustively partitioning}' the extent.
-However, the standard states these conditions as something that occurs `\emph{in most cases}', whereas in a planar partition it should be considered as a strict prerequisite.
-
-In a \textbf{valid planar partition}, there should thus be no overlapping polygons, and no gaps between them either unless these gaps are considered to be outside of the region.
-These two conditions are covered by the ISO 19107 standard in a different context, when it lists some possible inconsistencies of `spaghetti' datasets represented as a \texttt{GM\_Complex}, stating that `\emph{slivers and gaps are multiple lines that should represent the same geometry, but do not coincide, leaving areas of overlap between two surface boundaries (slivers), and gaps between them}' \citep[\S{}6.2.2.6]{ISO19107:2005}.
-
-\subsection{Commonly used validation and repair methods}
-
-Starting from an arrangement of line segments that are meant to define the boundary of a (multi)polygon, there are various rules that can be used to define its interior and exterior.
-\citet{Foley95} discusses two commonly used sets of rules in vector-based graphic software, which are shown in \reffig{fig:polygoninterpretation}\footnote{\citet{Foley95} considers only polygons, but the rules as explained here also cover holes in polygons and multipolygons.}.
-\marginpar{
-\captionsetup{type=figure}
-\centering
- \subfloat[]{\includegraphics[width=\marginparwidth]{figs/oddeven}} \\
- \subfloat[]{\includegraphics[width=\marginparwidth]{figs/nonzerowinding}}
- \caption[Rules used to interpret the interior of a polygon]{(a) According to the \emph{odd-even rule}, a polygon's interior is the region(s) that can be accessed by passing through an odd number of edges from its exterior. (b) According to the \emph{non-zero winding rule}, a polygon's interior is the region(s) around which the boundaries of a polygon do a non-zero number of revolutions.}
-\label{fig:polygoninterpretation}
-}
-
-In practice, GIS users often repair invalid polygons manually.
-Among the few documented automatic solutions, it is possible to use a `buffer-by-0' operation \citep{Ramsey10} or PostGIS 2.0's \texttt{ST\_MakeValid} function\footnote{\url{http://postgis.org/documentation/manual-svn/ST_MakeValid.html}}.
-
-The validation of planar partitions is usually performed using a checklist of individual tests that together ensure its validity.
-For instance, \citet{Plumer97} specify that a valid planar partition consists of: no dangling edges, no zero-length edges, planarity, no holes, no self-intersections, no overlaps, and having a connected graph.
-However, it is worth noting that without the use of a supporting structure, some of these tests can be problematic or computationally expensive.
-For instance, checking whether any possible pair of polygons overlap can have quadratic behaviour even when heuristics to speed up the process are used \citep{Badawy99,Kirkpatrick00}, and robustness issues are significant in polygon intersection tests \citep{Hoffmann88}.
-Finding the potential gaps in a planar partition is also a problem, as it can require computing the union of the entire set of polygons \citep{Margalit89,Rivero00}.
-
-The most common method used to repair a planar partition is based on the assumption that polygons \emph{approximately} match each other at their common boundaries.
-If the adjacent polygons are within a certain distance \emph{threshold} of each other along their common boundaries (\reffig{subfig:threshold-gap}), and all parts further apart than this threshold are known not to be common boundaries (\reffig{subfig:threshold-overlap}), it is possible to \emph{snap} together the polygons using this threshold, while in theory keeping the rest untouched.
-This method of planar partition repair is available in many GIS packages, including ArcGIS, FME, GRASS and Radius Topology\footnote{\url{http://www.1spatial.com/software/radius_topology/}}.
-\marginpar{
-\captionsetup{type=figure}
-\centering
-\subfloat[]{\includegraphics[scale=0.36]{figs/threshold-gap}\label{subfig:threshold-gap}} \\
-\subfloat[]{\includegraphics[scale=0.36]{figs/threshold-overlap}\label{subfig:threshold-overlap}}
-\caption[Defining a snapping threshold]{Defining a snapping threshold taking into account: (a) gaps and (b) overlaps.}
-\label{fig:threshold}
-}
-
-The threshold value for certain input dataset(s) is then usually manually determined, either by trial and error, or by analysing certain properties of the datasets involved (\eg\ point spacing, precision, or map scale).
-However, it is often hard to find an optimal threshold for certain datasets, and sometimes impossible as such a threshold does not even exist (\eg\ because point spacing in some places might be smaller than the width of the gaps and overlaps present).
-
-\subsection{Repair using a constrained triangulation}
-
-The method developed to repair polygons and planar partitions uses a constrained triangulation of the input polygons as a base structure.
-Constrained triangulations have distinct properties that make them useful as a base for a repair algorithm.
-The can be built efficiently with a variety of approaches \citep{Guibas85,Clarkson92}, can easily be made numerically robust\footnote{Based on one robust geometric predicate that tests whether three successive points are collinear, have a clockwise or a anticlockwise orientation (\eg\ \citet{Shewchuk96a}) and the computation of new vertices at the intersections of line segments.
-A constrained Delaunay triangulation only requires an additional predicate that determines whether a point lies inside, on or outside the circle defined by three other points.}, can be used for quick traversal and point location \citep{Mucke99}, and have fast and robust implementations in several libraries, such as CGAL \citep{Boissonnat02}, Triangle\footnote{\url{https://www.cs.cmu.edu/~quake/triangle.html}} \citep{Shewchuk97} and GTS\footnote{\url{http://gts.sourceforge.net}}.
-
-The method used to \textbf{repair individual (multi)polygons} exploits these properties and consists of three broad steps, which are shown in \reffig{fig:prepair-workflow} and described as follows:
-\begin{enumerate}
- \item construction of the constrained triangulation of the line segments in the input, processing outer and inner rings identically and including an extra edge that connects the first and last vertices of a ring when these are not the same (\reffig{subfig:prepair-workflow-3});
- \item labelling of each triangle as either \emph{outside} or \emph{inside}, which is based on an extension of the odd-even rule that supports overlapping lines by adding or removing (parts of) constraints in the triangulation (\reffig{subfig:prepair-workflow-4}), taking only edges that are \emph{constraints} into account;
- \item reconstruction of the interior areas as a repaired multipolygon\footnote{The output might only be representable as a multipolygon even if the input was a polygon} (\reffig{subfig:prepair-workflow-5}).
-\end{enumerate}
-\begin{figure}[b]
-\subfloat[]{\includegraphics[width=0.25\linewidth]{figs/prepair-workflow-1}\label{subfig:prepair-workflow-1}}
-% \subfloat[]{\includegraphics[width=0.2\linewidth]{figs/prepair-workflow-2}\label{subfig:prepair-workflow-2}}
-\subfloat[]{\includegraphics[width=0.25\linewidth]{figs/prepair-workflow-3}\label{subfig:prepair-workflow-3}}
-\subfloat[]{\includegraphics[width=0.25\linewidth]{figs/prepair-workflow-4}\label{subfig:prepair-workflow-4}}
-\subfloat[]{\includegraphics[width=0.25\linewidth]{figs/prepair-workflow-5}\label{subfig:prepair-workflow-5}}
-\caption[Steps to repair a (multi)polygon using a constrained triangulation]{Steps to repair a (multi)polygon using a constrained triangulation: (a) input data, (b) triangulation, (c) labelling, and (d) reconstruction.}
-\label{fig:prepair-workflow}
-\end{figure}
-
-This method is remarkably efficient, and its implementation based on CGAL classes is able to process large polygons quickly.
-As an example, \reffig{fig:prepair} shows the process on the largest polygon in the CORINE land cover dataset\footnote{\url{http://www.eea.europa.eu/publications/COR0-landcover}}, which consists of almost 1 189 903 vertices and 7 672 holes, which is processed in under a second.
-\begin{figure*}
-\subfloat[]{\includegraphics[width=0.25\linewidth]{figs/prepair-1}\label{subfig:prepair-1}}
-\subfloat[]{\includegraphics[width=0.25\linewidth]{figs/prepair-2}\label{subfig:prepair-2}}
-\subfloat[]{\includegraphics[width=0.25\linewidth]{figs/prepair-3}\label{subfig:prepair-3}}
-\subfloat[]{\includegraphics[width=0.25\linewidth]{figs/prepair-4}\label{subfig:prepair-4}}
-\caption[Processing the largest polygon in the CORINE land cover dataset]{Processing the largest polygon in the CORINE land cover dataset: (a) outer and inner boundaries, (b) triangulation, (c) labelling, (d) reconstruction.}
-\label{fig:prepair}
-\end{figure*}
-
-The method to \textbf{repair a planar partition} then uses polygons which are known to be valid based on the previous method.
-It consists of four main steps, shown in \reffig{fig:pprepair-workflow}, and is as follows:
-\begin{enumerate}
- \item the constrained triangulation of the input segments forming the (now valid) polygons is constructed;
- \item each triangle is labelled with the labels of the polygons inside which it is located, such that problems are detected by identifying triangles having no or multiple labels;
- \item problems are fixed by re-labelling triangles according to customisable criteria, such that each triangle has exactly one label;
- \item the polygons are reconstructed from the triangulation.
-\end{enumerate}
-\begin{figure}
-\subfloat[]{\includegraphics[width=0.2\linewidth]{figs/pprepair-workflow-a}\label{subfig:prepair-workflow-a}}
-\subfloat[]{\includegraphics[width=0.2\linewidth]{figs/pprepair-workflow-b}\label{subfig:prepair-workflow-b}}
-\subfloat[]{\includegraphics[width=0.2\linewidth]{figs/pprepair-workflow-c}\label{subfig:prepair-workflow-c}}
-% \subfloat[]{\includegraphics[width=0.2\linewidth]{figs/pprepair-workflow-d}\label{subfig:prepair-workflow-d}}
-\subfloat[]{\includegraphics[width=0.2\linewidth]{figs/pprepair-workflow-e}\label{subfig:prepair-workflow-e}}
-\subfloat[]{\includegraphics[width=0.2\linewidth]{figs/pprepair-workflow-f}\label{subfig:prepair-workflow-f}}
-\caption[Steps to repair a planar partition using a constrained triangulation]{Steps to repair a planar partition using a constrained triangulation: (a) input data, (b) triangulation, (c) labelling, (d) relabelling problematic triangles, (e) reconstruction.}
-\label{fig:pprepair-workflow}
-\end{figure}
-
-Various local repair methods can thus be defined, all of which are based on choosing how to relabel a triangle which no label or with multiple labels.
-\reffig{fig:prepair-method} shows a few examples of such methods.
-\begin{figure*}
-\subfloat[]{\includegraphics[height=22mm]{figs/pprepair-method-a}\label{subfig:prepair-method-a}}
-\quad
-\subfloat[]{\includegraphics[height=22mm]{figs/pprepair-method-b}\label{subfig:prepair-method-b}}
-\quad
-\subfloat[]{\includegraphics[height=22mm]{figs/pprepair-method-d}\label{subfig:prepair-method-d}}
-\quad
-\subfloat[]{\includegraphics[height=22mm]{figs/pprepair-method-c}\label{subfig:prepair-method-c}}
-\caption[Various repair methods based on relabelling (sets of) triangles]{Various repair methods can be defined based on relabelling triangles or sets of connected triangles.
-For instance, based on (a) the input data, it is possible to relabel: (b) an invalid triangle based using its longest boundary with a neighbour, (c) an invalid region of connected triangles using its longest boundary with a neighbour, or (d) an invalid region of connected triangles using a random neighbour.}
-\label{fig:prepair-method}
-\end{figure*}
-Within this thesis, planar partitions are obtained by repairing invalid regions using the longest boundary with a neighbour (\reffig{subfig:prepair-method-d}) if possible, as this tends to produce a cartographically more pleasing result, and a random neighbour (\reffig{subfig:prepair-method-c}) otherwise.
-
-This method is able to process large datasets quickly, such as the one shown in \reffig{fig:16tiles}, which consists of 16 tiles of the CORINE land cover dataset in a 4$\times$4 configuration.
-It has 63 868 polygons with a total of 6 622 133 vertices and was processed in 4 minutes 47 seconds.
-By comparison, both ArcGIS and GRASS are unable to repair this dataset by snapping geometries, while FME repairs it in 15 minutes 48 seconds\footnote{On tests where ArcGIS and GRASS were able to process the data, they were slower than FME.}, also using snapping.
-Note that apart from the fact that snapping is slower, it does not guarantee a valid result.
-\marginpar{
-\captionsetup{type=figure}
-\centering
-\includegraphics[width=\marginparwidth]{figs/16tiles}
-\caption[A planar partition of 16 tiles of the CORINE land cover dataset]{A planar partition made from 16 tiles of the CORINE land cover dataset.}
-\label{fig:16tiles}
-}
-
-\section{Creating valid polyhedra and 3D space partitions}
-\label{se:3drepair}
-
-\subsection{Motivation: IFC input data}
-
-As discussed in \refse{ss:formats}, the data models used in 3D GIS have often favoured an approach where objects that are volumetric in reality are modelled as a set of their (visible) surfaces, which can be easily captured after the objects are built.
-In addition, the volumetric objects that are small, elongated or thin are sometimes not modelled as volumes, but they are instead respectively modelled as points, curves or surfaces.
-For instance, in 3D models encoded in CityGML \citep{CityGML2}, all objects are modelled as surfaces that do not necessarily form closed volumes, and thin objects (\eg\ roof overhangs, windows and doors) are often modelled as single surfaces.
-
-The volumetric models that are often used in CAD and BIM, such as those in IFC format \citep{ISO16739:2013}, follow a different approach, which is shown in \reffig{fig:volumetric}.
-In it, almost all real-world volumetric objects, \ie\ the objects with a non-zero volume, are modelled as volumes as well.
-This approach is more expensive in terms of space and makes certain computations more difficult, such as obtaining the volume of a room that is only represented implicitly by a set of (volumetric) walls, doors and windows around it.
-However, the approach is ultimately a more powerful representation that is closer to reality, enabling more complex operations, such as the structural analysis of a building, and eliminates the ambiguities inherent in interpreting volumetric real-world objects that have been modelled as points, curves or surfaces.
-\begin{figure}[tb]
- \centering
- \includegraphics[width=\linewidth]{figs/volumetric}
- \caption[Surface-based models vs.\ volumetric models]{A surface-based model (left) consists of a set of semantically labelled surfaces, which are shown here in different colours. A volumetric model (centre+right) instead consists of a set of semantically labelled \emph{volumes}.}
-\label{fig:volumetric}
-\end{figure}
-
-Although the volumes in such a model do not generally fit together perfectly, they can nevertheless be better processed\footnote{Akin to how a set of polygons can be better processed into a planar partition compared to a rough line drawing with undershoots and overshoots (\ie\ a typical spaghetti dataset).} into a 3D space partition consisting of a set of non-overlapping 3D objects, where each of the volumes---and optionally also their vertices, edges and faces---is labelled with appropriate semantic information\footnote{As shown in \refse{se:duality}, these lower-dimensional cells can store important information about the relationships between the objects.}.
-The result is thus a \emph{space-partitioning 3D model}, which is analogous to the 2D planar partitions often used to model coverages in GIS.\@
-Such a model can be stored in a computer using the topological data structures for 3D (\refse{ss:data-structures}) or $n$D (\refse{ss:cell-complexes}) cell complexes.
-
-This makes a volumetric model \emph{a better base for a higher-dimensional representation}, as it fully exploits the properties of higher-dimensional data structures and their operations.
-For instance, taking the examples of this thesis, it can be extruded into higher dimensions (\refch{ch:extrusion}) or multiple such 3D models can be linked into a single 4D model (\refch{ch:linking-lods}).
-
-A space-partitioning model is also better able to take advantage of the complex 3D models that are already created during the design and construction processes of a building, such as the faces that form a room, storey or building.
-This avoids the need to extract or abstract appropriate surfaces for their recreation in a GIS model, such as was done by \citet{Donkers13}.
-Since architectural and BIM models have a strong emphasis on representing individual 3D elements that need to be designed, manufactured and put together, such as those shown in \reffig{fig:fzk}, as well as the fact that these elements generally do not overlap in reality (except as part of hierarchies), they are ideally suited to be used in a space-partitioning model.
-\begin{figure}[tbp]
- \centering
- \includegraphics[width=\linewidth]{figs/ifc}
- \caption[An IFC model of the FZK-house]{An IFC model of the FZK-house\footnotemark\ contains a complex representation of the structural elements of the building. Note how the volumes in this model fit together, having no overlaps even in places that are normally not visible (\eg\ the beam ends which are embedded in the walls).}
-\label{fig:fzk}
-\end{figure}
-\footnotetext{\url{http://iai-typo3.iai.fzk.de/www-extern/index.php?id=1174&L=1}}
-
-\subsection{What is a valid solid or 3D space partition?}
-
-The ISO 19107 standard \citep[\S{}6.3.18]{ISO19107:2005} defines 3D objects with 3D holes that are known as \emph{solids}, which are specified based on a boundary representation scheme.
-As shown in \reffig{fig:iso-brep}, the standard thus defines a \texttt{GM\_Solid} with a \emph{boundary} operation returning a \texttt{GM\_SolidBoundary}, which is a `\emph{sequence of sets of \texttt{GM\_Surfaces} that limit the extent of [the] \texttt{GM\_Solid}}'.
-Each of these sets of surfaces describes one of the boundaries of the \texttt{GM\_Solid} as a \texttt{GM\_Shell}, corresponding to either the outer boundary for the solid\footnote{In some cases, there might not be an outer boundary of a solid, such as in non-Euclidean spaces or in the representation of unbounded solids. However, there is nearly always an outer boundary in the context of geographic information.} or one of its holes.
-
-\begin{figure}[tbp]
-\centering
-\includegraphics[width=\linewidth]{figs/iso-brep}
-\caption[The boundary representation scheme in ISO 19107]{The ISO 19107 standard \citep[\S{}6.3.2]{ISO19107:2005} is able to specify the boundaries of \texttt{GM\_Curve}, \texttt{GM\_Surface} and \texttt{GM\_Solid} as subclasses of \texttt{GM\_Boundary}, respectively a \texttt{GM\_CurveBoundary} linked to a pair of \texttt{GM\_Point} (the end-points of a line segment), \texttt{GM\_SurfaceBoundary} linked to a set of instances of \texttt{GM\_Ring}, and a \texttt{GM\_SolidBoundary} linked to set of instances of \texttt{GM\_Shell}.}
-\label{fig:iso-brep}
-\end{figure}
-
-A \texttt{GM\_Shell} \citep[\S{}6.3.8]{ISO19107:2005} thus represents `\emph{a single connected component of a \texttt{GM\_SolidBoundary}}'.
-It is known to be \emph{simple}, and consists of a set of oriented instances of \texttt{GM\_Surface} composed of instances of \texttt{GM\_SurfacePatch}, which intuitively form a cellular subdivision of the surface and themselves have a \texttt{GM\_SurfaceBoundary}.
-A \texttt{GM\_SurfaceBoundary} represents an area potentially with any number of holes, each of which is stored as a reference to a \texttt{GM\_Ring}.
-A \texttt{GM\_Ring} \citep[\S{}6.3.6]{ISO19107:2005} is additionally defined as being \emph{simple}.
-
-\texttt{GM\_Object} \citep[\S{}6.2.2]{ISO19107:2005}, a parent class to all the classes previously mentioned, defines every object as a point set and provides the definition of simple as a `\emph{GM\_Object [that] has no interior point of self-intersection or self-tangency.
-In mathematical formalisms, this means that every point in the interior of the object must have a metric neighborhood whose intersection with the object is isomorphic to an $n$-sphere, where $n$ is the dimension of this \texttt{GM\_Object}}'.
-As discussed by \citet{Ledoux13}, this implies that shells are effectively 2-manifolds.
-Rings are similarly 1-manifolds.
-
-It is important to note that even though each \texttt{GM\_Ring} and \texttt{GM\_Shell} is individually simple, the boundary of the \texttt{GM\_Surface} or \texttt{GM\_Solid} that they together describe does not need to be simple.
-A common example would involve an inner ring/shell tangent to the outer ring/shell containing it.
-Arguably, the standard does appear to explicitly forbid intersections between the interior of rings or shells as \texttt{GM\_Complex} is a parent class of \texttt{GM\_SurfaceBoundary} and \texttt{GM\_SolidBoundary} and this class requires its composing primitives to be `\emph{geometrically disjoint}'.
-However, this interpretation is problematic as it would arguably also forbid inner rings being inside their containing outer ring.
-
-Alternatively, it is possible to consider that the standard does not specify \emph{any} restrictions regarding the interactions between rings of a surface or between shells of a solid.
-As the standard explicitly states that `\emph{implementations may enforce stronger restrictions on the interaction of boundary elements}', it might be the responsibility of other implementing standards to place appropriate restrictions.
-
-Although the GML standard \citep{GML3.2.1} implementing ISO 19107 does not specify such restrictions, it is possible to use those defined in the Simple Features Specification in 2D (\refse{se:pprepair}) and define analogous ones in 3D \citep{Ledoux13}.
-One possible formulation of these could be as follows:
-
-\begin{itemize}
-\item the shells of a solid do not cross, but the shells on the boundary of a solid may intersect only at a vertex or edge;
-\item the interior of every solid is a connected point set;
-\item each interior shell creates a new volume that is disconnected from the exterior.
-\end{itemize}
-
-Intuitively, a 3D space partition is a subdivision of a region of 3D space into non-overlapping solids.
-However, just as with planar partitions, 3D space partitions are usually not strictly defined.
-Following the same logic as with planar partitions in \refse{se:pprepair}, a 3D space partition can be considered as an ISO 19107 \texttt{GM\_CompositeSolid} \citep[\S{}6.6.13]{ISO19107:2005}, which is defined in the standard as a `\emph{a set of solids that join in pairs on common boundary surfaces to form a single solid}'.
-While overlapping solids are explicitly forbidden by a \texttt{GM\_CompositeSolid} inheriting from \texttt{GM\_Complex} in which `\emph{[primitive] interiors are disjoint}', gaps between the solids are explicitly allowed.
-
-An alternative definition could also be created based on the ISO 19123 standard by considering a 3D space partition as a type of \texttt{CV\_DiscreteSolidCoverage} \citep[\S{}6.10]{ISO19123:2007}, which states that `\emph{generally, the solids that constitute the domain of a coverage are mutually exclusive and exhaustively partition the extent of the coverage}'.
-While overlaps and gaps are respectively eliminated by the `\emph{mutually exclusive}' and `\emph{exhaustively partition}' conditions, the word `\emph{generally}' implies that these are not always enforced.
-
-\subsection{Common problems for 3D objects in an IFC file}
-
-An IFC model in theory consists of a set of 3D objects that mostly do not overlap.
-However, there are a few common problems that cause some of these 3D objects to be invalid or prevents them from forming a clean space partition.
-The most significant of these are the following:
-
-\begin{figure*}[tbp]
-\subfloat[]{\includegraphics[width=0.325\linewidth]{figs/ioh-diff-w}\label{subfig:ioh-diff-w}}
-\enspace%
-\subfloat[]{\includegraphics[width=0.325\linewidth]{figs/ioh-diff-wo}\label{subfig:ioh-diff-wo}}
-\enspace%
-\subfloat[]{\includegraphics[width=0.325\linewidth]{figs/ioh-diff-o}\label{subfig:ioh-diff-o}}
-\caption[Openings in the IfcOpenHouse dataset]{In the (a) IfcOpenHouse dataset\protect\footnotemark, the openings where the windows and door fit are not explicitly carved out from the wall volumes.
-Instead, the dataset consists of (b) walls with simple shapes and (c) the openings themselves as large boxes.
-A Boolean point set difference thus needs to be computed in order to obtain the final explicit geometries.}
-\label{fig:ioh-diff}
-\end{figure*}
-\footnotetext{\url{http://blog.ifcopenshell.org/2012/11/say-hi-to-ifcopenhouse.html}}
-
-\begin{description}
-
-\item[Implicit geometries] Objects are often represented using sweeps, intersections of half-spaces and Boolean set operations, such as in the case of openings as shown in \reffig{fig:ioh-diff}.
-These need to be converted to explicit (boundary representation) objects that can be made to fit with other objects.
-As these need to be discretised, they will often not perfectly match the shape of the original objects, sometimes creating problems in their interaction with other objects.
-
-\item[Local coordinate systems] Objects are defined using a local coordinate system, which might differ per object.
-As the parameters of these coordinate systems are stored (and computed) in a finite computer representation, this will cause the objects not to fit together perfectly.
-In addition, applying a transformation to embed all objects into a unique coordinate system using computed arithmetic will cause additional problems.
-The result is that objects that visually appear to fit together do not actually do so, having small gaps and overlaps between them as shown in \reffig{fig:ioh-small}.
-
-\item[Hidden intentional overlaps] Not caring about hidden object intersections is common practice in most 3D modelling approaches.
-By not caring about these intersections, it is possible to ease and speed up the modelling process by using simpler volumes (\eg\ boxes or rectangles) than would otherwise be required and hiding their undesirable parts behind or inside other objects, as is shown in \reffig{fig:ioh-large}.
-
-\end{description}
-
-\begin{figure*}[tbp]
-\subfloat[]{\includegraphics[width=0.325\linewidth]{figs/ioh-1}\label{subfig:ioh-1}}
-\enspace%
-\subfloat[]{\includegraphics[width=0.325\linewidth]{figs/ioh-2}\label{subfig:ioh-2}}
-\enspace%
-\subfloat[]{\includegraphics[width=0.325\linewidth]{figs/ioh-3}\label{subfig:ioh-3}}
-\caption[The volumes in the IfcOpenHouse dataset do not fit together]{The volumes in the (a) IfcOpenHouse dataset do not perfectly match each other at their common boundaries.
-(b) The two volumes forming the roof actually do not touch, causing the house not to be closed.
-(c) The left wall and the foundation volumes have a small overlapping portion (\ie\ the wall sinks inside the foundation).}
-\label{fig:ioh-small}
-\end{figure*}
-
-\begin{figure*}[tbp]
-\subfloat[]{\includegraphics[width=0.325\linewidth]{figs/ioh-4}\label{subfig:ioh-4}}
-\enspace%
-\subfloat[]{\includegraphics[width=0.325\linewidth]{figs/ioh-5}\label{subfig:ioh-5}}
-\enspace%
-\subfloat[]{\includegraphics[width=0.325\linewidth]{figs/ioh-6}\label{subfig:ioh-6}}
-\caption[A large overlap in the IfcOpenHouse dataset]{(a) The right wall and the right roof volumes in the IfcOpenHouse dataset visually appear to match each other, but the (b) right wall and (c) right roof are modelled as parallelepipeds, so they have a non-empty intersection (a triangular pyramid).}
-\label{fig:ioh-large}
-\end{figure*}
-
-\subsection{Commonly used validation and repair methods}
-
-In order for software to be able to process invalid polyhedra, various automatic validation and repair methods have been developed, detecting and/or fixing some of the possible invalid configurations that can exist.
-The possible invalid configurations are many and partly overlap or cascade (from lower to higher dimensions), but a possible list can be generated by systematically exploring those that occur at the ring, polygon, shell and solid levels\footnote{In theory, errors can occur at the point and edge level, such as a lack or excess of coordinates, but on a typical GIS input file these would be generally considered as syntactic rather than geometric errors.}.
-For instance, \citet{Wagner13} tests for 13 types of invalid configurations while \citet{Ledoux13} tests for 26, notably including: consecutive points in a ring with the same coordinates, rings that are not closed or self-intersect, polygons with intersecting rings or with an inner ring outside the outer ring, shells that are not closed or are not 2-manifold, and solids with intersecting shells.
-
-\textbf{Repairing individual rings and polygons} can be basically done using the processes outlined in \refse{se:pprepair}, even if these are embedded in 3D rather than 2D.
-For this, rings and polygons can be first projected onto a certain plane (\eg\ the best-fitting one, or one obtained by disregarding a coordinate of its vertices in a manner that does not create new degenerate shapes) or a restricted triangulation \citep[Ch.~13]{Cheng12} could be used as a basis for a repair procedure.
-
-\textbf{Repairing shells and solids} are problems that are also partly related to those discussed previously, as
-a shell can be seen as a planar partition that wraps around an object, \ie\ it is watertight, while the constraints that define how the inner and outer shells of a valid solid should interact are similar to those defining the interaction of inner and outer rings within a valid polygon.
-However, the methods that have been presented previously are much less applicable to shells and solids.
-
-Instead, a shell can often be seen as a mesh that \emph{should} be closed, and it is thus possible to repair individual shells with the procedures used for surface reconstruction and mesh repair.
-There are various good surveys of the methods that can be used to repair various problems in polygonal meshes, such as \citet{Ju09} and \citet{Attene13}.
-Some of these problems and their respective methods are summarised below.
-However, it is important to notice that many methods are intended for meshes representing the boundary of a single `smooth' 2-manifold, making them not applicable to the great majority of BIM and GIS models where perpendicular angles are common (\eg\ those between walls and floors/ceilings).
-
-\citet{Rossignac99a} propose a method to make polygonal meshes combinatorial manifolds, determining an appropriate order for a set of edges around a face or for a set of faces bounding a volume such that non-manifolds can be stored using a manifold data structure (\reffigp{fig:nonmanifold-012}).
-\citet{Gueziec01} treat the problem from a geometric point of view, converting non-manifold edges into thin volumes by cutting and joining the mesh around them.
-\citet{Attene09} propose a method to make tetrahedral meshes\footnote{assuming a tetrahedron-based data structure with adjacency relationships to other tetrahedra} manifold---something that can be used also for solids by computing their constrained tetrahedralisation.
-
-In a similar manner as in GIS, small gaps in a mesh (causing a shell not to enclose any space) can be naively repaired by snapping vertices \citep{Rock92}, but this requires an error-prone threshold and can lead to topological errors.
-Iteratively snapping boundary edges together works better \citep{Sheng95}, as it is possible to start from a single corresponding pair of edges, and then iteratively `zip' together corresponding edges that are adjacent to these.
-\citet{Barequet95} follows a related approach, matching certain edges and triangulating the remaining gaps.
-\citet{Turk94} shows how overlapping triangular meshes\footnote{As overlaps are embedded in 3D, they need to be defined from a given point of view.} can be fixed by clipping all but one of a set of overlapping triangles, retriangulating them afterwards.
-
-Holes in a mesh, which tend to be bigger than gaps and reflect missing parts of a surface (\eg\ the bottom of a house, the sides of a terraced house, or a surface that is hidden from a typical point of view), require different methods.
-In many cases, a hole is close to planar and can thus be simply projected to 2D and triangulated \citep{Bohn92}.
-However, in other cases the holes are far from planar, and it is thus necessary to use more complex methods.
-For instance, \citet{Levy03} fills holes while attempting to minimise a certain objective function representing the energy needed to fill it, \citet{Wang07} uses moving least squares fitting of the points around it\footnote{Proposed by \citet{Lancaster81}, it is a widely used surface reconstruction method based on interpolating a set of points.} and \citet{Podolak05} does so by subdividing space into regions deemed to be completely in or out of the shell.
-\citet{Nooruddin03}, \citet{Bischoff05} and \citet{Hetroy11} use voxel-based methods to attempt to determine the interior and exterior of a shell and thus close a mesh.
-
-Specifically in the context of buildings, which have different characteristics from many other meshes such as sharp corners and orthogonal surfaces, \citet{Bogdahn10} and \citet{Alam13} propose two methods that create a smooth 2-manifold, but do not guarantee their results.
-\citet{Zhao14} attempts to solve gaps, holes and overlaps in a building mesh simultaneously by using a constrained tetrahedralisation \citep{Si05} of a set of faces, progressively carving away tetrahedra that are deemed as not belonging to its interior based on a set of rules.
-The possible intersections between the faces are explicitly computed by the constrained tetrahedralisation, so that the starting tetrahedra form a 3D space subdivision.
-
-Finally, the problem of creating a valid 3D space partition is loosely related to mesh simplification and more closely to the \emph{topological reconstruction} of a 3D model, which sometimes deals with computation of topological relationships from imperfect datasets.
-Generally, the latter methods work by snapping the geometries that lie within a threshold.
-For instance, \citet{Horna06} snaps together generalised map darts that lie within a threshold $\varepsilon$, connecting them by the appropriate involution $\alpha$, which is based on the steps of the reconstruction process.
-
-\subsection{Repair using snapping and Boolean set operations}
-
-Despite the fact that the methods presented above fix many of the problems in individual 3D objects, these methods are not always sufficient to create a valid 3D space subdivision.
-For instance, the methods that are based on snapping are unable to create a space partition when adjacent geometries are farther than the snapping threshold or their overlapping regions have a width larger than the threshold.
-Similarly, most methods to repair meshes do not guarantee that they form properly enclosed spaces and cannot deal well with solids with inner shells.
-
-A different technique that solves many of these issues was thus developed for this thesis.
-It starts from a set of separate 3D objects that \emph{approximately} form a 3D space partition, such as those that are commonly found in IFC building models.
-The method starts by handling every object separately, obtaining a valid interpretation of each that is stored in an exact representation.
-It then snaps objects together in order to remove small gaps and overlaps at their common boundaries.
-Finally, it uses Boolean set operations to remove larger overlaps and in order guarantee that a 3D space partition is obtained.
-Unlike most repair methods used in GIS, it tries to avoid triangulating every face of an object but still manages to obtain perfectly planar faces (in memory).
-These steps required are described in detail as follows:
-
-\begin{enumerate}
-\item
-\textbf{Rough individual polyhedra}
-One or more `rough' polyhedral representations of every object are first extracted from the input model.
-These rough representations should be combinatorially valid quasi-manifolds, being composed of patches that join in pairs at their common boundaries.
-However, at this stage the polygonal patches can have geometric issues, such as not being planar and might intersect geometrically.
-
-In order to obtain the rough polyhedral representations, every object is first individually parsed, converting implicit geometries into explicit geometries using Boolean set operations (\reffig{fig:ioh-diff}) and triangulating curved surfaces.
-A transformation is then applied to convert every object's coordinates to a global coordinate system.
-Finally, the faces of every object are extracted, object by object, and used to incrementally construct a set of polyhedra.
-This is done by starting from a given face and attempting to add adjacent faces until a closed shell is formed, which is repeated until all faces of an object are processed or the remaining faces cannot form any closed shells.
-
-\item
-\textbf{Clean individual polyhedra}
-Clean individual polyhedra are then created from the rough polyhedra.
-In order to do this, the best fitting plane to the vertices of each face is first computed using linear least squares (\reffig{fig:faceplanes}) and is stored as a plane equation.
-Considering these planes as \emph{constraints}, all the vertices of every polyhedron are moved to an exact intersection of as many as possible of its incident face planes using a greedy algorithm unless this would result in a too large shift (as defined by a threshold).
-If some plane constraints could not be met, the corresponding faces are triangulated, thus becoming perfectly planar.
-The planes of these new triangular faces are computed.
-
-\begin{figure}[tbp]
-\subfloat[]{\includegraphics[width=0.45\linewidth]{figs/faceplanes-1}}
-\quad
-\subfloat[]{\includegraphics[width=0.45\linewidth]{figs/faceplanes-2}}
-\caption[Computing the best fitting plane of every face]{The best fitting plane to the vertices of every face is computed, here showing those belonging to (a) the floor, back right wall, back left wall and back eave, and (b) the front left wall, front right wall and front eave.}
-\label{fig:faceplanes}
-\end{figure}
-
-\item
-\textbf{Snapping vertices together}
-The vertices of the polyhedra that lie within a threshold are snapped together, which removes most of the small gaps and overlaps in the model (\reffig{fig:snapping}).
-This applies to vertices belonging to the same or to different polyhedra.
-The snapped vertices are now considered \emph{immovable}.
-Iterating through all the faces of the polyhedra, if a face has at least three immovable non-collinear vertices, the plane passing through these vertices is computed and it is considered as \emph{fixed}.
-When there are more than three non-coplanar vertices, the face is triangulated and the faces with three immovable vertices are also considered as \emph{fixed}.
-
-\marginpar{
-\captionsetup{type=figure}
-\centering
-\subfloat[]{\includegraphics[width=\marginparwidth]{figs/snapping-1}}\\
-\subfloat[]{\includegraphics[width=\marginparwidth]{figs/snapping-2}}
-\caption[Vertex snapping]{(a) The vertices of different polyhedra that lie within a threshold are snapped together, thus (b) removing a small gap.
-A small overlap works in the same manner.}
-\label{fig:snapping}
-}
-
-\item
-\textbf{Snapping vertices to fixed planes}
-The vertices that are still considered movable are then snapped to nearby fixed planes, if any, eliminating certain other small gaps and overlaps that do not have vertices in common (\eg\ the steps in front of the IfcOpenHouse shown in \reffig{fig:ioh-steps}, which are actually not touching the house's foundation).
-For this, iterating through every movable vertex, if it is incident to three or more faces with non-coplanar fixed planes and their intersection lies within a threshold of the vertex's current position, the vertex is moved to the intersection of three of these planes and considered as immovable.
-If it has more than three incident faces with non-coplanar fixed planes, the faces of the planes that were not used, and are thus now not perfectly planar, are triangulated.
-This step can be repeated a given number of times, increasing the number of immovable vertices.
-
-\marginpar{
-\captionsetup{type=figure}
-\centering
-\includegraphics[width=\marginparwidth]{figs/ioh-steps}
-\caption[The steps of the IfcOpenHouse]{The steps of the IfcOpenHouse do not actually touch the house's foundation.
-Note that it also does not have common vertices with the foundation, so this gap cannot be closed by vertex-to-vertex snapping, but it can be closed by snapping its vertices on the left to the foundation's right plane.}
-\label{fig:ioh-steps}
-}
-
-\item
-\textbf{Fixing the remaining vertices}
-The remaining movable vertices are fixed to their incident faces' fixed planes or to their current location.
-For this, iterating through every movable vertex, the same procedure as the step above is followed.
-However, if a vertex has less than three incident faces with non-coplanar fixed planes, the vertex is fixed to the position on the intersection of its incident faces' fixed planes that is closest to the vertex's current position.
-These moved vertices are also considered as fixed and their incident faces' planes are recomputed if necessary.
-
-\item
-\textbf{Creating individual Nef polyhedra}
-A Nef polyhedron is created from every polyhedral representation using the precomputed planes for each face.
-Note that the exact representations of each plane (in the form of plane equations) are thus kept in this process.
-
-\item
-\textbf{Add the structural types}
-The Nef polyhedra representing structural types (\eg\ walls, slabs and beams) are incrementally added to a model, making sure that a new Nef polyhedron does not intersect the previously added ones.
-This is done using a Boolean set difference with a Nef polyhedron containing all previously added polyhedra, which is then regularised.
-
-\item
-\textbf{Remove the opening types}
-The Nef polyhedra representing openings are carved out from the structural types by a Boolean set difference whose result is then regularised.
-They are also carved out from the Nef polyhedron representing the entire model.
-
-\item
-\textbf{Add the fixture types}
-The Nef polyhedra representing fixtures (\eg\ windows, doors, railings and frames) are incrementally added to the model in the same manner as the structural types.
-The fixtures will often fit into the openings carved out in the previous step.
-
-\end{enumerate}
-
-The output of these steps is thus a list of Nef polyhedra representing each object using exact arithmetic.
-As these are regularised, they are known to contain their boundary.
-Because of this, the common faces of a pair of adjacent polyhedra are easy to obtain through the computation of their Boolean set intersection, which can be implemented quickly.
-These faces can therefore be used to easily compute a topological representation of the 3D space subdivision.
-
-This 3D repair method was implemented with the help of several libraries: IfcOpenShell is used to parse the IFC file, Open CASCADE is used to triangulate implicit representations and to transform the objects' coordinates to a global coordinate system, CGAL \texttt{Polyhedron\_3} is used to construct a half-edge representation of every polyhedron, and CGAL \texttt{Nef\_polyhedron\_3} is used to store every Nef polyhedron and to perform the Boolean set operations between them.
-
-\section{Dimension-independent validity criteria}
-\label{se:ndrepair}
-
-The previous sections have expanded on the criteria that define what is a valid object or space partition of objects in 2D and 3D.
-They also described some methods that can be used to make real-world data comply with these criteria, enabling the data to be used for more applications.
-As this thesis aims at utilising real-world higher-dimensional data, it is important to also consider what criteria can be used to define validity in higher-dimensional data.
-
-The standards for geographic information in 2D and 3D described previously (Simple Features \citep{SimpleFeatures1}, GML \citep{GML3.3} and ISO 19107 \citep{ISO19107:2005}) are in theory limited to 2D and 3D.
-Concretely, the ISO 19107 standard explicitly states that `\emph{this International Standard is restricted to at most three dimensions}'.
-However, all of these standards are easily extensible to higher dimensions.
-This would mostly involve the addition of new classes and corresponding definitions.
-However, the standards do contain minor hard-coded assumptions that are only valid for the 2D and 3D cases, such as how ISO 19107 and GML consider orientable curves and surfaces, but not orientable solids (\reffigp{fig:gml}).
-
-This section therefore defines higher-dimensional objects in a manner that is (mostly) harmonious with the standards used in the GIS world.
-An $n$-cell can be thus represented by the set of $(n-1)$-cells in its (outer) boundary, using a similar mechanism as how other boundaries are represented in the ISO 19107 standard, which was shown previously in \reffig{fig:iso-brep}.
-
-\begin{figure}
-\centering
- \includegraphics[width=0.7\linewidth]{figs/iso-cell-brep}
- \caption[A dimension-independent cell harmonised with ISO 19107]{A dimension-independent definition of a cell in a harmonised manner with other classes in the ISO 19107 standard \citep{ISO19107:2005}.}
-\label{fig:iso-cell-brep}
-\end{figure}
-
-Following the terminology used in the standard and as shown in \reffig{fig:iso-cell-brep}, such an extension of the would mainly entail a \texttt{GM\_OrientableGeometricPrimitive} with a \texttt{dimension} attribute, which would set to $n$.
-This class would be analogous to \texttt{GM\_OrientableCurve} for \texttt{dimension} 1, \texttt{GM\_OrientableSurface} for \texttt{dimension} 2 and a newly created \texttt{GM\_OrientableSolid} for \texttt{dimension} 3, which would be a subclass of \texttt{GM\_OrientablePrimitive}.
-The \texttt{GM\_OrientableGeometricPrimitive} would be bounded by a \texttt{GM\_GeometricPrimitiveBoundary}, which would be linked to aggregations of $(n-1)$-dimensional instances of a newly created \texttt{GM\_Cell} (with their \texttt{dimension} attribute set to $n-1$).
-This \texttt{GM\_Cell} class would be analogous to \texttt{GM\_Point} for \texttt{dimension} 0, \texttt{GM\_Curve} for \texttt{dimension} 1, \texttt{GM\_Ring} for \texttt{dimension} 2, and \texttt{GM\_Shell} for \texttt{dimension} 3.
-Each of the instances of \texttt{GM\_Cell} bounding a \texttt{GM\_OrientablePrimitive} would represent either the outer boundary of the geometric primitive (if any), or one of any number of inner boundaries representing $n$-dimensional holes.
-This extension of the standard would seem to follow most in the spirit of ISO 19107.
-
-However, other alternative extensions could be considered.
-As \texttt{GM\_Curve}, \texttt{GM\_Surface}, and \texttt{GM\_Solid} would essentially be special cases of \texttt{GM\_Cell}, all of the former could be seen as redundant and eliminated.
-However, the standard already contains many specialisations that are somewhat redundant but that cover common use cases in geographic information, such as \texttt{GM\_Triangle} and \texttt{GM\_Tin}.
-Another possibility would be considering \texttt{GM\_Curve}, \texttt{GM\_Surface}, and \texttt{GM\_Solid} as subclasses of \texttt{GM\_Cell} or substituting the abstract \texttt{GM\_Primitive} for a non-abstract \texttt{GM\_Cell}, but this would involve a major change in the standard and seems to run counter to the preferred use of abstract top classes in the standard.
-
-The definition of an \texttt{GM\_OrientableGeometricPrimitive} as explained above also lends itself to the definition of sets of disjoint cells (akin to the \texttt{Multi\ldots}\ classes in the standard) and cell complexes (akin to the \texttt{Composite\ldots}\ classes in the standard), which could also be handled in the same manner as in the ISO 19107 standard.
-As shown in \reffig{fig:iso-composites}, the standard already defines composite curves, surfaces and solids, which are equivalent to 1-, 2- and 3-dimensional cell complexes.
-A \texttt{GM\_CompositeCurve} is `\emph{a list of orientable curves (\texttt{GM\_OrientableCurve}) agreeing in orientation in a manner such that each curve (except the first) begins where the previous one ends.}', a \texttt{GM\_CompositeSurface} is `\emph{a collection of oriented surfaces that join in pairs on common boundary curves}', and a \texttt{GM\_CompositeSolid} is `\emph{a set of solids that join in pairs on common boundary surfaces}'.
-
-\begin{figure}
-\centering
- \includegraphics[width=\linewidth]{figs/iso-composites}
- \caption[Cell complexes in the ISO 19107 standard]{The cell complexes of dimension 1, 2 and 3 are respectively defined in the ISO 19107 standard \citep[\S{}6.6.3]{ISO19107:2005} as the classes \texttt{GM\_CompositeCurve}, \texttt{GM\_CompositeSurface} and \texttt{GM\_CompositeSolid}.}
-\label{fig:iso-composites}
-\end{figure}
-
-A similarly defined \texttt{GM\_CompositeGeometricPrimitive}, shown in \reffig{fig:iso-compositecell} which should contain the \texttt{dimension} as a parameter, would thus be equivalent to a representation of a space partition of any dimension that allows objects with holes.
-It could be defined as `a set of $n$-dimensional orientable geometric primitives (\texttt{GM\_OrientableGeometricPrimitive}) that join in pairs on common $(n-1)$-dimensional boundary geometric primitives'.
-Note that this implies that the primitives combinatorially form an $n$-quasi-manifold, although geometrically they might not do so due to the presence of holes.
-
-\marginpar{
-\captionsetup{type=figure}
-\centering
-\includegraphics[width=\marginparwidth]{figs/iso-compositecell}
-\caption[An $n$D space subdivision harmonised with ISO 19107]{A definition of an $n$-dimensional space subdivision in a harmonised manner with other classes in the ISO 19107 standard \citep{ISO19107:2005}.}
-\label{fig:iso-compositecell}
-}
-
-Following the validity criteria previously described in \refse{se:pprepair} and \refse{se:3drepair}, it is possible to define additional validity criteria for an $n$-dimensional geometric primitive, which would serve to specify the conditions upon which its bounding cells may interact.
-These would be as follows:
-
-\begin{itemize}
-\item the bounding $n$-cells of an $n$-dimensional geometric primitive do not cross, but they might intersect only at a cell of dimension $n-1$ or lower;
-\item the interior of every geometric primitive is a connected point set;
-\item each interior $n$-cell creates a new point set in $\mathbb{R}^n$ that is disconnected from the exterior.
-\end{itemize}
-
-Meanwhile, an $n$-dimensional space subdivision should consist of a set of $n$-dimensional geometric primitives that are mutually exclusive and exhaustively partition an extent, itself a well-defined subset of $\mathbb{R}^n$.
-As with the definitions of a planar partition and 3D space subdivision, this implies that there should be no overlapping primitives, and no gaps between them unless these gaps are considered to be outside the extent.
diff --git a/work_report/colophon.tex b/work_report/colophon.tex
new file mode 100644
index 0000000..4a1c009
--- /dev/null
+++ b/work_report/colophon.tex
@@ -0,0 +1,30 @@
+%%%% Time-stamp: <2013-03-18 14:35:00 vk>
+%% ========================================================================
+%%%% Disclaimer
+%% ========================================================================
+%%
+%% created by
+%%
+%% Karl Voit
+
+
+\newcommand{\mycolophon}{%%
+ This document
+ %% was written with \myacro{GNU}~Emacs,
+ is set in Palatino, compiled with
+ \href{http://LaTeX.TUGraz.at}{pdf\LaTeX2e} and
+ \href{http://en.wikipedia.org/wiki/Biber_(LaTeX)}{\texttt{Biber}}.
+
+ The \LaTeX{} template from Karl Voit is based on
+ \href{http://www.komascript.de/}{KOMA script} and can be found
+ online: \href{https://github.com/novoid/LaTeX-KOMA-template}{https://github.com/novoid/LaTeX-KOMA-template}
+}
+
+
+%%% Local Variables:
+%%% mode: latex
+%%% mode: auto-fill
+%%% mode: flyspell
+%%% eval: (ispell-change-dictionary "en_US")
+%%% TeX-master: "../main"
+%%% End:
diff --git a/work_report/conclusions.tex b/work_report/conclusions.tex
deleted file mode 100644
index a2e1109..0000000
--- a/work_report/conclusions.tex
+++ /dev/null
@@ -1,272 +0,0 @@
-% !TEX root = thesis.tex
-
-\chapter{Conclusions and future work}
-\label{ch:conclusions}
-
-% Introduction / about topic?
-
-There are a great number of possible representations for spatial information, each of which with its own benefits and drawbacks and only some of which have been discussed in this thesis.
-From an engineering point of view, choosing an appropriate representation for a given system or task is a fundamental issue, as this choice cascades down to almost every engineering decision and indirectly affects a GIS program's every functionality.
-Among other aspects, it affects the type of objects that can be efficiently stored and the operations that can be easily performed on them, and it also has important computational consequences in terms of both memory and processing time.
-
-The 2D representations that dominate the GIS world work well for 2D datasets and problems that are essentially two-dimensional, but many problems arise when they are adapted to model 3D, spatiotemporal and multi-scale geographic information.
-Most research in GIS is devoted to improving these adaptations, as well as to developing new methods that build on them to solve problems both old and new.
-
-This thesis pushes GIS research in a different direction, starting from the assumption that many issues in GIS can probably be better solved by using a new, fundamentally different modelling approach---modelling both spatial and non-spatial characteristics as dimensions in the geometric sense, thus using higher-dimensional representations to create, manipulate and visualise geographic information.
-Accordingly, this thesis' main research objective was to \textbf{realise the fundamental aspects of a higher-dimensional Geographic Information System}, and therefore focusing on the development of higher-dimensional representations and methods for GIS.\@
-
-This concluding chapter starts with a short outlook on higher-dimensional GIS in \refse{se:isitworthit}, describing concisely
-% some of the more enticing possibilities that can be opened up by higher-dimensional models in a GIS, and
-when and where it makes sense to use higher-dimensional models.
-Afterwards, \refse{se:conclusions} describes in detail the lessons learned by pursuing this thesis' research objective.
-Finally, \refse{se:contributions} lists the main contributions of this thesis, and \refse{se:futurework} discusses the topics that I think would be most useful for future research on this topic.
-
-\section{An outlook on higher-dimensional GIS}
-\label{se:isitworthit}
-
-As this thesis has shown, there are many potential advantages to the use of higher-dimensional modelling in GIS.\@
-This approach provides \emph{a simple and consistent way to store geometry, attributes and topological relationships between objects of any dimension}.
-This generic technique can be easily extended to handle other non-spatial characteristics, enabling better data management and more powerful operations.
-At the same time, higher-dimensional representations are undoubtedly memory-intensive and often hard to work with, both due to their level of abstraction and the unintuitiveness of working with dimensions higher than three.
-Admittedly, \emph{current GIS use cases do not easily justify the higher-dimensional approach}.
-
-% Envisioning things
-
-However, a far stronger case for higher-dimensional representations emerges when considering what sort of \emph{new tools could be developed using this type of representations}, both in GIS and in related fields.
-For instance, 3D modelling software could consider time-varying topology, much as \citet{Dalstein15} do for 2D vector drawings.
-4D topology (as 3D+time) could then be used to automatically generate smooth transitions for animations.
-
-Similarly, CAD tools could use 4D topology to model buildings at different scales and timeframes automatically, keeping track of all relationships between objects and providing immediate user input during interactive editing.
-For example, a program could display how different changes affect construction time, the size of the model at predefined LODs and when certain safety constraints were violated.
-
-At a lower-level, 4D geometric modelling operators could be developed to operate directly on 4D primitives, such as splitting and merging 4-cells.
-These could also be used intuitively in an interactive environment, allowing for instance to change a building's configuration by adding and removing walls while always ensuring that the representation remains a valid 4D space partition.
-
-Considering that current GIS are very often used to manage large heterogeneous datasets and keep them up to date, a future system using a higher-dimensional underlying representation could be used to enforce certain validity constraints at the data structure level, such as avoiding 4D intersections or preserving a certain degree of continuity at LOD transitions.
-
-% Requirements, perfect data
-
-\subsection*{Is the higher-dimensional approach worthwhile?}
-
-In short, yes, but only given certain conditions.
-
-\emph{Higher-dimensional modelling is advantageous, but only when the added functionality that will be built with them---as compared to the simpler and more compact 2D/3D models---justifies it}, such as when queries across space and time can be implemented as higher-dimensional geometric/topological operations.
-As discussed in \refse{ss:dimensions}, higher-dimensional modelling makes sense only when the characteristics depicted as dimensions are \emph{parametrisable and independent from each other}, as is the case for space/time/scale, and where objects occur along a dimension as intervals, not as discrete points (which can be easily stored as attributes).
-Based on current hardware, software and the typical GIS datasets, there is another important practical requirement: the manageable number of dimensions is limited to 6--8.
-Finally, it is also worth noting that higher-dimensional models are not incompatible with standard 2D/3D data structures and methods---the best tool for the job can be chosen depending on the need at hand and both approaches can be combined.
-
-\section{Lessons learned}
-\label{se:conclusions}
-
-\begin{description}
-
-% Chapter 2 + 3
-
-\item[Current representations are not suitable in higher dimensions]
-
-The mathematical foundations of spatial data modelling (\refch{ch:modelling-mathematics}) are defined in a dimension-independent manner, including all the basic tenets of geometry and topology.
-This dimensional independence is also true for all spatial data models or representation schemes (\refch{ch:modelling-background})---at least when they are analysed at a high level---but is generally not preserved when they are implemented into more concrete data structures.
-Most 2D and 3D data structures in GIS thus only encode a few chosen geometric and topological properties (\eg\ the coordinates of each point and the adjacencies between polygons), which are often defined with a formulation that is different per dimension.
-
-This modelling approach can make for custom structures that are compact and efficient when used exactly as intended (\ie\ for a particular class of objects of a given dimension), but it can limit functionality or introduce inefficiencies when the data structures are adapted to be used under a different set of circumstances.
-Case in point, the typical data structures of 2D GIS are frequently used with minimal changes for 3D, spatiotemporal and multi-scale GIS.\@
-This results various problems, such as inefficient representations (\eg\ due to duplicate elements), an inability to represent common 3D objects (\eg\ those with a non-2-manifold boundary), difficulties in expressing 3D topological relationships (\eg\ adjacencies between solids), and the widespread availability of invalid datasets (\eg\ 3D models that do not formally enclose any space), among others.
-
-% Chapter 4 + 5
-
-\item[Higher-dimensional modelling as a solution]
-
-An alternative to the use of ad hoc adaptations to 2D data structures is to model both spatial and non-spatial characteristics as dimensions in the geometric sense (\refch{ch:nd-modelling}).
-While this approach can be memory-intensive, it provides a generic solution that can be applied to the representation of $n$D space, time, scale and any other parametrisable characteristics.
-
-A tuple of $n$ parametrisable spatial and non-spatial characteristics can thus define a coordinate system in $\mathbb{R}^n$, and lower-dimensional 0D--3D objects existing across these characteristics can thus be modelled as higher-dimensional 0D--$n$D objects embedded in higher-dimensional space.
-As GIS objects are usually non-overlapping\footnote{At least in theory.}, they should form an $n$D space partition and can thus be represented using $n$D topological data structures, reducing the total number of elements and ensuring that it is easy to navigate between the objects.
-However, even when the objects do not form a space partition, the objects themselves can be partitioned by using an intermediate representation where the original objects are transformed into a set of non-overlapping regions, such that each of these regions represents \emph{a set of the original objects} \citep{Rossignac89}.
-
-$n$D space partitions are also ideal in a practical sense, as they simplify many of the operations that can be defined with them, including simple point-in-polytope queries and all of the constructions methods presented in \refchs{ch:extrusion}--\ref{ch:linking-lods}.
-$n$D point clouds, while outside the scope of this thesis, are a good complement to $n$D space partitions, as they are close to data as it is acquired and are relatively easy to store and manipulate.
-
-\item[The most promising higher-dimensional representations]
-
-Spatial data structures often consist of two aspects: 1.\ a combinatorial part, which consists of a set of primitives and some topological relationships between them, and 2.\ an embedding that links these primitives to their geometry and attributes \citep{Lienhardt94}.
-As argued in this thesis, the knowledge of higher-dimensional topological relationships in a data structure is the main aspect that differentiates higher-dimensional data structures from 2D/3D ones.
-
-Some data structures that are frequently used in 2D/3D GIS have straightforward extensions to higher dimensions, such as $n$D \emph{rasters} and \emph{hierarchies of trees}.
-These use similar structures and algorithms as their 2D/3D counterparts and are therefore easy to understand and implement.
-
-Other data structures implement the models of an $n$D simplicial complex or an $n$D cell complex.
-As the simplices in a simplicial complex have a known number of adjacent simplices and bounding facets, they are most efficiently stored using simplex-based data structures.
-Meanwhile, cell complexes can be easily stored using incidence graphs and related structures.
-However, Nef polyhedra \citep{Bieri88} are probably the most promising representation for an $n$D cell complex, as they provide a good base to develop Boolean set operations, enabling a wide range of geometric operations.
-
-Ordered topological models such as the cell-tuple \citep{Brisson93} and generalised/combinatorial maps \citep{Lienhardt94} also deserve a special mention.
-By combining the strong algebra and easy navigation of a simplicial complex with the easy representation of a cell complex, they provide the most important benefits of both.
-They are rather memory-intensive, but it is important to note that can still be more compact than a non-topological approach (\refch{ch:operations-background}).
-
-Nevertheless, non-topological higher-dimensional representations do have a clear role to play as exchange formats, much as is the case for those based around Simple Features in 2D \citep{SimpleFeatures1}, and CityGML \citep{CityGML2} and IFC\footnote{\url{http://www.buildingsmart-tech.org/specifications/ifc-releases}} in 3D.
-
-\item[Three construction methods for higher-dimensional objects]
-
-Creating computer representations of higher-dimensional objects can be complex.
-Common construction methods used in 2D and 3D, such as directly manipulating combinatorial primitives, or using primitive-level construction operations (\eg\ Euler operators \citep{Mantyla88}), rely on our intuition of 2D/3D geometry, and thus do not work well in higher dimensions.
-It is therefore all too easy to create invalid objects, which then cannot be easily interpreted or fixed---a problem that is already exceedingly apparent in most 3D datasets.
-As an alternative to the use of simple operations on combinatorial primitives, this thesis thus proposed three higher-level methods, all of which are relatively easy to use and attempt to create valid output.
-
-% Chapter 6
-
-\item[Method I.\ constructing objects using $n$D extrusion]
-\hspace{15mm}
-Extrusion as used in GIS has a natural extension into a dimension-independent formulation (\refch{ch:extrusion}).
-Starting from an $(n-1)$-dimensional space partition as an $(n-1)$-dimensional cell complex and a set of intervals per cell, it is possible to extrude them to create an $n$-dimensional cell complex.
-It is the easiest method to load existing 2D or 3D data into a higher-dimensional structure, representing a set of cells that exist along a given dimension, such as a length of time or a range of scales.
-It is also easy to guarantee that the output cell complex is valid and can be used as a base for further operations, such as dimension-independent generalisation algorithms.
-
-The extrusion algorithm developed in this thesis works on the basis of a generalised map representation of the cell complex and is relatively fast, with a worst case complexity of $O(ndr)$ in the main algorithm, where $n$ is the extrusion dimension, $d$ is the total number of darts in the input map and $r$ is the total number of intervals in the input, but offers better complexity in practice.
-It is also memory-efficient, as only three layers of darts (of the size of the input cell complex) need to be kept in memory at the same time.
-
-% Chapter 7
-
-\item[Method II.\ constructing $n$D objects incrementally]
-
-Based on the Jordan-Brouwer separation theorem \citep{Lebesgue11,Brouwer11}, it is known that an $i$-cell can be described based on a set of its bounding $(i-1)$-cells (\refch{ch:incremental-construction}).
-Since individual $(i-1)$-cells are easier to describe than the $i$-cell, this can be used to subdivide a complex representation problem into a set of simpler, more intuitive ones.
-This method can be incrementally applied to construct cell complexes of any dimension, starting from a set of vertices in $\mathbb{R}^n$ defined by a $n$-tuple of their coordinates, and continuing with cells of increasing dimension---creating edges from vertices, faces from vertices or edges, volumes from faces and so on.
-
-The incremental construction algorithm developed in this thesis solves this problem in a practical setting by computing the topological relationships connecting the bounding $(i-1)$-cells.
-It uses indices on the lexicographically smallest vertex of every cell per dimension, as well as an added index using the lexicographically smallest vertex of the ridges around the bounding facets of the cell that is being built.
-It generates an $i$-cell in $O(d^{2})$ in the worst case, with $d$ the total number of darts in the cell.
-However, it fares markedly better in real-world datasets, as cells do not generally share the same lexicographically smallest vertex.
-By checking all matching ridges within a cell's facets, the algorithm can optionally verify that the cell being constructed forms a combinatorially valid quasi-manifold, avoiding the construction of invalid configurations.
-
-% Chapter 8
-
-\item[Method III.\ linking 3D models at different LODs into a 4D model]
-
-As an example high-level higher-dimensional object construction method, a 4D model can be constructed from a series of different 3D models at different LODs (\refch{ch:linking-lods}).
-The method presented in this thesis consists of three steps: identifying corresponding elements in different LODs, deciding how these should be connected according to a linking scheme, and finally linking relevant 3-cells into 4-cells.
-Different linking schemes yield 4D models having different properties, such as objects that suddenly appear and disappear, gradually change in size or morph into different objects along the fourth dimension.
-
-By modelling the LOD as a dimension, the correspondences between equivalent objects across LODs become geometric primitives, making it possible to perform geometric operations with them (\eg\ extracting an intermediate LOD for visualisation purposes) or to attach attributes to them (\eg\ general semantics or the meaning of these correspondences), just as is done to other geometric primitives.
-These topological relationships and correspondences can then be used for multiple applications, such as updating and maintaining series of 3D models at different LODs, or testing the consistency of multi-LOD models (\eg\ by using the validity checks in \citet{Groger11}).
-
-% Chapter 9
-
-\item[Extracting 2D/3D subsets from an $n$D model]
-
-The process to obtain a lower-dimensional subset of a higher-dimensional dataset can be regarded as a function that maps a subset of $\mathbb{R}^n$ to a subset of $\mathbb{R}^m$, $m < n$, which is obtained by cutting through the dataset in a geometrically meaningful way (\refch{ch:slicing}).
-Broadly, this process consists of two steps: (i) selecting a subset of the objects in the model and (ii) projecting this subset to a lower dimension.
-Both of these steps can vary substantially.
-Selecting a subset of the objects can be as simple as obtaining those within a axis-aligned bounding box, or can be as complex as a Boolean set intersection operation, such as for the computation of cross-sections.
-Meanwhile, there are a wide variety of transformations that apply different projections with different properties, such as the $n$-dimensional to ($n-1$)-dimensional orthographic and perspective projections derived in this thesis and the $\mathbb{R}^n$ to $S^{n-1}$ spherical projection used in its cover.
-
-% Chapter 10 + Appendix A
-
-\item[Methods to create valid objects and space partitions in 2D and 3D]
-
-Most algorithms described in computational geometry and GIS assume that their input datasets are flawless and they are processable using real numbers.
-However, invalid datasets are widespread in GIS (\refch{ch:cleaning}), and they are represented and processed using limited-precision arithmetic (\refap{ch:implementation}).
-
-In order to cope with 2D invalid datasets, this thesis further developed methods to create valid polygons and planar partitions using a constrained triangulation of the input.
-These were based on the work done in \citet{ArroyoOhori10}, improving the reconstruction algorithm, fixing edge cases, implementing an odd-even constraint counting mechanism and improving the quality of the implementation.
-Similarly, a method to repair 3D objects and space subdivisions was developed by snapping together lower-dimensional primitives and removing overlaps using Boolean set operations on Nef polyhedra \citep{Bieri88,Hachenberger06}.
-These methods were used in this thesis in order to use real-world datasets in practice, such as when applying the construction algorithms.
-
-% There is no systemic reason to tolerate invalid data
-
-\end{description}
-
-\section{Contributions}
-\label{se:contributions}
-
-The main contribution of this thesis is the realisation of the fundamental aspects of a higher-dimensional Geographic Information System.
-By approaching this problem in a practical manner, many of the technical issues of its development were investigated, including an analysis of its possible internal (in-memory) and external (exchange format) representations, the development of basic algorithms for object construction and visualisation, and the development of GIS data repair tools for 2D and 3D datasets.
-By taking a model that was previously only described at a conceptual level \citep{vanOosterom10} and realising it, it is now possible to more fully evaluate the consequences of this higher-dimensional approach.
-
-In more concrete terms, there were several smaller contributions that were necessary to be able to achieve this realisation.
-The most significant ones are:
-
-\begin{description}
-
-\item[Survey and analysis of higher-dimensional models and structures] I conducted a survey of all of the main data models and data structures used in GIS, geometric modelling and related fields, considering 2D, 3D and $n$D data structures.
-These were analysed in terms of their feasibility for the higher-dimensional modelling of geographic information, including how they could handle different geometry classes, topology and attributes, either in their current form or through modifications, as well as their ease of implementation in practice.
-
-\item[Three construction methods] I developed three easy-to-use construction methods for objects of any dimension.
-The two methods lower-level methods---extrusion and incremental construction---were implemented using CGAL Combinatorial Maps and tested using real-world datasets.
-The third method has been tested with a few synthetic datasets, but more work is necessary to fully realise it and automate it.
-All of the implementations were made available publicly under an open source licence.
-
-\item[Higher-dimensional real-world models] As part of this thesis, I created higher-dimensional models from real-world 2D and 3D datasets.
-To the best of my knowledge, these are the only datasets consisting of realistic higher-dimensional objects in a GIS setting.
-
-\item[Combinatorial map reversal] As part of the development of the incremental construction operation, I developed additional functions that were added to CGAL Combinatorial Maps after being approved by the CGAL Editorial Board.
-These functions involved reversing the orientation of a combinatorial map of any dimension.
-
-\item[Simple formulation of $n$D to ($n-1$)D projections] I developed intuitive formulations of $n$-dimensional to ($n-1$)-dimensional orthographic and perspective projections.
-While other formulations exist, my formulations based on normal vectors are in my opinion the easiest to understand and manipulate, at least for a GIS audience.
-
-\item[Repair methods tools] I developed methods to automatically repair 2D polygons and planar partitions, as well as 3D polyhedra and space partitions.
-The 2D methods were also released publicly under an open source licence as \texttt{prepair} and \texttt{pprepair}.
-The 3D methods will also be released publicly after further improvements are made, together with more thorough testing and the addition of basic documentation.
-
-\end{description}
-
-\section{Future work}
-\label{se:futurework}
-
-As this thesis challenges many of the assumptions underpinning current GIS, there are many potential lines of research that can be formulated for higher-dimensional GIS and higher-dimensional modelling in general.
-Most algorithms for 2D/3D GIS have a dimension-dependent formulation and would result in open problems in an $n$D context.
-
-However, while these are worthy of attention, I would like to focus on what are still significant gaps in knowledge for the implementation of a higher-dimensional GIS and that could not be solved in this thesis' timeframe.
-While some of these research topics are not within the main subject matter of GIS research, they are what I consider to be the key steps for a more complete implementation of a working system.
-They are:
-
-\begin{description}
-
-\item[Low-level linking algorithms] The linking schemes from \refch{ch:linking-lods} have only been described in terms of high-level algorithms.
-These should be further developed by finding adequate low-level algorithms to identify matching elements using customisable constraints.
-For instance, it is reasonable to attempt to minimise a certain distance function between two models (\eg\ Earth mover's distance), but it is also important to do so in a manner that preserves the topological relationships between the objects.
-The special treatment of holes of different dimensions should also be investigated, together with adequate methods to ensure that holes are linked correctly between themselves and to other primitives.
-
-\item[High-level construction algorithms] The three object construction methods described in this thesis operate mostly on lower-dimensional primitives and consequently cover only a few use cases.
-There is a need to develop intuitive methods that operate directly on higher-dimensional primitives, which should preferably be usable in an interactive environment.
-Note however that this does not mean that the end user would be viewing the higher-dimensional model directly, as it could be shown in simplified form or as a 2D or 3D representative subset.
-
-\item[$n$D constrained triangulator] There are high-quality robust implementations of constrained Delaunay triangulations in 2D \citep{Shewchuk96} and 3D \citep{Si05}, as well as good descriptions of a constrained Delaunay triangulation in $n$D \citep{Shewchuk07}.
-However, in order to realise a higher-dimensional GIS based on a simplicial complex model, it is necessary to have a robust $n$D constrained triangulator which should be preferably Delaunay.
-
-\item[Hyperspherical projective geometry kernel] I deemed Nef polyhedra one of the most promising models for a higher-dimensional GIS, but so far they have only been implemented in 2D and 3D.\@
-In order to implement $n$-dimensional Nef polyhedra, it is necessary to develop a hyperspherical projective geometry kernel.
-This kernel would then be used to compute the local $(n-1)$-dimensional pyramids around every vertex.
-While the projective mathematics for this are relatively simple, it is a complex engineering problem to implement it robustly.
-
-\item[$n$D Boolean set operations] Using the above mentioned hyperspherical projective kernel or another method, it is necessary to develop robust algorithms to compute $n$D Boolean set operations.
-For instance, an $n$D Nef polyhedra implementation using recursive boundary definitions could compute these operations at the local pyramid level.
-$n$D Boolean set operations would be an excellent base for most geometric operations in a higher-dimensional GIS.\@
-
-\item[$n$D to/from 2D and 3D projective kernel] Many operations that are required for object manipulation in $n$D are actually well-defined operations applied to 2D and 3D objects that are merely embedded in $n$D.
-A robust kernel that could handle on-the-fly conversions of $n$D geometries to 2D and 3D without loss of precision would enable many of these operations to be applied.
-Relatedly, CGAL currently has simple kernels that apply 3D to 2D orthographic projections using the planes defined by the $xy$, $yz$ or $zx$ planes.
-These are useful as they can be wrapped around the basic 2D kernels (\ie\ $\mathbb{R}^2$ with floating-point, interval or exact representations) using the traits programming paradigm available throughout CGAL, and so they can be used to apply 2D operations to 2D objects that are embedded in 3D.
-However, these kernels do not handle the conversions from 2D back to 3D automatically nor are easily extensible to higher dimensions.
-
-\item[Visualisation of higher-dimensional geographic information] \refch{ch:slicing} described how data selection and projection methods can work in arbitrary dimensions, while \refse{se:ndmath} described the $n$D mathematics behind the basic manipulation operations for higher-dimensional objects.
-However, there are significant issues to tackle in order to create a useful visualiser for higher-dimensional datasets.
-Namely, there are significant hurdles in user interaction, dealing with large datasets, computing higher-dimensional cross-sections and the definition of useful visual cues in higher dimensions.
-The simple implementation used for the cover of this thesis make several hard-coded assumptions for the dataset that was used and is far from optimal, but it will be published together with the rest of the open source tools developed for this thesis once it is improved to handle more general input in the form of $n$D linear cell complexes.
-
-\item[2D/3D/$n$D repair methods with quality guarantees] The data repair methods described in \refch{ch:cleaning} are able to recover from most simple invalid 2D and 3D configurations.
-However, they are not easily extensible to higher dimensions due to the lack of a robust $n$D constrained triangulator (see above), they do not provide quality guarantees in their output, and can be numerically unstable when there are many nearly coplanar planes.
-In order to develop robust systems, it is highly desirable to be able to specify a robustness criterion (\eg\ a minimum distance between vertices or ensuring that the geometries are not collapsed/flipped in a floating-point representation), which is guaranteed by a data repair algorithm.
-Additional geometric constraints could also be implemented, such as guaranteeing that coplanar planes stay coplanar after repair.
-
-\item[Higher-dimensional modification operations] By necessity, this thesis focused on operations for object creation in order to generate initial higher-dimensional datasets.
-Now that it is possible to generate them, it is important to think of intuitive higher-dimensional object modification operations.
-For instance, how can a 4-cell split operation be intuitively defined, or how can collapsed geometries (\eg\ from the extruded and collapsed models in \refse{se:extrusion-generalisation}) be processed to remove combinatorial elements.
-Ideally, these operations should also be intuitively usable in an interactive environment, such as a geometric modeller.
-
-\item[Real-world 4D spatiotemporal datasets] Using timestamped 3D volumetric datasets, it should be possible to create true 4D datasets using spatiotemporal information.
-However, obtaining reasonably clean volumetric datasets is nearly impossible at this point.
-Every dataset that was found during this project had only surfaces embedded in 3D, had severe validity problems up to the point that it would require substantial manual work to fix, or was missing the temporal information.
-Exporting the temporal information that is present in some closed commercial formats is also an issue, as doing do in a na{\"\i}ve way generally means losing the links to the timestamps' corresponding geometries.
-
-\end{description}
\ No newline at end of file
diff --git a/work_report/cover-back.pdf b/work_report/cover-back.pdf
deleted file mode 100644
index ad8cec6..0000000
Binary files a/work_report/cover-back.pdf and /dev/null differ
diff --git a/work_report/cover-front.pdf b/work_report/cover-front.pdf
deleted file mode 100644
index 0037a4b..0000000
Binary files a/work_report/cover-front.pdf and /dev/null differ
diff --git a/work_report/cv.tex b/work_report/cv.tex
deleted file mode 100644
index 7bb96fe..0000000
--- a/work_report/cv.tex
+++ /dev/null
@@ -1,51 +0,0 @@
-% !TEX root = thesis.tex
-
-\chapter{Curriculum vitae}
-
-\noindent
-Gustavo Adolfo \href{http://ken.mx}{\textbf{Ken Arroyo Ohori}} was born on June 12, 1985 in Mexico City.
-He graduated in 2003 from the Bicultural High School (`\emph{Preparatoria Bicultural}') programme and in 2007 from the BSc in Computer Science and Technology programme (`\emph{ITC01: Ingenier\'\i{}a en Tecnolog\'\i{}as Computacionales}') at the Mexico City campus of the Monterrey Institute of Technology and Higher Education (`\emph{Instituto Tecnol\'ogico y de Estudios Superiores de Monterrey}').
-
-\marginpar{\includegraphics[width=\marginparwidth]{figs/me}}
-
-Arriving to the Delft University of Technology in 2008, Ken graduated from the MSc in Geomatics programme in 2010 with his thesis on the \emph{Validation and automatic repair of planar partitions using a constrained triangulation}, which later evolved into some of the data repair ideas exposed in \refch{ch:cleaning} of this thesis.
-
-In 2011, Ken started his PhD project on the \emph{Higher-dimensional modelling of geographic information}, supervised by \href{https://3d.bk.tudelft.nl/jstoter/}{Jantien Stoter} and \href{http://tudelft.nl/hledoux}{Hugo Ledoux}, working under the umbrella of the project \emph{5D Data Modelling: Full Integration of 2D/3D Space, Time and Scale Dimensions} of the Dutch Technology Foundation (\emph{STW}).
-In October 2012, he visited \href{http://liris.cnrs.fr/guillaume.damiand/}{Guillaume Damiand}, collaborating on the incremental construction method that later became \refch{ch:incremental-construction} of this thesis.
-
-In 2016, Ken started working as a postdoc in the same \emph{5D Data Modelling} project, focusing on 4D visualisation and in the integrated modelling of space and time.
-
-\clearpage
-\section*{Publications}
-
-{\small
-\begin{itemize}
-\papermethodsxvoxelisation%
-\paperijgisroeland%
-\paperudmvobj%
-\paperisprsnd%
-\paperijgind\mparshift{-3.3\baselineskip}\marginpar{\raggedleft{}In \refch{ch:linking-lods}}%
-\paperijgisextrusion\mparshift{-3.3\baselineskip}\marginpar{\raggedleft{}In \refch{ch:extrusion}}%
-\paperijgisndstructures\mparshift{-3.3\baselineskip}\marginpar{\raggedleft{}In \refse{se:data-structures} \& \refse{se:nd-modelling-conclusions}}%
-\papercgeoprepair\mparshift{-2.3\baselineskip}\marginpar{\raggedleft{}In \refse{se:pprepair}}%
-\papericaaincrementalconstruction\mparshift{-6.3\baselineskip}\marginpar{\raggedleft{}In \refch{ch:incremental-construction}}%
-\paperacmsigspatialextrusion%
-\clearpage%
-\papericcsand%
-\papergeoadvancesnd\mparshift{-5.2\baselineskip}\marginpar{In \refse{se:duality}}%
-\paperagileslicing%
-\paperpfgpprepair\mparshift{-3.2\baselineskip}\marginpar{In \refse{se:pprepair}}%
-\paperosgisrepair%
-\papertdgeoinfond%
-\paperagileprepair%
-\paperostravaedgematching%
-\end{itemize}
-}
-
-\clearpage
-\null%
-\marginpar{
-\includegraphics[width=\marginparwidth]{figs/3dgeoinfo}\\
-\vspace*{11.5cm}
-\includegraphics[width=\marginparwidth]{figs/barcode}
-}
diff --git a/work_report/dictionary.tex b/work_report/dictionary.tex
deleted file mode 100644
index 2734a38..0000000
--- a/work_report/dictionary.tex
+++ /dev/null
@@ -1,278 +0,0 @@
-% !TEX root = thesis.tex
-
-\chapter{A short dictionary of dimension-based GIS terms}
-\label{ch:dictionary}
-
-\begin{multicols}{2}
-
-\begin{description}
-\footnotesize
-
-\item[ambient space]
-the space in which objects are embedded.
-
-\item[area]
-1.\ measure of the 2D extent of an object;
-2.\ 2D combinatorial element;
-{\color{gray} 3.\ 2D geometric object}.
-
-\item[ball]
-1.\ ($\rightarrow$\ same as 3-\emph{ball}) topological definition of the space within a 2-sphere (\ie\ a sphere), often defined as the space within a certain distance (the radius) from a point in $\mathbb{R}^3$ (the centre);
-2.\ ($\rightarrow$\ often $n$-\emph{ball}) topological definition of the space within an $(n-1)$-sphere, often defined as the space within a certain distance (the radius) from a point in $\mathbb{R}^n$ (the centre);
-3.\ geometric definition of a perfectly round filled 3D object.
-
-\item[body]
-$n$-dimensional combinatorial element in an $n$D context.
-
-\item[box]
-1.\ cuboid;
-2.\ orthotope of any dimension.
-
-\item[cavity]
-3D hole.
-
-\item[cell]
-1.\ ($\rightarrow$\ sometimes $n$-\emph{cell}) $n$D combinatorial element;
-{\color{gray} 2.\ 3D combinatorial element}.
-
-\item[cell complex]
-topological space formed by a set of cells glued along common faces, all faces of a cell in the complex should be in the complex.
-
-\item[circle]
-1.\ topological definition of the space at a certain distance (the radius) from a point in $\mathbb{R}^2$ (the centre);
-2.\ geometric definition of a perfectly round hollow 2D object.
-
-\item[closed]
-1.\ topological definition of an object that includes its boundary;
-2.\ geometric definition of an object in $n$D, usually defined using boundary representation, that encloses an $n$D subspace.
-
-\item[congruent]
-having the same shape and size.
-
-\item[cube]
-1.\ ($\rightarrow$\ same as $3$-\emph{cube}) 3D polyhedron with 6 square facets;
-2.\ ($\rightarrow$\ usually $n$-\emph{cube}) $n$-orthotope with identical $(n-1)$-cube facets, akin to a square in 2D and a cube in 3D.
-
-\item[cuboid]
-1.\ box-shaped 3D polyhedron with 6 rectangular facets, its opposite facets are congruent and parallel;
-{\color{gray} 2.\ parallelotope}.
-
-\item[curve]
-1.\ 1D geometric object, often with a non-linear geometry;
-2.\ 1D combinatorial element;
-3.\ 1-manifold.
-
-\item[cut-line]
-degenerate part of a 2D shape forming a curve and protruding inwards from its boundary.
-
-\item[disk]
-topological definition of the space within a circle, often defined as the space within a certain distance (the radius) from a point in $\mathbb{R}^2$ (the centre).
-
-\item[edge]
-1D combinatorial element.
-
-\item[face]
-1.\ 2D combinatorial element;
-2.\ ($\rightarrow$\ sometimes \emph{$n$-face of $X$}) $n$D combinatorial element on the boundary of $X$;
-{\color{gray} 3.\ ($\rightarrow$\ usually \emph{face of $X$}) $(n-1)$D combinatorial element on the boundary of an $n$D combinatorial element $X$}.
-
-\item[facet]
-1.\ $(n-1)$D combinatorial element in an $n$D context;
-2.\ ($\rightarrow$\ often \emph{facet of $X$}) $(n-1)$D combinatorial element on the boundary of an $n$D combinatorial element $X$;
-{\color{gray} 3.\ 2D combinatorial element}.
-
-\item[flat]
-unbounded geometric object with linear geometry of any dimension, such as a point, line or plane.
-
-\item[hole]
-1.\ 2D void region;
-2.\ $n$D void region.
-
-\item[hyperball]
-higher-dimensional ball.
-
-\item[hypercell]
-1.\ higher-dimensional combinatorial element;
-2.\ 4D combinatorial element.
-
-\item[hypercube]
-1.\ higher-dimensional cube;
-2.\ 4-cube.
-
-\item[hyperplane]
-1.\ $(n-1)$D linear subspace in an $n$D context;
-{\color{gray} 2.\ plane in a higher-dimensional context.}
-
-\item[hyperrectangle]
-higher-dimensional orthotope.
-
-\item[hypersphere]
-higher-dimensional sphere.
-
-\item[hypersurface]
-$(n-1)$D subspace in an $n$D context, often curved;
-
-\item[interval]
-topological definition of the space between two points in $\mathbb{R}$ (the endpoints).
-
-\item[Lebesgue measure]
-measure of the $n$D extent of an object, akin to length in 1D, area in 2D and volume in 3D.
-
-\item[length]
-measure of the 1D extent of an object.
-
-\item[line segment]
-1D geometric object.
-
-\item[manifold]
-($\rightarrow$\ sometimes $n$-\emph{manifold}) topological space that resembles $\mathbb{R}^n$ at every point.
-
-\item[manifold with boundary]
-($\rightarrow$\ sometimes $n$-\emph{manifold with boundary}) topological space that resembles $\mathbb{R}^n$ at every point in its interior.
-
-\item[node]
-0D combinatorial element.
-
-\item[open]
-1.\ topological definition of an object that does not include its boundary;
-2.\ geometric definition of an object in $n$D, usually defined using boundary representation, that does not enclose any $n$D subspace.
-
-\item[orthotope]
-($\rightarrow$\ sometimes $n$-\emph{orthotope}) $n$-polytope with congruent parallel facets forming right angles to each other, akin to a rectangle in 2D and a cuboid in 3D.
-
-\item[parallelepiped]
-3D polyhedron bounded by 6 parallelogram-shaped 2D faces.
-
-\item[parallelogram]
-polygon bounded by 4 parallel and have the same shape.
-
-\item[parallelotope]
-a polytope whose opposite facets are parallel and have the same shape, akin to a parallelogram in 2D and a parallelepiped in 3D.
-
-\item[peak]
-1.\ $(n-3)$D combinatorial element in an $n$D context;
-2.\ ($\rightarrow$\ \emph{peak of $X$}) $(n-3)$D combinatorial element on the boundary of an $n$D combinatorial element $X$;
-
-\item[plane]
-2D unbounded linear subspace.
-
-\item[point]
-1.\ 0D geometric element;
-2.\ topological definition of the space at one location.
-
-\item[polychoron]
-4D geometric object with linear geometry.
-
-\item[polygon]
-2D geometric object with linear geometry, possibly with holes.
-
-\item[polygonal curve]
-curve formed by a sequence of line segments joined at their endpoints.
-
-\item[polyhedron]
-1.\ 3D geometric object with linear geometry, possibly with holes;
-{\color{gray} 2.\ an $n$D geometric object with linear geometry}.
-
-\item[polyline]
-curve formed by a sequence of line segments joined at their endpoints.
-
-\item[polyteron]
-5D geometric object with linear geometry.
-
-\item[polytope]
-$n$D geometric object with linear geometry.
-
-\item[puncture]
-0D (point) hole, often formed from a degenerate polyline or polygon.
-
-\item[ridge]
-1.\ $(n-2)$D combinatorial element in an $n$D context;
-2.\ ($\rightarrow$\ \emph{ridge of $X$}) $(n-2)$D combinatorial element on the boundary of an $n$D combinatorial element $X$.
-
-\item[line string]
-curve formed by joining a sequence of vertices by straight line segments, represented by these vertices.
-
-\item[linear ring]
-2D geometric object with linear geometry represented as a sequence of vertices.
-
-\item[ring]
-2D combinatorial element represented by its 1D boundary.
-
-\item[subfacet]
-1.\ $(n-2)$D combinatorial element in an $n$D context;
-2.\ ($\rightarrow$\ \emph{subfacet of $X$}) $(n-2)$D combinatorial element on the boundary of an $n$D combinatorial element $X$.
-
-\item[shell]
-3D geometric object with linear geometry without 3D holes, usually defined as the volume enclosed by its 2D boundary, often represented as a set of 2D faces.
-
-\item[simplex]
-1.\ ($\rightarrow$\ sometimes \emph{$n$-simplex}) combinatorial element with $n+1$ vertices and $n+1$ facets;
-2.\ ($\rightarrow$\ sometimes \emph{$n$-simplex}) geometric object based on $n+1$ affinely independent vertices, akin to a point in 0D, a line segment in 1D, a triangle in 2D, or a tetrahedron in 3D.
-
-\item[simplicial complex]
-1.\ ($\rightarrow$\ sometimes \emph{abstract simplicial complex}) topological space formed by a set of simplices glued along common faces, all faces of a simplex in the complex should be in the complex;
-2.\ ($\rightarrow$\ sometimes \emph{geometric simplicial complex}) abstract simplicial complex where simplices are embedded into Euclidean space, their interiors should not intersect geometrically.
-
-\item[solid]
-1.\ 3D geometric object with linear geometry, possibly with 3D holes, often represented as a set of shells;
-2.\ object defined based on solid modelling, often as opposed one based on boundary representation;
-3.\ an object containing its interior (as opposed to \emph{hollow}).
-
-\item[spike]
-degenerate part of a 2D shape forming a curve, often protruding outwards from its boundary.
-
-\item[sphere]
-1.\ ($\rightarrow$\ same as $2$-\emph{sphere}) topological definition of the space at a certain distance (the radius) from a point in $\mathbb{R}^3$ (the centre);
-2.\ ($\rightarrow$\ often $n$-\emph{sphere}) topological definition of the space at a certain distance (the radius) from a point in $\mathbb{R}^{n+1}$ (the centre);
-3.\ geometric definition of a perfectly round hollow 3D object.
-
-\item[surface]
-1.\ 2-manifold;
-2.\ 2D combinatorial element.
-
-\item[tesseract]
-4-cube: polychoron with 8 cubical facets.
-
-\item[vertex]
-0D combinatorial element.
-
-\item[volume]
-1.\ measure of the 3D extent of an object;
-2.\ 3D combinatorial element.
-
-\item[wire]
-2D combinatorial element represented by its 1D boundary.
-
-\end{description}
-
-\end{multicols}
-
-% \begin{table}
-% \scriptsize
-% \begin{tabular}{ccccccc}
-% \toprule
-% \multicolumn{7}{c}{dimension} \\
-% $n$ & 0 & 1 & 2 & 3 & 4 \\
-% \midrule
-% \multicolumn{7}{c}{topological} \\
-% $n$-simplex & vertex & edge & face & volume \\
-% $n$-cell & vertex & edge & face & volume \\
-% $n$-sphere & pair of points & circle & sphere \\
-% $n$-ball & & interval & disk & ball \\
-% open $n$-ball & & open interval & open disk & open ball \\
-% $n$-manifold & discrete space & curve & surface \\
-% \midrule
-% \multicolumn{7}{c}{geometric} \\
-% $n$-simplex & point & line segment & triangle & tetrahedron & pentachoron \\
-% $n$-cube & point & square & cube & tesseract \\
-% $n$-orthotope & point & line segment & rectangle & cuboid/box \\
-% $n$-parallelotope & point & line segment & parallelogram & parallelepiped \\
-% prismatic $n$-polytope & & line segment & rectangle & prism & prismatic polychoron \\
-% $n$-polytope & point & line segment & polygon & polyhedron & polychoron \\
-% \midrule
-% \multicolumn{7}{c}{other} \\
-% $n$-th Lebesgue measure & length & area & volume \\
-% & & collinear & coplanar \\
-% \bottomrule
-% \end{tabular}
-% \end{table}
diff --git a/work_report/docs.bib b/work_report/docs.bib
deleted file mode 100644
index f7a49f3..0000000
--- a/work_report/docs.bib
+++ /dev/null
@@ -1,6541 +0,0 @@
-%% This BibTeX bibliography file was created using BibDesk.
-%% http://bibdesk.sourceforge.net/
-
-
-%% Created for Ken Arroyo Ohori at 2016-03-13 17:57:55 +0100
-
-
-%% Saved with string encoding Unicode (UTF-8)
-
-
-
-@article{Patterson02,
- Author = {Tom Patterson},
- Journal = {Cartographic Perspectives},
- Month = {Fall},
- Title = {Getting Real: Reflecting on the New Look of National Park Service Maps},
- Volume = {43},
- Year = {2002}}
-
-@incollection{Liu13,
- Author = {Liu Liu and Sisi Zlatanova},
- Booktitle = {ISPRS Acquisition and Modelling of Indoor and Enclosed Environments 2013},
- Publisher = {ISPRS},
- Title = {Generating navigation models from existing building data},
- Volume = {XL--4/W4},
- Year = {2013}}
-
-@phdthesis{Garland99,
- Author = {Michael Garland},
- School = {Carnegie Mellon University},
- Title = {Quadric-Based Polygonal Surface Simplification},
- Year = {1999}}
-
-@article{Decoret03,
- Author = {Xavier D\'ecoret and Fr\'edo Durand and Fran\c{c}ois X. Sillion and Julie Dorsey},
- Journal = {ACM Transactions on Graphics},
- Number = {3},
- Pages = {689--696},
- Title = {Billboard Clouds for Extreme Model Simplification},
- Volume = {22},
- Year = {2003}}
-
-@article{Biljecki15a,
- Author = {Filip Biljecki and Jantien Stoter and Hugo Ledoux and Sisi Zlatanova and Arzu \c{C}\"oltekin},
- Journal = {ISPRS International Journal of Geo-Information},
- Month = {December},
- Number = {4},
- Pages = {2842--2889},
- Title = {Applications of {3D} City Models: State of the Art Review},
- Volume = {4},
- Year = {2015}}
-
-@inproceedings{Bellet12,
- Author = {Thomas Bellet and Agn\'es Arnould and Pascale {Le Gall}},
- Booktitle = {Approches Formelles dans l'Assistance au D\'eveloppement de Logiciels (AFDL), Jan 2012, Grenoble, France},
- Month = {jan},
- Title = {{JERBOA}: un modeleur g\'eom\'etrique \`a base de r\`egles},
- Year = {2012}}
-
-@inproceedings{Horna06,
- Author = {S\'ebastien Horna and Guillaume Damiand and Daniel Meneveaux and Yves Bertrand},
- Booktitle = {Journ\'ees de l'Association Francophone d'Informatique Graphique, Bordeaux, 2006},
- Title = {Reconstruction topologique {3D} de b\^atiments},
- Year = {2006}}
-
-@incollection{Chu09,
- Author = {Alan Chu and Chi-Wing Fu and Andrew J. Hanson and Pheng-Ann Heng},
- Booktitle = {IEEE Transactions on Visualization and Computer Graphics},
- Number = {6},
- Pages = {1587--1594},
- Publisher = {IEEE},
- Title = {{GL4D}: A {GPU}-based Architecture for Interactive {4D} Visualization},
- Volume = {15},
- Year = {2009}}
-
-@incollection{Bajaj98,
- Author = {C. L. Bajaj and V. Pascucci and G. Rabbiolo},
- Booktitle = {IEEE Symposium on Volume Visualization},
- Publisher = {IEEE},
- Title = {Hypervolume Visualization: A Challenge in Simplicity},
- Year = {1998}}
-
-@incollection{Feiner90,
- Author = {Steven Feiner and Clifford Beshers},
- Booktitle = {Proceedings of the 1990 symposium on Interactive 3D graphics},
- Pages = {37--38},
- Publisher = {ACM},
- Title = {Visualizing $n$-Dimensional Virtual Worlds with $n$-Vision},
- Year = {1990}}
-
-@unpublished{Leys08,
- Author = {Jos Leys and \'Etienne Ghys and Aureli\'en Alvarez},
- Note = {Available at \url{http://www.dimensions-math.org/Dim_E.htm}},
- Title = {Dimensions: une promenade math\'ematique},
- Year = {2008}}
-
-@unpublished{Chisholm00,
- Author = {Matt Chisholm},
- Month = may,
- Note = {Available at \url{https://theory.org/geotopo/3-sphere/3-sphere.ps}},
- Title = {The Sphere in Three Dimensions and Higher: Generalizations and Special Cases},
- Year = {2000}}
-
-@book{Steeb11,
- Author = {Willi-Hans Steeb},
- Edition = {5th},
- Publisher = {World Scientific Publishing},
- Title = {The Nonlinear Workbook},
- Year = {2011}}
-
-@inproceedings{vanElfrinkhof97,
- Address = {Delft},
- Author = {L. {van Elfrinkhof}},
- Booktitle = {Handelingen van het 6e Nederlandsch Natuurkundig en Geneeskundig Congres},
- Pages = {237--240},
- Title = {Eene eigenschap van de orthogonale substitutie van de vierde orde},
- Year = {1897}}
-
-@article{Cole90,
- Author = {F. N. Cole},
- Journal = {American Journal of Mathematics},
- Month = jan,
- Number = {2},
- Pages = {191--210},
- Title = {On Rotations in Space of Four Dimensions},
- Volume = {12},
- Year = {1890}}
-
-@article{Massey83,
- Author = {W. S. Massey},
- Journal = {The American Mathematical Monthly},
- Month = dec,
- Number = {10},
- Pages = {697--701},
- Title = {Cross Products of Vectors in Higher Dimensional {E}uclidean Spaces},
- Volume = {90},
- Year = {1983}}
-
-@unpublished{Elduque04,
- Author = {Alberto Elduque},
- Month = apr,
- Note = {Talk presented at the Seminario Rubio de Francia of the Universidad de Zaragoza on April 1, 2004},
- Title = {Vector Cross Products},
- Year = {2004}}
-
-@book{Shreiner13,
- Author = {Dave Shreiner and Graham Sellers and John Kessenich and Bill Licea-Kane and {Khronos ARB Working Group}},
- Edition = {8th},
- Publisher = {Addison-Wesley},
- Title = {{OpenGL} Programming Guide: The Official Guide to Learning {OpenGL}, Version 4.3},
- Year = {2013}}
-
-@book{Marden96,
- Author = {John I. Marden},
- Month = {August},
- Publisher = {Chapman \& Hall},
- Series = {CRC Monographs on Statistics \& Applied Probability},
- Title = {Analyzing and Modeling Rank Data},
- Volume = {64},
- Year = {1996}}
-
-@techreport{EFI15,
- Author = {{EFI}},
- Institution = {{Expertenkommission Forschung und Innovation}},
- Title = {{G}utachten 2015: zu {F}orschung, {I}nnovation und technologischer {L}eistungsf\"ahigkeit {D}eutschlands},
- Year = {2015}}
-
-@unpublished{Hargreaves11,
- Author = {Ian Hargreaves},
- Month = may,
- Note = {Independent report commissioned by United Kingdom Prime Minister David Cameron},
- Title = {Digital Opportunity: A Review of Intellectural Property and Growth},
- Year = {2011}}
-
-@techreport{Reda14,
- Author = {Julia Reda},
- Institution = {European Parliament Commitee on Legal Affairs},
- Title = {Draft report on the implementation of {D}irective 2001/29/{EC} of the {E}uropean {P}arliament and of the {C}ouncil of 22 {M}ay 2001 on the harmonisation of certain aspects of copyright and related rights in the information society},
- Year = {2014}}
-
-@book{Hughes14,
- Author = {John F. Hughes and Andries {van Dam} and Morgan McGuire and David F. Sklar and James D. Foley and Steven K. Feiner and Kurt Akeley},
- Edition = {3rd},
- Publisher = {Addison-Wesley},
- Title = {Computer Graphics: Principles and Practice},
- Year = {2014}}
-
-@incollection{Foley92,
- Author = {Thomas A. Foley and Gregory M. Nielson},
- Booktitle = {The System Engineer's Handbook: A guide to building {VMEbus} and {VXIbus} systems},
- Chapter = {19},
- Editor = {John Black},
- Pages = {223--237},
- Publisher = {Academic Press},
- Title = {Practical Techniques for Producing {3D} Graphical Images},
- Year = {1992}}
-
-@phdthesis{Brisson90,
- Author = {Erik Brisson},
- School = {University of Washington},
- Title = {Representation of $d$-dimensional geometric objects},
- Year = {1990}}
-
-@book{Salomon08,
- Author = {David Salomon},
- Publisher = {Springer London},
- Series = {Undergraduate Topics in Computer Science},
- Title = {A Concise Introduction to Data Compression},
- Year = {2008}}
-
-@book{Salomon06,
- Author = {David Salomon},
- Publisher = {Springer New York},
- Title = {Curves and Surfaces for Computer Graphics},
- Year = {2006}}
-
-@book{Salomon11,
- Author = {David Salomon},
- Editor = {David Gries and Fred. B. Schneider},
- Publisher = {Springer London},
- Series = {Texts in Computer Science},
- Title = {The Computer Graphics Manual},
- Volume = {2},
- Year = {2011}}
-
-@unpublished{Hanson01,
- Author = {Andrew J. Hanson and Daniel Weiskopf},
- Note = {Siggraph 2001 Tutorial},
- Title = {Visualizing Relativity},
- Year = {2001}}
-
-@incollection{Hanson94,
- Author = {Andrew J. Hanson},
- Booktitle = {Graphics Gems IV},
- Chapter = {II.6},
- Editor = {Paul S. Heckbert},
- Pages = {149--170},
- Publisher = {Academic Press Professional},
- Title = {Geometry for $N$-Dimensional Graphics},
- Year = {1994}}
-
-@book{Comninos06,
- Author = {Peter Comninos},
- Edition = {1},
- Publisher = {Springer-Verlag London},
- Title = {Mathematical and Computer Programming Techniques for Computer Graphics},
- Year = {2006}}
-
-@article{Egenhofer95,
- Author = {Max J. Egenhofer},
- Journal = {International Journal of Geographical Information Systems},
- Number = {5},
- Pages = {555--565},
- Title = {Modeling Conceptual Neighborhoods of Topological Line-Region Relations},
- Volume = {9},
- Year = {1995}}
-
-@incollection{Egenhofer91b,
- Author = {Max J. Egenhofer},
- Booktitle = {Advances in Spatial Databases},
- Editor = {Oliver G\"unther and Hans-J\"org Schek},
- Publisher = {Springer Berlin Heidelberg},
- Series = {Lecture Notes in Computer Science},
- Title = {Reasoning about binary topological relations},
- Volume = {525},
- Year = {1991}}
-
-@article{Lage15,
- Author = {Marcos Lage and Luiz Fernando Martha and J. P. Moitinho {de Almeida} and H\`elio Lopes},
- Journal = {Engineering with Computers},
- Title = {{IBHM}: index‐based data structures for {2D} and {3D} hybrid meshes},
- Year = {2015}}
-
-@article{Akleman15,
- Author = {Ergun Akleman and Jianer Chen and Jonathan L. Gross},
- Journal = {Computers \& Graphics},
- Pages = {306--326},
- Title = {Block meshes: Topologically robust shape modeling with graphs embedded on 3-manifolds},
- Volume = {46},
- Year = {2015}}
-
-@unpublished{Kraft14,
- Author = {Bernold Kraft and Wolfgang Huhnt},
- Note = {Available at \url{http://www.academia.edu/12434817/Geometrically_Complete_Building_Models}},
- Title = {Geometrically Complete Building Models},
- Year = {2014}}
-
-@incollection{Dube12,
- Author = {Matthew P. Dube and Max J. Egenhofer},
- Booktitle = {Geographic Information Science},
- Editor = {Ningchuan Xiao and Mei-Po Kwan and Michael F. Goodchild and Shashi Shekhar},
- Pages = {72--86},
- Publisher = {Springer Berlin Heidelberg},
- Series = {Lecture Notes in Computer Science},
- Title = {An Ordering of Convex Topological Relations},
- Volume = {7478},
- Year = {2012}}
-
-@article{Joppa13,
- Author = {Lucas N. Joppa and Greg McInerny and Richard Harper and Lara Salido and Kenji Takeda and Kenton O'Hara and David Gavaghan and Stephen Emmott},
- Journal = {Science},
- Month = may,
- Pages = {814--815},
- Title = {Troubling Trends in Scientific Software Use},
- Volume = {340},
- Year = {2013}}
-
-@book{Dieudonne09,
- Author = {Jean Dieudonn\'e},
- Publisher = {Birkh\"auser Boston},
- Series = {Modern Birkh\"auser Classics},
- Title = {A History of Algebraic and Differential Topology, 1900 - 1960},
- Year = {2009}}
-
-@incollection{Bradley15,
- Author = {Patrick E. Bradley},
- Booktitle = {Statistical Learning and Data Sciences},
- Editor = {Alexander Gammerman and Vladimir Vovk and Harris Papadopoulos},
- Month = apr,
- Pages = {406--413},
- Publisher = {Springer International Publishing},
- Series = {Lecture Notes in Computer Science},
- Title = {Supporting Data Analytics for Smart Cities: An Overview of Data Models and Topology},
- Volume = {9047},
- Year = {2015}}
-
-@book{Hinton88,
- Author = {Charles Howard Hinton},
- Publisher = {Swan Sonnenschein \& Co. Ltd.},
- Title = {A New Era of Thought},
- Year = {1888}}
-
-@article{Pellerin14,
- Author = {Jeanne Pellerin and Bruno L\'evy and Guillaume Caumon and Arnaud Botella},
- Journal = {Computers \& Geosciences},
- Pages = {103--116},
- Title = {Automatic surface remeshing of {3D} structural models at specified resolution: A method based on {V}oronoi diagrams},
- Volume = {62},
- Year = {2014}}
-
-@incollection{Balsys07,
- Author = {Ron J. Balsys and Kevin G. Suffern},
- Booktitle = {Computer Graphics, Imaging and Visualisation},
- Publisher = {IEEE},
- Title = {Point Based Rendering of Implicit 4-Dimensional Surfaces},
- Year = {2007}}
-
-@article{Zhang07,
- Author = {Hui Zhang and Andrew J. Hanson},
- Journal = {IEEE Transactions on Visualization and Computer Graphics},
- Month = {November/December},
- Number = {6},
- Pages = {1688--1695},
- Title = {Shadow-Driven {4D} Haptic Visualization},
- Volume = {13},
- Year = {2007}}
-
-@article{Elberink13,
- Author = {Sander Oude Elberink and Jantien Stoter and Hugo Ledoux and Tom Commandeur},
- Journal = {Photogrammetric Engineering \& Remote Sensing},
- Month = feb,
- Number = {2},
- Pages = {147--158},
- Title = {Generation and Dissemination of a National Virtual {3D} City and Landscape Model for the Netherlands},
- Volume = {79},
- Year = {2013}}
-
-@article{Ince12,
- Author = {Darrel C. Ince and Leslie Hatton and John Graham-Cumming},
- Journal = {Nature},
- Month = feb,
- Pages = {487--488},
- Title = {The case for open computer programs},
- Volume = {482},
- Year = {2012}}
-
-@article{Morin12,
- Author = {A. Morin and J. Urban and I. Foster and A. Sali and D. Baker and P. Sliz},
- Journal = {Science},
- Month = apr,
- Pages = {159--160},
- Title = {Shining Light into Black Boxes},
- Volume = {336},
- Year = {2012}}
-
-@article{delaLosa99,
- Author = {Arnaud {de la Losa} and Bernard Cervelle},
- Journal = {Computers \& Graphics},
- Month = aug,
- Number = {4},
- Pages = {469--468},
- Title = {{3D} Topological modeling and visualisation for {3D} {GIS}},
- Volume = {23},
- Year = {1999}}
-
-@manual{ISO19123:2007,
- Author = {{ISO}},
- Organization = {{International Organization for Standardization}},
- Title = {Geographic information --- Schema for coverage geometry and functions},
- Year = {2007}}
-
-@article{Hetroy11,
- Author = {Franck H{\'{e}}troy and St{\'{e}}phanie Rey and Carlos And{\'{u}}jar and Pere Brunet and {\`{A}}lvar Vinacua},
- Journal = {Computer-Aided Design},
- Number = {1},
- Pages = {101--113},
- Title = {Mesh repair with user-friendly topology control},
- Volume = {43},
- Year = {2011}}
-
-@article{Bischoff05,
- Author = {Stephan Bischoff and Darko Pavic and Leif Kobbelt},
- Journal = {ACM Transactions on Graphics},
- Number = {4},
- Pages = {1332--1352},
- Title = {Automatic restoration of polygon models},
- Volume = {24},
- Year = {2005}}
-
-@article{Nooruddin03,
- Author = {Nooruddin, F.S. and Turk, G.},
- Journal = {IEEE Transactions on Visualization and Computer Graphics},
- Number = {2},
- Pages = {191--205},
- Title = {Simplification and repair of polygonal models using volumetric techniques},
- Volume = {9},
- Year = {2003}}
-
-@inproceedings{Alam13,
- Address = {Istanbul, Turkey},
- Author = {N. Alam and D. Wagner and M. Wewetzer and M. Pries and V. Coors},
- Booktitle = {ISPRS Annals of the Photogrammetry, Remote Sensing and Spatial Information Sciences. Proceedings of the ISPRS 8th 3DGeoInfo Conference {\&} WG II/2 Workshop},
- Editor = {Isikdag, Umit},
- Pages = {1--6},
- Title = {Towards automatic validation and healing of {CityGML} models for geometric and semantic consistency},
- Year = {2013}}
-
-@inproceedings{Bogdahn10,
- Author = {Bogdahn, J. and Coors, V.},
- Booktitle = {Proceedings International Conference on 3D Geoinformation},
- Editor = {Kolbe, T. H. and K\"oning, G. and Nagel, C.},
- Pages = {13--17},
- Title = {Towards an automated healing of {3D} urban models},
- Volume = {XXXVIII--4/W15},
- Year = {2010}}
-
-@inproceedings{Podolak05,
- Author = {Podolak, Joshua and Rusinkiewicz, Szymon},
- Booktitle = {Eurographics Symposium on Geometry Processing (2005)},
- Editor = {M. Desbrunn and H. Pottmann},
- Pages = {33--42},
- Title = {Atomic volumes for mesh completion},
- Year = {2005}}
-
-@article{Lancaster81,
- Author = {P. Lancaster and K. Salkauskas},
- Journal = {Mathematics of Computation},
- Month = jul,
- Number = {155},
- Pages = {141--158},
- Title = {Surfaces Generated by Moving Least Squares Methods},
- Volume = {37},
- Year = {1981}}
-
-@article{Wang07,
- Author = {Jianning Wang and Manuel M. Oliveira},
- Journal = {Image and Vision Computing},
- Number = {1},
- Pages = {103--113},
- Title = {Filling holes on locally smooth surfaces reconstructed from point clouds},
- Volume = {25},
- Year = {2007}}
-
-@article{Levy03,
- Author = {Bruno L\'evy},
- Journal = {ACM Transactions on Graphics},
- Month = jul,
- Number = {3},
- Pages = {364--369},
- Title = {Dual Domain Extrapolation},
- Volume = {22},
- Year = {2003}}
-
-@incollection{Bohn92,
- Author = {Jan Helge B{\o}hn and Michael J. Wozny},
- Booktitle = {Selected and Expanded Papers from the IFIP TC5/WG5.2 Working Conference on Geometric Modeling for Product Realization},
- Pages = {297--319},
- Publisher = {North-Holland Publishing Co},
- Title = {A topology-based approach for shell-closure},
- Year = {1992}}
-
-@article{Ju09,
- Author = {Tao Ju},
- Journal = {Journal of Computer Science and Technology},
- Month = jan,
- Number = {1},
- Pages = {19--29},
- Title = {Fixing Geometric Errors on Polygonal Models: A Survey},
- Volume = {24},
- Year = {2009}}
-
-@incollection{Barequet97a,
- Author = {Gill Barequet and Subodh Kumar},
- Booktitle = {Proceedings of VisuaIization '97},
- Publisher = {IEEE},
- Title = {Repairing {CAD} Models},
- Year = {1997}}
-
-@incollection{Turk94,
- Address = {New York, NY, USA},
- Author = {Greg Turk and Marc Levoy},
- Booktitle = {SIGGRAPH '94 Proceedings of the 21st annual conference on Computer graphics and interactive techniques},
- Pages = {311--318},
- Publisher = {ACM},
- Title = {Zippered Polygon Meshes from Range Images},
- Year = {1994}}
-
-@article{Barequet95,
- Author = {Gill Barequet and Micha Sharir},
- Journal = {Computer Aided Geometric Design},
- Month = mar,
- Number = {2},
- Pages = {207--229},
- Title = {Filling gaps in the boundary of a polyhedron},
- Volume = {12},
- Year = {1995}}
-
-@article{Sheng95,
- Author = {Xuejun Sheng and Ingo R. Meier},
- Journal = {IEEE Computer Graphics and Applications},
- Month = nov,
- Title = {Generating Topological Structures for Surface Models},
- Year = {1995}}
-
-@inproceedings{Rock92,
- Author = {Stephen J. Rock and Michael J. Wozny},
- Booktitle = {Solid Freeform Fabrication Symposium Proceedings},
- Pages = {251--259},
- Title = {Generating Topological Information from a ``Bucket of Facets''},
- Year = {1992}}
-
-@article{Attene09,
- Author = {Marco Attene and Daniela Giorgi and Massimo Ferri and Bianca Falcidieno},
- Journal = {Computer Aided Geometric Design},
- Month = nov,
- Number = {8},
- Pages = {850--864},
- Title = {On converting sets of tetrahedra to combinatorial and {PL} manifolds},
- Volume = {26},
- Year = {2009}}
-
-@article{Gueziec01,
- Author = {Andr\'e Gu\'eziec and Francis Lazarus},
- Journal = {IEEE Transactions on Visualization and Computer Graphics},
- Month = {April--June},
- Number = {2},
- Pages = {136--151},
- Title = {Cutting and Stitching: Converting Sets of Polygons to Manifold Surfaces},
- Volume = {7},
- Year = {2001}}
-
-@techreport{Rossignac99a,
- Author = {Jarek Rossignac and David Cardoze},
- Institution = {Georgia Institute of Technology},
- Number = {SM99--020},
- Title = {Matchmaker: Manifold {BReps} for non-manifold r-sets},
- Year = {1999}}
-
-@incollection{Muller06,
- Author = {Pascal M\"uller and Peter Wonka and Simon Haegler and Andreas Ulmer and Luc {van Gool}},
- Booktitle = {SIGGRAPH '06},
- Publisher = {ACM},
- Title = {Procedural Modeling of Buildings},
- Year = {2006}}
-
-@inproceedings{Badawy99,
- Author = {Wael M. Badawy and Walid G. Aref},
- Booktitle = {Proceedings of the 7th ACM International Symposium on Advances in Geographic Information Systems},
- Pages = {97--102},
- Publisher = {ACM},
- Title = {On Local Heuristics to Speed Up Polygon-Polygon Intersection Tests},
- Year = {1999}}
-
-@book{Panigrahi14,
- Author = {Narayan Panigrahi},
- Publisher = {CRC Press},
- Title = {Computing in Geographic Information Systems},
- Year = {2014}}
-
-@article{Hahmanna13,
- Author = {Stefan Hahmanna and Dirk Burghardt},
- Journal = {International Journal of Geographical Information Science},
- Number = {6},
- Pages = {1171--1189},
- Title = {How much information is geospatially referenced? Networks and cognition},
- Volume = {27},
- Year = {2013}}
-
-@techreport{ODAS11,
- Author = {ODAS},
- Institution = {Ohio Department of Administrative Services},
- Month = sep,
- Title = {Ohio's Location Based Response System: How one set of highly accurate, shared mapping data is saving time, money and lives across the Buckeye State},
- Type = {White Paper},
- Year = {2011}}
-
-@article{Franklin92,
- Author = {Carl Franklin},
- Journal = {Database},
- Month = {abr},
- Number = {2},
- Pages = {17--22},
- Title = {An introduction to geographic information systems: linking maps to databases},
- Volume = {15},
- Year = {1992}}
-
-@book{Biggs92,
- Author = {G. David Garson and Robert S. Biggs},
- Publisher = {SAGE Publications},
- Series = {Quantitative Applications in the Social Sciences},
- Title = {Analytic Mapping and Geographic Databases},
- Volume = {87},
- Year = {1992}}
-
-@techreport{McKenney98,
- Author = {Dan McKenney},
- Institution = {International TechneGroup Incorporated},
- Title = {Model quality: The key to {CAD}/{CAM}/{CAE} interoperability},
- Year = {1998}}
-
-@article{Untereiner15,
- Author = {L. Untereiner and P. Kraemer and D. Cazier and D. Bechmann},
- Journal = {Computer Graphics Forum},
- Title = {{CPH}: A Compact Representation for Hierarchical Meshes Generated by Primal Refinement},
- Year = {2015}}
-
-@techreport{Meseure14,
- Author = {Philippe Meseure and Emmanuelle Darles and Xavier Skapin and Yazid Touileb},
- Institution = {XLIM},
- Title = {Adaptive Resolution for Topology Modifications in Physically-based Animation},
- Year = {2014}}
-
-@article{Dalstein15,
- Author = {Boris Dalstein and R\'emi Ronfard and Michiel van de Panne},
- Journal = {ACM Transactions of Graphics},
- Number = {4},
- Title = {Vector Graphics Animation with Time-Varying Topology},
- Volume = {34},
- Year = {2015}}
-
-@article{Mucke99,
- Author = {M\"{u}cke, Ernst P. and Saias, Isaac and Zhu, Binhai},
- Journal = {Computational Geometry---Theory and Applications},
- Pages = {63--83},
- Title = {Fast randomized point location without preprocessing in two- and three-dimensional {D}elaunay triangulations},
- Volume = {12},
- Year = {1999}}
-
-@manual{ISO/IEC25436:2007,
- Author = {{ISO/IEC}},
- Organization = {{International Organization for Standardization} and {International Electrotechnical Commission}},
- Title = {Information technology --- Eiffel: Analysis, Design and Programming Language},
- Year = {2007}}
-
-@techreport{Meyer86,
- Author = {Bertrand Meyer},
- Institution = {Interactive Software Engineering},
- Number = {TR-EI-12/CO},
- Title = {Design by Contract},
- Year = {1986}}
-
-@techreport{Hoffmann88,
- Author = {Christoph M. Hoffmann},
- Institution = {Purdue University},
- Number = {88--771},
- Title = {The problems of accuracy and robustness in geometric computation},
- Type = {Computer Science Technical Reports},
- Year = {1988}}
-
-@article{Hoffmann89,
- Author = {Hoffmann, C. M.},
- Journal = {Computer---IEEE Computer Society Press},
- Pages = {31--42},
- Title = {{T}he problems of accuracy and robustness in geometric computation},
- Volume = {22},
- Year = {1989}}
-
-@book{Lewis98,
- Address = {Upper Saddle River, New Jersey 07458},
- Author = {Harry R. Lewis and Christos H. Papadimitriou},
- Publisher = {Prentice-Hall},
- Title = {Elements of the theory of computations},
- Year = {1998}}
-
-@unpublished{Veldhuizen03,
- Author = {Todd L. Veldhuizen},
- Note = {Available at \url{http://ubietylab.net/ubigraph/content/Papers/pdf/CppTuring.pdf}},
- Title = {C++ Templates are Turing Complete},
- Year = {2003}}
-
-@book{Ratschek88,
- Author = {Helmut Ratschek and Jon Rokne},
- Publisher = {Ellis Horwood},
- Title = {New computer methods for global optimization},
- Year = {1988}}
-
-@manual{IEEE754-2008,
- Address = {3 Park Avenue, New York, NY 10016-5997, USA},
- Author = {IEEE},
- Month = jun,
- Organization = {{The Institute of Electrical and Electronics Engineers}},
- Title = {IEEE Standard for Floating-Point Arithmetic},
- Year = {2008}}
-
-@book{Abbott84,
- Author = {Edwin A. Abbott},
- Publisher = {Seely \& Co.},
- Title = {Flatland: A Romance of Many Dimensions},
- Year = {1884}}
-
-@unpublished{Black10,
- Author = {Don V. Black},
- Note = {Available at \url{http://arxiv.org/abs/1201.5788}},
- Title = {A toolkit to describe and interactively display three-manifolds embedded in four-space},
- Year = {2010}}
-
-@techreport{Hoffmann90,
- Author = {Christoph M. Hoffmann and Jianhua Zhou},
- Institution = {Purdue University},
- Month = may,
- Number = {CSD TR--960},
- Title = {Visualization of Surfaces in Four-Dimensional Space},
- Type = {Computer Science Technical Reports},
- Year = {1990}}
-
-@mastersthesis{Hollasch91,
- Author = {Steven Richard Hollasch},
- School = {Arizona State University},
- Title = {Four-Space Visualization of {4D} Objects},
- Year = {1991}}
-
-@book{Newton87,
- Address = {Londoni},
- Author = {Isaac Newton},
- Publisher = {Josephi Streater},
- Title = {Philosophi\ae Naturalis Principia Mathematica},
- Year = {1687}}
-
-@phdthesis{Wang15,
- Author = {Zhiyong Wang},
- School = {Delft University of Technology},
- Title = {Path planning for first responders in the presence of moving obstacles},
- Year = {2015}}
-
-@book{Nef78,
- Address = {Bern},
- Author = {Walter Nef},
- Publisher = {Herbert Lang},
- Title = {Beitr\"age zur Theorie der Polyeder: mit Anwendungen in der Computergraphik},
- Year = {1978}}
-
-@article{Ledoux08,
- Author = {Ledoux, Hugo and Gold, Christopher M.},
- Journal = {International Journal of Geographical Information Science},
- Number = {5},
- Pages = {547--574},
- Title = {Modelling three-dimensional geoscientific fields with the {V}oronoi diagram and its dual},
- Volume = {22},
- Year = {2008}}
-
-@article{Lee02,
- Author = {Lee, Ickjai and Gahegan, Mark},
- Journal = {Transactions in GIS},
- Number = {2},
- Pages = {89--114},
- Title = {{I}nteractive analysis using {V}oronoi diagrams: {A}lgorithms to support dynamic update from a generic triangle-based data structure},
- Volume = {6},
- Year = {2002}}
-
-@article{Dakowicz03,
- Author = {Dakowicz, Maciej and Gold, Christopher M.},
- Journal = {International Journal of Computational Geometry and Applications},
- Number = {4},
- Pages = {339--357},
- Title = {Extracting meaningful slopes from terrain contours},
- Volume = {13},
- Year = {2003}}
-
-@article{Boguslawski11a,
- Author = {Pawel Boguslawski and Christopher M. Gold and Hugo Ledoux},
- Journal = {ISPRS Journal of Photogrammetry \& Remote Sensing},
- Pages = {188--197},
- Title = {Modelling and analysing {3D} buildings with a primal/dual data structure},
- Volume = {66},
- Year = {2011}}
-
-@incollection{Lee08,
- Author = {Lee, J. and Zlatanova, Sisi},
- Booktitle = {Geospatial Information Technology for Emergency Response},
- Editor = {Zlatanova, S. and Li, Jonathan},
- Pages = {143--168},
- Publisher = {Taylor \& Francis},
- Title = {A {3D} data model and topological analyses for emergency response in urban areas},
- Year = {2008}}
-
-@article{Lee08a,
- Author = {Lee, J. and Kwan, M.-P.},
- Journal = {International Journal of Geographical Information Science},
- Number = {10},
- Pages = {1039--1056},
- Title = {A combinatorial data model for representing topological relations among {3D} geographical features in micro-spatial environments},
- Volume = {19},
- Year = {2005}}
-
-@article{Gold91,
- Author = {Gold, Christopher M.},
- Journal = {CISM Journal},
- Number = {1},
- Pages = {65--80},
- Title = {{P}roblems with handling spatial data---the {V}oronoi approach},
- Volume = {45},
- Year = {1991}}
-
-@inproceedings{Weber98,
- Author = {Robert Weber and Hans-J. Schek and Stephen Blott},
- Booktitle = {Proceedings of the 24th VLDB Conference},
- Pages = {194--205},
- Publisher = {ACM},
- Title = {A Quantitative Analysis and Performance Study for Similarity-Search Methods in High-Dimensional Spaces},
- Year = {1998}}
-
-@inproceedings{Sellis87,
- Author = {Timos Sellis and Nick Roussopoulos and Christos Faloutsos},
- Booktitle = {Proceedings of 13th International Conference on Very Large Data Bases},
- Title = {The {R}+-Tree: A dynamic index for multi-dimensional objects},
- Year = {1987}}
-
-@incollection{Meng07,
- Author = {Liqiu Meng and Andrea Forberg},
- Booktitle = {Generalisation of Geographic Information: Cartographic Modelling and Applications},
- Editor = {W.A. Mackaness and A. Ruas and L.T. Sarajkoski},
- Pages = {211--232},
- Publisher = {Elsevier},
- Title = {{3D} Building Generalisation},
- Year = {2007}}
-
-@incollection{Geiger15,
- Author = {Andreas Geiger and Joachim Benner and Karl Heinz Haefele},
- Booktitle = {3D Geoinformation Science},
- Editor = {Martin Breunig and Mulhim Al-Doori and Edgar Butwilowski and Paul V. Kuper and Joachim Benner and Karl Heinz Haefele},
- Pages = {19--35},
- Publisher = {Springer International Publishing Switzerland},
- Series = {Lecture Notes in Geoinformation and Cartography},
- Title = {Generalization of {3D} {IFC} Building Models},
- Year = {2015}}
-
-@article{Blaschke10,
- Author = {T. Blaschke},
- Journal = {ISPRS Journal of Photogrammetry and Remote Sensing},
- Month = jan,
- Number = {1},
- Pages = {2--16},
- Title = {Object based image analysis for remote sensing},
- Volume = {65},
- Year = {2010}}
-
-@article{Biljecki14a,
- Author = {Filip Biljecki and Hugo Ledoux and Jantien Stoter},
- Journal = {GIM International},
- Month = nov,
- Number = {11},
- Pages = {21--23},
- Title = {Redefining the Level of Detail for {3D} models},
- Volume = {28},
- Year = {2014}}
-
-@manual{ISO14882:2015,
- Author = {ISO},
- Organization = {{International Organization for Standardization}},
- Title = {Information technology --- Programming languages --- C++},
- Year = {2015}}
-
-@article{Alexander24,
- Author = {J. W. Alexander},
- Journal = {Proceedings of the National Academy of Sciences of the United States of America},
- Number = {1},
- Pages = {8--10},
- Title = {An Example of a Simply Connected Surface Bounding a Region which is not Simply Connected},
- Volume = {10},
- Year = {1924}}
-
-@article{ArroyoOhori15b,
- Author = {Ken {Arroyo Ohori} and Hugo Ledoux and Filip Biljecki and Jantien Stoter},
- Journal = {ISPRS International Journal of Geo-Information},
- Month = jul,
- Number = {3},
- Pages = {1055--1075},
- Title = {Modelling a {3D} city model and its levels of detail as a true {4D} model},
- Year = {2015}}
-
-@phdthesis{Nagel14,
- Author = {Claus Nagel},
- Month = mar,
- School = {Technische Universit\"at Berlin},
- Title = {Spatio-Semantic Modelling of Indoor Environments for Indoor Navigation},
- Year = {2014}}
-
-@article{Meister71,
- Author = {Albrecht Ludwig Friedrich Meister},
- Journal = {Novi Commentarii Societatis Reglae Scientiarum Gottingensis},
- Pages = {144--180},
- Title = {Generalia de genesi figurarum planarum et inde pendentibus earum affectionibus},
- Volume = {1},
- Year = {1771}}
-
-@book{Cromley92,
- Author = {Robert G. Cromley},
- Publisher = {Prentice Hall},
- Title = {Digital Cartography},
- Year = {1992}}
-
-@manual{ISO19136:2007,
- Author = {{ISO}},
- Organization = {{International Organization for Standardization}},
- Title = {Geographic information --- Geography Markup Language (GML)},
- Year = {2007}}
-
-@article{Poincare93,
- Author = {Henri Poincar\'e},
- Journal = {Comptes rendus hebdomadaires de l'Acad\'emie des sciences de Paris},
- Pages = {144--145},
- Title = {Sur la g\'en\'eralisation d'un th\'eor\`eme d'{E}uler relatif aux poly\`edres},
- Volume = {117},
- Year = {1893}}
-
-@book{Cheng12,
- Author = {Siu-Wing Cheng and Tamal Krishna Dey and Jonathan Richard Shewchuk},
- Publisher = {CRC Press},
- Title = {Delaunay Mesh Generation},
- Year = {2012}}
-
-@incollection{Dollner05,
- Author = {J\"urgen D\"ollner and Henrik Buchholz},
- Booktitle = {GIS'05},
- Pages = {173--181},
- Publisher = {ACM},
- Title = {Continuous Level-of-Detail Modeling of Buildings in {3D} City Models},
- Year = {2005}}
-
-@incollection{Kolbe05,
- Author = {Thomas H. Kolbe and Gerhard Gr\"oger and Lutz Pl\"umer},
- Booktitle = {Geo-information for Disaster Management},
- Editor = {Peter {van Oosterom} and Siyka Zlatanova and Elfriede M. Fendel},
- Pages = {883--899},
- Publisher = {Springer Berlin Heidelberg},
- Title = {{CityGML}: Interoperable Access to {3D} City Models},
- Year = {2005}}
-
-@article{Groger11a,
- Author = {Gerhard Gr\"oger and Lutz Pl\"umer},
- Journal = {Geoinformatica},
- Pages = {137--165},
- Title = {How to achieve consistency for {3D} city models},
- Volume = {15},
- Year = {2011}}
-
-@inproceedings{Zlatanova04,
- Author = {Siyka Zlatanova and Daniel Holweg},
- Booktitle = {Proceedings of the 4th International Symposium on Mobile Mapping Technology},
- Title = {{3D} Geo-information in Emergency Response: A Framework},
- Year = {2004}}
-
-@inproceedings{Dollner06,
- Author = {J\"urgen D\"ollner and Thomas H. Kolbe and Falko Liecke and Takis Sgouros and Karin Teichmann},
- Booktitle = {UDMS 2006},
- Title = {The Virtual {3D} City Model of {B}erlin --- Managing, Integrating and Communicating Complex Urban Information},
- Year = {2006}}
-
-@misc{Ramsey10,
- Author = {Paul Ramsey},
- Howpublished = {Presentation at FOSS4G 2010. Available at \url{http://2010.foss4g.org/presentations/3369.pdf}},
- Title = {{P}ost{GIS}: Tips for Power Users},
- Year = {2010}}
-
-@article{Zhang14,
- Author = {Zhang, Xiang and Ai, Tinghua and Stoter, Jantien and Zhao, Xi},
- Journal = {ISPRS Journal of Photogrammetry and Remote Sensing},
- Month = jun,
- Pages = {147--163},
- Title = {Data matching of building polygons at multiple map scales improved by contextual information and relaxation},
- Volume = {92},
- Year = {2014}}
-
-@inproceedings{Hampe03,
- Author = {Mark Hampe and Karl-Heinrich Anders and Monica Sester},
- Booktitle = {Proceedings of the 21st International Cartographic Conference},
- Pages = {192--202},
- Title = {{MRDB} applications for data revision and real-time generalisation},
- Year = {2003}}
-
-@inproceedings{Devogele96,
- Address = {Delft, Netherlands},
- Author = {T. Devogele and J. Trevisan and L. Raynal},
- Booktitle = {Proceedings of the 7th International Symposium on Spatial Data Handling},
- Pages = {337-351},
- Title = {Building a Multi-scale Database with Scale-transition Relationships},
- Year = {1996}}
-
-@incollection{Veltkamp01,
- Author = {Remco C. Veltkamp and Michiel Hagedoorn},
- Booktitle = {Principles of Visual Information Retrieval},
- Pages = {87--119},
- Publisher = {Springer London},
- Series = {Advances in Pattern Recognition},
- Title = {State of the Art in Shape Matching},
- Year = {2001}}
-
-@incollection{Nagel09,
- Author = {Claus Nagel and Alexandra Stadler and Thomas H. Kolbe},
- Booktitle = {GeoWeb 2009 Academic Track - Cityscapes},
- Editor = {Thomas H. Kolbe and Hao Zhang and Sisi Zlatanova},
- Month = jul,
- Pages = {46--53},
- Publisher = {ISPRS Archives},
- Title = {Conceptual requirements for the automatic reconstruction of building information models from uninterpreted 3D models},
- Volume = {XXXVIII-3-4/C3},
- Year = {2009}}
-
-@article{Attene13,
- Author = {Marco Attene and Marcel Campen and Leif Kobbelt},
- Journal = {ACM Computing Surveys},
- Number = {2},
- Title = {Polygon mesh repairing: An application perspectice},
- Volume = {45},
- Year = {2013}}
-
-@article{Earman77,
- Author = {John Earman},
- Journal = {No\^us},
- Number = {3},
- Pages = {211--226},
- Title = {How to Talk about the Topology of Time},
- Volume = {11},
- Year = {1977}}
-
-@manual{ISO19125-1:2006,
- Author = {ISO},
- Month = mar,
- Organization = {{International Organization for Standardization}},
- Title = {Geographic information --- Simple feature access --- Part 1: Common architecture},
- Year = {2006}}
-
-@manual{ISO19108:2002,
- Author = {{ISO}},
- Month = feb,
- Organization = {{International Organization for Standardization}},
- Title = {Geographic information --- Temporal schema},
- Year = {2005}}
-
-@manual{ISO19108:2002/Cor1:2006,
- Author = {ISO},
- Month = jul,
- Organization = {{International Organization for Standardization}},
- Title = {Geographic information --- Temporal schema},
- Year = {2008}}
-
-@manual{ISO19107:2005,
- Author = {{ISO}},
- Month = feb,
- Organization = {{International Organization for Standardization}},
- Title = {Geographic Information --- Spatial Schema},
- Year = {2005}}
-
-@manual{ISO10303:2014,
- Author = {ISO},
- Month = aug,
- Organization = {{International Organization for Standardization}},
- Title = {Industrial automation systems and integration - Product data representation and exchange},
- Year = {2014}}
-
-@manual{ISO16739:2013,
- Author = {ISO},
- Month = mar,
- Organization = {{International Organization for Standardization}},
- Title = {Industry Foundation Classes (IFC) for data sharing in the construction and facility management industries},
- Year = {2013}}
-
-@manual{ISO19125-2:2006,
- Author = {ISO},
- Month = mar,
- Organization = {{International Organization for Standardization}},
- Title = {Geoinformation --- Simple feature access --- Part 2: SQL option},
- Year = {2006}}
-
-@manual{ISO19137:2008,
- Author = {ISO},
- Month = may,
- Organization = {{International Organization for Standardization}},
- Title = {Geographic information --- Core profile of the spatial schema},
- Year = {2008}}
-
-@book{Artin11,
- Author = {Emil Artin},
- Publisher = {Nabu Press},
- Title = {Geometric Algebra},
- Year = {2011}}
-
-@article{Stevens46,
- Author = {S. S. Stevens},
- Journal = {Science},
- Number = {2684},
- Pages = {677--680},
- Title = {On the Theory of Scales of Measurement},
- Volume = {103},
- Year = {1946}}
-
-@article{Hagerstrand70,
- Author = {Torsten H\"agerstrand},
- Journal = {Papers of the Regional Science Association},
- Number = {1},
- Pages = {6--21},
- Title = {What about people in Regional Science?},
- Volume = {24},
- Year = {1970}}
-
-@inproceedings{Kraak03,
- Author = {Menno-Jan Kraak},
- Booktitle = {Proceedings of the 21st International Cartographic Conference},
- Pages = {1988-1996},
- Title = {The space-time cube revisited from a geovisualization perspective},
- Year = {2003}}
-
-@inproceedings{Basri05,
- Author = {Moshe Blank and Lena Gorelick and Eli Shechtman and Michal Irani and Ronen Basri},
- Booktitle = {Proceedings of the 10th IEEE International Conference on Computer Vision},
- Title = {Actions as Space-Time Shapes},
- Year = {2005}}
-
-@article{ArroyoOhori15a,
- Author = {Ken {Arroyo Ohori} and Hugo Ledoux and Jantien Stoter},
- Journal = {International Journal of Geographical Information Science},
- Title = {A dimension-independent extrusion algorithm using generalised maps},
- Year = {2015}}
-
-@article{ArroyoOhori15,
- Author = {Ken {Arroyo Ohori} and Hugo Ledoux and Jantien Stoter},
- Journal = {International Journal of Geographical Information Science},
- Month = feb,
- Number = {5},
- Pages = {825--849},
- Title = {An evaluation and classification of {nD} topological data structures for the representation of objects in a higher-dimensional {GIS}},
- Volume = {29},
- Year = {2015}}
-
-@article{Goodchild01,
- Author = {Michael F. Goodchild},
- Journal = {International Journal of Applied Earth Observation and Geoinformation},
- Number = {2},
- Pages = {114--120},
- Title = {Metrics of scale in remote sensing and {GIS}},
- Volume = {3},
- Year = {2001}}
-
-@article{Zhao12,
- Author = {Junqiao Zhao and Qing Zhu and Zhiqiang Du and Tiantian Feng and Yeting Zhang},
- Journal = {ISPRS Journal of Photogrammetry and Remote Sensing},
- Month = mar,
- Pages = {95--111},
- Title = {Mathematical morphology-based generalization of complex {3D} building models incorporating semantic relationships},
- Volume = {68},
- Year = {2012}}
-
-@incollection{Kazhdan06,
- Author = {Michael Kazhdan and Matthew Bolitho1 and Hugues Hoppe2},
- Booktitle = {Eurographics Symposium on Geometry Processing},
- Editor = {Konrad Polthier and Alla Sheffer},
- Publisher = {The Eurographics Association},
- Title = {Poisson Surface Reconstruction},
- Year = {2006}}
-
-@incollection{Amenta98,
- Author = {Nina Amenta and Marshall Bern},
- Booktitle = {SCG '98 Proceedings of the 14th annual symposium on Computational geometry},
- Pages = {39--48},
- Publisher = {ACM},
- Title = {Surface reconstruction by {V}oronoi filtering},
- Year = {1998}}
-
-@incollection{Lindstrom98,
- Author = {Peter Lindstrom and Greg Turk},
- Booktitle = {VIS '98 Proceedings of the conference on Visualization '98},
- Pages = {279--286},
- Publisher = {IEEE Computer Society Press},
- Title = {Fast and memory efficient polygonal simplification},
- Year = {1998}}
-
-@incollection{Garland97,
- Author = {Michael Garland and Paul S. Heckbert},
- Booktitle = {SIGGRAPH '97 Proceedings of the 24th annual conference on Computer graphics and interactive techniques},
- Pages = {209--216},
- Publisher = {ACM Press/Addison-Wesley Publishing},
- Title = {Surface simplification using quadric error metrics},
- Year = {1997}}
-
-@incollection{Rigaux95,
- Author = {Philippe Rigaux and Michel Scholl},
- Booktitle = {Advances in Spatial Databases},
- Editor = {Max J. Egenhofer and John R. Herring},
- Pages = {170--183},
- Publisher = {Springer Berlin Heidelberg},
- Series = {Lecture Notes in Computer Science},
- Title = {Multi-Scale Partitions: Application to Spatial and Statistical Databases},
- Volume = {951},
- Year = {1995}}
-
-@techreport{Filho95,
- Author = {Waldemar Celes Filho and Luiz Henrique {de Figueiredo} and Marcelo Gattass and Paulo Cezar Carvalho},
- Institution = {Department of Computer Science, University of Waterloo},
- Number = {CS-95-53},
- Title = {A topological data structure for hierarchical planar subdivisions},
- Year = {1995}}
-
-@article{Tofper66,
- Author = {F. T\"ofper and W. Pillerwizer},
- Journal = {The Cartographic Journal},
- Month = may,
- Number = {1},
- Pages = {10--16},
- Title = {The Principles of Selection},
- Volume = {3},
- Year = {1966}}
-
-@incollection{Gunther88,
- Author = {Oliver G\"unther},
- Booktitle = {Efficient structures for geometric data management},
- Chapter = {6},
- Pages = {85--121},
- Publisher = {Springer Berlin Heidelberg},
- Series = {Lecture Notes in Computer Science},
- Title = {The arc tree: An approximation scheme to represent arbitrary curved shapes},
- Volume = {337},
- Year = {1988}}
-
-@inproceedings{Jones86,
- Author = {Jones, C.B. and Abraham, I.M.},
- Booktitle = {Proceedings of the 2nd International Symposium on Spatial Data Handling},
- Editor = {Marble, D.},
- Pages = {384--398},
- Title = {Design considerations for a scale-independent cartographic database},
- Year = {1986}}
-
-@article{Ballard81,
- Author = {Dana H. Ballard},
- Journal = {Communications of the ACM},
- Month = may,
- Number = {5},
- Pages = {310--321},
- Title = {Strip Trees: A Hierarchical Representation for Curves},
- Volume = {24},
- Year = {1981}}
-
-@techreport{Buttenfield89,
- Author = {Barbara P. Buttenfield and Joseph S. DeLotto},
- Institution = {National Center for Geographic Information and Analysis},
- Number = {89--3},
- Title = {Multiple Representations: Scientific Report for the Specialist Meeting},
- Year = {1989}}
-
-@techreport{CEC95,
- Author = {CEC},
- Institution = {Commission of the European Communities},
- Title = {CORINE Land Cover},
- Year = {1995}}
-
-@manual{SGK75,
- Author = {SGK},
- Organization = {Der Schweizerischen Gesellschaft f\"ur Kartographie},
- Title = {Kartographische Generalisierung},
- Year = {1975}}
-
-@book{Robinson95,
- Author = {Arthur Howard Robinson},
- Publisher = {Wiley},
- Title = {Elements of cartography},
- Year = {1995}}
-
-@techreport{Shead10,
- Author = {Timothy M. Shead},
- Institution = {The K-3D Project},
- Title = {Universal Relational Storage for Geometric Primitives},
- Year = {2010}}
-
-@phdthesis{Strasser74,
- Author = {Wolfgang Stra{\ss}er},
- School = {Technische Universit\"at Berlin},
- Title = {Schnelle Kurven- und Fl\"achendarstellung auf graphischen Sichtger\"aten},
- Year = {1974}}
-
-@article{Kuhn05,
- Author = {Werner Kuhn},
- Journal = {Journal on Data Semantics},
- Title = {Geospatial Semantics: Why, of What, and How?},
- Year = {2005}}
-
-@incollection{Biljecki15,
- Author = {Biljecki, Filip and Ledoux, Hugo and Stoter, Jantien},
- Booktitle = {3D Geoinformation Science. The Selected Papers of the 3D GeoInfo 2014},
- Editor = {Breunig, Martin and Mulhim, Al-Doori and Butwilowski, Edgar and Kuper, Paul Vincent and Benner, Joachim and H{\"a}fele, Karl-Heinz},
- Pages = {1--17},
- Publisher = {Springer International Publishing},
- Title = {Improving the Consistency of Multi-{LOD} {CityGML} Datasets by Removing Redundancy},
- Year = {2015}}
-
-@phdthesis{Versprille75,
- Author = {Kenneth James Versprille},
- School = {Syracuse University},
- Title = {Computer-aided design applications of the rational b-spline approximation form},
- Year = {1975}}
-
-@phdthesis{Bezier77,
- Author = {Pierre B\'ezier},
- School = {Universit\'e Pierre et Marie Curie},
- Title = {Essai de d\'efinition num\'erique des courbes et des surfaces experimentales: Contribution \`a l'\'etude des propri\'et\'es des courbes et des surfaces param\'etriques polynomiales \`a coefficients vectoriels},
- Year = {1977}}
-
-@techreport{Cori75,
- Author = {Robert Cori},
- Institution = {Soci\'et\'e math\'ematique de France},
- Title = {Un code pour les graphes planaires et ses applications},
- Year = {1975}}
-
-@incollection{Hanrahan82,
- Author = {Patrick M. Hanrahan},
- Booktitle = {SIGGRAPH '82 Proceedings of the 9th annual conference on Computer graphics and interactive techniques},
- Pages = {77-84},
- Publisher = {ACM},
- Title = {Creating volume models from edge-vertex graphs},
- Year = {1982}}
-
-@incollection{Brewer86,
- Author = {John A. {Brewer III} and S. Mark Courter},
- Booktitle = {SIGGRAPH '86 Proceedings of the 13th annual conference on Computer graphics and interactive techniques},
- Number = {4},
- Publisher = {ACM},
- Title = {Automated conversion of curvilinear wire-frame models to surface boundary models; a topological approach},
- Volume = {20},
- Year = {1986}}
-
-@article{Brouwer11,
- Author = {L.E.J. Brouwer},
- Journal = {Mathematische Annalen},
- Pages = {314--319},
- Title = {Beweis des {J}ordanschen {S}atzes f\"ur den $n$-dimensionalen {R}aum},
- Volume = {71},
- Year = {1911}}
-
-@book{van-Dalen13,
- Author = {Dirk {van Dalen}},
- Publisher = {Springer Science+Business Media},
- Title = {L.E.J. Brouwer --- Topologist, Intuitionist, Philosopher},
- Year = {2013}}
-
-@article{Lebesgue11,
- Author = {M. Lebesgue},
- Journal = {Comptes rendus de l'Acad\'emie des Sciences},
- Pages = {841--844},
- Title = {Sur l'invariance du nombre de dimensions d'un espace et sur le theor\`eme de {M}. {J}ordan relatif aux variet\'e ferm\'ees},
- Volume = {152},
- Year = {1911}}
-
-@book{Sagan94,
- Author = {Hans Sagan},
- Publisher = {Springer Science+Business Media},
- Title = {Space-Filling Curves},
- Year = {1994}}
-
-@techreport{Requicha78,
- Author = {Aristides A. G. Requicha and Robert B. Tilove},
- Institution = {University of Rochester},
- Number = {27},
- Title = {Mathematical Foundations of Constructive Solid Geometry: General Topology of Closed Regular Sets},
- Type = {Production Automation Project Technical Memorandum},
- Year = {1978}}
-
-@article{Blackmore94,
- Author = {Denis Blackmore and Ming C. Leu and Frank Shih},
- Journal = {Computer-Aided Design},
- Month = apr,
- Number = {4},
- Pages = {315--326},
- Title = {Analysis and modelling of deformed swept volumes},
- Volume = {26},
- Year = {1994}}
-
-@article{Weld90,
- Author = {John D. Weld and Ming C. Leu},
- Journal = {The International Journal of Robotics Research},
- Number = {5},
- Pages = {105--117},
- Title = {Geometric Representation of Swept Volumes with Application to Polyhedral Objects},
- Volume = {9},
- Year = {1990}}
-
-@article{Lee82,
- Author = {Yong Tsui Lee and Aristides A. G. Requicha},
- Journal = {Communications of the ACM},
- Number = {9},
- Pages = {635--641},
- Title = {Algorithms for Computing the Volume and Other Integral Properties of Solids. {I}. {K}nown Methods and Open Issues},
- Volume = {25},
- Year = {1982}}
-
-@incollection{Kada07,
- Author = {Martin Kada},
- Booktitle = {COSIT 2007},
- Pages = {222--237},
- Publisher = {Springer-Verlag Berlin Heidelberg},
- Series = {Lecture Notes in Computer Science},
- Title = {Scale-Dependent Simplification of {3D} Building Models Based on Cell Decomposition and Primitive Instancing},
- Volume = {4736},
- Year = {2007}}
-
-@book{Devlin93,
- Author = {Keith Devlin},
- Publisher = {Springer-Verlag},
- Title = {The Joy of Sets: Fundamentals of Contemporary Set Theory},
- Year = {1993}}
-
-@article{Cantor74,
- Author = {Georg Cantor},
- Journal = {Journal f{\"u}r die reine und angewandte Mathematik},
- Pages = {258--262},
- Title = {Ueber eine {E}igenschaft des Inbegriffs aller reellen algebraischen {Z}ahlen},
- Volume = {77},
- Year = {1874}}
-
-@techreport{Meagher80,
- Author = {Donald Meagher},
- Institution = {Rensselaer Polytechnic Institute},
- Title = {Octree Encoding: a New Technique for the Representation, Manipulation and Display of Arbitrary 3-D Objects by Computer},
- Year = {1980}}
-
-@article{Keil02,
- Author = {Mark Keil and Jack Snoeyink},
- Journal = {International Journal of Computational Geometry and Applications},
- Number = {181},
- Title = {On the time bound for convex decomposition of simple polygons},
- Volume = {12},
- Year = {2002}}
-
-@article{Rvachev63,
- Author = {V. L. Rvachev},
- Journal = {Doklady Akademii Nauk SSSR},
- Number = {4},
- Pages = {765--767},
- Title = {On the analytical description of certain geometrical objects},
- Volume = {153},
- Year = {1963}}
-
-@article{Preparata79,
- Author = {F.P. Preparata and D.E. Muller},
- Journal = {Theoretical Computer Science},
- Number = {1},
- Pages = {45--55},
- Title = {Finding the intersection of $n$ half-spaces in time $O(n \log n)$},
- Volume = {8},
- Year = {1979}}
-
-@article{Freundschuh97,
- Author = {Scott M. Freundschuh and Max J. Egenhofer},
- Journal = {Transactions in GIS},
- Number = {4},
- Pages = {361--375},
- Title = {Human Conceptions of Spaces: Implications for Geographic Information Systems},
- Volume = {2},
- Year = {1997}}
-
-@book{Hoffmann92,
- Author = {Christoph M. Hoffmann},
- Publisher = {Morgan Kaufmann Publishers},
- Title = {Geometric and solid modeling},
- Year = {1992}}
-
-@techreport{Requicha77,
- Author = {A. A. G. Requicha and H. B. Voelcker},
- Institution = {College of Engineering \& Applied Science, The University of Rochester},
- Month = nov,
- Number = {25},
- Title = {Constructive Solid Geometry},
- Type = {Technical Memorandum},
- Year = {1977}}
-
-@book{Foley95,
- Author = {James D. Foley and Andries {van Dam} and Steven K. Feiner and John F. Hughes},
- Publisher = {Addison-Wesley Professional},
- Title = {Computer Graphics: Principles and Practice in C},
- Year = {1995}}
-
-@article{Euler41,
- Author = {Leonhard Euler},
- Journal = {Commentarii academiae scientiarum Petropolitanae},
- Pages = {128--140},
- Title = {Solutio problematis ad geometriam situs pertinentis},
- Volume = {8},
- Year = {1741}}
-
-@book{Henle94,
- Author = {Michael Henle},
- Publisher = {Dover Publications},
- Title = {A Combinatorial Introduction to Topology},
- Year = {1994}}
-
-@book{Hausdorff14,
- Address = {Leipzig},
- Author = {Felix Hausdorff},
- Publisher = {Verlag von Veit \& Comp.},
- Title = {Grundz\"uge der Mengenlehre},
- Year = {1914}}
-
-@book{Bolyai32,
- Author = {J\'anos Bolyai},
- Publisher = {Maros-V\'as\'arhelyini},
- Title = {Appendix Scientiam Spatii Absolute Veram Exhibens},
- Year = {1832}}
-
-@book{Lobachevsky40,
- Address = {Berlin},
- Author = {Nikolai Lobachevsky},
- Publisher = {Funcke},
- Title = {Geometrische Untersuchungen zur Theorie der Parallellinien},
- Year = {1840}}
-
-@article{de-Fermat79,
- Author = {Pierre {de Fermat}},
- Journal = {Varia opera mathematica},
- Pages = {1--8},
- Title = {Ad Locos Planos et Solidos Isagoge},
- Year = {1679}}
-
-@book{Fitzpatrick08,
- Author = {Richard Fitzpatrick},
- Publisher = {Richard Fitzpatrick},
- Title = {Euclid's Elements of Geometry},
- Year = {2008}}
-
-@book{Burrough86,
- Author = {P.A. Burrough},
- Publisher = {Taylor \& Francis},
- Title = {Principles of geographical information systems for land resources assessment},
- Year = {1986}}
-
-@book{Bailey95,
- Author = {Trevor C. Bailey and Anthony C. Gatrell},
- Publisher = {Longman},
- Title = {Interactive spatial data analysis},
- Year = {1995}}
-
-@article{Stoter14,
- Author = {Stoter, J.E. and M. Post and V. van Altena and R. Nijhuis and B. Bruns},
- Journal = {Cartography and Geographic Information Science},
- Month = jan,
- Number = {1},
- Pages = {1-13},
- Title = {Fully automated generalisation of a 1:50k map from 1:10k data},
- Volume = {41},
- Year = {2014}}
-
-@inproceedings{Vandysheva12,
- Author = {Natalia Vandysheva and Sergey Sapelnikov and Peter {van Oosterom} and Marian {de Vries} and Boudewijn Spiering and Rik Wouters and Andreas Hoogeveen and Veliko Penkov},
- Booktitle = {FIG Working Week 2012},
- Month = {May},
- Title = {The {3D} Cadastre Prototype and Pilot in the {R}ussian {F}ederation},
- Year = {2012}}
-
-@manual{GML3.2.1,
- Author = {{OGC}},
- Month = {August},
- Organization = {{Open Geospatial Consortium}},
- Title = {{OpenGIS} Geography Markup Language (GML) Encoding Standard. Version 3.2.1},
- Year = {2007}}
-
-@manual{GML3.3,
- Author = {{OGC}},
- Month = {December},
- Organization = {{Open Geospatial Consortium}},
- Title = {{OGC} {G}eography {M}arkup {L}anguage --- Extended schemas and encoding rules. Version 3.3.0},
- Year = {2012}}
-
-@book{Damiand14,
- Author = {Guillaume Damiand and Pascal Lienhardt},
- Publisher = {CRC Press},
- Title = {Combinatorial Maps: Efficient Data Structures for Computer Graphics and Image Processing},
- Year = {2014}}
-
-@inproceedings{Aguila03,
- Author = {Ricardo P\'erez Aguila and Antonio Aguilera Ram\'irez},
- Booktitle = {WSCG'2003},
- Month = feb,
- Publisher = {UNION Agency - Science Press},
- Title = {Classifying Edges and Faces as Manifold or Non-Manifold Elements in {4D} Orthogonal Pseudo-Polytopes},
- Year = {2003}}
-
-@mastersthesis{Donkers13,
- Author = {Sjors Donkers},
- Month = {December},
- School = {Delft University of Technology},
- Title = {Automatic generation of {CityGML} {LoD3} building models from {IFC} models},
- Year = {2013}}
-
-@inproceedings{Xiong10,
- Author = {Xuehan Xiong and Daniel Huber},
- Booktitle = {Proceedings of the British Machine Vision Conference (BMVC)},
- Title = {Using Context to Create Semantic {3D} Models of Indoor Environments},
- Year = {2010}}
-
-@article{Sternberg13,
- Author = {Harald Sternberg and Friedrich Keller and Thomas Willemsen},
- Journal = {Journal of Applied Geodesy},
- Pages = {231--246},
- Title = {Precise indoor mapping as a basis for coarse indoor navigation},
- Volume = {7},
- Year = {2013}}
-
-@incollection{Jamali14,
- Author = {Ali Jamali and Pawel Boguslawski and Christopher M. Gold and Alias Abdul Rahman},
- Booktitle = {Innovations in 3D Geo-Information Sciences},
- Pages = {1--11},
- Publisher = {Springer International Publishing},
- Series = {Lecture Notes in Geoinformation and Cartography},
- Title = {Rapid Indoor Data Acquisition Technique for Indoor Building Surveying for Cadastre Application},
- Year = {2014}}
-
-@mastersthesis{Martin05,
- Author = {Jess Martin},
- School = {Trinity University},
- Title = {Algorithmic Beauty of Buildings Methods for Procedural Building Generation},
- Year = {2005}}
-
-@inproceedings{Johnston08,
- Author = {Matthew Johnston and Avideh Zakhor},
- Booktitle = {Proceedings of Three-Dimensional Image Capture and Applications},
- Title = {Estimating building floor-plans from exterior using laser scanners},
- Year = {2008}}
-
-@incollection{Budroni09,
- Author = {Angela Budroni and Jan B\"ohm},
- Booktitle = {3D Virtual Reconstruction and Visualization of Complex Architectures},
- Publisher = {ISPRS},
- Series = {ISPRS Archives},
- Title = {Toward automatic reconstruction of interiors from laser data},
- Volume = {XXXVIII-5/W1},
- Year = {2009}}
-
-@inproceedings{Okorn10,
- Author = {Brian Okorn and Xuehan Xiong and Burcu Akinci and Daniel Huber},
- Booktitle = {Proceedings of the Symposium on 3D Data Processing, Visualization and Transmission},
- Title = {Toward Automated Modeling of Floor Plans},
- Year = {2010}}
-
-@inproceedings{Goetz11,
- Author = {M. Goetz and A. Zipf},
- Booktitle = {Proceedings of the UDMS: Urban and Regional Data Management: 2011},
- Title = {Extending {OpenStreetMap} to Indoor Environments: Bringing Volunteered Geographic Information to the Next Level},
- Year = {2011}}
-
-@manual{NEN2580,
- Author = {{NEN}},
- Month = {May},
- Title = {NEN 2580:2007 nl: Areas and volumes of buildings - Terms, definitions and methods of determination},
- Year = {2007}}
-
-@book{Homotopy13,
- Author = {{The Univalent Foundations Program Institute for Advanced Study}},
- Publisher = {Institute for Advanced Study},
- Title = {Homotopy Type Theory: Univalent Foundations of Mathematics}}
-
-@incollection{Wagner13,
- Author = {Detlev Wagner and Mark Wewetzer and J\"urgen Bogdahn and Nazmul Alam and Margitta Pries and Volker Coors},
- Booktitle = {Progress and New Trends in 3D Geoinformation Sciences},
- Editor = {J. Pouliot and S. Daniel and F. Hubert and A. Zamyadi},
- Publisher = {Springer Berlin Heidelberg},
- Series = {Lecture Notes in Geoinformation and Cartography},
- Title = {Geometric-semantical consistency validation of {CityGML} models},
- Year = {2013}}
-
-@incollection{Hagedorn09,
- Author = {Benjamin Hagedorn and Matthias Trapp and Tassilo Glander and J\"urgen D\"ollner},
- Booktitle = {2009 Tenth International Conference on Mobile Data Management: Systems, Services and Middleware},
- Publisher = {IEEE Computer Society},
- Title = {Towards an Indoor Level-of-Detail Model for Route Visualization},
- Year = {2009}}
-
-@inproceedings{Guercke09,
- Author = {Richard Guercke and Claus Brenner},
- Booktitle = {Proceedings of the 12th AGILE International Conference on Geographic Information Science 2009},
- Title = {A Framework for the Generalization of {3D} City Models},
- Year = {2009}}
-
-@incollection{Emgard08,
- Author = {L. Emg{\aa}rd and S. Zlatanova},
- Booktitle = {Urban and Regional Data Management --- UDMS Annual 2007},
- Editor = {V. Coors and M. Rumor and E.M. Fendel and S. Zlatanova},
- Publisher = {Taylor \& Francis},
- Title = {Design of an integrated {3D} information model},
- Year = {2008}}
-
-@inproceedings{Dominguez11,
- Author = {B. Dom\'inguez and \'A.L. Garc\'ia and F.R. Feito},
- Booktitle = {Proceedings of the Joint ISPRS Workshop on 3D City Modelling \& Applications and the 6th 3D GeoInfo Conference},
- Pages = {209--222},
- Title = {Semantic and topological representation of building indoors: an overview},
- Volume = {66},
- Year = {2011}}
-
-@article{Guercke11,
- Author = {R. Guercke and T. G\"otzelmann and C. Brenner and M. Sester},
- Journal = {ISPRS Journal of Photogrammetry and Remote Sensing},
- Pages = {209--222},
- Title = {Aggregation of LoD 1 building models as an optimization problem},
- Volume = {66},
- Year = {2011}}
-
-@incollection{Vosselman01,
- Author = {George Vosselman and Sander Dijkman},
- Booktitle = {International Archives of Photogrammetry and Remote Sensing},
- Publisher = {International Society for Photogrammetry and Remote Sensing},
- Title = {{3D} building model reconstruction from point clouds and ground plans},
- Volume = {XXXIV-3/W4},
- Year = {2001}}
-
-@article{Dilo09,
- Author = {Arta Dilo and Peter {van Oosterom} and Arjen Hofman},
- Pages = {388--402},
- Title = {Constrained {tGAP} for generalization between scales: The case of {D}utch topographic data},
- Volume = {33},
- Year = {2009}}
-
-@article{Biljecki14,
- Author = {Filip Biljecki and Hugo Ledoux and Jantien Stoter and Junqiao Zhao},
- Journal = {Computers, Environment and Urban Systems},
- Pages = {1--15},
- Title = {Formalisation of the level of detail in {3D} city modelling},
- Volume = {48},
- Year = {2014}}
-
-@inproceedings{Bedard02,
- Author = {Bernier B\'edard},
- Booktitle = {Joint Workshop on Multi-Scale Representations of Spatial Data},
- Title = {Supporting Multiple Representations with Spatial View Management and the Concept of ``VUEL''},
- Year = {2002}}
-
-@book{Salomon07,
- Author = {David Salomon},
- Edition = {Fourth Edition},
- Publisher = {Springer},
- Title = {Data Compression: The Complete Reference},
- Year = {2007}}
-
-@book{Borg05,
- Author = {Ingwer Borg and Patrick J.F. Groenen},
- Edition = {2nd Edition},
- Publisher = {Springer},
- Series = {Springer Series in Statistics},
- Title = {Modern Multidimensional Scaling: Theory and Applications},
- Year = {2005}}
-
-@incollection{David93,
- Author = {Benoit David and Laurent Raynal and Guylaine Schorter and V\'eronique Mansart},
- Booktitle = {Database and Expert Systems Applications},
- Editor = {Vladim\'ir Ma\v{r}\'ik and Ji\v{r}\'i La\v{z}ansk\'y and Roland R. Wagner},
- Pages = {377--383},
- Publisher = {Springer Berlin Heidelberg},
- Series = {Lecture Notes in Computer Science},
- Title = {GeO2: Object-oriented contribution for a geographical DBMS?},
- Volume = {720},
- Year = {1993}}
-
-@article{Bryant85,
- Author = {Robin P. Bryant and David Singerman},
- Journal = {Quarterly Journal of Mathematics},
- Number = {2},
- Pages = {17--41},
- Title = {Foundations of the theory of maps on surfaces with boundary},
- Volume = {36},
- Year = {1985}}
-
-@book{Edelsbrunner14,
- Author = {Herbert Edelsbrunner},
- Publisher = {Springer},
- Series = {Springer Briefs in Applied Sciences and Technology},
- Title = {A Short Course in Computational Geometry and Topology},
- Year = {2014}}
-
-@article{Fisher97,
- Author = {P. Fisher},
- Journal = {International Journal of Remote Sensing},
- Number = {3},
- Pages = {679--685},
- Title = {The pixel: a snare and a delusion},
- Volume = {18},
- Year = {1997}}
-
-@incollection{Hazelton98,
- Author = {N.W.J. Hazelton},
- Booktitle = {Spatial and Temporal Reasoning in Geographic Information Systems},
- Editor = {Egenhofer, M.J. and Golledge, R.G.},
- Pages = {63--73},
- Publisher = {Oxford University Press},
- Title = {Some Operations Requirements for a Multi-Temporal {4-D} {GIS}},
- Year = {1998}}
-
-@article{Molenaar92,
- Author = {Martien Molenaar},
- Journal = {ITC Journal},
- Pages = {25--33},
- Title = {A topology for {3D} vector maps},
- Volume = {1},
- Year = {1992}}
-
-@book{Raper89,
- Editor = {Jonathan Raper},
- Publisher = {Taylor \& Francis},
- Title = {Three Dimensional Applications in Geographic Information Systems},
- Year = {1989}}
-
-@book{Worboys04,
- Author = {Michael Worboys and Matt Duckham},
- Edition = {2nd},
- Publisher = {CRC Press},
- Title = {{GIS}: A Computational Perspective},
- Year = {2004}}
-
-@manual{ESRITopology,
- Author = {{ESRI}},
- Month = {July},
- Organization = {{ESRI}},
- Title = {{GIS} Topology},
- Year = {2005}}
-
-@inproceedings{Dominguez12,
- Author = {B. Dom\'inguez and \'A.L. Garc\'ia and F.R. Feito},
- Booktitle = {GRAPP/IVAPP},
- Title = {Semantic and topological representation of building indoors: an overview},
- Year = {2012}}
-
-@inproceedings{Diakite14,
- Author = {A. A. Diakit\'e and Guillaume Damiand and D. {van Maercke}},
- Booktitle = {Proceedings of the 2nd Eurographics Workshop on Urban Data Modelling and Visualisation},
- Title = {Topological Reconstruction of Complex 3D Buildings and Automatic Extraction of Levels of Detail},
- Year = {2014}}
-
-@unpublished{Prieto10,
- Author = {Carlos Prieto},
- Title = {Elements of Point-Set Topology},
- Year = {2010}}
-
-@unpublished{Bell92,
- Author = {Sarah B.M. Bell and Fred C. Holroyd},
- Title = {Optimal Hierarchies for Spatial Data Processing},
- Year = {1992}}
-
-@techreport{McKenzie01,
- Author = {John W. McKenzie and Ian P. Williamson and N.W.J. Hazelton},
- Institution = {Department of Geomatics, The University of Melbourne},
- Title = {{4-D} Adaptive {GIS}: Justification and Methodologies},
- Year = {2001}}
-
-@article{Hamre97,
- Author = {Torill Hamre and Khalid Azim Mughal and Anita Jacob},
- Journal = {Marine Geodesy},
- Number = {2--3},
- Pages = {121--136},
- Title = {A {4D} marine data model: Design and application in ice monitoring},
- Volume = {20},
- Year = {1997}}
-
-@article{Bernard00,
- Author = {Lard Bernard and Thomas Kr\"uger},
- Journal = {Transactions in GIS},
- Month = {June},
- Number = {3},
- Pages = {197--215},
- Title = {Integration of GIS and Spatio-temporal Simulation Models: Interoperable Components for Different Simulation Strategies},
- Volume = {4},
- Year = {2000}}
-
-@inproceedings{Bernard98,
- Author = {Lars Bernard and Benno Schmidt and Ulrich Streit},
- Booktitle = {Proceedings of the 8th International Symposium on Spatial Data Handling},
- Editor = {T.K. Poiker and N. Chrisman},
- Title = {{AtmoGIS} --- Integration of atmospheric models and {GIS}},
- Year = {1998}}
-
-@article{Liu08,
- Author = {Yuanxin Liu and Jack Snoeyink},
- Journal = {International Journal of Computational Geometry and Applications},
- Number = {4},
- Pages = {343--355},
- Title = {Faraway Point: A Sentinel Point for {D}elaunay Computation},
- Volume = {18},
- Year = {2008}}
-
-@article{Onosato14,
- Author = {Masahiko Onosato and Yosuke Saito and Fumiki Tanaka and Ryoji Kawagishi},
- Journal = {Computer-Aided Civil},
- Number = {6},
- Pages = {649--658},
- Title = {Weaving a Four-dimensional Mesh Model from a Series of Three-dimensional Voxel Models},
- Volume = {11},
- Year = {2014}}
-
-@article{Bucksch14,
- Author = {Alexander Bucksch and Greg Turk and Joshua Weitz},
- Journal = {PLOS ONE},
- Number = {1},
- Pages = {1--11},
- Title = {The Fiber Walk: A Model of Tip-Driven Growth with Lateral Expansion},
- Volume = {9},
- Year = {2014}}
-
-@article{Borradaile14,
- Author = {Glencora Borradaile and Erin Wolf Chambers},
- Journal = {Discrete \& Computational Geometry},
- Title = {Covering nearly surface-embedded graphs with a fixed number of balls},
- Year = {2014}}
-
-@incollection{Tran14,
- Author = {Phuoc Vinh Tran and Hong Thu Nguyen and Trung Vinh Tran},
- Booktitle = {IMCOM (ICUIMC)'14},
- Publisher = {ACM},
- Title = {Approaching Multi-dimensional Cube for Visualization-based Epidemic Warning System - Dengue Fever},
- Year = {2014}}
-
-@article{Lopes03,
- Author = {H. Lopes and S. Pesco and G. Tavares and M. Maia and A. Xavier},
- Journal = {International Journal of Shape Modeling},
- Number = {1},
- Pages = {61--77},
- Title = {Handlebody Representation for Surfaces and its Applications to Terrain Modeling},
- Volume = {9},
- Year = {2003}}
-
-@inproceedings{Gomes04,
- Author = {Abel J. P. Gomes},
- Booktitle = {ACM Symposium on Solid Modeling and Applications},
- Editor = {P. Brunet and N. Patrikalakis},
- Title = {Euler Operators for Stratified Objects with Incomplete Boundaries},
- Year = {2004}}
-
-@incollection{Suba14,
- Author = {Radan \v{S}uba and Martijn Meijers and Lina Huang and Peter {van Oosterom}},
- Booktitle = {Connecting a Digital Europe Through Location and Place},
- Editor = {Joaqu\'in Huerta and Sven Schade and Carlos Granell},
- Pages = {275--293},
- Publisher = {Springer International Publishing Switzerland},
- Title = {An Area Merge Operation for Smooth Zooming},
- Year = {2014}}
-
-@article{Ferrucci91,
- Author = {Vincenzo Ferrucci and Alberto Paoluzzi},
- Journal = {Computer-Aided Civil},
- Number = {1},
- Pages = {40--50},
- Title = {Extrusion and boundary evaluation for multidimensionaI poIyhedra},
- Volume = {23},
- Year = {1991}}
-
-@article{Pascucci94,
- Author = {V. Pascucci and V. Ferrucci and A. Paoluzzi},
- Journal = {International Journal of Shape Modeling},
- Title = {Dimension-Independent Convex-Cell Based HPC Skeletons and Product},
- Year = {1994}}
-
-@inproceedings{deFloriani10,
- Author = {Leila {de Floriani} and Annie Hui and Daniele Panozzo and David Canino},
- Booktitle = {Proceedings of the 19th International Meshing Roundtable},
- Editor = {Suzanne Shontz},
- Pages = {403--420},
- Title = {A Dimension-Independent Data Structure for Simplicial Complexes},
- Year = {2010}}
-
-@incollection{Pascucci95,
- Author = {Valerio Pascucci and Vincenzo Ferrucci and Alberto Paoluzzi},
- Booktitle = {Solid Modeling '95},
- Pages = {163--174},
- Publisher = {ACM},
- Title = {Dimension-Independent Convex-Cell Based HPC: Representation Scheme and Implementation Issues},
- Year = {1995}}
-
-@article{Paoluzzi92,
- Author = {A. Paoluzzi and C. Sansoni},
- Journal = {Computer-Aided Civil},
- Number = {7},
- Pages = {349--366},
- Title = {Programming language for solid variational geometry},
- Volume = {24},
- Year = {1992}}
-
-@incollection{Juan-Arinyo95,
- Author = {Robert Juan-Arinyo},
- Booktitle = {Computer Graphics Forum},
- Pages = {281--293},
- Publisher = {The Eurographics Association},
- Title = {Domain Extension of Isothetic Polyhedra with Minimal CSG Representation},
- Volume = {5},
- Year = {1995}}
-
-@inproceedings{Canino14,
- Author = {David Canino and Leila {de Floriani}},
- Booktitle = {Proceedings of the 22nd International Meshing Roundtable},
- Editor = {Josep Sarrate and Matthew Staten},
- Pages = {465--483},
- Title = {Representing Simplicial Complexes with Mangroves},
- Year = {2014}}
-
-@article{Peuquet84,
- Author = {Donna J. Peuquet},
- Journal = {Cartographica},
- Number = {4},
- Pages = {66--113},
- Title = {A Conceptual Framework and Comparison of Spatial Data Models},
- Volume = {21},
- Year = {1984}}
-
-@incollection{Couclelis92,
- Author = {Helen Couclelis},
- Booktitle = {Theories and Methods of Spatio-Temporal Reasoning in Geographic Space},
- Editor = {A. U. Frank and I. Campari and U. Formentini},
- Pages = {65--77},
- Publisher = {Springer Berlin Heidelberg},
- Series = {Lecture Notes in Computer Science},
- Title = {People Manipulate Objects (but Cultivate Fields): Beyond the Raster-Vector Debate in {GIS}},
- Volume = {639},
- Year = {1992}}
-
-@article{Galton01,
- Author = {Antony Galton},
- Journal = {Topoi},
- Pages = {173--187},
- Title = {Space, Time, and the Representation of Geographical Reality},
- Volume = {20},
- Year = {2001}}
-
-@incollection{Ferrucci93,
- Author = {Vincenzo Ferrucci},
- Booktitle = {2nd ACM Solid Modelling '93},
- Pages = {35--42},
- Publisher = {ACM},
- Title = {Generalised Extrusion of Polyhedra},
- Year = {1993}}
-
-@incollection{Velho03,
- Author = {Luiz Velho},
- Booktitle = {Eurographics Symposium on Geometry Processing},
- Editor = {L. Kobbelt and P. Schr\"oder and H. Hoppe},
- Publisher = {The Eurographics Association},
- Title = {Stellar Subdivision Grammars},
- Year = {2003}}
-
-@book{Conway92,
- Author = {J.H. Conway and N.J.A. Sloane},
- Publisher = {Springer-Verlag},
- Title = {Sphere Packings, Lattices and Groups},
- Year = {1992}}
-
-@article{Rossignac91,
- Author = {Jarek R. Rossignac and Aristides A. G. Requicha},
- Journal = {Computer-Aided Design},
- Number = {1},
- Pages = {21--32},
- Title = {Constructive Non-Regularized Geometry},
- Volume = {23},
- Year = {1991}}
-
-@article{Clifford97,
- Author = {James Clifford and Curtis Dyreson and Tom\'as Isakowitz and Christian S. Jensen and Richard T. Snodgrass},
- Journal = {ACM Transactions on Database Systems},
- Month = {June},
- Number = {2},
- Pages = {171--214},
- Title = {On the Semantics of ``Now'' in Databases},
- Volume = {22},
- Year = {1997}}
-
-@article{Pasko95,
- Author = {A. Pasko and V. Adzhiev and A. Sourin and V. Savchenko},
- Journal = {The Visual Computer},
- Pages = {429--446},
- Title = {Function representation in geometric modeling: concepts, implementation and applications},
- Volume = {11},
- Year = {1995}}
-
-@article{Barnes14a,
- Author = {Richard Barnes and Clarence Lehman and David Mulla},
- Journal = {Computers \& Geosciences},
- Pages = {117--127},
- Title = {Priority-flood: An optimal depression-filling and watershed-labeling algorithm for digital elevation models},
- Volume = {62},
- Year = {2014}}
-
-@article{Barnes14,
- Author = {Richard Barnes and Clarence Lehman and David Mulla},
- Journal = {Computers \& Geosciences},
- Month = {January},
- Pages = {128--135},
- Title = {An efficient assignment of drainage direction over flat surfaces in raster digital elevation models},
- Volume = {62},
- Year = {2014}}
-
-@article{Le13a,
- Author = {Hai Ha Le and Paul Gabriel and Jan Gietzel and Helmut Schaeben},
- Journal = {Computers \& Geosciences},
- Pages = {104--115},
- Title = {An object-relational spatio-temporal geoscience data model},
- Volume = {57},
- Year = {2013}}
-
-@mastersthesis{Boeters13,
- Author = {Roeland Boeters},
- Month = jun,
- School = {Delft University of Technology},
- Title = {Automatic enhancement of {CityGML} {LoD2} models with interiors and its usability for net internal area determination},
- Year = {2013}}
-
-@mastersthesis{ArroyoOhori10,
- Author = {Ken {Arroyo Ohori}},
- Month = aug,
- School = {Delft University of Technology},
- Title = {Validation and automatic repair of planar partitions using a constrained triangulation},
- Year = {2010}}
-
-@techreport{ArroyoOhori11,
- Author = {Ken {Arroyo Ohori}},
- Institution = {OTB Research Institute for the Built Environment, Delft University of Technology},
- Month = dec,
- Number = {57},
- Title = {Realising the Foundations of a Higher Dimensional {GIS}: A Study of Higher Dimensional Spatial Data Models, Data Structures and Operations},
- Type = {PhD Proposal},
- Year = {2011}}
-
-@inproceedings{Stoter12a,
- Address = {Amsterdam, The Netherlands},
- Author = {Stoter, Jantien and Ledoux, Hugo and Meijers, Martijn and Arroyo Ohori, Ken and Peter {van Oosterom}},
- Booktitle = {Geospatial World Forum 2012},
- Month = apr,
- Title = {{5D} Modeling - applications and advantages},
- Year = {2012}}
-
-@article{ArroyoOhori12c,
- Author = {Arroyo Ohori, Ken and Ledoux, Hugo and Meijers, Martijn and Stoter, Jantien},
- Journal = {Geo-Info},
- Month = oct,
- Number = {8},
- Pages = {4--8},
- Title = {Een landsdekkende {BGT}, zonder gaten en overlap},
- Volume = {9},
- Year = {2012}}
-
-@inproceedings{ArroyoOhori12b,
- Address = {Apeldoorn, The Netherlands},
- Author = {Ken {Arroyo Ohori}},
- Booktitle = {GIN Symposium},
- Month = nov,
- Title = {Developing {5D} spatial models for {GIS}},
- Year = {2012}}
-
-@inproceedings{Ledoux11,
- Address = {Ostrava, Czech Republic},
- Author = {Ledoux, Hugo and Arroyo Ohori, Ken},
- Booktitle = {Proceedings of GIS Ostrava 2011},
- Month = jan,
- Pages = {377--390},
- Title = {Edge-matching polygons with a constrained triangulation},
- Year = {2011}}
-
-@inproceedings{Ledoux12,
- Address = {Avignon, France},
- Author = {Hugo Ledoux and Ken {Arroyo Ohori} and Martijn Meijers},
- Booktitle = {Multidisciplinary Research on Geographical Information in Europe and Beyond. Proceedings of the 15th AGILE International Conference on Geographic Information Science},
- Editor = {J\'er\^ome Gensel and Didier Josselin and Danny Vandenbroucke},
- Month = apr,
- Pages = {13--18},
- Title = {Automatically repairing invalid polygons with a constrained triangulation},
- Year = {2012}}
-
-@inproceedings{Stoter12,
- Address = {Qu\'ebec City, Canada},
- Author = {Jantien Stoter and Hugo Ledoux and Martijn Meijers and Ken {Arroyo Ohori}},
- Booktitle = {Proceedings of the 7th International 3D GeoInfo Conference},
- Editor = {Jacynthe Pouliot and Sylvie Daniel and Fr{\'e}d{\'e}ric Hubert and Alborz Zamyadi},
- Month = may,
- Pages = {7--10},
- Publisher = {ISPRS},
- Series = {International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences},
- Title = {Integrating Scale and Space in {3D} City Models},
- Volume = {XXXVIII-4/C26},
- Year = {2012}}
-
-@inproceedings{ArroyoOhori12a,
- Address = {Nottingham, United Kingdom},
- Author = {Ken {Arroyo Ohori} and Hugo Ledoux and Martijn Meijers},
- Booktitle = {Proceedings of the 4th Open Source GIS UK Conference},
- Month = sep,
- Title = {Automatically repairing polygons and planar partitions with prepair and pprepair},
- Year = {2012}}
-
-@article{ArroyoOhori12,
- Author = {Ken {Arroyo Ohori} and Hugo Ledoux and Martijn Meijers},
- Journal = {Photogrammetrie, Fernerkundung, Geoinformation},
- Month = oct,
- Pages = {613--630},
- Title = {Validation and Automatic Repair of Planar Partitions Using a Constrained Triangulation},
- Volume = {5},
- Year = {2012}}
-
-@inproceedings{ArroyoOhori13c,
- Address = {Leuven, Belgium},
- Author = {Ken {Arroyo Ohori} and Filip Biljecki and Jantien Stoter and Hugo Ledoux},
- Booktitle = {Geographic Information Science at the Heart of Europe. Proceedings of the 16th AGILE International Conference on Geographic Information Science},
- Month = may,
- Title = {Manipulating higher dimensional spatial information},
- Year = {2013}}
-
-@incollection{ArroyoOhori13b,
- Address = {Johor Bahru, Malaysia},
- Author = {Ken {Arroyo Ohori} and Pawel Boguslawski and Hugo Ledoux},
- Booktitle = {Developments in Multidimensional Spatial Data Models},
- Editor = {Abdul Rahman, A. and Boguslawski, P. and Gold, C. and Said, M.N.},
- Month = may,
- Pages = {17--31},
- Publisher = {Springer Berlin Heidelberg},
- Series = {Lecture Notes in Geoinformation and Cartography},
- Title = {Representing the dual of objects in a four-dimensional {GIS}},
- Year = {2013}}
-
-@incollection{ArroyoOhori13a,
- Address = {Ho Chi Minh City, Vietnam},
- Author = {Ken {Arroyo Ohori} and Hugo Ledoux and Jantien Stoter},
- Booktitle = {Computational Science and Its Applications --- ICCSA 2013. 13th International Conference, Ho Chi Minh City, Vietnam, June 24--27, 2013, Proceedings, Part I},
- Editor = {B. Murgante and S. Misra and M. Carlini and C. Torre and H.Q. Nguyen and D. Taniar and B. Apduhan and O. Gervasi},
- Month = jun,
- Pages = {526--539},
- Publisher = {Springer Berlin Heidelberg},
- Series = {Lecture Notes in Computer Science},
- Title = {Modelling Higher Dimensional Data for {GIS} Using Generalised Maps},
- Volume = {7971},
- Year = {2013}}
-
-@incollection{ArroyoOhori13,
- Address = {Orlando, United States},
- Author = {Ken {Arroyo Ohori} and Hugo Ledoux},
- Booktitle = {SIGSPATIAL'13: Proceedings of the 21st ACM SIGSPATIAL International Conference on Advances in Geographic Information Systems},
- Editor = {Craig Knoblock and Peer Kr\"oger and John Krumm and Markus Schneider and Peter Widmayer},
- Month = nov,
- Pages = {398--401},
- Publisher = {ACM},
- Title = {Using extrusion to generate higher-dimensional {GIS} datasets},
- Year = {2013}}
-
-@incollection{ArroyoOhori14,
- Address = {Kolkata, India},
- Author = {Ken {Arroyo Ohori} and Guillaume Damiand and Hugo Ledoux},
- Booktitle = {Applied Algorithms. First International Conference, ICAA 2014, Kolkata, India, January 13-15, 2014. Proceedings},
- Editor = {Prosenjit Gupta and Christos Zaroliagis},
- Month = jan,
- Pages = {37--48},
- Publisher = {Springer International Publishing Switzerland},
- Series = {Lecture Notes in Computer Science},
- Title = {Constructing an n-dimensional cell complex from a soup of (n-1)-dimensional faces},
- Volume = {8321},
- Year = {2014}}
-
-@article{Ledoux14,
- Author = {Hugo Ledoux and Ken {Arroyo Ohori} and Martijn Meijers},
- Journal = {Computers \& Geosciences},
- Month = may,
- Pages = {121--131},
- Title = {A triangulation-based approach to automatically repair {GIS} polygons},
- Volume = {66},
- Year = {2014}}
-
-@article{Guting00,
- Author = {Ralf Hartmut G\"uting and Michael H. B\"ohlen and Martin Erwig and Christian S. Jensen and Nikos A. Lorentzos and Markus Schneider and Michalis Vazirgiannis},
- Journal = {ACM Transactions on Database Systems},
- Month = {March},
- Number = {1},
- Pages = {1--42},
- Title = {A Foundation for Representing and Querying Moving Objects},
- Volume = {25},
- Year = {2000}}
-
-@incollection{deFloriani93,
- Author = {Leila {de Floriani} and Paola Marzano},
- Booktitle = {Spatial Information Theory A Theoretical Basis for GIS},
- Editor = {Andrew U. Frank and Irene Campari},
- Publisher = {Springer Berlin Heidelberg},
- Title = {Spatial queries and data models},
- Year = {1993}}
-
-@article{Worboys92a,
- Author = {Michael F. Worboys},
- Journal = {International Journal of Geographical Information Systems},
- Number = {5},
- Pages = {353--372},
- Title = {A generic model for planar geographical objects},
- Volume = {6},
- Year = {1992}}
-
-@article{Clarke81,
- Author = {Bowman L. Clarke},
- Journal = {Notre Dame Journal of Formal Logic},
- Number = {3},
- Title = {A Calculus of Individuals Based on `Connection'},
- Volume = {22},
- Year = {1981}}
-
-@article{Dehlinger14,
- Author = {Christophe Dehlinger and Jean-Fran\c{c}ois Dufourd},
- Journal = {Computational Geometry: Theory \& Applications},
- Title = {Formal specification and proofs for the topology and classification of combinatorial surfaces},
- Year = {2014}}
-
-@article{Shaffer93,
- Author = {Clifford A. Shaffer and Ramana Juvvadi and Lenwood S. Heath},
- Journal = {Image and Vision Computing},
- Month = {September},
- Number = {7},
- Pages = {402--412},
- Title = {Generalized comparison of quadtree and bintree storage requirements},
- Volume = {11},
- Year = {1993}}
-
-@incollection{Boots99,
- Author = {B. Boots},
- Booktitle = {Geographical Information Systems},
- Chapter = {36},
- Editor = {Longley, Paul A. and Goodchild, Michael F. and Maguire, David J. and Rhind, David W.},
- Publisher = {John Wiley \& Sons},
- Title = {Spatial tessellations},
- Year = {1999}}
-
-@article{Lee00,
- Author = {Y.C. Lee and Z.L. Li and Y.L. Li},
- Journal = {ISPRS Journal of Photogrammetry \& Remote Sensing},
- Pages = {139--149},
- Title = {Taxonomy of space tessellation},
- Volume = {55},
- Year = {2000}}
-
-@article{Jackins83,
- Author = {Chris L. Jackins and Steven L. Tanimoto},
- Journal = {IEEE Transactions on Pattern Analysis and Machine Intelligence},
- Month = {September},
- Number = {5},
- Pages = {533--539},
- Title = {Quad-Trees, Oct-Trees, and K-Trees: A Generalized Approach to Recursive Decomposition of Euclidean Space},
- Volume = {5},
- Year = {1983}}
-
-@article{Raper95,
- Author = {Jonathan Raper and David Livingstone},
- Journal = {International Journal of Geographical Information Systems},
- Number = {4},
- Pages = {359--383},
- Title = {Development of a geomorphological spatial model using object-oriented design},
- Volume = {9},
- Year = {1995}}
-
-@incollection{Varma00,
- Author = {Herman Varma},
- Booktitle = {Marine and Coastal Geographical Information Systems},
- Chapter = {6},
- Editor = {Dawn Wright and Darius Bartlett},
- Publisher = {Taylor \& Francis},
- Title = {Applying Spatio-Temporal Concepts to Correlative Data Analysis},
- Year = {2000}}
-
-@inproceedings{Puech85,
- Author = {Claude Puech and Hussein Yahia},
- Booktitle = {Proceedings of the 1st ACM Symposium on Computational Geometry},
- Pages = {272--280},
- Title = {Quadtrees, octrees, hyperoctrees: a unified analytical approach to tree data structures used in graphics, geometric modeling and image processing},
- Year = {1985}}
-
-@article{Yau83,
- Author = {Mann-May Yau and Sargur N. Srihari},
- Journal = {Communications of the ACM},
- Number = {7},
- Pages = {504--515},
- Title = {A Hierarchical Data Structure for Multidimensional Digital Images},
- Volume = {26},
- Year = {1983}}
-
-@incollection{Miller97,
- Author = {Eric J. Miller},
- Booktitle = {Innovations in {GIS}},
- Chapter = {13},
- Editor = {Zarine Kemp},
- Pages = {181--197},
- Publisher = {Taylor \& Francis},
- Title = {Towards a {4D} {GIS}: Four-dimensional interpolation utilizing {K}riging},
- Year = {1997}}
-
-@article{Rossignac99,
- Author = {Jarek Rossignac and Andrzej Szymczak},
- Journal = {Computational Geometry: Theory \& Applications},
- Title = {{W}rap\&{Z}ip decompression of the connectivity of triangle meshes compressed with {E}dgebreaker},
- Volume = {14},
- Year = {1999}}
-
-@inproceedings{Rossignac01,
- Author = {Jarek Rossignac and Alla Safonova and Andrzej Szymczak},
- Booktitle = {Proceedings of the Shape Modeling International Conference},
- Title = {3D Compression Made Simple: Edgebreaker on a Corner-Table},
- Year = {2001}}
-
-@incollection{deFloriani05a,
- Author = {Leila {de Floriani} and Leif Kobbelt and Enrico Puppo},
- Booktitle = {Advances in Multiresolution for Geometric Modelling. Part II},
- Editor = {Neil A. Dodgson and Michael S. Floater and Malcolm A. Sabin},
- Pages = {49--74},
- Publisher = {Springer Berlin Heidelberg},
- Series = {Mathematics and Visualization},
- Title = {A Survey on Data Structures for Level-of-Detail Models},
- Year = {2005}}
-
-@incollection{deFloriani05,
- Author = {Leila {de Floriani} and Annie Hui},
- Booktitle = {Eurographics Symposium on Geometry Processing},
- Editor = {M. Desbrunn and H. Pottmann},
- Publisher = {The Eurographics Association},
- Title = {Data structures for simplicial complexes: an analysis and a comparison},
- Year = {2005}}
-
-@incollection{Lopes97,
- Author = {H\'elio Lopes and Geovan Tavares},
- Booktitle = {SMA '97, Proceedings of the Fourth Symposium on Solid Modeling and Applications},
- Editor = {Christoph Hoffmann and Wim Bronsvoort and George Allen and Mike Pratt and David Rosen},
- Pages = {10--18},
- Publisher = {ACM},
- Title = {Structural Operators for Modeling 3-Manifolds},
- Year = {1997}}
-
-@incollection{Hansen93,
- Author = {Henning {\O}sterg{\aa}rd Hansen and Niels J{\o}rgen Christensen},
- Booktitle = {Proceedings of the 2nd ACM Symposium on Solid Modelling and Applications},
- Publisher = {ACM},
- Title = {A Model for $n$-Dimensional Boundary Topology},
- Year = {1993}}
-
-@phdthesis{Choi89,
- Author = {Y. Choi},
- Month = {August},
- School = {Carnegie Mellon University},
- Title = {Vertex-based Boundary Representation of Non- manifold Geometric Models},
- Year = {1989}}
-
-@book{Milnor63,
- Author = {J. Milnor},
- Publisher = {Princeton University Press},
- Title = {Morse Theory},
- Year = {1963}}
-
-@article{Pesco04,
- Author = {Sin\'esio Pesco and Geovan Tavares and H\'elio Lopes},
- Journal = {Computers \& Graphics},
- Pages = {235--247},
- Title = {A stratification approach for modeling two-dimensional cell complexes},
- Volume = {28},
- Year = {2004}}
-
-@incollection{McMains01,
- Author = {Sara McMains and Joseph M. Hellerstein and Carlo H. S\'equin},
- Booktitle = {SMA '01 Proceedings of the sixth ACM symposium on Solid modeling and applications},
- Pages = {171--182},
- Publisher = {ACM},
- Title = {Out-of-Core Build of a Topological Data Structure from Polygon Soup},
- Year = {2001}}
-
-@incollection{Lee01,
- Author = {Sang Hun Lee and Kunwoo Lee},
- Booktitle = {SMA '01 Proceedings of the 6th ACM Symposium on Solid modeling and Applications},
- Editor = {David C. Anderson and Kunwoo Lee},
- Pages = {159--170},
- Publisher = {ACM},
- Title = {Partial Entity Structure: A Compact Non-Manifold Boundary Representation Based on Partial Topological Entities},
- Year = {2001}}
-
-@incollection{Joy03,
- Author = {Kenneth I. Joy and Justin Legakis and Ron MacCracken},
- Booktitle = {Hierarchical and Geometrical Methods in Scientific Visualization},
- Editor = {Gerard Farin and Bernd Hamann and Hans Hagen},
- Publisher = {Springer},
- Series = {Mathematics and Visualization},
- Title = {Data Structures for Multiresolution Representation of Unstructured Meshes},
- Year = {2003}}
-
-@article{Kallmann01,
- Author = {Marcelo Kallmann and Daniel Thalmann},
- Journal = {Journal of Graphics Tools},
- Number = {1},
- Pages = {7--18},
- Title = {Star-Vertices: A Compact Representation for Planar Meshes with Adjacency Information},
- Volume = {6},
- Year = {2001}}
-
-@article{Gursoz90,
- Author = {E.L. Gursoz and Y. Choi and F.B. Prinz},
- Journal = {Geometric Modeling for Product Engineering},
- Title = {Vertex-based representation of non-manifold boundaries},
- Year = {1990}}
-
-@article{Naylor90,
- Author = {B. Naylor},
- Journal = {Computer-Aided Design},
- Number = {4},
- Title = {Binary space partitioning trees as an alternative representation of polytopes},
- Volume = {22},
- Year = {1990}}
-
-@incollection{Paoluzzi04,
- Author = {A. Paoluzzi and V. Pascucci and G. Scorzelli},
- Booktitle = {ACM Symposium on Solid Modeling and Applications},
- Editor = {G. Elber and N. Patrikalakis and P. Brunet},
- Publisher = {ACM},
- Title = {Progressive Dimension-Independent {B}oolean Operations},
- Year = {2004}}
-
-@incollection{Popovic97,
- Author = {Jovan Popovi\'c and Hughes Hoppe},
- Booktitle = {SIGGRAPH '97 Proceedings of the 24th annual conference on Computer graphics and interactive techniques},
- Editor = {G. Scott Owen and Turner Whitted and Barbara Mones-Hattal},
- Pages = {217--224},
- Publisher = {ACM/Addison-Wesley Publishing},
- Title = {Progressive Simplicial Complexes},
- Year = {1997}}
-
-@article{Pasko01,
- Author = {Alexander Pasko and Valery Adzhiev},
- Journal = {Graphical Models},
- Pages = {413--442},
- Title = {Constructive Hypervolume Modeling},
- Volume = {63},
- Year = {2001}}
-
-@incollection{Samet85,
- Author = {Hanan Samet and Markku Tamminen},
- Booktitle = {SIGGRAPH '85},
- Editor = {Pat Cole and Robert Heilman and Brian A. Barsky},
- Number = {3},
- Pages = {121--130},
- Publisher = {ACM},
- Title = {Bintrees, {CSG} trees, and time},
- Volume = {19},
- Year = {1985}}
-
-@incollection{Comic12a,
- Author = {Lidija {\v C}omi\'c and Leila {de Floriani}},
- Booktitle = {CTIC 2012},
- Publisher = {Springer-Verlag Berlin Heidelberg},
- Series = {Lecture Notes in Computer Science},
- Title = {Topological Operators on Cell Complexes in Arbitrary Dimensions},
- Volume = {7309},
- Year = {2012}}
-
-@article{Forman98,
- Author = {Robin Forman},
- Journal = {Advances in Mathematics},
- Pages = {90--145},
- Title = {Morse Theory for Cell Complexes},
- Volume = {134},
- Year = {1998}}
-
-@incollection{Damiand12,
- Author = {Guillaume Damiand and Rocio Gonzalez-Diaz and Samuel Peltier},
- Booktitle = {CTIC 2012},
- Publisher = {Springer-Verlag Berlin Heidelberg},
- Series = {Lecture Notes in Computer Science},
- Title = {Removal Operations in nD Generalized Maps for Efficient Homology Computation},
- Volume = {7309},
- Year = {2012}}
-
-@incollection{Baba-ali08,
- Author = {Mehdi Baba-ali and Guillaume Damiand and Xavier Skapin and David Marcheix},
- Booktitle = {DGCI 2008},
- Pages = {141--152},
- Publisher = {Springer-Verlag Berlin Heidelberg},
- Series = {Lecture Notes in Computer Science},
- Title = {Insertion and Expansion Operations for n-Dimensional Generalized Maps},
- Volume = {4992},
- Year = {2008}}
-
-@incollection{Brun01,
- Author = {Luc Brun and Walter Kropatsch},
- Booktitle = {Digital and Image Geometry},
- Editor = {Gilles Bertrand and Atsushi Imiya and Reinhard Klette},
- Pages = {108--128},
- Publisher = {Springer-Verlag Berlin Heidelberg},
- Series = {Lecture Notes in Computer Science},
- Title = {Introduction to Combinatorial Pyramids},
- Volume = {2243},
- Year = {2001}}
-
-@article{Comic14,
- Author = {Lidija {\v C}omi\'c and Leila {de Floriani} and Federico Iuricich and Ulderico Fugacci},
- Journal = {Computer Vision and Image Understanding},
- Pages = {2--12},
- Title = {Topological modifications and hierarchical representation of cell complexes in arbitrary dimensions},
- Volume = {121},
- Year = {2014}}
-
-@inproceedings{Maria14,
- Author = {Mazime Maria and S\'ebastien Horna and Lilian Aveneau},
- Booktitle = {Proceedings of the 9th International Joint Conference on Computer Graphics Theory and Applications},
- Pages = {225--235},
- Title = {Topological Space Partition for Fast Ray Tracing in Architectural Models},
- Year = {2014}}
-
-@inproceedings{Bezin14,
- Author = {R. Bezin and B. Crespin and X. Skapin and P. Meseure and O. Terraz},
- Booktitle = {EUROGRAPHICS 2014},
- Editor = {J.-J. Bourdin and J. Jorge and E. Anderson},
- Title = {Programming Topological Operations for Visual Illustrations in an Introductory Geomorphology Course},
- Year = {2014}}
-
-@phdthesis{Riemann68,
- Author = {B. Riemann},
- School = {Abhandlungen der K\"oniglichen Gesellschaft der Wissenschaften zu G\"ottingen},
- Title = {Ueber die Hypothesen, welche der Geometrie zu Grunde liegen},
- Year = {1868}}
-
-@book{Smith54,
- Author = {David Eugene Smith and Marcia L. Latham},
- Publisher = {Dover Publications},
- Title = {The geometry of {R}en\'e {D}escartes},
- Year = {1954}}
-
-@book{Descartes37,
- Address = {Leyde},
- Author = {Ren\'e Descartes},
- Publisher = {Jan Maire},
- Title = {Discours de la m\'ethode},
- Year = {1637}}
-
-@book{Stillwell10,
- Author = {John Stillwell},
- Month = {September},
- Publisher = {American Mathematical Society},
- Series = {History of Mathematics},
- Title = {Papers on Topology: Analysis Situs and Its Five Supplements},
- Year = {2010}}
-
-@article{Betti71,
- Author = {Enrico Betti},
- Journal = {Annali di Matematica pura ed applicata},
- Pages = {140--158},
- Title = {Sopra gli spazi di un numero qualunque di dimensioni},
- Volume = {4},
- Year = {1871}}
-
-@incollection{Mobius85,
- Address = {Leipzig},
- Author = {M\"obius, August F},
- Booktitle = {Werke 2},
- Pages = {433--471},
- Publisher = {Hirzel},
- Title = {Theorie der elementaren Verwandtschaft},
- Year = {1885--1887}}
-
-@article{Euler58,
- Author = {Leonhard Euler},
- Journal = {Novi Commentarii academiae scientiarum Petropolitanae},
- Pages = {109--140},
- Title = {Elementa doctrinae solidorum},
- Volume = {4},
- Year = {1758}}
-
-@article{Penninga08a,
- Author = {F. Penninga and P. J. M. {van Oosterom}},
- Journal = {International Journal of Geographical Information Science},
- Month = {July},
- Number = {7},
- Pages = {751--779},
- Title = {A simplicial complex-based {DBMS} approach to {3D} topographic data modelling},
- Volume = {22},
- Year = {2008}}
-
-@article{Poincare04,
- Author = {M.H. Poincar\'e},
- Journal = {Rendiconti del Circolo Matematico di Palermo},
- Pages = {45--110},
- Title = {Cinqui\`eme compl'ement \`a l'analysis situs},
- Volume = {18},
- Year = {1904}}
-
-@article{Poincare02a,
- Author = {M.H. Poincar\'e},
- Journal = {Journal de math\'ematiques pures et appliqu\'ees},
- Number = {8},
- Pages = {169--214},
- Title = {Sur les cycles des surfaces alg\'ebriques; quatri\`eme compl\'ement \`a l'Analysis Sit\^us},
- Volume = {5},
- Year = {1902}}
-
-@article{Poincare02,
- Author = {M.H. Poincar\'e},
- Journal = {Bulletin de la Soci\'et\'e Math\'ematique de France},
- Pages = {49--70},
- Title = {Sur certaines surfaces alg\'ebriques. Troisi\`eme compl\'ement \`a l'``Analysis sit\^us''},
- Volume = {30},
- Year = {1902}}
-
-@article{Poincare00,
- Author = {H. Poincar\'e},
- Journal = {Proceedings of the London Mathematical Society},
- Pages = {277--308},
- Title = {Second compl\'ement \`a l'Analysis Situs},
- Volume = {32},
- Year = {1900}}
-
-@article{Poincare99,
- Author = {H. Poincar\'e},
- Journal = {Rendiconti del Circolo Matematico di Palermo},
- Pages = {285--343},
- Title = {Compl\'ement \`a l'Analysis Situs},
- Volume = {13},
- Year = {1899}}
-
-@article{Poincare95,
- Author = {M.H. Poincar\'e},
- Journal = {Journal de l'\'Ecole polytechnique},
- Number = {1},
- Pages = {1--123},
- Title = {Analysis Situs},
- Volume = {2},
- Year = {1895}}
-
-@article{Minkowski08,
- Author = {Hermann Minkowski},
- Journal = {Nachrichten von der Gesellschaft der Wissenschaften zu G\"ottingen, Mathematisch-Physikalische Klasse},
- Pages = {53--111},
- Title = {Die {G}rundgleichungen f\"ur die elektromagnetischen {V}org\"ange in bewegten {K}\"orpern},
- Year = {1908}}
-
-@inproceedings{Pigot92,
- Author = {Pigot, Simon and Hazelton, N. W. J.},
- Booktitle = {Proceedings of the 5th International Symposium on Spatial Data Handling},
- Pages = {580--591},
- Title = {The fundamentals of a topological model for a four-dimensional {GIS}},
- Year = {1992}}
-
-@inproceedings{Worboys92,
- Author = {Worboys, M.F.},
- Booktitle = {Proceedings of the 5th International Symposium on Spatial Data Handling},
- Pages = {602--611},
- Title = {A Model for Spatio-Temporal Information},
- Year = {1992}}
-
-@inproceedings{Armstrong88,
- Author = {Marc P. Armstrong},
- Booktitle = {GIS/LIS '88 : proceedings : accessing the world : third annual International Conference, Exhibits, and Workshops},
- Pages = {880--889},
- Publisher = {American Society for Photogrammetry and Remote Sensing},
- Title = {Temporality in Spatial Databases},
- Year = {1988}}
-
-@article{Vuillemin78,
- Author = {Jean Vuillemin},
- Journal = {Communications of the ACM},
- Month = {April},
- Number = {4},
- Pages = {309--315},
- Title = {A Data Structure for Manipulating Priority Queues},
- Volume = {21},
- Year = {1978}}
-
-@phdthesis{Bucksch11,
- Author = {Alexander Klaus Bucksch},
- Month = {April},
- School = {Delft University of Technology},
- Title = {Revealing the skeleton from imperfect point clouds},
- Year = {2011}}
-
-@incollection{Couclelis99,
- Author = {H. Couclelis},
- Booktitle = {Geographical Information Systems},
- Chapter = {2},
- Editor = {Longley, Paul A. and Goodchild, Michael F. and Maguire, David J. and Rhind, David W.},
- Pages = {29--38},
- Publisher = {John Wiley \& Sons},
- Title = {Space, time, geography},
- Year = {1999}}
-
-@article{Qi13,
- Author = {Meng Qi and Thanh-Tung Cao and Tiow-Seng Tan},
- Journal = {IEEE Transactions on Visualization and Computer Graphics},
- Month = {May},
- Number = {5},
- Pages = {736--748},
- Title = {Computing {2D} Constrained {D}elaunay {T}riangulation Using the {GPU}},
- Volume = {19},
- Year = {2013}}
-
-@incollection{Becker14,
- Author = {Susanne Becker and Volker Walter and Dieter Fritsch},
- Booktitle = {Information Fusion and Geographic Information 91 Systems (IF\&GIS 2013)},
- Editor = {Vasily Popovich and Christophe Claramunt and Manfred Schrenk and Kyrill Korolenko},
- Pages = {91--106},
- Publisher = {Springer Berlin Heidelberg},
- Series = {Lecture Notes in Geoinformation and Cartography},
- Title = {Modeling Concepts for Consistency Analysis of Multiple Representations and Heterogeneous {3D} Geodata},
- Year = {2014}}
-
-@article{Huisman13,
- Author = {Otto Huisman and Irvin Feliciano Santiago and Menno-Jan Kraak and Bas Retsios},
- Journal = {Cartography and Geographic Information Science},
- Number = {3},
- Pages = {225--236},
- Title = {Developing a Geovisual Analytics Environment for Investigating Archaeological Events: Extending the Space-Time Cube},
- Volume = {36},
- Year = {2013}}
-
-@inproceedings{Jin05,
- Author = {Peiquan Jin and Lihua Yue and Yuchang Gong},
- Booktitle = {Proceedings of the 2005 International Symposium on Spatial-temporal Modeling, Spatial Reasoning, Analysis, Data Mining and Data Fusion},
- Title = {Research on a Unified Spatiotemporal Data Model},
- Year = {2005}}
-
-@incollection{deRoo13,
- Author = {B. {de Roo} and N. {van de Weghe} and J. Bourgeois and Ph. de Maeyer},
- Booktitle = {Proceedings of the 8th 3DGeoInfo Conference \& WG II/2 Workshop, 27 -- 29 November 2013, Istanbul, Turkey},
- Month = {November},
- Publisher = {ISPRS},
- Series = {ISPRS Annals of the Photogrammetry, Remote Sensing and Spatial Information Sciences},
- Title = {The temporal dimension in a {4D} archaeological data model: applicability of the geoinformation standard},
- Volume = {II-2/W1},
- Year = {2013}}
-
-@article{Raper01,
- Author = {Jonathan Raper and David Livingstone},
- Journal = {Transactions of the Institute of British Geographers},
- Pages = {237--242},
- Title = {Let's get real: spatio-temporal identity and geographic entities},
- Volume = {26},
- Year = {2001}}
-
-@article{vanOosterom14,
- Author = {Peter van Oosterom and Meijers, Martijn},
- Journal = {International Journal of Geographical Information Science},
- Pages = {455--478},
- Title = {Vario-scale data structures supporting smooth zoom and progressive transfer of {2D} and {3D} data},
- Volume = {28},
- Year = {2014}}
-
-@inproceedings{Rubner98,
- Author = {Yossi Rubner and Carlo Tomasi and Leonidas J. Guibas},
- Booktitle = {Proceedings of the 6th International Conference on Computer Vision},
- Pages = {59--66},
- Title = {A Metric for Distributions with Applications to Image Databases},
- Year = {1998}}
-
-@article{Eppstein99,
- Author = {David Eppstein},
- Journal = {Journal of Graph Algorithms and Applications},
- Number = {3},
- Pages = {1--27},
- Title = {Subgraph Isomorphism in Planar Graphs and Related Problems},
- Volume = {3},
- Year = {1999}}
-
-@inproceedings{Tossebro12,
- Author = {Erlend T{\o}ssebro},
- Booktitle = {Proceedings of the 8th International Conference on Signal Image Technology and Internet Based Systems},
- Pages = {496--502},
- Title = {Interpolating Probability Values or Fuzzy Set Values for Uncertain Spatiotemporal Objects},
- Year = {2012}}
-
-@incollection{Boissonnat12,
- Author = {Jean-Daniel Boissonnat and Cl\'ement Maria},
- Booktitle = {Algorithms --- ESA 2012},
- Pages = {731--742},
- Publisher = {Springer Berlin Heidelberg},
- Series = {Lecture Notes in Computer Science},
- Title = {The Simplex Tree: An Efficient Data Structure for General Simplicial Complexes},
- Volume = {7501},
- Year = {2012}}
-
-@article{Boissonnat84,
- Author = {Jean-Daniel Boissonnat},
- Journal = {ACM Transactions on Graphics},
- Month = {October},
- Number = {4},
- Pages = {266--286},
- Title = {Geometric Structures for Three-Dimensional Shape Representation},
- Volume = {3},
- Year = {1984}}
-
-@article{Brisson93,
- Author = {Erik Brisson},
- Journal = {Discrete \& Computational Geometry},
- Pages = {387--426},
- Title = {Representing geometric structures in d dimensions: topology and order},
- Volume = {9},
- Year = {1993}}
-
-@inproceedings{Mobasheri13,
- Author = {Amin Mobasheri and Mohamed Bakillah and Alexander Zipf and Steve H.L. Liang},
- Booktitle = {Proceedings of the 3rd International Conference on Innovative Computing Technology},
- Pages = {7--11},
- Title = {QualEvS4Geo: A peer-to-peer system architecture for semi-automated quality evaluation of geo-data in SDI},
- Year = {2013}}
-
-@article{Goshtasby85,
- Author = {Ardeshir Goshtasby and George C. Stockman},
- Journal = {IEEE Transactions on Systems, Man and Cybernetics},
- Month = {September/October},
- Number = {5},
- Pages = {631--638},
- Title = {Point Pattern Matching Using Convex Hull Edges},
- Volume = {SCM-15},
- Year = {1985}}
-
-@inproceedings{Yirci13,
- Author = {Murat Yirci and Mathieu Br\'edif and Julien Perret and Nicolas Paparoditis},
- Booktitle = {IWCTS'13},
- Title = {2D Arrangement-based Hierarchical Spatial Partitioning: An Application to Pedestrian Network Generation},
- Year = {2013}}
-
-@inproceedings{Armiti13,
- Author = {Ayser Armiti and Michael Gertz},
- Booktitle = {SIGSPATIAL'13},
- Pages = {234--243},
- Title = {Efficient Geometric Graph Matching Using Vertex Embedding},
- Year = {2013}}
-
-@inproceedings{Magillo13,
- Author = {Paola Magillo and Leila {de Floriani} and Federico Iuricich},
- Booktitle = {SIGSPATIAL'13},
- Pages = {254--263},
- Title = {Morphologically-Aware Elimination of Flat Edges from a TIN},
- Year = {2013}}
-
-@inproceedings{Gudmundsson13,
- Author = {Joachim Gudmundsson and Marc {van Kreveld} and Frank Staals},
- Booktitle = {SIGSPATIAL'13},
- Pages = {144--153},
- Title = {Algorithms for Hotspot Computation on Trajectory Data},
- Year = {2013}}
-
-@inproceedings{Arge13,
- Author = {Lars Arge and Mark {de Berg} and Constantinos Tsirogiannis},
- Booktitle = {SIGSPATIAL'13},
- Pages = {264--273},
- Title = {Algorithms for Computing Prominence on Grid Terrains},
- Year = {2013}}
-
-@inproceedings{Park13,
- Author = {Eunhui Park and David M. Mount},
- Booktitle = {SIGSPATIAL'13},
- Pages = {364--373},
- Title = {Output-Sensitive Well-Separated Pair Decompositions for Dynamic Point Sets},
- Year = {2013}}
-
-@inproceedings{Mata13,
- Author = {Felix Mata and Christophe Claramunt},
- Booktitle = {SIGSPATIAL'13},
- Pages = {534--537},
- Title = {Augmented Navigation in Outdoor Environments},
- Year = {2013}}
-
-@inproceedings{Mahdiraji13a,
- Author = {Alireza Rezaei Mahdiraji and Peter Baumann and Guntram Berti},
- Booktitle = {CIKM'13},
- Month = {October},
- Pages = {1619--1624},
- Publisher = {ACM},
- Title = {ImG-Complex: Graph Data Model for Topology of Unstructured Meshes},
- Year = {2013}}
-
-@incollection{Zhao13,
- Author = {Junqiao Zhao and Hugo Ledoux and Jantien Stoter},
- Booktitle = {ISPRS 8th 3DGeoInfo Conference \& WG II/2 Workshop},
- Month = {November},
- Pages = {309--317},
- Publisher = {ISPRS Archives},
- Title = {Automatic Repair of {CityGML} {LoD2} Buildings using Shrink-wrapping},
- Volume = {II-2/W1},
- Year = {2013}}
-
-@book{Huisman09,
- Address = {Enschede, The Netherlands},
- Edition = {4th},
- Editor = {Otto Huisman and Rolf A. {de By}},
- Publisher = {The International Institute for Geo-Information Science and Earth Observation},
- Series = {ITC Educational Textbook Series},
- Title = {Principles of Geographic Information Systems},
- Year = {2009}}
-
-@incollection{Karimipour13a,
- Author = {Farid Karimipour and Mehran Ghandehari},
- Booktitle = {Transactions on Computational Science XX},
- Editor = {Marina L. Gavrilova and C. J. Kenneth Tan and Bahman Kalantari},
- Pages = {138--157},
- Publisher = {Springer Berlin Heidelberg},
- Series = {Lecture Notes in Computer Science},
- Title = {Voronoi-Based Medial Axis Approximation from Samples: Issues and Solutions},
- Volume = {8110},
- Year = {2013}}
-
-@article{Zapponi03,
- Author = {Leonardo Zapponi},
- Journal = {Notices of the American Mathematical Society},
- Month = {August},
- Number = {7},
- Pages = {788-789},
- Title = {What is a Dessin d'Enfant?},
- Volume = {50},
- Year = {2003}}
-
-@article{Kraemer09,
- Author = {Pierre Kraemer and David Cazier and Dominique Bechmann},
- Journal = {The Visual Computer},
- Month = {January},
- Number = {2},
- Pages = {149--163},
- Title = {Extension of half-edges for the representation of multiresolution subdivision surfaces},
- Volume = {25},
- Year = {2009}}
-
-@article{Coxeter34,
- Author = {H. S. M. Coxeter},
- Journal = {Annals of Mathematics},
- Month = {July},
- Number = {3},
- Pages = {588--621},
- Title = {Discrete Groups Generated by Reflections},
- Volume = {35},
- Year = {1934}}
-
-@article{Bradley13,
- Author = {Patrick Erik Bradley and Norbert Paul},
- Journal = {Geoinformatica},
- Title = {Comparing {G}-maps with other topological data structures},
- Year = {2013}}
-
-@article{Voronoi08a,
- Author = {Georges Voronoi},
- Journal = {Journal f\"ur die Reine und Angewandte Mathematik},
- Pages = {198--287},
- Title = {Nouvelles applications des param\`etres continus \`a la th\'eorie des formes quadratiques. Deuxi\'eme M\'emoire. Recherches sur les parall\'ello\`edres primitifs},
- Volume = {134},
- Year = {1908}}
-
-@article{Hazelton92,
- Author = {Nicholas W.J. Hazelton and Lisa Marie Bennett and Joanna Masel},
- Journal = {Computers, Environment and Urban Systems},
- Month = {May--June},
- Number = {3},
- Pages = {227--237},
- Title = {Topological structures for 4-dimensional geographic information systems},
- Volume = {16},
- Year = {1992}}
-
-@article{Chen01,
- Author = {Jun Chen and Chengming Li and Zhilin Li and Christopher Gold},
- Journal = {International Journal of Geographical Information Science},
- Number = {3},
- Pages = {201--220},
- Title = {A Voronoi-based 9-intersection model for spatial relations},
- Volume = {15},
- Year = {2001}}
-
-@article{Pundt00,
- Author = {Hardy Pundt and Klaus Brinkk\"otter-Runde},
- Journal = {Computers \& Geosciences},
- Pages = {51--56},
- Title = {Visualization of spatial data for field based GIS},
- Volume = {26},
- Year = {2000}}
-
-@inproceedings{Stoter10,
- Author = {Jantien Stoter and Marcel Reuvers and George Vosselman and Joris Goos and Leon van Berlo and Sisi Zlatanova and Edward Verbree and Rick Klooster},
- Booktitle = {Proceedings of the 5th International 3D GeoInfo Conference},
- Title = {Towards a 3D Geo-information standard in the netherlands},
- Year = {2010}}
-
-@inproceedings{Meijers13,
- Author = {Martijn Meijers and Hugo Ledoux},
- Booktitle = {UDMS Annual 2013},
- Editor = {C. Ellul and Sisi Zlatanova and M. Rumor and R. Laurini},
- Pages = {107--116},
- Title = {EdgeCrack: a parallel Divide-and-Conquer algorithm for building a topological data structure},
- Year = {2013}}
-
-@article{Karimipour13,
- Author = {Farid Karimipour and Mehran Ghandehari and Hugo Ledoux},
- Journal = {Computers \& Geosciences},
- Month = {September},
- Pages = {132--147},
- Title = {Watershed delineation from the medial axis of river networks},
- Volume = {59},
- Year = {2013}}
-
-@inproceedings{Matijevic08,
- Author = {Hrvoje Matijevi\'c and Zvonko Biljecki and Stipica Pavi\v{c}i\'c, and Miodrag Roi\'c},
- Booktitle = {Proceedings of the FIG Working Week 2008},
- Title = {Transaction Processing on Planar Partition for Cadastral Application},
- Year = {2008}}
-
-@inproceedings{Anselin89,
- Author = {Luc Anselin},
- Booktitle = {Proceedings of the Spring 1989 Symposium on Spatial Statistics, Past, Present and Future},
- Title = {What is special about spatial data? Alternative perspectives on spatial data analysis},
- Year = {1989}}
-
-@article{Grunbaum03,
- Author = {Branko Gr\"unbaum},
- Journal = {Discrete and Computational Geometry: The Goodman-Pollack Festschrift},
- Pages = {461--488},
- Title = {Are your polyhedra the same as my polyhedra?},
- Year = {2003}}
-
-@incollection{Zlatanova06,
- Author = {Sisi Zlatanova and Jantien Stoter},
- Booktitle = {Frontiers of Geographic Information Technology},
- Chapter = {8},
- Editor = {Sanjay Rana and Jayant Sharma},
- Publisher = {Springer},
- Title = {The role of DBMS in the new generation GIS architecture},
- Year = {2006}}
-
-@techreport{Meijers08,
- Author = {Martijn Meijers},
- Institution = {Delft University of Technology},
- Title = {Variable-scale Geo-information},
- Type = {PhD Research Proposal},
- Year = {2008}}
-
-@inproceedings{Stanton05,
- Author = {Heather I. Stanton and Stephanie O'Meara and James R. Chappell and Anne R. Poole and Gregory Mack and Georgia Hybels},
- Booktitle = {Proceedings of Digital Mapping Techniques '05},
- Title = {Ensuring Data Quality using Topology and Attribute Validation in the Geodatabase},
- Year = {2005}}
-
-@inproceedings{Wiemann10,
- Author = {Stefan Wiemann and Lard Bernard},
- Booktitle = {Proceedings of the 13th AGILE International Conference on Geographic Information Science},
- Title = {Conflation Services within Spatial Data Infrastructures},
- Year = {2010}}
-
-@article{Austern00,
- Author = {Matt Austern},
- Journal = {C++ Report},
- Number = {4},
- Title = {Why you shouldn't use set (and what you should use instead)},
- Volume = {12},
- Year = {2000}}
-
-@article{Tomlin94,
- Author = {C. Dana Tomlin},
- Journal = {Landscape and Urban Planning},
- Pages = {3--12},
- Title = {Map algebra: one perspective},
- Volume = {30},
- Year = {1994}}
-
-@article{Bajaj90a,
- Author = {Chanderjit Bajaj and Tamal Dey},
- Journal = {Information Processing Letters},
- Pages = {23--32},
- Title = {Polygon Nesting and Robustness},
- Volume = {35},
- Year = {1990}}
-
-@article{Laurini94,
- Author = {Robert Laurini and Fran\c{c}oise Milleret-Raffort},
- Journal = {Computers \& Graphics},
- Number = {6},
- Pages = {803--813},
- Title = {Topological Reorganization of Inconsistent Geographical Databases: A Step Towards Their Certification},
- Volume = {18},
- Year = {1994}}
-
-@article{Beard88,
- Author = {M. Kate Beard and Nicholas R. Chrisman},
- Journal = {The American Cartographer},
- Month = {April},
- Number = {2},
- Pages = {163--172},
- Title = {Zipper: A Localized Approach to Edgematching},
- Volume = {15},
- Year = {1988}}
-
-@article{Rivero00,
- Author = {M. Rivero and F.R. Feito},
- Journal = {Computers \& Graphics},
- Pages = {881--896},
- Title = {Boolean operations on general planar polygons},
- Volume = {24},
- Year = {2000}}
-
-@incollection{Schirra97,
- Author = {Stefan Schirra},
- Booktitle = {Algorithmic Foundations of Geographic Information Systems},
- Editor = {Marc van Kreveld and J\"urg Nievergelt and Thomas Roos and Peter Widmayer},
- Pages = {255--287},
- Publisher = {Springer Berlin Heidelberg},
- Series = {Lecture Notes in Computer Science},
- Title = {Precision and Robustness in Geometric Computations},
- Volume = {1340},
- Year = {1997}}
-
-@inproceedings{Shewchuk96a,
- Author = {Jonathan Richard Shewchuk},
- Booktitle = {Proceedings of the 12th Annual Symposium on Computational Geometry},
- Pages = {141--150},
- Title = {Robust Adaptive Floating-Point Geometric Predicates},
- Year = {1996}}
-
-@inproceedings{Plumer96,
- Author = {Lutz Pl\"umer and Gerhard Gr\"oger},
- Booktitle = {Proceedings of the 4th ACM Workshop on Advances on Advances in Geographic Information Systems},
- Pages = {76--83},
- Title = {Nested Maps - a Formal, Provably Correct Object Model for Spatial Aggregates},
- Year = {1996}}
-
-@inproceedings{Chazelle79,
- Author = {Bernard Chazelle and David Dobkin},
- Booktitle = {Proceedings of the 11th Annual ACM Symposium on Theory of Computing},
- Pages = {38--48},
- Title = {Decomposing a Polygon into its Convex Parts},
- Year = {1979}}
-
-@article{Gold96,
- Author = {C. M. Gold and J. Nantel and W. Yang},
- Journal = {International Journal of Geographical Information Systems},
- Number = {3},
- Pages = {291--310},
- Title = {Outside-in: an alternative approach to forest map digitizing},
- Volume = {10},
- Year = {1996}}
-
-@book{Neteler05,
- Author = {Markus Neteler and Helena Mitasova},
- Edition = {Second},
- Publisher = {Kluwer Academic Publishers},
- Title = {Open Source GIS: A GRASS GIS Approach},
- Year = {2005}}
-
-@article{Margalit89,
- Author = {Avraham Margalit and Gary D. Knott},
- Journal = {Computers \& Graphics},
- Number = {2},
- Pages = {167--183},
- Title = {An algorithm for computing the union, intersection or difference of two polygons},
- Volume = {13},
- Year = {1989}}
-
-@inproceedings{Ledoux10,
- Author = {Hugo Ledoux and Martijn Meijers},
- Booktitle = {Proceedings of the 14th International Symposium on Spatial Data Handling},
- Month = {May},
- Title = {Validation of planar partitions using constrained triangulations},
- Year = {2010}}
-
-@article{vanKreveld98,
- Author = {Marc van Kreveld},
- Journal = {Computational Geometry},
- Pages = {197--210},
- Title = {On fat partitioning, fat covering and the union size of polygons},
- Volume = {9},
- Year = {1998}}
-
-@techreport{Davis03,
- Author = {Martin Davis},
- Institution = {Vivid Solutions},
- Title = {Java Conflation Suite},
- Year = {2003}}
-
-@article{Goodchild97,
- Author = {Michael F. Goodchild and James Proctor},
- Journal = {Geographic \& Environmental Modelling},
- Number = {1},
- Pages = {5--23},
- Title = {Scale in a Digital Geographic World},
- Volume = {1},
- Year = {1997}}
-
-@inproceedings{vanOosterom02,
- Author = {Peter {van Oosterom} and Jantien Stoter and Wilko Quak and Sisi Zlatanova},
- Booktitle = {Proceedings of the Symposium on Geospatial Theory, Processing and Applications},
- Title = {The Balance Between Geometry and Topology},
- Year = {2002}}
-
-@article{Scheidt87,
- Author = {J. K. Scheidt and C. W. Schelin},
- Journal = {Computing},
- Pages = {315--324},
- Title = {Distributions of Floating Point Numbers},
- Volume = {38},
- Year = {1987}}
-
-@article{Devillers02a,
- Author = {Olivier Devillers},
- Journal = {International Journal of Foundations of Computer Science},
- Number = {2},
- Pages = {181--199},
- Title = {{W}alking in a triangulation},
- Volume = {13},
- Year = {2002}}
-
-@article{Devillers02,
- Author = {Olivier Devillers},
- Journal = {International Journal of Foundations of Computer Science},
- Number = {2},
- Pages = {163--180},
- Title = {{T}he {D}elaunay hierarchy},
- Volume = {13},
- Year = {2002}}
-
-@article{Kettner08,
- Author = {Lutz Kettner and Kurt Mehlhorn and Sylvain Pion and Stefan Schirra and Chee Yap},
- Journal = {Computational Geometry},
- Month = {May},
- Number = {1},
- Pages = {61--78},
- Title = {Classroom Examples of Robustness Problems in Geometric Computations},
- Volume = {40},
- Year = {2008}}
-
-@inbook{Egenhofer91a,
- Author = {M. J. Egenhofer and J. R. Herring},
- Chapter = {16},
- Editor = {D. Maguire and M. Goodchild and D. Rhind},
- Publisher = {Longman},
- Title = {High-level Spatial Data Structures for GIS},
- Year = {1991}}
-
-@article{Barker95,
- Author = {Sean Michael Barker},
- Journal = {Computer-Aided Design},
- Number = {4},
- Pages = {311--318},
- Title = {Towards a topology for computational geometry},
- Volume = {27},
- Year = {1995}}
-
-@article{Plumer97,
- Author = {Lutz Pl\"umer and Gerhard Gr\"oger},
- Journal = {GeoInformatica},
- Number = {4},
- Pages = {345--367},
- Title = {Achieving Integrity in Geographic Information Systems---Maps and Nested Maps},
- Volume = {1},
- Year = {1997}}
-
-@article{vanRoessel91,
- Author = {Jan W. {van Roessel}},
- Journal = {Cartography and Geographic Information Systems},
- Number = {1},
- Pages = {49--67},
- Title = {A New Approach to Plane-Sweep Overlay: Topological Structuring and Line-Segment Classification},
- Volume = {18},
- Year = {1991}}
-
-@article{Chrisman90,
- Author = {Nicholas R. Chrisman},
- Journal = {International Journal of Geographical Information Science},
- Number = {2},
- Pages = {157--167},
- Title = {Deficiencies of sheets and tiles: building sheetless databases},
- Volume = {4},
- Year = {1990}}
-
-@inproceedings{Lloyd77,
- Author = {Errol Lynn Lloyd},
- Booktitle = {Proceedings of the 18th Annual Symposium on Foundations of Computer Science},
- Pages = {228--240},
- Title = {On Triangulations of a Set of Points in the Plane},
- Year = {1977}}
-
-@inproceedings{Buchin13,
- Author = {Kevin Buchin and Olivier Devillers and Wolfgang Mulzer and Okke Schrijvers and Jonathan Shewchuk},
- Booktitle = {Proceedings of the 21st European Symposium on Algorithms},
- Title = {Vertex Deletion for 3D Delaunay Triangulations},
- Year = {2013}}
-
-@incollection{Worboys13,
- Author = {Michael Worboys},
- Booktitle = {Spatial Information Theory},
- Editor = {Thora Tenbrink and John Stell and Antony Galton and Zena Wood},
- Pages = {74--90},
- Publisher = {Springer International Publishing},
- Series = {Lecture Notes in Computer Science},
- Title = {Using Maptrees to Characterize Topological Change},
- Volume = {8116},
- Year = {2013}}
-
-@article{Ledoux13,
- Author = {Hugo Ledoux},
- Journal = {Computer-Aided Civil and Infrastructure Engineering},
- Month = {August},
- Number = {9},
- Pages = {693--706},
- Title = {On the Validation of Solids Represented with the International Standards for Geographic Information},
- Volume = {28},
- Year = {2013}}
-
-@inproceedings{Mahdiraji13,
- Author = {Alireza Rezaei Mahdiraji},
- Booktitle = {Proceedings of the 39th International Conference on Very Large Data Bases},
- Title = {Database Support for Unstructured Meshes},
- Year = {2013}}
-
-@article{Duncan13,
- Author = {Edward Eric Duncan and Alias Abdul Rahman},
- Journal = {International Journal of Mining, Reclamation and Environment},
- Title = {3D GIS for mine development -- integrated concepts},
- Year = {2013}}
-
-@article{DiCarlo13,
- Author = {Antonio DiCarlo and Alberto Paoluzzi and Vadim Shapiro},
- Journal = {Computer-Aided Design},
- Title = {Linear algebraic representation for topological structures},
- Year = {2013}}
-
-@inproceedings{Kraemer14,
- Author = {Pierre Kraemer and Lionel Untereiner and Thomas Jund and Sylvain Thery and David Cazier},
- Booktitle = {Proceedings of the 22nd International Meshing Roundtable},
- Editor = {J. Sarrate and M. Staten},
- Pages = {485--503},
- Publisher = {Springer International Publishing Switzerland},
- Title = {{CGoGN}: n-dimensional Meshes with Combinatorial Maps},
- Year = {2014}}
-
-@techreport{Saalfeld87,
- Author = {Alan Saalfeld},
- Institution = {Bureau of the Census},
- Month = {October},
- Number = {Census/SRD/RR-87/21},
- Title = {It doesn't make me nearly as cross},
- Type = {Statistical Research Division Report Series},
- Year = {1987}}
-
-@article{Li13,
- Author = {Bo Li and Xin Zhao and Hong Qin},
- Journal = {Computer Graphics Forum},
- Title = {Four-Dimensional Geometry Lens: A Novel Volumetric Magnification Approach},
- Year = {2013}}
-
-@inproceedings{Devillers12,
- Author = {Olivier Devillers},
- Booktitle = {Proceedings of the 28th European Workshop on Computational Geometry},
- Title = {Delaunay triangulations, theory vs practice},
- Year = {2012}}
-
-@article{Le13,
- Author = {Hai Ha Le},
- Journal = {ISPRS International Journal of Geo-Information},
- Month = {August},
- Pages = {837--853},
- Title = {Spatio-Temporal Data Construction},
- Volume = {2},
- Year = {2013}}
-
-@inproceedings{Singh13,
- Author = {Surendra Pal Singh and Kamal Jain and V. Ravibabu Mandla},
- Booktitle = {Proceedings of the 8th International 3D GeoInfo Conference},
- Month = {November},
- Series = {International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences},
- Title = {Virtual 3D City Modeling: Techniques and Applications},
- Volume = {XL-2/W2},
- Year = {2013}}
-
-@article{Thomas02,
- Author = {Federico Thomas and Carmen Torras},
- Journal = {The Visual Computer},
- Month = {November},
- Number = {7},
- Pages = {405--414},
- Title = {A projectively invariant intersection test for polyhedra},
- Volume = {18},
- Year = {2002}}
-
-@techreport{Eastman79,
- Author = {Charles M. Eastman and Kevin J. Weiler},
- Institution = {Computer Science Department, School of Computer Science, Carnegie Mellon University},
- Month = {January},
- Number = {1587},
- Title = {Geometric modeling using the Euler operators},
- Type = {Research Showcase},
- Year = {1979}}
-
-@article{Brisaboa13,
- Author = {Nieves R. Brisaboa and Miguel R. Luaces and M. Andrea Rodr\'iguez and Diego Seco},
- Journal = {International Journal of Geographical Information Science},
- Month = {July},
- Title = {An inconsistency measure of spatial data sets with respect to topological constraints},
- Year = {2013}}
-
-@book{Jordan87,
- Author = {M. C. Jordan},
- Publisher = {Gauthier-Villars},
- Title = {Cours d'Analyse},
- Year = {1887}}
-
-@article{Packer08,
- Author = {Eli Packer},
- Journal = {Computational Geometry},
- Month = {August},
- Number = {3},
- Pages = {231--251},
- Title = {Iterated Snap Rounding with Rounded Drift},
- Volume = {40},
- Year = {2008}}
-
-@article{Halperin02,
- Author = {Dan Halperin and Eli Packer},
- Journal = {Computational Geometry: Theory \& Applications},
- Number = {2},
- Pages = {209--225},
- Title = {Iterated Snap Rounding},
- Volume = {23},
- Year = {2002}}
-
-@incollection{Osaragi13,
- Author = {Toshihiro Osaragi and Sayaka Tsuda},
- Booktitle = {Geographic Information Science at the Heart of Europe},
- Editor = {Danny Vandenbroucke and B\'en\'edicte Bucher and Joep Crompvoets},
- Pages = {307--322},
- Publisher = {Springer},
- Series = {Lecture Notes in Geoinformation and Cartography},
- Title = {Facility Use-Choice Model with Travel Costs Incorporating Means of Transportation and Travel Direction},
- Year = {2013}}
-
-@incollection{Baglatzi13,
- Author = {Alkyoni Baglatzi and Werner Kuhn},
- Booktitle = {Geographic Information Science at the Heart of Europe},
- Editor = {Danny Vandenbroucke and B\'en\'edicte Bucher and Joep Crompvoets},
- Pages = {173--188},
- Publisher = {Springer},
- Series = {Lecture Notes in Geoinformation and Cartography},
- Title = {On the Formulation of Conceptual Spaces for Land Cover Classification Systems},
- Year = {2013}}
-
-@mastersthesis{Wouda11,
- Author = {Berend Wouda},
- Month = {August},
- School = {Delft University of Technology},
- Title = {Visualization on a Budget for Massive LiDAR Point Clouds},
- Year = {2011}}
-
-@inproceedings{Hoppe96,
- Author = {Hughes Hoppe},
- Booktitle = {Proceedings of SIGGRAPH 1996},
- Pages = {99--108},
- Title = {Progressive Meshes},
- Year = {1996}}
-
-@article{Wolfson97,
- Author = {Haim J. Wolfson and Isidore Rigoutsos},
- Journal = {IEEE Computational Science and Engineering},
- Month = {October--December},
- Number = {4},
- Pages = {10--21},
- Title = {Geometric Hashing: An Overview},
- Volume = {4},
- Year = {1997}}
-
-@inproceedings{Huang12,
- Author = {Jing Huang and Suya You},
- Booktitle = {Proceedings of the 2012 IEEE Computer Society Conference on Computer Vision and Pattern Recognition Workshops},
- Month = {June},
- Pages = {41--48},
- Publisher = {IEEE},
- Title = {Point Cloud Matching based on 3D Self-Similarity},
- Year = {2012}}
-
-@inproceedings{Brenner05,
- Author = {J. Brenner and A. Geiger and K. Leinemann},
- Booktitle = {Proceedings of the 1st International Workshop on Next Generation 3D City Models},
- Editor = {Thomas H. Kolbe and Gerhard Gr\"oger},
- Month = {June},
- Pages = {17--22},
- Title = {Flexible Generation of Semantic {3D} Building Models},
- Year = {2005}}
-
-@article{Yin09,
- Author = {Xuetao Yin and Peter Wonka and Anshuman Razdan},
- Journal = {IEEE Computer Graphics and Applications},
- Month = {January/February},
- Title = {Generating {3D} Building Models from Architectural Drawings: A Survey},
- Year = {2009}}
-
-@article{Schreibmann06,
- Author = {Eduard Schreibmann and George T. Y. Chen and Lei Xing},
- Journal = {International Journal of Radiation Oncology*Biology*Physics},
- Month = {April},
- Number = {5},
- Pages = {1537--1550},
- Title = {Image interpolation in {4D} {CT} using a {BSpline} deformable registration model},
- Volume = {64},
- Year = {2006}}
-
-@article{LorenzoValdes04,
- Author = {Mar{\'\i}a Lorenzo-Vald{\'e}s and Gerardo I. Sanchez-Ortiz and Andrew G. Elkington and Raad H. Mohiaddin and Daniel Rueckert},
- Journal = {Medical Image Analysis},
- Pages = {255--265},
- Title = {Segmentation of {4D} cardiac {MR} images using a probabilistic atlas and the {EM} algorithm},
- Volume = {8},
- Year = {2004}}
-
-@article{Barequet97,
- Author = {Gill Barequet},
- Journal = {IEEE Computational Science and Engineering},
- Month = {October--December},
- Number = {4},
- Pages = {22--28},
- Title = {Using Geometric Hashing To Repair {CAD} Objects},
- Volume = {4},
- Year = {1997}}
-
-@techreport{Agarwal01,
- Author = {Pankaj K. Agarwal and Michael T. Goodrich and S. Rao Kosaraju and Franco P. Preparata and Roberto Tamassia and Jeffrey S. Vitter},
- Institution = {Brown University},
- Month = {December},
- Title = {Applicable and Robust Geometric Computing},
- Type = {ARO Grant DAAH04-96-1-0013 Final Technical Report},
- Year = {2001}}
-
-@article{Patel06,
- Author = {Paresh S. Patel and David L. Marcum and Michael G. Remotigue},
- Journal = {International Journal for Numerical Methods in Fluids},
- Month = {March},
- Pages = {823--841},
- Title = {Automatic {CAD} model topology generation},
- Volume = {52},
- Year = {2006}}
-
-@article{Pueyo13,
- Author = {Oriol Pueyo and Gustavo Patow},
- Journal = {The Visual Computer},
- Month = {April},
- Title = {Structuring urban data},
- Year = {2013}}
-
-@article{Bayer72,
- Author = {R. Bayer},
- Journal = {Acta Informatica},
- Month = {January},
- Pages = {290--306},
- Title = {Symmetric Binary B-Trees: Data Structure and Maintenance Algorithms},
- Volume = {1},
- Year = {1972}}
-
-@inproceedings{Damiand09,
- Author = {Guillaume Damiand and Colin {de la Higuera} and Jean-Christophe Janodet and \'Emilie Samuel and Christine Solnon},
- Booktitle = {Proceedings of the 7th IAPR-TC-15 International Workshop on Graph-Based Representations in Pattern Recognition},
- Editor = {Andrea Torsello and Francisco {Escolano Ruiz} and Luc Brun},
- Pages = {102--112},
- Publisher = {Springer},
- Series = {Lecture Notes in Computer Science},
- Title = {A Polynomial Algorithm for Submap Isomorphism---Application to Searching Patterns in Images---},
- Volume = {5534},
- Year = {2009}}
-
-@inproceedings{Sederberg86,
- Author = {Thomas W. Sederberg},
- Booktitle = {Proceedings of SIGGRAPH '86},
- Month = {August},
- Pages = {151--160},
- Title = {Free-Form Deformation of Solid Geometric Models},
- Year = {1986}}
-
-@article{Masuda93,
- Author = {Hiroshi Masuda},
- Journal = {Computer-Aided Design},
- Number = {2},
- Title = {Topological Operators and {B}oolean Operations for Complex-Based Non-Manifold Geometric Models},
- Volume = {25},
- Year = {1993}}
-
-@inproceedings{Comic13,
- Author = {Lidija {\v C}omi\'c and Leila {de Floriani} and Federico Iuricich},
- Booktitle = {Proceedings of the 17th IAPR International Conference on Discrete Geometry for Computer Imagery},
- Editor = {Rocio Gonzalez-Diaz and {Maria Jose} Jimenez and Belen Medrano},
- Pages = {323--334},
- Series = {Lecture Notes in Computer Science},
- Title = {Multi-resolution Cell Complexes Based on Homology-Preserving Euler Operators},
- Volume = {7749},
- Year = {2013}}
-
-@inproceedings{vanderBrink12,
- Author = {Linda {van der Brink} and Jantien Stoter and Sisi Zlatanova},
- Booktitle = {Proceedings of the 7th International 3D GeoInfo Conference},
- Pages = {11--14},
- Title = {Modeling an Application Domain Extension of CityGML in UML},
- Year = {2012}}
-
-@techreport{Poudret07,
- Author = {M. Poudret and A. Arnould and Y. Bertrand and P. Lienhardt},
- Institution = {Laboratoire SIC, UFR SFA, Universit\'e de Poitiers},
- Month = {October},
- Number = {2007-01},
- Title = {Cartes combinatoires ouvertes},
- Year = {2007}}
-
-@unpublished{Paul12,
- Author = {Norbert Paul},
- Month = {May},
- Note = {Available at \url{http://arxiv.org/abs/1205.5691}},
- Title = {Signed Simplicial Decomposition and Overlay of n-D Polytope Complexes},
- Year = {2012}}
-
-@unpublished{Paul11,
- Author = {Norbert Paul and Patrick Erik Bradley and Martin Breunig},
- Month = {March},
- Note = {Available at \url{http://arxiv.org/abs/1303.2595}},
- Title = {Integrating Space, Time, Version and Scale Using {A}lexandrov Topologies},
- Year = {2011}}
-
-@techreport{Lien06a,
- Author = {Jyh-Ming Lien and Nancy M. Amato},
- Institution = {Parasol Lab., Department of Computer Science, Texas A\&M University},
- Month = {January},
- Number = {TR06-002},
- Title = {Approximate Convex Decomposition of Polyhedra},
- Year = {2006}}
-
-@inproceedings{Worboys12,
- Author = {Michael Worboys},
- Booktitle = {Proceedings of the 7th International Conference GIScience 2012},
- Editor = {Ningchuan Xiao and Mei-Po Kwan and Michael F. Goodchild and Shashi Shekhar},
- Pages = {298--310},
- Publisher = {Springer},
- Series = {Lecture Notes in Computer Science},
- Title = {The Maptree: A Fine-Grained Formal Representation of Space},
- Volume = {7478},
- Year = {2012}}
-
-@article{Afyouni11,
- Author = {Imad Afyouni and Cyril Ray and Christophe Claramunt},
- Journal = {Journal of Spatial Information Science},
- Pages = {85--123},
- Title = {Spatial Models for Indoor \& Context-Aware Navigation Systems: A Survey},
- Volume = {4},
- Year = {2012}}
-
-@inproceedings{Shi13,
- Author = {Yunfei Shi and Biao He},
- Booktitle = {Proceedings of the 6th IFIP WG 5.14 International Conference},
- Editor = {Diaoliang Li and Yingyi Chen},
- Pages = {203--210},
- Series = {IFIP Advances in Information and Communication Technology},
- Title = {Creating Topologically Consistent 3D City Models of LOD+ with Extrusion},
- Volume = {393},
- Year = {2013}}
-
-@inproceedings{Horna07,
- Author = {Sebastien Horna and Guillaume Damiand and Daniel Meneveaux and Yves Bertrand},
- Booktitle = {Proceedings of the 2nd International Conference on Computer Graphics Theory and Applications},
- Month = {March},
- Pages = {37--44},
- Title = {Building 3D Indoor Scenes Topology from 2D Architectural Plans},
- Year = {2007}}
-
-@incollection{Weiler88a,
- Author = {Kevin Weiler},
- Booktitle = {Geometric modeling for CAD applications: selected and expanded papers from the IFIP WG 5.2 working conference},
- Editor = {M.J. Wozny and H.W. McLaughlin},
- Month = {May},
- Pages = {37--66},
- Publisher = {Elsevier},
- Title = {Boundary Graph Operators for Non-Manifold Geometric Modeling Topology Representations},
- Year = {1988}}
-
-@inproceedings{Isenburg06,
- Author = {Martin Isenburg and Yuanxin Liu and Jonathan Shewchuk and Jack Snoeyink},
- Booktitle = {Proceedings of SIGGRAPH 2006},
- Month = {July},
- Pages = {1049--1056},
- Title = {Streaming Computation of Delaunay Triangulations},
- Year = {2006}}
-
-@inproceedings{Kirkpatrick00,
- Author = {David Kirkpatrick and Jack Snoeyink and Bettina Speckmann},
- Booktitle = {Proceedings of the 16th Annual Symposium on Computational Geometry},
- Pages = {322--330},
- Title = {Kinetic Collision Detection for Simple Polygons},
- Year = {2000}}
-
-@inproceedings{Shamos76,
- Author = {Michael Ian Shamos and Dan Hoey},
- Booktitle = {Proceedings of the 17th Annual Symposium on the Foundations of Computer Science},
- Pages = {208--215},
- Title = {Geometric Intersection Problems},
- Year = {1976}}
-
-@inproceedings{Shea89,
- Author = {Shea, K S and McMaster, R B},
- Booktitle = {Proceedings of Auto-Carto 9},
- Pages = {56--67},
- Title = {Cartographic generalization in a digital environment: When and how to generalize},
- Year = {1989}}
-
-@article{Aronov89,
- Author = {Boris Aronov},
- Journal = {Algorithmica},
- Pages = {109--140},
- Title = {On the Geodesic Voronoi Diagram of Point Sites in a Simple Polygon},
- Volume = {4},
- Year = {1989}}
-
-@inproceedings{Pacheco09,
- Author = {Ana Pacheco and Pedro Real},
- Booktitle = {Proceedings of the 14th Iberoamerican Congress on Pattern Recognition},
- Editor = {Eduardo Bayro-Corrochano and Jan-Olof Eklundh},
- Pages = {279--286},
- Publisher = {Springer Berlin / Heidelberg},
- Series = {Lecture Notes in Computer Science},
- Title = {Getting Topological Information for a 80-Adjacency Doxel-Based 4D Volume through a Polytopal Cell Complex},
- Volume = {5856},
- Year = {2009}}
-
-@article{Alayrangues08,
- Author = {Sylvie Alayrangues and Xavier Daragon and Jacques-Olivier Lachaud and Pascal Lienhardt},
- Journal = {Journal of Mathematical Imaging and Vision},
- Pages = {1--22},
- Title = {Equivalence between Closed Connected n-G-Maps without Multi-Incidence and n-Surfaces},
- Volume = {32},
- Year = {2008}}
-
-@article{Peltier09,
- Author = {Samuel Peltier and Laurent Fuchs and Pascal Lienhardt},
- Journal = {Discrete Applied Mathematics},
- Pages = {542--557},
- Title = {Simploidals sets: Definitions, operations and comparison with simplicial sets},
- Volume = {157},
- Year = {2009}}
-
-@article{Skapin01,
- Author = {Xavier Skapin and Pascal Lienhardt},
- Journal = {Journal of Visualization and Computer Animation},
- Pages = {131--144},
- Title = {Using Cartesian product for animation},
- Volume = {12},
- Year = {2001}}
-
-@unpublished{Mazur07,
- Author = {Barry Mazur},
- Month = {June},
- Note = {Available at \url{http://www.math.harvard.edu/~mazur/preprints/when_is_one.pdf}},
- Title = {When is one thing equal to some other thing?},
- Year = {2007}}
-
-@incollection{Albrecht98,
- Author = {Jochen Albrecht},
- Booktitle = {Geographic Information Research: Transatlantic Perspectives},
- Editor = {Massimo Craglia and Harlan Onsrud},
- Pages = {577--591},
- Publisher = {CRC Press},
- Title = {Universal analytical GIS operations---a task-oriented systematization of data structure-independent GIS functionality},
- Year = {1998}}
-
-@techreport{Biljecki13,
- Author = {Filip Biljecki},
- Institution = {Delft University of Technology},
- Month = {February},
- Number = {62},
- Title = {The concept of level of detail in {3D} city models},
- Type = {PhD proposal},
- Year = {2013}}
-
-@inproceedings{Shewchuk03,
- Author = {Jonathan Richard Shewchuk},
- Booktitle = {Proceedings of the 19th Annual Symposium on Computational Geometry},
- Month = {June},
- Pages = {181--190},
- Title = {Updating and Constructing Constrained Delaunay and Constrained Regular Triangulations by Flips},
- Year = {2003}}
-
-@book{Okabe00,
- Author = {Atsuyuki Okabe and Barry Boots and Kokichi Sugihara and Sung Nok Chiu},
- Publisher = {John Wiley \& Sons},
- Title = {Spatial Tessellations: Concepts and Applications of Voronoi Diagrams},
- Year = {2000}}
-
-@article{Coors03,
- Author = {Volker Coors},
- Journal = {Computers, Environment and Urban Systems},
- Pages = {345--357},
- Title = {{3D-GIS} in networking environments},
- Volume = {27},
- Year = {2003}}
-
-@article{NguyenGia12,
- Author = {Tuan Anh {Nguyen Gia}},
- Journal = {International Journal of Computer and Electrical Engineering},
- Month = {December},
- Number = {6},
- Pages = {962--966},
- Title = {Propose New Primitives for Urban Data Model},
- Volume = {4},
- Year = {2012}}
-
-@article{Schleicher07,
- Author = {Dierk Schleicher},
- Journal = {American Mathematical Monthly},
- Month = {June--July},
- Number = {6},
- Pages = {509--528},
- Title = {Hausdorff Dimension, Its Properties, and Its Surprises},
- Volume = {114},
- Year = {2007}}
-
-@article{Zhang13,
- Author = {Lingling Zhang and Yunfei Shi and Changlin Mi},
- Journal = {Applied Mechanics and Materials},
- Month = {February},
- Pages = {1129--1133},
- Title = {Survey of Research Progress on Three Dimensional Topological Data Structure},
- Volume = {303--306},
- Year = {2013}}
-
-@inproceedings{Shewchuk13,
- Author = {Jonathan Richard Shewchuk and Brielin C. Brown},
- Booktitle = {Proceedings of the 29th ACM Symposium on Computational Geometry},
- Title = {Fast Segment Insertion and Incremental Construction of Constrained Delaunay Triangulations},
- Year = {2013}}
-
-@article{Fortune97,
- Author = {Steven Fortune},
- Journal = {Computer-Aided Design},
- Number = {2},
- Pages = {123--133},
- Title = {Polyhedral modelling with multiprecision integer arithmetic},
- Volume = {29},
- Year = {1997}}
-
-@article{Edelsbrunner93a,
- Author = {Herbert Edelsbrunner and Raimund Seidel and Micha Sharir},
- Journal = {SIAM Journal on Computing},
- Month = {April},
- Number = {2},
- Pages = {418--429},
- Title = {On the Zone Theorem for Hyperplane Arrangements},
- Volume = {22},
- Year = {1993}}
-
-@article{Edelsbrunner86,
- Author = {Herbert Edelsbrunner and J. O'Rourke and R. Seidel},
- Journal = {SIAM Journal on Computing},
- Month = {May},
- Number = {2},
- Pages = {341--363},
- Title = {Constructing Arrangements of Lines and Hyperplanes with Applications},
- Volume = {15},
- Year = {1986}}
-
-@book{Engelking77,
- Author = {Rysxard Engelking},
- Publisher = {Polish Scientific Publishers},
- Title = {General Topology},
- Year = {1977}}
-
-@inproceedings{Clementini93,
- Author = {Eliseo Clementini and Paolino {di Felice} and Peter {van Oosterom}},
- Booktitle = {Proceedings of the 3rd International Symposium on Advances in Spatial Databases},
- Pages = {277--295},
- Title = {A Small Set of Formal Topological Relationships Suitable for End-User Interaction},
- Year = {1993}}
-
-@book{Itskov13,
- Author = {Mikhail Itskov},
- Edition = {3rd},
- Publisher = {Springer},
- Series = {Mathematical Engineering},
- Title = {Tensor Algebra and Tensor Analysis for Engineers},
- Volume = {15},
- Year = {2013}}
-
-@incollection{Zhao14,
- Author = {Junqiao Zhao and Jantien Stoter and Hugo Ledoux},
- Booktitle = {Cartography from Pole to Pole: Selected Contributions to the XXVIth International Conference of the ICA, Dresden 2013},
- Editor = {Manfred Buchroithner and Nikolas Prechtel and Dirk Burghardt},
- Pages = {187--202},
- Publisher = {Springer Berlin Heidelberg},
- Series = {Lecture Notes in Geoinformation and Cartography},
- Title = {A Framework for the Automatic Geometric Repair of {CityGML} Models},
- Year = {2014}}
-
-@incollection{Thompson11a,
- Author = {Rodney James Thompson and Peter {van Oosterom}},
- Booktitle = {Advances in 3D Geo-Information Sciences},
- Editor = {Thomas H. Kolbe and Gerhard K\"onig and Claus Nagel},
- Pages = {179--196},
- Publisher = {Springer},
- Series = {Lecture Notes in Geoinformation and Cartography},
- Title = {Integrated Representation of (Potentially Unbounded) {2D} and {3D} Spatial Objects for Rigorously Correct Query and Manipulation},
- Year = {2011}}
-
-@incollection{Halbwachs00,
- Author = {Yvon Halbwachs and {\O}yving Hjelle},
- Booktitle = {Advances in Software Tools for Scientific Computing},
- Editor = {Langtangen, Hans P. and Bruaset, Are M. and Quak, Ewald},
- Pages = {339--356},
- Publisher = {Springer},
- Series = {Lecture Notes in Computational Science and Engineering},
- Title = {Generalized Maps in Geological Modeling: Object-Oriented Design of Topological Kernels},
- Volume = {10},
- Year = {2000}}
-
-@techreport{Fradin05,
- Author = {D. Fradin and D. Meneveaux and P. Lienhardt},
- Institution = {Signal Image Communication Laboratory, CNRS, University of Poitiers},
- Number = {4},
- Title = {Hierarchy of Generalized Maps for Modeling and Rendering Complex Indoor Scenes},
- Year = {2005}}
-
-@inproceedings{Govindaraju04,
- Author = {Naga K. Govindaraju and Ming C. Lin and Dinesh Manocha},
- Booktitle = {Proceedings of the 11th ACM Symposium on Virtual Reality Software and Technology},
- Title = {Fast and Reliable Collision Culling Using Graphics Processors},
- Year = {2004}}
-
-@unpublished{Erickson09,
- Author = {Jeff Erickson},
- Note = {Lecture notes from CS 598: Computational Topology},
- Title = {CS 598: Computational Topology},
- Year = {2009}}
-
-@phdthesis{Zlatanova00,
- Author = {Siyka Zlatanova},
- Month = {March},
- School = {Technische Universit\"at Graz},
- Title = {3D GIS for Urban Development},
- Year = {2000}}
-
-@article{McInerney95,
- Author = {Tim McInerney and Demetri Terzopoulos},
- Journal = {Computerized Medical Imaging and Graphics},
- Number = {1},
- Pages = {69--83},
- Title = {A dynamic finite element surface model for segmentation and tracking in multidimensional medical images with application to cardiac {4D} image analysis},
- Volume = {19},
- Year = {1995}}
-
-@inproceedings{Kim03,
- Author = {Sung-Soo Kim and Seong-Ho Lee and Kyong-Ho Kim and Jong-Hun Lee},
- Booktitle = {Proceedings of the IEEE 2003 International Geoscience and Remote Sensing Symposium},
- Pages = {3715--3717},
- Title = {A Unified Visualization Framework for Spatial and Temporal Analysis in 4D GIS},
- Volume = {6},
- Year = {2003}}
-
-@inproceedings{Bendix99,
- Author = {J\"org Bendix and Frank Berthmann and Christoph Reudenbach},
- Booktitle = {Proceedings of the IEEE 1999 International Geoscience and Remote Sensing Symposium},
- Pages = {2235--2237},
- Title = {NOAA-AVHRR and 4D GIS --- towards a more realistic view of fog clearance},
- Year = {1999}}
-
-@incollection{vanOosterom12a,
- Author = {Peter van Oosterom and Martijn Meijers},
- Booktitle = {Jaarverslag 2011},
- Publisher = {Nederlandse Commissie voor Geodesie},
- Title = {Vario-scale data structures supporting smooth zoom and progressive transfer of {2D} and {3D} data},
- Year = {2012}}
-
-@article{Gueziec99,
- Author = {Andr\'e Gu\'eziec and Frank Bossen and Gabriel Taubin and Claudio Silva},
- Journal = {Computational Geometry: Theory \& Applications},
- Pages = {137--166},
- Title = {Efficient compression of non-manifold polygonal meshes},
- Volume = {14},
- Year = {1999}}
-
-@book{Luebke03,
- Author = {David Luebke and Martin Reddy and Jonathan D. Cohen and Amitabh Varshney and Benjamin Watson and Robert Huebner},
- Editor = {Brian A. Barsky},
- Publisher = {Morgan Kaufmann Publishers},
- Title = {Level of Detail for 3D Graphics},
- Year = {2003}}
-
-@article{Hagbi10,
- Author = {Nate Hagbi and Jihad El-Sana},
- Journal = {Computer-Aided Design},
- Pages = {67--75},
- Title = {Carving for topology simplification of polygonal meshes},
- Volume = {42},
- Year = {2010}}
-
-@article{Soille03,
- Author = {Pierre Soille and J\"urgen Vogt and Roberto Colombo},
- Journal = {Water Resources Research},
- Number = {12},
- Title = {Carving and adaptive drainage enforcement of grid digital elevation models},
- Volume = {39},
- Year = {2003}}
-
-@article{Garbrecht97,
- Author = {Jurgen Garbrecht and Lawrence W. Martz},
- Journal = {Journal of Hydrology},
- Pages = {204--213},
- Title = {The assignment of drainage direction over flat surfaces in raster digital elevation models},
- Volume = {193},
- Year = {1997}}
-
-@article{Prat05,
- Author = {Sylvain Prat and Patrick Giola and Yves Bertrand and Daniel Meneveaux},
- Journal = {The Visual Computer},
- Month = {September},
- Number = {8--10},
- Pages = {876--885},
- Title = {Connectivity Compression in Arbitrary Dimension},
- Volume = {21},
- Year = {2005}}
-
-@inproceedings{Alumbaugh05,
- Author = {Tyler J. Alumbaugh and Xiangmin Jiao},
- Booktitle = {Proceedings of the 14th International Meshing Roundtable},
- Pages = {485--504},
- Title = {Compact Array-Based Mesh Data Structures},
- Year = {2005}}
-
-@phdthesis{Damiand10,
- Author = {Guillaume Damiand},
- Month = {September},
- School = {Universit\'e Claude Bernard Lyon 1},
- Title = {Contributions aux Cartes Combinatoires et Cartes G\'en\'eralis\'ees : Simplification, Mod\`eles, Invariants Topologiques et Applications},
- Type = {Habilitation},
- Year = {2010}}
-
-@phdthesis{Damiand01,
- Author = {Guillaume Damiand},
- Month = {December},
- School = {Universit\'e Montpellier II},
- Title = {D\'efinition et \'etude d'un mod\`ele topologique minimal de repr\'esentation d'images 2d et 3d},
- Year = {2001}}
-
-@inproceedings{Damiand08,
- Author = {Guillaume Damiand and Samuel Peltier and Laurent Fuchs},
- Booktitle = {Proceedings of the 12th International Workshop on Combinatorial Image Analysis},
- Editor = {Valentin E. Brimkov and Reneta P. Barneva and Hebert A. Hauptman},
- Pages = {63--74},
- Publisher = {Springer},
- Series = {Lecture Notes in Computer Science},
- Title = {Computing Homology Generators for Volumes Using Minimal Generalized Maps},
- Volume = {4958},
- Year = {2008}}
-
-@inproceedings{Cicerone12,
- Author = {Serafino Cicerone and Matteo Cermignani},
- Booktitle = {Proceedings of the International Conference on Computational Science and Its Applications 2012},
- Editor = {Beriamino Murgante and Osvaldo Gervasi and Sanjay Misra and Nadia Nedjah and Ana Maria A. C. Rocha and David Taniar and Bernady O. Apduhan},
- Pages = {267--279},
- Series = {Lecture Notes in Computer Science},
- Title = {Fast and Simple Approach for Polygon Schematization},
- Volume = {7333},
- Year = {2012}}
-
-@inproceedings{Cicerone09,
- Author = {S. Cicerone and A. Orlandi and B. Archambeault and S. Connor and J. Fan and J.L. Drewniak},
- Booktitle = {Proceedings of the 20th International Zurich Symposium on EMC},
- Pages = {253--256},
- Title = {Cavities' Identification Algorithm for Power Integrity Anaysis of Complex Boards},
- Year = {2009}}
-
-@mastersthesis{Rastelli11,
- Author = {Michele Rastelli},
- School = {Universit\`a degli Studi dell-Aquila},
- Title = {BusOnAir - Un sistema informativo per transporti pubblici: modelli, algoritmi e tecnologie},
- Year = {2011}}
-
-@article{Elter94,
- Author = {Herve Elter and Pascal Lienhardt},
- Journal = {International Journal of Shape Modeling},
- Number = {2},
- Title = {Cellular complexes as structured semi-simplicial sets},
- Volume = {1},
- Year = {1994}}
-
-@article{Lienhardt04,
- Author = {Pascal Lienhardt and Xavier Skapin and Antoine Bergey},
- Journal = {International Journal of Computational Geometry and Applications},
- Number = {3},
- Pages = {115--159},
- Title = {Cartesian product of simplicial and cellular structures},
- Volume = {14},
- Year = {2004}}
-
-@inbook{Hardy12,
- Author = {Paul Hardy and Kenneth Field},
- Chapter = {11},
- Editor = {Wolfgang Kresse and David M. Danko},
- Pages = {323--358},
- Publisher = {Springer},
- Series = {Springer Handbook of Geographic Information},
- Title = {Portrayal and Cartography},
- Year = {2012}}
-
-@inproceedings{He12,
- Author = {S. He and G. Besuievsky and V. Tourre and G. Patow and G. Moreau},
- Booktitle = {Proceedings of 3U3D2012: Usage, Usability, and Utility of 3D City Models},
- Title = {All range and heterogeneous multi-scale 3D city models},
- Year = {2012}}
-
-@inproceedings{Feng12,
- Author = {Xin Feng and Yuanzhen Wang and Yanlin Weng and Yiying Tong},
- Booktitle = {Proceedings of the 1st International Conference on Computational Visual Media},
- Editor = {Shi-Min Hu and Ralph R. Martin},
- Pages = {194--201},
- Series = {Lecture Notes in Computer Science},
- Title = {Compact combinatorial maps in 3D},
- Volume = {7633},
- Year = {2012}}
-
-@inproceedings{Wang10,
- Author = {Lvdi Wang and Kun Zhou and Yizhou Yu and Baining Guo},
- Booktitle = {Proceedings of SIGGRAPH 2011},
- Number = {4},
- Series = {ACM Transactions on Graphics},
- Title = {Vector Solid Textures},
- Volume = {29},
- Year = {2010}}
-
-@inproceedings{Wang11,
- Author = {Lvdi Wang and Yizhou Yu and Kun Zhou and Baining Guo},
- Booktitle = {Proceedings of SIGGRAPH Asia 2011},
- Month = {December},
- Number = {6},
- Series = {ACM Transactions on Graphics},
- Title = {Multiscale Vector Volumes},
- Volume = {30},
- Year = {2011}}
-
-@article{Goetz12,
- Author = {Marcus Goetz},
- Journal = {International Journal of Geographical Information Science},
- Month = {September},
- Pages = {1--21},
- Title = {Towards generating highly detailed 3D CityGML models from OpenStreetMap},
- Volume = {iFirst},
- Year = {2012}}
-
-@article{Gosselin11,
- Author = {St\'ephane Gosselin and Guillaume Damiand and Christine Solnon},
- Journal = {Theoretical Computer Science},
- Month = {March},
- Number = {15},
- Pages = {1392--1405},
- Title = {Efficient search of combinatorial maps using signatures},
- Volume = {412},
- Year = {2011}}
-
-@mastersthesis{Baas12,
- Author = {Bart Baas},
- School = {Delft University of Technology},
- Title = {NoSQL Spatial: Neo4j versus PostGIS},
- Year = {2012}}
-
-@book{Bellman57,
- Author = {Richard Ernest Bellman},
- Publisher = {Princeton University Press},
- Title = {Dynamic programming},
- Year = {1957}}
-
-@inbook{Comic12,
- Author = {Lidija {\v C}omi\'c and Leila {de Floriani}},
- Chapter = {4},
- Editor = {V.E. Brimkov and R.P. Barneva},
- Number = {2},
- Pages = {109--144},
- Publisher = {Springer},
- Series = {Lecture Notes in Computational Vision and Biomechanics},
- Title = {Modeling and Manipulating Cell Complexes in Two, Three and Higher Dimensions},
- Volume = {2},
- Year = {2012}}
-
-@inproceedings{Meijers11b,
- Address = {Delft, The Netherlands},
- Author = {Martijn Meijers},
- Booktitle = {Proceedings of the 28th Urban Data Management Symposium},
- Editor = {Elfriede M. Fendel and Hugo Ledoux and M. Rumor and Sisi Zlatanova},
- Pages = {95--101},
- Publisher = {ISPRS Archives},
- Title = {The space-scale cube: an integrated model for 2D polygonal areas and scale},
- Volume = {XXXVIII-4/C21},
- Year = {2011}}
-
-@article{Thomsen08,
- Author = {Andreas Thomsen and Martin Breunig and Edgar Butwilowski},
- Journal = {Journal of Photogrammetry, Remote Sensing and Geoinformation Processing},
- Pages = {175--186},
- Title = {Towards a {G}-Map Based Tool for the Modelling and Management of Topology in Multiple Representation Databases},
- Volume = {3},
- Year = {2008}}
-
-@article{Coxeter30,
- Author = {H.S.M. Coxeter},
- Journal = {Philosophical Transactions of the Royal Society of London. Series A, Containing Papers of a Mathematical or Physical Character},
- Pages = {329--425},
- Title = {The Polytopes with Regular-Prismatic Vertex Figures},
- Volume = {229},
- Year = {1930}}
-
-@inproceedings{Zhu09,
- Author = {Qing Zhu and Junqiao Zhao and Xiaochun Liu and Yeting Zhang},
- Booktitle = {Proceedings of GeoWeb 2009 Academic Track -- Cityscapes},
- Editor = {Thomas H. Kolbe and Hao Zhang and Sisi Zlatanova},
- Pages = {74--79},
- Publisher = {ISPRS},
- Series = {The International Archives of Photogrammetry, Remote Sensing and Spatial Information Science},
- Title = {Perceptually Guided Geometrical Primitive Location Method for {3D} Complex Building Simplification},
- Volume = {XXXVIII--3--4/C3},
- Year = {2009}}
-
-@article{Zhu10,
- Author = {Qing Zhu and Junqiao Zhao and Zhiqiang Du and Yeting Zhang},
- Journal = {Computers \& Graphics},
- Month = {February},
- Number = {1},
- Pages = {55--65},
- Title = {Quantitative analysis of discrete 3D geometrical detail levels based on perceptual metric},
- Volume = {34},
- Year = {2010}}
-
-@article{Amenta01,
- Author = {Nina Amenta and Sunghee Choi and Ravi Krishna Kolluri},
- Journal = {Computational Geometry: Theory \& Applications},
- Number = {2--3},
- Pages = {127--153},
- Title = {The power crust, unions of balls, and the medial axis transform},
- Volume = {19},
- Year = {2001}}
-
-@article{Andoni08,
- Author = {Alexandr Andoni and Piotr Indyk},
- Journal = {Communications of the ACM},
- Number = {1},
- Pages = {117--122},
- Title = {Near-optimal Hashing Algorithms for Approximate Nearest Neighbor in High Dimensions},
- Volume = {51},
- Year = {2008}}
-
-@article{Arya98,
- Author = {Sunil Arya and David M. Mount and Nathan S. Netanyahu and Ruth Silverman and Angela Y. Wu},
- Journal = {Journal of the ACM},
- Pages = {891--923},
- Title = {An Optimal Algorithm for Approximate Nearest Neighbor Searching in Fixed Dimensions},
- Volume = {45},
- Year = {1998}}
-
-@inproceedings{Bellet10,
- Author = {Thomas Bellet and Mathieu Poudret and Agnes Arnould and Laurent Fuchs},
- Booktitle = {Proceedings of the Shape Modeling International Conference 2010},
- Pages = {100--112},
- Title = {Designing a topological modeler kernel: a rule-based approach},
- Year = {2010}}
-
-@inproceedings{Desbarats03,
- Author = {Pascal Desbarats and Stefka Gueorguieva},
- Booktitle = {Proceedings of the International Conference on Computational Science and Its Applications 2003},
- Pages = {498--507},
- Series = {Lecture Notes in Computer Science},
- Title = {CW Complexes: Topological Mainframe for Numerical Representations of Objects},
- Volume = {2669},
- Year = {2003}}
-
-@techreport{Illetschko06a,
- Author = {Thomas Illetschko and Adrian Ion and Yll Haxhimusa and Walter G. Kropatsch},
- Institution = {Vienna University of Technology},
- Month = {October},
- Number = {106},
- Title = {Effective Programming of Combinatorial Maps using COMA - A C++ Framework for Combinatorial Maps},
- Year = {2006}}
-
-@inproceedings{Illetschko06,
- Author = {Thomas Illetschko and Adrian Ion and Yll Haxhimusa and Walter G. Kropatsch},
- Booktitle = {Proceedings of the 30th Annual Workshop of the Austrian Association for Pattern Recognition},
- Editor = {F. Lenzen and O. Scherzer and M. Vincze},
- Title = {Collapsing 3D Combinatorial Maps},
- Year = {2006}}
-
-@article{Vince83,
- Author = {Andrew Vince},
- Journal = {Journal of Combinatorial Theory, Series B},
- Month = {February},
- Number = {1},
- Pages = {1--21},
- Title = {Combinatorial Maps},
- Volume = {34},
- Year = {1983}}
-
-@article{Rottensteiner03,
- Author = {Franz Rottensteiner},
- Journal = {3D Reconstruction and Visualization},
- Number = {6},
- Pages = {42--50},
- Title = {Automatic Generation of High-Quality Building Models from Lidar Data},
- Volume = {23},
- Year = {2003}}
-
-@inproceedings{Ledoux09,
- Author = {Hugo Ledoux and Martijn Meijers},
- Booktitle = {UDMS Annual 2009: Proceedings of the Urban Data Management Society Symposium 2009},
- Editor = {Alenka Krek and Massimo Rumor and Sisi Zlatanova},
- Pages = {39--48},
- Title = {Extruding building footprints to create topologically consistent 3D city models},
- Year = {2009}}
-
-@inproceedings{Meijers11a,
- Author = {Martijn Meijers},
- Booktitle = {Proceedings of the 14th {ICA}/{ISPRS} Workshop on Generalisation and Multiple Representation},
- Title = {Cache-friendly progressive data streaming with variable-scale data structures},
- Year = {2011}}
-
-@phdthesis{Meijers11,
- Author = {Martijn Meijers},
- Month = {December},
- School = {Delft University of Technology},
- Title = {Variable-scale Geo-information},
- Year = {2011}}
-
-@inproceedings{vanOosterom12,
- Author = {Peter {van Oosterom} and Jantien Stoter},
- Booktitle = {Proceedings of the Geospatial World Forum 2012},
- Title = {Principles of 5D modeling, full integration of 3D space, time and scale},
- Year = {2012}}
-
-@article{Requicha80,
- Author = {Aristides A. G. Requicha},
- Journal = {Computing Surveys},
- Month = {December},
- Number = {4},
- Pages = {437--464},
- Title = {Representations for Rigid Solids: Theory, Methods, and Systems},
- Volume = {12},
- Year = {1980}}
-
-@article{Ledoux11a,
- Author = {Hugo Ledoux and Martijn Meijers},
- Journal = {International Journal of Geographical Information Science},
- Number = {4},
- Pages = {557--574},
- Title = {Topologically consistent {3D} city models obtained by extrusion},
- Volume = {25},
- Year = {2011}}
-
-@article{Myers95,
- Author = {Nathan C. Myers},
- Journal = {C++ Report},
- Month = {June},
- Title = {Traits: a new and useful template technique},
- Year = {1995}}
-
-@inproceedings{deBerg97a,
- Author = {Mark {de Berg} and Matthew J. Katz and A. Frank {van der Stappen} and Jules Vleugels},
- Booktitle = {Proceedings of the 13th Annual Symposium on Computational Geometry},
- Pages = {294--303},
- Title = {Realistic Input Models for Geometric Algorithms},
- Year = {1997}}
-
-@book{Boots86,
- Address = {Norwich, United Kingdom},
- Author = {B. N. Boots},
- Publisher = {W. H. Hutchkins \& Sons},
- Series = {Concepts and Techniques in Modern Geography},
- Title = {Voronoi (Thiessen) Polygons},
- Volume = {45},
- Year = {1986}}
-
-@article{Fabri00,
- Author = {Andreas Fabri and Geert-Jan Giezeman and Lutz Kettner and Stefan Schirra and Sven Sch\"onherr},
- Journal = {Software: Practice and Experience},
- Number = {11},
- Pages = {1167--1202},
- Title = {On the design of CGAL, a computational geometry algorithms library},
- Volume = {30},
- Year = {2000}}
-
-@article{Zomorodian02,
- Author = {Afra Zomorodian and Herbert Edelsbrunner},
- Journal = {International Journal of Computational Geometry and Applications},
- Pages = {143--172},
- Title = {Fast Software for Box Intersections},
- Volume = {12},
- Year = {2002}}
-
-@inproceedings{Boots74,
- Author = {Boots, Barry},
- Booktitle = {Proceedings, Association of American Geographers, 6},
- Pages = {26--29},
- Title = {{D}elaunay triangles, an alternative approach to point pattern analysis},
- Year = {1974}}
-
-@unpublished{Tammik07,
- Author = {Jeremy Tammik},
- Month = {September},
- Note = {Available at \url{http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.89.6020&rep=rep1&type=pdf}},
- Title = {{AutoCAD} {N}ef Polyhedron Implementation},
- Year = {2007}}
-
-@inproceedings{Dupas08,
- Author = {Alexandre Dupas and Guillaume Damiand},
- Booktitle = {Proceedings of the 14th IAPR International Conference on Discrete Geometry for Computer Imagery},
- Pages = {507--518},
- Series = {Lecture Notes in Computer Science},
- Title = {First Results for 3D Image Segmentation with Topological Map},
- Volume = {4992},
- Year = {2008}}
-
-@inproceedings{vanOosterom04,
- Author = {Peter {van Oosterom} and Quak, Wilko and Tijssen, Theo},
- Booktitle = {Proceedings of the 11th International Symposium on Spatial Data Handling},
- Editor = {Fisher, Peter F.},
- Pages = {1--16},
- Publisher = {Springer},
- Title = {About invalid, valid and clean polygons},
- Year = {2004}}
-
-@inproceedings{Thiemann10,
- Author = {Frank Thiemann and Monika Sester and Joachim Bobrich},
- Booktitle = {Proceedings of the Joint International Conference on Theory, Data Handling and Modelling in GeoSpatial Information Science},
- Pages = {558--563},
- Title = {Automatic Derivation of Land-Use from Topographic Data},
- Volume = {38},
- Year = {2010}}
-
-@article{Yuan99,
- Author = {Shuxin Yuan and Chuang Tao},
- Journal = {Geoinformatics and Socioinformatics},
- Month = {June},
- Pages = {1--13},
- Title = {Development of Conflation Components},
- Year = {1999}}
-
-@inproceedings{vanOosterom03,
- Author = {Peter {van Oosterom} and Wilko Quak and Theo Tijssen},
- Booktitle = {Proceedings of the ISPRS Joint Workshop on Spatial, Temporal and Multi-Dimensional Data Modelling and Analysis},
- Month = {October},
- Title = {Polygons: The unstable foundation of spatial modeling},
- Year = {2003}}
-
-@book{Hatcher02,
- Author = {Allen Hatcher},
- Publisher = {Cambridge University Press},
- Title = {Algebraic Topology},
- Year = {2002}}
-
-@inbook{Congote12,
- Author = {John Congote and Luis Kabongo and Aitor Moreno and Alvaro Segura and Andoni Beristain and Jorge Posada and Oscar Ruiz},
- Chapter = {9},
- Editor = {Nobuhiko Mukai},
- Month = {March},
- Pages = {157--178},
- Publisher = {InTech},
- Series = {Computer Graphics},
- Title = {Volume Ray Casting in WebGL},
- Year = {2012}}
-
-@inproceedings{Escalona07,
- Author = {Francisco Escalona and Ruy Fabila-Monroy and Jorge Urrutia},
- Booktitle = {Proceedings of the 23rd European Workshop on Computational Geometry},
- Month = {March},
- Pages = {12--16},
- Title = {Hamiltonian Tetrahedralizations with Steiner Points},
- Year = {2007}}
-
-@article{El-Mekawy12,
- Author = {Mohamed El-Mekawy and Anders Ostman and Ihab Hijazi},
- Journal = {ISPRS International Journal of Geo-Information},
- Month = {July},
- Pages = {120--145},
- Title = {A Unified Building Model for 3D Urban GIS},
- Volume = {1},
- Year = {2012}}
-
-@incollection{Boguslawski11,
- Author = {Pawel Boguslawski and Christopher Gold},
- Booktitle = {Advances in 3D Geo-Information Sciences},
- Editor = {Kolbe, Thomas H. and K\"{o}nig, Gerhard and Nagel, Claus},
- Pages = {43--56},
- Publisher = {Springer},
- Series = {Lecture Notes in Geoinformation and Cartography},
- Title = {Rapid Modelling of Complex Building Interiors},
- Year = {2011}}
-
-@unpublished{Edelsbrunner06,
- Author = {Herbert Edelsbrunner},
- Note = {Lecture notes from CPS296.1: COMPUTATIONAL TOPOLOGY},
- Title = {CPS296.1: Computational Topology},
- Year = {2006}}
-
-@inbook{Lienhardt09,
- Author = {Pascal Lienhardt and Laurent Fuchs and Yves Bertrand},
- Editor = {Giuseppe Di Malo and Somashekhar Naimpally},
- Pages = {151--198},
- Publisher = {Dipartimento di Matematica della Seconda Universit\`a di Napoli},
- Series = {Theory and applications of proximity, nearness and uniformity},
- Title = {Combinatorial Models for Topology-Based Geometric Modeling},
- Year = {2009}}
-
-@article{Mallet04,
- Author = {Jean-Laurent Mallet},
- Journal = {Mathematical Geology},
- Month = {January},
- Number = {1},
- Pages = {1--32},
- Title = {Space--Time Mathematical Framework for Sedimentary Geology},
- Volume = {36},
- Year = {2004}}
-
-@article{Tossebro11,
- Author = {Erlend T{\o}ssebro and Mads Nyg{\aa}rd},
- Journal = {Geoinformatica},
- Pages = {633--661},
- Title = {Representing topological relationships for spatiotemporal objects},
- Volume = {15},
- Year = {2011}}
-
-@inproceedings{Hansen01,
- Author = {Henning Sten Hansen},
- Booktitle = {Proceedings of the 1st International Symposium on Digital Earth Moving},
- Pages = {48--59},
- Series = {Lecture Notes in Computer Science},
- Title = {A Quasi-Four Dimensional Database for the Built Environment},
- Volume = {2181},
- Year = {2001}}
-
-@article{Pion11,
- Author = {Sylvain Pion and Andreas Fabri},
- Journal = {Science of Computer Programming},
- Number = {4},
- Pages = {307--323},
- Title = {A Generic Lazy Evaluation Scheme for Exact Geometric Computations},
- Volume = {76},
- Year = {2011}}
-
-@inproceedings{Held11,
- Author = {Martin Held and Willi Mann},
- Booktitle = {Proceedings of the 23rd Canadian Conference on Computational Geometry},
- Title = {An Experimental Analysis of Floating-Point Versus Exact Arithmetic},
- Year = {2011}}
-
-@book{Manolopoulos06,
- Author = {Yannis Manolopoulos and Alexandros Nanopoulos and Apostolos N. Papadopoulos and Yannis Theodoridis},
- Publisher = {Springer Berlin Heidelberg},
- Series = {Advanced Information and Knowledge Processing},
- Title = {R-Trees: Theory and Applications},
- Year = {2006}}
-
-@inproceedings{Guttman84,
- Author = {Antonin Guttman},
- Booktitle = {Proceedings of the 1984 ACM SIGMOD International Conference on Management of Data},
- Pages = {47--57},
- Title = {R-trees: A dynamic index structure for spatial searching},
- Year = {1984}}
-
-@inproceedings{Beckmann90,
- Author = {Norbert Beckmann and Hans-Peter Kriegel and Ralf Schneider and Bernhard Seeger},
- Booktitle = {Proceedings of the 1990 ACM SIGMOD International Conference on Management of Data},
- Number = {322--330},
- Title = {The {R}*-tree: An Efficient and Robust Access Method for Points and Rectangles},
- Year = {1990}}
-
-@article{Bradley10,
- Author = {Patrick Erik Bradley and Norbert Paul},
- Journal = {The Computer Journal},
- Number = {1},
- Pages = {69--89},
- Title = {Using the Relational Model to Capture Topological Information of Spaces},
- Volume = {53},
- Year = {2010}}
-
-@inproceedings{Fradin02,
- Author = {David Fradin and Daniel Meneveaux and Pascal Lienhardt},
- Booktitle = {Actes des XV\`emes journ\'ees de l'Association Fran\c{c}aise d'Informatique Graphique},
- Number = {2},
- Title = {Partition de l'espace et hi\'erarchie de cartes g\'en\'eralis\'ees: application aux complexes architecturaux},
- Volume = {28},
- Year = {2002}}
-
-@inproceedings{Paul10,
- Author = {N. Paul and M. Breunig and E Butwilowski and A. Thomsen},
- Booktitle = {Proceedings of the 6th International Conference GIScience 2010},
- Title = {n-D-Topological Data Structures: Some Theoretical and Pragmatic Considerations for GI-Science},
- Year = {2010}}
-
-@inproceedings{Edelsbrunner85,
- Author = {Herbert Edelsbrunner and Raimund Seidel},
- Booktitle = {Proceedings of the 1st Annual Symposium on Computational Geometry},
- Pages = {251--262},
- Title = {Voronoi diagrams and arrangements},
- Year = {1985}}
-
-@article{Edelsbrunner90,
- Author = {Herbert Edelsbrunner and Ernst P. M\"ucke},
- Journal = {ACM Transactions on Graphics},
- Number = {1},
- Pages = {66--104},
- Title = {Simulation of Simplicity: A Technique to Cope with Degenerate Cases in Geometric Algorithms},
- Volume = {9},
- Year = {1990}}
-
-@inproceedings{Hert01,
- Author = {Susan Hert and Michael Hoffmann and Lutz Kettner and Sylvain Pion and Michael Seel},
- Booktitle = {Proceedings of the Workshop on Algorithm Engineering},
- Pages = {79--90},
- Publisher = {Springer-Verlag},
- Series = {Lecture Notes in Computer Science},
- Title = {An Adaptable and extensible geometry kernel},
- Volume = {2141},
- Year = {2001}}
-
-@article{Thompson11,
- Author = {Rodney James Thompson and Peter {van Oosterom}},
- Journal = {Geoinformatica},
- Pages = {223-246},
- Title = {Connectivity in the regular polytope representation},
- Volume = {15},
- Year = {2011}}
-
-@inproceedings{Rossignac96,
- Author = {Jarek R. Rossignac},
- Booktitle = {SIGGRAPH 1996 Course Notes},
- Title = {Specification, representation, and construction of non-manifold geometric structures},
- Year = {1996}}
-
-@inproceedings{Stoter07,
- Author = {Jantien Stoter and Wilko Quak and Peter {van Oosterom} and Martijn Meijers and Rob Lemmens and Harry Uitermark},
- Booktitle = {Proceedings of the 2nd International Symposium on Generalization of Information},
- Pages = {1--18},
- Title = {Considerations for the design of a semantic data model for a multi-representation topographical database},
- Year = {2007}}
-
-@incollection{vanOosterom99,
- Author = {Peter {van Oosterom}},
- Booktitle = {Geographical Information Systems: Principlesm Technical Issues, Management Issues and Applications},
- Chapter = {2.3},
- Editor = {Paul A. Longley and Michael F. Goodchild and David J. Maguire and David W. Rhind},
- Pages = {385--400},
- Publisher = {Wiley},
- Title = {Spatial Access Methods},
- Volume = {1},
- Year = {1999}}
-
-@article{Kirkpatrick83,
- Author = {David Kirkpatrick},
- Journal = {SIAM Journal on Computing},
- Month = {February},
- Number = {1},
- Pages = {28--35},
- Title = {Optimal Seach in Planar Subdivisions},
- Volume = {12},
- Year = {1983}}
-
-@inproceedings{Snoeyink97a,
- Author = {Jack Snoeyink and Marc {van Kreveld}},
- Booktitle = {Proceedings of the 7th Annual European Symposium on Algorithms},
- Pages = {459--471},
- Publisher = {Springer-Verlag},
- Series = {Lecture Notes in Computer Science},
- Title = {Linear-time reconstruction of Delaunay triangulations with applications},
- Volume = {1284},
- Year = {1997}}
-
-@inproceedings{Snoeyink97,
- Author = {Jack Snoeyink and Marc {van Kreveld}},
- Booktitle = {Proceedings of the 13th ACM Symposium on Computational Geometry},
- Pages = {400--402},
- Title = {Good orders for incremental (re)construction},
- Year = {1997}}
-
-@inproceedings{vanKreveld97a,
- Author = {Marc van Kreveld},
- Booktitle = {Proceedings of the 24th International Conference on Current Trends in Theory and Practice of Computer Science},
- Pages = {19--36},
- Publisher = {Springer-Verlag},
- Series = {Lecture Notes in Computer Science},
- Title = {Algorithms for Triangulated Terrains},
- Volume = {1338},
- Year = {1997}}
-
-@incollection{vanKreveld97,
- Address = {Berlin},
- Author = {Marc van Kreveld},
- Booktitle = {Algorithmic Foundations of Geographic Information Systems},
- Chapter = {1},
- Editor = {Marc van Kreveld and J\"urg Nievergelt and Thomas Roos and Peter Widmayer},
- Pages = {37--78},
- Publisher = {Springer-Verlag},
- Series = {Lecture Notes in Computer Science},
- Title = {Digital Elevation Models and {TIN} Algorithms},
- Volume = {1340},
- Year = {1997}}
-
-@article{Lien06,
- Author = {Jyh-Ming Lien and Nancy M. Amato},
- Journal = {Computational Geometry: Theory \& Applications},
- Pages = {100--123},
- Title = {Approximate convex decomposition of polygons},
- Volume = {35},
- Year = {2006}}
-
-@inproceedings{Bulbul09a,
- Author = {Rizwan Bulbul and Andrew U. Frank},
- Booktitle = {Proceedings of the 17th International Conference on Geoinformatics},
- Pages = {1--6},
- Title = {{AHD}: The Alternate Simplicial Decomposition of Nonconvex Polytopes (Generalization of a Convex Polytope Based Spatial Data Model)},
- Year = {2009}}
-
-@phdthesis{Hachenberger06,
- Author = {Peter Hachenberger},
- School = {Saarland University},
- Title = {Boolean Operations on 3D Selective Nef Complexes Data Structure, Algorithms, Optimized Implementation, Experiments and Applications},
- Year = {2006}}
-
-@techreport{Dobrint93,
- Author = {Katrin Dobrint and Kurt Mehlhorn and Mariette Yvinec},
- Institution = {INRIA},
- Month = {August},
- Number = {2023},
- Title = {A Complete and Efficient Algorithm for the Intersectionof a General and a Convez Polyhedron},
- Year = {1993}}
-
-@phdthesis{Seel01,
- Author = {Michael Seel},
- School = {Saarland University},
- Title = {Planar Nef Polyhedra and Generic Higher-dimensional Geometry},
- Year = {2001}}
-
-@inproceedings{Granados03,
- Author = {Miguel Granados and Peter Hachenberger and Susan Hert and Lutz Kettner and Kurt Mehlhorn and Michael Seel},
- Booktitle = {Proceedings of the 11th Annual European Symposium on Algorithms},
- Month = {September},
- Pages = {174--186},
- Title = {Boolean Operations on {3D} Selective Nef Complexes: Data Structure, Algorithms and Implementation},
- Year = {2003}}
-
-@article{Paoluzzi93,
- Author = {A. Paoluzzi and F. Bernardini and C. Cattani and V. Ferrucci},
- Journal = {ACM Transactions on Graphics},
- Month = {January},
- Number = {1},
- Pages = {56--102},
- Title = {Dimension-Independent Modeling with Simplicial Complexes},
- Volume = {12},
- Year = {1993}}
-
-@phdthesis{Pilouk96,
- Address = {The Netherlands},
- Author = {Pilouk, Morakot},
- School = {ITC},
- Title = {Integrated modelling for {3D} {GIS}},
- Year = {1996}}
-
-@incollection{vanOosterom10,
- Author = {Peter van Oosterom and Stoter, Jantien},
- Booktitle = {Geographic Information Science: 6th International Conference, GIScience 2010, Zurich, Switzerland, September 14-17, 2010. Proceedings},
- Editor = {Sara Irina Fabrikant and Tumasch Reichenbacher and Marc van Kreveld and Christoph Schlieder},
- Pages = {311--324},
- Publisher = {Springer Berlin Heidelberg},
- Title = {{5D} Data Modelling: Full Integration of {2D}/{3D} Space, Time and Scale Dimensions},
- Year = {2010}}
-
-@article{Stoter11a,
- Author = {Jantien Stoter and George Vosselman and Joris Goos and Sisi Zlatanova and Edward Verbree and Rick Klooster and Marcel Reuvers},
- Journal = {Journal of Photogrammetry, Remote Sensing and Geoinformation Processing},
- Pages = {405--420},
- Title = {Towards a national {3D} Spatial Data Infrastructure: case of the Netherlands},
- Volume = {6},
- Year = {2011}}
-
-@inproceedings{Penninga05,
- Author = {Friso Penninga},
- Booktitle = {Spatial Information Theory, COSIT 2005},
- Pages = {409--425},
- Title = {{3D} Topographic Data Modelling: Why Rigidity Is Preferable to Pragmatism},
- Year = {2005}}
-
-@article{Torquato09,
- Author = {S. Torquato and Y. Jiao},
- Journal = {Nature},
- Pages = {876--879},
- Title = {Dense packings of the Platonic and Archimedean solids},
- Volume = {460},
- Year = {2009}}
-
-@article{Muigg11,
- Author = {Phillip Muigg and Markus Hadwiger and Helmut Doleisch and Eduard Gr\"oller},
- Journal = {IEEE Transactions on Visualization and Computer Graphics},
- Month = {December},
- Number = {12},
- Pages = {2115--2124},
- Title = {Interactive Volume Visualization of General Polyhedral Grids},
- Volume = {17},
- Year = {2011}}
-
-@incollection{Mesmoudi05,
- Author = {M. Mostefa Mesmoudi and Leila {de Floriani} and Franco Morando and Enrico Puppo},
- Booktitle = {Advances in Multiresolution for Geometric Modelling},
- Pages = {75--87},
- Publisher = {Springer Berlin / Heidelberg},
- Title = {An Algorithm for Decomposing Multi-dimensional Non-manifold Objects into Nearly Manifold Components},
- Year = {2005}}
-
-@inproceedings{deFloriani02,
- Author = {Leila {de Floriani} and Mostefa Mohammed Mesmoudi and Franco Morando and Enrico Puppo},
- Booktitle = {Proceedings of the 10th International Conference of Discrete Geometry for Computer Imagery},
- Pages = {69--80},
- Series = {Lecture Notes in Computer Science},
- Title = {Non-manifold Decomposition in Arbitrary Dimensions},
- Year = {2002}}
-
-@inproceedings{Lienhardt97,
- Author = {Pascal Lienhardt},
- Booktitle = {Proceedings of the 7th International Workshop on Discrete Geometry for Computer Imagery},
- Pages = {33--48},
- Series = {Lecture Notes in Computer Science},
- Title = {Aspects in topology-based geometric modeling. Possible tools for discrete geometry?},
- Volume = {1347},
- Year = {1997}}
-
-@inproceedings{Goodchild87,
- Author = {Michael F. Goodchild},
- Booktitle = {Proceedings of the International GIS Symposium},
- Pages = {66--77},
- Title = {Towards an enumeration and classification of {GIS} functions},
- Volume = {2},
- Year = {1987}}
-
-@article{Burrough92,
- Author = {P. A. Burrough},
- Journal = {Computers \& Geosciences},
- Number = {4},
- Pages = {395--400},
- Title = {Are {GIS} data structures too simple minded?},
- Volume = {18},
- Year = {1992}}
-
-@inproceedings{Bru08,
- Author = {Antoine Bru and Monique Teillaud},
- Booktitle = {Abstracts of the 24th European Workshop on Computational Geometry},
- Pages = {95--98},
- Title = {Generic Implementation of a Data Structure for 3D Regular Complexes},
- Year = {2008}}
-
-@inproceedings{Damiand03,
- Author = {Guillaume Damiand and Pascal Lienhardt},
- Booktitle = {Proceedings of the 11th Discrete Geometry for Computer Imagery},
- Pages = {408--419},
- Title = {Removal and Contraction for $n$-Dimensional Generalized Maps},
- Volume = {2886},
- Year = {2003}}
-
-@article{Grasset-Simon06,
- Author = {Carine Grasset-Simon and Guillaume Damiand and Pascal Lienhardt},
- Journal = {Pattern Recognition},
- Number = {4},
- Pages = {527--538},
- Title = {nD generalized map pyramids: definition, representations and basic operations},
- Volume = {39},
- Year = {2006}}
-
-@book{Kaczynski04,
- Author = {Tomasz Kaczynski and Konstantin Mischaikow and Marian Mrozek},
- Publisher = {Springer Berlin / Heidelberg},
- Title = {Computational Homology},
- Year = {2004}}
-
-@inproceedings{Alayrangues09,
- Author = {Sylvie Alayrangues and Samuel Peltier and Guillaume Damiand and Pascal Lienhardt},
- Booktitle = {Proceedings of the 15th International Conference on Discrete Geometry for Computer Imagery},
- Pages = {300--312},
- Series = {Lecture Notes in Computer Science},
- Title = {Border Operator for Generalized Maps},
- Volume = {5810},
- Year = {2009}}
-
-@article{Dahmen82,
- Author = {Wolfgang A. Dahmen and Charles A. Micchelli},
- Journal = {SIAM Journal on Numerical Analysis},
- Number = {5},
- Pages = {993--1012},
- Title = {On the Linear Independence of Multivariate B-Splines, I. Triangulations of Simploids},
- Volume = {19},
- Year = {1982}}
-
-@inproceedings{Lienhardt99,
- Author = {Pascal Lienhardt and Laurent Fuchs and Yves Bertrand},
- Booktitle = {Proceedings of the Eurographics Workshop on Graphics and Visualization Education},
- Pages = {39--44},
- Title = {A course in Topology-based Geometric Modeling},
- Year = {1999}}
-
-@article{Pearson01,
- Author = {Karl Pearson},
- Journal = {Philosophical Magazine},
- Number = {6},
- Pages = {559-572},
- Title = {On Lines and Planes of Closest Fit to Systems of Points in Space},
- Volume = {2},
- Year = {1901}}
-
-@inproceedings{vanOosterom97,
- Author = {Peter {van Oosterom}},
- Booktitle = {Proceedings of Auto-Carto 13},
- Title = {Maintaining Consistent Topology Including Historical Data in a Large Spatial Database},
- Year = {1997}}
-
-@inproceedings{vanOosterom06a,
- Author = {Peter {van Oosterom} and Hendrik Ploeger and Jantien Stoter and Rod Thompson and Christiaan Lemmen},
- Booktitle = {Proceedings of the XXIII International FIG congress},
- Title = {Aspects of a 4D Cadastre: A First Exploration},
- Year = {2006}}
-
-@article{Goodchild92,
- Author = {Michael F. Goodchild},
- Journal = {Computers \& Geosciences},
- Number = {4},
- Pages = {401--408},
- Title = {Geographical Data Modeling},
- Volume = {18},
- Year = {1992}}
-
-@phdthesis{Ledoux06,
- Author = {Hugo Ledoux},
- Month = {November},
- School = {University of Glamorgan},
- Title = {Modelling Three-dimensional Fields in Geoscience with the Voronoi Diagram and its Dual},
- Year = {2006}}
-
-@phdthesis{Penninga08,
- Author = {F. Penninga},
- School = {Delft University of Technology},
- Title = {{3D} Topography A Simplicial Complex Solution-based Solution in a Spatial {DBMS}},
- Year = {2008}}
-
-@phdthesis{Thompson07,
- Author = {R.J. Thompson},
- School = {Delft University of Technology},
- Title = {Towards a rigorous logic for spatial data representation},
- Year = {2007}}
-
-@inproceedings{Pigot91,
- Author = {Simon Pigot},
- Booktitle = {Proceedings of Auto-Carto 10},
- Pages = {368--392},
- Title = {Topological Models for {3D} Spatial Information Systems},
- Year = {1991}}
-
-@article{Arens05,
- Author = {C\v{a}lin Arens and Jantien Stoter and Peter {van Oosterom}},
- Journal = {Computers \& Geosciences},
- Pages = {165--177},
- Title = {Modelling {3D} spatial objects in a geo-{DBMS} using a {3D} primitive},
- Volume = {31},
- Year = {2005}}
-
-@manual{Shapefile,
- Author = {{ESRI}},
- Month = {July},
- Organization = {{ESRI}},
- Title = {Shapefile Technical Description},
- Year = {1998}}
-
-@manual{SimpleFeatures2,
- Author = {{OGC}},
- Month = {August},
- Organization = {{Open Geospatial Consortium}},
- Title = {{OpenGIS} Implementation Specification for Geographic Information - Simple Feature Access - Part 2: SQL option. Version 1.2.1},
- Year = {2010}}
-
-@manual{CityGML2,
- Author = {Gerhard Gr\"oger and Thomas H. Kolbe and Claus Nagel and Karl-Heiz H\"afele},
- Month = {April},
- Organization = {Open Geospatial Consortium},
- Title = {{OGC} {C}ity {G}eography {M}arkup {L}anguage {(CityGML)} Encoding Standard. Version 2.0.0},
- Year = {2012}}
-
-@manual{KML,
- Author = {{OGC}},
- Edition = {2.2.0},
- Month = {April},
- Organization = {{Open Geospatial Consortium}},
- Title = {OGC KML},
- Year = {2008}}
-
-@manual{SimpleFeatures1,
- Author = {{OGC}},
- Month = {May},
- Organization = {{Open Geospatial Consortium}},
- Title = {{OpenGIS} Implementation Specification for Geographic Information - Simple Feature Access - Part 1: Common Architecture. Version 1.2.1},
- Year = {2011}}
-
-@article{Jacques70,
- Author = {A. Jacques},
- Journal = {Combinatorial Theory and Applications},
- Pages = {657-673},
- Title = {Constellations et Graphes Topologiques},
- Volume = {2},
- Year = {1970}}
-
-@inproceedings{Kriegel91,
- Author = {Hans-Peter Kriegel and Holger Horn and Michael Schiwietz},
- Booktitle = {Proceedings of the 2nd International Symposium on Advances in Spatial Databases},
- Title = {The Performance of Object Decomposition Techniques for Spatial Query Processing},
- Year = {1991}}
-
-@inproceedings{Bulbul09,
- Author = {Rizwan Bulbul and Farid Karimipour and Andrew U. Frank},
- Booktitle = {Proceedings of Geocomputation 2009},
- Title = {A Simplex based Dimension Independent Approach for Convex Decomposition of Nonconvex polytopes},
- Year = {2009}}
-
-@book{Grunbaum67,
- Author = {Branko Gr\"unbaum},
- Publisher = {John Wiley},
- Title = {Convex polytopes},
- Year = {1967}}
-
-@inproceedings{Hazelton90,
- Author = {N.W.J. Hazelton and F.J. Leahy and I.P. Williamson},
- Booktitle = {Proceedings of GIS/LIS'90},
- Title = {On the design of temporally-referenced, 3-{D} geographical information systems: development of four-dimensional {GIS}},
- Year = {1990}}
-
-@phdthesis{Chazelle80,
- Author = {Bernard Chazelle},
- School = {Yale University},
- Title = {Computational Geometry and Complexity},
- Year = {1980}}
-
-@article{Chazelle84,
- Author = {Bernard Chazelle},
- Journal = {SIAM Journal on Computing},
- Number = {3},
- Pages = {488--507},
- Title = {Convex partitions of polyhedra: a lower bound and worst-case optimal algorithm},
- Volume = {13},
- Year = {1984}}
-
-@techreport{Bajaj90,
- Author = {Chanderjit Bajaj and Tamal K. Dey},
- Institution = {Purdue University},
- Title = {Convex Decomposition of Polyhedra and Robustness},
- Year = {1990}}
-
-@incollection{Chazelle85,
- Author = {Bernard Chazelle and David P. Dobkin},
- Booktitle = {Computational Geometry},
- Pages = {63--133},
- Publisher = {Elsevier},
- Title = {Optimal Convex Decompositions},
- Year = {1985}}
-
-@article{Voelcker77,
- Author = {H.B. Voelcker and A.A.G. Requicha},
- Journal = {Computer},
- Number = {12},
- Pages = {48--57},
- Title = {Geometric Modeling of Mechanical Parts and Processes},
- Volume = {10},
- Year = {1977}}
-
-@manual{ISO19107:2003,
- Author = {{ISO}},
- Month = {March},
- Organization = {{International Organization for Standardization}},
- Title = {Geographic Information --- Spatial Schema},
- Year = {2003}}
-
-@phdthesis{Albrecht95,
- Author = {Jochen Albrecht},
- School = {University of Vechta},
- Title = {Universal Analytical GIS Operations. A Task-Oriented Systematization of Data Structure-Independent GIS Functionality Leading Towards a Geographic Modeling Language},
- Year = {1995}}
-
-@article{Dollner00,
- Author = {J\"urgen D\"ollner and Klaus Hinrichs},
- Journal = {Computers \& Geosciences},
- Month = {February},
- Number = {1},
- Pages = {67--76},
- Title = {An object-oriented approach for integrating {3D} visualization systems and {GIS}},
- Volume = {26},
- Year = {2000}}
-
-@article{Schon09,
- Author = {Bianca Sch\"on and Debra Laefer and Sean W. Morrish and Michela Bertolotto},
- Journal = {Recent Patents on Computer Science},
- Pages = {21--31},
- Title = {Three-Dimensional Spatial Information Systems: State of the Art Review},
- Volume = {2},
- Year = {2009}}
-
-@article{Karimipour10,
- Author = {Farid Karimipour and Mahmoud R. Delavar and Andrew U. Frank},
- Journal = {Computers \& Geosciences},
- Month = {September},
- Number = {9},
- Pages = {1123--1134},
- Title = {A simplex-based approach to implement dimension independent spatial analyses},
- Volume = {36},
- Year = {2010}}
-
-@article{Ellul06,
- Author = {Claire Ellul and Muki Haklay},
- Journal = {Transactions in GIS},
- Month = {March},
- Number = {2},
- Pages = {157--175},
- Title = {Requirements for Topology in {3D} {GIS}},
- Volume = {10},
- Year = {2006}}
-
-@article{vanOosterom09,
- Author = {Peter {van Oosterom}},
- Journal = {Computers, Environment and Urban Systems},
- Number = {5},
- Pages = {303--310},
- Title = {Research and development in geo-information generalisation and multiple representation},
- Volume = {33},
- Year = {2009}}
-
-@inproceedings{Stoter03,
- Author = {Jantien Stoter and Siyka Zlatanova},
- Booktitle = {Proceedings of the ISPRS Joint Workshop on Spatial, Temporal and Multi-Dimensional Data Modelling and Analysis},
- Month = {October},
- Title = {{3D} {GIS}, where are we standing?},
- Year = {2003}}
-
-@incollection{Tet-Khuan07,
- Author = {Chen Tet-Khuan and Alias Abdul-Rahman and Sisi Zlatanova},
- Booktitle = {Computational Science and Its Applicaction --- ICCSA 2007},
- Pages = {151--163},
- Publisher = {Springer Berlin / Heidelberg},
- Series = {Lecture Notes in Computer Science},
- Title = {{3D} Spatial Operations in Geo {DBMS} Environment for {3D} {GIS}},
- Volume = {4705},
- Year = {2007}}
-
-@article{Bentley75,
- Author = {Jon Louis Bentley},
- Journal = {Communications of the ACM},
- Number = {9},
- Pages = {509--517},
- Title = {Multidimensional binary search trees used for associative searching},
- Volume = {18},
- Year = {1975}}
-
-@article{Finkel74,
- Author = {Raphael Finkel and J.L. Bentley},
- Journal = {Acta Informatica},
- Number = {1},
- Pages = {1--9},
- Title = {Quad Trees: A Data Structure for Retrieval on Composite Keys},
- Volume = {4},
- Year = {1974}}
-
-@article{Hales92,
- Author = {Thomas C. Hales},
- Journal = {Journal of Computational and Applied Mathematics},
- Month = {December},
- Number = {1},
- Pages = {41--76},
- Title = {The sphere packing problem},
- Volume = {44},
- Year = {1992}}
-
-@phdthesis{vanOosterom90,
- Author = {Peter {van Oosterom}},
- School = {Leiden University},
- Title = {Reactive Data Structures for Geographic Information Systems},
- Year = {1990}}
-
-@article{Stoter11,
- Author = {Jantien Stoter and Thomas Visser and Peter {van Oosterom} and Wilko Quak and Nico Bakker},
- Journal = {International Journal of Geographical Information Science},
- Number = {5},
- Pages = {739--763},
- Title = {A semantic-rich multi-scale information model for topography},
- Volume = {25},
- Year = {2011}}
-
-@article{Frank94,
- Author = {Andrew U. Frank and Sabine Timpf},
- Journal = {Computers \& Graphics},
- Number = {6},
- Pages = {823--829},
- Title = {Multiple representations for cartographic objects in a multi-scale tree: An intelligent graphical zoom},
- Volume = {18},
- Year = {1994}}
-
-@article{Stoter09,
- Author = {Jantien Stoter and Dirk Burghardt and C\'ecile Duch\^ene and Blanca Baella and Nico Bakker and Connie Blok and Maria Pla and Nicolas Regnauld and Guillaume Touya and Stefan Schmid},
- Journal = {Computers, Environment and Urban Systems},
- Number = {5},
- Pages = {311--324},
- Title = {Methodology for evaluating automated map generalization in commercial software},
- Volume = {33},
- Year = {2009}}
-
-@article{Douglas73,
- Author = {David H. Douglas and Thomas K. Peucker},
- Journal = {Cartographica: The International Journal for Geographic Information and Geovisualization},
- Month = {December},
- Number = {2},
- Pages = {112--122},
- Title = {Algorithms for the reduction of the number of points required to represent a digitized line or its caricature},
- Volume = {10},
- Year = {1973}}
-
-@phdthesis{Cecconi03,
- Author = {Alessandro Cecconi},
- School = {University of Zurich},
- Title = {Integration of Cartographic Generalization and Multi-Scale Databases for Enhanced Web Mapping},
- Year = {2003}}
-
-@article{Haunert09,
- Author = {Jan-Henrik Haunert and Arta Dilo and Peter {van Oosterom}},
- Journal = {Computers \& Geosciences},
- Pages = {2191--2203},
- Title = {Constrained set-up of the {tGAP} structure for progressive vector data transfer},
- Volume = {35},
- Year = {2009}}
-
-@article{Shaw02,
- Author = {Gary Shaw and Dimitris Manolakis},
- Journal = {IEEE Signal Processing Magazine},
- Month = {January},
- Number = {1},
- Pages = {12--16},
- Title = {Signal processing for hyperspectral image exploitation},
- Volume = {19},
- Year = {2002}}
-
-@article{Schultz01,
- Author = {Roger A. Schultz and Thomas Nielsen and Jeff R. Zavaleta and Raynal Ruch and Robert Wyatt and Harold R. Garner},
- Journal = {Cytometry},
- Month = {April},
- Number = {4},
- Pages = {239--247},
- Title = {Hyperspectral imaging: A novel approach for microscopic analysis},
- Volume = {43},
- Year = {2001}}
-
-@inproceedings{Corbett75,
- Author = {James P. Corbett},
- Booktitle = {Proceedings of Auto-Carto II},
- Pages = {61--65},
- Title = {Topological Principles in Cartography},
- Year = {1975}}
-
-@article{Frank92,
- Author = {Frank, Andrew U.},
- Journal = {Computers \& Geosciences},
- Number = {4},
- Pages = {409--417},
- Title = {Spatial concepts, geometric data models, and geometric data structures},
- Volume = {18},
- Year = {1992}}
-
-@article{Peuquet94,
- Author = {Donna J. Peuquet},
- Journal = {Annals of the Association of American Geographers},
- Number = {3},
- Pages = {441--461},
- Title = {It's About Time: A Conceptual Framework for the Representation of Temporal Dynamics in Geographic Information Systems},
- Volume = {84},
- Year = {1994}}
-
-@book{Akhundov86,
- Author = {Murad Davudovich Akhundov},
- Month = nov,
- Publisher = {MIT Press},
- Title = {Conceptions of space and time: sources, evolution, directions},
- Year = {1986}}
-
-@book{Peuquet02,
- Author = {Donna J. Peuquet},
- Publisher = {Guilford Press},
- Title = {Representations of Space and Time},
- Year = {2002}}
-
-@incollection{Abdul-Rahman08,
- Author = {Alias Abdul-Rahman and Morakot Pilouk},
- Booktitle = {Spatial data modelling for 3D GIS},
- Chapter = {2},
- Pages = {15--23},
- Publisher = {Springer Berlin / Heidelberg},
- Title = {An Overview of {3D} {GIS} Development},
- Year = {2008}}
-
-@article{Zhang11,
- Author = {Yeting Zhang and Qing Zhu and Gang Liu and Wenting Zheng and Zhonghua Li and Zhiqiang Du},
- Journal = {Geo-Spatial Information Science},
- Number = {2},
- Pages = {150--156},
- Title = {{GeoScope}: Full {3D} geospatial information system case study},
- Volume = {14},
- Year = {2011}}
-
-@book{Lee99,
- Author = {Kunwoo Lee},
- Publisher = {Prentice Hall},
- Title = {Principles of {CAD}/{CAM}/{CAE}},
- Year = {1999}}
-
-@book{Kalay04,
- Author = {Yehuda E. Kalay},
- Publisher = {MIT Press},
- Title = {Architecture's New Media: Principles, Theories and Methods of Computer-Aided Design},
- Year = {2004}}
-
-@article{Gold06,
- Author = {Christopher M. Gold},
- Journal = {Transactions in GIS},
- Number = {4},
- Pages = {505--519},
- Title = {What is {GIS} and What is Not?},
- Volume = {10},
- Year = {2006}}
-
-@book{Jowett98,
- Author = {Plato},
- Editor = {Jowett, Benjamin},
- Publisher = {Project Gutemberg},
- Title = {Plato's Timaeus},
- Year = {1998}}
-
-@article{Chrisman88,
- Author = {Nicholas R. Chrisman},
- Journal = {The American Cartographer},
- Number = {3},
- Pages = {291--300},
- Title = {The Risks of Software Innovation: A Case Study of the {H}arvard Lab},
- Volume = {15},
- Year = {1988}}
-
-@article{Tomlinson88,
- Author = {R.F. Tomlinson},
- Journal = {The American Cartographer},
- Month = {July},
- Number = {3},
- Pages = {249--261},
- Title = {The Impact of the Transition From Analogue to Digital Cartographic Representation},
- Volume = {15},
- Year = {1988}}
-
-@article{Dupin26,
- Author = {Charles Dupin},
- Journal = {Jobard},
- Title = {Carte figurative de l'instruction populaire de la {F}rance},
- Year = {1826}}
-
-@article{Braid75,
- Author = {I.C. Braid},
- Journal = {Communications of the ACM},
- Number = {4},
- Pages = {209--216},
- Title = {The Synthesis of Solids Bounded by Many Faces},
- Volume = {18},
- Year = {1975}}
-
-@article{Harrell92,
- Author = {James E. Harrell and V. Max Brown},
- Journal = {Journal of the American Research Center in Egypt},
- Pages = {81--105},
- Title = {The oldest surviving topographical map from ancient Egypt (Turin Papyri 1879, 1899 and 1969)},
- Volume = {29},
- Year = {1992}}
-
-@article{Finkel95,
- Author = {I.L. Finkel},
- Journal = {British Museum Magazine: the-5},
- Pages = {26--27},
- Title = {A join to the Map of the World: a notable discovery},
- Volume = {Winter},
- Year = {1995}}
-
-@incollection{Coppock91,
- Author = {J.T. Coppock and D.W. Rhind},
- Booktitle = {Geographical Information Systems: Principles and Applications},
- Chapter = {2},
- Editor = {Maguire, D.J. and Goodchild, M.F. and Rhind, D.W.},
- Pages = {21--43},
- Publisher = {Longman Scientific \& Technical},
- Title = {The History of {GIS}},
- Volume = {1},
- Year = {1991}}
-
-@article{Li94,
- Author = {Zhilin Li},
- Journal = {The Cartographic Journal},
- Number = {1},
- Pages = {50--51},
- Title = {Reality in time-scale systems and cartographic representation},
- Volume = {31},
- Year = {1994}}
-
-@article{Muller78,
- Author = {D. E. Muller and F. P. Preparata},
- Journal = {Theoretical Computer Science},
- Number = {2},
- Pages = {217--236},
- Title = {Finding the intersection of two convex polyhedra},
- Volume = {7},
- Year = {1978}}
-
-@article{Rambau05,
- Author = {J\"org Rambau},
- Journal = {Combinatorial and Computational Geometry},
- Pages = {501--516},
- Title = {On a Generalization of Sch\"onhardt's Polyhedron},
- Volume = {52},
- Year = {2005}}
-
-@inproceedings{Isenburg00,
- Author = {Martin Isenburg and Jack Snoeyink},
- Booktitle = {Proceedings of SIGGRAPH 2000},
- Month = {July},
- Pages = {263--270},
- Title = {Face Fixer: Compressing Polygon Meshes with Properties},
- Year = {2000}}
-
-@inproceedings{Amenta03,
- Address = {San Diego, USA},
- Author = {Amenta, Nina and Choi, Sunghee and Rote, G\"unter},
- Booktitle = {Proceedings 19th Annual Symposium on Computational Geometry},
- Pages = {211--219},
- Publisher = {ACM Press},
- Title = {{I}ncremental constructions con {BRIO}},
- Year = {2003}}
-
-@article{Worboys90,
- Author = {Michael F. Worboys and Hilary M. Hearnshaw and David J. Maguire},
- Journal = {International Journal of Geographical Information Systems},
- Number = {4},
- Pages = {369--383},
- Title = {Object-Oriented Data Modelling for Spatial Databases},
- Volume = {4},
- Year = {1990}}
-
-@incollection{Claramunt99,
- Author = {Christophe Claramunt and Christine Parent and Stefano Spaccapietra and Marius Th\'eriault},
- Booktitle = {Geographical Information and Planning},
- Chapter = {10},
- Editor = {John Charles Harold Stillwell and Stan Geertman and Stan Openshaw},
- Pages = {181--202},
- Publisher = {Springer Berlin / Heidelberg},
- Series = {Advances in Spatial Science},
- Title = {Database Modelling for Environmental and Land Use Changes},
- Year = {1999}}
-
-@article{Worboys94a,
- Author = {Michael F. Worboys},
- Journal = {International Journal of Geographical Information Science},
- Number = {4},
- Pages = {385--399},
- Title = {Object-oriented approaches to geo-referenced information},
- Volume = {8},
- Year = {1994}}
-
-@article{Chen76,
- Author = {Pin-Shan Chen},
- Journal = {ACM Transactions on Database Systems},
- Number = {1},
- Pages = {9--36},
- Title = {The Entity-Relationship Model---Toward a Unified View of Data},
- Volume = {1},
- Year = {1976}}
-
-@inproceedings{Story95,
- Author = {P. A. Story and Michael F. Worboys},
- Booktitle = {Spatial Information Theory: A Theoretical Basis for GIS},
- Editor = {Andrew U. Frank and Werner Kuhn},
- Pages = {413--430},
- Publisher = {Springer Berlin / Heidelberg},
- Series = {Lecture Notes in Computer Science},
- Title = {A design support environment for spatio-temporal database applications},
- Volume = {988},
- Year = {1995}}
-
-@article{Tryfona99,
- Author = {Nectaria Tryfona and Christian S. Jensen},
- Journal = {GeoInformatica},
- Number = {3},
- Pages = {245--268},
- Title = {Conceptual Data Modeling for Spatiotemporal Applications},
- Volume = {3},
- Year = {1999}}
-
-@article{Renolen96,
- Author = {A. Renolen},
- Journal = {GIS Frontiers in Business and Science},
- Title = {History graphs: conceptual modeling of spatio-temporal data},
- Volume = {2},
- Year = {1996}}
-
-@inproceedings{Claramunt95,
- Author = {Christophe Claramunt and Marius Th\'eriault},
- Booktitle = {Proceedings of the International Workshop on Temporal Databases},
- Editor = {James Clifford and Alexander Tuzhilin},
- Pages = {23--42},
- Title = {Managing Time in {GIS}: An Event-Oriented Approach},
- Year = {1995}}
-
-@inproceedings{Yuan94,
- Author = {May Yuan},
- Booktitle = {Proceedings of GIS/LIS'94},
- Pages = {860--869},
- Title = {Wildfire Conceptual Modeling for Building {GIS} Space-Time Models},
- Year = {1994}}
-
-@article{Peuquet95,
- Author = {Donna J. Peuquet and Niu Duan},
- Journal = {International Journal of Geographical Information Science},
- Number = {1},
- Pages = {7--24},
- Title = {An event-based spatiotemporal data model {(ESTDM)} for temporal analysis of geographical data},
- Volume = {9},
- Year = {1995}}
-
-@article{Hunter90,
- Author = {Gary J. Hunter and Ian P. Williamson},
- Journal = {International Journal of Geographical Information Systems},
- Number = {2},
- Pages = {169--179},
- Title = {The development of a historical cadastral database},
- Volume = {4},
- Year = {1990}}
-
-@article{Galton04,
- Author = {Galton, Antony},
- Journal = {Spatial Cognition and Computation},
- Number = {1},
- Pages = {39--68},
- Title = {Fields and objects in space, time, and space-time},
- Volume = {4},
- Year = {2004}}
-
-@inproceedings{Snodgrass85,
- Author = {Richard T. Snodgrass and Ilso Ahn},
- Booktitle = {Proceedings of the 1985 ACM SIGMOD International Conference on Management of Data},
- Title = {A taxonomy of time databases},
- Year = {1985}}
-
-@article{Chrisman83,
- Author = {Nicholas R. Chrisman},
- Journal = {Cartographica},
- Title = {The Role of Quality Information in the Long-term Functioning of a Geographic Information System},
- Year = {1983}}
-
-@article{Peucker75,
- Author = {Thomas K. Peucker and Nicholas R. Chrisman},
- Journal = {The American Cartographer},
- Number = {1},
- Pages = {55--69},
- Title = {Cartographic Data Strutures},
- Volume = {2},
- Year = {1975}}
-
-@article{Bolour83,
- Author = {A. Bolour and L. J. Dekeyser},
- Journal = {Information Systems},
- Number = {1},
- Pages = {41--49},
- Title = {Abstractions in temporal information},
- Volume = {8},
- Year = {1983}}
-
-@article{Al-Taha94,
- Author = {Khaled K. Al-Taha and Richard T. Snodgrass and Michael D. Soo},
- Journal = {International Journal of Geographical Information Systems},
- Number = {1},
- Pages = {95--103},
- Title = {Bibliography on spatiotemporal databases},
- Volume = {8},
- Year = {1994}}
-
-@incollection{Basoglu78,
- Author = {Umit Basoglu and Joel Morrison},
- Booktitle = {Harvard Papers on Geographic Information Systems},
- Editor = {Geoffrey Dutton},
- Publisher = {Addison-Wesley},
- Title = {The efficient hierarchical data Structure for the {US} Historical Boundary File},
- Volume = {4},
- Year = {1978}}
-
-@book{Muehrcke78,
- Author = {Phillip C. Muehrcke},
- Publisher = {JP Publications},
- Title = {Map Use},
- Year = {1978}}
-
-@article{Langran88,
- Author = {Gail Langran and Nicholas R. Chrisman},
- Journal = {Cartographica},
- Number = {3},
- Pages = {1--14},
- Title = {A Framework for Temporal Geographic Informations},
- Volume = {25},
- Year = {1988}}
-
-@article{Groger11,
- Author = {Gerhard Gr\"oger and Lutz Pl\"umer},
- Journal = {Geoinformatica},
- Title = {Provably correct and complete transaction rules for updating {3D} city models},
- Year = {2011}}
-
-@article{Egenhofer91,
- Author = {Max J. Egenhofer and R. D. Franzosa},
- Journal = {International Journal of Geographical Information Systems},
- Number = {2},
- Pages = {161--174},
- Title = {Point-set topological spatial relations},
- Volume = {5},
- Year = {1991}}
-
-@techreport{Egenhofer94,
- Author = {Max J. Egenhofer and David M. Mark and John Herring},
- Institution = {National Center for Geographic Information and Analysis},
- Number = {94-1},
- Title = {The 9-Intersection: Formalism and its Use for Natural-Language Spatial Predicates},
- Year = {1994}}
-
-@inproceedings{Cheng99,
- Author = {Siu-Wing Cheng and Tamal K. Dey and Herbert Edelsbrunner and Michael A. Facello and Shang-Fua Teng},
- Booktitle = {Proceedings of the 15th Annual Symposium on Computational Geometry},
- Title = {Sliver Exudation},
- Year = {1999}}
-
-@inproceedings{Rossignac89,
- Author = {J. Rossignac and M. O'Connor},
- Booktitle = {Proceedings of the IFIP Workshop on CAD/CAM},
- Editor = {M. Wosny and J. Turner and K. Preiss},
- Pages = {145--180},
- Title = {{SGC}: A Dimension-Independent Model for Pointsets with Internal Structures and Incomplete Boundaries},
- Year = {1989}}
-
-@article{Sohanpanah89,
- Author = {Cathy Sohanpanah},
- Journal = {Computers \& Graphics},
- Number = {1},
- Pages = {17--23},
- Title = {Extension of a Boundary Representation Technique for the Description of $n$ Dimensional Polytopes},
- Volume = {13},
- Year = {1989}}
-
-@incollection{Weiler88,
- Author = {Kevin Weiler},
- Booktitle = {Geometric modeling for CAD applications: selected and expanded papers from the IFIP WG 5.2 working conference},
- Editor = {M.J. Wozny and H.W. McLaughlin},
- Month = {May},
- Pages = {3--36},
- Publisher = {Elsevier},
- Title = {The radial edge data structure: a topological representation for non-manifold geometric boundary modeling},
- Year = {1988}}
-
-@article{Johnson84,
- Author = {W. Johnson and J. Lindenstrauss},
- Journal = {Contemporary Mathematics},
- Pages = {189--206},
- Title = {Extensions of Lipschitz mappings into a Hilbert space},
- Volume = {26},
- Year = {1984}}
-
-@inproceedings{Si06,
- Author = {Hang Si},
- Booktitle = {Proceedings of the 15th International Meshing Roundtable},
- Pages = {509--528},
- Title = {On Refinement of Constrained {D}elaunay Tetrahedralizations},
- Year = {2006}}
-
-@inproceedings{Si05,
- Author = {Hang Si and Klaus G\"artner},
- Booktitle = {Proceedings of the 14th International Meshing Roundtable},
- Month = {September},
- Title = {Meshing Piecewise Linear Complexes by Constrained {D}elaunay Tetrahedralizations},
- Year = {2005}}
-
-@incollection{Lee91,
- Author = {Carl W. Lee},
- Booktitle = {Applied Geometry and Discrete Mathematics: The Victor Klee Festschrift},
- Editor = {P. Gritzmann and B. Sturmfels},
- Pages = {443--456},
- Publisher = {American Mathematical Society},
- Series = {DIMACS Series in Discrete Mathematics},
- Title = {Regular Triangulations of Convex Polytopes},
- Volume = {4},
- Year = {1991}}
-
-@inproceedings{Edelsbrunner92,
- Author = {Herbert Edelsbrunner and N. R. Shah},
- Booktitle = {Proceedings of the 8th Annual Symposium on Computational Geometry},
- Pages = {43--52},
- Publisher = {ACM},
- Title = {Incremental topological flipping works for regular triangulations},
- Year = {1992}}
-
-@incollection{Clarkson92,
- Author = {Kenneth L. Clarkson and Kurt Mehlhorn and Raimund Seidel},
- Booktitle = {Proceedings of the 9th Annual Symposium on Theoretical Aspects of Computer Science},
- Editor = {Finkel, Alain and Jantzen, Matthias},
- Pages = {461--474},
- Publisher = {Springer Berlin Heidelberg},
- Series = {Lecture Notes in Computer Science},
- Title = {Four results on randomized incremental constructions},
- Volume = {577},
- Year = {1992}}
-
-@incollection{Agarwal05,
- Author = {Pankaj K. Agarwal and Lars Arge and Ke Yi},
- Booktitle = {Proceedings of the 13th Annual European Symposium},
- Editor = {Brodal, Gerth and Leonardi, Stefano},
- Pages = {355--366},
- Publisher = {Springer Berlin / Heidelberg},
- Series = {Lecture Notes in Computer Science},
- Title = {{I/O}-Efficient Construction of Constrained {D}elaunay Triangulations},
- Volume = {3669},
- Year = {2005}}
-
-@article{Murphy01,
- Author = {Michael Murphy and David M. Mount and Carl W. Gable},
- Journal = {International Journal of Computational Geometry and Applications},
- Number = {6},
- Pages = {669--682},
- Title = {A Point-Placement Strategy for Conforming Delaunay Tetrahedralization},
- Volume = {11},
- Year = {2001}}
-
-@article{Cohen-Steiner04,
- Author = {David Cohen-Steiner and \'Eric Colin {de Verdi\`ere} and Mariette Yvinec},
- Journal = {Computational Geometry: Theory \& Applications},
- Pages = {217--233},
- Title = {Conforming {D}elaunay Triangulations in 3D},
- Volume = {28},
- Year = {2004}}
-
-@inproceedings{Shewchuk98a,
- Author = {Jonathan Richard Shewchuk},
- Booktitle = {Proceedings of the 14th Annual Symposium on Computational Geometry},
- Month = {June},
- Pages = {86--95},
- Publisher = {ACM},
- Title = {Tetrahedral mesh generation by Delaunay refinement},
- Year = {1998}}
-
-@inproceedings{Saalfeld91,
- Author = {A. Saalfeld},
- Booktitle = {Proceedings of the 3rd Canadian Conference on Computational Geometry},
- Pages = {33--36},
- Title = {Delaunay edge refinements},
- Year = {1991}}
-
-@article{Dirichlet50,
- Author = {Gustav Lejeune Dirichlet},
- Journal = {Journal f\"ur die Reine und Angewandte Mathematik},
- Pages = {209--227},
- Title = {\"Uber die {R}eduktion der positiven quadratischen {F}ormen mit drei unbestimmten ganzen {Z}ahlen},
- Volume = {40},
- Year = {1850}}
-
-@article{Voronoi08,
- Author = {Georges Voronoi},
- Journal = {Journal f\"ur die Reine und Angewandte Mathematik},
- Pages = {97--178},
- Title = {Nouvelles applications des param\`etres continus \`a la th\'eorie des formes quadratiques. {P}remier M\'emoire. {S}ur quelques propri\'et\'es des formes quadratiques positives parfaites},
- Volume = {133},
- Year = {1908}}
-
-@article{Delaunay34,
- Author = {Boris N. Delaunay},
- Journal = {Otdelenie Matematicheskikh i Estestvennykh Nauk},
- Pages = {793--800},
- Title = {Sur la sph\`ere vide},
- Volume = {6},
- Year = {1934}}
-
-@article{Hansen92,
- Author = {Andrew J. Hansen and Peter L. Levin},
- Journal = {Advances in Engineering Software},
- Pages = {129--135},
- Title = {On Conforming Delaunay Mesh Generation},
- Volume = {14},
- Year = {1992}}
-
-@article{Edelsbrunner93,
- Author = {Herbert Edelsbrunner and Tiow Seng Tan},
- Journal = {Discrete \& Computational Geometry},
- Number = {2},
- Pages = {197--213},
- Title = {An Upper Bound for Conforming {D}elaunay Triangulations},
- Volume = {10},
- Year = {1993}}
-
-@article{Brown79,
- Author = {K. Q. Brown},
- Journal = {Information Processing Letters},
- Number = {5},
- Pages = {223--228},
- Title = {Voronoi diagrams from convex hulls},
- Volume = {9},
- Year = {1979}}
-
-@article{Guibas92,
- Author = {Leonidas J. Guibas and Donald E. Knuth and Micha Sharir},
- Journal = {Algorithmica},
- Pages = {381--413},
- Title = {Randomized Incremental Construction of Delaunay and Voronoi Diagrams},
- Volume = {7},
- Year = {1992}}
-
-@article{Green78,
- Author = {P. J. Green and R. Sibson},
- Journal = {The Computer Journal},
- Number = {2},
- Pages = {168--173},
- Title = {Computing {D}irichlet Tessellations in the Plane},
- Volume = {21},
- Year = {1978}}
-
-@inproceedings{Seidel86,
- Author = {Raimund Seidel},
- Booktitle = {Proceedings of the 18th Annual Symposium on the Theory of Computing},
- Pages = {404--413},
- Title = {Constructing Higher-Dimensional Convex Hulls at Logarithmic Cost per Face},
- Year = {1986}}
-
-@article{Dwyer91,
- Author = {Rex A. Dwyer},
- Journal = {Discrete \& Computational Geometry},
- Pages = {343--367},
- Title = {Higher-Dimensional {V}oronoi Diagrams in Linear Expected Time},
- Volume = {6},
- Year = {1991}}
-
-@article{Dwyer87,
- Author = {Rex A. Dwyer},
- Journal = {Algorithmica},
- Number = {1--4},
- Pages = {137--151},
- Title = {A Faster Divide-and-Conquer Algorithm for Constructing {D}elaunay Triangulations},
- Volume = {2},
- Year = {1987}}
-
-@article{Tanemura83,
- Author = {Masaharu Tanemura and Tohru Ogawa and Naofumi Ogita},
- Journal = {Journal of Computational Physics},
- Number = {2},
- Pages = {191--207},
- Title = {A new algorithm for three-dimensional Voronoi tessellation},
- Volume = {51},
- Year = {1983}}
-
-@inproceedings{Devillers98,
- Author = {Olivier Devillers},
- Booktitle = {Proceedings of the 14th Annual Symposium on Computational Geometry},
- Pages = {106--115},
- Title = {Improved Incremental Randomized {D}elaunay Triangulation},
- Year = {1998}}
-
-@article{Lee80,
- Author = {D. T. Lee and B. J. Schachter},
- Journal = {International Journal of Computer and Information Sciences},
- Number = {3},
- Pages = {219--242},
- Title = {Two Algorithms for Constructing a Delaunay Triangulation},
- Volume = {9},
- Year = {1980}}
-
-@inproceedings{Mucke96,
- Address = {New York, NY, USA},
- Author = {Ernst P. M\"ucke and Isaac Saias and Binhai Zhu},
- Booktitle = {Proceedings of the 12th Annual Symposium on Computational Geometry},
- Pages = {274--283},
- Publisher = {ACM},
- Title = {Fast Randomized Point Location Without Preprocessing in Two- and Three-dimensional Delaunay Triangulations},
- Year = {1996}}
-
-@article{Boissonnat02,
- Author = {Jean-Daniel Boissonnat and Olivier Devillers and Sylvain Pion and Monique Teillaud and Mariette Yvinec},
- Journal = {Computational Geometry: Theory \& Applications},
- Pages = {5--19},
- Title = {Triangulations in {CGAL}},
- Volume = {22},
- Year = {2002}}
-
-@article{Barber96,
- Author = {C. Bradford Barber and David P. Dobkin and Hannu Huhdanpaa},
- Journal = {ACM Transactions on Mathematical Software},
- Month = {December},
- Number = {4},
- Pages = {469--483},
- Title = {The {Q}uickhull Algorithm for Convex Hulls},
- Volume = {22},
- Year = {1996}}
-
-@inproceedings{Su95,
- Author = {Peter Su and Robert L. Scott Drysdale},
- Booktitle = {Proceedings of the 11th Annual Symposium on Computational Geometry},
- Month = {June},
- Pages = {61--70},
- Publisher = {ACM},
- Title = {A Comparison of Sequential Delaunay Triangulation Algorithms},
- Year = {1995}}
-
-@article{Ruppert95,
- Author = {Jim Ruppert},
- Journal = {Journal of Algorithms},
- Month = {May},
- Number = {3},
- Pages = {548--585},
- Title = {A Delaunay Refinement Algorithm for Quality 2-Dimensional Mesh Generation},
- Volume = {18},
- Year = {1995}}
-
-@article{Chew89,
- Author = {L. Paul Chew},
- Journal = {Algorithmica},
- Number = {1},
- Pages = {97--108},
- Title = {Constrained {D}elaunay Triangulations},
- Volume = {4},
- Year = {1989}}
-
-@book{Rana06,
- Editor = {Sanjay Rana},
- Publisher = {John Wiley \& Sons},
- Title = {Topological Data Structures for Surfaces: An Introduction to Geographical Information Science},
- Year = {2006}}
-
-@article{Yamaguchi95,
- Author = {Yamaguchi, Yasushi and Kimura, Fumihiko},
- Journal = {IEEE Computer Graphics and Applications},
- Number = {1},
- Pages = {42--50},
- Title = {Nonmanifold Topology Based on Coupling Entities},
- Volume = {15},
- Year = {1995}}
-
-@inproceedings{Varma90,
- Author = {Varma, Herman and Boudreau, H. and Prime, W.},
- Booktitle = {Proceedings of the IHO Review},
- Pages = {1--10},
- Title = {A data structure for spatio-temporal databases},
- Year = {1990}}
-
-@book{Raper00,
- Author = {Raper, Jonathan},
- Publisher = {Taylor \& Francis},
- Title = {Multidimensional geographic information science},
- Year = {2000}}
-
-@article{Oconaill92,
- Author = {O'Conaill, M. A. and Bell, S. B. M. and Mason, N. C.},
- Journal = {ITC Journal},
- Pages = {47--54},
- Title = {Developing a prototype {4D} {GIS} on a transputer array},
- Volume = {1},
- Year = {1992}}
-
-@inproceedings{Molenaar90,
- Author = {Molenaar, Martien},
- Booktitle = {Proceedings of the 4th International Symposium on Spatial Data Handling},
- Pages = {830--843},
- Title = {A Formal Data Structure for three dimensional vector maps},
- Year = {1990}}
-
-@article{Schonhardt28,
- Author = {E. Sch\"onhardt},
- Journal = {Mathematische Annalen},
- Pages = {309--312},
- Title = {{\"U}ber die {Z}erlegung von {D}reieckspolyedern in {T}etraeder},
- Volume = {1},
- Year = {1928}}
-
-@article{Lienhardt94,
- Author = {Pascal Lienhardt},
- Journal = {International Journal of Computational Geometry and Applications},
- Number = {3},
- Pages = {275--324},
- Title = {$N$-dimensional Generalized Combinatorial Maps and Cellular Quasi-Manifolds},
- Volume = {4},
- Year = {1994}}
-
-@article{Edmonds60,
- Author = {J. Edmonds},
- Journal = {Notices of the American Mathematical Society},
- Title = {A Combinatorial Representation of Polyhedral Surfaces},
- Volume = {7},
- Year = {1960}}
-
-@article{Mason94,
- Author = {Mason, N. C. and O'Conaill, M. A. and Bell, S. B. M.},
- Journal = {International Journal of Geographical Information Systems},
- Number = {2},
- Pages = {191--215},
- Title = {{H}andling four-dimensional geo-referenced data in environmental {GIS}},
- Volume = {8},
- Year = {1994}}
-
-@inproceedings{Gold05,
- Address = {Pontypridd, Wales, UK},
- Author = {Gold, Christopher M.},
- Booktitle = {Proceedings of the 4th ISPRS Workshop on Dynamic and Multi-dimensional GIS},
- Pages = {36--41},
- Title = {Data structures for dynamic and multidimensional {GIS}},
- Year = {2005}}
-
-@inproceedings{deFloriani03,
- Address = {Aachen, Germany},
- Author = {De Floriani, Leila and Hui, Annie},
- Booktitle = {Proceedings of the 1st Eurographics Symposium on Geometry Processing},
- Pages = {72--82},
- Title = {A scalable data structure for three-dimensional non-manifold objects},
- Year = {2003}}
-
-@article{Blandford05,
- Author = {Blandford, Daniel K. and Blelloch, Guy E. and Cardoze, David E. and Kadow, Clemens},
- Journal = {International Journal of Computational Geometry and Applications},
- Number = {1},
- Pages = {3--24},
- Title = {Compact representations of simplicial meshes in two and three dimensions},
- Volume = {15},
- Year = {2005}}
-
-@book{Munkres75,
- Author = {James Raymond Munkres},
- Publisher = {Prentice-Hall, Inc.},
- Title = {Topology: A First Course},
- Year = {1975}}
-
-@inproceedings{Stoter08,
- Author = {J.E. Stoter and J.M. Morales and R.L.G. Lemmens and B.M. Meijers and P.J.M van Oosterom and C.W. Quak and H.T. Uitermark and L. van den Brink},
- Booktitle = {Proceedings of the 13th International Symposium on Spatial Data Handling},
- Pages = {233--254},
- Series = {Lecture Notes in Geoinformation and Cartography},
- Title = {A Data Model for Multi-scale Topographical Data},
- Year = {2008}}
-
-@inproceedings{Friis-Christensen03,
- Author = {Anders Friis-Christensen and Christian S. Jensen},
- Booktitle = {Proceedings of the 15th International Conference on Scientific and Statistical Database Management},
- Pages = {150--159},
- Publisher = {IEEE Computer Society},
- Title = {Object-Relational Management of Multiply Represented Geographic Entities},
- Year = {2003}}
-
-@article{Worboys94,
- Author = {Michael F. Worboys},
- Journal = {The Computer Journal},
- Number = {1},
- Pages = {26--34},
- Title = {A Unified Model for Spatial and Temporal Information},
- Volume = {37},
- Year = {1994}}
-
-@article{Pelekis04,
- Author = {Pelekis, Nikos and Theodoulidis, Babis and Kopanakis, Ioannis and Theodoridis, Yannis},
- Journal = {The Knowledge Engineering Review},
- Month = {September},
- Number = {3},
- Pages = {235--274},
- Title = {Literature review of spatio-temporal database models},
- Volume = {19},
- Year = {2004}}
-
-@article{Hornsby00,
- Author = {Kathleen Hornsby and Max J. Egenhofer},
- Journal = {International Journal of Geographical Information Science},
- Pages = {207--224},
- Title = {Identity-Based Change: A Foundation for Spatio-Temporal Knowledge Representation},
- Volume = {14},
- Year = {2000}}
-
-@article{Hamilton05,
- Author = {Andy Hamilton and Hongxia Wang and Ali Murat Tanyer and Yusuf Arayci and Xiaonan Zhang and Yonghui Song},
- Journal = {Journal of Information Technology in Construction},
- Month = {April},
- Pages = {55--67},
- Title = {Urban information model for city planning},
- Volume = {10},
- Year = {2005}}
-
-@article{Kettner99,
- Author = {Kettner, Lutz},
- Journal = {Computational Geometry --- Theory and Applications},
- Month = {May},
- Number = {1},
- Pages = {65--90},
- Title = {Using generic programming for designing a data structure for polyhedral surfaces},
- Volume = {13},
- Year = {1999}}
-
-@article{Shewchuk07,
- Author = {Jonathan Richard Shewchuk},
- Journal = {Discrete \& Computational Geometry},
- Month = {March},
- Number = {1003},
- Pages = {580--637},
- Title = {General-Dimensional Constrained {D}elaunay and Constrained Regular Triangulations, {I}: Combinatorial Properties},
- Volume = {39},
- Year = {2008}}
-
-@book{deBerg08,
- Author = {Mark {de Berg} and Marc {van Kreveld} and Mark Overmars and Otfried Schwarzkopf},
- Edition = {3rd},
- Publisher = {Springer-Verlag},
- Title = {Computational Geometry: Algorithms and Applications},
- Year = {2008}}
-
-@article{Fortune87,
- Author = {Steven Fortune},
- Journal = {Algorithmica},
- Number = {1--4},
- Pages = {153--174},
- Title = {A sweepline algorithm for {V}oronoi diagrams},
- Volume = {2},
- Year = {1987}}
-
-@article{Ruppert92,
- Author = {Jim Ruppert and Raimund Seidel},
- Journal = {Discrete \& Computational Geometry},
- Number = {1},
- Pages = {227--253},
- Title = {On the difficulty of triangulating three-dimensional Nonconvex Polyhedra},
- Volume = {7},
- Year = {1992}}
-
-@inproceedings{Shewchuk98,
- Author = {Jonathan Richard Shewchuk},
- Booktitle = {Proceedings of the 14th Annual Symposium on Computational Geometry},
- Pages = {76--85},
- Publisher = {ACM},
- Title = {A condition guaranteeing the existence of higher-dimensional constrained Delaunay triangulations},
- Year = {1998}}
-
-@book{Mantyla88,
- Address = {New York, USA},
- Author = {M\"{a}ntyl\"{a}, Martti},
- Publisher = {Computer Science Press},
- Title = {An introduction to solid modeling},
- Year = {1988}}
-
-@phdthesis{Levy99,
- Address = {France},
- Author = {L\'{e}vy, Bruno},
- School = {INPL, Universit\'e de Nancy},
- Title = {{T}opologie algorithmique : {C}ombinatoire et plongement (\emph{in French})},
- Year = {1999}}
-
-@incollection{Bieri88,
- Author = {H. Bieri and W. Nef},
- Booktitle = {Computational Geometry and its Applications},
- Editor = {Hartmut Noltemeier},
- Pages = {97--112},
- Publisher = {Springer Berlin Heidelberg},
- Series = {Lecture Notes in Computer Science},
- Title = {Elementary set operations with $d$-dimensional polyhedra},
- Volume = {333},
- Year = {1988}}
-
-@article{Ansaldi85,
- Author = {Silvia Ansaldi and Leila {de Floriani} and Bianca Falcidieno},
- Journal = {IEEE Computer Graphics and Applications},
- Number = {3},
- Pages = {131--139},
- Title = {Geometric modeling of solid objects by using a face adjacency graph representation},
- Volume = {19},
- Year = {1985}}
-
-@article{Mantyla82,
- Author = {Martti Mantyla and Reijo Sulonen},
- Journal = {IEEE Computer Graphics and Applications},
- Month = {September},
- Number = {7},
- Pages = {17--31},
- Title = {{GWB}: A Solid Modeler with Euler Operators},
- Volume = {2},
- Year = {1982}}
-
-@article{Spehner91,
- Author = {Jean-Claude Spehner},
- Journal = {Theoretical Computer Science},
- Number = {2},
- Pages = {205--232},
- Title = {Merging in maps and in pavings},
- Volume = {86},
- Year = {1991}}
-
-@article{Weiler85,
- Author = {K. Weiler},
- Journal = {IEEE Computer Graphics and Applications},
- Number = {1},
- Pages = {21--40},
- Title = {Edge-Based Data Structures for Solid Modeling in Curved-Surface Environments},
- Volume = {5},
- Year = {1985}}
-
-@inproceedings{Baumgart75,
- Author = {Bruce G. Baumgart},
- Booktitle = {AFIPS '75 Proceedings of the May 19-22, 1975, national computer conference and exposition},
- Pages = {589--596},
- Publisher = {ACM},
- Title = {A polyhedron representation for computer vision},
- Year = {1975}}
-
-@inproceedings{Levy01,
- Address = {San Diego, CA, USA},
- Author = {L\'{e}vy, Bruno and Caumon, Guillaume and Conreaux, St\'ephane and Cavin, Xavier},
- Booktitle = {Proceedings of the IEEE Visualization Conference 2001},
- Publisher = {IEEE Computer Society},
- Title = {{C}ircular {I}ncident {E}dge {L}ist: {A} data structure for rendering complex unstructured grids},
- Year = {2001}}
-
-@article{deBerg97,
- Author = {de Berg, Mark and van Kreveld, Marc and van Oostrum, Ren\'e and Overmars, Mark},
- Journal = {International Journal of Geographical Information Science},
- Number = {4},
- Pages = {359--374},
- Title = {Simple traversal of a subdivision without extra storage},
- Volume = {11},
- Year = {1997}}
-
-@incollection{Lienhardt88,
- Author = {Pascal Lienhardt},
- Booktitle = {Proceedings of the 5th Symposium on the Theoretical Aspects of Computer Science},
- Editor = {Cori, Robert and Wirsing, Martin},
- Month = {February},
- Pages = {301--311},
- Publisher = {Springer Berlin / Heidelberg},
- Series = {Lecture Notes in Computer Science},
- Title = {Extension of the Notion of Map and Subdivisions of a Three-Dimensional Space},
- Volume = {294},
- Year = {1988}}
-
-@article{Putnam86,
- Author = {L.K. Putnam and P.A. Subrahmanyam},
- Journal = {IEEE Computer Graphics and Applications},
- Month = {June},
- Number = {6},
- Pages = {43--51},
- Title = {Boolean Operations on n-Dimensional Objects},
- Volume = {6},
- Year = {1986}}
-
-@article{Lawson86,
- Author = {Charles L. Lawson},
- Journal = {Computer-Aided Design},
- Number = {4},
- Pages = {231--246},
- Title = {Properties of $n$-dimensional triangulations},
- Volume = {3},
- Year = {1986}}
-
-@article{Lienhardt91,
- Author = {Pascal Lienhardt},
- Journal = {Computer-Aided Design},
- Number = {1},
- Pages = {59--82},
- Title = {Topological models for boundary representation: a comparison with $n$-dimensional generalized maps},
- Volume = {23},
- Year = {1991}}
-
-@inproceedings{Lienhardt89,
- Author = {Pascal Lienhardt},
- Booktitle = {Proceedings of the 5th annual symposium on Computational geometry},
- Pages = {228--236},
- Publisher = {ACM},
- Title = {Subdivisions of n-dimensional spaces and n-dimensional generalized maps},
- Year = {1989}}
-
-@inproceedings{Dobkin87,
- Author = {David P. Dobkin and Michael J. Laszlo},
- Booktitle = {Proceedings of the 3rd Annual Symposium on Computational Geometry},
- Pages = {86--99},
- Publisher = {ACM},
- Title = {Primitives for the Manipulation of Three-Dimensional Subdivisions},
- Year = {1987}}
-
-@article{Gray97,
- Author = {Jim Gray and Surajit Chaudhuri and Adam Bosworth and Andrew Layman and Don Reichart and Murali Venkatrao and Frank Pellow and Hamid Pirahesh},
- Journal = {Data Mining and Knowledge Discovery},
- Number = {1},
- Pages = {29--53},
- Title = {Data Cube: A Relational Aggregation Operator Generalizing Group-By, Cross-Tab and Sub-Totals},
- Volume = {1},
- Year = {1997}}
-
-@inproceedings{Casali03,
- Author = {Alain Casali and Rosine Cicchetti and Lotfi Lakhal},
- Booktitle = {Proceedings of the 3rd {SIAM} International Conference on Data Mining},
- Pages = {304--308},
- Title = {Cube Lattices: a Framework for Multidimensional Data Mining},
- Year = {2003}}
-
-@article{Goldberg91,
- Author = {David Goldberg},
- Journal = {Computing Surveys},
- Month = {March},
- Number = {1},
- Pages = {5--48},
- Title = {What Every Computer Scientist Should Know About Floating-Point Arithmetic},
- Volume = {23},
- Year = {1991}}
-
-@article{Watson81,
- Author = {D.F. Watson},
- Journal = {The Computer Journal},
- Number = {2},
- Pages = {167--182},
- Title = {Computing the n-dimensional Delaunay tessellation with application to Voronoi polytopes},
- Volume = {24},
- Year = {1981}}
-
-@article{Shewchuk97,
- Author = {Jonathan Richard Shewchuk},
- Journal = {Discrete \& Computational Geometry},
- Pages = {305-363},
- Title = {Adaptive Precision Floating-Point Arithmetic and Fast Robust Geometric Predicates},
- Volume = {18},
- Year = 1997}
-
-@article{Guibas85,
- Author = {Leonidas J. Guibas and Jorge Stolfi},
- Journal = {ACM Transactions on Graphics},
- Number = {2},
- Pages = {74--123},
- Title = {Primitives for the manipulation of general subdivisions and the computation of {V}oronoi diagrams},
- Volume = {4},
- Year = {1985}}
-
-@inproceedings{Shewchuk00,
- Author = {Shewchuk, Jonathan Richard},
- Booktitle = {Proceedings of the 16th Annual Symposium on Computational Geometry},
- Pages = {350--359},
- Title = {Sweep Algorithms for Constructing Higher-Dimensional Constrained {D}elaunay Triangulations},
- Year = {2000}}
-
-@incollection{Shewchuk96,
- Author = {Shewchuk, Jonathan Richard},
- Booktitle = {Applied Computational Geometry: Towards Geometric Engineering},
- Editor = {Ming C. Lin and Dinesh Manocha},
- Month = {May},
- Pages = {203--222},
- Publisher = {Springer-Verlag},
- Series = {Lecture Notes in Computer Science},
- Title = {Triangle: Engineering a {2D} Quality Mesh Generator and {D}elaunay Triangulator},
- Volume = {1148},
- Year = {1996}}
-
-@article{vanOosterom05,
- Author = {Peter {van Oosterom}},
- Journal = {Cartography and Geographic Information Science},
- Number = {4},
- Pages = {331--346},
- Title = {Variable-scale Topological Data Structures Suitable for Progressive Data Transfer: The {GAP}-face Tree and {GAP}-edge Forest},
- Volume = {32},
- Year = {2005}}
-
-@inproceedings{vanOosterom11,
- Author = {Peter van Oosterom and Meijers, Martijn},
- Booktitle = {Proceedings of the 14th {ICA}/{ISPRS} Workshop on Generalisation and Multiple Representation, Paris},
- Title = {Towards a true vario-scale structure supporting smooth-zoom},
- Year = {2011}}
-
-@techreport{Levy99a,
- Author = {L\'{e}vy, Bruno and Mallet, Jean-Laurent},
- Institution = {ISA-GOCAD},
- Title = {Cellular modeling in arbitrary dimension using generalized maps},
- Year = {1999}}
-
-@incollection{Thomsen07,
- Author = {Andreas Thomsen and Martin Breunig and Edgar Butwilowski and Bj\"orn Broscheit},
- Booktitle = {Advances in 3D Geoinformation Systems},
- Chapter = {14},
- Editor = {P. van Oosterom and S. Zlatanova and F. Penninga and E. Fendel},
- Pages = {229--246},
- Publisher = {Springer Berlin / Heidelberg},
- Series = {Lecture Notes in Geoinformation and Cartography},
- Title = {Modelling and Managing Topology in {3D} Geoinformation Systems},
- Year = {2008}}
-
-@inproceedings{vanOosterom06,
- Author = {Peter {van Oosterom}},
- Booktitle = {Proceedings of the {INSPIRE} Multiple- Representation and Data Consistency Workshop, Ispra},
- Editor = {K. Toth and A. Illert and K. Murray},
- Month = {November},
- Title = {The {tGAP} structure: minimizing redundancy and maximizing consistency and offering access at any {LoD}},
- Year = {2006}}
-
-@article{Delafontaine07,
- Author = {M. Delafontaine and G. Nolf and N. {van de Weghe} and M. Antrop and Ph. de Maeyer},
- Journal = {International Journal of Geographical Information Science},
- Month = {September},
- Number = {6},
- Pages = {719--735},
- Title = {Assessment of sliver polygons in geographical vector data},
- Volume = {23},
- Year = {2007}}
-
-@incollection{Weibel97,
- Author = {Weibel, Robert},
- Booktitle = {Algorithmic Foundations of Geographic Information Systems},
- Editor = {van Kreveld, Marc and Nievergelt, J\"urg and Roos, Thomas and Widmayer, Peter},
- Pages = {99--152},
- Publisher = {Springer Berlin Heidelberg},
- Series = {Lecture Notes in Computer Science},
- Title = {Generalization of spatial data: Principles and selected algorithms},
- Volume = {1340},
- Year = {1997}}
-
-@article{Mackaness06,
- Author = {William A. Mackaness},
- Journal = {Cartography and Geographic Information Science},
- Number = {4},
- Pages = {245--256},
- Title = {Automated Cartography in a Bush of Ghosts},
- Volume = {33},
- Year = {2006}}
-
-@article{Jones05,
- Author = {Christopher B. Jones and J. Mark Ware},
- Journal = {International Journal of Geographical Information Science},
- Number = {8--9},
- Pages = {859--870},
- Title = {Map Generalisation in the Web Age},
- Volume = {19},
- Year = {2005}}
-
-@inproceedings{Brisson89,
- Address = {New York, NY, USA},
- Author = {Brisson, Erik},
- Booktitle = {Proceedings of the 5th annual symposium on Computational geometry},
- Pages = {218--227},
- Publisher = {ACM},
- Title = {Representing geometric structures in $d$ dimensions: topology and order},
- Year = {1989}}
diff --git a/work_report/example-short-chapter.tex b/work_report/example-short-chapter.tex
new file mode 100644
index 0000000..440b22d
--- /dev/null
+++ b/work_report/example-short-chapter.tex
@@ -0,0 +1,33 @@
+%%%% Time-stamp: <2012-08-20 17:41:39 vk>
+
+%% example text content
+%% scrartcl and scrreprt starts with section, subsection, subsubsection, ...
+%% scrbook starts with part (optional), chapter, section, ...
+\chapter{Example Chapter}
+
+This is my text with an example Figure~\ref{fig:example} and example
+citation~\cite{StrunkWhite} or \textcite{Bringhurst1993}. And there is another
+\enquote{citation} which is located at the bottom\footcite{tagstore}.
+
+\myfig{TU_Graz_Logo}%% filename in figures folder
+ {width=0.1\textwidth,height=0.1\textheight}%% maximum width/height, aspect ratio will be kept
+ {Example figure.}%% caption
+ {}%% optional (short) caption for table of figures
+ {fig:example}%% label
+
+Now you are able to write your own document. Always keep in mind: it's
+the \emph{content} that matters, not the form. But good typography is
+able to deliver the content much better than information set with bad
+typography. This template allows you to focus on writing good content
+while the form is done by the template definitions.
+
+
+%% vim:foldmethod=expr
+%% vim:fde=getline(v\:lnum)=~'^%%%%\ .\\+'?'>1'\:'='
+%%% Local Variables:
+%%% mode: latex
+%%% mode: auto-fill
+%%% mode: flyspell
+%%% eval: (ispell-change-dictionary "en_US")
+%%% TeX-master: "main"
+%%% End:
diff --git a/work_report/example-style-chapter.tex b/work_report/example-style-chapter.tex
new file mode 100644
index 0000000..4940ad6
--- /dev/null
+++ b/work_report/example-style-chapter.tex
@@ -0,0 +1,553 @@
+%----------------------------------------------------------------
+%
+% File : thesis-style.tex
+%
+% Author : Keith Andrews, IICM, TU Graz, Austria
+%
+% Created : 27 May 93
+%
+% Changed : 19 Feb 2004
+%
+% styling and technical implementation adopted 2011 by Karl Voit
+%----------------------------------------------------------------
+
+%% defined an anvironment for the style Keith used to use:
+\newenvironment{mykeithtabbing}[1]{%%
+\begin{tabular}{lp{0.9\hsize}}
+}{%%
+\end{tabular}
+}
+
+\newcommand{\mybadgood}[2]{%%
+\begin{mykeithtabbing}
+{}\emph{Bad:} & \sout{#1} \\
+\emph{Good:} & #2 \\
+\end{mykeithtabbing}
+
+}
+
+\chapter{Language and Writing Style}
+\label{chap:Style}
+
+\begin{framed}
+
+ This chapter is an adopted version of a single chapter of
+ \citeauthor{KeithThesis} thesis template \cite{KeithThesis} in its
+ version from 2011-12-11.
+
+ The reason why \cite{KeithThesis} is not recommended to be used instead
+ of this template is its more \enquote{traditional} \LaTeX{}
+ implementation. But the information contained regarding \enquote{How
+ to write a thesis} is generally brilliant and worth reading.
+
+ Using this chapter here is meant as a teaser. If you do like this
+ chapter, please go and download the full template to read its
+ content:~\cite{KeithThesis}.
+
+ What was modified from the original chapter:
+ \begin{itemize}
+ \item strikethrough of bad examples
+ \item minor typographical details
+ \item technical modifications
+ \begin{itemize}
+ \item moved citations from \verb+\citet{}+ and
+ \verb+\citep{}+ to \verb+\textcite{}+ and \verb+\cite{}+
+ \item changed quoting style to \verb+\enquote{}+
+ \item created various commands and environments to encapsulate
+ format
+ \end{itemize}
+ \end{itemize}
+\end{framed}
+
+The classic reference for English writing style and grammar is
+\textcite{StrunkWhite}. The original text is now available for free
+online \cite{Strunk}, so there is no excuse at all for writing poor
+English. Readers should consult it first, then continue reading this
+chapter. Another good free guide is \textcite{NASAGuide}.
+
+%orig% The classic reference for English writing style and grammar is
+%orig% \citet{StrunkWhite}. The original text is now available for free
+%orig% online \citep{Strunk}, so there is no excuse at all for writing poor
+%orig% English. Readers should consult it first, then continue reading this
+%orig% chapter. Another good free guide is \citet{NASAGuide}.
+
+
+\textcite{Zobel-WritingCompSci} and \textcite{BugsInWriting} are guides
+specifically aimed at computer science students.
+\textcite{Phillips-HowGetPhD} gives practical advice for PhD
+students.
+
+The following Sections~\ref{sec:Clear} and \ref{sec:Gender} are
+adapted from the CHI'94 language and writing style guidelines.
+
+
+
+
+
+
+
+\section{Some Basic Rules of English}
+
+There are a few basic rules of English for academic writing, which are
+broken regularly by my students, particularly if they are non-native
+speakers of English. Here are some classic and often encountered
+examples:
+
+\begin{itemize}
+
+\item \emph{Never} use I, we, or you.
+
+Write in the passive voice (third person).
+
+\mybadgood{You can do this in two ways.}{There are two ways this can be done.}
+
+
+\item \emph{Never} use he or she, his or her.
+
+Write in the passive voice (third person).
+
+\mybadgood{The user speaks his thoughts out loud.}{The thoughts of the user are spoken out loud.}
+
+
+See Section~\ref{sec:Gender} for many more examples.
+
+
+
+\item Stick to a consistent dialect of English. Choose either
+ British or American English and keep to it throughout the
+ whole of your thesis.
+
+
+
+\item Do \emph{not} use slang abbreviations such as \enquote{it's},
+ \enquote{doesn't}, or \enquote{don't}.
+
+Write the words out in full: \enquote{it is}, \enquote{does not}, and \enquote{do not}.
+
+\mybadgood{It's very simple to\ldots}{It is very simple to\ldots}
+
+
+
+
+\item Do \emph{not} use abbreviations such as \enquote{e.\,g.} or
+ \enquote{i.\,e.}.
+
+Write the words out in full: \enquote{for example} and \enquote{that is}.
+
+\mybadgood{\ldots in a tree, e.\,g.\xspace{}the items\ldots}{\ldots in a tree, for example the items\ldots}
+
+
+
+\item Do \emph{not} use slang such as \enquote{a lot of}.
+
+\mybadgood{There are a lot of features\ldots}{There are many features\ldots}
+
+
+
+\item Do \emph{not} use slang such as \enquote{OK} or \enquote{big}.
+
+\mybadgood{\ldots are represented by big areas.}{\ldots are represented by large areas.}
+
+
+
+\item Do \emph{not} use slang such as \enquote{gets} or \enquote{got}.
+
+Use \enquote{becomes} or \enquote{obtains}, or use the passive voice (third
+person).
+
+\mybadgood{The radius gets increased\ldots}{The radius is increased\ldots}
+
+\mybadgood{The user gets disoriented\ldots}{The user becomes disoriented\ldots}
+
+
+
+
+\item \emph{Never} start a sentence with \enquote{But}.
+
+Use \enquote{However,} or \enquote{Nevertheless,}. Or consider joining the
+sentence to the previous sentence with a comma.
+
+\mybadgood{But there are numerous possibilities\ldots}{However, there are numerous possibilities\ldots}
+
+
+
+\item \emph{Never} start a sentence with \enquote{Because}.
+
+Use \enquote{Since}, \enquote{Owing to}, or \enquote{Due to}. Or turn the two
+halves of the sentence around.
+
+
+
+
+\item \emph{Never} start a sentence with \enquote{Also}. Also should
+be placed in the middle of the sentence.
+
+\mybadgood{Also the target users are considered.}{The target users are also considered.}
+
+
+
+\item Do \emph{not} use \enquote{that} as a connecting word.
+
+Use \enquote{which}.
+
+\mybadgood{\ldots a good solution that can be computed easily.}{\ldots a good solution which can be computed easily.}
+
+
+
+
+\item Do \emph{not} write single-sentence paragraphs.
+
+Avoid writing two-sentence paragraphs. A paragraph should contain at
+least three, if not more, sentences.
+
+
+\end{itemize}
+
+
+
+% rules on the use of a comma in lists
+% http://en.wikipedia.org/wiki/Serial_comma
+
+
+
+
+
+
+
+
+\section{Avoid Austrianisms}
+\label{sec:Austrianisms}
+
+
+I see these mistakes time and time again. Please do not
+let me read one of them in your work.
+
+
+
+\begin{itemize}
+
+
+\item \enquote{actual}~$\ne$~\enquote{current}
+
+If you mean \enquote{aktuell} in German, you probably mean
+\enquote{current} in English.
+
+\mybadgood{The actual selection is cancelled.}{The current selection is cancelled.}
+
+
+
+
+\item \enquote{allows to} is not English.
+
+\mybadgood{The prototype allows to arrange components\ldots}%%
+{The prototype supports the arrangement of components\ldots}
+
+% they allow to achieve
+
+
+
+\item \enquote{enables to} is not English.
+
+\mybadgood{it enables to recognise meanings\ldots}{it enables the recognition of meanings\ldots}
+
+
+
+\item \enquote{according}~$\ne$~\enquote{corresponding}
+
+\mybadgood{For each browser, an according package is created.}{For each browser, a corresponding package is created.}
+
+
+
+\item \enquote{per default} is not English.
+
+Use \enquote{by default}.
+
+\mybadgood{Per default, the cursor is red.}{By default, the cursor is red.}
+
+
+
+
+\item \enquote{As opposed to} is not English.
+
+Use \enquote{In contrast to}.
+
+\mybadgood{As opposed to C, Java is object-oriented.}{In contrast to C, Java is object-oriented.}
+
+
+\item \enquote{\emph{anything}-dimensional} is spelt with a hyphen.
+
+For example: two-dimensional, three-dimensional.
+
+
+
+\item \enquote{\emph{anything}-based} is spelt with a hyphen.
+
+For example: tree-based, location-based.
+
+
+
+\item \enquote{\emph{anything}-oriented} is spelt with a hyphen.
+
+For example: object-oriented, display-oriented.
+
+
+\item \enquote{\emph{anything}-side} is spelt with a hyphen.
+
+For example: client-side, server-side.
+
+
+\item \enquote{\emph{anything}-friendly} is spelt with a hyphen.
+
+For example: user-friendly, customer-friendly.
+
+
+\item \enquote{\emph{anything}-to-use} is spelt with hyphens.
+
+For example: hard-to-use, easy-to-use.
+
+
+
+\item \enquote{realtime} is spelt with a hyphen if used as
+ an adjective, or as two separate words if used as a noun.
+
+\mybadgood{\ldots using realtime shadow casting.}{\ldots using real-time shadow casting.}
+\mybadgood{\ldots display the object in realtime.}{\ldots display the object in real time.}
+
+
+\end{itemize}
+
+
+
+
+
+
+
+
+
+
+
+
+\section{Clear Writing}
+\label{sec:Clear}
+
+The written and spoken language of your thesis is English as
+appropriate for presentation to an international audience. Please take
+special care to ensure that your work is adapted to such an audience.
+In particular:
+
+\begin{itemize}
+\item Write in a straight-forward style, using simple sentence
+ structure.
+
+\item Use common and basic vocabulary. For example, use \enquote{unusual}
+ for \enquote{arcane}, and \enquote{specialised} for \enquote{erudite}.
+
+\item Briefly define or explain all technical vocabulary the first
+ time it is mentioned, to ensure that the reader understands it.
+
+\item Explain all acronyms and abbreviations. For example, the first
+ time an acronym is used, write it out in full and place the acronym
+ in parentheses.
+
+\mybadgood{\ldots When using the \myacro{GUI} version, the use may\ldots}%%
+{\ldots When using the Graphical User Interface (\myacro{GUI}) version, the use may\ldots}
+
+
+\item Avoid local references. For example, not everyone knows the
+ names of all the provincial capitals of Austria. If local context is
+ important to the material, describe it fully.
+
+\item Avoid \enquote{insider} comments. Ensure that your whole audience
+ understands any reference whose meaning you do not describe. For
+ example, do not assume that everyone has used a Macintosh or a
+ particular application.
+
+\item Do not \enquote{play on words}. For example, do not use \enquote{puns},
+ particularly in the title of a piece. Phrases such as ``red
+ herring'' require cultural as well as technical knowledge of
+ English.
+
+\item Use unambiguous formats to represent culturally localised things
+ such as times, dates, personal names, currencies, and even
+ numbers. 9/11 is the 9th of November in most of the world.
+
+\item Be careful with humour. In particular, irony and sarcasm can be
+ hard to detect if you are not a native speaker.
+
+\item If you find yourself repeating the same word or phrase too often,
+ look in a thesaurus such as \textcite{Roget,RogetII} for an
+ alternative word with the same meaning.
+\end{itemize}
+
+
+Clear writing experts recognise that part of writing understandable
+documents is understanding and responding to the needs of the intended
+audience. It is the writer's job to maintain the audience's
+willingness to go on reading the document. Readers who are continually
+stumped by long words or offended by a pompous tone are likely to stop
+reading and miss the intended message.
+
+
+
+
+
+
+
+
+\section{Avoiding Gender Bias}
+\label{sec:Gender}
+
+Part of striking the right tone is handling gender-linked terms
+sensitively. Use of gender terms is controversial. Some writers use
+the generic masculine exclusively, but this offends many readers.
+Other writers are experimenting with ways to make English more
+neutral. Avoiding gender bias in writing involves two kinds of
+sensitivity:
+\begin{enumerate}
+\item being aware of potential bias in the kinds of observations and
+ characterisations that it is appropriate to make about women and men,
+ and
+
+\item being aware of certain biases that are inherent in the language
+ and of how you can avoid them.
+\end{enumerate}
+
+
+The second category includes using gender-specific nouns and pronouns
+appropriately. Here are some guidelines for handling these
+problems:
+\begin{itemize}
+
+\item Use a gender-neutral term when speaking generically of people:
+
+\begin{tabular}{ll}
+ man & the human race \\
+ mankind & humankind, people \\
+ manpower & workforce, personnel \\
+ man on the street & average person \\
+\end{tabular}
+
+
+\item Avoid clearly gender-marked titles. Use neutral terms when
+good ones are available. For example:
+
+\begin{tabular}{ll}
+ chairman & chairperson \\
+ spokesman & speaker, representative \\
+ policeman & police officer \\
+ stewardess & flight attendant \\
+\end{tabular}
+
+
+
+\item If you are speaking of the holder of a position and you know the
+ gender of the person who currently occupies the position, use the
+ appropriate gender pronoun. For example, suppose the \enquote{head nurse}
+ is a man:
+
+\mybadgood{The head nurse must file her report every Tuesday.}{The head nurse must file his report every Tuesday.}
+
+
+
+\item Rewrite sentences to avoid using gender pronouns. For example,
+ use the appropriate title or job name again:
+
+\mybadgood{Interview the user first and then ask him to fill out a questionnaire.}%%
+{Interview the user first and then ask the user to fill out a questionnaire.}
+
+
+
+\item To avoid using the third person singular pronoun (his or her),
+ recast your statement in the plural:
+
+\mybadgood{Each student should bring his text to class.}{All students should bring their texts to class.}
+
+
+
+\item Address your readers directly in the second person, if it is
+ appropriate to do so:
+
+\mybadgood{The student must send in his application by the final deadline date.}%%
+{Send in your application by the final deadline date.}
+
+
+
+
+\item Replace third person singular possessives with articles.
+
+\mybadgood{Every student must hand his report in on Friday.}{Every student must hand the report in on Friday.}
+
+
+
+\item Write your way out of the problem by using the passive voice.
+
+\mybadgood{Each department head should do his own projections.}{Projections should be done by each department head.}
+
+
+
+\item Avoid writing awkward formulations such as \enquote{s/he}, \enquote{he/she},
+ or \enquote{his/her}. They interfere when someone is trying to read a
+ text aloud. If none of the other guidelines has been helpful, use
+ the slightly less awkward forms \enquote{he or she}, and \enquote{his or hers}.
+
+\end{itemize}
+Remember, the goal is to avoid constructions that will offend your
+readers so much as to distract them from the content of your work.
+
+
+
+
+\section{Titles and Headings in Initial Caps}
+
+% Capitalization in Titles
+% http://www.writersblock.ca/tips/monthtip/tipmar98.htm
+
+
+
+
+
+
+
+
+\section{Use a Spelling Checker}
+
+In these days of high technology, spelling mistakes and typos are
+inexcusable. It is \emph{very} irritating for your supervisor to have
+to read through and correct spelling mistake after spelling mistake
+which could have been caught by an automated spelling checker.
+Believe me, irritating your supervisor is not a good idea.
+
+So, use a spelling checker \emph{before} you hand in \emph{any}
+version, whether it is a draft or a final version.
+Since this is apparently often forgotten, and sometimes even wilfully
+ignored, let me make it absolutely clear:
+\begin{quote}
+\begin{em}
+Use a spelling checker, please. \\
+Use a spelling checker! \\
+Use a spelling checker, you moron. \\
+\end{em}
+\end{quote}
+
+
+
+
+
+\section{Use a Dictionary}
+
+If you are not quite sure of the meaning of a word, then use a
+dictionary. \textcite{DictionaryCom} is a free English dictionary,
+\textcite{DictChemnitz} and \textcite{DictLeoOrg} are two very good
+English-German dictionaries.
+
+
+
+
+\section{Use a Thesaurus}
+
+If a word has been used several times already, and using another
+equivalent word might improve the readability of the text, then
+consult a thesaurus. \textcite{Roget} and \textcite{RogetII} are free
+English thesauri.
+
+
diff --git a/work_report/extrusion.tex b/work_report/extrusion.tex
deleted file mode 100644
index d2bd3fc..0000000
--- a/work_report/extrusion.tex
+++ /dev/null
@@ -1,693 +0,0 @@
-% !TEX root = thesis.tex
-
-\chapter{Extrusion}
-\label{ch:extrusion}
-
-Extrusion is a commonly used technique in GIS to construct simple 3D models.
-Starting from a planar partition of polygons and a height interval associated to each of them, it generates a set of space-partitioning box-shaped polyhedra by considering that each polygon exists all along its related interval.
-For instance, a set of building footprints and associated heights is extruded into a set of simple prismatic buildings.
-Based on the fundamental operations on generalised and combinatorial maps discussed in \refch{ch:operations-background}, this chapter presents a generalisation of this technique to higher dimensions: an $(n-1)$-dimensional cell complex and a set of associated intervals per $(n-1)$-cell is thus transformed into an $n$-dimensional cell complex.
-
-The chapter starts by presenting some background on 2D-to-3D extrusion and an intuitive description of dimension-independent extrusion in \refse{se:extrusion-background}.
-Afterwards, \refse{se:extrusion-algos} describes an dimension-independent extrusion algorithm.
- % that can create $n$-dimensional cell complexes from $(n-1)$-dimensional space partitions.
-% by assigning one or more intervals to each $(n-1)$-cell
-\refse{se:extrusion-implementation} describes how this algorithm was implemented based on the implementation of combinatorial maps in CGAL.\@
-\refse{se:extrusion-experiments} summarises experiments using this implementation, which created consistent objects in up to 6D by combining publicly available GIS datasets.
-\refse{se:extrusion-generalisation} describes how extrusion can be used not only directly, but as a base to create dimension-independent generalisation operations.
-Finally, \refse{se:extrusion-conclusions} concludes the chapter with the main findings and the possibilities to use extrusion for higher-dimensional datasets.
-
-Most of this chapter is based on the paper:
-\begin{itemize}
-\paperijgisextrusion%
-\end{itemize}
-
-\section{Background}
-\label{se:extrusion-background}
-
-Extrusion is most commonly used in GIS\footnote{This contrasts with the use of the term `extrusion' in other fields.
-For instance, in geometric modelling, extrusion is a well-known operation in which all of the objects in the model are `dragged' along a predefined path given by a curve, more akin to an actual (physical) extrusion process, but whose output topology can be computed without any geometric computations.} in order to create simple 3D city models with box-shaped buildings.
-In such a process, a user takes a set of building footprints, optionally subdivided into parts of similar height, and extrudes them using intervals that extend from the ground level to the building height at the location of each polygon.
-This process thus creates simple 3D representations of each building, where a building is represented by one or more box-shaped polyhedra.
-\reffig{fig:3dtop10nl} shows an example of such a model over a triangulated terrain (\ie\ a 2D simplicial complex embedded in 3D).
-\begin{figure*}
-\centering
-\includegraphics[width=\linewidth]{figs/3dtop10nl}
-\caption[A view of the 3D TOP10NL dataset]{A view of the 3D TOP10NL dataset\protect\footnotemark\ in the area of Valkenburg, the Netherlands.}
-\label{fig:3dtop10nl}
-\end{figure*}
-\footnotetext{\url{https://www.pdok.nl/nl/producten/pdok-downloads/basis-registratie-topografie/top10nl-3d}}
-
-Such an extrusion process is appealing largely because of its simplicity.
-All the information that is required for the previous example is notoriously easy to obtain: building footprints are widely available---including in open datasets such as OpenStreetMap\footnote{\url{http://www.openstreetmap.org/}}---or can be easily obtained from satellite imagery, while the height information can be acquired with techniques like airborne laser scanning or photogrammetry.
-Not coincidentally, this type of 3D models are commonly generated in practice and often appear in standards such as CityGML \citep{CityGML2}, where it is defined as the level of detail (LOD) 1.
-
-Moreover, it is easy to ensure that extruded models are generated in a topologically consistent manner~\citep{Ledoux11a}.
-If the input forms a planar partition---or is processed to form a planar partition, \eg\ using the method described in \refse{se:pprepair}---and the extrusion direction is orthogonal to the planar partition, \emph{the output polyhedra are guaranteed not to overlap}.
-
-While not every possible 3D shape can be generated using extrusion---the top and bottom faces will always be horizontal, and the side faces connecting them will always be vertical---, a remarkable number of shapes can be constructed using this type of method \citep{Ferrucci93}.
-This is especially true when simple extensions to the method are considered, such as multiple intervals per 2-cell, possibly overlapping 2-cells in the input, or an arbitrary extrusion direction.
-
-Viewed at a more fundamental level, shown in \reffig{fig:extrusion}, extrusion `lifts' a 2D cell complex to form a 3D cell complex.
-In order to form a valid cell complex as defined in \refse{ss:algebraic-topology}, cells must not overlap, but instead they should form a structure of cells of dimension from 0 to 3, where $i$-cells ($\forall i > 0$) are bounded by sets of $(i-1)$-cells.
-The extruded cells must therefore take into account the incidence and adjacency relationships between cells, splitting cells of every dimension at the places where the common boundaries of higher-dimensional cells start and end.
-\begin{figure}[tbp]
-\centering
-\subfloat[]{
-\includegraphics[width=0.5\linewidth]{figs/extrusion-1}
-\label{subfig:extrusion-1}}
-% \quad
-\subfloat[]{
-\includegraphics[width=0.5\linewidth]{figs/extrusion-2}
-\label{subfig:extrusion-2}}
-\caption[Extrusion from 2D to 3D]{(a) A 2D cell complex, where each 2-cell is associated with a height, is extruded to generate (b) a 3D cell complex. Note how the extrusion of vertex $v$ in (a) causes the generation of several vertices and edges.
-In particular, the vertex $v^\prime$ in (b), which is at the height of the top face of the back left polyhedron.
-This vertex needs to be used in the representation of the all 4 edges, 5 faces and 3 volumes that are incident to it, not only in those that are part of the back left polyhedron. This ensures that the cells in (b) are pairwise disjoint and have the expected correct topology.}
-\label{fig:extrusion}
-\end{figure}
-
-Extrusion, in the sense of its GIS definition as exposed in the previous paragraph, has a natural extension to higher dimensions.
-A dimension-independent extrusion operation thus `lifts' an $(n-1)$-dimensional cell complex, to an $n$-dimensional cell complex by assigning one or more intervals to each $(n-1)$-cell, \ie\ a subset of 1D Euclidean space\footnote{This is equivalent to one or more edges in \citet{Lienhardt04} or 1-dimensional polyhedra in \citet{Ferrucci93}.}, along which this cell is defined.
-For instance, just as a polygon representing the footprint of a building is commonly extruded using an interval $(0, height)$, a polyhedron representing a building can be extruded along the time interval $(construction, destruction)$.
-As \reffig{fig:Frauenkirche} shows, extrusion using multiple unconnected intervals is also a possible use case.
-\marginpar{
-\captionsetup{type=figure}
-\centering
-\includegraphics[width=\marginparwidth]{figs/Frauenkirche}
-\caption[The Frauenkirche in Dresden]{The Frauenkirche in Dresden, Germany, was originally built in 1743, destroyed during the bombing of Dresden in 1945, and reconstructed in 2005.
-A simple 4D model of the building could be made by extruding a 3D model of it along the interval $(1743, 1945) \cup (2005, \infty)$.
-Photograph by David M\"uller in Wikimedia Commons.
-}
-\label{fig:Frauenkirche}
-}
-
-In the related literature, there are two methods that can be used for a similar purpose.
-The Cartesian product, a more general operation defined for generalised maps in \citet{Lienhardt04}, generates a combinatorial structure equivalent to the extrusion of all the objects along a single interval by computing the Cartesian product of the original (unextruded) cell complex with an edge.
-However, since such an operation is limited to a single interval (which is the same for all the input objects), the output cannot be directly applied for modelling real-world datasets.
-A related possibility, presented by \citet{Ferrucci93}, is to first pre-process all the intervals (for all cells), splitting them into fragments at the other intervals' endpoints so that each fragment intersects another one if and only if they have the same endpoints, and then computing the output purely combinatorially for each possible combination of fragment and for each input cell.
-While this allows us to model real-world objects, the process of splitting the input intervals might greatly increase the number of output cells since two intersecting intervals are split even if their corresponding cells are far away from each other.
-The method presented in this chapter follows a similar approach, but instead process the input intervals for each input cell separately based on the incidence relationships with other cells, thus generating fewer total intervals, a smaller number of cells and a considerably smaller combinatorial structure.
-
-\section{A dimension-independent extrusion algorithm}
-\label{se:extrusion-algos}
-
-The dimension-independent extrusion algorithm requires two input arguments: an $(n-1)$-dimensional space partition of $(n-1)$-polytopes embedded into $(n-1)$-dimensional space, stored as an $(n-1)$-dimensional generalised map $G$; and a map of extrusion intervals $\rho$\footnote{I originally referred to these as \emph{ranges} and thus used variations of $R$ and $\rho$ (rho).
-While a kind anonymous reviewer correctly suggested that it is more precise to refer to them as \emph{intervals}, $\rho$ is more distinctive than iota ($\iota$) and upsilon ($\upsilon$), and so it remains as $\rho$ here.} that links each $(n-1)$-cell $c$ in $G$ to a set $R$ of 1-dimensional intervals, where every interval $r$ in $R$ is represented as a pair of values $(r_{\min}, r_{\max})$ where $c$ is extruded along the $n$-th dimension.
-The intervals in $\rho$ for the cells of lower dimension do not need to be given, since they can be computed by the algorithm based on their incidence relationships to the $(n-1)$-cells.
-Note that, as \reffig{fig:extrusion-intervals} shows, multiple intervals for the same cell are possible.
-\begin{figure}[tbp]
-\centering
-\subfloat[]{
-\includegraphics[width=0.5\linewidth]{figs/intervals-1}
-\label{subfig:extrusion-intervals-1}}
-% \quad
-\subfloat[]{
-\includegraphics[width=0.5\linewidth]{figs/intervals-2}
-\label{subfig:extrusion-intervals-2}}
-\caption[The extrusion intervals of the lower-dimensional cells]{All the cells are given extrusion intervals based on the intervals for the $(n-1)$-cells.
-Note how it is possible to have multiple intervals per cell both in the input, \eg\ the purple square on the right is extruded along two intervals, and in the output, \eg\ the two edges $v^{(0,1)}$, $v^{(1.5,2)}$ and $v^{(2,3)}$ are the result of the extrusion of a single vertex $v$ whose extrusion interval was not directly given.}
-\label{fig:extrusion-intervals}
-\end{figure}
-
-There are two cases in which a cell has multiple intervals.
-One of these is that for an $(n-1)$-dimensional cell, multiple intervals may be explicitly provided in the input (\eg\ the example previously given in \reffig{fig:Frauenkirche}).
-The other case is that for a lower-dimensional cell, multiple extrusion intervals may be passed to it by several adjacent higher-dimensional cells.
-
-The result of the extrusion algorithm is an $n$-dimensional generalised map $G^{\prime}$ representing a $n$-dimensional cell complex containing a set of prismatic $n$-polytopes, the $n$-dimensional analogue of a set of prisms, which also form a $n$-dimensional space partition.
-It is important to note that the output map $G^\prime$ creates entirely new structures, \ie\ it does not reuse the darts or embeddings of $G$, since the $(n-1)$-simplices in $G$ are similar but not identical to the $n$-simplices in the base of $G^\prime$.
-These differ in terms of the highest-dimensional involution $\alpha_{n-1}$ and---importantly for an implementation---in the total number of involutions per dart.
-
-As \reffigs{fig:trianglecomplex} and~\ref{fig:blockscomplex} show, the cells in the new $n$-dimensional cell complex in $G^\prime$ have a direct relation to and can be expressed in terms of the $(n-1)$-cells in $G$ and their extrusion intervals in $\rho$.
-This property is used in order to define the cells of the output cell complex, which are equivalent to the embeddings in $G^\prime$.
-These consist of:
-\begin{itemize}
-\item
-`Base' and `top' $(n-1)$-cells (\ie\ facets), which are constructed from every $(n-1)$-cell $c$ in $G$ at the $r_{\min}$ and $r_{\max}$ end points of every interval in $\rho(c)$.
-\item
-A series of prismatic facets linking corresponding $(n-2)$-cells (\ie\ ridges) $c$ of the above mentioned $r_{\min}$ and $r_{\max}$ facets for every interval, such that every one of these facets corresponds to the extrusion of the ridge along an interval in $\rho(c)$.
-\end{itemize}
-
-\begin{figure}[tb]
-\centering
-\subfloat[]{
-\includegraphics[width=0.45\linewidth]{figs/trianglecomplex-1}
-\label{subfig:trianglecomplex-1}}
-\quad
-\subfloat[]{
-\includegraphics[width=0.45\linewidth]{figs/trianglecomplex-2}
-\label{subfig:trianglecomplex-2}}
-\caption[Extruding the embeddings]{Extruding the embeddings of an $i$-cell $c$ along a single interval $r = (a,b)$ such that $a,b \in \mathbb{R}, a \neq b$, generates the embeddings of three cells: two $i$-cells $c^{a}$ and $c^{b}$, and an $(i+1)$-cell $c^{r} = c^{(a,b)}$ lying between them.}
-\label{fig:trianglecomplex}
-\end{figure}
-
-\begin{figure}[tb]
-\centering
-\subfloat[]{
-\includegraphics[width=0.45\linewidth]{figs/blockscomplex-1}
-\label{subfig:blockscomplex-1}}
-\quad
-\subfloat[]{
-\includegraphics[width=0.45\linewidth]{figs/blockscomplex-2}
-\label{subfig:blockscomplex-2}}
-\caption[Extruding a 2D cell complex]{Extruding a 2D cell complex using an interval that is defined per 2-cell.
-The facet $f_0$ is to be extruded along the interval $r_0 = (a,c)$ and $f_1$ along $r_1 = (a,b)$.
-Note how the vertices and edges incident to multiple facets in the input are extruded along the intervals of these facets, generating a series of cells connecting the end points of their intervals.}
-\label{fig:blockscomplex}
-\end{figure}
-
-For the combinatorial structure, the algorithm takes advantage of the fact that the darts in the generalised map $G$ can be extruded largely independently based on querying the combinatorial structure of $G$ and simple 1D geometric queries along the $n$-th dimension.
-Intuitively, the extrusion of a single $(n-1)$-simplex in $G$ consists of layers of $n$-simplices that are `stacked'
-% \footnote{Not in the sense of a stack as a data structure, but as a pile of simplices arranged vertically along the $n$-th dimension.}
-so as to form one part of the prism-shaped output.
-Each new layer corresponds to a new $n$-simplex that shares all but one of the nodes with the $n$-simplex below it.
-
-The extrusion algorithm is thus divided into three parts that are performed sequentially and explained in detail in the following sections: (1) propagating the input intervals to all the cells in the input cell complex, (2) generating the new embeddings (\ie\ the attributes and geometry) for each input cell, and (3) generating the combinatorial structure (\ie\ the darts and involutions) and linking each dart to its correct embeddings for every dimension.
-
-\subsection{Propagating the extrusion intervals to all cells}
-\label{ss:propagation}
-
-While the extrusion intervals are defined only for the $(n-1)$-cells, the cells of every dimension need to be extruded, and therefore the extrusion intervals need to be propagated from the $(n-1)$-cells to the cells of lower dimension.
-This is done recursively in decreasing dimension, using the incidence relationships between every $i$-cell and the $(i-1)$-cells on its boundary to pass the intervals of the former to the latter, using the same map of extrusion intervals $\rho$.
-Because incidence is a transitive relation, an interval attached to a particular lower dimensional cell thus indicates that it is incident to an $(n-1)$-cell that will be extruded along that interval.
-
-As $(i-1)$-cells can be on the boundary of multiple $i$-cells, several intersecting intervals can be passed to the map of extrusion intervals of a lower dimensional cell.
-In order to generate non-intersecting cells, these need to be split into a set of non-intersecting intervals as shown in \reffig{fig:intersectingintervals}, each of which will represent the incidence of this cell to an equal set of higher-dimensional cells along the entirety of the interval.
-\marginpar{
-\captionsetup{type=figure}
-\centering
-\includegraphics[width=\marginparwidth]{figs/intersectingintervals}
-\caption[Propagating the extrusion intervals]{The extrusion intervals from the cells incident to the middle vertex of \reffig{fig:extrusion-intervals} in (a), are passed on to it, resulting in a new set of non-intersecting intervals in (b).}
-\label{fig:intersectingintervals}
-}
-A sketch of a simple process to do this is shown in \refalgo{algo:propagateintervals}, which assumes that the sets of intervals are kept sorted.
-Note that this is essentially a one dimensional analogue of other operations used in GIS, \eg\ vector map overlays \citep[\S{}2.3]{deBerg08} and time-composites in spatio-temporal modelling \citep{Langran88}.
-% \begin{figure}
-\begin{algorithm}[tb]
-\small
-\SetKwInOut{Input}{Input}
-\SetKwInOut{Output}{Output}
-\DontPrintSemicolon\Input{generalised map $G$ of the input cell complex,\\
-map $\rho$ with the extrusion intervals of the $(n-1)$-cells in $G$}
-\Output{map $\rho$ with the extrusion intervals of all the cells in $G$}
-\For{$i \leftarrow n-1$ \KwTo$0$}{
- \ForEach{$i$-cell $c$ in $G$}{
- \ForEach{$(i-1)$-cell $b$ on the boundary of $c$}{
- \ForEach{extrusion interval $r = (r_{\min}, r_{\max}) \in \rho(c)$}{
- Find the intervals $R^\prime \subseteq \rho(b)$ whose interiors intersect with $r$ \;
- \If{$r_{\min}$ is in the interior of an interval $r^\prime = (r_{\min}^\prime, r_{\max}^\prime) \in R^\prime$}{
- Remove $r^\prime$ from $\rho(b)$ \;
- Add $(r_{\min}^\prime, r_{\min})$ to $\rho(b)$ \;
- Add $(r_{\min}, r_{\max}^\prime)$ to $\rho(b)$ \;
- }
- \If{$r_{\min}$ is outside all intervals in $R^\prime$}{
- Add a new interval in $R^\prime$ from $r_{\min}$ to the minimum of the lowest interval in $R^\prime$ \;
- }
- \If{$r_{\max}$ is in the interior of an interval $r^\prime = (r_{\min}^\prime, r_{\max}^\prime) \in R^\prime$}{
- Remove $r^\prime$ from $\rho(b)$ \;
- Add $(r_{\min}^\prime, r_{\max})$ to $\rho(b)$ \;
- Add $(r_{\max}, r_{\max}^\prime)$ to $\rho(b)$ \;
- }
- \If{$r_{\max}$ is outside all intervals in $R^\prime$}{
- Add a new interval in $R^\prime$ from the maximum of the highest interval in $R^\prime$ to $r_{\max}$ \;
- }
- \ForEach{empty interval $(r_{\min}^\prime, r_{\max}^\prime)$ between consecutive intervals in $R^\prime$}{
- Add $(r_{\min}^\prime, r_{\max}^\prime)$ to $\rho(b)$ \;
- }
- }
- }
- }
-}
-\caption{\textsc{PropagateRanges}}\label{algo:propagateintervals}
-\end{algorithm}
-% \end{figure}
-
-Considering what happens when a single new interval is passed to a cell in the incremental process shown in \refalgo{algo:propagateintervals}, the total number of intervals of that cell can increase from $j$ to $2j+1$ in the worst case, which happens when the new interval starts before and ends after all other intervals and these are all not contiguous (\ie\ they are all separated by empty intervals).
-However, when taking into account $r$ intervals passed to the same cell, the total number of intervals for the cell can only increase to $2r-1$.
-As each extrusion interval is bounded by two values, $r$ intervals lead to at most $2r$ boundary values and thus the number of intervals cannot be higher than $2r-1$.
-
-Assuming that a new interval can be added to a cell in $O(\log r)$ time, \eg\ by maintaining a sorted list or an augmented red-black tree with the endpoints of the intervals, the total time to construct the ordered set of all intervals for a cell $c$ is $O(r \log r)$, where $r$ is the number of intervals that are passed onto $c$.
-The overall computational complexity of this step depends on the incidence relationships between the cells in the complex.
-
-\subsection{Generating the new embeddings}
-\label{ss:embeddings}
-
-Intuitively, when a single $i$-cell is extruded along a single interval $r = (r_{\min}, r_{\max})$, three new cells are generated: two $i$-cells that correspond to the end points of the interval $r_{\min}$ and $r_{\max}$, and a prismatic $(i+1)$-cell along all of $r$, \ie\ lying between the two $i$-cells.
-For instance, extruding a polygon results in `top' and `bottom' polygonal faces and a polyhedron that lies between the two polygons.
-
-Analogously, considering the \emph{embedding} structures that store the necessary attributes for each cell, such that an $i$-dimensional embedding ($i$-embedding) structure keeps the attributes of an $i$-cell, \emph{extruding an $i$-dimensional embedding results in two $i$-embeddings and one $(i+1)$-embedding}.
-In the case of linear geometries, extruding a point entails the creation of two additional points, one with an appended $r_{\min}$ coordinate, and one with an $r_{\max}$ one.
-
-With multiple intervals, this same procedure can then be used by applying it per embedding and per interval.
-Notice that some embeddings are shared by multiple intervals (when the minimum of an interval is equal to the maximum of another), but these only need to be created once.
-
-The extrusion algorithm for the embeddings receives the set of input embeddings $E$ and the map of extruded intervals $\rho$ which, being the output of \textsc{PropagateRanges} (\refalgo{algo:propagateintervals}), now contains a set of non-intersecting intervals for the cells of every dimension, and it returns an entirely new set of extruded embeddings $E^{\prime}$, as well a function $ex(e, v) \rightarrow E^\prime$ linking an input embedding $e \in E$ and an interval or end point of an interval $v$ to an extruded (output) embedding $e^{\prime} \in E^{\prime}$.
-For instance, given an interval $r = (r_{\min}, r_{\max}) \in \rho(e)$, $v$ can be $r$, $r_{\min}$ or $r_{\max}$, reflecting the fact that extruding an $i$-embedding results in two $i$-embeddings (respectively for $r_{\min}$ and $r_{\max}$) and one $(i+1)$-embedding (for $r$).
-
-The general procedure to generate the new embeddings and their relation to the old embeddings and the intervals is shown in \refalgo{algo:embeddingsextrusion}.
-Note that a practical implementation of this algorithm has to deal with the desired attributes for each of the extruded cells rather than simply making a copy of the input ones (lines~\ref{ln:copyattributemin},~\ref{ln:coordinatemin} and~\ref{ln:copyattributemax}) and appending one more coordinate to the 0-embeddings (lines~\ref{ln:coordinatemin} and~\ref{ln:coordinatemax}).
-
-% \begin{figure*}[tb]
-\begin{algorithm}[tb]
-\small
-\SetKwInOut{Input}{Input}
-\SetKwInOut{Output}{Output}
-\DontPrintSemicolon\Input{set $E$ of the embeddings in the input cell complex,\\
-map $\rho$ of the extrusion intervals for all cells of the input complex}
-\Output{set $E^\prime$ of the embeddings for the output cell complex,\\
-map $ex$ that links an input embedding to its extruded embeddings}
-\ForEach{$e \in E$}{
- \ForEach{$r = (r_{\min}, r_{\max}) \in \rho(e)$}{
- \If{$ex(e, r_{\min}) = \emptyset$}{
- $ex(e, r_{\min}) \leftarrow e$ \;
-\label{ln:copyattributemin}
- \If{$e.dimension = 0$}{
- Append $r_{\min}$ to the coordinates of $ex(e, r_{\min})$ \;
-\label{ln:coordinatemin}
- }
- }
- $ex(e, r) \leftarrow e$ \;
-\label{ln:copyattributeinterval}
- $ex(e, r).dimension \leftarrow ex(e, r).dimension+1$ \;
- \If{$ex(e, r_{\max}) = \emptyset$}{
- $ex(e, r_{\max}) \leftarrow e$ \;
-\label{ln:copyattributemax}
- \If{$e.dimension = 0$}{
- Append $r_{\max}$ to the coordinates of $ex(e, r_{\max})$ \;
-\label{ln:coordinatemax}
- }
- }
- Put $ex(e, r_{\min}), ex(e, r)$ and $ex(e, r_{\max})$ in $E^{\prime}$ \;
- }
-}
-\caption{\textsc{EmbeddingsExtrusion}}\label{algo:embeddingsextrusion}
-\end{algorithm}
-% \end{figure*}
-
-Since this part of the algorithm iterates through all the cells in the input cell complex, and it generates at most three new embeddings per interval for each cell, the computational complexity can be $O(rn)$ per cell, where $r$ is the total number of intervals and $n$ is the dimension, \ie\ as long as the map $ex$ can be queried and the new embeddings can be created in time that is linear on the dimension (which in practice is a relatively small constant).
-
-\subsection{Generating the new combinatorial structure and linking it to its correct embeddings}
-\label{ss:combinatorial}
-
-The extrusion of a \emph{single} dart in the input map $G$ along a single interval $r = (r_{\min}, r_{\max})$ generates a series of connected darts in $G^\prime$ connected by a sequence of involutions $\alpha_{n-1}, \alpha_{n-2}, \ldots, \alpha_{1}, \alpha_{0}, \alpha_{1}, \ldots, \alpha_{n-2}, \alpha_{n-1}$.
-Intuitively, these are equivalent to stacked $n$-simplices that together form a prism\footnote{This is always true combinatorially, but it might not be true geometrically if the $(n-1)$-simplex is not embedded so as to lie in the interior of the cell, as shown in \refse{ss:ordered-topological-models}.}.
-\reffig{fig:triangle} shows a simple extrusion of the cell complex from \reffig{fig:trianglecomplex} including all its darts.
-
-\begin{figure}[tbp]
-\centering
-\subfloat[]{
-\includegraphics[width=0.45\linewidth]{figs/triangle-1}
-\label{subfig:triangle-1}}
-\quad
-\subfloat[]{
-\includegraphics[width=0.45\linewidth]{figs/triangle-2}
-\label{subfig:triangle-2}}
-\caption[The darts in the cell complexes in \reffig{fig:trianglecomplex}]{The darts in the cell complexes in \reffig{fig:trianglecomplex}.
-Note that one can obtain a dart's representation as a simplex by considering additional nodes at its corresponding facet and one in the interior of the volume.}
-\label{fig:triangle}
-\end{figure}
-
-\marginpar{
-\captionsetup{type=figure}
-\centering
-\setcounter{subfigure}{6}\subfloat[]{\includegraphics[width=0.7\marginparwidth]{figs/stack-6}\label{subfig:stack-6}}\\
-\vspace{-10mm}
-\setcounter{subfigure}{5}\subfloat[]{\includegraphics[width=0.7\marginparwidth]{figs/stack-5}\label{subfig:stack-5}}\\
-\vspace{-8mm}
-\setcounter{subfigure}{4}\subfloat[]{\includegraphics[width=0.7\marginparwidth]{figs/stack-4}\label{subfig:stack-4}}\\
-\vspace{-6mm}
-\setcounter{subfigure}{3}\subfloat[]{\includegraphics[width=0.7\marginparwidth]{figs/stack-3}\label{subfig:stack-3}}\\
-\vspace{-5mm}
-\setcounter{subfigure}{2}\subfloat[]{\includegraphics[width=0.7\marginparwidth]{figs/stack-2}\label{subfig:stack-2}}\\
-\vspace{-6mm}
-\setcounter{subfigure}{1}\subfloat[]{\includegraphics[width=0.7\marginparwidth]{figs/stack-1}\label{subfig:stack-1}}\\
-\vspace{-3mm}
-\setcounter{subfigure}{0}\subfloat[]{\includegraphics[width=0.7\marginparwidth]{figs/stack-0}\label{subfig:stack-0}}\\
-\caption[The stack of simplices in an extruded dart]{The extrusion of a single dart (blue) results in a stack of simplices that together form a prism.
-In order to visualise it more intuitively, the procedure here is shown from bottom (a) to top (g).
-}
-\label{fig:stack}
-}
-
-Since two darts connected by an $\alpha_i$ involution share all but the $i$-th node, and the $i$-th node in a generalised map means that a dart belongs to a certain $i$-cell\footnote{In this specific case, where cells have linear geometries.}, this series of darts represents a succession of simplices that progressively change from the cells at the `base' (at $r_{\min}$) to those at the `side' (at the interval $(r_{\min}, r_{\max})$) to those at the `top' (at $r_{\max}$).
-This can be more clearly seen in \reffig{fig:stack}.
-As the pattern that is followed in each stack of darts in $G^\prime$ is the same for all the darts in $G$, assuming that their extrusion intervals are the same, they can also be expressed in terms of the dart in $G$ being extruded and their position in the stack.
-The darts at a certain level in the stack are thus called a \emph{layer}, and various functions will map an input dart in $G$ to the equivalent dart at a specific layer in $G^\prime$.
-
-An intuitive justification for this is that if one considers the darts in the base and top facets in the extrusion of a cell $e$ along a single interval $r = (r_{\min}, r_{\max})$, these belong to different cells of every dimension except for their $n$-cell---which is $ex(e, r)$.
-Considering a function $e_i: D \rightarrow E$ that links a dart $d \in D$ to its $i$-embedding in $E$, for every dimension $i < n$, the darts of the base facet belong to the extruded $ex\left(e_i\left(d\right), r_{\min}\right)$ cells, while the top darts belong to the extruded $ex\left(e_i\left(d\right), r_{\max}\right)$ cells.
-The darts of the faces on the sides, which connect corresponding ridges of the base and top, belong instead to a mixture of cells in $ex\left(e_i\left(d\right), r_{\min}\right)$, $ex\left(e_i\left(d\right), r_{\max}\right)$ and $ex\left(e_i\left(d\right), r\right)$.
-The darts closer to the base face belong to cells in $ex\left(e_i\left(d\right), r_{\min}\right)$ and $ex\left(e_i\left(d\right), r\right)$, while those closer to the top belong to cells in $ex\left(e_i\left(d\right), r_{\max}\right)$ and $ex\left(e_i\left(d\right), r\right)$.
-This is natural when one considers that $\alpha_i$-linked darts differ only in one of their cells (\ie\ the $i$-cells), all other cells being the same for both darts.
-This means that there must be a natural progression of layers of darts: starting from the base, they change their cells one by one from $ex\left(e_i\left(d\right), r_{\min}\right)$ to $ex\left(e_i\left(d\right), r\right)$ from the highest dimension down, and then change their cells one by one from $ex\left(e_i\left(d\right), r\right)$ to $ex\left(e_i\left(d\right), r_{\max}\right)$ from the lowest dimension up until reaching the top.
-
-The algorithm to generate the extruded combinatorial structure therefore works by generating layers of darts that follow a pattern based on the darts in the input cell complex, starting from those for the base face, moving on to the $2n-2$ layers for the side faces, and finishing with the top face.
-The output darts and the involutions between them are expressed in terms of the input generalised map $G$.
-For this, a function $cur: G \rightarrow G^\prime$ maps a dart in $G$ to the corresponding dart in the currently being generated layer of the output map $G^\prime$.
-Note that this means that the algorithm needs to keep track of only two layers of darts at any given time, one in $G$ and one in $G^\prime$, each of which has at most the number of darts in the input map.
-This bounds the memory usage of this part of the algorithm, which is therefore on the order of $O(d)$, with $d$ the number of darts in the input space partition.
-
-As shown by \citet{Ferrucci93}, when multiple intervals are involved this procedure can simply be repeated for all intervals, assuming that these have all been subdivided so as not to intersect one another.
-However, it is possible to greatly reduce the number of darts generated by skipping the creation of some of the darts.
-This is possible because the extrusion intervals have been independently propagated to each cell of every dimension.
-Based on the algorithm, the lower-dimensional cells in the complex have received all the intervals from their incident higher-dimensional cells so that the intervals in the lower-dimensional cells contain all the endpoints of the intervals of their incidences.
-However, the same is not true in the opposite direction: the intervals for the higher-dimensional cells have not been subdivided so as to contain all the ones of their incident lower-dimensional cells.
-Nevertheless, as \reffig{fig:blocks} shows, even when an extrusion interval that would be used by the pattern described above is not in a cell, it is possible to map it to a \emph{bigger} interval that contains it.
-If one considers the darts that would be generated using the above mentioned approach for all the non-intersecting intervals in the cell complex, but at the same time mapping the non-existent extrusion intervals to their immediately bigger containing ones, this can result in many darts that are equivalent (\ie\ they have nodes at the same cells).
-These darts are those that can be skipped during the extrusion process.
-\begin{figure*}[tbp]
-\centering
-\subfloat[]{
-\includegraphics[width=0.45\linewidth]{figs/blocks-1}
-\label{subfig:blocks-1}}
-\quad
-\subfloat[]{
-\includegraphics[width=0.45\linewidth]{figs/blocks-2}
-\label{subfig:blocks-2}}
-\caption[The darts in the cell complexes in \reffig{fig:blockscomplex}]{The darts in the cell complexes in \reffig{fig:blockscomplex}.
-Note that the darts of the right cube in (b), when viewed as individual stacks, are similar to the ones in \reffigs{fig:triangle} and~\ref{fig:stack}.
-The darts of the left box are however different: those on the left all involve an extrusion along the interval $(a,c)$ due to the fact that there is no vertex, edge or facet extruded to $b$.
-On the other hand, those in the right do have a vertex and an edge at $b$, but not a facet and still belong to the same volume.}
-\label{fig:blocks}
-\end{figure*}
-
-Therefore, in order to generate the darts for all intervals of all cells, this procedure is repeated for all the intervals in $\rho$, after making them non-intersecting using the same procedure delineated in \refse{ss:propagation}, and skipping all the darts that would be equivalent to those that have already been created.
-This is done using a sweep-hyperplane-like algorithm that generates up to $n$ layers of darts at the events at the beginning or end of an interval, creating darts only when the sweep-hyperplane\footnote{\ie\ a $(n-1)$-dimensional shape that is unbounded along $n-1$ dimensions in $n$D space, \eg\ a line in $\mathbb{R}^2$ or a plane in $\mathbb{R}^3$.} passes by the beginning or end of their extrusion intervals (\ie\ not while it is in their interior).
-The darts are linked to their appropriate embedding according to the same pattern.
-The complete procedure to generate the combinatorial structure is presented in \refalgo{algo:gmapextrusion}, which uses the \refalgo{algo:gmaplayerbase} when the sweep hyperplane passes by the beginning of an interval and the similar \refalgo{algo:gmaplayertop} when the sweep hyperplane by the end of one.
-If an input dart is denoted as $d$, its corresponding dart in the currently being generated layer of the output is denoted as $cur(d)$, the dart linked to $d$ by an $i$-involution as $\alpha_{i}(d)$, and the $i$-embedding of $d$ as $e_{i}(d)$.
-
-% \begin{figure}
-\begin{algorithm}[tb]
-\small
-\SetKwInOut{Input}{Input}
-\SetKwInOut{Output}{Output}
-\DontPrintSemicolon\Input{generalised map $G$ of the input cell complex,\\
-set $E$ of the embeddings in the input cell complex,\\
-set $E^\prime$ of the embeddings for the output cell complex,\\
-map $\rho$ of the extrusion intervals for all cells of the input complex,\\
-map $ex$ that links an input embedding to its extruded embeddings}
-\Output{generalised map $G^\prime$ of the output cell complex}
-Compute an ordered set of non-intersecting intervals $r_{all}$ using all the intervals for all cells in $\rho$ \;
-Consider a sweep plane that passes through all the intervals $r_{all}$ in increasing order along dimension $n$ \;
-\If{the sweep plane passes by the beginning of an interval $r = (r_{\min}, r_{\max}) \in r_{all}$}{
- \For{$i \leftarrow n$ \KwTo$0$}{
- $\textsc{GMapLayerBegin}(G, G^{\prime}, i, E, E^{\prime}, \rho, r, ex)$ \;
- }
-}
-\If{the sweep plane passes by the end of an interval $r = (r_{\min}, r_{\max}) \in r_{all}$}{
- \For{$i \leftarrow 0$ \KwTo$n$}{
- $\textsc{GMapLayerEnd}(G, G^{\prime}, i, E, E^{\prime}, \rho, r, ex)$ \;
- }
-}
-\caption{\textsc{GMapExtrusion}}\label{algo:gmapextrusion}
-\end{algorithm}
-% \end{figure}
-
-% \begin{figure}[tb]
-\begin{algorithm}[tb]
-\small
-\SetKwInOut{Input}{Input}
-\SetKwInOut{Output}{Output}
-\DontPrintSemicolon\Input{generalised map $G$ of the input cell complex,\\
-generalised map $G^\prime$ of the output cell complex,\\
-dimension $i$ of the current layer,\\
-% map $last$ that links a dart in $G$ to a dart in the most recent layer of $G^\prime$,\\
-set $E$ of the embeddings in the input cell complex,\\
-set $E^\prime$ of the embeddings of the output cell complex,\\
-map $\rho$ of the extrusion intervals of all cells of the input complex,\\
-current interval $r$,\\
-map $ex$ that links an input embedding to its extruded embeddings}
-\Output{generalised map $G^\prime$ of the output cell complex}
-\ForEach{dart $d$ in $G$}{
- % \If{$r \subseteq \rho(e_{n-1}(d))$}{
- % \If{$\exists r^\prime \mid r \subseteq \rho(e_{n-1}(d), r^\prime)$}{
- \If{$\exists r^\prime \in \rho(e_{n-1}(d)) \mid r \subseteq r^\prime$}{
- % \If{$\rho(e_{i}(d), r_{\min}) \neq \emptyset$}{
- \If{$\exists r^{\prime\prime} \in \rho(e_{i}(d)) \mid r_{\min}^{\prime\prime} = r_{\min}$}{
- $last \leftarrow cur(d)$ \;
- $cur(d) \leftarrow$ new dart \;
- Put $cur(d)$ in $G^{\prime}$ \;
- $\alpha_{i+1}(cur(d)) \leftarrow last$ \;
- $\alpha_{i+1}(last) \leftarrow cur(d)$ \;
- }
- }
-}
-\ForEach{dart $d$ in $G$}{
- \If{$\exists r^\prime \in \rho(e_{n-1}(d)) \mid r \subseteq r^\prime$}{
- \If{$\exists r^{\prime\prime} \in \rho(e_{i}(d)) \mid r_{\min}^{\prime\prime} = r_{\min}$}{
- \For{$inv \leftarrow 0$ \KwTo$i-1$}{
- $\alpha_{inv}^{\prime}(cur(d)) \leftarrow cur(\alpha_{inv}(d))$ \;
- $\alpha_{inv}^{\prime}(cur(\alpha_{inv}(d))) \leftarrow cur(d)$ \;
- }
- \For{$inv \leftarrow i+2$ \KwTo$n$}{
- $\alpha_{inv}^{\prime}(cur(d)) \leftarrow cur(\alpha_{inv-1}(d))$ \;
- $\alpha_{inv}^{\prime}(cur(\alpha_{inv-1}(d))) \leftarrow cur(d)$ \;
- }
- \For{$emb \leftarrow 0$ \KwTo$i$}{
- $e_{emb}^{\prime}(cur(d)) \leftarrow ex(e_{emb}(d), r_{\min})$ \;
- }
- \For{$emb \leftarrow i+1$ \KwTo$n$}{
- $e_{emb}^{\prime}(cur(d)) \leftarrow ex(e_{emb-1}(d), r)$ \;
- }
- }
- }
-}
-\caption{\textsc{GMapLayerBegin}}\label{algo:gmaplayerbase}
-\end{algorithm}
-% \end{figure}
-
-% \begin{figure}[tb]
-\begin{algorithm}[tb]
-\small
-\SetKwInOut{Input}{Input}
-\SetKwInOut{Output}{Output}
-\DontPrintSemicolon\Input{generalised map $G$ of the input cell complex,\\
-generalised map $G^\prime$ of the output cell complex,\\
-dimension $i$ of the current layer,\\
-% map $last$ that links a dart in $G$ to a dart in the most recent layer of $G^\prime$,\\
-set $E$ of the embeddings in the input cell complex,\\
-set $E^\prime$ of the embeddings of the output cell complex,\\
-map $\rho$ of the extrusion intervals of all cells of the input complex,\\
-current interval $r$,\\
-map $ex$ that links an input embedding to its extruded embeddings}
-\Output{generalised map $G^\prime$ of the output cell complex}
-\ForEach{dart $d$ in $G$}{
-\label{ln:newlayerbegin}
- % \If{$\exists r^\prime \mid r \subseteq \rho(e_{n-1}(d), r^\prime)$}{
- \If{$\exists r^\prime \in \rho(e_{n-1}(d)) \mid r \subseteq r^\prime$}{
- % \If{$\rho(e_{i}(d), r_{\max}) \neq \emptyset$}{
- \If{$\exists r^{\prime\prime} \in \rho(e_{i}(d)) \mid r_{\max}^{\prime\prime} = r_{\max}$}{
- $last \leftarrow cur(d)$ \;
- $cur(d) \leftarrow$ new dart \;
- Put $cur(d)$ in $G^{\prime}$ \;
- $\alpha_{i}(cur(d)) \leftarrow last$ \;
- $\alpha_{i}(last) \leftarrow cur(d)$ \;
- }
- }
-}
-\label{ln:newlayerend}
-\ForEach{dart $d$ in $G$}{
- \If{$\exists r^\prime \in \rho(e_{n-1}(d)) \mid r \subseteq r^\prime$}{
- \If{$\exists r^{\prime\prime} \in \rho(e_{i}(d)) \mid r_{\max}^{\prime\prime} = r_{\max}$}{
- \For{$inv \leftarrow 0$ \KwTo$i-1$}{
-\label{ln:setinvolutionsbegin}
- $\alpha_{inv}^{\prime}(cur(d)) \leftarrow cur(\alpha_{inv}(d))$ \;
- $\alpha_{inv}^{\prime}(cur(\alpha_{inv}(d))) \leftarrow cur(d)$ \;
- }
- \For{$inv \leftarrow i+2$ \KwTo$n$}{
- $\alpha_{inv}^{\prime}(cur(d)) \leftarrow cur(\alpha_{inv-1}(d))$ \;
- $\alpha_{inv}^{\prime}(cur(\alpha_{inv-1}(d))) \leftarrow cur(d)$ \;
- }
-\label{ln:setinvolutionsend}
- \For{$emb \leftarrow 0$ \KwTo$i$}{
-\label{ln:setembeddingsbegin}
- $e_{emb}^{\prime}(cur(d)) \leftarrow ex(e_{emb}(d), r_{\max})$ \;
- }
- \For{$emb \leftarrow i+1$ \KwTo$n$}{
- $e_{emb}^{\prime}(cur(d)) \leftarrow ex(e_{emb-1}(d), r)$ \;
- }
-\label{ln:setembeddingsend}
- }
- }
-}
-\caption{\textsc{GMapLayerEnd}}\label{algo:gmaplayertop}
-\end{algorithm}
-% \end{figure}
-
-For the latter two algorithms, lines~\ref{ln:newlayerbegin}--\ref{ln:newlayerend} show the generation of a new layer of darts and its linking to the previous one, lines~\ref{ln:setinvolutionsbegin}--\ref{ln:setinvolutionsend} show how the darts within the layer are linked based on the pattern of the input map, and lines~\ref{ln:setembeddingsbegin}--\ref{ln:setembeddingsend} show how the darts within the layer are related to their correct embeddings, which are also patterned after the embeddings in the input.
-
-Notice that this method generates layers of darts in a grid-like fashion, each layer containing at most the number of darts in the input map, and calling \textsc{GMapLayerBegin} and \textsc{GMapLayerEnd} to create at most $2n$ layers per non-intersecting interval.
-The time complexity of computing the set of non-intersecting intervals in \refalgo{algo:propagateintervals} is $O(r \log r)$ as before, while the number of darts in the output map is bounded by $O(ndr)$, where $n$ is the extrusion dimension, $d$ is the total number of darts in the input map and $r$ is the total number of intervals in the input.
-
-\section{Implementation}
-\label{se:extrusion-implementation}
-
-The extrusion algorithm has been implemented in C++11 and made available under the open source MIT licence at \url{https://github.com/kenohori/lcc-tools}.
-It requires and builds upon the CGAL packages Combinatorial Maps and Linear Cell Complex, among others.
-The first package provides data structures and algorithms to store and to efficiently iterate over the darts of a combinatorial map, and the second links the 0-embeddings to other CGAL types in order to store the geometry of a model.
-
-As the algorithm is described on the basis of generalised maps while the CGAL packages instead use combinatorial maps, all operations are done through a small wrapper that converts operations for the former to operations for the latter.
-Since a combinatorial maps dart is equivalent to two generalised map darts (see \refse{ss:ordered-topological-models}), some redundant operations are ignored in the process, such as requests to create darts that already exist or to connect darts that are already connected.
-These redundant operations are instead used as assertions to verify the validity of the map during its creation.
-
-Both these packages and the implementation of the extrusion algorithm make heavy use of the traits programming technique \citep{Myers95} and recursive templates (TMP or template meta-programming) in order to produce efficient code.
-These techniques are described in \refse{se:traits}.
-One shortcoming of the current prototype implementation is that it uses the C++ type \texttt{std::map} in order to link cells to their extrusion intervals, which offers only logarithmic time access \citep[\S{}23.4]{ISO14882:2015}\footnote{See \citet{Austern00} for the consequences of this.}, rather than the constant time that would be possible by integrating this into the templated structures.
-This would involve storing the set of extrusion intervals of a cell directly in the data structure that is used for its attributes.
-
-In order to input and output data, as well as to visualise the results, the implementation uses the OGR Simple Feature Library\footnote{\url{http://gdal.org}} to read standard GIS data formats.
-It is also able to output Wavefront OBJ\footnote{\url{http://www.martinreddy.net/gfx/3d/OBJ.spec}} files, in which faces or darts can be directly exported for visualisation.
-In the latter case, darts are exported as triangles with vertices at the two 0-cells of a dart, as well as an added vertex at the centroid of its 2-cell.
-
-\section{Experiments}
-\label{se:extrusion-experiments}
-
-The algorithm has been tested by extruding various 2D datasets to higher dimensions.
-For this, several free and open datasets in the area of Delft are used, matching the geometries in some with the attributes present in others so as to obtain new attributes and appropriate extrusion intervals for each geometry.
-The tests were performed on a Mac OS X computer with a 2.7 GHz Intel Core 2 Duo processor and 12 GB of RAM.\@
-The main characteristics of the datasets tested are shown in \reftab{table:tests}.
-
-\begin{table*}[tbp]
-\caption[Extrusion test results]{Characteristics of the tested datasets. The cell counts represent the total number of cells for all dimensions.}
-\centering
-\small
-\begin{tabular}{lccccc}
-\toprule
-& \multicolumn{2}{c}{Input} & \multicolumn{2}{c}{Output} & \\
-\cmidrule(lr){2-3}
-\cmidrule(lr){4-5}
-Test & darts & cells & darts & cells & time \\
-\midrule
-One GBKN building to 5D & 14 & 29 & 80 640 & 783 & 3 s \\
-370 buildings to 4D & 3 268 & 6 065 & 123 184 & 42 552 & 12 s \\
-TOP10NL to 3D & 30 098 & 48 562 & 181 640 & 148 102 & 2 m 39 s\\
-\bottomrule
-\end{tabular}
-\label{table:tests}
-\end{table*}
-
-Note however that since the implementation uses an \texttt{std::map} to access the extrusion intervals of each cell, the running time is dominated by the large number of times this query is performed (several times per interval and per cell).
-The times provided in \reftab{table:tests} are therefore not indicative of the theoretical complexity of the algorithm, which is instead dominated by the generation and linking of the darts in the extruded dataset (\refse{ss:combinatorial}).
-The generation of the non-intersecting intervals for all cells (\refse{ss:propagation}) and the generation of the extruded embeddings (\refse{ss:embeddings}) always ran in under a second, even for very large datasets.
-
-\marginpar{
-\captionsetup{type=figure}
-\centering
-\subfloat[]{
-\includegraphics[width=\marginparwidth]{figs/aula-1}
-\label{subfig:aula-1}}
-\\
-\subfloat[]{
-\includegraphics[width=\marginparwidth]{figs/aula-2}
-\label{subfig:aula-2}}
-\caption[Extruding the footprint of the Aula Congress Centre in Delft to 3D]{Extruding the (a) footprint of the Aula Congress Centre in Delft to (b) a 3D representation showing individual darts. }
-\label{fig:aula-ex}
-}
-One test involved the Aula Congress Centre in Delft, a building represented by a single polygon with 14 vertices extracted from the GBKN dataset\footnote{\url{http://www.gbkn.nl}}, as shown in \reffig{fig:aula-ex}.
-It was extruded from 2D up to 5D using some manually added attributes: its height, construction date and a specified level of detail for the model.
-\reffig{fig:aula4d} shows the extruded model at an intermediate stage in this process, in 4D.
-The end result was a generalised map with 80 640 darts, 112 vertices, 280 edges, 260 facets, 110 volumes, 20 4-cells and 1 5-cell.
-It was generated in 3 seconds using 15 MB of RAM.\@
-\begin{figure*}[b]
-\centering
-\subfloat[]{
-\includegraphics[width=0.33\linewidth]{figs/aula4d-ends}
-\label{subfig:aula4d-ends}}
-% \quad
-\subfloat[]{
-\includegraphics[width=0.33\linewidth]{figs/aula4d-sides}
-\label{subfig:aula4d-sides}}
-% \quad
-\subfloat[]{
-\includegraphics[width=0.33\linewidth]{figs/aula4d-top-bottom}
-\label{subfig:aula4d-top-bottom}}
-\caption[Extruding the footprint of the Aula Congress Centre in Delft to 4D]{The footprint of the Aula Congress Centre (\reffig{fig:aula-ex}) extruded twice to create a 4D model.
-It is shown here in three parts for clarity: (a) the faces in the two end volumes, (b) the lateral faces connecting corresponding vertical edges, and (c) the top and bottom faces connecting corresponding horizontal edges.
-Not shown here are the 16 different polyhedra that bound the polychoron and which are all bounded by different sets of these faces.}
-\label{fig:aula4d}
-\end{figure*}
-
-Another test, shown in 2D and 3D in \reffig{fig:campus}, involved a previously generated dataset of the campus of the Delft University of Technology (see \citet{Ledoux11a}), consisting of 2 749 vertices, 2 946 edges, and 370 facets.
-\begin{figure}[tb]
-\centering
-\subfloat[]{
-\includegraphics[width=0.5\linewidth]{figs/campus}
-\label{subfig:campus}}
-% \quad
-\subfloat[]{
-\includegraphics[width=0.5\linewidth]{figs/campusextruded}
-\label{subfig:campusextruded}}
-\\
-\subfloat[]{
-\includegraphics[width=\linewidth]{figs/campusdarts}
-\label{subfig:campusdarts}}
-\caption{Extruding a dataset of the campus of the Delft University of Technology}
-\label{fig:campus}
-\end{figure}
-This dataset, covering 2.3 km$^{2}$, was originally built from the GBKN dataset by manually forming footprint polygons from the lines in the dataset.
-Building heights for each polygon were obtained from the AHN dataset\footnote{\url{http://www.ahn.nl}} (airborne laser altimetry), while building dates were obtained from the BAG dataset\footnote{\url{https://www.kadaster.nl/bag}}.
-This dataset, including the added attributes, is available together with the source code of the program.
-It was therefore extruded from its original 2D representation to 4D using building heights for the third dimension and dates for the fourth dimension.
-The result was a generalised map with 123 184 darts, 8 613 vertices, 17 919 edges, 12 471 facets, 3 310 volumes and 239 4-cells.
-It was generated in 12 seconds using 46 MB of RAM.\@
-
-One more test used 1 836 buildings from Delft from the TOP10NL dataset\footnote{\url{http://www.kadaster.nl/web/artikel/producten/TOP10NL.htm}}, which was extruded to 3D using intervals from building dates also obtained from the BAG dataset.
-The result was a generalised map with 181 640 darts, 46 464 vertices, 71 826 edges, 27 975 facets and 1 837 volumes.
-
-An algorithm was used to verify that the constructed datasets conform to the definition of a combinatorial map\footnote{\ie\ checking that the links between darts correctly form partial permutations or involutions, and all the darts in the orbit of an $i$-cell are linked to its correct $i$-attribute and vice versa.}.
-Additional tests were made to ensure that all the darts of an $i$-cell correctly point to it in their $i$-embeddings, and to verify that all the darts of an $n$-cell are linked to point embeddings within the extrusion interval given for the $n$-cell, among other tests.
-The extruded datasets were also inspected visually in 2D and 3D by exporting 2-cells as polygons and verifying that they form a valid cell complex, \ie\ that 2-cells intersect only at their common boundaries, forming 1-cells that are also in the complex.
-In 2D and 3D, individual darts were also exported as triangles to visually verify that they form a valid generalised map (as shown in \reffigs{subfig:aula-2} and~\ref{subfig:campusdarts}).
-
-\section{Extrusion-based generalisation operations}
-\label{se:extrusion-generalisation}
-
-Apart from using extrusion to directly create finished higher-dimensional datasets, it is also interesting to explore the possibility to use it as a base for further operations.
-For instance, it can be used as the basis of a simple set of dimension-independent generalisation operations.
-
-Starting from a detailed $n$-dimensional cell complex, it is possible to first extrude the complex to create an $(n+1)$-dimensional cell complex, then to obtain the desired geometry by applying certain transformations to the vertices of the `top' or `bottom' facet of the extruded model, even if this procedure results in degenerate cells, and finally to remove the degenerate cells from the model.
-
-The transformations that can be applied to the model include all those that can be applied through transformation matrices, such as those shown in \reffigp{fig:aula-transformations} (translation, rotation and scale), as well as others such as reflections and shears.
-Perhaps more importantly, it is possible to gradually reduce the complexity of the model by collapsing cells of any dimension, which is achieved by simply moving all vertices of a cell to the same location, as is shown in \reffig{fig:aula-collapse}.
-\marginpar{
-\captionsetup{type=figure}
-\centering
-\subfloat[]{
-\includegraphics[width=\marginparwidth]{figs/aula-collapse}
-\label{subfig:aula-collapse}}
-\\
-\subfloat[]{
-\includegraphics[width=\marginparwidth]{figs/aula-edge-collapse}
-\label{subfig:aula-edge-collapse}}
-\caption[Collapsing cells]{Cells can be collapsed by moving all of their vertices to the same location. Shown here are the collapse of: (a) a face and (b) an edge (in red).}
-\label{fig:aula-collapse}
-}
-
-After such transformations, it is possible to easily detect and remove degenerate cells, as they can be identified because they have all their vertices at the same location.
-In the case of a topological model, such as a generalised or combinatorial map, the topological relationships around the collapsed cells will have to be recomputed.
-However, this is possible to achieve either by finding the changed incidences and adjacencies, or by regenerating all topological relationships using the method described in \refch{ch:incremental-construction}.
-For the latter, it is simply necessary to ignore all degenerate cells (as defined by having all their vertices at the same embedding in $\mathbb{R}^n$).
-
-\section{Conclusions}
-\label{se:extrusion-conclusions}
-
-Extrusion in the GIS sense has a natural extension into a dimension-independent formulation.
-It can be used to load existing 2D or 3D data into a higher-dimensional structure, either directly or as a base for further (dimension-independent) operations, such as the generalisation operations described in \refse{se:extrusion-generalisation}.
-The conceptual simplicity of extrusion makes it particularly suitable for higher-dimensional data, as the complex problem of its generation can be reduced to the definition of extrusion intervals per $n$-cell in an $n$-dimensional cell complex.
-By ensuring that the input $n$-cells do not overlap---which is a general precondition in a geometric cell complex---, and the extrusion intervals per cell also do not overlap, it is easy to guarantee that the output cell complex forms a valid $(n+1)$-dimensional space partition.
-
-The dimension-independent extrusion formulation has been realised into an algorithm, presented in this chapter, which supports multiple intervals per input object and it is also memory efficient---only three layers of darts of the same size as the input map need to be kept in main memory at the same time.
-It is also relatively fast, with a worst case complexity of $O(ndr)$ in the main algorithm, where $n$ is the extrusion dimension\footnote{In practice a small constant.}, $d$ is the total number of darts in the input map and $r$ is the total number of intervals in the input, but offers better complexity in practice.
-
-Moreover, the algorithm has been implemented using CGAL Combinatorial Maps and the source code has been made publicly available under a permissive licence.
-It has also been tested with publicly available datasets commonly used in GIS.\@
-Apart from being applied cell by cell, it can also be combined with other operations, such as the generalisation operations described here or building certain $n$D cells incrementally, where more complex models are required only for a subset of the objects in a model.
-
-While the implementation presented here performs well enough for typical GIS datasets, it could be made faster by integrating the extrusion intervals into the embeddings of the cells, allowing for constant time access to the extrusion intervals.
-This would make it possible to support much larger datasets and make the implementation match the theoretical complexity of the algorithm.
-In order to improve memory usage, another possibility would be implementing the algorithm in a more compact representation of a simplicial complex, \eg\ \citet{Boissonnat12}.
-
-In the future, it would be interesting to consider other types of models that can be generated using extrusion-like algorithms, such as sweeps and $n$-dimensional cells of revolution.
-These are both simple extensions either using either non-linear embeddings or discretised approximations with small cells with linear geometries.
-A more complex extension would involve starting from a \emph{series of cell complexes} that each form a planar partition, such as series of 3D models of the same region at different levels of detail.
-While most of the algorithm described here should work directly on this latter example, managing the differing boundaries of the cells along the $n$-th dimension could be challenging---possibly requiring the computation of all intersections in an arrangement of $(n-1)$-cells.
\ No newline at end of file
diff --git a/work_report/figs/0-cell-double-star.pdf b/work_report/figs/0-cell-double-star.pdf
deleted file mode 100644
index cae6622..0000000
Binary files a/work_report/figs/0-cell-double-star.pdf and /dev/null differ
diff --git a/work_report/figs/0-cell-embedding.jpg b/work_report/figs/0-cell-embedding.jpg
deleted file mode 100644
index e40f2e3..0000000
Binary files a/work_report/figs/0-cell-embedding.jpg and /dev/null differ
diff --git a/work_report/figs/0-cell-star.pdf b/work_report/figs/0-cell-star.pdf
deleted file mode 100644
index 50ed473..0000000
Binary files a/work_report/figs/0-cell-star.pdf and /dev/null differ
diff --git a/work_report/figs/0-cell.pdf b/work_report/figs/0-cell.pdf
deleted file mode 100644
index 08b36f6..0000000
Binary files a/work_report/figs/0-cell.pdf and /dev/null differ
diff --git a/work_report/figs/0-simplex.pdf b/work_report/figs/0-simplex.pdf
deleted file mode 100644
index 1264745..0000000
Binary files a/work_report/figs/0-simplex.pdf and /dev/null differ
diff --git a/work_report/figs/1-cell-boundary.pdf b/work_report/figs/1-cell-boundary.pdf
deleted file mode 100644
index 7546d26..0000000
Binary files a/work_report/figs/1-cell-boundary.pdf and /dev/null differ
diff --git a/work_report/figs/1-cell-star.pdf b/work_report/figs/1-cell-star.pdf
deleted file mode 100644
index 4a000ab..0000000
Binary files a/work_report/figs/1-cell-star.pdf and /dev/null differ
diff --git a/work_report/figs/1-simplex-boundary.pdf b/work_report/figs/1-simplex-boundary.pdf
deleted file mode 100644
index 5470a80..0000000
Binary files a/work_report/figs/1-simplex-boundary.pdf and /dev/null differ
diff --git a/work_report/figs/1-simplex-star.pdf b/work_report/figs/1-simplex-star.pdf
deleted file mode 100644
index 2e0437c..0000000
Binary files a/work_report/figs/1-simplex-star.pdf and /dev/null differ
diff --git a/work_report/figs/16tiles.jpg b/work_report/figs/16tiles.jpg
deleted file mode 100644
index 519a5c7..0000000
Binary files a/work_report/figs/16tiles.jpg and /dev/null differ
diff --git a/work_report/figs/2-cell-boundary.pdf b/work_report/figs/2-cell-boundary.pdf
deleted file mode 100644
index a52e68a..0000000
Binary files a/work_report/figs/2-cell-boundary.pdf and /dev/null differ
diff --git a/work_report/figs/2-simplex-adjacency.pdf b/work_report/figs/2-simplex-adjacency.pdf
deleted file mode 100644
index 74aacde..0000000
Binary files a/work_report/figs/2-simplex-adjacency.pdf and /dev/null differ
diff --git a/work_report/figs/2-simplex-boundary.pdf b/work_report/figs/2-simplex-boundary.pdf
deleted file mode 100644
index 0813e8d..0000000
Binary files a/work_report/figs/2-simplex-boundary.pdf and /dev/null differ
diff --git a/work_report/figs/2-simplex-vertices.pdf b/work_report/figs/2-simplex-vertices.pdf
deleted file mode 100644
index 95bcbe6..0000000
Binary files a/work_report/figs/2-simplex-vertices.pdf and /dev/null differ
diff --git a/work_report/figs/2d+scale.jpg b/work_report/figs/2d+scale.jpg
deleted file mode 100644
index 94ea17f..0000000
Binary files a/work_report/figs/2d+scale.jpg and /dev/null differ
diff --git a/work_report/figs/2d+time.jpg b/work_report/figs/2d+time.jpg
deleted file mode 100644
index c299091..0000000
Binary files a/work_report/figs/2d+time.jpg and /dev/null differ
diff --git a/work_report/figs/2dcc-alphas.pdf b/work_report/figs/2dcc-alphas.pdf
deleted file mode 100644
index 0fc12b1..0000000
Binary files a/work_report/figs/2dcc-alphas.pdf and /dev/null differ
diff --git a/work_report/figs/2dcc-betas.pdf b/work_report/figs/2dcc-betas.pdf
deleted file mode 100644
index c5bc60b..0000000
Binary files a/work_report/figs/2dcc-betas.pdf and /dev/null differ
diff --git a/work_report/figs/2dcc-gmap.pdf b/work_report/figs/2dcc-gmap.pdf
deleted file mode 100644
index 05fdd25..0000000
Binary files a/work_report/figs/2dcc-gmap.pdf and /dev/null differ
diff --git a/work_report/figs/2dcc.pdf b/work_report/figs/2dcc.pdf
deleted file mode 100644
index 289b2c2..0000000
Binary files a/work_report/figs/2dcc.pdf and /dev/null differ
diff --git a/work_report/figs/2tetra-before-3sew.pdf b/work_report/figs/2tetra-before-3sew.pdf
deleted file mode 100644
index eb5a8d0..0000000
Binary files a/work_report/figs/2tetra-before-3sew.pdf and /dev/null differ
diff --git a/work_report/figs/2tetra-map.pdf b/work_report/figs/2tetra-map.pdf
deleted file mode 100644
index 97f9baf..0000000
Binary files a/work_report/figs/2tetra-map.pdf and /dev/null differ
diff --git a/work_report/figs/2tetra.pdf b/work_report/figs/2tetra.pdf
deleted file mode 100644
index 4dd424d..0000000
Binary files a/work_report/figs/2tetra.pdf and /dev/null differ
diff --git a/work_report/figs/3-sew.pdf b/work_report/figs/3-sew.pdf
deleted file mode 100644
index f3313e0..0000000
Binary files a/work_report/figs/3-sew.pdf and /dev/null differ
diff --git a/work_report/figs/3dgeoinfo.pdf b/work_report/figs/3dgeoinfo.pdf
deleted file mode 100644
index 0e48776..0000000
Binary files a/work_report/figs/3dgeoinfo.pdf and /dev/null differ
diff --git a/work_report/figs/3dtop10nl.jpg b/work_report/figs/3dtop10nl.jpg
deleted file mode 100644
index a746dc6..0000000
Binary files a/work_report/figs/3dtop10nl.jpg and /dev/null differ
diff --git a/work_report/figs/4DslicingHouses.pdf b/work_report/figs/4DslicingHouses.pdf
deleted file mode 100644
index d6ef41a..0000000
Binary files a/work_report/figs/4DslicingHouses.pdf and /dev/null differ
diff --git a/work_report/figs/4dhouse.jpg b/work_report/figs/4dhouse.jpg
deleted file mode 100644
index 1953fee..0000000
Binary files a/work_report/figs/4dhouse.jpg and /dev/null differ
diff --git a/work_report/figs/Frauenkirche.jpg b/work_report/figs/Frauenkirche.jpg
deleted file mode 100644
index a415de2..0000000
Binary files a/work_report/figs/Frauenkirche.jpg and /dev/null differ
diff --git a/work_report/figs/SlicingPrism2D.pdf b/work_report/figs/SlicingPrism2D.pdf
deleted file mode 100644
index 1bca65d..0000000
Binary files a/work_report/figs/SlicingPrism2D.pdf and /dev/null differ
diff --git a/work_report/figs/SlicingPrism2DResult.pdf b/work_report/figs/SlicingPrism2DResult.pdf
deleted file mode 100644
index e8ebcdb..0000000
Binary files a/work_report/figs/SlicingPrism2DResult.pdf and /dev/null differ
diff --git a/work_report/figs/agg2.pdf b/work_report/figs/agg2.pdf
deleted file mode 100644
index c14cef9..0000000
Binary files a/work_report/figs/agg2.pdf and /dev/null differ
diff --git a/work_report/figs/aluminum.jpg b/work_report/figs/aluminum.jpg
deleted file mode 100644
index 186a840..0000000
Binary files a/work_report/figs/aluminum.jpg and /dev/null differ
diff --git a/work_report/figs/annulus.pdf b/work_report/figs/annulus.pdf
deleted file mode 100644
index 9fd7c5a..0000000
Binary files a/work_report/figs/annulus.pdf and /dev/null differ
diff --git a/work_report/figs/atkis.jpg b/work_report/figs/atkis.jpg
deleted file mode 100644
index 68659fe..0000000
Binary files a/work_report/figs/atkis.jpg and /dev/null differ
diff --git a/work_report/figs/aula-1.png b/work_report/figs/aula-1.png
deleted file mode 100644
index 79fc22a..0000000
Binary files a/work_report/figs/aula-1.png and /dev/null differ
diff --git a/work_report/figs/aula-2.jpg b/work_report/figs/aula-2.jpg
deleted file mode 100644
index 8f584ac..0000000
Binary files a/work_report/figs/aula-2.jpg and /dev/null differ
diff --git a/work_report/figs/aula-collapse.jpg b/work_report/figs/aula-collapse.jpg
deleted file mode 100644
index 3bd6754..0000000
Binary files a/work_report/figs/aula-collapse.jpg and /dev/null differ
diff --git a/work_report/figs/aula-edge-collapse.jpg b/work_report/figs/aula-edge-collapse.jpg
deleted file mode 100644
index 435a470..0000000
Binary files a/work_report/figs/aula-edge-collapse.jpg and /dev/null differ
diff --git a/work_report/figs/aula-extruded.jpg b/work_report/figs/aula-extruded.jpg
deleted file mode 100644
index a3352f2..0000000
Binary files a/work_report/figs/aula-extruded.jpg and /dev/null differ
diff --git a/work_report/figs/aula-moved.jpg b/work_report/figs/aula-moved.jpg
deleted file mode 100644
index f59a873..0000000
Binary files a/work_report/figs/aula-moved.jpg and /dev/null differ
diff --git a/work_report/figs/aula-rotated.jpg b/work_report/figs/aula-rotated.jpg
deleted file mode 100644
index 5c7deec..0000000
Binary files a/work_report/figs/aula-rotated.jpg and /dev/null differ
diff --git a/work_report/figs/aula-scaled.jpg b/work_report/figs/aula-scaled.jpg
deleted file mode 100644
index 351b8fe..0000000
Binary files a/work_report/figs/aula-scaled.jpg and /dev/null differ
diff --git a/work_report/figs/aula.jpg b/work_report/figs/aula.jpg
deleted file mode 100644
index 72e0234..0000000
Binary files a/work_report/figs/aula.jpg and /dev/null differ
diff --git a/work_report/figs/aula4d-ends.jpg b/work_report/figs/aula4d-ends.jpg
deleted file mode 100644
index 1988143..0000000
Binary files a/work_report/figs/aula4d-ends.jpg and /dev/null differ
diff --git a/work_report/figs/aula4d-sides.jpg b/work_report/figs/aula4d-sides.jpg
deleted file mode 100644
index 3b2336d..0000000
Binary files a/work_report/figs/aula4d-sides.jpg and /dev/null differ
diff --git a/work_report/figs/aula4d-top-bottom.jpg b/work_report/figs/aula4d-top-bottom.jpg
deleted file mode 100644
index 0d8e385..0000000
Binary files a/work_report/figs/aula4d-top-bottom.jpg and /dev/null differ
diff --git a/work_report/figs/axes-es.pdf b/work_report/figs/axes-es.pdf
deleted file mode 100644
index 6db90c5..0000000
Binary files a/work_report/figs/axes-es.pdf and /dev/null differ
diff --git a/work_report/figs/axes-nl.pdf b/work_report/figs/axes-nl.pdf
deleted file mode 100644
index 65488a5..0000000
Binary files a/work_report/figs/axes-nl.pdf and /dev/null differ
diff --git a/work_report/figs/axes.pdf b/work_report/figs/axes.pdf
deleted file mode 100644
index 0115572..0000000
Binary files a/work_report/figs/axes.pdf and /dev/null differ
diff --git a/work_report/figs/barcode.pdf b/work_report/figs/barcode.pdf
deleted file mode 100644
index 73afff6..0000000
Binary files a/work_report/figs/barcode.pdf and /dev/null differ
diff --git a/work_report/figs/bk.jpg b/work_report/figs/bk.jpg
deleted file mode 100644
index a66be43..0000000
Binary files a/work_report/figs/bk.jpg and /dev/null differ
diff --git a/work_report/figs/bksep.png b/work_report/figs/bksep.png
deleted file mode 100644
index 8b6c67f..0000000
Binary files a/work_report/figs/bksep.png and /dev/null differ
diff --git a/work_report/figs/blocks-1.pdf b/work_report/figs/blocks-1.pdf
deleted file mode 100644
index 9504af0..0000000
Binary files a/work_report/figs/blocks-1.pdf and /dev/null differ
diff --git a/work_report/figs/blocks-2.pdf b/work_report/figs/blocks-2.pdf
deleted file mode 100644
index f705d91..0000000
Binary files a/work_report/figs/blocks-2.pdf and /dev/null differ
diff --git a/work_report/figs/blockscomplex-1.jpg b/work_report/figs/blockscomplex-1.jpg
deleted file mode 100644
index 25c9cb0..0000000
Binary files a/work_report/figs/blockscomplex-1.jpg and /dev/null differ
diff --git a/work_report/figs/blockscomplex-2.jpg b/work_report/figs/blockscomplex-2.jpg
deleted file mode 100644
index eb4a787..0000000
Binary files a/work_report/figs/blockscomplex-2.jpg and /dev/null differ
diff --git a/work_report/figs/boolean-difference.jpg b/work_report/figs/boolean-difference.jpg
deleted file mode 100644
index e495574..0000000
Binary files a/work_report/figs/boolean-difference.jpg and /dev/null differ
diff --git a/work_report/figs/boolean-intersection.jpg b/work_report/figs/boolean-intersection.jpg
deleted file mode 100644
index c540c6d..0000000
Binary files a/work_report/figs/boolean-intersection.jpg and /dev/null differ
diff --git a/work_report/figs/boolean-union.jpg b/work_report/figs/boolean-union.jpg
deleted file mode 100644
index cabf62c..0000000
Binary files a/work_report/figs/boolean-union.jpg and /dev/null differ
diff --git a/work_report/figs/boolean.jpg b/work_report/figs/boolean.jpg
deleted file mode 100644
index e6d15f6..0000000
Binary files a/work_report/figs/boolean.jpg and /dev/null differ
diff --git a/work_report/figs/brep.pdf b/work_report/figs/brep.pdf
deleted file mode 100644
index 1d4f035..0000000
Binary files a/work_report/figs/brep.pdf and /dev/null differ
diff --git a/work_report/figs/bridge-1.pdf b/work_report/figs/bridge-1.pdf
deleted file mode 100644
index 5f1a538..0000000
Binary files a/work_report/figs/bridge-1.pdf and /dev/null differ
diff --git a/work_report/figs/bridge-2.pdf b/work_report/figs/bridge-2.pdf
deleted file mode 100644
index 3022572..0000000
Binary files a/work_report/figs/bridge-2.pdf and /dev/null differ
diff --git a/work_report/figs/campus.jpg b/work_report/figs/campus.jpg
deleted file mode 100644
index b8836e8..0000000
Binary files a/work_report/figs/campus.jpg and /dev/null differ
diff --git a/work_report/figs/campusdarts.jpg b/work_report/figs/campusdarts.jpg
deleted file mode 100644
index cc5cfc0..0000000
Binary files a/work_report/figs/campusdarts.jpg and /dev/null differ
diff --git a/work_report/figs/campusextruded.jpg b/work_report/figs/campusextruded.jpg
deleted file mode 100644
index c740c55..0000000
Binary files a/work_report/figs/campusextruded.jpg and /dev/null differ
diff --git a/work_report/figs/cellcomplex-cells.pdf b/work_report/figs/cellcomplex-cells.pdf
deleted file mode 100644
index 7afbd57..0000000
Binary files a/work_report/figs/cellcomplex-cells.pdf and /dev/null differ
diff --git a/work_report/figs/cellcomplex-polygons.pdf b/work_report/figs/cellcomplex-polygons.pdf
deleted file mode 100644
index 9e8d7e8..0000000
Binary files a/work_report/figs/cellcomplex-polygons.pdf and /dev/null differ
diff --git a/work_report/figs/cellscampus.jpg b/work_report/figs/cellscampus.jpg
deleted file mode 100644
index e592c55..0000000
Binary files a/work_report/figs/cellscampus.jpg and /dev/null differ
diff --git a/work_report/figs/citygml-filip.jpg b/work_report/figs/citygml-filip.jpg
deleted file mode 100644
index 10125cb..0000000
Binary files a/work_report/figs/citygml-filip.jpg and /dev/null differ
diff --git a/work_report/figs/citygml.pdf b/work_report/figs/citygml.pdf
deleted file mode 100644
index 3f8efb9..0000000
Binary files a/work_report/figs/citygml.pdf and /dev/null differ
diff --git a/work_report/figs/cmap-3d-vertices.jpg b/work_report/figs/cmap-3d-vertices.jpg
deleted file mode 100644
index abfb6fe..0000000
Binary files a/work_report/figs/cmap-3d-vertices.jpg and /dev/null differ
diff --git a/work_report/figs/cmap-3d.jpg b/work_report/figs/cmap-3d.jpg
deleted file mode 100644
index 564be99..0000000
Binary files a/work_report/figs/cmap-3d.jpg and /dev/null differ
diff --git a/work_report/figs/cmap-free.pdf b/work_report/figs/cmap-free.pdf
deleted file mode 100644
index 4dc52d6..0000000
Binary files a/work_report/figs/cmap-free.pdf and /dev/null differ
diff --git a/work_report/figs/cmaps-orientation-1.pdf b/work_report/figs/cmaps-orientation-1.pdf
deleted file mode 100644
index f978be8..0000000
Binary files a/work_report/figs/cmaps-orientation-1.pdf and /dev/null differ
diff --git a/work_report/figs/cmaps-orientation-2.pdf b/work_report/figs/cmaps-orientation-2.pdf
deleted file mode 100644
index 2aa8bb4..0000000
Binary files a/work_report/figs/cmaps-orientation-2.pdf and /dev/null differ
diff --git a/work_report/figs/cmaps-simplices.pdf b/work_report/figs/cmaps-simplices.pdf
deleted file mode 100644
index 2a0a10a..0000000
Binary files a/work_report/figs/cmaps-simplices.pdf and /dev/null differ
diff --git a/work_report/figs/conic-circle.jpg b/work_report/figs/conic-circle.jpg
deleted file mode 100644
index a88e5da..0000000
Binary files a/work_report/figs/conic-circle.jpg and /dev/null differ
diff --git a/work_report/figs/conic-ellipse.jpg b/work_report/figs/conic-ellipse.jpg
deleted file mode 100644
index 5bab2bb..0000000
Binary files a/work_report/figs/conic-ellipse.jpg and /dev/null differ
diff --git a/work_report/figs/conic-hyperbola.jpg b/work_report/figs/conic-hyperbola.jpg
deleted file mode 100644
index 3d104b1..0000000
Binary files a/work_report/figs/conic-hyperbola.jpg and /dev/null differ
diff --git a/work_report/figs/conic-parabola.jpg b/work_report/figs/conic-parabola.jpg
deleted file mode 100644
index f20a7cb..0000000
Binary files a/work_report/figs/conic-parabola.jpg and /dev/null differ
diff --git a/work_report/figs/construction-faces.jpg b/work_report/figs/construction-faces.jpg
deleted file mode 100644
index 8ca315f..0000000
Binary files a/work_report/figs/construction-faces.jpg and /dev/null differ
diff --git a/work_report/figs/construction-vertices.jpg b/work_report/figs/construction-vertices.jpg
deleted file mode 100644
index 6cd1a25..0000000
Binary files a/work_report/figs/construction-vertices.jpg and /dev/null differ
diff --git a/work_report/figs/construction-volumes.jpg b/work_report/figs/construction-volumes.jpg
deleted file mode 100644
index e3d4827..0000000
Binary files a/work_report/figs/construction-volumes.jpg and /dev/null differ
diff --git a/work_report/figs/construction.cpp b/work_report/figs/construction.cpp
deleted file mode 100644
index 21aea19..0000000
--- a/work_report/figs/construction.cpp
+++ /dev/null
@@ -1,47 +0,0 @@
-// 2: Left of first house (yellow)
-faceLists.push_back(...);
-faceLists.back().push_back(vertices[0]);
-faceLists.back().push_back(vertices[2]);
-faceLists.back().push_back(vertices[6]);
-faceLists.back().push_back(vertices[4]);
-
-//21: Back right vertical edge (blue)
-faceLists.push_back(...);
-faceLists.back().push_back(vertices[3]);
-faceLists.back().push_back(vertices[7]);
-faceLists.back().push_back(vertices[15]);
-faceLists.back().push_back(vertices[11]);
-
-for (int i = 0; i < 35; ++i)
- faces.push_back(
- builder.get_facet_from_vertices(
- faceLists[i].begin(),
- faceLists[i].end(), false).first);
-
-// 1: Right house (green)
-volumeLists.push_back(...);
-volumeLists.back().push_back(faces[6]);
-volumeLists.back().push_back(faces[7]);
-volumeLists.back().push_back(faces[8]);
-volumeLists.back().push_back(faces[9]);
-volumeLists.back().push_back(faces[10]);
-volumeLists.back().push_back(faces[11]);
-volumeLists.back().push_back(faces[12]);
-volumeLists.back().push_back(faces[13]);
-volumeLists.back().push_back(faces[14]);
-
-// 11: Roof from left to right tip (red)
-volumeLists.push_back(...);
-volumeLists.back().push_back(faces[31]);
-volumeLists.back().push_back(faces[32]);
-volumeLists.back().push_back(faces[33]);
-volumeLists.back().push_back(faces[34]);
-volumeLists.back().push_back(faces[5]);
-
-for (int i = 0; i < 12; ++i)
- volumes.push_back(builder.get_cell<3>(
- volumeLists[i].begin(),
- volumeLists[i].end()).first);
-
-LCC::Dart_handle house4d = builder.get_cell<4>(
- volumes.begin(), volumes.end()).first;
\ No newline at end of file
diff --git a/work_report/figs/corine.png b/work_report/figs/corine.png
deleted file mode 100644
index b9102ec..0000000
Binary files a/work_report/figs/corine.png and /dev/null differ
diff --git a/work_report/figs/csg.jpg b/work_report/figs/csg.jpg
deleted file mode 100644
index b4b0a1f..0000000
Binary files a/work_report/figs/csg.jpg and /dev/null differ
diff --git a/work_report/figs/cube.jpg b/work_report/figs/cube.jpg
deleted file mode 100644
index f3694df..0000000
Binary files a/work_report/figs/cube.jpg and /dev/null differ
diff --git a/work_report/figs/darts-of-cell-1.pdf b/work_report/figs/darts-of-cell-1.pdf
deleted file mode 100644
index ec76e36..0000000
Binary files a/work_report/figs/darts-of-cell-1.pdf and /dev/null differ
diff --git a/work_report/figs/darts-of-cell-2.pdf b/work_report/figs/darts-of-cell-2.pdf
deleted file mode 100644
index 9a49ef5..0000000
Binary files a/work_report/figs/darts-of-cell-2.pdf and /dev/null differ
diff --git a/work_report/figs/dimensionindependent.txt b/work_report/figs/dimensionindependent.txt
deleted file mode 100644
index 5ef042a..0000000
--- a/work_report/figs/dimensionindependent.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-// Abstracts a map of cell->ranges for a particular dimension
-template
-struct Extrusion_ranges_map_of_dimension {
-public:
- typedef std::map::type,
- Extrusion_ranges > type;
- type ranges_map;
-};
-
-// Abstracts a tuple of maps of cell->ranges, each element containing the map of a particular dimension
-template >
-struct Extrusion_ranges_tuple_per_dimension_up_to;
-
-template
-struct Extrusion_ranges_tuple_per_dimension_up_to > {
- typedef CGAL::cpp11::tuple, Result ...> type;
-};
-
-template
-struct Extrusion_ranges_tuple_per_dimension_up_to > {
- typedef typename Extrusion_ranges_tuple_per_dimension_up_to, Result ...> >::type type;
-};
-
-// Abstracts a tuple of maps of cell->ranges, each element containing the map of a particular dimension
-template
-struct Extrusion_ranges_tuple_per_dimension {
-public:
- typedef LCC_ LCC;
- typedef typename Extrusion_ranges_tuple_per_dimension_up_to::type type;
- type ranges;
-};
\ No newline at end of file
diff --git a/work_report/figs/donut.jpg b/work_report/figs/donut.jpg
deleted file mode 100644
index 7a24249..0000000
Binary files a/work_report/figs/donut.jpg and /dev/null differ
diff --git a/work_report/figs/dpm1.pdf b/work_report/figs/dpm1.pdf
deleted file mode 100644
index 7491c8f..0000000
Binary files a/work_report/figs/dpm1.pdf and /dev/null differ
diff --git a/work_report/figs/dpm2.pdf b/work_report/figs/dpm2.pdf
deleted file mode 100644
index 39c111d..0000000
Binary files a/work_report/figs/dpm2.pdf and /dev/null differ
diff --git a/work_report/figs/dpm3.pdf b/work_report/figs/dpm3.pdf
deleted file mode 100644
index 088ec4d..0000000
Binary files a/work_report/figs/dpm3.pdf and /dev/null differ
diff --git a/work_report/figs/dual_gmap1.pdf b/work_report/figs/dual_gmap1.pdf
deleted file mode 100644
index 7b6f7e7..0000000
Binary files a/work_report/figs/dual_gmap1.pdf and /dev/null differ
diff --git a/work_report/figs/dual_gmap2.pdf b/work_report/figs/dual_gmap2.pdf
deleted file mode 100644
index 6a73891..0000000
Binary files a/work_report/figs/dual_gmap2.pdf and /dev/null differ
diff --git a/work_report/figs/dual_gmap3.pdf b/work_report/figs/dual_gmap3.pdf
deleted file mode 100644
index c0e1a41..0000000
Binary files a/work_report/figs/dual_gmap3.pdf and /dev/null differ
diff --git a/work_report/figs/dual_gmap4.pdf b/work_report/figs/dual_gmap4.pdf
deleted file mode 100644
index e88f6c9..0000000
Binary files a/work_report/figs/dual_gmap4.pdf and /dev/null differ
diff --git a/work_report/figs/exsimple.pdf b/work_report/figs/exsimple.pdf
deleted file mode 100644
index 7c10d50..0000000
Binary files a/work_report/figs/exsimple.pdf and /dev/null differ
diff --git a/work_report/figs/extrudedlcc.txt b/work_report/figs/extrudedlcc.txt
deleted file mode 100644
index 756a282..0000000
--- a/work_report/figs/extrudedlcc.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-template
-class Linear_cell_complex_extruder_with_range {
-public:
- typedef typename Linear_cell_complex_with_ids::type Lower_dimensional_cell_complex;
- typedef typename Linear_cell_complex_with_ids::type Higher_dimensional_cell_complex;
- typedef Linear_cell_complex_extruder_with_range Self;
- typedef typename Lower_dimensional_cell_complex::FT FT;
-
- typedef typename Extruded_embeddings_with_range_of_dimension_and_lower::type Extruded_embeddings_with_range;
- typedef Extrusion_ranges_tuple_per_dimension Extrusion_ranges;
-
-private:
- Extrusion_ranges extrusion_ranges;
- std::set all_ranges;
- Higher_dimensional_cell_complex hdcc;
-};
\ No newline at end of file
diff --git a/work_report/figs/extrusion-1.jpg b/work_report/figs/extrusion-1.jpg
deleted file mode 100644
index 421c328..0000000
Binary files a/work_report/figs/extrusion-1.jpg and /dev/null differ
diff --git a/work_report/figs/extrusion-2.jpg b/work_report/figs/extrusion-2.jpg
deleted file mode 100644
index b6665a8..0000000
Binary files a/work_report/figs/extrusion-2.jpg and /dev/null differ
diff --git a/work_report/figs/extrusion-steps.pdf b/work_report/figs/extrusion-steps.pdf
deleted file mode 100644
index 79d930e..0000000
Binary files a/work_report/figs/extrusion-steps.pdf and /dev/null differ
diff --git a/work_report/figs/faceplanes-1.jpg b/work_report/figs/faceplanes-1.jpg
deleted file mode 100644
index 00a72c4..0000000
Binary files a/work_report/figs/faceplanes-1.jpg and /dev/null differ
diff --git a/work_report/figs/faceplanes-2.jpg b/work_report/figs/faceplanes-2.jpg
deleted file mode 100644
index f161f08..0000000
Binary files a/work_report/figs/faceplanes-2.jpg and /dev/null differ
diff --git a/work_report/figs/facet-edge-ops.pdf b/work_report/figs/facet-edge-ops.pdf
deleted file mode 100644
index 3a6cfe8..0000000
Binary files a/work_report/figs/facet-edge-ops.pdf and /dev/null differ
diff --git a/work_report/figs/facet-edge.pdf b/work_report/figs/facet-edge.pdf
deleted file mode 100644
index c5948a2..0000000
Binary files a/work_report/figs/facet-edge.pdf and /dev/null differ
diff --git a/work_report/figs/flatland.jpg b/work_report/figs/flatland.jpg
deleted file mode 100644
index 6264234..0000000
Binary files a/work_report/figs/flatland.jpg and /dev/null differ
diff --git a/work_report/figs/frustum.jpg b/work_report/figs/frustum.jpg
deleted file mode 100644
index 03e5527..0000000
Binary files a/work_report/figs/frustum.jpg and /dev/null differ
diff --git a/work_report/figs/futurama.jpg b/work_report/figs/futurama.jpg
deleted file mode 100644
index e0ef366..0000000
Binary files a/work_report/figs/futurama.jpg and /dev/null differ
diff --git a/work_report/figs/generalisation2.jpg b/work_report/figs/generalisation2.jpg
deleted file mode 100644
index c98a5e5..0000000
Binary files a/work_report/figs/generalisation2.jpg and /dev/null differ
diff --git a/work_report/figs/generalisation3.png b/work_report/figs/generalisation3.png
deleted file mode 100644
index 9aba995..0000000
Binary files a/work_report/figs/generalisation3.png and /dev/null differ
diff --git a/work_report/figs/gmaps-3d-simplices.pdf b/work_report/figs/gmaps-3d-simplices.pdf
deleted file mode 100644
index ed2fac1..0000000
Binary files a/work_report/figs/gmaps-3d-simplices.pdf and /dev/null differ
diff --git a/work_report/figs/gmaps-simplices.pdf b/work_report/figs/gmaps-simplices.pdf
deleted file mode 100644
index 1371737..0000000
Binary files a/work_report/figs/gmaps-simplices.pdf and /dev/null differ
diff --git a/work_report/figs/gml.pdf b/work_report/figs/gml.pdf
deleted file mode 100644
index ea29559..0000000
Binary files a/work_report/figs/gml.pdf and /dev/null differ
diff --git a/work_report/figs/halfedge-1.pdf b/work_report/figs/halfedge-1.pdf
deleted file mode 100644
index b6db56f..0000000
Binary files a/work_report/figs/halfedge-1.pdf and /dev/null differ
diff --git a/work_report/figs/halfedge-2.pdf b/work_report/figs/halfedge-2.pdf
deleted file mode 100644
index f312207..0000000
Binary files a/work_report/figs/halfedge-2.pdf and /dev/null differ
diff --git a/work_report/figs/halfedge-3.pdf b/work_report/figs/halfedge-3.pdf
deleted file mode 100644
index e336595..0000000
Binary files a/work_report/figs/halfedge-3.pdf and /dev/null differ
diff --git a/work_report/figs/halfspace-1.pdf b/work_report/figs/halfspace-1.pdf
deleted file mode 100644
index 81dfec0..0000000
Binary files a/work_report/figs/halfspace-1.pdf and /dev/null differ
diff --git a/work_report/figs/halfspace-2.pdf b/work_report/figs/halfspace-2.pdf
deleted file mode 100644
index 8a5077c..0000000
Binary files a/work_report/figs/halfspace-2.pdf and /dev/null differ
diff --git a/work_report/figs/halfspace.pdf b/work_report/figs/halfspace.pdf
deleted file mode 100644
index c0fc7d4..0000000
Binary files a/work_report/figs/halfspace.pdf and /dev/null differ
diff --git a/work_report/figs/halfspaces.jpg b/work_report/figs/halfspaces.jpg
deleted file mode 100644
index b2043d5..0000000
Binary files a/work_report/figs/halfspaces.jpg and /dev/null differ
diff --git a/work_report/figs/hole-bridge.jpg b/work_report/figs/hole-bridge.jpg
deleted file mode 100644
index 342e876..0000000
Binary files a/work_report/figs/hole-bridge.jpg and /dev/null differ
diff --git a/work_report/figs/hole-split-structure.jpg b/work_report/figs/hole-split-structure.jpg
deleted file mode 100644
index 0bae32f..0000000
Binary files a/work_report/figs/hole-split-structure.jpg and /dev/null differ
diff --git a/work_report/figs/hole-split.jpg b/work_report/figs/hole-split.jpg
deleted file mode 100644
index 98d78ca..0000000
Binary files a/work_report/figs/hole-split.jpg and /dev/null differ
diff --git a/work_report/figs/hole.jpg b/work_report/figs/hole.jpg
deleted file mode 100644
index 5188e3a..0000000
Binary files a/work_report/figs/hole.jpg and /dev/null differ
diff --git a/work_report/figs/ifc-1.png b/work_report/figs/ifc-1.png
deleted file mode 100644
index 4e4e3cc..0000000
Binary files a/work_report/figs/ifc-1.png and /dev/null differ
diff --git a/work_report/figs/ifc-2.jpg b/work_report/figs/ifc-2.jpg
deleted file mode 100644
index 6a35e4b..0000000
Binary files a/work_report/figs/ifc-2.jpg and /dev/null differ
diff --git a/work_report/figs/ifc.jpg b/work_report/figs/ifc.jpg
deleted file mode 100644
index fad1ec2..0000000
Binary files a/work_report/figs/ifc.jpg and /dev/null differ
diff --git a/work_report/figs/interioralgos.pdf b/work_report/figs/interioralgos.pdf
deleted file mode 100644
index a9427e0..0000000
Binary files a/work_report/figs/interioralgos.pdf and /dev/null differ
diff --git a/work_report/figs/intersectingintervals.pdf b/work_report/figs/intersectingintervals.pdf
deleted file mode 100644
index 9f179fc..0000000
Binary files a/work_report/figs/intersectingintervals.pdf and /dev/null differ
diff --git a/work_report/figs/intervals-1.jpg b/work_report/figs/intervals-1.jpg
deleted file mode 100644
index 99d0083..0000000
Binary files a/work_report/figs/intervals-1.jpg and /dev/null differ
diff --git a/work_report/figs/intervals-2.jpg b/work_report/figs/intervals-2.jpg
deleted file mode 100644
index db63d30..0000000
Binary files a/work_report/figs/intervals-2.jpg and /dev/null differ
diff --git a/work_report/figs/intervals.pdf b/work_report/figs/intervals.pdf
deleted file mode 100644
index fbf8147..0000000
Binary files a/work_report/figs/intervals.pdf and /dev/null differ
diff --git a/work_report/figs/ioh-1.jpg b/work_report/figs/ioh-1.jpg
deleted file mode 100644
index 6b85321..0000000
Binary files a/work_report/figs/ioh-1.jpg and /dev/null differ
diff --git a/work_report/figs/ioh-2.jpg b/work_report/figs/ioh-2.jpg
deleted file mode 100644
index d745d52..0000000
Binary files a/work_report/figs/ioh-2.jpg and /dev/null differ
diff --git a/work_report/figs/ioh-3.jpg b/work_report/figs/ioh-3.jpg
deleted file mode 100644
index e75e622..0000000
Binary files a/work_report/figs/ioh-3.jpg and /dev/null differ
diff --git a/work_report/figs/ioh-4.jpg b/work_report/figs/ioh-4.jpg
deleted file mode 100644
index 8866a46..0000000
Binary files a/work_report/figs/ioh-4.jpg and /dev/null differ
diff --git a/work_report/figs/ioh-5.jpg b/work_report/figs/ioh-5.jpg
deleted file mode 100644
index 2e59667..0000000
Binary files a/work_report/figs/ioh-5.jpg and /dev/null differ
diff --git a/work_report/figs/ioh-6.jpg b/work_report/figs/ioh-6.jpg
deleted file mode 100644
index e27fdb3..0000000
Binary files a/work_report/figs/ioh-6.jpg and /dev/null differ
diff --git a/work_report/figs/ioh-diff-o.jpg b/work_report/figs/ioh-diff-o.jpg
deleted file mode 100644
index 6e3d9b0..0000000
Binary files a/work_report/figs/ioh-diff-o.jpg and /dev/null differ
diff --git a/work_report/figs/ioh-diff-w.jpg b/work_report/figs/ioh-diff-w.jpg
deleted file mode 100644
index 91e85f0..0000000
Binary files a/work_report/figs/ioh-diff-w.jpg and /dev/null differ
diff --git a/work_report/figs/ioh-diff-wo.jpg b/work_report/figs/ioh-diff-wo.jpg
deleted file mode 100644
index 63492f4..0000000
Binary files a/work_report/figs/ioh-diff-wo.jpg and /dev/null differ
diff --git a/work_report/figs/ioh-equiangle.jpg b/work_report/figs/ioh-equiangle.jpg
deleted file mode 100644
index d697ef2..0000000
Binary files a/work_report/figs/ioh-equiangle.jpg and /dev/null differ
diff --git a/work_report/figs/ioh-steps.jpg b/work_report/figs/ioh-steps.jpg
deleted file mode 100644
index 1b90dde..0000000
Binary files a/work_report/figs/ioh-steps.jpg and /dev/null differ
diff --git a/work_report/figs/iso-brep.pdf b/work_report/figs/iso-brep.pdf
deleted file mode 100644
index 92ecd0c..0000000
Binary files a/work_report/figs/iso-brep.pdf and /dev/null differ
diff --git a/work_report/figs/iso-cell-brep.pdf b/work_report/figs/iso-cell-brep.pdf
deleted file mode 100644
index 9651477..0000000
Binary files a/work_report/figs/iso-cell-brep.pdf and /dev/null differ
diff --git a/work_report/figs/iso-compositecell.pdf b/work_report/figs/iso-compositecell.pdf
deleted file mode 100644
index 919a061..0000000
Binary files a/work_report/figs/iso-compositecell.pdf and /dev/null differ
diff --git a/work_report/figs/iso-composites.pdf b/work_report/figs/iso-composites.pdf
deleted file mode 100644
index 370f141..0000000
Binary files a/work_report/figs/iso-composites.pdf and /dev/null differ
diff --git a/work_report/figs/jenn-24-cell.jpg b/work_report/figs/jenn-24-cell.jpg
deleted file mode 100644
index d9a85b7..0000000
Binary files a/work_report/figs/jenn-24-cell.jpg and /dev/null differ
diff --git a/work_report/figs/jenn-cube.jpg b/work_report/figs/jenn-cube.jpg
deleted file mode 100644
index 813e4b6..0000000
Binary files a/work_report/figs/jenn-cube.jpg and /dev/null differ
diff --git a/work_report/figs/konigsberg.jpg b/work_report/figs/konigsberg.jpg
deleted file mode 100644
index 4c3ea96..0000000
Binary files a/work_report/figs/konigsberg.jpg and /dev/null differ
diff --git a/work_report/figs/konigsberg.pdf b/work_report/figs/konigsberg.pdf
deleted file mode 100644
index 1be8d53..0000000
Binary files a/work_report/figs/konigsberg.pdf and /dev/null differ
diff --git a/work_report/figs/line.pdf b/work_report/figs/line.pdf
deleted file mode 100644
index 93f421f..0000000
Binary files a/work_report/figs/line.pdf and /dev/null differ
diff --git a/work_report/figs/link1.pdf b/work_report/figs/link1.pdf
deleted file mode 100644
index 7ca0e1a..0000000
Binary files a/work_report/figs/link1.pdf and /dev/null differ
diff --git a/work_report/figs/link1_filled.pdf b/work_report/figs/link1_filled.pdf
deleted file mode 100644
index 161ea2f..0000000
Binary files a/work_report/figs/link1_filled.pdf and /dev/null differ
diff --git a/work_report/figs/link2.pdf b/work_report/figs/link2.pdf
deleted file mode 100644
index 8563f4e..0000000
Binary files a/work_report/figs/link2.pdf and /dev/null differ
diff --git a/work_report/figs/linkingscheme1.pdf b/work_report/figs/linkingscheme1.pdf
deleted file mode 100644
index 01131af..0000000
Binary files a/work_report/figs/linkingscheme1.pdf and /dev/null differ
diff --git a/work_report/figs/linkingscheme2.pdf b/work_report/figs/linkingscheme2.pdf
deleted file mode 100644
index 39525be..0000000
Binary files a/work_report/figs/linkingscheme2.pdf and /dev/null differ
diff --git a/work_report/figs/linkingscheme3.pdf b/work_report/figs/linkingscheme3.pdf
deleted file mode 100644
index 2dba5e4..0000000
Binary files a/work_report/figs/linkingscheme3.pdf and /dev/null differ
diff --git a/work_report/figs/linkingscheme4.pdf b/work_report/figs/linkingscheme4.pdf
deleted file mode 100644
index f251796..0000000
Binary files a/work_report/figs/linkingscheme4.pdf and /dev/null differ
diff --git a/work_report/figs/loop.pdf b/work_report/figs/loop.pdf
deleted file mode 100644
index 7869ea2..0000000
Binary files a/work_report/figs/loop.pdf and /dev/null differ
diff --git a/work_report/figs/manifoldvalidation.txt b/work_report/figs/manifoldvalidation.txt
deleted file mode 100644
index 6b69dd9..0000000
--- a/work_report/figs/manifoldvalidation.txt
+++ /dev/null
@@ -1,38 +0,0 @@
-template
-Dart_handle get_cell(InputIterator begin, InputIterator end) {
-
- // Validate that this will create a closed (topologically open) quasi-manifold cell
- for (typename std::list::iterator dart_in_current_facet_1 = free_facets.begin();
- dart_in_current_facet_1 != free_facets.end(); ++dart_in_current_facet_1) {
-
- // Go ridge by ridge
- for (auto dart_in_current_ridge_1 = lcc.one_dart_per_incident_cell(
- *dart_in_current_facet_1).begin();
- dart_in_current_ridge_1 != lcc.one_dart_per_incident_cell(
- *dart_in_current_facet_1).end();
- ++dart_in_current_ridge_1) {
- int matches = 0;
-
- // Find possible matches
- for (typename std::list::iterator dart_in_current_facet_2 = free_facets.begin();
- dart_in_current_facet_2 != free_facets.end();
- ++dart_in_current_facet_2) {
- if (&*dart_in_current_facet_1 == &*dart_in_current_facet_2) continue; // Compare by memory address
-
- // Go ridge by ridge in a potential match
- for (auto current_dart_in_facet_2 = lcc.darts_of_cell(
- *dart_in_current_facet_2).begin();
- current_dart_in_facet_2 != lcc.darts_of_cell(
- *dart_in_current_facet_2).end();
- ++current_dart_in_facet_2) {
-
- // Check if it's a complete match (isomorphism test using signatures)
- if (isomorphic(lcc,dart_in_current_ridge_1, current_dart_in_facet_2)) ++matches;
- if (isomorphic_reversed(lcc, dart_in_current_ridge_1, current_dart_in_facet_2)) ++matches;
- }
- }
-
- CGAL_precondition(matches == 1);
- }
- }
-}
\ No newline at end of file
diff --git a/work_report/figs/me.jpg b/work_report/figs/me.jpg
deleted file mode 100644
index e87ace1..0000000
Binary files a/work_report/figs/me.jpg and /dev/null differ
diff --git a/work_report/figs/mug.jpg b/work_report/figs/mug.jpg
deleted file mode 100644
index 416a57b..0000000
Binary files a/work_report/figs/mug.jpg and /dev/null differ
diff --git a/work_report/figs/nef-1.pdf b/work_report/figs/nef-1.pdf
deleted file mode 100644
index 938a2dc..0000000
Binary files a/work_report/figs/nef-1.pdf and /dev/null differ
diff --git a/work_report/figs/nef-2.pdf b/work_report/figs/nef-2.pdf
deleted file mode 100644
index 0f44ec4..0000000
Binary files a/work_report/figs/nef-2.pdf and /dev/null differ
diff --git a/work_report/figs/nef-boolean-1.pdf b/work_report/figs/nef-boolean-1.pdf
deleted file mode 100644
index b7cad46..0000000
Binary files a/work_report/figs/nef-boolean-1.pdf and /dev/null differ
diff --git a/work_report/figs/nef-boolean-2.pdf b/work_report/figs/nef-boolean-2.pdf
deleted file mode 100644
index 0169273..0000000
Binary files a/work_report/figs/nef-boolean-2.pdf and /dev/null differ
diff --git a/work_report/figs/nonmanifold-0.pdf b/work_report/figs/nonmanifold-0.pdf
deleted file mode 100644
index 5021f85..0000000
Binary files a/work_report/figs/nonmanifold-0.pdf and /dev/null differ
diff --git a/work_report/figs/nonmanifold-1.pdf b/work_report/figs/nonmanifold-1.pdf
deleted file mode 100644
index a5aeb9f..0000000
Binary files a/work_report/figs/nonmanifold-1.pdf and /dev/null differ
diff --git a/work_report/figs/nonmanifold-2.pdf b/work_report/figs/nonmanifold-2.pdf
deleted file mode 100644
index c4b9452..0000000
Binary files a/work_report/figs/nonmanifold-2.pdf and /dev/null differ
diff --git a/work_report/figs/nonmanifold.jpg b/work_report/figs/nonmanifold.jpg
deleted file mode 100644
index 5c90f79..0000000
Binary files a/work_report/figs/nonmanifold.jpg and /dev/null differ
diff --git a/work_report/figs/nonzerowinding.pdf b/work_report/figs/nonzerowinding.pdf
deleted file mode 100644
index 1305363..0000000
Binary files a/work_report/figs/nonzerowinding.pdf and /dev/null differ
diff --git a/work_report/figs/oddeven.pdf b/work_report/figs/oddeven.pdf
deleted file mode 100644
index 134772f..0000000
Binary files a/work_report/figs/oddeven.pdf and /dev/null differ
diff --git a/work_report/figs/ortho.jpg b/work_report/figs/ortho.jpg
deleted file mode 100644
index fde7683..0000000
Binary files a/work_report/figs/ortho.jpg and /dev/null differ
diff --git a/work_report/figs/part-arcgis.png b/work_report/figs/part-arcgis.png
deleted file mode 100644
index 5067001..0000000
Binary files a/work_report/figs/part-arcgis.png and /dev/null differ
diff --git a/work_report/figs/part-grass.png b/work_report/figs/part-grass.png
deleted file mode 100644
index 88d6700..0000000
Binary files a/work_report/figs/part-grass.png and /dev/null differ
diff --git a/work_report/figs/pascal-triangle.pdf b/work_report/figs/pascal-triangle.pdf
deleted file mode 100644
index f61d364..0000000
Binary files a/work_report/figs/pascal-triangle.pdf and /dev/null differ
diff --git a/work_report/figs/point.pdf b/work_report/figs/point.pdf
deleted file mode 100644
index 049e724..0000000
Binary files a/work_report/figs/point.pdf and /dev/null differ
diff --git a/work_report/figs/points.cpp b/work_report/figs/points.cpp
deleted file mode 100644
index 9675cca..0000000
--- a/work_report/figs/points.cpp
+++ /dev/null
@@ -1,30 +0,0 @@
-float point_coordinates[][4] = {
- // Left house
- {0, 0, 0, 0}, // 0
- {1, 0, 0, 0}, // 1
- {0, 1, 0, 0}, // 2
- {1, 1, 0, 0}, // 3
- {0, 0, 1, 0}, // 4
- {1, 0, 1, 0}, // 5
- {0, 1, 1, 0}, // 6
- {1, 1, 1, 0}, // 7
-
- // Right house
- {0, 0, 0, 1}, // 8
- {1, 0, 0, 1}, // 9
- {0, 1, 0, 1}, // 10
- {1, 1, 0, 1}, // 11
- {0, 0, 1, 1}, // 12
- {1, 0, 1, 1}, // 13
- {0, 1, 1, 1}, // 14
- {1, 1, 1, 1}, // 15
- {.5, .5, 1.5, 1} // 16
-};
-
-for (int i = 0; i < 17; ++i) {
- points.push_back(Point(4,
- point_coordinates[i],
- point_coordinates[i]+4));
- vertices.push_back(
- builder.get_vertex(points[i]));
-}
\ No newline at end of file
diff --git a/work_report/figs/pointset.pdf b/work_report/figs/pointset.pdf
deleted file mode 100644
index 91ef891..0000000
Binary files a/work_report/figs/pointset.pdf and /dev/null differ
diff --git a/work_report/figs/polygon-model.pdf b/work_report/figs/polygon-model.pdf
deleted file mode 100644
index e282a7a..0000000
Binary files a/work_report/figs/polygon-model.pdf and /dev/null differ
diff --git a/work_report/figs/polyline.pdf b/work_report/figs/polyline.pdf
deleted file mode 100644
index 1b4425f..0000000
Binary files a/work_report/figs/polyline.pdf and /dev/null differ
diff --git a/work_report/figs/pprepair-method-a.png b/work_report/figs/pprepair-method-a.png
deleted file mode 100644
index ee02266..0000000
Binary files a/work_report/figs/pprepair-method-a.png and /dev/null differ
diff --git a/work_report/figs/pprepair-method-b.png b/work_report/figs/pprepair-method-b.png
deleted file mode 100644
index 7f132fd..0000000
Binary files a/work_report/figs/pprepair-method-b.png and /dev/null differ
diff --git a/work_report/figs/pprepair-method-c.png b/work_report/figs/pprepair-method-c.png
deleted file mode 100644
index 326df74..0000000
Binary files a/work_report/figs/pprepair-method-c.png and /dev/null differ
diff --git a/work_report/figs/pprepair-method-d.png b/work_report/figs/pprepair-method-d.png
deleted file mode 100644
index a378daf..0000000
Binary files a/work_report/figs/pprepair-method-d.png and /dev/null differ
diff --git a/work_report/figs/pprepair-workflow-a.jpg b/work_report/figs/pprepair-workflow-a.jpg
deleted file mode 100644
index 61a8327..0000000
Binary files a/work_report/figs/pprepair-workflow-a.jpg and /dev/null differ
diff --git a/work_report/figs/pprepair-workflow-b.pdf b/work_report/figs/pprepair-workflow-b.pdf
deleted file mode 100644
index ac96789..0000000
Binary files a/work_report/figs/pprepair-workflow-b.pdf and /dev/null differ
diff --git a/work_report/figs/pprepair-workflow-c.pdf b/work_report/figs/pprepair-workflow-c.pdf
deleted file mode 100644
index 660f40a..0000000
Binary files a/work_report/figs/pprepair-workflow-c.pdf and /dev/null differ
diff --git a/work_report/figs/pprepair-workflow-d.pdf b/work_report/figs/pprepair-workflow-d.pdf
deleted file mode 100644
index da4df25..0000000
Binary files a/work_report/figs/pprepair-workflow-d.pdf and /dev/null differ
diff --git a/work_report/figs/pprepair-workflow-e.pdf b/work_report/figs/pprepair-workflow-e.pdf
deleted file mode 100644
index 4a716eb..0000000
Binary files a/work_report/figs/pprepair-workflow-e.pdf and /dev/null differ
diff --git a/work_report/figs/pprepair-workflow-f.pdf b/work_report/figs/pprepair-workflow-f.pdf
deleted file mode 100644
index 64fe9bf..0000000
Binary files a/work_report/figs/pprepair-workflow-f.pdf and /dev/null differ
diff --git a/work_report/figs/prepair-1.png b/work_report/figs/prepair-1.png
deleted file mode 100644
index bfc10f3..0000000
Binary files a/work_report/figs/prepair-1.png and /dev/null differ
diff --git a/work_report/figs/prepair-2.png b/work_report/figs/prepair-2.png
deleted file mode 100644
index 3fde30b..0000000
Binary files a/work_report/figs/prepair-2.png and /dev/null differ
diff --git a/work_report/figs/prepair-3.png b/work_report/figs/prepair-3.png
deleted file mode 100644
index 9eecff6..0000000
Binary files a/work_report/figs/prepair-3.png and /dev/null differ
diff --git a/work_report/figs/prepair-4.png b/work_report/figs/prepair-4.png
deleted file mode 100644
index 6b8b7c6..0000000
Binary files a/work_report/figs/prepair-4.png and /dev/null differ
diff --git a/work_report/figs/prepair-workflow-1.pdf b/work_report/figs/prepair-workflow-1.pdf
deleted file mode 100644
index 01beaf4..0000000
Binary files a/work_report/figs/prepair-workflow-1.pdf and /dev/null differ
diff --git a/work_report/figs/prepair-workflow-2.pdf b/work_report/figs/prepair-workflow-2.pdf
deleted file mode 100644
index 63ad3e8..0000000
--- a/work_report/figs/prepair-workflow-2.pdf
+++ /dev/null
@@ -1,83 +0,0 @@
-%PDF-1.3
-%
-4 0 obj
-<< /Length 5 0 R /Filter /FlateDecode >>
-stream
-xK6^-k .PAAߏE9ApL/>\t?>W|W~j<5 R5].>≼|EٳD^?Z=^#ġ.%43Pk?^ȡzoR50R)I|OĈmlr_9!=w;T쩔ʉaX}jgH
_RB^]m#h鎨=ocP!LrLնw!m=_LYܟF-đ>~qkt7̺F`r2m9(@"UðޞTI,)gTLT'1]ȶR.5Hϻg^-lG6Ӽ!1S̶% dִZIU!rCBZIs<.7&C=nXl2_7fo!W۞S.;y8=h2s>ƮHrp G07y"9}3-wad˩!=gz+xƴbcr)1%~*MMx2#}A-n,dZaTNe6fo!3=7[,3>=mTϨa_(x1bn3DOQ{a}3-DbTOK)h+L;q:xs=HY3,IYS_DCFEGcӫ'29XnF%
c-;sQ-xrm!˞%}ТLAKPn{2wʤsc!3>Mg2An6 W=D^-r-mDξ>o~1ybܐa1^m{"z¶olT4D{ҞmG>f6
Zu~RDnv4M#dȲJIYc3#-=ja¸1&C=~p'\+;A煆`,_<}.L y#.^rsCp'RtC=)RԠ>
-endobj
-6 0 obj
-<< /ProcSet [ /PDF ] /ColorSpace << /Cs1 7 0 R /Cs2 8 0 R >> >>
-endobj
-9 0 obj
-<< /Length 10 0 R /N 1 /Alternate /DeviceGray /Filter /FlateDecode >>
-stream
-xuP
-@`#|ZDKD/D.;3`-Fb9|QNWsa:f/'ه"(x+8X5;lE':zOҁ3gƚ7_q2
-endstream
-endobj
-10 0 obj
-212
-endobj
-7 0 obj
-[ /ICCBased 9 0 R ]
-endobj
-11 0 obj
-<< /Length 12 0 R /N 1 /Alternate /DeviceGray /Filter /FlateDecode >>
-stream
-xuP
-@`#|ZDKD/D.;3`-Fb9|QNWsa:f/'ه"(x+8X5;lE':zOҁ3gƚ7_q2
-endstream
-endobj
-12 0 obj
-212
-endobj
-8 0 obj
-[ /ICCBased 11 0 R ]
-endobj
-3 0 obj
-<< /Type /Pages /MediaBox [0 0 612 792] /Count 1 /Kids [ 2 0 R ] >>
-endobj
-13 0 obj
-<< /Type /Catalog /Pages 3 0 R >>
-endobj
-14 0 obj
-(Mac OS X 10.11 Quartz PDFContext)
-endobj
-15 0 obj
-(D:20150824124255Z00'00')
-endobj
-1 0 obj
-<< /Producer 14 0 R /CreationDate 15 0 R /ModDate 15 0 R >>
-endobj
-xref
-0 16
-0000000000 65535 f
-0000002878 00000 n
-0000001717 00000 n
-0000002652 00000 n
-0000000022 00000 n
-0000001697 00000 n
-0000001831 00000 n
-0000002245 00000 n
-0000002616 00000 n
-0000001910 00000 n
-0000002225 00000 n
-0000002280 00000 n
-0000002596 00000 n
-0000002735 00000 n
-0000002785 00000 n
-0000002836 00000 n
-trailer
-<< /Size 16 /Root 13 0 R /Info 1 0 R /ID [
- ] >>
-startxref
-2953
-%%EOF
diff --git a/work_report/figs/prepair-workflow-3.pdf b/work_report/figs/prepair-workflow-3.pdf
deleted file mode 100644
index 8e0e17b..0000000
Binary files a/work_report/figs/prepair-workflow-3.pdf and /dev/null differ
diff --git a/work_report/figs/prepair-workflow-4.pdf b/work_report/figs/prepair-workflow-4.pdf
deleted file mode 100644
index c76fdff..0000000
Binary files a/work_report/figs/prepair-workflow-4.pdf and /dev/null differ
diff --git a/work_report/figs/prepair-workflow-5.pdf b/work_report/figs/prepair-workflow-5.pdf
deleted file mode 100644
index 738c9ec..0000000
Binary files a/work_report/figs/prepair-workflow-5.pdf and /dev/null differ
diff --git a/work_report/figs/ps_dodecahedron.jpg b/work_report/figs/ps_dodecahedron.jpg
deleted file mode 100644
index 393a2c2..0000000
Binary files a/work_report/figs/ps_dodecahedron.jpg and /dev/null differ
diff --git a/work_report/figs/ps_hexahedron.jpg b/work_report/figs/ps_hexahedron.jpg
deleted file mode 100644
index 265dfc2..0000000
Binary files a/work_report/figs/ps_hexahedron.jpg and /dev/null differ
diff --git a/work_report/figs/ps_icosahedron.jpg b/work_report/figs/ps_icosahedron.jpg
deleted file mode 100644
index 12393f2..0000000
Binary files a/work_report/figs/ps_icosahedron.jpg and /dev/null differ
diff --git a/work_report/figs/ps_octahedron.jpg b/work_report/figs/ps_octahedron.jpg
deleted file mode 100644
index d07363b..0000000
Binary files a/work_report/figs/ps_octahedron.jpg and /dev/null differ
diff --git a/work_report/figs/ps_tetrahedron.jpg b/work_report/figs/ps_tetrahedron.jpg
deleted file mode 100644
index 8f7b340..0000000
Binary files a/work_report/figs/ps_tetrahedron.jpg and /dev/null differ
diff --git a/work_report/figs/quad-edge-algebra-1.pdf b/work_report/figs/quad-edge-algebra-1.pdf
deleted file mode 100644
index 259f346..0000000
Binary files a/work_report/figs/quad-edge-algebra-1.pdf and /dev/null differ
diff --git a/work_report/figs/quad-edge-algebra-2.pdf b/work_report/figs/quad-edge-algebra-2.pdf
deleted file mode 100644
index 4012bd0..0000000
Binary files a/work_report/figs/quad-edge-algebra-2.pdf and /dev/null differ
diff --git a/work_report/figs/quad.jpg b/work_report/figs/quad.jpg
deleted file mode 100644
index 0cdca14..0000000
Binary files a/work_report/figs/quad.jpg and /dev/null differ
diff --git a/work_report/figs/reconstruction-0.pdf b/work_report/figs/reconstruction-0.pdf
deleted file mode 100644
index e4d9324..0000000
Binary files a/work_report/figs/reconstruction-0.pdf and /dev/null differ
diff --git a/work_report/figs/reconstruction-2-a.jpg b/work_report/figs/reconstruction-2-a.jpg
deleted file mode 100644
index 8d9817a..0000000
Binary files a/work_report/figs/reconstruction-2-a.jpg and /dev/null differ
diff --git a/work_report/figs/reconstruction-2-b.jpg b/work_report/figs/reconstruction-2-b.jpg
deleted file mode 100644
index 744a3ec..0000000
Binary files a/work_report/figs/reconstruction-2-b.jpg and /dev/null differ
diff --git a/work_report/figs/reconstruction-2-c.jpg b/work_report/figs/reconstruction-2-c.jpg
deleted file mode 100644
index bebb3da..0000000
Binary files a/work_report/figs/reconstruction-2-c.jpg and /dev/null differ
diff --git a/work_report/figs/reconstruction-2-d.jpg b/work_report/figs/reconstruction-2-d.jpg
deleted file mode 100644
index a553b15..0000000
Binary files a/work_report/figs/reconstruction-2-d.jpg and /dev/null differ
diff --git a/work_report/figs/reconstruction-2-e.jpg b/work_report/figs/reconstruction-2-e.jpg
deleted file mode 100644
index 1c2d013..0000000
Binary files a/work_report/figs/reconstruction-2-e.jpg and /dev/null differ
diff --git a/work_report/figs/reconstruction-2-f.jpg b/work_report/figs/reconstruction-2-f.jpg
deleted file mode 100644
index 75f0544..0000000
Binary files a/work_report/figs/reconstruction-2-f.jpg and /dev/null differ
diff --git a/work_report/figs/reconstruction-2-g.jpg b/work_report/figs/reconstruction-2-g.jpg
deleted file mode 100644
index bca0fe3..0000000
Binary files a/work_report/figs/reconstruction-2-g.jpg and /dev/null differ
diff --git a/work_report/figs/reconstruction-2.jpg b/work_report/figs/reconstruction-2.jpg
deleted file mode 100644
index 5896fd6..0000000
Binary files a/work_report/figs/reconstruction-2.jpg and /dev/null differ
diff --git a/work_report/figs/reconstruction-3-a.jpg b/work_report/figs/reconstruction-3-a.jpg
deleted file mode 100644
index b8e3a9d..0000000
Binary files a/work_report/figs/reconstruction-3-a.jpg and /dev/null differ
diff --git a/work_report/figs/reconstruction-3-b.pdf b/work_report/figs/reconstruction-3-b.pdf
deleted file mode 100644
index c497a60..0000000
Binary files a/work_report/figs/reconstruction-3-b.pdf and /dev/null differ
diff --git a/work_report/figs/scale3d2.jpg b/work_report/figs/scale3d2.jpg
deleted file mode 100644
index 56163a1..0000000
Binary files a/work_report/figs/scale3d2.jpg and /dev/null differ
diff --git a/work_report/figs/scheduling-orthographic.jpg b/work_report/figs/scheduling-orthographic.jpg
deleted file mode 100644
index b5c6f2d..0000000
Binary files a/work_report/figs/scheduling-orthographic.jpg and /dev/null differ
diff --git a/work_report/figs/scheduling-perspective.jpg b/work_report/figs/scheduling-perspective.jpg
deleted file mode 100644
index f4e9bf2..0000000
Binary files a/work_report/figs/scheduling-perspective.jpg and /dev/null differ
diff --git a/work_report/figs/schoenhardt1.jpg b/work_report/figs/schoenhardt1.jpg
deleted file mode 100644
index ace7ca2..0000000
Binary files a/work_report/figs/schoenhardt1.jpg and /dev/null differ
diff --git a/work_report/figs/schoenhardt2.jpg b/work_report/figs/schoenhardt2.jpg
deleted file mode 100644
index b096a83..0000000
Binary files a/work_report/figs/schoenhardt2.jpg and /dev/null differ
diff --git a/work_report/figs/sfs.pdf b/work_report/figs/sfs.pdf
deleted file mode 100644
index 685f0a5..0000000
Binary files a/work_report/figs/sfs.pdf and /dev/null differ
diff --git a/work_report/figs/sfs2d b/work_report/figs/sfs2d
deleted file mode 100644
index abcefe6..0000000
--- a/work_report/figs/sfs2d
+++ /dev/null
@@ -1 +0,0 @@
-[[0, 0], [0, 1], [1, 1], [1, 0], [0, 0]]
\ No newline at end of file
diff --git a/work_report/figs/sfs3d b/work_report/figs/sfs3d
deleted file mode 100644
index d100b40..0000000
--- a/work_report/figs/sfs3d
+++ /dev/null
@@ -1,6 +0,0 @@
-[[[0, 0, 0], [0, 1, 0], [1, 1, 0], [1, 0, 0], [0, 0, 0]],
- [[0, 0, 0], [0, 1, 0], [0, 1, 1], [0, 0, 1], [0, 0, 0]],
- [[0, 1, 0], [1, 1, 0], [1, 1, 1], [0, 1, 1], [0, 1, 0]],
- [[1, 1, 0], [1, 0, 0], [1, 0, 1], [1, 1, 1], [1, 1, 0]],
- [[1, 0, 0], [0, 0, 0], [0, 0, 1], [1, 0, 1], [1, 0, 0]],
- [[0, 0, 1], [0, 1, 1], [1, 1, 1], [1, 0, 1], [0, 0, 1]]]
\ No newline at end of file
diff --git a/work_report/figs/sfs4d b/work_report/figs/sfs4d
deleted file mode 100644
index d614776..0000000
--- a/work_report/figs/sfs4d
+++ /dev/null
@@ -1,48 +0,0 @@
-[[[[0, 0, 0, 0], [0, 1, 0, 0], [1, 1, 0, 0], [1, 0, 0, 0], [0, 0, 0, 0]],
- [[0, 0, 0, 0], [0, 1, 0, 0], [0, 1, 1, 0], [0, 0, 1, 0], [0, 0, 0, 0]],
- [[0, 1, 0, 0], [1, 1, 0, 0], [1, 1, 1, 0], [0, 1, 1, 0], [0, 1, 0, 0]],
- [[1, 1, 0, 0], [1, 0, 0, 0], [1, 0, 1, 0], [1, 1, 1, 0], [1, 1, 0, 0]],
- [[1, 0, 0, 0], [0, 0, 0, 0], [0, 0, 1, 0], [1, 0, 1, 0], [1, 0, 0, 0]],
- [[0, 0, 1, 0], [0, 1, 1, 0], [1, 1, 1, 0], [1, 0, 1, 0], [0, 0, 1, 0]]],
- [[[0, 0, 0, 0], [0, 1, 0, 0], [1, 1, 0, 0], [1, 0, 0, 0], [0, 0, 0, 0]],
- [[0, 0, 0, 0], [0, 1, 0, 0], [0, 1, 0, 1], [0, 0, 0, 1], [0, 0, 0, 0]],
- [[0, 1, 0, 0], [1, 1, 0, 0], [1, 1, 0, 1], [0, 1, 0, 1], [0, 1, 0, 0]],
- [[1, 1, 0, 0], [1, 0, 0, 0], [1, 0, 0, 1], [1, 1, 0, 1], [1, 1, 0, 0]],
- [[1, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 1], [1, 0, 0, 1], [1, 0, 0, 0]],
- [[0, 0, 0, 1], [0, 1, 0, 1], [1, 1, 0, 1], [1, 0, 0, 1], [0, 0, 0, 1]]],
- [[[0, 0, 0, 0], [0, 1, 0, 0], [0, 1, 1, 0], [0, 0, 1, 0], [0, 0, 0, 0]],
- [[0, 0, 0, 0], [0, 1, 0, 0], [0, 1, 0, 1], [0, 0, 0, 1], [0, 0, 0, 0]],
- [[0, 1, 0, 0], [0, 1, 1, 0], [0, 1, 1, 1], [0, 1, 0, 1], [0, 1, 0, 0]],
- [[0, 1, 1, 0], [0, 0, 1, 0], [0, 0, 1, 1], [0, 1, 1, 1], [0, 1, 1, 0]],
- [[0, 0, 1, 0], [0, 0, 0, 0], [0, 0, 0, 1], [0, 0, 1, 1], [0, 0, 1, 0]],
- [[0, 0, 0, 1], [0, 1, 0, 1], [0, 1, 1, 1], [0, 0, 1, 1], [0, 0, 0, 1]]],
- [[[0, 1, 0, 0], [1, 1, 0, 0], [1, 1, 1, 0], [0, 1, 1, 0], [0, 1, 0, 0]],
- [[0, 1, 0, 0], [1, 1, 0, 0], [1, 1, 0, 1], [0, 1, 0, 1], [0, 1, 0, 0]],
- [[1, 1, 0, 0], [1, 1, 1, 0], [1, 1, 1, 1], [1, 1, 0, 1], [1, 1, 0, 0]],
- [[1, 1, 1, 0], [0, 1, 1, 0], [0, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 0]],
- [[0, 1, 1, 0], [0, 1, 0, 0], [0, 1, 0, 1], [0, 1, 1, 1], [0, 1, 1, 0]],
- [[0, 1, 0, 1], [1, 1, 0, 1], [1, 1, 1, 1], [0, 1, 1, 1], [0, 1, 0, 1]]],
- [[[1, 1, 0, 0], [1, 0, 0, 0], [1, 0, 1, 0], [1, 1, 1, 0], [1, 1, 0, 0]],
- [[1, 1, 0, 0], [1, 0, 0, 0], [1, 0, 0, 1], [1, 1, 0, 1], [1, 1, 0, 0]],
- [[1, 0, 0, 0], [1, 0, 1, 0], [1, 0, 1, 1], [1, 0, 0, 1], [1, 0, 0, 0]],
- [[1, 0, 1, 0], [1, 1, 1, 0], [1, 1, 1, 1], [1, 0, 1, 1], [1, 0, 1, 0]],
- [[1, 1, 1, 0], [1, 1, 0, 0], [1, 1, 0, 1], [1, 1, 1, 1], [1, 1, 1, 0]],
- [[1, 1, 0, 1], [1, 0, 0, 1], [1, 0, 1, 1], [1, 1, 1, 1], [1, 1, 0, 1]]],
- [[[1, 0, 0, 0], [0, 0, 0, 0], [0, 0, 1, 0], [1, 0, 1, 0], [1, 0, 0, 0]],
- [[1, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 1], [1, 0, 0, 1], [1, 0, 0, 0]],
- [[0, 0, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1], [0, 0, 0, 1], [0, 0, 0, 0]],
- [[0, 0, 1, 0], [1, 0, 1, 0], [1, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 0]],
- [[1, 0, 1, 0], [1, 0, 0, 0], [1, 0, 0, 1], [1, 0, 1, 1], [1, 0, 1, 0]],
- [[1, 0, 0, 1], [0, 0, 0, 1], [0, 0, 1, 1], [1, 0, 1, 1], [1, 0, 0, 1]]],
- [[[0, 0, 1, 0], [0, 1, 1, 0], [1, 1, 1, 0], [1, 0, 1, 0], [0, 0, 1, 0]],
- [[0, 0, 1, 0], [0, 1, 1, 0], [0, 1, 1, 1], [0, 0, 1, 1], [0, 0, 1, 0]],
- [[0, 1, 1, 0], [1, 1, 1, 0], [1, 1, 1, 1], [0, 1, 1, 1], [0, 1, 1, 0]],
- [[1, 1, 1, 0], [1, 0, 1, 0], [1, 0, 1, 1], [1, 1, 1, 1], [1, 1, 1, 0]],
- [[1, 0, 1, 0], [0, 0, 1, 0], [0, 0, 1, 1], [1, 0, 1, 1], [1, 0, 1, 0]],
- [[0, 0, 1, 1], [0, 1, 1, 1], [1, 1, 1, 1], [1, 0, 1, 1], [0, 0, 1, 1]]],
- [[[0, 0, 0, 1], [0, 1, 0, 1], [1, 1, 0, 1], [1, 0, 0, 1], [0, 0, 0, 1]],
- [[0, 0, 0, 1], [0, 1, 0, 1], [0, 1, 1, 1], [0, 0, 1, 1], [0, 0, 0, 1]],
- [[0, 1, 0, 1], [1, 1, 0, 1], [1, 1, 1, 1], [0, 1, 1, 1], [0, 1, 0, 1]],
- [[1, 1, 0, 1], [1, 0, 0, 1], [1, 0, 1, 1], [1, 1, 1, 1], [1, 1, 0, 1]],
- [[1, 0, 0, 1], [0, 0, 0, 1], [0, 0, 1, 1], [1, 0, 1, 1], [1, 0, 0, 1]],
- [[0, 0, 1, 1], [0, 1, 1, 1], [1, 1, 1, 1], [1, 0, 1, 1], [0, 0, 1, 1]]]]
\ No newline at end of file
diff --git a/work_report/figs/sfs5d b/work_report/figs/sfs5d
deleted file mode 100644
index c94bd24..0000000
--- a/work_report/figs/sfs5d
+++ /dev/null
@@ -1,480 +0,0 @@
-[[[[[0, 0, 0, 0, 0], [0, 1, 0, 0, 0], [1, 1, 0, 0, 0], [1, 0, 0, 0, 0], [0, 0, 0, 0, 0]],
- [[0, 0, 0, 0, 0], [0, 1, 0, 0, 0], [0, 1, 1, 0, 0], [0, 0, 1, 0, 0], [0, 0, 0, 0, 0]],
- [[0, 1, 0, 0, 0], [1, 1, 0, 0, 0], [1, 1, 1, 0, 0], [0, 1, 1, 0, 0], [0, 1, 0, 0, 0]],
- [[1, 1, 0, 0, 0], [1, 0, 0, 0, 0], [1, 0, 1, 0, 0], [1, 1, 1, 0, 0], [1, 1, 0, 0, 0]],
- [[1, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 1, 0, 0], [1, 0, 1, 0, 0], [1, 0, 0, 0, 0]],
- [[0, 0, 1, 0, 0], [0, 1, 1, 0, 0], [1, 1, 1, 0, 0], [1, 0, 1, 0, 0], [0, 0, 1, 0, 0]]],
- [[[0, 0, 0, 0, 0], [0, 1, 0, 0, 0], [1, 1, 0, 0, 0], [1, 0, 0, 0, 0], [0, 0, 0, 0, 0]],
- [[0, 0, 0, 0, 0], [0, 1, 0, 0, 0], [0, 1, 0, 1, 0], [0, 0, 0, 1, 0], [0, 0, 0, 0, 0]],
- [[0, 1, 0, 0, 0], [1, 1, 0, 0, 0], [1, 1, 0, 1, 0], [0, 1, 0, 1, 0], [0, 1, 0, 0, 0]],
- [[1, 1, 0, 0, 0], [1, 0, 0, 0, 0], [1, 0, 0, 1, 0], [1, 1, 0, 1, 0], [1, 1, 0, 0, 0]],
- [[1, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 1, 0], [1, 0, 0, 1, 0], [1, 0, 0, 0, 0]],
- [[0, 0, 0, 1, 0], [0, 1, 0, 1, 0], [1, 1, 0, 1, 0], [1, 0, 0, 1, 0], [0, 0, 0, 1, 0]]],
- [[[0, 0, 0, 0, 0], [0, 1, 0, 0, 0], [0, 1, 1, 0, 0], [0, 0, 1, 0, 0], [0, 0, 0, 0, 0]],
- [[0, 0, 0, 0, 0], [0, 1, 0, 0, 0], [0, 1, 0, 1, 0], [0, 0, 0, 1, 0], [0, 0, 0, 0, 0]],
- [[0, 1, 0, 0, 0], [0, 1, 1, 0, 0], [0, 1, 1, 1, 0], [0, 1, 0, 1, 0], [0, 1, 0, 0, 0]],
- [[0, 1, 1, 0, 0], [0, 0, 1, 0, 0], [0, 0, 1, 1, 0], [0, 1, 1, 1, 0], [0, 1, 1, 0, 0]],
- [[0, 0, 1, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 1, 0], [0, 0, 1, 1, 0], [0, 0, 1, 0, 0]],
- [[0, 0, 0, 1, 0], [0, 1, 0, 1, 0], [0, 1, 1, 1, 0], [0, 0, 1, 1, 0], [0, 0, 0, 1, 0]]],
- [[[0, 1, 0, 0, 0], [1, 1, 0, 0, 0], [1, 1, 1, 0, 0], [0, 1, 1, 0, 0], [0, 1, 0, 0, 0]],
- [[0, 1, 0, 0, 0], [1, 1, 0, 0, 0], [1, 1, 0, 1, 0], [0, 1, 0, 1, 0], [0, 1, 0, 0, 0]],
- [[1, 1, 0, 0, 0], [1, 1, 1, 0, 0], [1, 1, 1, 1, 0], [1, 1, 0, 1, 0], [1, 1, 0, 0, 0]],
- [[1, 1, 1, 0, 0], [0, 1, 1, 0, 0], [0, 1, 1, 1, 0], [1, 1, 1, 1, 0], [1, 1, 1, 0, 0]],
- [[0, 1, 1, 0, 0], [0, 1, 0, 0, 0], [0, 1, 0, 1, 0], [0, 1, 1, 1, 0], [0, 1, 1, 0, 0]],
- [[0, 1, 0, 1, 0], [1, 1, 0, 1, 0], [1, 1, 1, 1, 0], [0, 1, 1, 1, 0], [0, 1, 0, 1, 0]]],
- [[[1, 1, 0, 0, 0], [1, 0, 0, 0, 0], [1, 0, 1, 0, 0], [1, 1, 1, 0, 0], [1, 1, 0, 0, 0]],
- [[1, 1, 0, 0, 0], [1, 0, 0, 0, 0], [1, 0, 0, 1, 0], [1, 1, 0, 1, 0], [1, 1, 0, 0, 0]],
- [[1, 0, 0, 0, 0], [1, 0, 1, 0, 0], [1, 0, 1, 1, 0], [1, 0, 0, 1, 0], [1, 0, 0, 0, 0]],
- [[1, 0, 1, 0, 0], [1, 1, 1, 0, 0], [1, 1, 1, 1, 0], [1, 0, 1, 1, 0], [1, 0, 1, 0, 0]],
- [[1, 1, 1, 0, 0], [1, 1, 0, 0, 0], [1, 1, 0, 1, 0], [1, 1, 1, 1, 0], [1, 1, 1, 0, 0]],
- [[1, 1, 0, 1, 0], [1, 0, 0, 1, 0], [1, 0, 1, 1, 0], [1, 1, 1, 1, 0], [1, 1, 0, 1, 0]]],
- [[[1, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 1, 0, 0], [1, 0, 1, 0, 0], [1, 0, 0, 0, 0]],
- [[1, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 1, 0], [1, 0, 0, 1, 0], [1, 0, 0, 0, 0]],
- [[0, 0, 0, 0, 0], [0, 0, 1, 0, 0], [0, 0, 1, 1, 0], [0, 0, 0, 1, 0], [0, 0, 0, 0, 0]],
- [[0, 0, 1, 0, 0], [1, 0, 1, 0, 0], [1, 0, 1, 1, 0], [0, 0, 1, 1, 0], [0, 0, 1, 0, 0]],
- [[1, 0, 1, 0, 0], [1, 0, 0, 0, 0], [1, 0, 0, 1, 0], [1, 0, 1, 1, 0], [1, 0, 1, 0, 0]],
- [[1, 0, 0, 1, 0], [0, 0, 0, 1, 0], [0, 0, 1, 1, 0], [1, 0, 1, 1, 0], [1, 0, 0, 1, 0]]],
- [[[0, 0, 1, 0, 0], [0, 1, 1, 0, 0], [1, 1, 1, 0, 0], [1, 0, 1, 0, 0], [0, 0, 1, 0, 0]],
- [[0, 0, 1, 0, 0], [0, 1, 1, 0, 0], [0, 1, 1, 1, 0], [0, 0, 1, 1, 0], [0, 0, 1, 0, 0]],
- [[0, 1, 1, 0, 0], [1, 1, 1, 0, 0], [1, 1, 1, 1, 0], [0, 1, 1, 1, 0], [0, 1, 1, 0, 0]],
- [[1, 1, 1, 0, 0], [1, 0, 1, 0, 0], [1, 0, 1, 1, 0], [1, 1, 1, 1, 0], [1, 1, 1, 0, 0]],
- [[1, 0, 1, 0, 0], [0, 0, 1, 0, 0], [0, 0, 1, 1, 0], [1, 0, 1, 1, 0], [1, 0, 1, 0, 0]],
- [[0, 0, 1, 1, 0], [0, 1, 1, 1, 0], [1, 1, 1, 1, 0], [1, 0, 1, 1, 0], [0, 0, 1, 1, 0]]],
- [[[0, 0, 0, 1, 0], [0, 1, 0, 1, 0], [1, 1, 0, 1, 0], [1, 0, 0, 1, 0], [0, 0, 0, 1, 0]],
- [[0, 0, 0, 1, 0], [0, 1, 0, 1, 0], [0, 1, 1, 1, 0], [0, 0, 1, 1, 0], [0, 0, 0, 1, 0]],
- [[0, 1, 0, 1, 0], [1, 1, 0, 1, 0], [1, 1, 1, 1, 0], [0, 1, 1, 1, 0], [0, 1, 0, 1, 0]],
- [[1, 1, 0, 1, 0], [1, 0, 0, 1, 0], [1, 0, 1, 1, 0], [1, 1, 1, 1, 0], [1, 1, 0, 1, 0]],
- [[1, 0, 0, 1, 0], [0, 0, 0, 1, 0], [0, 0, 1, 1, 0], [1, 0, 1, 1, 0], [1, 0, 0, 1, 0]],
- [[0, 0, 1, 1, 0], [0, 1, 1, 1, 0], [1, 1, 1, 1, 0], [1, 0, 1, 1, 0], [0, 0, 1, 1, 0]]]],
- [[[[0, 0, 0, 0, 0], [0, 1, 0, 0, 0], [1, 1, 0, 0, 0], [1, 0, 0, 0, 0], [0, 0, 0, 0, 0]],
- [[0, 0, 0, 0, 0], [0, 1, 0, 0, 0], [0, 1, 1, 0, 0], [0, 0, 1, 0, 0], [0, 0, 0, 0, 0]],
- [[0, 1, 0, 0, 0], [1, 1, 0, 0, 0], [1, 1, 1, 0, 0], [0, 1, 1, 0, 0], [0, 1, 0, 0, 0]],
- [[1, 1, 0, 0, 0], [1, 0, 0, 0, 0], [1, 0, 1, 0, 0], [1, 1, 1, 0, 0], [1, 1, 0, 0, 0]],
- [[1, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 1, 0, 0], [1, 0, 1, 0, 0], [1, 0, 0, 0, 0]],
- [[0, 0, 1, 0, 0], [0, 1, 1, 0, 0], [1, 1, 1, 0, 0], [1, 0, 1, 0, 0], [0, 0, 1, 0, 0]]],
- [[[0, 0, 0, 0, 0], [0, 1, 0, 0, 0], [1, 1, 0, 0, 0], [1, 0, 0, 0, 0], [0, 0, 0, 0, 0]],
- [[0, 0, 0, 0, 0], [0, 1, 0, 0, 0], [0, 1, 0, 0, 1], [0, 0, 0, 0, 1], [0, 0, 0, 0, 0]],
- [[0, 1, 0, 0, 0], [1, 1, 0, 0, 0], [1, 1, 0, 0, 1], [0, 1, 0, 0, 1], [0, 1, 0, 0, 0]],
- [[1, 1, 0, 0, 0], [1, 0, 0, 0, 0], [1, 0, 0, 0, 1], [1, 1, 0, 0, 1], [1, 1, 0, 0, 0]],
- [[1, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 1], [1, 0, 0, 0, 1], [1, 0, 0, 0, 0]],
- [[0, 0, 0, 0, 1], [0, 1, 0, 0, 1], [1, 1, 0, 0, 1], [1, 0, 0, 0, 1], [0, 0, 0, 0, 1]]],
- [[[0, 0, 0, 0, 0], [0, 1, 0, 0, 0], [0, 1, 1, 0, 0], [0, 0, 1, 0, 0], [0, 0, 0, 0, 0]],
- [[0, 0, 0, 0, 0], [0, 1, 0, 0, 0], [0, 1, 0, 0, 1], [0, 0, 0, 0, 1], [0, 0, 0, 0, 0]],
- [[0, 1, 0, 0, 0], [0, 1, 1, 0, 0], [0, 1, 1, 0, 1], [0, 1, 0, 0, 1], [0, 1, 0, 0, 0]],
- [[0, 1, 1, 0, 0], [0, 0, 1, 0, 0], [0, 0, 1, 0, 1], [0, 1, 1, 0, 1], [0, 1, 1, 0, 0]],
- [[0, 0, 1, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 1], [0, 0, 1, 0, 1], [0, 0, 1, 0, 0]],
- [[0, 0, 0, 0, 1], [0, 1, 0, 0, 1], [0, 1, 1, 0, 1], [0, 0, 1, 0, 1], [0, 0, 0, 0, 1]]],
- [[[0, 1, 0, 0, 0], [1, 1, 0, 0, 0], [1, 1, 1, 0, 0], [0, 1, 1, 0, 0], [0, 1, 0, 0, 0]],
- [[0, 1, 0, 0, 0], [1, 1, 0, 0, 0], [1, 1, 0, 0, 1], [0, 1, 0, 0, 1], [0, 1, 0, 0, 0]],
- [[1, 1, 0, 0, 0], [1, 1, 1, 0, 0], [1, 1, 1, 0, 1], [1, 1, 0, 0, 1], [1, 1, 0, 0, 0]],
- [[1, 1, 1, 0, 0], [0, 1, 1, 0, 0], [0, 1, 1, 0, 1], [1, 1, 1, 0, 1], [1, 1, 1, 0, 0]],
- [[0, 1, 1, 0, 0], [0, 1, 0, 0, 0], [0, 1, 0, 0, 1], [0, 1, 1, 0, 1], [0, 1, 1, 0, 0]],
- [[0, 1, 0, 0, 1], [1, 1, 0, 0, 1], [1, 1, 1, 0, 1], [0, 1, 1, 0, 1], [0, 1, 0, 0, 1]]],
- [[[1, 1, 0, 0, 0], [1, 0, 0, 0, 0], [1, 0, 1, 0, 0], [1, 1, 1, 0, 0], [1, 1, 0, 0, 0]],
- [[1, 1, 0, 0, 0], [1, 0, 0, 0, 0], [1, 0, 0, 0, 1], [1, 1, 0, 0, 1], [1, 1, 0, 0, 0]],
- [[1, 0, 0, 0, 0], [1, 0, 1, 0, 0], [1, 0, 1, 0, 1], [1, 0, 0, 0, 1], [1, 0, 0, 0, 0]],
- [[1, 0, 1, 0, 0], [1, 1, 1, 0, 0], [1, 1, 1, 0, 1], [1, 0, 1, 0, 1], [1, 0, 1, 0, 0]],
- [[1, 1, 1, 0, 0], [1, 1, 0, 0, 0], [1, 1, 0, 0, 1], [1, 1, 1, 0, 1], [1, 1, 1, 0, 0]],
- [[1, 1, 0, 0, 1], [1, 0, 0, 0, 1], [1, 0, 1, 0, 1], [1, 1, 1, 0, 1], [1, 1, 0, 0, 1]]],
- [[[1, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 1, 0, 0], [1, 0, 1, 0, 0], [1, 0, 0, 0, 0]],
- [[1, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 1], [1, 0, 0, 0, 1], [1, 0, 0, 0, 0]],
- [[0, 0, 0, 0, 0], [0, 0, 1, 0, 0], [0, 0, 1, 0, 1], [0, 0, 0, 0, 1], [0, 0, 0, 0, 0]],
- [[0, 0, 1, 0, 0], [1, 0, 1, 0, 0], [1, 0, 1, 0, 1], [0, 0, 1, 0, 1], [0, 0, 1, 0, 0]],
- [[1, 0, 1, 0, 0], [1, 0, 0, 0, 0], [1, 0, 0, 0, 1], [1, 0, 1, 0, 1], [1, 0, 1, 0, 0]],
- [[1, 0, 0, 0, 1], [0, 0, 0, 0, 1], [0, 0, 1, 0, 1], [1, 0, 1, 0, 1], [1, 0, 0, 0, 1]]],
- [[[0, 0, 1, 0, 0], [0, 1, 1, 0, 0], [1, 1, 1, 0, 0], [1, 0, 1, 0, 0], [0, 0, 1, 0, 0]],
- [[0, 0, 1, 0, 0], [0, 1, 1, 0, 0], [0, 1, 1, 0, 1], [0, 0, 1, 0, 1], [0, 0, 1, 0, 0]],
- [[0, 1, 1, 0, 0], [1, 1, 1, 0, 0], [1, 1, 1, 0, 1], [0, 1, 1, 0, 1], [0, 1, 1, 0, 0]],
- [[1, 1, 1, 0, 0], [1, 0, 1, 0, 0], [1, 0, 1, 0, 1], [1, 1, 1, 0, 1], [1, 1, 1, 0, 0]],
- [[1, 0, 1, 0, 0], [0, 0, 1, 0, 0], [0, 0, 1, 0, 1], [1, 0, 1, 0, 1], [1, 0, 1, 0, 0]],
- [[0, 0, 1, 0, 1], [0, 1, 1, 0, 1], [1, 1, 1, 0, 1], [1, 0, 1, 0, 1], [0, 0, 1, 0, 1]]],
- [[[0, 0, 0, 0, 1], [0, 1, 0, 0, 1], [1, 1, 0, 0, 1], [1, 0, 0, 0, 1], [0, 0, 0, 0, 1]],
- [[0, 0, 0, 0, 1], [0, 1, 0, 0, 1], [0, 1, 1, 0, 1], [0, 0, 1, 0, 1], [0, 0, 0, 0, 1]],
- [[0, 1, 0, 0, 1], [1, 1, 0, 0, 1], [1, 1, 1, 0, 1], [0, 1, 1, 0, 1], [0, 1, 0, 0, 1]],
- [[1, 1, 0, 0, 1], [1, 0, 0, 0, 1], [1, 0, 1, 0, 1], [1, 1, 1, 0, 1], [1, 1, 0, 0, 1]],
- [[1, 0, 0, 0, 1], [0, 0, 0, 0, 1], [0, 0, 1, 0, 1], [1, 0, 1, 0, 1], [1, 0, 0, 0, 1]],
- [[0, 0, 1, 0, 1], [0, 1, 1, 0, 1], [1, 1, 1, 0, 1], [1, 0, 1, 0, 1], [0, 0, 1, 0, 1]]]],
- [[[[0, 0, 0, 0, 0], [0, 1, 0, 0, 0], [1, 1, 0, 0, 0], [1, 0, 0, 0, 0], [0, 0, 0, 0, 0]],
- [[0, 0, 0, 0, 0], [0, 1, 0, 0, 0], [0, 1, 0, 1, 0], [0, 0, 0, 1, 0], [0, 0, 0, 0, 0]],
- [[0, 1, 0, 0, 0], [1, 1, 0, 0, 0], [1, 1, 0, 1, 0], [0, 1, 0, 1, 0], [0, 1, 0, 0, 0]],
- [[1, 1, 0, 0, 0], [1, 0, 0, 0, 0], [1, 0, 0, 1, 0], [1, 1, 0, 1, 0], [1, 1, 0, 0, 0]],
- [[1, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 1, 0], [1, 0, 0, 1, 0], [1, 0, 0, 0, 0]],
- [[0, 0, 0, 1, 0], [0, 1, 0, 1, 0], [1, 1, 0, 1, 0], [1, 0, 0, 1, 0], [0, 0, 0, 1, 0]]],
- [[[0, 0, 0, 0, 0], [0, 1, 0, 0, 0], [1, 1, 0, 0, 0], [1, 0, 0, 0, 0], [0, 0, 0, 0, 0]],
- [[0, 0, 0, 0, 0], [0, 1, 0, 0, 0], [0, 1, 0, 0, 1], [0, 0, 0, 0, 1], [0, 0, 0, 0, 0]],
- [[0, 1, 0, 0, 0], [1, 1, 0, 0, 0], [1, 1, 0, 0, 1], [0, 1, 0, 0, 1], [0, 1, 0, 0, 0]],
- [[1, 1, 0, 0, 0], [1, 0, 0, 0, 0], [1, 0, 0, 0, 1], [1, 1, 0, 0, 1], [1, 1, 0, 0, 0]],
- [[1, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 1], [1, 0, 0, 0, 1], [1, 0, 0, 0, 0]],
- [[0, 0, 0, 0, 1], [0, 1, 0, 0, 1], [1, 1, 0, 0, 1], [1, 0, 0, 0, 1], [0, 0, 0, 0, 1]]],
- [[[0, 0, 0, 0, 0], [0, 1, 0, 0, 0], [0, 1, 0, 1, 0], [0, 0, 0, 1, 0], [0, 0, 0, 0, 0]],
- [[0, 0, 0, 0, 0], [0, 1, 0, 0, 0], [0, 1, 0, 0, 1], [0, 0, 0, 0, 1], [0, 0, 0, 0, 0]],
- [[0, 1, 0, 0, 0], [0, 1, 0, 1, 0], [0, 1, 0, 1, 1], [0, 1, 0, 0, 1], [0, 1, 0, 0, 0]],
- [[0, 1, 0, 1, 0], [0, 0, 0, 1, 0], [0, 0, 0, 1, 1], [0, 1, 0, 1, 1], [0, 1, 0, 1, 0]],
- [[0, 0, 0, 1, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 1], [0, 0, 0, 1, 1], [0, 0, 0, 1, 0]],
- [[0, 0, 0, 0, 1], [0, 1, 0, 0, 1], [0, 1, 0, 1, 1], [0, 0, 0, 1, 1], [0, 0, 0, 0, 1]]],
- [[[0, 1, 0, 0, 0], [1, 1, 0, 0, 0], [1, 1, 0, 1, 0], [0, 1, 0, 1, 0], [0, 1, 0, 0, 0]],
- [[0, 1, 0, 0, 0], [1, 1, 0, 0, 0], [1, 1, 0, 0, 1], [0, 1, 0, 0, 1], [0, 1, 0, 0, 0]],
- [[1, 1, 0, 0, 0], [1, 1, 0, 1, 0], [1, 1, 0, 1, 1], [1, 1, 0, 0, 1], [1, 1, 0, 0, 0]],
- [[1, 1, 0, 1, 0], [0, 1, 0, 1, 0], [0, 1, 0, 1, 1], [1, 1, 0, 1, 1], [1, 1, 0, 1, 0]],
- [[0, 1, 0, 1, 0], [0, 1, 0, 0, 0], [0, 1, 0, 0, 1], [0, 1, 0, 1, 1], [0, 1, 0, 1, 0]],
- [[0, 1, 0, 0, 1], [1, 1, 0, 0, 1], [1, 1, 0, 1, 1], [0, 1, 0, 1, 1], [0, 1, 0, 0, 1]]],
- [[[1, 1, 0, 0, 0], [1, 0, 0, 0, 0], [1, 0, 0, 1, 0], [1, 1, 0, 1, 0], [1, 1, 0, 0, 0]],
- [[1, 1, 0, 0, 0], [1, 0, 0, 0, 0], [1, 0, 0, 0, 1], [1, 1, 0, 0, 1], [1, 1, 0, 0, 0]],
- [[1, 0, 0, 0, 0], [1, 0, 0, 1, 0], [1, 0, 0, 1, 1], [1, 0, 0, 0, 1], [1, 0, 0, 0, 0]],
- [[1, 0, 0, 1, 0], [1, 1, 0, 1, 0], [1, 1, 0, 1, 1], [1, 0, 0, 1, 1], [1, 0, 0, 1, 0]],
- [[1, 1, 0, 1, 0], [1, 1, 0, 0, 0], [1, 1, 0, 0, 1], [1, 1, 0, 1, 1], [1, 1, 0, 1, 0]],
- [[1, 1, 0, 0, 1], [1, 0, 0, 0, 1], [1, 0, 0, 1, 1], [1, 1, 0, 1, 1], [1, 1, 0, 0, 1]]],
- [[[1, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 1, 0], [1, 0, 0, 1, 0], [1, 0, 0, 0, 0]],
- [[1, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 1], [1, 0, 0, 0, 1], [1, 0, 0, 0, 0]],
- [[0, 0, 0, 0, 0], [0, 0, 0, 1, 0], [0, 0, 0, 1, 1], [0, 0, 0, 0, 1], [0, 0, 0, 0, 0]],
- [[0, 0, 0, 1, 0], [1, 0, 0, 1, 0], [1, 0, 0, 1, 1], [0, 0, 0, 1, 1], [0, 0, 0, 1, 0]],
- [[1, 0, 0, 1, 0], [1, 0, 0, 0, 0], [1, 0, 0, 0, 1], [1, 0, 0, 1, 1], [1, 0, 0, 1, 0]],
- [[1, 0, 0, 0, 1], [0, 0, 0, 0, 1], [0, 0, 0, 1, 1], [1, 0, 0, 1, 1], [1, 0, 0, 0, 1]]],
- [[[0, 0, 0, 1, 0], [0, 1, 0, 1, 0], [1, 1, 0, 1, 0], [1, 0, 0, 1, 0], [0, 0, 0, 1, 0]],
- [[0, 0, 0, 1, 0], [0, 1, 0, 1, 0], [0, 1, 0, 1, 1], [0, 0, 0, 1, 1], [0, 0, 0, 1, 0]],
- [[0, 1, 0, 1, 0], [1, 1, 0, 1, 0], [1, 1, 0, 1, 1], [0, 1, 0, 1, 1], [0, 1, 0, 1, 0]],
- [[1, 1, 0, 1, 0], [1, 0, 0, 1, 0], [1, 0, 0, 1, 1], [1, 1, 0, 1, 1], [1, 1, 0, 1, 0]],
- [[1, 0, 0, 1, 0], [0, 0, 0, 1, 0], [0, 0, 0, 1, 1], [1, 0, 0, 1, 1], [1, 0, 0, 1, 0]],
- [[0, 0, 0, 1, 1], [0, 1, 0, 1, 1], [1, 1, 0, 1, 1], [1, 0, 0, 1, 1], [0, 0, 0, 1, 1]]],
- [[[0, 0, 0, 0, 1], [0, 1, 0, 0, 1], [1, 1, 0, 0, 1], [1, 0, 0, 0, 1], [0, 0, 0, 0, 1]],
- [[0, 0, 0, 0, 1], [0, 1, 0, 0, 1], [0, 1, 0, 1, 1], [0, 0, 0, 1, 1], [0, 0, 0, 0, 1]],
- [[0, 1, 0, 0, 1], [1, 1, 0, 0, 1], [1, 1, 0, 1, 1], [0, 1, 0, 1, 1], [0, 1, 0, 0, 1]],
- [[1, 1, 0, 0, 1], [1, 0, 0, 0, 1], [1, 0, 0, 1, 1], [1, 1, 0, 1, 1], [1, 1, 0, 0, 1]],
- [[1, 0, 0, 0, 1], [0, 0, 0, 0, 1], [0, 0, 0, 1, 1], [1, 0, 0, 1, 1], [1, 0, 0, 0, 1]],
- [[0, 0, 0, 1, 1], [0, 1, 0, 1, 1], [1, 1, 0, 1, 1], [1, 0, 0, 1, 1], [0, 0, 0, 1, 1]]]],
- [[[[0, 0, 0, 0, 0], [0, 1, 0, 0, 0], [0, 1, 1, 0, 0], [0, 0, 1, 0, 0], [0, 0, 0, 0, 0]],
- [[0, 0, 0, 0, 0], [0, 1, 0, 0, 0], [0, 1, 0, 1, 0], [0, 0, 0, 1, 0], [0, 0, 0, 0, 0]],
- [[0, 1, 0, 0, 0], [0, 1, 1, 0, 0], [0, 1, 1, 1, 0], [0, 1, 0, 1, 0], [0, 1, 0, 0, 0]],
- [[0, 1, 1, 0, 0], [0, 0, 1, 0, 0], [0, 0, 1, 1, 0], [0, 1, 1, 1, 0], [0, 1, 1, 0, 0]],
- [[0, 0, 1, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 1, 0], [0, 0, 1, 1, 0], [0, 0, 1, 0, 0]],
- [[0, 0, 0, 1, 0], [0, 1, 0, 1, 0], [0, 1, 1, 1, 0], [0, 0, 1, 1, 0], [0, 0, 0, 1, 0]]],
- [[[0, 0, 0, 0, 0], [0, 1, 0, 0, 0], [0, 1, 1, 0, 0], [0, 0, 1, 0, 0], [0, 0, 0, 0, 0]],
- [[0, 0, 0, 0, 0], [0, 1, 0, 0, 0], [0, 1, 0, 0, 1], [0, 0, 0, 0, 1], [0, 0, 0, 0, 0]],
- [[0, 1, 0, 0, 0], [0, 1, 1, 0, 0], [0, 1, 1, 0, 1], [0, 1, 0, 0, 1], [0, 1, 0, 0, 0]],
- [[0, 1, 1, 0, 0], [0, 0, 1, 0, 0], [0, 0, 1, 0, 1], [0, 1, 1, 0, 1], [0, 1, 1, 0, 0]],
- [[0, 0, 1, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 1], [0, 0, 1, 0, 1], [0, 0, 1, 0, 0]],
- [[0, 0, 0, 0, 1], [0, 1, 0, 0, 1], [0, 1, 1, 0, 1], [0, 0, 1, 0, 1], [0, 0, 0, 0, 1]]],
- [[[0, 0, 0, 0, 0], [0, 1, 0, 0, 0], [0, 1, 0, 1, 0], [0, 0, 0, 1, 0], [0, 0, 0, 0, 0]],
- [[0, 0, 0, 0, 0], [0, 1, 0, 0, 0], [0, 1, 0, 0, 1], [0, 0, 0, 0, 1], [0, 0, 0, 0, 0]],
- [[0, 1, 0, 0, 0], [0, 1, 0, 1, 0], [0, 1, 0, 1, 1], [0, 1, 0, 0, 1], [0, 1, 0, 0, 0]],
- [[0, 1, 0, 1, 0], [0, 0, 0, 1, 0], [0, 0, 0, 1, 1], [0, 1, 0, 1, 1], [0, 1, 0, 1, 0]],
- [[0, 0, 0, 1, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 1], [0, 0, 0, 1, 1], [0, 0, 0, 1, 0]],
- [[0, 0, 0, 0, 1], [0, 1, 0, 0, 1], [0, 1, 0, 1, 1], [0, 0, 0, 1, 1], [0, 0, 0, 0, 1]]],
- [[[0, 1, 0, 0, 0], [0, 1, 1, 0, 0], [0, 1, 1, 1, 0], [0, 1, 0, 1, 0], [0, 1, 0, 0, 0]],
- [[0, 1, 0, 0, 0], [0, 1, 1, 0, 0], [0, 1, 1, 0, 1], [0, 1, 0, 0, 1], [0, 1, 0, 0, 0]],
- [[0, 1, 1, 0, 0], [0, 1, 1, 1, 0], [0, 1, 1, 1, 1], [0, 1, 1, 0, 1], [0, 1, 1, 0, 0]],
- [[0, 1, 1, 1, 0], [0, 1, 0, 1, 0], [0, 1, 0, 1, 1], [0, 1, 1, 1, 1], [0, 1, 1, 1, 0]],
- [[0, 1, 0, 1, 0], [0, 1, 0, 0, 0], [0, 1, 0, 0, 1], [0, 1, 0, 1, 1], [0, 1, 0, 1, 0]],
- [[0, 1, 0, 0, 1], [0, 1, 1, 0, 1], [0, 1, 1, 1, 1], [0, 1, 0, 1, 1], [0, 1, 0, 0, 1]]],
- [[[0, 1, 1, 0, 0], [0, 0, 1, 0, 0], [0, 0, 1, 1, 0], [0, 1, 1, 1, 0], [0, 1, 1, 0, 0]],
- [[0, 1, 1, 0, 0], [0, 0, 1, 0, 0], [0, 0, 1, 0, 1], [0, 1, 1, 0, 1], [0, 1, 1, 0, 0]],
- [[0, 0, 1, 0, 0], [0, 0, 1, 1, 0], [0, 0, 1, 1, 1], [0, 0, 1, 0, 1], [0, 0, 1, 0, 0]],
- [[0, 0, 1, 1, 0], [0, 1, 1, 1, 0], [0, 1, 1, 1, 1], [0, 0, 1, 1, 1], [0, 0, 1, 1, 0]],
- [[0, 1, 1, 1, 0], [0, 1, 1, 0, 0], [0, 1, 1, 0, 1], [0, 1, 1, 1, 1], [0, 1, 1, 1, 0]],
- [[0, 1, 1, 0, 1], [0, 0, 1, 0, 1], [0, 0, 1, 1, 1], [0, 1, 1, 1, 1], [0, 1, 1, 0, 1]]],
- [[[0, 0, 1, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 1, 0], [0, 0, 1, 1, 0], [0, 0, 1, 0, 0]],
- [[0, 0, 1, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 1], [0, 0, 1, 0, 1], [0, 0, 1, 0, 0]],
- [[0, 0, 0, 0, 0], [0, 0, 0, 1, 0], [0, 0, 0, 1, 1], [0, 0, 0, 0, 1], [0, 0, 0, 0, 0]],
- [[0, 0, 0, 1, 0], [0, 0, 1, 1, 0], [0, 0, 1, 1, 1], [0, 0, 0, 1, 1], [0, 0, 0, 1, 0]],
- [[0, 0, 1, 1, 0], [0, 0, 1, 0, 0], [0, 0, 1, 0, 1], [0, 0, 1, 1, 1], [0, 0, 1, 1, 0]],
- [[0, 0, 1, 0, 1], [0, 0, 0, 0, 1], [0, 0, 0, 1, 1], [0, 0, 1, 1, 1], [0, 0, 1, 0, 1]]],
- [[[0, 0, 0, 1, 0], [0, 1, 0, 1, 0], [0, 1, 1, 1, 0], [0, 0, 1, 1, 0], [0, 0, 0, 1, 0]],
- [[0, 0, 0, 1, 0], [0, 1, 0, 1, 0], [0, 1, 0, 1, 1], [0, 0, 0, 1, 1], [0, 0, 0, 1, 0]],
- [[0, 1, 0, 1, 0], [0, 1, 1, 1, 0], [0, 1, 1, 1, 1], [0, 1, 0, 1, 1], [0, 1, 0, 1, 0]],
- [[0, 1, 1, 1, 0], [0, 0, 1, 1, 0], [0, 0, 1, 1, 1], [0, 1, 1, 1, 1], [0, 1, 1, 1, 0]],
- [[0, 0, 1, 1, 0], [0, 0, 0, 1, 0], [0, 0, 0, 1, 1], [0, 0, 1, 1, 1], [0, 0, 1, 1, 0]],
- [[0, 0, 0, 1, 1], [0, 1, 0, 1, 1], [0, 1, 1, 1, 1], [0, 0, 1, 1, 1], [0, 0, 0, 1, 1]]],
- [[[0, 0, 0, 0, 1], [0, 1, 0, 0, 1], [0, 1, 1, 0, 1], [0, 0, 1, 0, 1], [0, 0, 0, 0, 1]],
- [[0, 0, 0, 0, 1], [0, 1, 0, 0, 1], [0, 1, 0, 1, 1], [0, 0, 0, 1, 1], [0, 0, 0, 0, 1]],
- [[0, 1, 0, 0, 1], [0, 1, 1, 0, 1], [0, 1, 1, 1, 1], [0, 1, 0, 1, 1], [0, 1, 0, 0, 1]],
- [[0, 1, 1, 0, 1], [0, 0, 1, 0, 1], [0, 0, 1, 1, 1], [0, 1, 1, 1, 1], [0, 1, 1, 0, 1]],
- [[0, 0, 1, 0, 1], [0, 0, 0, 0, 1], [0, 0, 0, 1, 1], [0, 0, 1, 1, 1], [0, 0, 1, 0, 1]],
- [[0, 0, 0, 1, 1], [0, 1, 0, 1, 1], [0, 1, 1, 1, 1], [0, 0, 1, 1, 1], [0, 0, 0, 1, 1]]]],
- [[[[0, 1, 0, 0, 0], [1, 1, 0, 0, 0], [1, 1, 1, 0, 0], [0, 1, 1, 0, 0], [0, 1, 0, 0, 0]],
- [[0, 1, 0, 0, 0], [1, 1, 0, 0, 0], [1, 1, 0, 1, 0], [0, 1, 0, 1, 0], [0, 1, 0, 0, 0]],
- [[1, 1, 0, 0, 0], [1, 1, 1, 0, 0], [1, 1, 1, 1, 0], [1, 1, 0, 1, 0], [1, 1, 0, 0, 0]],
- [[1, 1, 1, 0, 0], [0, 1, 1, 0, 0], [0, 1, 1, 1, 0], [1, 1, 1, 1, 0], [1, 1, 1, 0, 0]],
- [[0, 1, 1, 0, 0], [0, 1, 0, 0, 0], [0, 1, 0, 1, 0], [0, 1, 1, 1, 0], [0, 1, 1, 0, 0]],
- [[0, 1, 0, 1, 0], [1, 1, 0, 1, 0], [1, 1, 1, 1, 0], [0, 1, 1, 1, 0], [0, 1, 0, 1, 0]]],
- [[[0, 1, 0, 0, 0], [1, 1, 0, 0, 0], [1, 1, 1, 0, 0], [0, 1, 1, 0, 0], [0, 1, 0, 0, 0]],
- [[0, 1, 0, 0, 0], [1, 1, 0, 0, 0], [1, 1, 0, 0, 1], [0, 1, 0, 0, 1], [0, 1, 0, 0, 0]],
- [[1, 1, 0, 0, 0], [1, 1, 1, 0, 0], [1, 1, 1, 0, 1], [1, 1, 0, 0, 1], [1, 1, 0, 0, 0]],
- [[1, 1, 1, 0, 0], [0, 1, 1, 0, 0], [0, 1, 1, 0, 1], [1, 1, 1, 0, 1], [1, 1, 1, 0, 0]],
- [[0, 1, 1, 0, 0], [0, 1, 0, 0, 0], [0, 1, 0, 0, 1], [0, 1, 1, 0, 1], [0, 1, 1, 0, 0]],
- [[0, 1, 0, 0, 1], [1, 1, 0, 0, 1], [1, 1, 1, 0, 1], [0, 1, 1, 0, 1], [0, 1, 0, 0, 1]]],
- [[[0, 1, 0, 0, 0], [1, 1, 0, 0, 0], [1, 1, 0, 1, 0], [0, 1, 0, 1, 0], [0, 1, 0, 0, 0]],
- [[0, 1, 0, 0, 0], [1, 1, 0, 0, 0], [1, 1, 0, 0, 1], [0, 1, 0, 0, 1], [0, 1, 0, 0, 0]],
- [[1, 1, 0, 0, 0], [1, 1, 0, 1, 0], [1, 1, 0, 1, 1], [1, 1, 0, 0, 1], [1, 1, 0, 0, 0]],
- [[1, 1, 0, 1, 0], [0, 1, 0, 1, 0], [0, 1, 0, 1, 1], [1, 1, 0, 1, 1], [1, 1, 0, 1, 0]],
- [[0, 1, 0, 1, 0], [0, 1, 0, 0, 0], [0, 1, 0, 0, 1], [0, 1, 0, 1, 1], [0, 1, 0, 1, 0]],
- [[0, 1, 0, 0, 1], [1, 1, 0, 0, 1], [1, 1, 0, 1, 1], [0, 1, 0, 1, 1], [0, 1, 0, 0, 1]]],
- [[[1, 1, 0, 0, 0], [1, 1, 1, 0, 0], [1, 1, 1, 1, 0], [1, 1, 0, 1, 0], [1, 1, 0, 0, 0]],
- [[1, 1, 0, 0, 0], [1, 1, 1, 0, 0], [1, 1, 1, 0, 1], [1, 1, 0, 0, 1], [1, 1, 0, 0, 0]],
- [[1, 1, 1, 0, 0], [1, 1, 1, 1, 0], [1, 1, 1, 1, 1], [1, 1, 1, 0, 1], [1, 1, 1, 0, 0]],
- [[1, 1, 1, 1, 0], [1, 1, 0, 1, 0], [1, 1, 0, 1, 1], [1, 1, 1, 1, 1], [1, 1, 1, 1, 0]],
- [[1, 1, 0, 1, 0], [1, 1, 0, 0, 0], [1, 1, 0, 0, 1], [1, 1, 0, 1, 1], [1, 1, 0, 1, 0]],
- [[1, 1, 0, 0, 1], [1, 1, 1, 0, 1], [1, 1, 1, 1, 1], [1, 1, 0, 1, 1], [1, 1, 0, 0, 1]]],
- [[[1, 1, 1, 0, 0], [0, 1, 1, 0, 0], [0, 1, 1, 1, 0], [1, 1, 1, 1, 0], [1, 1, 1, 0, 0]],
- [[1, 1, 1, 0, 0], [0, 1, 1, 0, 0], [0, 1, 1, 0, 1], [1, 1, 1, 0, 1], [1, 1, 1, 0, 0]],
- [[0, 1, 1, 0, 0], [0, 1, 1, 1, 0], [0, 1, 1, 1, 1], [0, 1, 1, 0, 1], [0, 1, 1, 0, 0]],
- [[0, 1, 1, 1, 0], [1, 1, 1, 1, 0], [1, 1, 1, 1, 1], [0, 1, 1, 1, 1], [0, 1, 1, 1, 0]],
- [[1, 1, 1, 1, 0], [1, 1, 1, 0, 0], [1, 1, 1, 0, 1], [1, 1, 1, 1, 1], [1, 1, 1, 1, 0]],
- [[1, 1, 1, 0, 1], [0, 1, 1, 0, 1], [0, 1, 1, 1, 1], [1, 1, 1, 1, 1], [1, 1, 1, 0, 1]]],
- [[[0, 1, 1, 0, 0], [0, 1, 0, 0, 0], [0, 1, 0, 1, 0], [0, 1, 1, 1, 0], [0, 1, 1, 0, 0]],
- [[0, 1, 1, 0, 0], [0, 1, 0, 0, 0], [0, 1, 0, 0, 1], [0, 1, 1, 0, 1], [0, 1, 1, 0, 0]],
- [[0, 1, 0, 0, 0], [0, 1, 0, 1, 0], [0, 1, 0, 1, 1], [0, 1, 0, 0, 1], [0, 1, 0, 0, 0]],
- [[0, 1, 0, 1, 0], [0, 1, 1, 1, 0], [0, 1, 1, 1, 1], [0, 1, 0, 1, 1], [0, 1, 0, 1, 0]],
- [[0, 1, 1, 1, 0], [0, 1, 1, 0, 0], [0, 1, 1, 0, 1], [0, 1, 1, 1, 1], [0, 1, 1, 1, 0]],
- [[0, 1, 1, 0, 1], [0, 1, 0, 0, 1], [0, 1, 0, 1, 1], [0, 1, 1, 1, 1], [0, 1, 1, 0, 1]]],
- [[[0, 1, 0, 1, 0], [1, 1, 0, 1, 0], [1, 1, 1, 1, 0], [0, 1, 1, 1, 0], [0, 1, 0, 1, 0]],
- [[0, 1, 0, 1, 0], [1, 1, 0, 1, 0], [1, 1, 0, 1, 1], [0, 1, 0, 1, 1], [0, 1, 0, 1, 0]],
- [[1, 1, 0, 1, 0], [1, 1, 1, 1, 0], [1, 1, 1, 1, 1], [1, 1, 0, 1, 1], [1, 1, 0, 1, 0]],
- [[1, 1, 1, 1, 0], [0, 1, 1, 1, 0], [0, 1, 1, 1, 1], [1, 1, 1, 1, 1], [1, 1, 1, 1, 0]],
- [[0, 1, 1, 1, 0], [0, 1, 0, 1, 0], [0, 1, 0, 1, 1], [0, 1, 1, 1, 1], [0, 1, 1, 1, 0]],
- [[0, 1, 0, 1, 1], [1, 1, 0, 1, 1], [1, 1, 1, 1, 1], [0, 1, 1, 1, 1], [0, 1, 0, 1, 1]]],
- [[[0, 1, 0, 0, 1], [1, 1, 0, 0, 1], [1, 1, 1, 0, 1], [0, 1, 1, 0, 1], [0, 1, 0, 0, 1]],
- [[0, 1, 0, 0, 1], [1, 1, 0, 0, 1], [1, 1, 0, 1, 1], [0, 1, 0, 1, 1], [0, 1, 0, 0, 1]],
- [[1, 1, 0, 0, 1], [1, 1, 1, 0, 1], [1, 1, 1, 1, 1], [1, 1, 0, 1, 1], [1, 1, 0, 0, 1]],
- [[1, 1, 1, 0, 1], [0, 1, 1, 0, 1], [0, 1, 1, 1, 1], [1, 1, 1, 1, 1], [1, 1, 1, 0, 1]],
- [[0, 1, 1, 0, 1], [0, 1, 0, 0, 1], [0, 1, 0, 1, 1], [0, 1, 1, 1, 1], [0, 1, 1, 0, 1]],
- [[0, 1, 0, 1, 1], [1, 1, 0, 1, 1], [1, 1, 1, 1, 1], [0, 1, 1, 1, 1], [0, 1, 0, 1, 1]]]],
- [[[[1, 1, 0, 0, 0], [1, 0, 0, 0, 0], [1, 0, 1, 0, 0], [1, 1, 1, 0, 0], [1, 1, 0, 0, 0]],
- [[1, 1, 0, 0, 0], [1, 0, 0, 0, 0], [1, 0, 0, 1, 0], [1, 1, 0, 1, 0], [1, 1, 0, 0, 0]],
- [[1, 0, 0, 0, 0], [1, 0, 1, 0, 0], [1, 0, 1, 1, 0], [1, 0, 0, 1, 0], [1, 0, 0, 0, 0]],
- [[1, 0, 1, 0, 0], [1, 1, 1, 0, 0], [1, 1, 1, 1, 0], [1, 0, 1, 1, 0], [1, 0, 1, 0, 0]],
- [[1, 1, 1, 0, 0], [1, 1, 0, 0, 0], [1, 1, 0, 1, 0], [1, 1, 1, 1, 0], [1, 1, 1, 0, 0]],
- [[1, 1, 0, 1, 0], [1, 0, 0, 1, 0], [1, 0, 1, 1, 0], [1, 1, 1, 1, 0], [1, 1, 0, 1, 0]]],
- [[[1, 1, 0, 0, 0], [1, 0, 0, 0, 0], [1, 0, 1, 0, 0], [1, 1, 1, 0, 0], [1, 1, 0, 0, 0]],
- [[1, 1, 0, 0, 0], [1, 0, 0, 0, 0], [1, 0, 0, 0, 1], [1, 1, 0, 0, 1], [1, 1, 0, 0, 0]],
- [[1, 0, 0, 0, 0], [1, 0, 1, 0, 0], [1, 0, 1, 0, 1], [1, 0, 0, 0, 1], [1, 0, 0, 0, 0]],
- [[1, 0, 1, 0, 0], [1, 1, 1, 0, 0], [1, 1, 1, 0, 1], [1, 0, 1, 0, 1], [1, 0, 1, 0, 0]],
- [[1, 1, 1, 0, 0], [1, 1, 0, 0, 0], [1, 1, 0, 0, 1], [1, 1, 1, 0, 1], [1, 1, 1, 0, 0]],
- [[1, 1, 0, 0, 1], [1, 0, 0, 0, 1], [1, 0, 1, 0, 1], [1, 1, 1, 0, 1], [1, 1, 0, 0, 1]]],
- [[[1, 1, 0, 0, 0], [1, 0, 0, 0, 0], [1, 0, 0, 1, 0], [1, 1, 0, 1, 0], [1, 1, 0, 0, 0]],
- [[1, 1, 0, 0, 0], [1, 0, 0, 0, 0], [1, 0, 0, 0, 1], [1, 1, 0, 0, 1], [1, 1, 0, 0, 0]],
- [[1, 0, 0, 0, 0], [1, 0, 0, 1, 0], [1, 0, 0, 1, 1], [1, 0, 0, 0, 1], [1, 0, 0, 0, 0]],
- [[1, 0, 0, 1, 0], [1, 1, 0, 1, 0], [1, 1, 0, 1, 1], [1, 0, 0, 1, 1], [1, 0, 0, 1, 0]],
- [[1, 1, 0, 1, 0], [1, 1, 0, 0, 0], [1, 1, 0, 0, 1], [1, 1, 0, 1, 1], [1, 1, 0, 1, 0]],
- [[1, 1, 0, 0, 1], [1, 0, 0, 0, 1], [1, 0, 0, 1, 1], [1, 1, 0, 1, 1], [1, 1, 0, 0, 1]]],
- [[[1, 0, 0, 0, 0], [1, 0, 1, 0, 0], [1, 0, 1, 1, 0], [1, 0, 0, 1, 0], [1, 0, 0, 0, 0]],
- [[1, 0, 0, 0, 0], [1, 0, 1, 0, 0], [1, 0, 1, 0, 1], [1, 0, 0, 0, 1], [1, 0, 0, 0, 0]],
- [[1, 0, 1, 0, 0], [1, 0, 1, 1, 0], [1, 0, 1, 1, 1], [1, 0, 1, 0, 1], [1, 0, 1, 0, 0]],
- [[1, 0, 1, 1, 0], [1, 0, 0, 1, 0], [1, 0, 0, 1, 1], [1, 0, 1, 1, 1], [1, 0, 1, 1, 0]],
- [[1, 0, 0, 1, 0], [1, 0, 0, 0, 0], [1, 0, 0, 0, 1], [1, 0, 0, 1, 1], [1, 0, 0, 1, 0]],
- [[1, 0, 0, 0, 1], [1, 0, 1, 0, 1], [1, 0, 1, 1, 1], [1, 0, 0, 1, 1], [1, 0, 0, 0, 1]]],
- [[[1, 0, 1, 0, 0], [1, 1, 1, 0, 0], [1, 1, 1, 1, 0], [1, 0, 1, 1, 0], [1, 0, 1, 0, 0]],
- [[1, 0, 1, 0, 0], [1, 1, 1, 0, 0], [1, 1, 1, 0, 1], [1, 0, 1, 0, 1], [1, 0, 1, 0, 0]],
- [[1, 1, 1, 0, 0], [1, 1, 1, 1, 0], [1, 1, 1, 1, 1], [1, 1, 1, 0, 1], [1, 1, 1, 0, 0]],
- [[1, 1, 1, 1, 0], [1, 0, 1, 1, 0], [1, 0, 1, 1, 1], [1, 1, 1, 1, 1], [1, 1, 1, 1, 0]],
- [[1, 0, 1, 1, 0], [1, 0, 1, 0, 0], [1, 0, 1, 0, 1], [1, 0, 1, 1, 1], [1, 0, 1, 1, 0]],
- [[1, 0, 1, 0, 1], [1, 1, 1, 0, 1], [1, 1, 1, 1, 1], [1, 0, 1, 1, 1], [1, 0, 1, 0, 1]]],
- [[[1, 1, 1, 0, 0], [1, 1, 0, 0, 0], [1, 1, 0, 1, 0], [1, 1, 1, 1, 0], [1, 1, 1, 0, 0]],
- [[1, 1, 1, 0, 0], [1, 1, 0, 0, 0], [1, 1, 0, 0, 1], [1, 1, 1, 0, 1], [1, 1, 1, 0, 0]],
- [[1, 1, 0, 0, 0], [1, 1, 0, 1, 0], [1, 1, 0, 1, 1], [1, 1, 0, 0, 1], [1, 1, 0, 0, 0]],
- [[1, 1, 0, 1, 0], [1, 1, 1, 1, 0], [1, 1, 1, 1, 1], [1, 1, 0, 1, 1], [1, 1, 0, 1, 0]],
- [[1, 1, 1, 1, 0], [1, 1, 1, 0, 0], [1, 1, 1, 0, 1], [1, 1, 1, 1, 1], [1, 1, 1, 1, 0]],
- [[1, 1, 1, 0, 1], [1, 1, 0, 0, 1], [1, 1, 0, 1, 1], [1, 1, 1, 1, 1], [1, 1, 1, 0, 1]]],
- [[[1, 1, 0, 1, 0], [1, 0, 0, 1, 0], [1, 0, 1, 1, 0], [1, 1, 1, 1, 0], [1, 1, 0, 1, 0]],
- [[1, 1, 0, 1, 0], [1, 0, 0, 1, 0], [1, 0, 0, 1, 1], [1, 1, 0, 1, 1], [1, 1, 0, 1, 0]],
- [[1, 0, 0, 1, 0], [1, 0, 1, 1, 0], [1, 0, 1, 1, 1], [1, 0, 0, 1, 1], [1, 0, 0, 1, 0]],
- [[1, 0, 1, 1, 0], [1, 1, 1, 1, 0], [1, 1, 1, 1, 1], [1, 0, 1, 1, 1], [1, 0, 1, 1, 0]],
- [[1, 1, 1, 1, 0], [1, 1, 0, 1, 0], [1, 1, 0, 1, 1], [1, 1, 1, 1, 1], [1, 1, 1, 1, 0]],
- [[1, 1, 0, 1, 1], [1, 0, 0, 1, 1], [1, 0, 1, 1, 1], [1, 1, 1, 1, 1], [1, 1, 0, 1, 1]]],
- [[[1, 1, 0, 0, 1], [1, 0, 0, 0, 1], [1, 0, 1, 0, 1], [1, 1, 1, 0, 1], [1, 1, 0, 0, 1]],
- [[1, 1, 0, 0, 1], [1, 0, 0, 0, 1], [1, 0, 0, 1, 1], [1, 1, 0, 1, 1], [1, 1, 0, 0, 1]],
- [[1, 0, 0, 0, 1], [1, 0, 1, 0, 1], [1, 0, 1, 1, 1], [1, 0, 0, 1, 1], [1, 0, 0, 0, 1]],
- [[1, 0, 1, 0, 1], [1, 1, 1, 0, 1], [1, 1, 1, 1, 1], [1, 0, 1, 1, 1], [1, 0, 1, 0, 1]],
- [[1, 1, 1, 0, 1], [1, 1, 0, 0, 1], [1, 1, 0, 1, 1], [1, 1, 1, 1, 1], [1, 1, 1, 0, 1]],
- [[1, 1, 0, 1, 1], [1, 0, 0, 1, 1], [1, 0, 1, 1, 1], [1, 1, 1, 1, 1], [1, 1, 0, 1, 1]]]],
- [[[[1, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 1, 0, 0], [1, 0, 1, 0, 0], [1, 0, 0, 0, 0]],
- [[1, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 1, 0], [1, 0, 0, 1, 0], [1, 0, 0, 0, 0]],
- [[0, 0, 0, 0, 0], [0, 0, 1, 0, 0], [0, 0, 1, 1, 0], [0, 0, 0, 1, 0], [0, 0, 0, 0, 0]],
- [[0, 0, 1, 0, 0], [1, 0, 1, 0, 0], [1, 0, 1, 1, 0], [0, 0, 1, 1, 0], [0, 0, 1, 0, 0]],
- [[1, 0, 1, 0, 0], [1, 0, 0, 0, 0], [1, 0, 0, 1, 0], [1, 0, 1, 1, 0], [1, 0, 1, 0, 0]],
- [[1, 0, 0, 1, 0], [0, 0, 0, 1, 0], [0, 0, 1, 1, 0], [1, 0, 1, 1, 0], [1, 0, 0, 1, 0]]],
- [[[1, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 1, 0, 0], [1, 0, 1, 0, 0], [1, 0, 0, 0, 0]],
- [[1, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 1], [1, 0, 0, 0, 1], [1, 0, 0, 0, 0]],
- [[0, 0, 0, 0, 0], [0, 0, 1, 0, 0], [0, 0, 1, 0, 1], [0, 0, 0, 0, 1], [0, 0, 0, 0, 0]],
- [[0, 0, 1, 0, 0], [1, 0, 1, 0, 0], [1, 0, 1, 0, 1], [0, 0, 1, 0, 1], [0, 0, 1, 0, 0]],
- [[1, 0, 1, 0, 0], [1, 0, 0, 0, 0], [1, 0, 0, 0, 1], [1, 0, 1, 0, 1], [1, 0, 1, 0, 0]],
- [[1, 0, 0, 0, 1], [0, 0, 0, 0, 1], [0, 0, 1, 0, 1], [1, 0, 1, 0, 1], [1, 0, 0, 0, 1]]],
- [[[1, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 1, 0], [1, 0, 0, 1, 0], [1, 0, 0, 0, 0]],
- [[1, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 1], [1, 0, 0, 0, 1], [1, 0, 0, 0, 0]],
- [[0, 0, 0, 0, 0], [0, 0, 0, 1, 0], [0, 0, 0, 1, 1], [0, 0, 0, 0, 1], [0, 0, 0, 0, 0]],
- [[0, 0, 0, 1, 0], [1, 0, 0, 1, 0], [1, 0, 0, 1, 1], [0, 0, 0, 1, 1], [0, 0, 0, 1, 0]],
- [[1, 0, 0, 1, 0], [1, 0, 0, 0, 0], [1, 0, 0, 0, 1], [1, 0, 0, 1, 1], [1, 0, 0, 1, 0]],
- [[1, 0, 0, 0, 1], [0, 0, 0, 0, 1], [0, 0, 0, 1, 1], [1, 0, 0, 1, 1], [1, 0, 0, 0, 1]]],
- [[[0, 0, 0, 0, 0], [0, 0, 1, 0, 0], [0, 0, 1, 1, 0], [0, 0, 0, 1, 0], [0, 0, 0, 0, 0]],
- [[0, 0, 0, 0, 0], [0, 0, 1, 0, 0], [0, 0, 1, 0, 1], [0, 0, 0, 0, 1], [0, 0, 0, 0, 0]],
- [[0, 0, 1, 0, 0], [0, 0, 1, 1, 0], [0, 0, 1, 1, 1], [0, 0, 1, 0, 1], [0, 0, 1, 0, 0]],
- [[0, 0, 1, 1, 0], [0, 0, 0, 1, 0], [0, 0, 0, 1, 1], [0, 0, 1, 1, 1], [0, 0, 1, 1, 0]],
- [[0, 0, 0, 1, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 1], [0, 0, 0, 1, 1], [0, 0, 0, 1, 0]],
- [[0, 0, 0, 0, 1], [0, 0, 1, 0, 1], [0, 0, 1, 1, 1], [0, 0, 0, 1, 1], [0, 0, 0, 0, 1]]],
- [[[0, 0, 1, 0, 0], [1, 0, 1, 0, 0], [1, 0, 1, 1, 0], [0, 0, 1, 1, 0], [0, 0, 1, 0, 0]],
- [[0, 0, 1, 0, 0], [1, 0, 1, 0, 0], [1, 0, 1, 0, 1], [0, 0, 1, 0, 1], [0, 0, 1, 0, 0]],
- [[1, 0, 1, 0, 0], [1, 0, 1, 1, 0], [1, 0, 1, 1, 1], [1, 0, 1, 0, 1], [1, 0, 1, 0, 0]],
- [[1, 0, 1, 1, 0], [0, 0, 1, 1, 0], [0, 0, 1, 1, 1], [1, 0, 1, 1, 1], [1, 0, 1, 1, 0]],
- [[0, 0, 1, 1, 0], [0, 0, 1, 0, 0], [0, 0, 1, 0, 1], [0, 0, 1, 1, 1], [0, 0, 1, 1, 0]],
- [[0, 0, 1, 0, 1], [1, 0, 1, 0, 1], [1, 0, 1, 1, 1], [0, 0, 1, 1, 1], [0, 0, 1, 0, 1]]],
- [[[1, 0, 1, 0, 0], [1, 0, 0, 0, 0], [1, 0, 0, 1, 0], [1, 0, 1, 1, 0], [1, 0, 1, 0, 0]],
- [[1, 0, 1, 0, 0], [1, 0, 0, 0, 0], [1, 0, 0, 0, 1], [1, 0, 1, 0, 1], [1, 0, 1, 0, 0]],
- [[1, 0, 0, 0, 0], [1, 0, 0, 1, 0], [1, 0, 0, 1, 1], [1, 0, 0, 0, 1], [1, 0, 0, 0, 0]],
- [[1, 0, 0, 1, 0], [1, 0, 1, 1, 0], [1, 0, 1, 1, 1], [1, 0, 0, 1, 1], [1, 0, 0, 1, 0]],
- [[1, 0, 1, 1, 0], [1, 0, 1, 0, 0], [1, 0, 1, 0, 1], [1, 0, 1, 1, 1], [1, 0, 1, 1, 0]],
- [[1, 0, 1, 0, 1], [1, 0, 0, 0, 1], [1, 0, 0, 1, 1], [1, 0, 1, 1, 1], [1, 0, 1, 0, 1]]],
- [[[1, 0, 0, 1, 0], [0, 0, 0, 1, 0], [0, 0, 1, 1, 0], [1, 0, 1, 1, 0], [1, 0, 0, 1, 0]],
- [[1, 0, 0, 1, 0], [0, 0, 0, 1, 0], [0, 0, 0, 1, 1], [1, 0, 0, 1, 1], [1, 0, 0, 1, 0]],
- [[0, 0, 0, 1, 0], [0, 0, 1, 1, 0], [0, 0, 1, 1, 1], [0, 0, 0, 1, 1], [0, 0, 0, 1, 0]],
- [[0, 0, 1, 1, 0], [1, 0, 1, 1, 0], [1, 0, 1, 1, 1], [0, 0, 1, 1, 1], [0, 0, 1, 1, 0]],
- [[1, 0, 1, 1, 0], [1, 0, 0, 1, 0], [1, 0, 0, 1, 1], [1, 0, 1, 1, 1], [1, 0, 1, 1, 0]],
- [[1, 0, 0, 1, 1], [0, 0, 0, 1, 1], [0, 0, 1, 1, 1], [1, 0, 1, 1, 1], [1, 0, 0, 1, 1]]],
- [[[1, 0, 0, 0, 1], [0, 0, 0, 0, 1], [0, 0, 1, 0, 1], [1, 0, 1, 0, 1], [1, 0, 0, 0, 1]],
- [[1, 0, 0, 0, 1], [0, 0, 0, 0, 1], [0, 0, 0, 1, 1], [1, 0, 0, 1, 1], [1, 0, 0, 0, 1]],
- [[0, 0, 0, 0, 1], [0, 0, 1, 0, 1], [0, 0, 1, 1, 1], [0, 0, 0, 1, 1], [0, 0, 0, 0, 1]],
- [[0, 0, 1, 0, 1], [1, 0, 1, 0, 1], [1, 0, 1, 1, 1], [0, 0, 1, 1, 1], [0, 0, 1, 0, 1]],
- [[1, 0, 1, 0, 1], [1, 0, 0, 0, 1], [1, 0, 0, 1, 1], [1, 0, 1, 1, 1], [1, 0, 1, 0, 1]],
- [[1, 0, 0, 1, 1], [0, 0, 0, 1, 1], [0, 0, 1, 1, 1], [1, 0, 1, 1, 1], [1, 0, 0, 1, 1]]]],
- [[[[0, 0, 1, 0, 0], [0, 1, 1, 0, 0], [1, 1, 1, 0, 0], [1, 0, 1, 0, 0], [0, 0, 1, 0, 0]],
- [[0, 0, 1, 0, 0], [0, 1, 1, 0, 0], [0, 1, 1, 1, 0], [0, 0, 1, 1, 0], [0, 0, 1, 0, 0]],
- [[0, 1, 1, 0, 0], [1, 1, 1, 0, 0], [1, 1, 1, 1, 0], [0, 1, 1, 1, 0], [0, 1, 1, 0, 0]],
- [[1, 1, 1, 0, 0], [1, 0, 1, 0, 0], [1, 0, 1, 1, 0], [1, 1, 1, 1, 0], [1, 1, 1, 0, 0]],
- [[1, 0, 1, 0, 0], [0, 0, 1, 0, 0], [0, 0, 1, 1, 0], [1, 0, 1, 1, 0], [1, 0, 1, 0, 0]],
- [[0, 0, 1, 1, 0], [0, 1, 1, 1, 0], [1, 1, 1, 1, 0], [1, 0, 1, 1, 0], [0, 0, 1, 1, 0]]],
- [[[0, 0, 1, 0, 0], [0, 1, 1, 0, 0], [1, 1, 1, 0, 0], [1, 0, 1, 0, 0], [0, 0, 1, 0, 0]],
- [[0, 0, 1, 0, 0], [0, 1, 1, 0, 0], [0, 1, 1, 0, 1], [0, 0, 1, 0, 1], [0, 0, 1, 0, 0]],
- [[0, 1, 1, 0, 0], [1, 1, 1, 0, 0], [1, 1, 1, 0, 1], [0, 1, 1, 0, 1], [0, 1, 1, 0, 0]],
- [[1, 1, 1, 0, 0], [1, 0, 1, 0, 0], [1, 0, 1, 0, 1], [1, 1, 1, 0, 1], [1, 1, 1, 0, 0]],
- [[1, 0, 1, 0, 0], [0, 0, 1, 0, 0], [0, 0, 1, 0, 1], [1, 0, 1, 0, 1], [1, 0, 1, 0, 0]],
- [[0, 0, 1, 0, 1], [0, 1, 1, 0, 1], [1, 1, 1, 0, 1], [1, 0, 1, 0, 1], [0, 0, 1, 0, 1]]],
- [[[0, 0, 1, 0, 0], [0, 1, 1, 0, 0], [0, 1, 1, 1, 0], [0, 0, 1, 1, 0], [0, 0, 1, 0, 0]],
- [[0, 0, 1, 0, 0], [0, 1, 1, 0, 0], [0, 1, 1, 0, 1], [0, 0, 1, 0, 1], [0, 0, 1, 0, 0]],
- [[0, 1, 1, 0, 0], [0, 1, 1, 1, 0], [0, 1, 1, 1, 1], [0, 1, 1, 0, 1], [0, 1, 1, 0, 0]],
- [[0, 1, 1, 1, 0], [0, 0, 1, 1, 0], [0, 0, 1, 1, 1], [0, 1, 1, 1, 1], [0, 1, 1, 1, 0]],
- [[0, 0, 1, 1, 0], [0, 0, 1, 0, 0], [0, 0, 1, 0, 1], [0, 0, 1, 1, 1], [0, 0, 1, 1, 0]],
- [[0, 0, 1, 0, 1], [0, 1, 1, 0, 1], [0, 1, 1, 1, 1], [0, 0, 1, 1, 1], [0, 0, 1, 0, 1]]],
- [[[0, 1, 1, 0, 0], [1, 1, 1, 0, 0], [1, 1, 1, 1, 0], [0, 1, 1, 1, 0], [0, 1, 1, 0, 0]],
- [[0, 1, 1, 0, 0], [1, 1, 1, 0, 0], [1, 1, 1, 0, 1], [0, 1, 1, 0, 1], [0, 1, 1, 0, 0]],
- [[1, 1, 1, 0, 0], [1, 1, 1, 1, 0], [1, 1, 1, 1, 1], [1, 1, 1, 0, 1], [1, 1, 1, 0, 0]],
- [[1, 1, 1, 1, 0], [0, 1, 1, 1, 0], [0, 1, 1, 1, 1], [1, 1, 1, 1, 1], [1, 1, 1, 1, 0]],
- [[0, 1, 1, 1, 0], [0, 1, 1, 0, 0], [0, 1, 1, 0, 1], [0, 1, 1, 1, 1], [0, 1, 1, 1, 0]],
- [[0, 1, 1, 0, 1], [1, 1, 1, 0, 1], [1, 1, 1, 1, 1], [0, 1, 1, 1, 1], [0, 1, 1, 0, 1]]],
- [[[1, 1, 1, 0, 0], [1, 0, 1, 0, 0], [1, 0, 1, 1, 0], [1, 1, 1, 1, 0], [1, 1, 1, 0, 0]],
- [[1, 1, 1, 0, 0], [1, 0, 1, 0, 0], [1, 0, 1, 0, 1], [1, 1, 1, 0, 1], [1, 1, 1, 0, 0]],
- [[1, 0, 1, 0, 0], [1, 0, 1, 1, 0], [1, 0, 1, 1, 1], [1, 0, 1, 0, 1], [1, 0, 1, 0, 0]],
- [[1, 0, 1, 1, 0], [1, 1, 1, 1, 0], [1, 1, 1, 1, 1], [1, 0, 1, 1, 1], [1, 0, 1, 1, 0]],
- [[1, 1, 1, 1, 0], [1, 1, 1, 0, 0], [1, 1, 1, 0, 1], [1, 1, 1, 1, 1], [1, 1, 1, 1, 0]],
- [[1, 1, 1, 0, 1], [1, 0, 1, 0, 1], [1, 0, 1, 1, 1], [1, 1, 1, 1, 1], [1, 1, 1, 0, 1]]],
- [[[1, 0, 1, 0, 0], [0, 0, 1, 0, 0], [0, 0, 1, 1, 0], [1, 0, 1, 1, 0], [1, 0, 1, 0, 0]],
- [[1, 0, 1, 0, 0], [0, 0, 1, 0, 0], [0, 0, 1, 0, 1], [1, 0, 1, 0, 1], [1, 0, 1, 0, 0]],
- [[0, 0, 1, 0, 0], [0, 0, 1, 1, 0], [0, 0, 1, 1, 1], [0, 0, 1, 0, 1], [0, 0, 1, 0, 0]],
- [[0, 0, 1, 1, 0], [1, 0, 1, 1, 0], [1, 0, 1, 1, 1], [0, 0, 1, 1, 1], [0, 0, 1, 1, 0]],
- [[1, 0, 1, 1, 0], [1, 0, 1, 0, 0], [1, 0, 1, 0, 1], [1, 0, 1, 1, 1], [1, 0, 1, 1, 0]],
- [[1, 0, 1, 0, 1], [0, 0, 1, 0, 1], [0, 0, 1, 1, 1], [1, 0, 1, 1, 1], [1, 0, 1, 0, 1]]],
- [[[0, 0, 1, 1, 0], [0, 1, 1, 1, 0], [1, 1, 1, 1, 0], [1, 0, 1, 1, 0], [0, 0, 1, 1, 0]],
- [[0, 0, 1, 1, 0], [0, 1, 1, 1, 0], [0, 1, 1, 1, 1], [0, 0, 1, 1, 1], [0, 0, 1, 1, 0]],
- [[0, 1, 1, 1, 0], [1, 1, 1, 1, 0], [1, 1, 1, 1, 1], [0, 1, 1, 1, 1], [0, 1, 1, 1, 0]],
- [[1, 1, 1, 1, 0], [1, 0, 1, 1, 0], [1, 0, 1, 1, 1], [1, 1, 1, 1, 1], [1, 1, 1, 1, 0]],
- [[1, 0, 1, 1, 0], [0, 0, 1, 1, 0], [0, 0, 1, 1, 1], [1, 0, 1, 1, 1], [1, 0, 1, 1, 0]],
- [[0, 0, 1, 1, 1], [0, 1, 1, 1, 1], [1, 1, 1, 1, 1], [1, 0, 1, 1, 1], [0, 0, 1, 1, 1]]],
- [[[0, 0, 1, 0, 1], [0, 1, 1, 0, 1], [1, 1, 1, 0, 1], [1, 0, 1, 0, 1], [0, 0, 1, 0, 1]],
- [[0, 0, 1, 0, 1], [0, 1, 1, 0, 1], [0, 1, 1, 1, 1], [0, 0, 1, 1, 1], [0, 0, 1, 0, 1]],
- [[0, 1, 1, 0, 1], [1, 1, 1, 0, 1], [1, 1, 1, 1, 1], [0, 1, 1, 1, 1], [0, 1, 1, 0, 1]],
- [[1, 1, 1, 0, 1], [1, 0, 1, 0, 1], [1, 0, 1, 1, 1], [1, 1, 1, 1, 1], [1, 1, 1, 0, 1]],
- [[1, 0, 1, 0, 1], [0, 0, 1, 0, 1], [0, 0, 1, 1, 1], [1, 0, 1, 1, 1], [1, 0, 1, 0, 1]],
- [[0, 0, 1, 1, 1], [0, 1, 1, 1, 1], [1, 1, 1, 1, 1], [1, 0, 1, 1, 1], [0, 0, 1, 1, 1]]]],
- [[[[0, 0, 0, 1, 0], [0, 1, 0, 1, 0], [1, 1, 0, 1, 0], [1, 0, 0, 1, 0], [0, 0, 0, 1, 0]],
- [[0, 0, 0, 1, 0], [0, 1, 0, 1, 0], [0, 1, 1, 1, 0], [0, 0, 1, 1, 0], [0, 0, 0, 1, 0]],
- [[0, 1, 0, 1, 0], [1, 1, 0, 1, 0], [1, 1, 1, 1, 0], [0, 1, 1, 1, 0], [0, 1, 0, 1, 0]],
- [[1, 1, 0, 1, 0], [1, 0, 0, 1, 0], [1, 0, 1, 1, 0], [1, 1, 1, 1, 0], [1, 1, 0, 1, 0]],
- [[1, 0, 0, 1, 0], [0, 0, 0, 1, 0], [0, 0, 1, 1, 0], [1, 0, 1, 1, 0], [1, 0, 0, 1, 0]],
- [[0, 0, 1, 1, 0], [0, 1, 1, 1, 0], [1, 1, 1, 1, 0], [1, 0, 1, 1, 0], [0, 0, 1, 1, 0]]],
- [[[0, 0, 0, 1, 0], [0, 1, 0, 1, 0], [1, 1, 0, 1, 0], [1, 0, 0, 1, 0], [0, 0, 0, 1, 0]],
- [[0, 0, 0, 1, 0], [0, 1, 0, 1, 0], [0, 1, 0, 1, 1], [0, 0, 0, 1, 1], [0, 0, 0, 1, 0]],
- [[0, 1, 0, 1, 0], [1, 1, 0, 1, 0], [1, 1, 0, 1, 1], [0, 1, 0, 1, 1], [0, 1, 0, 1, 0]],
- [[1, 1, 0, 1, 0], [1, 0, 0, 1, 0], [1, 0, 0, 1, 1], [1, 1, 0, 1, 1], [1, 1, 0, 1, 0]],
- [[1, 0, 0, 1, 0], [0, 0, 0, 1, 0], [0, 0, 0, 1, 1], [1, 0, 0, 1, 1], [1, 0, 0, 1, 0]],
- [[0, 0, 0, 1, 1], [0, 1, 0, 1, 1], [1, 1, 0, 1, 1], [1, 0, 0, 1, 1], [0, 0, 0, 1, 1]]],
- [[[0, 0, 0, 1, 0], [0, 1, 0, 1, 0], [0, 1, 1, 1, 0], [0, 0, 1, 1, 0], [0, 0, 0, 1, 0]],
- [[0, 0, 0, 1, 0], [0, 1, 0, 1, 0], [0, 1, 0, 1, 1], [0, 0, 0, 1, 1], [0, 0, 0, 1, 0]],
- [[0, 1, 0, 1, 0], [0, 1, 1, 1, 0], [0, 1, 1, 1, 1], [0, 1, 0, 1, 1], [0, 1, 0, 1, 0]],
- [[0, 1, 1, 1, 0], [0, 0, 1, 1, 0], [0, 0, 1, 1, 1], [0, 1, 1, 1, 1], [0, 1, 1, 1, 0]],
- [[0, 0, 1, 1, 0], [0, 0, 0, 1, 0], [0, 0, 0, 1, 1], [0, 0, 1, 1, 1], [0, 0, 1, 1, 0]],
- [[0, 0, 0, 1, 1], [0, 1, 0, 1, 1], [0, 1, 1, 1, 1], [0, 0, 1, 1, 1], [0, 0, 0, 1, 1]]],
- [[[0, 1, 0, 1, 0], [1, 1, 0, 1, 0], [1, 1, 1, 1, 0], [0, 1, 1, 1, 0], [0, 1, 0, 1, 0]],
- [[0, 1, 0, 1, 0], [1, 1, 0, 1, 0], [1, 1, 0, 1, 1], [0, 1, 0, 1, 1], [0, 1, 0, 1, 0]],
- [[1, 1, 0, 1, 0], [1, 1, 1, 1, 0], [1, 1, 1, 1, 1], [1, 1, 0, 1, 1], [1, 1, 0, 1, 0]],
- [[1, 1, 1, 1, 0], [0, 1, 1, 1, 0], [0, 1, 1, 1, 1], [1, 1, 1, 1, 1], [1, 1, 1, 1, 0]],
- [[0, 1, 1, 1, 0], [0, 1, 0, 1, 0], [0, 1, 0, 1, 1], [0, 1, 1, 1, 1], [0, 1, 1, 1, 0]],
- [[0, 1, 0, 1, 1], [1, 1, 0, 1, 1], [1, 1, 1, 1, 1], [0, 1, 1, 1, 1], [0, 1, 0, 1, 1]]],
- [[[1, 1, 0, 1, 0], [1, 0, 0, 1, 0], [1, 0, 1, 1, 0], [1, 1, 1, 1, 0], [1, 1, 0, 1, 0]],
- [[1, 1, 0, 1, 0], [1, 0, 0, 1, 0], [1, 0, 0, 1, 1], [1, 1, 0, 1, 1], [1, 1, 0, 1, 0]],
- [[1, 0, 0, 1, 0], [1, 0, 1, 1, 0], [1, 0, 1, 1, 1], [1, 0, 0, 1, 1], [1, 0, 0, 1, 0]],
- [[1, 0, 1, 1, 0], [1, 1, 1, 1, 0], [1, 1, 1, 1, 1], [1, 0, 1, 1, 1], [1, 0, 1, 1, 0]],
- [[1, 1, 1, 1, 0], [1, 1, 0, 1, 0], [1, 1, 0, 1, 1], [1, 1, 1, 1, 1], [1, 1, 1, 1, 0]],
- [[1, 1, 0, 1, 1], [1, 0, 0, 1, 1], [1, 0, 1, 1, 1], [1, 1, 1, 1, 1], [1, 1, 0, 1, 1]]],
- [[[1, 0, 0, 1, 0], [0, 0, 0, 1, 0], [0, 0, 1, 1, 0], [1, 0, 1, 1, 0], [1, 0, 0, 1, 0]],
- [[1, 0, 0, 1, 0], [0, 0, 0, 1, 0], [0, 0, 0, 1, 1], [1, 0, 0, 1, 1], [1, 0, 0, 1, 0]],
- [[0, 0, 0, 1, 0], [0, 0, 1, 1, 0], [0, 0, 1, 1, 1], [0, 0, 0, 1, 1], [0, 0, 0, 1, 0]],
- [[0, 0, 1, 1, 0], [1, 0, 1, 1, 0], [1, 0, 1, 1, 1], [0, 0, 1, 1, 1], [0, 0, 1, 1, 0]],
- [[1, 0, 1, 1, 0], [1, 0, 0, 1, 0], [1, 0, 0, 1, 1], [1, 0, 1, 1, 1], [1, 0, 1, 1, 0]],
- [[1, 0, 0, 1, 1], [0, 0, 0, 1, 1], [0, 0, 1, 1, 1], [1, 0, 1, 1, 1], [1, 0, 0, 1, 1]]],
- [[[0, 0, 1, 1, 0], [0, 1, 1, 1, 0], [1, 1, 1, 1, 0], [1, 0, 1, 1, 0], [0, 0, 1, 1, 0]],
- [[0, 0, 1, 1, 0], [0, 1, 1, 1, 0], [0, 1, 1, 1, 1], [0, 0, 1, 1, 1], [0, 0, 1, 1, 0]],
- [[0, 1, 1, 1, 0], [1, 1, 1, 1, 0], [1, 1, 1, 1, 1], [0, 1, 1, 1, 1], [0, 1, 1, 1, 0]],
- [[1, 1, 1, 1, 0], [1, 0, 1, 1, 0], [1, 0, 1, 1, 1], [1, 1, 1, 1, 1], [1, 1, 1, 1, 0]],
- [[1, 0, 1, 1, 0], [0, 0, 1, 1, 0], [0, 0, 1, 1, 1], [1, 0, 1, 1, 1], [1, 0, 1, 1, 0]],
- [[0, 0, 1, 1, 1], [0, 1, 1, 1, 1], [1, 1, 1, 1, 1], [1, 0, 1, 1, 1], [0, 0, 1, 1, 1]]],
- [[[0, 0, 0, 1, 1], [0, 1, 0, 1, 1], [1, 1, 0, 1, 1], [1, 0, 0, 1, 1], [0, 0, 0, 1, 1]],
- [[0, 0, 0, 1, 1], [0, 1, 0, 1, 1], [0, 1, 1, 1, 1], [0, 0, 1, 1, 1], [0, 0, 0, 1, 1]],
- [[0, 1, 0, 1, 1], [1, 1, 0, 1, 1], [1, 1, 1, 1, 1], [0, 1, 1, 1, 1], [0, 1, 0, 1, 1]],
- [[1, 1, 0, 1, 1], [1, 0, 0, 1, 1], [1, 0, 1, 1, 1], [1, 1, 1, 1, 1], [1, 1, 0, 1, 1]],
- [[1, 0, 0, 1, 1], [0, 0, 0, 1, 1], [0, 0, 1, 1, 1], [1, 0, 1, 1, 1], [1, 0, 0, 1, 1]],
- [[0, 0, 1, 1, 1], [0, 1, 1, 1, 1], [1, 1, 1, 1, 1], [1, 0, 1, 1, 1], [0, 0, 1, 1, 1]]]],
- [[[[0, 0, 0, 0, 1], [0, 1, 0, 0, 1], [1, 1, 0, 0, 1], [1, 0, 0, 0, 1], [0, 0, 0, 0, 1]],
- [[0, 0, 0, 0, 1], [0, 1, 0, 0, 1], [0, 1, 1, 0, 1], [0, 0, 1, 0, 1], [0, 0, 0, 0, 1]],
- [[0, 1, 0, 0, 1], [1, 1, 0, 0, 1], [1, 1, 1, 0, 1], [0, 1, 1, 0, 1], [0, 1, 0, 0, 1]],
- [[1, 1, 0, 0, 1], [1, 0, 0, 0, 1], [1, 0, 1, 0, 1], [1, 1, 1, 0, 1], [1, 1, 0, 0, 1]],
- [[1, 0, 0, 0, 1], [0, 0, 0, 0, 1], [0, 0, 1, 0, 1], [1, 0, 1, 0, 1], [1, 0, 0, 0, 1]],
- [[0, 0, 1, 0, 1], [0, 1, 1, 0, 1], [1, 1, 1, 0, 1], [1, 0, 1, 0, 1], [0, 0, 1, 0, 1]]],
- [[[0, 0, 0, 0, 1], [0, 1, 0, 0, 1], [1, 1, 0, 0, 1], [1, 0, 0, 0, 1], [0, 0, 0, 0, 1]],
- [[0, 0, 0, 0, 1], [0, 1, 0, 0, 1], [0, 1, 0, 1, 1], [0, 0, 0, 1, 1], [0, 0, 0, 0, 1]],
- [[0, 1, 0, 0, 1], [1, 1, 0, 0, 1], [1, 1, 0, 1, 1], [0, 1, 0, 1, 1], [0, 1, 0, 0, 1]],
- [[1, 1, 0, 0, 1], [1, 0, 0, 0, 1], [1, 0, 0, 1, 1], [1, 1, 0, 1, 1], [1, 1, 0, 0, 1]],
- [[1, 0, 0, 0, 1], [0, 0, 0, 0, 1], [0, 0, 0, 1, 1], [1, 0, 0, 1, 1], [1, 0, 0, 0, 1]],
- [[0, 0, 0, 1, 1], [0, 1, 0, 1, 1], [1, 1, 0, 1, 1], [1, 0, 0, 1, 1], [0, 0, 0, 1, 1]]],
- [[[0, 0, 0, 0, 1], [0, 1, 0, 0, 1], [0, 1, 1, 0, 1], [0, 0, 1, 0, 1], [0, 0, 0, 0, 1]],
- [[0, 0, 0, 0, 1], [0, 1, 0, 0, 1], [0, 1, 0, 1, 1], [0, 0, 0, 1, 1], [0, 0, 0, 0, 1]],
- [[0, 1, 0, 0, 1], [0, 1, 1, 0, 1], [0, 1, 1, 1, 1], [0, 1, 0, 1, 1], [0, 1, 0, 0, 1]],
- [[0, 1, 1, 0, 1], [0, 0, 1, 0, 1], [0, 0, 1, 1, 1], [0, 1, 1, 1, 1], [0, 1, 1, 0, 1]],
- [[0, 0, 1, 0, 1], [0, 0, 0, 0, 1], [0, 0, 0, 1, 1], [0, 0, 1, 1, 1], [0, 0, 1, 0, 1]],
- [[0, 0, 0, 1, 1], [0, 1, 0, 1, 1], [0, 1, 1, 1, 1], [0, 0, 1, 1, 1], [0, 0, 0, 1, 1]]],
- [[[0, 1, 0, 0, 1], [1, 1, 0, 0, 1], [1, 1, 1, 0, 1], [0, 1, 1, 0, 1], [0, 1, 0, 0, 1]],
- [[0, 1, 0, 0, 1], [1, 1, 0, 0, 1], [1, 1, 0, 1, 1], [0, 1, 0, 1, 1], [0, 1, 0, 0, 1]],
- [[1, 1, 0, 0, 1], [1, 1, 1, 0, 1], [1, 1, 1, 1, 1], [1, 1, 0, 1, 1], [1, 1, 0, 0, 1]],
- [[1, 1, 1, 0, 1], [0, 1, 1, 0, 1], [0, 1, 1, 1, 1], [1, 1, 1, 1, 1], [1, 1, 1, 0, 1]],
- [[0, 1, 1, 0, 1], [0, 1, 0, 0, 1], [0, 1, 0, 1, 1], [0, 1, 1, 1, 1], [0, 1, 1, 0, 1]],
- [[0, 1, 0, 1, 1], [1, 1, 0, 1, 1], [1, 1, 1, 1, 1], [0, 1, 1, 1, 1], [0, 1, 0, 1, 1]]],
- [[[1, 1, 0, 0, 1], [1, 0, 0, 0, 1], [1, 0, 1, 0, 1], [1, 1, 1, 0, 1], [1, 1, 0, 0, 1]],
- [[1, 1, 0, 0, 1], [1, 0, 0, 0, 1], [1, 0, 0, 1, 1], [1, 1, 0, 1, 1], [1, 1, 0, 0, 1]],
- [[1, 0, 0, 0, 1], [1, 0, 1, 0, 1], [1, 0, 1, 1, 1], [1, 0, 0, 1, 1], [1, 0, 0, 0, 1]],
- [[1, 0, 1, 0, 1], [1, 1, 1, 0, 1], [1, 1, 1, 1, 1], [1, 0, 1, 1, 1], [1, 0, 1, 0, 1]],
- [[1, 1, 1, 0, 1], [1, 1, 0, 0, 1], [1, 1, 0, 1, 1], [1, 1, 1, 1, 1], [1, 1, 1, 0, 1]],
- [[1, 1, 0, 1, 1], [1, 0, 0, 1, 1], [1, 0, 1, 1, 1], [1, 1, 1, 1, 1], [1, 1, 0, 1, 1]]],
- [[[1, 0, 0, 0, 1], [0, 0, 0, 0, 1], [0, 0, 1, 0, 1], [1, 0, 1, 0, 1], [1, 0, 0, 0, 1]],
- [[1, 0, 0, 0, 1], [0, 0, 0, 0, 1], [0, 0, 0, 1, 1], [1, 0, 0, 1, 1], [1, 0, 0, 0, 1]],
- [[0, 0, 0, 0, 1], [0, 0, 1, 0, 1], [0, 0, 1, 1, 1], [0, 0, 0, 1, 1], [0, 0, 0, 0, 1]],
- [[0, 0, 1, 0, 1], [1, 0, 1, 0, 1], [1, 0, 1, 1, 1], [0, 0, 1, 1, 1], [0, 0, 1, 0, 1]],
- [[1, 0, 1, 0, 1], [1, 0, 0, 0, 1], [1, 0, 0, 1, 1], [1, 0, 1, 1, 1], [1, 0, 1, 0, 1]],
- [[1, 0, 0, 1, 1], [0, 0, 0, 1, 1], [0, 0, 1, 1, 1], [1, 0, 1, 1, 1], [1, 0, 0, 1, 1]]],
- [[[0, 0, 1, 0, 1], [0, 1, 1, 0, 1], [1, 1, 1, 0, 1], [1, 0, 1, 0, 1], [0, 0, 1, 0, 1]],
- [[0, 0, 1, 0, 1], [0, 1, 1, 0, 1], [0, 1, 1, 1, 1], [0, 0, 1, 1, 1], [0, 0, 1, 0, 1]],
- [[0, 1, 1, 0, 1], [1, 1, 1, 0, 1], [1, 1, 1, 1, 1], [0, 1, 1, 1, 1], [0, 1, 1, 0, 1]],
- [[1, 1, 1, 0, 1], [1, 0, 1, 0, 1], [1, 0, 1, 1, 1], [1, 1, 1, 1, 1], [1, 1, 1, 0, 1]],
- [[1, 0, 1, 0, 1], [0, 0, 1, 0, 1], [0, 0, 1, 1, 1], [1, 0, 1, 1, 1], [1, 0, 1, 0, 1]],
- [[0, 0, 1, 1, 1], [0, 1, 1, 1, 1], [1, 1, 1, 1, 1], [1, 0, 1, 1, 1], [0, 0, 1, 1, 1]]],
- [[[0, 0, 0, 1, 1], [0, 1, 0, 1, 1], [1, 1, 0, 1, 1], [1, 0, 0, 1, 1], [0, 0, 0, 1, 1]],
- [[0, 0, 0, 1, 1], [0, 1, 0, 1, 1], [0, 1, 1, 1, 1], [0, 0, 1, 1, 1], [0, 0, 0, 1, 1]],
- [[0, 1, 0, 1, 1], [1, 1, 0, 1, 1], [1, 1, 1, 1, 1], [0, 1, 1, 1, 1], [0, 1, 0, 1, 1]],
- [[1, 1, 0, 1, 1], [1, 0, 0, 1, 1], [1, 0, 1, 1, 1], [1, 1, 1, 1, 1], [1, 1, 0, 1, 1]],
- [[1, 0, 0, 1, 1], [0, 0, 0, 1, 1], [0, 0, 1, 1, 1], [1, 0, 1, 1, 1], [1, 0, 0, 1, 1]],
- [[0, 0, 1, 1, 1], [0, 1, 1, 1, 1], [1, 1, 1, 1, 1], [1, 0, 1, 1, 1], [0, 0, 1, 1, 1]]]]]
\ No newline at end of file
diff --git a/work_report/figs/shape.pdf b/work_report/figs/shape.pdf
deleted file mode 100644
index c4cd383..0000000
Binary files a/work_report/figs/shape.pdf and /dev/null differ
diff --git a/work_report/figs/simple-tesseract-fp.pdf b/work_report/figs/simple-tesseract-fp.pdf
deleted file mode 100644
index 4404cb7..0000000
Binary files a/work_report/figs/simple-tesseract-fp.pdf and /dev/null differ
diff --git a/work_report/figs/simple-tesseract.pdf b/work_report/figs/simple-tesseract.pdf
deleted file mode 100644
index 2c62031..0000000
--- a/work_report/figs/simple-tesseract.pdf
+++ /dev/null
@@ -1,87 +0,0 @@
-%PDF-1.4
-%쏢
-5 0 obj
-<>
-stream
-xݚj1~Ւez>BJ}N
-faw3-xl%)<^?<,}y(xbǃ33 'Qڜ&i䚾s2;"tV:k^d>Y\N
HrI"$r8[jb<=)g2ԊRi\pTE{şmE$76r)iTMec[Re|cQ.;Plg2t[HS/pFNMem+5uY&Zaq**'S1xHmצ1':IE6uZ xؒQ|ΫvY(P
"R;[R}@uD+.5ԩ*O^yBqRiFg((
v9 b
-lYG!|g̕VX.+TT7"%Z$((Иq)3oڌ
-vY~cpܛ8nT\KSMSg,㰃aݡhr=h`\lcŠܼuVnnFف݉A^acPf#i-2S:YKF5M&ܗS>dY|6k"j`%|Tr
-i]q@c8pz-}r-S/Y:mD4/ VLkSg\~iá
-E6f &P]"|7Ê пffyy9u(#Xoy [%4x평!s7$<(O\ܒtbzendstream
-endobj
-6 0 obj
-791
-endobj
-4 0 obj
-<>
-/Contents 5 0 R
->>
-endobj
-3 0 obj
-<< /Type /Pages /Kids [
-4 0 R
-] /Count 1
->>
-endobj
-1 0 obj
-<>
-endobj
-7 0 obj
-<>endobj
-8 0 obj
-<>
-endobj
-9 0 obj
-<>stream
-
-
-
-
-
-2013-04-15T17:13:46+02:00
-2013-04-15T17:13:46+02:00
-fig2dev Version 3.2 Patchlevel 5d
-
-simple-tesseract.fig
-
-
-
-
-
-endstream
-endobj
-2 0 obj
-<>endobj
-xref
-0 10
-0000000000 65535 f
-0000001085 00000 n
-0000002666 00000 n
-0000001026 00000 n
-0000000895 00000 n
-0000000015 00000 n
-0000000876 00000 n
-0000001149 00000 n
-0000001190 00000 n
-0000001219 00000 n
-trailer
-<< /Size 10 /Root 1 0 R /Info 2 0 R
-/ID []
->>
-startxref
-2862
-%%EOF
diff --git a/work_report/figs/simplex.jpg b/work_report/figs/simplex.jpg
deleted file mode 100644
index a2cd44b..0000000
Binary files a/work_report/figs/simplex.jpg and /dev/null differ
diff --git a/work_report/figs/simplicescampus.jpg b/work_report/figs/simplicescampus.jpg
deleted file mode 100644
index c260128..0000000
Binary files a/work_report/figs/simplicescampus.jpg and /dev/null differ
diff --git a/work_report/figs/snapping-1.jpg b/work_report/figs/snapping-1.jpg
deleted file mode 100644
index 89aadb9..0000000
Binary files a/work_report/figs/snapping-1.jpg and /dev/null differ
diff --git a/work_report/figs/snapping-2.jpg b/work_report/figs/snapping-2.jpg
deleted file mode 100644
index 720e818..0000000
Binary files a/work_report/figs/snapping-2.jpg and /dev/null differ
diff --git a/work_report/figs/snc.pdf b/work_report/figs/snc.pdf
deleted file mode 100644
index cd630f2..0000000
Binary files a/work_report/figs/snc.pdf and /dev/null differ
diff --git a/work_report/figs/space-filling.jpg b/work_report/figs/space-filling.jpg
deleted file mode 100644
index 31d96ac..0000000
Binary files a/work_report/figs/space-filling.jpg and /dev/null differ
diff --git a/work_report/figs/spaghetti.pdf b/work_report/figs/spaghetti.pdf
deleted file mode 100644
index dc2ee09..0000000
Binary files a/work_report/figs/spaghetti.pdf and /dev/null differ
diff --git a/work_report/figs/st_events.pdf b/work_report/figs/st_events.pdf
deleted file mode 100644
index 983efa0..0000000
Binary files a/work_report/figs/st_events.pdf and /dev/null differ
diff --git a/work_report/figs/st_snapshot.pdf b/work_report/figs/st_snapshot.pdf
deleted file mode 100644
index 05ccc66..0000000
Binary files a/work_report/figs/st_snapshot.pdf and /dev/null differ
diff --git a/work_report/figs/stack-0.jpg b/work_report/figs/stack-0.jpg
deleted file mode 100644
index 8f64e7f..0000000
Binary files a/work_report/figs/stack-0.jpg and /dev/null differ
diff --git a/work_report/figs/stack-1.jpg b/work_report/figs/stack-1.jpg
deleted file mode 100644
index c0e022a..0000000
Binary files a/work_report/figs/stack-1.jpg and /dev/null differ
diff --git a/work_report/figs/stack-2.jpg b/work_report/figs/stack-2.jpg
deleted file mode 100644
index d66abef..0000000
Binary files a/work_report/figs/stack-2.jpg and /dev/null differ
diff --git a/work_report/figs/stack-3.jpg b/work_report/figs/stack-3.jpg
deleted file mode 100644
index 34d08b4..0000000
Binary files a/work_report/figs/stack-3.jpg and /dev/null differ
diff --git a/work_report/figs/stack-4.jpg b/work_report/figs/stack-4.jpg
deleted file mode 100644
index 3bcf4b1..0000000
Binary files a/work_report/figs/stack-4.jpg and /dev/null differ
diff --git a/work_report/figs/stack-5.jpg b/work_report/figs/stack-5.jpg
deleted file mode 100644
index 7e8474e..0000000
Binary files a/work_report/figs/stack-5.jpg and /dev/null differ
diff --git a/work_report/figs/stack-6.jpg b/work_report/figs/stack-6.jpg
deleted file mode 100644
index 37f73d7..0000000
Binary files a/work_report/figs/stack-6.jpg and /dev/null differ
diff --git a/work_report/figs/stereo-earth.jpg b/work_report/figs/stereo-earth.jpg
deleted file mode 100644
index d7234af..0000000
Binary files a/work_report/figs/stereo-earth.jpg and /dev/null differ
diff --git a/work_report/figs/templateconversion.txt b/work_report/figs/templateconversion.txt
deleted file mode 100644
index 40a0bcf..0000000
--- a/work_report/figs/templateconversion.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-template
-T string_to_number (const std::string &text, T def_value) {
- std::stringstream ss;
- for (std::string::const_iterator i = text.begin(); i != text.end(); ++i)
- if (isdigit(*i) || *i=='e' || *i=='-' || *i=='+' || *i=='.') ss << *i;
- T result;
- return ss >> result ? result : def_value;
-}
\ No newline at end of file
diff --git a/work_report/figs/tesseract-tests-1.jpg b/work_report/figs/tesseract-tests-1.jpg
deleted file mode 100644
index 6d4b44b..0000000
Binary files a/work_report/figs/tesseract-tests-1.jpg and /dev/null differ
diff --git a/work_report/figs/tesseract-tests-2.jpg b/work_report/figs/tesseract-tests-2.jpg
deleted file mode 100644
index 790b42c..0000000
Binary files a/work_report/figs/tesseract-tests-2.jpg and /dev/null differ
diff --git a/work_report/figs/tesseract-tests-3.jpg b/work_report/figs/tesseract-tests-3.jpg
deleted file mode 100644
index 1bca91d..0000000
Binary files a/work_report/figs/tesseract-tests-3.jpg and /dev/null differ
diff --git a/work_report/figs/tesseract.jpg b/work_report/figs/tesseract.jpg
deleted file mode 100644
index 26ae6aa..0000000
Binary files a/work_report/figs/tesseract.jpg and /dev/null differ
diff --git a/work_report/figs/tesseract.pdf b/work_report/figs/tesseract.pdf
deleted file mode 100644
index fbe8408..0000000
Binary files a/work_report/figs/tesseract.pdf and /dev/null differ
diff --git a/work_report/figs/tesseract2.pdf b/work_report/figs/tesseract2.pdf
deleted file mode 100644
index b372650..0000000
Binary files a/work_report/figs/tesseract2.pdf and /dev/null differ
diff --git a/work_report/figs/tesseract3.pdf b/work_report/figs/tesseract3.pdf
deleted file mode 100644
index e34cd94..0000000
Binary files a/work_report/figs/tesseract3.pdf and /dev/null differ
diff --git a/work_report/figs/threshold-gap.pdf b/work_report/figs/threshold-gap.pdf
deleted file mode 100644
index 742f534..0000000
Binary files a/work_report/figs/threshold-gap.pdf and /dev/null differ
diff --git a/work_report/figs/threshold-overlap.pdf b/work_report/figs/threshold-overlap.pdf
deleted file mode 100644
index 5b1abfa..0000000
Binary files a/work_report/figs/threshold-overlap.pdf and /dev/null differ
diff --git a/work_report/figs/torus.jpg b/work_report/figs/torus.jpg
deleted file mode 100644
index 60c6278..0000000
Binary files a/work_report/figs/torus.jpg and /dev/null differ
diff --git a/work_report/figs/triangle-1.pdf b/work_report/figs/triangle-1.pdf
deleted file mode 100644
index 809efee..0000000
Binary files a/work_report/figs/triangle-1.pdf and /dev/null differ
diff --git a/work_report/figs/triangle-2.pdf b/work_report/figs/triangle-2.pdf
deleted file mode 100644
index d4837fe..0000000
Binary files a/work_report/figs/triangle-2.pdf and /dev/null differ
diff --git a/work_report/figs/trianglecomplex-1.pdf b/work_report/figs/trianglecomplex-1.pdf
deleted file mode 100644
index b52e673..0000000
Binary files a/work_report/figs/trianglecomplex-1.pdf and /dev/null differ
diff --git a/work_report/figs/trianglecomplex-2.pdf b/work_report/figs/trianglecomplex-2.pdf
deleted file mode 100644
index 854d014..0000000
Binary files a/work_report/figs/trianglecomplex-2.pdf and /dev/null differ
diff --git a/work_report/figs/trianglestrip.pdf b/work_report/figs/trianglestrip.pdf
deleted file mode 100644
index e48b94f..0000000
Binary files a/work_report/figs/trianglestrip.pdf and /dev/null differ
diff --git a/work_report/figs/trig-ortho.pdf b/work_report/figs/trig-ortho.pdf
deleted file mode 100644
index aa9d9fa..0000000
Binary files a/work_report/figs/trig-ortho.pdf and /dev/null differ
diff --git a/work_report/figs/trig-pers.pdf b/work_report/figs/trig-pers.pdf
deleted file mode 100644
index 1e22eea..0000000
Binary files a/work_report/figs/trig-pers.pdf and /dev/null differ
diff --git a/work_report/figs/unitopendisk.pdf b/work_report/figs/unitopendisk.pdf
deleted file mode 100644
index da59c81..0000000
Binary files a/work_report/figs/unitopendisk.pdf and /dev/null differ
diff --git a/work_report/figs/unitpolygons.jpg b/work_report/figs/unitpolygons.jpg
deleted file mode 100644
index a32a22d..0000000
Binary files a/work_report/figs/unitpolygons.jpg and /dev/null differ
diff --git a/work_report/figs/utm.jpg b/work_report/figs/utm.jpg
deleted file mode 100644
index ed303ee..0000000
Binary files a/work_report/figs/utm.jpg and /dev/null differ
diff --git a/work_report/figs/utm2.jpg b/work_report/figs/utm2.jpg
deleted file mode 100644
index 87b6203..0000000
Binary files a/work_report/figs/utm2.jpg and /dev/null differ
diff --git a/work_report/figs/vertex-simplices.pdf b/work_report/figs/vertex-simplices.pdf
deleted file mode 100644
index 0a9239d..0000000
Binary files a/work_report/figs/vertex-simplices.pdf and /dev/null differ
diff --git a/work_report/figs/vmap-1.pdf b/work_report/figs/vmap-1.pdf
deleted file mode 100644
index 55a8d41..0000000
Binary files a/work_report/figs/vmap-1.pdf and /dev/null differ
diff --git a/work_report/figs/vmap-2.pdf b/work_report/figs/vmap-2.pdf
deleted file mode 100644
index bd1f215..0000000
Binary files a/work_report/figs/vmap-2.pdf and /dev/null differ
diff --git a/work_report/figs/volumetric.jpg b/work_report/figs/volumetric.jpg
deleted file mode 100644
index bc970fd..0000000
Binary files a/work_report/figs/volumetric.jpg and /dev/null differ
diff --git a/work_report/figs/wigwam.jpg b/work_report/figs/wigwam.jpg
deleted file mode 100644
index 8004417..0000000
Binary files a/work_report/figs/wigwam.jpg and /dev/null differ
diff --git a/work_report/figs/wireframe-1.jpg b/work_report/figs/wireframe-1.jpg
deleted file mode 100644
index d836a82..0000000
Binary files a/work_report/figs/wireframe-1.jpg and /dev/null differ
diff --git a/work_report/figs/wireframe-2.jpg b/work_report/figs/wireframe-2.jpg
deleted file mode 100644
index 9d7dc76..0000000
Binary files a/work_report/figs/wireframe-2.jpg and /dev/null differ
diff --git a/work_report/figs/wireframe-3.jpg b/work_report/figs/wireframe-3.jpg
deleted file mode 100644
index f37c8c5..0000000
Binary files a/work_report/figs/wireframe-3.jpg and /dev/null differ
diff --git a/work_report/figs/wireframe.jpg b/work_report/figs/wireframe.jpg
deleted file mode 100644
index 0f0202b..0000000
Binary files a/work_report/figs/wireframe.jpg and /dev/null differ
diff --git a/work_report/figures/PDF preview - bibliography -- screenshots.png b/work_report/figures/PDF preview - bibliography -- screenshots.png
new file mode 100644
index 0000000..b9de5e0
Binary files /dev/null and b/work_report/figures/PDF preview - bibliography -- screenshots.png differ
diff --git a/work_report/figures/PDF preview - contents -- screenshots.png b/work_report/figures/PDF preview - contents -- screenshots.png
new file mode 100644
index 0000000..17babf8
Binary files /dev/null and b/work_report/figures/PDF preview - contents -- screenshots.png differ
diff --git a/work_report/figures/PDF preview - language and writing -- screenshots.png b/work_report/figures/PDF preview - language and writing -- screenshots.png
new file mode 100644
index 0000000..dedc7d4
Binary files /dev/null and b/work_report/figures/PDF preview - language and writing -- screenshots.png differ
diff --git a/work_report/figures/PDF preview - title page -- screenshots.png b/work_report/figures/PDF preview - title page -- screenshots.png
new file mode 100644
index 0000000..e8936b7
Binary files /dev/null and b/work_report/figures/PDF preview - title page -- screenshots.png differ
diff --git a/work_report/figures/TU_Graz_Logo.pdf b/work_report/figures/TU_Graz_Logo.pdf
new file mode 100644
index 0000000..57aa664
--- /dev/null
+++ b/work_report/figures/TU_Graz_Logo.pdf
@@ -0,0 +1,219 @@
+%PDF-1.3
+%
+2 0 obj
+<<
+/Length 2930
+>>
+stream
+0 0.957 0.569 0 k
+/GS1 gs
+0 31.119 20.745 -20.746 re
+f
+22.819 31.119 20.746 -20.746 re
+f
+q
+1 i
+0 41.492 112.876 -41.432 re
+W n
+45.641 31.119 20.744 -20.746 re
+f
+10.372 20.746 20.747 -20.686 re
+f
+Q
+35.268 41.492 20.744 -20.746 re
+f
+0.941 0.82 0.808 0.894 k
+1 i
+75.104 27.791 m
+68.462 27.791 l
+68.462 31.11 l
+85.581 31.11 l
+85.581 27.791 l
+78.94 27.791 l
+78.94 10.417 l
+75.104 10.417 l
+75.104 27.791 l
+f
+q
+0 41.492 112.876 -41.432 re
+W n
+104.828 18.021 m
+104.828 16.774 104.604 15.649 104.156 14.646 c
+103.708 13.643 103.097 12.79 102.321 12.09 c
+101.546 11.387 100.631 10.848 99.57 10.469 c
+98.511 10.088 97.359 9.898 96.115 9.898 c
+94.873 9.898 93.722 10.088 92.661 10.469 c
+91.601 10.848 90.678 11.387 89.895 12.09 c
+89.109 12.79 88.497 13.643 88.061 14.646 c
+87.621 15.649 87.403 16.774 87.403 18.021 c
+87.403 31.11 l
+91.241 31.11 l
+91.241 18.153 l
+91.241 17.648 91.321 17.117 91.485 16.562 c
+91.648 16.008 91.919 15.497 92.298 15.029 c
+92.676 14.563 93.177 14.178 93.801 13.877 c
+94.423 13.576 95.194 13.425 96.115 13.425 c
+97.035 13.425 97.808 13.576 98.431 13.877 c
+99.054 14.178 99.556 14.563 99.934 15.029 c
+100.312 15.497 100.582 16.008 100.746 16.562 c
+100.909 17.117 100.991 17.648 100.991 18.153 c
+100.991 31.11 l
+104.828 31.11 l
+104.828 18.021 l
+f
+83.257 7.566 m
+82.496 7.895 81.511 8.052 80.723 8.052 c
+78.43 8.052 77.162 6.609 77.162 4.734 c
+77.162 2.873 78.401 1.471 80.497 1.471 c
+81.032 1.471 81.456 1.523 81.793 1.602 c
+81.793 3.987 l
+79.71 3.987 l
+79.71 5.43 l
+83.679 5.43 l
+83.679 0.5 l
+82.638 0.238 81.553 0.028 80.497 0.028 c
+77.316 0.028 75.106 1.51 75.106 4.604 c
+75.106 7.737 77.162 9.494 80.497 9.494 c
+81.638 9.494 82.538 9.35 83.383 9.113 c
+83.257 7.566 l
+f
+85.62 6.938 m
+87.296 6.938 l
+87.296 5.403 l
+87.324 5.403 l
+87.408 6.033 88.182 7.095 89.308 7.095 c
+89.491 7.095 89.689 7.095 89.885 7.042 c
+89.885 5.272 l
+89.717 5.363 89.379 5.416 89.04 5.416 c
+87.507 5.416 87.507 3.633 87.507 2.664 c
+87.507 0.186 l
+85.62 0.186 l
+85.62 6.938 l
+f
+93.587 1.312 m
+94.164 1.312 94.614 1.549 94.909 1.916 c
+95.219 2.296 95.304 2.781 95.304 3.306 c
+94.487 3.306 l
+93.644 3.306 92.391 3.175 92.391 2.139 c
+92.391 1.563 92.911 1.312 93.587 1.312 c
+h
+91.376 6.583 m
+92.107 6.898 93.094 7.095 93.896 7.095 c
+96.105 7.095 97.021 6.242 97.021 4.249 c
+97.021 3.384 l
+97.021 2.703 97.035 2.191 97.049 1.693 c
+97.063 1.182 97.091 0.71 97.134 0.186 c
+95.473 0.186 l
+95.402 0.539 95.402 0.985 95.389 1.195 c
+95.359 1.195 l
+94.924 0.448 93.979 0.028 93.122 0.028 c
+91.842 0.028 90.588 0.749 90.588 2.034 c
+90.588 3.043 91.108 3.633 91.827 3.961 c
+92.546 4.289 93.474 4.355 94.263 4.355 c
+95.304 4.355 l
+95.304 5.442 94.783 5.81 93.671 5.81 c
+92.869 5.81 92.066 5.522 91.434 5.076 c
+91.376 6.583 l
+f
+98.569 6.938 m
+104.312 6.938 l
+104.312 5.495 l
+100.707 1.549 l
+104.438 1.549 l
+104.438 0.186 l
+98.414 0.186 l
+98.414 1.615 l
+102.087 5.574 l
+98.569 5.574 l
+98.569 6.938 l
+f
+0 0.957 0.569 0 k
+105.965 6.911 6.911 -6.851 re
+f
+Q
+endstream
+endobj
+3 0 obj
+<<
+/ProcSet [/PDF ]
+/ExtGState <<
+/GS1 4 0 R
+>>
+>>
+endobj
+4 0 obj
+<<
+/Type /ExtGState
+/SA false
+/SM 0.02
+/OP false
+/op false
+/OPM 1
+/BG2 /Default
+/UCR2 /Default
+/HT /Default
+/TR2 /Default
+>>
+endobj
+1 0 obj
+<<
+/Type /Page
+/Parent 5 0 R
+/Resources 3 0 R
+/Contents 2 0 R
+>>
+endobj
+6 0 obj
+<<
+/S /D
+>>
+endobj
+7 0 obj
+<<
+/Nums [0 6 0 R ]
+>>
+endobj
+5 0 obj
+<<
+/Type /Pages
+/Kids [1 0 R]
+/Count 1
+/MediaBox [0 0 113 42]
+>>
+endobj
+8 0 obj
+<<
+/CreationDate (D:20060111234722+13'00')
+/ModDate (D:20060111234722+13'00')
+/Producer (PSNormalizer.framework)
+>>
+endobj
+9 0 obj
+<<
+/Type /Catalog
+/Pages 5 0 R
+/PageLabels 7 0 R
+>>
+endobj
+xref
+0 10
+0000000000 65535 f
+0000003204 00000 n
+0000000016 00000 n
+0000002998 00000 n
+0000003064 00000 n
+0000003349 00000 n
+0000003284 00000 n
+0000003311 00000 n
+0000003429 00000 n
+0000003560 00000 n
+trailer
+<<
+/Size 10
+/Root 9 0 R
+/Info 8 0 R
+/ID [<99444215e2a4a31d5c4ca09b38102d5e><99444215e2a4a31d5c4ca09b38102d5e>]
+>>
+startxref
+3627
+%%EOF
diff --git a/work_report/figures/institution.pdf b/work_report/figures/institution.pdf
new file mode 100644
index 0000000..57aa664
--- /dev/null
+++ b/work_report/figures/institution.pdf
@@ -0,0 +1,219 @@
+%PDF-1.3
+%
+2 0 obj
+<<
+/Length 2930
+>>
+stream
+0 0.957 0.569 0 k
+/GS1 gs
+0 31.119 20.745 -20.746 re
+f
+22.819 31.119 20.746 -20.746 re
+f
+q
+1 i
+0 41.492 112.876 -41.432 re
+W n
+45.641 31.119 20.744 -20.746 re
+f
+10.372 20.746 20.747 -20.686 re
+f
+Q
+35.268 41.492 20.744 -20.746 re
+f
+0.941 0.82 0.808 0.894 k
+1 i
+75.104 27.791 m
+68.462 27.791 l
+68.462 31.11 l
+85.581 31.11 l
+85.581 27.791 l
+78.94 27.791 l
+78.94 10.417 l
+75.104 10.417 l
+75.104 27.791 l
+f
+q
+0 41.492 112.876 -41.432 re
+W n
+104.828 18.021 m
+104.828 16.774 104.604 15.649 104.156 14.646 c
+103.708 13.643 103.097 12.79 102.321 12.09 c
+101.546 11.387 100.631 10.848 99.57 10.469 c
+98.511 10.088 97.359 9.898 96.115 9.898 c
+94.873 9.898 93.722 10.088 92.661 10.469 c
+91.601 10.848 90.678 11.387 89.895 12.09 c
+89.109 12.79 88.497 13.643 88.061 14.646 c
+87.621 15.649 87.403 16.774 87.403 18.021 c
+87.403 31.11 l
+91.241 31.11 l
+91.241 18.153 l
+91.241 17.648 91.321 17.117 91.485 16.562 c
+91.648 16.008 91.919 15.497 92.298 15.029 c
+92.676 14.563 93.177 14.178 93.801 13.877 c
+94.423 13.576 95.194 13.425 96.115 13.425 c
+97.035 13.425 97.808 13.576 98.431 13.877 c
+99.054 14.178 99.556 14.563 99.934 15.029 c
+100.312 15.497 100.582 16.008 100.746 16.562 c
+100.909 17.117 100.991 17.648 100.991 18.153 c
+100.991 31.11 l
+104.828 31.11 l
+104.828 18.021 l
+f
+83.257 7.566 m
+82.496 7.895 81.511 8.052 80.723 8.052 c
+78.43 8.052 77.162 6.609 77.162 4.734 c
+77.162 2.873 78.401 1.471 80.497 1.471 c
+81.032 1.471 81.456 1.523 81.793 1.602 c
+81.793 3.987 l
+79.71 3.987 l
+79.71 5.43 l
+83.679 5.43 l
+83.679 0.5 l
+82.638 0.238 81.553 0.028 80.497 0.028 c
+77.316 0.028 75.106 1.51 75.106 4.604 c
+75.106 7.737 77.162 9.494 80.497 9.494 c
+81.638 9.494 82.538 9.35 83.383 9.113 c
+83.257 7.566 l
+f
+85.62 6.938 m
+87.296 6.938 l
+87.296 5.403 l
+87.324 5.403 l
+87.408 6.033 88.182 7.095 89.308 7.095 c
+89.491 7.095 89.689 7.095 89.885 7.042 c
+89.885 5.272 l
+89.717 5.363 89.379 5.416 89.04 5.416 c
+87.507 5.416 87.507 3.633 87.507 2.664 c
+87.507 0.186 l
+85.62 0.186 l
+85.62 6.938 l
+f
+93.587 1.312 m
+94.164 1.312 94.614 1.549 94.909 1.916 c
+95.219 2.296 95.304 2.781 95.304 3.306 c
+94.487 3.306 l
+93.644 3.306 92.391 3.175 92.391 2.139 c
+92.391 1.563 92.911 1.312 93.587 1.312 c
+h
+91.376 6.583 m
+92.107 6.898 93.094 7.095 93.896 7.095 c
+96.105 7.095 97.021 6.242 97.021 4.249 c
+97.021 3.384 l
+97.021 2.703 97.035 2.191 97.049 1.693 c
+97.063 1.182 97.091 0.71 97.134 0.186 c
+95.473 0.186 l
+95.402 0.539 95.402 0.985 95.389 1.195 c
+95.359 1.195 l
+94.924 0.448 93.979 0.028 93.122 0.028 c
+91.842 0.028 90.588 0.749 90.588 2.034 c
+90.588 3.043 91.108 3.633 91.827 3.961 c
+92.546 4.289 93.474 4.355 94.263 4.355 c
+95.304 4.355 l
+95.304 5.442 94.783 5.81 93.671 5.81 c
+92.869 5.81 92.066 5.522 91.434 5.076 c
+91.376 6.583 l
+f
+98.569 6.938 m
+104.312 6.938 l
+104.312 5.495 l
+100.707 1.549 l
+104.438 1.549 l
+104.438 0.186 l
+98.414 0.186 l
+98.414 1.615 l
+102.087 5.574 l
+98.569 5.574 l
+98.569 6.938 l
+f
+0 0.957 0.569 0 k
+105.965 6.911 6.911 -6.851 re
+f
+Q
+endstream
+endobj
+3 0 obj
+<<
+/ProcSet [/PDF ]
+/ExtGState <<
+/GS1 4 0 R
+>>
+>>
+endobj
+4 0 obj
+<<
+/Type /ExtGState
+/SA false
+/SM 0.02
+/OP false
+/op false
+/OPM 1
+/BG2 /Default
+/UCR2 /Default
+/HT /Default
+/TR2 /Default
+>>
+endobj
+1 0 obj
+<<
+/Type /Page
+/Parent 5 0 R
+/Resources 3 0 R
+/Contents 2 0 R
+>>
+endobj
+6 0 obj
+<<
+/S /D
+>>
+endobj
+7 0 obj
+<<
+/Nums [0 6 0 R ]
+>>
+endobj
+5 0 obj
+<<
+/Type /Pages
+/Kids [1 0 R]
+/Count 1
+/MediaBox [0 0 113 42]
+>>
+endobj
+8 0 obj
+<<
+/CreationDate (D:20060111234722+13'00')
+/ModDate (D:20060111234722+13'00')
+/Producer (PSNormalizer.framework)
+>>
+endobj
+9 0 obj
+<<
+/Type /Catalog
+/Pages 5 0 R
+/PageLabels 7 0 R
+>>
+endobj
+xref
+0 10
+0000000000 65535 f
+0000003204 00000 n
+0000000016 00000 n
+0000002998 00000 n
+0000003064 00000 n
+0000003349 00000 n
+0000003284 00000 n
+0000003311 00000 n
+0000003429 00000 n
+0000003560 00000 n
+trailer
+<<
+/Size 10
+/Root 9 0 R
+/Info 8 0 R
+/ID [<99444215e2a4a31d5c4ca09b38102d5e><99444215e2a4a31d5c4ca09b38102d5e>]
+>>
+startxref
+3627
+%%EOF
diff --git a/work_report/implementation.tex b/work_report/implementation.tex
deleted file mode 100644
index 53c90a7..0000000
--- a/work_report/implementation.tex
+++ /dev/null
@@ -1,169 +0,0 @@
-% !TEX root = thesis.tex
-
-\chapter{Implementing higher-dimensional representations and operations}
-\label{ch:implementation}
-
-The higher-dimensional representations described in \refpa{pa:representation} and the operations described in \refpa{pa:operations} can be difficult to implement, especially when we expect these implementations to be fast, robust, generic, compact and dimension-independent.
-This is true even when the basic ideas and algorithms are provided, as has been done in this thesis.
-
-For the sake of full reproducibility, this chapter shows some of the key implementation details that are used to efficiently implement the representations and operations described in this thesis.
-\refse{se:libraries} lists the main libraries that were used and how they were used.
-\refse{se:computerarithmetic} explains the main techniques that are used to perform arithmetic and geometric operations robustly.
-Finally, \refse{se:traits} describes the traits programming technique and its use in CGAL and this thesis to produce dimension-independent efficient implementations.
-
-\section{Main libraries used within this thesis}
-\label{se:libraries}
-
-\begin{description}
-
-\item[CGAL\footnotemark]
-\footnotetext{\url{http://www.cgal.org}}
-(the Computational Geometry Algorithms Library) contains a wide variety of 2D/3D/$n$D data structures and computational geometry algorithms.
-Some of its basic packages are directly used within this thesis to store and manipulate numbers and basic shapes, namely: Algebraic Foundations, Number Types, 2D and 3D Linear Geometry Kernel, and $d$D Geometry Kernel.
-Most significantly, the packages Combinatorial Maps and Linear Cell Complex are used in most of the implementations described in the previous chapters.
-Finally, other packages are used as temporary data structures and to process and clean input data: 3D Polyhedral Surface, Halfedge Data Structures, 3D Boolean Operations on Nef Polyhedra, 2D Triangulation, and Principal Component Analysis.
-A few other packages are used as dependencies of the aforementioned packages.
-
-\item[GDAL\footnotemark]
-\footnotetext{\url{http://www.gdal.org}}
-(the Geospatial Data Abstraction Library) reads and writes commonly used GIS file formats.
-Within this thesis, its OGR vector module is mainly used to read and write polygons described as well-known text \citep{SimpleFeatures1}, or in Esri Shapefile \citep{Shapefile} and FileGDB files.
-
-\item[IfcOpenShell\footnotemark]
-\footnotetext{\url{http://www.ifcopenshell.org}}
-is a library that is able to read and write IFC files \citep{ISO16739:2013}.
-It internally uses the Open CASCADE geometry types, including to convert implicit geometries (\eg\ those built using constructive-solid geometry or sweeps as in \reffig{fig:ifc}) into explicit ones that can be stored using boundary representation, or to create meshes of a given degree of accuracy from curved surfaces.
-
-\item[Open CASCADE\footnotemark]
-\footnotetext{\url{http://www.opencascade.org}}
-is a library that is able to manipulate geometric representations in CAD applications.
-In theory, it supports complex geometric operations between implicit geometries, including Boolean set operations with 3D point sets.
-However, in practice it performs poorly with GIS data, often failing due to numerical errors or imperfect data.
-
-\end{description}
-
-\section{Geometric operations using computer arithmetic}
-\label{se:computerarithmetic}
-
-Theoretical descriptions of geometric objects and geometric algorithms generally start from the notions of the Euclidean space $\mathbb{R}^n$, in which the coordinates of a point can be described precisely using real numbers ($\mathbb{R}$).
-However, as real numbers cannot be represented on (digital) computers, implementations usually opt for a combination of \emph{integer numbers} to represent whole numbers of known precision that are known to fall within a given interval and \emph{floating-point numbers} in all other cases.
-While integers can be precisely expressed as a sequence of binary digits of a given length, floating-point numbers often cannot.
-The latter are therefore usually\footnote{This is only the most common representation among those provided by the much broader IEEE 754 standard \citep{IEEE754-2008}, which provides for decimal numbers as well as special values for $\pm \infty$ and NaN (not a number), among other features.} expressed using binary numbers with a predefined number of bits.
-% as:
-
-% \begin{equation*}
-% {(-1)}^\mathrm{sign} \times 2^\mathrm{exponent} \times \mathrm{significand}
-% \end{equation*}
-
-% where the exponent is a positive integer and the significand is expressed as a normalised number.
-% As a normalised binary number always begins with \texttt{1.}, the first binary digit is known and therefore not stored.
-% The \emph{fraction} of the number (\ie\ the digits following the \texttt{1.}) is stored instead.
-% Single precision (or 32-bit) floating-point numbers use 1 bit for the sign, 8 bits for the exponent and 23 bits for the significand.
-% Double precision (or 64-bit) floating-point numbers use 1 bit for the sign, 11 bits for the exponent and 52 bits for the significand.
-
-Floating-point numbers can represent a wide range of values and work well in many instances.
-However, arithmetic performed using floating-point numbers needs special care, as it often leads to a loss of precision \citep{Goldberg91}.
-While this is a problem for all kinds of algorithms \citep{Hoffmann88}, geometric operations are particularly vulnerable as they often rely on getting a correct result for a large number of predicates, which can fail when dealing with edge cases \citep{Kettner08}, such as almost collinear or coplanar points.
-
-Many alternatives have been developed to deal with various limitations of integer and floating-point numbers.
-Among these, the ones described below are those that have been used for the implementations related to this thesis.
-\emph{Multiple precision arithmetic} is a generic solution that can achieve an arbitrary level of precision by using numbers with a user-definable number of digits.
-It is widely implemented in libraries such as GMP\footnote{\url{https://gmplib.org/}} and MPFR\footnote{\url{http://www.mpfr.org}}.
-
-Simple arithmetic operations can be computed precisely by using \emph{rational arithmetic}, where a number is stored as a ratio of two other numbers, most commonly integers.
-In a geometric context, this type of representation is often used in the form of homogeneous coordinates, where a single number is used as a common denominator for all of the coordinates.
-This common denominator can be used to represent special values, such as a point at infinity by setting it to zero.
-
-In \emph{interval arithmetic} numbers are substituted with intervals.
-When these are used to represent the error bounds of an operation\footnote{combined with correct rounding in the case of floating-point numbers}, it is possible to compute arithmetic operations with provably correct results \citep[Ch.~2]{Ratschek88}, such as those provided by the MPFI library\footnote{\url{https://perso.ens-lyon.fr/nathalie.revol/software.html}}.
-Unfortunately, while this setup using multiple precision interval arithmetic can be applied to most problems with relative ease, it is also very slow.
-For instance, \citet{Held11} reports a factor of 70 for the computation of Voronoi diagrams.
-
-It is possible to go around this problem by fine-tuning a multiple-precision approach to a specific problem.
-Notably, this is done with very good results for a few geometric predicates by \citet{Shewchuk97}, and the simulation of simplicity paradigm advocated by \citet{Edelsbrunner90}.
-A more generic and easier to implement solution is provided by the lazy evaluation scheme used in CGAL \citep{Pion11}, which is based on interval arithmetic and is the one used in this thesis.
-% , which is used in the implementations mentioned in this thesis.
-In it, the computationally expensive multiple precision operations are only computed when floating-point precision is not sufficient.
-As these cases are important to get correct results, but also relatively rare, it significantly improves the performance of most operations while maintaining their correctness.
-
-\section{Efficient and flexible dimension-independent programming}
-\label{se:traits}
-
-Previously, \refse{ss:dimensions} discussed how higher-dimensional representations have large sizes and methods using them have high computational complexities, which often increase exponentially on the dimension.
-However, there are also practical obstacles that make it difficult to implement dimension-independent structures and methods efficiently, especially when these have to be used in a generic setting such as in GIS, where varied objects of different dimensions need to be dynamically created and modified, as well as appended with possibly multiple attributes of various types.
-
-One of these obstacles is the need to allocate and use structures that are dimension- and data-independent, and therefore flexible enough to cover all the aforementioned use cases, but at the same time remain compact and allow their contents to be accessed efficiently.
-These structures can range from simple ones that can be handled by standard data types and containers, to more complex ones that need to be dynamically defined.
-For instance, some simple types are directly dependent on the dimension, such as $n$-tuples storing the coordinates of a point in $\mathbb{R}^n$, and can thus be stored as arrays or vectors.
-
-At the opposite end, consider the sets of extrusion intervals that were associated to each cell in \refch{ch:extrusion}, where an unknown number of cells need to be each associated with an unknown number of intervals.
-As the number of intervals per cell is not known, it is not possible to store the intervals in a fixed-length structure that is integrated into the embedding structure of each cell.
-Also, while it is possible to directly link a cell to its set of intervals from its embedding structure, these intervals are only temporarily needed, so allocating space for the intervals directly in the embedding structure is wasteful at all other times and thus difficult to justify.
-The end result was that the intervals per cell were kept in an external structure, where a \texttt{map} linked a cell embedding to a \texttt{set} of intervals.
-As \reftab{tab:complexitystd} shows, this means that accessing a given interval of a given cell---an operation that is performed a very large number of times---, takes logarithmic rather than constant time, significantly slowing the extrusion algorithm in practice.
-\marginpar{
-\captionsetup{type=table}
-\centering
-\caption[Computational complexity of accessing an element in C++ containers]{The typical computational complexity of accessing a given element in common C++ containers \citep{ISO14882:2015}}
-\label{tab:complexitystd}
-\small
-\begin{tabular}{cc}
-\toprule
-structure & complexity \\
-\midrule
-hard-coded & $O(1)$ \\
-array/vector & $O(1)$ \\
-map/set & $O(\log n)$ \\
-list & $O(n)$ \\
-\bottomrule
-\end{tabular}
-}
-
-A possible solution to the aforementioned problems is based on \emph{template meta-programming}.
-Template meta-programming is a technique that uses templates to generate certain data structures or perform certain computations during the compilation of a program rather than during its execution.
-Templates are normally used as a way to support generic programming, enabling the creation of functions that can deal with different data types indistinctly.
-A template might thus be instantiated with the dimension of an object or a particular attribute type, thus generating a data structure of the appropriate size and disposition whose members can be accessed in constant time.
-\reffig{fig:template-conversion} shows a slightly more complex example, where a template can be used to convert a string into any number type, which is used in this thesis to parse numbers from various types of files (\eg\ coordinates and identifiers).
-\begin{figure}[tb]
-\centering
-\small
-\lstinputlisting[language=C++]{figs/templateconversion.txt}
-\caption[Using C++ templates to convert a \texttt{string} into any number type]{Using C++ templates to convert a \texttt{string} containing a number into any number type $T$, including scientific notation. Adapted from \url{http://www.cplusplus.com/forum/articles/9645/}.}
-\label{fig:template-conversion}
-\end{figure}
-
-However, apart from their use in generic programming, templates can also be used to create complex dimension-dependent structures, such as through the use of the traits programming technique \citep{Myers95} used in CGAL, which exploits C++'s \texttt{typedef} declarations to create custom dependent types.\@
-As an example, \reffig{fig:extrudedlcc} shows how the implementation of the extrusion algorithm defines a combinatorial map that is one dimension higher than the input, which is created during compilation.
-\begin{figure*}[tb]
-\centering
-\small
-\lstinputlisting[language=C++,numbers=left]{figs/extrudedlcc.txt}
-\caption[Creating a dependent type using C++ templates]{Using C++ templates it is possible to create dependent types such as the \texttt{Higher\_dimensional\_cell\_complex} defined in line 5 and used in line 15.}
-\label{fig:extrudedlcc}
-\end{figure*}
-
-This type of mechanism can be used to a much higher degree by defining \emph{recursive templates}, which are used extensively in the CGAL Combinatorial Maps package.
-As an example, \reffig{fig:dimensionindependent} shows how this was applied in order to store the extrusion ranges maps for each dimension separately, which is necessary because the embedding structures of each cell are different depending on the dimension.
-\begin{figure*}[tb]
-\centering
-\small
-\lstinputlisting[language=C++,numbers=left]{figs/dimensionindependent.txt}
-\caption[Using recursive C++ templates to produce dimension independent code]{Recursive C++ templates can be used to generate dimension independent code.
-The first structure \texttt{Extrusion\_ranges\_map\_of\_dimension} (lines 1--8) contains the extrusion map for a single dimension.
-The second structure \texttt{Extrusion\_ranges\_tuple\_per\_dimension\_up\_to} (lines 10--23) uses as a triplet of definitions to create copies of the first for every dimension up to a given one.
-This is done using a template specialisation for dimension 0 which stops the recursion.
-The last structure \texttt{Extrusion\_ranges\_tuple\_per\_dimension} (lines 25--32) creates all structures using the dimension of a passed combinatorial map \texttt{LCC}.
-Note the non-ideal use of \texttt{std::map} in line 5.}
-\label{fig:dimensionindependent}
-\end{figure*}
-
-The same technique can be used to create algorithms that are also fully dimension-independent.
-In fact, C++ templates are known to be Turing-complete \citep{Veldhuizen03}, and thus can be used to compute general-purpose problems.
-\reffig{fig:manifoldvalidation} shows one such example from the implementation of the incremental construction algorithm of \refch{ch:incremental-construction}, which shows the validation that a set of $(n-1)$-cells form a quasi-$n$-manifold.
-\begin{figure*}[tb]
-\centering
-\small
-\lstinputlisting[language=C++]{figs/manifoldvalidation.txt}
-\caption[Dimension-independent algorithms using recursive C++ templates]{Recursive C++ templates can also be used to implement dimension-independent algorithms. In this case, the \texttt{dimension} that is passed to the templated function is passed on to other functions to obtain appropriate orbits for a given facet (\texttt{dimension-1}) or ridge (\texttt{dimension-2}), which are then compared dart by dart.}
-\label{fig:manifoldvalidation}
-\end{figure*}
diff --git a/work_report/incremental-construction.tex b/work_report/incremental-construction.tex
deleted file mode 100644
index 8486ec3..0000000
--- a/work_report/incremental-construction.tex
+++ /dev/null
@@ -1,374 +0,0 @@
-% !TEX root = thesis.tex
-
-\chapter{Incremental construction}
-\label{ch:incremental-construction}
-
-One more method to the extrusion of \refch{ch:extrusion}, \emph{incremental construction} exploits the property that an $n$-cell can be defined based on a set of $(n-1)$-cells known to form its complete (closed) boundary.
-In practice, defining an $n$-cell in this manner is significantly more complex than doing so based on extrusion.
-However, unlike extrusion it permits the creation of cells of an \emph{arbitrary shape}.
-It can also be applied cell by cell in increasing dimension, starting with the construction of isolated 0-cells (embedded in $\mathbb{R}^n$) first, and then constructing 2-cells, 3-cells and further based on their boundary, allowing for the \emph{incremental construction} of objects of any dimension---hence the name given here.
-
-This chapter describes an operation that permits the aforementioned process to be easily applied in practice using a topological data structure.
-Based on combinatorial maps (\refse{ss:ordered-topological-models}) and their fundamental operations (\refse{ss:operations-maps}), it connects the separate boundary $(n-1)$-cells together by computing the appropriate adjacency relationships between them, encapsulating low-level details such as the creation of new individual combinatorial elements and setting the correct orientation for the existing ones.
-
-The chapter begins with some background on the operations and a description of the overall approach in \refse{se:incremental-approach}.
-It then explains the steps needed to create the cells of each dimension in \refse{se:primitives}.
-\refse{se:incremental-implementation} describes how the approach was implemented based on the Computational Geometry Algorithms Library (CGAL).
-\refse{se:incremental-experiments} summarises some experiments based on this implementation, generating relatively large objects in up to 4D.
-Finally, \refse{se:incremental-conclusions} concludes the chapter with the possibilities to use incremental construction to build higher-dimensional datasets.
-
-Most of this chapter is based on the paper:
-\begin{itemize}
-\papericaaincrementalconstruction%
-\end{itemize}
-
-\section{Background and overall approach}
-\label{se:incremental-approach}
-
-Based on the Jordan-Brouwer separation theorem \citep{Lebesgue11,Brouwer11}, it is known that a subset of space homeomorphic to an $(n-1)$-dimensional sphere\footnote{A generalisation of the concept of a sphere in arbitrary dimensions.
-A 0-sphere is the pair of points, a 1-sphere is a circle, and a 2-sphere a sphere. As opposed to disks and balls, circles and spheres are hollow.} $S^{n-1}$ in the $n$-dimensional Euclidean space $\mathbb{R}^n$ divides the space into two connected components: the \emph{interior}, which is the region bounded by the sphere, and the \emph{exterior}, which is the unbounded region in which the sphere is a hole.
-This means that the principles of boundary representation as described in \refse{ss:data-models} extend to higher dimensions, and so an $n$-cell in a cell complex can be described (and therefore constructed) based a set of $(n-1)$-cells that are known to form its complete (closed) boundary\footnote{This is true in practice.
-However, there are fractal-like pathological objects where this is not the case because their interior or exterior components are not homeomorphic to disks \citep{Alexander24}.
-While they do exist, this type of objects are certainly out of scope here.}.
-
-The \emph{incremental construction} method proposed in this chapter exploits this property by applying this process cell by cell in increasing dimension.
-Isolated vertices are first constructed, which are embedded in $\mathbb{R}^n$ and are uniquely defined based on their coordinates.
-These vertices can then be connected to form individual edges, or instead to directly form cycles of implicit edges representing faces, as in most of the typical GIS approaches described in \refse{ss:formats}.
-Sets of faces can be connected to form volumes, sets of volumes to form 4-cells and so on.
-
-In a similar manner as extrusion, presented in \refch{ch:extrusion}, this \emph{incremental construction} process significantly reduces the conceptual complexity of defining and creating higher-dimensional objects.
-The $(n-1)$-dimensional boundary of an $n$-cell is much easier to conceive than the original $n$-cell because it can be subdivided into multiple simpler $(n-1)$-cells, which can be individually described and constructed using the same method.
-
-However, applying this incremental construction process using a topological data structure is not that simple, as it involves many intricate small problems: finding the topological relationships between the cells, appropriately connecting them, keeping track of multiple connected components, avoiding the creation of duplicate cells (as part of the boundary of independently-described higher-dimensional cells), changing the orientation of cells on the fly (since those that have been created separately will often have incompatible orientations), and detecting non-manifold shapes (which would result in invalid structures), among others.
-
-The incremental construction operator presented in this chapter solves all of the aforementioned issues efficiently.
-It is based on $n$-dimensional combinatorial maps with linear geometries and it is fully dimension-independent.
-As it generates all the incidence and adjacency relationships between $(n-1)$-cells in an $n$-dimensional cell complex, it can also be used to obtain these relationships when needed, such as when multiple datasets are combined into one or when a non-topological representation is instead used (\eg\ the Simple Features-like approach shown in \refse{ss:nd-topology}).
-
-In order to be efficient, the algorithm uses two basic techniques:
-(i) indexes on the lexicographically smallest vertex (\refse{se:spatial-indexing}) of certain cells, which are used in order to keep track of individual cells (which might be disconnected) and to access cells efficiently; and
-(ii) signature-generating traversals for specific cells \citep{Gosselin11}, which are used to efficiently compare whether two cells are equivalent by checking if it is possible to find an isomorphism $f$ that maps corresponding darts with equivalent ($\beta$) or reversed ($\beta^{-1}$) relations and which are embedded at the same location in $\mathbb{R}^n$, as was shown in \refse{se:ndqueries}.
-
-The incremental construction operation as described in this chapter is applicable only to perfect data.
-The $(n-1)$-cells bounding an $n$-dimensional cell should thus form a manifold and perfectly match each other at their common $(n-2)$-dimensional boundaries.
-However, the method can be easily extended to handle some more complex configurations, such as by cleaning the input data using the methods described in \refch{ch:cleaning}.
-
-\section{Incremental construction of primitives per dimension}
-\label{se:primitives}
-
-The idea of the incremental construction algorithm is to construct cells individually, using lower-dimensional cells that have already been constructed in order to describe part of the boundary of a higher-dimensional cell.
-In terms of the darts of a combinatorial map, this sometimes implies the reuse of existing darts, and sometimes the creation of new ones which are connected to the existing ones.
-There is however no strict requirement that the cells are created in strictly increasing dimension, and so new cells can be easily added to an existing cell complex.
-
-Due to the need to embed 0-cells into a point in space, as well as the oriented nature of a combinatorial map, the incremental construction method is different for 0-, 1- and 2-cells.
-3-cells and those of higher dimensions follow a unified procedure.
-These cases are therefore described separately below, using as an example the creation of the pair of adjacent tetrahedra shown in \reffig{fig:2tetra}.
-\marginpar{
-\captionsetup{type=figure}
-\centering
-\subfloat[]{\includegraphics[width=\marginparwidth]{figs/2tetra}} \\
-\subfloat[]{\includegraphics[width=\marginparwidth]{figs/2tetra-map}}
-\caption[Two adjacent tetrahedra as a combinatorial map]{(a) Two adjacent tetrahedra and (b) their representation as a combinatorial map.}
-\label{fig:2tetra}
-}
-
-\subsection{Vertices (0-cells)}
-\label{ss:incremental-vertices}
-
-The aim of the process of 0-cell construction is to create an isolated dart and an associated point embedding structure for every 0-cell, while avoiding having duplicate embedding structures having the same point coordinates.
-By making point embeddings unique---as defined by their coordinates---, they can be used to compare 0-cells without checking an entire tuple of coordinates.
-Moreover, by maintaining an index of all point embeddings and links from every point embedding to a dart there, it is possible to use this index to access the combinatorial structure at that point.
-In this manner, it is possible to find either an already free dart that can be reused, or a non-free dart that is part of a larger combinatorial structure, which can be then copied and its copy used instead.
-
-Thus, calling a function $\texttt{make\_0\_cell(}x_0, \ldots, x_n\texttt{)}$ with the coordinates $x_0, \ldots, x_n$ describing an $n$-dimensional point, should use the index of 0-cells to return an existing dart embedded at that location (using an existing point embedding) if one exists, or a new dart embedded at that location (using a new point embedding) otherwise.
-In the latter case, the new point embedding and its associated dart should be added to the index.
-The result of calling this function for all the point coordinates of the vertices in \reffig{fig:2tetra} is shown in \reffig{fig:reconstruction-0}.
-Note that the result is identical whether the function is called once for every unique vertex, or multiple times (\eg\ once for every vertex in every face or volume).
-\marginpar{
-\captionsetup{type=figure}
-\centering
-\includegraphics[width=\marginparwidth]{figs/reconstruction-0}
-\caption[Constructing the 0-cells of \reffig{fig:2tetra}]{Constructing the 0-cells of \reffig{fig:2tetra} consists of creating exactly one dart embedded at each point.
-These darts are isolated (\ie\ not linked by any $\beta$ relations to the other darts).
-The direction of the arrows shown here is arbitrary.}
-\label{fig:reconstruction-0}
-}
-
-\subsection{Edges (1-cells)}
-\label{ss:incremental-edges}
-
-Generally, it is best to skip the generation of 1-cells and proceed directly to the creation of 2-cells from sequences of points.
-In order to represent an isolated edge in a combinatorial map not one but \emph{two} darts are required: one embedded at each of the two vertices bounding the edge.
-More precisely, taking into account the (arbitrary) orientation defined for the edge, the dart embedded at the \emph{origin} of the edge is connected to the \emph{destination} by $\beta_1$, and the destination is connected to the origin by $\beta_1^{-1}$.
-Having two darts per edge is not a major problem, but it is wasteful as it often creates unnecessary darts and unnecessary connections between them that would later be deleted.
-For instance, if a single face that uses all the edges is created from its bounding edges, half of the darts lose their original purpose (\ie\ to store a connection to their otherwise unlinked point embeddings) and will be eliminated\footnote{These could be those embedded at the edges' origin, destination or a mixture of the two.}, which is accompanied with having to reset the $\beta$ relationships pointing to them.
-
-In addition, as shown in \refse{ss:formats}, polygons can be easily described as an ordered sequence of vertices connected by implicit line segments between each consecutive pair.
-Therefore, incrementally constructing $1$-cells often brings no efficiency gains or practical benefits, and so it is normally best to skip dimension one, constructing 2D facets from a sequence of 0D points, 3D volumes from their 2D faces, 4-cells from their 3-cell faces, and so on.
-
-However, there is an exception to this rule, as isolated edges and polygonal lines sometimes do need to be explicitly represented.
-In these cases, it is possible to simply follow the process described for 2-cells below, omitting sewing the last dart of the line segment or polygonal line to the first dart (and vice versa), and appropriately using the 1-cells index to find if a given 1-cell already exists, or otherwise to index the newly created 1-cell or 1-cells (in the case of a polygonal line).
-
-\subsection{Faces (2-cells)}
-\label{ss:incremental-faces}
-
-Starting from the unique 0-cells obtained from the procedure presented in \refse{ss:incremental-vertices}, in order to create a 2-cell from a sequence of 0-cells, three general steps are needed:
-\begin{figure*}[tb]
-\centering
-\subfloat[]{\includegraphics[width=0.22\linewidth]{figs/reconstruction-2}} \quad
-\subfloat[]{\includegraphics[width=0.22\linewidth]{figs/reconstruction-2-a}\label{subfig:reconstruction-2-a}} \quad
-\subfloat[]{\includegraphics[width=0.22\linewidth]{figs/reconstruction-2-b}\label{subfig:reconstruction-2-b}} \quad
-\subfloat[]{\includegraphics[width=0.22\linewidth]{figs/reconstruction-2-c}}\\
-\subfloat[]{\includegraphics[width=0.22\linewidth]{figs/reconstruction-2-d}} \quad
-\subfloat[]{\includegraphics[width=0.22\linewidth]{figs/reconstruction-2-e}}\quad
-\subfloat[]{\includegraphics[width=0.22\linewidth]{figs/reconstruction-2-f}} \quad
-\subfloat[]{\includegraphics[width=0.22\linewidth]{figs/reconstruction-2-g}\label{subfig:reconstruction-2-g}}\\
-\caption[Constructing the 2-cells of \reffig{fig:2tetra}]{The construction of the 2-cells of \reffig{fig:2tetra}. (a)~Initial configuration: one dart per vertex. (b)~After $b=\texttt{make\_2\_cell(}1,2,3\texttt{)}$. (c)~After $c=\texttt{make\_2\_cell(}2,4,3\texttt{)}$. (d)~After $d=\texttt{make\_2\_cell(}1,4,3\texttt{)}$. (e)~After $e=\texttt{make\_2\_cell(}1,4,2\texttt{)}$. (f)~After $f=\texttt{make\_2\_cell(}1,3,5\texttt{)}$. (g)~After $g=\texttt{make\_2\_cell(}5,3,4\texttt{)}$. (h)~Final result, after $h=\texttt{make\_2\_cell(}4,5,1\texttt{)}$.}
-\label{fig:reconstruction-2}
-\end{figure*}
-
-\begin{enumerate}
-
-\item
-The procedure first checks if the 2-cell that is being requested already exists\footnote{This test can also be done at the end of the process, which makes it possible to use the easy cell comparison method described in \refse{se:ndqueries}.
-In that case, the newly created cells (in the form of darts) that are found to be redundant should be deleted and removed from (or not added to) the indices.}.
-Just as in the creation of 0-cells, a 2-cell being requested might have already been created, either independently or as part of a 3-cell.
-This can be easily checked using the index of 2-cells with the lexicographically smallest vertex of the 0-cells being passed, and finding if from a dart starting at the lexicographically smallest vertex and following the $\beta_1$ or $\beta_1^{-1}$ relations, one passes through the same point embeddings as those passed to this construction method.
-
-\item
-Each of these 0-cells might be a $1$-free dart $d$ (\ie\ $\beta_1(d) = \emptyset$) and thus have no dart linked to it by $\beta_1$, \ie\ $\beta_1^{-1}(d) = \emptyset$ or $\forall d^\prime \nexists \beta_1(d^\prime) = d$, or if $\beta_1^{-1}$ is not stored, $\nexists d^\prime \mid \beta_1(d^\prime) = d$, \emph{in which case it can be used directly}, such as in \reffig{subfig:reconstruction-2-a}.
-It can also be a non $1$-free dart or one that has a dart linked by $\beta_1$ to it, which means that it is used as part of a $1$-cell (and possibly other higher dimensional cells).
-
-The darts that are already used as part of $1$-cells are more difficult to handle, as they \emph{can be reused only when the 1-cell they are part of is also part of the boundary of a geometrically identical $2$-cell as the one that will be constructed using this method}.
-This needs to be tested in both possible orientations for the sequence of 0-cells, possibly resulting in the reversal of the orientation of some 1-cells.
-If a given dart \emph{cannot be reused} (because it is part of a 1-cell that is not part of the 2-cell to be created), a copy of it has to be created.
-The result of this step is thus a list that contains for every 0-cell a reusable existing dart or a newly created dart.
-
-\item
-The darts obtained in the previous step are 1-sewn sequentially (using $\beta_1$ and $\beta_1^{-1}$), and the last is 1-sewn to the first, forming a closed cycle.
-During these sewing operations, the function checks whether every newly created edge (consisting of a pair of linked darts) is present in the index of 1-cells.
-If a given 1-cell is already there, the new edge's dart is linked to its edge embedding structure.
-If a 1-cell is not there, the edge is added to the index\footnote{Here, depending on the kind of expected input data, it might be more convenient to index edges at their origin vertex rather than at their lexicographically smallest.}, a new edge embedding is created, and the edge's dart is linked to it.
-Finally, the newly created 2-cell is then added to the index of 2-cells.
-
-In order to verify that the 2-cell being generated is a quasi-manifold, it is useful to assert that all darts that are $1$-free and have their $\beta_1^{-1}$ relation set to $\emptyset$ at the beginning of this third step, \ie\ those that were not copied, should continue to be $1$-free and have a $\beta_1^{-1}$ set to $\emptyset$ until they are sewn.
-This condition, which is applied differently to the 1-cell, ensures that a vertex is not used twice within the same face, and as such, that the 2-cell is a quasi-manifold.
-
-\end{enumerate}
-
-\reffig{fig:reconstruction-2} shows the incremental construction procedure for all the 2-cells of \reffig{fig:2tetra}, which consists of 7 2-cells and is thus obtained by 7 calls to the \texttt{make\_2\_cell} method.
-
-\subsection{Volumes (3-cells) and higher}
-\label{ss:incremental-volumes}
-
-The method to create $i$-cells from their $(i-1)$-cell boundaries is identical for all $i \geq 3$, allowing for a fully dimension-independent function to be created.
-This function consists of four general steps:
-
-\begin{enumerate}
-
-\item
-First of all, the procedure checks whether each $(i-1)$-cell that is passed is $(i-1)$-free or not.
-If it is $(i-1)$-free, it is reused as part of the $i$-cell, such as in \reffig{subfig:reconstruction-3-a}.
-If it is not $(i-1)$-free, then it is already part of a different $i$-cell, so a copy of it is made \emph{with a reversed orientation}, as shown in \reffig{subfig:reconstruction-3-b}.
-This copy can then be used for the construction of the $i$-cell.
-
-For a given dart $d$ that is known to be part of the $(i-1)$-cell, this copy can be made by taking all the darts in the orbit $C = \langle \beta_1, \ldots, \beta_{i-2} \rangle (d)$, creating a new set of darts $C^\prime$, and inserting a new corresponding dart in $C^\prime$ for every dart in $C$.
-Using a function $f : C \rightarrow C^\prime$ that maps a dart in $C$ to its corresponding dart in $C^\prime$, for every dart $c \in C$ the $\beta_1$ relations are set as $\beta_1^{-1}\left(f\left(c\right)\right) = f\left(\beta_1\left(c\right)\right)$ and $\beta_1\left(f\left(c\right)\right) = f\left(\beta_1^{-1}\left(c\right)\right)$. For the ones of higher dimensions, they are set such that $\forall 2 \leq j \leq i-2$, $\beta_j\left(f\left(c\right)\right) = f\left(\beta_j\left(c\right)\right)$.
-
-Note that the combinatorial structures are copied with reversed orientation, as this ensures that the two (old and new) can be directly $i$-sewn together, if necessary.
-
-\item
-A temporary \emph{ridge index} of the $i$-cell is built, containing all the $(i-2)$-cells on the boundary of all $(i-1)$-cells that have been passed to the construction method---not all the $(i-1)$-cells in the cell complex---using their lexicographically smallest vertices, such that their index entries link to a usable dart in the $(i-2)$-cell with a point embedding at the lexicographically smallest vertex.
-This dart should be one that is $(i-1)$-free, either because it was already free as part of the combinatorial structure of the passed $(i-1)$-cells, or because it is a copy (with reversed orientation) of one that was not $(i-1)$-free.
-
-\item
-Using the ridge index, $(i-1)$-cells (\ie\ facets) are $(i-1)$-sewn along their common $(i-2)$-cell boundaries (\ie\ ridges).
-For this, for every $(i-2)$-cell on the boundary of an $(i-1)$-cell passed to the function, exactly one matching $(i-2)$-cell should be found in the index, which should be equivalent as compared using the method described in \refse{se:ndqueries} and might be of the same or opposite orientation (but should not be part of the same $(i-1)$-cell or matched to itself).
-This criterion ensures that a quasi-$(i-1)$-manifold will be constructed.
-
-If the two $(i-1)$-cells are sewable along their common $(i-2)$-cell boundaries, \ie\ they have compatible orientations, they are directly sewn together.
-Otherwise, the orientation of the entire connected component of either of the two $(i-1)$-cells should be reversed.
-If the two $(i-1)$-cells have incompatible orientations but are part of the same connected component, the cell that is being requested is unorientable, and thus cannot be represented using combinatorial maps.
-Although not discussed further here, note that as long as it does forms a quasi-manifold it can however be represented using \emph{generalised maps}.
-
-\item
-Using the index of $i$-cells, the newly constructed $i$-cell is compared to others to check if it had already been created, which is also done using the lexicographically smallest vertex of the cell.
-If an equivalent $i$-cell (with the same or opposite orientation) is found, the function deletes the newly created darts of the cell and their corresponding index entries, and instead finally returns the existing $i$-cell.
-If an equivalent $i$-cell is not found, the newly created cell is added to the index and returned.
-
-\end{enumerate}
-
-\reffig{fig:reconstruction-3} shows the incremental construction procedure for the two 3-cells of \reffig{fig:2tetra}.
-\marginpar{
-\captionsetup{type=figure}
-\centering
-\subfloat[]{\includegraphics[width=\marginparwidth]{figs/reconstruction-3-a}\label{subfig:reconstruction-3-a}} \\
-\subfloat[]{\includegraphics[width=\marginparwidth]{figs/reconstruction-3-b}\label{subfig:reconstruction-3-b}}
-\caption[Constructing the 3-cells of \reffig{fig:2tetra}]{The construction of the 3-cells of \reffig{fig:2tetra}. (a)~After $\texttt{make\_3\_cell(}b,c,d,e\texttt{)}$. (b)~Final result, after $\texttt{make\_3\_cell(}e,f,g,h\texttt{)}$.}
-\label{fig:reconstruction-3}
-}
-
-\section{Implementation and complexity analysis}
-\label{se:incremental-implementation}
-
-The incremental construction algorithm has been implemented in C++11 and made available under the open source MIT licence at \url{https://github.com/kenohori/lcc-tools}.
-As the extrusion related code (\refse{se:extrusion-implementation}), it requires and builds upon the CGAL packages Combinatorial Maps and Linear Cell Complex, among others.
-% The first package provides data structures and algorithms to store and to efficiently iterate over the darts of a combinatorial map, and the second links the 0-embeddings to other CGAL types in order to store the geometry of a model.
-
-For this prototype implementation, the lexicographically smallest vertex indices were implemented as C++ Standard Library \texttt{maps}\footnote{The exact implementation depends on the library that is used, but normally they are red-black trees.} for every dimension, using point embeddings as keys and \texttt{lists} of darts as values.
-Each dart in a \texttt{list} represents a separate cell (of the dimension of the index) that has that point as its lexicographically smallest.
-A custom comparison function is passed as a template so that the points are internally sorted in lexicographical order.
-As a \texttt{map} has $O(\log n)$ search, insertion and deletion times and $O(n)$ space \citep[\S{}23.4]{ISO14882:2015}, all of these operations can be performed efficiently.
-
-If a strictly incremental approach is followed, creating all $i$-cells before proceeding to the $(i+1)$-cells, it is not necessary to maintain indices for all the cells of all dimensions at the same time.
-The only ones that are needed are those for: all $i$- and $(i-1)$-cells, as well as a temporary index for the $(i-2)$-cells on the boundary of the $(i-1)$-cells for the $i$-cell that is currently being constructed.
-This means that only three indexes---one of which likely covers only a small part of the dataset---need to be kept at a given time.
-
-Most of these indices can be easily built incrementally, adding new cells as they are created in $O(\log c)$, with $c$ the number of cells of that dimension, assuming that the smallest vertex and a dart embedded there are kept during its construction.
-The complexity of building any index of cells of any dimension is thus $O(c \log c)$ and it uses $O(c)$ space.
-
-Checking whether a given cell already exists in the cell complex is more complex.
-Finding a list of cells that have a certain smallest vertex is done in $O(\log c)$.
-In an unrealistically pathological case, all existing cells in the complex could have the same smallest vertex, leading to up to $c$ quadratic time cell-to-cell comparisons just to find whether one cell exists.
-However, every dart is only part of \emph{a single} cell of any given dimension\footnote{This is true for the type of combinatorial maps with linear geometries that are handled here, but not necessarily so in the general case.}, so while every dart could conceivably be a starting point for the comparison, a single dart cannot be used as a starting point in more than one comparison, and thus a maximum of $d_{\mathrm{complex}}$ identity comparisons will be made for \emph{all} cells, with $d_{\mathrm{complex}}$ being the total number of darts in the cell complex.
-From these $d_{\mathrm{complex}}$ darts, two identity comparisons are started, one assuming that the two cells (new and existing) have the same orientation, and one assuming opposite orientations.
-Each of these involves a number of dart-to-dart comparisons in the canonical representations that \emph{cannot} be higher than the number of darts in the smallest of the two cells.
-The number of darts in the existing cell is unknown, but starting from the number of darts in the newly created cell ($d_{\mathrm{cell}}$), it is safe to say that no more than $d_{\mathrm{cell}}$ dart-to-dart comparisons will be made in each identity test, leading to a worst-case time complexity of $O(d_{\mathrm{complex}} d_{\mathrm{cell}})$.
-Note that this is similar to an isomorphism test starting at every dart of the complex.
-
-Finally, creating an $i$-cell from a set of $(i-1)$-cells on its boundary is more expensive, since the $(i-2)$-cell (ridge) index needs to be computed for every $(i-1)$-cell.
-Following the same reasoning as above, it can be created in $O(r \log r)$ with $r$ the number of ridges in the $i$-cell, and uses $O(r)$ space.
-Checking whether a single ridge has a corresponding match in the index is done in $O(d_{\mathrm{cell}} d_{\mathrm{ridge}})$, with $d_{\mathrm{cell}}$ the number of darts in the $i$-cell and $d_{\mathrm{ridge}}$ the number of darts in the ridge to be tested.
-Since this is done for all the ridges in an $n$-cell, the total complexity of this step, which dominates the running time of the algorithm, is
-
-\begin{equation*}
-\displaystyle\sum_{\mathrm{ridges}} O(d_{\mathrm{cell}} d_{\mathrm{ridge}}) = O(d_{\mathrm{cell}}^{2}).
-\end{equation*}
-
-The analyses given above give an indication of the computational and space complexity of the incremental algorithm as a whole.
-However, it is worth noting that in realistic cases the algorithm fares far better than in these worst-case scenarios: the number of cells that have a certain smallest vertex is normally far lower than the total number of cells in the complex, most of their darts are not embedded at the smallest vertex, and from these darts most identity comparisons will fail long before reaching the end of their canonical representations.
-
-Finally, one more nuance can affect the performance of this approach.
-When two connected components of darts with incompatible orientations have to be joined, the orientation of one of these has to be reversed.
-This is easily done by obtaining all the connected darts of one of the connected components, preferably the one that is expected to be smaller, and reversing their orientation 2-cell by 2-cell.
-Every dart $d$ in a 2-cell is then $1$-sewn to the previous dart in the polygonal curve of the 2-cell (\ie\ $\beta_{1}^{-1}(d)$).
-A group of $n$ darts can thus have its orientation reversed in $O(n)$ time.
-This is not a problem in practice since GIS datasets generally store nearby objects close together, but if a cell complex is incrementally constructed in the worst possible way, \ie\ creating as many disconnected groups as possible, this could have to be repeated for \emph{every} cell of every dimension, creating a very inefficient process.
-
-\section{Experiments}
-\label{se:incremental-experiments}
-
-\subsection*{Simple comparisons with valid primitives}
-
-The CGAL Linear Cell Complex package provides functions to generate a series of primitives (line segments, triangles, quadrangles, tetrahedra and hexahedra) which are known to be created with correct geometry and topology, and can then be sewn together to generate more complex models.
-Models constructed in this manner were thus created independently and compared to those incrementally constructed using the method presented in this chapter.
-By using the approach shown in \refse{se:ndqueries}, it was possible to validate that they were equivalent.
-
-\subsection*{A tesseract}
-
-In order to present an example in more than three dimensions, a tesseract was also incrementally constructed using the approach presented in this chapter, which is shown in \reffig{fig:tesseract-darts}.
-A tesseract is a 4-cell bounded by 8 cubical 3-cells, each of which is bounded by 6 square 2-cells.
-It thus consists of one 4-cell, 8 3-cells, 24 2-cells, 32 1-cells and 16 0-cells.
-\marginpar{
-\captionsetup{type=figure}
-\centering
-\subfloat[]{\includegraphics[width=\marginparwidth]{figs/tesseract2}} \\
-\subfloat[]{\includegraphics[width=\marginparwidth]{figs/tesseract3}} \\
-\subfloat[]{\includegraphics[width=\marginparwidth]{figs/tesseract}}
-\caption[A tesseract as a combinatorial map]{A tesseract as a combinatorial map: (a) the darts of its 7 inner cubes, (b) the darts of its 8 cubes, and (c) all of its darts shown together.}
-\label{fig:tesseract-darts}
-}
-
-Using the approach presented here, an empty 0-cell index is first created.
-Then, the 16 vertices of the tesseract, each vertex $p_{i}$ being described by a tuple of coordinates $(x_{i},y_{i},z_{i},w_{i})$, were created as $p_{i}=\texttt{make\_0\_cell(}x_{i},y_{i},z_{i},w_{i}\texttt{)}$, which returns a unique dart embedded at each location that is also added to the 0-cell index.
-At this point, the algorithm has built an unconnected cell complex consisting solely of 16 completely free darts.
-
-An empty index of 2-cells is then created.
-Each of the tesseract's 24 square facets are then built based on their vertices as $f_{i}=\texttt{make\_2\_cell(}p_{j},p_{k},p_{l},p_{m}\texttt{)}$, which 1-sews (copies of) these darts in a loop and returns the dart embedded at the smallest vertex of the facet.
-These are added to the index of 2-cells.
-Since every vertex is used in 6 different 2-cells, each dart would be copied 5 times.
-The cell complex at this point thus consists of 24 disconnected groups of 4 darts each.
-
-Next, an empty index of 3-cells is created and the index of 0-cells can be deleted.
-For each of the 8 cubical 3-cells, a function call of the form $v_{i}=\texttt{make\_3\_cell(}f_{j},f_{k},f_{l},f_{m},f_{n},f_{o}\texttt{)}$ is made.
-At this point, an index of the 1D ridges of each face is built, which is used to find the 12 pairs of corresponding ridges that are then be 2-sewn together.
-When a 3-cell is created, it is added to the index.
-Since every face bounds two 3-cells, each dart is duplicated once again, resulting in a cell complex of 8 disconnected groups of 24 darts each.
-
-Finally, the tesseract is created with the function $t=\texttt{make\_4\_cell(}v_{1},v_{2},\dots,v_{8}\texttt{)}$.
-This can use the index of 2-cells to find the 24 corresponding pairs of facets that are then 3-sewn to generate the final cell complex.
-
-The validity of this object was tested by checking whether it formed a valid combinatorial map, testing whether each cube was identical to a cube created with the Linear Cell Complex package, and manually verified the $\beta$ links of its 192 darts.
-
-\subsection*{2D+scale data}
-
-In order to test the incremental construction algorithm and its applicability to data incorporating non-spatial characteristics, a few 2D+scale datasets from \citet{Meijers11} using ATKIS data\footnote{\url{http://www.bkg.bund.de/nn_147094/SharedDocs/Download/Barrierefreie-Textversionen/EN-InfoMaterial/EN-Text-Vector-Data.html}}, were also incrementally constructed.
-As shown in \reffig{fig:utm}, these datasets model the generalisation of a planar partition as a set of stacked prisms.
-Both of the simple datasets of this figure were created successfully in under a second.
-\marginpar{
-\captionsetup{type=figure}
-\centering
-\subfloat[]{\includegraphics[width=\marginparwidth]{figs/utm}} \\
-\subfloat[]{\includegraphics[width=\marginparwidth]{figs/utm2}}
-\caption[Simple 2D+scale datasets]{Simple 2D+scale datasets from \citet{Meijers11}, which represent the generalisation of a planar partition by merging areas.
-The dataset shown in (a) has realistic scale intervals such that the generalisation operations are performed at scales that depend on the area of a polygon, while the dataset in (b) uses equally spaced generalisation operations.}
-\label{fig:utm}
-}
-
-A larger dataset, shown in \reffig{fig:atkis} and consisting of 698 polyhedra with a total of 457 185 faces, was used as a benchmark to test the performance of the algorithm.
-This dataset was processed without errors in roughly 30 minutes, including validation tests to ensure that every face created was a valid combinatorial map and that the faces of a volume formed a closed quasi-manifold.
-\begin{figure}[bp]
-\includegraphics[width=\linewidth]{figs/atkis}
-\caption[A large 2D+scale dataset]{A large 2D+scale dataset from \citet{Meijers11}, which uses equally spaced generalisation operations that merge two adjacent polygons.}
-\label{fig:atkis}
-\end{figure}
-
-In this latter dataset, an additional test was made using its first 250 polyhedra, which lie on the top of \reffig{fig:atkis}, comparing the time used for the construction of vertices, faces and volumes with and without the use of indices.
-The results of both methods were equivalent using the approach shown in \refse{se:ndqueries}.
-On average, using indices resulted in a faster vertex construction time by a factor of 2 200, faster face construction by a factor of 56 and faster volume construction by a factor of 38.
-However, as \reffig{fig:construction-times} shows, these speed gains are not uniform throughout the 250 polyhedra.
-The speed gained from using an index on the vertices increases roughly linearly on the number of constructed vertices, while that gained on from the faces index remains roughly constant between a factor of 50 and 60, and that gained from the volumes index tends to slowly increase as well.
-\begin{figure*}[tbp]
-\centering
-\subfloat[]{\includegraphics[width=0.33\linewidth]{figs/construction-vertices}\label{subfig:construction-vertices}}
-\subfloat[]{\includegraphics[width=0.33\linewidth]{figs/construction-faces}\label{subfig:construction-faces}}
-\subfloat[]{\includegraphics[width=0.33\linewidth]{figs/construction-volumes}\label{subfig:construction-volumes}}
-\caption[Construction time speed-up from the use of indices]{Construction time speed-up from the use of indices on the (a) vertices, (b) faces and (c) volumes.}
-\label{fig:construction-times}
-\end{figure*}
-
-\section{Conclusions}
-\label{se:incremental-conclusions}
-
-Creating computer representations of higher-dimensional objects can be complex.
-Common construction methods used in 3D, such as directly manipulating combinatorial primitives, or using primitive-level construction operations (\eg\ Euler operators \citep{Mantyla88}), rely on our intuition of 3D geometry, and thus do not work well in higher dimensions.
-It is therefore all too easy to create invalid objects, which then cannot be easily interpreted or fixed.
-
-The incremental construction method proposed in this section follows a completely different approach, which has a solid underpinning in the Jordan-Brouwer separation theorem \citep{Lebesgue11,Brouwer11}.
-By exploiting the principles of boundary representation, it constructs an $i$-cell based on a set of its bounding $(i-1)$-cells.
-Since individual $(i-1)$-cells are easier to describe than the $i$-cell, it thus subdivides a complex representation problem into a set of simpler, more intuitive ones.
-The method can moreover be incrementally applied to construct cell complexes of any dimension, starting from a set of vertices in $\mathbb{R}^n$ as defined by a $n$-tuple of their coordinates, and continuing with cells of increasing dimension---optionally creating edges from vertices, then faces from vertices or edges, volumes from faces and so on.
-
-While a set of $(i-1)$-cells bounding an $i$-cell can be said to already form a complete representation of an $i$-cell, this is not sufficient for its representation in a topological data structure, which requires the topological relationships between the $(i-1)$-cells to be computed.
-The incremental construction algorithm proposed in this section thus computes the relationships that are required for two data structures: generalised or combinatorial maps.
-However, these relationships are also applicable to most other data structures.
-
-The algorithm is efficient due to its use of indices using the lexicographically smallest vertex of every cell per dimension, as well as an added index using the lexicographically smallest vertex of the bounding ridges of the cell that is being built.
-It generates an $i$-cell in $O(d^{2})$ in the worst case, with $d$ the total number of darts in the cell.
-However, it fares markedly better in real-world datasets, as cells do not generally share the same lexicographically smallest vertex.
-By checking all matching ridges within a cell's facets, the algorithm can optionally verify that the cell being constructed forms a combinatorially valid quasi-manifold, avoiding the construction of invalid configurations.
-
-A publicly available implementation of the algorithm has been made based on CGAL Combinatorial Maps, and its source code has been released under a permissive licence.
-It is worth noting that it is one of very few general-purpose object construction methods that has been described and implemented for four- or higher-dimensional cell complexes.
-
-The implementation has been tested with simple 2D--4D objects, as well as with large 2D+scale datasets from \citet{Meijers11}.
-The constructed objects were tested to verify that they form valid combinatorial maps.
-The small objects were also manually inspected, visualised, and where possible, they were compared with equivalent objects known to be valid using the method discussed in \refse{se:ndqueries}.
-
-While the incremental construction operation as described in this chapter works only with perfect data, small modifications could make it applicable to additional configurations.
-For instance, merging adjacent cells that can be perfectly described by a single cell with linear geometry (\eg\ collinear edges and coplanar faces) as a preprocessing step can be used to handle cases where cells are subdivided only on one side of a boundary.
-Snapping points together can solve several common invalid configurations, such as those described in \refch{ch:cleaning} and in \citet{Diakite14}.
-
-Finally, the logical step forward at this point would be the use of the incremental construction algorithm for the creation of large higher-dimensional datasets.
-However, since to the best of my knowledge there are no large space-filling higher-dimensional datasets currently available---without even considering any validity criteria---, such tests could not be conducted within this thesis.
-The generation of such a higher-dimensional dataset is thus a necessary first step in this direction and is considered as a related piece of future work.
diff --git a/work_report/introduction.tex b/work_report/introduction.tex
deleted file mode 100644
index f834448..0000000
--- a/work_report/introduction.tex
+++ /dev/null
@@ -1,207 +0,0 @@
-% !TEX root = thesis.tex
-
-\chapter{Introduction}
-\label{ch:introduction}
-
-% Spatial information
-
-\emph{Spatial information} describes the location of objects in space and the relationships between them.
-Within this thesis the emphasis is on \emph{geographic} information as represented in a \emph{computer}, which uses similar techniques but narrows this definition to information that is about the real world and at a human-to-Earth scale, using abstracted digital representations of real-world entities such as terrain, cities, roads and buildings.
-These entities and the relationships between them are defined using sets of interlinked computer primitives.
-Because of this, spatial information forms a necessary component of any computer model of the world as we know it at any significant level of detail.
-
-% GIS research
-
-The core of the research carried out in this thesis is concerned with \emph{geographic information systems (GIS)}\footnote{Within this thesis, I always use `GIS' and not `GISs'.
-This is partly because of aesthetics (GISs reads badly and hears worse), but also because I would argue that current GIS are not really systems but disparate collections of methods, tools and processes.
-As such, when I write about GIS I rarely refer to systems and most often use the word as a modifier rather than a noun.}, which produces tools to create, manipulate, analyse and visualise the digital objects that are inherent in these abstract representations of the world.
-Compared to other software categories that also allow us to model and manipulate objects that are represented geometrically, such as those used in computer-aided design (CAD) and geometric modelling, GIS tools stand out as being \emph{remarkably generic} \citep{Coppock91,Gold06}.
-GIS are used equally to manually build objects by applying interactive drawing operations, to semi-automatically create full models from raw acquired data, to manage large collections of heterogeneous datasets and keep them up to date, or as interactive point-and-click environments to query the attributes of and perform simple calculations on existing datasets.
-Because of this genericity, GIS are expected to support a large number of different data formats from multiple sources and a wide variety of operations---all while solving problems in a mix of 2D and 3D and preserving the key characteristics of sometimes mutually incompatible computer representations.
-\emph{Rather than attempting to find the best solution on input fulfilling strict conditions, GIS tools are expected to make a best effort to obtain a good solution on the often invalid data that is available}.
-This thesis follows this philosophy to a large extent.
-
-% 2D representations in GIS
-
-For historical and practical reasons, current GIS mostly use simple 2D representations \citep{ESRITopology,SimpleFeatures1}, which are relatively easy to use and efficient, essentially consisting of sets of linked points, lines and polygons.
-Their efficiency is due to the fact that they can rely on many strong properties that are intrinsic to 2D objects.
-For example, one such property is that it is possible to define a natural order for the points around a closed polygonal curve, as shown in \reffig{fig:loop},
-\marginpar{
-\captionsetup{type=figure}
-\includegraphics[width=\marginparwidth]{figs/loop}
-\caption{A polygon as a cycle of points}
-\label{fig:loop}
-}
-and so a polygon can be represented as a sequence of points that form a cycle along its boundary \citep{Jordan87}, which are implicitly connected by line segments between each consecutive pair.
-Another such property is based on planar partitions---sets of polygons that form a subdivision of the plane---such as the one in \reffig{fig:corine}.
-\marginpar{
-\captionsetup{type=figure}
-\includegraphics[width=\marginparwidth]{figs/corine}
-\caption[The polygons in the CORINE dataset around Delft]{The polygons in the CORINE\protect\footnotemark\ dataset in the area around Delft \citep{CEC95}}
-\label{fig:corine}
-}
-\footnotetext{\url{http://www.eea.europa.eu/publications/COR0-landcover}}
-Since in a planar partition there are two polygons incident to any edge (except those bordering the exterior), a complete planar partition can be stored easily as a set of edges where every edge is linked to two other edges and records the polygons that lie on each of its two sides \citep{Peucker75}.
-
-% 2D operations -> slowly start with problem
-
-2D GIS are also able to take advantage of a great number of existing techniques that are based on 2D representations, such as those that are used to model the flow of water over a terrain \citep{vanKreveld97} or to combine multiple maps into one (\ie\ a map overlay) \citep[\S{}2.3]{deBerg08}.
-Moreover, these techniques have been developed and improved over decades, whereas any change in representation would require the development of new accompanying techniques in order to be truly useful.
-
-% 3D? Not really
-% TODO: Weird space between the figures above and below in list of figures
-
-The aforementioned advantages of 2D representations mean that even `3D' GIS usually mimic the third dimension by using a so-called 2.5D structure, essentially treating the third dimension as a simple attribute that is attached to each object \citep{Raper89}, or represent individual 3D objects only implicitly through the 2D surface that separates their interior from their exterior \citep{Edmonds60,Baumgart75}, as the cube in \reffig{fig:brep}, rather than as true solid objects.
-\marginpar{
-\captionsetup{type=figure}
-\includegraphics[width=\marginparwidth]{figs/brep}
-\caption{A cube represented as the 6 square faces that bound it}
-\label{fig:brep}
-}
-These solutions are compromises, as they limit the type of geometries that can be represented and complicate the storage of the relations that exist between 3D objects.
-
-% Time/scale, also 2D
-
-Another important consequence is that when non-spatial characteristics that have a strong link to space, such as time and scale, are integrated in a GIS, they are usually implemented using similar adaptations of 2D representations.
-For example, spatiotemporal GIS keep multiple representations of 2D structures \citep{Armstrong88}, each at a different point in time, or a list of changes per object \citep{Worboys92,Peuquet94}, while multi-scale datasets generally consist of independent datasets for each scale with some common identifiers that link objects between datasets \citep{Friis-Christensen03,Stoter14}.
-
-% Limits 3D operations
-
-The use of 2D representations also limits the capabilities of GIS software, as the techniques that can be implemented on top of these 2D representations cannot make full use of the potential of 3D spatial information \citep[Ch.~3]{Zlatanova00}.
-For instance, current GIS are largely unable to perform complex manipulations of 3D objects or to compute geometric operations between multiple 3D objects, forcing users to perform such functions in 3D modelling software.
-These examples are notable as equivalent functionality in 2D is widespread in 2D GIS and expected by its users.
-
-% nD approach -> solution
-
-A potential solution to solve the representation problems of 3D, spatio-temporal and multiscale data is opting out of further ad hoc adaptations of 2D structures.
-Instead, this thesis shows that it is possible to represent certain parametrisable characteristics as additional dimensions in the geometric sense, as shown in \reffig{fig:axes}, such that real-world (0D--3D) entities are modelled as \emph{higher-dimensional objects embedded in higher-dimensional space} \citep{vanOosterom10}.
-\marginpar{
-\captionsetup{type=figure}
-\includegraphics[width=\marginparwidth]{figs/axes}
-\caption{Five dimensions based on 3D space, time and scale}
-\label{fig:axes}
-}
-A building existing over a time span and stored at a variety of scales on a computer could thus be represented as a single 5D object.
-
-% Why?
-
-The \emph{higher-dimensional geographic information modelling} approach is well grounded in long-standing mathematical theories, such as the setting of coordinates to space \citep{Descartes37}, and theories of higher-dimensional geometry \citep{Riemann68} and topology \citep{Poincare95}.
-It also opens the door for new, more powerful techniques and practical applications.
-For example, these $n$-dimensional representations could be used to ensure that an object is consistent along all dimensions (\eg\ a building at different points in time or levels of detail), or to analyse its relations to other objects along all dimensions (\eg\ whether two moving objects were ever adjacent).
-
-% Scientific gap
-
-There is a large body of related work on the representation of abstract $n$-dimensional objects in mathematics and computer science \citep{Brisson93,Lienhardt94}, as well as a few instances of work on its application to GIS \citep{Karimipour10}.
-However, by and large \emph{higher-dimensional representations remain unanalysed in the context of geographic information}.
-For instance, it is necessary to see how abstract representations can be made fit for use with real-world objects, which have aspects that are difficult to handle, \eg\ certain kinds of geometries (\reffig{fig:nonmanifold})%
-\marginpar{
-\captionsetup{type=figure}
-\includegraphics[width=\marginparwidth]{figs/nonmanifold}
-\caption[A non-manifold shape]{This non-manifold shape cannot be handled properly in many representations.}
-\label{fig:nonmanifold}
-}%
-, holes (\reffig{fig:torus})
-\marginpar{
-\captionsetup{type=figure}
-\includegraphics[width=\marginparwidth]{figs/torus}
-\caption{The top and bottom faces of this torus have holes in them.}
-\label{fig:torus}
-}
-and complex semantics.
-Additionally, making this approach attractive in practice requires the development of high-level techniques to construct, analyse and visualise higher-dimensional geographic objects.
-Finally, there are significant technical issues involved in the realisation of these representations and techniques into a computer implementation.
-All of these aspects, which in short encompass \emph{concepts, representations, operations and visualisation}, are tackled in this thesis.
-
-\section{Research objective and scope}
-\label{se:objective}
-
-In order to determine whether the \emph{higher-dimensional modelling of geographic information} is worthwhile, and if so, the conditions under which it makes sense to follow it, it is necessary to first gain a greater understanding of the entire modelling process in higher dimensions as well as its technical consequences.
-The main aim of this thesis is therefore to gain this understanding by \textbf{realising the fundamental aspects of a higher-dimensional Geographic Information System}, including the development of the necessary modelling concepts that are analogous to familiar modelling concepts in 2D/3D GIS, the use of appropriate higher-dimensional representations, and the development of simple higher-dimensional operations.
-While not every aspect of a higher-dimensional GIS can be fully developed within the timeframe allotted for this thesis, prototype-level working software is created whenever possible and tested using real-world higher-dimensional datasets\footnote{In this instance, real-world does not imply tackling all the problems inherent in using the entirety of the very large, complex and invalid datasets that are currently available.
-Due to the experimental nature of this thesis, small subsets of these real-world datasets that showcase specific problems are necessarily chosen.}.
-In this sense, this thesis does not intend to prove that the higher-dimensional spatial modelling approach is better or worse than existing approaches, but instead to highlight its advantages and disadvantages so as to better evaluate it for future applications.
-
-\section{Structure of this thesis}
-\label{se:about}
-
-This thesis comprises two main parts, each of which contains a few chapters and which respectively cover methods to solve problems inherent in: (i) representing objects in arbitrary dimensions, and (ii) creating and manipulating such objects.
-After these, there are some independent chapters that fall outside the two parts, covering practical aspects such as the processing of real-world (invalid) data, implementation details and how the results of all chapters come together.
-All chapters are described in detail below.
-
-% \clearpage
-
-\begin{description}
-
-% Part I
-% \textbf{\refpa{pa:representation} \nameref{pa:representation}}
-\item[\refpa{pa:representation} \nameref{pa:representation}] \
-
-\begin{description}
-
-\item[\refch{ch:modelling-mathematics}]
-introduces the mathematical concepts and background behind spatial data modelling.
-
-\item[\refch{ch:modelling-background}]
-describes and analyses the state of the art in the 2D and 3D modelling of space, time, scale and attributes.
-% , doing so with a view to possible higher-dimensional extensions.
-It concludes by listing some of the shortcomings of current approaches.
-
-\item[\refch{ch:nd-modelling}]
-presents the higher-dimensional modelling paradigm that is the basis of this thesis, which aims to solve many of the problems alluded to in \refch{ch:modelling-background}.
-It also describes and evaluates the higher-dimensional representations that can be used in order to realise this approach, which take the form of $n$-dimensional data models and structures.
-
-\end{description}
-
-\clearpage
-% Part II
-% \textbf{\refpa{pa:operations} \nameref{pa:operations}}
-\item[\refpa{pa:operations} \nameref{pa:operations}] \
-
-\begin{description}
-
-\item[\refch{ch:operations-background}]
-presents a few fundamental operations for some of the data structures described in \refch{ch:nd-modelling}.
-These are used in order to build the higher level operations described in the other chapters within \refpa{pa:operations}.
-
-\item[\refch{ch:extrusion}]
-describes $n$-dimensional extrusion, an extension of the well-known 2D to 3D extrusion operator in GIS.\@
-It can be used to generate simple prism-shaped $n$-dimensional objects from an $(n-1)$-dimensional space partition by assigning to each $(n-1)$-dimensional object a range along which it exists.
-
-\item[\refch{ch:incremental-construction}]
-describes incremental construction, an operation which is able to generate arbitrary $n$-dimensional objects based on defining their $(n-1)$-dimensional boundary.
-It is equivalent to the generation of the topological relationships that exist between a set of $(n-1)$-dimensional objects.
-
-\item[\refch{ch:linking-lods}]
-shows how a higher level construction operator that links a series of 2D or 3D models can be created.
-This enables the construction of 4D models from real-world 3D city models covering the same region.
-
-\item[\refch{ch:slicing}]
-explains how 2D and 3D information can be extracted from a higher-dimensional representation by selecting appropriate portions of the data (\eg\ cross-sections) and projecting it to 2D/3D space.
-
-\end{description}
-
-% \bigskip
-% \textbf{\refpa{pa:implementation} \nameref{pa:implementation}}
-% \begin{description}
-
-\item[\refch{ch:cleaning}]
-explains the main data validation and repair techniques that are used to create 2D/3D/$n$D objects and space partitions out of real-world GIS datasets, which often have defects that impede their usage.
-By obtaining clean geometric models, these techniques enable the use of the higher-dimensional modelling approach in practice.
-
-% \end{description}
-
-% Conclusions
-% \bigskip
-\item[\refch{ch:conclusions}]
-concludes this thesis by explaining the achievements of this PhD project and highlighting the main challenges to further develop a higher-dimensional GIS.\@
-It contains an outlook on how higher-dimensional modelling can be used in GIS as well as some suggestions for future work.
-
-\item[\refap{ch:implementation}]
-describes the most relevant implementation details concerning the representations and operations from the previous chapters, such as the use of various software libraries, robust geometric operations and programming techniques.
-
-\clearpage
-\item[\refap{ch:dictionary}]
-contains a short dictionary of terms for higher-dimensional GIS.\@
-As the terminology used in 2D GIS, 3D GIS, CAD, geometric modelling and other related fields can be different and is often used inconsistently and rather loosely, the appendix is intended for use as a general reference and for the better understanding of the thesis.
-
-\end{description}
diff --git a/work_report/invitation.png b/work_report/invitation.png
deleted file mode 100644
index 4343354..0000000
Binary files a/work_report/invitation.png and /dev/null differ
diff --git a/work_report/license.txt b/work_report/license.txt
new file mode 100644
index 0000000..67de19a
--- /dev/null
+++ b/work_report/license.txt
@@ -0,0 +1 @@
+Please take a look at the license in README.org!
diff --git a/work_report/linking-lods.tex b/work_report/linking-lods.tex
deleted file mode 100644
index cbdaf56..0000000
--- a/work_report/linking-lods.tex
+++ /dev/null
@@ -1,386 +0,0 @@
-% !TEX root = thesis.tex
-
-\chapter{Linking corresponding 3D models}
-\label{ch:linking-lods}
-
-\refchs{ch:extrusion} and~\ref{ch:incremental-construction} presented in detail two low-level construction algorithms for $n$D objects, both of which operated on level of individual primitives.
-These are valuable in their own right, but in order to ease the use of higher-dimensional operations in practice, it is necessary to develop high-level operations based on them which can actually be used by practitioners.
-This chapter thus describes at a conceptual level how one such high-level operator can be defined, which creates a 4D representation from a series of existing 3D representations at different levels of detail.
-
-The chapter starts by introducing some background in \refse{se:linking-background}, explaining the motivation behind such an operation and covering the principles of linking operations with 2D/3D objects.
-\refse{se:linking-methodology} describes four linking schemes that can be used to construct 4D models from a set of 3D objects, discussing the advantages and disadvantages of each method in terms of their feasibility in practice and of the properties that the 4D model would have.
-\refse{se:linking-examples} presents several use cases to demonstrate how the different schemes result in objects with different characteristics, where the best scheme can be considered to be application-dependent.
-\refse{se:concrete-example} shows a concrete example in detail, implementing a use case that combines most of the linking schemes from \refse{se:linking-methodology}.
-\refse{se:linking-conclusions} concludes the chapter with a discussion of the further possibilities of this method.
-
-Most of this chapter is based on the paper:
-\begin{itemize}
-\paperijgind%
-\end{itemize}
-
-\section{Motivation and background}
-\label{se:linking-background}
-
-3D city models of the same region are often created at multiple levels of detail (LODs).
-For instance, in the CityGML standard \citep{CityGML2} five discrete LODs are defined (\reffigp{fig:citygml-filip}), which range from the 2D footprint of the building up to a representation where the windows, doors and walls and even indoor objects are all modelled in detail.
-This allows a user to choose the most appropriate LOD for a given application, balancing the better results that are obtainable using more detailed models with the higher computational requirements that are necessary to obtain them \citep{Biljecki14}.
-
-However, the creation of these models is a complex task that needs to be performed continuously, as 3D city models need to be kept up to date \citep{Zlatanova04,Kolbe05}.
-Given the large size and complexity of current 3D city models, it can be very beneficial to have incremental updates to a model which affect only a building and its immediate surrounding area \citep{Dollner06}.
-These can take place as buildings and other city objects (\eg\ roads, utility infrastructure, city furniture, etc.) are built, modified and destroyed.
-
-In order to apply such incremental update processes to 3D city models at multiple LODs, links between related objects are crucial.
-Given an object at a certain LOD, links usually point to its incident and adjacent objects at the same LOD (\ie\ the topological relationships that are most common in GIS), as well as to its \emph{corresponding} objects at other LODs, even when these objects are of different dimension (\eg\ when a thin polyhedron in a higher LOD is collapsed to a polygon in a lower LOD).
-These links can then be used to propagate changes to other LODs \citep{vanOosterom10} or to apply consistency checks to new or newly altered objects \citep{Groger11a}, among other operations that are part of a robust update process.
-
-In theory, a series of LODs might be derived from an automatic generalisation process \citep{Weibel97} and thus the exact correspondences between objects can be already known, but as discussed in \refse{se:modelling-scale}, fully automatic 3D generalisation is very complex and has not yet been achieved in practice.
-The different LODs of a model are therefore usually acquired independently, collected with different techniques, often for different purposes, and thus the resulting representations do not necessarily have easy-to-identify correspondences.
-The same object can be slightly displaced at different LODs, an object can be an aggregate of other objects (think of a terraced house: either each house is individually represented as a volume or one single volume is used for the whole row), or can be modelled in an entirely different way.
-In fact, as shown in \reffig{fig:bksep}, it is possible that there are no common geometries (\ie\ 0-, 1-, 2-, or 3-cells with the same geometry) across a series of models at different LODs.
-\marginpar{
-\captionsetup{type=figure}
-\centering
-\includegraphics[width=\marginparwidth]{figs/bksep}
-\caption[Two LODs of a building footprint]{Two LODs of a building footprint. Note that there are no vertices, edges or faces with the same geometry in both LODs, and that many primitives in the higher LOD are equivalent to a single one in the lower LOD.}
-\label{fig:bksep}
-}
-
-In order to join multiple separate representations, stored as independent datasets, it is therefore first necessary to find the correspondences between (equivalent) objects at different LODs.
-As described in 2D by \citet{Hampe03}, when an automatic generalisation process is used, the objects can be directly linked as they are being generalised.
-Otherwise, the correspondences must be inferred.
-In 2D, they are usually inferred using \emph{map matching} methods, which can take into account the geometry \citep{Veltkamp01}, topology and semantics of and between the objects \citep{Devogele96}.
-\citet{Devogele96} does this in three steps: (1) manually finding correspondences between semantic classes; (2) resolving conflicts; and (3) matching objects using geometry, topology and semantics.
-\citet{Zhang14} matches features by computing a compatibility coefficient, derived from the similarity in their geometry and that of their neighbours.
-
-After the correspondences have been found, the corresponding representations of an object are linked together.
-These links across LODs usually take the form of common IDs at the 2D or 3D object level.
-However, more advanced linking structures developed for this exact purpose do exist and are often used in 2D---some of these were mentioned in \refse{se:modelling-scale}: hierarchical planar subdivisions \citep{Filho95}, multi-scale partitions \citep{Rigaux95}, nested maps \citep{Plumer97} and topological generalised area partitioning trees \citep{vanOosterom05}.
-
-\section{Suggested methodology and current issues}
-\label{se:linking-methodology}
-
-The methods used to identify correspondences between 2D objects and the data structures used to store these correspondences, mentioned in \refse{se:linking-background}, do not readily extend to higher dimensions.
-While map matching methods can identify (to a limited extent) the correspondences between 2D or 3D objects, they do not take into account the lower-dimensional correspondences between the 0D--2D cells bounding them.
-Linking corresponding objects using only common IDs at the 2D or 3D object level is similarly problematic, as it is difficult to store complex correspondence relationships, such as an aggregation of multiple objects into one \citep{Biljecki14}, or those connecting the points, line segments and polygons on the boundary of corresponding 2D or 3D objects.
-
-Based on the higher-dimensional data structures presented in \refch{ch:nd-modelling}, this section presents a sketch of a dimension-independent approach.
-By considering the LOD of a model as a fully independent dimension in the geometric sense \citep{vanOosterom10,Paul11,Stoter12}, it is possible to store all topological relationships between any related objects across all LODs.
-A set of connected 2D polygons at multiple LODs are modelled as a single 3D polyhedron\footnote{Separate polygons might become connected in many different situations, the simplest of which is being joined into a single polygon at one or more LODs.}, as is shown in \reffig{fig:bk}, and a set of connected 3D polyhedra at multiple LODs are modelled as a single 4D \emph{polychoron}.
-Notably, the correspondences between equivalent objects across LODs thus become geometric primitives, making it possible to perform geometric operations with them (\eg\ extracting an intermediate LOD for visualisation purposes) or to attach attributes to them (\eg\ the meaning of these correspondences), just as is done to other geometric primitives.
-\marginpar{
-\captionsetup{type=figure}
-\centering
-\includegraphics[width=\marginparwidth]{figs/bk}
-\caption[Two LODs of a building footprint as a single polyhedron]{Two LODs of a building footprint are stored as a single polyhedron.
-Note that the correspondences between vertices, edges and faces between the LODs are clearly indicated by the vertical edges and faces, and that holes can be similarly handled with additional edges and faces.}
-\label{fig:bk}
-}
-
-In the specific case of a 4D (3D space+LOD) model, a set of 4D objects is modelled as a 4D cell complex embedded in 4D space, where there is an additional LOD axis $l$ and a point in 4D space is defined by a tuple of coordinates $(x,y,z,l)$.
-It is worth noting that this implies that the LOD axis should be properly parametrised, defining quantifiable values for every fixed LOD in a model, or alternatively a function that does so.
-
-The 4D space thus defined is filled with a set of non-overlapping polychora, in which a 3D object (\eg\ a building) at \emph{all} of its different LODs is represented as a single 4D object.
-This 4D object is bounded by a set of volumes, two of them being the object at its lowest and highest LOD, and several lateral ones formed by filling the space between corresponding faces across LODs.
-When a 3D cross-section is extracted from it (\refch{ch:slicing}), these respectively correspond to the volumes and bounding faces of an extracted 3D model.
-
-A 4D model is constructed from a series of existing LODs of a 3D city model in three steps:
-\begin{enumerate}
- \item identifying corresponding 0D--3D cells;
- \item linking them by creating 1D--4D cells connecting them;
- \item using the incremental construction algorithm of \refch{ch:incremental-construction} to build a 4D cell complex using all 0D--4D cells.
-\end{enumerate}
-
-This section describes various methods to identify corresponding cells in different LODs of a 3D object (\refse{ss:identification}), and then presents four linking schemes to construct a 4D model (\refse{ss:linkingrules}).
-As \refse{se:linking-examples} demonstrates, the 4D cells created by the linking schemes are used to construct 4D cell complexes with different properties and shapes.
-
-\subsection{Step 1: Identifying corresponding cells in 3D models}
-\label{ss:identification}
-
-Constructing a 4D model from a sequence of 3D models largely depends on the identification of the corresponding 0-, 1-, 2-, and 3-cells between these 3D models.
-The aim of this identification is to create a mapping between the 3D models that preserves the topological relationships between the elements in the models so as to create a valid 4D model.
-
-Considering 3D models at different LODs, this identification will often result in matching cells of different dimensions, commonly with some cells in the 3D model at the highest LOD being matched to cells of lower dimension in the 3D model at the lowest LOD\@.
-Also, these correspondences will often not result in a one-to-one mapping: groups of adjoining cells in one model, most often in the one at the highest LOD, will commonly be matched to a single cell in the other model.
-
-The identification of matching cells should be done using a combination of the following, arguably in order of preference:
-
-\begin{description}
-\item[Attributes]
-Using the semantic information stored in the cells, when it is available.
-For instance, matching two cells that are known to be equivalent through the use of IDs, or if knowledge is kept during the generalisation process, matching a cell with one that is known to be a simplified version of it.
-
-\item[Topology]
-When there is an isomorphism between two cells (\refse{ss:operations-maps}) that additionally preserves all the topological relationships between them (such as the facet/ridge comparisons used in \refch{ch:incremental-construction}), the isomorphism between two cells already gives a matching between them, although it might be important to check that the isomorphism is compatible with the matching of the other cells in the model and with some geometric constraints (\eg\ a maximum distance between matched cells).
-Relevantly and as used elsewhere in this thesis, \citet{Gosselin11} describe how to whether two cells or maps are isomorphic in any dimension.
-Another more complex possibility is using subgraph isomorphism on unmatched portions of a generalised map \citep{Eppstein99}.
-The latter option should lead to partial matches and thus better results, but this problem is known to be NP-complete and so it is unlikely to be applicable to large datasets.
-
-Another relevant way to use topology is to use the topological relationships between cells in order to iteratively infer matchings for the cells that remain unmatched after applying some other algorithm \citep{Hampe03}.
-Such a case is explained more concretely in the example of \reffig{fig:shape}.
-
-\item[Geometry]
-Using geometric computations, such as those based on computing similarity metrics, simply matching unmatched cells in one model to their nearest neighbour in another model, or attempting to minimise the Earth Mover's Distance (EMD) \citep{Rubner98} between them.
-It is however important to compute these matches using constraints that generally preserve the relative positions and topological relationships between the cells.
-For instance, a greedy algorithm could match cells iteratively, cascading these matches to adjacent cells (in all models) or rejecting matches that would violate a geometric or topological constraint.
-\end{description}
-
-Another possibility to assist when matching cells is to allow \textbf{splitting} an $i$-cell into multiple $i$-cells by adding cells of lower dimensions in a manner that does not alter the geometry of the cell.
-This effectively loosens the requirement that two cells be isomorphic by modifying their topology, creating a one-to-one mapping between the two cells.
-For instance, a face can be split into multiple faces by adding a vertex in its interior and creating edges that link it to some of the vertices of the face\footnote{Similar procedures can be defined for the cells of any dimension.}.
-
-\textbf{Holes} deserve a special mention, as they can also be used to decide how to match cells.
-When holes (of any dimension) are present at a higher LOD but disappear at the immediate lower LOD, they can be handled appropriately by collapsing them to a nearby vertex such that they do not create any geometric intersections between the cells.
-Another option would be to create an additional point at an appropriate location in the lower LOD\footnote{If this location is in its interior, this is essentially equivalent to a 0D hole.} where it can be collapsed.
-When holes are present in multiple LODs, they should be handled essentially as if they were independent cells, either matching them directly, splitting them, or collapsing parts of them to match each other.
-
-\subsection{Step 2: Linking corresponding cells}
-\label{ss:linkingrules}
-
-Based on the matches that were found between cells, which mathematically define a map between the 3D cell complexes of the 3D models, they are then linked to construct a 4D cell complex.
-For this, it might be necessary to create or modify 0D--3D cells in the input cell complexes, as well as to create new 1D--4D cells that lie \emph{between} the 0D--3D cell complexes.
-The resulting 4D cell complex is then embedded in 4D space by assigning new 4D coordinates for every point.
-These 4D points are simply the union of all those in the input 3D cell complexes with an appended coordinate that refers to the LOD of their originating model.
-Four different basic linking schemes are proposed here, which are shown in \reffig{fig:linkingschemes}.
-\begin{figure}[tb]
- \begin{center}
- \subfloat[Simple linking\label{fig:ls1}]{%
- \includegraphics[width=0.45\linewidth]{figs/linkingscheme1}
- }
- \quad
- \subfloat[Unmatched are collapsed\label{fig:ls2}]{%
- \includegraphics[width=0.45\linewidth]{figs/linkingscheme3}
- }
-
- \subfloat[Modification of topology\label{fig:ls3}]{%
- \includegraphics[width=0.45\linewidth]{figs/linkingscheme2}
- }
- \quad
- \subfloat[Matching all to existing\label{fig:ls4}]{%
- \includegraphics[width=0.45\linewidth]{figs/linkingscheme4}
- }
- \end{center}
- \caption[Four linking schemes]{The four linking schemes for three LODs of a house, here depicted in 2D. The objects that would obtained by slicing between the LODs can be seen in dashed green contours; the red dashed lines reflect the cells that need to be added and split in order to ensure a valid 3D (2D+LOD) cell complex.}
-\label{fig:linkingschemes}
-\end{figure}
-
-
-%%%
-\subsubsection{Method 1: Simple linking of corresponding cells}
-\label{sss:method1}
-
-Links are constructed between the corresponding cells of an object at two different LODs, and if a cell has no corresponding cell then it is ignored.
-While this makes it possible to easily construct a 4D cell complex in the cases where all cells in the lower LOD model have a corresponding cell in the higher LOD model, when this is not the case, the result will consist of an incomplete 4D cell complex---possibly without any 4-cells.
-
-To ensure a complete one, cells often need to be split (\eg\ those separated by the red dotted line in \reffig{fig:ls1}), which can be performed using geometric intersections.
-While this is possible in 3D and tools are readily available (see for instance \citet{Granados03,Hachenberger06}), the generalisation of this scheme to higher dimensions is not easy in practice since no robust intersection tools in more than 3D are available.
-Observe that if a 4D cell complex generated using this method is sliced at an intermediate LOD, the result is exactly that of the lower LOD\@.
-
-
-%%%
-\subsubsection{Method 2: Unmatched cells are collapsed to existing ones}
-\label{sss:method2}
-
-No modifications are made to the 3D models, which is in practice a significant advantage since no complex geometric operations need to be performed and the size of the cell complex will be smaller than that of the one where cells are modified.
-Instead of geometric operations, unmatched cells in the higher LOD model are linked to nearby cells \emph{of a possibly lower dimension} in the lower LOD model while preserving certain geometric and topological constraints (\eg\ preserving adjacency and incidence between cells\footnote{This might need to be tested geometrically rather than topologically, as degenerate cells will often be created with this process.}).
-This implies that some cells will be collapsed (\eg\ an edge can be mapped to a vertex), and the cells must be linked with care to ensure that a valid 4D cell complex is created (\eg\ no two cells should intersect in 4D space).
-
-For instance, assume that the left eave of the roof of the house in the middle LOD model in \reffig{fig:ls2} has been (arbitrarily) matched to the roof of the low LOD model, with the right eave remaining unmatched as no unmatched cells remain in the low LOD model.
-In this case, using the knowledge that the roof and right wall are adjacent in the low LOD model but their corresponding cells (respectively the left eave and right wall) are separated by the right eave in the middle LOD model, the right eave can be collapsed to the common vertex lying between the two (upper right).
-Using such a mapping, the topological relationships between the cells will be preserved, with the exception of those involving the collapsed cells and those incident or adjacent to them.
-
-When the mapping has faults and the resulting 4D cell complex thus has geometric problems (\eg\ intersecting cells), the slicing operation might not have any geometric meaning, but the resulting higher-dimensional model can nevertheless offer other benefits, \eg\ database consistency and the knowledge of some of the equivalences between cells.
-Note that ensuring that cells preserve their topological relationships and form a partitioning of space in 4D is challenging and not fully considered in this thesis.
-Finally, even if a combinatorially and geometrically valid 4D cell complex is constructed, the 3D object obtained by slicing might not be consistent with those in the real world; notice how the chimney in \reffig{fig:ls2} becomes increasingly smaller and closer to the right eave of the roof because of the way the cells have been linked.
-
-%%%
-\subsubsection{Method 3: Modifying the topology}
-\label{sss:method3}
-
-To ensure that there is a mapping between all the cells, it is possible to split or merge cells so that the topology (combinatorial structure) of the objects is identical.
-For instance, operations like removal and contraction \citep{Damiand03} can be used to simplify the more complex object(s) to make them match the simpler one(s) using an iterative process.
-On the other direction, it is possible to first identify for every cell in the lower LOD model one or more corresponding cells in the higher LOD model, then split cells in the lower LOD model so that their topology is the same as in the higher LOD model as the one to which it must be linked.
-
-As an example, considering the lowest LOD in \reffig{fig:ls3}, this implies first finding multiple matches for the roof cells of the lower LOD models, which then need to be split into multiple cells by the insertion of new vertices.
-For instance, these can be located at the closest location that lies on the matched lower LOD cell for every higher LOD cell.
-As this example shows, \emph{all} the representations of an object where this approach is used will result in the same topology.
-This results in increased storage space and the possibility of degenerate cells \eg\ multiple vertices at one location---something that however does not cause any topological problems.
-The geometric operations necessary to split cells can be rather intricate as well.
-Observe that using this method, slicing in \reffig{fig:ls3} results in a different representation of the object: one where it smoothly morphs into the one at lower LOD (\eg\ the tip of the roof is slowly lowered as the LOD decreases).
-
-%%%
-\subsubsection{Method 4: Matching all cells to existing ones}
-\label{sss:method4}
-
-As is the case with \hyperref[sss:method2]{Method 2}, this method does not require modifying the topology of the objects.
-The main difference with it is that cells in the higher LOD model are not necessarily collapsed to a lower dimensional cell in the lower LOD model but are instead matched to one or more cells \emph{of any dimension} while also preserving certain geometric and topological constraints.
-In \reffig{fig:ls4}, observe that the tip of the roof of the middle LOD model (a point) is matched to the roof of the lowest LOD (an edge since this is a 2D representation) and that the 2 edges representing the middle-LOD roof are matched to the two corners of the lower-LOD roof (points).
-Slicing thus creates a truncated roof having 3 edges.
-This can be achieved by matching all cells that have a clear correspondence first, then attempting to match groups of unmatched cells while preserving the topological relationships between cells.
-
-For instance, in \reffig{fig:ls4} it is possible to first match the base and walls of the houses in the lower and middle LOD models, as these have exact equivalences.
-Then, an algorithm could match the remaining vertex and left/right edges in the middle LOD model respectively to the roof edge and left/right vertices.
-Observe that in this process, the tip of the roof of the middle LOD model (a point) is matched to the roof of the lowest LOD (an edge) and that the two eaves of the roof (edges) are matched to the two corners of the roof (points) in the lowest LOD\@.
-Slicing the resulting 4D cell complex creates a truncated roof having 3 edges.
-The matches for the chimney to other elements in \reffig{fig:ls4} are achieved by matching the chimney top to the right eave, and the remaining vertices and edges on its left and right sides respectively to the roof tip and right eave/wall vertices.
-The result is that while the chimney looses resemblance to reality, it slowly converges to the roof in the middle LOD model.
-
-\section{Use cases}
-\label{se:linking-examples}
-
-This section presents practical examples that describe the matching and the linking of cells for a few simple 3D models representing the same object(s) at different LODs.
-
-\subsection{Using Method 1: Simple linking}
-
-\reffig{fig:exsimple} shows an example where two LODs for a building are linked in such a way that only matched cells are involved.
-\begin{figure}[tb]
- \centering
- \includegraphics[width=\linewidth]{figs/exsimple}
- \caption[Simple linking]{Two LODs of a house simply linked and the intermediate LOD obtained.}
-\label{fig:exsimple}
-\end{figure}
-First observe that since the two objects are not isomorphic, some cells are not matched (the ones representing the roof of the higher-LOD model).
-Observe also that the roof of the lower-LOD model has no match in the higher-LOD model.
-Thus, to construct a 4D cell complex, the flat roof geometry has to be added to the higher-LOD model\footnote{Otherwise, there could not be a 4-cell in the 4D model as the top of the house would be open and no subset of $\mathbb{R}^4$ would be enclosed in the model.}.
-Then, the corresponding cells can be linked.
-Although it is possible to generate this 4D model by generating the $(i+1)$-cells that connect a pair of corresponding $i$-cells and linking all of them together, it is probably easier to extrude one cell complex along the range between the two LODs using the method described in \refch{ch:extrusion}.
-This method already generates the proper combinatorial structure of the 4D model, and the final cell complex can be obtained by simply moving the vertices of the face representing the model at the other LOD so as to match the geometry of the other model at its LOD.\@
-Moreover, when a linear cell complex is used and thus only the vertices are storing the geometry of the model, it is only necessary to move some of the vertices: those in the lowest LOD without a corresponding vertex at the same location in the highest LOD.\@
-
-
-%%%
-\subsection{Using Method 2: Collapsing}
-
-\reffig{fig:shape} shows an example with a 3D model at two LODs with differing geometry and topology.
-\begin{figure}[tb]
- \centering
- \includegraphics[width=\linewidth]{figs/shape}
- \caption[Linking by collapsing]{Two LODs of a house with differing geometry and topology are integrated into a 4D model by collapsing cells in the model at the highest LOD.}
-\label{fig:shape}
-\end{figure}
-The 4D model has been obtained by first matching the 2-cells with known correspondences (the left, right, front and back large faces) and inferring that the other faces in the model at the highest LOD (right) should be collapsed based on their adjacency relationships with the matched faces.
-For example, since the front and right faces are adjacent in the lowest LOD but not in the highest LOD, the two faces between them\footnote{Combinatorially, this involves a search for a path between the front and right faces in the map of the model at the highest LOD.\@
-Such a search would be limited to the nodes representing the aforementioned faces and those representing faces that are \emph{not} present in the model at the lowest LOD.} should be collapsed to their common boundary (\ie\ their intersection: the edge between them).
-This example also shows that the topological relationships between the cells are nevertheless preserved with the exception of those that involved collapsed cells.
-The new topological relationships do however connect cells around the former collapsed cells.
-Note that the 3D model resulting from slicing the 4D model created in this way at an intermediate LOD (middle) will be isomorphic to the model at the highest LOD.\@
-
-
-%%%
-\subsection{Using Method 3: Modifying the topology}
-
-\reffig{fig:agg} shows an example of two 3D models being aggregated.
-\begin{figure}[tb]
- \centering
- \includegraphics[width=\linewidth]{figs/agg2}
- \caption[Linking using topology modifications]{Two LODs of two houses being aggregated are integrated into a 4D model by modifying the topology of the model at the lowest LOD so as to match the topology of the model at the highest LOD.}
-\label{fig:agg}
-\end{figure}
-In order to create a 4D model from this situation, the topology of the simpler of the two models is modified, splitting the single volume into equal two adjacent ones, effectively resulting in a cell complex that also has four more vertices, four more edges, and four of its faces split into two.
-Note that the two models are however not isomorphic since the common face of the two houses in the lowest LOD becomes two disconnected faces in the model at the highest LOD, but that if this topological relationship is disregarded, the two models can be correctly matched independently.
-
-%%%
-\subsection{Combination of Methods 2 and 3}
-
-\reffig{fig:link1} shows a more complex example with three LODs which are linked using a combination of schemes: collapsing and modifying the topology of one of the models.
-Most of the cells in the highest LOD can be directly matched to cells in the middle LOD, with the exception of those that are part of the chimney.
-As these comprise a small object, these are simply collapsed to a single point in the middle LOD.\@
-Matching the roof cells in the lowest and middle LODs is however more complex since collapsing it to a point would ignore its adjacency with the body of the house and therefore not preserve its topology.
-The best solution is therefore to modify the topology of the lowest LOD in order to split the top face of the cubic house (which can be inferred to be a roof based on its attributes) into 4 faces, making the model isomorphic to the middle LOD.\@
-\begin{figure}[tb]
- \centering
- \includegraphics[width=\linewidth]{figs/link1}
- \caption[Linking using multiple methods]{Three LODs of a 3D model of a house are integrated into a 4D model by modifying the topology of the model at the lowest LOD and collapsing a part of the model in the highest LOD.}
-\label{fig:link1}
-\end{figure}
-
-%%%
-\subsection{Using Method 4: matching to existing cells}
-
-\reffig{fig:link2} shows two of the LODs of the previous example, but matches the cells of the roof of the house to existing cells rather than modifying their topology.
-After attempting to match corresponding cells, the top face in the lowest LOD and the top four faces in the highest LOD remain unmatched.
-If each top \emph{face} in the highest LOD is collapsed to the closest top \emph{edge} in the lowest LOD (\ie\ the edge that forms the bottom of the triangular face in the highest LOD) and the top \emph{vertex} in the highest LOD (which lies between the faces) is linked to the top \emph{face} in the lowest LOD, a four-sided pyramid is generated.
-Slices from it are shown as four trapezoidal faces in the sliced intermediate LOD.\@
-Then, if the top face in the lowest LOD is collapsed to the top vertex of the highest LOD, another four-sided pyramid is generated.
-A slice from this one is shown as a square face at the top of the sliced intermediate LOD.\@
-\begin{figure}[tb]
- \centering
- \includegraphics[width=\linewidth]{figs/link2}
- \caption[Linking by matching cells]{Two LODs of a 3D model of a house (left and right) are linked despite not being isomorphic, with an intermediate LOD that shows the result of slicing the construction at an intermediate LOD (centre).}
-\label{fig:link2}
-\end{figure}
-
-This particular mapping is notable because it correctly preserves all topological relationships between the cells, does not create additional cells at either LOD, and shows that cells are not necessarily only collapsed from higher LODs to lower LODs.
-Intuitively, the result of this mapping is a set of cells that bound the model along the LOD dimension\footnote{Here is a 3D analogue: considering two arbitrary but parallel `top' and `bottom' polygons, an equivalent mapping would create a set of edges and faces connecting them so as to form a closed polyhedron.}, so that an $i$-cell and a $j$-cell that are matched result in a $k$-cell lying between them, where $k = \max(i, j)+1$.
-Concretely, if for instance a 0-cell (the tip of the roof) is matched to the flat roof (a 2-cell), then the resulting links will create a tetrahedron (a 3-cell).
-Admittedly, the rules needed to generate such a mapping can be quite complex, but the cell complex generated is identical in size to the equivalent model according to the scheme in \reffig{fig:ls2}.
-
-\section{A concrete example}
-\label{se:concrete-example}
-
-In order to show how the linking methods presented in this chapter work in practice, this section shows an implementation of the model from \reffig{fig:link2}.
-It uses CGAL Linear Cell Complexes and the incremental constructor operator described in \refch{ch:incremental-construction}.
-This model was chosen as it uses most of the linking methods discussed in the \refse{ss:linkingrules}:
-the body of the house in both LODs is directly linked (\hyperref[sss:method1]{Method 1}),
-the top face of the house in the lower LOD is collapsed to the tip of the roof in the higher LOD (\hyperref[sss:method2]{Method 2}),
-and the roof vertices/edges in the lower LOD are connected to existing roof edges/vertices in the higher LOD (\hyperref[sss:method4]{Method 4}).
-
-First of all, the 17 vertices of the two 3D models are created as 4D points of the form $(x, y, z, l)$.
-Afterwards, these are first used to define the 35 faces of the model, the faces are used to define the 12 volumes, and the volumes to define the single 4-cell.
-Notice that these cells not only include faces and volumes within each of the two volumes of the input 3D models, but also include some faces and volumes that lie \emph{between} the two, \ie\ having bounding vertices, edges and faces from both input 3D models.
-Excerpts of the code to generate the 4D cell complex are shown in \reffig{fig:code}.
-\newsavebox{\pointsbox}
-\begin{lrbox}{\pointsbox}
-\begin{minipage}{0.42\overflowingheadlen}
-\lstinputlisting[frame=single,basicstyle=\footnotesize\ttfamily]{figs/points.cpp}
-\end{minipage}
-\end{lrbox}
-
-\newsavebox{\constructionbox}
-\begin{lrbox}{\constructionbox}
-\begin{minipage}{0.5\overflowingheadlen}
-\lstinputlisting[frame=single,basicstyle=\footnotesize\ttfamily]{figs/construction.cpp}
-\end{minipage}
-\end{lrbox}
-
-\begin{figure*}[p]
-\centering
-\begin{tabular}{cc}
-\subfloat[]{
-\includegraphics[width=0.4\linewidth]{figs/link1_filled}} &
-\multirow{-1}[38.7]{*}{
-\subfloat[Constructing other cells]{\usebox{\constructionbox}
-\label{subfig:construction}}} \\
-\subfloat[Coordinates of the 17 vertices]{\usebox{\pointsbox}
-\label{subfig:points}} &
-\end{tabular}
-\caption[Programming a complex linking example]{Code excerpts that show how vertices are created based on 4D points, faces as cycles of vertices, volumes as sets of faces, and 4-cells as sets of 3-cells. The colours referred to in (b) correspond to the highlighted faces and volumes in (a).}
-\label{fig:code}
-\end{figure*}
-
-The resulting 4D model was then validated by checking the properties of a valid combinatorial map (\refse{ss:operations-maps}).
-In short, these tests involved checking whether the darts (combinatorial simplices) in the map formed correct involutions or partial permutations and whether any darts remained free after the operations.
-Individual parts of the model (the triangular or square faces and the parallelepiped- or pyramid-shaped volumes) were also validated by verifying that they were isomorphic to similar objects that were known to be valid \citep{Gosselin11}.
-
-\section{Conclusions}
-\label{se:linking-conclusions}
-
-While integrating different LODs of the same 3D object into a single 4D model is generally considered as complex, the linking schemes proposed in this chapter show that it is possible to define high-level methods to connect different 3D models in a relatively simple manner.
-The linking schemes operate within a framework of three steps: identifying corresponding elements in different LODs, deciding how these should be linked, and finally linking relevant 3-cells into 4-cells using the incremental construction algorithm described in \refch{ch:incremental-construction}.
-
-Using a 4D representation means that it is possible to store not only the standard topological relationships (\eg\ incidence and adjacency) between objects in one LOD, but also all the correspondences between equivalent objects of any dimension across LODs, even when corresponding objects are of different dimensions or the correspondences between them are not one-to-one.
-As these correspondences are modelled as geometric primitives, it is easy to perform geometric operations with them (\eg\ extracting an intermediate LOD for visualisation purposes) or to attach attributes to them (\eg\ the meaning of these correspondences), just as is done to usual geometric primitives.
-
-These topological relationships and correspondences can then be used for multiple applications, such as updating and maintaining series of 3D models at different LODs, or testing the consistency of multi-LOD models (\eg\ by using similar validity checks as those in \citet{Groger11}).
-
-The different linking schemes presented in \refse{ss:linkingrules} yield 4D models having different properties, such as objects that suddenly appear and disappear, gradually change in size or morph into different objects along the fourth dimension.
-These different types of 4D models can then be useful for different applications.
-
-The linking schemes described in this chapter are meant for the multi-LOD 3D to 4D case.
-However, they do have a generic formulation, so they can also be applied to other non-spatial characteristics such as time, enabling them to be used in new applications, such as identifying the motion or change of objects through time.
-In addition, these schemes are fully dimension-independent, so it is conceivable that they can be applied to linking multiple higher-dimensional models, such as a series of 4D models that reflect a building at different periods of time and at different levels of detail.
-
-While the transitions between LODs as shown in this chapter are exclusively linear, it is worth noting that this does not necessarily have to be the case.
-Non-linear transformations can be also be defined (such as by ensuring that a series of LODs forms a $C^1$ or $C^2$ continuous shape) and their corresponding geometries can be either stored in more complex non-linear embeddings of a combinatorial map or discretised as a series of small linear cells that approximate such a shape up to a given $\epsilon$ threshold.
-
-Finally, the clearest next step to be followed here is to realise the method sketched in this chapter by analysing the problem in more detail and implementing the required low-level algorithms.
-While the linking problem has been described here as a monolithic solution, it is more likely that the different methods presented will result in completely different implementations.
diff --git a/work_report/main.tex b/work_report/main.tex
new file mode 100644
index 0000000..851c574
--- /dev/null
+++ b/work_report/main.tex
@@ -0,0 +1,293 @@
+%%%% Time-stamp: <2018-03-24 14:05:09 vk>
+%% ========================================================================
+%%%% Disclaimer
+%% ========================================================================
+%%
+%% created by
+%%
+%% Karl Voit
+%%
+
+%% ========================================================================
+%%%% Basic settings
+%% ========================================================================
+%% (idea of using newcommands for basic documentclass settings from: Thomas Schlager)
+
+\newcommand{\mypapersize}{A4}
+%% e.g., "A4", "letter", "legal", "executive", ...
+%% The size of the paper of the resulting PDF file.
+
+\newcommand{\mylaterality}{twoside}
+%% "oneside" or "twoside"
+%% Either you are creating a document which is printed on both, left pages
+%% and right pages (twoside) or you create a document which is printed
+%% on right pages only (oneside).
+
+\newcommand{\mydraft}{false}
+%% "true" or "false"
+%% Use draft mode? If true, included graphics are replaced by empty
+%% rectangles (of same size) and overfull boxes (in margin space) are
+%% marked with black box (-> easy to spot!)
+
+\newcommand{\myparskip}{half}
+%% e.g., "no", "full", "half", ...
+%% How to separate paragraphs: indention ("no") or spacing ("half",
+%% "full", ...).
+
+\newcommand{\myBCOR}{0mm}
+%% Inner binding correction. This value depends on the method which is
+%% being used to bind your printed result. Some techniques do not
+%% require a binding correction at all ("0mm"), other require for
+%% example "5mm". Refer to KOMA script documentation for a detailed
+%% explanation what a binding correction is and how to measure it.
+
+\newcommand{\myfontsize}{12pt}
+%% e.g., 10pt, 11pt, 12pt
+%% The font size of the main text in pt (points).
+
+\newcommand{\mylinespread}{1.0}
+%% e.g., 1.0, 1.5, 2.0
+%% Line spacing in %/100. For example 1.5 means 150% of the usual line
+%% spacing. Please use with caution: 100% ("1.0") is fine because the
+%% font was designed for it.
+
+\newcommand{\mylanguage}{ngerman,american}
+%% "english,ngerman", "ngerman,english", ...
+%% NOTE: The *last* language is the active one!
+%% See babel documentation for further details.
+
+%% BibLaTeX-settings: (see biblatex reference for further description)
+\newcommand{\mybiblatexstyle}{authoryear}
+%% e.g., "alphabetic", "authoryear", ...
+%% The biblatex style which is being used for referencing. See
+%% biblatex documentation for further details and more values.
+%%
+%% CAUTION: if you change the style, please check for (in)compatible
+%% "biblatex" package options in the file
+%% "template/preamble.tex"! For example: "alphabetic" does
+%% not have an option "dashed=..." and causes an error if it
+%% does not get removed from the list of options.
+
+\newcommand{\mybiblatexdashed}{false} %% "true" or "false"
+%% If true: replace recurring reference authors with a dash.
+
+\newcommand{\mybiblatexbackref}{true} %% "true" or "false"
+%% If true: create backward links from reference to citations.
+
+\newcommand{\mybiblatexfile}{references-biblatex.bib}
+%% Name of the biblatex file that holds the references.
+
+\newcommand{\mydispositioncolor}{30,103,182}
+%% e.g., "30,103,182" (blue/turquois), "0,0,0" (black), ...
+%% Color of the headings and so forth in RGB (red,green,blue) values.
+%% NOTE: if you are using "0,0,0" for black, printers might still
+%% recognize pages as color pages. In case this is a problem
+%% (paying for color print-outs vs. paying for b/w-printouts)
+%% please edit file "template/preamble.tex" and change
+%% "\definecolor{DispositionColor}{RGB}{\mydispositioncolor}"
+%% to "\definecolor{DispositionColor}{gray}{0}" and thus
+%% overwriting the value of \mydispositioncolor above.
+
+\newcommand{\mycolorlinks}{true} %% "true" or "false"
+%% Enables or disables colored links (hyperref package).
+
+\newcommand{\mytitlepage}{template/title_Thesis_TU_Graz}
+%% Your own or one of following pre-defined title pages:
+%% "template/title_plain_maketitle": simple maketitle page
+%% "template/title_Diplomarbeit_KF_Uni_Graz.tex": fancy (german) title page for KF Uni Graz
+%% "template/title_Thesis_TU_Graz":
+%% titlepage for Graz University of Technology (correct
+%% (old?) Corporate Design) by Karl Voit (2012)
+%% "template/title_Thesis_TU_Graz_-_kazemakase":
+%% titlepage for Graz University of Technology
+%% (correct new Corporate Design) by kazemakase (2013):
+%% see https://github.com/novoid/LaTeX-KOMA-template/issues/5
+%% "template/title_VWA": titlepage for Vorwissenschaftliche Arbeit
+
+\newcommand{\mytodonotesoptions}{}
+%% e.g., "" (empty), "disable", ...
+%% Options for the todonotes-package. If "disable", all todonotes will
+%% be hidden (including listoftodos).
+
+%% Load main settings for document preamble:
+\input{template/preamble}%% DO NOT REMOVE THIS LINE!
+
+\setboolean{myaddcolophon}{true} %% "true" or "false"
+%% If set to "true": a colophon (with notes about this document
+%% template, LaTeX, ...) is added after the title page.
+%% Please do not set to "false" without a good reason. The colophon
+%% helps your readers to get in touch with LaTeX and to find this template.
+
+\setboolean{myaddlistoftodos}{false} %% "true" or "false"
+%% If set to "true": the current list of open todos is added after the
+%% table of contents. If \mytodonotesoptions is set to "disable", no
+%% list of todos is added, independent of this setting here.
+
+\setboolean{english_affidavit}{true} %% "true" or "false"
+%% If set to "true": the language of the statutory declaration text is set to
+%% English, otherwise it is in German.
+
+
+%% ========================================================================
+%%%% Document metadata
+%% ========================================================================
+
+%% general metadata:
+\newcommand{\myauthor}{AUTHOR} %% also used for PDF metadata (hyperref)
+\newcommand{\myauthorwithexistingtitles}{\myauthor{}, OLDDEGREE} %% including
+ %% university degree already held
+ %% (BSc, MSc, ...)
+\newcommand{\mytitle}{TITLE} %% also used for PDF metadata (hyperref)
+\newcommand{\mysubtitle}{ } %% only used with title_Thesis_TU_Graz_-_kazemakase
+\newcommand{\mysubject}{SUBJECT} %% also used for PDF metadata (hyperref)
+\newcommand{\mykeywords}{KEYWORDS} %% also used for PDF metadata (hyperref)
+
+%% this information is used only for generating the title page:
+\newcommand{\myworktitle}{Master's Thesis} %% official type of work like ``Master theses''
+\newcommand{\mygrade}{Master of Science} %% title you are getting with this work like ``Master of ...''
+\newcommand{\mystudy}{Telematik} %% your study like ``Arts''
+\newcommand{\mydegreeprogramme}{Master's degree programme: \mystudy} %% Master's or PhD degree programme
+\newcommand{\myuniversity}{Graz University of Technology} %% your university/school
+\newcommand{\myfaculty}{ } %% only used with title_Thesis_TU_Graz_-_kazemakase
+\newcommand{\myinstitute}{Institute for Softwaretechnology} %% affiliation
+\newcommand{\myinstitutehead}{Univ.-Prof.\,Dipl-Ing.\,Dr.techn.~Some One} %% head of institute
+\newcommand{\mysupervisor}{Dr.~Some Body} %% your supervisor
+\newcommand{\mycosupervisor}{\ } %% only used with title_Thesis_TU_Graz_-_kazemakase
+\newcommand{\myevaluator}{Prof.~Some Genius} %% your evaluator
+\newcommand{\myhomestreet}{Street~42} %% your home street (with house number)
+\newcommand{\myhometown}{Graz} %% your home town
+\newcommand{\myhomepostalnumber}{8010} %% your postal number of home town
+\newcommand{\mysubmissionmonth}{November} %% month you are handing in
+\newcommand{\mysubmissionyear}{2013} %% year you are handing in
+\newcommand{\mysubmissiontown}{\myhometown} %% town of handing in (or \myhometown)
+
+
+%% additional information for generic_documentation title page
+\newcommand{\myid}{1234567} %% Matrikelnummer
+\newcommand{\mylecture}{LECTURE} %%
+
+
+%% ========================================================================
+%%%% MISC command definitions
+%% ========================================================================
+\input{template/mycommands}
+
+%% ========================================================================
+%%%% Typographic settings
+%% ========================================================================
+\input{template/typographic_settings}
+
+
+%% ========================================================================
+%%%% MISC usepackages
+%% ========================================================================
+
+%% ... it's OK to put here your own usepackage commands ...
+
+
+
+
+%% ========================================================================
+%%%% MISC self-defined commands and settings
+%% ========================================================================
+
+%% ... it's OK to put here your own newcommand/newenvironment-definitions ...
+
+
+
+
+\newcommand{\myLaT}{\LaTeX{}@TUG\xspace} %% LaTeX@TUG text "logo"
+
+\hyphenation{ex-am-ple hy-phen-ate} %% in order to use German umlauts
+%% here (Ver-\"of-fent-li-chung), you have to check for
+%% activated \usepackage[T1]{fontenc} in the preamble
+
+%% override default language of babel: (be sure to know, what you're
+%% doing here)
+%\selectlanguage{american}
+%\selectlanguage{ngerman}
+
+%% ========================================================================
+%%%% Templates
+%% ========================================================================
+
+%% template for inserting figures:
+% \myfig{}%% filename
+% {}%% width/height
+% {}%% caption
+% {}%% optional (short) caption for list of figures
+% {fig:}%% label
+
+%% acronyms in small caps: \myacro{UNESCO}
+
+
+\input{template/pdf_settings} %% should be *last* definitions in preamble!
+%% ========================================================================
+%%%% begin{document}
+%% ========================================================================
+\begin{document}
+
+\frontmatter %% KOMA: roman page numbers and such; only available in scrbook
+
+\input{colophon} %% defines information about editor, LaTeX, font, ...
+
+%% Choose your desired title page:
+\input{\mytitlepage} %% include title page
+
+
+\input{template/declaration_TU_Graz} %% Statutory Declaration
+% \input{thanks} %% this is a suggestion: you have to create this file on demand
+% \input{foreword} %% this is a suggestion: you have to create this file on demand
+
+
+%% include the abstract without chapter number but include it on table of contents:
+\cleardoublepage
+\phantomsection
+\addcontentsline{toc}{chapter}{Abstract}
+\include{abstract} %% Abstract
+
+
+\tableofcontents %% this produces the table of contents - you might have guessed :-)
+
+\listoffigures
+
+%% if myaddlistoftodos is set to "true", the current list of open todos is added:
+\ifthenelse{\boolean{myaddlistoftodos}}{
+ \newpage\listoftodos %% handy if you are using todonotes with \todo{}
+}{} %% with todonotes-package option "disable" you can get rid of any todo in the output
+
+\mainmatter %% KOMA: marks main part using arabic page numbers and such; only available in scrbook
+
+
+\input{example-short-chapter} %% remove this line to get rid of the example chapter
+\input{example-style-chapter} %% remove this line to get rid of the style chapter
+
+%% include tex file chapters:
+% \include{introduction} %% this is a suggestion: you have to create this file on demand
+% \include{problem} %% this is a suggestion: you have to create this file on demand
+% \include{solution} %% this is a suggestion: you have to create this file on demand
+% \include{evaluation} %% this is a suggestion: you have to create this file on demand
+% \include{outlook} %% this is a suggestion: you have to create this file on demand
+
+\appendix %% closes main document, appendix follows until end; only available in book-classes
+\addpart*{Appendix} %% adding Appendix to tableofcontents
+
+\printbibliography %% remove, if using BibTeX instead of biblatex
+% \include{further_ressources} %% this is a suggestion: you have to create this file on demand
+
+
+
+
+
+
+%%%% end{document}
+\end{document}
+%% vim:foldmethod=expr
+%% vim:fde=getline(v\:lnum)=~'^%%%%\ .\\+'?'>1'\:'='
+%%% Local Variables:
+%%% mode: latex
+%%% mode: auto-fill
+%%% mode: flyspell
+%%% eval: (ispell-change-dictionary "en_US")
+%%% TeX-master: "main"
+%%% End:
diff --git a/work_report/math.tex b/work_report/math.tex
deleted file mode 100644
index 4210684..0000000
--- a/work_report/math.tex
+++ /dev/null
@@ -1,355 +0,0 @@
-% !TEX root = thesis.tex
-
-\chapter{Mathematical foundations of spatial modelling}
-\label{ch:modelling-mathematics}
-
-Spatial modelling has its origins in the geographical notion of space, which is in turn based on our own observations of the world and empirical experience \citep{Couclelis99}.
-However, these informal notions are error-prone and differ from person to person.
-In order to describe space unambiguously, people have thus turned to models that still describe geographical phenomena, but do so using formal notions derived from mathematics.
-These formal models make it possible to create and store digital representations of the world in a computer, and thus to use the power of a computer to easily solve spatial problems \citep{Burrough86,Bailey95}.
-
-The current chapter describes some of these formal notions and their relevant context, which are used to study the spatial modelling approaches presented in the upcoming chapters.
-\refse{se:settheory} introduces some concepts of elementary set theory and mathematical logic, which are later used in definitions in this thesis.
-\refse{se:geometry} introduces the basic concepts of geometry, which are used to describe the position, shape and orientation of objects.
-\refse{se:topology} builds on these to present topology, which formalises notions such as the boundary and interior of an object or the relationships between multiple objects.
-
-\section{Elementary set theory and mathematical logic}
-\label{se:settheory}
-
-Set theory is the branch of mathematics that studies \emph{sets}, which are collections of abstract objects.
-While the study of set theory only formally started with \citet{Cantor74}, its intuitive and minimal concepts were later used in order to give a foundation to almost all areas of mathematics\footnote{Even as some mathematicians and philosophers have argued against set theory as a foundation for all of mathematics.}.
-Since the basic concepts of set theory are used in this thesis in order to describe many other concepts, this section gives a very short primer using the same notation that is used in this thesis.
-However, it is worth noting that the descriptions used here are reflect the concepts generally used in GIS, and so are meant to be intuitive and not very formal.
-Perhaps more importantly, these definitions do not reflect modern mathematical thought on the topic\footnote{In short, these intuitive definitions pretty much assume that anything can be put into a set without leading to paradoxes, which formally is not the case.}, which is much more precise but also less accessible, \eg\ axiomatic set theory.
-
-Set theory starts by considering the existence of a given domain of objects from which one may build sets, which is known as the \emph{universe set} and denoted as $\mathbb{U}$.
-These objects can be anything, including other sets.
-Set theory allows sets to be regarded as single entities and operated upon \citep{Devlin93}.
-If an object $a$ is part of a set $\mathbb{X}$, it is denoted as $a \in \mathbb{X}$, read as `$a$ is an \emph{element} of $\mathbb{X}$'.
-If $a$ is not part of a set $\mathbb{X}$, it is denoted as $a \notin \mathbb{X}$, read as `$a$ is not an element of $\mathbb{X}$'.
-
-There are two broad ways to describe the elements in a set, both using curly braces, \ie\ \{ and \}.
-One way to do so is to enumerate all the elements of the set one by one.
-For instance, the set $\left\{ 1,2,3 \right\}$ is the set containing $1$, $2$ and $3$ as elements (and no others).
-The other way to do so is to specify one or more rules that the elements of the set need to fulfil.
-For instance, the set $\{ x \mid x$~\emph{is~a~prime~number}$\}$ consists of all prime numbers.
-It is read as `$x$, such that $x$ is a prime number'.
-
-Sets are by definition unordered and contain unique elements---duplicate items are ignored by convention.
-A set may contain an infinite number of elements (\eg\ as the prime number example above), or no elements at all, in which case it is a special set known as the \emph{null set} and denoted as $\{ \}$ or $\emptyset$.
-Other commonly used sets with a special notation and name are: the natural numbers ($\mathbb{N}$), the real numbers ($\mathbb{R}$), the rational numbers ($\mathbb{Q}$) and the integers ($\mathbb{Z}$).
-
-In order to build more complex sets, the concepts and notation from mathematical logic are used, in particular \emph{propositional logic}.
-Propositional logic works with \emph{propositions}, which are sentences that are either true or false, but not both.
-These propositions might be altered and combined using various symbols expressing various notions, such as: \emph{and} ($\wedge$), \emph{or} ($\vee$), \emph{not} ($\neg$), \emph{implies} ($\Rightarrow$), \emph{is implied by} ($\Leftarrow$), \emph{if and only if} ($\Leftrightarrow$), \emph{for all} ($\forall$) and \emph{exists} ($\exists$).
-
-Using these concepts it becomes possible to state relationships between sets.
-For instance, $\mathbb{A}$ and $\mathbb{B}$ are then equal ($\mathbb{A} = \mathbb{B}$) when an element is in $\mathbb{A}$ if and only if it is also in $\mathbb{B}$, which can be denoted as $\forall x : x \in \mathbb{A} \Leftrightarrow x \in \mathbb{B}$.
-A set $\mathbb{A}$ is called a subset of a set $\mathbb{B}$ ($\mathbb{A} \subseteq \mathbb{B}$), or $\mathbb{B}$ is a superset of $\mathbb{A}$ ($\mathbb{B} \supseteq \mathbb{A}$), when if an element is in $\mathbb{A}$ then it is also in $\mathbb{B}$, denoted as $\forall x : x \in \mathbb{A} \Rightarrow x \in \mathbb{B}$.
-If $\mathbb{A} \subseteq \mathbb{B}$ but $\mathbb{A} \neq \mathbb{B}$, \ie\ there is at least one extra element in $\mathbb{B}$, then $\mathbb{A}$ is a proper subset of $\mathbb{B}$ ($\mathbb{A} \subset \mathbb{B}$), or alternatively $\mathbb{B}$ is a proper superset of $\mathbb{A}$ ($\mathbb{B} \supset \mathbb{A}$).
-
-It is also possible to use propositional logic to create new sets by defining certain operations between sets, in particular \emph{Boolean set operations}, consisting of intersection, union, difference and complement\footnote{These are the most commonly described basic operations. However, it is possible to define other operations that are equally useful as a base. Either can be used to form other operations by composition.}.
-The intersection of the sets $\mathbb{A}$ and $\mathbb{B}$, denoted as $\mathbb{A} \cap \mathbb{B}$, consists of all the elements that are both in $\mathbb{A}$ and in $\mathbb{B}$, \ie\ $\mathbb{A} \cap \mathbb{B} = \left\{ x \mid x \in \mathbb{A} \wedge x \in \mathbb{B} \right\}$.
-The union of the sets $\mathbb{A}$ and $\mathbb{B}$, denoted as $\mathbb{A} \cup \mathbb{B}$, consists of all the elements that are either in $\mathbb{A}$ or in $\mathbb{B}$, \ie\ $\mathbb{A} \cup \mathbb{B} = \left\{ x \mid x \in \mathbb{A} \vee x \in \mathbb{B} \right\}$.
-The difference between sets $\mathbb{A}$ and $\mathbb{B}$, denoted as $\mathbb{A} - \mathbb{B}$, consists of all the elements that are in $\mathbb{A}$ but not in $\mathbb{B}$, \ie\ $\mathbb{A} - \mathbb{B} = \left\{ x \mid x \in \mathbb{A} \wedge x \notin \mathbb{B} \right\}$.
-The complement of a set $\mathbb{A}$, denoted as $\neg \mathbb{A}$, consists of all the elements that are in the universe set but are not in $\mathbb{A}$, \ie\ $\neg \mathbb{A} = \left\{ x \mid x \in \mathbb{U} \wedge x \notin \mathbb{A} \right\}$.
-
-Apart from sets, it is also possible to consider \emph{tuples} of elements, which unlike sets are sequences of ordered elements.
-A tuple containing exactly two elements is known as a \emph{pair}, one containing three elements is a \emph{treble} and one containing $n$ elements is an $n$-tuple.
-Tuples are denoted using parenthesis, \ie\ (\ and~).
-
-A common operation that generates tuples is the Cartesian product.
-The Cartesian product of sets $\mathbb{A}$ and $\mathbb{B}$, denoted as $\mathbb{A} \times \mathbb{B}$, is defined as $\left\{ (a,b) \mid a \in \mathbb{A} \wedge b \in \mathbb{B} \right\}$.
-In other words, it is a set of pairs, where the first element of a pair is an element of $\mathbb{A}$ and the second element of the pair is an element of $\mathbb{B}$.
-This can be generalised to more than two sets, such that the $n$-fold Cartesian product of $n$ sets is an $n$-tuple.
-The $n$-fold Cartesian product of a set $\mathbb{A}$ with itself, \ie\ $\mathbb{A} \times \mathbb{A} \times \cdots \mathbb{A}$, is denoted as $\mathbb{A}^n$.
-
-\section{Geometry}
-\label{se:geometry}
-
-Geometry is the branch of mathematics concerned with the position of objects in space, a topic that was already formalised by the ancient Greek mathematician Euclid in his textbook \emph{the Elements} around 300 BCE \citep{Fitzpatrick08}.
-Euclidean geometry consists of a small set of geometric axioms considered to be intuitively obvious, such as the fact that it is possible to draw exactly one line that passes through two points (\reffig{fig:line}), as well as a long series of postulates derived from these and which describe more complex constructions\footnote{Non-Euclidean geometry does away with some of these axioms while remaining self-consistent \citep{Bolyai32,Lobachevsky40}. However, it is much less relevant in the context of spatial modelling.}.
-\marginpar{
-\captionsetup{type=figure}
-\includegraphics[width=\marginparwidth]{figs/line}
-\caption[A single line passes through two points]{There is exactly one line that passes through any pair of points.}
-\label{fig:line}
-}
-
-However, even as Euclidean geometry has the notions of relative distances, angles and areas, objects in Euclidean geometry do not have an absolute position in space.
-Analytic or Cartesian geometry, developed by \citet{Descartes37} and \citet{de-Fermat79}, significantly changed this by introducing the concept of coordinates.
-A coordinate system makes it possible to uniquely describe the absolute location of a point as a tuple of real numbers.
-In particular, the Cartesian coordinate system uses a tuple of perpendicular directed lines as axes, with a positive direction and a negative direction, all of which intersect at a common point known as the origin.
-A point's coordinates in the system are then given by signed distances to the respective axes\footnote{A more rigorous and correct explanation would be based on a set of linearly independent vectors, but this creates a recursive definition.}.
-
-$n$-dimensional Euclidean space, which can be described by the set of points $\mathbb{R}^n$, has $n$ perpendicular axes intersecting at the origin $O$, defined by the $n$-tuple $(0, 0, \ldots, 0)$, and a point $p$ in $n$D space is thus described by an $n$-tuple $(p_1, p_2, \ldots, p_n)$, where $p_i$ is the signed distance to the $i$-th axis.
-For example, as shown in \reffig{fig:point}, three-dimensional Euclidean space ($\mathbb{R}^3$), has three axes, usually named $X$, $Y$ and $Z$, such that a given point $p$ in 3D can be described by a treble $(p_x,p_y,p_z)$, where $p_x$ is the signed distance to the $X$ axis, $p_y$ to the $Y$ axis and $p_z$ to the $Z$ axis.
-\marginpar{
-\captionsetup{type=figure}
-\includegraphics[width=\marginparwidth]{figs/point}
-\caption{A point $p$ in 3D described by a treble $(p_x,p_y,p_z)$}
-\label{fig:point}
-}
-
-A point $a = (a_1, a_2, \ldots, a_n)$ can also be used to define a vector $\vec{a}$, which goes from the origin to $a$.
-% Why is this vvvv necessary for spacing!?!?
-The norm, or magnitude of\ \ $\vec{a}$, denoted as $\| \vec{a} \|$, gives the length of the line segment between $a$ and the origin and is computed as:
-\begin{equation*}
-\| \vec{a} \| = \sqrt{{a_1}^{2} + {a_2}^{2} + \cdots + {a_n}^{2}}
-\end{equation*}
-
-This analytic description of objects also enables using algebra to compute properties, such as the Euclidean distance between two points $a = (a_1, a_2, \ldots, a_n)$ and $b = (b_1, b_2, \ldots, b_n)$, also known as the Euclidean metric.
-This is given by:
-\begin{equation*}
-\mathrm{distance}(a,b) = \sqrt{{(a_1 - b_1)}^{2} + {(a_2 - b_2)}^{2} + \cdots + {(a_n - b_n)}^{2}}
-\end{equation*}
-
-Some other objects can be described as a linear combination of linearly independent points (\ie\ two different points, three non-collinear points, four non-coplanar points, etc.).
-Considering the points $p_1,p_2,\ldots,p_n$, a linear combination of them takes the form $a_1 p_1 + a_2 p_2 + \cdots + a_n p_n$, where $\sum_{i=1}^n a_i = 1$.
-For every point $p_i$, $a_i$ is thus a scalar coefficient that determines its \emph{weight}.
-
-If negative weights are allowed, the linear combination of $n+1$ linearly independent points forms an $n$-dimensional unbounded linear object, \eg\ a line using two points or a plane using three points.
-All of these points lie exactly on the object.
-When the weights are instead restricted to the interval $[0,1]$, the linear combination of $n+1$ linearly independent points forms an $n$-dimensional simplex (called an $n$-simplex)---a convex shape with $n+1$ vertices.
-A \emph{0-simplex} is thus a point, a \emph{1-simplex} is a line segment, a \emph{2-simplex} is a triangle, a \emph{3-simplex} is a tetrahedron, and so on.
-
-Other, more complex objects can be described using equations, which describe particular subsets of $\mathbb{R}^n$.
-A hyperplane in $\mathbb{R}^n$, \ie\ a space of dimension $\mathbb{R}^{n-1}$ in $\mathbb{R}^n$, can be described by a linear equation of the form $a_1 x_1 + a_2 x_2 + \cdots + a_n x_n = b$, where $a_1, a_2, \ldots, a_n$ are the coefficients of the linear equation.
-Apart from the points exactly on the hyperplane, as shown in \reffig{fig:halfspaces}, such a hyperplane separates $\mathbb{R}^n$ into two parts on either side of it.
-\marginpar{
-\captionsetup{type=figure}
-\includegraphics[width=\marginparwidth]{figs/halfspaces}
-\caption{A plane separates $\mathbb{R}^3$ into two parts on either side of it.}
-\label{fig:halfspaces}
-}
-These are known as open half-spaces and can be obtained by transforming the linear equation into the strict linear inequalities: $a_1 x_1 + a_2 x_2 + \cdots + a_n x_n < b$ for the half-space below the hyperplane and $a_1 x_1 + a_2 x_2 + \cdots + a_n x_n > b$ for the one above it.
-If non-strict linear inequalities are used instead (\ie\ using $\leq$ and $\geq$ instead of $<$ and $>$), these \emph{closed half-spaces} also contain the points on the hyperplane.
-
-Considering that a point can be described as a tuple of its coordinates, a hyperplane as a tuple of its coefficients, and similar constructions are possible for many other objects (\eg\ a sphere based on a centre point and radius), it becomes possible to have a \emph{computer representation} of these objects simply by storing tuples of numbers in a data structure\footnote{This hides the fact that using real numbers in a computer is very difficult in practice, thus floating-point approximations are generally used instead \citep{Goldberg91}.
-The main consequences of this in spatial modelling are discussed in \refse{se:computerarithmetic}.}.
-Moreover, it becomes possible to use them as a basis to describe other, more complex objects by using them as building blocks, either directly or using some of the topological concepts described in the next section, \eg\ them forming the boundary of another object.
-
-Since analytic geometry allows the description of objects as sets of points in $\mathbb{R}^n$, as shown in \reffig{fig:boolean}, it is also possible to define objects based on Boolean set operations of their point sets.
-\begin{figure}[hb]
-\centering
-\subfloat[$\mathbb{A}$ (purple) and $\mathbb{B}$ (blue)]{
-\includegraphics[width=0.5\linewidth]{figs/boolean}
-\label{subfig:boolean}}
-% \quad
-\subfloat[Intersection: $\mathbb{A} \cap \mathbb{B}$]{
-\includegraphics[width=0.5\linewidth]{figs/boolean-intersection}
-\label{subfig:boolean-intersection}}
-\\
-\subfloat[Union: $\mathbb{A} \cup \mathbb{B}$]{
-\includegraphics[width=0.5\linewidth]{figs/boolean-union}
-\label{subfig:boolean-union}}
-% \quad
-\subfloat[Difference: $\mathbb{A} - \mathbb{B}$]{
-\includegraphics[width=0.5\linewidth]{figs/boolean-difference}
-\label{subfig:boolean-difference}}
-\caption[Objects can be defined using Boolean set operations]{Based on two balls $\mathbb{A}$ and $\mathbb{B}$, other objects that can be defined using Boolean set operations.}
-\label{fig:boolean}
-\end{figure}
-
-\section{Topology}
-\label{se:topology}
-
-Topology is the mathematical study of the shape of objects, growing out of the analysis of certain problems in geometry, such as the boundaries of objects and the different possible notions of connectedness.
-In particular, it studies the properties of certain objects that are preserved under so-called \emph{topological transformations} or \emph{continuous maps}, which include stretching and bending but exclude tearing or gluing.
-
-There are two branches of topology that are most relevant in the context of spatial modelling, \emph{point-set topology} and \emph{algebraic topology}, respectively presented in \refse{ss:point-set-topology} and \refse{ss:algebraic-topology}.
-Point-set topology describes space using concepts derived mainly from set theory, representing objects as continuous sets of points.
-The properties of these sets and the relationships between multiple sets can then be analysed and described.
-Algebraic topology adds concepts from abstract algebra as well, representing objects as structured sets of discrete elements, such as points, edges and faces.
-As these elements and the relationships between them are both discrete, it is possible to use a wide variety of algorithmic methods on them, including graph theory, combinatorics, algorithmic algebra, and computational geometry and topology.
-
-\subsection{Point-set topology}
-\label{ss:point-set-topology}
-
-Point-set topology, also known as general topology, describes objects as sets of points satisfying certain conditions, such as those in the construction in \reffig{fig:pointset}.
-\marginpar{
-\captionsetup{type=figure}
-\includegraphics[width=\marginparwidth]{figs/pointset}
-\caption[Two rectangles and two points defined as point sets]{The rectangle $\mathbb{A}$ is represented by the set of points where $1 \leq x \leq 4$ and $1 \leq y \leq 3$. In more compact (set builder) notation, $\mathbb{A} = \left\{ (x,y) \middle| x \in [1,4] \wedge y \in [1,3] \right\}$.
-For the other objects, rectangle $\mathbb{B} = \left\{ (x,y) \middle| x \in [2,3] \wedge y \in [1,2] \right\}$, point $a \in \mathbb{A}$, point $b \in \mathbb{B}$ and point $b \in \mathbb{A}$.
-$\mathbb{B}$ is a subset of $\mathbb{A}$ (\ie\ $\mathbb{B} \subset \mathbb{A}$).
-}
-\label{fig:pointset}
-}
-These objects can then be analysed based on the properties of the sets that describe them, such as whether a set is bounded or unbounded, has a certain number of holes, or is orientable or unorientable.
-When multiple objects are present, the relationships between their corresponding sets can be analysed as well, such as whether they are touching or overlapping, or whether it is possible to define a function that maps between these sets.
-
-Point-set topology works with \emph{topological spaces}, a much more general notion than that of Euclidean space.
-This allows the description of different types of space with different properties.
-A topological space consists of a set of points and a \emph{topology} on them satisfying a series of axioms.
-\citet{Edelsbrunner14} provides the following simple formulation.
-Given a set of points $\mathbb{X}$, a topology of $\mathbb{X}$ is a collection of subsets, which are called open sets\footnote{Note that there are alternative definitions based on the concepts of closed sets or of neighbourhoods \citep{Hausdorff14}. For a simple definition using neighbourhoods in a GIS context see \citet[\S{}3.2.2]{Worboys04}.}, such that:
-\begin{itemize}
-\item $\mathbb{X}$ is open and the empty set is open;
-\item the intersection of any two open sets is open;
-\item the union of any family of open sets is open.
-\end{itemize}
-
-While the definition of an open set for general topological spaces is rather complex, in the context of spatial modelling we are generally interested in Euclidean space, which has a straightforward definition analogous to the concept of an open interval in 1D (\reffig{fig:intervals}).
-\marginpar{
-\captionsetup{type=figure}
-\includegraphics[width=\marginparwidth]{figs/intervals}
-\caption[Open and closed intervals]{An open interval $\mathbb{C} = (0,3) = \left\{x \middle| 0 < x < 3 \right\}$ does not include its endpoints. By contrast, a closed interval $\mathbb{D} = [0,3] = \left\{x \middle| 0 \leq x \leq 3 \right\}$ includes its endpoints.}
-\label{fig:intervals}
-}
-A point set $\mathbb{S}$ in Euclidean space is open if, given any point $p \in \mathbb{S}$, there exists a real number $\epsilon > 0$ such that, given any point $q$ whose Euclidean distance to $p$ is smaller than $\epsilon$, then $q \in \mathbb{S}$ as well.
-A point set is closed when the point set formed by its complement is open.
-Any point on an open interval fulfils these conditions, but the endpoints of a closed interval do not.
-Note that it is possible for a set to be open \emph{and} closed (\eg\ an interval containing only one of its endpoints).
-
-For example, in 2D, the plane together with the topology generated by the Euclidean metric is the topological space known as the \emph{Euclidean topology of the plane}, which can be defined based on \emph{open disks}, which are analogous to 1D open intervals.
-An open disk is the set of points closer to a point $p \in \mathbb{R}^2$ than a non-zero distance $r$, such as the unit open disk shown in \reffig{fig:unitopendisk}.
-\marginpar{
-\captionsetup{type=figure}
-\includegraphics[width=\marginparwidth]{figs/unitopendisk}
-\caption[The unit open disk]{The unit open disk, \ie\ an open disk of radius 1 centred at the origin can be defined as $\mathbb{D} = \left\{ x \in \mathbb{R}^2 \middle| \| x \| < 1 \right\}$.}
-\label{fig:unitopendisk}
-}
-It is easy to see that as these 2D disks do not contain their boundaries, the intersection of any two open disks and the union of any number of disks are both open.
-
-Based on the concepts of open intervals in 1D, open disks in 2D, or open balls when talking about any dimension, it is possible to partition a Euclidean space into three parts: its \emph{interior}, \emph{boundary} and \emph{exterior}.
-An example of these is shown in \reffig{fig:annulus}.
-\marginpar{
-\captionsetup{type=figure}
-\includegraphics[width=\marginparwidth]{figs/annulus}
-\caption[An annulus partitions the Euclidean plane into three parts]{An annulus with boundary partitions the Euclidean plane into three parts: its interior (yellow), its boundary (black) and its exterior (the rest of this page).
-Note that none of these necessarily have to be connected.}
-\label{fig:annulus}
-}
-The \emph{interior} of a point set $\mathbb{S}$ consists of all points where there exists an open ball centred at them such that all the points in the ball are in $\mathbb{S}$, the boundary of $\mathbb{S}$ consists of the points where all possible open balls centred at them have points in $\mathbb{S}$ and out of $\mathbb{S}$, and the exterior of $\mathbb{S}$ consists of all points where there exists an open ball centred at them such that all the points in the ball are out of $\mathbb{S}$.
-The \emph{closure} of $\mathbb{S}$ is the union of its interior and its boundary.
-The \emph{regularisation} of $\mathbb{S}$ is the closure of its interior and a point set is thus \emph{regular} when it is equal to its regularisation.
-
-Once objects are defined as sets of points, point-set topology works with functions that relate these sets to each other.
-A function from one point set to another is said to be \emph{continuous} if the preimage (\ie\ the inverse image) of every open set is open.
-If a function is continuous and its inverse function is also continuous, it is known as a \emph{homeomorphism}.
-When such a function exists between two point sets, they are said to be \emph{homeomorphic} or, more informally, \emph{topologically equivalent}, such as the two objects shown in \reffig{fig:homeomorphism}.
-
-\begin{figure}[b]
-\centering
-\subfloat[A coffee mug]{\includegraphics[width=\marginparwidth]{figs/mug}} \quad
-\subfloat[A donut]{\includegraphics[width=\marginparwidth]{figs/donut}}
-\caption[A coffee mug and a donut are homeomorphic]{A coffee mug and a donut are homeomorphic\protect\footnotemark.
-Intuitively, this can be known as it is possible to deform one into the other.
-The mug was rendered from the model at \url{http://www.thingiverse.com/thing:7953}.}
-\label{fig:homeomorphism}
-\end{figure}
-\footnotetext{Related to the joke: `A topologist is a mathematician who can't tell the difference between a coffee mug and a donut'.}
-
-\begin{figure*}[tbp]
-\centering
-\includegraphics[width=\linewidth]{figs/konigsberg}
-\caption[The Seven Bridges of K\"onigsberg]{The problem of the Seven Bridges of K\"onigsberg asks whether it is possible to find a route through the city that would cross each bridge (highlighted in red) exactly once. \citet{Euler41} proved that there is no such route in terms of a graph. Whenever one enters a piece of land by a bridge, one has to leave it by another bridge except at the beginning or end of the route. Thus, there must be an \emph{even} number of bridges connected to all but (at most) two pieces of land. Since all pieces of land have an \emph{odd} number of bridges, the problem has no solution. Based on an image from a 1613 engraving by Joachim Bering.}
-\label{fig:konigsberg}
-\end{figure*}
-
-Another important topological concept is that of a manifold.
-A manifold is a topological space that is homeomorphic to the Euclidean space of a certain dimension.
-Intuitively, this means that a manifold locally resembles Euclidean space, even if globally it does not.
-For example, a line and a circle are 1-manifolds, while a plane, a sphere and a torus are 2-manifolds.
-Generally, when the term manifold is used in GIS it refers to a 2-manifold.
-
-\subsection{Algebraic topology}
-\label{ss:algebraic-topology}
-
-Conceptually based on point-set topology, \emph{algebraic topology}, also known as combinatorial topology, uses concepts from abstract algebra in order to analyse topological spaces.
-A famous early application involved the answer to the problem of the Seven Bridges of K\"onigsberg by \citet{Euler41}, explained in \reffig{fig:konigsberg}.
-However, the real foundations of the field were set when many of its concepts were formalised in algebraic form by \citet{Poincare95}.
-
-Algebraic topology works by relating topological spaces to groups with specific properties, often by creating combinatorial analogues of such spaces, from which their properties can be extracted using algebraic methods \citep{Henle94}, which can be applied algorithmically.
-As it uses discrete structures rather than continuous point sets, it is often more suited to computer implementations of topological concepts than point-set topology \citep[\S{}3.3.5]{Worboys04}.
-
-Two constructions of algebraic topology are widely used as the basis of GIS:\ \emph{simplicial complexes} and \emph{cell complexes}.
-An $n$-dimensional simplicial complex is a structure made of connected \emph{simplices}, the simplest objects that can be built in any dimension.
-As shown in \reffig{fig:simplex}, an $n$-dimensional simplex ($n$-simplex) is a combinatorial primitive made from a set of $n+1$ vertices.
-\marginpar{
-\captionsetup{type=figure}
-\includegraphics[width=\marginparwidth]{figs/simplex}
-\caption[0-, 1-, 2- and 3-simplices]{An $n$-dimensional simplex is a combinatorial primitive made from a set of $n+1$ vertices. A 0-simplex is thus a point, a 1-simplex is a line segment, a 2-simplex is a triangle, and a 3-simplex is a tetrahedron. Here they are shown as if embedded in $\mathbb{R}^3$.}
-\label{fig:simplex}
-}
-\reffig{fig:simplicescampus} shows a group of buildings represented as a 3D simplicial complex.
-\begin{figure*}[b]
-\centering
-\includegraphics[width=\linewidth]{figs/simplicescampus}
-\caption[The TU Delft campus as a 3D simplicial complex]{The buildings in the TU Delft campus are represented as a 3D simplicial complex, such that each separate building is a set of adjacent tetrahedra. Note that only the tetrahedra's edges are shown here.}
-\label{fig:simplicescampus}
-\end{figure*}
-A 0D simplicial complex consists of a set of discrete points (\ie\ a point cloud) and a 1D simplicial complex is a plane graph.
-A 2D simplicial complex is known as a \emph{triangulation} and a 3D simplicial complex as a \emph{tetrahedralisation}.
-
-A $j$-dimensional face ($j$-face) of an $i$-simplex, $j < i$, is a $j$-simplex made from a proper subset of its vertices.
-Sometimes the dimension of the face is omitted and it can be deduced from the context, but in GIS it generally refers to each of the $i+1$ $(i-1)$-faces of an $i$-simplex.
-In the context of an $i$-dimensional simplicial complex, a face refers to each of the $i$-simplices in the complex, such as the triangles in a triangular mesh.
-
-More formally, a simplicial complex can be defined as a collection of simplices such that:
-\begin{itemize}
-\item
-every face of a simplex is also in the simplicial complex;
-\item
-the intersection of any two simplices is either empty or is a common face of both of them\footnote{Note that this implies a definition where a simplex contains its boundary.}.
-\end{itemize}
-
-Based on the set of common vertices shared by two simplices, it is possible to define certain \emph{topological relationships} between them.
-Two $i$-simplices are said to be adjacent if they have a common $(i-1)$-face.
-An $i$-simplex and a $j$-simplex, $i \neq j$, are said to be incident if either is a face of the other.
-
-A cell complex is a structure made of connected \emph{cells}, where an $i$-dimensional cell ($i$-cell) is an object homeomorphic to an open $i$-ball (\ie\ point, open arc, open disk and open ball).
-0-cells are known as vertices, 1-cells as edges, 2-cells as faces and 3-cells as volumes.
-Considering only linear geometries, 1-cells are thus line segments, 2-cells polygons and 3-cells polyhedra.
-\reffig{fig:cellscampus} shows a group of buildings represented as a 3D cell complex.
-\begin{figure*}[tbp]
-\centering
-\includegraphics[width=\linewidth]{figs/cellscampus}
-\caption[The TU Delft campus as a 3D cell complex]{The buildings in the TU Delft campus are represented as a 3D cell complex. All the 2-cells of a 3-cell are shown in the same colour, the 1-cells are shown as black lines.}
-\label{fig:cellscampus}
-\end{figure*}
-
-A $j$-dimensional face ($j$-face) of an $i$-cell is a $j$-cell, $j \leq i$, that lies on the boundary of the $i$-cell.
-A facet of an $i$-cell is an $(i-1)$-face of the cell.
-As in a simplicial complex, two $i$-cells are said to be adjacent if they have a common facet, and an $i$-cell and a $j$-cell, $i \neq j$, are said to be incident if either is a face of the other.
-In the context of an $i$-dimensional cell complex, a face refers to each of the $i$-cells in the complex, such as the polygons in a polygonal mesh.
-
-More formally, a cell complex can be defined inductively as in \citet{Hatcher02}.
-An $n$-dimensional cell complex is built by starting from a set of isolated vertices, and $\forall 0 < i \leq n$ an $i$-cell is built by attaching itself to the $(i-1)$-faces (facets) on its boundary, these facets having been previously added to the complex.
-That is, an edge is built by linking the vertices on its boundary, a surface by linking the edges on its boundary, a volume by linking the surfaces on its boundary, and so on.
-Like in a simplicial complex, a facet of a $n$-cell in an $n$-dimensional cell complex lies between it and an adjacent $n$-cell, unless it is on the boundary of the complex.
-
-Apart from the concepts of adjacency, incidence and other relationships between between individual simplices and cells in a complex, it is also possible to define relations and transformations between entire simplicial/cell complexes.
-The \emph{Poincar\'e duality} theorem \citep{Poincare93}\footnote{It was only formulated as an observation without proof in \citet{Poincare93}. \citet{Poincare95} describes it in more detail but contains a flawed proof.
-Valid proofs would have to wait until \citet{Poincare99,Poincare00}.} states that for every $n$-dimensional simplicial/cell complex, there exists a \emph{dual simplicial/cell complex} of the same dimension, where for every dimension $i$, the $i$-simplices/cells in the original complex are mapped one-to-one to $(n-i)$-simplices/cells in the dual complex.
-The \emph{duality transformation} is an operation that creates the dual of a simplicial/cell complex.
-This can be seen as a generalisation of the concept of a dual graph in 2D, where a graph $G$ has a dual $G^\ast$, such that vertices in $G$ correspond to faces in $G^\ast$, edges in $G$ correspond to edges in $G^\ast$ and faces in $G$ correspond to vertices in $G^\ast$.
-
-For example, considering the Platonic solids in \reffig{fig:ps}, the tetrahedron is self-dual (\ie\ it is dual to itself), the octahedron is dual to the cube (and vice versa), and the dodecahedron is dual to the icosahedron (and vice versa).
-\begin{figure}[tbp]
-\centering
-\subfloat[]{
-\includegraphics[width=0.15\textwidth]{figs/ps_tetrahedron}
-\label{subfig:ps-tetrahedron}}
-\quad
-\subfloat[]{
-\includegraphics[width=0.15\textwidth]{figs/ps_octahedron}
-\label{subfig:ps-octahedron}}
-\quad
-\subfloat[]{
-\includegraphics[width=0.15\textwidth]{figs/ps_hexahedron}
-\label{subfig:ps-hexahedron}}
-\quad
-\subfloat[]{
-\includegraphics[width=0.15\textwidth]{figs/ps_dodecahedron}
-\label{subfig:ps-dodecahedron}}
-\quad
-\subfloat[]{
-\includegraphics[width=0.15\textwidth]{figs/ps_icosahedron}
-\label{subfig:ps-icosahedron}}
-\caption[The Platonic solids]{The Platonic solids are the five regular polyhedra that have regular polygonal faces: (a) tetrahedron, (b) octahedron, (c) cube or hexahedron, (d) dodecahedron, and (e) icosahedron. From Wikimedia Commons.}
-\label{fig:ps}
-\end{figure}
-This transformation can be seen by creating a new vertex at the centre point of the face of the Platonic solid, connecting these vertices when their dual faces are adjacent.
-The original vertices become faces whose number of vertices is equal to the number of originally incident faces.
\ No newline at end of file
diff --git a/work_report/modelling-background.tex b/work_report/modelling-background.tex
deleted file mode 100644
index 94211df..0000000
--- a/work_report/modelling-background.tex
+++ /dev/null
@@ -1,806 +0,0 @@
-% !TEX root = thesis.tex
-
-\chapter{Modelling of 2D/3D space, time, scale and attributes}
-\label{ch:modelling-background}
-
-This chapter describes how space is usually modelled in 2D/3D GIS and related disciplines, as well as the non-spatial characteristics that are typically used together with it, such as time and scale.
-% With a view to higher dimensions
-\refse{se:spatial-modelling} explains what spatial modelling is and the abstraction process through which it is accomplished, discussing the main approaches that can be followed at three levels in this abstraction process, which take the form of data models, data structures and dual combinatorial/embedding structures.
-\refse{se:modelling-space} describes how 2D and 3D space is currently modelled in a range of representative concrete cases, from the very minimal representations used in exchange file formats, in which simple structures and low storage requirements are preferred, up to those used internally in CAD-like software, in which the complex operations that are required necessitate the explicit storage of precise topological relationships.
-
-Afterwards, this chapter contains sections on how specific non-spatial characteristics---that nevertheless have a strong link to space---are modelled: time in \refse{se:modelling-time} and geographic scale or the level of detail of a model in \refse{se:modelling-scale}.
-Finally, \refse{se:modelling-conclusions} concludes the chapter by pointing out some of the shortcomings of the aforementioned approaches to model 2D/3D space, time, scale and attributes.
-As will be seen in \refch{ch:nd-modelling}, many of these shortcomings can be resolved by using a higher-dimensional modelling approach.
-
-\section{Spatial data models and data structures}
-\label{se:spatial-modelling}
-
-Spatial modelling aims at the creation of digital representations of real-world objects.
-However, real-world objects are complex and vaguely defined, while computers can only operate on their heavily abstracted and precisely defined digital counterparts.
-The spatial modelling process therefore uses a series of progressive abstractions, which start by interpreting reality as a set of high-level concrete entities that still resemble real-world objects and processes, and ultimately aims at creating abstract low-level representations that are close to what is actually stored in a computer, possibly using intermediate levels in the process.
-
-This implies the existence of different levels of abstraction, and at each of these levels different approaches can be followed.
-While not all of these approaches are compatible with each other, the feasible combinations nevertheless result in a very large number of different computer representations.
-
-As \refse{ss:taxonomies} explains, there are many classification schemes that attempt to group these approaches in a meaningful way according to various criteria, finding similarities and identifying schemes used by more than one representation.
-However, there is no agreement on the optimum number of levels of abstraction to be used, at which level some of these representational choices fit, nor a comprehensive clear-cut classification of them with no overlapping methods.
-In fact, as many of these choices only partially solve the difficulties of representing a digital object, a single computer system generally must resort to multiple methods.
-For instance, implicit (high-level) models are often used as a way to provide easy user interaction in software.
-However, these generally have to be `evaluated' into another, more explicit (low-level) model in order for them to be visualised \citep{Mantyla88} or to perform the type of computations expected in GIS, such as many spatial analysis and geometric operations.
-
-Nevertheless, recognising this layered approach as the basis of the spatial modelling process, this section introduces the process by describing the main approaches that can be followed at three different levels: high-level \emph{data models} using different paradigms to structure and discretise space in \refse{ss:data-models}, how \emph{data structures} implement these data models to model 2D/3D space in a form that is easy to implement in a computer in \refse{ss:data-structures}, and how \emph{combinatorial and embedding structures} respectively model the topological and geometric information of some of these data structures in \refse{ss:combinatorial-embedding}.
-
-\subsection{Classifications of spatial models}
-\label{ss:taxonomies}
-
-Considering that there is an incredible variety of methods that are used to create digital models of the world, but many of these share important parts of their respective approaches, there are various classifications that attempt to group them in a meaningful way.
-
-Some of these are primarily based on human cognition of space.
-\citet{Couclelis92} distinguishes views based on empty space populated by discrete \emph{objects} from those based on continuous space-filling \emph{fields}, and \citet{Goodchild92} links objects and fields to specific computer models that are suitable for them.
-\citet{Freundschuh97} makes distinctions based on the \emph{scale} of such models compared to how people experience space, separating models of objects that are intuitively manipulatable by humans from those that are not.
-
-Others are based on suitability for a particular application or use case.
-For example, \citet{Afyouni11} does so for indoor navigation, \citet{Gold05} for multidimensional GIS, \citet{Dominguez11} for building interiors and \citet{Pelekis04} for spatio-temporal models.
-
-However, for the purposes of this thesis, it is more interesting to consider the classifications that reflect a different discretisation of space or mathematical basis, as these will produce significantly different computer representations.
-
-Regarding general classifications in the GIS domain, researchers and practitioners alike generally agree on the existence of two high-level \emph{data models}---formalised structures describing the world as abstract primitives---, which are the \emph{vector} and \emph{raster} models.
-These are subdivided into a variety of low-level \emph{data structures}, particular implementations of these data models, of which there are many \citep{vanKreveld97a}.
-This classification is not ideal as GIS data structures are usually specified in an ad hoc manner, sometimes accompanied with added indexing structures that do not neatly fit into the vector or raster approach (\eg\ R-trees \citep{Guttman84} and $k$-d trees \citep{Bentley75}).
-
-Apart from data models and data structures, some authors consider additional levels.
-\citet{Frank92} considers \emph{spatial concepts} as well, the human notions used to understand space.
-\citet{Peuquet84} considers \emph{reality} itself as a topmost level, including all aspects that may or may not be perceived by individuals, and a lowermost level with the \emph{file structure}, describing how the information is actually represented in hardware.
-These are certainly interesting and worthy of study, but they are out of the scope of this thesis.
-
-In the domain of geometric modelling and computer graphics, the schemes used are more varied, and thus the classifications used differ significantly.
-For 3D objects, there is usually a high-level classification with several \emph{solid representation schemes} \citep{Requicha80,Hoffmann92,Foley95}, general paradigms to model the world using a different approach to discretise and decompose objects.
-As these normally do not reach the level where it is possible to unambiguously devise a single computer implementation, these are more akin to the data models used in GIS.\@
-\citet{Mantyla88} follows a similar classification, but groups these schemes into three paradigms: \emph{decomposition models}, \emph{constructive models} and \emph{boundary models}, while recognising the existence of hybrid approaches combining multiple paradigms.
-
-While some of these schemes use 3D primitives stored as simple parametric structures, many of them rely on the specification of 2D primitives using a separate mechanism, which can also be used directly for the description of 2D objects.
-These are usually described at a low level, generally consisting of 2D cell or simplicial complexes respectively in the form of \emph{polygon} or \emph{triangle meshes}, which use one of a few \emph{data structures} \citep{Joy03,Alumbaugh05,Blandford05,deFloriani05}.
-
-Some authors follow a more pragmatic approach, directly classifying data structures based on the class of objects that they are capable of representing.
-\citet{Comic12} does so for cell complexes, \citet{deFloriani05} for simplicial complexes, \citet{Lienhardt91} for spaces in different dimensions, \citet{deFloriani05a} for models supporting multiple levels of detail, and \citet{Lienhardt09} for models for simplicial, simploidal\footnote{Cartesian products of simplices} and cell structures.
-
-Finally, at the lowest level, some authors distinguish between a \emph{topological} or \emph{combinatorial model} \citep{Lienhardt91}, which describes the connectivity between a set of predefined elements, and a \emph{geometric} or \emph{embedding model}, which specifies the exact shape and position of individual elements \citep{Mantyla88}.
-
-\subsection{Data models or representation schemes}
-\label{ss:data-models}
-
-Data models are considered as different representation schemes operating at a high-level, differing mostly in their overall approach to decompose and discretise space into a set of elements with certain characteristics.
-Just as the concepts of geometry and topology seen in \refch{ch:modelling-mathematics}, these models are essentially \emph{dimension-independent}---even if in practice they are generally implemented as dimension-specific data structures.
-
-As argued by \citet{McKenzie01}, the ideal data model to be used depends on the application.
-An ideal data model is expected to be both simple and powerful, but unfortunately these properties tend to conflict.
-Powerful structures are built upon small and simple primitives of a fixed form with a fixed (or at least bounded) number of links to other related primitives, such as boxes or simplices, enabling them to have a simple but powerful algebra to manipulate them and to navigate between their primitives efficiently, \eg\ the quad-edge in 2D \citep{Guibas85} or the facet-edge in 3D \citep{Dobkin87}.
-However, partitioning complex objects into these simple primitives can be difficult and result in a large number of primitives, requiring significant preprocessing, making them space-intensive and limiting the types of objects that might be stored.
-In this sense, different data models make different choices and necessarily involve a trade-off.
-
-The main data models that are used in 2D and 3D are briefly described in the following sections, roughly in order of increasing explicitness.
-A short statement on how well they extend to higher dimensions is also included in each section.
-The most promising of these models are further analysed in a higher-dimensional context in \refse{se:data-structures}.
-
-\subsubsection{Primitive instancing}
-
-In \emph{primitive instancing}, the system defines a library of primitives suitable for a particular application.
-Each of the primitives in the library represents a template for an object that can be parametrised in terms of high-level parameters, such as the number of teeth and the size of a gear or the diameter and thickness of a pipe \citep{Foley95}.
-In 3D city modelling, a common application involves the modelling of roofs using a library of basic roof shapes (\eg\ flat, hipped and gabled) \citep{Kada07}.
-
-The fact that only a few parameters need to be defined makes it easy to create objects, that is, as long as the desired object resembles one of the templates in the library.
-Moreover, given these parameters and a primitive's position and orientation, a program can create the geometry of an object that matches those parameters as output using a more explicit representation.
-Such an object can then be used either directly or as a base for further operations.
-
-Usually, the primitives used in primitive instancing are 3D volumetric objects, but they can actually be objects of any dimension.
-However, this approach is not very practical for higher-dimensional models of geographic information, as the objects modelled generally do not conform to a set of easily parametrisable primitives\footnote{There are certainly exceptions, such as 3D+scale models as 4D models where a volume collapses to a point.
-However, the large number of primitives that would need to be defined for a system of this kind would make it impractical.}.
-
-\subsubsection{Sweep representations}
-
-Many objects can be modelled as the space occupied by another object while it is being translated and rotated along a path.
-Usually a 2D cross-section is used for this purpose, which is either translated or rotated, generating a volume in 3D space.
-Generalisations where the cross-section is deformed as well are sometimes considered \citep{Blackmore94}.
-When the path is linear and the cross-section is not rotated, it is called a \emph{translational sweep}, or an \emph{extrusion} as it resembles a physical extrusion process as used in manufacturing.
-When the cross-section does not move and it is merely rotated, it is called a \emph{rotational sweep} or a \emph{solid of revolution}.
-Among other applications, this representation is particularly convenient for applications that require volume computations as it matches well with calculus techniques to compute integrals, which can be easily solved numerically in a computer \citep{Lee82}.
-
-Since the description of a 2D cross-section is easier than that of a full 3D volume, this significantly eases the process of modelling certain types of objects \citep{Weld90}.
-In a higher-dimensional context, this property is later used to generate $n$-dimensional extruded models in \refch{ch:extrusion}.
-Generating more general higher-dimensional sweeps and revolutions is also possible using similar methods.
-
-\subsubsection{Constructive solid geometry}
-
-\emph{Constructive solid geometry} (CSG) \citep[\S{}12.3]{Requicha77} represents objects as a tree of regularised Boolean set operations on a set of simple parametrisable primitives.
-In most instances, these are volumetric primitives such as balls, cylinders, parallelepipeds, cones and tori.
-\reffig{fig:csg} shows an example of such an object.
-\marginpar{
-\captionsetup{type=figure}
-\includegraphics[width=\marginparwidth]{figs/csg}
-\caption[An object represented as a tree of Boolean set operations]{An object represented as a tree of Boolean set operations on a sphere, a cube and three cylinders. From Wikimedia Commons.}
-\label{fig:csg}
-}
-One of the strengths of CSG is that it allows many operations to be distributed among the primitives in a tree.
-
-The regularisation step ensures that the resulting objects of any Boolean set operation are both volumetric and water-tight \citep{Requicha78}, making many computations easy and robust.
-It also makes it relatively easy to transform a CSG tree to a more explicit representation.
-CSG is therefore used in most CAD software and in many game engines.
-
-While CSG extends naturally to higher dimensions, evaluating general CSG trees into more explicit representations is non-trivial in dimensions higher than three.
-A possible approach to do so would involve higher-dimensional Nef polyhedra, which are described afterwards.
-
-\subsubsection{Boolean set operations on half-spaces}
-
-There are various representations that store objects using an expression made of Boolean set operations on a set of (open or closed) half-spaces.
-Any convex object of any dimension can be represented as the intersection of a finite set of half-spaces, a common problem in both linear programming and computational geometry \citep{Shamos76,Preparata79}.
-As \reffig{fig:halfspace} shows, if a polyhedron is first decomposed into convex parts \citep{Chazelle79,Bajaj90}, it is then possible to represent an object as a union of these convex parts, which are then represented as intersections of half-spaces.
-\begin{figure}[tb]
-\centering
-\subfloat[]{
-\includegraphics[scale=0.16]{figs/halfspace}
-\label{subfig:halfspace}}
-\subfloat[]{
-\includegraphics[scale=0.16]{figs/halfspace-1}
-\label{subfig:halfspace-intersection}}
-\subfloat[]{
-\includegraphics[scale=0.16]{figs/halfspace-2}
-\label{subfig:halfspace-union}}
-\caption[A polygon represented as the union of two convex polygons]{(a) A polygon can be represented as the union of its decomposition into the convex polygons (b) and (c). Each of these can then be represented as the intersection of four half-planes.}
-\label{fig:halfspace}
-\end{figure}
-
-Each of these half-spaces can then be stored easily, \eg\ as a tuple containing the coefficients of a hyperplane\footnote{\ie\ a line in 2D and a plane in 3D.} equation plus an up/down direction \citep{Naylor90,Thompson07}.
-The half-spaces for an object can be stored either all together or separate per convex part.
-Together, for instance, as a collection of plane equations that represent all the faces of all the convex parts, and each convex part is represented as a set of tuples of Boolean values, where each value states whether the part is on the up or down side of a specific plane \citep{Tammik07}.
-
-\subsubsection{Nef polyhedra}
-
-Nef polyhedra \citep{Nef78,Bieri88} follow a similar approach to half-space models, but extend it with the concept of a local $n$-dimensional pyramid\footnote{This is equivalent to a triangle in 2D and a polyhedral pyramid in 3D.}, which stores the neighbourhood information around every vertex.
-As \reffig{fig:nef} shows, the local pyramid of a vertex thus contains the symbolic intersection of an infinitesimally small sphere (in 3D) or circle (in 2D) with the volumes, faces and edges incident to this vertex.
-\marginpar{
-\captionsetup{type=figure}
-\centering
-\subfloat[]{\includegraphics[width=\marginparwidth]{figs/nef-1}} \\
-\subfloat[]{\includegraphics[width=0.7\marginparwidth]{figs/nef-2}}
-\caption[A Nef polygon represented by a set of local pyramids]{(a) A Nef polygon is represented by (b) a set of local pyramids (circles). At every local pyramid, the polygon (red) becomes an angular interval. Incident edges become points at the endpoints of these intervals.}
-\label{fig:nef}
-}
-An incident volume thus becomes a face, an incident face becomes an edge, and an incident edge becomes a vertex on the surface of the local pyramid sphere/circle, essentially lowering the dimension of every object by one.
-An 2D/3D object can be represented as a set of local pyramids, which can individually be stored using simpler 1D/2D data structures.
-
-Nef polyhedra have two properties that make them one of the most promising representations for higher-dimensional models of geographic information: (i) the possibility to reduce the dimensionality of a representation by one, which can be applied recursively in order to model objects of any dimension, and (ii) the possibility to perform operations on the local pyramid level.
-The former is discussed in more detail in \refse{ss:implicit-models} and the latter in \refse{ss:operations-nef}.
-
-\subsubsection{Function representation}
-
-Function representation, commonly abbreviated as F-rep, involves representing objects as point sets using an arbitrary continuous function \citep{Pasko95}, which is represented as an algebraic expression.
-When a given function $f(x_0, x_1, \ldots, x_n)$ is evaluated at a point with coordinates $(x_0, x_1, \ldots, x_n)$, it is possible to know if the point lies in the interior, boundary or exterior of an object.
-If it is positive the point is in the interior of the object, when it is zero it is on the boundary of the object---in 2D known as an isoline and in 3D as an isosurface---, and when it is negative it is outside the object.
-
-By varying the number of input parameters, which in most cases represent a point along an axis, function representations are applicable to any dimension.
-Moreover, unlike a half-space inequality, such functions do not need to be linear.
-As with half-space based representations, the spaces described by these functions can be combined using Boolean set operations, which is done on the basis of Rvachev functions (R-functions) \citep{Rvachev63}.
-However, evaluating these functions in higher dimensions can be complex, and obtaining a continuous function that adequately models a higher-dimensional object is also non-trivial.
-
-\subsubsection{Exhaustive enumeration}
-
-Starting from the description of a domain that covers the objects that need to be described, a simple deterministic rule is used in order to partition the domain directly into cells, which are of the same dimension as the domain (\ie\ they are space-filling).
-In this manner, the decomposition rule is encoded into the model rather than in the data being represented, and so the cells do not need to store any geometric information of their own.
-Normally, the domain has a simple shape (\eg\ a rectangle, hexagon or box) \citep[\S{}6.8]{ISO19123:2007} and the rule partitions it into simple cells of the same size and shape (\eg\ rectangles or boxes themselves), in which case it is called a \emph{monohedral} tessellation \citep{Boots99}.
-If the cells are regular polygons or polyhedra, it is known as as \emph{regular} tessellation.
-
-In most cases, squares or rectangles (in 2D) and cubes or parallelepipeds (in 3D) are used for simplicity, respectively resulting in pixel and voxel structures.
-When other shapes are used, it is normally desirable to have cells that resemble equally-sized disks or balls as much as possible, something that is related to the sphere packing or kissing number problems in geometry \citep{Conway92}.
-\emph{Semi-regular} tessellations, which consist of more than one type of polygon/polyhedron are also possible but are not widely used, even in 2D.
-In 2D, the most commonly used other shapes are triangles and hexagons.
-In 3D, parallelepipeds or cubes are almost always used, but the face-centred cubic or hexagonal close-packed lattices are possibilities that resemble balls more closely.
-For instance, the new model cycle from the European Centre for Medium-Range Weather Forecasts\footnote{\url{http://www.ecmwf.int/en/about/media-centre/news/2016/new-forecast-model-cycle-brings-highest-ever-resolution}} uses a cube-octahedron honeycomb that wraps around the Earth.
-
-These cells are then used to record whether the cell belongs to the interior of the object or not, or in the case of multiple objects, which objects are present inside the cell.
-After such a tessellation is defined, a programatic order or path that traverses all cells (\ie\ a space filling curve) is defined \citep{Sagan94}, and the order of the cells along this curve is used to store them by \emph{enumerating} for each cell whether a cell belongs to the interior of an object.
-
-Exhaustive enumeration schemes are straightforward to extend to higher dimensions, as is further discussed in \refse{ss:regular-partitions}, with the caveat that their space complexity can increase exponentially on the dimension.
-
-\subsubsection{Hierarchical subdivisions using trees}
-
-A more general possibility to partition a domain involves using a hierarchical scheme where a space is recursively subdivided according to a particular criterion, resulting in a tree structure where a given node is a partition primitive that divides the space defined by its parent.
-The leaves of the tree are then used to record whether a cell belongs to the interior of an object or not.
-Such structures are generally known as space partitioning trees.
-In this manner, it is possible to efficiently partition spaces of any dimension, including areas and volumes where the objects' sizes are significantly different.
-However, the shape of a cell in the subdivision is only known after traversing a path of the tree all the way from its root to the leaf that corresponds to the cell.
-
-In the simplest case, the space can be split evenly into halves along all axes at every partition node, resulting in a \emph{quadtree} in 2D \citep{Finkel74} or an \emph{octree} in 3D \citep{Meagher80}.
-Bintrees \citep{Samet85} partition space alternating among dimensions rather than all at once, while $k$-d trees \citep{Bentley75} do so at an arbitrary point rather than at the midpoint of a space.
-Many other types of trees however exist.
-See \citep{Manolopoulos06}.
-
-As in exhaustive enumeration, this type of representation extends very naturally to higher dimensions (\refse{ss:hierarchical-subdivisions}).
-However, the space used by hierarchical subdivisions can also increase exponentially on the dimension.
-
-\subsubsection{More general cell decompositions}
-
-Another possibility to represent the geometry of an object involves its decomposition into cells that are more complex than those in the exhaustive enumeration approach, such that they are still of the same dimension as the domain being partitioned but might have different sizes and/or shapes.
-Nevertheless, they should still be describable as single computer primitives.
-This requires geometric information to be stored within each cell (\eg\ the coordinates of one or more points).
-
-While an arbitrary number of cell decomposition schemes are possible, the most interesting ones in a dimension-independent context are $n$-dimensional constrained triangulations and Voronoi diagrams, as these have a simple dimension-independent formulation.
-2D constrained triangulations \citep{Chew89,Shewchuk96} and 3D constrained tetrahedralisations \citep{Si05} are very commonly used in GIS in order to subdivide objects respectively into triangles and tetrahedra, resulting in models that can be represented as simplicial complexes where every simplex can be respectively described by three and four linearly independent points at their vertices.
-Another common possibility uses Voronoi subdivision described by a single point per cell \citep{Voronoi08}, something that is particularly suitable to field-like GIS data \citep{Ledoux06}.
-
-More information on how simplicial complexes are stored in 2D and 3D GIS is given in \refse{ss:data-structures}.
-\refse{ss:simplicial-complexes} later describes how this extends readily to higher dimensions.
-
-\subsubsection{Incomplete (implicit) models}
-
-Incomplete models attempt to describe a space partition based on implicit rules applied to lower-dimensional primitives only, usually for simplicity purposes.
-As such, the actual cells forming the partition are created on the fly.
-Under some circumstances, such as when modelling non-manifolds or when the dimension of the primitives is significantly lower than that of the highest-dimensional cells, they cannot be unambiguously described.
-
-The most typical problematic examples are wireframe models in 3D, which represent volumes using only vertices and edges.
-While in many cases it is possible to correctly interpret a volume from a wireframe model \citep{Brewer86,Hanrahan82}, as shown in \reffig{fig:wireframe} there are cases wireframe representations are ambiguous.
-\begin{figure}[tbp]
-\centering
-\subfloat[]{
-\includegraphics[width=0.35\linewidth]{figs/wireframe}
-\label{subfig:wireframe}}
-\quad
-\subfloat[]{
-\includegraphics[width=0.35\linewidth]{figs/wireframe-1}
-\label{subfig:wireframe-1}}
-\\
-\subfloat[]{
-\includegraphics[width=0.35\linewidth]{figs/wireframe-2}
-\label{subfig:wireframe-2}}
-\quad
-\subfloat[]{
-\includegraphics[width=0.35\linewidth]{figs/wireframe-3}
-\label{subfig:wireframe-3}}
-\caption[A wireframe model can have different interpretations]{The wireframe model (a) can be interpreted as the three different volumes (b), (c) and (d).}
-\label{fig:wireframe}
-\end{figure}
-They are therefore considered an incomplete representation and are generally not used in current systems.
-
-Despite their drawbacks, incomplete implicit models are however frequently used in 3D GIS and when modelling time, resulting in ill-defined volumes or unclear equivalences of objects across time.
-Many of these disadvantages are alluded later on in order to justify using more explicit representations in higher dimensions.
-
-\subsubsection{Boundary representation}
-
-Considering the Jordan curve theorem \citep{Jordan87}, which states that a closed curve separates the plane (\ie\ $\mathbb{R}^2$) into two parts: an \emph{interior} shape and an \emph{exterior} shape, it is possible to use this curve in order to \emph{implicitly but unambiguously} represent the interior (or exterior) shape.
-This theorem was generalised to higher dimensions as the Jordan-Brouwer theorem by \citet{Lebesgue11} and \citet{Brouwer11}\footnote{This is somewhat contentious. See \citet[Ch.~5]{van-Dalen13}.}, implying that a volume in $\mathbb{R}^3$ can be represented by the 2D boundary surface that separates its interior from its exterior.
-This method, known as \emph{boundary representation}, \emph{B-rep} or \emph{surface modelling}, reduces the complexity of the problem by making it possible to use 2D data models/structures to store 3D objects, which are significantly simpler.
-Moreover, by decomposing the 2D surface into simple cells, \eg\ triangles or polygons, it becomes possible to represent the surface using one of the many data structures capable of representing 2D cell complexes, and if these cells support curved domains (\eg\ NURBS), these can be used to represent complex surfaces as well.
-
-While certain problems become more difficult by the use of boundary representation, such as the fact that it is easy to create invalid objects, some others can be performed directly on the 2D cells.
-For instance, visibility queries or determining if a point is in the interior of an object can be performed by shooting rays.
-
-As will be discussed in \refse{ss:data-structures} in 2D/3D and \refse{ss:cell-complexes} in $n$D, cell complexes are effectively represented using boundary representation schemes.
-\refse{ss:ordered-topological-models} instead shows how an $n$-dimensional cell complex can be represented using a data structure based on a simplicial complex.
-The latter approach arguably combines the benefits of both simplicial complexes and cell complexes, and was thus used for most of the methods developed in the latter chapters of this thesis.
-
-\subsection{Data structures}
-\label{ss:data-structures}
-
-The terms `data model' and `data structure' are often used interchangeably, but within this thesis it is useful to make a distinction between a data model, \ie\ a particular \emph{dimension-independent} discretisation of space into abstract primitives of a certain form, from the data structure(s) used to implement it, \ie\ their representation in a computer-compatible form \citep{Frank92}, which is often \emph{dimension-specific}.
-A data model broadly defines the shape of the primitives and relationships that exist between them.
-In contrast, a data structure defines a \emph{concrete representation} of these primitives, deciding to \emph{explicitly} store some of these relations and omit others.
-Within this thesis, we refer to the omitted relations as being described \emph{implicitly}.
-Note that even implicit relations can usually be computed from a model, but with an added computational cost.
-
-This distinction is blurred because many data models have very straightforward, natural representations\footnote{A clear exception are the ad hoc data structures often used in GIS, which usually define a set of fields that is different per dimension, resulting in awkward definitions at the data model level.}.
-As shown in \refse{se:geometry}, many geometric primitives can be stored on the basis of a set of points or the coefficients of an equation---all of which can be stored as tuples of numbers.
-This is also true for the subdivision primitives in cell decomposition schemes and in most cases for the definition of the domain in exhaustive enumeration as well.
-Meanwhile, primitive instancing schemes and constructive solid geometry models can be stored as tuples of parameters.
-For instance, one of these parameters is the shape that is used and the other parameters store its parametrisable characteristics.
-
-However, some other data models work with primitives that are more abstract or complex to represent in a computer.
-For instance, the schemes used by sweep representations, Nef polyhedra and boundary representations all reduce the dimensionality of the objects to be modelled, but ultimately need either to be applied recursively or to be combined with a different specific method.
-
-This section lists the data structures for subdivisions of 2D and 3D space that have a possible natural extension to higher dimensions, grouped based on the class of objects that they are capable of representing efficiently,
-% It is worth noting that some of them were originally developed for a particular application only (\eg\ the quad-edge data structure for the computation of Voronoi diagrams \citep{Guibas85}) or for a more comprehensive class of objects than the one where they are hereafter listed (\eg\ the DCEL for intersecting polyhedra \citep{Muller78}).
-% However, this classification is based on the class of objects that they can represent in practice
-\ie\ without requiring brute-force searches or external data structures to navigate between the elements.
-
-\subsubsection{2D and 3D simplicial complexes}
-
-Simplicial complexes can always be respectively stored using the data structures for cell complexes, which are presented in the following sections.
-In some cases this is necessary, such as when a simplicial complex is first being created by triangulating a cell complex.
-However, the simplices in a simplicial complex have a fixed shape, which allows for the usage of more efficient data structures.
-
-An $n$-dimensional simplex has a fixed number of faces of every dimension up to $n$, which are given by Pascal's triangle as shown in \reffig{fig:pascal-triangle}.
-\marginpar{
-\captionsetup{type=figure}
-\centering
-\includegraphics[width=0.7\marginparwidth]{figs/pascal-triangle}
-\caption[Pascal's triangle]{The $(i-2)$-th row of Pascal's triangle, which is obtained by adding the numbers in the row above, gives the number of faces of every dimension in an $i$-simplex. For instance, a tetrahedron (3-simplex) has 4 vertices, 6 edges, 4 faces and 1 volume.}
-\label{fig:pascal-triangle}
-}
-This means that in a 2D simplicial complex, \ie\ a triangulation\footnote{even if it is embedded in a dimension higher than two, \eg\ the triangulated surfaces embedded in 3D (TINs) that are common in GIS}, every triangle has three vertices and three edges, and it is adjacent to at most three other triangles.
-Similarly, in a 3D simplicial complex, \ie\ a tetrahedralisation, every tetrahedron has four vertices, six edges and four faces, and it is adjacent to at most four other tetrahedra.
-
-Because of this, 2D simplicial complexes are usually stored using triangle-based data structures and 3D simplicial complexes using tetrahedron-based data structures.
-These respectively use triangles/tetrahedra as primitives, which can store attributes for themselves (\eg\ whether it is part of a given object) and for (some of) their faces, and are linked to their adjacent triangles/tetrahedra.
-As shown in \reffig{fig:2-simplex}, a minimal representation of this type would only consist of triangles/tetrahedra linked to their vertices, either as tuples of coordinates or as pointers to a member of a list of separate point primitives.
-\begin{figure}[b]
-\centering
-\subfloat[Adjacent triangles]{
-\includegraphics[width=0.27\linewidth]{figs/2-simplex-adjacency}
-\label{subfig:2-simplex-adjacency}}
-\quad
-\subfloat[Vertices of a triangle]{
-\includegraphics[width=0.27\linewidth]{figs/2-simplex-vertices}
-\label{subfig:2-simplex-vertices}}
-\quad
-\subfloat[Coordinates of a vertex]{
-\includegraphics[width=0.27\linewidth]{figs/0-simplex}
-\label{subfig:0-simplex}}
-\caption[A triangle-based data structure]{A simple triangle-based data structure consists of a set of triangles, each of which points to its three adjacent triangles and its three incident vertices.
-This is accompanied by an indexed list of vertices and their coordinates.}
-\label{fig:2-simplex}
-\end{figure}
-
-Another possibility, also enabled by the fixed form of the simplices in a simplicial complex, is to use compression schemes in order to store them more efficiently.
-For example, \citet{Blandford05} show how several of these schemes can be used: storing only some of the vertices in each simplex, difference coding to minimise the size of the IDs that are stored, and using collections of adjacent simplices (\eg\ the star of a vertex) as primitives.
-It is also possible to use progressive representations that approximate the simplicial complex incrementally~\citep{Popovic97}, or to compress it as a sequence of operations from which the original structure can be incrementally deduced \citep{Rossignac99}.
-
-\subsubsection{2D cell complexes}
-
-Considering the Jordan curve theorem \citep{Jordan87} and the principles of boundary representation, as presented in \refse{ss:data-models}, $n$D cells can be represented based on their ($n-1$)D boundary.
-2D cells can be thus be represented based on their 1D boundary.
-Since linear 1D objects, such as the polygonal curve (polyline) in \reffig{fig:polyline}, are notably easy to represent, this is the approach that is favoured by most data structures for 2D cell complexes.
-\marginpar{
-\captionsetup{type=figure}
-\centering
-\includegraphics[width=0.4\marginparwidth]{figs/polyline}
-\caption[A polygonal curve or polyline]{A \emph{polygonal curve}, also known as a \emph{polyline}, is a curve made from contiguous line segments.
-It is commonly represented as a sequence of points connected by implicit line segments, in this case $(p_1,p_2,p_3,p_4)$.}
-\label{fig:polyline}
-}
-
-The simplest data structures for 2D cell complexes store every 2-cell independently as a list of vertices, as is shown in \reffig{fig:polygon-model}.
-\marginpar{
-\captionsetup{type=figure}
-\centering
-\includegraphics[width=\marginparwidth]{figs/polygon-model}
-\caption[The polygon model]{In the polygon model, every polygon is represented separately as a list of vertices. Note that every vertex is thus represented once for each polygon where it is used.}
-\label{fig:polygon-model}
-}
-This might be done by storing its coordinates directly in the list, sometimes known as the polygon model, or by keeping an external list of points and referring to point IDs in it, sometimes known as the point dictionary representation \citep{Peucker75}.
-
-Another simple approach consists of identifying the polygonal curves that form the common boundary that lies between two polygons (or one polygon and the exterior), splitting them at the vertices that are incident to three or more polygons (or two polygons and the exterior) and storing them \emph{only once}, as is shown in \reffig{fig:spaghetti}.
-\marginpar{
-\captionsetup{type=figure}
-\centering
-\includegraphics[width=\marginparwidth]{figs/spaghetti}
-\caption[The spaghetti model]{In the spaghetti model, common boundaries are identified and represented only once. However, the polygons are only implicitly described.}
-\label{fig:spaghetti}
-}
-This means that most points are only stored once as well (except for those at the beginning or end of these polygonal curves).
-In GIS, this is sometimes known as the \emph{spaghetti model} and the polygonal curves are known as \emph{chains}\footnote{Note however that the spaghetti model sometimes refers to other types of related models.
-The only fact that all references to a spaghetti model have in common is the fact that chains are stored individually.}.
-Unlike 3D wireframe models, these polygonal curves are sufficient to identify the polygons in a 2D cell complex\footnote{As long as it strictly conforms to the definition of a cell complex, \eg\ by having no overlapping polygons and ensuring that polygons are perfectly closed with no overshoots or undershoots.}---a problem known as polygonisation in GIS, which is related to the computation of all intersections in arrangements of lines in computational geometry \citep[Ch.~8]{deBerg08}.
-However, additional processing is required to do so as the polygons are not stored directly.
-
-Most other data structures take into account the fact that every edge or chain in a 2D cell complex lies between two cells, and so it is very convenient to use these edges to store information about the two cells that are incident to them.
-For instance, the Node-arc-area (NAA) or POLYVRT (Polygon Converter) data structure \citep{Peucker75} also uses chains, but stores for each chain the polygons on the left and right side according to the order in which its vertices are stored.
-
-There are several data structures based on half-edges, oriented edges or vertex-edge pairs.
-All of these are functionality equivalent and are able to store a 2D cell complex or its dual.
-However, since cells in a cell complex are supposed to be manifold, special care is usually necessary to represent cells with a non-manifold domain.
-An example of this shown in \reffig{fig:nonmanifold-012}.
-\begin{figure}[tbp]
-\centering
-\subfloat[]{
-\includegraphics[width=0.29\linewidth]{figs/nonmanifold-0}
-\label{subfig:nonmanifold-0}}
-\quad
-\subfloat[]{
-\includegraphics[width=0.29\linewidth]{figs/nonmanifold-1}
-\label{subfig:nonmanifold-1}}
-\quad
-\subfloat[]{
-\includegraphics[width=0.29\linewidth]{figs/nonmanifold-2}
-\label{subfig:nonmanifold-2}}
-\caption[Storing non-manifold polygons in a half-edge data structure]{(a) A polygon is non-2-manifold as the space around the vertex (highlighted in a red circle) is not homeomorphic to the plane (\ie\ $\mathbb{R}^2$).
-Its linear boundary is non-1-manifold as the space around the vertex is not homeomorphic to the line (\ie\ $\mathbb{R}$).
-(b) \& (c) However, the polygon can still be represented using a loop of oriented half-edges by having a duplicate vertex at that location (shown as two half balls), but there are two ways in which this can be done.
-Note that these are not equally desirable as (c) results in a disconnected graph.}
-\label{fig:nonmanifold-012}
-\end{figure}
-
-Among the half-edge based data structures, the winged-edge data structure \citep{Baumgart75} considers edges as the main primitive, gives them an orientation, and maintains two records for the left and right polygons, as well as four records for the previous and next oriented edges along the boundaries of both of these polygons.
-As shown in \reffig{fig:halfedge}, the doubly-connected edge list (DCEL) \citep{Muller78} and 2D combinatorial maps \citep{Edmonds60}, achieve a similar result but have a more elegant and usually more efficient approach, dividing edges into half-edges\footnote{In the case of the DCEL this is conceptually done lengthwise, graphically resulting in side-by-side edges with opposite orientations on either side of the edge.
-In the case of 2D combinatorial maps it is instead done at the half-way point, graphically resulting in end-to-end edges.
-However, these are functionally equivalent.}, which makes it easier to follow the cycles representing polygons.
-\begin{figure}[tbp]
-\centering
-\subfloat[]{
-\includegraphics[width=0.29\linewidth]{figs/halfedge-1}
-\label{subfig:halfedge-1}}
-\quad
-\subfloat[]{
-\includegraphics[width=0.29\linewidth]{figs/halfedge-2}
-\label{subfig:halfedge-2}}
-\quad
-\subfloat[]{
-\includegraphics[width=0.29\linewidth]{figs/halfedge-3}
-\label{subfig:halfedge-3}}
-\caption[A 2D cell complex as a DCEL and a 2D combinatorial map]{(a) A 2D cell complex of three polygons is represented using (b) the DCEL and (c) a 2D combinatorial map.
-In the DCEL, a half-edge $e$ is meaningfully related to two vertices (the origin and the destination) and one face, and is linked to its next half-edge (on the same face) and its twin half-edge (on the adjacent face).
-In a 2D combinatorial map, a half-edge $e$ is meaningfully related to one vertex and two faces (on either side), and is linked to the half-edge on the opposite side of the same edge $\alpha(e)$ and the half-edge on the same vertex but on the next edge (as given by a rotation direction).}
-\label{fig:halfedge}
-\end{figure}
-
-The quad-edge data structure \citep{Guibas85} attempts to unify most of the half-edge-like structures by rigorously naming all the possible relationships between an oriented edge and other nearby oriented edges or vertices in its \emph{quad-edge algebra}, which moreover includes the dual vertices and edges of the 2D cell complex.
-% These relationships are shown in \reffig{fig:quad-edge-algebra}.
-% TODO: If not used later when talking about operations, remove quad-edge algebra
-% \begin{figure}[tbp]
-% \centering
-% \subfloat[]{
-% \includegraphics[width=\marginparwidth]{figs/quad-edge-algebra-1}
-% \label{subfig:quad-edge-algebra-1}}
-% \quad
-% \subfloat[]{
-% \includegraphics[width=\marginparwidth]{figs/quad-edge-algebra-2}
-% \label{subfig:quad-edge-algebra-2}}
-% \caption[The quad-edge algebra]{The quad-edge algebra of \citet{Guibas85} defines a large number of possible relations between an oriented edge $e$ and other oriented edges.
-% These can be used to define alternative quad-edge data structures that also contain the necessary information about a map.
-% Note that the grey oriented edges $eFlip$ and $eFlipSym$ lie on the back of the map.}
-% \label{fig:quad-edge-algebra}
-% \end{figure}
-However, only a few of these relations need to be stored.
-For instance, \citet{Guibas85} proposes a structure of \emph{quads}, which store for a given edge only the previous and next oriented edges for the polygons on both of its sides.
-\marginpar{
-\captionsetup{type=figure}
-\includegraphics[width=\marginparwidth]{figs/quad}
-\caption[The quad-edge data structure]{In the quad-edge data structure, an edge stores a \emph{quad}, four records pointing to other quads corresponding to the previous and next oriented edges for the polygons on both of its sides.}
-% (\ie\ $eLprev$, $eLnext$, $eRprev$ and $eRnext$ in the quad-edge algebra).}
-\label{fig:quad}
-}
-As shown in \reffig{fig:quad}, these quads store all the necessary relationships to traverse the edges of a polygon in both clockwise and anticlockwise order, as well as to navigate between adjacent polygons that are incident to a given edge or vertex.
-
-\subsubsection{3D cell complexes}
-
-While data structures for 2D cell complexes can rely on the fact that an edge is incident to at most two faces, this is not the case in a 3D cell complex.
-The data structures for 3D cell complexes are therefore significantly more complex, requiring additional information in order to efficiently traverse the many faces incident to an edge and between different volumes.
-
-The facet-edge data structure \citep{Dobkin87}, shown in \reffig{fig:facet-edge}, considers an incident face-edge pair as a single primitive, which is known as a \emph{facet-edge}.
-\begin{figure}[b]
-\centering
-\subfloat[]{
-\includegraphics[width=0.3\linewidth]{figs/facet-edge}
-\label{subfig:facet-edge}}
-\quad
-\subfloat[]{
-\includegraphics[width=0.6\linewidth]{figs/facet-edge-ops}
-\label{subfig:facet-edge-ops}}
-\caption[The facet-edge data structure]{(a) The facet-edge data structure considers an incident face $f_0$ and edge $e_0$ as a single facet-edge primitive $a$, each with a predefined orientation. The orientation of the face of $a$ defines the order along its incident edges $e_0,e_1,e_2,e_3$. The orientation of the edge of $a$ defines the order along its incident faces $f_0,f_1,f_2$. (b) A set of operations on the facet-edge $a$ is used to traverse the structure.}
-\label{fig:facet-edge}
-\end{figure}
-Groups of eight of these primitives are then stored as a single group, consisting of the four different orientation combinations of a facet-edge and the ones of its dual (consisting of the dual face and dual edge of the facet-edge).
-
-The V-map data structure \citep{Lienhardt88}, related to the notion of 2D combinatorial maps \citep{Edmonds60,Cori75}, splits edges into half-edges per edge, per face and per volume.
-These half-edges, called \emph{threads}, result in faces that are modelled as cycles of half-edges, as is shown in \reffig{fig:vmap}.
-\begin{figure}[tbp]
-\centering
-\subfloat[Tetrahedral 3-cell]{
-\includegraphics[width=0.3\linewidth]{figs/vmap-1}
-\label{subfig:vmap-1}}
-\quad
-\subfloat[V-map]{
-\includegraphics[width=0.3\linewidth]{figs/vmap-2}
-\label{subfig:vmap-2}}
-\caption[A V-map]{A tetrahedral 3-cell is represented as a V-map. Since a V-map considers half-edges to be distinct per face and per volume, every edge is here represented by four threads. Within a face, it is possible to switch between the threads of an edge (in French \emph{ar\^ete}) with the operator $\alpha$ and between the threads of a vertex (in French \emph{sommet}) with the operator $\sigma$. In addition, it is possible to navigate between the threads on different faces or volumes with the operator $\gamma$.}
-\label{fig:vmap}
-\end{figure}
-
-The radial edge data structure \citep{Weiler88} follows a similar approach, dividing faces into \emph{face uses} per volume and representing these faces uses as cycles of \emph{edge uses} where every edge use is linked to a \emph{vertex use}.
-Based on this structure, it is possible to keeps a hierarchy of 3D objects, recursively composed of volumes, shells, faces, loops, edges and vertices.
-
-\emph{Selective Nef complexes} \citep{Hachenberger06}, shown in \reffig{fig:snc}, implement 3D Nef polyhedra using a combination of two half-edge data structures, a common one that represents faces as cycles of \emph{edge-uses}, and one that represents the local pyramids around every vertex as subdivisions on the surfaces of (infinitesimally small) spheres.
-This combination of data structures significantly reduces the complexity of computing certain operations on Nef polyhedra, including convex decompositions, Minkowski sums and Boolean set operations.
-\begin{figure}[tbp]
-\includegraphics[width=\linewidth]{figs/snc}
-\caption[A selective Nef complex]{A selective Nef complex. The half-edge structure on $\mathbb{R}^3$ uses standard (oriented) faces, edges and vertices. The half-edge structure on the surfaces of the spheres uses \emph{sfaces} (not shown here), \emph{sedges} and \emph{svertices}. Note how sedges are the intersections of a face with the spheres of its incident vertices, and svertices are the intersections of an edge with the spheres of its incident (origin and destination) vertices. From \citet{Hachenberger06}.}
-\label{fig:snc}
-\end{figure}
-
-\subsection{Combinatorial and embedding structures}
-\label{ss:combinatorial-embedding}
-
-In many of the data structures presented in \refse{ss:data-structures}, an additional distinction can be made between a \emph{topological} or \emph{combinatorial model} \citep{Lienhardt91}, which was the focus of the previous section and describes the connectivity between a set of predefined elements, and a \emph{geometric} or \emph{embedding model}, which specifies the exact shape and position of individual elements \citep{Mantyla88}.
-This embedding model can be as simple as a point in $\mathbb{R}^2$ or $\mathbb{R}^3$ that is assigned to every vertex, resulting in linear geometries when the points for a face are collinear/coplanar.
-
-However, it is often useful to have more powerful embedding information---allowing for more complex shapes (\eg\ curved surfaces) or the storage of attributes.
-Normally, this embedding information is put into \emph{embedding structures} that correspond to simplices or cells and can be used to store geometric and attribute information for themselves and their faces.
-When a simplex/cell has an explicit representation as a \emph{single} data structure primitive, these structures are not necessary and the information for the simplex/cell can be put into the corresponding primitive.
-Otherwise, the embedding structures are separate data structures that are linked to related primitives, \eg\ the two half-edges of an edge being linked to an embedding structure containing information about the edge, or a half-edge being linked to the structures for its incident faces.
-
-Embedding structures are also used in order to keep semantic information.
-While the complex structures that are required for complex semantics are outside the scope of this thesis\footnote{See \citet{Biljecki14} for a good description of these.}, embedding structures can store a cell's attributes as a tuple of fields for a cell.
-When more complex information is required, external data structures can be kept and linked to/from the embedding structure \citep{Kuhn05}.
-
-The geometric information that is necessary to store more complex shapes (\eg\ curves and curved surfaces) can be similarly kept as a tuple of parameters.
-For instance, composite B\'ezier curves and surfaces \citep{Bezier77} can be stored using a cell complex where the vertices store \emph{control points}.
-These are accompanied with some external knowledge such as the order of the curve/surface.
-Non-uniform rational basis splines (NURBS) curves and surfaces \citep{Versprille75} can also be stored as a cell complex of control points with knot vectors stored as lists in the embedding structures used for the edges.
-
-\section{Modelling of 2D and 3D space in practice}
-\label{se:modelling-space}
-
-Based on the concepts of the different data models, data structures and combinatorial/embedding structures presented above, this section discusses how these are applied and combined in practice in various international standards, file formats and software.
-These are ordered from the simple geometric models that allow only for visualisation and simple calculations, up to the complex, more topological models that enable simulations and other complex computations.
-
-\subsection{Models used in visualisation, computer graphics and gaming}
-\label{ss:graphics}
-
-The simplest geometric models are those that are used solely for visualisation.
-Low-level application programming interfaces (APIs) for 3D graphics, \eg\ OpenGL\footnote{\url{https://www.opengl.org}}, Direct3D\footnote{a subset of DirectX:\ \url{http://msdn.microsoft.com/directx}}, Mantle\footnote{\url{http://www.amd.com/mantle}}, WebGL\footnote{\url{https://www.khronos.org/webgl/}} and Vulkan\footnote{\url{https://www.khronos.org/vulkan/}} work with large numbers of simple geometric primitives with 3D coordinates, such as points, line segments and triangles, all of which can be used alone or as structured sequences (such as triangle strips, as shown in \reffig{fig:trianglestrip}).
-\marginpar{
-\captionsetup{type=figure}
-\centering
-\includegraphics[width=0.5\marginparwidth]{figs/trianglestrip}
-\caption[A triangle strip]{A triangle strip is easily defined as a list of vertices $(a,b,c,d,e,f,g,h)$. Every triangle is formed by three consecutive vertices in the list.}
-\label{fig:trianglestrip}
-}
-These can be passed directly, loaded into video RAM, and be processed and rendered in parallel by graphics hardware.
-Subproblems in this process are therefore offloaded onto techniques that can be easily parallelised and done in hardware.
-For example, the visibility computations involved when rendering a set of polygons in 3D can be handled using Z-buffers \citep{Strasser74}.
-
-\subsection{Exchange file formats and standards in GIS and BIM}
-\label{ss:formats}
-
-The file formats that are meant for the exchange of spatial objects in GIS---sometimes codified in (international) standards---generally opt for a minimal representation of the geometries involved.
-Polylines and polygons are thus stored as sequences of points connected by implicit line segments, as this is a more compact and intuitive representation than a set of (unordered) line segments.
-By contrast, volumes are represented as (unordered) sets of their bounding polygonal faces.
-As no topological relationships are recorded between these polygons, these types of representations are known as \emph{non-topological models} in GIS.\@
-
-\begin{figure*}[tbp]
- \begin{center}
- \includegraphics[width=\linewidth]{figs/sfs}
- \end{center}
- \caption[Geometry in the Simple Features Specification]{The geometry class hierarchy defined in the Simple Features Specification \citep{SimpleFeatures1}.}
-\label{fig:sfs}
-\end{figure*}
-
-The Simple Features Specification \citep{SimpleFeatures1} is an international standard from both the Open Geospatial Consortium and the International Organization for Standardization (as ISO 19125 \citep{ISO19125-1:2006}).
-It is widely used as the basic geometric model in simple GIS formats and defines a variety of geometry classes, each of which is linked to a reference system.
-These are shown in \reffig{fig:sfs}.
-A \texttt{LineString} (or \texttt{LinearRing}) is represented as a sequence of two or more \texttt{Points}.
-Apart from this relation and ignoring the generalisation relationships, the classes form a tree structure, with higher-dimensional classes being simple aggregations of lower-dimensional ones.
-A \texttt{Polygon} is made of at least one \texttt{LinearRing} (one outer and possibly multiple inner ones defining holes), and a \texttt{PolyhedralSurface} is made of a set of patches of \texttt{Polygons}.
-No relationships connect a class with itself or others of the same dimension.
-
-\begin{figure}[t]
- \begin{center}
- \includegraphics[width=\linewidth]{figs/gml}
- \end{center}
- \caption[Geometry in GML]{The geometric classes from the ISO 19107 standard \citep{ISO19107:2005} that are implemented in the GML standard \citep{GML3.2.1}.}
-\label{fig:gml}
-\end{figure}
-
-GML \citep{GML3.3}, is the most widely used international standard to represent 2D and 3D geographic information.
-It has been further formalised as ISO 19136 \citep{ISO19136:2007} and is the basis of other standards, such as CityGML \citep{CityGML2}, which is used for the exchange of 3D city models.
-In terms of geometry, it implements a subset of the types in the ISO 19107 standard \citep{ISO19107:2005}, which are shown in \reffig{fig:gml}.
-It similarly considers \texttt{LineStrings} represented as sequences of at least two points, \texttt{LinearRings} as sequences of at least four points\footnote{There is no implicit connection between the first and last points in a CityGML polygon, so the first point needs to be repeated at the end.}.
-\texttt{Polygons} consist of one exterior and zero or more interior \texttt{Rings}, and various surface types are composed of different kinds of \texttt{SurfacePatches}.
-
-The Industry Foundation Classes (IFC)\footnote{\url{http://www.buildingsmart-tech.org/specifications/ifc-releases}} standard is an open data model used in the Building-information modelling (BIM) domain for the exchange of construction models, often including 3D models of buildings.
-It has also been adapted as the ISO 16739 international standard \citep{ISO16739:2013}.
-Its geometric aspects are however mostly defined or derived from a different standard---ISO 10303 \citep{ISO10303:2014}.
-Unlike the data models originating in GIS (\eg\ Simple Features and CityGML), there is an important emphasis on the definition of a local coordinate system per object (as opposed to the national or regional coordinate systems used in GIS).
-This reflects the fact that in BIM every object is generally modelled independently before later being fitted together.
-Hierarchical descriptions of objects thus result in hierarchically applied coordinate system transformations.
-Boundary representation and tessellation geometries are supported as in other models, but IFC supports a much greater variety of geometry classes, which include implicit geometries based on half-space intersections, Constructive Solid Geometry (as a tree of Boolean set operations) and sweeps (based on a cross-section), such as the one shown in \reffig{fig:ifc}.
-
-\subsection{Models used in 2D and 3D GIS}
-
-When the first GIS were developed in 1960s and 1970s, such as SYMAP \citep{Chrisman88} and the Canada GIS \citep{Tomlinson88}, they used boundary representation, depicting 2D areas as polygons defined by a sequence of vertices.
-By the 1980s, a \emph{topological approach} based on planar partitions was instead used in systems like GRASS\footnote{\url{http://grass.osgeo.org}} and the coverages of ArcInfo \citep{ESRITopology}.
-This was done using an intermediate representation where all input objects are partitioned into homogeneous regions \citep{Rossignac89}, such that each region is linked to a set of input objects that are all present in the entire region.
-This intermediate representation is obtained by performing geometric intersection operations on all of the input objects and allows these partitions to be represented using the types of data structures for 2D cell complexes presented in \refse{ss:data-structures}.
-
-\marginpar{
-\captionsetup{type=figure}
-\centering
-\subfloat[]{
-\includegraphics[width=\marginparwidth]{figs/ifc-1}
-\label{subfig:ifc-1}}
-\\
-\subfloat[]{
-\includegraphics[width=\marginparwidth]{figs/ifc-2}
-\label{subfig:ifc-2}}
-\caption[Sweeps in IFC]{The IFC standard supports objects defined through sweeps, which are defined by (a) an \texttt{IfcPCurve} (black spiral) and a \texttt{SweptArea} (blue disk), in this case resulting in (b) a screw shape.}
-\label{fig:ifc}
-}
-
-However, current 2D GIS software has reverted to the use of simple data structures with very little or no topology, which are then supplemented by external spatial indices for speed.
-This type of representation has some drawbacks: it encourages inefficient representations where primitives are represented multiple times (\eg\ when a face is part of the boundary of two polyhedra) \citep[Ch.~3]{Cromley92}, which might not match exactly \citep{delaLosa99}, it makes it difficult to check that a set of bounding elements conforms to certain properties (\eg\ properly enclosing a space or being manifold), and the topological relationships between many elements need to be recomputed.
-
-However, in the context of current 2D GIS software, in which different data sources are dynamically loaded and used together, it is often more efficient to opt for a representation with little topology, instead computing topological relationships only if and when they are needed, such as is done in ArcGIS \citep{ESRITopology} and in some QGIS plug-ins.
-Many current use cases can actually do without the computation of these topological relationships: as explained in \refse{ss:graphics}, visualisation does not require explicit topology, today's fast computers can process many datasets using simpler brute force approaches, and algorithms can take advantage of strong properties that are intrinsic to the 2D case, such as that it is possible to define a natural (sequential) order for the points around a closed polygonal curve, or that there can be at most two polygons incident to any edge in a planar partition.
-
-Moreover, it is more robust---and often more convenient---to consider the geometric and topological information that is stored in a file as suspect, programming defensively to avoid errors in software by using repair techniques such as those that will be discussed in \refch{ch:cleaning}, as errors can frequently appear due to a variety of causes, \eg\ numerical errors \citep{Goldberg91,Schirra97} or differing interpretations of invalid objects \citep{Ledoux14}.
-
-The situation regarding 3D GIS is more complex, consisting of many custom made ad hoc systems that are very frequently described in the literature (\eg\ the impressive one developed by \citet{Zhang11}) following both topological and non-topological approaches, but in practice, there are very few general-purpose publicly available 3D GIS.\@
-In addition to this, there is limited 3D functionality in existing GIS software, such as 2.5D data containing elevation as an attribute \citep{Raper89}, or capabilities for simple storage, visualisation and editing (\eg\ moving vertices) of 3D models.
-This leaves more complex geometric operations, such as the use of Boolean set operations or complex deformations of 3D models within the realm of CAD or 3D modelling software.
-Partly as a consequence, 3D GIS datasets commonly contain large numbers of invalid geometries \citep{Zhao14}.
-
-\subsection{Models used in 3D modelling software and libraries}
-
-Compared to GIS software, 3D modelling, CAD and other similar software have a greater emphasis on (interactive) editing and other operations that alter the geometry of a 3D object.
-However, many (or most) 3D modelling software\footnote{Unfortunately, it is difficult to know which data structures are used internally in most commercial software, so this analysis is necessarily limited.} represent 3D objects only as closed surfaces, using triangular or polygonal meshes that can be stored using the data structures for 2D simplicial/cell complexes presented in \refse{ss:data-structures}.
-This is not a limitation for simple 3D editing functionality, such as moving vertices, splitting edges and faces, and adding new vertices/edges/faces.
-However, more complex geometric operations with and between 3D objects generally require more powerful data structures with an explicit knowledge of volumes.
-
-Nevertheless, some software that is used for this purpose follows a minimal approach similar to the one used for exchange file formats in GIS.\@
-The standard \emph{topological data structure} in CAD\footnote{It is important to note the term `topological data structure' has completely opposite meanings in GIS and CAD.\@
-The non-topological (Simple Features) approach in GIS is equivalent to the standard CAD topological data structure; the standard GIS topological data structure is equivalent to a CAD mesh, which is widely considered as the \emph{less} topological approach.
-Objectively, they both embrace topology in different ways.
-The GIS topological data structure stores the (algebraic) topological relationships between polygonal areas; the CAD topological data structure stores the (point-set) topological relationships between a polygon/polyhedron and its different rings/shells.} considers \emph{vertices}, curved \emph{edges} connecting vertices, \emph{wires} consisting of a closed loop of edges, \emph{faces} made from one outer wire and possibly multiple inner wires, closed \emph{shells} made from a set of faces, and \emph{solids} consisting of one outer shell and possibly multiple inner shells.
-For example, this is the approach that is used in K-3D \citep{Shead10} and openCASCADE library\footnote{\url{http://www.opencascade.org}}, the engine used for geometric computations in CAD software like FreeCAD\footnote{\url{http://www.freecadweb.org}} and the SALOME numerical simulator\footnote{\url{http://www.salome-platform.org}}.
-
-This approach often fails when attempting some operations that are notoriously difficult to perform robustly, \eg\ Boolean set operations between polyhedra---something that is recognised in the documentation of multiple software packages.
-Other software thus uses more powerful data structures based on 3D cell complexes, generally achieving better results in the process.
-Blender 3D\footnote{\url{http://www.blender.org}} uses something akin to the radial edge structure \citep{Weiler88} and Moka\footnote{\url{http://moka-modeller.sourceforge.net}} uses 3D generalised maps \citep{Lienhardt94}.
-
-A different approach is followed by software like BRL-CAD\footnote{\url{http://brlcad.org}}, which uses a Constructive Solid Geometry engine and therefore stores objects as trees of Boolean set operations.
-Finally, the Nef polyhedra implementation in CGAL \citep{Hachenberger06} is able to compute Boolean set operations \citep{Granados03}, convex decompositions \citep{Chazelle84} and Minkowski sums robustly.
-It is used in software like OpenSCAD\footnote{\url{http://www.openscad.org}}.
-
-\section{Spatiotemporal modelling}
-\label{se:modelling-time}
-
-Among the possible non-spatial characteristics that can be integrated with space, time in particular has long been considered to be interlinked with space \citep{Akhundov86}.
-Like space, it is considered to have geometry and topology \citep{Earman77}, which are often modelled in accordance to the ISO 19108 standard \citep{ISO19108:2002}.
-
-Spatiotemporal modelling attempts to create joint models that combine spatial and temporal information.
-It draws inspiration from the independent modelling of both space and time.
-The main models used in spatiotemporal modelling are presented below.
-For a more thorough review of spatiotemporal models see \citet{Al-Taha94} and \citet{Pelekis04}.
-
-The simplest and most widespread spatiotemporal model involves the use of timestamps.
-Known as the \emph{snapshot} model, it was probably first used in the US Historical Boundary File \citep{Basoglu78}.
-In this model, shown in \reffig{fig:st_snapshot}, every entity represents the state of an object during a specific timeframe.
-\marginpar{
-\captionsetup{type=figure}
-\centering
-\includegraphics[width=\marginparwidth]{figs/st_snapshot}
-\caption[The snapshot model]{The snapshot model stores the state of a map at various moments in time. Based on \citet{Langran88}.}
-\label{fig:st_snapshot}
-}
-These entities might be objects of any dimension, \eg\ polylines as in the US Historical Boundary File or polygons in a cadastral database \citep{Hunter90}.
-An entity is therefore attached with a pair of timestamps, which demarcate the \emph{start} and \emph{end} of the period during which the entity existed as is represented.
-These models thus keep multiple representations of 2D \citep{Armstrong88} or 3D \citep{Hamre97} structures.
-This approach is simple but not very powerful, containing no direct relations between the objects that were present at the same location but during different periods of time.
-
-There are a few variations of this model.
-For instance, it is possible to store differential changes only \citep{Langran88}, specifying the areas that are added to or removed from an object at a given time.
-Another related possibility is keeping the current state of the map explicitly as well, which greatly improves the response time of this very common query.
-
-In the \emph{space-time composite} model, objects are first split into homogeneous regions that share the same history, similar to how overlapping objects are handled in topological GIS models \citep{Rossignac89}.
-This was first described in \citet{Chrisman83} based on \citet{Peucker75}.
-This is more flexible than the snapshot model, but objects can become very fragmented, slowing down many operations.
-For instance, updating the attributes of an object might involve updating all the regions that the object is split into.
-
-Other models put a greater emphasis on events, such as by keeping a list of changes per object \citep{Worboys92,Peuquet94}.
-Event-based models \citep{Peuquet95} take this a step further, maintaining a main structure consisting of a list of events and a base map (\reffig{fig:st_events}).
-\begin{figure}[tbp]
-\centering
-\includegraphics[width=\linewidth]{figs/st_events}
-\caption[An event-based model]{An event-based model maintains a list of events and a base map, with each event being linked to all changes that occurred since the last event. Based on \citet{Peuquet95}.}
-\label{fig:st_events}
-\end{figure}
-Unlike other models, this makes it possible to identify and attach attributes to individual changes and events.
-In the \emph{history graph} model \citep{Renolen96}, different types of events are supported, which makes it possible to model continuously changing events as well.
-Similar models are used in computer animations, where a graph of keyframes can identify topological changes in a 2D vector drawing \citep{Dalstein15}.
-
-A different option is to keep track of space and time independently, linking objects appropriately.
-So called \emph{three-domain} models are based on this concept (the third domain being semantics).
-Examples include \citet{Yuan94} and \citet{Claramunt95}.
-In another example, \citet{vanOosterom97} uses an identifier consisting of both a region identifier and a timestamp to index spatiotemporal objects.
-
-Finally, there are some generic spatiotemporal models described at a more conceptual level \citep{Story95}, which can be adapted to suit a specific application.
-For instance, \citet{Tryfona99} describe the space-time entity-relationship model, which is based on the entity-relationship \citep{Chen76} common in the database world.
-It provides rudimentary support for multi-scale objects by allowing for multiple geometries to be stored in each feature.
-\citet{Claramunt99} discusses an object-relational model that is specifically tailored to model change.
-Additionally, there are a few object-oriented spatiotemporal models \citep{Worboys90}.
-
-\section{Modelling geographic scale}
-\label{se:modelling-scale}
-
-Traditional paper maps and physical models have a well-defined \emph{scale}, whose value is a ratio between a linear measure in the model/map with the corresponding linear measure in the real world\footnote{Non-linear measures (\eg\ area and volume) in a model/map and reality are related non-linearly to this ratio.}.
-Scale is therefore a concept that is fixed and has a clear, measurable value in a model or map.
-
-However, apart from this direct meaning, scale also has an indirect relation to the \emph{level of detail} (LOD) that is present in a map/model.
-Considering limits in resolution in printing and manufacturing technologies, the detail that can be put into a map or model is limited by its scale.
-Moreover, since humans are only able to reliably distinguish features of a certain size---a commonly accepted measure for maps being 0.5 mm \citep{Goodchild01}---, an adequate representation at a given scale presupposes objects being of a certain minimum size and a minimum distance apart.
-
-The above mentioned factors limit the detail that \emph{can} be present in a model/map at a given scale, but there are additional limits on the detail that \emph{should} be present.
-Considering that maps are first and foremost communication tools, good maps need to have content that has an appropriate level of precision and detail for the good conveyance of their intended message \citep{Hardy12}.
-
-In the digital realm, where models and maps both become data and the direct meaning of geographic scale as a ratio between a model/map and reality disappears, scale preserves only its indirect meaning as the level of detail that is present in a model or map, and accordingly the term `level of detail' is more appropriate \citep{Biljecki14}.
-An increase in the detail of a model enables more applications, but means that its representations occupy larger sizes and their processing involves higher computational costs\footnote{However, the consequences of more detailed maps/models should not been seen as a merely technical issue.
-High memory usage and processing time directly affect the usability of a model or map, and too much detail can often detract from its intended message.}.
-When the term `scale' is used instead, the level of detail that is expected is often presented in relation to its physical predecessor, such as in the map fragments shown in \reffig{fig:generalisation}.
-In digital models and maps, having an adequate level of detail also becomes important as a higher level of detail entails a correspondingly higher memory and computational requirements \citep{Luebke03}.
-\begin{figure}[tbp]
-\centering
-\subfloat[1:50 000]{
-\includegraphics[width=0.46\linewidth]{figs/generalisation2}
-\label{ss:generalisation2}}
-\quad
-\subfloat[1:250 000]{
-\includegraphics[width=0.46\linewidth]{figs/generalisation3}
-\label{ss:generalisation3}}
-\caption[Topographic maps at different scales around Delft]{Fragments of two Dutch topographic maps at different scales around Delft.
-Note that the region depicted in both maps is the same and maps are (here) presented at the same size, and thus the scale of both in a literal sense is the same.
-However, the level of detail in each map differs. \copyright\ Kadaster\protect\footnotemark.}
-\label{fig:generalisation}
-\end{figure}
-\footnotetext{\url{http://www.kadaster.nl}}
-
-Geographic information at different scales is generally managed as fully independent datasets at each scale \citep{Meijers11}, such as in the topographic maps shown in \reffig{fig:generalisation}.
-In 3D, the CityGML standard \citep{CityGML2} defines the five LODs shown in \reffig{fig:citygml-filip}, which can be stored jointly but are effectively separate datasets except when their geometries are linked (\cf\ \citet{Biljecki15}).
-This is similar to the snapshot model for spatiotemporal information \citep{Basoglu78,Langran88} as presented in \refse{se:modelling-time}, since these datasets are labelled with the scale (or range of scales) that they are associated with.
-This representation is simple and matches nicely with paper map series---in which a region is depicted at multiple scales in different maps.
-However, many objects are represented several times (once at each scale in which they are present) \citep{Friis-Christensen03}, and it is difficult to maintain consistency between these representations \citep{Buttenfield89}, as the different representations of an object are unlinked or linked only by common identifiers\footnote{Which can be messy in practice as many times there is not a one-to-one mapping between the different representations.}.
-
-% Actually from CEUS paper under review. Not published on time.
-\begin{figure}[tbp]
-\centering
-\includegraphics[width=\linewidth]{figs/citygml-filip}
-\caption[The LODs in CityGML]{The CityGML standard \citep{CityGML2} defines five LODs for 3D city models, which range from building footprints to detailed architectural models of their interior and exterior.
-From \citet{Biljecki14a}.}
-\label{fig:citygml-filip}
-\end{figure}
-
-In order to achieve consistency and complete coverage of a region at a given scale, it becomes important to be able to create a map of that scale using a more detailed map of the same region as input, resulting in maps at different scales covering the same region.
-This is achieved by the process of cartographic (or map) generalisation.
-In it, the amount of information in a map is reduced \citep{Tofper66}, abstracting objects for a given scale using a set of well-defined cartographic rules \citep{SGK75}.
-Many of these rules can be automated in the form of algorithms (\eg\ line simplification \citep{Douglas73}), resulting in several automatic \emph{map generalisation algorithms} \citep{Weibel97}, and their (much more recent) resulting software implementations \citep{Jones05,Stoter09}.
-In fact, it is now possible to generalise maps fully automatically in certain cases and with good results \citep{Stoter14}.
-
-In 3D modelling, similar algorithms are widely used to create simplified versions of complex 3D models \citep{Meng07,Kada07,Zhu09,Zhao12}---using visual or geometric criteria rather than cartographic---based on techniques such as mesh simplification \citep{Garland97,Lindstrom98}.
-Considering that these techniques can be applied to the very detailed 3D models that are generated using surface reconstruction \citep{Amenta98,Kazhdan06} from laser-scanned point clouds, or those resulting from the reuse of detailed architectural models \citep{Geiger15}, they allow the generation of entire series of progressively simpler models up to an arbitrary level of detail in a process that is largely automatic---at least in theory\footnote{In practice, it is a very challenging process with many engineering stumbling blocks.
-For one, fully automated surface reconstruction requires a certain density of sampling points (see \citet[Ch.~13]{Cheng12}), which is hard to guarantee.
-The generalisation of real-world 3D objects is also very challenging in practice due to a variety of reasons, such as the errors caused by the acquisition of data at different times, from different angles, from different sources, or using different methods.}.
-
-Using automatic map generalisation, it becomes possible to create digital objects of any given scale, and thus to create and populate structures where an object at many scales is represented as a single entity, usually as a tree where detail is added progressively.
-For polygonal curves, this is accomplished by structures such as: strip trees \citep{Ballard81}, the multi-scale line tree \citep{Jones86}, the arc tree \citep{Gunther88} and the binary line generalisation tree \citep{vanOosterom90}.
-For planar partitions, it can be done structures such as: hierarchical planar subdivisions \citep{Filho95}, multi-scale partitions \citep{Rigaux95}, nested maps \citep{Plumer97} and topological generalised area partitioning trees \citep{vanOosterom05}.
-
-\section{Key characteristics and shortcomings of current approaches}
-\label{se:modelling-conclusions}
-
-As shown in this chapter, there is great variety among the techniques used to model different aspects of 2D and 3D space, time and geographic scale.
-Considering all the possible ways in which these techniques can be combined together into a complete modelling approach, many different feasible approaches can be devised, which can be further fine-tuned for a particular application or use case.
-These vary in fundamental aspects, such as their explicitness, their use of geometry and topology, and the class of objects that they are able to handle efficiently.
-
-However, despite these very real and substantial differences, the representation approaches in \emph{2D GIS} have become largely interchangeable in practice.
-There is a myriad of well-known topological data structures that can be used, such as the DCEL \citep{Muller78} and the quad-edge \citep{Guibas85}, and even when certain objects are not directly supported in them (\eg\ those with a non-manifold shape or with holes), they can usually be nevertheless stored using various simple `tricks', such as repeated combinatorial primitives (as shown previously in \reffig{fig:nonmanifold-012}), special kinds of attributes or external data structures such as indices.
-
-Moreover, many 2D GIS applications do not even require the explicit topology of a topological data structure.
-Visualisation and simple computations can just as easily do without it, and consequently use data structures with very little or no topology, opting for a Simple Features-like representation \citep{SimpleFeatures1}.
-Also, considering that the computation of topological relationships between 2D objects is relatively simple, it can be done on-the-fly only when it is needed \citep{ESRITopology}---something that is especially true for the relatively small size of most 2D datasets, which often pale in comparison to the computing power that is now readily available.
-All of these reasons point towards a similar conclusion: objects of up to two dimensions (\ie\ points, line segments and polygons) can be represented using either topological or non-topological approaches with little difference in practice.
-
-In 3D, the situation is more complex and topology brings more significant advantages, even as storing topological relationships comes at a significantly increased cost in terms of memory.
-Compared to the circumstances in 2D, there are more topological relationships between 3D objects, and these are more difficult and expensive to compute, so their storage becomes highly desirable in many instances.
-At the same time, datasets are usually much larger, which makes topological relationships more valuable in order to traverse them efficiently.
-More complex applications such as simulations greatly benefit from 3D topological representations as well---or at least from data that is known to be valid, for which 3D topological data structures are used \citep{Ledoux13}.
-
-Moreover, many of the strong properties that allow for simple but powerful data structures and quick computations in 2D do not work in 3D.
-For instance, there is a natural order for the vertices or line segments around a polygon---used \eg\ to efficiently store a polygon as a sequence of vertices---but there is no similar natural order for the faces around a polyhedron.
-Similarly, storing a complete planar partition as a set of edge primitives where every edge records the polygons that lie on each of its two sides \citep{Peucker75} is straightforward and efficient, but a 3D space partition stored as a set of faces where every face only knows the volumes that lie on both of its sides is very cumbersome to navigate---even a simple operation such as extracting the volumes in the partition is difficult without the adjacency relationships between the faces.
-
-Partly because of this, as well as the general increase in complexity that comes with an increase in the number of dimensions, the topological data structures that are capable of storing topological relationships between sets of 3D objects are less used in practice.
-The third spatial dimension, time, and scale are mainly implemented using ad hoc adaptations to 2D data structures, effectively limiting the capabilities of GIS software.
-3D GIS often mimic the third dimension by using a so-called 2.5D structure \citep{Raper89}, essentially treating the third dimension as an attribute and restricting the geometries that can be represented; or represent 3D objects individually and only implicitly through their 2D boundary, using a 2D data structure with no 3D topological relationships\footnote{\ie\ topological relationships involving 3D primitives, such as the adjacencies between two volumes or the incidences between a volume and a vertex/edge/face}.
-This implies that many operations are only possible using expensive searches involving many more objects than otherwise needed.
-
-Time and scale are considered to be inseparable in the representational process by theorists, since events have an intrinsic place in space and time, as well as specific spatial and temporal resolutions \citep{Raper00}.
-However, spatiotemporal GIS keep multiple representations of 2D \citep{Armstrong88} or 3D \citep{Hamre97} structures, or a list of changes per object \citep{Worboys92,Peuquet94}, limiting combined spatio-temporal analysis of such objects.
-Multi-scale datasets generally consist of independent datasets for each scale, which are either unconnected or connected only at the object level (\eg\ through the use of IDs).
-This means that complex relationships between objects, such as collapses, aggregations and others that are not one-to-one are difficult to store, which causes, among others, update and maintenance problems as well as inconsistencies.
-It also complicates the storage of semantic information about these relationships.
\ No newline at end of file
diff --git a/work_report/nd-modelling.tex b/work_report/nd-modelling.tex
deleted file mode 100644
index 73e2001..0000000
--- a/work_report/nd-modelling.tex
+++ /dev/null
@@ -1,826 +0,0 @@
-% !TEX root = thesis.tex
-
-\chapter{The higher-dimensional spatial modelling approach}
-\label{ch:nd-modelling}
-
-As presented in \refch{ch:modelling-background}, the most common approaches to model 2D and 3D space are based on ad hoc adaptations of data structures that were originally meant for 2D data.
-These have many advantages, but are also necessarily limiting when 3D objects are concerned, constraining the class of objects that they are capable of representing efficiently and the operations that can be efficiently performed on them.
-Even data structures specifically defined for sets of 3D objects have significant limitations, such as not being able to store the incidence and adjacency relationships between objects.
-Moreover, when the data has to be integrated with non-spatial characteristics (\eg\ time and scale), similar ad hoc adaptations to 2D structures are also used.
-Therefore, the problem of adequately representing 3D, spatio-temporal and multi-scale data is not fully solved even by the most advanced 3D structures as they are currently used in GIS.\@
-
-This chapter presents the higher-dimensional spatial information modelling approach---the main theme of this thesis---as a solution to all these problems, as well as the higher-dimensional data models and data structures that can be used to realise it.
-\refse{se:nd-modelling-foundations} introduces the topic by showing the strong theoretical foundations behind higher-dimensional modelling.
-How higher-dimensional modelling works in general is then explained in \refse{se:nd-modelling-paradigm}, relating to relevant concepts of 2D/3D GIS whenever possible, as well as importing useful notions from other fields.
-\refse{se:data-structures} then describes the data models and data structures that can be used to realise the higher-dimensional modelling approach.
-\refse{se:nd-modelling-conclusions} finalises the chapter by presenting some of the new possibilities provided by this approach.
-
-Significant parts of \refse{se:data-structures} and \refse{se:nd-modelling-conclusions} and minor parts of the other sections are based on the paper:
-\begin{itemize}
-\paperijgisndstructures%
-\end{itemize}
-
-\section{Foundations of higher-dimensional modelling}
-\label{se:nd-modelling-foundations}
-
-% What, in brief
-
-A radical departure from the traditional approaches to model 2D/3D space, time and scale in GIS, as presented in \refch{ch:modelling-background}, consists in the representation of any number of \emph{parametrisable characteristics} (\eg\ the third spatial dimension, time and scale) as additional dimensions in a geometric sense.
-These dimensions are modelled so as to be orthogonal to each other, such that real-world 0D--3D entities are modelled as higher-dimensional objects\footnote{That is, as long as such objects exist along intervals along these other dimensions. If they only exist at a point along these dimensions (\eg\ a moment in time), they are of the same dimension as the original object.} embedded in higher-dimensional space, which are consequently stored using \emph{higher-dimensional data structures}.
-
-% Foundations (math)
-
-Higher-dimensional modelling is well grounded in long-standing mathematical theories.
-\citet{Descartes37} already laid the foundation for $n$D geometry by putting coordinates to space, allowing the numerical description of geometric primitives and the use of algebraic methods on them, theories of $n$D geometry were developed by \citet{Riemann68} among others, and \citet{Poincare95} developed algebraic topology with a dimension-independent formulation, stating that even if $n$D objects could not be [then] represented, they do have a precise topological definition, and consequently properties that can be studied.
-
-% Why, in brief
-
-This approach opens the door to new possibilities.
-From an application point of view and as will be discussed in \refse{ss:nd-topology}, 4D topological relationships between 4D objects provide insights that 3D topological relationships cannot.
-Also, \citet{McKenzie01} contends that weather and groundwater phenomena cannot be adequately studied in less than four dimensions, and \citet{vanOosterom10} argue that the integration of space, time and scale into a 5D model for GIS can be used to ease data maintenance and improve consistency, as algorithms could detect if the 5D representation of an object is self-consistent and does not conflict with other objects.
-
-% Disclaimer
-
-It is important to note that the higher-dimensional modelling approach---as presented in this thesis---bears no relation to the most common usage of 4D, 5D, 6D, \ldots, $n$D GIS/BIM in both GIS product descriptions and the scientific literature.
-There, such terms are generally used as buzzwords that refer to \emph{any} kind of support for the storage of time information, costs, project life cycles, or any other kind of non-spatial information.
-In most cases, this information is simply stored as a tuple of attributes that are appended to 2D/3D objects (\eg\ timestamps), or as external structures that are unlinked to any objects with a geometric description (\eg\ IFC scheduling information).
-If one were to interpret these objects geometrically, they would result in 2D/3D objects embedded in higher-dimensional space\footnote{Orthogonal and point-like with respect to the higher dimensions.}, and \emph{not in higher-dimensional objects embedded in higher-dimensional space}.
-
-% Past attempts
-
-However, it is worth noting that real strides towards higher-dimensional GIS have been made in various forms.
-Research in multidimensional GIS aims at the integrated storage and analysis of heterogeneous objects of different dimensions~\citep{Raper00,Gold05}, usually limited to 0D--3D objects but sometimes conceptually extended to higher dimensions.
-Storing and manipulating heterogeneous objects and their semantics is a difficult challenge and is a notable weak point of current GIS tools.
-
-% Using time as a dimension
-
-The concept of time as a dimension is an established concept with proven applications.
-As \citet{Couclelis99} states, time has historically been linked to space and often considered as another dimension, and the 4D spatiotemporal manifold known as the Minkowski space \citep{Minkowski08} is used in the description of special relativity in mathematics and physics\footnote{Minkowski space is non-Euclidean, but similar representations and techniques can be used with it.
-For instance, \citet{Hanson01} show how computer graphics techniques can be used to visualise it.
-General relativity is instead described by Riemann space \citep{Riemann68}.}.
-The ISO 19108 standard also states that `time is a dimension analogous to any of the spatial dimensions' \citep{ISO19108:2002}
-A representation where time is modelled as one more spatial dimension has been moreover used in several applications, mostly in the form of 2D space+time, such as to analyse paths \citep{Hagerstrand70}, to analyse motion in computer vision \citep{Basri05} and to visualise geographic information \citep{Kraak03}.
-3D+time systems have also been frequently proposed, albeit this usually is meant only at a conceptual (rather than implementation) level~\citep{Galton04}.
-In GIS and other fields, a 2D space+time representation is often called a \emph{space-time cube}\footnote{The use of the term `cube' is useful for clarity of explanation but not strictly correct since it implies that the analysed region has the same length along every axis.
-This term is thus not used elsewhere in this thesis.
-By contrast, \citet{Hagerstrand70}, who is largely credited with popularising the concept, refers to it as the space-time prism.}.
-
-% Using scale as a dimension
-
-Scale as a dimension has a shorter history, only recently being proposed as way to integrate 2D/3D space, time and scale \citep{vanOosterom10}.
-\citet{Dollner05} consider the notion of the LOD of a model as a conceptual dimension.
-\citet{Grasset-Simon06} discuss generalised map pyramids, which use $n$-dimensional generalised maps in order to create a hierarchical data structure of 2D/3D/$n$D images of different resolutions.
-\citet{Untereiner15} introduce the Compact Primal Hierarchy, an also hierarchical representation of manifold meshes in any dimension which are generated through successive refinement operations.
-Finally, \citet{vanOosterom14} discuss the integration of 2D maps at different scales in one 2D+scale model that is conceptually 3D---but is represented instead as a series of linked 2D structures---and is known as the \emph{space-scale cube}\footnote{A similar objection could be made to it being called a cube though.}.
-
-\section{The higher-dimensional modelling paradigm}
-\label{se:nd-modelling-paradigm}
-
-Considering the strong foundations of higher-dimensional modelling explained in \refse{se:nd-modelling-foundations}, the higher-dimensional modelling of geographic information has great potential to integrate space (of any dimension) with any number of non-spatial characteristics.
-Such a representation is extremely powerful, capable of handling even complex situations like objects that are both changing shape (\ie\ \emph{morphing}) and moving in time, but it is also complex in several ways.
-
-This section serves as a broad overview of the higher-dimensional modelling paradigm, covering the main conceptual difficulties in how these models work and describing intuitively what they look like.
-The first fundamental aspect, deciding which characteristics can and should be modelled as dimensions, is described in \refse{ss:dimensions}.
-Afterwards, considering that understanding how objects in more than three dimensions are hard to visualise, \refse{ss:agile13} explains intuitively what these objects look like based on 3D models using 2D+time and 2D+scale, as well as making analogies between the properties of higher-dimensional models and 2D/3D ones.
-
-\refse{ss:nd-topology} discusses the key distinguishing feature of the higher-dimensional approach---the possibility to store and use topological relationships in arbitrary dimensions.
-Finally, \refse{ss:nd-partition} explains how the standard topological approach in GIS, creating a functional space partition from a set of objects, can also be used in higher dimensions to store these topological relationships in the data structures presented in \refse{se:data-structures}.
-
-\subsection{Defining the characteristics to be modelled as dimensions}
-\label{ss:dimensions}
-
-As powerful as higher-dimensional representations are, their advantages need to be balanced with the fact that higher-dimensional representations are large and complex.
-The size of such a model can be expected to increase roughly exponentially with the dimension---although the exact values are highly dependent on the model used and the data being represented.
-For example, consider the total number of cells of all dimensions in the family of hypercubes.
-A point has 1 cell, a line segment $3$ ($2+1$) cells, a square $9$ ($4+4+1$) cells, a cube $27$ ($8+12+6+1$) cells and a tesseract, shown in \reffig{fig:tesseract}, $81$ ($16+32+24+8+1$) cells.
-\marginpar{
-\captionsetup{type=figure}
-\centering
-\includegraphics[width=\marginparwidth]{figs/tesseract.jpg}
-\caption[A tesseract]{A tesseract or 4-cube is the four-dimensional analogue of a square (in 2D) or cube (in 3D). It consists of 16 vertices, 32 edges, 24 faces, 8 volumes and one 4-cell.}
-\label{fig:tesseract}
-}
-
-Because of this, while many characteristics \emph{can} be used as a dimension, only those characteristics where such modelling would bring significant benefits \emph{should} be modelled in this manner.
-In fact, while there is no theoretical limit to the number of dimensions that can be used, the increasing space requirements of models with more dimensions generally limit the practical number of dimensions to 6--8.
-
-There are various requirements and desirable properties in the characteristics that are to be modelled as additional dimensions.
-At minimum, such characteristics should be parametrisable (\ie\ there should be a way to express them in terms of a parameter or parameters), so that these parameters can be entered into a computer, and preferably parametrised as numbers that determine the object's position along the axes of the dimensions.
-Many other properties are not strictly necessary but are still very desirable, including that there is a parametric function that models the characteristic in a natural way, and that this function is invertible so that the object's properties can be known from the inverse function.
-These are properties that are fulfilled by data that is quantitative in nature, which is related to measurements of an interval or ratio scale \citep{Stevens46}\footnote{Measurements might not be the best term here considering that much data is modelled without any measurements taking place, but this is the original terminology in \citet{Stevens46}.}.
-
-In addition, there are certain properties of the data to be represented that determine if the higher-dimensional modelling approach is worth the added complexity and size.
-For this, it is possible to evaluate it by considering whether more compact alternatives are able to depict the situations that are present in the data.
-For instance, if the value of one of the characteristics can be determined from the others without added knowledge, the former can be simply obtained from the latter.
-Also, when a given characteristic has a bounded number of values for every possible combination of the other characteristics, the former can be stored more efficiently as an attribute.
-A typical example of this latter case is a 2.5D terrain model, where there is only one height ($z$) value for any given combination of $(x,y)$ coordinates.
-Caves, tunnels, overhangs and arches are thus problematic.
-
-Time and scale---the examples used throughout this thesis---comply with most of the properties mentioned above.
-They are both intuitively quantifiable in a meaningful way.
-For instance, a point along a temporal axis defines a moment in time such that points on one side of it occur before it and points on the other side of it occur after it.
-Similarly, an object at a given LOD is finer than those at a lower LOD and coarser than those at a higher LOD.\@
-Moreover, in the general case, an object's position in time or its geographic scale cannot be known based solely on its position in 2D or 3D space, and an object can be at the same position at different moments in time (\eg\ by not moving) or at different scales.
-
-\subsection{How higher-dimensional data looks}
-\label{ss:agile13}
-
-To understand how data modelled using the higher-dimensional modelling paradigm looks, it is easier to first consider a case with a two-dimensional space plane $(x,y)$ where time is added as a third dimension.
-In this configuration, a set of 2D objects, each of which exists for one or more intervals of time, can be represented as a set of volumes.
-The simplest case is when these objects remain stationary, which is shown in \reffig{fig:aula}.
-In this case, the shape of the resulting volume is an extrusion of the original 2D shape along the time axis.
-Such a volume has a prismatic shape and can be generated using the methods that will be described in \refch{ch:extrusion}.
-\marginpar{
-\captionsetup{type=figure}
-\centering
-\subfloat[Original]{
-\includegraphics[width=\marginparwidth]{figs/aula}
-\label{subfig:aula}
-}
-\\
-\subfloat[Extrusion]{
-\includegraphics[width=\marginparwidth]{figs/aula-extruded}
-\label{subfig:aula-extruded}
-}
-\caption[An object remaining stationary as an extrusion in 2D space+time]{In a 2D+time setting, (a) a 2D object remaining stationary becomes (b) a volume where the original object is extruded along the time dimension.}
-\label{fig:aula}
-}
-As shown in \reffig{fig:aula-transformations}, applying translation, rotation or scale transformations to the 2D object during a time interval yield other volumes that have an intuitive shape.
-\begin{figure*}[tbp]
-\centering
-\subfloat[Original]{
-\includegraphics[width=0.25\linewidth]{figs/aula}
-}
-\subfloat[Translation]{
-\includegraphics[width=0.25\linewidth]{figs/aula-moved}
-\label{subfig:aula-moved}
-}
-\subfloat[Rotation]{
-\includegraphics[width=0.25\linewidth]{figs/aula-rotated}
-\label{subfig:aula-rotated}
-}
-\subfloat[Scaling]{
-\includegraphics[width=0.25\linewidth]{figs/aula-scaled}
-\label{subfig:aula-scaled}
-}
-\caption[Object transformations in 2D space+time]{In a 2D+time setting, applying certain transformations to (a) a polygon during a time interval results in: (b) a parallelepiped in the case of a translation, (c) a screw shape with curved surfaces similar to a \emph{twisted prism} in the case of a rotation, and (d) a \emph{frustum} in the case of scaling.}
-\label{fig:aula-transformations}
-\end{figure*}
-
-In the context of geographic information, where many kids of features are represented as planar partitions of polygons, the resulting 2D space+time polyhedra form a 3D space partition---if the polygons do not overlap, the resulting polyhedra do not overlap either.
-This property is later exploited by the extrusion algorithm in \refch{ch:extrusion}.
-Moreover, as shown in \reffig{fig:2d+time}, such a representation can represent the state of the partition at any point in time.
-\begin{figure}[tbp]
-\begin{center}
-\includegraphics[width=0.85\linewidth]{figs/2d+time}
-\caption[A 3D representation of 2D space+time]{A 2D space $(x,y)$ + time (the vertical axis $t$) view of the footprint of two buildings. These buildings were separate at $t = t_{0}$, were then connected by a corridor (red) at $t = t_{1}$, then became disconnected again when the corridor was removed at time $t_{2}$. This configuration remains unchanged until time $t = t_{3}$. The times $t_0$, $t_1$, $t_2$ and $t_3$ are shown as points along the thick line representing the front right corner of the building on the left.}
-\label{fig:2d+time}
-\end{center}
-\end{figure}
-At any one moment in time (\ie\ a slice perpendicular to the 2D space plane), a polygon is still represented as a polygon but one that is embedded in 3D space, parallel to the 2D space plane $(x,y)$ and orthogonal to the time axis.
-Every object existing (and not moving or changing shape) during a time period would then be prism shaped, with identical base and top faces that are parallel to the 2D space plane and the other faces being orthogonal to it.
-
-Extending this to a 4D representation of 3D space and time, a set of polyhedra can be represented as a set of \emph{polychora}\footnote{A polychoron is the 4D analogue of a 2D polygon or 3D polyhedron.}.
-At any one moment in time, a polyhedron is still represented as a polyhedron but one that is embedded in 4D space.
-If it is not moving or changing shape, it would take the form of a prismatic polychoron.
-As in the previous cases, if the polyhedra form a 3D space subdivision, the polychora form also a 4D space subdivision.
-
-In the same fashion as the 2D space+time case, it is possible to create similar 3D representations where 2D space is combined with scale as a third dimension.
-As shown in \reffig{fig:2d+scale}, such a representation of a planar partition of polygons at different scales results in a 3D space subdivision where at each scale point there is still a planar partition.
-\marginpar{
-\captionsetup{type=figure}
-\centering
-\includegraphics[width=\marginparwidth]{figs/2d+scale}
-\caption[A 3D representation of 2D space+scale]{A 3D representation of 2D space (horizontal plane) and scale (vertical axis).
-The vertical edges connecting corresponding features are omitted for legibility.
-From \citet{Meijers11}.}
-\label{fig:2d+scale}
-}
-As shown in \reffig{fig:scale3d2} and discussed by \citet{Meijers11}, this approach enables the storage of continuous levels of detail---an approach that can be extended to higher dimensions as well \citep{Stoter12,Stoter12a}.
-\marginpar{
-\captionsetup{type=figure}
-\centering
-\includegraphics[width=\marginparwidth]{figs/scale3d2}
-\caption[A 2D+scale representation of four polygons being generalised]{A 2D+scale representation of four polygons being smoothly ($C^0$) generalised.
-From \citet{vanOosterom11}.}
-\label{fig:scale3d2}
-}
-
-In a general setting, it is then possible to define an $n$-dimensional model where a set of 0D--3D objects are integrated with any number of additional characteristics and modelled as up-to-$n$-dimensional objects embedded in $n$-dimensional space.
-These higher-dimensional objects can be stored or used for analysis as is, or 0D--3D objects can be extracted from them by looking at specific `slices' of these objects---intersections of the objects with specific subsets of space (\eg\ a plane parallel to the 2D space plane), projections to certain planes or regions of 3D space, or more broadly, transformations to arbitrarily defined 2D/3D coordinate systems.
-This is described in more detail in \refch{ch:slicing}.
-
-\subsection{Topological relationships in higher dimensions}
-\label{ss:nd-topology}
-
-As described in \refse{ss:combinatorial-embedding}, spatial data structures often consist of two aspects: (i) a combinatorial part, which consists of a set of primitives and some topological relationships between them, and (ii) an embedding that links these primitives to their geometry and attributes.
-This distinction is useful to give a more formal understanding of what topological relationships in higher dimensions are, as well as to highlight how the storage of higher-dimensional topological relationships in a combinatorial structure is the main aspect that differentiates higher-dimensional structures from 2D/3D ones.
-
-This is clearer when considering the data structures that contain only 1D topological relationships, which are commonly used in GIS.\@
-For instance, in the Simple Features Specification \citep{SimpleFeatures1}, independent 2D primitives are defined as sequences of points (with coordinates) that are connected using implicit line segments.
-When structures constructed from these 2D primitives are described (\eg\ planar partitions or polyhedra), they are simply considered as sets of these 2D primitives.
-Apart from the relations used to define that a primitive belongs to a set, no other information is stored explicitly and the 2D primitives are therefore independent from each other.
-Since the implicit line segments in every 2D primitive are known to be adjacent but nothing is known about the relationships between the 2D primitives themselves, such data structures can be considered to store up to 1D topological relationships only (adjacencies between edges and the incidences between edges and vertices).
-By contrast, a data structure without even these topological relationships could consist of an unordered soup of line segments defined by their endpoints, which are repeated in every line segment in which they are present.
-
-Despite their apparent limitations, these types of structures can be in fact used to store objects of any dimension thanks to the Jordan-Brouwer theorem \citep{Lebesgue11,Brouwer11} described in \refse{ss:data-models}.
-Just as independent 2D primitives are defined as sequences of points (with coordinates) that are connected using implicit line segments, 3D primitives can be then represented as sets of such 2D elements, which are otherwise unlinked, and $n$D objects can be represented as aggregations of their $(n-1)$D-face bounding elements.
-This property is later exploited in the incremental construction scheme proposed in \refch{ch:incremental-construction}.
-Since every point in such an object can have any number of coordinates, an $n$D object can be embedded in $n$D space as well.
-
-\newsavebox{\sfsiidbox}
-\begin{lrbox}{\sfsiidbox}
-\begin{minipage}{\overflowingheadlen}
-\lstinputlisting{figs/sfs2d}
-\end{minipage}
-\end{lrbox}
-
-\newsavebox{\sfsiiidbox}
-\begin{lrbox}{\sfsiiidbox}
-\begin{minipage}{\overflowingheadlen}
-\lstinputlisting{figs/sfs3d}
-\end{minipage}
-\end{lrbox}
-
-\newsavebox{\sfsivdbox}
-\begin{lrbox}{\sfsivdbox}
-\begin{minipage}{\overflowingheadlen}
-\lstinputlisting{figs/sfs4d}
-\end{minipage}
-\end{lrbox}
-
-\newsavebox{\sfsvdbox}
-\begin{lrbox}{\sfsvdbox}
-\begin{minipage}{\overflowingheadlen}
-\lstinputlisting{figs/sfs5d}
-\end{minipage}
-\end{lrbox}
-
-However, such representations become exponentially more inefficient as the dimension increases: lower-dimensional primitives need to be encoded multiple times, recursively once for each time they appear in a higher-dimensional primitive.
-This means that they are difficult to navigate and that even simple geometric and topological queries involve searching many objects \citep{Hazelton98}.
-As an example, it is possible to consider Simple Features-like~\citep{SimpleFeatures1} representations of simple objects of various dimensions, as shown in \reffig{fig:sfsnd}.
-\begin{figure*}[p]
-\subfloat[square]{\usebox{\sfsiidbox}\label{subfig:sfs2d}}\\
-\subfloat[cube]{\usebox{\sfsiiidbox}\label{subfig:sfs3d}}\\
-\subfloat[tesseract]{\usebox{\sfsivdbox}\label{subfig:sfs4d}}\\
-% \subfloat[]{\usebox{\sfsvdbox}}
-\caption[Simple Features representations of a square, cube, and tesseract]{Simple Features-like representations of a unit square, cube, and tesseract. One face (per volume and per 4-cell) is shown in each line.
-Due to the repetition of structures in this type of representation, a 5-cube, which has only 80 faces, requires 480 lines to be represented, which is 10 times the number of lines and 12.16 times the number of characters used to represent the tesseract in (c).}
-\label{fig:sfsnd}
-\end{figure*}
-A Simple Features-like representation of a square does not repeat most\footnote{The number of times a vertex is repeated in Simple Features can be up to doubled since representing a closed polygon involves repeating its first vertex at the end.} vertices, while one of a cube repeats every vertex at least three times, one of a tesseract (their four-dimensional analogue) repeats every vertex at least 12 times and one of a 5-cube at least 60 times.
-
-Because of this, in a similar vein to the definition of the dimensionality of a GIS in \citet{Hazelton90}, it is possible to consider that the defining characteristic of a higher-dimensional spatial data structure is not the ability to be embedded into higher-dimensional space, but being able to explicitly store topological relationships in a dimension-independent manner.
-
-Moreover, topological relationships in more than 3D have advantages other than efficiency of representation.
-For instance, 4D topological relationships between 4D objects provide insights that 3D topological relationships cannot, such as by using the dual graph of such a 4D structure for applications such as space-time wayfinding and analysis.
-This will be discussed in more detail in \refse{se:duality}.
-
-\subsection{Representing higher-dimensional objects as a space partition}
-\label{ss:nd-partition}
-
-In order to store the higher-dimensional topological relationships described in \refse{ss:nd-topology}, it is a practical requirement is that the objects being represented can be made to functionally form a space partition.
-For this, it is possible to use the standard topological modelling approach used in GIS---utilising an intermediate type of representation where a set of (possibly overlapping) original objects is transformed into a set of non-overlapping regions, such that each of these regions represents \emph{a set of the original objects} \citep{Rossignac89}, which might be the empty set in the case of the regions that are not covered by any of the original objects (\eg\ some holes).
-An original geometry can be obtained by performing a Boolean set union of the regions labelled as belonging to it.
-
-This transformation can be computed in various ways.
-In 2D and 3D, all objects are generally first overlaid on top of each other, the intersections between their boundaries are computed, and new regions are obtained by finding closed connected regions uncrossed by any other boundaries (\eg\ cycles in 2D) \citep[\S{}2.3]{deBerg08}.
-It is worth noting however that implementing such a procedure robustly in more than 3D is not a trivial undertaking.
-
-Using this newly created space partition, even complex topological relationships between the original objects can be reduced to a combination of set membership, adjacency and incidence.
-In fact, many schemes of topology in GIS can be implemented solely on inspecting which objects are in a set \citep{Egenhofer91,Worboys92a,Guting00}.
-These can be very intuitive, as they often have direct correspondences to natural language equivalents (\eg\ `inside', `touches', `equals', etc.) \citep{Dube12}.
-
-Moreover, it possible to use the data structures presented in \refse{se:data-structures} to store a traversable structure containing the objects, in which the boundaries of the sets are explicitly represented, and to easily query the topological relationships that exist between the objects.
-
-The most promising structures for higher-dimensional GIS are therefore those that starting from a space subdivision, are capable of storing a well-defined and relatively broad class of objects of arbitrary dimension, embedded into Euclidean space of the same or higher dimension, attributes attached to such objects, and enough topological relationships between them to allow for the quick traversal of the structure and for basic operations, such as testing if two given objects are identical, adjacent or overlapping.
-
-\section{Higher-dimensional data models and structures}
-\label{se:data-structures}
-
-This section presents all the main possibilities to represent dimension-independent objects, which are presented as a series of data models, each with related data structures.
-These are: exhaustive enumeration (\eg\ rasters) in \refse{ss:regular-partitions}, hierarchical space subdivisions using simple tree-like structures (\eg\ BSP-trees) in \refse{ss:hierarchical-subdivisions}, more general implicit vector models (\eg\ constructive solid geometry) in \refse{ss:implicit-models}, geometric simplicial complexes (\ie\ triangulations) in \refse{ss:simplicial-complexes}, cell complexes in \refse{ss:cell-complexes}, and ordered topological models (\eg\ generalised and combinatorial maps) in \refse{ss:ordered-topological-models}.
-Short notes on other, less relevant vector data structures are discussed in \refse{ss:vector-others}.
-
-\subsection{Exhaustive enumeration}
-\label{ss:regular-partitions}
-
-Exhaustive enumeration in higher dimensions works in a similar manner as in 2D and 3D.
-The shape of an $n$-dimensional domain is first specified, generally opting for a simple shape such as an axis-parallel \emph{$n$-orthotope}, the $n$-dimensional analogue of a 2D rectangle or a 3D box (more formally a \emph{cuboid}), which can be defined based on two points in $\mathbb{R}^n$ on opposite corners of the orthotope.
-Afterwards, a simple deterministic rule is then used in order to partition the domain directly into $n$-cells.
-A programatic order or path that traverses all cells is defined, and the order of the path along these cells is used to record whether a cell belongs to the interior of the object or not, or in the case of multiple objects, which objects are present inside a cell.
-
-Regular tessellations involve the subdivision of $n$-dimensional space directly into primitive cells forming \emph{regular $n$-polytopes}---the $n$-dimensional analogue of regular polygons and regular polyhedra.
-A regular $n$-polytope is one whose bounding faces are regular $(n-1)$-polytopes\footnote{More formally, one whose symmetry is transitive on its flags.}.
-As in 2D and 3D, it is possible to create arbitrary rules in order to produce cells of any shape and size, which can be used to create optimal configurations that are related to $n$-ball packing or kissing number problems in geometry \citep{Conway92}.
-For instance, such cells could be arranged in the form of the optimal 24-cell honeycomb in 4D.
-
-However, operations on these optimum configurations can be rather complex.
-Axis-aligned regular grids consisting of congruent orthotopes, such as those taking the form of pixels in 2D and voxels in 3D, are much simpler in practice and offer a good enough approximation for practical purposes.
-
-As in 2D and 3D, semi-regular tessellations, which consist of more than one type of polytope are also possible but are significantly more complex in practice.
-Creating optimal configurations of these tessellations is a problem related to the unequal hypersphere packing, as the general aim is still to create polytopes that are as close to balls (of appropriate sizes) as possible.
-
-Exhaustive enumeration schemes are relatively straightforward even in higher dimensions and can be stored and processed using similar techniques as their 2D and 3D counterparts.
-However, these representations suffer from the same problems as 2D/3D grids: they are incapable of representing precise boundaries, their contents vary when they are translated, rotated or scaled, and are cumbersome for the representation of objects \citep{Fisher97}, especially when they are of mixed dimensions.
-Moreover, they have extremely high space requirements---increasing \emph{exponentially} with the dimension in grids with a similar number of divisions along each dimension.
-
-Nevertheless, up to 4D grids using time as a dimension have been used in the context of GIS since the 1990s.
-These are currently used widely for computer simulations in various fields and have recently been implemented in standard GIS software\footnote{\url{http://video.esri.com/watch/3653/new-dimensions-with-arcmap}}.
-Much earlier, \citet{Mason94} implemented a system using a 4D grid of ocean temperatures with support for interpolation and generalisation operations.
-\citet{Bernard98} also implemented a 4D grid of atmospheric variables (\eg\ temperature, wind or pollution), which can be used for simulations.
-
-Also worth noting is that outside the domain of GIS, the use of magnetic resonance (MRI) and computer tomography (CT) equipment has greatly increased the availability of acquired 4D raster images on which computational methods are often applied \citep{LorenzoValdes04}.
-Similar methods are also applied on numerical simulations generated in other fields, such as the computation of topological invariants in metallurgy \citep{Kaczynski04}.
-
-\subsection{Hierarchical subdivisions using trees}
-\label{ss:hierarchical-subdivisions}
-
-Higher-dimensional hierarchical subdivisions using trees also work in a similar fashion as their 2D and 3D counterparts.
-An $n$-dimensional domain is specified, which generally has a simple shape.
-It is then subdivided using `partition' primitives, which attempt to split space incrementally in an adaptive manner---each primitive recursively partitioning the space defined by its parent so that the shape of the cells in the subdivision is only known after traversing a path in the tree from its root to a leaf representing the last relevant partition primitive.
-Even though this means that it is necessary to traverse many nodes in order to extract a single cell, this makes it possible to use a custom partition at every step and so store cells of varying sizes more efficiently.
-
-Many different structures with only small variations have been created for this purpose, of which hyperoctrees, bintrees and k-d trees are by far the most widely used.
-The simplest possibility is to recursively subdivide space along all dimensions homogeneously at their midpoints at every partition primitive, so that one partition primitive subdivides $n$D space into $2^n$ regions.
-Hyperoctrees \citep{Yau83} and k-trees \citep{Jackins83} do this, being identical dimension-independent generalisations of quadtrees \citep{Finkel74} in 2D and octrees \citep{Meagher80} in 3D.
-Bintrees \citep{Samet85} instead split dimensions alternately rather than all at one, while k-d trees split dimensions at specified points rather than at their midpoints.
-
-Hierarchical subdivisions using trees have also been previously used in a higher-dimensional GIS setting, usually combined with exhaustive enumeration approaches.
-\citet{Varma90} defined HHCodes in order to perform efficient topological queries on abstracted 4-orthotopes, such as whether a pair of them overlap both spatially and temporally.
-\citet{Oconaill92} aggregated 4D raster images using trees, permitting the efficient storage of large sparse datasets.
-\citet{Mason94} used 4D bintrees in order to index and perform fast queries and operations (\eg\ interpolation and generalisation) on the aforementioned 4D grid of ocean temperatures.
-
-\subsection{(Implicit) vector models}
-\label{ss:implicit-models}
-
-Vector representations of $n$D objects avoid many of the problems present in exhaustive enumeration and tree-based subdivisions: they are generally more compact, can describe boundaries more precisely and can represent objects with their attributes directly.
-This makes them particularly interesting for higher-dimensional GIS, even if they have hardly been explored as the data structures commonly used in 2D vector GIS do not extend naturally to higher dimensions.
-
-Among the possible vector-based structures, the ones that most naturally extend to higher dimensions are the more implicit models consisting of primitives that can be defined using a set of simple parameters.
-This includes many of the models discussed in \refse{ss:data-models}, such as higher-dimensional versions of primitive instancing, sweep representations, constructive solid geometry, Boolean set operations on half-spaces and Nef polyhedra.
-
-For instance, \citet{Paoluzzi04} describes a scheme of dimension-independent Boolean operations on half-spaces.
-It is able to do these operations by combining the half-space constraints of multiple objects.
-Obtaining such a representation of an object can be achieved by performing (alternate) decompositions into convex parts \citep{Bulbul09a,Lien06}.
-
-This type of implicit approach might be especially useful in certain contexts, such as production processes and the computation of homologies \citep{Damiand08}.
-However, these are less capable of storing objects and their attributes \emph{directly}, especially those of lower dimensionality, and therefore have to be generally `evaluated' into another, more explicit model in order for them to be visualised \citep{Mantyla88} or to perform the type of computations expected in GIS, such as geometric intersection operations.
-They are therefore less interesting for a higher-dimensional GIS.\@
-
-Nevertheless, a possible future implementation of Nef polyhedra in arbitrary dimensions deserves an additional mention.
-As shown in \refse{ss:data-models}, a set of Nef polygons can be reduced to a structure of sets of circular intervals and a set of Nef polyhedra to a structure of sets of faces on a sphere.
-This approach extends naturally to higher dimensions as the method can be recursively repeated in decreasing dimension in order to have a complete description of a higher-dimensional Nef polytope.
-However, the practical benefits of doing do decrease as the dimension increases and the navigation becomes more cumbersome.
-It is also very complex to implement this in a fully dimension-independent manner, requiring a hyperspherical projective kernel capable of representing cells of any dimension embedded on higher-dimensional spheres which is also capable of computing point-set intersections in any dimension.
-To the best of my knowledge, no such system has every been implemented, and it is unlikely to be implemented in the near future.
-
-\subsection{Geometric simplicial complexes}
-\label{ss:simplicial-complexes}
-
-As described in \refse{ss:algebraic-topology}, an $i$-dimensional simplex ($i$-simplex) is a combinatorial primitive made from a set of $i+1$ vertices, and an $j$-simplex, $j \leq i$, made from a subset of these is an $j$-dimensional face ($j$-face) of it.
-An $n$-dimensional \emph{geometric} simplicial complex, also known as a Euclidean simplicial complex, is a subdivision of $n$-dimensional space into a structure of closed $n$-simplices directly embedded in space by attaching a tuple of coordinates to each vertex, in a manner that their interiors are non-overlapping geometrically (pairwise disjoint).
-In an $n$-dimensional simplicial complex, an $i$-dimensional object, $i \leq n$, can be represented as a set of $i$-simplices.
-This allows the representation of objects of any dimension in a geometric simplicial complex.
-
-An $i$-simplex is easily described by an $(i+1)$-tuple of $i+1$ affinely independent\footnote{That is, that none of them are in the affine space described by the others.
-In practical terms: two points with a different coordinate in 1D, three non-collinear points in 2D, four non-coplanar points in 3D, etc.} vertices $(v_{0}, v_{1}, \ldots, v_{i})$.
-Since they are affinely independent, the geometric realisation of a simplex is the convex hull of its vertices.
-A vertex in an $n$-dimensional simplicial complex can be described by an $n$-tuple of coordinates $(x_{0}, x_{1}, \ldots, x_{n-1})$, representing its embedding into $n$-dimensional Euclidean space.
-In a subdivision of $n$-dimensional space, every simplex in the simplicial complex is a face of at least one $n$-simplex.
-
-Simplicial complexes have a simple but powerful structure and are easy to navigate.
-Two $i$-simplices are adjacent if they have a common face, and an $i$-simplex and a $j$-simplex, $i \neq j$, are incident if either is a face of the other.
-In an $n$-dimensional simplicial complex, each $n$-simplex is adjacent to at most $n+1$ other $n$-simplices and has exactly $n+1$ $(n-1)$-faces on its boundary.
-To each $n$-simplex it is therefore possible to apply $n+1$ different boundary and neighbour operators, where the $n$-th boundary operator returns the $(n-1)$-face of the $n$-simplex on the opposite side of the $n$-th vertex---obtained by removing the $n$-th element of the tuple of vertices---, and the $n$-th neighbour operator returns the adjacent $n$-simplex on the opposite side of the $n$-th vertex, if any, which is also incident to the face given by the $n$-th boundary operator.
-
-The biggest challenge of using a geometric simplicial complex for the representation of $n$D objects is the difficulty of triangulating the possibly complex $n$D objects being modelled, \ie\ algorithmically dividing them into non-overlapping geometric simplices so that the union of the simplices representing an object corresponds exactly to its original geometry.
-While triangulations of sets of points in $n$D have been studied extensively and there is robust software to compute them, \eg\ Quickhull \citep{Barber96}, such triangulations are generally not applicable to $n$D objects since a triangulation of the vertices of an object usually results in simplices that do not conform to the object's boundary, \ie\ that are partially inside and partially outside the object.
-
-However, it is possible to make sure that the boundaries are part of the triangulation through the use of a constrained or conforming triangulation.
-Both of these force the triangulation to include certain simplices as part of the triangulation in the form of \emph{constraints}, which in this case would be the objects' boundaries.
-In a \emph{constrained triangulation}, the constraints are directly part of the structure of the simplicial complex.
-While the properties of $n$D constrained triangulations have been described \citep{Shewchuk07} and algorithms to construct them in some cases have been developed \citep{Shewchuk00}, their construction in the general case is very difficult in practice, having to deal with robustness issues and possibly requiring the addition of a large number of additional vertices (Steiner points) and subsequently additional simplices, as not every object of dimension three or higher is triangulable without additional vertices \citep{Ruppert92}, such as the Sch\"onhardt polyhedron shown in \reffig{fig:schoenhardt}.
-\marginpar{
-\captionsetup{type=figure}
-\centering
-\subfloat[]{\includegraphics[width=\marginparwidth]{figs/schoenhardt1}} \\
-\subfloat[]{\includegraphics[width=\marginparwidth]{figs/schoenhardt2}}
-\caption[The Sch\"onhardt polyhedron]{Two views of the Sch\"onhardt polyhedron \citep{Schonhardt28}---the archetype of a polyhedron that cannot be tetrahedralised without the addition of Steiner vertices.
-Starting from a triangular prism whose rectangular faces have been triangulated, it can be created by rotating the triangular faces with respect to each other.
-Note how any tetrahedron built from the 3 vertices of any of its faces plus any other vertex of the polyhedron necessarily passes through the outside of the Sch\"onhardt polyhedron.}
-\label{fig:schoenhardt}
-}
-In fact, it is already an NP-hard problem to determine whether a polyhedron is tetrahedralisable without adding Steiner points \citep{Ruppert92}.
-Deciding where to best add these additional simplices in $n$D seems to be the hardest part of this problem\footnote{In the opinion of \href{http://www.cs.berkeley.edu/~jrs/}{Jonathan Shewchuk}.}.
-
-A \emph{conforming triangulation} forces the triangulation to contain some constraints as well, but instead of adding them directly as simplices of the triangulation, it allows them to be split into multiple smaller simplices.
-This allows a conforming triangulation to fulfil other geometric criteria such as the Delaunay property (\ie\ the circumsphere of a simplex does not contain any other vertex).
-
-Unfortunately, while there are robust and reliable constrained and conforming triangulation libraries existing in 2D and 3D, such as Triangle in 2D \citep{Shewchuk96}, CGAL in 2D \citep{Boissonnat02}, and Tetgen in 3D \citep{Si05}, there seems to be no software capable of performing a constrained or conforming triangulation in more than 3D.
-% Note: It should be possible to to an nd conforming triangulation using a greedy algorithm, right?
-
-Assuming that the objects have been triangulated successfully, managing holes and disconnected components in a simplicial complex becomes trivial since these become integrated into the combinatorial structure of the triangulation, as will be discussed in \refse{se:pprepair}.
-Generally, a triangulation algorithm works initially on the basis of a set of points and ensures that the entire convex hull of all of the points is triangulated, something that can be done using the concept of a `big triangle' or faraway point \citep{Liu08}, and therefore connects formerly disconnected components or components that were not connected by using new simplices ($n$-simplices in an $n$D simplicial complex).
-Similarly, as the interiors of polytopes with holes are triangulated, additional simplices connect the void regions representing holes with the rest of the structure.
-In this manner, 2D holes can be represented as sets of triangles labelled as being empty, 3D holes as similar sets of tetrahedra, and so on for higher (and lower) dimensions.
-This ensures that it is always possible to navigate between all the simplices in the complex.
-
-Another advantage of simplicial complexes is that many operations on them are efficient and easy.
-For instance, a simplicial complex can be traversed efficiently without any external data structure.
-Starting from any simplex, it is possible to `walk' the simplicial complex in the desired direction in order to find any given simplex, \eg\ inside which simplex a point is located \citep{Devillers02a}, with each walking step taking only constant time.
-Comparing objects composed of sets of simplices is also trivial, assuming that they have been triangulated in a deterministic way\footnote{Note that triangulating objects deterministically is not so simple.
-If the triangulations are not deterministic, such a comparison could possibly require geometric operations.}, since they can be compared one by one (in order) after finding a common simplex, which can be done by walking the respective simplicial complexes.
-Checking if two objects are adjacent or intersect geometrically are examples of other operations that can be done simply and efficiently simplex by simplex.
-
-Since the number of incident vertices, bounding $(n-1)$-faces and adjacent simplices of an $n$-simplex in an $n$-dimensional simplicial complex is fixed and known, it is easily represented in a computer using simple arrays, rather than linked lists or other variable-length data structures.
-This can be done through an $n$-simplex-based data structure, shown in \reffig{fig:ds_simplex} for 2D, where $n$-simplices are the main primitives.
-Related data structures are often said to to follow the adjacency or incidence model, depending on the dimensions of the simplices that are represented in the structure---only the highest-dimensional ones in the adjacency model, but possibly all in the incidence model.
-\begin{figure}[tbp]
-\centering
-\subfloat[]{
-\includegraphics[scale=0.18]{figs/2-simplex-adjacency}}
-\quad
-\subfloat[]{
-\includegraphics[scale=0.18]{figs/2-simplex-boundary}}
-\quad
-\subfloat[]{
-\includegraphics[scale=0.18]{figs/2-simplex-vertices}}
-\\
-\subfloat[]{
-\includegraphics[scale=0.18]{figs/1-simplex-star}}
-\quad
-\subfloat[]{
-\includegraphics[scale=0.18]{figs/1-simplex-boundary}}
-\quad
-\subfloat[]{
-\includegraphics[scale=0.2]{figs/0-simplex}}
-\caption[Relationships in a simplex-based data structure]{Some of the possible relationships between primitives and the storage of a geometry using a 2-simplex (triangle) based data structure.
-(a) Adjacency relationships of a 2-simplex.
-(b) Boundary relationships of a 2-simplex.
-(c) Vertices of a 2-simplex.
-(d) Star (co-boundary) relationships of a 1-simplex.
-(e) Boundary relationships of a 1-simplex.
-(f) Embedding of a 0-simplex.
-In addition to these, it is also possible to store attributes for the 0-, 1-, and 2-simplices in embedding structures.
-The adjacency model uses at least (a), (c) and (f), while the incidence model uses at least (b), (e) and (f), plus usually (a) to navigate the structure.
-Many other combinations are possible.
-}
-\label{fig:ds_simplex}
-\end{figure}
-
-An $n$-dimensional simplicial complex is thus represented as a collection of primitive $n$-simplices, each containing $n+1$ links to its adjacent $n$-simplices.
-For the models described above, it also includes information containing:
-\begin{description}
-\item[Adjacency model]
-For every $n$-simplex, $n+1$ links to vertex primitives containing the coordinates and attributes of its $n+1$ vertices, or alternatively this information stored directly in the $n$-simplex. The simplices of dimensions 1 to $(n-1)$ and the incidence relationships between them, are therefore not represented explicitly.
-\item[Incidence model]
-For every $i$-simplex, $\forall 0 < i \leq n$, $i+1$ links to primitives containing the geometry and attributes for its $(i-1)$-faces, or alternatively this information stored directly in the $i$-simplex.
-All simplices of every dimension, together with all their incidence relationships, can therefore be represented explicitly, or as part of a simplex of a higher-dimension.
-\end{description}
-
-The adjacency model thus forms an $(n+1)$-regular graph with the $n$-simplices as nodes, \ie\ a graph where every vertex has degree $n+1$.
-The incidence model is a graph with a maximum degree $n+1$, where the degree of a node representing an $i$-simplex is $i+1$.
-Note that the adjacency model is therefore more compact, but only allows for the explicit representation of $n$-dimensional objects, while the incidence model is more verbose but supports the representation of objects of any dimension.
-This is done using the embedding information for the simplices of dimension lower than $n$.
-Note that non-linear geometries (\eg\ NURBS) can be represented as well using the embedding structures for the simplices of dimensions one and higher.
-
-Additionally, since a simplex is also a cell, it is possible to use any data structure meant for more general cell complexes, such as those described in \refse{ss:cell-complexes} and \refse{ss:ordered-topological-models}.
-This is commonly used in practice during the process of triangulating a cell complex (since at that point the structure is not a simplicial complex and cannot by definition be stored in a data structure for simplicial complexes only), but it is a very inefficient approach when it has already been triangulated.
-
-Simplicial complexes in more than 3D are commonly described in theory but rarely put in practice.
-\citet{Paoluzzi93} described the winged scheme in order to describe arbitrary polytopes as simplicial complexes, and \citet{Karimipour10} uses lists of vertices to store simplices of any dimension in order to do spatial analysis using Delaunay triangulations as an example.
-
-\subsection{Cell complexes}
-\label{ss:cell-complexes}
-
-For the purposes of a higher-dimensional data structure, cell complexes differ from simplicial complexes in two main related aspects: (i) there is a variable number of facets on the boundary of a cell, each of which has also a different number of facets, continuing recursively down to the vertex level; and (ii) obtaining a geometric interpretation of a cell requires looking recursively at its facets\footnote{Or at some similarly complex recursive representation, such as with Nef polyhedra \citep{Bieri88}.}.
-This causes cell complexes to have a much more complex representation and algebra to manipulate them compared to simplicial complexes.
-For instance, simplicial complexes can be easily constructed by adding and removing simplices expressed by sets of vertices, or by splitting and merging existing ones, but cell complexes require much more complex operations in order to add or remove cells---something that will be described in detail in \refch{ch:incremental-construction}.
-Traversing a cell complex (\eg\ to find in which cell a point lies or to see which cells intersect a given geometry) is also much more difficult \citep{deBerg97}.
-
-However, the flexible structure of a cell complex allows it to represent objects either directly or with minimal preprocessing.
-As long as an $i$-dimensional object is homeomorphic to an $i$-ball---or can be modified so that it is functionally so by using simple `tricks' at the combinatorial level---, it can be modelled as an $i$-cell in the complex with attached attributes.
-Also, the lower number of cells in a cell complex compared to the simplices in a simplicial complex representing the same set of objects means that they can store objects more efficiently, as long as an adequate data structure is used.
-
-Cell complexes are usually modelled based on techniques that represent them based on their $(n-1)$-dimensional boundary (\ie\ boundary representation), unlike simplicial complexes in which objects are usually modelled using mainly primitives of the same dimension (\ie\ object representation, but better known by its 3D name as solid or volume representation).
-This is a subtle distinction, but it implies that cells are described (and stored) in a more implicit manner based on a recursive definition, unlike simplices which can be stored explicitly as a tuple of vertices.
-Since this can slow down many operations, access to cells can be improved by adding indexing structures storing links to all the cells of a given dimension and/or to all the cells in a given spatial extent.
-On the other hand, the use of data structures for the cells of every dimension mean that these can be easily used to store attributes.
-
-The most common data structures for arbitrary cell complexes are incidence graphs and other related structures \citep{Rossignac89,Masuda93,Sohanpanah89}, which store all the cells (of every dimension) in a complex as individual embedding primitives containing geometric information and attributes.
-Just as with simplicial complexes, if only linear geometries are required, the only geometric information needed is the coordinates of the points for the 0-cells.
-However, since a set of vertices is not enough to describe a cell, all the embedding structures of every dimension need to exist (albeit they can be as simple as a unique ID or memory address per cell).
-As shown in \reffig{fig:ds_incidence_graph}, these are connected through a combinatorial structure containing the incidence relationships between the cells, such as an $i$-cell having an $(i-1)$-cell on its boundary, vice versa (known as the co-boundary or star), or both.
-\begin{figure*}[tb]
-\centering
-\subfloat[]{
-\includegraphics[width=0.22\linewidth]{figs/cellcomplex-polygons}
-\label{subfig:cellcomplex-polygons}}
-\quad
-\subfloat[]{
-\includegraphics[width=0.22\linewidth]{figs/cellcomplex-cells}
-\label{subfig:cellcomplex-cells}}
-\quad
-\subfloat[]{
-\includegraphics[width=0.22\linewidth]{figs/2-cell-boundary}
-\label{subfig:2-cell-adjacency}}
-\quad
-\subfloat[]{
-\includegraphics[width=0.22\linewidth]{figs/1-cell-star}
-\label{subfig:1-cell-boundary}}
-\\
-\subfloat[]{
-\includegraphics[width=0.22\linewidth]{figs/1-cell-boundary}
-\label{subfig:1-cell-star}}
-\quad
-\subfloat[]{
-\includegraphics[width=0.22\linewidth]{figs/0-cell-double-star}
-\label{subfig:0-cell-double-star}}
-\quad
-\subfloat[]{
-\includegraphics[width=0.22\linewidth]{figs/0-cell-star}
-\label{subfig:0-cell-star}}
-\quad
-\subfloat[]{
-\includegraphics[width=0.22\linewidth]{figs/0-cell-embedding}
-\label{subfig:0-cell-embedding}}
-\caption[Relationships in an incidence graph]{The cells in a cell complex, the most common relationships that are be stored in an incidence graph and similar data structures up to 2D, and the embedding of the 0-cells so as to support a geometry.
-(a) Three adjacent polygons.
-(b) The 0-, 1- and 2-cells in the cell complex.
-(c) Boundary relationships of a 2-cell.
-(d) Co-boundary relationships of a 1-cell.
-(e) Boundary relationships of a 1-cell.
-(f) Double co-boundary relationships of a 0-cell.
-(g) Co-boundary relationships of a 0-cell.
-(h) Embedding of a 0-cell.
-Note that (c), (e) and (h) correspond to the incidence graph, a minimal structure where every $i$-cell is linked to the $(i-1)$-cells on its boundary.}
-\label{fig:ds_incidence_graph}
-\end{figure*}
-Since the number of these incidences is generally not fixed or bounded, unlike in a simplicial complex, they are more difficult to integrate into the cell primitives.
-One solution involves using variable length data structures (\eg\ a linked list of the facets of a cell).
-Another would be to store instead combinatorial primitives consisting of pairs of an $i$-cell and an $(i-1)$-cell---an approach well-suited to a database implementation.
-
-While incidence graphs are efficient in terms of space, they are difficult to navigate and manipulate because of the limited topological information contained in them.
-This greatly complicates many relatively simple queries that are trivial in simplicial complexes, such as: obtaining the order of a sequence of 0- and 1-cells around a 2-cell; or checking if two $n$-cells have the same geometry (since their facets, each represented implicitly by its own facets, might be stored in any order).
-
-One more possibility involves limiting the representation to cell complexes with stronger algebraic properties, such as those with a manifold domain.
-Most importantly for a spatial data model, manifolds have two very useful properties:
-\begin{itemize}
-\item
-An $n$-manifold with boundary has the property that its boundary is a $(n-1)$-manifold, ensuring that an $n$-dimensional object can be represented recursively by its $(n-1)$-dimensional boundary using a manifold data structure.
-\item
-An $(i-1)$-cell is incident to at most two $i$-cells within an $(i+1)$-cell\footnote{This is the definition of a quasi-manifold, a combinatorial interpretation of the topological concept of a manifold.
-Quasi-manifolds are the same as manifolds in up to two dimensions, but this is not necessarily true in higher dimensions.}, limiting the number of links required between primitives in a boundary representation based model of the complex.
-\end{itemize}
-
-Some data structures for cell complexes in 2D and 3D are thus restricted to manifolds, or split objects into manifold sections \citep{Pesco04,Lopes97}, which allows such data structures to be more efficient as they need to handle simpler configurations \citep{Aguila03}.
-These are subsequently linked in a special structure that allows one to navigate around these `non-manifold parts' \citep{Weiler88,Gursoz90,Lee01}.
-In higher dimensions, if the representation is restricted to a $n$-dimensional cell complex to manifold domains for each cell, an $(n-2)$-cell is incident to at most two $(n-1)$-cells, and thus $(n-2)$-cells can be used as primitives or pointed to while being able to navigate around them.
-
-One major difficulty with data structures based on cell complexes is dealing with holes and disconnected objects, both of which would ordinarily result in a disconnected graph using any of the data structures as described above.
-Since $n$-cells in a cell complex are assumed to be homeomorphic to open $n$-balls, holes violate the mathematical definition of a cell complex.
-However, an $n$-dimensional hole that is homeomorphic to an $n$-ball in an $n$-dimensional cell can be generally handled in an ad hoc manner using any of techniques shown in \reffig{fig:hole} and described as follows:
-\marginpar{
-\captionsetup{type=figure}
-\centering
-\subfloat[]{
-\includegraphics[width=\marginparwidth]{figs/hole}
-\label{subfig:hole}}
-\\
-\subfloat[]{
-\includegraphics[width=\marginparwidth]{figs/hole-split}
-\label{subfig:hole-split}}
-\\
-\subfloat[]{
-\includegraphics[width=\marginparwidth]{figs/hole-bridge}
-\label{subfig:hole-bridge}}
-\\
-\subfloat[]{
-\includegraphics[width=\marginparwidth]{figs/hole-split-structure}
-\label{subfig:hole-split-structure}}
-\caption[Two different techniques to handle holes in a 3D cell complex]{Two different techniques to handle holes in (a) a 3D cell complex representing a torus: (b) splitting the 3-cell into two parts and (c) using a bridge edge. (d) Note how these techniques allow for a hole to be representing while the combinatorial structure forms a single connected component (\ie\ all cells form a single interlinked group).}
-\label{fig:hole}
-}
-
-\begin{description}
-\item[Splitting cells]
-The $i$-cell containing an $i$-dimensional hole is subdivided into multiple $i$-cells, all of which are adjacent to it.
-This solution is conceptually simple and is effectively equivalent to what is done with simplicial complexes.
-This also best respects the mathematical definition of a cell, since the subdivided $i$-cells can be homeomorphic to $i$-balls and the hole is either non represented (when the dimension of the complex is higher than $i$ and the hole is not completely bounded by other $i$-cells) or is represented as a cell like any other but labelled as being empty.
-However, finding a way to split a cell accordingly requires geometric operations and can be difficult in practice, especially in dimensions 3 and higher.
-\item[Bridge cells]
-A hole is connected to the rest of the combinatorial structure using a `bridge' cell of lower dimensionality than the hole.
-This bridge cell usually takes the form of an edge connecting the hole with the cell where it is contained.
-This solution is generally simpler to implement, usually requiring only the finding of an appropriate bridge (\eg\ an edge that lies entirely in the interior of the cell).
-While the cell containing the hole is no longer homeomorphic to a ball, most computations work with few or no changes \citep{Bryant85}.
-However, some queries might need the addition of special cases to handle it (\eg\ not displaying such an edge when visualising the cell or accounting for the fact the bridge will have the same cell on all sides in topological computations).
-\item[Holes as attributes]
-Holes can be stored as fully independent cells, linked as special attributes of the objects inside of which they are, or vice versa, something that can be extended so as to have full hierarchies of objects in a tree \citep{Worboys12}.
-This solution might be the simplest to implement in terms of storage, but it goes against the mathematical definition of a cell complex and will break or require a complex special treatment for geometric and topological computations.
-It is also very simple to inadvertently create invalid holes in this manner, such as holes lying (partially) outside the cell that is supposed to contain them.
-\end{description}
-
-The latter two described methods can be applied for disconnected components as well.
-Two disconnected components can be connected by a bridge cell, or all components can be considered as holes of the (empty) universe cell.
-
-It is worth noticing that complex holes that are not homeomorphic to $n$-balls can exist, \eg\ tori-shaped holes inside a volume, and finding a good subdivision that can be used to deal with such a hole might be very complex.
-
-In terms of applications, cell complexes in more than 3D have been rarely described or implemented.
-\citet{Hazelton90} described how incidence graphs can be put into a relational database schema in order to store 4D polytopes, on which 4D topological relationships can be queried \citep{Hazelton92}.
-However, to the best of my knowledge, this has never been put into practice in a working system.
-
-\subsection{Ordered topological models}
-\label{ss:ordered-topological-models}
-
-Ordered topological models are a representation method that combines characteristics of both simplicial complexes and cell complexes, and are therefore commonly grouped with either of them \citep{deFloriani05,Comic12}.
-They work on the basis of a cell complex, but subdivide each cell into \emph{abstract} simplices using a purely combinatorial operation, a concept derived from what is known as an abstract simplicial complex in algebraic topology.
-
-The exact subdivision that is used depends on the data structure, but as shown in \reffigs{fig:simplices} and~\ref{fig:cmap-cube}, it is similar to a barycentric triangulation of a convex polytope, consisting of abstract vertices representing cells of different dimensions (\ie\ the vertices of such a simplicial complex are not equivalent to only 0-cells), and simplices that connect these vertices in a specific (ordered) manner.
-The vertices representing the cells of dimensions higher than zero do not have a well-defined location in space (although they are usually depicted lying somewhere in the cells they are supposed to represent), but the simplices nevertheless form a combinatorially correct subdivision of the space.
-
-Adjacency and incidence do have a meaning, albeit not the same as in a geometric simplicial complex, even if their mathematical definition is just as in a geometric simplicial complex.
-Considering that a $j$-face of an $i$-simplex, $j \leq i$, is a $j$-simplex made from a subset of the vertices of the $i$-simplex, two $i$-simplices are adjacent if they have a common face, and an $i$-simplex and a $j$-simplex, $i \neq j$, are incident if either is a face of the other.
-\begin{figure*}[tb]
-\centering
-\subfloat[]{
-\includegraphics[width=0.27\linewidth]{figs/gmaps-simplices}
-\label{subfig:gmaps-simplices}}
-\quad
-\subfloat[]{
-\includegraphics[width=0.27\linewidth]{figs/cmaps-simplices}
-\label{subfig:cmaps-simplices}}
-\quad
-\subfloat[]{
-\includegraphics[width=0.27\linewidth]{figs/vertex-simplices}
-\label{subfig:vertex-simplices}}
-\caption[Simplices in a generalised map and a combinatorial map]{The simplicial decomposition applied in order to obtain the simplices for a 2D:\ (a) generalised map and (b) combinatorial map. (c) All cells are represented as sets of 2-simplices, such as the vertex shown here, which is formed of a set of 4 triangles.
-Note that the locations of the vertices for the 1- and 2-cells are arbitrary, those for the 1-cells has been defined as the midpoint of the edge, and those for the 2-cells have been set so that the resulting simplices lie entirely in the interior of their corresponding 2-cell.}
-\label{fig:simplices}
-\end{figure*}
-\begin{figure}[tb]
-\centering
-\subfloat[]{
-\includegraphics[width=0.33\linewidth]{figs/cube}
-\label{subfig:cube}}
-% \quad
-\subfloat[]{
-\includegraphics[width=0.33\linewidth]{figs/cmap-3d}
-\label{subfig:cmap-3d}}
-% \quad
-\subfloat[]{
-\includegraphics[width=0.33\linewidth]{figs/cmap-3d-vertices}
-\label{subfig:cmap-3d-vertices}}
-\caption[A cube represented as a 3D combinatorial map]{(a) A cube is represented as (b) a set of simplices in a 3D combinatorial map. (c) Each simplex has two vertices at two of the original vertices of the cube, as well as two other symbolic vertices that respectively represent the face and volume that they belong to.}
-\label{fig:cmap-cube}
-\end{figure}
-
-In an ordered topological model, objects are represented by sets of simplices, similar to how they are represented in a geometric simplicial complex.
-However, unlike in a geometric simplicial or cell complex, where an $i$-dimensional object is represented as a set of $i$-simplices or $i$-cells, in an $n$-dimensional ordered topological model an object of \emph{any} dimension is represented as a set of $n$-simplices.
-More concretely, a cell is represented as the set of simplices that have a symbolic vertex at that cell.
-In this manner, even vertices are represented as (possibly large) sets of simplices\footnote{Geometrically, this set would consist of all the $n$-simplices incident to the vertex.}.
-
-Attributes and geometry can be attached to the simplicial complex in an ordered topological model in a similar way as in a geometric simplicial complex.
-Since the symbolic vertices of each simplex have a known order, and each vertex of each simplex represents a cell, it is possible to link each simplex in an ordered topological model to a tuple of attributes and geometric information for the cells that its vertices represent.
-Many operations that are possible on a geometric simplicial complex are also possible in an ordered topological model, even considering that many of its vertices do not have a specific location in space.
-Topological queries can be handled in an identical way, and some geometric operations require minimal changes.
-For instance, the length, area, volume, etc.\ of a cell, can be computed using the inclusion-exclusion principle, which works similarly to the computation of the area of a polygon using the `shoelace formula' \citep{Meister71}.
-Comparing objects can also be done simplex by simplex \citep{Gosselin11} taking advantage of the ordering properties of ordered topological models.
-
-Since this simplicial decomposition performed in an ordered topological model is done only combinatorially, it is not necessary to build a constrained or conforming triangulation of the input, which as stated in \refse{ss:simplicial-complexes}, might be very difficult to accomplish.
-However, using an ordered topological model still allows one to use the stronger algebraic properties present in a simplicial complex, which are used in order to traverse and manipulate a cell complex in a more efficient manner than it would otherwise possible be.
-The resulting simplicial complex might have a larger number of simplices compared to one triangulated geometrically, but it also has the advantage that the number of vertices and simplices in it is known in advance and does not depend on the geometry.
-
-There are two different simplicial decomposition schemes used in ordered topological models, one for the cell-tuple structure \citep{Brisson89} and generalised maps \citep{Lienhardt94}, and another for $n$-dimensional combinatorial maps \citep{Lienhardt94}.
-Starting from an input $n$-dimensional cell complex that is in the form of an incidence graph containing: (i) all the cells (of every dimension) as nodes and (ii) the incidence relationships from each $i$-cell to the $(i-1)$-faces on its boundary as directed edges, the simplicial decompositions are shown in \reffig{fig:simplices} and explained as follows:
-
-\begin{description}
-\item[Cell-tuple / generalised maps]
-Each possible path in the graph from an $n$-cell to a 0-cell directly yields the vertices of one simplex.
-Each $n$-simplex can be thus defined by a unique $n$-tuple $(c_{0}, c_{1}, \ldots, c_{n})$, where $c_{i}$ is a vertex representation of an $i$-dimensional cell in the cell complex, all of which are incident to each other.
-Such an $n$-tuple is in fact equivalent to an $n$-simplex.
-It can be seen as a generalisation of the lath-based structures~\citep{Joy03} sometimes used in 2D and 3D GIS.\@
-
-\item[$n$-dimensional combinatorial maps]
-Each possible path in the graph from an $n$-cell to a 1-cell yields one simplex, with the vertices for the cells from dimension $n$ to 2 used directly, prepended with the two vertices corresponding to the two 0-cells incident to the 1-cell (\ie\ the vertices at the endpoints of the edge).
-Each $n$-simplex can be thus defined by an $n$-tuple $(c_{0}, c_{0}^\prime, \ldots, c_{n})$, where $c_{0}$ and $c_{0}^\prime$ are the two 0-cells incident to the 1-cell, and for $i > 0$, $c_{i}$ is a vertex representation of an $i$-dimensional cell in the cell complex, all of which are incident to each other and to the two 0-cells.
-As the two 0-cells could be given in any order, the order is set by specifying an orientation for the entire cell complex (or for each connected component when there are more than one) by specifying which vertices are respectively $c_{0}$ and $c_{0}^\prime$ in one simplex, and then building the $n$-tuples for the other simplices so that adjacent simplices have them in the opposite order.
-As \reffig{fig:cmaps-orientation} shows, this can result in two possible orientations for each cell in a combinatorial map (or connected component).
-While not shown here, this orientation determination scheme works in any dimension.
-In practice, this means that if one considers the edges bounded by $c_{0}$ and $c_{0}^\prime$ as being directed (from $c_{0}$ to $c_{0}^\prime$), surfaces form loops of directed edges, and opposite surfaces have opposite orientations, just as in most 2D/3D structures that are based on half-edges, \eg\ DCEL \citep{Muller78}.
-\end{description}
-\marginpar{
-\captionsetup{type=figure}
-\centering
-\subfloat[]{
-\includegraphics[width=\marginparwidth]{figs/cmaps-orientation-1}
-\label{subfig:cmaps-orientation-1}}
-\quad
-\subfloat[]{
-\includegraphics[width=\marginparwidth]{figs/cmaps-orientation-2}
-\label{subfig:cmaps-orientation-2}}
-\caption[Orientation in a combinatorial map]{There are two possible consistent orientations that can be set for each connected component in a combinatorial map.}
-\label{fig:cmaps-orientation}
-}
-
-The cell-tuple structure \citep{Brisson89}, and generalised maps and $n$-dimensional combinatorial maps \citep{Lienhardt94}, support this model directly.
-The \textbf{cell-tuple structure} was developed as a generalisation of the quad-edge \citep{Guibas85} data structure in 2D and the facet-edge data structure \citep{Dobkin87} in 3D.
-In it, an $n$-simplex is called a \emph{cell-tuple}, the neighbour operator is called \emph{switch}, and the set of cell-tuples that represent a cell $c$ is called the \emph{set of associated cell-tuples} of $c$.
-\textbf{Generalised maps} and $n$-dimensional \textbf{combinatorial maps} \citep{Lienhardt94} evolved instead as a generalisation of 2D combinatorial maps \citep{Edmonds60}.
-They were extended to support open (topologically closed) maps in \citet{Poudret07}, so as to support empty space around objects without representing it explicitly.
-An $n$-simplex is called a \emph{dart}, the neighbour operator is called $\alpha$ (for generalised maps) or $\beta$ (for combinatorial maps), and the set of darts that represent a cell is called its \emph{orbit}.
-These were developed independently, with generalised maps being mathematically shown to be able to represent a wider class of objects than the cell-tuple, but both work out to very similar or identical implementations in practice.
-Chains of maps \citep{Elter94} supplement the approach followed by generalised maps with an incidence graph in order to support non-manifolds, but they are rarely used because of their extremely high space requirements.
-
-It is worth mentioning that ordered topological models are not significantly more efficient in terms of space than the Simple Features-like \citep{SimpleFeatures1} approach shown in \refse{ss:nd-topology} and \reffig{fig:sfsnd}.
-Every dart in a combinatorial map is equivalent to a consecutive pair of vertices in the Simple Features approach, while a dart in a combinatorial map is equivalent to two darts in a generalised map or to two cell-tuples.
-However, ordered topological models consist of combinatorial primitives that can be traversed efficiently, unlike the Simple Features approach in which many operations involve brute force comparisons.
-
-Holes and disconnected components in an ordered topological model can be dealt with any of the techniques described for cell complexes in \refse{ss:cell-complexes}, with bridge edges modelled as a pair of simplices with the same vertices but opposite orientations as shown in \reffig{fig:bridge}.
-\begin{figure}[tbp]
-\centering
-\subfloat[]{
-\includegraphics[scale=0.27]{figs/bridge-1}
-\label{subfig:bridge-1}}
-\quad
-\subfloat[]{
-\includegraphics[scale=0.27]{figs/bridge-2}
-\label{subfig:bridge-2}}
-\caption[Representing holes using bridges]{(a) A polygon with a hole is represented using a bridge edge to connect the hole with the exterior boundary.
-(b) The simplices in the combinatorial maps representation of the situation in (a).
-There are two simplices with the same vertices representing each side of the bridge edge.
-As in \reffig{fig:simplices}, the location of the vertex for the 2-cell shown in (b) is arbitrary but chosen so as to lie in the interior of the polygon.
-The combinatorial triangles are shown with curved lines so as to form a planar embedding to show that they effectively form a partition of the space.}
-\label{fig:bridge}
-\end{figure}
-Attributes can be handled using an attributes tuple that links each cell of the vertices tuple to a corresponding structure to store an attribute for it, such that if the $i$-th element of the vertices tuple represents a cell, the $i$-th element of the attributes tuple can link to a structure storing the attributes of the cell.
-
-While ordered topological models are relatively difficult to implement, they have nevertheless been implemented in several open source libraries and software, including CGAL\footnote{\url{http://www.cgal.org}}, Moka\footnote{\url{http://moka-modeller.sourceforge.net}}, and CGoGN\footnote{\url{http://cgogn.unistra.fr}} \citep{Kraemer14}.
-Although not discussed further here, I showed in \citet{ArroyoOhori13a} in more detail how generalised maps can be implemented to support various characteristics of real-world data, such as such as markers, locks (for parallel algorithms), simple construction operations and indexing of darts and attributes for the objects of all dimensions.
-
-However, even as all of the aforementioned implementations are stable, and the implementation of CGAL Combinatorial Maps is impressively sophisticated in many respects (such as the customisable constant time iterators through darts implemented using C++11 variadic templates), it is important to note that they are limited to providing basic navigation and construction functions at the dart/simplex level.
-The contribution of this thesis thus lies in showing how to use this type of libraries in practice, how to build on them to create higher-dimensional representations of real-world objects, and how one can create more complex algorithms on top of these basic operations in order to implement higher-level (and possibly user-facing) functions.
-
-In terms of applications,
-\citet{Fradin02} used generalised maps in architecture building models such that the level of detail is modelled using the same kind of relations that are used to model geometric dimensions.
-\citet{Thomsen08} used generalised maps in order to manage topology in 2D/3D GIS in a unified (and dimension-independent) manner.
-\citet{Le13} used Gocad\footnote{\url{http://www.gocad.org/}} (which internally uses generalised maps) to create 4D geological models by interpolating separate 3D models at various points in time.
-
-\subsection{Other possible vector models}
-\label{ss:vector-others}
-
-While this thesis attempts to comprehensively cover the ways in which higher-dimensional objects might be modelled, its principal aim is to \emph{realise} one of these models up to its implementation and basic operations.
-Because of this---and especially considering the great number of possible models developed in different fields---, there are interesting possibilities that it has not been possible to study in depth within the context of the PhD project corresponding to this thesis.
-Nevertheless, as a documentation of these preliminary observations, some other representation possibilities are presented in brief in this section.
-
-Models containing only points in $n$D space \citep{Pasko01} are widely used in the context of remote sensing and data mining, and are particularly relevant in the representation of $n$D fields.
-These can be used together with an appropriate interpolation function \citep{Miller97} or a geometric construction that generates $n$D cells from the points (\eg\ Voronoi diagrams \citep{Ledoux06} and their weighted generalisations \citep{Edelsbrunner14}).
-
-% Another possibility is the Simple Features \citep{SimpleFeatures1} approach presented in \refse{ss:nd-topology}, where objects are described recursively using very few topological relationships.
-% While the repetition of primitives make this approach very inefficient in higher dimensions, it offers interesting possibilities, such as comparing objects using simple string comparisons (through the definition of an ordering of the cells).
-
-Apart from the hierarchical subdivision approaches presented in \refse{ss:hierarchical-subdivisions}, there are other types of hierarchical representations that do not recursively partition space starting from $\mathbb{R}^n$.
-\citet{Comic14} discusses how objects can be described as sequences of operations in the form of \emph{hierarchical cell complexes}, which moreover preserve the homology of the objects.
-\citet{Bulbul09a} decomposes objects into simplices using alternate decompositions using convex hulls---an especially interesting approach considering that $n$D convex hull computations have been extensively described in scientific literature and implemented in software \citep{Lawson86,Seidel86,Barber96}.
-
-Algebraic models, such as the function representation (F-rep) scheme \citep{Pasko95} described in \refse{ss:data-models}, also extend well to higher dimensions.
-For instance, geometric algebra \citep{Artin11} can be used to describe objects directly as vector spaces, eschewing separate combinatorial/embedding structures for a single representation where the geometry and topology of an object is jointly manipulated and queried.
-
-\section{Conclusions and possibilities}
-\label{se:nd-modelling-conclusions}
-
-Using higher-dimensional representations of objects offers a solution to the integration of parametrisable characteristics, such as time and scale, into GIS in a generic manner.
-This makes it possible to store all the topological relationships and the correspondences between objects across (discrete or continuous) time or scale by modelling them as if they were continuous, and can be used for several applications, such as for guaranteeing the internal consistency of a model, for the definition of dimension-independent constraints, or for the automatic update of datasets \citep{vanOosterom10}.
-
-The approach is well-founded upon long-standing mathematical theories, and so is able to deal with complex cases and with the special requirements of each dimension more robustly than solutions in which parametrisable characteristics are handled in an ad hoc fashion.
-For instance, if moving objects were to be added to an existing representation (with only static objects), arbitrary motions could be supported rather than those that can be deduced from simple parameters stored in attributes.
-
-While higher-dimensional representations are space intensive, this factor ameliorated by the fact that many GIS applications use relatively sparse data \citep{McKenzie01,Mason94}.
-However, analysing the properties of the non-spatial characteristics to be modelled as dimensions is crucial, as there is no advantage in modelling such characteristics as dimensions when attributes clearly suffice.
-
-There are many different data models and data structures that can be used to implement this \emph{higher-dimensional spatial modelling} approach.
-However, just as in 2D and 3D, there is not a single data structure that works best for all purposes and applications, so choosing an appropriate one is critical.
-
-4D rasters and hierarchies of trees have been used successfully in the past in a GIS context \citep{Mason94,Varma90,Bernard98,Oconaill92}.
-These can use similar structures and algorithms as their 2D/3D counterparts and are therefore easy to implement, but they are only capable of achieving rough approximations of the objects' boundaries \citep{Blaschke10} and can grow in size exponentially as the dimension increases.
-Vector data structures with limited topological information, such as Simple Features \citep{SimpleFeatures1}, possibly combined with the computation of topology on the fly \citep{ESRITopology}, also explode in terms of size in higher dimensions and are difficult to efficiently traverse.
-The most promising option is therefore a topological vector approach that allows for the representation of real-world objects of heterogeneous dimensions with holes and attributes, which moreover should be efficient to traverse.
-This requires the use of higher-dimensional topological vector data structures.
-
-The dimension-independent vector data structures that are able to support this approach can be classified into three broad data models: geometric simplicial complexes, cell complexes and ordered topological models.
-The data structures belonging to each of these tend to have similar properties in terms of space complexity since they contain a number of primitives of the same order\footnote{The exact number of primitives might not be the same since a discretised element in the model might be implemented as one or as multiple separate structures.}.
-Operations performed on them also tend to have the same computational complexity since they can have similar topological relationships, and when they do not, their cost is bounded by the conversion cost from one to the other, which is often easy and can be done primitive by primitive.
-
-Since algorithms operate on primitives, which are defined by a data model, this analysis also serves to know which fundamental operations can be applied on a data structure.
-For instance, Euler operations are defined in terms of cell complexes \citep{Mantyla88} and stellar operators in terms of simplicial complexes \citep{Velho03}.
-Therefore, in general terms, any data structure that represents cell complexes can implement Euler operations, and the same for stellar operators and simplicial complexes.
-
-Regarding the three broad data models identified in this thesis, on one end it is possible to recognise geometric simplicial complexes, which have the most powerful algebra and are the easiest to manipulate, but require the subdivision of each object into simplices using a constrained or conforming triangulation, which is very hard to do in more than 3D and for which there is no known available software.
-Cell complexes are on the other end, as they are trivial to construct but only support a much weaker set of fundamental operations, which increases the complexity of many computations.
-Ordered topological models, such as the cell-tuple/generalised maps and combinatorial maps, combine characteristics of the previous two and have both a relatively powerful algebra and are easy to construct, although they are also the most space-intensive and the most complex to implement.
-However, this last point is easily overcome in practice since there are good implementations of them in several open source libraries and software, including CGAL, Moka, and CGoGN---although special handling for holes and non-manifold geometries might still be required.\@
-Because of this, \emph{ordered topological models are deemed to be the most promising alternatives for higher-dimensional spatial modelling and are used as a base for further operations in the following chapters of this thesis}.
-
-Using a higher-dimensional representation of objects enables combined geometric and topological queries across all dimensions.
-For instance, applied to 4D BIM\footnote{\url{http://enr.construction.com/technology/bim/2014/0602-Dynamic-Models-for-Safer-Sites.asp?page=2}} models that include the construction process of a building, it is possible to efficiently do safety checks (\eg\ dangerous work is not being performed concurrently and close to other activities, or ensuring that all building components are connected properly at all times) by performing well-defined 4D queries rather than by doing many 3D tests that might not encompass all possible undesirable cases.
-As more higher-dimensional computational geometry and topology algorithms and libraries become available, such as the recent additions in CGAL and Gudhi\footnote{\url{https://project.inria.fr/gudhi/}}, this approach also makes it possible to utilise them directly, taking advantage of new developments.
diff --git a/work_report/operations-background.tex b/work_report/operations-background.tex
deleted file mode 100644
index e8f48c7..0000000
--- a/work_report/operations-background.tex
+++ /dev/null
@@ -1,557 +0,0 @@
-% !TEX root = thesis.tex
-
-\chapter{Basic dimension-independent operations}
-\label{ch:operations-background}
-
-\refch{ch:nd-modelling} identified the most promising data structures in the context of a higher-dimensional GIS and explained how certain fundamental operations are intimately related to the data structures for which they are defined.
-This chapter therefore covers a number of basic dimension-independent operations, some of which need to be defined in the context of a specific data structure.
-These operations are by themselves useful, as they correspond to common simple queries and modification.
-In addition, some of them are used as building blocks for the more complex operations described in latter chapters of this thesis.
-
-\refse{se:operations} introduces basic properties and operations on generalised/combinatorial maps and on Nef polyhedra, which are later respectively used for more complex higher-dimensional operations (\refchs{ch:extrusion},~\ref{ch:incremental-construction} \&~\ref{ch:linking-lods}) and for cleaning 2D and 3D data (\refch{ch:cleaning}).
-\refse{se:ndmath} describes how to apply basic transformations to an $n$D simplicial/cell complex, which can be used to manipulate $n$D objects and to move around an $n$D scene (\refch{ch:slicing}).
-
-\refse{se:spatial-indexing} describes some spatial indexing methods which can be applied to higher-dimensional objects, allowing a system to solve two common problems: keeping track of disconnected objects and efficiently obtaining the objects in a particular region.
-\refse{se:duality} discusses how the concept of duality works in higher dimensions, which can be used to characterise the relationships between objects of any dimension.
-\refse{se:ndqueries} puts the concepts of this chapter into practice by providing a few concrete examples of simple dimension-independent operations, including a technique to quickly compare objects in any dimension, which is itself used as the basis of the incremental construction operation in \refch{ch:incremental-construction}.
-These examples showcase how operations on an ordered topological model are remarkably efficient compared to the same operations on a Simple Features-like representation.
-
-Most of \refse{se:duality} is based on the paper:
-\begin{itemize}
-\papergeoadvancesnd%
-\end{itemize}
-
-\section{Basic operations on certain data structures}
-\label{se:operations}
-
-\subsection{Generalised and combinatorial maps}
-\label{ss:operations-maps}
-
-As described in \refse{ss:ordered-topological-models}, an object in an ordered topological model is described as a set of combinatorial simplices, which are connected by a set of predefined relations.
-These relations and the operations that use them are described in more detail below, partly based on the definitions used in \citet{Damiand14}.
-Note however that some of the definitions presented here are somewhat simplified, as they are meant only to handle the types of representations and further operations used in this thesis.
-
-In the case of a generalised map, which is shown in \reffig{fig:2dcc}, all the relations between darts take the form of \emph{involutions}---bijective functions that are their own inverse.
-That is, they are functions $f$ such that $f\big(f(x)\big) = x$, or equivalently $f = f^{-1}$.
-\begin{figure}[tbp]
-\centering
-\subfloat[]{\includegraphics[width=0.3\linewidth]{figs/2dcc}}
-\quad
-\subfloat[]{\includegraphics[width=0.3\linewidth]{figs/2dcc-gmap}}
-\quad
-\subfloat[]{\includegraphics[width=0.3\linewidth]{figs/2dcc-alphas}}
-\caption[Involutions in a 2D generalised map]{(a) A 2D cell complex represented as (b) a 2D generalised map in a simplicial complex-based depiction as used in \refse{ss:ordered-topological-models}, and (c) in a simpler depiction using half-edges and showing explicitly the relations between the darts.
-As involutions are pairwise relations between darts, they are their own inverse, \ie\ applying them twice always means returning to the original dart.}
-\label{fig:2dcc}
-\end{figure}
-In addition, certain darts are $i$-free, which means that for a given dart $d$, $\alpha_i(d) = d$.
-These darts represent the boundary of the map.
-
-More formally, a $n$-dimensional generalised map is defined as a $(n+2)$-tuple $G = (D,\alpha_{0},\ldots,\alpha_{n})$, where:
-
-\begin{itemize}
-\item
-$D$ is a finite set of darts;
-
-\item
-$\forall 0 \leq i \leq n$, $\alpha_{i}$ is an involution on $D$;
-
-\item
-$\forall 0 \leq i \leq n-2, \forall i+2 \leq j \leq n$, $\alpha_{i}\circ \alpha_{j}$ is an involution on $D$.
-\end{itemize}
-
-In a combinatorial map, the relations between the darts are somewhat different.
-As shown in \reffig{fig:cmap-free}, polygonal curves in a combinatorial map result in some darts that have an undefined $\beta_1$ relation.
-\marginpar{
-\captionsetup{type=figure}
-\centering
-\includegraphics[width=0.6\marginparwidth]{figs/cmap-free}
-\caption[Partial permutations in a 1D combinatorial map]{The $\beta_1$ relations in a 1D combinatorial map are partial permutations. Whereas $\beta_1(d_1) = d_2$, $\beta_1(d_2) = d_3$ and $\beta_1(d_3) = \emptyset$.}
-\label{fig:cmap-free}
-}
-For a given dart $d$ with an undefined relation $\beta_1$, this is encoded as $\beta_1(d) = \emptyset$ and the dart is said to be $1$-free.
-Because of this, the $\beta_1$ relations in a combinatorial map do not form involutions, but instead form only \emph{partial permutations}.
-% When ... he darts joined by $\beta_1$ relations consist of a subset of the darts in the map which form a \emph{cyclic permutation}, \ie\ they are connected to each other so as to form one cycle, which effectively represents the edges around a face.
-In addition, as shown in \reffig{fig:2dcc-betas}, in a combinatorial map of any dimension, the darts that lie on the boundary of the map have certain undefined $\beta$ relations, which are set to the special value $\emptyset$.
-\marginpar{
-\captionsetup{type=figure}
-\centering
-\includegraphics[width=\marginparwidth]{figs/2dcc-betas}
-\caption[Partial permutations in a 2D combinatorial map]{The $\beta_1$ relations in a 2D combinatorial map are partial permutations, the $\beta_2$ relations are partial involutions.}
-\label{fig:2dcc-betas}
-}
-If a given $\beta_i(d) = \emptyset$, the dart $d$ is said to be $i$-free.
-Because of the existence of these relations, the $\beta$ relations of a combinatorial map other than $\beta_1$ form \emph{partial involutions}.
-
-More formally, an $n$-dimensional combinatorial map is defined as an $(n+1)$-tuple $C = (D, \beta_{1}, \ldots, \beta_{n})$ where:
-
-\begin{itemize}
-\item
-$D$ is a finite set of darts;
-
-\item
-$\beta_{1}$ is a partial permutation on $D$;
-
-\item
-$\forall 2 \leq i \leq n$, $\beta_{i}$ is a partial involution on $D$;
-
-\item
-$\forall 0 \leq i \leq n-2, \forall 3 \leq j \leq n$, $i+2 \leq j$, $\beta_{i}\circ \beta_{j}$ is a partial involution on $D$.
-\end{itemize}
-
-The properties of generalised and combinatorial maps are crucial, as when they are enforced, they ensure that darts form a valid combinatorial structure.
-They also allow the definition of various operations that operate on the combinatorial structures induced by the darts and their relations.
-Many of these operations are based on the concept of an \emph{orbit}, a subset of the darts of a generalised/combinatorial map that are connected by certain relations.
-Starting from a given dart $d$ and a set of relations $\Alpha$, the orbit $\langle\Alpha\rangle(d)$ obtains all the darts that can be reached by recursively following all relations in $\Alpha$.
-% operations are described below.
-
-\begin{description}
-
-\item[Darts of a cell]
-Considering that every cell in a generalised or combinatorial map is represented by a \emph{set of darts}, an important basic operation is obtaining all the darts that represent a given cell (of any dimension).
-In a generalised map, from a given dart $d$ known to be part of an $i$-cell, the darts of the $i$-cells are those that can be reached by recursively following all relations \emph{except} for $\alpha_i$.
-As shown in \reffig{fig:darts-of-cell}, this is given by the orbit $\langle\alpha_0, \ldots, \alpha_{i-1}, \alpha_{i+1}, \ldots, \alpha_n\rangle(d)$.
-In a combinatorial map, due to the oriented nature of the $\beta_1$ relations, in order to obtain the darts of a $0$-cell it is instead necessary to follow a composition of relations given by $\langle \{\beta_j\circ \beta_k \mid \forall 1 \leq k \leq n, \forall 1 \leq j \leq k\} \rangle(d)$.
-The cells of dimension two and higher are obtained in a similar manner as in a generalised map, by following all relations \emph{except} for $\beta_i$, \ie\ $\langle\beta_1, \ldots, \beta_{i-1}, \beta_{i+1}, \ldots, \beta_n\rangle(d)$.
-\begin{figure}[tbp]
-\centering
-\subfloat[]{\includegraphics[width=0.45\linewidth]{figs/darts-of-cell-1}}
-\quad
-\subfloat[]{\includegraphics[width=0.45\linewidth]{figs/darts-of-cell-2}}
-\caption[Darts of a cell]{Starting from (a) a 2D generalised map representation of a cube, all the darts representing an $i$-cell of the map can be obtained by starting from any dart known to be part of the $i$-cell, then using the orbit that contains all relations but $\alpha_i$. (b) Here, the orbits of a specific 0-cell, 1-cell and 2-cell.}
-\label{fig:darts-of-cell}
-\end{figure}
-
-\item[Isomorphism]
-It is possible to check if two maps are \emph{isomorphic} by finding whether there is a one-to-one mapping between the darts in the maps that also preserves the relations between them.
-That is, given two generalised maps $(D,\alpha_{0},\ldots,\alpha_{n})$ and $(D^\prime,\alpha_{0}^\prime,\ldots,\alpha_{n}^\prime)$, an isomorphism is a function $f: D \rightarrow D^\prime$ such that $\forall d \in D, \forall 0 \leq i \leq n, f\big(\alpha_i\left(d\right)\big) = \alpha_i^\prime\left(f\left(d\right)\right)$.
-Similarly, given two combinatorial maps $(D, \beta_{1}, \ldots, \beta_{n})$ and $(D^\prime, \beta_{1}^\prime, \ldots, \beta_{n}^\prime)$, an isomorphism is a function $f: D \cup \left\{\emptyset\right\} \rightarrow D^\prime \cup \left\{\emptyset\right\}$ such that $f(\emptyset) = \emptyset$, and else $\forall d \in D, \forall 1 \leq i \leq n, f\left(\beta_i\left(d\right)\right) = \beta_i^\prime\left(f\left(d\right)\right)$.
-
-\item[Sewable darts]
-Starting from isolated darts, these can be assembled together via the sewing operation, described below.
-However, it is important to first determine if they can be sewed together along a given dimension.
-Given a generalised map $(D,\alpha_{0},\ldots,\alpha_{n})$ and two darts from the map $d,d^\prime \in D$, $d$ and $d^\prime$ are $i$-sewable if and only if $d \neq d^\prime$, $d$ and $d^\prime$ are $i$-free, and there is an isomorphism between $\langle\alpha_0, \ldots, \alpha_{i-2}, \alpha_{i+2}, \ldots, \alpha_n\rangle(d)$ and $\langle\alpha_0, \ldots, \alpha_{i-2}, \alpha_{i+2}, \ldots, \alpha_n\rangle(d^\prime)$ such that $f(d) = d^\prime$\footnote{This last condition enforces the last criterion in the definition of a generalised map given above.}.
-Similarly, given a combinatorial map $(D, \beta_{1}, \ldots, \beta_{n})$ and two darts from the map $d,d^\prime \in D$, $d$ and $d^\prime$ are $i$-sewable if and only if $d \neq d^\prime$, $d$ and the inverse of $d^\prime$ are $i$-free, and there is an isomorphism between $\langle\beta_1, \ldots, \beta_{i-2}, \beta_{i+2}, \ldots, \beta_n\rangle(d)$ and $\langle\beta_1, \ldots, \beta_{i-2}, \beta_{i+2}, \ldots, \beta_n\rangle(d^\prime)$ such that $f(d) = d^\prime$\footnote{Similarly, this last condition enforces the last criterion in the definition of a combinatorial map given above.}.
-
-\item[Sewing]
-The sewing operation is the basic construction method used to link isolated darts in a map in order to form cell complexes.
-Intuitively, it is possible to link two $i$-cells along a common $(i-1)$-cell by sewing corresponding darts on the common bounding $(i-1)$-cell around each $i$-cell.
-\begin{figure}[tbp]
-\centering
-\includegraphics[width=\linewidth]{figs/3-sew}
-\caption[3-sewing two cubes]{Two cubes in a 3D generalised map can be linked together by 3-sewing corresponding darts on the common face (highlighted) on each cube.
-This operation uses the orbits of each face on each cube in order to link all corresponding darts on both orbits.}
-\label{fig:3-sew}
-\end{figure}
-As shown in \reffig{fig:3-sew}, this operation is thus equivalent to a parallel traversal of two maps that links its corresponding darts along an $(i-1)$-cell.
-Given a generalised map $(D,\alpha_{0},\ldots,\alpha_{n})$ and two darts $d,d^\prime \in D$ that are $i$-sewable using the isomorphism $f$, $i$-sewing $d$ and $d^\prime$ means that $\forall e \in \langle\alpha_0, \ldots, \alpha_n\rangle(d)$, $\alpha_i(e)$ should be set to $f(e)$ and $\alpha_i\big(f(e)\big)$ should be set to $e$.
-Given a combinatorial map $(D, \beta_{1}, \ldots, \beta_{n})$ and two darts $d,d^\prime \in D$ that are $1$-sewable using the isomorphism $f$, $1$-sewing $d$ and $d^\prime$ means that $\forall e \in \langle \{\beta_i\circ \beta_j \mid \forall 3 \leq k \leq n, \forall 3 \leq j \leq k\} \rangle(d)$, $\beta_1(e)$ should be set to $f(e)$ and $\forall e^\prime \in \langle \{\beta_i\circ \beta_j \mid \forall 3 \leq k \leq n, \forall 3 \leq j \leq k\} \rangle(d^\prime)$, $\beta_1(f(e^\prime))$ should be set to $e^\prime$.
-For the cells of dimension two and higher, if $d$ and $d^\prime$ are $i$-sewable ($i \geq 2$), $i$-sewing them means that $\forall e \in \langle\beta_{1}, \ldots, \beta_{n}\rangle(d)$, $\beta_i(e)$ should be set to $f(e)$ and $\beta_i\big(f(e)\big)$ should be set to $e$.
-
-\end{description}
-
-\subsection{Nef polyhedra}
-\label{ss:operations-nef}
-
-As discussed in \refse{ss:implicit-models}, Nef polyhedra \citep{Nef78,Bieri88} are able to represent polytopes of any dimension based on a set of local pyramids, which contain the neighbourhood information around each vertex.
-Despite the fact that---to the best of my knowledge---there is no available implementation of Nef polyhedra in more than three dimensions, their dimension-independent formulation and the relative ease of implementing \emph{robust} operations on Nef polyhedra nevertheless make them valuable in a higher-dimensional setting.
-
-In particular, Boolean set operations on 2D Nef polygons and 3D Nef polyhedra are very useful to obtain valid 2D and 3D datasets---something that will be shown in \refse{se:3drepair}.
-These \emph{clean} datasets can then be used as a base for higher-dimensional ones, either by extruding them (\refch{ch:extrusion}), by using them to define parts of a higher-dimensional object's boundary (\refch{ch:incremental-construction}), or by linking corresponding datasets that represent other points in scale or time (\refch{ch:linking-lods}), among other possibilities.
-
-The key advantage of operations on Nef polyhedra is the fact that many of them can be largely implemented at the local pyramid level.
-As shown by \citet{Seel01} in 2D and \citet{Hachenberger06} in 3D, Boolean set operations are one such case.
-Based on the approach advocated by \citet{Rossignac89}, it is possible to compute these type of binary (or $n$-ary) operations in three steps: subdivision, selection and simplification.
-The \emph{subdivision} is the most complex of these.
-It consists of computing an overlay of the input polyhedra, creating the overall structure where the result will be put (\eg\ the vertices, edges, faces and volumes of a cell complex).
-This can be computed with the methods used for arrangements of line segments in 2D \citep[\S{}8.3]{deBerg08}, or by computing line-segment-to-line-segment and line-segment-to-polygon intersections in 3D \citep{Hachenberger06}, which give the locations of the new vertices and thus the new local pyramids.
-
-After this, the \emph{selection} step computes whether the individual cells are to be considered as part of the output or not (\ie\ whether they are in the interior or exterior of the Nef polygons/polyhedra).
-The \emph{simplification} removes unnecessary structures in way that does not alter the point set that is represented, akin to the dissolving operations common in GIS.\@
-% In the case of \citet{Hachenberger06}, it also involves solving conflicts and computing the missing information
-
-\reffig{fig:nef-boolean} shows an example of how this works in practice in 2D.
-A 2D Boolean set operation kernel starts from two Nef polygons $A$ and $B$---each of which is stored as a set of local pyramids at its corresponding vertices.
-As shown previously in \reffigp{fig:nef}, each of these 2D local pyramids can be stored as a list of 1D intervals\footnote{Note how this essentially reduces the dimensionality of the problem by one.}.
-The kernel first computes the intersections between the line segments (as an overlay problem).
-The vertices of each polygon and the intersection points between the line segments yield the local pyramids to be considered.
-The local pyramid intervals for both polygons at all of these locations are computed.
-A Boolean set operation is then computed by applying it to the local pyramids (\ie\ to the intervals).
-Finally, unnecessary local pyramids can be removed from the output (\eg\ in \reffig{fig:nef-boolean}: $f$ in $A \cup B$; $a$, $b$, $c$, $g$, $i$, $j$ and $k$ in $A \cap B$; and $a$, $c$, $j$ and $k$ in $A - B$).
-\begin{figure}[tb]
-\centering
-\subfloat[]{\includegraphics[scale=0.19]{figs/nef-boolean-1}}
-\quad
-\subfloat[]{\includegraphics[scale=0.19]{figs/nef-boolean-2}}
-\caption[Boolean set operations on Nef polygons]{Various Boolean set operations on (a) the Nef polygons $A$ (red) and $B$ (blue) that can be performed on (b) their local pyramids: complement ($\neg$), union ($\cup$), intersection ($\cap$) and difference ($-$).}
-\label{fig:nef-boolean}
-\end{figure}
-
-\section{Basic transformations of an $n$D scene}
-\label{se:ndmath}
-
-Starting from an $n$-dimensional simplicial complex or cell complex with linear geometry, where every vertex is embedded in a location in $\mathbb{R}^n$, it is possible to define a set of basic transformations to manipulate $n$D objects simply by applying them to the coordinates of every vertex.
-This section thus describes dimension-independent versions of the three most important transformations to an $\mathbb{R}^n$ point set: \emph{translation}, \emph{rotation} and \emph{scaling}.
-In addition, it explains how to compute the \emph{cross-product} in higher dimensions, which is later used to compute a vector that is orthogonal to all of a set of other vectors.
-
-\textbf{Translating} of a set of points in $\mathbb{R}^n$ can be easy expressed as a sum with a vector $t = \left[t_0, \ldots, t_n\right]$, or alternatively as a multiplication with a matrix using homogeneous coordinates, which is defined as:
-
-\begin{equation*}
-T = \begin{bmatrix}
-1 & 0 & \cdots & 0 & t_0 \\
-0 & 1 & \cdots & 0 & t_1 \\
-\vdots & \vdots & \ddots & \vdots & \vdots \\
-0 & 0 & \cdots & 1 & t_n \\
-0 & 0 & \cdots & 0 & 1 \\
-\end{bmatrix}
-\end{equation*}
-
-In particular, it is often useful to apply a multiplication with a \emph{centering matrix} \citep[\S{}3.2]{Marden96}, which moves a dataset to a position around the origin.
-Such a matrix would be defined as $\mathbb{I}_n - \frac{1}{n}\mathbb{1}_n$, where $\mathbb{I}_n$ is an $n \times n$ identity matrix and $\mathbb{1}_n$ is an $n \times n$ matrix where all entries are set to 1.
-
-\textbf{Scaling} is similarly simple.
-Given a vector $s = \left[ s_0, s_1, \ldots, s_n \right]$ that defines a scale factor per axis (which in the simplest case can be the same for all axes), it is possible to define a matrix to scale an object as:
-
-\begin{equation*}
-S = \begin{bmatrix}
-s_0 & 0 & \cdots & 0 \\
-0 & s_1 & \cdots & 0 \\
-\vdots & \vdots & \ddots & \vdots \\
-0 & 0 & \cdots & s_n \\
-\end{bmatrix}
-\end{equation*}
-
-\textbf{Rotation} is somewhat more complex.
-Rotations in 3D are often conceptualised intuitively as rotations \emph{around an axis}.
-As there are three degrees of rotational freedom in 3D, combining three such elemental rotations can be used to describe any rotation in 3D space.
-Most conveniently, these three rotations can be performed respectively around the $x$, $y$ and $z$ axes, such that a point's coordinate on the axis being rotated remains unchanged.
-This is a very elegant formulation, but this view of the matter is only valid in 3D.
-
-A more correct way to conceptualise rotations is to consider them as rotations \emph{parallel to a given plane} \citep{Hollasch91}, such that a point that is continuously rotated (without changing rotation direction) will form a circle that is parallel to that plane.
-This view is valid in 2D (where there is only one such plane), in 3D (where a plane is orthogonal to the usually defined axis of rotation) and in any higher dimension.
-Incidentally, this shows that the degree of rotational freedom in $n$D is given by the number of possible combinations of two axes (which define a plane) on that dimension \citep{Hanson94}, \ie\ $\binom{n}{2}$.
-A general rotation in any dimension can also be seen as a sequence of elementary rotations, although the total number of these rotations that need to be performed increases significantly.
-
-Consider the 2D rotation matrix $R_{xy}$ that rotates points in $\mathbb{R}^2$ parallel to the $xy$ plane:
-
-\begin{equation*}
-R_{xy} = \begin{bmatrix}
-\cos \theta & -\sin \theta \\
-\sin \theta & \cos \theta \\
-\end{bmatrix}
-\end{equation*}
-
-Based on it, it is possible to obtain the three 3D rotation matrices to rotate points in $\mathbb{R}^3$ around the $x$, $y$ and $z$ axes, which correspond to the rotations parallel to the $yz$, $zx$ and $xy$ planes\footnote{Note the order of the three rotation planes given here, which results from \emph{omitting} the axes $x$, $y$ and $z$ (in that order).
-Note also the order of the two axes in $zx$, which follows the right hand rule and defines the signs of the sines in the rotation matrices.}.
-These would consist of an identity row and column that preserves the coordinate of a particular axis and rotates the coordinates of the other two, resulting in the following three 3D rotation matrices:
-
-\blockmargin%
-\hspace{-\marginparwidth}\hspace{-\marginparsep}\makebox[\overflowingheadlen][l]{
-\begin{minipage}{\overflowingheadlen}
-\begin{align*}
-R_{yz} &= \begin{bmatrix}
-1 & 0 & 0 \\
-0 & \cos \theta & -\sin \theta \\
-0 & \sin \theta & \cos \theta \\
-\end{bmatrix} &
-R_{zx} &= \begin{bmatrix}
-\cos \theta & 0 & \sin \theta \\
-0 & 1 & 0 \\
--\sin \theta & 0 & \cos \theta \\
-\end{bmatrix} &
-R_{xy} &= \begin{bmatrix}
-\cos \theta & -\sin \theta & 0 \\
-\sin \theta & \cos \theta & 0 \\
-0 & 0 & 1 \\
-\end{bmatrix}
-\end{align*}
-\end{minipage}
-}
-\unblockmargin%
-
-Similarly, in a 4D coordinate system defined by the axes $x$, $y$, $z$ and $w$, it is possible to define six 4D rotation matrices, which correspond to the six rotational degrees of freedom in 4D \citep{Hanson94}.
-These respectively rotate points in $\mathbb{R}^4$ parallel to the $xy$, $xz$, $xw$, $yz$, $yw$ and $zw$ planes:
-
-\blockmargin%
-\hspace{-\marginparwidth}\hspace{-\marginparsep}\makebox[\overflowingheadlen][l]{
-\begin{minipage}{\overflowingheadlen}
-\begin{align*}
-R_{xy} &= \begin{bmatrix}
-\cos \theta & -\sin \theta & 0 & 0 \\
-\sin \theta & \cos \theta & 0 & 0 \\
-0 & 0 & 1 & 0 \\
-0 & 0 & 0 & 1 \\
-\end{bmatrix} &
-R_{xz} &= \begin{bmatrix}
-\cos \theta & 0 & -\sin \theta & 0 \\
-0 & 1 & 0 & 0 \\
-\sin \theta & 0 & \cos \theta & 0 \\
-0 & 0 & 0 & 1 \\
-\end{bmatrix} &
-R_{xw} &= \begin{bmatrix}
-\cos \theta & 0 & 0 & -\sin \theta \\
-0 & 1 & 0 & 0 \\
-0 & 0 & 1 & 0 \\
-\sin \theta & 0 & 0 & \cos \theta \\
-\end{bmatrix} \\
-% \end{align*}
-% \end{minipage}
-% \begin{minipage}{\overflowingheadlen}
-% \begin{align*}
-R_{yz} &= \begin{bmatrix}
-1 & 0 & 0 & 0 \\
-0 & \cos \theta & -\sin \theta & 0 \\
-0 & \sin \theta & \cos \theta & 0 \\
-0 & 0 & 0 & 1 \\
-\end{bmatrix} &
-R_{yw} &= \begin{bmatrix}
-1 & 0 & 0 & 0 \\
-0 & \cos \theta & 0 & -\sin \theta \\
-0 & 0 & 1 & 0 \\
-0 & \sin \theta & 0 & \cos \theta \\
-\end{bmatrix} &
-R_{zw} &= \begin{bmatrix}
-1 & 0 & 0 & 0 \\
-0 & 1 & 0 & 0 \\
-0 & 0 & \cos \theta & -\sin \theta \\
-0 & 0 & \sin \theta & \cos \theta \\
-\end{bmatrix} \\
-\end{align*}
-\end{minipage}
-}
-\unblockmargin%
-
-This scheme of a set of elementary rotations can be easily extended to any dimension, always considering a rotation matrix as a transformation that rotates two coordinates of every point and maintains all other coordinates.
-An alternative to this could be to apply more than one rotation at a time \citep{vanElfrinkhof97}.
-However, for an application expecting user interaction, it might be more intuitive to rely on an arbitrarily defined rotation plane that does not correspond to specific axes, \eg\ by defining such a plane through a triplet of points \citep{Hanson94}.
-
-Finally, the \textbf{cross-product} is also easier to understand by first considering the lower-dimensional cases.
-In 2D, it is possible to obtain a normal vector to a 1D line as defined by two (different) points $p^0$ and $p^1$, or equivalently a normal vector to a vector from $p^0$ to $p^1$.
-In 3D, it is possible to obtain a normal vector to a 2D plane as defined by three (non-collinear) points $p^0$, $p^1$ and $p^2$, or equivalently a normal vector to a pair of vectors from $p^0$ to $p^1$ and from $p^0$ to $p^2$.
-Similarly, in $n$D it is possible to obtain a normal vector to a $(n-1)$D subspace\footnote{probably easier to picture as an $(n-1)$-simplex} as defined by $n$ linearly independent points $p^0, p^1, \ldots, p^{n-1}$, or equivalently a normal vector to a set of $n-1$ vectors from $p^0$ to every other point (\ie\ $p^1, p^2, \ldots, p^{n-1}$) \citep{Massey83,Elduque04}.
-
-\citet{Hanson94} follows the latter explanation using a set of $n-1$ vectors all starting from the first point to give an intuitive definition of the $n$-dimensional cross-product.
-Assuming that a point $p^i$ in $\mathbb{R}^n$ is defined by a tuple of coordinates denoted as $(p^i_0, p^i_1, \ldots, p^i_{n-1})$ and a unit vector along the $i$-th dimension is denoted as $\hat{x}_i$, the $n$-dimensional cross-product $\vec{N}$ of a set of points $p^0, p^1, \ldots, p^{n-1}$ can be expressed compactly as \emph{the cofactors of the last column} in the following determinant:
-
-\begin{align*}
-\vec{N} &= \begin{vmatrix}
-(p^1_0 - p^0_0) & (p^2_0 - p^0_0) & \cdots & (p^{n-1}_0) & \hat{x}_0 \\
-(p^1_1 - p^0_1) & (p^2_1 - p^0_1) & \cdots & (p^{n-1}_1) & \hat{x}_1 \\
-\vdots & \vdots & \ddots & \vdots & \vdots \\
-(p^1_{n-1} - p^0_{n-1}) & (p^2_{n-1} - p^0_{n-1}) & \cdots & (p^{n-1}_{n-1}) & \hat{x}_{n-1} \\
-\end{vmatrix}
-\end{align*}
-
-The components of the normal vector $\vec{N}$ are thus given by the minors of the unit vectors $\hat{x}_0, \hat{x}_1, \ldots, \hat{x}_{n-1}$.
-This vector $\vec{N}$---like all other vectors---can be normalised into a unit vector by dividing it by its norm $\begin{Vmatrix} \vec{N} \end{Vmatrix}$.
-
-\section{Spatial indexing}
-\label{se:spatial-indexing}
-
-As discussed in \refse{se:nd-modelling-conclusions}, a topological vector approach seems most promising for a higher-dimensional GIS, as it enables the compact storage of precise object shapes of any dimension together with their attributes.
-However, vector data structures by themselves lack a fast access method to access the objects at a certain location or in a certain region (\eg\ a bounding box).
-In addition, in many instances datasets are composed of multiple combinatorially unconnected components, between which it is not possible to navigate using topological relationships.
-As many algorithms are defined as recursive traversals from a given combinatorial primitive, this lack of connectivity often causes wrong results.
-
-Both of these issues are typically solved in GIS by keeping a \emph{spatial index}---an ancillary data structure that contains links to every object can be efficiently queried \citep{vanOosterom99}.
-These links can point to embedding structures or to combinatorial primitives.
-
-Some of these spatial indices use the same exhaustive enumeration (\ie\ raster) and hierarchical subdivision representations described respectively in \refse{ss:regular-partitions} and \refse{ss:hierarchical-subdivisions}.
-Rather than describing objects as a region of a space partition, they store links to the objects that are partially or fully contained in the region.
-Commonly used structures of this type include: grids, quad/oc/k-trees \citep{Finkel74,Meagher80,Yau83,Jackins83} and $k$-d trees \citep{Bentley75}.
-
-Other data structures are also based on hierarchical subdivisions, but they do not contemplate a space partition.
-Instead, the regions represented by the children of a node can overlap.
-Data structures of this type include: R-trees \citep{Guttman84}, R\textsuperscript{+}-trees \citep{Sellis87} and R*-trees \citep{Beckmann90}.
-
-With simple adaptations, these data structures can also be used to index objects in higher dimensions.
-However, it is important to note that space-partitioning indexing approaches are not faster than brute force searches on a list of objects on \emph{high}-dimensional spaces \citep{Weber98}, and so the dimension of the data needs to be taken into account.
-Objects of heterogeneous dimension are also a frequent source of problems, as lower-dimensional objects often result in undesirable edge cases in the heuristics used to keep well-shaped hierarchical subdivisions.
-For instance, an axis-aligned lower-dimensional object can result in its bounding box having a Lebesgue measure\footnote{The generalisation of 1D length, 2D area, 3D volume, etc.} of zero, resulting in long thin boxes that overlap many possible queries.
-
-Hashing techniques are an interesting alternative, as they allow constant time (or at least low complexity) access to objects.
-While most forms of hashing are not suitable for spatial objects, there are two relevant exceptions.
-Geometric hashing \citep{Wolfson97} defines a hashing function that is invariant to the (geometric) properties that are required for a particular application, ensuring that objects with a similar shape have similar hash codes.
-Locality-sensitive hashing \citep{Andoni08} instead ensures that objects that are close together also have hash codes that are close together.
-
-A simple indexing approach, which is often used for the work presented in this thesis is to maintain an index on objects based on their \emph{lexicographically smallest vertex}\footnote{An idea suggested by \href{http://liris.cnrs.fr/guillaume.damiand/}{Guillaume Damiand}.}.
-While this approach is not very useful when trying to obtaining the objects in a region, it is easy to implement and very efficient for many simple operations, such as when objects need to be compared.
-In fact, by linking directly an index entry to one of a cell's darts which is embedded at the lexicographically smallest vertex (as opposed to an arbitrary dart of the cell), it is possible to significantly limit certain types of search comparisons to a small set of possible starting darts\footnote{Stricter and more efficient (for a given problem) ordering criteria to choose between all the darts embedded at this vertex could be followed here, but they likely lead to significantly more complex implementations.}.
-An extensive example of the use of such an index for comparisons is shown later in \refse{se:ndqueries}.
-
-\section{Duality in higher dimensions}
-\label{se:duality}
-
-The concept of Poincar\'e duality (\refse{ss:algebraic-topology}) is used in conjunction with spatial information to understand and represent how things are connected.
-In two dimensions, one application is qualifying the spatial relationships between adjacent objects: as shown in \reffig{fig:dual_polygonal_map}, \citet{Gold91} uses the quad-edge data structure \citep{Guibas85} to store simultaneously a map (where each polygon in the map can have certain attributes) and its dual (the boundaries between two adjacent map objects, which can also have certain attributes, \eg\ the boundary type or the flow direction).
-\begin{figure}[tb]
-\centering
-\subfloat[]{\includegraphics[width=0.33\linewidth]{figs/dpm1}}
-% \quad
-\subfloat[]{\includegraphics[width=0.33\linewidth]{figs/dpm2}}
-% \quad
-\subfloat[]{\includegraphics[width=0.33\linewidth]{figs/dpm3}}
-\caption[Duality in a 2D map]{(a) Six map objects and their boundaries.
-(b) The same map stored as a graph and its dual (dotted lines).
-(c) The dual graph is used to describe the relationships between adjacent polygons.
-From \citet[Ch.~6]{Ledoux06}, itself based on \citet{Gold91}.}
-\label{fig:dual_polygonal_map}
-\end{figure}
-
-In three dimensions, duality characterises how volumes are related (\eg\ stating that two neighbouring rooms in a building are connected or adjacent).
-A typical example involves the Delaunay triangulation and the Voronoi diagram, which are dual to each other.
-\citet{Dakowicz03} use them for terrain modelling, \citet{Lee02} for interactive analysis, and \citet{Ledoux08} for three-dimensional fields in the geosciences.
-In GIS, it is most commonly used to model paths inside 3D buildings, which can be used for navigation computations.
-\citet{Lee08} and \citet{Lee08a} extract from a 3D building a graph that can be used in case of emergency, and \citet{Boguslawski11a} and \citet{Boguslawski11} perform the same using the \emph{dual half-edge} data structure, which simultaneously represents the buildings (the rooms and their boundaries) and the navigation graph.
-\citet{Liu13} is especially interesting, as it attempts to obtain such a graph from models stored in the 3D standards most widely used in GIS, CityGML and IFC.\@
-
-In higher-dimensional context of this thesis, duality similarly characterises relationships between objects, albeit its exact meaning depends on the characteristics being modelled as dimensions.
-For instance, in a 3D space+time setting where a 4-cell represents a volume existing through time, the adjacency relationships between 4-cells represent volumes that were adjacent or connected \emph{during one or more time intervals}.
-These relationships can thus be used to answer connectivity questions in space-time without the need to add additional semantics in the model.
-For instance, it would make it possible to create a 3D indoor and outdoor way-finding application, where a user can select any given start and end points and a point in time, and be given the shortest 3D route at that time, taking into account all possible topological changes (\eg\ construction work that closes down parts of the building, the dynamic reconfiguration of spaces using plasterboard, or connecting corridors that are only open during office hours).
-It is worth noting that such a 4D representation effectively stores \emph{the entire history of connectivity in a building} without any added effort.
-
-In a dimension-independent setting, generalised and combinatorial maps are notable because they simultaneously encode a cell complex and its dual.
-As shown in \reffig{fig:dual_gmap}, if an $n$-dimensional cell complex is stored as an $n$-dimensional generalised map, swapping $\alpha_n$ and $\alpha_{n-i}$ for every $i$ for every dart, the dual of the map is obtained\footnote{However, does not need to actually swap $\alpha_n$ and $\alpha_{n-i}$, but merely to \emph{consider} $\alpha_n$ as if it were $\alpha_{n-i}$.}.
-Note however that as shown in \reffig{subfig:dual_gmap2}, in order to obtain a dual cell complex properly embedded in $\mathbb{R}^n$, it is in practice necessary to compute a new point embedding that lies in the interior of every $n$-cell.
-\begin{figure}[tb]
-\centering
-\subfloat[]{
-\includegraphics[width=0.21\linewidth]{figs/dual_gmap1}
-\label{subfig:dual_gmap1}}
-\quad
-\subfloat[]{
-\includegraphics[width=0.21\linewidth]{figs/dual_gmap2}
-\label{subfig:dual_gmap2}}
-\quad
-\subfloat[]{
-\includegraphics[width=0.21\linewidth]{figs/dual_gmap4}
-\label{subfig:dual_gmap4}}
-\quad
-\subfloat[]{
-\includegraphics[width=0.21\linewidth]{figs/dual_gmap3}
-\label{subfig:dual_gmap3}}
-\caption[A 2D generalised map and its dual]{The dual of (a) a 2D generalised map can be obtained by (b) computing a point location for the dual 2-cells (\eg\ their centroid) and swapping $\alpha_0$ and $\alpha_2$, and (c) considering the 2-cells as 0-cells with their new point embeddings.
-By extending every the exterior of (a) as an additional unbounded face, it is possible to arrive at the alternative dual map in (d).}
-\label{fig:dual_gmap}
-\end{figure}
-
-\section{Comparing two objects with and without signatures}
-\label{se:ndqueries}
-
-In order to showcase the difference between the topological and non-topological approaches in representing higher-dimensional spatial information, this section compares how efficient the two approaches are in terms of size, and how efficiently three fundamental operations can be performed in either case.
-The configurations for these tests are shown in \reffig{fig:tesseract-tests} and respectively involve verifying that two tesseracts are: equal (\ie\ that they represent the same 4-cell), adjacent (\ie\ that they share a common 3-cell facet), and sharing a common 2-cell ridge.
-As an example of the topological approach, objects will be represented as a combinatorial map with indices on the lexicographically smallest vertex of every cell.
-Meanwhile, the non-topological approach will be exemplified with the Simple Features-like \citep{SimpleFeatures1} representation shown in \refse{ss:nd-topology} and \reffigp{fig:sfsnd}.
-Indices make little sense in the latter, as there are no combinatorial primitives to navigate and every lower-dimensional cell is represented multiple times.
-Note that the objects are assumed to have identical coordinates and structure at this point.
-If this is not the case, cleaning methods such as those mentioned in \refch{ch:cleaning} or those described by \citet{Diakite14} need to be applied first.
-
-\begin{figure}[tb]
-\centering
-\subfloat[]{\includegraphics[width=0.33\linewidth]{figs/tesseract-tests-1}}
-% \quad
-\subfloat[]{\includegraphics[width=0.33\linewidth]{figs/tesseract-tests-2}}
-% \quad
-\subfloat[]{\includegraphics[width=0.33\linewidth]{figs/tesseract-tests-3}}
-\caption[Three pairs of tesseracts]{A stereographic projection of three pairs of tesseracts representing: (a) equality (common 4-cell), (b) adjacency (a common 3-cell), and (c) common 2-cell. Only the edges of each tesseract are shown.}
-\label{fig:tesseract-tests}
-\end{figure}
-
-The tests involving comparisons of combinatorial maps use the method of \citet{Gosselin11}, which can be used to compare two orbits of a map using \emph{signatures}.
-This method will also be used extensively in \refch{ch:incremental-construction}.
-Based on the ordering properties of a map, it is possible to traverse a given orbit from a given dart in a manner that is always consistent, yielding a canonical representation.
-By following parallel traversals of this type, an algorithm can verify that two cells or maps are isomorphic in $O(n^2)$ time on the number of darts in a cell or cell complex.
-
-Intuitively, the quadratic complexity reflects the fact that two cells or cell complexes are tested for isomorphism by starting one traversal always at the same dart in one of the cells or cell complexes, possibly including a comparison of up to $n$ darts, while trying all $n$ possible starting darts in the other cell or cell complex.
-However, it is worth noting that most of the comparisons will stop as soon as one test fails\footnote{\eg\ by differing in a specific cell}, yielding a much better complexity in all but the most pathological cases.
-Interestingly, \citet{Gosselin11} also provides a method to verify an isomorphism in $O(n)$ time on a specially generated external signature that uses $O(n^2)$ space, but this method is deemed too space-intensive for the purposes of this thesis.
-
-All tests are described in detail below.
-
-\subsection*{Size comparison}
-
-Comparing the size of each structure is rather difficult as it can vary greatly depending on the specific implementation.
-The specific implementations described below should nevertheless be roughly comparable, as they are relatively tailored to the kind of object being represented but do not hard-code any of its specific properties (\eg\ the number of its bounding 3- or 2-cells).
-
-\begin{description}
-\item[Combinatorial map] A combinatorial maps representation of a tesseract (\reffigp{fig:tesseract-darts}) is represented as 192 darts and 16 point embeddings.
-Stored in a 3D combinatorial map\footnote{There is no need for a 4D combinatorial map, as there is only one 4D object.}, every dart contains links to 4 other darts ($\beta_1$ to $\beta_3$ plus $\beta_1^{-1}$) and to its point embedding.
-As every point is embedded in 4D, every point embedding must store 4 coordinates.
-Assuming that dart and point embedding links are stored as indices (\eg\ of an array) using 1 byte and point coordinates are stored using 4 bytes, a tesseract is stored in exactly \textbf{1 Kb} of memory.
-
-\item[Simple Features] A Simple Features-like binary\footnote{An ASCII\ equivalent (\eg\ using well-known text) could easily be an order of magnitude larger.} representation of a tesseract (\reffigp{subfig:sfs4d}) contains 8 lists representing its bounding cubes, each of which contains 6 lists representing the bounding squares of a cube, each of which contains 5 lists representing a cycle of points on its boundary, each of which contains the 4 coordinates of a point.
-Assuming that the first three levels of the lists (\ie\ 4D, 3D and 2D) are implemented as arrays that use one more item than their contents\footnote{In an implementation of these lists within lists, it is necessary to use this extra item to know their structure.
-For instance, this item can be used to terminate a list with a special character (\eg\ the \texttt{'\textbackslash0'} null terminator used in C strings) or to put a list's size as its first element.
-Other implementations (\eg\ a linked list) would be much less efficient.} and the last level (\ie\ the point coordinates) as arrays of four elements and point coordinates are stored using 4 bytes, a tesseract is stored in \textbf{5.9 Kb} of memory.
-% ---\emph{5.9 times more than in a combinatorial map}.
-\end{description}
-
-\subsection*{Equality test}
-
-\begin{description}
-\item[Combinatorial map] In two equal tesseracts, the lexicographically smallest vertex is the same for both of them.
-Using the index, it is possible to get a dart at the lexicographically smallest vertex in each.
-As 4 cubes in each contain this vertex, and 3 faces of each of these cubes contain it, there are 12 darts that are embedded there.
-Using the isomorphism test using signatures, this would mean 12 possible starting darts in one tesseract's traversal (the other is fixed), each of which can be performed in 2 orientations.
-As these traversals can be of up to 192 darts, and each dart comparison involves 4 $\beta$-links and a point embedding with 4 coordinates, the process might include up to \textbf{36 864} comparisons.
-
-\item[Simple Features] It is possible to test for equality by traversing one tesseract in order, point by point, while searching for an equivalent point in the other tesseract.
-As the first two levels of their lists can be in any order (\ie\ 4D and 3D) and the third level list (\ie\ 2D) can have any starting point, there are 240 possible starting points from which a parallel traversal in the other tesseract can be started, which can be done in 2 possible orientations (forward and backward in every face cycle).
-These traversals can include up to 240 points, each including up to 4 coordinate comparisons, yielding a total of up to \textbf{460 800} comparisons.
-\end{description}
-
-\subsection*{Adjacency test}
-
-\begin{description}
-\item[Combinatorial map] A tesseract has 8 cubical 3-cells, any of which can be equivalent to a 3-cell in the other tesseract.
-A worst case test thus involves 32 cube-to-cube comparisons\footnote{However, most of these cubes would not have the same lexicographically smallest vertex, but as the number of cubes with the same vertex heavily depends on the configuration, here we use the very conservative absolute worst case of 32.}.
-Comparing two cubes involves a similar process as the one described above for a tesseract.
-Using indices, it is possible to arrive at the 3 darts at the lexicographically smallest vertex of each cube, from which comparisons can be started in 2 orientations, which involve traversals of up to 24 darts.
-Each dart comparison involves 3 $\beta$-links ($\beta_3$ does not need to be tested) and a point embedding with 4 coordinates, yielding 1 008 comparisons per cube-to-cube test and \textbf{32 256} total.
-
-\item[Simple Features] There are also 32 possible cube-to-cube comparisons to be made, each of which is also analogous to the tesseract comparison used above.
-In a cube (\reffigp{subfig:sfs3d}), there are 30 possible starting points for a parallel traversal in 2 possible orientations, each involving up to 30 points with 4 coordinates.
-Each cube-to-cube comparison thus involves 7 200 comparisons, for a total of \textbf{230 400}.
-\end{description}
-
-\subsection*{Common 2-cell test}
-
-\begin{description}
-\item[Combinatorial map] Each tesseract has 24 square 2-cells, so there are 288 possible square-to-square comparisons\footnote{As in the adjacency test, most of these squares would not have the same lexicographically smallest vertex, but since the number of squares with the same vertex depends on the configuration, here we use the very conservative worst case of 288.}.
-There is only 1 dart at the lexicographically smallest vertex of each square, from which a comparison can be started in 2 orientations, involving up to 4 darts with 2 $\beta$-links and a point with 4 coordinates.
-There are thus 48 comparisons per square-square combination and \textbf{13 824} total.
-
-\item[Simple Features] There are also 288 possible square-to-square comparisons.
-In a square (\reffigp{subfig:sfs2d}), there are 5 possible starting points for a traversal in 2 orientations, each involving 5 other points with 4 coordinates.
-A square-to-square comparison thus involves 200 comparisons, for a total of \textbf{57 600}.
-\end{description}
-
-\subsection*{Conclusions and insights into tests in higher dimensions}
-
-\reftab{table:comparison-tests} summarises the results of the previous tests.
-As the table shows, a topological approach using combinatorial maps is significantly more efficient than a non-topological Simple Features-like approach.
-This is true both in terms of size and the number of comparisons involved in basic operations.
-The difference ranges from a factor of 4.17 for detecting a common 2-cell ridge to a factor of 12.5 for detecting equality (\ie\ a common 4-cell).
-
-\begin{table}[tbp]
-\caption[Tesseract comparison test results]{The relative sizes and maximum number of comparisons in tests with two tesseracts (\reffig{fig:tesseract-tests}) using combinatorial maps (c-maps) and a Simple Features Specification (SFS) representation.}
-\centering
-\small
-\begin{tabular}{cccc}
-\toprule
-Test & c-maps & SFS & factor \\
-\midrule
-size (Kb) & 1.0 & 5.9 & 5.9 \\
-equality (comparisons) & 36 864 & 460 800 & 12.5 \\
-adjacency (comparisons) & 32 256 & 230 400 & 7.14 \\
-common 2-cell (comparisons) & 13 824 & 57 600 & 4.17 \\
-\bottomrule
-\end{tabular}
-\label{table:comparison-tests}
-\end{table}
-
-This difference only becomes more pronounced with more complex objects and those of higher dimensions, as the advantage of having an index pointing to a well-defined starting point for a traversal is inversely proportional to the number of possible starting points.
-
-However, it is worth noting that the differences between the two could be heavily reduced by using a modicum of topology in the Simple Features-like representation\footnote{Even if this is a moot point in practice, as topology seems to be anathema to Simple Features.}.
-If the lowest-level lists representing the coordinates of a point were exchanged for unique pointers to an external array with the coordinates of all points, many of these searches and the overall storage of the Simple Features approach could be significantly optimised.
\ No newline at end of file
diff --git a/work_report/pre.tex b/work_report/pre.tex
deleted file mode 100644
index a109fb3..0000000
--- a/work_report/pre.tex
+++ /dev/null
@@ -1,136 +0,0 @@
-% !TEX root = thesis.tex
-
-% Front cover
-% \includepdf{cover-front.pdf}
-
-% Half-title
-\author{Ken Arroyo Ohori}
-\title{Higher-dimensional modelling of geographic information}
-\date{}
-\maketitle
-
-% Copyright page
-\clearpage
-\thispagestyle{empty}
-\null%
-\label{thesis:colophon}
-\vfill
-\pdfbookmark[1]{Colophon}{thesis:colophon}
-Written in 2014--2016 by
-{\makeatletter
-\href{http://ken.mx}{\@author}%
-\makeatother}.
-
-\textbf{ISBN:}\ 978--1--326--59638--5
-
-\textbf{No copyright}\\
-\cczero\ This thesis is released into the public domain using the CC0 code.
-To the extent possible under law, I waive all copyright and related or neighbouring rights to this work.
-
-To view a copy of the CC0 code, visit: \\
-\url{http://creativecommons.org/publicdomain/zero/1.0/}
-
-\textbf{Caveat} \\
-I am very happy to release \emph{my own text and figures} without any restrictions whatsoever.
-As far as I am concerned, any \emph{attribution is very much appreciated} but it is not required.
-However, this does not except anyone from following the academic practices on attribution as applicable to them.
-Also, I must note that throughout this thesis I have used several excerpts of others' text, images and code, which I have always been careful to mark as such.
-While I am myself allowed to use these excerpts under legal \emph{fair use} doctrines in many countries and more specifically by the citation right (\emph{citaatrecht}) in \href{http://wetten.overheid.nl/jci1.3:c:BWBR0001886&hoofdstuk=I¶graaf=6&artikel=15a&z=2015-07-01&g=2015-07-01}{Article 15a of the Dutch Copyright Law} (\emph{Auteurswet}), this does not mean that you are also free to use these excerpts for any purpose.
-
-\textbf{Colophon} \\
-This thesis was typeset with \XeTeX\ 3.14159265--2.6--0.99992 (\TeX\ Live 2015) using the \mbox{{\fanciestfont{}Feijoa}}, \texttt{GT Pressura} and $\mathrm{Asana\ Math}$ typefaces.
-Most of the figures were created using OmniGraffle, Affinity Designer or Blender, often with the help of \LaTeX{}\textsuperscript{i}T.
-
-The source code of this thesis is available at: \\
-\url{https://github.com/kenohori/thesis}
-
-\textbf{Cover} \\
-Model of a 4D house represented as a 4D cell complex.
-The cells of the model were manually defined and embedded in $\mathbb{R}^4$, projected inwards/outwards to the volume of a 3-sphere ($S^3$), stereographically projected to $\mathbb{R}^3$ and exported as an\ {}.obj file.
-This was then imported in Blender and rendered using a perspective projection down to 2D.
-See \refse{se:4dto3d} for more details.
-
-% Official title
-\begin{titlepage}
-\null%
-\label{thesis:title}
-\vspace{3em}%
-\pdfbookmark[1]{Title}{thesis:title}
-\begin{center}
-
-%% Skip space as in half-title
-\vspace*{4\baselineskip}
-
-%% Print the title.
-{\makeatletter
-\fanciestfont\huge\@title%
-\makeatother}
-\vfill
-
-%% Apart from the names and dates, the following text is dictated by the
-%% promotieregelement.
-
-{\Large Proefschrift}
-
-\medskip
-
-{ter verkrijging van de graad van doctor \\
-aan de Technische Universiteit Delft, \\
-op gezag van de Rector Magnificus prof.~ir.~K.~C.~A.~M.~Luyben, \\
-voorzitter van het College voor Promoties, \\
-in het openbaar te verdedigen op \\
-6 april 2016 om 12.30 uur}
-
-\medskip
-
-door
-
-\medskip
-
-%% Print the full name of the author.
-\makeatletter
-{\Large Gustavo Adolfo Ken {\scshape Arroyo Ohori}}
-\makeatother
-
-\medskip
-
-Master of Science in Geomatics \\
-geboren te Mexico-Stad, Mexico.
-
-\end{center}
-\end{titlepage}
-
-% Official verso
-\clearpage
-\thispagestyle{empty}
-\null%
-\label{thesis:committee}
-\vfill
-\pdfbookmark[1]{Doctoral committee}{thesis:committee}
-
-\noindent This dissertation has been approved by the
-
-\medskip\noindent
-\begin{tabular}{@{}ll@{}}
- \quad{}promotor: & Prof.\ dr.\ J.\ Stoter \\
- \quad{}copromotor: & Dr.\ H.\ Ledoux \\
-\\
-\multicolumn{2}{@{}l@{}}{Composition of the doctoral committee:} \\
-\\
- \quad{}Rector Magnificus & chairperson \\
- \quad{}Prof.\ dr.\ J.\ Stoter & Delft University of Technology, promotor \\
- \quad{}Dr.\ H.\ Ledoux & Delft University of Technology, copromotor \\
-\\
-\multicolumn{2}{@{}l@{}}{Independent members:} \\
-\\
- \quad{}Prof.\ dr.\ E.\ Eisemann & Delft University of Technology \\
- \quad{}Prof.\ dr.\ M.\ van\ Kreveld & Utrecht University \\
- \quad{}Dr.\ R.\ Lindenbergh & Delft University of Technology \\
- \quad{}Prof.\ dr.\ ir.\ A.\ van\ Timmeren & Delft University of Technology \\
-\\
-\multicolumn{2}{@{}l@{}}{Other member:} \\
-\\
- \quad{}Dr.\ G.\ Damiand & Claude Bernard University Lyon 1 \\
-\end{tabular}
-
-This research was supported by the Dutch Technology Foundation STW, which is part of the Netherlands Organisation for Scientific Research (NWO), and which is partly funded by the Ministry of Economic Affairs (Project code: 11300).
\ No newline at end of file
diff --git a/work_report/preface.tex b/work_report/preface.tex
deleted file mode 100644
index 7f3582b..0000000
--- a/work_report/preface.tex
+++ /dev/null
@@ -1,66 +0,0 @@
-% !TEX root = thesis.tex
-
-\chapter*{Preface}
-% \addcontentsline{toc}{chapter}{Preface}
-
-We usually associate the three usual dimensions with length, width and height (in any order), and the fourth dimension with time.
-However, mathematically, dimensions are essentially a artificial construct and do not have a fixed meaning linked to any specific aspect of reality.
-By associating each dimension with a variable, they can be used to represent pretty much anything that we can put a parameter to.
-Within this thesis, representations of any dimension are thus used to model various aspects of geographic information, such as the typical geographic coordinates, but also time and scale.
-
-At the end of the 19th century, a couple of non-scientific books were notable for popularising thinking about dimensions, the satyrical \emph{Flatland: A Romance of Many Dimensions} \citep{Abbott84} (\reffig{fig:flatland}), and the more serious \emph{A New Era of Thought} \citep{Hinton88}.
-These books used playful analogies between familiar 0D--3D situations and those in higher dimensions, attempting to give readers an intuitive feeling of what these abstract higher dimensions are like.
-Plenty of others continue to follow in their footsteps (\reffig{fig:futurama}).
-
-\marginpar{
-\captionsetup{type=figure}
-\includegraphics[width=\marginparwidth]{figs/flatland}
-\caption[Sphere tries to explain the nature of 3D space to Square]{As Sphere tries to explain the nature of 3D space to Square by passing through its plane of view: `\emph{You cannot indeed see more than one of my sections, or Circles, at a time; for you have no power to raise your eye out of the plane of Flatland; but you can at least see that, as I rise in Space, so my sections become smaller}' \citep{Abbott84}.}
-\label{fig:flatland}
-}
-
-\marginpar{
-\captionsetup{type=figure}
-\includegraphics[width=\marginparwidth]{figs/futurama}
-\caption[Farnsworth explains why a two-ended digestive system cannot exist in 2D]{As Professor Farnsworth explains why a two-ended digestive system cannot exist in a 2D world: `\emph{As you can see, or rather can't see, but take my word for it, such a digestive system would divide a 2D being into separate pieces.}'. From Futurama season 7 episode 14.}
-\label{fig:futurama}
-}
-
-In order to ensure that all descriptions are formally correct, this thesis necessarily uses some formal descriptions for its data structures and algorithms.
-However, it also tries to provide intuitive explanations and analogies across different dimensions, offering explanations of higher-dimensional problems based on our intuitive knowledge of similar 2D and 3D cases.
-I hope that the result is approachable and serves to broach the subject in a practical way, and that potential readers (if any) are not put off by overly technical explanations or by the overly simplistic examples that I am able to draw.
-
-\section*{About this thesis}
-
-During the past 4+ years I have found many things to love about the scientific process, but many things to hate about how its results are released and published.
-More than a century after Leo Tolstoy's \emph{Letter to the Free Age Press}\footnote{\url{https://en.wikisource.org/wiki/Letter_to_the_Free_Age_Press}} and 20 years after Stevan Harnad's \emph{subversive proposal}\footnote{\url{https://en.wikipedia.org/wiki/Subversive_Proposal}}, it is rather sad to see that so much science is still kept behind paywalls or stymied by legal restrictions even when it is taxpayer-funded.
-% \footnote{Something that is true for much industry research as well, which is paid from tax exemptions on R\&D}.
-This is not only damaging to scientific discourse, but it keeps important knowledge from the public at large, including educators and legislators.
-% The industry is of course all too glad to fill this void with duplicitous studies, which are often pushed by lobbyists in slick packaging.
-
-At the same time, there is a concerted effort to restrict knowledge creation and creative expression through draconian intellectual property laws, including providing IP holders with special (extra)legal privileges and misappropriating author and user rights while extending already excessive copyright terms.
-Plenty of laws have been enacted on the matter with a complete lack of transparency, despite obvious harm to users and evidence to a lack of economic benefits \citep{Hargreaves11,Reda14,EFI15}.
-% For all intents and purposes, a system ostensibly created for the protection of authors have been co-opted by the copyright industries.
-
-By releasing this thesis' contents into the public domain and making its source publicly available, I wish to make a small statement about how I believe science should be distributed in the future---openly and without restrictions.
-Open access journals are a step in the right direction\footnote{Even as many of them have abusive fees that bear no relation with the marginal cost of internet distribution.}, but I hope it is not too long before we are able to get rid of profit-driven journals and publishers altogether.
-
-Following in the same spirit, the source code of the main prototype implementations that were developed during this PhD project have also been made publicly available under permissive licences, which are linked to in the corresponding parts of this thesis.
-As others have pointed out before me\footnote{See for instance \citet{Morin12}, \citet{Joppa13} and \citet{Ince12}}, there is a great disparity between the alleged importance of scientific evidence and widespread acceptance of not disclosing software implementations.
-% More cogently, \emph{there is no such thing as reproducibility without source code}.
-
-\section*{Acknowledgements}
-
-My utmost thanks go to my supervisors, \textbf{Hugo} and \textbf{Jantien}.
-They not only provided me with \emph{years} of employment and the wonderful opportunity to work on this PhD, but were always there with good ideas, and all the guidance and support anyone could ever wish.
-I am also very grateful to \textbf{Guillaume} for hosting me in Lyon and helping me to understand the details of his CGAL packages, which were used in large parts of this thesis.
-
-Special thanks go to everyone else in the \textbf{3D geoinformation} group during my time there (\textbf{Filip}, \textbf{Liu}, \textbf{Ravi}, \textbf{Sisi} and \textbf{Zhiyong}).
-It is truly a fantastic place to work and I feel privileged to have been able to contribute to it with my grain of sand.
-
-I am also thankful to everyone at \textbf{GIS technology} (\textbf{Edward}, \textbf{Elfriede}, \textbf{Marian}, \textbf{Martijn}, \textbf{Peter}, \textbf{Radan}, \textbf{Theo}, \textbf{Tjeu}, and \textbf{Wilko}).
-Many of them gave me insightful comments and support, especially so for Peter at the start of this PhD.
-
-Last but not least, I especially thank my mother, \textbf{Kimiyo}, who has always been there supporting me, and my \textbf{close friends} in Mexico, the Netherlands and elsewhere, who made sure I always had things to enjoy outside work.
-I could not mention you all by name without making a dubious classification, which I do not want to do, and so I hope you will forgive me for just refusing to do so.
-\emph{Thank you all}.
\ No newline at end of file
diff --git a/work_report/propositions.tex b/work_report/propositions.tex
deleted file mode 100644
index 3206463..0000000
--- a/work_report/propositions.tex
+++ /dev/null
@@ -1,105 +0,0 @@
-%!TEX program = xelatex
-%!TEX encoding = UTF-8 Unicode
-
-\documentclass[parskip=half,
- fontsize=9pt]{scrartcl}
-
-\usepackage{amsmath,amssymb} % AMS symbols and environments
-\usepackage{fontspec} % Selecting fonts
-\usepackage{unicode-math} % Use unicode math font, not TeX
-\usepackage[english]{babel} % Correct hyphenation
-
-% For printing on A4
-\usepackage[a4paper,
- layoutwidth=17.955cm,
- layoutheight=23.351cm,
- layouthoffset=1.5225cm,
- layoutvoffset=3.1745cm,
- showcrop,
- top=2.170cm,
- bottom=3.510cm,
- inner=2.1835cm,
- outer=2.1835cm]{geometry}
-
-% Actual size: 95% of crown quarto
-% \usepackage[paperwidth=17.955cm,
-% paperheight=23.351cm,
-% top=2.170cm,
-% bottom=3.510cm,
-% inner=2.1835cm,
-% outer=2.1835cm]{geometry}
-
-% Font setup
-\setmainfont[Ligatures=TeX,ItalicFont=Feijoa-MediumItalic,StylisticSet=6]{Feijoa}
-\setmonofont[BoldFont=GTPressuraMono-Bold,ItalicFont=GTPressuraMono-LightItalic]{GTPressuraMono-Light}
-\setmathfont{Asana-Math.otf}
-\newfontfamily\fanciestfont[Ligatures={TeX,Discretionary}]{Feijoa-Display}
-\newfontfamily\fancyfont[Ligatures=TeX]{Feijoa-Display}
-\newfontfamily\chapternumberfont[Ligatures=TeX,Numbers=Lining]{Feijoa-Display}
-
-\begin{document}
-
-\pagestyle{empty}
-
-\begin{center}
-
-Propositions accompanying the thesis
-
-{\Large\fanciestfont{}Higher-dimensional modelling of geographic information}
-
-by
-
-{\Large Ken Arroyo Ohori}
-
-\end{center}
-
-\bigskip
-
-\begin{enumerate}
-
-% About thesis
-
-\item
-Using higher-dimensional topological data structures, many difficult problems can be flattened to equivalent---but conceptually simpler---problems on graphs. [\emph{This thesis}]
-
-\item
-Two representations will come to dominate geographic information of any dimension: point clouds and space subdivisions. [\emph{This thesis}]
-% Representing roads as lines and buildings as unconstrained soups of faces will soon seem as anachronistic as wireframe models.
-
-% Side topics / GIS in general
-
-\item
-Computational methods will replace geoscientific methods in almost every GIS application:
-\emph{fast reasonable approximations} on large noisy datasets will increasingly trump \emph{slow optimal solutions} on a few carefully acquired data points.
-
-\item
-A lack of concern for geometric and topological correctness is the main reason behind the lack of successful applications for general-purpose 3D models.
-
-\item
-In computer science, it is almost always better to speak of research objectives than research questions.
-
-% Science & thesis
-
-\item
-There is no such thing as a predatory publisher, only predatory metrics used to gauge the value of a scientist.
-
-\item
-In the future, peer review will be conducted post publication.
-
-\item
-Good academic writing advice encourages clarity and expressiveness as much as it discourages formulaic constructions.
-
-% Politics
-
-\item
-Innovation in internet services will occur in countries that enshrine net neutrality in law.
-
-\item
-The results of research performed at public universities or using public funds ought to be released into the public domain.
-
-\end{enumerate}
-
-\vfill
-These propositions are regarded as opposable and defendable, and have been approved as such by the promotor Prof.\ dr.\ J.\ Stoter and the copromotor Dr.\ H.\ Ledoux.
-
-\end{document}
\ No newline at end of file
diff --git a/work_report/references-biblatex.bib b/work_report/references-biblatex.bib
new file mode 100644
index 0000000..4e8c924
--- /dev/null
+++ b/work_report/references-biblatex.bib
@@ -0,0 +1,206 @@
+
+@Online{tagstore,
+ OPTkey = {},
+ author = {Karl Voit},
+ title = {tagstore --- Project home page},
+ URL = {https://Karl-Voit.at/tagstore},
+ urldate = {2011-12-10},
+ month = jul,
+ year = 2020,
+ OPTnote = {},
+ OPTannote = {}
+}
+
+
+@Proceedings{PIM2009,
+ title = {PIM09 ASIS\&T 2009 Workshop, Vancouver, BC, Canada},
+ year = 2009,
+ OPTeditor = {},
+ OPTvolume = {},
+ OPTnumber = {},
+ OPTseries = {},
+ address = {Vancouver, Canada},
+ month = nov,
+ OPTorganization = {},
+ OPTpublisher = {},
+ OPTnote = {},
+ URL = {http://pimworkshop.org/2009/index.php?page=acceptedpapers},
+ OPTannote = {}
+}
+
+@InProceedings{Voit2009,
+ crossref = {PIM2009},
+ author = {Karl Voit and Keith Andrews and Wolfgang Slany},
+ title = {Why Personal Information Management (PIM) Technologies Are Not Widespread},
+ OPTkey = {},
+ pages = {60--64},
+ OPTeditor = {},
+ OPTvolume = {},
+ OPTnumber = {},
+ OPTseries = {},
+ OPTaddress = {},
+ OPTorganization = {},
+ OPTpublisher = {},
+ OPTnote = {},
+ URL = {http://pimworkshop.org/2009/index.php?page=acceptedpapers},
+ OPTannote = {}
+}
+
+@Proceedings{USAB2011,
+ title = {Proc.\ 7\textsuperscript{th} Conference of the
+ Austrian Computer Society Workgroup: Human-Computer
+ Interaction (Usab 2011)},
+ location = {Graz, Austria},
+ series = {LNCS},
+ volume = {7058},
+ publisher = {Springer},
+ isbn = {3642253636},
+ year = 2011,
+ month = nov,
+ doi = {10.1007/978-3-642-25364-5_33}
+}
+
+@inproceedings{Voit2011,
+ crossref = {USAB2011},
+ author = {Karl Voit and Keith Andrews and Wolfgang Slany},
+ title = {{TagTree}: Storing and Re-finding Files Using Tags},
+ pages = {471--481}
+}
+
+@online{KeithThesis,
+ author = {Keith Andrews},
+ title = {Writing a Thesis: Guidelines for Writing a Master's Thesis
+ in Computer Science},
+ howpublished = {Graz University of Technology, Austria},
+ month = dec,
+ year = 2011,
+ url = {http://ftp.iicm.edu/pub/keith/thesis/}
+}
+
+@Book{Bringhurst1993,
+ author = {Robert Bringhurst},
+ ALTeditor = {},
+ title = {The Elements of Typographic Style},
+ publisher = {Hartley and Marks Publishers},
+ year = 1993,
+ OPTkey = {},
+ OPTvolume = {},
+ OPTnumber = {},
+ OPTseries = {},
+ OPTaddress = {},
+ edition = {first edition},
+ OPTmonth = {},
+ OPTnote = {},
+ OPTannote = {}
+}
+
+@Book{Eijkhout2008,
+ author = {Victor Eijkhout},
+ ALTeditor = {},
+ title = {\TeX{} by Topic, a \TeX{}nician's Reference},
+ publisher = {},
+ year = 2008,
+ OPTkey = {},
+ OPTvolume = {},
+ OPTnumber = {},
+ OPTseries = {},
+ OPTaddress = {},
+ edition = {document revision 1.2},
+ month = may,
+ url = {http://www.eijkhout.net/texbytopic/texbytopic.html},
+ OPTnote = {},
+ OPTannote = {}
+}
+
+@book{StrunkWhite,
+ author = {Strunk, Jr, William and Elwyn Brooks White},
+ title = {The Elements of Style},
+ publisher = {Longman},
+ edition = {Fourth},
+ year = 1999,
+ isbn = {020530902X},
+}
+
+@booklet{Strunk,
+ author = {Strunk, Jr, William},
+ title = {The Elements of Style},
+ edition = {First},
+ year = 1918,
+ url = {http://www.bartleby.com/141/},
+}
+
+@booklet{NASAGuide,
+ author = {Mary K. McCaskill},
+ title = {Grammar, Punctuation, and Capitalization:
+ A Handbook for Technical Writers and Editors},
+ howpublished = {NASA Langley Research Center SP-7084},
+ day = 3,
+ month = aug,
+ year = 1998,
+ url = {http://stipo.larc.nasa.gov/sp7084/},
+}
+
+@book{Zobel-WritingCompSci,
+ author = {Justin Zobel},
+ title = {Writing for Computer Science},
+ edition = {Second},
+ publisher = {Springer},
+ year = 2004,
+ isbn = {1852338024},
+}
+
+@book{BugsInWriting,
+ author = {Lyn Dupré},
+ title = {Bugs in Writing: A Guide to Debugging Your Prose},
+ publisher = {Addison-Wesley},
+ edition = {Second},
+ year = 1998,
+ isbn = {020137921X},
+}
+
+@book{Phillips-HowGetPhD,
+ author = {Estelle M. Phillips and Derek S. Pugh},
+ title = {How to Get a PhD},
+ edition = {Fourth},
+ publisher = {Open University Press},
+ year = 2005,
+ isbn = {0335216846},
+}
+
+@online{Roget,
+ author = {Roget},
+ title = {Roget's Interactive Thesaurus},
+ year = 2004,
+ url = {http://www.thesaurus.com/},
+}
+
+@online{RogetII,
+ author = {Roget},
+ title = {Roget's II: The New Thesaurus},
+ edition = {Third},
+ year = 1995,
+ url = {http://www.bartleby.com/62/},
+}
+
+
+@online{DictionaryCom,
+ author = {dictionary.com},
+ title = {dictionary.com},
+ year = 2004,
+ url = {http://dictionary.com/},
+}
+
+@online{DictLeoOrg,
+ author = {Leo},
+ title = {Leo English-German Dictionary},
+ year = 2004,
+ url = {http://dict.leo.org/},
+}
+
+@online{DictChemnitz,
+ author = {TU Chemnitz},
+ title = {German-English Dictionary},
+ year = 2004,
+ url = {http://dict.tu-chemnitz.de/},
+}
+
diff --git a/work_report/references-bibtex.bib b/work_report/references-bibtex.bib
new file mode 100644
index 0000000..79a7c4d
--- /dev/null
+++ b/work_report/references-bibtex.bib
@@ -0,0 +1,96 @@
+
+@Misc{tagstore,
+ OPTkey = {},
+ author = {Karl Voit},
+ title = {tagstore --- Project home page},
+ howpublished = {https://Karl-Voit.at/tagstore},
+ month = jul,
+ year = 2020,
+ OPTnote = {},
+ OPTannote = {}
+}
+
+
+@InProceedings{Voit2009,
+ author = {Karl Voit and Keith Andrews and Wolfgang Slany},
+ title = {{Why Personal Information Management (PIM) Technologies Are Not Widespread}},
+ OPTcrossref = {},
+ OPTkey = {},
+ booktitle = {PIM09 ASIS\&T 2009 Workshop, Vancouver, BC, Canada},
+ pages = {60--64},
+ year = {2009},
+ OPTeditor = {},
+ OPTvolume = {},
+ OPTnumber = {},
+ OPTseries = {},
+ OPTaddress = {},
+ OPTmonth = nov,
+ OPTorganization = {},
+ OPTpublisher = {},
+ OPTnote = {},
+ URL = {http://pimworkshop.org/2009/index.php?page=acceptedpapers},
+ OPTannote = {}
+}
+
+@inproceedings{Voit2011,
+ author = "Karl Voit and Keith Andrews and Wolfgang Slany",
+ title = "{TagTree}: Storing and Re-finding Files Using Tags",
+ booktitle = "Proc.\ 7\textsuperscript{th} Conference of the
+ Austrian Computer Society Workgroup: Human-Computer
+ Interaction (Usab 2011)",
+ location = "Graz, Austria",
+ series = "LNCS",
+ volume = "7058",
+ publisher = "Springer",
+ isbn = "3642253636",
+ year = 2011,
+ month = nov,
+ pages = "471--481",
+ doi = "10.1007/978-3-642-25364-5_33",
+}
+
+@booklet{KeithThesis,
+ author = {Keith Andrews},
+ title = {Writing a Thesis: Guidelines for Writing a Master's Thesis
+ in Computer Science},
+ howpublished = {Graz University of Technology, Austria},
+ month = dec,
+ year = 2011,
+ url = {http://ftp.iicm.edu/pub/keith/thesis/}
+}
+
+@Book{Bringhurst1993,
+ author = {Robert Bringhurst},
+ ALTeditor = {},
+ title = {The Elements of Typographic Style},
+ publisher = {},
+ year = 1993,
+ OPTkey = {},
+ OPTvolume = {},
+ OPTnumber = {},
+ OPTseries = {},
+ OPTaddress = {},
+ edition = {first edition},
+ OPTmonth = {},
+ OPTnote = {},
+ OPTannote = {}
+}
+
+@Book{Eijkhout2008,
+ author = {Victor Eijkhout},
+ ALTeditor = {},
+ title = {\TeX{} by Topic, a \TeX{}nician's Reference},
+ publisher = {},
+ year = 2008,
+ OPTkey = {},
+ OPTvolume = {},
+ OPTnumber = {},
+ OPTseries = {},
+ OPTaddress = {},
+ edition = {document revision 1.2},
+ month = may,
+ url = {http://www.eijkhout.net/texbytopic/texbytopic.html},
+ OPTnote = {},
+ OPTannote = {}
+}
+
diff --git a/work_report/slicing.tex b/work_report/slicing.tex
deleted file mode 100644
index 3aa90cf..0000000
--- a/work_report/slicing.tex
+++ /dev/null
@@ -1,348 +0,0 @@
-% !TEX root = thesis.tex
-
-\chapter{Extracting information from higher-dimensional models}
-\label{ch:slicing}
-
-The previous chapters have discussed various aspects of higher-dimensional representations and operations.
-As powerful as they can be, these representations and operations are generally incompatible with current 2D/3D software and are also hard to imagine and visualise.
-In order for them to be used in practice, it is therefore important to have methods to extract meaningful 2D and 3D subsets from a higher-dimensional model.
-
-While fully developing methods and algorithms to do so is outside the scope of this thesis, steps towards formalising this problem and looking for potential solutions were made within the context of this thesis, and they are thus documented here.
-The chapter starts by giving some of the background behind the problem in \refse{se:slicing-notions}, explaining at a high level the process to extract lower-dimensional information from a higher-dimensional model.
-Using a simple camera analogy common in computer graphics, \refse{se:3dto2d} explains how a 3D viewpoint is placed in a 3D scene through the application of different transformations, capturing a 2D view of it by applying a given projection.
-\refse{se:4dto3d} uses this analogy to give an intuitive description of how this process extends to higher dimensions, later formulating a simple dimension-independent generalisation of the orthographic and perspective projection methods and explaining other projection possibilities.
-Finally, \refse{se:slicing-conclusions} concludes with some ideas on the value of these methods, what pieces are still missing and how the overall process could be implemented.
-
-\section{Background}
-\label{se:slicing-notions}
-
-The process to obtain a lower-dimensional subset of a higher-dimensional dataset can be regarded as a function that maps a subset of $\mathbb{R}^n$ to a subset of $\mathbb{R}^m$, $m < n$, which is obtained by cutting through the dataset in a geometrically meaningful way.
-For instance, it is possible to cut orthogonally to an axis for a snapshot at one point in space/time, or obliquely for a subset that combines different parametrised characteristics, such as the evolution of different parts of an area in time.
-
-The process to extract these slices can be conceived as consisting of two broad steps: (i) optionally selecting a subset of the objects in the scene, and (ii) applying a transformation that projects this subset to a lower dimension.
-In computer graphics, these steps would normally be followed by \emph{rendering} the selected and projected objects, obtaining a raster image as an end-product.
-
-\textbf{Selecting} a subset of a dataset is useful to bring certain parts of the dataset into view.
-For instance, this is commonly applied to parts of a dataset that are normally not visible, such as the interior of an object.
-It is also widely used to reduce the difficulty of the overall problem and avoiding the need to make unnecessary computations, such as projecting and rendering parts of the dataset that will be clearly out of view.
-
-This selection process can be relatively simple, such as using all objects that are within a certain bounding box, that are within a certain distance of a point, or being of a given dimension.
-For instance, 3D rendering programs and 3D games will usually only render the 2D faces of the objects lying (approximately) within a region (\eg\ frustum), not their (filled-in) volumes or any 2D faces that are clearly out of view.
-
-However, more complex selection processes are useful in many instances, often requiring specialised data structures and geometric algorithms.
-In particular, a great number of visibility determination algorithms have been developed \citep[Ch.~36]{Hughes14}, which solve various approximations of the surfaces that are visible in a scene.
-Another example is a selection process is the computation of cross-sections of volumetric 3D objects, which requires the computation of a Boolean set intersection of a point set with a plane, such as the typical \emph{conic sections} shown in \reffig{fig:conic}.
-
-\begin{figure*}[tb]
-\centering
-\subfloat[]{\includegraphics[width=0.25\linewidth]{figs/conic-circle}}
-\subfloat[]{\includegraphics[width=0.25\linewidth]{figs/conic-ellipse}}
-\subfloat[]{\includegraphics[width=0.25\linewidth]{figs/conic-parabola}}
-\subfloat[]{\includegraphics[width=0.25\linewidth]{figs/conic-hyperbola}}
-\caption[Conic sections]{Four types of conic sections: (a) circle, (b) ellipse, (c) parabola and (d) hyperbola.
-These are obtained by the Boolean set intersection of a pair of cones with a plane.}
-\label{fig:conic}
-\end{figure*}
-
-\textbf{Projecting} the selected subset yields a given view of the scene and reduces the actual dimension of the objects being represented.
-Many types of projections for this purpose can be defined, usually in the form of a transformation that is applied to the objects.
-For example, orthographic and perspective projections (\reffig{fig:scheduling}) can directly map an $n$D scene to an $m$D subspace.
-However, more complex schemes are also possible, such as projecting first inwards/outwards to an $m$-sphere (for a hypothetical $(m+1)$D Nef polyhedra implementation), then to an $m$D subspace (\eg\ using an equiangular projection as shown in \reffig{fig:ioh-equiangle}).
-
-\begin{figure}[tb]
-\centering
-\subfloat[]{\includegraphics[width=0.4\linewidth]{figs/scheduling-orthographic}}
-\qquad
-\subfloat[]{\includegraphics[width=0.4\linewidth]{figs/scheduling-perspective}}
-\caption[Orthographic and perspective projections]{The (a) orthographic projection projects objects orthogonally to the projection plane.
-The (b) perspective projection projects objects in manner such that those that are nearby appear comparatively larger than farther away.
-Note how parallel lines (\eg\ wall edges) remain parallel in the former but not in the latter.}
-\label{fig:scheduling}
-\end{figure}
-
-\begin{figure}[tb]
-\centering
-\includegraphics[width=\linewidth]{figs/ioh-equiangle}
-\caption[Equirectangular projection]{The Equirectangular projection directly maps angles to coordinates.
-A 360$^\circ$ view is here mapped into a rectangular 180$^\circ\times$360$^\circ$ image.
-Rendered from a viewpoint inside the IfcOpenHouse dataset\protect\footnotemark.}
-\label{fig:ioh-equiangle}
-\end{figure}
-\footnotetext{\url{http://blog.ifcopenshell.org/2012/11/say-hi-to-ifcopenhouse.html}}
-
-Many of these projections can be done with techniques that are closely related to computer graphics, which has been dealing with the case of converting a 3D scene into a 2D image for decades, and less frequently covering higher-dimensional cases as well.
-In this sense, it is useful to consider the same camera analogy that is often used in computer graphics, where a movable camera\footnote{Even if the movable camera is implemented by moving the dataset instead.} captures a scene as seen from a particular viewpoint.
-In a higher-dimensional setting, this analogy would consist of an $m$D camera capturing an ($m$D) view of an $n$D scene.
-While this is somewhat more difficult to imagine, this analogy emphasises three important aspects that remain true in any dimension:
-
-\begin{itemize}
-\item
-Moving the camera around a scene and orienting it makes it possible to capture the data from any given viewpoint.
-Such a viewpoint can be parametrised---and thus easily defined and stored---by a set of values containing its \emph{location} and \emph{orientation}.
-
-\item
-It is possible to obtain different views---intuitively corresponding to camera lenses---through various projections.
-These can also have their own customisable parameters, such as their field of view.
-
-\item
-Despite the fact that the dimension of the data is reduced (from $n$ to $m$), characteristics that would seem to have been lost in this process can be preserved in the form of attributes and used for further computations.
-For instance, in computer graphics, the distance from an object to the camera (\ie\ the depth) is regularly used for computations of 3D-to-2D projections, either as a simple computation where the objects that are nearer (along a line of sight) occlude those that are farther away, or for more complex effects, such as transparency and reflectivity.
-In cartography, hypsometric tints, shaded relief, contour lines are all frequently used to encode the height information in a 2D map (\reffig{fig:wigwam}).
-\end{itemize}
-
-\marginpar{
-\captionsetup{type=figure}
-\centering
-\includegraphics[width=\marginparwidth]{figs/wigwam}
-\caption[Grand Teton National Park map]{An excerpt of the map for the Grand Teton National Park. From \citet{Patterson02}.}
-\label{fig:wigwam}
-}
-
-Continuing with the camera analogy, it is useful to consider the $n$D scene as consisting of a set of 0D--$n$D objects.
-In the context of this thesis, these would be represented as an $n$-dimensional simplicial complex or cell complex with linear geometries, such that every vertex in the map is embedded in a location in $\mathbb{R}^n$.
-The simplices/cells of the complex can be translated, rotated or scaled, if necessary, using the operations described in \refse{se:ndmath}.
-They can then be individually projected by the camera, possibly taking into account occlusion or other visual effects, in order to obtain the $m$D scene.
-
-This projection is simplest when two conditions are met: (i) the objects have linear geometries that are stored as coordinates attached to their vertices (as in this thesis), and (ii) the projection transformation preserves the linearity of the objects.
-In this case, it is only necessary to apply the transformation to every vertex individually.
-
-However, even when one or both of these conditions are not met, it is possible to obtain a good approximation by first subdividing a simplex/cell into small simplices/cells (up to an arbitrary $\varepsilon$ threshold), assuming that linear geometries will remain approximately linear and projecting only the vertices of the subdivided complex.
-This subdivision and approximation method is used for the cover of this thesis and the example in \reffigp{fig:4dhouse}.
-
-The following sections will therefore assume that the data to be projected consists only of a set of $k$ points with $n$ coordinates, which is stored as a $k \times n$ matrix.
-These will be given new coordinates in $\mathbb{R}^m$ by applying one or more operations expressed in terms of linear algebra.
-
-\section{3D to 2D projections}
-\label{se:3dto2d}
-
-Projecting a set of 3D objects into a 2D view is one of the most common tasks in computer graphics.
-As such, most computer graphics books derive their own versions of the transformations required to apply different types of projections, most of which are interchangeable but are often parametrised in different ways.
-
-From a practical perspective, the OpenGL Programming Guide (better known as the Red Book) \citep{Shreiner13} provides very intuitive forms of 3D-to-2D perspective and orthographic projections, which are based on defining a \emph{viewing frustum} or \emph{box} where the objects to be viewed should be located/placed.
-This can be achieved by translating, rotating and scaling the objects as described in \refse{se:ndmath}.
-
-Assuming a setup as shown in \reffig{fig:frustum}, where a camera is placed at $z = 0$ and pointing towards higher values on the $z$ axis, with parameters defining the $x$ coordinates for the left ($l$) and right ($r$), $y$ coordinates for the bottom ($b$) and top ($t$), and $z$ coordinates for the near ($n$) and far ($f$) planes, \citet[Ch.~5]{Shreiner13} define a transformation that applies a perspective projection $P_p$ and an orthographic projection $P_o$ as:
-
-\begin{figure}[tb]
-\centering
-\subfloat[]{\includegraphics[width=0.3\linewidth]{figs/frustum}}
-\qquad
-\subfloat[]{\includegraphics[width=0.4\linewidth]{figs/ortho}}
-\caption[Perspective projection's frustum and orthographic projection's box]{The left ($l$), right ($r$), bottom ($b$), top ($t$), near ($n$) and far ($f$) planes that form (a) a perspective projection's frustum and (b) an orthographic projection's box.}
-\label{fig:frustum}
-\end{figure}
-
-\begin{align*}
-P_p &= \begin{bmatrix}
-\frac{2n}{r-l} & 0 & \frac{2(l+r)}{r-l} & 0 \\
-0 & \frac{2n}{t-b} & \frac{2(t+b)}{t-b} & 0 \\
-0 & 0 & \frac{f+n}{n-f} & \frac{-2fn}{f-n} \\
-0 & 0 & -1 & 0 \\
-\end{bmatrix} &
-P_o &= \begin{bmatrix}
-\frac{2}{r-l} & 0 & 0 & \frac{l+r}{l-r} \\
-0 & \frac{2}{t-b} & 0 & \frac{b+t}{b-t} \\
-0 & 0 & \frac{-2}{f-n} & \frac{n+f}{n-f} \\
-0 & 0 & 0 & 1 \\
-\end{bmatrix}
-\end{align*}
-
-However, as this thesis attempts to obtain a dimension-independent formulation, it is more interesting to consider a somewhat more complex method that can be extended more readily to higher dimensions.
-\citet{Foley92} and \citet[Ch.~13]{Hughes14}, among others, start from the definition of a triplet of vectors $\hat{x}$, $\hat{y}$ and $\hat{z}$, which are computed from a point $from$ where the camera is located, a point $to$ that the camera directly points towards, and an arbitrary vector $\overrightarrow{up}$ pointing approximately upwards\footnote{Strictly, it can be defined pointing toward any direction except along the $z$ axis.}.
-The latter vector is necessary because there is still one degree of rotational freedom even as the camera is pointing towards $to$.
-The unit vectors $\hat{x}$, $\hat{y}$ and $\hat{z}$ correspond to the $x$, $y$ and $z$ axes from the camera's perspective and are defined as:
-
-% TODO: Figure for vectors
-
-\begin{align*}
-\hat{x} &= \frac{\hat{z} \times \overrightarrow{up}}{\left\lVert{}\hat{z} \times \overrightarrow{up}\right\rVert} &
-\hat{y} &= \hat{x} \times \hat{z} &
-\hat{z} &= \frac{to-from}{\left\lVert{}to-from\right\rVert}
-\end{align*}
-
-Note that if $\overrightarrow{up}$ is orthogonal to $\hat{z}$, $\hat{y}$ defines the up direction as a normalised $\overrightarrow{up}$.
-If they are not orthogonal, $\hat{y}$ defines the up direction differently from $\overrightarrow{up}$.
-
-Based on the three vectors $\hat{x}$, $\hat{y}$ and $\hat{z}$, a $n \times 3$ matrix of $n$ point coordinates in terms of the scene $P_\mathrm{world}$ (world coordinates) can be converted into a matrix of points coordinates in terms of the camera (eye coordinates).
-This would be computed as:
-
-\begin{equation*}
-P_\mathrm{eye} = \begin{bmatrix} P_\mathrm{world} - from \end{bmatrix}
-\begin{bmatrix} \hat{x} & \hat{y} & \hat{z} \end{bmatrix}
-\end{equation*}
-
-In a 3D to 2D \textbf{orthographic projection}, the $x$ and $y$ coordinates of this matrix, here denoted as $x_\mathrm{eye}$ and $y_\mathrm{eye}$, are directly usable as the coordinates of the points in $\mathbb{R}^2$.
-As shown in \reffig{fig:trig-ortho}, the $z_\mathrm{eye}$ coordinates represent the distance between the point and the \emph{projection plane}, \ie\ the camera, and thus define the \emph{depth}.
-Points with positive $z_\mathrm{eye}$ values close to zero are thus close to the camera while points with larger $z_\mathrm{eye}$ values are farther away.
-Note that negative $z_\mathrm{eye}$ values mean that the point lies behind the camera, and so these would be usually omitted.
-
-\marginpar{
-\captionsetup{type=figure}
-\centering
-\includegraphics[width=\marginparwidth]{figs/trig-ortho}
-\caption[Geometry of an orthographic projection]{The geometry of an orthographic projection for a point $p$. The situation of the $y$ axis is identical to that of the $x$ axis.}
-\label{fig:trig-ortho}
-}
-
-For visualisation purposes, it is often convenient to normalise the coordinates so that the range of the $x$ and $y$ coordinates extend as much as possible along a given frame, resulting in objects that are not too small or too large.
-% For this, the the interval $[-1, 1]$ is commonly used.
-This can be accomplished by finding the point that is farthest along the $\hat{x}$ and $\hat{y}$ compared to the desired aspect ratio of the frame in which they should fit.
-As \citet{Foley92} point out, in the case of the square $[-1, 1] \times [-1, 1]$, which is commonly used, point coordinates can be normalised by dividing them by the longest distance of any point to the $to$ point.
-
-In a 3D to 2D \textbf{perspective projection}, objects are projected towards a point (the camera viewpoint's coordinates) rather than a plane.
-This results in new $x_\mathrm{pers}$ and $y_\mathrm{pers}$ coordinates that are scaled inwards in inverse proportion to the depth, which is here defined as the distance between a point and the camera viewpoint's coordinates.
-Intuitively, this means that if an object is $n$ times farther than another identical object, it is depicted $n$ times smaller, or $\frac{1}{n}$ of its size.
-
-\marginpar{
-\captionsetup{type=figure}
-\centering
-\includegraphics[width=\marginparwidth]{figs/trig-pers}
-\caption[Geometry of an perspective projection]{The geometry of a perspective projection for a point $p$. The situation of the $y$ axis is identical to that of the $x$ axis.}
-\label{fig:trig-pers}
-}
-
-As shown in \reffig{fig:trig-pers}, this distance can be easily computed as the hypotenuse of a right-angled triangle, where the adjacent cathetus of an angle $\vartheta$ is given by the (orthogonal) distance of the point to the projection plane ($z_\mathrm{eye}$), the opposite cathetus is given by the point's world coordinates ($x_\mathrm{eye}$ or $y_\mathrm{eye}$), and $\vartheta$ is the viewing angle between $\hat{z}$ (which lies on a line that passes through $from$ and $to$) and the line between the $to$ point and the current point.
-New $x_\mathrm{pers}$ and $y_\mathrm{pers}$ coordinates are thus computed using this angle as follows:
-
-\begin{align*}
-x_\mathrm{pers} &= \frac{x_\mathrm{eye}}{z_\mathrm{eye} \tan(\vartheta / 2)} &
-y_\mathrm{pers} &= \frac{y_\mathrm{eye}}{z_\mathrm{eye} \tan(\vartheta / 2)} \\
-\end{align*}
-
-There are many other types of projections that can be defined and can be interesting in higher dimensions, such as the equirectangular projection shown in \reffig{fig:ioh-equiangle} where evenly spaced angles along a \emph{rotation plane} (\refse{se:ndmath}) can be directly converted into evenly spaced coordinates.
-However, they will not be discussed here.
-See \citet[Chs.~5--7]{Salomon11} for a good reference on how to apply many different types of linear and non-linear projections.
-
-\section{Higher-dimensional projections}
-\label{se:4dto3d}
-
-Based on the 3D to 2D projection methods described by \citet{Foley92}, \citet{Hollasch91} extends them to perform 4D to 3D orthographic and perspective projections.
-This section further extends these methods to describe the $n$-dimensional to ($n-1$)-dimensional case, changing some aspects to better explain the geometric meaning of each vector.
-
-First, starting from a point $from \in \mathbb{R}^n$ where the camera is located, a point $to \in \mathbb{R}^n$ that the camera directly points towards, and a set of $n-2$ vectors $\overrightarrow{v}_1, \ldots, \overrightarrow{v}_{n-2}$ in $\mathbb{R}^n$ that are all linearly independent from each other and from the vector $to - from$, it is possible to define a set of unit vectors $\hat{x}_0, \ldots, \hat{x}_{n-1}$ that define the axes $x_0, \ldots, x_{n-1}$ of a coordinate system in $\mathbb{R}^n$ as:
-
-% \hspace{-\marginparwidth}\hspace{-\marginparsep}\makebox[\overflowingheadlen][l]{
-% \begin{minipage}{\overflowingheadlen}
-\begin{align*}
-\hat{x}_0 &= \frac{\overrightarrow{v}_1 \times \cdots \times \overrightarrow{v}_{n-2} \times \hat{x}_{n-1}}{\begin{Vmatrix} \overrightarrow{v}_1 \times \cdots \times \overrightarrow{v}_{n-2} \times \hat{x}_{n-1} \end{Vmatrix}} \\
-\hat{x}_i &= \frac{\overrightarrow{v}_{i+1} \times \cdots \times \overrightarrow{v}_{n-2} \times \hat{x}_{n-1} \times \hat{x}_0 \times \cdots \times \hat{x}_{i-1}}{\begin{Vmatrix} \overrightarrow{v}_{i+1} \times \cdots \times \overrightarrow{v}_{n-2} \times \hat{x}_{n-1} \times \hat{x}_0 \times \cdots \times \hat{x}_{i-1} \end{Vmatrix}}, \mathrm{\quad{}for\ } 0 < i < n-2 \\
-\hat{x}_{n-2} &= \hat{x}_{n-1} \times \hat{x}_0 \times \cdots \times \hat{x}_{n-2} \\
-\hat{x}_{n-1} &= \frac{to - from}{\begin{Vmatrix} to - from \end{Vmatrix}} \\
-\end{align*}
-% \end{minipage}
-% }
-
-The vector $\hat{x}_{n-1}$ is the first that needs to be computed and is oriented along the line from the camera ($from$) and the point that it is oriented towards ($to$).
-Afterwards, the vectors are computed in order from $\hat{x}_0$ to $\hat{x}_{n-2}$ as normalised $n$-dimensional cross products of $n-1$ vectors.
-These contain a mixture of the input vectors $\overrightarrow{v}_1, \ldots, \overrightarrow{v}_{n-2}$ and the computed unit vectors $\hat{x}_0, \ldots, \hat{x}_{n-1}$, starting from $n-2$ input vectors and one unit vector for $\hat{x}_0$, and removing one input vector and adding the previously computed unit vector for the next $\hat{x}_i$ vector.
-Note that if $\overrightarrow{v}_1, \ldots, \overrightarrow{v}_{n-2}$ and $\hat{x}_{n-1}$ are all orthogonal to each other, $\forall 0 < i < n-1$, $\hat{x}_i$ is simply a normalised $\overrightarrow{v}_i$.
-
-Similarly to the 3D-to-2D case, the vectors $\hat{x}_0, \ldots, \hat{x}_{n-1}$ can be used to transform an $m \times n$ matrix of $m$ $n$D points in world coordinates $P$ into an $m \times n$ matrix of $m$ $n$D points in eye coordinates $E$ by applying the following transformation:
-
-\begin{equation*}
-E = \begin{bmatrix} P - from \end{bmatrix}
-\begin{bmatrix} \hat{x}_0 & \cdots & \hat{x}_{n-1} \end{bmatrix}
-\end{equation*}
-
-As before, if $E$ has rows of the form $\begin{bsmallmatrix} e_0 & \cdots & e_{n-1} \end{bsmallmatrix}$ representing points, $e_0, \ldots, e_{n-2}$ are directly usable as the coordinates in $\mathbb{R}^{n-1}$ of the projected point in an $n$-dimensional to ($n-1$)-dimensional \textbf{orthographic projection}, while $e_{n-1}$ represents the distance between the point and the projection ($n-1$)-dimensional subspace, which can be used for visual cues\footnote{Visual cues can still be useful in higher dimensions. See \url{http://eusebeia.dyndns.org/4d/vis/08-hsr}.}.
-The coordinates along $e_0, \ldots, e_{n-2}$ could be made to fit within a certain bounding box by computing their extent along each axis, then scaling appropriately using the extent that is largest in proportion to the extent of the bounding box's corresponding axis.
-
-For an $n$-dimensional to ($n-1$)-dimensional \textbf{perspective projection}, it is only necessary to compute the distance between a point and the camera as the hypotenuse of a right-angled triangle by taking into account the viewing angle $\vartheta$ between $\hat{x}_{n-1}$ and the line between the $to$ point and every point.
-This situation is the same as that of the 3D-to-2D case shown previously in \reffig{fig:trig-pers} and results in new $e_0^\prime, \ldots, e_{n-2}^\prime$ coordinates that are shifted inwards.
-The coordinates are computed as:
-
-\begin{equation*}
-e_i^\prime = \frac{e_i}{e_{n-1} \tan{\vartheta / 2}}, \mathrm{\quad{}for\ } 0 \leq i \leq n-2
-\end{equation*}
-
-The ($n-1$)-dimensional coordinates generated by this process can then be recursively projected down to progressively lower dimensions using this method.
-The objects represented by these coordinates can also be discretised into images of any dimension.
-For instance, \citet{Hanson94} describes how to perform many of the operations that would be required, such as dimension-independent clipping tests and ray-tracing methods.
-
-In addition to orthographic and perspective projections, there are other interesting projections that can be applied in higher dimensions.
-In fact, since we lack an intuitive understanding of higher dimensions, there is little benefit in using projections that work in similar ways as the ways in which we mentally process 3D information.
-For instance, Jenn 3D\footnote{\url{http://www.math.cmu.edu/~fho/jenn/}} visualises polyhedra and polychora by first projecting them inwards/outwards to the volume of a 3-sphere\footnote{Intuitively, an unbounded volume that wraps around itself, much like a 2-sphere can be seen as an unbounded surface that wraps around itself.}, resulting in curved edges, faces and volumes.
-In a dimension-independent setting, this projection can be easily done by considering the angles $\vartheta_0, \ldots, \vartheta_{n-2}$ in an \emph{$n$-dimensional spherical coordinate system}.
-\citet[\S{}12.2]{Steeb11} formulates such a system as:
-
-% TODO: Match code
-
-\begin{align*}
-r &= \sqrt{x_0^2 + \cdots + x_{n-1}^2} \\
-\vartheta_i &= \cos^{-1} \left( \frac{x_i}{\sqrt{r^2 - \sum_{j=0}^{i-1} x_j^2}} \right), \mathrm{\quad{}for\ } 0 \leq i < n-2 \\
-\vartheta_{n-2} &= \tan^{-1} \left( \frac{x_{n-1}}{x_{n-2}} \right) \\
-\end{align*}
-
-It is worth to note that the radius $r$ of such a coordinate system is a measure of the depth with respect to the projection $(n-1)$-sphere $S^{n-1}$ and can be used similarly to the previous projection examples.
-The points can then be converted back into points on the surface of an $(n-1)$-sphere of radius 1 by making $r = 1$ and applying the inverse transformation.
-\citet[\S{}12.2]{Steeb11} formulates it as:
-
-\begin{align*}
-x_i &= r \cos \vartheta_i \prod_{j=0}^{i-1} \sin \vartheta_j, \mathrm{\quad{}for\ } 0 \leq i < n-2 \\
-x_{n-1} &= r \prod_{j=0}^{n-2} \sin \vartheta_j \\
-\end{align*}
-
-The projections on the 3-sphere used by Jenn 3D are then stereographically projected to $\mathbb{R}^3$, then with a perspective projection (\reffig{fig:stereo-earth}) down to 2D.
-The final result of this 4D-to-2D projection in multiple stages is shown in \reffig{fig:jenn}.
-A stereographic projection is also easy to apply in higher dimensions, mapping an $(n+1)$-dimensional point $x = (x_0, \ldots, x_n)$ on an $n$-sphere $S^n$ to an $n$-dimensional point $x^\prime = (x_0, \ldots, x_{n-1})$ in the $n$-dimensional Euclidean space $\mathbb{R}^n$.
-\citet{Chisholm00} formulates this projection as:
-
-\marginpar{
-\captionsetup{type=figure}
-\centering
-\includegraphics[width=\marginparwidth]{figs/stereo-earth}
-\caption[Stereographic projection]{A 2-sphere to $\mathbb{R}^2$ stereographic projection can map the surface of the Earth to the plane.
-Here, every point $p$ on the sphere is projected to the intersection of the plane with a line passing through the North pole and $p$.
-From \citet{Leys08}.}
-\label{fig:stereo-earth}
-}
-
-\begin{equation*}
-x_i^\prime = \frac{x_i}{x_n-1}, \mathrm{\quad{}for\ } 0 \leq i < n
-\end{equation*}
-
-\begin{figure}[b]
-\centering
-\subfloat[]{\includegraphics[width=0.5\linewidth]{figs/jenn-cube}}
-\subfloat[]{\includegraphics[width=0.5\linewidth]{figs/jenn-24-cell}}
-\caption[Polyhedron and polychoron in Jenn 3D]{A polyhedron and a polychoron in Jenn 3D:\ (a) a cube and (b) a 24-cell.}
-\label{fig:jenn}
-\end{figure}
-
-\reffig{fig:4dhouse} shows the application of this method to a 4D model of a house.
-For this, all the cells of the model were manually defined similar to how it was done in \refse{se:concrete-example} using their boundary cells and 0-embeddings set in $\mathbb{R}^4$.
-The 1- and 2-cells were first refined into small line segments and triangles, the 0-, 1- and 2-cells were then projected inwards/outwards to the volume of a 3-sphere ($S^3$), and then stereographically projected to $\mathbb{R}^3$.
-The refined 2-cells were exported as to an\ {}.obj file with materials that reflect which 3- and 4-cell they belong to.
-Icospheres with a set radius were generated around every 0-cell and approximations of cylinders were generated around every refined 1-cell.
-All of these geometries were then imported into Blender 3D and rendered using a perspective projection down to 2D.
-
-\begin{figure}[tb]
-\centering
-\includegraphics[width=\linewidth]{figs/4dhouse}
-\caption[4D to 2D projection of a 4D house]{A 4D model of a house is projected from $\mathbb{R}^4$ inwards/outwards to the 3-sphere $S^3$, then stereographically to $\mathbb{R}^3$, finally using a perspective projection down to $\mathbb{R}^2$.
-A $\pi / 5$ rotation along the plane passing through the $x_0$ and $x_3$ (LOD) axes makes the bottom and back 2-cells larger than the rest.}
-\label{fig:4dhouse}
-\end{figure}
-
-\section{Conclusions and possibilities}
-\label{se:slicing-conclusions}
-
-Using a combination of data \emph{selection} and \emph{projections}, it is possible to extract meaningful lower-dimensional information from higher-dimensional datasets, making it possible for these datasets to be used in standard software and visualised.
-Selecting an arbitrary subset of an $\mathbb{R}^n$ point set is very challenging, as this process might require the computation of Boolean set intersection operations in any dimension.
-However, simple selections of the objects within a region or selections involving a finite number of discrete points are relatively straightforward and can be implemented with existing techniques \citep{Hanson94}.
-
-On the other hand, projecting higher-dimensional datasets into lower dimensions is simple.
-As the projection methods explained and developed in this chapter have shown, many projections have dimension-independent formulations using linear algebra that are not that different from their 3D-to-2D versions.
-They are therefore relatively easy to implement using similar pipelines as current processes \citep{Chu09}, even if they have not been implemented for general datasets within this thesis due to time constraints.
-
-As this chapter focused on extracting lower-dimensional information from higher-dimensional models from a high-level perspective and in a generic way, many interesting techniques covering useful special cases have not been explored here.
-For instance, several authors discuss the visualisation of specific classes of objects, generally in 4D.
-\citet{Hoffmann90} describes methods to visualise surfaces embedded in 4D space.
-\citet{Balsys07} render implicit (parametrised) surfaces of 4D objects as evaluated sets of points.
-
-Also missing from this chapter was any mention of user interaction and the definition of good camera parameters, both of which are important in order to define values for the input variables described in every projection method.
-\citet{Feiner90} implemented a system where a user sets such variables using a glove.
-\citet{Zhang07} uses haptic controllers to explore the 3D shadows casted by 4D objects.
-
-It is good to note that while the techniques mentioned in this chapter are also applicable to different types of objects than those used in GIS and useful for generic applications.
-\citet{Hanson01} uses similar techniques to those mentioned here in order to visualise relativity, \citet{Bajaj98} does so for $n$-dimensional scalar fields.
diff --git a/work_report/summary.tex b/work_report/summary.tex
deleted file mode 100644
index cd3698a..0000000
--- a/work_report/summary.tex
+++ /dev/null
@@ -1,226 +0,0 @@
-% !TEX root = thesis.tex
-
-\chapter{Summary}
-
-Our world is three-dimensional and complex, continuously changing over time and appearing different at different scales.
-Yet, when we model it in a computer using Geographic Information Systems (GIS), we mostly use 2D representations, which essentially consist of linked points, lines and polygons (\reffig{fig:brep-sum-en}).
-\marginpar{
-\captionsetup{type=figure}
-\includegraphics[width=\marginparwidth]{figs/brep}
-\caption[A cube represented as the 6 square faces that bound it]{In GIS, a cube is not represented as a 3D solid, but as the 6 square 2D faces that bound it.}
-\label{fig:brep-sum-en}
-}
-These representations are relatively easy to use and efficient, and a wide variety of methods is built on top of them.
-However, 2D representations are necessarily limiting.
-They force us to reduce problems to two dimensions, limit the type of objects we can represent, and complicate storing the relationships between different objects---especially when these are across time and different scales.
-Nevertheless, most research in GIS is devoted to improving these 2D representations, as well as to the development of new methods that build on them to solve problems, both old and new.
-
-This thesis explores a new, fundamentally different modelling approach---integrating both spatial and non-spatial characteristics as dimensions in the geometric sense, specifically targeting the cases of time and scale (\reffig{fig:axes-sum-en}).
-\marginpar{
-\captionsetup{type=figure}
-\includegraphics[width=\marginparwidth]{figs/axes}
-\caption{3D space, time and scale can be modelled as 5D space.}
-\label{fig:axes-sum-en}
-}
-While this has been proposed before at a conceptual level, this thesis aims to \emph{realise the fundamental aspects of a higher-dimensional GIS} by developing higher-dimensional ($n$D) representations, as well as new methods operating on them to create, manipulate and visualise geographic information.
-As this thesis shows, the higher-dimensional approach is undoubtedly memory-intensive, but it is also very powerful, as it provides a simple and consistent way to store geometry, attributes and the topological relationships between objects of any dimension.
-This generic approach can also be easily extended to handle other non-spatial characteristics, enabling better data management that is consistent across dimensions and more powerful operations, such as checking if two objects are adjacent at any point in time.
-
-In order to model higher-dimensional space, it is best to consider an $n$D space subdivision as a base (\reffig{fig:space-filling-sum-en}), which is conceptualised as an $n$-dimensional simplicial complex or cell complex.
-\marginpar{
-\captionsetup{type=figure}
-\includegraphics[width=\marginparwidth]{figs/space-filling}
-\caption[3D space subdivision model]{A 3D space subdivision model is composed of a set of space-filling volumes without gaps or overlaps.}
-\label{fig:space-filling-sum-en}
-}
-This can then be implemented with a simplex-based data structure, with an incidence graph, as a set of Nef polyhedra, or---as done in this thesis---by using ordered topological models such as the cell-tuple and generalised/combinatorial maps.
-
-Creating computer representations of higher-dimensional objects can be complex.
-\marginpar{
-\captionsetup{type=figure}
-\subfloat[]{\includegraphics[width=\marginparwidth]{figs/extrusion-1}}\\
-\subfloat[]{\includegraphics[width=\marginparwidth]{figs/extrusion-2}}
-\caption[A set of polygons is converted into a set of boxes by 2D-to-3D extrusion.]{(a) A set of polygons is converted into (b) a set of boxes by 2D-to-3D extrusion.}
-\label{fig:extrusion-sum-en}
-}
-\marginpar{
-\captionsetup{type=figure}
-\includegraphics[width=\marginparwidth]{figs/link2}
-\caption[Two LODs of a 3D model of a house are linked into a 4D model]{Two LODs of a 3D model of a house (left and right) are linked into a 4D model.}
-\label{fig:link-sum-en}
-}
-Common construction methods used in 2D and 3D, such as directly manipulating combinatorial primitives, or using primitive-level construction operations (such as Euler operators), rely on our intuition of 2D/3D geometry, and thus do not work well in higher dimensions.
-It is therefore all too easy to create invalid objects, which then cannot be easily interpreted or fixed---a problem that is already exceedingly apparent in three dimensions.
-
-As a way to easily create representations of higher-dimensional objects, this thesis proposes three novel higher-level methods, all of which are intuitive to use and attempt to create valid output.
-\emph{Extrusion} takes an $(n-1)$-dimensional cell complex and a set of intervals per cell, projecting them parallel to a new axis in order to create an $n$-dimensional cell complex (\reffig{fig:extrusion-sum-en}).
-\emph{Incremental construction} describes an $n$-dimensional object based on its $(n-1)$-dimensional boundary, from dimension zero (points) and then upwards.
-Finally, a 4D model can be constructed from a series of 3D models at different levels of detail (LODs) by \emph{linking them} (\reffig{fig:link-sum-en}).
-
-In order to visualise higher-dimensional models, as well as to be able to process them in existing software, it is important to have methods to extract meaningful 2D/3D subsets from them.
-% Such methods would consist of two steps: (i) selecting a subset of the objects in the model and (ii) projecting this subset to a lower dimension.
-As a stepping stone towards such methods, this thesis shows how $n$-dimensional to ($n-1$)-dimensional orthographic and perspective projections can be defined.
-
-Finally, this thesis placed an emphasis on validating the algorithms with real-world datasets, which was only possible by developing methods to repair the invalid datasets that are widespread in practice.
-This thesis thus contains methods to create valid polygons and planar partitions using a constrained triangulation of the input, as well as a method to repair polyhedra and space subdivisions by snapping together lower-dimensional primitives and removing overlaps using Boolean set operations on Nef polyhedra.
-This allowed tests with up to 6D datasets based on real-world data---\emph{a good base for higher-dimensional GIS}.
-
-In the future, the work in this thesis will be extended with higher-dimensional modification operations, true 4D spatiotemporal datasets and repair methods with quality guarantees.
-All implementations made for this thesis are publicly available under open source licences.
-
-\chapter{Samenvatting (Dutch summary)}
-
-{\selectlanguage{dutch}
-
-Onze wereld is driedimensionaal en complex, is continue in verandering en heeft verschillende verschijningsvormen op verschillende detailniveaus.
-Toch modelleren we de werkelijkheid in Geografische Informatie Systemen (GIS) meestal middels 2D representaties.
-Deze modellen bestaan uit punten, lijnen en polygonen die met elkaar zijn verbonden (\reffignl{fig:brep-sum-nl}).
-\marginpar{
-\captionsetup{type=figure}
-\includegraphics[width=\marginparwidth]{figs/brep}
-\caption[Een kubus wordt gerepresenteerd als 6 vierkante 2D vlakken.]{In GIS wordt een kubus niet gerepresenteerd als een 3D volume maar als 6 vierkante 2D vlakken die tesamen de ruimte van de kubus omvatten.}
-\label{fig:brep-sum-nl}
-}
-De resulterende representaties zijn efficiënt en relatief eenvoudig te gebruiken en veel methodes en applicaties zijn hierop gebaseerd.
-Maar 2D representaties kennen hun beperkingen.
-Problemen moeten worden versimpeld tot 2D;\ en het beheren van relaties tussen verschillende objecten is complex, vooral als deze relaties een tijdscomponent hebben of over verschillende detail-niveaus gaan.
-Desalniettemin gaat veel GIS onderzoek over het verbeteren van de 2D representaties alsook het ontwikkelen van nieuwe methoden die op 2D representaties zijn gebaseerd.
-
-Deze dissertatie bestudeerd een fundamenteel andere modelleer-benadering waarbij zowel ruimtelijke als niet-ruimtelijke kenmerken worden gemodelleerd als extra geometrische dimensies.
-De kenmerken ``tijd'' en ``schaal'' worden daarbij specifiek bekeken (\reffignl{fig:axes-sum-nl}).
-\marginpar{
-\captionsetup{type=figure}
-\includegraphics[width=\marginparwidth]{figs/axes-nl}
-\caption{3D ruimte, tijd en schaal kunnen worden gemodelleerd als 5D ruimte.}
-\label{fig:axes-sum-nl}
-}
-Eerdere onderzoeken naar het modelleren van tijd en schaal als extra dimensie zijn nooit verder gekomen dan een conceptuele beschrijving.
-Dit onderzoek daarentegen beoogt de fundamentele aspecten van een multidimensionaal GIS te realiseren door hoger dimensionale ($n$D) representaties te ontwikkelen inclusief bewerkingsmethodes om deze $n$D geografische informatie te creëren, manipuleren en visualiseren.
-\marginpar{
-\captionsetup{type=figure}
-\includegraphics[width=\marginparwidth]{figs/space-filling}
-\caption[3D ruimtelijke opdeling]{Een 3D ruimtelijke opdeling bestaat uit een set ruimte-vullende volumes zonder gaten en overlap.}
-\label{fig:space-filling-sum-nl}
-}
-In deze thesis wordt aangetoond dat een $n$D benadering aan de ene kant veel computergeheugen vraagt om alle relaties over dimensies heen op te slaan.
-Aan de andere kant is de aanpak zeer krachtig gebleken omdat een $n$D benadering op een doeltreffende en consistente manier geometrie met haar attributen opslaat.
-Naast de objecten, kunnen ook alle topologische relaties tussen de objecten worden opgeslagen welke zich kunnen voordoen binnen en tussen iedere dimensie.
-De in dit onderzoek voorgestelde aanpak is generiek en kan eenvoudig worden uitgebreid om andere niet-ruimtelijke aspecten te modelleren.
-Hierdoor is data management waarbij de consistentie van geografische informatie wordt gegarandeerd over dimensies heen.
-Bovendien kunnen hiermee krachtigere bewerkingen worden uitgevoerd zoals controleren of twee objecten op enig moment in de tijd aangrenzend zijn.
-
-Om een $n$D ruimte te modelleren kan het best gestart worden met een $n$D ruimtelijke partitie (zonder gaten en overlap) (\reffignl{fig:space-filling-sum-nl}).
-Conceptueel kan dit worden weergegeven als een $n$D \emph{simplicial complex} of een \emph{cell complex}.
-Vervolgens kan dit worden geïmplementeerd via een \emph{simplex-based} datastructuur met een \emph{incidence graph}, bijvoorbeeld als een set van \emph{Nef polyhedra} of, zoals dat in dit onderzoek is gedaan, via geordende topologische modellen (\emph{cell-tuple} en \emph{generalised/combinatorial maps}).
-
-Het construeren van computer representaties van $n$D objecten kan erg complex zijn.
-Bestaande 2D/3D constructie methodes manipuleren \emph{combinatorial primitives} of maken gebruik van bewerkingen op primitieve-niveau (zoals Euler operatoren).
-Deze gaan uit van onze intuïtie over 2D en 3D geometrieën en werken daarmee niet goed in hogere dimensies.
-Hierdoor is het helaas heel makkelijk om invalide $n$D objecten te creëren die vervolgens moeilijk te bewerken zijn.
-Dit probleem doet zich ook al voor in drie dimensies.
-
-\marginpar{
-\captionsetup{type=figure}
-\subfloat[]{\includegraphics[width=\marginparwidth]{figs/extrusion-1}}\\
-\subfloat[]{\includegraphics[width=\marginparwidth]{figs/extrusion-2}}
-\caption[Een set polygonen wordt geconverteerd naar een set blokken.]{(a) een set polygonen wordt geconverteerd naar (b) een set blokken door de polygonen van 2D naar 3D op te trekken.}
-\label{fig:extrusion-sum-nl}
-}
-\marginpar{
-\captionsetup{type=figure}
-\includegraphics[width=\marginparwidth]{figs/link2}
-\caption[Twee detailniveaus van een 3D model worden gelinkt tot een 4D model.]{Twee detailniveaus van een 3D model van een huis (links en rechts) worden gelinkt tot een 4D model.}
-\label{fig:link-sum-nl}
-}
-In deze dissertatie is een manier onderzocht en ontwikkeld om eenvoudig valide representaties van $n$D objecten te construeren.
-Daartoe zijn er drie methodes voorgesteld:
-\emph{Extrusion} neemt een $(n-1)$D cell complex en een set van intervallen per cell en projecteert deze parallel aan een nieuwe as ten einde een $n$D cell complex te construeren (\reffignl{fig:extrusion-sum-nl}).
-\emph{Incremental construction} construeert een $n$D object op basis van zijn $(n-1)$-grens.
-Via het \emph{linken} van verschillende representaties van hetzelfde 3D object op verschillende detailniveaus (LODs) met als resultaat een 4D model (\reffignl{fig:link-sum-nl}).
-
-Om $n$D modellen te kunnen visualiseren en te kunnen bewerken in huidige software, is er een methode nodig om valide 2D/3D subsets af te leiden uit de $n$D data.
-% Zo’n methode kent twee stappen: 1) het selecteren van een subset van de $n$D objecten uit het model en 2) de subset projecteren naar een lagere dimensie (2D of 3D).
-Als opstap heeft dit onderzoek laten zien hoe een zowel orthografische als een perspectieve projectie van $n$D naar $(n-1)$D kan worden gedefinieerd.
-
-Tenslotte heeft deze thesis alle hierboven genoemde concepten gevalideerd op $n$D data over de ``echte'' wereld.
-Omdat er veel fouten voorkomen in deze data, zijn er in dit onderzoek ook methodes ontwikkeld om valide polygonen en een plenaire partitie te creëren op basis van \emph{constrained} triangulatie.
-Daarnaast is er een methode ontwikkeld om polyhedra en ruimtelijke opdelingen te corrigeren door het ``snappen'' van primitieven op lagere dimensies en het verwijderen van overlap door middel van Boolean set bewerkingen op \emph{Nef polyhedra}.
-Hierdoor zijn er testen gedaan met data tot 6D gebaseerd op ``echte'' GIS data, \emph{wat een goede basis is voor $n$D GIS}.\@
-
-In de toekomst kan dit onderzoek worden uitgebreid met wijzigingsbewerkingen voor $n$D objecten, ``echte'' 4D ruimtelijk-temporele datasets en correctie methodes die de kwaliteit van de $n$D data garanderen.
-Alle implementaties van deze dissertatie zijn publiekelijk beschikbaar via open source licenties.
-
-}
-
-\chapter{Resumen (Spanish summary)}
-
-{\selectlanguage{spanish}
-
-Nuestro mundo es tridimensional y complejo, cambiando continuamente a través del tiempo y mostrándose distinto a distintas escalas.
-Aún así, cuando lo modelamos usando sistemas de información geográfica (SIG), generalmente usamos representaciones 2D, las cuales esencialmente consisten en conjuntos de puntos, líneas y polígonos enlazados entre sí (\reffiges{fig:brep-sum-es}).
-\marginpar{
-\captionsetup{type=figure}
-\includegraphics[width=\marginparwidth]{figs/brep}
-\caption[Un cubo representado por las 6 caras cuadradas en su superficie]{En los SIG, un cubo no se representa como un sólido, sino como las 6 caras cuadradas en su superficie.}
-\label{fig:brep-sum-es}
-}
-Estas representaciones son relativamente fáciles de usar y eficientes, y una gran variedad de métodos se han construido usándolas.
-Sin embargo, las representaciones 2D son necesariamente restrictivas.
-Nos fuerzan a reducir los problemas a dos dimensiones, limitan el tipo de objetos que podemos representar y dificultan guardar las relaciones entre diferentes objetos---especialmente cuando éstas son a través del tiempo y diferentes escalas.
-A pesar de ello, la mayoría de la investigación en SIG se dedica a mejorar estas representaciones 2D, así como a desarrollar nuevos métodos que las usan para resolver problemas, sean éstos nuevos o antiguos.
-
-Esta tesis explora un nuevo y fundamentalmente distinto paradigma de modelado---integrando características espaciales y espaciales como dimensiones en el sentido geométrico, específicamente apuntando hacia los casos del tiempo y la escala (\reffiges{fig:axes-sum-es}).
-\marginpar{
-\captionsetup{type=figure}
-\includegraphics[width=\marginparwidth]{figs/axes-es}
-\caption{El espacio 3D, el tiempo y la escala modelados como un espacio 5D.}
-\label{fig:axes-sum-es}
-}
-A pesar de que este paradigma ha sido propuesto antes a un nivel conceptual, esta tesis tiene como objetivo llevarlo a cabo al \emph{implementar los aspectos fundamentales de un SIG de altas dimensiones}, desarrollando representaciones para objetos en altas dimensiones ($n$D), así como nuevos métodos que operen en ellas para crear, manipular y visualizar información geográfica.
-Como esta tesis muestra, el paradigma de altas dimensiones tiene un alto consumo de memoria pero también es muy poderoso, proveyendo un método simple y consistente para guardar la geometría, los atributos y las relaciones topológicas entre objetos de cualquier dimensión.
-Este paradigma genérico puede ser fácilmente extendido a otras características no espaciales, haciendo posible un mejor manejo de datos con consistencia a través de las dimensiones y operaciones más poderosas.
-% , como verificar si dos objetos son adyacentes en algún momento.
-
-Para poder modelar el espacio de altas dimensiones, es mejor considerar una partición espacial $n$D como una base (\reffiges{fig:space-filling-sum-es}), la que es conceptualizada como un complejo simplicial o celular.
-\marginpar{
-\captionsetup{type=figure}
-\includegraphics[width=\marginparwidth]{figs/space-filling}
-\caption[Partición espacial 3D]{Una partición espacial 3D se compone de un conjunto de volúmenes que llenan el espacio sin huecos y sin solaparse entre ellos.}
-\label{fig:space-filling-sum-es}
-}
-Éste puede entonces ser implementado con una estructura de datos basada en símplices, un grafo de incidencia, como un conjunto de poliedros Nef, o---como en esta tesis---usando modelos topológicos ordenados, como la tupla de células (\emph{cell-tuple}) o los mapas generalizados o combinatorios (\emph{generalised/combinatorial maps}).
-
-\marginpar{
-\captionsetup{type=figure}
-\subfloat[]{\includegraphics[width=\marginparwidth]{figs/extrusion-1}}\\
-\subfloat[]{\includegraphics[width=\marginparwidth]{figs/extrusion-2}}
-\caption[Un conjunto de polígonos se extrude en un conjunto de paralelepípedos.]{(a) Un conjunto de polígonos se convierte en (b) un conjunto de paralelepípedos al aplicar una extrusión 2D a 3D.}
-\label{fig:extrusion-sum-es}
-}
-\marginpar{
-\captionsetup{type=figure}
-\includegraphics[width=\marginparwidth]{figs/link2}
-\caption[Dos niveles de detalle de una casa se enlazan en un modelo 4D]{Dos niveles de detalle de una casa (izquierda y derecha) se enlazan en un modelo 4D.}
-\label{fig:link-sum-es}
-}
-Crear representaciones de objetos en altas dimensiones puede ser complejo.
-Los métodos comunes usados en 2D y 3D, como la manipulación directa de elementos combinatorios primitivos, o el uso de operaciones de construcción que operan al nivel de los elementos primitivos (como las operaciones de Euler), se basan en nuestra intuición de la geometría 2D/3D, y por lo mismo no funcionan bien en altas dimensiones.
-Esto causa que sea demasiado fácil crear objetos inválidos, los cuales no pueden ser fácilmente interpretados o reparados---un problema que es extremadamente aparente incluso en tres dimensiones.
-
-Esta tesis propone tres métodos novedosos para crear fácilmente representaciones de objetos en altas dimensiones, todos los cuales son intuitivos e intentar crear datos de salida válidos.
-La \emph{extrusión} recibe un complejo celular $n-1$ dimensional y un conjunto de intervalos por cada célula, proyectándolos de forma paralela a un nuevo eje para crear un complejo celular $n$ dimensional (\reffiges{fig:extrusion-sum-es}).
-La \emph{construcción incremental} describe un objeto $n$ dimensional basado en su frontera $n-1$ dimensional, desde la dimensión cero (puntos) y hacia arriba.
-Finalmente, es posible construir un modelo 4D \emph{enlazando} una serie de modelos 3D a diferentes niveles de detalle (\reffiges{fig:link-sum-es}).
-
-Para poder visualizar modelos en altas dimensiones, así como poder procesarlos en el software existente, es importante tener métodos para extraer de éstos subconjuntos significativos 2D/3D.
-% Estos métodos consistirían de dos pasos: (i) seleccionar un subconjunto de los objetos en el modelo y (ii) proyectar este subconjunto a una dimensión menor.
-Como un paso inicial hacia este tipo de métodos, esta tesis muestra como se pueden definir las proyecciones ortográficas y de perspectiva de $n$ dimensiones a $n-1$.
-
-Finalmente, esta tesis tuvo un enfoque importante en validar los algoritmos con datos reales, lo cual sólo fue posible al desarrollar métodos para reparar datos inválidos, los cuales son comunes en la práctica.
-Esta tesis por lo tanto contiene métodos para crear polígonos y particiones planares válidas usando una triangulación restringida de los datos de entrada, así como un método para reparar poliedros y particiones 3D juntando objetos (\emph{snapping}) de menores dimensiones y eliminando las partes que se solapan utilizando operaciones booleanas de conjuntos con poliedros Nef.
-Esto permitió pruebas hasta en seis dimensiones basados en datos reales---\emph{una buena base para un SIG de altas dimensiones}.
-
-En el futuro, el trabajo de esta tesis será extendido con operaciones de modificación en altas dimensiones, datos reales espaciales y temporales 4D, así como métodos de reparación de datos con garantías de calidad.
-Todas las implementaciones hechas para esta tesis están disponibles públicamente bajo licencias de código abierto.
-
-}
diff --git a/work_report/summary.txt b/work_report/summary.txt
deleted file mode 100644
index 8f3d073..0000000
--- a/work_report/summary.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-Our world is three-dimensional and complex, continuously changing over time and appearing different at different scales. Yet, when we model it in a computer using Geographic Information Systems (GIS), we mostly use 2D representations, which essentially consist of linked points, lines and polygons. These representations are relatively easy to use and efficient, and a wide variety of methods is built on top of them. However, 2D representations are necessarily limiting. They force us to reduce problems to two dimensions, limit the type of objects we can represent, and complicate storing the relationships between different objects—especially when these are across time and different scales. Nevertheless, most research in GIS is devoted to improving these 2D representations, as well as to the development of new methods that build on them to solve problems, both old and new.
-
-This thesis explores a new, fundamentally different modelling approach—integrating both spatial and non-spatial characteristics as dimensions in the geometric sense, specifically targeting the cases of time and scale. While this has been proposed before at a conceptual level, this thesis aims to realise the fundamental aspects of a higher-dimensional GIS by developing higher-dimensional (nD) representations, as well as new methods operating on them to create, manipulate and visualise geographic information. As this thesis shows, the higher-dimensional approach is undoubtedly memory-intensive, but it is also very powerful, as it provides a simple and consistent way to store geometry, attributes and the topological relationships between objects of any dimension. This generic approach can also be easily extended to handle other non-spatial characteristics, enabling better data management that is consistent across dimensions and more powerful operations, such as checking if two objects are adjacent at any point in time.
-
-In order to model higher-dimensional space, it is best to consider an nD space subdivision as a base, which is conceptualised as an n-dimensional simplicial complex or cell complex. This can then be implemented with a simplex-based data structure, with an incidence graph, as a set of Nef polyhedra, or—as done in this thesis—by using ordered topological models such as the cell-tuple and generalised/combinatorial maps.
-
-Creating computer representations of higher-dimensional objects can be complex. Common construction methods used in 2D and 3D, such as directly manipulating combinatorial primitives, or using primitive-level construction operations (such as Euler operators), rely on our intuition of 2D/3D geometry, and thus do not work well in higher dimensions. It is therefore all too easy to create invalid objects, which then cannot be easily interpreted or fixed—a problem that is already exceedingly apparent in three dimensions.
-
-As a way to easily create representations of higher-dimensional objects, this thesis proposes three novel higher-level methods, all of which are intuitive to use and attempt to create valid output. Extrusion takes an (n-1)-dimensional cell complex and a set of intervals per cell, projecting them parallel to a new axis in order to create an n-dimensional cell complex. Incremental construction describes an n-dimensional object based on its (n-1)-dimensional boundary, from dimension zero (points) and then upwards. Finally, a 4D model can be constructed from a series of 3D models at different levels of detail (LODs) by linking them.
-
-In order to visualise higher-dimensional models, as well as to be able to process them in existing software, it is important to have methods to extract meaningful 2D/3D subsets from them. % Such methods would consist of two steps: (i) selecting a subset of the objects in the model and (ii) projecting this subset to a lower dimension. As a stepping stone towards such methods, this thesis shows how n-dimensional to (n-1)-dimensional orthographic and perspective projections can be defined.
-
-Finally, this thesis placed an emphasis on validating the algorithms with real-world datasets, which was only possible by developing methods to repair the invalid datasets that are widespread in practice. This thesis thus contains methods to create valid polygons and planar partitions using a constrained triangulation of the input, as well as a method to repair polyhedra and space subdivisions by snapping together lower-dimensional primitives and removing overlaps using Boolean set operations on Nef polyhedra. This allowed tests with up to 6D datasets based on real-world data—a good base for higher-dimensional GIS.
-
-In the future, the work in this thesis will be extended with higher-dimensional modification operations, true 4D spatiotemporal datasets and repair methods with quality guarantees. All implementations made for this thesis are publicly available under open source licences.
\ No newline at end of file
diff --git a/work_report/template/declaration_TU_Graz.tex b/work_report/template/declaration_TU_Graz.tex
new file mode 100644
index 0000000..9dc9f75
--- /dev/null
+++ b/work_report/template/declaration_TU_Graz.tex
@@ -0,0 +1,54 @@
+%%%% Time-stamp: <2017-02-14 16:01:12 vk>
+%% ========================================================================
+%%%% Disclaimer
+%% ========================================================================
+%%
+%% created by
+%%
+%% Karl Voit, and Matthias Wölbitsch
+%%
+%%
+%% code for the date and signature fields adapted from
+%% http://tex.stackexchange.com/a/20562
+
+
+\newcommand{\textfield}[2]{
+ \vbox{
+ \hsize=#1\kern3cm\hrule\kern1ex
+ \hbox to \hsize{\strut\hfil\footnotesize#2\hfil}
+ }
+}
+
+
+\ifthenelse{\boolean{english_affidavit}}{
+ \section*{Affidavit}
+ I declare that I have authored this thesis independently, that I have
+ not used other than the declared sources/resources, and that I have
+ explicitly indicated all material which has been quoted either
+ literally or by content from the sources used. The text document
+ uploaded to \myacro{TUGRAZ}online is identical to the present master‘s
+ thesis.
+
+ \hbox to \hsize{\textfield{4cm}{Date}\hfil\hfil\textfield{7cm}{Signature}}
+}{
+ \section*{Eidesstattliche Erklärung}
+ \foreignlanguage{ngerman}{%
+ Ich erkläre an Eides statt, dass ich die vorliegende Arbeit
+ selbstständig verfasst, andere als die angegebenen
+ Quellen/Hilfsmittel nicht benutzt, und die den benutzten Quellen
+ wörtlich und inhaltlich entnommenen Stellen als solche kenntlich
+ gemacht habe. Das in \myacro{TUGRAZ}online hochgeladene Textdokument
+ ist mit der vorliegenden Dissertation identisch.}
+
+ \hbox to \hsize{\textfield{4cm}{Datum}\hfil\hfil\textfield{7cm}{Unterschrift}}
+}
+
+\newpage
+
+
+%%% Local Variables:
+%%% mode: latex
+%%% mode: auto-fill
+%%% mode: flyspell
+%%% TeX-master: "../main"
+%%% End:
diff --git a/work_report/template/mycommands.tex b/work_report/template/mycommands.tex
new file mode 100644
index 0000000..56219e0
--- /dev/null
+++ b/work_report/template/mycommands.tex
@@ -0,0 +1,117 @@
+%% Time-stamp: <2015-04-30 17:19:58 vk>
+%%%% === Disclaimer: =======================================================
+%% created by
+%%
+%% Karl Voit
+%%
+%% using GNU/Linux, GNU Emacs & LaTeX 2e
+%%
+
+%doc%
+%doc% \section{\texttt{mycommands.tex} --- various definitions}\myinteresting
+%doc% \label{sec:mycommands}
+%doc%
+%doc% In file \verb#template/mycommands.tex# many useful commands are being
+%doc% defined.
+%doc%
+%doc% \paragraph{What should I do with this file?} Please take a look at its
+%doc% content to get the most out of your document.
+%doc%
+
+%doc%
+%doc% One of the best advantages of \LaTeX{} compared to \myacro{WYSIWYG} software products is
+%doc% the possibility to define and use macros within text. This empowers the user to
+%doc% a great extend. Many things can be defined using \verb#\newcommand{}# and
+%doc% automates repeating tasks. It is recommended to use macros not only for
+%doc% repetitive tasks but also for separating form from content such as \myacro{CSS}
+%doc% does for \myacro{XHTML}. Think of including graphics in your document: after
+%doc% writing your book, you might want to change all captions to the upper side of
+%doc% each figure. In this case you either have to modify all
+%doc% \texttt{includegraphics} commands or you were clever enough to define something
+%doc% like \verb#\myfig#\footnote{See below for a detailed description}. Using a
+%doc% macro for including graphics enables you to modify the position caption on only
+%doc% \emph{one} place: at the definition of the macro.
+%doc%
+%doc% The following section describes some macros that came with this document template
+%doc% from \myLaT and you are welcome to modify or extend them or to create
+%doc% your own macros!
+%doc%
+
+%doc%
+%doc% \subsection{\texttt{myfig} --- including graphics made easy}
+%doc%
+%doc% The classic: you can easily add graphics to your document with \verb#\myfig#:
+%doc% \begin{verbatim}
+%doc% \myfig{flower}%% filename w/o extension in the folder figures
+%doc% {width=0.7\textwidth}%% maximum width/height, aspect ratio will be kept
+%doc% {This flower was photographed at my home town in 2010}%% caption
+%doc% {Home town flower}%% optional (short) caption for list of figures
+%doc% {fig:flower}%% label
+%doc% \end{verbatim}
+%doc%
+%doc% There are many advantages of this command (compared to manual
+%doc% \texttt{figure} environments and \texttt{includegraphics} commands:
+%doc% \begin{itemize}
+%doc% \item consistent style throughout the whole document
+%doc% \item easy to change; for example move caption on top
+%doc% \item much less characters to type (faster, error prone)
+%doc% \item less visual clutter in the \TeX{}-files
+%doc% \end{itemize}
+%doc%
+%doc%
+\newcommand{\myfig}[5]{
+%% example:
+% \myfig{}%% filename in figures folder
+% {width=0.5\textwidth,height=0.5\textheight}%% maximum width/height, aspect ratio will be kept
+% {}%% caption
+% {}%% optional (short) caption for list of figures
+% {}%% label
+\begin{figure}%[htp]
+ \centering
+ \includegraphics[keepaspectratio,#2]{figures/#1}
+ \caption[#4]{#3}
+ \label{#5} %% NOTE: always label *after* caption!
+\end{figure}
+}
+
+
+%doc%
+%doc% \subsection{\texttt{myclone} --- repeat things!}
+%doc%
+%doc% Using \verb#\myclone[42]{foobar}# results the text \enquote{foobar} printed 42 times.
+%doc% But you can not only repeat text output with \texttt{myclone}.
+%doc%
+%doc% Default argument
+%doc% for the optional parameter \enquote{number of times} (like \enquote{42} in the example above)
+%doc% is set to two.
+%doc%
+%% \myclone[x]{text}
+\newcounter{myclonecnt}
+\newcommand{\myclone}[2][2]{%
+ \setcounter{myclonecnt}{#1}%
+ \whiledo{\value{myclonecnt}>0}{#2\addtocounter{myclonecnt}{-1}}%
+}
+
+%old% %d oc%
+%old% %d oc% \subsection{\texttt{fixxme} --- sidemark something as unfinished}
+%old% %d oc%
+%old% %d oc% You know it: something has to be fixed and you can not do it right
+%old% %d oc% now. In order to \texttt{not} forget about it, you might want to add a
+%old% %d oc% note like \verb+\fixxme{check again}+ which inserts a note on the page
+%old% %d oc% margin such as this\fixxme{check again} example.
+%old% %d oc%
+%old% \newcommand{\fixxme}[1]{%%
+%old% \textcolor{red}{FIXXME}\marginpar{\textcolor{red}{#1}}%%
+%old% }
+
+
+%%%% End
+%%% Local Variables:
+%%% mode: latex
+%%% mode: auto-fill
+%%% mode: flyspell
+%%% eval: (ispell-change-dictionary "en_US")
+%%% TeX-master: "../main"
+%%% End:
+%% vim:foldmethod=expr
+%% vim:fde=getline(v\:lnum)=~'^%%%%'?0\:getline(v\:lnum)=~'^%doc.*\ .\\%(sub\\)\\?section{.\\+'?'>1'\:'1':
diff --git a/work_report/template/pdf_settings.tex b/work_report/template/pdf_settings.tex
new file mode 100644
index 0000000..04c4d62
--- /dev/null
+++ b/work_report/template/pdf_settings.tex
@@ -0,0 +1,82 @@
+%%%% Time-stamp: <2018-03-11 14:31:45 vk>
+%%%% === Disclaimer: =======================================================
+%% created by
+%%
+%% Karl Voit
+%%
+%% using GNU/Linux, GNU Emacs & LaTeX 2e
+%%
+
+%doc%
+%doc% \section{\texttt{pdf\_settings.tex} --- Settings related to PDF output}
+%doc% \label{sec:pdf}
+%doc%
+%doc% The file \verb#template/pdf_settings.tex# basically contains the definitions for
+%doc% the \href{http://tug.org/applications/hyperref/}{\texttt{hyperref} package}
+%doc% including the
+%doc% \href{http://www.ctan.org/tex-archive/macros/latex/required/graphics/}{\texttt{graphicx}
+%doc% package}. Since these settings should be the last things of any \LaTeX{}
+%doc% preamble, they got their own \TeX{} file which is included in \texttt{main.tex}.
+%doc%
+%doc% \paragraph{What should I do with this file?} The settings in this file are
+%doc% important for \myacro{PDF} output and including graphics. Do not exclude the
+%doc% related \texttt{input} command in \texttt{main.tex}. But you might want to
+%doc% modify some settings after you read the
+%doc% \href{http://tug.org/applications/hyperref/}{documentation of the \texttt{hyperref} package}.
+%doc%
+
+
+%% Fix positioning of images in PDF viewers. (disabled by
+%% default; see https://github.com/novoid/LaTeX-KOMA-template/issues/4
+%% for more information)
+%% I do not have time to read about possible side-effect of this
+%% package for now.
+% \usepackage[hypcap]{caption}
+
+%% Declarations of hyperref should be the last definitions of the preamble:
+%% FIXXME: black-and-white-version for printing!
+
+\pdfcompresslevel=9
+
+\usepackage[%
+unicode=true, % loads with unicode support
+%a4paper=true, %
+pdftex, %
+backref, %
+pagebackref=false, % creates backward references too
+bookmarks=true, % generate bookmarks in PDF files
+bookmarksopen=false, % when starting with AcrobatReader, the Bookmarkcolumn is opened
+pdfpagemode=UseNone, % UseNone, UseOutlines, UseThumbs, FullScreen
+plainpages=false, % correct, if pdflatex complains: ``destination with same identifier already exists''
+%% colors: https://secure.wikimedia.org/wikibooks/en/wiki/LaTeX/Colors
+urlcolor=DispositionColor, %%
+linkcolor=DispositionColor, %%
+citecolor=DispositionColor, %%
+anchorcolor=DispositionColor, %%
+colorlinks=\mycolorlinks, % turn on/off colored links (on: better for
+ % on-screen reading; off: better for printout versions)
+]{hyperref}
+
+%% all strings need to be loaded after hyperref was loaded with unicode support
+%% if not the field is garbled in the output for characters like ČŽĆŠĐ
+\hypersetup{
+pdftitle={\mytitle}, %
+pdfauthor={\myauthor}, %
+pdfsubject={\mysubject}, %
+pdfcreator={Accomplished with: pdfLaTeX, biber, and hyperref-package. No animals, MS-EULA or BSA-rules were harmed.},
+pdfproducer={\myauthor},
+pdfkeywords={\mykeywords}
+}
+
+%\DeclareGraphicsExtensions{.pdf}
+
+%%%% END
+%%% Local Variables:
+%%% TeX-master: "../main"
+%%% mode: latex
+%%% mode: auto-fill
+%%% mode: flyspell
+%%% eval: (ispell-change-dictionary "en_US")
+%%% End:
+%% vim:foldmethod=expr
+%% vim:fde=getline(v\:lnum)=~'^%%%%'?0\:getline(v\:lnum)=~'^%doc.*\ .\\%(sub\\)\\?section{.\\+'?'>1'\:'1':
diff --git a/work_report/template/pdflatex+biber.bat b/work_report/template/pdflatex+biber.bat
new file mode 100644
index 0000000..6f938be
--- /dev/null
+++ b/work_report/template/pdflatex+biber.bat
@@ -0,0 +1,39 @@
+REM =====================================================
+REM This is a batch file to compile using pdflatex and biber (biblatex).
+REM When used with TeXworks, add it as batch tool:
+REM =====================================================
+REM English:
+REM Edit > Preferences ... > Typesetting > Processing tools
+REM + (new tool):
+REM Name: pdflatex+biber
+REM Program: (find this pdflatex+biber.bat on your disk and use it here)
+REM Arguments:
+REM $fullname
+REM $basename
+REM [x] View PDF after running
+REM =====================================================
+REM German:
+REM Bearbeiten > Einstellungen ... > Textsatz > Verarbeitungsprogramme
+REM + (neues Verarbeitungsprogramm):
+REM Name: pdflatex+biber
+REM Befehl/Datei: (diese pdflatex+biber.bat im Laufwerk suchen und einbinden)
+REM Argumente:
+REM $fullname
+REM $basename
+REM [x] PDF nach Beendigung anzeigen
+REM =====================================================
+REM idea from: http://tex.stackexchange.com/questions/69705/how-to-automate-using-biber-in-miktex-texworks
+REM adopted by: Karl Voit, 2013-02-02
+REM =====================================================
+
+REM call pdflatex using parameters suitable for miktex:
+miktex-pdftex.exe -synctex=1 -undump=pdflatex "%1"
+
+REM generate the references metadata for biblatex (using biber):
+biber.exe "%2"
+
+REM call pdflatex twice to compile the references and finalize PDF:
+miktex-pdftex.exe -synctex=1 -undump=pdflatex "%1"
+miktex-pdftex.exe -synctex=1 -undump=pdflatex "%1"
+
+REM end
\ No newline at end of file
diff --git a/work_report/template/preamble.tex b/work_report/template/preamble.tex
new file mode 100644
index 0000000..9130516
--- /dev/null
+++ b/work_report/template/preamble.tex
@@ -0,0 +1,723 @@
+%% Time-stamp: <2018-03-11 14:25:47 vk>
+%%%% === Disclaimer: =======================================================
+%% created by
+%%
+%% Karl Voit
+%%
+%% using GNU/Linux, GNU Emacs & LaTeX 2e
+%%
+
+%doc% %% overriding preamble/preamble.tex %%
+%doc% \newcommand{\mylinespread}{1.0} \newcommand{\mycolorlinks}{true}
+%doc% \documentclass[12pt,paper=a4,parskip=half,DIV=calc,oneside,%%
+%doc% headinclude,footinclude=false,open=right,bibliography=totoc]{scrartcl}
+%doc% \usepackage[T1]{fontenc}\usepackage{lmodern}
+%doc% \usepackage[utf8]{inputenc}\usepackage[ngerman,american]{babel}\usepackage{scrlayer-scrpage}
+%doc% \usepackage{ifthen}\usepackage{eurosym}\usepackage{xspace}\usepackage[usenames,dvipsnames]{xcolor}
+%doc% \usepackage[protrusion=true,factor=900]{microtype}
+%doc% \usepackage{enumitem}
+%doc% \usepackage[pdftex]{graphicx}
+%doc% \usepackage{todonotes}
+%doc% \usepackage{dingbat,bbding} %% special characters
+%doc% \definecolor{DispositionColor}{RGB}{30,103,182}
+%doc%
+%doc% \usepackage[backend=biber,style=authoryear,dashed=false,natbib=true,hyperref=true%%
+%doc% ]{biblatex}
+%doc%
+%doc% \addbibresource{references-biblatex.bib} %% remove, if using BibTeX instead of biblatex
+%doc%
+%doc% %% overriding userdata %%
+%doc% \newcommand{\myauthor}{Karl Voit}\newcommand{\mytitle}{LaTeX Template Documentation}
+%doc% \newcommand{\mysubject}{A Comprehensive Guide to Use the
+%doc% Template from https://github.com/novoid/LaTeX-KOMA-template}
+%doc% \newcommand{\mykeywords}{LaTeX, pdflatex, template, documentation, biber, biblatex}
+%doc%
+%doc% \newcommand{\myLaT}{\LaTeX{}@TUG\xspace}
+%doc%
+%doc% %% for future use?
+%doc% % \usepackage{filecontents}
+%doc% % \begin{filecontents}{filename.example}
+%doc% %
+%doc% % \end{filecontents}
+%doc%
+%doc%
+%doc% %% using existing TeX files %%
+%doc% \input{template/mycommands}
+%doc% \input{template/typographic_settings}
+%doc% \input{template/pdf_settings}
+%doc%
+%doc% \begin{document}
+%doc% %% title page %%
+%doc% \title{\mytitle}\subtitle{\mysubject}
+%doc% \author{\myauthor}
+%doc% \date{\today}
+%doc%
+%doc% \maketitle\newpage
+%doc%
+%doc% \tableofcontents\newpage
+%doc% %%---------------------------------------%%
+
+%doc%
+%doc% \section{How to use this \LaTeX{} document template}
+%doc%
+%doc% This \LaTeX{} document template from
+%doc% \myLaT\footnote{\url{http://LaTeX.TUGraz.at}} is based on \myacro{KOMA}
+%doc% script\footnote{\url{http://komascript.de/}}. You don't need any
+%doc% special \myacro{KOMA} knowledge (but it woun't hurt either). It provides an easy to use and
+%doc% easy to modify template. All settings are documented and many references to
+%doc% additional information sources are given.
+%doc%
+
+%doc% In general, there should not be any reason to modify a file in
+%doc% the \texttt{template} folder. \emph{All important settings are
+%doc% accessible in the main folder, mostly in the \texttt{main.tex}
+%doc% file.} This way, it is easy to get what you need and you can update
+%doc% the template independent of the content of the document.
+%doc%
+%doc% \newcommand{\myimportant}{%% mark important chapters
+%doc% \marginpar{\vspace{-1em}\rightpointleft}
+%doc% }
+%doc% \newcommand{\myinteresting}{\marginpar{\vspace{-2em}\PencilLeftDown}}
+
+%doc%
+%doc% The \emph{absolute minimum you should read} is listed below and
+%doc% marked with the hand symbol:\myimportant
+%doc% \begin{itemize}
+%doc% \item Section~\ref{sec:modifytemplate}: basic configuration of this template.
+%doc% \item Section~\ref{sec:howtocompile}: how to generate the \myacro{PDF} file
+%doc% \item Section~\ref{sec:references}: using biblatex (instead of bibtex)
+%doc% \end{itemize}
+%doc%
+%doc% In order to get a perfect resulting document and to get an
+%doc% exciting experience with this template, you should definitely consider reading
+%doc% following sections which are also marked with the pencil symbol:\myinteresting
+%doc% \begin{itemize}
+%doc% \item Section~\ref{sec:extending-template}: extend the template with
+%doc% your own usepackages, newcommands, and so forth
+%doc% \item Section~\ref{sec:mycommands}: pre-defined commands to make your life easier (e.g., including graphics)
+%doc% \item Section~\ref{sec:myacro}: how to do acronyms (like \myacro{ACME}) beautifully
+%doc% \item Section~\ref{sub:csquotes}: how to \enquote{quote} text and use parentheses correctly
+%doc% \end{itemize}
+%doc%
+%doc% The other sections describe all other settings for the sake of completeness. This is
+%doc% interesting for learning more about \LaTeX{} and modifying this template to a higher level of detail.
+
+%doc%
+%doc% \newpage
+%doc% \subsection{Six Steps to Customize Your Document}\myimportant
+%doc% \label{sec:modifytemplate}
+%doc%
+%doc% This template is optimized to get to the first draft of your thesis
+%doc% very quickly. Follow these instructions and you get most of your
+%doc% customizing done in a few minutes:
+%doc%
+%doc% \newcommand{\myfile}[1]{\texttt{\href{file:#1}{#1}}}
+%doc%
+%doc% \begin{enumerate}
+%doc% \item Modify settings in \texttt{main.tex} to meet your requirements:
+%doc% \begin{itemize}
+%doc% \item Basic settings
+%doc% \begin{itemize}
+%doc% \item Paper size, languages, font size, citation style,
+%doc% title page, and so forth
+%doc% \end{itemize}
+%doc% \item Document metadata
+%doc% \begin{itemize}
+%doc% \item Preferences like \verb+myauthor+, \verb+mytitle+, and so forth
+%doc% \end{itemize}
+%doc% \end{itemize}
+%doc% \item Replace \myfile{figures/institution.pdf} with the logo of
+%doc% your institution in either \myacro{PDF} or \myacro{PNG}
+%doc% format.\footnote{Avoid \myacro{JPEG} format for
+%doc% computer-generated (pixcel-oriented) graphics like logos or
+%doc% screenshots in general. The \myacro{JEPG} format is for
+%doc% photographs \emph{only}.}
+%doc% \item Further down in \myfile{main.tex}:
+%doc% \begin{itemize}
+%doc% \item Create your desired structure for the chapters
+%doc% (\verb+\include{introduction}+, \verb+\include{evaluation}+, \ldots)
+%doc% \end{itemize}
+%doc% \item Create the \TeX{} files and fill your content into these files you defined in the previous step.
+%doc% \item Optionally: Modify \myfile{colophon.tex} to meet your situation.
+%doc% \begin{itemize}
+%doc% \item Please spend a couple of minutes and think about putting your work
+%doc% under an open license\footnote{\url{https://creativecommons.org/licenses/}}
+%doc% in order to follow the spirit of Open Science\footnote{\url{https://en.wikipedia.org/wiki/Open_science}}.
+%doc% \end{itemize}
+%doc% \item In case you are using \myacro{GNU} make\footnote{If you
+%doc% don't know, what \myacro{GNU} make is, you are not using it (yet).}:
+%doc% Put your desired \myacro{PDF} file name in the second line of file
+%doc% \myfile{Makefile}
+%doc% \begin{itemize}
+%doc% \item replace \enquote{Projectname} with your filename
+%doc% \item do not use any file extension like \texttt{.tex} or \texttt{.pdf}
+%doc% \end{itemize}
+%doc% \end{enumerate}
+%doc%
+%doc%
+
+%doc%
+%doc% \subsection{License}\myimportant
+%doc% \label{sec:license}
+%doc%
+%doc% This template is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)
+%doc% license\footnote{\url{https://creativecommons.org/licenses/by-sa/3.0/}}:
+%doc% \begin{itemize}
+%doc% \item You can share (to copy, distribute and transmit) this template.
+%doc% \item You can remix (adapt) this template.
+%doc% \item You can make commercial use of the template.
+%doc% \item In case you modify this template and share the derived
+%doc% template: You must attribute the template such that you do not
+%doc% remove (co-)authorship of Karl Voit and you must not remove
+%doc% the URL to the original repository on
+%doc% github\footnote{\url{https://github.com/novoid/LaTeX-KOMA-template}}.
+%doc% \item If you alter, transform, or build a new template upon
+%doc% this template, you may distribute the resulting
+%doc% template only under the same or similar license to this one.
+%doc% \item There are \emph{no restrictions} of any kind, however, related to the
+%doc% resulting (PDF) document!
+%doc% \item You may remove the colophon (but it's not recommended).
+%doc% \end{itemize}
+
+
+%doc%
+%doc%
+%doc% \subsection{How to compile this document}\myimportant
+%doc% \label{sec:howtocompile}
+%doc%
+%doc% I assume that compiling \LaTeX{} documents within your software
+%doc% environment is something you have already learned. This template is
+%doc% almost like any other \LaTeX{} document except it uses
+%doc% state-of-the-art tools for generating things like the list of
+%doc% references using biblatex/biber (see
+%doc% Section~\ref{sec:references} for details). Unfortunately, some \LaTeX{} editors
+%doc% do not support this much better way of working with bibliography
+%doc% references yet. This section describes how to compile this template.
+%doc%
+%doc% \subsubsection{Compiling Using a \LaTeX{} Editor}
+%doc%
+%doc% Please do select \myfile{main.tex} as the \enquote{main project file} or make
+%doc% sure to compile/run only \myfile{main.tex} (and not \myfile{introduction.tex}
+%doc% or other \TeX{} files of this template).
+%doc%
+%doc% Choose \texttt{biber} for generating the references. Modern LaTeX{}
+%doc% environments offer this option. Older tools might not be that up to
+%doc% date yet.
+%doc%
+
+%doc% \subsubsection{Activating \texttt{biber} in the \LaTeX{} editor TeXworks}
+%doc% \label{sec:biberTeXworks}
+%doc%
+%doc% The \href{https://www.tug.org/texworks/}{TeXworks} editor is a very
+%doc% basic (but fine) \LaTeX{} editor to start with. It is included in
+%doc% \href{http://miktex.org/}{MiKTeX} and
+%doc% \href{http://miktex.org/portable}{MiKTeX portable} and supports
+%doc% \href{https://en.wikipedia.org/wiki/Syntax_highlighting}{syntax
+%doc% highlighting} and
+%doc% \href{http://itexmac.sourceforge.net/SyncTeX.html}{SyncTeX} to
+%doc% synchronize \myacro{PDF} output and \LaTeX{} source code.
+%doc%
+%doc% Unfortunately, TeXworks shipped with MiKTeX does not support compiling
+%doc% using \texttt{biber} (biblatex) out of the box. Here is a solution to
+%doc% this issue. Go to TeXworks: \texttt{Edit} $\rightarrow$
+%doc% \texttt{Preferences~\ldots} $\rightarrow$ \texttt{Typesetting} $\rightarrow$
+%doc% \texttt{Processing tools} and add a new entry (using the plus icon):
+%doc%
+%doc% \begin{tabbing}
+%doc% Arguments: \= foobar \kill
+%doc% Name: \> \verb#pdflatex+biber# \\
+%doc% Program: \> \emph{find the \texttt{template/pdflatex+biber.bat} file from your disk} \\
+%doc% Arguments: \> \verb+$fullname+ \\
+%doc% \> \verb+$basename+
+%doc% \end{tabbing}
+%doc%
+%doc% Activate the \enquote{View PDF after running} option.
+%doc%
+%doc% Close the preferences dialog and you will now have an additional
+%doc% choice in the drop down list for compiling your document. Choose the
+%doc% new entry called \verb#pdflatex+biber# and start a happier life with
+%doc% \texttt{biber}.
+%doc%
+%doc% In case your TeXworks has a German user interface, here the key
+%doc% aspects in German as well:
+%doc%
+%doc% \begin{otherlanguage}{ngerman}
+%doc%
+%doc% \texttt{Bearbeiten} $\rightarrow$ \texttt{Einstellungen~\ldots} $\rightarrow$
+%doc% \texttt{Textsatz} $\rightarrow$ \texttt{Verarbeitungsprogramme} $\rightarrow$
+%doc% + \emph{(neues Verarbeitungsprogramm)}:
+%doc%
+%doc% \begin{tabbing}
+%doc% Befehl/Datei: \= foobar \kill
+%doc% Name: \> pdflatex+biber \\
+%doc% Befehl/Datei: \> \emph{die \texttt{template/pdflatex+biber.bat} im Laufwerk suchen} \\
+%doc% Argumente: \> \verb+$fullname+ \\
+%doc% \> \verb+$basename+
+%doc% \end{tabbing}
+%doc%
+%doc% \enquote{PDF nach Beendigung anzeigen} aktivieren.
+%doc%
+%doc% \end{otherlanguage}
+%doc%
+
+%doc% \subsubsection{Compiling Using \myacro{GNU} make}
+%doc%
+%doc% With \myacro{GNU}
+%doc% make\footnote{\url{https://secure.wikimedia.org/wikipedia/en/wiki/Make\_\%28software\%29}}
+%doc% it is just simple as that: \texttt{make pdf}
+%doc%
+%doc% Several other targets are available. You can check them out by
+%doc% executing: \texttt{make help}
+%doc%
+%doc% In case you are using TeXLive (instead of MiKTeX as I do), you might
+%doc% want to modify the line \texttt{PDFLATEX\_CMD = pdflatex} within
+%doc% the file \texttt{Makefile} to: \texttt{PDFLATEX\_CMD = pdflatex -synctex=1 -undump=pdflatex}
+%doc%
+%doc%
+
+%doc% \subsubsection{Compiling in a Text-Shell}
+%doc%
+%doc% To generate a document using \texttt{Biber}, you can stick to
+%doc% following example:
+%doc% \begin{verbatim}
+%doc% pdflatex main.tex
+%doc% biber main
+%doc% pdflatex main.tex
+%doc% pdflatex main.tex
+%doc% \end{verbatim}
+%doc%
+%doc% Users of TeXLive with Microsoft Windows might want to try the
+%doc% following script\footnote{Thanks to Florian Brucker for provinding
+%doc% this script.} which could be stored as, e.g., \texttt{compile.bat}:
+%doc% \begin{verbatim}
+%doc% REM call pdflatex using parameters suitable for TeXLive:
+%doc% pdflatex.exe "main.tex"
+%doc% REM generate the references metadata for biblatex (using biber):
+%doc% biber.exe "main"
+%doc% REM call pdflatex twice to compile the references and finalize PDF:
+%doc% pdflatex.exe "main.tex"
+%doc% pdflatex.exe -synctex=-1 -interaction=nonstopmode "main.tex"
+%doc% \end{verbatim}
+%doc%
+
+
+%doc%
+%doc% \subsection{How to get rid of the template documentation}
+%doc%
+%doc% Simply remove the files \verb#Template_Documentation.pdf# and
+%doc% \verb#Template_Documentation.tex# (if it exists) in the main folder
+%doc% of this template.
+%doc%
+%doc% \subsection{What about modifying or extending the template?}\myinteresting
+%doc% \label{sec:extending-template}
+%doc%
+%doc% This template provides an easy to start \LaTeX{} document template with sound
+%doc% default settings. You can modify each setting any time. It is recommended that
+%doc% you are familiar with the documentation of the command whose settings you want
+%doc% to modify.
+%doc%
+%doc% It is recommended that for \emph{adding} things to the preambel (newcommands,
+%doc% setting variables, defining headers, \dots) you should use the file
+%doc% \texttt{main.tex}.
+%doc% There are comment lines which help you find the right spot.
+%doc% This way you still have the chance to update your \texttt{template}
+%doc% folder from the template repository without losing your own added things.
+%doc%
+%doc% The following sections describe the settings and commands of this template and
+%doc% give a short overview of its features.
+
+%doc% \subsection{How to change the title page}
+%doc%
+%doc% This template comes with a variety of title pages. They are located in
+%doc% the folder \texttt{template}. You can switch to a specific title
+%doc% page by including the corresponding title page file in the file
+%doc% \texttt{main.tex}.
+%doc%
+%doc% Please note that you may not need to modify any title page document by
+%doc% yourself since all relevant information is defined in the file
+%doc% \texttt{main.tex}.
+
+%doc%
+%doc% \section{\texttt{preamble.tex} --- Main preamble file}
+%doc%
+%doc% In the file \verb#preamble/preamble.tex# you will find the basic
+%doc% definitions related to your document. This template uses the \myacro{KOMA} script
+%doc% extension package of \LaTeX{}.
+%doc%
+%doc% There are comments added to the \verb#\documentclass{}# definitions. Please
+%doc% refer to the great documentation of \myacro{KOMA}\footnote{\texttt{scrguide.pdf} for
+%doc% German users} for further details.
+%doc%
+%doc% \paragraph{What should I do with this file?} For standard purposes you might
+%doc% use the default values it provides. You must not remove its \texttt{include} command
+%doc% in \texttt{main.tex} since it contains important definitions. This file contains
+%doc% settings which are documented well and can be modified according to your needs.
+%doc% It is recommended that you fully understand each setting you modify in order to
+%doc% get a good document result. However, you can set basic values in the
+%doc% \texttt{main.tex} file: font size, paper size,
+%doc% paragraph separation mode, draft mode, binding correction, and whether
+%doc% your document will be a one sided document or you are planning to
+%doc% create a document which is printed on both, left side and right side.
+%doc%
+
+\documentclass[%
+fontsize=\myfontsize,%% size of the main text
+paper=\mypapersize, %% paper format
+parskip=\myparskip, %% vertical space between paragraphs (instead of indenting first par-line)
+DIV=calc, %% calculates a good DIV value for type area; 66 characters/line is great
+headinclude=true, %% is header part of margin space or part of page content?
+footinclude=false, %% is footer part of margin space or part of page content?
+open=right, %% "right" or "left": start new chapter on right or left page
+appendixprefix=true, %% adds appendix prefix; only for book-classes with \backmatter
+bibliography=totoc, %% adds the bibliography to table of contents (without number)
+draft=\mydraft, %% if true: included graphics are omitted and black boxes
+ %% mark overfull boxes in margin space
+BCOR=\myBCOR, %% binding correction (depends on how you bind
+ %% the resulting printout.
+\mylaterality %% oneside: document is not printed on left and right sides, only right side
+ %% twoside: document is printed on left and right sides
+]{scrbook} %% article class of KOMA: "scrartcl", "scrreprt", or "scrbook".
+ %% CAUTION: If documentclass will be changed, *many* other things
+ %% change as well like heading structure, ...
+
+
+
+% FIXXME: adopting class usage:
+% from scrbook -> scrartcl OR scrreport:
+% - remove appendixprefix from class options
+% - remove \frontmatter \mainmatter \backmatter \appendix from main.tex
+
+% FIXXME: adopting language:
+% add or modify language parameter of package »babel« and use language switches described in babel-documentation
+
+%doc%
+%doc% \subsection{\texttt{fontenc}: Switch to Western European output charset}
+%doc%
+%doc% This allows \LaTeX{} to output special digits like german mutated vovels or quotation marks without assembling them of basic US-ASCII ones. This makes text in the generated pdf copyable. Sadly this also influences the fonts used, as the default ones do not contain most of the characters we use here. The lmodern font set is usually used to counteract this problem.
+%doc%
+\usepackage[T1]{fontenc}
+\usepackage{lmodern}
+%% Source: https://texwelt.de/fragen/5537/was-macht-eigentlich-usepackaget1fontenc
+%% https://tex.stackexchange.com/questions/227063/fontenc-changes-sans-serif-bold-font-in-koma-script
+
+%doc%
+%doc% \subsection{\texttt{inputenc}: UTF8 as input charset}
+%doc%
+%doc% You are able and should use \myacro{UTF8} character settings for writing these \TeX{}-files.
+%doc%
+%\usepackage{ucs} %% UTF8 as input characters; UCS incompatible to biblatex
+\usepackage[utf8]{inputenc} %% UTF8 as input characters
+%% Source: http://latex.tugraz.at/latex/tutorial#laden_von_paketen
+
+%doc%
+%doc% \subsection{\texttt{textcomp}: Support for Text Companion fonts}
+%doc%
+%doc% Provides some text symbols such as bullet in \myacro{TS1} encoding.
+%doc% Depending on what font or symbols you use, you might not even need this.
+%doc% Removing this package will at worst result in a warning.
+\usepackage{textcomp}
+%% Source: https://www.ctan.org/pkg/textcomp
+
+%doc%
+%doc% \subsection{\texttt{babel}: Language settings}
+%doc%
+%doc% The default setting of the language is American. Please change settings for
+%doc% additional or alternative languages used in \texttt{main.tex}.
+%doc%
+%doc% Please note that the default language of the document is the \emph{last} language
+%doc% which is added to the package options.
+%doc%
+%doc% To set only parts of your document in a different language as the rest, use for example\newline
+%doc% \verb+\foreignlanguage{ngerman}{Beispieltext in deutscher Sprache}+\newline
+%doc% For using foreign language quotes, please refer to the \verb+\foreignquote+,
+%doc% \verb+\foreigntextquote+, or \verb+\foreignblockquote+ provided by
+%doc% \texttt{csquotes} (see Section~\ref{sub:csquotes}).
+%doc%
+\usepackage[\mylanguage]{babel} %% used languages; default language is *last* language of options
+
+%doc%
+%doc% \subsection{\texttt{scrlayer-scrpage}: Headers and footers}
+%doc%
+%doc% Since this template is based on \myacro{KOMA} script it uses its great
+%doc% \texttt{scrlayer-scrpage} (previously \texttt{scrpage2})
+%doc% package for defining header and footer information. Please refer to the \myacro{KOMA}
+%doc% script documentation how to use this package.
+%doc%
+\usepackage{scrlayer-scrpage} %% advanced page style using KOMA
+
+
+%doc%
+%doc% \subsection{References}\myimportant
+%doc% \label{sec:references}
+%doc%
+%doc% This template is using
+%doc% \href{http://www.tex.ac.uk/tex-archive/info/translations/biblatex/de/}{\texttt{biblatex}}
+%doc% and \href{http://en.wikipedia.org/wiki/Biber_(LaTeX)}{\texttt{Biber}}
+%doc% instead of
+%doc% \href{http://en.wikipedia.org/wiki/BibTeX}{\textsc{Bib}\TeX{}}. This has the following
+%doc% advantages:
+%doc% \begin{itemize}
+%doc% \item better documentation
+%doc% \item Unicode-support like German umlauts (ö, ä, ü, ß) for references
+%doc% \item flexible definition of citation styles
+%doc% \item multiple bibliographies e.\,g. for printed and online resources
+%doc% \item cleaner reference definition e.\,g. inheriting information from
+%doc% \texttt{Proceedings} to all related \texttt{InProceedings}
+%doc% \item modern implementation
+%doc% \end{itemize}
+%doc%
+%doc% In short, \texttt{biblatex} is able to handle your \texttt{bib}-files
+%doc% and offers additional features. To get the most out of
+%doc% \texttt{biblatex}, you should read the very good package
+%doc% documentation. Be warned: you'll probably never want to change back
+%doc% to \textsc{Bib}\TeX{} again.
+%doc%
+%doc% Take a look at the files \texttt{references-bibtex.bib} and
+%doc% \texttt{references-biblatex.bib}: they contain the three
+%doc% references \texttt{tagstore}, \texttt{Voit2009}, and
+%doc% \texttt{Voit2011}.
+%doc% The second file is optimized for \texttt{biblatex} and
+%doc% takes advantage of some features that are not possible with
+%doc% \textsc{Bib}\TeX{}.
+%doc%
+%doc% This template is ready to use \texttt{biblatex} with \texttt{Biber} as
+%doc% reference compiler. You should make sure that you have installed an up
+%doc% to date binary of \texttt{Biber} from its
+%doc% homepage\footnote{\url{http://biblatex-biber.sourceforge.net/}}.
+%doc%
+%doc%
+%doc% In \texttt{main.tex} you can define several general \texttt{biblatex}
+%doc% options: citation style, whether or not multiple occurrences of
+%doc% authors are replaced with dashes, or if backward references (from
+%doc% references to citations) should be added.
+%doc%
+%doc%
+%doc% If you are using the LaTeX{} editor TeXworks, please make sure that
+%doc% you have read Section~\ref{sec:biberTeXworks} in order to use
+%doc% \texttt{biber}.
+%doc%
+
+%doc% \subsubsection{Example citation commands}
+%doc%
+%doc% This section demonstrates some example citations using the style \texttt{authoryear}.
+%doc% You can change the citation style in \texttt{main.tex} (\texttt{mybiblatexstyle}).
+%doc%
+%doc% \begin{itemize}
+%doc% \item cite \cite{Eijkhout2008} and cite \cite{Bringhurst1993, Eijkhout2008}.
+%doc% \item citet \citet{Eijkhout2008} and citet \citet{Bringhurst1993, Eijkhout2008}.
+%doc% \item autocite \autocite{Eijkhout2008} and autocite \autocite{Bringhurst1993, Eijkhout2008}.
+%doc% \item autocites \autocites{Eijkhout2008} and autocites \autocites{Bringhurst1993, Eijkhout2008}.
+%doc% \item citeauthor \citeauthor{Eijkhout2008} and citeauthor \citeauthor{Bringhurst1993, Eijkhout2008}.
+%doc% \item citetitle \citetitle{Eijkhout2008} and citetitle \citetitle{Bringhurst1993, Eijkhout2008}.
+%doc% \item citeyear \citeyear{Eijkhout2008} and citeyear \citeyear{Bringhurst1993, Eijkhout2008}.
+%doc% \item textcite \textcite{Eijkhout2008} and textcite \textcite{Bringhurst1993, Eijkhout2008}.
+%doc% \item smartcite \smartcite{Eijkhout2008} and smartcite \smartcite{Bringhurst1993, Eijkhout2008}.
+%doc% \item footcite \footcite{Eijkhout2008} and footcite \footcite{Bringhurst1993, Eijkhout2008}.
+%doc% \item footcite with page \footcite[p.42]{Eijkhout2008} and footcite with page \footcite[compare][p.\,42]{Eijkhout2008}.
+%doc% \item fullcite \fullcite{Eijkhout2008} and fullcite \fullcite{Bringhurst1993, Eijkhout2008}.
+%doc% \end{itemize}
+%doc%
+%doc% Please note that the citation style as well as the bibliography style
+%doc% can be changed very easily. Refer to the settings in
+%doc% \texttt{main.tex} as well as the very good documentation of \texttt{biblatex}.
+%doc%
+
+%doc% \subsubsection{Using this template with \myacro{APA} style}
+%doc%
+%doc% First, you have to have the \myacro{APA} biblatex style
+%doc% installed. Modern \LaTeX{} distributions do come with
+%doc% \texttt{biblatex} and \myacro{APA} style. If so, you will find the
+%doc% files \texttt{biblatex-apa.pdf} (style documentation) and
+%doc% \texttt{biblatex-apa-test.pdf} (file with citation examples) on your
+%doc% hard disk.
+%doc%
+%doc% \begin{enumerate}
+%doc% \item Change the style according to \verb#\newcommand{\mybiblatexstyle}{apa}#
+%doc% \item Add \verb#\DeclareLanguageMapping{american}{american-apa}# or \\
+%doc% \verb#\DeclareLanguageMapping{german}{german-apa}# to your
+%doc% preamble\footnote{You might want to use section \enquote{MISC
+%doc% self-defined commands and settings} for this.}
+%doc% \end{enumerate}
+%doc%
+%doc% These steps change the biblatex style to \myacro{APA} style
+
+%doc%
+%doc% \subsubsection{Using this template with \textsc{Bib}\TeX{}}
+%doc%
+%doc% If you do not want to use \texttt{Biber} and \texttt{biblatex}, you
+%doc% have to change several things:
+%doc% \begin{itemize}
+%doc% \item in \verb#preamble/preamble.tex#
+%doc% \begin{itemize}
+%doc% \item remove the usepackage command of \texttt{biblatex}
+%doc% \item remove the \verb#\addbibresource{...}# command
+%doc% \end{itemize}
+%doc% \item in \verb#main.tex#
+%doc% \begin{itemize}
+%doc% \item replace \verb=\printbibliography= with the usual
+%doc% \verb=\bibliographystyle{yourstyle}= and \verb=\bibliography{yourbibfile}=
+%doc% \end{itemize}
+%doc% \item if you are using \myacro{GNU} \texttt{make}: modify \verb=Makefile=
+%doc% \begin{itemize}
+%doc% \item replace \verb#BIBTEX_CMD = biber# with \verb#BIBTEX_CMD = bibtex#
+%doc% \end{itemize}
+%doc% \item Use the reference file \texttt{references-bibtex.bib}
+%doc% instead of \texttt{references-biblatex.bib}
+%doc% \end{itemize}
+%doc%
+%doc%
+\usepackage[backend=biber, %% using "biber" to compile references (instead of "biblatex")
+style=\mybiblatexstyle, %% see biblatex documentation
+%style=alphabetic, %% see biblatex documentation
+dashed=\mybiblatexdashed, %% do *not* replace recurring reference authors with a dash
+backref=\mybiblatexbackref, %% create backlings from references to citations
+natbib=true, %% offering natbib-compatible commands
+hyperref=true, %% using hyperref-package references
+]{biblatex} %% remove, if using BibTeX instead of biblatex
+
+\addbibresource{\mybiblatexfile} %% remove, if using BibTeX instead of biblatex
+
+
+
+%doc%
+%doc% \subsection{Miscellaneous packages} \label{subsec:miscpackages}
+%doc%
+%doc% There are several packages included by default. You might want to activate or
+%doc% deactivate them according to your requirements:
+%doc%
+%doc% \begin{enumerate}
+
+%doc% \item[\texttt{\href{http://ctan.org/pkg/ifthen}{%%
+%doc% ifthen%%
+%doc% }}]
+%doc% For using if/then/else statements for example in macros
+\usepackage{ifthen}
+
+%doc% \item[\texttt{\href{http://www.ctan.org/pkg/graphicx}{%%
+%doc% graphicx%%
+%doc% }}]
+%doc% The widely used package to use graphical images within a \LaTeX{} document.
+\ifthenelse{\boolean{\mydraft}}{ %% the \mydraft switches between
+ %% showing rectangles instead of graphics
+ \usepackage[pdftex,draft]{graphicx}
+}
+{
+ \usepackage[pdftex]{graphicx}
+}
+
+%doc% \item[\texttt{\href{https://secure.wikimedia.org/wikibooks/en/wiki/LaTeX/Formatting\#Other\_symbols}{%%
+%doc% pifont%%
+%doc% }}]
+%doc% For additional special characters available by \verb#\ding{}#
+\usepackage{pifont}
+
+%% pre-define ifthen-boolean variables:
+\newboolean{myaddcolophon}
+\newboolean{myaddlistoftodos}
+\newboolean{english_affidavit}
+
+
+%doc% \item[\texttt{\href{http://www.ctan.org/tex-archive/fonts/eurosym}{%%
+%doc% eurosym%%
+%doc% }}]
+%doc% Using the character for Euro with \verb#\officialeuro{}#
+%\usepackage{eurosym}
+
+%doc% \item[\texttt{\href{http://www.ctan.org/tex-archive/help/Catalogue/entries/xspace.html}{%%
+%doc% xspace%%
+%doc% }}]
+%doc% This package is required for intelligent spacing after commands
+\usepackage{xspace}
+
+%doc% \item[\texttt{\href{https://secure.wikimedia.org/wikibooks/en/wiki/LaTeX/Colors}{%%
+%doc% xcolor%%
+%doc% }}]
+%doc% This package defines basic colors. If you want to get rid of colored links and headings
+%doc% please change corresponding value in \texttt{main.tex} to \{0,0,0\}.
+\usepackage[usenames,dvipsnames]{xcolor}
+\definecolor{DispositionColor}{RGB}{\mydispositioncolor} %% used for links and so forth in screen-version
+
+%doc% \item[\texttt{\href{http://www.ctan.org/pkg/ulem}{%%
+%doc% ulem%%
+%doc% }}]
+%doc% This package offers strikethrough command \verb+\sout{foobar}+.
+\usepackage[normalem]{ulem}
+
+%doc% \item[\texttt{\href{http://www.ctan.org/pkg/framed}{%%
+%doc% framed%%
+%doc% }}]
+%doc% Create framed, shaded, or differently highlighted regions that can
+%doc% break across pages. The environments defined are
+%doc% \begin{itemize}
+%doc% \item framed: ordinary frame box (\verb+\fbox+) with edge at margin
+%doc% \item shaded: shaded background (\verb+\colorbox+) bleeding into margin
+%doc% \item snugshade: similar
+%doc% \item leftbar: thick vertical line in left margin
+%doc% \end{itemize}
+\usepackage{framed}
+
+%doc% \item[\texttt{\href{http://www.ctan.org/pkg/eso-pic}{%%
+%doc% eso-pic%%
+%doc% }}]
+%doc% For example on title pages you might want to have a logo on the upper right corner of
+%doc% the first page (only). The package \texttt{eso-pic} is able to place things on absolute
+%doc% and relative positions on the whole page.
+\usepackage{eso-pic}
+
+%doc% \item[\texttt{\href{http://ctan.org/pkg/enumitem}{%%
+%doc% enumitem%%
+%doc% }}]
+%doc% This package replaces the built-in definitions for enumerate, itemize and description.
+%doc% With \texttt{enumitem} the user has more control over the layout of those environments.
+\usepackage{enumitem}
+
+%doc% \item[\texttt{\href{http://www.ctan.org/tex-archive/macros/latex/contrib/todonotes/}{%%
+%doc% todonotes%%
+%doc% }}]
+%doc% This packages is \emph{very} handy to add notes\footnote{\texttt{todonotes} replaced
+%doc% the \texttt{fixxme}-command which previously was defined in the
+%doc% \texttt{preamble\_mycommands.tex} file.}. Using for example \verb#\todo{check}#
+%doc% results in something like this \todo{check} in the document. Do read the
+%doc% great package documentation for usage of other very helpful commands such as
+%doc% \verb#\missingfigure{}# and \verb#\listoftodos#. The latter one creates an index of all
+%doc% open todos which is very useful for getting an overview of open issues.
+%doc% The package \texttt{todonotes} require the packages \texttt{ifthen}, \texttt{xkeyval}, \texttt{xcolor},
+%doc% \texttt{tikz}, \texttt{calc}, and \texttt{graphicx}. Activate
+%doc% and configure \verb#\listoftodos# in \texttt{main.tex}.
+%\usepackage{todonotes}
+\usepackage[\mytodonotesoptions]{todonotes} %% option "disable" removes all todonotes output from resulting document
+
+%disabled% \item[\texttt{\href{http://www.ctan.org/tex-archive/macros/latex/contrib/blindtext}{%%
+%disabled% blindtext%%
+%disabled% }}]
+%disabled% This package is used to generate blind text for demonstration purposes.
+%disabled% %% This is undocumented due to problems using american english; author informed
+%disabled% \usepackage{blindtext} %% provides commands for blind text:
+%disabled% %% \blindtext creates some text,
+%disabled% %% \Blindtext creates more text.
+%disabled% %% \blinddocument creates a small document with sections, lists...
+%disabled% %% \Blinddocument creates a large document with sections, lists...
+%% 2012-03-10: vk: author published a corrected version which is able to handle "american english" as well. Did not have time to check new package version for this template here.
+
+%doc% \item[\texttt{\href{http://ctan.org/tex-archive/macros/latex/contrib/units}{%%
+%doc% units%%
+%doc% }}]
+%doc% For setting correctly typesetted units and nice fractions with \verb+\unit[42]{m}+ and \verb+\unitfrac[100]{km}{h}+.
+\usepackage{units}
+
+
+%doc% \end{enumerate}
+
+
+
+
+%%%% End
+%%% Local Variables:
+%%% TeX-master: "../main"
+%%% mode: latex
+%%% mode: auto-fill
+%%% mode: flyspell
+%%% eval: (ispell-change-dictionary "en_US")
+%%% End:
+%% vim:foldmethod=expr
+%% vim:fde=getline(v\:lnum)=~'^%%%%'?0\:getline(v\:lnum)=~'^%doc.*\ .\\%(sub\\)\\?section{.\\+'?'>1'\:'1':
diff --git a/work_report/template/title_Diplomarbeit_KF_Uni_Graz.tex b/work_report/template/title_Diplomarbeit_KF_Uni_Graz.tex
new file mode 100644
index 0000000..9d811d6
--- /dev/null
+++ b/work_report/template/title_Diplomarbeit_KF_Uni_Graz.tex
@@ -0,0 +1,70 @@
+%%%% Time-stamp: <2013-02-02 21:30:07 vk>
+%% ========================================================================
+%%%% Disclaimer
+%% ========================================================================
+%%
+%% created by
+%%
+%% Karl Voit
+%%
+
+
+\thispagestyle{empty} %% no page header or footer
+\large %% basic font size of the titlepage
+
+\begin{center}
+{\LARGE\bfseries\myworktitle}
+
+\vfill
+
+zur Erlangung des akademischen Grades eines\\[5mm]
+{\LARGE\mygrade}\\[5mm]
+der Studienrichtung \mystudy\\
+an der \myuniversity
+
+\vfill
+
+über das Thema\\[10mm]
+
+{\LARGE\bfseries\mytitle}
+
+\vfill
+
+eingereicht am\\
+\myinstitute
+
+Begutachter: \mysupervisor
+
+von\\[5mm]
+{\Large\bfseries\myauthor}\\[5mm]
+\myhomestreet\\
+\myhomepostalnumber~\myhometown
+
+\vfill
+
+\mysubmissiontown, \mysubmissionmonth~\mysubmissionyear
+
+\end{center}
+\normalsize %% new page, reset font size
+
+\newpage
+
+%% if myaddcolophon is set to "true", colophon is added:
+\ifthenelse{\boolean{myaddcolophon}}{
+ \newpage
+ \thispagestyle{empty} %% no page header or footer
+
+ ~
+ \vfill
+ \mycolophon
+}{}
+\newpage
+
+%% end of title page
+%%% Local Variables:
+%%% mode: latex
+%%% mode: auto-fill
+%%% mode: flyspell
+%%% eval: (ispell-change-dictionary "de_AT")
+%%% TeX-master: "../main"
+%%% End:
diff --git a/work_report/template/title_Thesis_TU_Graz.tex b/work_report/template/title_Thesis_TU_Graz.tex
new file mode 100644
index 0000000..6be3b06
--- /dev/null
+++ b/work_report/template/title_Thesis_TU_Graz.tex
@@ -0,0 +1,99 @@
+%%%% Time-stamp: <2017-02-05 16:21:48 vk>
+%% ========================================================================
+%%%% Disclaimer
+%% ========================================================================
+%%
+%% created by
+%%
+%% Stefan Kroboth and Karl Voit
+%%
+%% this title page fulfills the requirements of the corporate design
+%% of Graz University of Technology (correct placement of logo)
+
+\begin{titlepage}
+
+{\sffamily
+
+\begin{center}
+
+\includegraphics[width=30mm]{figures/TU_Graz_Logo}
+
+\vfill\vfill\vfill
+\vfill\vfill\vfill
+
+\myauthorwithexistingtitles
+
+\vfill\vfill\vfill
+
+{\LARGE\bfseries\mytitle}
+
+
+\vfill\vfill\vfill
+\vfill\vfill\vfill
+
+
+{\bfseries\large\myworktitle}
+
+to achieve the university degree of
+
+\mygrade
+
+\mydegreeprogramme
+
+
+\vfill\vfill\vfill
+
+
+submitted to
+
+\vfill
+
+{\bfseries\large\myuniversity}
+
+
+\vfill\vfill\vfill
+
+
+Supervisor
+
+\mysupervisor
+%usually not mentioned on titlepage:% Evaluator: \myevaluator
+
+\vfill
+
+\myinstitute\\
+Head: \myinstitutehead\\
+
+\vfill
+
+%% OPTIONAL: second supervisor/name of the faculty, etc.
+
+
+\vfill\vfill\vfill
+
+
+\mysubmissiontown, \mysubmissionmonth~\mysubmissionyear
+
+\end{center}
+}%% end sffamily
+\end{titlepage}
+
+%% if myaddcolophon is set to "true", colophon is added:
+\ifthenelse{\boolean{myaddcolophon}}{
+ \newpage
+ \thispagestyle{empty} %% no page header or footer
+
+ ~
+ \vfill
+ \mycolophon
+}{}
+\newpage
+
+%% end of title page
+%%% Local Variables:
+%%% mode: latex
+%%% mode: auto-fill
+%%% mode: flyspell
+%%% eval: (ispell-change-dictionary "en_US")
+%%% TeX-master: "../main"
+%%% End:
diff --git a/work_report/template/title_Thesis_TU_Graz_-_kazemakase.tex b/work_report/template/title_Thesis_TU_Graz_-_kazemakase.tex
new file mode 100644
index 0000000..2433d89
--- /dev/null
+++ b/work_report/template/title_Thesis_TU_Graz_-_kazemakase.tex
@@ -0,0 +1,95 @@
+%%%% Time-stamp: <2015-04-05 11:32:08 vk>
+%% ========================================================================
+%%%% Disclaimer
+%% ========================================================================
+%%
+%% created by
+%%
+%% Stefan Kroboth and Karl Voit
+%%
+%% this title page fulfills the requirements of the corporate design
+%% of Graz University of Technology (correct placement of logo)
+
+\begin{titlepage}
+
+%\large %% basic font size of the titlepage
+
+%% placing the TU Graz logo exactly as Corporate Design demands:
+%% 40mm of Logo (here: 2mm margin in picture!)
+%% 8mm from top and from right
+%% Source: http://portal.tugraz.at/portal/page/portal/TU_Graz/Services/BDR/Oeffentlichkeitsarbeit/CD/Logo%20Anwendungsrichtlinien
+\AddToShipoutPicture*{%
+ \AtPageUpperLeft{%
+ \hspace{\paperwidth}%
+ \raisebox{-19mm}{%\baselineskip}{%
+ \makebox[-4mm][r]{\includegraphics[width=42mm]{figures/TU_Graz_Logo}}
+}}}%
+
+\begin{center}
+~
+\vfill\vfill\vfill
+
+\sffamily
+
+\myauthor
+
+\vfill
+
+{\LARGE\bfseries\mytitle}
+
+{\large\bfseries\mysubtitle}
+
+\vfill\vfill\vfill\vfill
+
+{\normalsize\bfseries\myworktitle}\\
+\vfill
+zur Erlangung des akademischen Grades\\
+{\mygrade}\\
+\vfill
+eingereicht an der\\
+{\normalsize\bfseries\myuniversity}
+
+\vfill\vfill\vfill
+\vfill\vfill\vfill
+
+Betreuer\\
+\mysupervisor\\
+\vfill
+Mitbetreuer\\
+\mycosupervisor\\
+%usually not mentioned on titlepage:% Evaluator: \myevaluator
+\vfill
+\vfill
+\myinstitute\\
+%Head: \myinstitutehead\\
+
+\vfill
+
+\myfaculty
+
+\vfill\vfill\vfill
+
+{\scriptsize\mysubmissiontown, \mysubmissionmonth~\mysubmissionyear}
+
+\end{center}
+\end{titlepage}
+
+%% if myaddcolophon is set to "true", colophon is added:
+\ifthenelse{\boolean{myaddcolophon}}{
+ \newpage
+ \thispagestyle{empty} %% no page header or footer
+
+ ~
+ \vfill
+ \mycolophon
+}{}
+\newpage
+
+%% end of title page
+%%% Local Variables:
+%%% mode: latex
+%%% mode: auto-fill
+%%% mode: flyspell
+%%% eval: (ispell-change-dictionary "en_US")
+%%% TeX-master: "../main"
+%%% End:
diff --git a/work_report/template/title_VWA.tex b/work_report/template/title_VWA.tex
new file mode 100644
index 0000000..8e4ca52
--- /dev/null
+++ b/work_report/template/title_VWA.tex
@@ -0,0 +1,62 @@
+%%%% Time-stamp: <2013-02-25 16:05:46 vk>
+%% ========================================================================
+%%%% Titelseite für eine Vorwissenschaftliche Arbeit
+%% ========================================================================
+%%
+%% created by
+%%
+%% Karl Voit
+%%
+
+
+\thispagestyle{empty} %% no page header or footer
+\large %% basic font size of the titlepage
+
+\begin{center}
+
+{\LARGE\bfseries\mytitle}
+
+\vfill
+
+Vorwissenschaftliche Arbeit verfasst von\\[5mm]
+{\Large\bfseries\myauthor}\\[5mm]
+Klasse \mystudy\\[50mm]
+
+\vfill
+
+\includegraphics[width=3cm]{figures/institution}\\[5mm]
+
+Betreuer: \mysupervisor
+
+\vfill
+
+\myinstitute\\
+\myhomestreet\\
+\myhomepostalnumber~\myhometown
+
+\vfill
+
+\mysubmissiontown, \mysubmissionmonth~\mysubmissionyear
+\end{center}
+\normalsize %% new page, reset font size
+\newpage
+
+%% if myaddcolophon is set to "true", colophon is added:
+\ifthenelse{\boolean{myaddcolophon}}{
+ \newpage
+ \thispagestyle{empty} %% no page header or footer
+
+ ~
+ \vfill
+ \mycolophon
+}{}
+\newpage
+
+%% end of title page
+%%% Local Variables:
+%%% mode: latex
+%%% mode: auto-fill
+%%% mode: flyspell
+%%% eval: (ispell-change-dictionary "de_AT")
+%%% TeX-master: "../main"
+%%% End:
diff --git a/work_report/template/title_plain_maketitle.tex b/work_report/template/title_plain_maketitle.tex
new file mode 100644
index 0000000..108a7d7
--- /dev/null
+++ b/work_report/template/title_plain_maketitle.tex
@@ -0,0 +1,47 @@
+%%%% Time-stamp: <2013-02-25 10:52:27 vk>
+%% ========================================================================
+%%%% Disclaimer
+%% ========================================================================
+%%
+%% created by
+%%
+%% Karl Voit
+%%
+%% using grml GNU/Linux, vim & LaTeX 2e
+
+%% this is a very simple title page using LaTeX maketitle
+
+%% if myaddcolophon is set to "true", colophon is added:
+\ifthenelse{\boolean{myaddcolophon}}{
+ \lowertitleback{
+ \mycolophon
+ }%% end lowertitleback
+}{}
+
+\title{%%
+~\hfill\includegraphics[width=3cm]{figures/institution}\\[5mm] %% a logo at the upper right corner
+\mytitle}
+
+\subtitle{\mysubject}
+
+\author{\myauthor
+ \thanks{\href{http://LaTeX.TUGraz.at}{http://LaTeX.TUGraz.at}}\\
+ \date{\today}
+}
+
+\maketitle
+
+
+%\thispagestyle{empty} %% no page number, header or footer
+
+
+
+%% vim:foldmethod=expr
+%% vim:fde=getline(v\:lnum)=~'^%%%%\ .\\+'?'>1'\:'='
+%%% Local Variables:
+%%% mode: latex
+%%% mode: auto-fill
+%%% mode: flyspell
+%%% eval: (ispell-change-dictionary "en_US")
+%%% TeX-master: "../main"
+%%% End:
diff --git a/work_report/template/todos.org b/work_report/template/todos.org
new file mode 100644
index 0000000..134fd0a
--- /dev/null
+++ b/work_report/template/todos.org
@@ -0,0 +1,255 @@
+## Time-stamp: <2013-02-25 11:04:54 vk>
+## This file is best viewed with GNU Emacs Org-mode: http://orgmode.org/
+#+TODO: TODO(t) NEXT(n) WISH(w) | DONE(d) CANCELED(c)
+#+TAGS: KarlVoit(k)
+
+
+* NEXT pointers to [[http://en.wikibooks.org/wiki/LaTeX/Packages#Packages_list][other packages]] (not included in this template):
+:PROPERTIES:
+:CREATED: [2011-12-10 Sat 21:31]
+:END:
+- listings
+- sidewaystable
+- paralist (compact version of itemize and enumerate)
+- ...
+
+* NEXT index (makeindex)
+:PROPERTIES:
+:CREATED: [2011-12-10 Sat 21:30]
+:END:
+
+* NEXT acronyms
+:PROPERTIES:
+:CREATED: <2010-12-22 Fri 15:49>
+:END:
+
+* WISH try [[http://www.komascript.de/titlepage]] for title pages
+:PROPERTIES:
+:CREATED: [2011-12-11 Sun 12:49]
+:END:
+
+* WISH how to switch to scrreprt or scrartcle
+:PROPERTIES:
+:CREATED: [2011-12-10 Sat 21:31]
+:END:
+
+* WISH pointers to other LaTeX templates
+:PROPERTIES:
+:CREATED: [2011-12-10 Sat 21:31]
+:END:
+
+* WISH Look at template of matthiaspospiech and adopt things
+:PROPERTIES:
+:CREATED: <2010-12-26 Fri 15:51>
+:END:
+
+/home/vk/src/diss_da_template/matthiaspospiech.de/LaTeX-Vorlage3/preambel
+
+* WISH look at creation of own sty-file
+:PROPERTIES:
+:CREATED: <2010-12-22 Fri 15:50>
+:END:
+* WISH translate German comments
+:PROPERTIES:
+:CREATED: <2010-12-22 Fri 15:50>
+:END:
+* DONE define prerequisites
+CLOSED: [2013-02-25 Mon 11:04]
+:PROPERTIES:
+:CREATED: <2011-07-26 Tue 18:03>
+:END:
+
+- user knowledge
+- software dependencies
+ - for compiling PDF
+ - pdflatex
+ - biber
+ - biblatex
+ - for using make to compile
+ - GNU make
+ - for generating template documentation
+ - GNU make
+ - sed
+ - grep
+ - LaTeX packages
+ - necessary
+ - optional
+
+* DONE how to switch language
+CLOSED: [2013-02-25 Mon 11:04]
+:PROPERTIES:
+:CREATED: [2011-12-10 Sat 21:31]
+:END:
+
+* DONE document example usage with MikTex 2.8 and TeXworks :KarlVoit:
+CLOSED: [2013-02-02 Sat 22:28]
+:PROPERTIES:
+:CREATED: [2012-03-06 Tue 17:52]
+:END:
+
+- see id:2012-02-25latex
+- see id:2013-02-02TeXworksbiber
+
+* DONE document how to move to one sided document :KarlVoit:
+CLOSED: [2013-02-02 Sat 22:00]
+:PROPERTIES:
+:CREATED: [2012-03-06 Tue 17:53]
+:END:
+
+* DONE document how to generate a draft document version
+CLOSED: [2013-02-02 Sat 22:00]
+:PROPERTIES:
+:CREATED: [2012-03-06 Tue 17:53]
+:END:
+
+* DONE move some settings from template/* to main.tex as newcommand-definitions :KarlVoit:
+CLOSED: [2013-02-02 Sat 22:00]
+:PROPERTIES:
+:CREATED: [2013-02-02 Sat 18:37]
+:END:
+
+- like http://ufo.tugraz.at/assets/Downloads/UFO-Vorlage.zip
+
+* DONE replace \fixxme{} with package «todonotes»
+CLOSED: [2012-03-25 Sun 17:08]
+:PROPERTIES:
+:CREATED: [2012-03-14 Wed 09:51]
+:END:
+
+- add dependencies to the documentation
+ - ifthen
+ - xkeyval
+ - xcolor
+ - tikz
+ - calc
+ - graphicx
+- in combination with [[http://orgmode.org][Org-mode]]: http://lists.gnu.org/archive/html/emacs-orgmode/2011-09/msg00157.html
+
+* DONE Template documentation should be static [3/3]
+DEADLINE: <2011-07-23 Sat>
+:PROPERTIES:
+:CREATED: <2011-07-23 Sat 12:44>
+:END:
+** DONE Makefile: documentation should end up in same PDF filename
+CLOSED: [2011-07-24 Sun 14:04]
+:PROPERTIES:
+:CREATED: <2011-07-24 Sun 14:04>
+:END:
+
+** DONE adopt comments/documentation to this change
+CLOSED: [2011-07-24 Sun 14:04]
+:PROPERTIES:
+:CREATED: <2011-07-23 Sat 12:45>
+:END:
+
+** DONE separate main.tex from Template-Documentation.tex
+CLOSED: [2011-07-24 Sun 16:27]
+:PROPERTIES:
+:CREATED: <2011-07-24 Sun 16:26>
+:END:
+
+- no need to comment out/in include command of template definition
+- duplicate most important things from:
+ - preamble.tex
+ - userdata.tex
+- include rest of the tex-files and misc things from main.tex
+
+* DONE Title page KF Uni Graz
+CLOSED: [2011-07-22 Fri 12:46]
+:PROPERTIES:
+:CREATED: <2011-07-22 Fri 12:46>
+:END:
+
+for Petra
+
+* DONE move almost *all* user-specific data into separate file
+CLOSED: [2011-07-24 Sun 16:26]
+:PROPERTIES:
+:CREATED: <2011-07-23 Sat 12:46>
+:END:
+
+- in order to differ between template and content
+
+userdata.tex
+* DONE title page(s)
+CLOSED: [2011-07-24 Sun 16:45]
+:PROPERTIES:
+:CREATED: <2010-12-22 Wed 15:48>
+:END:
+
+- probably own folder called "titlepages" where all possible
+ titlepages are located:
+ - TU Graz
+ - KF
+- simple title page using maketitle
+
+* DONE maketitle example
+CLOSED: [2011-07-24 Sun 16:45]
+:PROPERTIES:
+:CREATED: <2011-07-22 Fri 17:08>
+:END:
+
+* DONE adopt biblatex
+CLOSED: [2011-12-10 Sat 21:29]
+:PROPERTIES:
+:CREATED: <2011-07-26 Tue 18:03>
+:END:
+
+http://ftp.univie.ac.at/packages/tex/help/Catalogue/entries/biblatex.html
+
+* DONE adopt biber
+CLOSED: [2011-12-10 Sat 21:29]
+:PROPERTIES:
+:CREATED: <2011-07-26 Tue 18:03>
+:END:
+
+http://biblatex-biber.sourceforge.net/
+
+* DONE add biblatex example
+CLOSED: [2011-12-10 Sat 21:29]
+:PROPERTIES:
+:CREATED: <2011-07-26 Tue 18:04>
+:END:
+
+* DONE HowTo change titlepage
+CLOSED: [2011-12-11 Sun 14:07]
+:PROPERTIES:
+:CREATED: [2011-12-11 Sun 12:16]
+:END:
+* DONE list of figures
+CLOSED: [2011-12-11 Sun 14:07]
+:PROPERTIES:
+:CREATED: [2011-12-10 Sat 21:30]
+:END:
+* DONE example content from the template of [[http://ftp.iicm.tugraz.at/pub/keith/thesis/thesis.zip][Keith Andrews]]
+CLOSED: [2011-12-12 Mon 00:15]
+:PROPERTIES:
+:CREATED: [2011-12-10 Sat 21:30]
+:END:
+
+see reference {KeithThesis}
+
+* DONE merge myquote & csquotes
+CLOSED: [2011-12-12 Mon 18:42]
+:PROPERTIES:
+:CREATED: [2011-12-12 Mon 15:01]
+:END:
+* DONE more titlepage templates
+CLOSED: [2012-03-06 Tue 17:50]
+:PROPERTIES:
+:CREATED: [2011-12-10 Sat 21:30]
+:END:
+
+* DONE add FIXXME-marker with [[http://www.komascript.de/marginnote]]
+CLOSED: [2012-03-06 Tue 17:54]
+:PROPERTIES:
+:CREATED: [2011-12-11 Sun 13:11]
+:END:
+
+see \fixxme{}
+
+* CANCELED add BibTeX to the template
+CLOSED: [2011-12-10 Sat 21:31]
+:PROPERTIES:
+:CREATED: <2011-07-22 Fri 15:53>
+:END:
diff --git a/work_report/template/typographic_settings.tex b/work_report/template/typographic_settings.tex
new file mode 100644
index 0000000..be79f35
--- /dev/null
+++ b/work_report/template/typographic_settings.tex
@@ -0,0 +1,322 @@
+%%%% Time-stamp: <2015-08-22 17:20:32 vk>
+%%%% === Disclaimer: =======================================================
+%% created by
+%%
+%% Karl Voit
+%%
+%% using GNU/Linux, GNU Emacs & LaTeX 2e
+%%
+%doc%
+%doc% \section{\texttt{typographic\_settings.tex} --- Typographic finetuning}
+%doc%
+%doc% The settings of file \verb#template/typographic_settings.tex# contain
+%doc% typographic finetuning related to things mentioned in literature. The
+%doc% settings in this file relates to personal taste and most of all:
+%doc% \emph{typographic experience}.
+%doc%
+%doc% \paragraph{What should I do with this file?} You might as well skip the whole
+%doc% file by excluding the \verb#\input{template/typographic_settings.tex}# command
+%doc% in \texttt{main.tex}. For standard usage it is recommended to stay with the
+%doc% default settings.
+%doc%
+%doc%
+%% ========================================================================
+
+%doc%
+%doc% Some basic microtypographic settings are provided by the
+%doc% \texttt{microtype}
+%doc% package\footnote{\url{http://ctan.org/pkg/microtype}}. This template
+%doc% uses the rather conservative package parameters: \texttt{protrusion=true,factor=900}.
+\usepackage[protrusion=true,factor=900]{microtype}
+
+%doc%
+%doc% \subsection{French spacing}
+%doc%
+%doc% \paragraph{Why?} see~\textcite[p.\,28, p.\,30]{Bringhurst1993}: `2.1.4 Use a single word space between sentences.'
+%doc%
+%doc% \paragraph{How?} see~\textcite[p.\,185]{Eijkhout2008}:\\
+%doc% \verb#\frenchspacing %% Macro to switch off extra space after punctuation.# \\
+\frenchspacing %% Macro to switch off extra space after punctuation.
+%doc%
+%doc% Note: This setting might be default for \myacro{KOMA} script.
+%doc%
+
+
+%doc%
+%doc% \subsection{Font}
+%doc%
+%doc% This template is using the Palatino font (package \texttt{mathpazo}) which results
+%doc% in a legible document and matching mathematical fonts for printout.
+%doc%
+%doc% It is highly recommended that you either stick to the Palatino font or use the
+%doc% \LaTeX{} default fonts (by removing the package \texttt{mathpazo}).
+%doc%
+%doc% Chosing different fonts is not
+%doc% an easy task. Please leave this to people with good knowledge on this subject.
+%doc%
+%doc% One valid reason to change the default fonts is when your document is mainly
+%doc% read on a computer screen. In this case it is recommended to switch to a font
+%doc% \textsf{which is sans-serif like this}. This template contains several alternative
+%doc% font packages which can be activated in this file.
+%doc%
+
+% for changing the default font, please go to the next subsection!
+
+%doc%
+%doc% \subsection{Text figures}
+%doc%
+%doc% \ldots also called old style numbers such as 0123456789.
+%doc% (German: \enquote{Mediäval\-ziffern\footnote{\url{https://secure.wikimedia.org/wikibooks/de/wiki/LaTeX-W\%C3\%B6rterbuch:\_Medi\%C3\%A4valziffern}}})
+%doc% \paragraph{Why?} see~\textcite[p.\,44f]{Bringhurst1993}:
+%doc% \begin{quote}
+%doc% `3.2.1 If the font includes both text figures and titling figures, use
+%doc% titling figures only with full caps, and text figures in all other
+%doc% circumstances.'
+%doc% \end{quote}
+%doc%
+%doc% \paragraph{How?}
+%doc% Quoted from Wikibooks\footnote{\url{https://secure.wikimedia.org/wikibooks/en/wiki/LaTeX/Formatting\#Text\_figures\_.28.22old\_style.22\_numerals.29}}:
+%doc% \begin{quote}
+%doc% Some fonts do not have text figures built in; the textcomp package attempts to
+%doc% remedy this by effectively generating text figures from the currently-selected
+%doc% font. Put \verb#\usepackage{textcomp}# in your preamble. textcomp also allows you to
+%doc% use decimal points, properly formatted dollar signs, etc. within
+%doc% \verb#\oldstylenums{}#.
+%doc% \end{quote}
+%doc% \ldots but proposed \LaTeX{} method does not work out well. Instead use:\\
+%doc% \verb#\usepackage{hfoldsty}# (enables text figures using additional font) or \\
+%doc% \verb#\usepackage[sc,osf]{mathpazo}# (switches to Palatino font with small caps and old style figures enabled).
+%doc%
+%\usepackage{hfoldsty} %% enables text figures using additional font
+%% ... OR use ...
+\usepackage[sc,osf]{mathpazo} %% switches to Palatino with small caps and old style figures
+
+%% Font selection from:
+%% http://www.matthiaspospiech.de/latex/vorlagen/allgemein/preambel/fonts/
+%% use following lines *instead* of the mathpazo package above:
+%% ===== Serif =========================================================
+%% for Computer Modern (LaTeX default font), simply remove the mathpazo above
+%\usepackage{charter}\linespread{1.05} %% Charter
+%\usepackage{bookman} %% Bookman (laedt Avant Garde !!)
+%\usepackage{newcent} %% New Century Schoolbook (laedt Avant Garde !!)
+%% ===== Sans Serif ====================================================
+%\renewcommand{\familydefault}{\sfdefault} %% this one in *combination* with the default mathpazo package
+%\usepackage{cmbright} %% CM-Bright (eigntlich eine Familie)
+%\usepackage{tpslifonts} %% tpslifonts % Font for Slides
+
+
+%doc%
+%doc% \subsection{\texttt{myacro} --- Abbrevations using \textsc{small caps}}\myinteresting
+%doc% \label{sec:myacro}
+%doc%
+%doc% \paragraph{Why?} see~\textcite[p.\,45f]{Bringhurst1993}: `3.2.2 For abbrevations and
+%doc% acronyms in the midst of normal text, use spaced small caps.'
+%doc%
+%doc% \paragraph{How?} Using the predefined macro \verb#\myacro{}# for things like
+%doc% \myacro{UNO} or \myacro{UNESCO} using \verb#\myacro{UNO}# or \verb#\myacro{UNESCO}#.
+%doc%
+\DeclareRobustCommand{\myacro}[1]{\textsc{\lowercase{#1}}} %% abbrevations using small caps
+
+
+%doc%
+%doc% \subsection{Colorized headings and links}
+%doc%
+%doc% This document template is able to generate an output that uses colorized
+%doc% headings, captions, page numbers, and links. The color named `DispositionColor'
+%doc% used in this document is defined near the definition of package \texttt{color}
+%doc% in the preamble (see section~\ref{subsec:miscpackages}). The changes required
+%doc% for headings, page numbers, and captions are defined here.
+%doc%
+%doc% Settings for colored links are handled by the definitions of the
+%doc% \texttt{hyperref} package (see section~\ref{sec:pdf}).
+%doc%
+\KOMAoption{headsepline}{.4pt}{\color{DispositionColor}}
+\renewcommand{\headfont}{\normalfont\sffamily\color{DispositionColor}}
+\renewcommand{\pnumfont}{\normalfont\sffamily\color{DispositionColor}}
+\addtokomafont{disposition}{\color{DispositionColor}}
+\addtokomafont{caption}{\color{DispositionColor}\footnotesize}
+\addtokomafont{captionlabel}{\color{DispositionColor}}
+
+%doc%
+%doc% \subsection{No figures or tables below footnotes}
+%doc%
+%doc% \LaTeX{} places floating environments below footnotes if \texttt{b}
+%doc% (bottom) is used as (default) placement algorithm. This is certainly
+%doc% not appealing for most people and is deactivated in this template by
+%doc% using the package \texttt{footmisc} with its option \texttt{bottom}.
+%doc%
+%% see also: http://www.komascript.de/node/858 (German description)
+\usepackage[bottom]{footmisc}
+
+%doc%
+%doc% \subsection{Spacings of list environments}
+%doc%
+%doc% By default, \LaTeX{} is using vertical spaces between items of enumerate,
+%doc% itemize and description environments. This is fine for multi-line items.
+%doc% Many times, the user does just write single-line items where the larger
+%doc% vertical space is inappropriate. The \href{http://ctan.org/pkg/enumitem}{enumitem}
+%doc% package provides replacements for the pre-defined list environments and
+%doc% offers many options to modify their appearances.
+%doc% This template is using the package option for \texttt{noitemsep} which
+%doc% mimimizes the vertical space between list items.
+%doc%
+\usepackage{enumitem}
+\setlist{noitemsep} %% kills the space between items
+
+%doc%
+%doc% \subsection{\texttt{csquotes} --- Correct quotation marks}\myinteresting
+%doc% \label{sub:csquotes}
+%doc%
+%doc% \emph{Never} use quotation marks found on your keyboard.
+%doc% They end up in strange characters or false looking quotation marks.
+%doc%
+%doc% In \LaTeX{} you are able to use typographically correct quotation marks. The package
+%doc% \href{http://www.ctan.org/pkg/csquotes}{\texttt{csquotes}} offers you with
+%doc% \verb#\enquote{foobar}# a command to get correct quotation marks around \enquote{foobar}.
+%doc% Please do check the package options in order to modify
+%doc% its settings according to the language used\footnote{most of the time in
+%doc% combination with the language set in the options of the \texttt{babel} package}.
+%doc%
+%doc% \href{http://www.ctan.org/pkg/csquotes}{\texttt{csquotes}} is also recommended
+%doc% by \texttt{biblatex} (see Section~\ref{sec:references}).
+\usepackage[babel=true,strict=true,english=american,german=guillemets]{csquotes}
+
+%doc%
+%doc% \subsection{Line spread}
+%doc%
+%doc% If you have to enlarge the distance between two lines of text, you can
+%doc% increase it using the \texttt{\mylinespread} command in \texttt{main.tex}. By default, it is
+%doc% deactivated (set to 100~percent). Modify only with caution since it influences the
+%doc% page layout and could lead to ugly looking documents.
+\linespread{\mylinespread}
+
+%doc%
+%doc% \subsection{Optional: Lines above and below the chapter head}
+%doc%
+%doc% This is not quite something typographic but rather a matter of taste.
+%doc% \myacro{KOMA} Script offers \href{http://www.komascript.de/node/24}{a method to
+%doc% add lines above and below chapter head} which is disabled by
+%doc% default. If you want to enable this feature, remove corresponding
+%doc% comment characters from the settings.
+%doc%
+%% Source: http://www.komascript.de/node/24
+%disabled% %% 1st get a new command
+%disabled% \newcommand*{\ORIGchapterheadstartvskip}{}%
+%disabled% %% 2nd save the original definition to the new command
+%disabled% \let\ORIGchapterheadstartvskip=\chapterheadstartvskip
+%disabled% %% 3rd redefine the command using the saved original command
+%disabled% \renewcommand*{\chapterheadstartvskip}{%
+%disabled% \ORIGchapterheadstartvskip
+%disabled% {%
+%disabled% \setlength{\parskip}{0pt}%
+%disabled% \noindent\color{DispositionColor}\rule[.3\baselineskip]{\linewidth}{1pt}\par
+%disabled% }%
+%disabled% }
+%disabled% %% see above
+%disabled% \newcommand*{\ORIGchapterheadendvskip}{}%
+%disabled% \let\ORIGchapterheadendvskip=\chapterheadendvskip
+%disabled% \renewcommand*{\chapterheadendvskip}{%
+%disabled% {%
+%disabled% \setlength{\parskip}{0pt}%
+%disabled% \noindent\color{DispositionColor}\rule[.3\baselineskip]{\linewidth}{1pt}\par
+%disabled% }%
+%disabled% \ORIGchapterheadendvskip
+%disabled% }
+
+%doc%
+%doc% \subsection{Optional: Chapter thumbs}
+%doc%
+%doc% This is not quite something typographic but rather a matter of taste.
+%doc% \myacro{KOMA} Script offers \href{http://www.komascript.de/chapterthumbs-example}{a method to
+%doc% add chapter thumbs} (in combination with the package \texttt{scrpage2}) which is disabled by
+%doc% default. If you want to enable this feature, remove corresponding
+%doc% comment characters from the settings.
+%doc%
+%disabled% \makeatletter
+%disabled% % Safty first
+%disabled% \@ifundefined{chapter}{\let\chapter\undefined
+%disabled% \chapter must be defined to use chapter thumbs!}{%
+%disabled%
+%disabled% % Two new commands for the width and height of the boxes with the
+%disabled% % chapter number at the thumbs (use of commands instead of lengths
+%disabled% % for sparing registers)
+%disabled% \newcommand*{\chapterthumbwidth}{2em}
+%disabled% \newcommand*{\chapterthumbheight}{1em}
+%disabled%
+%disabled% % Two new commands for the colors of the box background and the
+%disabled% % chapter numbers of the thumbs
+%disabled% \newcommand*{\chapterthumbboxcolor}{black}
+%disabled% \newcommand*{\chapterthumbtextcolor}{white}
+%disabled%
+%disabled% % New command to set a chapter thumb. I'm using a group at this
+%disabled% % command, because I'm changing the temporary dimension \@tempdima
+%disabled% \newcommand*{\putchapterthumb}{%
+%disabled% \begingroup
+%disabled% \Large
+%disabled% % calculate the horizontal possition of the right paper border
+%disabled% % (I ignore \hoffset, because I interprete \hoffset moves the page
+%disabled% % at the paper e.g. if you are using cropmarks)
+%disabled% \setlength{\@tempdima}{\@oddheadshift}% (internal from scrpage2)
+%disabled% \setlength{\@tempdima}{-\@tempdima}%
+%disabled% \addtolength{\@tempdima}{\paperwidth}%
+%disabled% \addtolength{\@tempdima}{-\oddsidemargin}%
+%disabled% \addtolength{\@tempdima}{-1in}%
+%disabled% % putting the thumbs should not change the horizontal
+%disabled% % possition
+%disabled% \rlap{%
+%disabled% % move to the calculated horizontal possition
+%disabled% \hspace*{\@tempdima}%
+%disabled% % putting the thumbs should not change the vertical
+%disabled% % possition
+%disabled% \vbox to 0pt{%
+%disabled% % calculate the vertical possition of the thumbs (I ignore
+%disabled% % \voffset for the same reasons told above)
+%disabled% \setlength{\@tempdima}{\chapterthumbwidth}%
+%disabled% \multiply\@tempdima by\value{chapter}%
+%disabled% \addtolength{\@tempdima}{-\chapterthumbwidth}%
+%disabled% \addtolength{\@tempdima}{-\baselineskip}%
+%disabled% % move to the calculated vertical possition
+%disabled% \vspace*{\@tempdima}%
+%disabled% % put the thumbs left so the current horizontal possition
+%disabled% \llap{%
+%disabled% % and rotate them
+%disabled% \rotatebox{90}{\colorbox{\chapterthumbboxcolor}{%
+%disabled% \parbox[c][\chapterthumbheight][c]{\chapterthumbwidth}{%
+%disabled% \centering
+%disabled% \textcolor{\chapterthumbtextcolor}{%
+%disabled% \strut\thechapter}\\
+%disabled% }%
+%disabled% }%
+%disabled% }%
+%disabled% }%
+%disabled% % avoid overfull \vbox messages
+%disabled% \vss
+%disabled% }%
+%disabled% }%
+%disabled% \endgroup
+%disabled% }
+%disabled%
+%disabled% % New command, which works like \lohead but also puts the thumbs (you
+%disabled% % cannot use \ihead with this definition but you may change this, if
+%disabled% % you use more internal scrpage2 commands)
+%disabled% \newcommand*{\loheadwithchapterthumbs}[2][]{%
+%disabled% \lohead[\putchapterthumb#1]{\putchapterthumb#2}%
+%disabled% }
+%disabled%
+%disabled% % initial use
+%disabled% \loheadwithchapterthumbs{}
+%disabled% \pagestyle{scrheadings}
+%disabled%
+%disabled% }
+%disabled% \makeatother
+
+%%%% END
+%%% Local Variables:
+%%% mode: latex
+%%% mode: auto-fill
+%%% mode: flyspell
+%%% eval: (ispell-change-dictionary "en_US")
+%%% TeX-master: "../main"
+%%% End:
+%% vim:foldmethod=expr
+%% vim:fde=getline(v\:lnum)=~'^%%%%'?0\:getline(v\:lnum)=~'^%doc.*\ .\\%(sub\\)\\?section{.\\+'?'>1'\:'1':
diff --git a/work_report/thesis.lof b/work_report/thesis.lof
deleted file mode 100644
index 5df8596..0000000
--- a/work_report/thesis.lof
+++ /dev/null
@@ -1,324 +0,0 @@
-\select@language {english}
-\contentsline {figure}{\numberline {\relax 0.1}{\ignorespaces Sphere tries to explain the nature of 3D space to Square}}{1}{figure.caption.2}
-\contentsline {figure}{\numberline {\relax 0.2}{\ignorespaces Farnsworth explains why a two-ended digestive system cannot exist in 2D}}{1}{figure.caption.3}
-\addvspace {10\p@ }
-\contentsline {figure}{\numberline {\relax 1.1}{\ignorespaces A polygon as a cycle of points\relax }}{4}{figure.caption.6}
-\contentsline {figure}{\numberline {\relax 1.2}{\ignorespaces The polygons in the CORINE dataset around Delft}}{4}{figure.caption.7}
-\contentsline {figure}{\numberline {\relax 1.3}{\ignorespaces A cube represented as the 6 square faces that bound it\relax }}{4}{figure.caption.8}
-\contentsline {figure}{\numberline {\relax 1.4}{\ignorespaces Five dimensions based on 3D space, time and scale\relax }}{5}{figure.caption.9}
-\contentsline {figure}{\numberline {\relax 1.5}{\ignorespaces A non-manifold shape}}{5}{figure.caption.10}
-\contentsline {figure}{\numberline {\relax 1.6}{\ignorespaces The top and bottom faces of this torus have holes in them.\relax }}{5}{figure.caption.11}
-\addvspace {10\p@ }
-\contentsline {figure}{\numberline {\relax 2.1}{\ignorespaces A single line passes through two points}}{13}{figure.caption.12}
-\contentsline {figure}{\numberline {\relax 2.2}{\ignorespaces A point $p$ in 3D described by a treble $(p_x,p_y,p_z)$\relax }}{14}{figure.caption.13}
-\contentsline {figure}{\numberline {\relax 2.3}{\ignorespaces A plane separates $\symbb {R}^3$ into two parts on either side of it.\relax }}{14}{figure.caption.14}
-\contentsline {figure}{\numberline {\relax 2.4}{\ignorespaces Objects can be defined using Boolean set operations}}{15}{figure.caption.15}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {$\symbb {A}$ (purple) and $\symbb {B}$ (blue)}}}{15}{subfigure.4.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {Intersection: $\symbb {A} \cap \symbb {B}$}}}{15}{subfigure.4.2}
-\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {Union: $\symbb {A} \cup \symbb {B}$}}}{15}{subfigure.4.3}
-\contentsline {subfigure}{\numberline {(d)}{\ignorespaces {Difference: $\symbb {A} - \symbb {B}$}}}{15}{subfigure.4.4}
-\contentsline {figure}{\numberline {\relax 2.5}{\ignorespaces Two rectangles and two points defined as point sets}}{16}{figure.caption.16}
-\contentsline {figure}{\numberline {\relax 2.6}{\ignorespaces Open and closed intervals}}{16}{figure.caption.17}
-\contentsline {figure}{\numberline {\relax 2.7}{\ignorespaces The unit open disk}}{17}{figure.caption.18}
-\contentsline {figure}{\numberline {\relax 2.8}{\ignorespaces An annulus partitions the Euclidean plane into three parts}}{17}{figure.caption.19}
-\contentsline {figure}{\numberline {\relax 2.9}{\ignorespaces A coffee mug and a donut are homeomorphic}}{17}{figure.caption.20}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {A coffee mug}}}{17}{subfigure.9.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {A donut}}}{17}{subfigure.9.2}
-\contentsline {figure}{\numberline {\relax 2.10}{\ignorespaces The Seven Bridges of K\"onigsberg}}{18}{figure.caption.21}
-\contentsline {figure}{\numberline {\relax 2.11}{\ignorespaces 0-, 1-, 2- and 3-simplices}}{19}{figure.caption.22}
-\contentsline {figure}{\numberline {\relax 2.12}{\ignorespaces The TU Delft campus as a 3D simplicial complex}}{21}{figure.caption.23}
-\contentsline {figure}{\numberline {\relax 2.13}{\ignorespaces The TU Delft campus as a 3D cell complex}}{21}{figure.caption.24}
-\contentsline {figure}{\numberline {\relax 2.14}{\ignorespaces The Platonic solids}}{21}{figure.caption.25}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {}}}{21}{subfigure.14.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {}}}{21}{subfigure.14.2}
-\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {}}}{21}{subfigure.14.3}
-\contentsline {subfigure}{\numberline {(d)}{\ignorespaces {}}}{21}{subfigure.14.4}
-\contentsline {subfigure}{\numberline {(e)}{\ignorespaces {}}}{21}{subfigure.14.5}
-\addvspace {10\p@ }
-\contentsline {figure}{\numberline {\relax 3.1}{\ignorespaces An object represented as a tree of Boolean set operations}}{28}{figure.caption.29}
-\contentsline {figure}{\numberline {\relax 3.2}{\ignorespaces A polygon represented as the union of two convex polygons}}{29}{figure.caption.31}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {}}}{29}{subfigure.2.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {}}}{29}{subfigure.2.2}
-\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {}}}{29}{subfigure.2.3}
-\contentsline {figure}{\numberline {\relax 3.3}{\ignorespaces A Nef polygon represented by a set of local pyramids}}{29}{figure.caption.33}
-\contentsline {figure}{\numberline {\relax 3.4}{\ignorespaces A wireframe model can have different interpretations}}{33}{figure.caption.39}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {}}}{33}{subfigure.4.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {}}}{33}{subfigure.4.2}
-\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {}}}{33}{subfigure.4.3}
-\contentsline {subfigure}{\numberline {(d)}{\ignorespaces {}}}{33}{subfigure.4.4}
-\contentsline {figure}{\numberline {\relax 3.5}{\ignorespaces Pascal's triangle}}{35}{figure.caption.42}
-\contentsline {figure}{\numberline {\relax 3.6}{\ignorespaces A triangle-based data structure}}{35}{figure.caption.43}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {Adjacent triangles}}}{35}{subfigure.6.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {Vertices of a triangle}}}{35}{subfigure.6.2}
-\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {Coordinates of a vertex}}}{35}{subfigure.6.3}
-\contentsline {figure}{\numberline {\relax 3.7}{\ignorespaces A polygonal curve or polyline}}{36}{figure.caption.45}
-\contentsline {figure}{\numberline {\relax 3.8}{\ignorespaces The polygon model}}{36}{figure.caption.46}
-\contentsline {figure}{\numberline {\relax 3.9}{\ignorespaces The spaghetti model}}{36}{figure.caption.47}
-\contentsline {figure}{\numberline {\relax 3.10}{\ignorespaces Storing non-manifold polygons in a half-edge data structure}}{37}{figure.caption.48}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {}}}{37}{subfigure.10.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {}}}{37}{subfigure.10.2}
-\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {}}}{37}{subfigure.10.3}
-\contentsline {figure}{\numberline {\relax 3.11}{\ignorespaces A 2D cell complex as a DCEL and a 2D combinatorial map}}{37}{figure.caption.49}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {}}}{37}{subfigure.11.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {}}}{37}{subfigure.11.2}
-\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {}}}{37}{subfigure.11.3}
-\contentsline {figure}{\numberline {\relax 3.12}{\ignorespaces The quad-edge data structure}}{38}{figure.caption.50}
-\contentsline {figure}{\numberline {\relax 3.13}{\ignorespaces The facet-edge data structure}}{38}{figure.caption.52}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {}}}{38}{subfigure.13.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {}}}{38}{subfigure.13.2}
-\contentsline {figure}{\numberline {\relax 3.14}{\ignorespaces A V-map}}{39}{figure.caption.53}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {Tetrahedral 3-cell}}}{39}{subfigure.14.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {V-map}}}{39}{subfigure.14.2}
-\contentsline {figure}{\numberline {\relax 3.15}{\ignorespaces A selective Nef complex}}{39}{figure.caption.54}
-\contentsline {figure}{\numberline {\relax 3.16}{\ignorespaces A triangle strip}}{41}{figure.caption.55}
-\contentsline {figure}{\numberline {\relax 3.17}{\ignorespaces Geometry in the Simple Features Specification}}{42}{figure.caption.56}
-\contentsline {figure}{\numberline {\relax 3.18}{\ignorespaces Geometry in GML}}{43}{figure.caption.57}
-\contentsline {figure}{\numberline {\relax 3.19}{\ignorespaces Sweeps in IFC}}{43}{figure.caption.58}
-\contentsline {figure}{\numberline {\relax 3.20}{\ignorespaces The snapshot model}}{46}{figure.caption.59}
-\contentsline {figure}{\numberline {\relax 3.21}{\ignorespaces An event-based model}}{47}{figure.caption.60}
-\contentsline {figure}{\numberline {\relax 3.22}{\ignorespaces Topographic maps at different scales around Delft}}{48}{figure.caption.61}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {1:50 000}}}{48}{subfigure.22.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {1:250 000}}}{48}{subfigure.22.2}
-\contentsline {figure}{\numberline {\relax 3.23}{\ignorespaces The LODs in CityGML}}{49}{figure.caption.62}
-\addvspace {10\p@ }
-\contentsline {figure}{\numberline {\relax 4.1}{\ignorespaces A tesseract}}{56}{figure.caption.63}
-\contentsline {figure}{\numberline {\relax 4.2}{\ignorespaces An object remaining stationary as an extrusion in 2D space+time}}{57}{figure.caption.64}
-\contentsline {figure}{\numberline {\relax 4.3}{\ignorespaces Object transformations in 2D space+time}}{58}{figure.caption.65}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {Original}}}{58}{subfigure.3.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {Translation}}}{58}{subfigure.3.2}
-\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {Rotation}}}{58}{subfigure.3.3}
-\contentsline {subfigure}{\numberline {(d)}{\ignorespaces {Scaling}}}{58}{subfigure.3.4}
-\contentsline {figure}{\numberline {\relax 4.4}{\ignorespaces A 3D representation of 2D space+time}}{58}{figure.caption.66}
-\contentsline {figure}{\numberline {\relax 4.5}{\ignorespaces A 3D representation of 2D space+scale}}{59}{figure.caption.67}
-\contentsline {figure}{\numberline {\relax 4.6}{\ignorespaces A 2D+scale representation of four polygons being generalised}}{59}{figure.caption.68}
-\contentsline {figure}{\numberline {\relax 4.7}{\ignorespaces Simple Features representations of a square, cube, and tesseract}}{61}{figure.caption.69}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {square}}}{61}{subfigure.7.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {cube}}}{61}{subfigure.7.2}
-\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {tesseract}}}{61}{subfigure.7.3}
-\contentsline {figure}{\numberline {\relax 4.8}{\ignorespaces The Sch\"onhardt polyhedron}}{67}{figure.caption.70}
-\contentsline {figure}{\numberline {\relax 4.9}{\ignorespaces Relationships in a simplex-based data structure}}{69}{figure.caption.71}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {}}}{69}{subfigure.9.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {}}}{69}{subfigure.9.2}
-\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {}}}{69}{subfigure.9.3}
-\contentsline {subfigure}{\numberline {(d)}{\ignorespaces {}}}{69}{subfigure.9.4}
-\contentsline {subfigure}{\numberline {(e)}{\ignorespaces {}}}{69}{subfigure.9.5}
-\contentsline {subfigure}{\numberline {(f)}{\ignorespaces {}}}{69}{subfigure.9.6}
-\contentsline {figure}{\numberline {\relax 4.10}{\ignorespaces Relationships in an incidence graph}}{72}{figure.caption.72}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {}}}{72}{subfigure.10.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {}}}{72}{subfigure.10.2}
-\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {}}}{72}{subfigure.10.3}
-\contentsline {subfigure}{\numberline {(d)}{\ignorespaces {}}}{72}{subfigure.10.4}
-\contentsline {subfigure}{\numberline {(e)}{\ignorespaces {}}}{72}{subfigure.10.5}
-\contentsline {subfigure}{\numberline {(f)}{\ignorespaces {}}}{72}{subfigure.10.6}
-\contentsline {subfigure}{\numberline {(g)}{\ignorespaces {}}}{72}{subfigure.10.7}
-\contentsline {subfigure}{\numberline {(h)}{\ignorespaces {}}}{72}{subfigure.10.8}
-\contentsline {figure}{\numberline {\relax 4.11}{\ignorespaces Two different techniques to handle holes in a 3D cell complex}}{73}{figure.caption.73}
-\contentsline {figure}{\numberline {\relax 4.12}{\ignorespaces Simplices in a generalised map and a combinatorial map}}{75}{figure.caption.74}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {}}}{75}{subfigure.12.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {}}}{75}{subfigure.12.2}
-\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {}}}{75}{subfigure.12.3}
-\contentsline {figure}{\numberline {\relax 4.13}{\ignorespaces A cube represented as a 3D combinatorial map}}{75}{figure.caption.75}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {}}}{75}{subfigure.13.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {}}}{75}{subfigure.13.2}
-\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {}}}{75}{subfigure.13.3}
-\contentsline {figure}{\numberline {\relax 4.14}{\ignorespaces Orientation in a combinatorial map}}{77}{figure.caption.76}
-\contentsline {figure}{\numberline {\relax 4.15}{\ignorespaces Representing holes using bridges}}{78}{figure.caption.77}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {}}}{78}{subfigure.15.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {}}}{78}{subfigure.15.2}
-\addvspace {10\p@ }
-\contentsline {figure}{\numberline {\relax 5.1}{\ignorespaces Involutions in a 2D generalised map}}{86}{figure.caption.78}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {}}}{86}{subfigure.1.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {}}}{86}{subfigure.1.2}
-\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {}}}{86}{subfigure.1.3}
-\contentsline {figure}{\numberline {\relax 5.2}{\ignorespaces Partial permutations in a 1D combinatorial map}}{87}{figure.caption.79}
-\contentsline {figure}{\numberline {\relax 5.3}{\ignorespaces Partial permutations in a 2D combinatorial map}}{87}{figure.caption.80}
-\contentsline {figure}{\numberline {\relax 5.4}{\ignorespaces Darts of a cell}}{88}{figure.caption.81}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {}}}{88}{subfigure.4.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {}}}{88}{subfigure.4.2}
-\contentsline {figure}{\numberline {\relax 5.5}{\ignorespaces 3-sewing two cubes}}{89}{figure.caption.82}
-\contentsline {figure}{\numberline {\relax 5.6}{\ignorespaces Boolean set operations on Nef polygons}}{90}{figure.caption.83}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {}}}{90}{subfigure.6.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {}}}{90}{subfigure.6.2}
-\contentsline {figure}{\numberline {\relax 5.7}{\ignorespaces Duality in a 2D map}}{95}{figure.caption.84}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {}}}{95}{subfigure.7.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {}}}{95}{subfigure.7.2}
-\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {}}}{95}{subfigure.7.3}
-\contentsline {figure}{\numberline {\relax 5.8}{\ignorespaces A 2D generalised map and its dual}}{96}{figure.caption.85}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {}}}{96}{subfigure.8.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {}}}{96}{subfigure.8.2}
-\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {}}}{96}{subfigure.8.3}
-\contentsline {subfigure}{\numberline {(d)}{\ignorespaces {}}}{96}{subfigure.8.4}
-\contentsline {figure}{\numberline {\relax 5.9}{\ignorespaces Three pairs of tesseracts}}{97}{figure.caption.86}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {}}}{97}{subfigure.9.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {}}}{97}{subfigure.9.2}
-\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {}}}{97}{subfigure.9.3}
-\addvspace {10\p@ }
-\contentsline {figure}{\numberline {\relax 6.1}{\ignorespaces A view of the 3D TOP10NL dataset}}{102}{figure.caption.93}
-\contentsline {figure}{\numberline {\relax 6.2}{\ignorespaces Extrusion from 2D to 3D}}{103}{figure.caption.94}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {}}}{103}{subfigure.2.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {}}}{103}{subfigure.2.2}
-\contentsline {figure}{\numberline {\relax 6.3}{\ignorespaces The Frauenkirche in Dresden}}{103}{figure.caption.95}
-\contentsline {figure}{\numberline {\relax 6.4}{\ignorespaces The extrusion intervals of the lower-dimensional cells}}{105}{figure.caption.96}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {}}}{105}{subfigure.4.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {}}}{105}{subfigure.4.2}
-\contentsline {figure}{\numberline {\relax 6.5}{\ignorespaces Extruding the embeddings}}{106}{figure.caption.97}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {}}}{106}{subfigure.5.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {}}}{106}{subfigure.5.2}
-\contentsline {figure}{\numberline {\relax 6.6}{\ignorespaces Extruding a 2D cell complex}}{106}{figure.caption.98}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {}}}{106}{subfigure.6.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {}}}{106}{subfigure.6.2}
-\contentsline {figure}{\numberline {\relax 6.7}{\ignorespaces Propagating the extrusion intervals}}{107}{figure.caption.99}
-\contentsline {figure}{\numberline {\relax 6.8}{\ignorespaces The darts in the cell complexes in \hyperref [fig:trianglecomplex]{Figure}~\ref {fig:trianglecomplex}}}{110}{figure.caption.102}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {}}}{110}{subfigure.8.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {}}}{110}{subfigure.8.2}
-\contentsline {figure}{\numberline {\relax 6.9}{\ignorespaces The stack of simplices in an extruded dart}}{111}{figure.caption.103}
-\contentsline {figure}{\numberline {\relax 6.10}{\ignorespaces The darts in the cell complexes in \hyperref [fig:blockscomplex]{Figure}~\ref {fig:blockscomplex}}}{112}{figure.caption.104}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {}}}{112}{subfigure.10.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {}}}{112}{subfigure.10.2}
-\contentsline {figure}{\numberline {\relax 6.11}{\ignorespaces Extruding the footprint of the Aula Congress Centre in Delft to 3D}}{116}{figure.caption.109}
-\contentsline {figure}{\numberline {\relax 6.12}{\ignorespaces Extruding the footprint of the Aula Congress Centre in Delft to 4D}}{116}{figure.caption.110}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {}}}{116}{subfigure.12.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {}}}{116}{subfigure.12.2}
-\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {}}}{116}{subfigure.12.3}
-\contentsline {figure}{\numberline {\relax 6.13}{\ignorespaces Extruding a dataset of the campus of the Delft University of Technology\relax }}{117}{figure.caption.111}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {}}}{117}{subfigure.13.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {}}}{117}{subfigure.13.2}
-\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {}}}{117}{subfigure.13.3}
-\contentsline {figure}{\numberline {\relax 6.14}{\ignorespaces Collapsing cells}}{118}{figure.caption.112}
-\addvspace {10\p@ }
-\contentsline {figure}{\numberline {\relax 7.1}{\ignorespaces Two adjacent tetrahedra as a combinatorial map}}{123}{figure.caption.113}
-\contentsline {figure}{\numberline {\relax 7.2}{\ignorespaces Constructing the 0-cells of \hyperref [fig:2tetra]{Figure}~\ref {fig:2tetra}}}{124}{figure.caption.114}
-\contentsline {figure}{\numberline {\relax 7.3}{\ignorespaces Constructing the 2-cells of \hyperref [fig:2tetra]{Figure}~\ref {fig:2tetra}}}{125}{figure.caption.115}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {}}}{125}{subfigure.3.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {}}}{125}{subfigure.3.2}
-\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {}}}{125}{subfigure.3.3}
-\contentsline {subfigure}{\numberline {(d)}{\ignorespaces {}}}{125}{subfigure.3.4}
-\contentsline {subfigure}{\numberline {(e)}{\ignorespaces {}}}{125}{subfigure.3.5}
-\contentsline {subfigure}{\numberline {(f)}{\ignorespaces {}}}{125}{subfigure.3.6}
-\contentsline {subfigure}{\numberline {(g)}{\ignorespaces {}}}{125}{subfigure.3.7}
-\contentsline {subfigure}{\numberline {(h)}{\ignorespaces {}}}{125}{subfigure.3.8}
-\contentsline {figure}{\numberline {\relax 7.4}{\ignorespaces Constructing the 3-cells of \hyperref [fig:2tetra]{Figure}~\ref {fig:2tetra}}}{128}{figure.caption.116}
-\contentsline {figure}{\numberline {\relax 7.5}{\ignorespaces A tesseract as a combinatorial map}}{130}{figure.caption.119}
-\contentsline {figure}{\numberline {\relax 7.6}{\ignorespaces Simple 2D+scale datasets}}{131}{figure.caption.121}
-\contentsline {figure}{\numberline {\relax 7.7}{\ignorespaces A large 2D+scale dataset}}{132}{figure.caption.122}
-\contentsline {figure}{\numberline {\relax 7.8}{\ignorespaces Construction time speed-up from the use of indices}}{133}{figure.caption.123}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {}}}{133}{subfigure.8.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {}}}{133}{subfigure.8.2}
-\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {}}}{133}{subfigure.8.3}
-\addvspace {10\p@ }
-\contentsline {figure}{\numberline {\relax 8.1}{\ignorespaces Two LODs of a building footprint}}{136}{figure.caption.124}
-\contentsline {figure}{\numberline {\relax 8.2}{\ignorespaces Two LODs of a building footprint as a single polyhedron}}{138}{figure.caption.125}
-\contentsline {figure}{\numberline {\relax 8.3}{\ignorespaces Four linking schemes}}{141}{figure.caption.126}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {Simple linking}}}{141}{subfigure.3.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {Unmatched are collapsed}}}{141}{subfigure.3.2}
-\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {Modification of topology}}}{141}{subfigure.3.3}
-\contentsline {subfigure}{\numberline {(d)}{\ignorespaces {Matching all to existing}}}{141}{subfigure.3.4}
-\contentsline {figure}{\numberline {\relax 8.4}{\ignorespaces Simple linking}}{144}{figure.caption.131}
-\contentsline {figure}{\numberline {\relax 8.5}{\ignorespaces Linking by collapsing}}{144}{figure.caption.132}
-\contentsline {figure}{\numberline {\relax 8.6}{\ignorespaces Linking using topology modifications}}{145}{figure.caption.133}
-\contentsline {figure}{\numberline {\relax 8.7}{\ignorespaces Linking using multiple methods}}{146}{figure.caption.134}
-\contentsline {figure}{\numberline {\relax 8.8}{\ignorespaces Linking by matching cells}}{146}{figure.caption.135}
-\contentsline {figure}{\numberline {\relax 8.9}{\ignorespaces Programming a complex linking example}}{148}{figure.caption.136}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {}}}{148}{subfigure.9.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {Constructing other cells}}}{148}{subfigure.9.2}
-\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {Coordinates of the 17 vertices}}}{148}{subfigure.9.3}
-\addvspace {10\p@ }
-\contentsline {figure}{\numberline {\relax 9.1}{\ignorespaces Conic sections}}{152}{figure.caption.137}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {}}}{152}{subfigure.1.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {}}}{152}{subfigure.1.2}
-\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {}}}{152}{subfigure.1.3}
-\contentsline {subfigure}{\numberline {(d)}{\ignorespaces {}}}{152}{subfigure.1.4}
-\contentsline {figure}{\numberline {\relax 9.2}{\ignorespaces Orthographic and perspective projections}}{153}{figure.caption.138}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {}}}{153}{subfigure.2.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {}}}{153}{subfigure.2.2}
-\contentsline {figure}{\numberline {\relax 9.3}{\ignorespaces Equirectangular projection}}{153}{figure.caption.139}
-\contentsline {figure}{\numberline {\relax 9.4}{\ignorespaces Grand Teton National Park map}}{154}{figure.caption.140}
-\contentsline {figure}{\numberline {\relax 9.5}{\ignorespaces Perspective projection's frustum and orthographic projection's box}}{155}{figure.caption.141}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {}}}{155}{subfigure.5.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {}}}{155}{subfigure.5.2}
-\contentsline {figure}{\numberline {\relax 9.6}{\ignorespaces Geometry of an orthographic projection}}{156}{figure.caption.142}
-\contentsline {figure}{\numberline {\relax 9.7}{\ignorespaces Geometry of an perspective projection}}{157}{figure.caption.143}
-\contentsline {figure}{\numberline {\relax 9.8}{\ignorespaces Stereographic projection}}{160}{figure.caption.144}
-\contentsline {figure}{\numberline {\relax 9.9}{\ignorespaces Polyhedron and polychoron in Jenn 3D}}{160}{figure.caption.145}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {}}}{160}{subfigure.9.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {}}}{160}{subfigure.9.2}
-\contentsline {figure}{\numberline {\relax 9.10}{\ignorespaces 4D to 2D projection of a 4D house}}{161}{figure.caption.146}
-\addvspace {10\p@ }
-\contentsline {figure}{\numberline {\relax 10.1}{\ignorespaces Different interpretations of a polygon}}{165}{figure.caption.147}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {}}}{165}{subfigure.1.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {}}}{165}{subfigure.1.2}
-\contentsline {figure}{\numberline {\relax 10.2}{\ignorespaces Several invalid polygons}}{166}{figure.caption.148}
-\contentsline {figure}{\numberline {\relax 10.3}{\ignorespaces Rules used to interpret the interior of a polygon}}{168}{figure.caption.149}
-\contentsline {figure}{\numberline {\relax 10.4}{\ignorespaces Defining a snapping threshold}}{169}{figure.caption.150}
-\contentsline {figure}{\numberline {\relax 10.5}{\ignorespaces Steps to repair a (multi)polygon using a constrained triangulation}}{169}{figure.caption.151}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {}}}{169}{subfigure.5.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {}}}{169}{subfigure.5.2}
-\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {}}}{169}{subfigure.5.3}
-\contentsline {subfigure}{\numberline {(d)}{\ignorespaces {}}}{169}{subfigure.5.4}
-\contentsline {figure}{\numberline {\relax 10.6}{\ignorespaces Processing the largest polygon in the CORINE land cover dataset}}{170}{figure.caption.152}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {}}}{170}{subfigure.6.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {}}}{170}{subfigure.6.2}
-\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {}}}{170}{subfigure.6.3}
-\contentsline {subfigure}{\numberline {(d)}{\ignorespaces {}}}{170}{subfigure.6.4}
-\contentsline {figure}{\numberline {\relax 10.7}{\ignorespaces Steps to repair a planar partition using a constrained triangulation}}{170}{figure.caption.153}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {}}}{170}{subfigure.7.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {}}}{170}{subfigure.7.2}
-\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {}}}{170}{subfigure.7.3}
-\contentsline {subfigure}{\numberline {(d)}{\ignorespaces {}}}{170}{subfigure.7.4}
-\contentsline {subfigure}{\numberline {(e)}{\ignorespaces {}}}{170}{subfigure.7.5}
-\contentsline {figure}{\numberline {\relax 10.8}{\ignorespaces Various repair methods based on relabelling (sets of) triangles}}{171}{figure.caption.154}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {}}}{171}{subfigure.8.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {}}}{171}{subfigure.8.2}
-\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {}}}{171}{subfigure.8.3}
-\contentsline {subfigure}{\numberline {(d)}{\ignorespaces {}}}{171}{subfigure.8.4}
-\contentsline {figure}{\numberline {\relax 10.9}{\ignorespaces A planar partition of 16 tiles of the CORINE land cover dataset}}{171}{figure.caption.155}
-\contentsline {figure}{\numberline {\relax 10.10}{\ignorespaces Surface-based models vs.\ volumetric models}}{172}{figure.caption.156}
-\contentsline {figure}{\numberline {\relax 10.11}{\ignorespaces An IFC model of the FZK-house}}{173}{figure.caption.157}
-\contentsline {figure}{\numberline {\relax 10.12}{\ignorespaces The boundary representation scheme in ISO 19107}}{173}{figure.caption.158}
-\contentsline {figure}{\numberline {\relax 10.13}{\ignorespaces Openings in the IfcOpenHouse dataset}}{175}{figure.caption.159}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {}}}{175}{subfigure.13.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {}}}{175}{subfigure.13.2}
-\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {}}}{175}{subfigure.13.3}
-\contentsline {figure}{\numberline {\relax 10.14}{\ignorespaces The volumes in the IfcOpenHouse dataset do not fit together}}{176}{figure.caption.160}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {}}}{176}{subfigure.14.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {}}}{176}{subfigure.14.2}
-\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {}}}{176}{subfigure.14.3}
-\contentsline {figure}{\numberline {\relax 10.15}{\ignorespaces A large overlap in the IfcOpenHouse dataset}}{177}{figure.caption.161}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {}}}{177}{subfigure.15.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {}}}{177}{subfigure.15.2}
-\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {}}}{177}{subfigure.15.3}
-\contentsline {figure}{\numberline {\relax 10.16}{\ignorespaces Computing the best fitting plane of every face}}{180}{figure.caption.162}
-\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {}}}{180}{subfigure.16.1}
-\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {}}}{180}{subfigure.16.2}
-\contentsline {figure}{\numberline {\relax 10.17}{\ignorespaces Vertex snapping}}{180}{figure.caption.163}
-\contentsline {figure}{\numberline {\relax 10.18}{\ignorespaces The steps of the IfcOpenHouse}}{181}{figure.caption.164}
-\contentsline {figure}{\numberline {\relax 10.19}{\ignorespaces A dimension-independent cell harmonised with ISO 19107}}{183}{figure.caption.165}
-\contentsline {figure}{\numberline {\relax 10.20}{\ignorespaces Cell complexes in the ISO 19107 standard}}{184}{figure.caption.166}
-\contentsline {figure}{\numberline {\relax 10.21}{\ignorespaces An $n$D space subdivision harmonised with ISO 19107}}{184}{figure.caption.167}
-\addvspace {10\p@ }
-\contentsline {figure}{\numberline {\relax A.1}{\ignorespaces Using C++ templates to convert a \texttt {string} into any number type}}{200}{figure.caption.170}
-\contentsline {figure}{\numberline {\relax A.2}{\ignorespaces Creating a dependent type using C++ templates}}{201}{figure.caption.171}
-\contentsline {figure}{\numberline {\relax A.3}{\ignorespaces Using recursive C++ templates to produce dimension independent code}}{202}{figure.caption.172}
-\contentsline {figure}{\numberline {\relax A.4}{\ignorespaces Dimension-independent algorithms using recursive C++ templates}}{203}{figure.caption.173}
-\addvspace {10\p@ }
-\contentsline {figure}{\numberline {\relax 1}{\ignorespaces A cube represented as the 6 square faces that bound it}}{227}{figure.caption.176}
-\contentsline {figure}{\numberline {\relax 2}{\ignorespaces 3D space, time and scale can be modelled as 5D space.\relax }}{227}{figure.caption.177}
-\contentsline {figure}{\numberline {\relax 3}{\ignorespaces 3D space subdivision model}}{227}{figure.caption.178}
-\contentsline {figure}{\numberline {\relax 4}{\ignorespaces A set of polygons is converted into a set of boxes by 2D-to-3D extrusion.}}{228}{figure.caption.179}
-\contentsline {figure}{\numberline {\relax 5}{\ignorespaces Two LODs of a 3D model of a house are linked into a 4D model}}{228}{figure.caption.180}
-\addvspace {10\p@ }
-\select@language {dutch}
-\contentsline {figure}{\numberline {\relax 1}{\ignorespaces Een kubus wordt gerepresenteerd als 6 vierkante 2D vlakken.}}{229}{figure.caption.182}
-\contentsline {figure}{\numberline {\relax 2}{\ignorespaces 3D ruimte, tijd en schaal kunnen worden gemodelleerd als 5D ruimte.\relax }}{229}{figure.caption.183}
-\contentsline {figure}{\numberline {\relax 3}{\ignorespaces 3D ruimtelijke opdeling}}{229}{figure.caption.184}
-\contentsline {figure}{\numberline {\relax 4}{\ignorespaces Een set polygonen wordt geconverteerd naar een set blokken.}}{230}{figure.caption.185}
-\contentsline {figure}{\numberline {\relax 5}{\ignorespaces Twee detailniveaus van een 3D model worden gelinkt tot een 4D model.}}{230}{figure.caption.186}
-\addvspace {10\p@ }
-\select@language {spanish}
-\contentsline {figure}{\numberline {\relax 1}{\ignorespaces Un cubo representado por las 6 caras cuadradas en su superficie}}{231}{figure.caption.188}
-\contentsline {figure}{\numberline {\relax 2}{\ignorespaces El espacio 3D, el tiempo y la escala modelados como un espacio 5D.\relax }}{231}{figure.caption.189}
-\contentsline {figure}{\numberline {\relax 3}{\ignorespaces Partición espacial 3D}}{231}{figure.caption.190}
-\contentsline {figure}{\numberline {\relax 4}{\ignorespaces Un conjunto de polígonos se extrude en un conjunto de paralelepípedos.}}{232}{figure.caption.191}
-\contentsline {figure}{\numberline {\relax 5}{\ignorespaces Dos niveles de detalle de una casa se enlazan en un modelo 4D}}{232}{figure.caption.192}
-\select@language {english}
-\addvspace {10\p@ }
diff --git a/work_report/thesis.tex b/work_report/thesis.tex
deleted file mode 100644
index e0085dd..0000000
--- a/work_report/thesis.tex
+++ /dev/null
@@ -1,530 +0,0 @@
-%!TEX program = xelatex
-%!TEX encoding = UTF-8 Unicode
-\documentclass[parskip=half,
- fontsize=9pt,
- % chapterprefix=true,
- numbers=noenddot,
- bibliography=totoc]{scrbook}
-
-% Golden ratio proportions on crown quarto with marginpar inside
-\usepackage[includemp,
- paperwidth=18.90cm,
- paperheight=24.58cm,
- top=2.170cm,
- bottom=3.510cm,
- inner=2.1835cm,
- outer=2.1835cm,
- marginparwidth=4cm, % Fixed for now
- marginparsep=0.4cm]{geometry}
-
-% For full bleed printing on crown quarto with 1/8 inch trim margin
-% \usepackage[includemp,
-% paperwidth=19.54cm,
-% paperheight=25.22cm,
-% % showframe,
-% layoutwidth=18.90cm,
-% layoutheight=24.58cm,
-% layouthoffset=0.32cm,
-% layoutvoffset=0.32cm,
-% top=2.170cm,
-% bottom=3.510cm,
-% inner=2.1835cm,
-% outer=2.1835cm,
-% marginparwidth=4cm, % Fixed for now
-% marginparsep=0.4cm]{geometry}
-
-% For printing on A4
-% \usepackage[includemp,
-% a4paper,
-% layoutwidth=18.90cm,
-% layoutheight=24.58cm,
-% layouthoffset=1.05cm,
-% layoutvoffset=2.56cm,
-% top=2.170cm,
-% bottom=3.510cm,
-% inner=1.668cm,
-% outer=2.699cm,
-% marginparwidth=4cm, % Fixed for now
-% marginparsep=0.4cm]{geometry}
-
-\usepackage{tocloft} % Customise table of contents
-\usepackage{amsmath,amssymb} % AMS symbols and environments
-\usepackage{mathtools} % More math symbols and environments
-\usepackage{fontspec} % Selecting fonts
-\usepackage{unicode-math} % Use unicode math font, not TeX
-\usepackage[main=english,dutch,spanish]{babel} % Correct hyphenation
-\usepackage{subfig} % Subfigures
-\usepackage{booktabs} % Nicer tables
-\usepackage{xcolor} % Colours in text
-\usepackage{etoolbox} % Easy programming to modify TeX stuff
-\usepackage{ccicons} % Creative Commons icons
-\usepackage{pdfpages} % Insert PDF pages
-\definecolor{greenforlinks}{rgb}{0.09, 0.45, 0.27}
-\PassOptionsToPackage{hyphens}{url}\usepackage[xetex,
- unicode,
- breaklinks=true,
- colorlinks=true,
- allcolors=greenforlinks,
- pagebackref,
- linktoc=all,
- pdftitle={Higher-dimensional modelling of geographic information},
- pdfauthor={Ken Arroyo Ohori}]{hyperref} % Hyperlinks
-\usepackage{bookmark} % Add things in TOC
-% \usepackage{showframe} % Frames to easily set up page layout
-\usepackage[hypcap=true]{caption} % Correctly placed anchors for hyperlinks
-\usepackage{floatrow} % Set up captions of floats
-\usepackage{marginfix} % Make marginpars float freely
-\usepackage{metalogo} % XeTeX logo
-\usepackage{scrlayer-scrpage} % Customise head and foot regions
-\usepackage[footnote]{snotez} % Footnotes as sidenotes
-% \usepackage{showlabels} % Show labels
-\usepackage{listings} % Code
-\usepackage[linesnumbered,
- ruled,
- vlined]{algorithm2e} % Algorithms
-\usepackage{multirow} % Cells occupying multiple rows in tables
-\usepackage{multicol} % Multiple columns in dictionary
-\setlength\columnseprule{.4pt}
-\usepackage[square]{natbib} % Bibliography management
-
-% More floats
-\extrafloats{100}
-
-% Figures and tables
-\floatsetup[figure]{margins=hangoutside,
- facing=yes,
- capposition=beside,
- capbesideposition={center,outside},
- floatwidth=\textwidth}
-\floatsetup[widefigure]{margins=hangoutside,
- facing=yes,
- capposition=bottom}
-\floatsetup[table]{margins=hangoutside,
- facing=yes,
- capposition=beside,
- capbesideposition={center,outside},
- floatwidth=\textwidth}
-\floatsetup[widetable]{margins=hangoutside,
- facing=yes,
- capposition=bottom}
-
-% Sidenotes
-\setsidenotes{text-mark-format=\textsuperscript{\normalfont#1},
- note-mark-format=#1:,
- note-mark-sep=\enskip}
-
-% Listings code
-\definecolor{listingkeywords}{rgb}{0.00, 0.5, 0.0}
-\definecolor{listingidentifiers}{rgb}{0, 0, 0}
-\definecolor{listingcomments}{rgb}{0.25, 0.5, 0.5}
-\definecolor{listingstrings}{rgb}{0.73, 0.13, 0.13}
-\definecolor{listingnumbers}{rgb}{0.25, 0.25, 0.25}
-\lstset{
- basicstyle=\scriptsize\ttfamily,
- keywordstyle=\color{listingkeywords}\bfseries,
- identifierstyle=\color{listingidentifiers},
- commentstyle=\color{listingcomments}\itshape,
- stringstyle=\color{listingstrings},
- numberstyle=\scriptsize\color{listingnumbers}\ttfamily,
- frame=single,
- tabsize=4,
- language=[ISO]C++
-}
-
-% Draw safety margins for variation in cropping, etc.
-% \usepackage{background}
-% \backgroundsetup{
-% color=black,
-% scale=1,
-% opacity=1,
-% angle=0,
-% contents={
- % \tikz\draw[line width=1pt,black] (-8.18cm,-11.02cm) rectangle (8.18cm,11.02cm); % 1/2 inch safety margin
- % \tikz\draw[line width=1pt,black] (-8.81cm,-11.65cm) rectangle (8.81cm,11.65cm); % 1/4 inch safety margin
-% \tikz\draw[line width=1pt,black] (-9.45cm,-12.29cm) rectangle (9.45cm,12.29cm); % Crown quarto page
-% }}
-
-% Figure captions with no indentation
-\setcapindent{0pt}
-
-% List of figures title as "Figures"
-\renewcaptionname{english}{\listfigurename}{Figures}
-\renewcaptionname{english}{\listtablename}{Tables}
-
-% Add half-title to PDF bookmarks
-\makeatletter
-\pretocmd{\maketitle}{%
- \if@openright\cleardoublepage\else\clearpage\fi
- \pdfbookmark[0]{Preliminaries}{title}% TODO: Change link to cover in online PDF version
- \pdfbookmark[1]{Half title}{title}%
-}{}{}%
-\makeatother
-% Add table of contents to PDF bookmarks
-\makeatletter
-\pretocmd{\tableofcontents}{%
- \if@openright\cleardoublepage\else\clearpage\fi
- \pdfbookmark[1]{Table of contents}{toc}%
-}{}{}%
-\makeatother
-% Add list of figures to PDF bookmarks
-\makeatletter
-\pretocmd{\listoffigures}{%
- \if@openright\cleardoublepage\else\clearpage\fi
- \pdfbookmark[1]{List of figures}{lof}%
-}{}{}%
-\makeatother
-
-% Font setup
-\setmainfont[Ligatures=TeX,ItalicFont=Feijoa-MediumItalic,StylisticSet=6]{Feijoa}
-\setmonofont[BoldFont=GTPressuraMono-Bold,ItalicFont=GTPressuraMono-LightItalic]{GTPressuraMono-Light}
-\setmathfont{Asana-Math.otf}
-\newfontfamily\fanciestfont[Ligatures={TeX,Discretionary}]{Feijoa-Display}
-\newfontfamily\fancyfont[Ligatures=TeX]{Feijoa-Display}
-\newfontfamily\chapternumberfont[Ligatures=TeX,Numbers=Lining]{Feijoa-Display}
-\addtokomafont{disposition}{\fancyfont}
-\addtokomafont{title}{\fanciestfont}
-\addtokomafont{chapter}{\fanciestfont}
-\addtokomafont{chapterentry}{\normalfont\scshape}
-\addtokomafont{descriptionlabel}{\normalfont\bfseries}
-\addtokomafont{caption}{\footnotesize}
-
-% Levels in table of contents
-\setcounter{tocdepth}{1}
-
-% Table of contents styles
-\newlength{\alignviiilength}
-\setlength{\alignviiilength}{7.5mm}
-\newlength{\alignxlength}
-\setlength{\alignxlength}{8.5mm}
-% \renewcommand{\cftdotsep}{\cftnodots}
-% \renewcommand{\cftpnumalign}{l}
-
-\setlength{\cftpartnumwidth}{\alignviiilength}
-\renewcommand{\cftpartfont}{\fancyfont\LARGE\hypersetup{allcolors=black}}
-\renewcommand{\cftpartpagefont}{\fancyfont\LARGE}
-
-\setlength{\cftchapnumwidth}{\alignviiilength}
-\renewcommand{\cftchapfont}{\fancyfont\large\hypersetup{allcolors=black}}
-% \renewcommand{\cftchapleader}{\hspace{1em}}
-\renewcommand{\cftchappagefont}{\fancyfont\large}
-% \renewcommand{\cftchapafterpnum}{\cftparfillskip}
-
-\setlength{\cftsecnumwidth}{\alignviiilength}
-\renewcommand{\cftsecfont}{\hypersetup{allcolors=black}}
-\setlength{\cftsecindent}{\alignviiilength}
-\renewcommand{\cftsecleader}{\hspace{1em}}
-% \renewcommand{\cftsecpagefont}{\normalfont\color{greenforlinks}}
-\renewcommand{\cftsecafterpnum}{\cftparfillskip}
-
-\setlength{\cftfigindent}{0mm}
-\renewcommand{\cftfigfont}{\hypersetup{allcolors=black}}
-\setlength{\cftfignumwidth}{\alignxlength}
-\renewcommand{\cftfigleader}{\hspace{1em}}
-\renewcommand{\cftfigafterpnum}{\cftparfillskip}
-
-\setlength{\cfttabindent}{0mm}
-\setlength{\cfttabnumwidth}{\alignxlength}
-\renewcommand{\cfttabfont}{\hypersetup{allcolors=black}}
-\renewcommand{\cfttableader}{\hspace{1em}}
-\renewcommand{\cfttabafterpnum}{\cftparfillskip}
-
-% Page styles for tables of contents, figures and tables
-\renewpagestyle{scrheadings}{
- {\makebox[2em][r]{\thepage}\quad\rule{1pt}{100pt}\quad{}Contents}%
- {\hfill\rightmark\quad\rule{1pt}{100pt}\quad\makebox[2em][l]{\thepage}}%
- {}
-}{
- {}%
- {}%
- {}
-}
-\renewpagestyle{plain.scrheadings}{
- {}%
- {}%
- {}
-}{
- {\thepage}%
- {\hfill\thepage}%
- {}
-}
-
-% Part title style [todo]
-\addtokomafont{part}{\Huge}
-\renewcommand*{\partformat}{\vspace{-6cm}\partname~\thepart\autodot\thispagestyle{empty}}
-
-% Chapter title style
-\makeatletter
-\setlength{\fboxsep}{0cm}
-\renewcommand*{\@@makechapterhead}[1]{%
- \vspace*{3\baselineskip plus \parskip}
- \makebox{%
- \makebox[\linewidth]{\parbox[c][2cm]{\linewidth}{\if@mainmatter\raggedleft\fi\size@chapter{#1}}}%
- \if@mainmatter%
- \makebox[\marginparsep]{\parbox[c][2cm]{\marginparsep}{\centering\rule{1pt}{2cm}}}%
- \makebox[4cm]{\parbox[c][2cm]{4cm}{\scalebox{5}{\chapternumberfont\thechapter\autodot}}}%
- \fi
- }%
- \vspace*{1.5\baselineskip plus .1\baselineskip minus .167\baselineskip}
-}
-\makeatother
-
-% Formatting of back references
-\renewcommand*{\backref}[1]{}
-\renewcommand*{\backrefalt}[4]{{%
-\ifcase#1 Not cited.%
-\or{}Cited on page~#2.%
-\else Cited on pages~#2.%
-\fi%
-}}
-
-% Bullets
-\renewcommand{\labelitemi}{►}
-
-% Custom commands
-\newcommand{\ie}{i.e.}
-\newcommand{\eg}{e.g.}
-\newcommand{\cf}{cf.}
-\newcommand{\refpa}[1]{\hyperref[#1]{Part}~\ref{#1}}
-\newcommand{\refch}[1]{\hyperref[#1]{Chapter}~\ref{#1}}
-\newcommand{\refchs}[1]{Chapters~\ref{#1}}
-\newcommand{\refse}[1]{\hyperref[#1]{\S}\ref{#1}}
-% \newcommand{\refses}[1]{\S\ref{#1}}
-\newcommand{\refap}[1]{\hyperref[#1]{Appendix}~\ref{#1}}
-\newcommand{\reffig}[1]{\hyperref[#1]{Figure}~\ref{#1}}
-\newcommand{\reffiges}[1]{\hyperref[#1]{Figura}~\ref{#1}}
-\newcommand{\reffignl}[1]{\hyperref[#1]{Figuur}~\ref{#1}}
-\newcommand{\reffigs}[1]{Figures~\ref{#1}}
-\newcommand{\reffigp}[1]{\hyperref[#1]{Figure}~\ref{#1} on \hyperref[#1]{page}~\pageref{#1}}
-\newcommand{\reftab}[1]{\hyperref[#1]{Table}~\ref{#1}}
-\newcommand{\refalgo}[1]{\hyperref[#1]{Algorithm}~\ref{#1}}
-
-% Papers
-\newcommand{\paperostravaedgematching}{\item \textbf{Edge-matching polygons with a constrained triangulation}. Hugo Ledoux and Ken Arroyo Ohori. \emph{Proceedings of GIS Ostrava 2011}, Ostrava, Czech Republic, January 2011, pp. 377--390.}
-\newcommand{\paperagileprepair}{\item[\href{http://dx.doi.org/10.5194/isprsarchives-xxxviii-4-c26-7-2012}{►}] \href{http://dx.doi.org/10.5194/isprsarchives-xxxviii-4-c26-7-2012}{\textbf{Automatically repairing invalid polygons with a constrained triangulation}}. Hugo Ledoux, Ken Arroyo Ohori and Martijn Meijers. In J\'er\^ome Gensel, Didier Josselin and Danny Vandenbroucke (eds.), \emph{Multidisciplinary Research on Geographical Information in Europe and Beyond. Proceedings of the 15th AGILE International Conference on Geographic Information Science}, Avignon, France, April 2012, pp. 13--18.}
-\newcommand{\papertdgeoinfond}{\item[\href{http://dx.doi.org/10.5194/isprsarchives-xxxviii-4-c26-7-2012}{►}] \href{http://dx.doi.org/10.5194/isprsarchives-xxxviii-4-c26-7-2012}{\textbf{Integrating scale and space in 3D city models}}. Jantien Stoter, Hugo Ledoux, Martijn Meijers and Ken Arroyo Ohori. In Jacynthe Pouliot, Sylvie Daniel, Fr\'ed\'eric Hubert and Alborz Zamyadi (eds.), \emph{Proceedings of the 7th International 3D GeoInfo Conference, International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences} XXXVIII--4/C26, ISPRS, Québec City, Canada, May 2012, pp. 7--10.}
-\newcommand{\paperosgisrepair}{\item \textbf{Automatically repairing polygons and planar partitions with \emph{prepair} and \emph{pprepair}}. Ken Arroyo Ohori, Hugo Ledoux and Martijn Meijers. \emph{Proceedings of the 4th Open Source GIS UK Conference}, Nottingham, United Kingdom, September 2012.}
-\newcommand{\paperpfgpprepair}{\item[\href{http://dx.doi.org/10.1127/1432-8364/2012/0143}{►}] \href{http://dx.doi.org/10.1127/1432-8364/2012/0143}{\textbf{Validation and automatic repair of planar partitions using a constrained triangulation}}. Ken Arroyo Ohori, Hugo Ledoux and Martijn Meijers. \emph{Photogrammetrie, Fernerkundung, Geoinformation} 5, October 2012, pp. 613--630.}
-\newcommand{\paperagileslicing}{\item \textbf{Manipulating higher dimensional spatial information}. Ken Arroyo Ohori, Filip Biljecki, Jantien Stoter and Hugo Ledoux. In Danny Vandenbroucke, B\'en\'edicte Bucher and Joep Crompvoets (eds.), \emph{Geographic Information Science at the Heart of Europe. Proceedings of the 16th AGILE International Conference on Geographic Information Science}, Leuven, Belgium, May 2013.}
-\newcommand{\papergeoadvancesnd}{\item[\href{http://dx.doi.org/10.1007/978-3-642-36379-5_2}{►}] \href{http://dx.doi.org/10.1007/978-3-642-36379-5_2}{\textbf{Representing the dual of objects in a four-dimensional GIS}}.\@ Ken Arroyo Ohori, Pawel Boguslawski and Hugo Ledoux. In A. Abdul Rahman, P. Boguslawski, C. Gold and M. N. Said (eds.), \emph{Developments in Multidimensional Spatial Data Models}, Lecture Notes in Geoinformation and Cartography, Springer Berlin Heidelberg, Johor Bahru, Malaysia, May 2013, pp. 17--31.}
-\newcommand{\papericcsand}{\item[\href{http://dx.doi.org/10.1007/978-3-642-39637-3_41}{►}] \href{http://dx.doi.org/10.1007/978-3-642-39637-3_41}{\textbf{Modelling higher dimensional data for GIS using generalised maps}}. Ken Arroyo Ohori, Hugo Ledoux and Jantien Stoter. In B. Murgante, S. Misra, M. Carlini, C. Torre, H. Q. Nguyen, D. Taniar, B. Apduhan and O. Gervasi (eds.), \emph{Computational Science and Its Applications --- ICCSA 2013. 13th International Conference, Ho Chi Minh City, Vietnam, June 24–27, 2013, Proceedings, Part I}, Lecture Notes in Computer Science 7971, Springer Berlin Heidelberg, June 2013, pp. 526--539.}
-\newcommand{\paperacmsigspatialextrusion}{\item[\href{http://dx.doi.org/10.1145/2525314.2525447}{►}] \href{http://dx.doi.org/10.1145/2525314.2525447}{\textbf{Using extrusion to generate higher-dimensional GIS datasets}}. Ken Arroyo Ohori and Hugo Ledoux. In Craig Knoblock, Peer Kr\"oger, John Krumm, Markus Schneider and Peter Widmayer (eds.), \emph{SIGSPATIAL'13: Proceedings of the 21st ACM SIGSPATIAL International Conference on Advances in Geographic Information Systems}, ACM, Orlando, Florida, United States, November 2013, pp. 398--401.}
-\newcommand{\papericaaincrementalconstruction}{\item[\href{http://dx.doi.org/10.1007/978-3-319-04126-1_4}{►}] \href{http://dx.doi.org/10.1007/978-3-319-04126-1_4}{\textbf{Constructing an $n$-dimensional cell complex from a soup of $(n-1)$-dimensional faces}}. Ken Arroyo Ohori, Guillaume Damiand and Hugo Ledoux. In Prosenjit Gupta and Christos Zaroliagis (eds.), \emph{Applied Algorithms. First International Conference, ICAA 2014, Kolkata, India, January 13--15, 2014. Proceedings}, Lecture Notes in Computer Science 8321, Springer International Publishing Switzerland, Kolkata, India, January 2014, pp. 37--48.}
-\newcommand{\papercgeoprepair}{\item[\href{http://dx.doi.org/10.1016/j.cageo.2014.01.009}{►}] \href{http://dx.doi.org/10.1016/j.cageo.2014.01.009}{\textbf{A triangulation-based approach to automatically repair GIS polygons}}. Hugo Ledoux, Ken Arroyo Ohori and Martijn Meijers. \emph{Computers \& Geosciences} 66, May 2014, pp. 121--131.}
-\newcommand{\paperijgisndstructures}{\item[\href{http://dx.doi.org/10.1080/13658816.2014.999683}{►}] \href{http://dx.doi.org/10.1080/13658816.2014.999683}{\textbf{An evaluation and classification of $n$D topological data structures for the representation of objects in a higher-dimensional GIS}}.\@ Ken Arroyo Ohori, Hugo Ledoux and Jantien Stoter. \emph{International Journal of Geographical Information Science} 29(5), May 2015, pp. 825--849.}
-\newcommand{\paperijgisextrusion}{\item[\href{http://dx.doi.org/10.1080/13658816.2015.1010535}{►}] \href{http://dx.doi.org/10.1080/13658816.2015.1010535}{\textbf{A dimension-independent extrusion algorithm using generalised maps}}. Ken Arroyo Ohori, Hugo Ledoux and Jantien Stoter. \emph{International Journal of Geographical Information Science} 29(7), July 2015, pp. 1166--1186.}
-\newcommand{\paperijgind}{\item[\href{http://dx.doi.org/10.3390/ijgi4031055}{►}] \href{http://dx.doi.org/10.3390/ijgi4031055}{\textbf{Modelling a 3D city model and its levels of detail as a true 4D model}}. Ken Arroyo Ohori, Hugo Ledoux, Filip Biljecki and Jantien Stoter. \emph{ISPRS International Journal of Geo-Information}, 4(3), September 2015, pp. 1055--1075.}
-\newcommand{\paperisprsnd}{\item[\href{http://dx.doi.org/10.5194/isprsannals-II-2-W2-1-2015}{►}] \href{http://dx.doi.org/10.5194/isprsannals-II-2-W2-1-2015}{\textbf{Storing a 3D city model, its levels of detail and the correspondences between objects as a 4D combinatorial map}}. Ken Arroyo Ohori, Hugo Ledoux and Jantien Stoter. In Alias Abdul Rahman, Umit Isikdag and Francesc Ant\'on Castro (eds.), Joint International Geoinformation Conference 2015, 28--30 October 2015, Kuala Lumpur, Malaysia, ISPRS Annals of the Photogrammetry, Remote Sensing and Spatial Information Sciences II--2/W2, ISPRS, Kuala Lumpur, Malaysia, October 2015, pp. 1--8.}
-\newcommand{\paperudmvobj}{\item[\href{http://dx.doi.org/10.2312/udmv.20151345}{►}] \href{http://dx.doi.org/10.2312/udmv.20151345}{\textbf{Automatic semantic-preserving conversion between OBJ and CityGML}}. Filip Biljecki and Ken Arroyo Ohori. In F. Biljecki and V. Tourre (eds.), \emph{Eurographics Workshop on Urban Data Modelling and Visualisation}, Eurographics Association, Delft, The Netherlands, November 2015, pp. 25--30.}
-\newcommand{\paperijgisroeland}{\item[\href{http://dx.doi.org/10.1080/13658816.2015.1072201}{►}] \href{http://dx.doi.org/10.1080/13658816.2015.1072201}{\textbf{Automatically enhancing CityGML LOD2 models with a corresponding indoor geometry}}. Roeland Boeters, Ken Arroyo Ohori, Filip Biljecki and Sisi Zlatanova. \emph{International Journal of Geographical Information Science} 29(12), December 2015, pp. 2248--2268.}
-\newcommand{\papermethodsxvoxelisation}{\item[\href{http://dx.doi.org/10.1016/j.mex.2016.01.001}{►}] \href{http://dx.doi.org/10.1016/j.mex.2016.01.001}{\textbf{Voxelization algorithms for geospatial applications: Computational methods for voxelating spatial datasets of 3D city models containing 3D surface, curve and point data models}}. Pirouz Nourian, Romulo Gon\c{c}alves, Sisi Zlatanova, Ken Arroyo Ohori and Anh Vu Vo. \emph{MethodsX} 3, January 2016, pp. 69--86.}
-
-% \nofiles%
-\begin{document}
-
-% Front cover
-\includepdf{cover-front.pdf}
-
-% Sloppy spacing works better for small paper sizes: better than text outside margin, esp. because of marginpars
-\sloppy
-
-\frontmatter
-
-\newgeometry{top=2.170cm,
- bottom=3.510cm,
- inner=2.1835cm,
- outer=2.1835cm,
- ignoremp}
-\input{pre}
-
-% No colour links in tables of contents and list of figures
-\cleardoublepage%
-\tableofcontents
-% \cleardoublepage%
-\listoffigures
-% \cleardoublepage%
-% \listoftables
-\restoregeometry%
-
-\mainmatter%
-
-% Lengths used for page head
-\newlength{\overflowingheadlen}
-\setlength{\overflowingheadlen}{\linewidth}
-\addtolength{\overflowingheadlen}{\marginparsep}
-\addtolength{\overflowingheadlen}{\marginparwidth}
-
-% Page style for preface
-\renewpagestyle{scrheadings}{
- {\hspace{-\marginparwidth}\hspace{-\marginparsep}\makebox[\overflowingheadlen][l]{\makebox[2em][r]{\thepage}\quad\rule{1pt}{100pt}\quad{}Preface}}%
- {\makebox[\overflowingheadlen][r]{\rightmark\quad\rule{1pt}{100pt}\quad\makebox[2em][l]{\thepage}}}%
- {}
-}{
- {}%
- {}%
- {}
-}
-\renewpagestyle{plain.scrheadings}{
- {}%
- {}%
- {}
-}{
- {\thepage}%
- {\makebox[\overflowingheadlen][r]{\thepage}}%
- {}
-}
-
-\input{preface}
-
-% Page style for chapters
-\renewpagestyle{scrheadings}{
- {\hspace{-\marginparwidth}\hspace{-\marginparsep}\makebox[\overflowingheadlen][l]{\makebox[2em][r]{\thepage}\quad\rule{1pt}{100pt}\quad{}\leftmark}}%
- {\makebox[\overflowingheadlen][r]{\rightmark\quad\rule{1pt}{100pt}\quad\makebox[2em][l]{\thepage}}}%
- {}
-}{
- {}%
- {}%
- {}
-}
-\renewpagestyle{plain.scrheadings}{
- {}%
- {}%
- {}
-}{
- {\thepage}%
- {\makebox[\overflowingheadlen][r]{\thepage}}%
- {}
-}
-
-\input{introduction}
-
-\setpartpreamble{
- \vspace{3cm}
- \begin{center}
- \includegraphics[width=0.8\linewidth]{figs/gmaps-3d-simplices}
- \end{center}
-}
-\newgeometry{top=2.170cm,
- bottom=3.510cm,
- inner=2.1835cm,
- outer=2.1835cm,
- ignoremp}
-\part{Representing geographic information}
-\label{pa:representation}
-\restoregeometry%
-% The underlying 3D simplicial complex in the representation of a cube as a 3D generalised map.
-
-\input{math}
-
-\input{modelling-background}
-
-\input{nd-modelling}
-
-\setpartpreamble{
- \vspace{5cm}
- \includegraphics[width=\linewidth]{figs/extrusion-steps}
-}
-\newgeometry{top=2.170cm,
- bottom=3.510cm,
- inner=2.1835cm,
- outer=2.1835cm,
- ignoremp}
-\part{Constructing and manipulating objects}
-\label{pa:operations}
-\restoregeometry%
-
-\input{operations-background}
-
-\input{extrusion}
-
-\input{incremental-construction}
-
-\input{linking-lods}
-
-\input{slicing}
-
-\bookmarksetup{startatroot}
-\addtocontents{toc}{\medskip\bigskip}
-
-\input{cleaning}
-
-\input{conclusions}
-
-\appendix%
-
-\addtocontents{toc}{\medskip\bigskip}
-
-\input{implementation}
-
-\cleardoublepage%
-\renewpagestyle{scrheadings}{
- {\makebox[2em][r]{\thepage}\quad\rule{1pt}{100pt}\quad\leftmark}%
- {\hfill\rightmark\quad\rule{1pt}{100pt}\quad\makebox[2em][l]{\thepage}}%
- {}
-}{
- {}%
- {}%
- {}
-}
-\renewpagestyle{plain.scrheadings}{
- {}%
- {}%
- {}
-}{
- {\thepage}%
- {\hfill\thepage}%
- {}
-}
-\newgeometry{top=2.170cm,
- bottom=3.510cm,
- inner=2.1835cm,
- outer=2.1835cm,
- ignoremp}
-
-\input{dictionary}
-
-\addtocontents{toc}{\medskip\bigskip}
-
-\backmatter%
-
-% Bibliograhy
-\bibliographystyle{plainnat}
-{\small\bibliography{docs}}
-
-\restoregeometry%
-
-% Page style for back matter
-\renewpagestyle{scrheadings}{
- {\hspace{-\marginparwidth}\hspace{-\marginparsep}\makebox[\overflowingheadlen][l]{\makebox[2em][r]{\thepage}\quad\rule{1pt}{100pt}\quad\leftmark}}%
- {\makebox[\overflowingheadlen][r]{\rightmark\quad\rule{1pt}{100pt}\quad\makebox[2em][l]{\thepage}}}%
- {}
-}{
- {}%
- {}%
- {}
-}
-\renewpagestyle{plain.scrheadings}{
- {}%
- {}%
- {}
-}{
- {\thepage}%
- {\makebox[\overflowingheadlen][r]{\thepage}}%
- {}
-}
-
-\cleardoublepage%
-\label{thesis:back}
-\pdfbookmark[-1]{Back matter}{thesis:back}
-
-\input{summary}
-
-\input{cv}
-
-% Back cover
-\clearpage
-\thispagestyle{empty}
-\null%
-\clearpage
-\includepdf{cover-back.pdf}
-
-\end{document}
\ No newline at end of file