layout method

AnnotationLayoutResult layout({
  1. required List<ArAnnotation> annotations,
  2. required ArSensor arSensor,
  3. required Position deviceLocation,
  4. required double width,
  5. required double height,
  6. required AnnotationLayoutConfig config,
})

Implementation

AnnotationLayoutResult layout({
  required List<ArAnnotation> annotations,
  required ArSensor arSensor,
  required Position deviceLocation,
  required double width,
  required double height,
  required AnnotationLayoutConfig config,
}) {
  final status = _calculateFOV(arSensor.orientation, width, height);

  var visible = _calculateDistanceAndBearingFromUser(
      annotations, deviceLocation, arSensor, status);
  visible = visible
      .where(
          (element) => element.distanceFromUser < config.maxVisibleDistance)
      .toList();
  visible = _visibleAnnotations(visible, arSensor.heading, status);

  _transformAnnotation(visible, config);

  return AnnotationLayoutResult(annotations: visible, status: status);
}