README.md 5.85 KB
Newer Older
1
2
3
4
5
# CityDoctor2 Extensions
Extension modules to the core functionality of CityDoctor2. 

# Loading

6
7
8
Except for CityDoctorGUI, all extension modules are not loaded into the Maven project by default.  
Loading an extension module can be done by either loading the Maven module directly, or by adjusting the CityDoctorParent
pom.xml and moving the respective modules out of the comment-block in the module list found at the end of the file.
9
10
11

# Building

12
13
14
15
16
If the modules are loaded by including them in the CityDoctorParent pom, Maven will
automatically build them while building CityDoctor2.  
If the modules are loaded directly, they need to be built directly with Maven.

After building, the jars can be found in the **/target** subdirectory of each respective extension module.
17
18
19
20
21
22
23
24
25
26
27
28

# Module Information

## CityDoctorAutoPro

![Maintenance Level: Deprecated](../resources/Badges/MaintenanceLevel_Deprecated.svg)

The AutoPro (short for automated processing) module is an interface for the conversion of the internal data model to a C++
representation, to allow use of advanced functionalities of CGAL with CityDoctor2.

### Usage

29
30
31
32
33
34
> ⚠ The AutoPro module is deprecated and will be removed in a future release, once the CGAL functionalities have been ported to Java.

AutoPro requires a collection of .dll-files to run, some of which are not available as FOSS and thus cannot be
distributed with this project.  
Access to the collection, or information about the required .dll-files, can be granted upon request for a valid reason.
Contact a Maintainer of this project for further information in this regard.
35

36
---
37
38
39
40
41
42
43

## CityDoctorGUI
![Maintenance Level: Actively Maintained](../resources/Badges/MaintenanceLevel_ActivelyMaintained.svg)

The GUI module offers a graphical user interface for CityDoctor2, including a model viewer allowing for visual
inspection of validation results and found errors.

44
### View-Plugins
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63

The GUI is expandable via plugins, enabling the creation of views for custom functionalities or extensions of the CityDoctor2 core.  
Custom views can be created by extending the Abstract class `View` of the CityDoctorGUI and need to be registered by calling
`ViewRegistration.registerView(View view);` before starting the GUI.

### Usage

> ⚠ CityDoctorGUI requires a JDK/JRE containing the JavaFX library to run.  

Prebuilt binaries for the GUI are available in [CityDoctorReleases](https://transfer.hft-stuttgart.de/gitlab/citydoctor/citydoctorreleases).
After extracting the archive the GUI can be started with **start.bat**.

Binaries can be built with Maven using the create-binaries profile from the CityDoctorParent directory:  
```
mvn install -P create-binaries
```   

Lastly, the GUI can also be started by calling `MainWindow.main(args[])`.

64
---
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80

## CityDoctorHealer
![Maintenance Level: Inactively Maintained](../resources/Badges/MaintenanceLevel_InactivelyMaintained.svg)

CityDoctorHealer implements functionalities for the automated repair of geometries containing errors.
The healer uses naive approaches to fix geometrical errors, and thus, it cannot be guaranteed that semantical
correctness is maintained after the healing process.  


### Usage

Usage of CityDoctorHealer is similar to [CityDoctor](https://transfer.hft-stuttgart.de/gitlab/citydoctor/citydoctor2/-/tree/dev_GUI#usage).
An example start command looks like this:
```
java -classpath libs/*;plugins/*;CityDoctorHealer-<version>.jar de.hft.stuttgart.citydoctor2.CityDoctorHealer -in <path-to-gml-file>.gml -config <path-to-validation-config>.yml -xmlReport <path-to-xml-output>.xml -pdfReport <path-to-pdf-output>.pdf -out <path-to-output-gml>.gml
```
81
82
Note: Unlike CityDoctor core, the _-out_ argument is required.  
The -xml-output and -pdfReport arguments are still optional. 
83
84
85
86

To prevent infinite loops the `Healer` class has a limit for the number of healing iterations (default: 200). This limit
can be changed by calling `Healer.setNumberOfIterations(int limit)`. 

87
88
---

89
90
91
92
93
94
95
96
97
98
99
100
101
## CityDoctorHealerGenetic
![Maintenance Level: Abandoned](../resources/Badges/MaintenanceLevel_Abandoned.svg)

CityDoctorHealerGenetic uses a genetical algorithm to establish an optimal CityDoctorHealer healing-plan for geometries containing errors.

### Usage
> ⚠ This module has been abandoned. As of writing the module is still functional, but it may break at any time.
>Issues, bug reports and suggestions for this module will not be processed. Use at your own discretion.

Usage is nearly identical to CityDoctorHealer, only requiring changing the classpath to the HealerGenetic jar.

A View for usage with CityDoctorGUI is included.

102
103
---

104
## CityDoctorHealerGUI
105

106
107
![Maintenance Level: Inactively Maintained](../resources/Badges/MaintenanceLevel_InactivelyMaintained.svg)

108
109
CityDoctorGUI-view for CityDoctorHealer. Allows fine control over the automated healing steps, including a preview of the
result of each healing step.
110
111
112

### Usage

113
See [CityDoctorGUI View-plugins](#view-plugins)
114

115
---
116
117
118
119

## CityDoctorWebService
![Maintenance Level: Abandoned](../resources/Badges/MaintenanceLevel_Abandoned.svg)

120
Contains a web service implementation for CityDoctor2.
121
122
123
124
125

### Usage
> ⚠ This module has been abandoned. As of writing the module is still functional, but it may break at any time.
>Issues, bug reports and suggestions for this module will not be processed. Use at your own discretion.

126
127
128
129
130
> ⚠ CityDoctorWebservice requires connection to a PostgreSQL Server. Connection parameters need to be set in the
pgpass.conf file found in the /DBScripts directory.
> 
The PostgreSQL Server needs to contain a database called "CityDoctorDB" with a schema called "citydoctordb".  
The required tables will be automatically created by the web service if they're missing.
131

132
133
To run the web service, build the module and [deploy CityDoctorWebService.war](https://tomcat.apache.org/tomcat-9.0-doc/deployer-howto.html)
to a Tomcat server (version 8 or 9).
134

135
---
136
137
138
139


## License
[LGPL](http://www.gnu.org/licenses/lgpl-3.0.de.html)