Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Simonstrator
PeerfactSim.KOM
Commits
fd9ecf86
Commit
fd9ecf86
authored
Mar 29, 2016
by
Björn Richerzhagen
Browse files
Respect world size in OSM movement
parent
a53ed447
Changes
3
Hide whitespace changes
Inline
Side-by-side
src/de/tud/kom/p2psim/impl/topology/DefaultTopologyComponent.java
View file @
fd9ecf86
...
...
@@ -284,6 +284,9 @@ public class DefaultTopologyComponent implements TopologyComponent {
@Override
public
void
requestLocationUpdates
(
LocationRequest
request
,
LocationListener
listener
)
{
if
(
openRequests
.
containsKey
(
listener
))
{
throw
new
AssertionError
(
"This LocationListener is already in use."
);
}
LocationRequestImpl
req
=
(
LocationRequestImpl
)
request
;
openRequests
.
put
(
listener
,
req
);
req
.
immunizeAndStart
(
listener
);
...
...
src/de/tud/kom/p2psim/impl/topology/movement/local/RealWorldStreetsMovement.java
View file @
fd9ecf86
...
...
@@ -164,6 +164,10 @@ public class RealWorldStreetsMovement extends AbstractLocalMovementStrategy {
private
PositionVector
transformGPSWindowToOwnWorld
(
double
lat
,
double
lon
)
{
double
x
=
worldDimensions
.
getX
()
*
(
lon
-
lonLeft
)/(
lonRight
-
lonLeft
);
double
y
=
worldDimensions
.
getY
()
-
worldDimensions
.
getY
()
*
(
lat
-
latLeft
)/(
latRight
-
latLeft
);
x
=
Math
.
max
(
0
,
x
);
x
=
Math
.
min
(
worldDimensions
.
getX
(),
x
);
y
=
Math
.
max
(
0
,
y
);
y
=
Math
.
min
(
worldDimensions
.
getY
(),
y
);
return
new
PositionVector
(
x
,
y
);
}
...
...
src/de/tud/kom/p2psim/impl/topology/movement/modularosm/ModularMovementModel.java
View file @
fd9ecf86
...
...
@@ -246,6 +246,11 @@ public class ModularMovementModel implements MovementModel, EventHandler {
.
nextPosition
(
ms
,
destination
);
if
(
either
.
hasLeft
())
{
ms
.
getRealPosition
().
replace
(
either
.
getLeft
());
/*
* Check for negative or out of bound coordinates!
*/
assert
ms
.
getRealPosition
().
getX
()
>=
0.0
&&
ms
.
getRealPosition
().
getX
()
<=
Binder
.
getComponentOrNull
(
Topology
.
class
).
getWorldDimensions
().
getX
();
assert
ms
.
getRealPosition
().
getY
()
>=
0.0
&&
ms
.
getRealPosition
().
getY
()
<=
Binder
.
getComponentOrNull
(
Topology
.
class
).
getWorldDimensions
().
getY
();
notifyPositionChange
(
ms
);
}
else
{
transition
.
reachedAttractionPoint
(
ms
);
...
...
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