Position.create constructor
A position from parameters compatible with CreatePosition
function type.
The Position.view constructor is used to create a position from a double
array filled by given x
, y
, and optionally z
and m
.
Examples:
// a 2D position (x: 10.0, y: 20.0)
Position.create(x: 10.0, y: 20.0);
// a 3D position (x: 10.0, y: 20.0, z: 30.0)
Position.create(x: 10.0, y: 20.0, z: 30.0);
// a measured 2D position (x: 10.0, y: 20.0, m: 40.0)
Position.create(x: 10.0, y: 20.0, m: 40.0);
// a measured 3D position (x: 10.0, y: 20.0, z: 30.0, m: 40.0)
Position.create(x: 10.0, y: 20.0, z: 30.0, m: 40.0);
Implementation
factory Position.create({
required double x,
required double y,
double? z,
double? m,
}) {
if (z != null) {
// 3D coordinates
if (m != null) {
// 3D and measured coordinates
final list = Float64List(4);
list[0] = x;
list[1] = y;
list[2] = z;
list[3] = m;
return Position.view(list, type: Coords.xyzm);
} else {
// 3D coordinates (not measured)
final list = Float64List(3);
list[0] = x;
list[1] = y;
list[2] = z;
return Position.view(list, type: Coords.xyz);
}
} else {
// 2D coordinates
if (m != null) {
// 2D and measured coordinates
final list = Float64List(3);
list[0] = x;
list[1] = y;
list[2] = m;
return Position.view(list, type: Coords.xym);
} else {
// 2D coordinates (not measured)
final list = Float64List(2);
list[0] = x;
list[1] = y;
return Position.view(list, type: Coords.xy);
}
}
}