Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
vadere
vadere
Commits
de66d70e
Commit
de66d70e
authored
Apr 15, 2020
by
Christina
Browse files
refactored
parent
ef3d810b
Pipeline
#237232
failed with stages
in 2 minutes and 3 seconds
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
VadereSimulator/src/org/vadere/simulator/control/scenarioelements/TargetChangerController.java
View file @
de66d70e
...
...
@@ -81,43 +81,10 @@ public class TargetChangerController {
if
(
hasAgentReachedTargetChangerArea
(
agent
)
&&
processedAgents
.
containsKey
(
agent
.
getId
())
==
false
)
{
logEnteringTimeOfAgent
(
agent
,
simTimeInSec
);
boolean
changeTarget
=
false
;
boolean
keepTarget
;
int
targetId
;
int
binomialDistributionSample
;
LinkedList
<
Integer
>
keepTargets
=
new
Linked
List
<>
();
LinkedList
<
Integer
>
keepTargets
=
getFilteredTarget
List
();
seed
=
this
.
random
.
nextInt
();
JDKRandomGenerator
randomGenerator
=
new
JDKRandomGenerator
();
randomGenerator
.
setSeed
(
seed
);
int
index
=
0
;
for
(
Double
probability
:
targetChanger
.
getAttributes
().
getProbabilityToChangeTarget
()
)
{
binomialDistribution
=
new
BinomialDistribution
(
randomGenerator
,
BINOMIAL_DISTRIBUTION_SUCCESS_VALUE
,
probability
);
binomialDistributionSample
=
binomialDistribution
.
sample
();
keepTarget
=
(
binomialDistributionSample
==
BINOMIAL_DISTRIBUTION_SUCCESS_VALUE
);
if
(
keepTarget
){
changeTarget
=
true
;
if
(
targetChanger
.
getAttributes
().
getProbabilityToChangeTarget
().
size
()
==
1
){
keepTargets
=
targetChanger
.
getAttributes
().
getNextTarget
();
break
;
}
else
{
targetId
=
targetChanger
.
getAttributes
().
getNextTarget
().
get
(
index
);
keepTargets
.
add
(
targetId
);
}
}
index
+=
1
;
}
if
(
changeTarget
)
{
if
(
keepTargets
.
size
()
>
0
)
{
if
(
targetChanger
.
getAttributes
().
isNextTargetIsPedestrian
())
{
useDynamicTargetForAgentOrUseStaticAsFallback
(
agent
);
}
else
{
...
...
@@ -132,6 +99,44 @@ public class TargetChangerController {
}
}
private
LinkedList
<
Integer
>
getFilteredTargetList
(){
boolean
keepTarget
;
int
targetId
;
int
binomialDistributionSample
;
LinkedList
<
Integer
>
keepTargets
=
new
LinkedList
<>();
seed
=
this
.
random
.
nextInt
();
JDKRandomGenerator
randomGenerator
=
new
JDKRandomGenerator
();
randomGenerator
.
setSeed
(
seed
);
int
index
=
0
;
for
(
Double
probability
:
targetChanger
.
getAttributes
().
getProbabilityToChangeTarget
()
)
{
binomialDistribution
=
new
BinomialDistribution
(
randomGenerator
,
BINOMIAL_DISTRIBUTION_SUCCESS_VALUE
,
probability
);
binomialDistributionSample
=
binomialDistribution
.
sample
();
keepTarget
=
(
binomialDistributionSample
==
BINOMIAL_DISTRIBUTION_SUCCESS_VALUE
);
if
(
keepTarget
){
if
(
targetChanger
.
getAttributes
().
getProbabilityToChangeTarget
().
size
()
==
1
){
keepTargets
=
targetChanger
.
getAttributes
().
getNextTarget
();
break
;
}
else
{
targetId
=
targetChanger
.
getAttributes
().
getNextTarget
().
get
(
index
);
keepTargets
.
add
(
targetId
);
}
}
index
+=
1
;
}
return
keepTargets
;
}
private
Collection
<
DynamicElement
>
getDynamicElementsNearTargetChangerArea
()
{
final
Rectangle2D
areaBounds
=
targetChanger
.
getShape
().
getBounds2D
();
final
VPoint
areaCenter
=
new
VPoint
(
areaBounds
.
getCenterX
(),
areaBounds
.
getCenterY
());
...
...
@@ -185,8 +190,8 @@ public class TargetChangerController {
Pedestrian
pedToFollow
=
(
pedsWithFollowers
.
isEmpty
())
?
pedsWithCorrectTargetId
.
get
(
0
)
:
pedsWithFollowers
.
get
(
0
);
agentFollowsOtherPedestrian
(
agent
,
pedToFollow
);
}
else
{
LinkedList
<
Integer
>
used
Targets
=
targetChanger
.
getAttributes
().
getNext
Target
();
useStaticTargetForAgent
(
agent
,
used
Targets
);
LinkedList
<
Integer
>
keep
Targets
=
getFiltered
Target
List
();
useStaticTargetForAgent
(
agent
,
keep
Targets
);
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment