class GHPoint3D extends GHPoint {

    @Override
    public boolean equals(Object obj) {
        if (obj == null)
            return false;

        @SuppressWarnings("unchecked")
        final GHPoint3D other = (GHPoint3D) obj;
        if (Double.isNaN(ele))
            // very special case necessary in QueryGraph, asserted via test
            return NumHelper.equalsEps(lat, other.lat) && NumHelper.equalsEps(lon, other.lon);
        else
            return NumHelper.equalsEps(lat, other.lat) && NumHelper.equalsEps(lon, other.lon)
                    && NumHelper.equalsEps(ele, other.ele);
    }

    public  GHPoint3D(double lat, double lon, double elevation);

}