Markus Neteler d1f8b42521 typos fixed, part 2 (bug trac https://trac.osgeo.org/grass/ticket/1591) 13 年之前
..
examples d1f8b42521 typos fixed, part 2 (bug trac https://trac.osgeo.org/grass/ticket/1591) 13 年之前
BUGS db49180dd7 welcome to GRASS 7.0.svn 17 年之前
COPYING a6092698d1 update FSF mailing address (https://trac.osgeo.org/grass/ticket/1422) 13 年之前
Makefile f2e18ece8e Treat destination directories as targets 15 年之前
Makefile.alone db49180dd7 welcome to GRASS 7.0.svn 17 年之前
README db49180dd7 welcome to GRASS 7.0.svn 17 年之前
avl.c d868795511 update FSF mailing address (https://trac.osgeo.org/grass/ticket/1422) 13 年之前
avl.h d868795511 update FSF mailing address (https://trac.osgeo.org/grass/ticket/1422) 13 年之前
dgl.h db49180dd7 welcome to GRASS 7.0.svn 17 年之前
dglib.dox ba16544bf9 cosmetics in doxygen ref names 16 年之前
edgemgmt-template.c d868795511 update FSF mailing address (https://trac.osgeo.org/grass/ticket/1422) 13 年之前
graph.c d868795511 update FSF mailing address (https://trac.osgeo.org/grass/ticket/1422) 13 年之前
graph.h d868795511 update FSF mailing address (https://trac.osgeo.org/grass/ticket/1422) 13 年之前
graph_v1.c d868795511 update FSF mailing address (https://trac.osgeo.org/grass/ticket/1422) 13 年之前
graph_v1.h d868795511 update FSF mailing address (https://trac.osgeo.org/grass/ticket/1422) 13 年之前
graph_v2.c d868795511 update FSF mailing address (https://trac.osgeo.org/grass/ticket/1422) 13 年之前
graph_v2.h d868795511 update FSF mailing address (https://trac.osgeo.org/grass/ticket/1422) 13 年之前
heap.c d868795511 update FSF mailing address (https://trac.osgeo.org/grass/ticket/1422) 13 年之前
heap.h d868795511 update FSF mailing address (https://trac.osgeo.org/grass/ticket/1422) 13 年之前
helpers.c d868795511 update FSF mailing address (https://trac.osgeo.org/grass/ticket/1422) 13 年之前
helpers.h d868795511 update FSF mailing address (https://trac.osgeo.org/grass/ticket/1422) 13 年之前
misc-template.c d868795511 update FSF mailing address (https://trac.osgeo.org/grass/ticket/1422) 13 年之前
nodemgmt-template.c d868795511 update FSF mailing address (https://trac.osgeo.org/grass/ticket/1422) 13 年之前
sp-template.c d868795511 update FSF mailing address (https://trac.osgeo.org/grass/ticket/1422) 13 年之前
span-template.c d868795511 update FSF mailing address (https://trac.osgeo.org/grass/ticket/1422) 13 年之前
tavl.c d868795511 update FSF mailing address (https://trac.osgeo.org/grass/ticket/1422) 13 年之前
tavl.h d868795511 update FSF mailing address (https://trac.osgeo.org/grass/ticket/1422) 13 年之前
tree.c d868795511 update FSF mailing address (https://trac.osgeo.org/grass/ticket/1422) 13 年之前
tree.h d868795511 update FSF mailing address (https://trac.osgeo.org/grass/ticket/1422) 13 年之前
type.h d868795511 update FSF mailing address (https://trac.osgeo.org/grass/ticket/1422) 13 年之前
v1-defs.h d868795511 update FSF mailing address (https://trac.osgeo.org/grass/ticket/1422) 13 年之前
v2-defs.h d868795511 update FSF mailing address (https://trac.osgeo.org/grass/ticket/1422) 13 年之前

README

/*
* FLAT DIRECTED GRAPH (FDG) MEMORY REPRESENTATION * VERSION 1: (obsolete)
*
* FDG is represented by two arrays of 32bit words: the node-buffer and the link-buffer
*
* Each node has a entry in the node-buffer.
* Links (arcs connecting couples of nodes) are grouped in the link-buffer into link-areas, that is: all
* links departing from a given node are kept continuos in a link-area.
*
* A node-entry has the fields:
* nodeid: a unique id for the node in the graph
* status: flags indicating the role of the node (from/to/both)
* offset: the byte offset to the link-area in the link-buffer
* [attr]: optionally an arbitrary length area for user supplied node attributes.
*
* A link-area has the fields:
* tocnt : the number of departing links
* toarr : the array of departing links
*
* Each link in the link-area array has the fields:
* offset: the byte offset in the node buffer of the destination node for this link
* cost : the effort needed to 'travel' from origin node *to* the destination node (not bidirectional)
* user : a value passed by the user for this link - it's usually a unique user supplied link-id.
* [attr]: optionally an arbitrary length area for user supplied link attributes.
*
* Nodes in the node buffer are kept sorted by ascending nodeid. Thus, given that a node entry has fixed size,
* a node can be found using a binary search in the node buffer.
*
* Node attributes are optionally stored by enlarging the node entry by a fixed amount of bytes (attr), as well as link
* attributes, which are stored in the respective link entry extension (attr).
* Sizes for node and link attributes are given at graph creation time and cannot be modified later on.
*
* +-------------------------------------------------------------------------------------------------------> ...
* | +---------------------------------------------------------------------+
* | | +-----------------------------------+ |
* | | | V V
* Node Buffer (nodeid|status|offset|attr)... (nodeid|status|offset|attr)... (nodeid|status|offset|attr)...
* | | | | |
* | | | +---------------+ +------------------------+
* | | | V V
* Link Buffer (tocnt|toarr) ... (tocnt|toarr)
* | | | (offset|cost|user|attr)[0]... ()[tocnt-1]... (offset|cost|user|attr)[0]... ()[tocnt-1]...
* | | | | | | ...
* | | +-----------+ | |
* | +-----------------------------------------+ |
* +---------------------------------------------------------------------+
*
*/

/* FLAT DIRECTED GRAPH (FDG) FILE REPRESENTATION * VERSION 1 (obsolete)
*
* FDGs can be stored into files as they are, or in other words, they are serializable.
* Graphs are versioned: a pool exists of pointers to methods which implement a given graph version, for each graph version.
* Actually only version 1 has been defined.
* The version number is stored as the first byte of the graph file and must be supplied as an argument when we want to
* initialize a new graph. When reading a graph from a stream, the library understands by the first byte what version
* is it, and initializes it appropriately.
*
* Verion 1 graph file format:
*
* Field Size/Type Value range Description
* [VERSION...................] 1 byte 1 Version 1 graphs always keep value 1
* [ENDIANESS.................] 1 byte 1 | 2 Integer words byte order 1=big 2=little
* [NODE ATTRIBUTES BYTE SIZE.] 4 bytes integer >= 0 Byte size of attributes area for each node
* [LINK ATTRIBUTES BYTE SIZE.] 4 bytes integer >= 0 Byte size of attributes area for each link
* [OPAQUE SET................] 16 words of 4 bytes - Free user's storage
* [NODE COUNT................] 4 bytes integer > 0 How many nodes in graph
* [FROM NODE COUNT...........] 4 bytes integer > 0 How many nodes with from role
* [TO NODE COUNT.............] 4 bytes integer > 0 How many nodes with to role
* [ALONE NODE COUNT..........] 4 bytes integer > 0 How many nodes with alone role
* [ARC (LINK) COUNT..........] 4 bytes integer > 0 Home many links in graph
* [NODE BUFFER BYTE SIZE.....] 4 bytes integer >= 0 Byte size of the node buffer
* [LINK BUFFER BYTE SIZE.....] 4 bytes integer >= 0 Byte size of the link buffer
* [NODE BUFFER...............] variable len array of bytes V1 FDG NODE BUFFER Node buffer
* [LINK BUFFER...............] variable len array of bytes V1 FDG LINK BUFFER Link buffer
*
*/