Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
V
vadere
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
110
Issues
110
List
Boards
Labels
Service Desk
Milestones
Iterations
Merge Requests
3
Merge Requests
3
Requirements
Requirements
List
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Code Review
Insights
Issue
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
vadere
vadere
Commits
27380b79
Commit
27380b79
authored
Jul 03, 2018
by
Stefan Schuhbaeck
Browse files
Options
Browse Files
Download
Plain Diff
rebase group_models to develop branch
parents
252ed8ea
a9caddb3
Changes
196
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
196 changed files
with
8012 additions
and
1479 deletions
+8012
-1479
.gitignore
.gitignore
+1
-0
VadereGui/resources/icons/camera_tikz.png
VadereGui/resources/icons/camera_tikz.png
+0
-0
VadereGui/resources/icons/target_icon.svg
VadereGui/resources/icons/target_icon.svg
+0
-78
VadereGui/resources/messages.properties
VadereGui/resources/messages.properties
+1
-0
VadereGui/resources/messages_de_DE.properties
VadereGui/resources/messages_de_DE.properties
+1
-0
VadereGui/src/org/vadere/gui/components/view/ScenarioElementView.java
...c/org/vadere/gui/components/view/ScenarioElementView.java
+7
-5
VadereGui/src/org/vadere/gui/onlinevisualization/OnlineVisualization.java
...g/vadere/gui/onlinevisualization/OnlineVisualization.java
+2
-2
VadereGui/src/org/vadere/gui/onlinevisualization/control/ActionGenerateTikz.java
...e/gui/onlinevisualization/control/ActionGenerateTikz.java
+59
-0
VadereGui/src/org/vadere/gui/onlinevisualization/view/OnlineVisualisationWindow.java
...i/onlinevisualization/view/OnlineVisualisationWindow.java
+9
-0
VadereGui/src/org/vadere/gui/postvisualization/control/ActionGenerateTikz.java
...ere/gui/postvisualization/control/ActionGenerateTikz.java
+49
-0
VadereGui/src/org/vadere/gui/postvisualization/utils/TikzGenerator.java
...org/vadere/gui/postvisualization/utils/TikzGenerator.java
+219
-0
VadereGui/src/org/vadere/gui/postvisualization/view/PostvisualizationWindow.java
...e/gui/postvisualization/view/PostvisualizationWindow.java
+3
-14
VadereGui/src/org/vadere/gui/projectview/VadereApplication.java
...Gui/src/org/vadere/gui/projectview/VadereApplication.java
+1
-0
VadereGui/src/org/vadere/gui/projectview/view/DataProcessingView.java
...c/org/vadere/gui/projectview/view/DataProcessingView.java
+1
-1
VadereGui/src/org/vadere/gui/projectview/view/ProjectView.java
...eGui/src/org/vadere/gui/projectview/view/ProjectView.java
+77
-54
VadereGui/src/org/vadere/gui/topographycreator/control/AttributeModifier.java
...dere/gui/topographycreator/control/AttributeModifier.java
+8
-10
VadereGui/src/org/vadere/gui/topographycreator/control/EditUpdateElementShape.java
...gui/topographycreator/control/EditUpdateElementShape.java
+2
-2
VadereGui/src/org/vadere/gui/topographycreator/control/SelectElementMode.java
...dere/gui/topographycreator/control/SelectElementMode.java
+1
-1
VadereGui/src/org/vadere/gui/topographycreator/model/AgentWrapper.java
.../org/vadere/gui/topographycreator/model/AgentWrapper.java
+5
-0
VadereModelTests/TESTOVM/scenarios/basic_5_1_roadReachTarget_ovm1.scenario
...TESTOVM/scenarios/basic_5_1_roadReachTarget_ovm1.scenario
+3
-3
VadereModelTests/TESTOVM/scenarios/basic_5_2_roadReachTarget_ovm1.scenario
...TESTOVM/scenarios/basic_5_2_roadReachTarget_ovm1.scenario
+3
-3
VadereModelTests/TESTOVM/scenarios/testtrafficlight.scenario
VadereModelTests/TESTOVM/scenarios/testtrafficlight.scenario
+3
-3
VadereModelTests/TestGNM/scenarios/basic_1_chicken_gnm1.scenario
...odelTests/TestGNM/scenarios/basic_1_chicken_gnm1.scenario
+2
-2
VadereModelTests/TestGNM/scenarios/basic_1_chicken_gnm2.scenario
...odelTests/TestGNM/scenarios/basic_1_chicken_gnm2.scenario
+2
-2
VadereModelTests/TestGNM/scenarios/basic_2_density_gnm1.scenario
...odelTests/TestGNM/scenarios/basic_2_density_gnm1.scenario
+2
-2
VadereModelTests/TestGNM/scenarios/basic_3_1_wall_gnm1.scenario
...ModelTests/TestGNM/scenarios/basic_3_1_wall_gnm1.scenario
+2
-2
VadereModelTests/TestGNM/scenarios/basic_3_2_wall_gnm1.scenario
...ModelTests/TestGNM/scenarios/basic_3_2_wall_gnm1.scenario
+2
-2
VadereModelTests/TestGNM/scenarios/basic_3_3_wall_gnm1.scenario
...ModelTests/TestGNM/scenarios/basic_3_3_wall_gnm1.scenario
+2
-2
VadereModelTests/TestGNM/scenarios/basic_4_1_wall_gnm1.scenario
...ModelTests/TestGNM/scenarios/basic_4_1_wall_gnm1.scenario
+2
-2
VadereModelTests/TestGNM/scenarios/basic_4_2_wall_gnm1.scenario
...ModelTests/TestGNM/scenarios/basic_4_2_wall_gnm1.scenario
+2
-2
VadereModelTests/TestGNM/scenarios/rimea_01_pathway_gnm1.scenario
...delTests/TestGNM/scenarios/rimea_01_pathway_gnm1.scenario
+3
-3
VadereModelTests/TestGNM/scenarios/rimea_04_flow_gnm1_025_h.scenario
...Tests/TestGNM/scenarios/rimea_04_flow_gnm1_025_h.scenario
+3
-3
VadereModelTests/TestGNM/scenarios/rimea_04_flow_gnm1_050_h.scenario
...Tests/TestGNM/scenarios/rimea_04_flow_gnm1_050_h.scenario
+3
-3
VadereModelTests/TestGNM/scenarios/rimea_04_flow_gnm1_075_h.scenario
...Tests/TestGNM/scenarios/rimea_04_flow_gnm1_075_h.scenario
+3
-3
VadereModelTests/TestGNM/scenarios/rimea_04_flow_gnm1_100_h.scenario
...Tests/TestGNM/scenarios/rimea_04_flow_gnm1_100_h.scenario
+3
-3
VadereModelTests/TestGNM/scenarios/rimea_04_flow_gnm1_125_h.scenario
...Tests/TestGNM/scenarios/rimea_04_flow_gnm1_125_h.scenario
+3
-3
VadereModelTests/TestGNM/scenarios/rimea_05_react_gnm1.scenario
...ModelTests/TestGNM/scenarios/rimea_05_react_gnm1.scenario
+3
-3
VadereModelTests/TestGNM/scenarios/rimea_06_corner_gnm1.scenario
...odelTests/TestGNM/scenarios/rimea_06_corner_gnm1.scenario
+2
-2
VadereModelTests/TestGNM/scenarios/rimea_07_speeds_gnm1.scenario
...odelTests/TestGNM/scenarios/rimea_07_speeds_gnm1.scenario
+2
-2
VadereModelTests/TestGNM/scenarios/rimea_09_publicRoom_gnm1_2.scenario
...sts/TestGNM/scenarios/rimea_09_publicRoom_gnm1_2.scenario
+3
-3
VadereModelTests/TestGNM/scenarios/rimea_09_publicRoom_gnm1_4.scenario
...sts/TestGNM/scenarios/rimea_09_publicRoom_gnm1_4.scenario
+3
-3
VadereModelTests/TestGNM/scenarios/rimea_10_pathfinding_gnm1.scenario
...ests/TestGNM/scenarios/rimea_10_pathfinding_gnm1.scenario
+3
-3
VadereModelTests/TestGNM/scenarios/rimea_11_exitSelection_gnm1.scenario
...ts/TestGNM/scenarios/rimea_11_exitSelection_gnm1.scenario
+3
-3
VadereModelTests/TestGNM/scenarios/rimea_12_evacuation_gnm1.scenario
...Tests/TestGNM/scenarios/rimea_12_evacuation_gnm1.scenario
+2
-2
VadereModelTests/TestGNM/scenarios/rimea_13_stairs_gnm1.scenario
...odelTests/TestGNM/scenarios/rimea_13_stairs_gnm1.scenario
+3
-3
VadereModelTests/TestGNM/scenarios/rimea_14_selectRoute_gnm1.scenario
...ests/TestGNM/scenarios/rimea_14_selectRoute_gnm1.scenario
+3
-3
VadereModelTests/TestOSM/scenarios/Narrow.scenario
VadereModelTests/TestOSM/scenarios/Narrow.scenario
+245
-0
VadereModelTests/TestOSM/scenarios/basic_1_chicken_osm1.scenario
...odelTests/TestOSM/scenarios/basic_1_chicken_osm1.scenario
+19
-2
VadereModelTests/TestOSM/scenarios/basic_1_chicken_osm1_large_DISCRETE.scenario
...SM/scenarios/basic_1_chicken_osm1_large_DISCRETE.scenario
+163
-0
VadereModelTests/TestOSM/scenarios/basic_1_chicken_osm1_large_NELDER_MEAD.scenario
...scenarios/basic_1_chicken_osm1_large_NELDER_MEAD.scenario
+163
-0
VadereModelTests/TestOSM/scenarios/basic_1_chicken_osm1_large_PSO.scenario
...TestOSM/scenarios/basic_1_chicken_osm1_large_PSO.scenario
+163
-0
VadereModelTests/TestOSM/scenarios/basic_2_density_osm1.scenario
...odelTests/TestOSM/scenarios/basic_2_density_osm1.scenario
+20
-5
VadereModelTests/TestOSM/scenarios/basic_3_1_wall_osm1.scenario
...ModelTests/TestOSM/scenarios/basic_3_1_wall_osm1.scenario
+22
-5
VadereModelTests/TestOSM/scenarios/basic_3_2_wall_osm1.scenario
...ModelTests/TestOSM/scenarios/basic_3_2_wall_osm1.scenario
+22
-5
VadereModelTests/TestOSM/scenarios/basic_3_3_wall_osm1.scenario
...ModelTests/TestOSM/scenarios/basic_3_3_wall_osm1.scenario
+22
-5
VadereModelTests/TestOSM/scenarios/basic_4_1_wall_osm1.scenario
...ModelTests/TestOSM/scenarios/basic_4_1_wall_osm1.scenario
+22
-5
VadereModelTests/TestOSM/scenarios/basic_4_1_wall_osm2.scenario
...ModelTests/TestOSM/scenarios/basic_4_1_wall_osm2.scenario
+22
-5
VadereModelTests/TestOSM/scenarios/basic_4_2_wall_osm1.scenario
...ModelTests/TestOSM/scenarios/basic_4_2_wall_osm1.scenario
+22
-5
VadereModelTests/TestOSM/scenarios/basic_4_2_wall_osm2.scenario
...ModelTests/TestOSM/scenarios/basic_4_2_wall_osm2.scenario
+22
-5
VadereModelTests/TestOSM/scenarios/queueing_floor_field_osm1.scenario
...ests/TestOSM/scenarios/queueing_floor_field_osm1.scenario
+3
-3
VadereModelTests/TestOSM/scenarios/rimea_01_pathway_osm1.scenario
...delTests/TestOSM/scenarios/rimea_01_pathway_osm1.scenario
+20
-6
VadereModelTests/TestOSM/scenarios/rimea_01_pathway_osm2.scenario
...delTests/TestOSM/scenarios/rimea_01_pathway_osm2.scenario
+20
-6
VadereModelTests/TestOSM/scenarios/rimea_02_stairs_osm1.scenario
...odelTests/TestOSM/scenarios/rimea_02_stairs_osm1.scenario
+4
-4
VadereModelTests/TestOSM/scenarios/rimea_03_stairs_osm1.scenario
...odelTests/TestOSM/scenarios/rimea_03_stairs_osm1.scenario
+4
-4
VadereModelTests/TestOSM/scenarios/rimea_04_flow_osm1_025_d.scenario
...Tests/TestOSM/scenarios/rimea_04_flow_osm1_025_d.scenario
+4
-4
VadereModelTests/TestOSM/scenarios/rimea_04_flow_osm1_025_up.scenario
...ests/TestOSM/scenarios/rimea_04_flow_osm1_025_up.scenario
+4
-4
VadereModelTests/TestOSM/scenarios/rimea_04_flow_osm1_050_d.scenario
...Tests/TestOSM/scenarios/rimea_04_flow_osm1_050_d.scenario
+4
-4
VadereModelTests/TestOSM/scenarios/rimea_04_flow_osm1_050_h.scenario
...Tests/TestOSM/scenarios/rimea_04_flow_osm1_050_h.scenario
+4
-4
VadereModelTests/TestOSM/scenarios/rimea_04_flow_osm1_050_up.scenario
...ests/TestOSM/scenarios/rimea_04_flow_osm1_050_up.scenario
+3
-3
VadereModelTests/TestOSM/scenarios/rimea_04_flow_osm1_075_d.scenario
...Tests/TestOSM/scenarios/rimea_04_flow_osm1_075_d.scenario
+3
-3
VadereModelTests/TestOSM/scenarios/rimea_04_flow_osm1_075_h.scenario
...Tests/TestOSM/scenarios/rimea_04_flow_osm1_075_h.scenario
+3
-3
VadereModelTests/TestOSM/scenarios/rimea_04_flow_osm1_075_up.scenario
...ests/TestOSM/scenarios/rimea_04_flow_osm1_075_up.scenario
+3
-3
VadereModelTests/TestOSM/scenarios/rimea_04_flow_osm1_100_d.scenario
...Tests/TestOSM/scenarios/rimea_04_flow_osm1_100_d.scenario
+3
-3
VadereModelTests/TestOSM/scenarios/rimea_04_flow_osm1_100_h.scenario
...Tests/TestOSM/scenarios/rimea_04_flow_osm1_100_h.scenario
+3
-3
VadereModelTests/TestOSM/scenarios/rimea_04_flow_osm1_100_up.scenario
...ests/TestOSM/scenarios/rimea_04_flow_osm1_100_up.scenario
+3
-3
VadereModelTests/TestOSM/scenarios/rimea_04_flow_osm1_125_d.scenario
...Tests/TestOSM/scenarios/rimea_04_flow_osm1_125_d.scenario
+3
-3
VadereModelTests/TestOSM/scenarios/rimea_04_flow_osm1_125_h.scenario
...Tests/TestOSM/scenarios/rimea_04_flow_osm1_125_h.scenario
+3
-3
VadereModelTests/TestOSM/scenarios/rimea_04_flow_osm1_125_up.scenario
...ests/TestOSM/scenarios/rimea_04_flow_osm1_125_up.scenario
+3
-3
VadereModelTests/TestOSM/scenarios/rimea_04_flow_osm1_470_h.scenario
...Tests/TestOSM/scenarios/rimea_04_flow_osm1_470_h.scenario
+3
-3
VadereModelTests/TestOSM/scenarios/rimea_04_flow_osm1_550_up.scenario
...ests/TestOSM/scenarios/rimea_04_flow_osm1_550_up.scenario
+3
-3
VadereModelTests/TestOSM/scenarios/rimea_05_react_osm1.scenario
...ModelTests/TestOSM/scenarios/rimea_05_react_osm1.scenario
+3
-3
VadereModelTests/TestOSM/scenarios/rimea_06_corner_osm1.scenario
...odelTests/TestOSM/scenarios/rimea_06_corner_osm1.scenario
+36
-5
VadereModelTests/TestOSM/scenarios/rimea_06_corner_osm2.scenario
...odelTests/TestOSM/scenarios/rimea_06_corner_osm2.scenario
+39
-5
VadereModelTests/TestOSM/scenarios/rimea_07_speeds_osm1.scenario
...odelTests/TestOSM/scenarios/rimea_07_speeds_osm1.scenario
+19
-5
VadereModelTests/TestOSM/scenarios/rimea_07_speeds_osm1_NELDER_MEAD.scenario
...stOSM/scenarios/rimea_07_speeds_osm1_NELDER_MEAD.scenario
+136
-0
VadereModelTests/TestOSM/scenarios/rimea_07_speeds_osm1_PSO.scenario
...Tests/TestOSM/scenarios/rimea_07_speeds_osm1_PSO.scenario
+136
-0
VadereModelTests/TestOSM/scenarios/rimea_08_parameter_osm1.scenario
...lTests/TestOSM/scenarios/rimea_08_parameter_osm1.scenario
+3
-3
VadereModelTests/TestOSM/scenarios/rimea_09_publicRoom_osm1_2.scenario
...sts/TestOSM/scenarios/rimea_09_publicRoom_osm1_2.scenario
+3
-3
VadereModelTests/TestOSM/scenarios/rimea_09_publicRoom_osm1_4.scenario
...sts/TestOSM/scenarios/rimea_09_publicRoom_osm1_4.scenario
+3
-3
VadereModelTests/TestOSM/scenarios/rimea_10_pathfinding_osm1.scenario
...ests/TestOSM/scenarios/rimea_10_pathfinding_osm1.scenario
+36
-6
VadereModelTests/TestOSM/scenarios/rimea_11_exitSelection_osm1.scenario
...ts/TestOSM/scenarios/rimea_11_exitSelection_osm1.scenario
+3
-3
VadereModelTests/TestOSM/scenarios/rimea_12_evacuation_osm1.scenario
...Tests/TestOSM/scenarios/rimea_12_evacuation_osm1.scenario
+2
-2
VadereModelTests/TestOSM/scenarios/rimea_13_stairs_osm1_a.scenario
...elTests/TestOSM/scenarios/rimea_13_stairs_osm1_a.scenario
+3
-3
VadereModelTests/TestOSM/scenarios/rimea_13_stairs_osm1_b.scenario
...elTests/TestOSM/scenarios/rimea_13_stairs_osm1_b.scenario
+3
-3
VadereModelTests/TestOSM/scenarios/rimea_14_selectRoute_osm1.scenario
...ests/TestOSM/scenarios/rimea_14_selectRoute_osm1.scenario
+3
-3
VadereModelTests/TestSFM/scenarios/basic_1_chicken_sfm1.scenario
...odelTests/TestSFM/scenarios/basic_1_chicken_sfm1.scenario
+31
-81
VadereModelTests/TestSFM/scenarios/basic_1_chicken_sfm2.scenario
...odelTests/TestSFM/scenarios/basic_1_chicken_sfm2.scenario
+31
-81
VadereModelTests/TestSFM/scenarios/basic_2_density_sfm1.scenario
...odelTests/TestSFM/scenarios/basic_2_density_sfm1.scenario
+22
-51
VadereModelTests/TestSFM/scenarios/basic_3_1_wall_sfm1.scenario
...ModelTests/TestSFM/scenarios/basic_3_1_wall_sfm1.scenario
+24
-51
VadereModelTests/TestSFM/scenarios/basic_3_2_wall_sfm1.scenario
...ModelTests/TestSFM/scenarios/basic_3_2_wall_sfm1.scenario
+24
-51
VadereModelTests/TestSFM/scenarios/basic_3_3_wall_sfm1.scenario
...ModelTests/TestSFM/scenarios/basic_3_3_wall_sfm1.scenario
+24
-71
VadereModelTests/TestSFM/scenarios/basic_4_1_wall_sfm1.scenario
...ModelTests/TestSFM/scenarios/basic_4_1_wall_sfm1.scenario
+35
-62
VadereModelTests/TestSFM/scenarios/basic_4_1_wall_sfm2.scenario
...ModelTests/TestSFM/scenarios/basic_4_1_wall_sfm2.scenario
+24
-51
VadereModelTests/TestSFM/scenarios/basic_4_2_wall_sfm1.scenario
...ModelTests/TestSFM/scenarios/basic_4_2_wall_sfm1.scenario
+33
-60
VadereModelTests/TestSFM/scenarios/basic_4_2_wall_sfm2.scenario
...ModelTests/TestSFM/scenarios/basic_4_2_wall_sfm2.scenario
+33
-60
VadereModelTests/TestSFM/scenarios/rimea_01_pathway_sfm1.scenario
...delTests/TestSFM/scenarios/rimea_01_pathway_sfm1.scenario
+22
-22
VadereModelTests/TestSFM/scenarios/rimea_01_pathway_sfm2.scenario
...delTests/TestSFM/scenarios/rimea_01_pathway_sfm2.scenario
+22
-22
VadereModelTests/TestSFM/scenarios/rimea_04_flow_sfm1_025_h.scenario
...Tests/TestSFM/scenarios/rimea_04_flow_sfm1_025_h.scenario
+9
-4
VadereModelTests/TestSFM/scenarios/rimea_04_flow_sfm1_050_h.scenario
...Tests/TestSFM/scenarios/rimea_04_flow_sfm1_050_h.scenario
+9
-4
VadereModelTests/TestSFM/scenarios/rimea_04_flow_sfm1_075_h.scenario
...Tests/TestSFM/scenarios/rimea_04_flow_sfm1_075_h.scenario
+9
-4
VadereModelTests/TestSFM/scenarios/rimea_04_flow_sfm1_100_h.scenario
...Tests/TestSFM/scenarios/rimea_04_flow_sfm1_100_h.scenario
+9
-4
VadereModelTests/TestSFM/scenarios/rimea_04_flow_sfm1_125_h.scenario
...Tests/TestSFM/scenarios/rimea_04_flow_sfm1_125_h.scenario
+9
-4
VadereModelTests/TestSFM/scenarios/rimea_05_react_sfm1.scenario
...ModelTests/TestSFM/scenarios/rimea_05_react_sfm1.scenario
+9
-4
VadereModelTests/TestSFM/scenarios/rimea_06_corner_sfm1.scenario
...odelTests/TestSFM/scenarios/rimea_06_corner_sfm1.scenario
+37
-50
VadereModelTests/TestSFM/scenarios/rimea_07_speeds_sfm1.scenario
...odelTests/TestSFM/scenarios/rimea_07_speeds_sfm1.scenario
+21
-21
VadereModelTests/TestSFM/scenarios/rimea_09_publicRoom_sfm1_2.scenario
...sts/TestSFM/scenarios/rimea_09_publicRoom_sfm1_2.scenario
+9
-4
VadereModelTests/TestSFM/scenarios/rimea_09_publicRoom_sfm1_4.scenario
...sts/TestSFM/scenarios/rimea_09_publicRoom_sfm1_4.scenario
+9
-4
VadereModelTests/TestSFM/scenarios/rimea_10_pathfinding_sfm1.scenario
...ests/TestSFM/scenarios/rimea_10_pathfinding_sfm1.scenario
+50
-15
VadereModelTests/TestSFM/scenarios/rimea_11_exitSelection_sfm1.scenario
...ts/TestSFM/scenarios/rimea_11_exitSelection_sfm1.scenario
+9
-4
VadereModelTests/TestSFM/scenarios/rimea_12_evacuation_sfm1.scenario
...Tests/TestSFM/scenarios/rimea_12_evacuation_sfm1.scenario
+8
-104
VadereModelTests/TestStairs/scenarios/stairs_diagonal_1_+1.scenario
...lTests/TestStairs/scenarios/stairs_diagonal_1_+1.scenario
+220
-0
VadereModelTests/TestStairs/scenarios/stairs_diagonal_1_-1.scenario
...lTests/TestStairs/scenarios/stairs_diagonal_1_-1.scenario
+220
-0
VadereModelTests/TestStairs/scenarios/stairs_diagonal_2_+1.scenario
...lTests/TestStairs/scenarios/stairs_diagonal_2_+1.scenario
+220
-0
VadereModelTests/TestStairs/scenarios/stairs_diagonal_2_-1.scenario
...lTests/TestStairs/scenarios/stairs_diagonal_2_-1.scenario
+220
-0
VadereModelTests/TestStairs/scenarios/stairs_diagonal_3_+1.scenario
...lTests/TestStairs/scenarios/stairs_diagonal_3_+1.scenario
+220
-0
VadereModelTests/TestStairs/scenarios/stairs_diagonal_3_-1.scenario
...lTests/TestStairs/scenarios/stairs_diagonal_3_-1.scenario
+220
-0
VadereModelTests/TestStairs/scenarios/stairs_diagonal_4_+1.scenario
...lTests/TestStairs/scenarios/stairs_diagonal_4_+1.scenario
+220
-0
VadereModelTests/TestStairs/scenarios/stairs_diagonal_4_-1.scenario
...lTests/TestStairs/scenarios/stairs_diagonal_4_-1.scenario
+220
-0
VadereModelTests/TestStairs/scenarios/stairs_diagonal_both_1_2_+1.scenario
...TestStairs/scenarios/stairs_diagonal_both_1_2_+1.scenario
+256
-0
VadereModelTests/TestStairs/scenarios/stairs_diagonal_both_1_2_-1.scenario
...TestStairs/scenarios/stairs_diagonal_both_1_2_-1.scenario
+256
-0
VadereModelTests/TestStairs/scenarios/stairs_diagonal_both_3_4_+1.scenario
...TestStairs/scenarios/stairs_diagonal_both_3_4_+1.scenario
+256
-0
VadereModelTests/TestStairs/scenarios/stairs_diagonal_both_3_4_-1.scenario
...TestStairs/scenarios/stairs_diagonal_both_3_4_-1.scenario
+256
-0
VadereModelTests/TestStairs/scenarios/stairs_upward_direction_down_+1.scenario
...Stairs/scenarios/stairs_upward_direction_down_+1.scenario
+193
-0
VadereModelTests/TestStairs/scenarios/stairs_upward_direction_down_-1.scenario
...Stairs/scenarios/stairs_upward_direction_down_-1.scenario
+193
-0
VadereModelTests/TestStairs/scenarios/stairs_upward_direction_to_right_+1.scenario
...rs/scenarios/stairs_upward_direction_to_right_+1.scenario
+207
-0
VadereModelTests/TestStairs/scenarios/stairs_upward_direction_to_right_-1.scenario
...rs/scenarios/stairs_upward_direction_to_right_-1.scenario
+207
-0
VadereModelTests/TestStairs/scenarios/stairs_upward_direction_toleft_+1.scenario
...airs/scenarios/stairs_upward_direction_toleft_+1.scenario
+207
-0
VadereModelTests/TestStairs/scenarios/stairs_upward_direction_toleft_-1.scenario
...airs/scenarios/stairs_upward_direction_toleft_-1.scenario
+207
-0
VadereModelTests/TestStairs/scenarios/stairs_upward_direction_up_+1.scenario
...stStairs/scenarios/stairs_upward_direction_up_+1.scenario
+193
-0
VadereModelTests/TestStairs/scenarios/stairs_upward_direction_up_-1.scenario
...stStairs/scenarios/stairs_upward_direction_up_-1.scenario
+193
-0
VadereModelTests/TestStairs/vadere.project
VadereModelTests/TestStairs/vadere.project
+1
-0
VadereSimulator/src/org/vadere/simulator/control/OfflineTopographyController.java
...vadere/simulator/control/OfflineTopographyController.java
+2
-1
VadereSimulator/src/org/vadere/simulator/control/Simulation.java
...imulator/src/org/vadere/simulator/control/Simulation.java
+20
-17
VadereSimulator/src/org/vadere/simulator/control/TopographyController.java
...rc/org/vadere/simulator/control/TopographyController.java
+7
-0
VadereSimulator/src/org/vadere/simulator/entrypoints/ScenarioBuilder.java
...src/org/vadere/simulator/entrypoints/ScenarioBuilder.java
+14
-9
VadereSimulator/src/org/vadere/simulator/models/MainModelBuilder.java
...tor/src/org/vadere/simulator/models/MainModelBuilder.java
+2
-2
VadereSimulator/src/org/vadere/simulator/models/osm/OptimalStepsModel.java
...rc/org/vadere/simulator/models/osm/OptimalStepsModel.java
+4
-0
VadereSimulator/src/org/vadere/simulator/models/osm/optimization/ParticleSwarmOptimizer.java
...lator/models/osm/optimization/ParticleSwarmOptimizer.java
+97
-0
VadereSimulator/src/org/vadere/simulator/models/osm/optimization/StepCircleOptimizer.java
...imulator/models/osm/optimization/StepCircleOptimizer.java
+1
-1
VadereSimulator/src/org/vadere/simulator/models/osm/optimization/StepCircleOptimizerDiscrete.java
.../models/osm/optimization/StepCircleOptimizerDiscrete.java
+24
-46
VadereSimulator/src/org/vadere/simulator/models/osm/optimization/StepCircleOptimizerEvolStrat.java
...models/osm/optimization/StepCircleOptimizerEvolStrat.java
+1
-1
VadereSimulator/src/org/vadere/simulator/models/osm/optimization/StepCircleOptimizerNelderMead.java
...odels/osm/optimization/StepCircleOptimizerNelderMead.java
+2
-1
VadereSimulator/src/org/vadere/simulator/models/osm/optimization/StepCircleOptimizerPowell.java
...or/models/osm/optimization/StepCircleOptimizerPowell.java
+2
-1
VadereSimulator/src/org/vadere/simulator/models/osm/stairOptimization/StairStepOptimizer.java
...ator/models/osm/stairOptimization/StairStepOptimizer.java
+5
-1
VadereSimulator/src/org/vadere/simulator/models/potential/PotentialFieldObstacleCompact.java
...lator/models/potential/PotentialFieldObstacleCompact.java
+1
-1
VadereSimulator/src/org/vadere/simulator/models/potential/PotentialFieldObstacleCompactSoftshell.java
...els/potential/PotentialFieldObstacleCompactSoftshell.java
+2
-3
VadereSimulator/src/org/vadere/simulator/models/potential/PotentialFieldObstacleOSM.java
...simulator/models/potential/PotentialFieldObstacleOSM.java
+1
-1
VadereSimulator/src/org/vadere/simulator/models/potential/PotentialFieldObstacleRingExperiment.java
...odels/potential/PotentialFieldObstacleRingExperiment.java
+1
-1
VadereSimulator/src/org/vadere/simulator/models/potential/PotentialFieldPedestrianCompact.java
...tor/models/potential/PotentialFieldPedestrianCompact.java
+4
-1
VadereSimulator/src/org/vadere/simulator/models/potential/PotentialFieldPedestrianCompactSoftshell.java
...s/potential/PotentialFieldPedestrianCompactSoftshell.java
+21
-20
VadereSimulator/src/org/vadere/simulator/models/potential/timeCostFunction/TimeCostPedestrianDensity.java
...potential/timeCostFunction/TimeCostPedestrianDensity.java
+2
-2
VadereSimulator/src/org/vadere/simulator/models/potential/timeCostFunction/TimeCostPedestrianDensityIteration.java
.../timeCostFunction/TimeCostPedestrianDensityIteration.java
+3
-1
VadereSimulator/src/org/vadere/simulator/models/potential/timeCostFunction/TimeCostPedestrianDensityQueuing.java
...al/timeCostFunction/TimeCostPedestrianDensityQueuing.java
+2
-2
VadereSimulator/src/org/vadere/simulator/models/sfm/PotentialFieldObstacleSFM.java
...adere/simulator/models/sfm/PotentialFieldObstacleSFM.java
+1
-2
VadereSimulator/src/org/vadere/simulator/projects/Scenario.java
...Simulator/src/org/vadere/simulator/projects/Scenario.java
+3
-3
VadereSimulator/src/org/vadere/simulator/projects/ScenarioRun.java
...ulator/src/org/vadere/simulator/projects/ScenarioRun.java
+39
-25
VadereSimulator/src/org/vadere/simulator/projects/ScenarioStore.java
...ator/src/org/vadere/simulator/projects/ScenarioStore.java
+13
-1
VadereSimulator/src/org/vadere/simulator/projects/dataprocessing/processor/PedestrianOSMStrideLengthProcessor.java
...cessing/processor/PedestrianOSMStrideLengthProcessor.java
+1
-2
VadereSimulator/src/org/vadere/simulator/projects/io/JsonConverter.java
...r/src/org/vadere/simulator/projects/io/JsonConverter.java
+2
-2
VadereSimulator/tests/org/vadere/simulator/models/seating/TestChooseSeat.java
...s/org/vadere/simulator/models/seating/TestChooseSeat.java
+3
-3
VadereState/src/org/vadere/state/attributes/AttributesEmbedShape.java
...src/org/vadere/state/attributes/AttributesEmbedShape.java
+16
-0
VadereState/src/org/vadere/state/attributes/scenario/AttributesAgent.java
...org/vadere/state/attributes/scenario/AttributesAgent.java
+12
-3
VadereState/src/org/vadere/state/attributes/scenario/AttributesObstacle.java
.../vadere/state/attributes/scenario/AttributesObstacle.java
+4
-2
VadereState/src/org/vadere/state/attributes/scenario/AttributesSource.java
...rg/vadere/state/attributes/scenario/AttributesSource.java
+4
-2
VadereState/src/org/vadere/state/attributes/scenario/AttributesStairs.java
...rg/vadere/state/attributes/scenario/AttributesStairs.java
+4
-1
VadereState/src/org/vadere/state/attributes/scenario/AttributesTarget.java
...rg/vadere/state/attributes/scenario/AttributesTarget.java
+4
-1
VadereState/src/org/vadere/state/scenario/Agent.java
VadereState/src/org/vadere/state/scenario/Agent.java
+7
-1
VadereState/src/org/vadere/state/scenario/Car.java
VadereState/src/org/vadere/state/scenario/Car.java
+6
-1
VadereState/src/org/vadere/state/scenario/Obstacle.java
VadereState/src/org/vadere/state/scenario/Obstacle.java
+8
-1
VadereState/src/org/vadere/state/scenario/ScenarioElement.java
...eState/src/org/vadere/state/scenario/ScenarioElement.java
+3
-0
VadereState/src/org/vadere/state/scenario/Source.java
VadereState/src/org/vadere/state/scenario/Source.java
+9
-1
VadereState/src/org/vadere/state/scenario/Stairs.java
VadereState/src/org/vadere/state/scenario/Stairs.java
+25
-7
VadereState/src/org/vadere/state/scenario/Target.java
VadereState/src/org/vadere/state/scenario/Target.java
+9
-1
VadereState/src/org/vadere/state/scenario/Teleporter.java
VadereState/src/org/vadere/state/scenario/Teleporter.java
+7
-1
VadereState/src/org/vadere/state/types/OptimizationType.java
VadereState/src/org/vadere/state/types/OptimizationType.java
+1
-1
VadereState/tests/org/vadere/state/scenario/TestStairs.java
VadereState/tests/org/vadere/state/scenario/TestStairs.java
+4
-4
VadereUtils/src/org/vadere/util/geometry/GeometryUtils.java
VadereUtils/src/org/vadere/util/geometry/GeometryUtils.java
+87
-0
VadereUtils/src/org/vadere/util/geometry/Vector2D.java
VadereUtils/src/org/vadere/util/geometry/Vector2D.java
+1
-7
VadereUtils/src/org/vadere/util/geometry/shapes/ICircleSector.java
...ls/src/org/vadere/util/geometry/shapes/ICircleSector.java
+48
-0
VadereUtils/src/org/vadere/util/geometry/shapes/VCircle.java
VadereUtils/src/org/vadere/util/geometry/shapes/VCircle.java
+83
-4
VadereUtils/src/org/vadere/util/geometry/shapes/VCircleSector.java
...ls/src/org/vadere/util/geometry/shapes/VCircleSector.java
+108
-0
VadereUtils/src/org/vadere/util/geometry/shapes/VPoint.java
VadereUtils/src/org/vadere/util/geometry/shapes/VPoint.java
+29
-0
VadereUtils/src/org/vadere/util/math/pso/AttributesPSO.java
VadereUtils/src/org/vadere/util/math/pso/AttributesPSO.java
+15
-0
VadereUtils/src/org/vadere/util/math/pso/PSO.java
VadereUtils/src/org/vadere/util/math/pso/PSO.java
+197
-0
VadereUtils/src/org/vadere/util/math/pso/Particle.java
VadereUtils/src/org/vadere/util/math/pso/Particle.java
+154
-0
pom.xml
pom.xml
+6
-1
No files found.
.gitignore
View file @
27380b79
...
...
@@ -43,3 +43,4 @@ VadereGui/output/
#linux deskopt dotfiles
**/.directory
/VadereModelTests/TestStairs/output
VadereGui/resources/icons/camera_tikz.png
0 → 100644
View file @
27380b79
42.6 KB
VadereGui/resources/icons/target_icon.svg
deleted
100644 → 0
View file @
252ed8ea
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc=
"http://purl.org/dc/elements/1.1/"
xmlns:cc=
"http://creativecommons.org/ns#"
xmlns:rdf=
"http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg=
"http://www.w3.org/2000/svg"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:sodipodi=
"http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape=
"http://www.inkscape.org/namespaces/inkscape"
width=
"744.09448819"
height=
"1052.3622047"
id=
"svg2"
version=
"1.1"
inkscape:version=
"0.48.4 r9939"
sodipodi:docname=
"source_icon.svg"
inkscape:export-filename=
"C:\Users\Benedikt\Repositories\Software\VadereGui\resources\icons\source_icon.png"
inkscape:export-xdpi=
"39.389999"
inkscape:export-ydpi=
"39.389999"
>
<defs
id=
"defs4"
/>
<sodipodi:namedview
id=
"base"
pagecolor=
"#ffffff"
bordercolor=
"#666666"
borderopacity=
"1.0"
inkscape:pageopacity=
"0.0"
inkscape:pageshadow=
"2"
inkscape:zoom=
"4"
inkscape:cx=
"508.27116"
inkscape:cy=
"318.54973"
inkscape:document-units=
"px"
inkscape:current-layer=
"layer1"
showgrid=
"false"
inkscape:window-width=
"1680"
inkscape:window-height=
"987"
inkscape:window-x=
"-8"
inkscape:window-y=
"-8"
inkscape:window-maximized=
"1"
/>
<metadata
id=
"metadata7"
>
<rdf:RDF>
<cc:Work
rdf:about=
""
>
<dc:format>
image/svg+xml
</dc:format>
<dc:type
rdf:resource=
"http://purl.org/dc/dcmitype/StillImage"
/>
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode=
"layer"
id=
"layer2"
inkscape:label=
"Ground"
>
<path
sodipodi:type=
"arc"
style=
"fill:#000000;fill-opacity:1;stroke:none"
id=
"path2999"
sodipodi:cx=
"567.25"
sodipodi:cy=
"745.61218"
sodipodi:rx=
"29"
sodipodi:ry=
"12.25"
d=
"m 596.25,745.61218 a 29,12.25 0 1 1 -58,0 29,12.25 0 1 1 58,0 z"
transform=
"matrix(1.2543104,0,0,1.132653,-152.88254,-93.532738)"
/>
</g>
<g
inkscape:label=
"Arrow Out"
inkscape:groupmode=
"layer"
id=
"layer1"
>
<path
style=
"fill:#800000"
d=
"m 523.54785,718.71229 c 3.67872,-11.89789 14.75259,-23.56593 25.00868,-26.35049 15.48687,-4.20472 28.23708,5.48211 29.97739,22.77504 0.84941,8.44048 0.94863,8.5832 5.84654,8.41155 7.70502,-0.27004 6.43547,2.77305 -5.6306,13.4965 l -11.11785,9.88075 -8.90828,-10.02363 c -4.89957,-5.51302 -8.8233,-10.84316 -8.71949,-11.84479 0.10385,-1.00163 2.96952,-1.86734 6.36816,-1.9238 5.73649,-0.0953 6.21234,-0.42061 6.63925,-4.53837 0.68171,-6.57556 -6.18382,-13.29468 -12.96608,-12.68957 -6.25183,0.5578 -17.03698,9.10527 -23.24218,18.41998 -5.07932,7.6246 -6.55947,5.07255 -3.25554,-5.61317 z"
id=
"path2996"
inkscape:connector-curvature=
"0"
/>
</g>
</svg>
VadereGui/resources/messages.properties
View file @
27380b79
...
...
@@ -220,6 +220,7 @@ PostVis.chbShowStairs.text=Show Stairs
PostVis.btnSnapshot.tooltip
=
Snapshot
PostVis.btnPNGSnapshot.tooltip
=
PNG Snapshot
PostVis.btnSVGSnapshot.tooltip
=
SVG Snapshot
PostVis.btnTikZSnapshot.tooltip
=
TikZ Snapshot
PostVis.menuFile.title
=
File
PostVis.menuSettings.title
=
Setting
PostVis.menuRecentFiles.title
=
Recent Files
...
...
VadereGui/resources/messages_de_DE.properties
View file @
27380b79
...
...
@@ -220,6 +220,7 @@ PostVis.chbShowStairs.text=Treppen anzeigen
PostVis.btnSnapshot.tooltip
=
Snapshot
PostVis.btnPNGSnapshot.tooltip
=
PNG-Snapshot
PostVis.btnSVGSnapshot.tooltip
=
SVG-Snapshot
PostVis.btnTikZSnapshot.tooltip
=
TikZ Snapshot
PostVis.menuFile.title
=
Datei
PostVis.menuSettings.title
=
Einstellungen
PostVis.menuRecentFiles.title
=
K
\u
00FCrzlich verwendete Dateien
...
...
VadereGui/src/org/vadere/gui/components/view/ScenarioElementView.java
View file @
27380b79
...
...
@@ -106,12 +106,14 @@ public class ScenarioElementView extends JPanel implements ISelectScenarioElemen
}
@Override
public
void
removeUpdate
(
DocumentEvent
e
)
{
public
void
removeUpdate
(
DocumentEvent
e
)
{
updateModel
();
}
@Override
public
void
changedUpdate
(
DocumentEvent
e
)
{
updateModel
();
}
};
...
...
@@ -126,7 +128,7 @@ public class ScenarioElementView extends JPanel implements ISelectScenarioElemen
ScenarioElement
element
=
panelModel
.
getSelectedElement
();
if
(
element
!=
null
)
{
String
json
=
txtrTextfiletextarea
.
getText
();
//logger.info(json);
if
(
json
.
length
()
==
0
)
return
;
...
...
@@ -143,7 +145,7 @@ public class ScenarioElementView extends JPanel implements ISelectScenarioElemen
}
else
{
try
{
Attributes
attributes
=
StateJsonConverter
.
deserializeScenarioElementType
(
json
,
element
.
getType
());
ReflectionAttributeModifier
.
setAttributes
(
element
,
attributes
);
element
.
setAttributes
(
attributes
);
// Replaces previous AttributeModifier.setAttributes (see #91)
ScenarioPanel
.
removeJsonParsingErrorMsg
();
ProjectView
.
getMainWindow
().
refreshScenarioNames
();
jsonValidIndicator
.
setValid
();
...
...
@@ -184,8 +186,8 @@ public class ScenarioElementView extends JPanel implements ISelectScenarioElemen
}
else
if
(
scenarioElement
instanceof
Pedestrian
)
{
this
.
txtrTextfiletextarea
.
setText
(
StateJsonConverter
.
serializeObject
(
scenarioElement
));
}
else
{
this
.
txtrTextfiletextarea
.
setText
(
StateJsonConverter
.
serializeObject
(
ReflectionAttributeModifier
.
getAttributes
(
scenarioElement
)));
this
.
txtrTextfiletextarea
.
setText
(
StateJsonConverter
.
serializeObject
(
scenarioElement
.
getAttributes
(
)));
}
}
}
...
...
VadereGui/src/org/vadere/gui/onlinevisualization/OnlineVisualization.java
View file @
27380b79
...
...
@@ -36,7 +36,7 @@ public class OnlineVisualization implements PassiveCallback {
private
OnlineVisualisationWindow
onlineVisualisationPanel
;
private
OnlineVisualizationModel
model
;
private
Topography
scenario
;
private
IPotentialFieldTarget
potentialFieldTarget
;
private
@Nullable
IPotentialFieldTarget
potentialFieldTarget
;
private
boolean
enableVisualization
;
public
OnlineVisualization
(
boolean
enableVisualization
)
{
...
...
@@ -94,7 +94,7 @@ public class OnlineVisualization implements PassiveCallback {
new
ObservationAreaSnapshotData
(
simTimeInSec
,
scenario
.
clone
(),
model
.
config
.
isShowPotentialField
(
)
?
potentialFieldTarget
.
copyFields
()
:
null
));
(
model
.
config
.
isShowPotentialField
()
&&
potentialFieldTarget
!=
null
)
?
potentialFieldTarget
.
copyFields
()
:
null
));
}
}
...
...
VadereGui/src/org/vadere/gui/onlinevisualization/control/ActionGenerateTikz.java
0 → 100644
View file @
27380b79
package
org.vadere.gui.onlinevisualization.control
;
import
org.apache.log4j.LogManager
;
import
org.apache.log4j.Logger
;
import
org.vadere.gui.components.model.DefaultSimulationConfig
;
import
org.vadere.gui.components.model.SimulationModel
;
import
org.vadere.gui.components.utils.Resources
;
import
org.vadere.gui.components.view.SimulationRenderer
;
import
org.vadere.gui.onlinevisualization.view.IRendererChangeListener
;
import
org.vadere.gui.postvisualization.PostVisualisation
;
import
org.vadere.gui.postvisualization.utils.SVGGenerator
;
import
org.vadere.gui.postvisualization.utils.TikzGenerator
;
import
javax.swing.*
;
import
java.awt.event.ActionEvent
;
import
java.io.File
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
import
java.util.prefs.Preferences
;
public
class
ActionGenerateTikz
extends
AbstractAction
implements
IRendererChangeListener
{
private
static
Logger
logger
=
LogManager
.
getLogger
(
ActionGenerateTikz
.
class
);
private
static
Resources
resources
=
Resources
.
getInstance
(
"postvisualization"
);
private
final
TikzGenerator
tikzGenerator
;
private
final
SimulationModel
<?
extends
DefaultSimulationConfig
>
model
;
public
ActionGenerateTikz
(
final
String
name
,
final
Icon
icon
,
final
SimulationRenderer
renderer
,
final
SimulationModel
<?
extends
DefaultSimulationConfig
>
model
)
{
super
(
name
,
icon
);
this
.
tikzGenerator
=
new
TikzGenerator
(
renderer
,
model
);
this
.
model
=
model
;
}
@Override
public
void
actionPerformed
(
ActionEvent
e
)
{
Date
todaysDate
=
new
Date
();
SimpleDateFormat
formatter
=
new
SimpleDateFormat
(
resources
.
getProperty
(
"View.dataFormat"
));
String
formattedDate
=
formatter
.
format
(
todaysDate
);
JFileChooser
fileChooser
=
new
JFileChooser
(
Preferences
.
userNodeForPackage
(
PostVisualisation
.
class
).
get
(
"PostVis.snapshotDirectory.path"
,
"."
));
File
outputFile
=
new
File
(
"pv_snapshot_"
+
formattedDate
+
".tex"
);
fileChooser
.
setSelectedFile
(
outputFile
);
int
returnVal
=
fileChooser
.
showDialog
(
null
,
"Save"
);
if
(
returnVal
==
JFileChooser
.
APPROVE_OPTION
)
{
outputFile
=
fileChooser
.
getSelectedFile
().
toString
().
endsWith
(
".tex"
)
?
fileChooser
.
getSelectedFile
()
:
new
File
(
fileChooser
.
getSelectedFile
().
toString
()
+
".tex"
);
boolean
completeDocument
=
true
;
tikzGenerator
.
generateTikz
(
outputFile
,
completeDocument
);
}
}
@Override
public
void
update
(
SimulationRenderer
renderer
)
{}
}
VadereGui/src/org/vadere/gui/onlinevisualization/view/OnlineVisualisationWindow.java
View file @
27380b79
...
...
@@ -15,6 +15,7 @@ import org.vadere.gui.components.view.ScenarioScrollPane;
import
org.vadere.gui.components.view.SimulationInfoPanel
;
import
org.vadere.gui.onlinevisualization.control.ActionGeneratePNG
;
import
org.vadere.gui.onlinevisualization.control.ActionGenerateSVG
;
import
org.vadere.gui.onlinevisualization.control.ActionGenerateTikz
;
import
org.vadere.gui.onlinevisualization.control.ActionOnlineVisMenu
;
import
org.vadere.gui.onlinevisualization.control.ActionShowPotentialField
;
import
org.vadere.gui.onlinevisualization.model.OnlineVisualizationModel
;
...
...
@@ -161,6 +162,12 @@ public class OnlineVisualisationWindow extends JPanel implements Observer {
new
OnlinevisualizationRenderer
(
model
),
model
);
ActionGenerateTikz
generateTikz
=
new
ActionGenerateTikz
(
"generateTikz"
,
resources
.
getIcon
(
"camera_tikz.png"
,
iconWidth
,
iconHeight
),
new
OnlinevisualizationRenderer
(
model
),
model
);
ActionShowPotentialField
showPotentialField
=
new
ActionShowPotentialField
(
"showPotentialField"
,
resources
.
getIcon
(
"potentialField.png"
,
iconWidth
,
iconHeight
),
...
...
@@ -168,6 +175,7 @@ public class OnlineVisualisationWindow extends JPanel implements Observer {
mainPanel
.
addRendererChangeListener
(
generatePNG
);
mainPanel
.
addRendererChangeListener
(
generateSVG
);
mainPanel
.
addRendererChangeListener
(
generateTikz
);
mainPanel
.
addRendererChangeListener
(
showPotentialField
);
...
...
@@ -190,6 +198,7 @@ public class OnlineVisualisationWindow extends JPanel implements Observer {
ArrayList
<
Action
>
imgOptions
=
new
ArrayList
<>();
imgOptions
.
add
(
generatePNG
);
imgOptions
.
add
(
generateSVG
);
imgOptions
.
add
(
generateTikz
);
ActionOnlineVisMenu
imgDialog
=
new
ActionOnlineVisMenu
(
"camera_menu"
,
...
...
VadereGui/src/org/vadere/gui/postvisualization/control/ActionGenerateTikz.java
0 → 100644
View file @
27380b79
package
org.vadere.gui.postvisualization.control
;
import
org.apache.log4j.LogManager
;
import
org.apache.log4j.Logger
;
import
org.vadere.gui.components.utils.Resources
;
import
org.vadere.gui.postvisualization.PostVisualisation
;
import
org.vadere.gui.postvisualization.utils.TikzGenerator
;
import
org.vadere.gui.postvisualization.view.PostvisualizationRenderer
;
import
javax.swing.*
;
import
java.awt.event.ActionEvent
;
import
java.io.File
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
import
java.util.prefs.Preferences
;
public
class
ActionGenerateTikz
extends
ActionVisualization
{
private
static
Logger
logger
=
LogManager
.
getLogger
(
ActionGenerateTikz
.
class
);
private
static
Resources
resources
=
Resources
.
getInstance
(
"postvisualization"
);
private
final
TikzGenerator
tikzGenerator
;
public
ActionGenerateTikz
(
final
String
name
,
final
Icon
icon
,
final
PostvisualizationRenderer
renderer
)
{
super
(
name
,
icon
,
renderer
.
getModel
());
this
.
tikzGenerator
=
new
TikzGenerator
(
renderer
,
renderer
.
getModel
());
}
@Override
public
void
actionPerformed
(
ActionEvent
e
)
{
Date
todaysDate
=
new
Date
();
SimpleDateFormat
formatter
=
new
SimpleDateFormat
(
resources
.
getProperty
(
"View.dataFormat"
));
String
formattedDate
=
formatter
.
format
(
todaysDate
);
JFileChooser
fileChooser
=
new
JFileChooser
(
Preferences
.
userNodeForPackage
(
PostVisualisation
.
class
).
get
(
"PostVis.snapshotDirectory.path"
,
"."
));
File
outputFile
=
new
File
(
"pv_snapshot_"
+
formattedDate
+
".tex"
);
fileChooser
.
setSelectedFile
(
outputFile
);
int
returnVal
=
fileChooser
.
showDialog
(
null
,
"Save"
);
if
(
returnVal
==
JFileChooser
.
APPROVE_OPTION
)
{
outputFile
=
fileChooser
.
getSelectedFile
().
toString
().
endsWith
(
".tex"
)
?
fileChooser
.
getSelectedFile
()
:
new
File
(
fileChooser
.
getSelectedFile
().
toString
()
+
".tex"
);
boolean
completeDocument
=
true
;
tikzGenerator
.
generateTikz
(
outputFile
,
completeDocument
);
}
}
}
VadereGui/src/org/vadere/gui/postvisualization/utils/TikzGenerator.java
0 → 100644
View file @
27380b79
package
org.vadere.gui.postvisualization.utils
;
import
org.apache.log4j.LogManager
;
import
org.apache.log4j.Logger
;
import
org.vadere.gui.components.model.DefaultSimulationConfig
;
import
org.vadere.gui.components.model.SimulationModel
;
import
org.vadere.gui.components.view.SimulationRenderer
;
import
org.vadere.state.scenario.*
;
import
java.awt.*
;
import
java.awt.geom.AffineTransform
;
import
java.awt.geom.PathIterator
;
import
java.io.*
;
import
java.util.*
;
import
static
java
.
awt
.
geom
.
PathIterator
.*;
/**
* Convert the (Java) scenario description into a TikZ representation.
*
* Usually, each (Java) scenario element is represented as a path via
* @see PathIterator This PathSeparator must be converted into its TikZ
* representation.
*
* For example, traversing a Java path with PathIterator returns two
* segments:
*
*
* segment type= 0 (SEG_MOVETO) with coords: [1.0, 1.0, 0.0, 0.0, 0.0, 0.0]
* segment type= 3 (SEG_LINETO) with coords: [2.0, 2.0, 0.0, 0.0, 0.0, 0.0]
*
* This must be transformed to TikZ:
*
* (1.0,1.0) to (2.0,2.0)
*
* The TikZGenerator should also respect the GUI settings (e.g., enabled
* elements, colors etc.).
*/
public
class
TikzGenerator
{
private
final
static
Logger
logger
=
LogManager
.
getLogger
(
TikzGenerator
.
class
);
private
final
SimulationRenderer
renderer
;
private
final
SimulationModel
<?
extends
DefaultSimulationConfig
>
model
;
private
final
String
[]
translationTable
;
public
TikzGenerator
(
final
SimulationRenderer
renderer
,
final
SimulationModel
<?
extends
DefaultSimulationConfig
>
model
)
{
this
.
renderer
=
renderer
;
this
.
model
=
model
;
this
.
translationTable
=
new
String
[
SEG_CLOSE
+
1
];
initializeTranslationTable
(
translationTable
);
}
private
void
initializeTranslationTable
(
String
[]
translationTable
)
{
// Map Java path commands to TikZ commands.
translationTable
[
SEG_MOVETO
]
=
"(%f,%f) "
;
translationTable
[
SEG_LINETO
]
=
"to (%f,%f) "
;
translationTable
[
SEG_QUADTO
]
=
".. controls (%f,%f) .. (%f,%f) "
;
translationTable
[
SEG_CUBICTO
]
=
".. controls (%f,%f) and (%f,%f) .. (%f,%f) "
;
translationTable
[
SEG_CLOSE
]
=
"to cycle;"
;
}
public
void
generateTikz
(
final
File
file
,
final
boolean
generateCompleteDocument
)
{
String
texTemplate
=
""
+
"\\documentclass{standalone}\n"
+
"\\usepackage{tikz}\n\n"
+
"\\begin{document}\n"
+
"\\begin{tikzpicture}\n"
+
"%s"
+
"\\end{tikzpicture}\n"
+
"\\end{document}\n"
;
String
tikzCode
=
""
;
tikzCode
+=
generateTikzColorDefinitions
(
model
);
tikzCode
+=
convertScenarioElementsToTikz
();
String
output
=
(
generateCompleteDocument
)
?
String
.
format
(
texTemplate
,
tikzCode
)
:
tikzCode
;
// TODO: maybe uses Java's resources notation (in general, writing the file should be done by the caller not here).
try
{
file
.
createNewFile
();
Writer
out
=
new
OutputStreamWriter
(
new
FileOutputStream
(
file
),
"UTF-8"
);
out
.
write
(
output
);
out
.
flush
();
logger
.
info
(
"generate new TikZ: "
+
file
.
getAbsolutePath
());
}
catch
(
IOException
e1
)
{
logger
.
error
(
e1
.
getMessage
());
e1
.
printStackTrace
();
}
}
private
String
generateTikzColorDefinitions
(
SimulationModel
<?
extends
DefaultSimulationConfig
>
model
)
{
String
colorDefinitions
=
"% Color Definitions\n"
;
String
colorTextPattern
=
"\\definecolor{%s}{RGB}{%d,%d,%d}\n"
;
Color
sourceColor
=
model
.
getConfig
().
getSourceColor
();
colorDefinitions
+=
String
.
format
(
colorTextPattern
,
"SourceColor"
,
sourceColor
.
getRed
(),
sourceColor
.
getGreen
(),
sourceColor
.
getBlue
());
Color
targetColor
=
model
.
getConfig
().
getTargetColor
();
colorDefinitions
+=
String
.
format
(
colorTextPattern
,
"TargetColor"
,
targetColor
.
getRed
(),
targetColor
.
getGreen
(),
targetColor
.
getBlue
());
Color
obstacleColor
=
model
.
getConfig
().
getObstacleColor
();
colorDefinitions
+=
String
.
format
(
colorTextPattern
,
"ObstacleColor"
,
obstacleColor
.
getRed
(),
obstacleColor
.
getGreen
(),
obstacleColor
.
getBlue
());
Color
stairColor
=
model
.
getConfig
().
getStairColor
();
colorDefinitions
+=
String
.
format
(
colorTextPattern
,
"StairColor"
,
stairColor
.
getRed
(),
stairColor
.
getGreen
(),
stairColor
.
getBlue
());
Color
agentColor
=
model
.
getConfig
().
getPedestrianDefaultColor
();
colorDefinitions
+=
String
.
format
(
colorTextPattern
,
"AgentColor"
,
agentColor
.
getRed
(),
agentColor
.
getGreen
(),
agentColor
.
getBlue
());
return
colorDefinitions
;
}
private
String
convertScenarioElementsToTikz
()
{
String
generatedCode
=
""
;
DefaultSimulationConfig
config
=
model
.
getConfig
();
Topography
topography
=
model
.
getTopography
();
// Draw background elements first, then agents.
generatedCode
+=
"% Ground\n"
;
String
groundTextPattern
=
(
config
.
isShowGrid
())
?
"\\draw[help lines] (%f,%f) grid (%f,%f);\n"
:
"\\fill[white] (%f,%f) rectangle (%f,%f);\n"
;
generatedCode
+=
String
.
format
(
groundTextPattern
,
topography
.
getBounds
().
x
,
topography
.
getBounds
().
y
,
topography
.
getBounds
().
x
+
topography
.
getBounds
().
width
,
topography
.
getBounds
().
y
+
topography
.
getBounds
().
height
);
if
(
config
.
isShowSources
())
{
generatedCode
+=
"% Sources\n"
;
for
(
Source
source
:
topography
.
getSources
())
{
generatedCode
+=
String
.
format
(
"\\fill[SourceColor] %s\n"
,
generatePathForScenarioElement
(
source
));
}
}
else
{
generatedCode
+=
"% Sources (not enabled in config)\n"
;
}
if
(
config
.
isShowTargets
())
{
generatedCode
+=
"% Targets\n"
;
for
(
Target
target
:
topography
.
getTargets
())
{
generatedCode
+=
String
.
format
(
"\\fill[TargetColor] %s\n"
,
generatePathForScenarioElement
(
target
));
}
}
else
{
generatedCode
+=
"% Targets (not enabled in config)\n"
;
}
if
(
config
.
isShowObstacles
())
{
generatedCode
+=
"% Obstacles\n"
;
for
(
Obstacle
obstacle
:
topography
.
getObstacles
())
{
generatedCode
+=
String
.
format
(
"\\fill[ObstacleColor] %s\n"
,
generatePathForScenarioElement
(
obstacle
));
}
}
else
{
generatedCode
+=
"% Obstacles (not enabled in config)\n"
;
}
if
(
config
.
isShowStairs
())
{
generatedCode
+=
"% Stairs\n"
;
for
(
Stairs
stair
:
topography
.
getStairs
())
{
generatedCode
+=
String
.
format
(
"\\fill[StairColor] %s\n"
,
generatePathForScenarioElement
(
stair
));
}
}
else
{
generatedCode
+=
"% Stairs (not enabled in config)\n"
;
}
// TODO: maybe, draw also trajectories.
if
(
config
.
isShowPedestrians
())
{
generatedCode
+=
"% Agents\n"
;
for
(
Agent
agent
:
model
.
getAgents
())
{
String
agentTextPattern
=
"\\fill[AgentColor] (%f,%f) circle [radius=%fcm];\n"
;
generatedCode
+=
String
.
format
(
agentTextPattern
,
agent
.
getPosition
().
x
,
agent
.
getPosition
().
y
,
agent
.
getRadius
());
// Do not draw agents as path for performance reasons. Usually, agents have a circular shape.
// generatedCode += String.format("\\fill[AgentColor] %s\n", generatePathForScenarioElement(agent));
}
}
else
{
generatedCode
+=
"% Agents (not enabled in config)\n"
;
}
return
generatedCode
;
}
private
String
generatePathForScenarioElement
(
ScenarioElement
element
)
{
String
generatedPath
=
""
;
AffineTransform
noTransformation
=
new
AffineTransform
();
PathIterator
pathIterator
=
element
.
getShape
().
getPathIterator
(
noTransformation
);
while
(!
pathIterator
.
isDone
())
{
float
[]
coords
=
new
float
[
6
];
int
type
=
pathIterator
.
currentSegment
(
coords
);
generatedPath
+=
convertJavaToTikzPath
(
type
,
coords
);
pathIterator
.
next
();
}
return
generatedPath
;
}
private
String
convertJavaToTikzPath
(
int
type
,
float
[]
coords
)
{
if
(
type
<
SEG_MOVETO
||
type
>
SEG_CLOSE
)
{
throw
new
IllegalStateException
(
String
.
format
(
"Cannot process path segment type: %d (coordinates: %s)"
,
type
,
Arrays
.
toString
(
coords
)));
}
String
convertedPath
=
translationTable
[
type
];