[GRASS-SVN] r66143 - in grass/trunk/lib/rst: . data interp_float qtree

svn_grass at osgeo.org svn_grass at osgeo.org
Mon Sep 7 13:11:46 PDT 2015


Author: wenzeslaus
Date: 2015-09-07 13:11:46 -0700 (Mon, 07 Sep 2015)
New Revision: 66143

Added:
   grass/trunk/lib/rst/rst.dox
Removed:
   grass/trunk/lib/rst/data/DESCRIPTION.DATA
   grass/trunk/lib/rst/interp_float/DESCRIPTION.INTERP
   grass/trunk/lib/rst/qtree/DESCRIPTION.TREE
Modified:
   grass/trunk/lib/rst/data/dataquad.c
   grass/trunk/lib/rst/data/dataquad.h
   grass/trunk/lib/rst/qtree/qtree.c
   grass/trunk/lib/rst/qtree/qtree.h
Log:
dox: Doxygen documentation for lib rst qtree and data

Using existing documentation in source code or text files plus some observations. Also creating a general library page.


Deleted: grass/trunk/lib/rst/data/DESCRIPTION.DATA
===================================================================
--- grass/trunk/lib/rst/data/DESCRIPTION.DATA	2015-09-07 17:28:31 UTC (rev 66142)
+++ grass/trunk/lib/rst/data/DESCRIPTION.DATA	2015-09-07 20:11:46 UTC (rev 66143)
@@ -1,135 +0,0 @@
-/* updated by Mitasova Nov. 96 */
-
-DATA STRUCTURES:
-----------------
-
-#define NW   1
-#define NE   2
-#define SW   3
-#define SE   4
-
-/* added sm for spatially variable smoothing by Mitasova  10.96 */
-struct triple   {
-  double x;
-  double y;
-  double z;
-  double sm; 
-};
-
-struct quaddata {
-  double x_orig;
-  double y_orig;
-  double xmax;
-  double ymax;
-  int    n_rows;
-  int    n_cols;
-  int    n_points;
-  struct triple  *points;
-};
-
-
-
-
-FUNCTIONS:
-----------
-
-struct triple  *
-quad_point_new (x, y, z, sm)
-    double          x;
-    double          y;
-    double          z;
-    double          sm;
-/* Initializes POINT structure with given arguments,
-s was added for variable smoothing 10.96 helena */
-
-
-
-
-struct quaddata *
-quad_data_new(x_or,y_or,xmax,ymax,rows,cols,n_points,kmax)
-    double          x_or;
-    double          y_or;
-    double          xmax;
-    double          ymax;
-    int             rows;
-    int             cols;
-    int             n_points;
-/* Initializes QUADDATA structure with given arguments*/
-
-
-
-
-
-
-int 
-quad_compare (point, data)
-    struct triple  *point;
-    struct quaddata *data;
-/* returns the quadrant the point should be inserted in */
-/* called by divide() */
-
-
-
-
-
-
-int 
-quad_add_data (point, data, dmin)
-    struct triple  *point;
-    struct quaddata *data;
-    double           dmin;
-/* Adds POINT to a given DATA . Called by tree function insert_quad() */
-/* and by data function quad_divide_data() */
-
-
-
-
-
-
-int 
-quad_intersect (data_inter, data)
-    struct quaddata *data_inter;
-    struct quaddata *data;
-/* Checks if region defined by DATA intersects the region defined
-  by data_inter. Called by tree function MT_region_data() */
-
-
-
-
-
-int quad_division_check(data,kmax)
- struct quaddata *data;
- int              kmax;
-/* Checks if DATA needs to be divided. If data->points is empty,
-  returns -1; if its not empty but there aren't enough points
-  in DATA for division returns 0. Othervise (if its not empty and
-  there are too many points) returns 1. Called by MT_insert() */
-
-
-
-
-
-
-struct quaddata **quad_divide_data(data,kmax,dmin)
- struct quaddata *data;
- int              kmax;
- double           dmin;
-/* Divides DATA into 4 new datas reinserting data->points in
- them by calling data function quad_compare() to detrmine
- were to insert. Called by MT_divide(). Returns array of 4 new datas */
-
-
-
-
-
-
-
-int quad_get_points(data_inter,data,MAX)
- struct quaddata *data_inter;
- struct quaddata *data;
- int    MAX;
-/* Gets such points from DATA that lie within region determined by
- data_inter. Called by tree function region_data(). */
-
-
-

Modified: grass/trunk/lib/rst/data/dataquad.c
===================================================================
--- grass/trunk/lib/rst/data/dataquad.c	2015-09-07 17:28:31 UTC (rev 66142)
+++ grass/trunk/lib/rst/data/dataquad.c	2015-09-07 20:11:46 UTC (rev 66143)
@@ -1,22 +1,41 @@
-
-/*-
- * Written by H. Mitasova, I. Kosinovsky, D. Gerdes Fall 1993
- * University of Illinois
- * US Army Construction Engineering Research Lab  
- * Copyright 1993, H. Mitasova (University of Illinois),
- * I. Kosinovsky, (USA-CERL), and D.Gerdes (USA-CERL)   
+/*!
+ * \file qtree.c
  *
- * Modified by H.Mitasova November 1996 to include variable smoothing
- * 
+ * \author
+ * H. Mitasova, I. Kosinovsky, D. Gerdes, Fall 1993,
+ * University of Illinois and
+ * US Army Construction Engineering Research Lab
+ *
+ * \author H. Mitasova (University of Illinois),
+ * \author I. Kosinovsky, (USA-CERL)
+ * \author D.Gerdes (USA-CERL)
+ *
+ * \author modified by H. Mitasova, November 1996 (include variable smoothing)
+ *
+ * \copyright
+ * (C) 1993-1996 by Helena Mitasova and the GRASS Development Team
+ *
+ * \copyright
+ * This program is free software under the
+ * GNU General Public License (>=v2).
+ * Read the file COPYING that comes with GRASS for details.
  */
 
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <grass/dataquad.h>
 
-/* sm added to point structure */
+
+/*!
+ * Initialize point structure with given arguments
+ *
+ * This is a constructor of the point structure and it allocates memory.
+ *
+ * \note
+ * Smoothing is part of the point structure
+ */
 struct triple *quad_point_new(double x, double y, double z, double sm)
-/* Initializes POINT structure with given arguments */
 {
     struct triple *point;
 
@@ -33,10 +52,16 @@
 }
 
 
+/*!
+ * Initialize quaddata structure with given arguments
+ * 
+ * This is a constructor of the quaddata structure and it allocates memory.
+ * It also creates (and allocates memory for) the given number of points
+ * (given by *kmax*). The point attributes are set to zero.
+ */
 struct quaddata *quad_data_new(double x_or, double y_or, double xmax,
 			       double ymax, int rows, int cols, int n_points,
 			       int kmax)
-/* Initializes QUADDATA structure with given arguments */
 {
     struct quaddata *data;
     int i;
@@ -67,12 +92,10 @@
 }
 
 
-
-
-
+/*!
+ * Return the quadrant the point should be inserted in
+ */
 int quad_compare(struct triple *point, struct quaddata *data)
-/* returns the quadrant the point should be inserted in */
-/* called by divide() */
 {
     int cond1, cond2, cond3, cond4, rows, cols;
     double ew_res, ns_res;
@@ -114,9 +137,10 @@
 }
 
 
+/*!
+ * Add point to a given *data*.
+ */
 int quad_add_data(struct triple *point, struct quaddata *data, double dmin)
-/* Adds POINT to a given DATA . Called by tree function insert_quad() */
-/* and by data function quad_divide_data() */
 {
     int n, i, cond;
     double xx, yy, r;
@@ -147,11 +171,13 @@
 }
 
 
-
-
+/*!
+ * Check intersection of two quaddata structures
+ * 
+ * Checks if region defined by *data* intersects the region defined
+ * by *data_inter*.
+ */
 int quad_intersect(struct quaddata *data_inter, struct quaddata *data)
-/* Checks if region defined by DATA intersects the region defined
-   by data_inter. Called by tree function MT_region_data() */
 {
     double xmin, xmax, ymin, ymax;
 
@@ -178,13 +204,19 @@
 }
 
 
-
-
+/*!
+ * Check if *data* needs to be divided
+ * 
+ * Checks if *data* needs to be divided. If `data->points` is empty,
+ * returns -1; if its not empty but there aren't enough points
+ * in *data* for division returns 0. Otherwise (if its not empty and
+ * there are too many points) returns 1.
+ * 
+ * \returns 1 if division is needed
+ * \returns 0 if division is not needed
+ * \returns -1 if there are no points
+ */
 int quad_division_check(struct quaddata *data, int kmax)
-/* Checks if DATA needs to be divided. If data->points is empty,
-   returns -1; if its not empty but there aren't enough points
-   in DATA for division returns 0. Othervise (if its not empty and
-   there are too many points) returns 1. Called by MT_insert() */
 {
     if (data->points == NULL)
 	return -1;
@@ -195,12 +227,15 @@
 }
 
 
-
+/*!
+ * Divide *data* into four new ones
+ *
+ * Divides *data* into 4 new datas reinserting `data->points` in
+ * them by calling data function `quad_compare()` to determine
+ * were to insert. Returns array of 4 new datas (allocates memory).
+ */
 struct quaddata **quad_divide_data(struct quaddata *data, int kmax,
 				   double dmin)
-/* Divides DATA into 4 new datas reinserting data->points in
-   them by calling data function quad_compare() to detrmine
-   were to insert. Called by MT_divide(). Returns array of 4 new datas */
 {
     struct quaddata **datas;
     int cols1, cols2, rows1, rows2, i;	/*j1, j2, jmin = 0; */
@@ -280,12 +315,12 @@
 }
 
 
-
-
+/*!
+ * Gets such points from *data* that lie within region determined by
+ * *data_inter*. Called by tree function `region_data()`.
+ */
 int
 quad_get_points(struct quaddata *data_inter, struct quaddata *data, int MAX)
-/* Gets such points from DATA that lie within region determined by
-   data_inter. Called by tree function region_data(). */
 {
     int i, ind;
     int n = 0;

Modified: grass/trunk/lib/rst/data/dataquad.h
===================================================================
--- grass/trunk/lib/rst/data/dataquad.h	2015-09-07 17:28:31 UTC (rev 66142)
+++ grass/trunk/lib/rst/data/dataquad.h	2015-09-07 20:11:46 UTC (rev 66143)
@@ -1,12 +1,24 @@
-
-/*-
- * Written by H. Mitasova, I. Kosinovsky, D. Gerdes Fall 1992
- * University of Illinois
- * US Army Construction Engineering Research Lab  
- * Copyright 1992, H. Mitasova (University of Illinois),
- * I. Kosinovsky, (USA-CERL), and D.Gerdes (USA-CERL)   
+/*!
+ * \file qtree.c
  *
- * Modified by H.Mitasova November 1996 to include variable smoothing
+ * \author
+ * H. Mitasova, I. Kosinovsky, D. Gerdes, Fall 1993,
+ * University of Illinois and
+ * US Army Construction Engineering Research Lab
+ *
+ * \author H. Mitasova (University of Illinois),
+ * \author I. Kosinovsky, (USA-CERL)
+ * \author D.Gerdes (USA-CERL)
+ *
+ * \author modified by H. Mitasova, November 1996 (include variable smoothing)
+ *
+ * \copyright
+ * (C) 1993-1996 by Helena Mitasova and the GRASS Development Team
+ *
+ * \copyright
+ * This program is free software under the
+ * GNU General Public License (>=v2).
+ * Read the file COPYING that comes with GRASS for details.
  */
 
 
@@ -19,12 +31,18 @@
 #define SW   3
 #define SE   4
 
+
+/*!
+ * Point structure to keep coordinates
+ *
+ * It also contains smoothing for the given point.
+ */
 struct triple
 {
     double x;
     double y;
     double z;
-    double sm;			/* structure extended to incl. variable smoothing */
+    double sm;  /*!< variable smoothing */
 };
 
 struct quaddata

Deleted: grass/trunk/lib/rst/interp_float/DESCRIPTION.INTERP
===================================================================
--- grass/trunk/lib/rst/interp_float/DESCRIPTION.INTERP	2015-09-07 17:28:31 UTC (rev 66142)
+++ grass/trunk/lib/rst/interp_float/DESCRIPTION.INTERP	2015-09-07 20:11:46 UTC (rev 66143)
@@ -1,28 +0,0 @@
-        DESCRIPTION OF INTERPOLATION LIBRARY
-
-  written by Irina Kosinovsky 1993
-  updated by Mitasova Nov. 96
-  NEEDS UPDATE FOR spatially variable smoothing and other changes 
-  done by Helena in 1997
-
-Note by Irina in 1993: Below is the collection of functions 
-needed for interpolation programs. It should be 
-divided into several libraries to provide better 
-functionality.
-
-V. Petras (2015): Removed all functions which are documented elsewhere
-in source code (Doxygen style) or clearly deleted. This file can be
-deleted after resolving IL_input_data_2d function.
-The TODO for changes 1997 still applies.
-
-int 
-IL_input_data_2d(params,info,xmin,xmax,ymin,ymax,zmin,zmax,MAXPOINTS,n_points)
-   struct interp_params *params;
-   struct tree_info *info;  /* quadtree info */
-   double *xmin,*xmax,*ymin,*ymax,*zmin,*zmax;  
-   int maxpoints;      /* max number of points per segment for interpolation */
-   int *n_points;      /* number of points used for interpolation */
-
-Inserts input data inside the region into a quad tree.
-Also translates data.
-Returns number of segments in the quad tree.

Deleted: grass/trunk/lib/rst/qtree/DESCRIPTION.TREE
===================================================================
--- grass/trunk/lib/rst/qtree/DESCRIPTION.TREE	2015-09-07 17:28:31 UTC (rev 66142)
+++ grass/trunk/lib/rst/qtree/DESCRIPTION.TREE	2015-09-07 20:11:46 UTC (rev 66143)
@@ -1,128 +0,0 @@
-/* updated by Mitasova Nov. 96, no changes necessary */
-
-DATa STRUCTURES:
-----------------
-
-#define VOID_T char
-
-struct multfunc { 
-    int (*compare) ();
-    VOID_T **(*divide_data) ();
-    int (*add_data) ();
-    int (*intersect) ();
-    int (*division_check) ();
-    int (*get_points) ();
-};
-
-struct tree_info {
-  struct multfunc *functions;
-  double dmin;
-  int kmax;
-  struct multtree *root;
-};
-
-struct multtree {
-  VOID_T *data;
-  struct multtree **leafs;
-  struct multtree *parent;
-  int    multant;
-};
-
-
-
-
-FUNCTIONS:
-----------
-
-struct multfunc * MT_functions_new(compare,divide_data,add_data,
-                          intersect,division_check,get_points)  
-    int (*compare) ();
-    VOID_T **(*divide_data) ();
-    int (*add_data) ();
-    int (*intersect) ();
-    int (*division_check) ();
-    int (*get_points) ();
-/* Initializes FUNCTIONS structure with given arguments*/
-
-
-
-
-struct tree_info * MT_tree_info_new (root,functions,dmin,kmax)
-    struct multtree *root;
-    struct multfunc *functions; 
-    double dmin;
-    int    kmax;
-/*Initializes TREE_INFO using given arguments*/
-
-
-
-
-
-struct multtree * MT_tree_new (data, leafs, parent, multant)
-    VOID_T *data;
-    struct multtree **leafs;
-    struct multtree *parent;
-    int             multant;
-/*Initializes TREE using given arguments*/
-
-
-
-
-
-
-int 
-MT_insert (point,info,tree,n_leafs)
-    VOID_T  *point;
-    struct tree_info *info;
-    struct multtree *tree;
-    int    n_leafs;
-/*First checks for dividing cond. (if n_points>=KMAX) and TREE is a leaf
-  by calling one of tree's functions (division_check()).
-  If TREE is not a leaf (is a node) uses function compare to determine
-   into which "son" we need to insert the point and calls MT_insert()
-   with this son as a n argument.
-  If TREE is a leaf but we don't need to divide it (n_points<KMAX) then
-   calls function add_data(POINT) to add POINT to the data of TREE and
-   returns the result of add_data() (which returns 1 if the point is
-   inserted and 0 if its ignored (when its too dense)).
-  If Division_check returns true, calls MT_divide(TREE) and then calls
-   insert_quad() to insert the POINT into divided TREE and returns the
-   result of MT_divide(). */
-
-
-
-
-
-
-
-int 
-MT_divide (info,tree,n_leafs)
-    struct tree_info *info;
-    struct multtree *tree;
-    int      n_leafs;
-/* Divides the tree by calling one of tree's functions (divide_data())
-   and returns the result of divide_data() */
-
-
-
-
-
-
-
-int 
-MT_region_data (info, tree, data, MAX, n_leafs)
-    struct tree_info *info;
-    struct multtree *tree;
-    VOID_T   *data;
-    int             MAX;	/* max number of points we can add (KMAX2) */
-    int             n_leafs;
- /* Gets points inside the region defined by DATA from TREE and
-adds them to DATA. If the number of eligible
-point is more than MAX returns MAX+1 othervise returns number of points added
-to DATA.
-  Uses tree's functions intersect() to find leafs that intersect given region
-and get_points() to get points from such leafs. */
-
-
-
-

Modified: grass/trunk/lib/rst/qtree/qtree.c
===================================================================
--- grass/trunk/lib/rst/qtree/qtree.c	2015-09-07 17:28:31 UTC (rev 66142)
+++ grass/trunk/lib/rst/qtree/qtree.c	2015-09-07 20:11:46 UTC (rev 66143)
@@ -1,12 +1,24 @@
-
-/*-
- * Written by H. Mitasova, I. Kosinovsky, D. Gerdes Fall 1993
- * University of Illinois
- * US Army Construction Engineering Research Lab  
- * Copyright 1993, H. Mitasova (University of Illinois),
- * I. Kosinovsky, (USA-CERL), and D.Gerdes (USA-CERL)   
+/*!
+ * \file qtree.c
  *
- *  updated by Mitasova Nov. 96, no changes necessary 
+ * \author
+ * H. Mitasova, I. Kosinovsky, D. Gerdes, Fall 1993,
+ * University of Illinois and
+ * US Army Construction Engineering Research Lab
+ *
+ * \author H. Mitasova (University of Illinois),
+ * \author I. Kosinovsky, (USA-CERL)
+ * \author D.Gerdes (USA-CERL)
+ *
+ * \author updated/checked by Mitasova Nov. 96 (no changes necessary)
+ *
+ * \copyright
+ * (C) 1993-1996 by Helena Mitasova and the GRASS Development Team
+ *
+ * \copyright
+ * This program is free software under the
+ * GNU General Public License (>=v2).
+ * Read the file COPYING that comes with GRASS for details.
  */
 
 #include <stdio.h>
@@ -16,6 +28,7 @@
 #include <grass/dataquad.h>
 #include <grass/qtree.h>
 
+/*! Initializes multfunc structure with given arguments */
 struct multfunc
     *MT_functions_new(int (*compare) (struct triple *, struct quaddata *),
 		      struct quaddata **(*divide_data) (struct quaddata *,
@@ -26,7 +39,6 @@
 		      int (*division_check) (struct quaddata *, int),
 		      int (*get_points) (struct quaddata *, struct quaddata *,
 					 int))
-/* Initializes FUNCTIONS structure with given arguments */
 {
     struct multfunc *functions;
     if (!(functions = (struct multfunc *)malloc(sizeof(struct multfunc)))) {
@@ -41,10 +53,10 @@
     return functions;
 }
 
+/*! Initializes tree_info using given arguments */
 struct tree_info *MT_tree_info_new(struct multtree *root,
 				   struct multfunc *functions, double dmin,
 				   int kmax)
-/*Initializes TREE_INFO using given arguments */
 {
     struct tree_info *info;
     if (!(info = (struct tree_info *)malloc(sizeof(struct tree_info)))) {
@@ -57,10 +69,10 @@
     return info;
 }
 
+/** Initializes multtree using given arguments */
 struct multtree *MT_tree_new(struct quaddata *data,
 			     struct multtree **leafs, struct multtree *parent,
 			     int multant)
-/*Initializes TREE using given arguments */
 {
     struct multtree *tree;
     if (!(tree = (struct multtree *)malloc(sizeof(struct multtree)))) {
@@ -74,21 +86,24 @@
 }
 
 
-
+/*!
+ * First checks for dividing cond. (if n_points>=KMAX) and tree
+ * is a leaf by calling one of tree's functions (`division_check()`).
+ * If tree is not a leaf (is a node) uses function compare to determine
+ * into which "son" we need to insert the point and calls MT_insert()
+ * with this son as a n argument.
+ *
+ * If TREE is a leaf but we don't need to divide it (n_points<KMAX) then
+ * calls function `add_data(point, ...)` to add point to the data of tree
+ * and returns the result of `add_data()` (which returns 1 if the point is
+ * inserted and 0 if its ignored (when its too dense)).
+ *
+ * If `division_check()` returns true, calls MT_divide() and then calls
+ * MT_insert() to insert the point into divided tree and returns the
+ * result of MT_divide().
+ */
 int MT_insert(struct triple *point,
 	      struct tree_info *info, struct multtree *tree, int n_leafs)
-/*First checks for dividing cond. (if n_points>=KMAX) and TREE is a leaf
-   by calling one of tree's functions (division_check()).
-   If TREE is not a leaf (is a node) uses function compare to determine
-   into which "son" we need to insert the point and calls MT_insert()
-   with this son as a n argument.
-   If TREE is a leaf but we don't need to divide it (n_points<KMAX) then
-   calls function add_data(POINT) to add POINT to the data of TREE and
-   returns the result of add_data() (which returns 1 if the point is
-   inserted and 0 if its ignored (when its too dense)).
-   If Division_check returns true, calls MT_divide(TREE) and then calls
-   insert_quad() to insert the POINT into divided TREE and returns the
-   result of MT_divide(). */
 {
     int j = 0, i, k, comp;
 
@@ -134,9 +149,13 @@
 }
 
 
+/*!
+ * Divide a tree
+ * 
+ * Divides the tree by calling one of tree's functions (divide_data())
+ * and returns the result of divide_data()
+ */
 int MT_divide(struct tree_info *info, struct multtree *tree, int n_leafs)
-/* Divides the tree by calling one of tree's functions (divide_data())
-   and returns the result of divide_data() */
 {
     int i;
     struct quaddata **datas;
@@ -161,15 +180,22 @@
 
 
 
-
-int MT_region_data(struct tree_info *info, struct multtree *tree, struct quaddata *data, int MAX,	/* max number of points we can add (KMAX2) */
-		   int n_leafs)
- /* Gets points inside the region defined by DATA from TREE and
-    adds them to DATA. If the number of eligible
-    point is more than MAX returns MAX+1 othervise returns number of points added
-    to DATA.
-    Uses tree's functions intersect() to find leafs that intersect given region
-    and get_points() to get points from such leafs. */
+/*!
+ * Get points inside a region from a tree
+ *
+ * Gets points inside the region defined by DATA from TREE and
+ * adds them to DATA. If the number of eligible
+ * point is more than MAX returns MAX+1 otherwise returns number of points added
+ * to DATA.
+ *
+ * Uses tree's functions intersect() to find leafs that intersect given region
+ * and get_points() to get points from such leafs.
+ */
+int MT_region_data(struct tree_info *info, struct multtree *tree,
+                   struct quaddata *data,
+                   int MAX,  /*!< max number of points we can add (KMAX2) */
+                   int n_leafs
+                   )
 {
     int n = 0, j;
 

Modified: grass/trunk/lib/rst/qtree/qtree.h
===================================================================
--- grass/trunk/lib/rst/qtree/qtree.h	2015-09-07 17:28:31 UTC (rev 66142)
+++ grass/trunk/lib/rst/qtree/qtree.h	2015-09-07 20:11:46 UTC (rev 66143)
@@ -1,12 +1,24 @@
-
-/*-
- * Written by H. Mitasova, I. Kosinovsky, D. Gerdes Fall 1993
- * University of Illinois
- * US Army Construction Engineering Research Lab  
- * Copyright 1993, H. Mitasova (University of Illinois),
- * I. Kosinovsky, (USA-CERL), and D.Gerdes (USA-CERL)   
+/*!
+ * \file qtree.c
  *
- * updated by Mitasova Nov. 96, no changes necessary 
+ * \author
+ * H. Mitasova, I. Kosinovsky, D. Gerdes, Fall 1993,
+ * University of Illinois and
+ * US Army Construction Engineering Research Lab
+ *
+ * \author H. Mitasova (University of Illinois),
+ * \author I. Kosinovsky, (USA-CERL)
+ * \author D.Gerdes (USA-CERL)
+ *
+ * \author updated/checked by Mitasova Nov. 96 (no changes necessary)
+ *
+ * \copyright
+ * (C) 1993-1996 by Helena Mitasova and the GRASS Development Team
+ *
+ * \copyright
+ * This program is free software under the
+ * GNU General Public License (>=v2).
+ * Read the file COPYING that comes with GRASS for details.
  */
 
 
@@ -17,6 +29,12 @@
 #define VOID_T char
 
 
+/*!
+ * Function table for a tree
+ *
+ * From object oriented point of view, this structure represents
+ * a class or a virtual table of functions/methods for a class.
+ */
 struct multfunc
 {
     int (*compare) ();

Added: grass/trunk/lib/rst/rst.dox
===================================================================
--- grass/trunk/lib/rst/rst.dox	                        (rev 0)
+++ grass/trunk/lib/rst/rst.dox	2015-09-07 20:11:46 UTC (rev 66143)
@@ -0,0 +1,66 @@
+/*! \page rst Regularized spline with tension interpolation library
+
+\tableofcontents
+
+
+Including and linking
+=====================
+
+Include interpf.h, qtree.h and dataquad.h header files according
+to which you need:
+
+    #include <grass/interpf.h>
+    #include <grass/qtree.h>
+    #include <grass/dataquad.h>
+
+Extend `LIBES` and `DEPENDENCIES` in your `Makefile` by the following:
+
+    LIBES = $(INTERPFLLIB) $(GMATHLIB)
+    DEPENDENCIES = $(INTERPFLDEP) $(GMATHDEP)
+
+
+Main functions and structures
+=============================
+
+Main functions include:
+- IL_init_params_2d()
+- IL_init_func_2d()
+- IL_vector_input_data_2d()
+- IL_create_bitmask()
+- IL_resample_interp_segments_2d()
+- IL_resample_output_2d()
+- IL_output_2d()
+
+Main data structures include:
+- interp_params
+- tree_info
+- \ref multtree
+
+
+Example usages
+==============
+
+- \gmod{v.surf.rst}
+- \gmod{r.resamp.rst}
+
+
+References
+==========
+
+The methods are described in the following papers.
+Please, use these papers as references in your publications when you
+used the library or derived modules.
+
+- Mitasova, H., and  Mitas, L., 1993,
+    Interpolation by Regularized Spline with Tension:
+    I. Theory  and  implementation.  Mathematical Geology, 25, 641-55.
+- Mitasova, H., and Hofierka, L., 1993
+    Interpolation by Regularized Spline with Tension: 
+    II. Application to terrain modeling and surface geometry  analysis.
+    Mathematical Geology, 25, 657-69.
+- Mitasova, H., Mitas, L., Brown, W.M., Gerdes, D.P., Kosinovsky, I.,
+    Baker, T., 1995, Modeling spatially and temporally
+    distributed phenomena: New methods and tools for GRASS GIS. 
+    International Journal of Geographic Information Systems,9(4), 433-46.
+
+*/



More information about the grass-commit mailing list