1 | // This file is part of OpenCV project. |
---|---|
2 | // It is subject to the license terms in the LICENSE file found in the top-level directory |
3 | // of this distribution and at http://opencv.org/license.html. |
4 | // |
5 | // Copyright (C) 2013-2016, The Regents of The University of Michigan. |
6 | // |
7 | // This software was developed in the APRIL Robotics Lab under the |
8 | // direction of Edwin Olson, ebolson@umich.edu. This software may be |
9 | // available under alternative licensing terms; contact the address above. |
10 | // |
11 | // The views and conclusions contained in the software and documentation are those |
12 | // of the authors and should not be interpreted as representing official policies, |
13 | // either expressed or implied, of the Regents of The University of Michigan. |
14 | #ifndef _OPENCV_ZMAXHEAP_HPP_ |
15 | #define _OPENCV_ZMAXHEAP_HPP_ |
16 | |
17 | namespace cv { |
18 | namespace aruco { |
19 | typedef struct zmaxheap zmaxheap_t; |
20 | |
21 | typedef struct zmaxheap_iterator zmaxheap_iterator_t; |
22 | struct zmaxheap_iterator { |
23 | zmaxheap_t *heap; |
24 | int in, out; |
25 | }; |
26 | |
27 | zmaxheap_t *zmaxheap_create(size_t el_sz); |
28 | |
29 | void zmaxheap_destroy(zmaxheap_t *heap); |
30 | |
31 | void zmaxheap_add(zmaxheap_t *heap, void *p, float v); |
32 | |
33 | // returns 0 if the heap is empty, so you can do |
34 | // while (zmaxheap_remove_max(...)) { } |
35 | int zmaxheap_remove_max(zmaxheap_t *heap, void *p, float *v); |
36 | |
37 | }} |
38 | #endif |
39 |