private Point2D.Double calculatePointOnLink(final VisLinkWLanes laneLinkData, final double position, final double horizontalFraction) { Point2D.Double lenghtPoint = this.calcPoint(laneLinkData.getLinkStart(), laneLinkData.getNormalizedLinkVector(), position); return this.calcPoint(lenghtPoint, laneLinkData.getLinkOrthogonalVector(), horizontalFraction * laneLinkData.getLinkWidth()); }
private void drawSignals(GL2 gl, Map<String, VisSignal> signals, Point2D.Double point, Point2D.Double ortho, List<VisLinkWLanes> toLinks){ double dist = signals.size() - 1; Point2D.Double startPoint = this.laneModelBuilder.calcPoint(point, ortho, (quadSizeLinkEnd * -dist)); int i = 0; for (VisSignal signal : signals.values()){ this.drawToLinks(gl, startPoint, toLinks); startPoint = this.laneModelBuilder.calcPoint(point, ortho, (quadSizeLinkEnd * i));
Point2D.Double drivingLaneStart = this.calcPoint(laneStart, linkData.getLinkOrthogonalVector(), laneOffset); Point2D.Double drivingLaneEnd = this.calcPoint(laneEnd, linkData.getLinkOrthogonalVector(), laneOffset); lane.addDrivingLane(i, drivingLaneStart, drivingLaneEnd); laneOffset = laneOffset + linkWidthCalculator.getLaneWidth();