addDistanceLine method

  1. @override
Future<void> addDistanceLine(
  1. String markerIdA,
  2. String markerIdB,
  3. ArMeasurement measurement
)
override

Add a distance line between two markers.

Implementation

@override
Future<void> addDistanceLine(
  String markerIdA,
  String markerIdB,
  ArMeasurement measurement,
) async {
  if (_controller == null) return;

  final posA = measurement.pointA.position;
  final posB = measurement.pointB.position;

  // Line between points
  final line = ARKitLine(
    fromVector: Vector3(posA.x, posA.y, posA.z),
    toVector: Vector3(posB.x, posB.y, posB.z),
  );
  final lineNode = ARKitNode(
    name: '${markerIdA}_${markerIdB}_line',
    geometry: line,
  );
  await _controller!.add(lineNode);

  // Text label at midpoint
  final mid = measurement.midpoint;
  final text = ARKitText(
    text: measurement.formattedDistance,
    extrusionDepth: 1,
    materials: [
      ARKitMaterial(
        diffuse: ARKitMaterialProperty.color(const Color(0xFFFFFFFF)),
      ),
    ],
  );
  final textNode = ARKitNode(
    name: '${markerIdA}_${markerIdB}_text',
    geometry: text,
    position: Vector3(mid.x, mid.y + 0.02, mid.z),
    scale: Vector3.all(0.001),
  );
  await _controller!.add(textNode);
}