Class: XRVG::ClosureBezier

Inherits:
BezierBuilder show all
Defined in:
lib/beziertools.rb

Overview

ClosureBezier bezier builder

Content

Simple bezier operator that take a list of beziers and produce a concatenate multipieces closed bezier curve. Missing segments are completed with lines

Instance Method Summary collapse

Methods inherited from BezierBuilder

[], build, lissage

Instance Method Details

#computeObject

BezierBuilder compute overloading



165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
# File 'lib/beziertools.rb', line 165

def compute
  result = []
  result += self.bezierlist[0].pieces
  self.bezierlist[1..-1].each do |bezier|
    lastpoint = result[-1].lastpoint
    newpoint  = bezier.firstpoint
    if not V2D.vequal?( lastpoint, newpoint )
	result += LinearBezier[ :support, [lastpoint, newpoint]].pieces
    end
    result += bezier.pieces
  end
  lastpoint = result[-1].lastpoint
  newpoint  = result[0].firstpoint
  if not V2D.vequal?( lastpoint, newpoint )
    result += LinearBezier[ :support, [lastpoint, newpoint]].pieces
  end
  result = result.map {|piece| piece.data}
  # Trace("result #{result.inspect}")
  return result
end