Various diamond shapes

@param  integer $rank2 Column index
@access public
@return void
763664
public function row8($rank2)
    {
        // big diamond
        if ($rank2 == 0) {
            $d = new Primitive\Diamond();
            $d
                ->point(self::SIZE / 2, 0)
                ->point(self::SIZE, self::SIZE / 2)
                ->point(self::SIZE / 2, self::SIZE)
                ->point(0, self::SIZE / 2)
                ->color($this->fg());

            $this->add($d);
        }

        // small TL
        if ($rank2 == 1) {
            $d = new Primitive\Diamond();
            $d
                ->point(self::SIZE / 4, 0)
                ->point(self::SIZE / 2, self::SIZE / 4)
                ->point(self::SIZE / 4, self::SIZE / 2)
                ->point(0, self::SIZE / 4)
                ->color($this->fg());

            $this->add($d);
        }

        // small TR
        if ($rank2 == 2) {
            $d = new Primitive\Diamond();
            $d
                ->point(self::SIZE * (3/4), 0)
                ->point(self::SIZE, self::SIZE / 4)
                ->point(self::SIZE * (3/4), self::SIZE / 2)
                ->point(self::SIZE / 2, self::SIZE / 4)
                ->color($this->fg());

            $this->add($d);
        }

        // small BR
        if ($rank2 == 3) {
            $d = new Primitive\Diamond();
            $d
                ->point(self::SIZE * (3/4), self::SIZE / 2)
                ->point(self::SIZE, self::SIZE * (3/4))
                ->point(self::SIZE * (3/4), self::SIZE)
                ->point(self::SIZE / 2, self::SIZE * (3/4))
                ->color($this->fg());

            $this->add($d);
        }

        // small BL
        if ($rank2 == 4) {
            $d = new Primitive\Diamond();
            $d
                ->point(self::SIZE / 4, self::SIZE / 2)
                ->point(self::SIZE / 2, self::SIZE * (3/4))
                ->point(self::SIZE / 4, self::SIZE)
                ->point(0, self::SIZE * (3/4))
                ->color($this->fg());

            $this->add($d);
        }

        // Small CENTER
        if ($rank2 == 5) {
            $d = new Primitive\Diamond();
            $d
                ->point(self::SIZE / 2, self::SIZE / 4)
                ->point(self::SIZE * (3/4), self::SIZE / 2)
                ->point(self::SIZE / 2, self::SIZE * (3/4))
                ->point(self::SIZE / 4, self::SIZE / 2)
                ->color($this->fg());

            $this->add($d);

            $d = new Primitive\Diamond();
            $d
                ->point(self::SIZE / 2, self::SIZE * (3/8))
                ->point(self::SIZE * (5/8), self::SIZE / 2)
                ->point(self::SIZE / 2, self::SIZE * (5/8))
                ->point(self::SIZE * (3/8), self::SIZE / 2)
                ->color($this->bg());

            $this->add($d);
        }

        // reversed small TL
        if ($rank2 == 6) {
            $this->row1(1);
            $this->row8(1);
            $this->last()->color($this->bg());
        }

        // reversed small TR
        if ($rank2 == 7) {
            $this->row1(1);
            $this->row8(2);
            $this->last()->color($this->bg());
        }

        // reversed small BR
        if ($rank2 == 8) {
            $this->row1(1);
            $this->row8(3);
            $this->last()->color($this->bg());
        }

        // reversed small BL
        if ($rank2 == 9) {
            $this->row1(1);
            $this->row8(4);
            $this->last()->color($this->bg());
        }

        // Big and center reversed
        if ($rank2 == 10) {
            $this->row8(0);
            $this->row13(0);
            $this->last()->color($this->bg());
        }

        // Long VERTICAL CENTER
        if ($rank2 == 11) {
            $d = new Primitive\Diamond();
            $d
                ->point(self::SIZE / 2, 0)
                ->point(self::SIZE * (3/4), self::SIZE / 2)
                ->point(self::SIZE / 2, self::SIZE)
                ->point(self::SIZE / 4, self::SIZE / 2)
                ->color($this->fg());

            $this->add($d);
        }

        // Long HORIZONTAL CENTER
        if ($rank2 == 12) {
            $d = new Primitive\Diamond();
            $d
                ->point(0, self::SIZE / 2)
                ->point(self::SIZE / 2, self::SIZE / 4)
                ->point(self::SIZE, self::SIZE / 2)
                ->point(self::SIZE / 2, self::SIZE * (3/4))
                ->color($this->fg());

            $this->add($d);
        }

        // Long DIAGONAL TL BR
        if ($rank2 == 13) {
            $d = new Primitive\Diamond();
            $d
                ->point(0, 0)
                ->point(self::SIZE * (3/4), self::SIZE / 4)
                ->point(self::SIZE, self::SIZE)
                ->point(self::SIZE / 4, self::SIZE * (3/4))
                ->color($this->fg());

            $this->add($d);
        }

        // Long DIAGONAL TR BL
        if ($rank2 == 14) {
            $d = new Primitive\Diamond();
            $d
                ->point(self::SIZE / 4, self::SIZE / 4)
                ->point(self::SIZE, 0)
                ->point(self::SIZE *(3/4), self::SIZE * (3/4))
                ->point(0, self::SIZE)
                ->color($this->fg());

            $this->add($d);
        }

        // 4 littles
        if ($rank2 == 15) {
            $this->row8(1);
            $this->row8(2);
            $this->row8(3);
            $this->row8(4);
        }
    }
797466
protected function r2()
    {
        list($index, $value) = $this->rx($this->r1);

        $this->r2 = $value;
        $this->r2Index = $this->r1Index + $index;
    }
583539
public function majRankCup()
    {
        $this->majGameRank();
        $players = $this->findBy(array(), array('gameRank0' => 'DESC', 'gameRank1' => 'DESC', 'gameRank2' => 'DESC', 'gameRank3' => 'DESC'));

        Ranking::addObjectRank($players, 'rankCup', array('gameRank0', 'gameRank1', 'gameRank2', 'gameRank3'));

        $this->getEntityManager()->flush();
    }
572133
public function setRank($rank)
    {
        if (! is_int($rank)) {
            throw new \InvalidArgumentException(
                'Argument 1 must be an int value. Valued passed is of type ' . gettype($rank));
        }
        
        $this->rank = $rank;
    }
1054570
public function setSerieShape($Series, $Shape = SERIE_SHAPE_FILLEDCIRCLE)
    {
        if (!is_array($Series)) {
            $Series = $this->convertToArray($Series);
        }
        foreach ($Series as $Serie) {
            if (isset($this->Data["Series"][$Serie])) {
                $this->Data["Series"][$Serie]["Shape"] = $Shape;
            }
        }
    }
825232
public function rankAdd()
    {
        if (!$this->owner->isNewRecord) {
            return;
        }
        if (!is_numeric($this->owner->getAttribute($this->attribute))) {
            $this->owner->setAttribute($this->attribute, $this->getSiblings()->count());
        }
    }
670369
public function majRankPointChart()
    {
        $teams = $this->findBy(array(), array('pointChart' => 'DESC'));

        $list = array();
        foreach ($teams as $team) {
            $list[] = $team;
        }

        Ranking::addObjectRank($list, 'rankPointChart', array('pointChart'));
        $this->getEntityManager()->flush();
    }
465968
private static final int bestPivot(int rank, int m1, int m2, int m3, int m4, int m5) {
    if(rank < m1) {
      return m1;
    }
    if(rank > m5) {
      return m5;
    }
    if(rank < m2) {
      return m2;
    }
    if(rank > m4) {
      return m4;
    }
    return m3;
  }
1008769
private function hqr2 () {
		//  Initialize
		$nn = $this->n;
		$n  = $nn - 1;
		$low = 0;
		$high = $nn - 1;
		$eps = pow(2.0, -52.0);
		$exshift = 0.0;
		$p = $q = $r = $s = $z = 0;
		// Store roots isolated by balanc and compute matrix norm
		$norm = 0.0;

		for ($i = 0; $i < $nn; ++$i) {
			if (($i < $low) OR ($i > $high)) {
				$this->d[$i] = $this->H[$i][$i];
				$this->e[$i] = 0.0;
			}
			for ($j = max($i-1, 0); $j < $nn; ++$j) {
				$norm = $norm + abs($this->H[$i][$j]);
			}
		}
577310
protected function makeRanking () : void
    {
        $this->_Result = $this->createResult($this->_PossibleRanking[ array_search(max($this->_RankingScore), $this->_RankingScore, true) ]);
    }
257300
private function sharpen2($level)
	{
		$sharpenMatrix = array(
			array( $level, $level, $level ),
			array( $level, (8 * $level) + 1, $level ), //Lessen the effect of a filter by increasing the value in the center cell
			array( $level, $level, $level )
		);

	}
713614
protected function row1($rank2)
    {
        // As void, so, square take all place and take background color.
        if ($rank2 == 0) {
            $c = new Primitive\Square();
            $c->point(0, 0)->size(Unit::SIZE)->color($this->bg());
            $this->add($c);
        }
        // As plain square
        if ($rank2 == 1) {
            $c = new Primitive\Square();
            $c->point(0, 0)->size(Unit::SIZE)->color($this->fg());
            $this->add($c);
        }
        // Mid sized suare TL
        if ($rank2 == 2) {
            $c = new Primitive\Square();
            $c->point(0, 0);
            $c->size(Unit::SIZE / 2);
            $c->color($this->fg());
            $this->add($c);
        }
        // Mid sized suare TR
        if ($rank2 == 3) {
            $c = new Primitive\Square();
            $c->point(Unit::SIZE / 2, 0);
            $c->size(Unit::SIZE / 2);
            $c->color($this->fg());
            $this->add($c);
        }
        // Mid sized suare BR
        if ($rank2 == 4) {
            $c = new Primitive\Square();
            $c->point(Unit::SIZE / 2, Unit::SIZE / 2);
            $c->size(Unit::SIZE / 2);
            $c->color($this->fg());
            $this->add($c);
        }
        // Mid sized suare BL
        if ($rank2 == 5) {
            $c = new Primitive\Square();
            $c->point(0, Unit::SIZE / 2);
            $c->size(Unit::SIZE / 2);
            $c->color($this->fg());
            $this->add($c);
        }
        // Mid sized squares TL + BR
        if ($rank2 == 6) {
            $this->row1(2);
            $this->row1(4);
        }
        // Mid sized squares TR + BL
        if ($rank2 == 7) {
            $this->row1(3);
            $this->row1(5);
        }
        // Little small square diagonal TL BR
        if ($rank2 == 8) {
            $c = new Primitive\Square();
            $c->point(0, 0);
            $c->size(Unit::SIZE / 4);
            $c->color($this->fg());
            $this->add($c);

            $c = new Primitive\Square();
            $c->point(Unit::SIZE / 4, Unit::SIZE / 4);
            $c->size(Unit::SIZE / 4);
            $c->color($this->fg());
            $this->add($c);

            $c = new Primitive\Square();
            $c->point(Unit::SIZE / 2, Unit::SIZE / 2);
            $c->size(Unit::SIZE / 4);
            $c->color($this->fg());
            $this->add($c);

            $c = new Primitive\Square();
            $c->point((int) ((3 / 4) * Unit::SIZE), (int) ((3 / 4) * Unit::SIZE));
            $c->size(Unit::SIZE / 4);
            $c->color($this->fg());
            $this->add($c);
        }
        // Little small square diagonal BL TR
        if ($rank2 == 9) {
            $c = new Primitive\Square();
            $c->point(0, (3 / 4) * Unit::SIZE);
            $c->size(Unit::SIZE / 4);
            $c->color($this->fg());
            $this->add($c);

            $c = new Primitive\Square();
            $c->point(Unit::SIZE / 4, Unit::SIZE / 2);
            $c->size(Unit::SIZE / 4);
            $c->color($this->fg());
            $this->add($c);

            $c = new Primitive\Square();
            $c->point(Unit::SIZE / 2, Unit::SIZE / 4);
            $c->size(Unit::SIZE / 4);
            $c->color($this->fg());
            $this->add($c);

            $c = new Primitive\Square();
            $c->point((3 / 4) * Unit::SIZE, 0);
            $c->size(Unit::SIZE / 4);
            $c->color($this->fg());
            $this->add($c);
        }
        // same as 8 but in reversed colors
        if ($rank2 == 10) {
            $c = new Primitive\Square();
            $c->point(0, 0)->size(Unit::SIZE)->color($this->fg());
            $this->add($c);

            $c = new Primitive\Square();
            $c->point(0, 0);
            $c->size(Unit::SIZE / 4);
            $c->color($this->bg());
            $this->add($c);

            $c = new Primitive\Square();
            $c->point(Unit::SIZE / 4, Unit::SIZE / 4);
            $c->size(Unit::SIZE / 4);
            $c->color($this->bg());
            $this->add($c);

            $c = new Primitive\Square();
            $c->point(Unit::SIZE / 2, Unit::SIZE / 2);
            $c->size(Unit::SIZE / 4);
            $c->color($this->bg());
            $this->add($c);

            $c = new Primitive\Square();
            $c->point((int) ((3 / 4) * Unit::SIZE), (int) ((3 / 4) * Unit::SIZE));
            $c->size(Unit::SIZE / 4);
            $c->color($this->bg());
            $this->add($c);
        }
        // same as 9 but in reversed colors
        if ($rank2 == 11) {
            $c = new Primitive\Square();
            $c->point(0, 0)->size(Unit::SIZE)->color($this->fg());
            $this->add($c);

            $c = new Primitive\Square();
            $c->point(0, (3 / 4) * Unit::SIZE);
            $c->size(Unit::SIZE / 4);
            $c->color($this->bg());
            $this->add($c);

            $c = new Primitive\Square();
            $c->point(Unit::SIZE / 4, Unit::SIZE / 2);
            $c->size(Unit::SIZE / 4);
            $c->color($this->bg());
            $this->add($c);

            $c = new Primitive\Square();
            $c->point(Unit::SIZE / 2, Unit::SIZE / 4);
            $c->size(Unit::SIZE / 4);
            $c->color($this->bg());
            $this->add($c);

            $c = new Primitive\Square();
            $c->point((3 / 4) * Unit::SIZE, 0);
            $c->size(Unit::SIZE / 4);
            $c->color($this->bg());
            $this->add($c);
        }

        // Mid sized suare TL reversed colors
        if ($rank2 == 12) {
            $c = new Primitive\Square();
            $c->point(0, 0)->size(Unit::SIZE)->color($this->fg());
            $this->add($c);

            $c = new Primitive\Square();
            $c->point(0, 0);
            $c->size(Unit::SIZE / 2);
            $c->color($this->bg());
            $this->add($c);
        }
        // Mid sized suare TR reversed colors
        if ($rank2 == 13) {
            $c = new Primitive\Square();
            $c->point(0, 0)->size(Unit::SIZE)->color($this->fg());
            $this->add($c);

            $c = new Primitive\Square();
            $c->point(Unit::SIZE / 2, 0);
            $c->size(Unit::SIZE / 2);
            $c->color($this->bg());
            $this->add($c);
        }
        // Mid sized suare BR
        if ($rank2 == 14) {
            $c = new Primitive\Square();
            $c->point(0, 0)->size(Unit::SIZE)->color($this->fg());
            $this->add($c);

            $c = new Primitive\Square();
            $c->point(Unit::SIZE / 2, Unit::SIZE / 2);
            $c->size(Unit::SIZE / 2);
            $c->color($this->bg());
            $this->add($c);
        }
        // Mid sized suare BL
        if ($rank2 == 15) {
            $c = new Primitive\Square();
            $c->point(0, 0)->size(Unit::SIZE)->color($this->fg());
            $this->add($c);

            $c = new Primitive\Square();
            $c->point(0, Unit::SIZE / 2);
            $c->size(Unit::SIZE / 2);
            $c->color($this->bg());
            $this->add($c);
        }
    }
334228
protected static function swapRows(ActiveRecordInterface $row1, ActiveRecordInterface $row2)
    {
        $id     = $row1->getRoleField('id');
        $column = $row1->getRoleField('sort-index');
        $value1 = $row1->getRoleValue('sort-index');
        $value2 = $row2->getRoleValue('sort-index');
        $row1::query()->update([$column=>$value2], QueryCriteria::createAND([[$id, '=', $row1->getRoleValue('id')]]))->execute();
        $row2::query()->update([$column=>$value1], QueryCriteria::createAND([[$id, '=', $row2->getRoleValue('id')]]))->execute();
    }
1319687
protected function row4($rank2)
    {
        // Mid sizes TL
        if ($rank2 == 0) {
            $el = new Primitive\Ellipse(self::SIZE / 4, self::SIZE / 4);
            $el->radius(self::SIZE / 4);
            $el->color($this->fg());
            $this->add($el);
        }
        // Mid sizes TR
        if ($rank2 == 1) {
            $el = new Primitive\Ellipse(self::SIZE * (3/4), self::SIZE / 4);
            $el->radius(self::SIZE / 4);
            $el->color($this->fg());
            $this->add($el);
        }
        // Mid sizes BR
        if ($rank2 == 2) {
            $el = new Primitive\Ellipse(self::SIZE * (3/4), self::SIZE * (3/4));
            $el->radius(self::SIZE / 4);
            $el->color($this->fg());
            $this->add($el);
        }
        // Mid sizes BL
        if ($rank2 == 3) {
            $el = new Primitive\Ellipse(self::SIZE / 4, self::SIZE * (3/4));
            $el->radius(self::SIZE / 4);
            $el->color($this->fg());
            $this->add($el);
        }
        if ($rank2 == 4) {
            $el = new Primitive\Ellipse(self::SIZE / 4, self::SIZE / 4);
            $el->radius(self::SIZE / 4);
            $el->color($this->fg());
            $this->add($el);
            $el = new Primitive\Ellipse(self::SIZE / 4, self::SIZE / 4);
            $el->radius(self::SIZE / 8);
            $el->color($this->bg());
            $this->add($el);
        }
        if ($rank2 == 5) {
            $el = new Primitive\Ellipse(self::SIZE * (3/4), self::SIZE / 4);
            $el->radius(self::SIZE / 4);
            $el->color($this->fg());
            $this->add($el);
            $el = new Primitive\Ellipse(self::SIZE * (3/4), self::SIZE / 4);
            $el->radius(self::SIZE / 8);
            $el->color($this->bg());
            $this->add($el);
        }
        if ($rank2 == 6) {
            $el = new Primitive\Ellipse(self::SIZE * (3/4), self::SIZE * (3/4));
            $el->radius(self::SIZE / 4);
            $el->color($this->fg());
            $this->add($el);
            $el = new Primitive\Ellipse(self::SIZE * (3/4), self::SIZE * (3/4));
            $el->radius(self::SIZE / 8);
            $el->color($this->bg());
            $this->add($el);
        }
        if ($rank2 == 7) {
            $el = new Primitive\Ellipse(self::SIZE / 4, self::SIZE * (3/4));
            $el->radius(self::SIZE / 4);
            $el->color($this->fg());
            $this->add($el);
            $el = new Primitive\Ellipse(self::SIZE / 4, self::SIZE * (3/4));
            $el->radius(self::SIZE / 8);
            $el->color($this->bg());
            $this->add($el);
        }
        if ($rank2 == 8) {
            $el = new Primitive\Ellipse(self::SIZE / 2, self::SIZE / 2);
            $el->radius(self::SIZE / 2);
            $el->color($this->fg());
            $this->add($el);
        }
        if ($rank2 == 9) {
            $this->row1(1);
            $el = new Primitive\Ellipse(self::SIZE / 2, self::SIZE / 2);
            $el->radius(self::SIZE / 2);
            $el->color($this->bg());
            $this->add($el);
        }
        if ($rank2 == 10) {
            $this->row4(8);
            $el = new Primitive\Ellipse(self::SIZE / 2, self::SIZE / 2);
            $el->radius(self::SIZE / 4);
            $el->color($this->bg());
            $this->add($el);
        }
        if ($rank2 == 11) {
            $this->row4(9);
            $el = new Primitive\Ellipse(self::SIZE / 2, self::SIZE / 2);
            $el->radius(self::SIZE / 4);
            $el->color($this->fg());
            $this->add($el);
        }
        if ($rank2 == 12) {
            $this->row4(10);
            $el = new Primitive\Ellipse(self::SIZE / 2, self::SIZE / 2);
            $el->radius(self::SIZE / 8);
            $el->color($this->fg());
            $this->add($el);
        }
        if ($rank2 == 13) {
            $this->row4(11);
            $el = new Primitive\Ellipse(self::SIZE / 2, self::SIZE / 2);
            $el->radius(self::SIZE / 8);
            $el->color($this->bg());
            $this->add($el);
        }
        if ($rank2 == 14) {
            $this->row4(0);
            $this->row4(2);
        }
        if ($rank2 == 15) {
            $this->row4(1);
            $this->row4(3);
        }

    }
387829
private function step2()
    {
        // dd   gd   nn   dt   gt   kt   tt
        if ($this->searchIfInR1(array('dd', 'gd', 'nn', 'dt', 'gt', 'kt', 'tt')) !== false) {
            $this->word = Utf8::substr($this->word, 0, -1);
        }
    }
520502
protected function applyCustomSorting(): void
    {
        if ($this->get('orderSRC') != '') {
            $tmp = StringUtil::deserialize($this->get('orderSRC'));

            if (!empty($tmp) && is_array($tmp)) {
                // Remove all values
                $order = array_map(
                    function () {
                    },
                    array_flip($tmp)
                );

                // Move the matching elements to their position in $arrOrder
                foreach ($this->images as $k => $v) {
                    if (array_key_exists($v['uuid'], $order)) {
                        $order[$v['uuid']] = $v;
                        unset($this->images[$k]);
                    }
                }

                // Append the left-over images at the end
                if (!empty($this->images)) {
                    $order = array_merge($order, array_values($this->images));
                }

                // Remove empty (unreplaced) entries
                $this->images = array_values(array_filter($order));
                unset($order);
            }
        }
    }
833323
protected function row2($rank2)
    {
        // Big triangle TL
        if ($rank2 == 0) {
            $c = new Primitive\Triangle();
            $c->point(0, 0);
            $c->point(Unit::SIZE, 0);
            $c->point(0, Unit::SIZE);
            $c->color($this->fg());
            $this->add($c);
        }
        // Big triangle TR
        if ($rank2 == 1) {
            $c = new Primitive\Triangle();
            $c->point(Unit::SIZE, 0);
            $c->point(Unit::SIZE, Unit::SIZE);
            $c->point(0, 0);
            $c->color($this->fg());
            $this->add($c);
        }
        // Big triangle BR
        if ($rank2 == 2) {
            $c = new Primitive\Triangle();
            $c->point(Unit::SIZE, 0);
            $c->point(Unit::SIZE, Unit::SIZE);
            $c->point(0, Unit::SIZE);
            $c->color($this->fg());
            $this->add($c);
        }
        // Big triangle BL
        if ($rank2 == 3) {
            $c = new Primitive\Triangle();
            $c->point(0, 0);
            $c->point(Unit::SIZE, Unit::SIZE);
            $c->point(0, Unit::SIZE);
            $c->color($this->fg());
            $this->add($c);
        }

        // triangle TL
        if ($rank2 == 4) {
            $c = new Primitive\Triangle();
            $c->point(0, 0);
            $c->point(Unit::SIZE / 2, 0);
            $c->point(0, Unit::SIZE / 2);
            $c->color($this->fg());
            $this->add($c);
        }
        // triangle TR
        if ($rank2 == 5) {
            $c = new Primitive\Triangle();
            $c->point(Unit::SIZE / 2, 0);
            $c->point(Unit::SIZE, Unit::SIZE / 2);
            $c->point(Unit::SIZE, 0);
            $c->color($this->fg());
            $this->add($c);
        }
        // triangle BR
        if ($rank2 == 6) {
            $c = new Primitive\Triangle();
            $c->point(Unit::SIZE, Unit::SIZE / 2);
            $c->point(Unit::SIZE, Unit::SIZE);
            $c->point(Unit::SIZE / 2, Unit::SIZE);
            $c->color($this->fg());
            $this->add($c);
        }
        // triangle BL
        if ($rank2 == 7) {
            $c = new Primitive\Triangle();
            $c->point(0, Unit::SIZE / 2);
            $c->point(Unit::SIZE / 2, Unit::SIZE);
            $c->point(0, Unit::SIZE);
            $c->color($this->fg());
            $this->add($c);
        }

        // 2  triangles TL BR
        if ($rank2 == 8) {
            $this->row2(4);
            $this->row2(6);
        }
        // 2  triangles TR BL
        if ($rank2 == 9) {
            $this->row2(5);
            $this->row2(7);
        }

        // 2  triangles TL TR
        if ($rank2 == 10) {
            $this->row2(4);
            $this->row2(5);
        }
        // 2  triangles BL BR
        if ($rank2 == 11) {
            $this->row2(6);
            $this->row2(7);
        }

        // 2  triangles TL BL
        if ($rank2 == 12) {
            $this->row2(4);
            $this->row2(7);
        }
        // 2  triangles TR BR
        if ($rank2 == 13) {
            $this->row2(5);
            $this->row2(6);
        }
        // 2 triangles CENTER TOP and BOTTOM
        if ($rank2 == 14) {
            $c = new Primitive\Triangle();
            $c->point(Unit::SIZE / 4, 0);
            $c->point(Unit::SIZE * (3/4), 0);
            $c->point(Unit::SIZE / 2, Unit::SIZE / 2);
            $c->color($this->fg());
            $this->add($c);
            $c = new Primitive\Triangle();
            $c->point(Unit::SIZE / 4, Unit::SIZE);
            $c->point(Unit::SIZE * (3/4), Unit::SIZE);
            $c->point(Unit::SIZE / 2, Unit::SIZE / 2);
            $c->color($this->fg());
            $this->add($c);
        }
        // 2 triangles CENTER LEFT and RIGHT
        if ($rank2 == 15) {
            $c = new Primitive\Triangle();
            $c->point(0, Unit::SIZE / 4);
            $c->point(0, Unit::SIZE * (3/4));
            $c->point(Unit::SIZE / 2, Unit::SIZE / 2);
            $c->color($this->fg());
            $this->add($c);
            $c = new Primitive\Triangle();
            $c->point(Unit::SIZE, Unit::SIZE / 4);
            $c->point(Unit::SIZE, Unit::SIZE * (3/4));
            $c->point(Unit::SIZE / 2, Unit::SIZE / 2);
            $c->color($this->fg());
            $this->add($c);
        }
    }