tlds
Transactional Operations for Linked Data Structures
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
maze.h
Go to the documentation of this file.
1 /* =============================================================================
2  *
3  * maze.h
4  *
5  * =============================================================================
6  *
7  * Copyright (C) Stanford University, 2006. All Rights Reserved.
8  * Author: Chi Cao Minh
9  *
10  * =============================================================================
11  *
12  * For the license of bayes/sort.h and bayes/sort.c, please see the header
13  * of the files.
14  *
15  * ------------------------------------------------------------------------
16  *
17  * For the license of kmeans, please see kmeans/LICENSE.kmeans
18  *
19  * ------------------------------------------------------------------------
20  *
21  * For the license of ssca2, please see ssca2/COPYRIGHT
22  *
23  * ------------------------------------------------------------------------
24  *
25  * For the license of lib/mt19937ar.c and lib/mt19937ar.h, please see the
26  * header of the files.
27  *
28  * ------------------------------------------------------------------------
29  *
30  * For the license of lib/rbtree.h and lib/rbtree.c, please see
31  * lib/LEGALNOTICE.rbtree and lib/LICENSE.rbtree
32  *
33  * ------------------------------------------------------------------------
34  *
35  * Unless otherwise noted, the following license applies to STAMP files:
36  *
37  * Copyright (c) 2007, Stanford University
38  * All rights reserved.
39  *
40  * Redistribution and use in source and binary forms, with or without
41  * modification, are permitted provided that the following conditions are
42  * met:
43  *
44  * * Redistributions of source code must retain the above copyright
45  * notice, this list of conditions and the following disclaimer.
46  *
47  * * Redistributions in binary form must reproduce the above copyright
48  * notice, this list of conditions and the following disclaimer in
49  * the documentation and/or other materials provided with the
50  * distribution.
51  *
52  * * Neither the name of Stanford University nor the names of its
53  * contributors may be used to endorse or promote products derived
54  * from this software without specific prior written permission.
55  *
56  * THIS SOFTWARE IS PROVIDED BY STANFORD UNIVERSITY ``AS IS'' AND ANY
57  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
58  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
59  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL STANFORD UNIVERSITY BE LIABLE
60  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
61  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
62  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
63  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
64  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
65  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
66  * THE POSSIBILITY OF SUCH DAMAGE.
67  *
68  * =============================================================================
69  */
70 
71 
72 #ifndef MAZE_H
73 #define MAZE_H 1
74 
75 
76 #include "coordinate.h"
77 #include "grid.h"
78 #include "list.h"
79 #include "pair.h"
80 #include "queue.h"
81 #include "types.h"
82 #include "vector.h"
83 
84 typedef struct maze {
86  queue_t* workQueuePtr; /* contains source/destination pairs to route */
87  vector_t* wallVectorPtr; /* obstacles */
88  vector_t* srcVectorPtr; /* sources */
89  vector_t* dstVectorPtr; /* destinations */
90 } maze_t;
91 
92 
93 /* =============================================================================
94  * maze_alloc
95  * =============================================================================
96  */
97 maze_t*
98 maze_alloc ();
99 
100 
101 /* =============================================================================
102  * maze_free
103  * =============================================================================
104  */
105 void
106 maze_free (maze_t* mazePtr);
107 
108 
109 /* =============================================================================
110  * maze_read
111  * -- Return number of path to route
112  * =============================================================================
113  */
114 long
115 maze_read (maze_t* mazePtr, char* inputFileName);
116 
117 
118 /* =============================================================================
119  * maze_checkPaths
120  * =============================================================================
121  */
122 bool_t
123 maze_checkPaths (maze_t* mazePtr, list_t* pathListPtr, bool_t doPrintPaths);
124 
125 
126 #endif /* MAZE_H */
127 
128 
129 /* =============================================================================
130  *
131  * End of maze.h
132  *
133  * =============================================================================
134  */
Definition: vector.h:85
Definition: grid.h:80
bool_t maze_checkPaths(maze_t *mazePtr, list_t *pathListPtr, bool_t doPrintPaths)
Definition: maze.c:286
maze_t * maze_alloc()
Definition: maze.c:89
struct maze maze_t
Definition: maze.h:84
vector_t * wallVectorPtr
Definition: maze.h:87
Definition: queue.c:81
int bool_t
Definition: portable_defns.h:32
long maze_read(maze_t *mazePtr, char *inputFileName)
Definition: maze.c:159
vector_t * dstVectorPtr
Definition: maze.h:89
queue_t * workQueuePtr
Definition: maze.h:86
vector_t * srcVectorPtr
Definition: maze.h:88
Definition: list.h:93
void maze_free(maze_t *mazePtr)
Definition: maze.c:114
grid_t * gridPtr
Definition: maze.h:85