class DbClustering::Models::Point

Attributes

cluster[RW]
datasource_point[RW]
is_noise[RW]

Public Class Methods

new(datasource_point:, vector_params: nil) click to toggle source
# File lib/models/point.rb, line 7
def initialize(datasource_point:, vector_params: nil)
  @is_noise = false
  @cluster = nil
  @datasource_point = datasource_point
  @vector_params = vector_params
end

Public Instance Methods

is_core_point?() click to toggle source
# File lib/models/point.rb, line 36
def is_core_point?
  !self.is_noise && !self.cluster.nil?
end
is_edge_point?() click to toggle source
# File lib/models/point.rb, line 32
def is_edge_point?
  self.is_noise && !self.cluster.nil?
end
is_noise_point?() click to toggle source
# File lib/models/point.rb, line 40
def is_noise_point?
  self.is_noise && self.cluster.nil?
end
vector() click to toggle source
# File lib/models/point.rb, line 14
def vector
  if @vector_params
    vector_object = @datasource_point.clustering_vector(@vector_params)
  else
    vector_object = @datasource_point.clustering_vector
  end

  if vector_object.is_a?(Hash) || vector_object.is_a?(Array)
    DbClustering::Models::Vector.new(object: vector_object)
  else
    raise "clustering_vector method needs to result to a Hash or an Array object"
  end
end
visited?() click to toggle source
# File lib/models/point.rb, line 28
def visited?
  self.is_noise || !self.cluster.nil?
end