/**
 * Given a list of points, return the x, y, and z coordinates separately.
 *
 * @param points a list of tuples representing (x, y, z) coordinates
 * @return Triple containing lists of x, y, and z coordinates
 */
fun getCoordinates(points: List<Triple<Double, Double, Double>>): Triple<List<Double>, List<Double>, List<Double>> {

    val x = points.map { it.first } // Extract x coordinates using map
    val y = points.map { it.second } // Extract y coordinates using map
    val z = points.map { it.third } // Extract z coordinates using map

    return Triple(x, y, z)
}
/**
 * Given a list of points, return the x, y, and z coordinates separately.
 *
 * @param points a list of tuples representing (x, y, z) coordinates
 * @return Triple containing lists of x, y, and z coordinates
 */
fun getCoordinates(points: List<Triple<Double, Double, Double>>): Triple<List<Double>, List<Double>, List<Double>> {
/**
 * Given a list of points, return the x, y, and z coordinates separately.
 *
 * @param points a list of tuples representing (x, y, z) coordinates
 * @return Triple containing lists of x, y, and z coordinates
 */
fun getCoordinates(points: List<Triple<Double, Double, Double>>): Triple<List<Double>, List<Double>, List<Double>> {

    val x = points.map { it.first } // Extract x coordinates using map
    val y = points.map { it.second } // Extract y coordinates using map
    val z = points.map { it.third } // Extract z coordinates using map

    return Triple(x, y, z)
}