blob: b0a1bff390dea7fd6c82349e18b6c3feea01e16a [file] [log] [blame]
package org.eclipse.stem.definitions.lattice;
import org.eclipse.stem.core.graph.Graph;
/*******************************************************************************
* Copyright (c) 2010 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
public interface GraphLatticeGeneratorInterface {
/**
* By convention all Lattices will use URI's that begin with
* "LAT_".
* The type of lattice will then be appended. For example a Square Lattice
* will have a URI that begins
* "LAT_SQR_"
* and a Triangle Lattice will have nodes with URI
* "LAT_TRI".
* The separator character is "_" instead of "-" as used in geo URI's because
* all nodes in any lattice are level 0 nodes (there is no containment relationship regardless
* of lattice size).
*/
public static final String URI_PREFIX="LAT_";
/**
* Lattice type
*/
public static final String SQR_LATTICE_TYPE="Square Lattice";
/**
* Lattice type
*/
public static final String GLOBE_LATTICE_TYPE="Plate Carree";
/**
* Lattice type
*/
public static final String TRI_LATTICE_TYPE="Triangle Lattice";
/**
*
* returns a square lattice of specified size as a graph
*
* @param xSize
* @param ySize
* @param area
* @param addNearestNeighbors
* @param addNextNearestNeighbors
* @param periodicBoundaries
* @return
*/
public abstract Graph getGraph(int xSize, int ySize, double area, boolean addNearestNeighbors, boolean addNextNearestNeighbors, boolean periodicBoundaries);
}