Skip to content
Carlos edited this page Aug 19, 2019 · 2 revisions

Line original implementation. Provides an easy interface to manipulate, save and restore, line-like values from the database. Works very similar to the ActiveRecord::Point, but for the values that compose a line (a, b, and c). PostgreSQL Docs

The biggest difference between this and a segment is that its composition is based on the A, B, C form (0 = Ax + By + C).

How it works

Migration

Just set the type of the column as line when creating a table.

create_table "Hit" do |t|
  t.string "source", null: false
  t.line   "trajectory"
end

Using it

The column is automatically identified and its value turned into what is defined in geometry.line_class or into a Torque::PostgreSQL::Line.

This original implementation provides a couple of methods:

hit = Hit.new
hit.trajectory.a
hit.trajectory.b
hit.trajectory.c
hit.trajectory.horizontal?
hit.trajectory.cvertical?
hit.trajectory.intercept      # Same as c

The value can be set in some different manners:

hit.trajectory = '2,-5,4'
hit.trajectory = '{2,-5,4}'
hit.trajectory = [2,-5,4]
hit.trajectory = { a: 2, b: -5, c: 4 }
Clone this wiki locally