p4est  1.0
src/p4est_search.h
00001 /*
00002   This file is part of p4est.
00003   p4est is a C library to manage a collection (a forest) of multiple
00004   connected adaptive quadtrees or octrees in parallel.
00005 
00006   Copyright (C) 2010 The University of Texas System
00007   Written by Carsten Burstedde, Lucas C. Wilcox, and Tobin Isaac
00008 
00009   p4est is free software; you can redistribute it and/or modify
00010   it under the terms of the GNU General Public License as published by
00011   the Free Software Foundation; either version 2 of the License, or
00012   (at your option) any later version.
00013 
00014   p4est is distributed in the hope that it will be useful,
00015   but WITHOUT ANY WARRANTY; without even the implied warranty of
00016   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00017   GNU General Public License for more details.
00018 
00019   You should have received a copy of the GNU General Public License
00020   along with p4est; if not, write to the Free Software Foundation, Inc.,
00021   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
00022 */
00023 
00024 #ifndef P4EST_SEARCH_H
00025 #define P4EST_SEARCH_H
00026 
00027 #include <p4est.h>
00028 
00029 SC_EXTERN_C_BEGIN;
00030 
00035 ssize_t             p4est_find_lower_bound (sc_array_t * array,
00036                                             const p4est_quadrant_t * q,
00037                                             size_t guess);
00038 
00043 ssize_t             p4est_find_higher_bound (sc_array_t * array,
00044                                              const p4est_quadrant_t * q,
00045                                              size_t guess);
00046 
00061 void                p4est_split_array (sc_array_t * array, int level,
00062                                        size_t indices[]);
00063 
00085 int32_t             p4est_find_range_boundaries (p4est_quadrant_t * lq,
00086                                                  p4est_quadrant_t * uq,
00087                                                  int level, int faces[],
00088                                                  int corners[]);
00089 
00115 typedef int         (*p4est_search_query_t) (p4est_t * p4est,
00116                                              p4est_topidx_t which_tree,
00117                                              p4est_quadrant_t * quadrant,
00118                                              p4est_locidx_t local_num,
00119                                              void *point);
00120 
00149 void                p4est_search (p4est_t * p4est,
00150                                   p4est_search_query_t search_quadrant_fn,
00151                                   p4est_search_query_t search_point_fn,
00152                                   sc_array_t * points);
00153 
00154 SC_EXTERN_C_END;
00155 
00156 #endif
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines