generateCurve method

AdjustableCurve2D generateCurve(
  1. double distanceBetweenPoints,
  2. Segment segment,
  3. SpacePosition spacePosition
)

Implementation

AdjustableCurve2D generateCurve(double distanceBetweenPoints, Segment segment, SpacePosition spacePosition) {
  for(var i=0; i < generationAttemntsLimit; i++) {
    Array startPoint = getRandomStartPoint(segment);
    List<Array> coordinates = generateCoordinates(startPoint, spacePosition, distanceBetweenPoints);
    if (!isCurveIntersectingBorders(coordinates)) {
      logger.d('Line generated in ${i+1} attempts/-s');
      return AdjustableCurve2D(coordinates[0], coordinates[1]);
    }
  }
  logger.d('Problems with random line generation. Returning dummy line.');
  return generateDummyCurve(distanceBetweenPoints);
}