package org.osm2world.core.world.data; import org.osm2world.core.math.PolygonXYZ; import org.osm2world.core.math.SimplePolygonXZ; /** * world object that has a defined outline that can be used for purposes * such as cutting holes into the terrain (if this is instance of * {@link TerrainBoundaryWorldObject}), cutting tunnels through buildings, * preventing bridge pillars from piercing through this WorldObject ... */ public interface WorldObjectWithOutline extends WorldObject { /** * returns a counterclockwise polygon defining the object's ground footprint. * * @return outline polygon; null if this world object doesn't cover any area */ public PolygonXYZ getOutlinePolygon(); /** * returns a counterclockwise polygon defining the object's ground footprint, * projected onto the XZ plane. * * @return outline polygon; null if this world object doesn't cover any area */ public SimplePolygonXZ getOutlinePolygonXZ(); }