package org.n52.v3d.worldviz.featurenet;

import java.util.Collection;

import org.n52.v3d.triturus.vgis.VgFeature;

/**
 * The VgFeatureNet interface allows to operate on sets of interrelated geo-objects ("features" in OGC-jargon).
 * 
 * The kind of relations between geo-objects will depend on your application scenario. Prominent examples are:
 * Flows of trade between regions, flight connections between airports, or the relation "same official language",
 * which would connect Australia and the United States.
 * 
 * From a mathematical perspective, a VgFeatureNet describes a graph structure consisting of vertices and edges.
 * It is left to the concrete application, whether a VgFeatureNet implementation describes directed or undirected
 * graphs and whether weights will be given for the edges.
 * 
 * However, VgFeatureNet structures allow to put a strong focus on the relations between spatial features (instead 
 * of deriving the relations from the features' attribute values).
 * 
 * @author Benno Schmidt
 *
 */
public interface VgFeatureNet {

	/**
	 * TODO
	 * @return
	 */
	public Collection<VgFeature> getFeatures();
	
	/**
	 * TODO
	 * @return
	 */
	public Collection<VgRelation> getRelations();
}

@@ -625,14 +625,11 @@
  of 
-vertic
+nod
 es a
@@ -1039,217 +1039,911 @@
 dt%0D%0A
- *%0D%0A
  */%0D%0A
-public interface VgFeatureNet %7B%0D%0A%0D%0A%09/**%0D%0A%09 * TODO%0D%0A%09 * @return%0D%0A%09 */%0D%0A%09public Collection%3CVgFeature%3E getFeatures();%0D%0A%09%0D%0A%09/**%0D%0A%09 * TODO%0D%0A%09 * @return%0D%0A%09 */%0D%0A%09public Collection%3CVgRelation%3E getRelations();
+abstract public class VgFeatureNet %7B%0D%0A%0D%0A%09 // TODO A %22connection map%22 would be a visualization of a feature net.%0D%0A%0D%0A%09 /**%0D%0A%09 * Gets the feature net's geo-objects (%22features%22).%0D%0A%09 * %0D%0A%09 * @return Set of geo-objects (graph nodes)%0D%0A%09 */%0D%0A%09abstract public Collection%3CVgFeature%3E getFeatures();%0D%0A%09%0D%0A%09/**%0D%0A%09 * Gets the relations between the geo-objects (%22features%22) that are held in the feature net.%0D%0A%09 * %0D%0A%09 * @return Set of geo-object relations (graph edges)%0D%0A%09 */%0D%0A%09abstract public Collection%3CVgRelation%3E getRelations();%0D%0A%09%0D%0A%09public String toString() %0D%0A%09%7B%0D%0A%09%09int numberOfFeatures = 0;%0D%0A%09%09if (this.getFeatures() != null)%0D%0A%09%09%09numberOfFeatures = this.getFeatures().size();%0D%0A%09%09int numberOfRelations = 0;%0D%0A%09%09if (this.getRelations() != null)%0D%0A%09%09%09numberOfRelations = this.getRelations().size();%0D%0A%09%09return %22%5B%22 +%0D%0A%09%09%09%09%22(#%22 + numberOfFeatures + %22 features), %22 +%0D%0A%09%09%09%09%22(#%22 + numberOfRelations + %22 relations)%5D%22;%0D%0A%09%7D
 %0D%0A%7D%0D

Update VgFeatureNet.java