class HexTessagon(Tessagon):
    tile_class = HexTile
    metadata = metadata class TriTessagon(Tessagon):
    tile_class = TriTile
    metadata = metadata class OctoTessagon(Tessagon):
    tile_class = OctoTile
    metadata = metadata class RhombusTessagon(Tessagon):
    tile_class = RhombusTile
    metadata = metadata class HexTriTessagon(Tessagon):
    tile_class = HexTriTile
    metadata = metadata class HexSquareTriTessagon(Tessagon):
    tile_class = HexSquareTriTile
    metadata = metadata class SquareTessagon(Tessagon):
    tile_class = SquareTile
    metadata = metadata class PythagoreanTessagon(Tessagon):
    tile_class = PythagoreanTile
    metadata = metadata class BrickTessagon(Tessagon):
    tile_class = BrickTile
    metadata = metadata class DodecaTessagon(Tessagon):
    tile_class = DodecaTile
    metadata = metadata class SquareTriTessagon(Tessagon):
    tile_class = SquareTriTile
    metadata = metadata class WeaveTessagon(Tessagon):
    tile_class = WeaveTile
    metadata = metadata class FloretTessagon(Stamp14Tessagon):
    tile_class = FloretTile
    metadata = metadata

    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.vert_types = {'center': [], 'edge_to_center': [], 'other': []}

    def _calculate_colors(self):
        self.mesh_adaptor.initialize_colors()
        if self.color_pattern == 3:
            for tile in self.tiles:
                tile.set_default_color(0)
        for tile in self.tiles:
            tile.calculate_colors() class HexBigTriTessagon(Stamp14Tessagon):
    tile_class = HexBigTriTile
    metadata = metadata class ZigZagTessagon(Tessagon):
    tile_class = ZigZagTile
    metadata = metadata class DissectedSquareTessagon(Tessagon):
    tile_class = DissectedSquareTile
    metadata = metadata class SquareTri2Tessagon(Tessagon):
    tile_class = SquareTri2Tile
    metadata = metadata class DodecaTriTessagon(Tessagon):
    tile_class = DodecaTriTile
    metadata = metadata class DissectedTriangleTessagon(Tessagon):
    tile_class = DissectedTriangleTile
    metadata = metadata class DissectedHexQuadTessagon(Tessagon):
    tile_class = DissectedHexQuadTile
    metadata = metadata class DissectedHexTriTessagon(Tessagon):
    tile_class = DissectedHexTriTile
    metadata = metadata class PentaTessagon(Tessagon):
    tile_class = PentaTile
    metadata = metadata class Penta2Tessagon(Tessagon):
    tile_class = Penta2Tile
    metadata = metadata
from tessagon.types.hex_tessagon import HexTessagon
from tessagon.types.tri_tessagon import TriTessagon
from tessagon.types.octo_tessagon import OctoTessagon
from tessagon.types.rhombus_tessagon import RhombusTessagon
from tessagon.types.hex_tri_tessagon import HexTriTessagon
from tessagon.types.hex_square_tri_tessagon import HexSquareTriTessagon
from tessagon.types.square_tessagon import SquareTessagon
from tessagon.types.pythagorean_tessagon import PythagoreanTessagon
from tessagon.types.brick_tessagon import BrickTessagon
from tessagon.types.dodeca_tessagon import DodecaTessagon
from tessagon.types.square_tri_tessagon import SquareTriTessagon
from tessagon.types.weave_tessagon import WeaveTessagon
from tessagon.types.floret_tessagon import FloretTessagon
from tessagon.types.hex_big_tri_tessagon import HexBigTriTessagon
from tessagon.types.zig_zag_tessagon import ZigZagTessagon
from tessagon.types.dissected_square_tessagon import DissectedSquareTessagon
from tessagon.types.square_tri2_tessagon import SquareTri2Tessagon
from tessagon.types.dodeca_tri_tessagon import DodecaTriTessagon
from tessagon.types.dissected_triangle_tessagon \
    import DissectedTriangleTessagon
from tessagon.types.dissected_hex_quad_tessagon \
    import DissectedHexQuadTessagon
from tessagon.types.dissected_hex_tri_tessagon \
    import DissectedHexTriTessagon
from tessagon.types.penta_tessagon import PentaTessagon
from tessagon.types.penta2_tessagon import Penta2Tessagon

ALL = [SquareTessagon,
       HexTessagon,
       TriTessagon,

       OctoTessagon,
       HexTriTessagon,
       HexSquareTriTessagon,
       DodecaTessagon,
       SquareTriTessagon,
       SquareTri2Tessagon,
       DodecaTriTessagon,

       RhombusTessagon,
       FloretTessagon,
       DissectedSquareTessagon,
       DissectedTriangleTessagon,
       DissectedHexQuadTessagon,
       DissectedHexTriTessagon,
       PentaTessagon,
       Penta2Tessagon,

       PythagoreanTessagon,
       BrickTessagon,
       WeaveTessagon,

       HexBigTriTessagon,