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
fdc22cfc
Commit
fdc22cfc
authored
Jul 12, 2018
by
Benedikt Zoennchen
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'develop' of
https://gitlab.lrz.de/vadere/vadere
into develop
parents
a9edc936
8962a443
Pipeline
#61758
failed with stage
in 20 seconds
Changes
77
Pipelines
1
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
77 changed files
with
3878 additions
and
674 deletions
+3878
-674
.gitignore
.gitignore
+2
-0
VadereGui/resources/icons/camera.png
VadereGui/resources/icons/camera.png
+0
-0
VadereGui/resources/icons/group.png
VadereGui/resources/icons/group.png
+0
-0
VadereGui/resources/messages.properties
VadereGui/resources/messages.properties
+2
-0
VadereGui/resources/messages_de_DE.properties
VadereGui/resources/messages_de_DE.properties
+3
-1
VadereGui/src/org/vadere/gui/components/model/DefaultSimulationConfig.java
.../vadere/gui/components/model/DefaultSimulationConfig.java
+10
-0
VadereGui/src/org/vadere/gui/components/view/ScenarioElementView.java
...c/org/vadere/gui/components/view/ScenarioElementView.java
+3
-4
VadereGui/src/org/vadere/gui/components/view/SimulationRenderer.java
...rc/org/vadere/gui/components/view/SimulationRenderer.java
+11
-0
VadereGui/src/org/vadere/gui/onlinevisualization/OnlineVisualization.java
...g/vadere/gui/onlinevisualization/OnlineVisualization.java
+2
-1
VadereGui/src/org/vadere/gui/onlinevisualization/control/ActionGenerateTikz.java
...e/gui/onlinevisualization/control/ActionGenerateTikz.java
+4
-2
VadereGui/src/org/vadere/gui/onlinevisualization/control/ActionOnlineVisMenu.java
.../gui/onlinevisualization/control/ActionOnlineVisMenu.java
+43
-0
VadereGui/src/org/vadere/gui/onlinevisualization/view/OnlineVisualisationWindow.java
...i/onlinevisualization/view/OnlineVisualisationWindow.java
+33
-8
VadereGui/src/org/vadere/gui/onlinevisualization/view/OnlinevisualizationRenderer.java
...onlinevisualization/view/OnlinevisualizationRenderer.java
+3
-1
VadereGui/src/org/vadere/gui/postvisualization/control/ActionGenerateTikz.java
...ere/gui/postvisualization/control/ActionGenerateTikz.java
+1
-0
VadereGui/src/org/vadere/gui/postvisualization/control/ActionVisualizationMenu.java
...ui/postvisualization/control/ActionVisualizationMenu.java
+56
-0
VadereGui/src/org/vadere/gui/postvisualization/utils/TikzGenerator.java
...org/vadere/gui/postvisualization/utils/TikzGenerator.java
+167
-122
VadereGui/src/org/vadere/gui/postvisualization/view/PostvisualizationRenderer.java
...gui/postvisualization/view/PostvisualizationRenderer.java
+3
-1
VadereGui/src/org/vadere/gui/postvisualization/view/PostvisualizationWindow.java
...e/gui/postvisualization/view/PostvisualizationWindow.java
+40
-15
VadereGui/src/org/vadere/gui/projectview/view/DataProcessingView.java
...c/org/vadere/gui/projectview/view/DataProcessingView.java
+5
-2
VadereGui/src/org/vadere/gui/renderer/agent/AgentRender.java
VadereGui/src/org/vadere/gui/renderer/agent/AgentRender.java
+86
-0
VadereGui/src/org/vadere/gui/renderer/agent/FormHelper.java
VadereGui/src/org/vadere/gui/renderer/agent/FormHelper.java
+89
-0
VadereGui/src/org/vadere/gui/renderer/agent/Renderer.java
VadereGui/src/org/vadere/gui/renderer/agent/Renderer.java
+11
-0
VadereGui/src/org/vadere/gui/topographycreator/model/AgentWrapper.java
.../org/vadere/gui/topographycreator/model/AgentWrapper.java
+1
-1
VadereModelTests/TestOSM_Group/scenarios/group_OSM_1Source1Place.scenario
.../TestOSM_Group/scenarios/group_OSM_1Source1Place.scenario
+170
-0
VadereModelTests/TestOSM_Group/scenarios/group_OSM_1Source1Place_noGroup.scenario
..._Group/scenarios/group_OSM_1Source1Place_noGroup.scenario
+162
-0
VadereModelTests/TestOSM_Group/scenarios/group_OSM_1Source2Places.scenario
...TestOSM_Group/scenarios/group_OSM_1Source2Places.scenario
+226
-0
VadereModelTests/TestOSM_Group/scenarios/group_OSM_1Source2Places_noGroups.scenario
...roup/scenarios/group_OSM_1Source2Places_noGroups.scenario
+236
-0
VadereModelTests/TestOSM_Group/scenarios/group_OSM_2Sources1Place.scenario
...TestOSM_Group/scenarios/group_OSM_2Sources1Place.scenario
+208
-0
VadereModelTests/TestOSM_Group/vadere.project
VadereModelTests/TestOSM_Group/vadere.project
+1
-0
VadereSimulator/src/org/vadere/simulator/control/GroupSourceController.java
...c/org/vadere/simulator/control/GroupSourceController.java
+120
-0
VadereSimulator/src/org/vadere/simulator/control/Simulation.java
...imulator/src/org/vadere/simulator/control/Simulation.java
+11
-7
VadereSimulator/src/org/vadere/simulator/control/SingleSourceController.java
.../org/vadere/simulator/control/SingleSourceController.java
+86
-0
VadereSimulator/src/org/vadere/simulator/control/SourceController.java
...or/src/org/vadere/simulator/control/SourceController.java
+62
-140
VadereSimulator/src/org/vadere/simulator/control/factory/GroupSourceControllerFactory.java
...mulator/control/factory/GroupSourceControllerFactory.java
+29
-0
VadereSimulator/src/org/vadere/simulator/control/factory/SingleSourceControllerFactory.java
...ulator/control/factory/SingleSourceControllerFactory.java
+22
-0
VadereSimulator/src/org/vadere/simulator/control/factory/SourceControllerFactory.java
...re/simulator/control/factory/SourceControllerFactory.java
+16
-0
VadereSimulator/src/org/vadere/simulator/entrypoints/ScenarioBuilder.java
...src/org/vadere/simulator/entrypoints/ScenarioBuilder.java
+13
-13
VadereSimulator/src/org/vadere/simulator/models/MainModel.java
...eSimulator/src/org/vadere/simulator/models/MainModel.java
+7
-0
VadereSimulator/src/org/vadere/simulator/models/groups/CentroidGroup.java
...src/org/vadere/simulator/models/groups/CentroidGroup.java
+10
-7
VadereSimulator/src/org/vadere/simulator/models/groups/CentroidGroupFactory.java
.../vadere/simulator/models/groups/CentroidGroupFactory.java
+39
-23
VadereSimulator/src/org/vadere/simulator/models/groups/CentroidGroupModel.java
...rg/vadere/simulator/models/groups/CentroidGroupModel.java
+60
-26
VadereSimulator/src/org/vadere/simulator/models/groups/CentroidGroupPotential.java
...adere/simulator/models/groups/CentroidGroupPotential.java
+22
-18
VadereSimulator/src/org/vadere/simulator/models/groups/CentroidGroupSpeedAdjuster.java
...e/simulator/models/groups/CentroidGroupSpeedAdjuster.java
+2
-0
VadereSimulator/src/org/vadere/simulator/models/groups/GroupFactory.java
.../src/org/vadere/simulator/models/groups/GroupFactory.java
+9
-3
VadereSimulator/src/org/vadere/simulator/models/groups/GroupModel.java
...or/src/org/vadere/simulator/models/groups/GroupModel.java
+7
-1
VadereSimulator/src/org/vadere/simulator/models/osm/OptimalStepsModel.java
...rc/org/vadere/simulator/models/osm/OptimalStepsModel.java
+56
-29
VadereSimulator/src/org/vadere/simulator/models/osm/PedestrianOSM.java
...or/src/org/vadere/simulator/models/osm/PedestrianOSM.java
+4
-2
VadereSimulator/src/org/vadere/simulator/models/osm/optimization/StepCircleOptimizerDiscrete.java
.../models/osm/optimization/StepCircleOptimizerDiscrete.java
+1
-1
VadereSimulator/src/org/vadere/simulator/models/potential/PotentialFieldObstacleCompactSoftshell.java
...els/potential/PotentialFieldObstacleCompactSoftshell.java
+6
-6
VadereSimulator/src/org/vadere/simulator/models/potential/PotentialFieldPedestrianCompactSoftshell.java
...s/potential/PotentialFieldPedestrianCompactSoftshell.java
+1
-1
VadereSimulator/src/org/vadere/simulator/projects/ScenarioRun.java
...ulator/src/org/vadere/simulator/projects/ScenarioRun.java
+4
-3
VadereSimulator/src/org/vadere/simulator/projects/dataprocessing/datakey/TimestepPedestrianIdKey.java
...jects/dataprocessing/datakey/TimestepPedestrianIdKey.java
+8
-0
VadereSimulator/src/org/vadere/simulator/projects/dataprocessing/processor/PedestrianGroupIDProcessor.java
.../dataprocessing/processor/PedestrianGroupIDProcessor.java
+58
-0
VadereSimulator/src/org/vadere/simulator/projects/io/TrajectoryReader.java
...rc/org/vadere/simulator/projects/io/TrajectoryReader.java
+78
-26
VadereSimulator/tests/org/vadere/simulator/control/GroupSourceControllerTest.java
...g/vadere/simulator/control/GroupSourceControllerTest.java
+416
-0
VadereSimulator/tests/org/vadere/simulator/control/TestSourceControllerUsingConstantSpawnRate.java
...r/control/TestSourceControllerUsingConstantSpawnRate.java
+94
-35
VadereSimulator/tests/org/vadere/simulator/control/TestSourceControllerUsingDistributions.java
...lator/control/TestSourceControllerUsingDistributions.java
+45
-70
VadereState/src/org/vadere/state/attributes/AttributesEmbedShape.java
...src/org/vadere/state/attributes/AttributesEmbedShape.java
+6
-5
VadereState/src/org/vadere/state/attributes/scenario/AttributesSource.java
...rg/vadere/state/attributes/scenario/AttributesSource.java
+14
-2
VadereState/src/org/vadere/state/attributes/scenario/SourceTestAttributesBuilder.java
...tate/attributes/scenario/SourceTestAttributesBuilder.java
+74
-10
VadereState/src/org/vadere/state/scenario/Agent.java
VadereState/src/org/vadere/state/scenario/Agent.java
+4
-3
VadereState/src/org/vadere/state/scenario/Obstacle.java
VadereState/src/org/vadere/state/scenario/Obstacle.java
+1
-1
VadereState/src/org/vadere/state/scenario/Pedestrian.java
VadereState/src/org/vadere/state/scenario/Pedestrian.java
+10
-2
VadereState/src/org/vadere/state/scenario/Source.java
VadereState/src/org/vadere/state/scenario/Source.java
+1
-1
VadereState/src/org/vadere/state/scenario/Stairs.java
VadereState/src/org/vadere/state/scenario/Stairs.java
+1
-1
VadereState/src/org/vadere/state/scenario/Target.java
VadereState/src/org/vadere/state/scenario/Target.java
+1
-1
VadereState/src/org/vadere/state/util/GroupPlacementHelper.java
...State/src/org/vadere/state/util/GroupPlacementHelper.java
+120
-0
VadereState/src/org/vadere/state/util/SpawnArray.java
VadereState/src/org/vadere/state/util/SpawnArray.java
+290
-0
VadereState/tests/org/vadere/state/scenario/TestStairs.java
VadereState/tests/org/vadere/state/scenario/TestStairs.java
+2
-2
VadereState/tests/org/vadere/state/util/SpawnArrayTest.java
VadereState/tests/org/vadere/state/util/SpawnArrayTest.java
+428
-0
VadereUtils/src/org/vadere/util/geometry/GeometryUtils.java
VadereUtils/src/org/vadere/util/geometry/GeometryUtils.java
+18
-21
VadereUtils/src/org/vadere/util/geometry/shapes/VCircle.java
VadereUtils/src/org/vadere/util/geometry/shapes/VCircle.java
+12
-25
VadereUtils/src/org/vadere/util/geometry/shapes/VCircleSector.java
...ls/src/org/vadere/util/geometry/shapes/VCircleSector.java
+8
-9
VadereUtils/src/org/vadere/util/geometry/shapes/VPoint.java
VadereUtils/src/org/vadere/util/geometry/shapes/VPoint.java
+2
-3
VadereUtils/src/org/vadere/util/geometry/shapes/VRectangle.java
...Utils/src/org/vadere/util/geometry/shapes/VRectangle.java
+4
-0
VadereUtils/src/org/vadere/util/math/pso/PSO.java
VadereUtils/src/org/vadere/util/math/pso/PSO.java
+14
-15
VadereUtils/src/org/vadere/util/math/pso/Particle.java
VadereUtils/src/org/vadere/util/math/pso/Particle.java
+4
-4
No files found.
.gitignore
View file @
fdc22cfc
...
...
@@ -23,10 +23,12 @@ VadereSimulator/resources/current_commit_hash.txt
#model test output
VadereModelTests/TestOSM/output/*
VadereModelTests/TestOSM_Group/output/*
VadereModelTests/TestSFM/output/*
VadereModelTests/TestGNM/output/*
VadereModelTests/TestOVM/output/*
VadereModelTests/TestOSM/processed output/*
VadereModelTests/TestOSM_Group/processed output/*
VadereModelTests/TestSFM/processed output/*
VadereModelTests/TestGNM/processed output/*
VadereModelTests/TestOVM/processed output/*
...
...
VadereGui/resources/icons/camera.png
0 → 100644
View file @
fdc22cfc
41.9 KB
VadereGui/resources/icons/group.png
0 → 100644
View file @
fdc22cfc
8.72 KB
VadereGui/resources/messages.properties
View file @
fdc22cfc
...
...
@@ -217,6 +217,7 @@ PostVis.chbShowObstacles.text=Show Obstacles
PostVis.chbShowTargets.text
=
Show Targets
PostVis.chbShowSources.text
=
Show Sources
PostVis.chbShowStairs.text
=
Show Stairs
PostVis.btnSnapshot.tooltip
=
Snapshot
PostVis.btnPNGSnapshot.tooltip
=
PNG Snapshot
PostVis.btnSVGSnapshot.tooltip
=
SVG Snapshot
PostVis.btnTikZSnapshot.tooltip
=
TikZ Snapshot
...
...
@@ -255,6 +256,7 @@ SettingsDialog.menuOpenFloorFieldFile.title=Add Floor Field File...
View.btnDrawVoronoiDiagram.tooltip
=
Draw and display a Voronoi Diagram
View.chbLogo.text
=
Show the Vadere logo
View.btnShowWalkingDirection.tooltip
=
Show the walking direction of all pedestrians
View.btnShowGroupInformation.tooltip
=
Draw pedestrians within one group with same shape and color
View.btnShowPedestrian.tooltip
=
Show Pedestrians
View.btnShowPotentialfield.tooltip
=
Show Potential Field (only possible after adding potential field file)
View.btnShowTrajectories.tooltip
=
Show Trajectories
...
...
VadereGui/resources/messages_de_DE.properties
View file @
fdc22cfc
...
...
@@ -217,9 +217,10 @@ PostVis.chbShowObstacles.text=Hindernisse anzeigen
PostVis.chbShowTargets.text
=
Ziele anzeigen
PostVis.chbShowSources.text
=
Quellen anzeigen
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.btnTikZSnapshot.tooltip
=
TikZ
-
Snapshot
PostVis.menuFile.title
=
Datei
PostVis.menuSettings.title
=
Einstellungen
PostVis.menuRecentFiles.title
=
K
\u
00FCrzlich verwendete Dateien
...
...
@@ -255,6 +256,7 @@ SettingsDialog.menuOpenFloorFieldFile.title=Floor Field-Datei hinzuf\u00fcgen...
View.btnDrawVoronoiDiagram.tooltip
=
Voronoi-Diagramm zeichnen und anzeigen
View.chbLogo.text
=
VADERE-Logo anzeigen
View.btnShowWalkingDirection.tooltip
=
Gehrichtung aller Fu
\u
00dfg
\u
00e4nger anzeigen
View.btnShowGroupInformation.tooltip
=
Zeichne Fu
\u
00dfg
\u
00e4nger einer Gruppe mit denn selben Formen und Farben
View.btnShowPedestrian.tooltip
=
Fu
\u
00dfg
\u
00e4nger anzeigen
View.btnShowPotentialfield.tooltip
=
Potenzialfeld anzeigen (nur m
\u
00f6glich, nachdem eine Datei f
\u
00fcr das Potenzialfeld hinzugef
\u
00fcgt wurde)
View.btnShowTrajectories.tooltip
=
Trajektorien anzeigen
...
...
VadereGui/src/org/vadere/gui/components/model/DefaultSimulationConfig.java
View file @
fdc22cfc
...
...
@@ -22,6 +22,7 @@ public class DefaultSimulationConfig extends DefaultConfig {
private
boolean
showTrajectories
=
false
;
private
boolean
showGrid
=
false
;
private
boolean
showDensity
=
false
;
private
boolean
showGroups
=
false
;
protected
final
Color
pedestrianDefaultColor
=
Color
.
BLUE
;
public
DefaultSimulationConfig
()
{
...
...
@@ -37,6 +38,15 @@ public class DefaultSimulationConfig extends DefaultConfig {
this
.
showPedestrians
=
config
.
showPedestrians
;
this
.
showLogo
=
config
.
showLogo
;
this
.
showStairs
=
config
.
showStairs
;
this
.
showGroups
=
config
.
showGroups
;
}
public
boolean
isShowGroups
()
{
return
showGroups
;
}
public
void
setShowGroups
(
boolean
showGroups
)
{
this
.
showGroups
=
showGroups
;
}
public
boolean
isShowLogo
()
{
...
...
VadereGui/src/org/vadere/gui/components/view/ScenarioElementView.java
View file @
fdc22cfc
...
...
@@ -106,8 +106,7 @@ public class ScenarioElementView extends JPanel implements ISelectScenarioElemen
}
@Override
public
void
removeUpdate
(
DocumentEvent
e
)
{
public
void
removeUpdate
(
DocumentEvent
e
)
{
updateModel
();
}
...
...
@@ -186,8 +185,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
(
scenarioElement
.
getAttributes
()));
this
.
txtrTextfiletextarea
.
setText
(
StateJsonConverter
.
serializeObject
(
scenarioElement
.
getAttributes
()));
}
}
}
...
...
VadereGui/src/org/vadere/gui/components/view/SimulationRenderer.java
View file @
fdc22cfc
...
...
@@ -16,6 +16,7 @@ import org.vadere.gui.components.model.SimulationModel;
import
org.vadere.gui.components.utils.CLGaussianCalculator
;
import
org.vadere.gui.components.utils.ColorHelper
;
import
org.vadere.gui.components.utils.Resources
;
import
org.vadere.gui.renderer.agent.AgentRender
;
import
org.vadere.state.scenario.Agent
;
import
org.vadere.util.geometry.shapes.VPoint
;
import
org.vadere.util.geometry.shapes.VTriangle
;
...
...
@@ -35,12 +36,14 @@ public abstract class SimulationRenderer extends DefaultRenderer {
private
ColorHelper
colorHelper
;
private
Color
lastDensityColor
=
null
;
private
int
topographyId
;
private
AgentRender
agentRender
;
public
SimulationRenderer
(
final
SimulationModel
model
)
{
super
(
model
);
this
.
model
=
model
;
this
.
topographyId
=
-
1
;
this
.
colorHelper
=
new
ColorHelper
(
40
);
this
.
agentRender
=
new
AgentRender
(
model
);
}
@Override
...
...
@@ -205,4 +208,12 @@ public abstract class SimulationRenderer extends DefaultRenderer {
private
float
getGridLineWidth
()
{
return
(
float
)
(
0.5
/
model
.
getScaleFactor
());
}
public
AgentRender
getAgentRender
()
{
return
agentRender
;
}
public
void
setAgentRender
(
AgentRender
agentRender
)
{
this
.
agentRender
=
agentRender
;
}
}
\ No newline at end of file
VadereGui/src/org/vadere/gui/onlinevisualization/OnlineVisualization.java
View file @
fdc22cfc
...
...
@@ -36,7 +36,8 @@ public class OnlineVisualization implements PassiveCallback {
private
OnlineVisualisationWindow
onlineVisualisationPanel
;
private
OnlineVisualizationModel
model
;
private
Topography
scenario
;
private
@Nullable
IPotentialFieldTarget
potentialFieldTarget
;
private
@Nullable
IPotentialFieldTarget
potentialFieldTarget
;
private
boolean
enableVisualization
;
public
OnlineVisualization
(
boolean
enableVisualization
)
{
...
...
VadereGui/src/org/vadere/gui/onlinevisualization/control/ActionGenerateTikz.java
View file @
fdc22cfc
...
...
@@ -12,6 +12,7 @@ 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
;
...
...
@@ -25,7 +26,7 @@ public class ActionGenerateTikz extends AbstractAction implements IRendererChang
private
final
SimulationModel
<?
extends
DefaultSimulationConfig
>
model
;
public
ActionGenerateTikz
(
final
String
name
,
final
Icon
icon
,
final
SimulationRenderer
renderer
,
final
SimulationModel
<?
extends
DefaultSimulationConfig
>
model
)
{
final
SimulationModel
<?
extends
DefaultSimulationConfig
>
model
)
{
super
(
name
,
icon
);
this
.
tikzGenerator
=
new
TikzGenerator
(
renderer
,
model
);
this
.
model
=
model
;
...
...
@@ -55,5 +56,6 @@ public class ActionGenerateTikz extends AbstractAction implements IRendererChang
}
@Override
public
void
update
(
SimulationRenderer
renderer
)
{}
public
void
update
(
SimulationRenderer
renderer
)
{
}
}
VadereGui/src/org/vadere/gui/onlinevisualization/control/ActionOnlineVisMenu.java
0 → 100644
View file @
fdc22cfc
package
org.vadere.gui.onlinevisualization.control
;
import
org.vadere.gui.postvisualization.control.ActionVisualization
;
import
java.awt.*
;
import
java.awt.event.ActionEvent
;
import
java.util.List
;
import
javax.swing.*
;
public
class
ActionOnlineVisMenu
extends
AbstractAction
{
private
final
List
<
Action
>
actions
;
private
JPopupMenu
menu
;
private
Component
parent
;
public
ActionOnlineVisMenu
(
final
String
name
,
Icon
icon
,
final
List
<
Action
>
actions
)
{
super
(
name
,
icon
);
this
.
actions
=
actions
;
}
public
void
setParent
(
Component
parent
)
{
this
.
parent
=
parent
;
}
@Override
public
void
actionPerformed
(
ActionEvent
e
)
{
SwingUtilities
.
invokeLater
(
new
Runnable
()
{
@Override
public
void
run
()
{
if
(
menu
==
null
)
{
menu
=
new
JPopupMenu
();
for
(
Action
action
:
actions
)
{
menu
.
add
(
action
);
}
}
menu
.
show
(
parent
,
0
,
parent
.
getHeight
());
}
});
}
}
VadereGui/src/org/vadere/gui/onlinevisualization/view/OnlineVisualisationWindow.java
View file @
fdc22cfc
...
...
@@ -3,8 +3,6 @@ package org.vadere.gui.onlinevisualization.view;
import
com.jgoodies.forms.layout.CellConstraints
;
import
com.jgoodies.forms.layout.FormLayout
;
import
javax.swing.*
;
import
org.vadere.gui.components.control.IViewportChangeListener
;
import
org.vadere.gui.components.control.JViewportChangeListener
;
import
org.vadere.gui.components.control.PanelResizeListener
;
...
...
@@ -18,14 +16,18 @@ 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
;
import
java.awt.*
;
import
java.awt.event.ActionEvent
;
import
java.util.ArrayList
;
import
java.util.Observable
;
import
java.util.Observer
;
import
javax.swing.*
;
public
class
OnlineVisualisationWindow
extends
JPanel
implements
Observer
{
private
static
final
long
serialVersionUID
=
3522170593760789565L
;
...
...
@@ -102,6 +104,15 @@ public class OnlineVisualisationWindow extends JPanel implements Observer {
}
};
AbstractAction
showGroupInformationAction
=
new
AbstractAction
(
"showGroupInformationAction"
,
resources
.
getIcon
(
"group.png"
,
iconWidth
,
iconHeight
))
{
@Override
public
void
actionPerformed
(
ActionEvent
e
)
{
model
.
config
.
setShowGroups
(!
model
.
config
.
isShowGroups
());
model
.
notifyObservers
();
}
};
AbstractAction
paintGridAction
=
new
AbstractAction
(
"paintGridAction"
,
resources
.
getIcon
(
"grid.png"
,
iconWidth
,
iconHeight
))
{
...
...
@@ -139,20 +150,20 @@ public class OnlineVisualisationWindow extends JPanel implements Observer {
};
ActionGeneratePNG
generatePNG
=
new
ActionGeneratePNG
(
"generatePNG"
,
Messages
.
getString
(
"PostVis.btnPNGSnapshot.tooltip"
)
,
resources
.
getIcon
(
"camera_png.png"
,
iconWidth
,
iconHeight
),
new
OnlinevisualizationRenderer
(
model
),
model
);
ActionGenerateSVG
generateSVG
=
new
ActionGenerateSVG
(
"generateSVG"
,
Messages
.
getString
(
"PostVis.btnSVGSnapshot.tooltip"
)
,
resources
.
getIcon
(
"camera_svg.png"
,
iconWidth
,
iconHeight
),
new
OnlinevisualizationRenderer
(
model
),
model
);
ActionGenerateTikz
generateTikz
=
new
ActionGenerateTikz
(
"generateTikz"
,
Messages
.
getString
(
"PostVis.btnTikZSnapshot.tooltip"
)
,
resources
.
getIcon
(
"camera_tikz.png"
,
iconWidth
,
iconHeight
),
new
OnlinevisualizationRenderer
(
model
),
model
);
...
...
@@ -174,6 +185,8 @@ public class OnlineVisualisationWindow extends JPanel implements Observer {
Messages
.
getString
(
"View.btnShowTrajectories.tooltip"
));
SwingUtils
.
addActionToToolbar
(
toolbar
,
paintArrowAction
,
Messages
.
getString
(
"View.btnShowWalkingDirection.tooltip"
));
SwingUtils
.
addActionToToolbar
(
toolbar
,
showGroupInformationAction
,
Messages
.
getString
(
"View.btnShowGroupInformation.tooltip"
));
toolbar
.
addSeparator
();
...
...
@@ -182,9 +195,18 @@ public class OnlineVisualisationWindow extends JPanel implements Observer {
toolbar
.
addSeparator
();
SwingUtils
.
addActionToToolbar
(
toolbar
,
generatePNG
,
Messages
.
getString
(
"PostVis.btnPNGSnapshot.tooltip"
));
SwingUtils
.
addActionToToolbar
(
toolbar
,
generateSVG
,
Messages
.
getString
(
"PostVis.btnSVGSnapshot.tooltip"
));
SwingUtils
.
addActionToToolbar
(
toolbar
,
generateTikz
,
Messages
.
getString
(
"PostVis.btnTikzSnapshot.tooltip"
));
ArrayList
<
Action
>
imgOptions
=
new
ArrayList
<>();
imgOptions
.
add
(
generatePNG
);
imgOptions
.
add
(
generateSVG
);
imgOptions
.
add
(
generateTikz
);
ActionOnlineVisMenu
imgDialog
=
new
ActionOnlineVisMenu
(
"camera_menu"
,
resources
.
getIcon
(
"camera.png"
,
iconWidth
,
iconHeight
),
imgOptions
);
JButton
imgMenuBtn
=
SwingUtils
.
addActionToToolbar
(
toolbar
,
imgDialog
,
"PostVis.btnSnapshot.tooltip"
);
imgDialog
.
setParent
(
imgMenuBtn
);
SwingUtils
.
addActionToToolbar
(
toolbar
,
showPotentialField
,
Messages
.
getString
(
"OnlineVis.btnShowPotentialfield.tooltip"
));
add
(
toolbar
,
cc
.
xyw
(
2
,
2
,
3
));
...
...
@@ -192,6 +214,9 @@ public class OnlineVisualisationWindow extends JPanel implements Observer {
scrollPane
.
setPreferredSize
(
new
Dimension
(
1
,
windowHeight
));
add
(
jsonPanel
,
cc
.
xy
(
4
,
4
));
add
(
infoPanel
,
cc
.
xyw
(
2
,
6
,
3
));
repaint
();
revalidate
();
}
@Override
...
...
VadereGui/src/org/vadere/gui/onlinevisualization/view/OnlinevisualizationRenderer.java
View file @
fdc22cfc
...
...
@@ -8,6 +8,7 @@ import java.util.Map;
import
org.vadere.gui.components.view.DefaultRenderer
;
import
org.vadere.gui.components.view.SimulationRenderer
;
import
org.vadere.gui.onlinevisualization.model.OnlineVisualizationModel
;
import
org.vadere.gui.renderer.agent.AgentRender
;
import
org.vadere.state.scenario.Agent
;
import
org.vadere.util.geometry.shapes.VPoint
;
...
...
@@ -55,10 +56,11 @@ public class OnlinevisualizationRenderer extends SimulationRenderer {
}
private
void
renderPedestrians
(
final
Graphics2D
g
)
{
AgentRender
agentRender
=
getAgentRender
();
g
.
setColor
(
model
.
config
.
getPedestrianDefaultColor
());
for
(
Agent
ped
:
model
.
getAgents
())
{
VPoint
position
=
ped
.
getPosition
();
g
.
fill
(
ped
.
getShape
()
);
agentRender
.
render
(
ped
,
g
);
if
(!
pedestrianPositions
.
containsKey
(
ped
.
getId
()))
{
pedestrianPositions
.
put
(
ped
.
getId
(),
new
LinkedList
());
...
...
VadereGui/src/org/vadere/gui/postvisualization/control/ActionGenerateTikz.java
View file @
fdc22cfc
...
...
@@ -8,6 +8,7 @@ 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
;
...
...
VadereGui/src/org/vadere/gui/postvisualization/control/ActionVisualizationMenu.java
0 → 100644
View file @
fdc22cfc
package
org.vadere.gui.postvisualization.control
;
import
org.vadere.gui.postvisualization.model.PostvisualizationModel
;
import
java.awt.*
;
import
java.awt.event.ActionEvent
;
import
java.util.List
;
import
javax.swing.*
;
public
class
ActionVisualizationMenu
extends
ActionVisualization
{
private
final
List
<
Action
>
actions
;
private
JPopupMenu
menu
;
private
Component
parent
;
private
final
ActionVisualization
action
;
public
ActionVisualizationMenu
(
String
name
,
Icon
icon
,
PostvisualizationModel
model
,
final
ActionVisualization
action
,
final
List
<
Action
>
actions
)
{
super
(
name
,
icon
,
model
);
this
.
action
=
action
;
this
.
actions
=
actions
;
}
public
ActionVisualizationMenu
(
String
name
,
PostvisualizationModel
model
,
final
ActionVisualization
action
,
final
List
<
Action
>
actions
)
{
super
(
name
,
model
);
this
.
action
=
action
;
this
.
actions
=
actions
;
}
public
void
setParent
(
Component
parent
)
{
this
.
parent
=
parent
;
}
@Override
public
void
actionPerformed
(
ActionEvent
e
)
{
SwingUtilities
.
invokeLater
(
new
Runnable
()
{
@Override
public
void
run
()
{
if
(
menu
==
null
)
{
menu
=
new
JPopupMenu
();
for
(
Action
action
:
actions
)
{
menu
.
add
(
action
);
}
}
menu
.
show
(
parent
,
0
,
parent
.
getHeight
());
}
});
// action.actionPerformed(e);
}
}
VadereGui/src/org/vadere/gui/postvisualization/utils/TikzGenerator.java
View file @
fdc22cfc
...
...
@@ -2,6 +2,7 @@ package org.vadere.gui.postvisualization.utils;
import
org.apache.log4j.LogManager
;
import
org.apache.log4j.Logger
;
import
org.jetbrains.annotations.NotNull
;
import
org.vadere.gui.components.model.DefaultSimulationConfig
;
import
org.vadere.gui.components.model.SimulationModel
;
import
org.vadere.gui.components.view.SimulationRenderer
;
...
...
@@ -22,16 +23,14 @@ import static java.awt.geom.PathIterator.*;
* @see PathIterator This PathSeparator must be converted into its TikZ
* representation.
*
* For example, traversing a Java path with PathIterator returns two
* segments:
* 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]
* 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)
* (1.0,1.0) to (2.0,2.0)
*
* The TikZGenerator should also respect the GUI settings (e.g., enabled
* elements, colors etc.).
...
...
@@ -41,48 +40,48 @@ 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
;
private
final
String
[]
translationTable
;
public
TikzGenerator
(
final
SimulationRenderer
renderer
,
final
SimulationModel
<?
extends
DefaultSimulationConfig
>
model
)
{
final
SimulationModel
<?
extends
DefaultSimulationConfig
>
model
)
{
this
.
renderer
=
renderer
;
this
.
model
=
model
;
this
.
translationTable
=
new
String
[
SEG_CLOSE
+
1
];
this
.
translationTable
=
new
String
[
SEG_CLOSE
+
1
];
initializeTranslationTable
(
translationTable
);
}
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;"
;
}
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"
;
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
tikzCode
=
""
;
tikzCode
+=
generateTikzColorDefinitions
(
model
);
tikzCode
+=
convertScenarioElementsToTikz
();
String
output
=
(
generateCompleteDocument
)
?
String
.
format
(
texTemplate
,
tikzCode
)
:
tikzCode
;
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).
// 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
();
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
());
...
...
@@ -90,130 +89,176 @@ public class TikzGenerator {
}
}
private
String
generateTikzColorDefinitions
(
SimulationModel
<?
extends
DefaultSimulationConfig
>
model
)
{
String
colorDefinitions
=
"% Color Definitions\n"
;
private
String
generateTikzColorDefinitions
(
SimulationModel
<?
extends
DefaultSimulationConfig
>
model
)
{
String
colorDefinitions
=
"% Color Definitions\n"
;
String
colorTextPattern
=
"\\definecolor{%s}{RGB}{%d,%d,%d}\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
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
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
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
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
());
Color
agentColor
=
model
.
getConfig
().
getPedestrianDefaultColor
();
colorDefinitions
+=
String
.
format
(
colorTextPattern
,
"AgentColor"
,
agentColor
.
getRed
(),
agentColor
.
getGreen
(),
agentColor
.
getBlue
());
return
colorDefinitions
;
}
return
colorDefinitions
;
}
private
String
convertScenarioElementsToTikz
()
{
String
generatedCode
=
""
;
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
,