Cleanup: remove redundant doxygen \file argument
[blender.git] / source / blender / blenlib / intern / sort_utils.c
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  *
16  * The Original Code is Copyright (C) 2013 Blender Foundation.
17  * All rights reserved.
18  */
19
20 /** \file \ingroup bli
21  *
22  * Utility functions for sorting common types.
23  */
24
25 #include "BLI_sort_utils.h"  /* own include */
26
27 struct SortAnyByFloat {
28         float sort_value;
29 };
30
31 struct SortAnyByInt {
32         int sort_value;
33 };
34
35 struct SortAnyByPtr {
36         const void *sort_value;
37 };
38
39 int BLI_sortutil_cmp_float(const void *a_, const void *b_)
40 {
41         const struct SortAnyByFloat *a = a_;
42         const struct SortAnyByFloat *b = b_;
43         if      (a->sort_value > b->sort_value) return  1;
44         else if (a->sort_value < b->sort_value) return -1;
45         else                                    return  0;
46 }
47
48 int BLI_sortutil_cmp_float_reverse(const void *a_, const void *b_)
49 {
50         const struct SortAnyByFloat *a = a_;
51         const struct SortAnyByFloat *b = b_;
52         if      (a->sort_value < b->sort_value) return  1;
53         else if (a->sort_value > b->sort_value) return -1;
54         else                                    return  0;
55 }
56
57 int BLI_sortutil_cmp_int(const void *a_, const void *b_)
58 {
59         const struct SortAnyByInt *a = a_;
60         const struct SortAnyByInt *b = b_;
61         if      (a->sort_value > b->sort_value) return  1;
62         else if (a->sort_value < b->sort_value) return -1;
63         else                                    return  0;
64 }
65
66 int BLI_sortutil_cmp_int_reverse(const void *a_, const void *b_)
67 {
68         const struct SortAnyByInt *a = a_;
69         const struct SortAnyByInt *b = b_;
70         if      (a->sort_value < b->sort_value) return  1;
71         else if (a->sort_value > b->sort_value) return -1;
72         else                                    return  0;
73 }
74
75 int BLI_sortutil_cmp_ptr(const void *a_, const void *b_)
76 {
77         const struct SortAnyByPtr *a = a_;
78         const struct SortAnyByPtr *b = b_;
79         if      (a->sort_value > b->sort_value) return  1;
80         else if (a->sort_value < b->sort_value) return -1;
81         else                                    return  0;
82 }
83
84 int BLI_sortutil_cmp_ptr_reverse(const void *a_, const void *b_)
85 {
86         const struct SortAnyByPtr *a = a_;
87         const struct SortAnyByPtr *b = b_;
88         if      (a->sort_value < b->sort_value) return  1;
89         else if (a->sort_value > b->sort_value) return -1;
90         else                                    return  0;
91 }