Newer
Older
CactusClient / src / myLibrary / Position.java
s-iwatani on 15 May 2018 1 KB コメント等
package myLibrary;

/**
 * 2,3次元座標を管理するクラス
 *
 * @author s.iwatani
 * @param <T> 数値型
 */
public class Position<T extends Number> implements Cloneable {
    public T x, y, z;

    public Position() {
        x = null;
        y = null;
        z = null;
    }

    /**
     * コンストラクタ
     *
     * @author s.iwatani
     * @param x x座標
     * @param y y座標
     */
    public Position(T x, T y) {
        this.x = x;
        this.y = y;
        z = null;
    }

    /**
     * コンストラクタ
     *
     * @author s.iwatani
     * @param x x座標
     * @param y y座標
     * @param z z座標
     */
    public Position(T x, T y, T z) {
        this.x = x;
        this.y = y;
        this.z = z;
    }

    /**
     * 2つのPositionを入れ替える
     *
     * @author s.iwatani
     * @param t position
     */
    // TODO: 動作確認
    public void swap(Position<T> t){
        Position<T> tmp = this.clone();
        x = t.x;
        y = t.y;
        z = t.z;
        t = tmp;
    }

    /**
     * clone
     *
     * @author s.iwatani
     * @return 新しいPosition
     */
    // TODO: 動作確認
    @SuppressWarnings("unchecked")
    @Override
    public Position<T> clone(){
        Position<T> p = new Position<T>();
        try {
            p = (Position<T>)super.clone();
        } catch (CloneNotSupportedException e) {
            e.printStackTrace();
        }
        return p;
    }
}