/****************************************************************************
 *   galgo.h : 
 *   		header file for generic gfc algorithms.
 *
 *   Change Log :
 *		 June 7, 1998 Initial version,  Liujian Qian
 *
 *   $Id: galgo.h,v 1.2 1999/02/23 04:23:05 qian Exp $
 ***************************************************************************/
#ifndef _GALGO_H_
#define _GALGO_H_

#include "gadt.h"

class GPoint;

/**
 * GAlgorithm
 * This class defines the generic call interface for GFC 
 * algorithms. 
 * An algorithm in gfc is a function with a number of 
 * configurable parameters. 
 */
class GAlgorithm
{
    int		msec;	//time for the execution of the algorithm
    
};

class GEMeasure : public GAlgorithm
{
public:
    static double	distance(GSpatial* from, GSpatial* to);
    static double	area(GSpatial* from);
    static void		centroid(GSpatial*, GPoint& v);
    static double	sinuosity(GSpatial*);
    static double	areaPunctuation(GSpatial*);
    
};


class GETransform : public GAlgorithm
{
public:
    static void		simplification();
    static void		smoothing();
    static void		displacement ();
    static void		buffering ();
};


class GETopology : public GAlgorithm
{
public:
    static bool		touches(GSpatial* X, GSpatial* Y);
    static bool		isWithin(GSpatial* X, GSpatial* Y);
};


class GSMeasure : public GAlgorithm
{
    static void*	measure();
    static void*	maximum();
    static void*	minimum();
    static void*	average();
    static void*	correlations();
    static void*	trends();
    static void*	slope();
};

class GSTransform : public GAlgorithm
{
public:
    static void		voronoi();
    static void		countouring();
    static void		mapGeneralization();
    static void		interpolation();
    static void		scaling();
};



#endif
	


Documentation generated by lqian@lqian-sun on Wed Jul 14 09:36:10 EDT 1999