public function concat(Converter $converter) { if ($converter instanceof self) { $offset = $this->offset + $converter->getOffset(); return $offset == 0.0 ? Converter::IDENTITY() : new self($offset); } return parent::concat($converter); }
public function concat(Converter $converter) { if ($converter instanceof self) { $factor = $this->factor * $converter->getFactor(); return $factor == 1.0 ? Converter::IDENTITY() : new self($factor); } return parent::concat($converter); }
public function concat(Converter $converter) { if (!$converter instanceof self) { return parent::concat($converter); } $dividend = $this->dividend * $converter->getDividend(); $divisor = $this->divisor * $converter->getDivisor(); $gcd = $this->gcd($dividend, $divisor); $dividend = $dividend / $gcd; $divisor = $divisor / $gcd; if ($dividend == 1 && $divisor == 1) { return Converter::IDENTITY(); } return new self($dividend, $divisor); }