import { PrintObject } from "./PrintObject";
import { Number } from "../dataType/Number";
import { String } from "../dataType/String";

/**
 *  gve
 * @class gve.Projection
 * @since gve
 */
export class Projection extends PrintObject{

    /**
     * 构造Projection对象
     * @hideconstructor
     * @returns gve.Projection
     */
    constructor() {
        super();
        if (!(this instanceof Projection)) {
          return new Projection();
        }
    }

    /**
     * 修改分辨率的值
     * @param {number} min 最小分辨率
     * @param {number} max 最大分辨率
     * @returns Projection
     */
    scale(min: number, max: number) {
        return new Projection();
    }

    /**
     * 返回投影,使其单位在真实比例点处按线性米进行缩放
     * @param {number} meters 以线性米为单位的scale
     * @returns Projection
     * @tutorial gve.Projection
     */
    static atScale(meters: number) {
      return new Projection();
    }

    /**
     * 返回此投影单位在真实比例点处的线性比例,以米为单位
     * @returns Number
     * @tutorial gve.Projection
     */
    static nominalScale() {
      return new Number();
    }

    /**
     * 返回在每个轴上按给定量缩放的投影
     * @param {number} x 在x轴上缩放的量
     * @param {number} y 在y轴上缩放的量
     * @returns Projection
     * @tutorial gve.Projection
     */
    static scale(x: number, y: number) {
      return new Projection();
    }

    /**
     * 返回此投影的变换的 WKT 表示。此变换将投影坐标转换为基础坐标系
     * @returns String
     * @tutorial gve.Projection
     */
    static transform() {
      return new String();
    }

    /**
     * 返回在每个轴上按给定量平移的投影
     * @param {number} x 在x轴上的平移量
     * @param {number} y 在y轴上的平移量
     * @returns Projection
     */
    translate(x: number, y: number) {
        return new Projection();
    }





}