ama-team/php-projection-framework

View on GitHub
src/Type/Equirectangular/Mapping.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php

namespace AmaTeam\Image\Projection\Type\Equirectangular;

use AmaTeam\Image\Projection\Type\AbstractValidatingMapping;

/**
 * This class maps coordinates to points and vice versa.
 */
class Mapping extends AbstractValidatingMapping
{
    /**
     * @inheritDoc
     */
    public function getPosition($latitude, $longitude)
    {
        return [
            self::DEFAULT_FACE,
            ($longitude + self::PI) / self::DOUBLE_PI,
            (self::PI - ($latitude + self::PI_HALF)) / self::PI
        ];
    }

    /**
     * @inheritDoc
     */
    public function getCoordinates($face, $u, $v)
    {
        return [
            self::PI_HALF - ($v * self::PI),
            $u * self::DOUBLE_PI - self::PI
        ];
    }

    public function getFaces()
    {
        return [self::DEFAULT_FACE];
    }
}