// Path: src/org/alex73/osmemory/IOsmNode.java
// public interface IOsmNode extends IOsmObject {
//     public static final double DIVIDER = 0.0000001;
// 
//     /**
//      * Get latitude as int, i.e. multiplied by 10000000.
//      */
//     int getLat();
// 
//     /**
//      * Get longitude as int, i.e. multiplied by 10000000.
//      */
//     int getLon();
// 
//     /**
//      * Get latitude as double, like 53.9.
//      */
//     double getLatitude();
// 
//     /**
//      * Get latitude as double, like 27.566667.
//      */
//     double getLongitude();
// }
// 
// Path: src/org/alex73/osmemory/IOsmObject.java
// public interface IOsmObject {
//     public static final int TYPE_NODE = 1;
//     public static final int TYPE_WAY = 2;
//     public static final int TYPE_RELATION = 3;
// 
//     /**
//      * Object type: 1-node, 2-way,3-relation. It should be int instead enum for performance optimization.
//      */
//     int getType();
// 
//     boolean isNode();
// 
//     boolean isWay();
// 
//     boolean isRelation();
// 
//     /**
//      * Object ID.
//      */
//     long getId();
// 
//     /**
//      * Object ID as object.
//      */
//     IOsmObjectID getObjectID();
// 
//     /**
//      * Check if object has tag.
//      */
//     boolean hasTag(short tagKey);
// 
//     /**
//      * Get tags list.
//      */
//     short[] getTags();
// 
//     /**
//      * Check if object has tag. This operation is much slower than {@link #hasTag(short)}.
//      */
//     boolean hasTag(String tagName, MemoryStorage storage);
// 
//     /**
//      * Get tag value.
//      */
//     String getTag(short tagKey);
// 
//     /**
//      * Get tag value. This operation is much slower than {@link #getTag(short)}.
//      */
//     String getTag(String tagName, MemoryStorage storage);
// 
//     Map<String, String> extractTags(MemoryStorage storage);
// 
//     /**
//      * Get object code, like n123, w75, r51.
//      */
//     String getObjectCode();
// 
//     /**
//      * Get user code.
//      */
//     short getUser();
// 
//     /**
//      * Get user name.
//      */
//     String getUser(MemoryStorage storage);
// 
//     static String getNodeCode(long nodeId) {
//         return "n" + nodeId;
//     }
// 
//     static String getWayCode(long wayId) {
//         return "w" + wayId;
//     }
// 
//     static String getRelationCode(long relationId) {
//         return "r" + relationId;
//     }
// }


import org.alex73.osmemory.IOsmNode;
import org.alex73.osmemory.IOsmObject;
/**************************************************************************
 OSMemory library for OSM data processing.

 Copyright (C) 2014 Aleś Bułojčyk <alex73mail@gmail.com>

 This is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation, either version 3 of the License, or
 (at your option) any later version.

 This software is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.

 You should have received a copy of the GNU General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>.
 **************************************************************************/

package org.alex73.osmemory.geometry;


/**
 * Interface for all External... that have bounds.
 */
public interface IExtendedObject {
    BoundingBox getBoundingBox();

// Path: src/org/alex73/osmemory/IOsmNode.java
// public interface IOsmNode extends IOsmObject {
//     public static final double DIVIDER = 0.0000001;
// 
//     /**
//      * Get latitude as int, i.e. multiplied by 10000000.
//      */
//     int getLat();
// 
//     /**
//      * Get longitude as int, i.e. multiplied by 10000000.
//      */
//     int getLon();
// 
//     /**
//      * Get latitude as double, like 53.9.
//      */
//     double getLatitude();
// 
//     /**
//      * Get latitude as double, like 27.566667.
//      */
//     double getLongitude();
// }
// 
// Path: src/org/alex73/osmemory/IOsmObject.java
// public interface IOsmObject {
//     public static final int TYPE_NODE = 1;
//     public static final int TYPE_WAY = 2;
//     public static final int TYPE_RELATION = 3;
// 
//     /**
//      * Object type: 1-node, 2-way,3-relation. It should be int instead enum for performance optimization.
//      */
//     int getType();
// 
//     boolean isNode();
// 
//     boolean isWay();
// 
//     boolean isRelation();
// 
//     /**
//      * Object ID.
//      */
//     long getId();
// 
//     /**
//      * Object ID as object.
//      */
//     IOsmObjectID getObjectID();
// 
//     /**
//      * Check if object has tag.
//      */
//     boolean hasTag(short tagKey);
// 
//     /**
//      * Get tags list.
//      */
//     short[] getTags();
// 
//     /**
//      * Check if object has tag. This operation is much slower than {@link #hasTag(short)}.
//      */
//     boolean hasTag(String tagName, MemoryStorage storage);
// 
//     /**
//      * Get tag value.
//      */
//     String getTag(short tagKey);
// 
//     /**
//      * Get tag value. This operation is much slower than {@link #getTag(short)}.
//      */
//     String getTag(String tagName, MemoryStorage storage);
// 
//     Map<String, String> extractTags(MemoryStorage storage);
// 
//     /**
//      * Get object code, like n123, w75, r51.
//      */
//     String getObjectCode();
// 
//     /**
//      * Get user code.
//      */
//     short getUser();
// 
//     /**
//      * Get user name.
//      */
//     String getUser(MemoryStorage storage);
// 
//     static String getNodeCode(long nodeId) {
//         return "n" + nodeId;
//     }
// 
//     static String getWayCode(long wayId) {
//         return "w" + wayId;
//     }
// 
//     static String getRelationCode(long relationId) {
//         return "r" + relationId;
//     }
// }


// Path: src/org/alex73/osmemory/geometry/IExtendedObject.java
import org.alex73.osmemory.IOsmNode;
import org.alex73.osmemory.IOsmObject;

/**************************************************************************
 OSMemory library for OSM data processing.

 Copyright (C) 2014 Aleś Bułojčyk <alex73mail@gmail.com>

 This is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation, either version 3 of the License, or
 (at your option) any later version.

 This software is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.

 You should have received a copy of the GNU General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>.
 **************************************************************************/

package org.alex73.osmemory.geometry;


/**
 * Interface for all External... that have bounds.
 */
public interface IExtendedObject {
    BoundingBox getBoundingBox();

    IOsmObject getObject();