Module: Hexflex

Defined in:
lib/hexflex.rb,
lib/hexflex/side.rb,
lib/hexflex/version.rb,
lib/hexflex/triangle.rb,
lib/hexflex/tape_placer.rb,
lib/hexflex/hexaflexagon.rb,
lib/hexflex/base_template.rb,
lib/hexflex/glue_template.rb,
lib/hexflex/grid_triangle.rb,
lib/hexflex/tape_template.rb,
lib/hexflex/triangle_grid.rb,
lib/hexflex/triangle_rvg_group.rb,
lib/hexflex/rvg_template_vectorizer.rb,
lib/hexflex/rvg_color_triangle_vectorizer.rb,
lib/hexflex/rvg_image_triangle_vectorizer.rb

Defined Under Namespace

Classes: BaseTemplate, GlueTemplate, GridTriangle, Hexaflexagon, RvgColorTriangleVectorizer, RvgImageTriangleVectorizer, RvgTemplateVectorizer, Side, TapePlacer, TapeTemplate, Triangle, TriangleGrid, TriangleRvgGroup

Constant Summary collapse

DEFAULT_SIDE_FILLS =
[:cyan, :magenta, :yellow]
DEFAULT_TEMPLATE_STYLE =
:tape
VERSION =
"1.0.0"

Class Method Summary collapse

Class Method Details

.create_template_image!(output_file_name: 'out.png', **options) ⇒ Object



21
22
23
24
# File 'lib/hexflex.rb', line 21

def create_template_image!(output_file_name: 'out.png', **options)
  vector = make_template_vector(options)
  vector.draw.write(output_file_name)
end

.make_template(hexaflexagon, template_style) ⇒ Object



26
27
28
29
30
31
32
33
# File 'lib/hexflex.rb', line 26

def make_template(hexaflexagon, template_style)
  case template_style.to_sym
  when :glue
    GlueTemplate.new(hexaflexagon)
  when :tape
    TapeTemplate.new(hexaflexagon)
  end
end

.make_template_vector(side_fills: DEFAULT_SIDE_FILLS, template_style: DEFAULT_TEMPLATE_STYLE) ⇒ Object



16
17
18
19
# File 'lib/hexflex.rb', line 16

def make_template_vector(side_fills: DEFAULT_SIDE_FILLS, template_style: DEFAULT_TEMPLATE_STYLE)
  hexaflexagon = Hexaflexagon.new(side_fills)
  make_template(hexaflexagon, template_style).make_vector
end