Commit e421a450 authored by Erik Andresen's avatar Erik Andresen

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"/>
......
This diff is collapsed.
......@@ -60,7 +60,8 @@ HEADERS += \
src/jpsconnection.h \
src/UndoFramework/actionstack.h \
src/UndoFramework/action.h \
src/UndoFramework/lineaction.h
src/UndoFramework/lineaction.h \
src/jpsregion.h
SOURCES += \
......@@ -85,7 +86,8 @@ SOURCES += \
src/jpsconnection.cpp \
src/UndoFramework/actionstack.cpp \
src/UndoFramework/action.cpp \
src/UndoFramework/lineaction.cpp
src/UndoFramework/lineaction.cpp \
src/jpsregion.cpp
RESOURCES += forms/Ressource.qrc
......
This diff is collapsed.
/**
* \file GraphicView.h
* \date Jun 26, 2015
* \version v0.7
* \version v0.8.1
* \copyright <2009-2015> Forschungszentrum Jülich GmbH. All rights reserved.
*
* \section License
......@@ -39,6 +39,9 @@
#include "./UndoFramework/actionstack.h"
using ptrConnection = std::shared_ptr<jpsConnection>;
using ptrLandmark = std::shared_ptr<jpsLandmark>;
class jpsDatamanager;
class jpsGraphicsView: public QGraphicsView {
......@@ -46,11 +49,22 @@ class jpsGraphicsView: public QGraphicsView {
public:
//Constructor
jpsGraphicsView(QWidget* parent = nullptr);
jpsGraphicsView(QWidget* parent = nullptr, jpsDatamanager* datamanager=nullptr);
//Destructor
~jpsGraphicsView();
QGraphicsScene* GetScene();
const qreal& GetTranslationX() const;
const qreal& GetTranslationY() const;
const qreal& GetScaleF() const;
//Pos
const QPointF& return_Pos() const;
void SetDatamanager(jpsDatamanager* datamanager);
//Change modes
void change_stat_anglesnap();
bool get_stat_anglesnap();
......@@ -82,8 +96,6 @@ public:
qreal CalcGridSize();
void ShowOrigin();
//Pos
QPointF return_Pos();
//Catch lines, points and intersections
void catch_points();
......@@ -111,20 +123,22 @@ public:
void SetVLine();
void EditLine(QPointF* point);
qreal ReturnLineLength();
void start_Copy_function();
void Copy_lines(const QPointF& delta);
// Landmark
void delete_landmark();
void catch_landmark();
void select_landmark(jpsLandmark *landmark);
void addLandmark();
void addLandmark(const QPointF& pos);
// unmark Landmarks see slots
QList<jpsLandmark *> get_landmarks();
//Waypoints/Connections and YAHPointer
//Connections and YAHPointer
QGraphicsRectItem* GetCurrentSelectRect();
void ShowWaypoints(QList<ptrWaypoint > waypoints);
void SetStatDefConnections(const int& stat);
void ShowYAHPointer(const QPointF& pos, const qreal& dir);
void ClearWaypointLabels();
void ShowConnections(QList<ptrConnection> cons);
void ClearConnections();
......@@ -138,9 +152,9 @@ public:
void RedoLineEdit(const int &lineID, const QLineF &old_line);
public slots:
//Waypoints
void StatAssoDef();
void ClearWaypoints();
//Landmarks/Regions
void StatPositionDef();
void ChangeRegionStatDef();
//GridSettings
void ActivateLineGrid();
void ActivatePointGrid();
......@@ -162,6 +176,7 @@ protected:
virtual void mouseReleaseEvent(QMouseEvent *event);
private:
jpsDatamanager* _datamanager;
QGraphicsLineItem* current_line;
QPolygonF polygon;
//std::vector<jpsLineItem> line_vector;
......@@ -184,6 +199,8 @@ private:
bool statExit;
bool statLandmark;
bool _statHLine;
int _statCopy;
QPointF _copyOrigin;
qreal catch_radius;
qreal _scaleFactor;
qreal gl_scale_f;
......@@ -202,20 +219,20 @@ private:
int id_counter;
//Landmark and waypoints
QList<jpsLandmark* > LLandmarks;
jpsLandmark* markedLandmark;
QGraphicsRectItem* currentLandmarkRect;
QList<QGraphicsEllipseItem* > _waypoints;
QList<QGraphicsLineItem* > _connections;
QList<QGraphicsLineItem* > _yahPointer;
QList<QGraphicsTextItem* > _waypointLabels;
int _statDefConnections;
bool _regionDef;
bool _posDef;
QGraphicsLineItem* _currentVLine;
QPointF* _currentTrackedPoint;
QGraphicsPixmapItem* gridmap;
bool _statLineEdit;
bool lines_collided;
bool _assoDef;
bool _gridmode;
//Undo/Redo
......@@ -230,9 +247,11 @@ signals:
void no_drawing();
void remove_marked_lines();
void remove_all();
void landmark_added();
void AssoDefCompleted();
void PositionDefCompleted();
void LineLengthChanged();
void DefConnection1Completed();
void DefConnection2Completed();
void RegionDefCompleted();
//void DoubleClick();
};
......
/**
* \file action.cpp
* \date Mar 07, 2016
* \version v0.8.1
* \copyright <2009-2016> Forschungszentrum Jülich GmbH. All rights reserved.
*
* \section License
* This file is part of JuPedSim.
*
* JuPedSim is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* any later version.
*
* JuPedSim is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with JuPedSim. If not, see <http://www.gnu.org/licenses/>.
**/
#include "action.h"
Action::Action()
......
/**
* \file action.h
* \date Mar 07, 2016
* \version v0.8.1
* \copyright <2009-2016> Forschungszentrum Jülich GmbH. All rights reserved.
*
* \section License
* This file is part of JuPedSim.
*
* JuPedSim is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* any later version.
*
* JuPedSim is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with JuPedSim. If not, see <http://www.gnu.org/licenses/>.
**/
#ifndef ACTION_H
#define ACTION_H
#include <QString>
......
/**
* \file actionstack.cpp
* \date Mar 07, 2016
* \version v0.8.1
* \copyright <2009-2016> Forschungszentrum Jülich GmbH. All rights reserved.
*
* \section License
* This file is part of JuPedSim.
*
* JuPedSim is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* any later version.
*
* JuPedSim is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with JuPedSim. If not, see <http://www.gnu.org/licenses/>.
**/
#include "actionstack.h"
ActionStack::ActionStack()
......
/**
* \file actionstack.h
* \date Mar 07, 2016
* \version v0.8.1
* \copyright <2009-2016> Forschungszentrum Jülich GmbH. All rights reserved.
*
* \section License
* This file is part of JuPedSim.
*
* JuPedSim is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* any later version.
*
* JuPedSim is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with JuPedSim. If not, see <http://www.gnu.org/licenses/>.
**/
#ifndef ACTIONSTACK_H
#define ACTIONSTACK_H
......
/**
* \file lineaction.cpp
* \date Mar 07, 2016
* \version v0.8.1
* \copyright <2009-2016> Forschungszentrum Jülich GmbH. All rights reserved.
*
* \section License
* This file is part of JuPedSim.
*
* JuPedSim is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* any later version.
*
* JuPedSim is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with JuPedSim. If not, see <http://www.gnu.org/licenses/>.
**/
#include "lineaction.h"
LineAction::LineAction()
......
/**
* \file lineaction.h
* \date Mar 07, 2016
* \version v0.8.1
* \copyright <2009-2016> Forschungszentrum Jülich GmbH. All rights reserved.
*
* \section License
* This file is part of JuPedSim.
*
* JuPedSim is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* any later version.
*
* JuPedSim is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with JuPedSim. If not, see <http://www.gnu.org/licenses/>.
**/
#ifndef LINEACTION_H
#define LINEACTION_H
......
This diff is collapsed.
/**
* \file datamanager.h
* \date Jun 26, 2015
* \version v0.7
* \version v0.8.1
* \copyright <2009-2015> Forschungszentrum Jülich GmbH. All rights reserved.
*
* \section License
......@@ -42,6 +42,7 @@
#include "GraphicView.h"
#include "jpsyahpointer.h"
#include "jpsconnection.h"
#include "jpsregion.h"
#include "../dxflib/src/dl_creationadapter.h"
......@@ -49,7 +50,7 @@