Commit e9f93a7c authored by Benedikt Zoennchen's avatar Benedikt Zoennchen

resolve merge conflicts.

parents b33810e8 599a95e0
...@@ -70,7 +70,7 @@ stages: ...@@ -70,7 +70,7 @@ stages:
artifacts: artifacts:
when: on_failure when: on_failure
paths: paths:
- "log_dir" - "vadere_logs"
expire_in: 1 week expire_in: 1 week
when: on_success when: on_success
......
...@@ -2,12 +2,19 @@ ...@@ -2,12 +2,19 @@
**Note:** Before writing into this file, read the guidelines in [Writing Changelog Entries.md](Documentation/contributing/Writing Changelog Entries.md). **Note:** Before writing into this file, read the guidelines in [Writing Changelog Entries.md](Documentation/contributing/Writing Changelog Entries.md).
## In Progress: v0.7 ## In Progress:
### Added ### Added
### Changed
## v1.0 (2019-06-13)
### Added
- Open a trajectory file in the stand-alone application `vadere-postvis.jar` via drag and drop from file explorer.
- Scenario elements like obstacles and targets can now be resized using the mouse in the topography creator tab (first, select element via left-click and then move mouse to one of its edges to get the resize handles). - Scenario elements like obstacles and targets can now be resized using the mouse in the topography creator tab (first, select element via left-click and then move mouse to one of its edges to get the resize handles).
- Draw also Voronoi diagram in `TikeGenerator`. - Draw also Voronoi diagram in `TikzGenerator`.
- Added new scenario element `AbsorbingArea` to absorb agents immediately. - Added new scenario element `AbsorbingArea` to absorb agents immediately.
* The new scenario element can be selected in `TopographyCreator` via the "emergency exit" button. * The new scenario element can be selected in `TopographyCreator` via the "emergency exit" button.
* The new scenario element is also taken into account by `SettingsDialaog` and `TikzGenerator`. * The new scenario element is also taken into account by `SettingsDialaog` and `TikzGenerator`.
...@@ -42,9 +49,9 @@ ...@@ -42,9 +49,9 @@
will check for overlapping `ScenarioElements` and check for inconsistence will check for overlapping `ScenarioElements` and check for inconsistence
settings such as missing TargetIDs for sources or inconsistenct speed ranges settings such as missing TargetIDs for sources or inconsistenct speed ranges
for pedestrians. See this for pedestrians. See this
[table](Documentation/changelLogImages/TopographyCheckerMessages.md) for [table](Documentation/changelog/TopographyCheckerMessages.md) for
supported warnings and erros as well as this supported warnings and erros as well as this
[picture](Documentation/changelLogImages/TopographyChecker.png) to see which [picture](Documentation/changelog/TopographyChecker.png) to see which
kind of overlap produces erros or warnings. kind of overlap produces erros or warnings.
- `VadereConsole`: Add `--output-dir [on, off]` (default: `on`) switch to `scenario-run` - `VadereConsole`: Add `--output-dir [on, off]` (default: `on`) switch to `scenario-run`
sub-command. This will will turn the ScenarioChecker on or off for the command sub-command. This will will turn the ScenarioChecker on or off for the command
...@@ -69,6 +76,7 @@ ...@@ -69,6 +76,7 @@
* vadere.jar -> vadere-gui.jar * vadere.jar -> vadere-gui.jar
* postvis.jar -> vadere-postvis.jar * postvis.jar -> vadere-postvis.jar
* vadere-console.jar -> remained unchanged * vadere-console.jar -> remained unchanged
- Header in output file have now the following form "[NAME]-PID[ID]". This avoids name conflicts and makes mapping to the relevant processor easy and fast.
- Migration to Java 11 (OpenJDK). - Migration to Java 11 (OpenJDK).
- Removed directory `Documentation/version-control` which contained the Git hooks. The Git hooks are not required anymore. Instead, added `git rev-parse HEAD` to file `VadereSimulator/pom.xml` to create `VadereSimulator/resources/current_commit_hash.txt` during each build via `mvn compile`. - Removed directory `Documentation/version-control` which contained the Git hooks. The Git hooks are not required anymore. Instead, added `git rev-parse HEAD` to file `VadereSimulator/pom.xml` to create `VadereSimulator/resources/current_commit_hash.txt` during each build via `mvn compile`.
**Note:** The file `current_commit_hash.txt` is created during Maven's validation phase, i.e., before the actual build. **Note:** The file `current_commit_hash.txt` is created during Maven's validation phase, i.e., before the actual build.
......
# OpenCL Installation (optional but recommended)
Vadere uses computer's video card to speed up some computations. Therefore, following OpenCL components should be installed:
* the OpenCL Installable Client Driver loader also called ICD loader (Opencl.dll for Windows and libOpenCL.so for Linux)
* drivers for your device(s)
Both should be offered by the vendor of your device (often there are also open-source solutions). The device can be a CPU as well as a GPU (recommanded). For example, if you have a NVIDIA GPU instaling your drivers should be enough to install both components.
Vadere will search for the best suiable device which is supported. On a desktop workstation this should be your video card (GPU). If there is no device supporting OpenCL Vadere will use a plain and slower Java-implementation instead.
Please, use following instructions to set up the OpenCL components for your operating system:
* Windows: For further information using OpenCL on Windows read the paragraph Running an OpenCL application [click here](https://streamcomputing.eu/blog/2015-03-16/how-to-install-opencl-on-windows/).
* OS X: OpenCL is pre-installed for OS X.
* Linux: Please refer to the installation manual of your Linux distribution.
* [Sources: OpenCL HowTo](https://wiki.tiker.net/OpenCLHowTo)
* Tips and official packages (Ubuntu):
<details>
* Use the console tool `clinfo` (`sudo apt-get install clinfo`) to see the current status in terminal
* Drivers commonly have the prefix `opencl-icd` (to look at most opencl related packages run `apt search opencl`). Some that may be helpful:
* `beignet-opencl-icd` (OpenCL library for Intel GPUs)
* `mesa-opencl-icd` (free and open source implementation of the OpenCL API)
* `nvidia-opencl-icd`
* `ocl-icd-opencl-dev` (installs opencl development files and can be required for compiling)
* `ocl-icd-libopencl1` (Generic OpenCL ICD Loader)
</details>
* [Intel Driverpack (only driver needed)](https://software.intel.com/en-us/articles/opencl-drivers#latest_linux_driver)
...@@ -24,13 +24,19 @@ The Vadere framework includes a mesh generator for unstructured high-quality 2D ...@@ -24,13 +24,19 @@ The Vadere framework includes a mesh generator for unstructured high-quality 2D
## Installation ## Installation
### Download Releases ### Dependencies
* Java 11 or above (OpenJDK recommended -> see the official [Java website](https://jdk.java.net/))
* OpenCL (optional but recommended -> see the [install instructions](https://gitlab.lrz.de/vadere/vadere/tree/master/Documentation/installation/OpenCL-Installation.md) for details)
### Pre-Built Releases
Latest build of master: Latest build of master:
* [Windows](http://www.vadere.org/builds/master/vadere.master.windows.zip) * [Windows](http://www.vadere.org/builds/master/vadere.master.windows.zip)
* [Linux](http://www.vadere.org/builds/master/vadere.master.linux.zip) * [Linux](http://www.vadere.org/builds/master/vadere.master.linux.zip)
Stable releases and selected branch-builds are located on [www.vadere.org/releases/](http://www.vadere.org/releases/) Stable releases and selected branch-builds:
* [www.vadere.org/releases/](http://www.vadere.org/releases/)
The ZIP file contains: The ZIP file contains:
* **README.md** - this README file. * **README.md** - this README file.
...@@ -38,65 +44,36 @@ The ZIP file contains: ...@@ -38,65 +44,36 @@ The ZIP file contains:
* **vadere-console.jar** - provides the command line version of Vadere and allows easy integration into other applications. * **vadere-console.jar** - provides the command line version of Vadere and allows easy integration into other applications.
* **VadereModelTests** - contains test scenarios for pedestrian locomotion models. Note: The tests are also useful for a "getting started" (see below "Run Built-In Examples" for details). * **VadereModelTests** - contains test scenarios for pedestrian locomotion models. Note: The tests are also useful for a "getting started" (see below "Run Built-In Examples" for details).
To execute the `.jar` files it is highly recommended to use Java 11 (OpenJDK). ### Run the Application
### Build from Source
#### Dependencies
* Java 11 (OpenJDK recommended)
* Maven 3.0
* Git
* OpenCL (optional but recommended)
**Note:** Please, ensure that the Git executable can be found in the `PATH` variable of your operating system.
#### Install OpenCL (optional but recommended)
Vadere uses computer's video card to speed up some computations. Therefore, following OpenCL components should be installed:
* the OpenCL Installable Client Driver loader also called ICD loader (Opencl.dll for Windows and libOpenCL.so for Linux) Open a terminal and enter `path/to/openjdk/java -jar vadere-gui.jar`.
* drivers for your device(s)
Both should be offered by the vendor of your device (often there are also open-source solutions). The device can be a CPU as well as a GPU (recommanded). For example, if you have a NVIDIA GPU instaling your drivers should be enough to install both components. ### Run Built-In Examples
Vadere will search for the best suiable device which is supported. On a desktop workstation this should be your video card (GPU). If there is no device supporting OpenCL Vadere will use a plain and slower Java-implementation instead.
Please, use following instructions to set up the OpenCL components for your operating system: With the following steps, you can run a simulation with one of the built-in examples from [VadereModelTests](VadereModelTests):
* Windows: For further information using OpenCL on Windows read the paragraph Running an OpenCL application [click here](https://streamcomputing.eu/blog/2015-03-16/how-to-install-opencl-on-windows/). - Start Vadere
* OS X: OpenCL is pre-installed for OS X. - Click *Project* > *Open*
* Linux: Please refer to the installation manual of your Linux distribution. - Choose `vadere.project` of one of the test projects, e.g. [TestOSM](https://gitlab.lrz.de/vadere/vadere/tree/master/VadereModelTests/TestOSM) and click *open*
* [Sources: OpenCL HowTo](https://wiki.tiker.net/OpenCLHowTo) - Select tahe scenario on the left and press *run selected scenario*
* Tips and official packages (Ubuntu):
<details>
* Use the console tool `clinfo` (`sudo apt-get install clinfo`) to see the current status in terminal ## Build from Source
* Drivers commonly have the prefix `opencl-icd` (to look at most opencl related packages run `apt search opencl`). Some that may be helpful:
* `beignet-opencl-icd` (OpenCL library for Intel GPUs)
* `mesa-opencl-icd` (free and open source implementation of the OpenCL API)
* `nvidia-opencl-icd`
* `ocl-icd-opencl-dev` (installs opencl development files and can be required for compiling)
* `ocl-icd-libopencl1` (Generic OpenCL ICD Loader)
</details>
* [Intel Driverpack (only driver needed)](https://software.intel.com/en-us/articles/opencl-drivers#latest_linux_driver)
#### Run the Application ### Dependencies
1. Get the Source: Run `git clone https://gitlab.lrz.de/vadere/vadere.git`. * Java 11 or above (OpenJDK recommended)
2. Build the Application: Go to the project directory and run `mvn clean package` (or `mvn clean package -Dmaven.test.skip` if you want to skip the unit tests). This will build `vadere.jar`, `vadere-console.jar` and `postvis.jar`. * Maven 3.0
3. Start the Application: After building the application, you can start Vadere by running `java -jar VadereGui/target/vadere.jar`. * Git
4. (If you only want to use the Postvisualization-Tool you can do so by running `java -jar VadereGui/target/postvis.jar`). * OpenCL (optional but recommended)
## Run Built-In Examples **Note:** Please, ensure that the Git executable can be found in the `PATH` variable of your operating system.
With the following steps, you can run a simulation with one of the built-in examples from [VadereModelTests](VadereModelTests): ### Build Instructions
- start Vadere 1. git clone https://gitlab.lrz.de/vadere/vadere.git
- *Project* > *Open* 2. cd vadere
- choose `vadere.project` of one of the projects e.g. [TestOSM](https://gitlab.lrz.de/vadere/vadere/tree/master/VadereModelTests/TestOSM) and click *open* 3. mvn clean
- select the scenario on the left and press *run selected scenario* 4. mvn -Dmaven.test.skip=true package
## Changelog ## Changelog
......
...@@ -21,7 +21,7 @@ short_timeout_in_seconds = 2 * 60 ...@@ -21,7 +21,7 @@ short_timeout_in_seconds = 2 * 60
def parse_command_line_arguments(): def parse_command_line_arguments():
parser = argparse.ArgumentParser(description="Run all scenario files.") parser = argparse.ArgumentParser(description="Run all scenario files.")
parser.add_argument("--scenario", "-s", type=str, nargs="?", help="Run only the given scenario file and not all. E.g. \"VadereModelTests/TestOSM/scenarios/basic_2_density_discrete_ca.scenario\"") parser.add_argument("scenario", type=str, nargs="?", help="Run only the given scenario file and not all. E.g., \"VadereModelTests/TestOSM/scenarios/basic_2_density_discrete_ca.scenario\"")
args = parser.parse_args() args = parser.parse_args()
...@@ -80,13 +80,10 @@ def find_scenario_files(path="VadereModelTests", scenario_search_pattern = "*.sc ...@@ -80,13 +80,10 @@ def find_scenario_files(path="VadereModelTests", scenario_search_pattern = "*.sc
def run_scenario_files_with_vadere_console(scenario_files, vadere_console="VadereSimulator/target/vadere-console.jar", scenario_timeout_in_sec=short_timeout_in_seconds): def run_scenario_files_with_vadere_console(scenario_files, vadere_console="VadereSimulator/target/vadere-console.jar", scenario_timeout_in_sec=short_timeout_in_seconds):
output_dir = "output" output_dir = "output"
log_dir = "log_dir" log_base_dir = "vadere_logs"
if not os.path.exists(output_dir): makedirs_if_non_existing(output_dir)
os.makedirs(output_dir) makedirs_if_non_existing(log_base_dir)
if not os.path.exists(log_dir):
os.makedirs(log_dir)
total_scenario_files = len(scenario_files) total_scenario_files = len(scenario_files)
...@@ -98,10 +95,18 @@ def run_scenario_files_with_vadere_console(scenario_files, vadere_console="Vader ...@@ -98,10 +95,18 @@ def run_scenario_files_with_vadere_console(scenario_files, vadere_console="Vader
try: try:
print("Running scenario file ({}/{}): {}".format(i + 1, total_scenario_files, scenario_file)) print("Running scenario file ({}/{}): {}".format(i + 1, total_scenario_files, scenario_file))
# A scenario filename has the form "VadereModelTests/TestOSM/scenarios/chicken_floorfield_ok.scenario"
# Use second-level directory as subdirectory for logging (e.g., "TestOSM").
log_sub_dir = scenario_file.split(os.path.sep)[1]
log_dir = os.path.join(".", log_base_dir, log_sub_dir)
makedirs_if_non_existing(log_dir)
scenario_name = os.path.basename(scenario_file).split('.')[0] scenario_name = os.path.basename(scenario_file).split('.')[0]
log_file = os.path.join(".", log_dir, scenario_name + ".log") log_file = os.path.join(log_dir, scenario_name + ".log")
print(log_file) print(" Log file: " + log_file)
# Measure wall time and not CPU time. # Measure wall time and not CPU time.
wall_time_start = time.time() wall_time_start = time.time()
...@@ -124,17 +129,16 @@ def run_scenario_files_with_vadere_console(scenario_files, vadere_console="Vader ...@@ -124,17 +129,16 @@ def run_scenario_files_with_vadere_console(scenario_files, vadere_console="Vader
except subprocess.TimeoutExpired as exception: except subprocess.TimeoutExpired as exception:
print("Scenario file failed: {}".format(scenario_file)) print("Scenario file failed: {}".format(scenario_file))
print("-> Reason: timeout after {} s".format(exception.timeout)) print("-> Reason: timeout after {} s".format(exception.timeout))
failed_summary.append("Scenario file failed: {}".format(scenario_file)) failed_summary.append("Scenario file failed: {}".format(scenario_file))
failed_summary.append("-> Reason: timeout after {} s".format(exception.timeout)) failed_summary.append("-> Reason: timeout after {} s".format(exception.timeout))
failed_scenarios_with_exception.append((scenario_file, exception)) failed_scenarios_with_exception.append((scenario_file, exception))
except subprocess.CalledProcessError as exception: except subprocess.CalledProcessError as exception:
prefix = "" print("Scenario file failed: {}".format(scenario_file))
if "TestOSM" in scenario_file:
prefix = " * OSM * "
print(prefix + "Scenario file failed: {}".format(scenario_file))
print("-> Reason: non-zero return value {}".format(exception.returncode)) print("-> Reason: non-zero return value {}".format(exception.returncode))
print(" {}".format(read_first_error_linies(exception.stderr))) print(" {}".format(read_first_error_linies(exception.stderr)))
failed_summary.append(prefix + "Scenario file failed: {}".format(scenario_file))
failed_summary.append("Scenario file failed: {}".format(scenario_file))
failed_summary.append("-> Reason: non-zero return value {}".format(exception.returncode)) failed_summary.append("-> Reason: non-zero return value {}".format(exception.returncode))
failed_summary.append(" {}".format(read_first_error_linies(exception.stderr))) failed_summary.append(" {}".format(read_first_error_linies(exception.stderr)))
...@@ -145,6 +149,10 @@ def run_scenario_files_with_vadere_console(scenario_files, vadere_console="Vader ...@@ -145,6 +149,10 @@ def run_scenario_files_with_vadere_console(scenario_files, vadere_console="Vader
return {"passed": passed_scenarios, "failed": failed_scenarios_with_exception, "failed_summary": failed_summary} return {"passed": passed_scenarios, "failed": failed_scenarios_with_exception, "failed_summary": failed_summary}
def makedirs_if_non_existing(directory):
if not os.path.exists(directory):
os.makedirs(directory)
def read_first_error_linies(error_byte_string): def read_first_error_linies(error_byte_string):
err_string_lines = error_byte_string.decode('utf-8').split('\n') err_string_lines = error_byte_string.decode('utf-8').split('\n')
if len(err_string_lines) >= 2: if len(err_string_lines) >= 2:
......
This diff is collapsed.
# Extract line and branch coverage (in percentage) from HTML coverage reports
# which are created by Maven's jacoco plugin.
# Use top-level pom.xml to search in correct subdirectories.
#
# Wach out: call this script from root directory of project. E.g.
#
# python Tools/my_script.py
import xml.etree.ElementTree as ET
import os
import re
def get_modules_from_pom_file(filename="pom.xml"):
"""Return a list of submodules which where found in passed "pom.xml"."""
xml_name_spaces = {
"default": "http://maven.apache.org/POM/4.0.0"
}
xml_tree = ET.parse(filename)
xml_root = xml_tree.getroot()
exclude_list = ["./VadereAnnotation", "./VadereGui"]
modules = xml_root.findall("default:modules/default:module", xml_name_spaces)
module_names = [module.text for module in modules if module.text not in exclude_list]
return module_names
def extract_line_and_branch_coverage(module_names):
"""Return a dictionary which maps module name to line and branch coverage tuple."""
module_to_coverage = dict()
default_coverage_file = "target/site/coverage-reports/index.html"
for module in module_names:
coverage_path = os.path.join(module, default_coverage_file)
with open(coverage_path, "r") as file:
coverage_report = file.read()
regex_pattern = re.compile(r"Total.*?([0-9]{1,3})%.*?([0-9]{1,3})%")
match = regex_pattern.search(coverage_report)
if match:
line_coverage = float(match.group(1))
branch_coverage = float(match.group(2))
module_to_coverage[module] = (line_coverage, branch_coverage)
else:
raise Exception("Coverage data not found for module: {}".format(module))
return module_to_coverage
def print_averaged_line_coverage(coverage_data):
"""GitLab CI tools read out the stdout output of the build process. Therefore, print coverage info to stdout."""
total_modules = len(coverage_data)
line_coverage_data = [line_coverage for (line_coverage, branch_coverage) in coverage_data.values()]
branch_coverage_data = [branch_coverage for (line_coverage, branch_coverage) in coverage_data.values()]
summed_line_coverage_data = sum(line_coverage_data)
summed_branch_coverage_data = sum(branch_coverage_data)
# By default, GitLab CI parses only integers.
averaged_line_coverage = int(round(summed_line_coverage_data / total_modules, 0))
averaged_branch_coverage = int(round(summed_branch_coverage_data / total_modules, 0))
print("Line Coverage: Total {}%".format(averaged_line_coverage))
print("Branch Coverage: {}%".format(averaged_branch_coverage))
if __name__ == "__main__":
module_names = get_modules_from_pom_file()
module_to_coverage = extract_line_and_branch_coverage(module_names)
print_averaged_line_coverage(module_to_coverage)
...@@ -14,6 +14,7 @@ DeleteTestQuestionOne.text=Do you really want to delete this scenario? ...@@ -14,6 +14,7 @@ DeleteTestQuestionOne.text=Do you really want to delete this scenario?
DeleteTestQuestionMultiple.text=Do you really want to delete these scenarios? DeleteTestQuestionMultiple.text=Do you really want to delete these scenarios?
DeleteTestQuestion.title=Delete scenario DeleteTestQuestion.title=Delete scenario
Gui.DropAction.Error.text=Cannot import file!
Error.text=Error. Error.text=Error.
Clone.text=clone Clone.text=clone
Finished.text=Finished. Finished.text=Finished.
...@@ -234,6 +235,7 @@ SettingsDialog.chbShowTargets.text=Show Targets ...@@ -234,6 +235,7 @@ SettingsDialog.chbShowTargets.text=Show Targets
SettingsDialog.chbShowSources.text=Show Sources SettingsDialog.chbShowSources.text=Show Sources
SettingsDialog.chbShowAbsorbingAreas.text=Show Absorbing Areas SettingsDialog.chbShowAbsorbingAreas.text=Show Absorbing Areas
SettingsDialog.chbShowStairs.text=Show Stairs SettingsDialog.chbShowStairs.text=Show Stairs
SettingsDialog.chbShowMeasurementAreas.text=Show Measurement Areas
ProjectView.btnSnapshot.tooltip=Snapshot ProjectView.btnSnapshot.tooltip=Snapshot
ProjectView.btnPNGSnapshot.tooltip=PNG Snapshot ProjectView.btnPNGSnapshot.tooltip=PNG Snapshot
ProjectView.btnSVGSnapshot.tooltip=SVG Snapshot ProjectView.btnSVGSnapshot.tooltip=SVG Snapshot
...@@ -327,7 +329,6 @@ TopographyCreator.btnGenerateIds.tooltip=Generate missing Ids for sources, targe ...@@ -327,7 +329,6 @@ TopographyCreator.btnGenerateIds.tooltip=Generate missing Ids for sources, targe
select_shape_tooltip=Select Shape select_shape_tooltip=Select Shape
# tab titles Topography creator / postvis # tab titles Topography creator / postvis
Tab.Simulation.title=Simulation Tab.Simulation.title=Simulation
Tab.Model.title=Model Tab.Model.title=Model
...@@ -373,3 +374,5 @@ RunScenarioTopographyCheckerErrors.text=The simulation can't be started with err ...@@ -373,3 +374,5 @@ RunScenarioTopographyCheckerErrors.text=The simulation can't be started with err
RunScenarioNotReadyToRun.text=One or more of the selected scenarios isn't ready to run. RunScenarioNotReadyToRun.text=One or more of the selected scenarios isn't ready to run.
ActionEditScenarioDescription.menu.title=Edit description ActionEditScenarioDescription.menu.title=Edit description
Data.TrajectoryOrScenarioFile.NoData.text=No trajectory or scenario file found.
...@@ -13,6 +13,7 @@ DeleteTestQuestionSingle.text=Dieses Szenario wirklich l\u00F6schen? ...@@ -13,6 +13,7 @@ DeleteTestQuestionSingle.text=Dieses Szenario wirklich l\u00F6schen?
DeleteTestQuestionMultiple.text=Diese Szenarios wirklich l\u00F6schen? DeleteTestQuestionMultiple.text=Diese Szenarios wirklich l\u00F6schen?
DeleteTestQuestion.title=Szenario l\u00F6schen DeleteTestQuestion.title=Szenario l\u00F6schen
Gui.DropAction.Error.text=Datei nicht importierbar!
Error.text=Fehler. Error.text=Fehler.
Clone.text=Klon Clone.text=Klon
Finished.text=Fertig. Finished.text=Fertig.
...@@ -229,6 +230,7 @@ SettingsDialog.chbShowObstacles.text=Hindernisse anzeigen ...@@ -229,6 +230,7 @@ SettingsDialog.chbShowObstacles.text=Hindernisse anzeigen
SettingsDialog.chbShowTargets.text=Ziele anzeigen SettingsDialog.chbShowTargets.text=Ziele anzeigen
SettingsDialog.chbShowSources.text=Quellen anzeigen SettingsDialog.chbShowSources.text=Quellen anzeigen
SettingsDialog.chbShowAbsorbingAreas.text=Absorbierende Bereiche anzeigen SettingsDialog.chbShowAbsorbingAreas.text=Absorbierende Bereiche anzeigen
SettingsDialog.chbShowMeasurementAreas.text=Messbereich anzeigen
SettingsDialog.chbShowStairs.text=Treppen anzeigen SettingsDialog.chbShowStairs.text=Treppen anzeigen
ProjectView.btnSnapshot.tooltip=Snapshot ProjectView.btnSnapshot.tooltip=Snapshot
ProjectView.btnPNGSnapshot.tooltip=PNG-Snapshot ProjectView.btnPNGSnapshot.tooltip=PNG-Snapshot
...@@ -367,3 +369,5 @@ RunScenarioTopographyCheckerErrors.text=Die Simulation kann nicht mit einer fehl ...@@ -367,3 +369,5 @@ RunScenarioTopographyCheckerErrors.text=Die Simulation kann nicht mit einer fehl
RunScenarioNotReadyToRun.text=Eines oder mehrere der ausgew\u00e4hlten Szenario sind derzeit nicht lauff\u00e4hig. RunScenarioNotReadyToRun.text=Eines oder mehrere der ausgew\u00e4hlten Szenario sind derzeit nicht lauff\u00e4hig.
ActionEditScenarioDescription.menu.title=Beschreibung bearbeiten ActionEditScenarioDescription.menu.title=Beschreibung bearbeiten
Data.TrajectoryOrScenarioFile.NoData.text=Keine Trajektorien- oder Szenario-Datei gefunden.
\ No newline at end of file
...@@ -118,6 +118,10 @@ public class DefaultSimulationConfig extends DefaultConfig { ...@@ -118,6 +118,10 @@ public class DefaultSimulationConfig extends DefaultConfig {
return showAbsorbingAreas; return showAbsorbingAreas;
} }
public boolean isShowMeasurementAreas() {
return showMeasurementArea;
}
public void setShowTargetPotentielFieldMesh(final boolean showTargetPotentielFieldMesh) { public void setShowTargetPotentielFieldMesh(final boolean showTargetPotentielFieldMesh) {
this.showTargetPotentielFieldMesh = showTargetPotentielFieldMesh; this.showTargetPotentielFieldMesh = showTargetPotentielFieldMesh;
setChanged(); setChanged();
......
...@@ -87,7 +87,7 @@ public class SettingsDialog extends JDialog { ...@@ -87,7 +87,7 @@ public class SettingsDialog extends JDialog {
// Layout definition for sub panels // Layout definition for sub panels
FormLayout additionalLayout = new FormLayout("5dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 5dlu", // col FormLayout additionalLayout = new FormLayout("5dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 5dlu", // col
"5dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 5dlu"); // rows "5dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 5dlu"); // rows
FormLayout colorLayout = new FormLayout("5dlu, pref, 2dlu, pref:grow, 2dlu, pref, 2dlu, pref, 5dlu", // col FormLayout colorLayout = new FormLayout("5dlu, pref, 2dlu, pref:grow, 2dlu, pref, 2dlu, pref, 5dlu", // col
"5dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 5dlu"); // rows "5dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 5dlu"); // rows
colorLayeredPane.setLayout(colorLayout); colorLayeredPane.setLayout(colorLayout);
...@@ -107,6 +107,7 @@ public class SettingsDialog extends JDialog { ...@@ -107,6 +107,7 @@ public class SettingsDialog extends JDialog {
JCheckBox chShowTargets = new JCheckBox((Messages.getString("SettingsDialog.chbShowTargets.text"))); JCheckBox chShowTargets = new JCheckBox((Messages.getString("SettingsDialog.chbShowTargets.text")));
JCheckBox chShowSources = new JCheckBox((Messages.getString("SettingsDialog.chbShowSources.text"))); JCheckBox chShowSources = new JCheckBox((Messages.getString("SettingsDialog.chbShowSources.text")));
JCheckBox chShowAbsorbingAreas = new JCheckBox((Messages.getString("SettingsDialog.chbShowAbsorbingAreas.text")));