def create_coordinates(contour_data)
      raise ArgumentError, "Invalid argument 'contour_data'. Expected String (or nil), got #{contour_data.class}." unless [String, NilClass].include?(contour_data.class)
      if contour_data && contour_data != ""
        # Split the number strings, sperated by a '\', into an array:
        string_values = contour_data.split("\\")
        size = string_values.length/3
        # Extract every third value of the string array as x, y, and z, respectively, and collect them as floats instead of strings:
        x = string_values.values_at(*(Array.new(size){|i| i*3    })).collect{|val| val.to_f}
        y = string_values.values_at(*(Array.new(size){|i| i*3+1})).collect{|val| val.to_f}
        z = string_values.values_at(*(Array.new(size){|i| i*3+2})).collect{|val| val.to_f}
        x.each_index do |i|
          Coordinate.new(x[i], y[i], z[i], self)
        end
      end
    end
def create_coordinates(contour_data)
      raise ArgumentError, "Invalid argument 'contour_data'. Expected String (or nil), got #{contour_data.class}." unless [String, NilClass].include?(contour_data.class)
      if contour_data && contour_data != ""
        # Split the number strings, sperated by a '\', into an array:
        string_values = contour_data.split("\\")
        size = string_values.length/3
        # Extract every third value of the string array as x, y, and z, respectively, and collect them as floats instead of strings:
        x = string_values.values_at(*(Array.new(size){|i| i*3    })).collect{|val| val.to_f}
        y = string_values.values_at(*(Array.new(size){|i| i*3+1})).collect{|val| val.to_f}
        z = string_values.values_at(*(Array.new(size){|i| i*3+2})).collect{|val| val.to_f}
        x.each_index do |i|
          Coordinate.new(x[i], y[i], z[i], self)
        end
      end
    end
Creates and connects Coordinate instances with this Contour instance
 by processing the value of the Contour Data element value.

 @param [String, NilClass] contour_data a string containing x,y,z coordinate triplets separated by '\'