Commit e421a450 authored by Erik Andresen's avatar Erik Andresen
Browse files

Merge branch 'develop'

# Conflicts:
#	CMakeLists.txt

Conflicts solved
parents 4bee5b55 a05c2c21
......@@ -2,3 +2,4 @@ build/
Makefile
bin/
ui_*
.idea/
# Change Log
All notable changes to this project will be documented in this file.
## v0.8.1 [Unreleased]
## v0.8.0 [Unreleased]
### Added
### Changed
### Bugs fixed
Heap error when using undo/redo while drawing
### Bugs
Several heap errors
Autosave not working properly
DXF-Import restricted
## v0.8.0 [05.03.2016]
### Added
#### JPSEDITOR
- 1.2.16 Undo/Redo when Line was edited
- 1.2.16 Change Info Text
- 1.2.16 Load HLines
......@@ -23,103 +37,4 @@ All notable changes to this project will be documented in this file.
- Length of line is displayed
- Show origin
- ...
- Room and door declarations
# Change Log
All notable changes to this project will be documented in this file.
## v0.8.0 [Unreleased]
### Added
#### JPSCORE
- CI with travis and Gitlab CI
- Compilation checked on Visual Studio 12 2013
- Added more validation tests
- Added statistics (calculate exit usage) for all exits
- Added voronoi based algorithm for inserting agents coming from the source or from matsim
- New option for the quickest path router. Sample options are:
```<parameters default_strategy="local_shortest">```
```<parameters default_strategy="global_shortest">```
``` <parameters cba_gain="0.15" reference_peds_selection="single" congestion_ratio="0.8" queue_vel_escaping_jam="0.2"
queue_vel_new_room="0.7" visibility_obstruction="4">
```
- New model with the generic name `Tordeux2015` and `id=3`. For use check the ini-files in the Utest-validation tests.
- Tests are sorted in `rimea_tests`, `juelich_tests` and `validation_tests`.
- Periodic boundary conditions with the option `<periodic>1</periodic>`.Works only with model 3.
- Added Floorfield to all exits, providing direction to target, direction to closest wall and cost estimates. Parameter to control wall-avoidance included.
#### JPSVIS
- Added option to load vtk files. Need to add the line ``` <gradient_field filename="floorfield.vtk">
``` in the header of the trajectory file. Alternatively drag and drop a vtk file on JPSvis.
- Fixed error displaying the total number of frames when using the scroolbar
#### JPSREPORT
- Added geometry information while plotting the voronoi cells
- Added option to disable plotting
- Issue a warning when the voronoi cell cannot be calculated
- Fixed error where all trajectories were colinear
#### JPSEDITOR
## v0.7.0 [2015-07-15]
### New Module
- JuPedSim: Editor for the geometry
### Added
- Risk tolerance factor (value in [0 1]) for pedestrian. Pedestrians with high values are likely to take more risks.
- Added pre-movement time of the agents. Only after this time, the concerned agents will start moving.
- Sources for generating agents at runtime. Parameter are frequency (agents per seconds) and maximum number
- Option to color the pedestrians by group, spotlight, velocity, group, knowledge, router, final\_goal, intermediate\_goal. Usage: (
```<trajectories format="xml-plain" fps="8" color_mode="group"> ```)
- More control over the triangulation specially to avoid skinny triangles. Usage: ```<navigation_mesh method="triangulation" minimum_distance_between_edges="0.5" minimum_angle_in_triangles="20" use_for_local_planning="true" />```
- Improved statistics. The flow curve for the different exits can be computed at runtime.
- Changelog file
- Rimea testcases
- Unit tests are now based on the Boost testing engine
#### JPSVIS
- Display the geometry structure individual room/subroom.
- Now build on OSX/Linux/Windows
### Changed
-
-
### Fixed
- Visiblity in 3D
- Numerous geometrical operations
## v0.6.0 - 2015-01-31
### Added
- Steering the simulation with predefined events (closing or opening doors during the simulation)
- Information sharing between the pedestrians. The agents now share their knowledge about closed doors.
- Pre evacuation time for groups of agents.
- Adjustable velocities on stairs and even terrain for group of agents.
- Stability and performance improvement. The simulation is approx 40% faster for larger scenarios and you will notice it
- New route choice model, cognitive map, giving agents the possibility to explore the environment and discover doors for instance.
- Different sensors for improving the navigation of pedestrians (smoke/jam sensor).
- New verification and validation tests.
- General statistics over the evacuation (for instance areas egress time and door usage)
- Support for Visual Studio and Xcode compilers.
### Changed
- refactor NumCPU and ExitCrossingStrategy tags to `num_threads and exit_crossing_strategy`
## v0.5.0 - 2014-08-05
First release of the the Juelich Pedestrian Simulator. Most noteworthy features:
- Simulate pedestrians movement in a space continuous geometry
- Forces based models for describing the pedestrians interactions
- Shortest and quickest path route choice strategies
- Loading and visualizing trajectories and geometries
- Easy to use visualization interface
- Making high quality videos directly from the visualization interface or generating png sequences
- XML based input files
\ No newline at end of file
- Room and door declarations
\ No newline at end of file
......@@ -107,11 +107,12 @@ set( SRCS
src/widgetsettings.cpp
src/jpsyahpointer.cpp
src/jpsconnection.cpp
src/UndoFramework/action.cpp
src/UndoFramework/lineaction.cpp
src/UndoFramework/actionstack.cpp
src/jpsregion.cpp
dxflib/src/dl_writer_ascii.cpp
dxflib/src/dl_dxf.cpp
src/UndoFramework/action.cpp
src/UndoFramework/actionstack.cpp
src/UndoFramework/lineaction.cpp
)
# all header files that should be treated with moc
set( HDR
......@@ -131,9 +132,7 @@ set( HDR
src/widgetsettings.h
src/jpsyahpointer.h
src/jpsconnection.h
src/UndoFramework/action.h
src/UndoFramework/lineaction.h
src/UndoFramework/actionstack.h
src/jpsregion.h
dxflib/src/dl_writer_ascii.h
dxflib/src/dl_writer.h
dxflib/src/dl_global.h
......@@ -145,6 +144,9 @@ set( HDR
dxflib/src/dl_creationadapter.h
dxflib/src/dl_codes.h
dxflib/src/dl_attributes.h
src/UndoFramework/action.h
src/UndoFramework/actionstack.h
src/UndoFramework/lineaction.h
)
......@@ -458,6 +460,7 @@ if(APPLE OR WIN32)
if(${QT4_INSTALLED})
include(DeployQt4)
install_qt4_executable("${EXECUTABLE}" "qsqlite")
elseif(${QT5_INSTALLED})
include(DeployQt5)
install_qt5_executable("${EXECUTABLE}" "qsqlite")
......
#-------------------------------------------------------------
# - build:
# docker build -t jupedsim/jpseditor .
# - run:
# 1. socat TCP-LISTEN:6000,reuseaddr,fork UNIX-CLIENT:\"$DISPLAY\"
# 2. docker -it -e DISPLAY=<your ip address> jupedsim/jpseditor
#-------------------------------------------------------------
FROM ubuntu:14.04
MAINTAINER Erik Andresen <e.andresen@uni-wuppertal.de>
# install required packages
RUN apt-get update && apt-get install -y \
build-essential \
cmake \
g++ \
git \
lcov \
doxygen \
qt5-default qttools5-dev-tools \
# python \
# python-dev \
# python-pip \
&& apt-get clean
# set environment
ENV HOME /home/jupedsim
# add user
RUN groupadd -r -g 1000 jupedsim && useradd -r -g jupedsim -u 1000 -m jupedsim
USER jupedsim
# install jpscore
RUN mkdir -p /home/jupedsim/workspace
RUN cd /home/jupedsim/workspace \
&& git clone --depth=5 https://cst.version.fz-juelich.de/jupedsim/jpseditor.git \
&& cd jpseditor \
&& mkdir -p build \
&& cd build \
&& cmake -D DESIRED_QT_VERSION=5 ..\
&& make
# by default /bin/bash is executed
CMD $HOME/workspace/jpseditor/bin/JPSeditor
\ No newline at end of file
......@@ -33,9 +33,10 @@
</property>
<addaction name="action_ffnen_xml"/>
<addaction name="action_ffnen"/>
<addaction name="action_ffnen_cogmap"/>
<addaction name="actionSpeichern"/>
<addaction name="actionSpeichern_dxf"/>
<addaction name="separator"/>
<addaction name="actionSpeichern_cogmap"/>
<addaction name="separator"/>
<addaction name="actionSettings"/>
<addaction name="separator"/>
......@@ -55,6 +56,7 @@
<addaction name="separator"/>
<addaction name="actionUndo"/>
<addaction name="actionRedo"/>
<addaction name="actionCopy"/>
<addaction name="separator"/>
<addaction name="actionWall"/>
<addaction name="actionDoor"/>
......@@ -67,6 +69,8 @@
<addaction name="actionDelete_single_line"/>
<addaction name="separator"/>
<addaction name="actionRoom"/>
<addaction name="actionLandmark"/>
<addaction name="actionLandmarkWidget"/>
</widget>
<widget class="QMenu" name="menuView">
<property name="title">
......@@ -560,6 +564,47 @@
<bool>true</bool>
</property>
</action>
<action name="actionSpeichern_cogmap">
<property name="enabled">
<bool>false</bool>
</property>
<property name="icon">
<iconset resource="Ressource.qrc">
<normaloff>:/filesave.png</normaloff>:/filesave.png</iconset>
</property>
<property name="text">
<string>Save CognitiveMap</string>
</property>
<property name="toolTip">
<string>Save CognitiveMap</string>
</property>
<property name="visible">
<bool>false</bool>
</property>
</action>
<action name="action_ffnen_cogmap">
<property name="icon">
<iconset resource="Ressource.qrc">
<normaloff>:/open.png</normaloff>:/open.png</iconset>
</property>
<property name="text">
<string>Load Cognitive Map</string>
</property>
<property name="toolTip">
<string>Load Cognitive Map</string>
</property>
<property name="visible">
<bool>false</bool>
</property>
</action>
<action name="actionCopy">
<property name="text">
<string>Copy</string>
</property>
<property name="shortcut">
<string>Ctrl+C</string>
</property>
</action>
</widget>
<resources>
<include location="Ressource.qrc"/>
......
......@@ -16,56 +16,255 @@
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="widget">
<widget class="QWidget" name="tab_2">
<attribute name="title">
<string>Landmark</string>
<string>Cognitive Map</string>
</attribute>
<widget class="QLabel" name="label">
<widget class="QTextEdit" name="textEdit">
<property name="geometry">
<rect>
<x>30</x>
<y>30</y>
<width>191</width>
<x>10</x>
<y>70</y>
<width>291</width>
<height>161</height>
</rect>
</property>
<property name="html">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;The purpose of this widget is to create one or multiple cognitive maps. The maps can be used as a representation of the agents' knowledge degree in JuPedSim. Use tabs Landmarks/Connections/Regions to make your specifications. If you need help have a look at the tutorial on our YouTube-Channel. (coming soon)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
<widget class="QLabel" name="label_3">
<property name="geometry">
<rect>
<x>10</x>
<y>20</y>
<width>241</width>
<height>31</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<pointsize>14</pointsize>
</font>
</property>
<property name="lineWidth">
<number>6</number>
</property>
<property name="text">
<string>Landmark:</string>
<string>Cognitive Map</string>
</property>
<property name="textFormat">
<enum>Qt::AutoText</enum>
</property>
</widget>
<widget class="QLabel" name="label_Waypoints2">
<widget class="Line" name="line_9">
<property name="geometry">
<rect>
<x>-10</x>
<y>250</y>
<width>341</width>
<height>20</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
<widget class="QLabel" name="label_5">
<property name="geometry">
<rect>
<x>10</x>
<y>280</y>
<width>241</width>
<height>31</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="lineWidth">
<number>6</number>
</property>
<property name="text">
<string>Save the current map</string>
</property>
<property name="textFormat">
<enum>Qt::AutoText</enum>
</property>
</widget>
<widget class="QLabel" name="label_6">
<property name="geometry">
<rect>
<x>20</x>
<y>390</y>
<width>241</width>
<height>31</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="lineWidth">
<number>6</number>
</property>
<property name="text">
<string>Save the current and x similar maps</string>
</property>
<property name="textFormat">
<enum>Qt::AutoText</enum>
</property>
</widget>
<widget class="QPushButton" name="save_button_cogmap">
<property name="geometry">
<rect>
<x>20</x>
<y>330</y>
<width>93</width>
<height>28</height>
</rect>
</property>
<property name="text">
<string>Save</string>
</property>
</widget>
<widget class="Line" name="line_10">
<property name="geometry">
<rect>
<x>-10</x>
<y>540</y>
<width>341</width>
<height>20</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
<widget class="QPushButton" name="cogmap_closeButton">
<property name="enabled">
<bool>false</bool>
<bool>true</bool>
</property>
<property name="geometry">
<rect>
<x>110</x>
<y>570</y>
<width>93</width>
<height>28</height>
</rect>
</property>
<property name="text">
<string>Close</string>
</property>
</widget>
<widget class="QSpinBox" name="spinBox_numberMaps">
<property name="geometry">
<rect>
<x>170</x>
<y>440</y>
<width>61</width>
<height>31</height>
</rect>
</property>
<property name="maximum">
<number>100000000</number>
</property>
</widget>
<widget class="QLabel" name="label_7">
<property name="geometry">
<rect>
<x>10</x>
<y>440</y>
<width>151</width>
<height>31</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>8</pointsize>
</font>
</property>
<property name="lineWidth">
<number>6</number>
</property>
<property name="text">
<string>How many maps in total?</string>
</property>
<property name="textFormat">
<enum>Qt::AutoText</enum>
</property>
</widget>
<widget class="Line" name="line_11">
<property name="geometry">
<rect>
<x>-10</x>
<y>370</y>
<width>341</width>
<height>20</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
<widget class="QPushButton" name="save_button_multiple_maps">
<property name="geometry">
<rect>
<x>20</x>
<y>470</y>
<width>291</width>
<y>500</y>
<width>93</width>
<height>28</height>
</rect>
</property>
<property name="text">
<string>Make it fuzzy!</string>
</property>
</widget>
</widget>
<widget class="QWidget" name="widget">
<attribute name="title">
<string>Landmarks</string>
</attribute>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>40</x>
<y>20</y>
<width>191</width>
<height>31</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>Press Add and throw rect!</string>
<string>Landmark:</string>
</property>
</widget>
<widget class="QListWidget" name="listWaypoints">
<widget class="QLabel" name="label_Waypoints2">
<property name="enabled">
<bool>false</bool>
<bool>true</bool>
</property>
<property name="geometry">
<rect>
<x>10</x>
<y>360</y>
<y>440</y>
<width>291</width>
<height>91</height>
<height>31</height>
</rect>
</property>
<property name="text">
<string>Press Set and throw rect!</string>
</property>
</widget>
<widget class="QPushButton" name="closeButton">
<property name="enabled">
......@@ -74,7 +273,7 @@
<property name="geometry">
<rect>
<x>110</x>
<y>560</y>
<y>570</y>
<width>93</width>
<height>28</height>
</rect>
......@@ -85,18 +284,18 @@
</widget>
<widget class="QPushButton" name="add_button">
<property name="enabled">
<bool>false</bool>
<bool>true</bool>
</property>
<property name="geometry">
<rect>
<x>30</x>
<y>510</y>
<x>20</x>
<y>480</y>
<width>112</width>
<height>34</height>
</rect>
</property>
<property name="text">
<string>Add</string>
<string>Set</string>
</property>
<property name="checkable">
<bool>true</bool>
......@@ -104,12 +303,12 @@
</widget>
<widget class="QPushButton" name="remove_button">
<property name="enabled">
<bool>false</bool>
<bool>true</bool>
</property>
<property name="geometry">
<rect>
<x>170</x>
<y>510</y>
<y>480</y>
<width>112</width>
<height>34</height>
</rect>
......@@ -120,12 +319,12 @@
</widget>
<widget class="QLabel" name="label_Waypoints">
<property name="enabled">
<bool>false</bool>
<bool>true</bool>