addDistanceLine method
Future<void>
addDistanceLine(
- String markerIdA,
- String markerIdB,
- 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);
}