Renesas / opencv-lib

Dependents:   RZ_A2M_Mbed_samples

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers defines.h Source File

defines.h

00001 /***********************************************************************
00002  * Software License Agreement (BSD License)
00003  *
00004  * Copyright 2008-2011  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.
00005  * Copyright 2008-2011  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.
00006  *
00007  * Redistribution and use in source and binary forms, with or without
00008  * modification, are permitted provided that the following conditions
00009  * are met:
00010  *
00011  * 1. Redistributions of source code must retain the above copyright
00012  *    notice, this list of conditions and the following disclaimer.
00013  * 2. Redistributions in binary form must reproduce the above copyright
00014  *    notice, this list of conditions and the following disclaimer in the
00015  *    documentation and/or other materials provided with the distribution.
00016  *
00017  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
00018  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
00019  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
00020  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
00021  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
00022  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
00023  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
00024  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
00025  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
00026  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00027  *************************************************************************/
00028 
00029 
00030 #ifndef OPENCV_FLANN_DEFINES_H_
00031 #define OPENCV_FLANN_DEFINES_H_
00032 
00033 #include "config.h"
00034 
00035 #ifdef FLANN_EXPORT
00036 #undef FLANN_EXPORT
00037 #endif
00038 #ifdef WIN32
00039 /* win32 dll export/import directives */
00040  #ifdef FLANN_EXPORTS
00041   #define FLANN_EXPORT __declspec(dllexport)
00042  #elif defined(FLANN_STATIC)
00043   #define FLANN_EXPORT
00044  #else
00045   #define FLANN_EXPORT __declspec(dllimport)
00046  #endif
00047 #else
00048 /* unix needs nothing */
00049  #define FLANN_EXPORT
00050 #endif
00051 
00052 
00053 #ifdef FLANN_DEPRECATED
00054 #undef FLANN_DEPRECATED
00055 #endif
00056 #ifdef __GNUC__
00057 #define FLANN_DEPRECATED __attribute__ ((deprecated))
00058 #elif defined(_MSC_VER)
00059 #define FLANN_DEPRECATED __declspec(deprecated)
00060 #else
00061 #pragma message("WARNING: You need to implement FLANN_DEPRECATED for this compiler")
00062 #define FLANN_DEPRECATED
00063 #endif
00064 
00065 
00066 #undef FLANN_PLATFORM_32_BIT
00067 #undef FLANN_PLATFORM_64_BIT
00068 #if defined __amd64__ || defined __x86_64__ || defined _WIN64 || defined _M_X64
00069 #define FLANN_PLATFORM_64_BIT
00070 #else
00071 #define FLANN_PLATFORM_32_BIT
00072 #endif
00073 
00074 
00075 #undef FLANN_ARRAY_LEN
00076 #define FLANN_ARRAY_LEN(a) (sizeof(a)/sizeof(a[0]))
00077 
00078 namespace cvflann {
00079 
00080 /* Nearest neighbour index algorithms */
00081 enum flann_algorithm_t
00082 {
00083     FLANN_INDEX_LINEAR = 0,
00084     FLANN_INDEX_KDTREE = 1,
00085     FLANN_INDEX_KMEANS = 2,
00086     FLANN_INDEX_COMPOSITE = 3,
00087     FLANN_INDEX_KDTREE_SINGLE = 4,
00088     FLANN_INDEX_HIERARCHICAL = 5,
00089     FLANN_INDEX_LSH = 6,
00090     FLANN_INDEX_SAVED = 254,
00091     FLANN_INDEX_AUTOTUNED = 255,
00092 
00093     // deprecated constants, should use the FLANN_INDEX_* ones instead
00094     LINEAR = 0,
00095     KDTREE = 1,
00096     KMEANS = 2,
00097     COMPOSITE = 3,
00098     KDTREE_SINGLE = 4,
00099     SAVED = 254,
00100     AUTOTUNED = 255
00101 };
00102 
00103 
00104 
00105 enum flann_centers_init_t
00106 {
00107     FLANN_CENTERS_RANDOM = 0,
00108     FLANN_CENTERS_GONZALES = 1,
00109     FLANN_CENTERS_KMEANSPP = 2,
00110     FLANN_CENTERS_GROUPWISE = 3,
00111 
00112     // deprecated constants, should use the FLANN_CENTERS_* ones instead
00113     CENTERS_RANDOM = 0,
00114     CENTERS_GONZALES = 1,
00115     CENTERS_KMEANSPP = 2
00116 };
00117 
00118 enum flann_log_level_t
00119 {
00120     FLANN_LOG_NONE = 0,
00121     FLANN_LOG_FATAL = 1,
00122     FLANN_LOG_ERROR = 2,
00123     FLANN_LOG_WARN = 3,
00124     FLANN_LOG_INFO = 4
00125 };
00126 
00127 enum flann_distance_t
00128 {
00129     FLANN_DIST_EUCLIDEAN = 1,
00130     FLANN_DIST_L2 = 1,
00131     FLANN_DIST_MANHATTAN = 2,
00132     FLANN_DIST_L1 = 2,
00133     FLANN_DIST_MINKOWSKI = 3,
00134     FLANN_DIST_MAX   = 4,
00135     FLANN_DIST_HIST_INTERSECT   = 5,
00136     FLANN_DIST_HELLINGER = 6,
00137     FLANN_DIST_CHI_SQUARE = 7,
00138     FLANN_DIST_CS         = 7,
00139     FLANN_DIST_KULLBACK_LEIBLER  = 8,
00140     FLANN_DIST_KL                = 8,
00141     FLANN_DIST_HAMMING          = 9,
00142 
00143     // deprecated constants, should use the FLANN_DIST_* ones instead
00144     EUCLIDEAN = 1,
00145     MANHATTAN = 2,
00146     MINKOWSKI = 3,
00147     MAX_DIST   = 4,
00148     HIST_INTERSECT   = 5,
00149     HELLINGER = 6,
00150     CS         = 7,
00151     KL         = 8,
00152     KULLBACK_LEIBLER  = 8
00153 };
00154 
00155 enum flann_datatype_t
00156 {
00157     FLANN_INT8 = 0,
00158     FLANN_INT16 = 1,
00159     FLANN_INT32 = 2,
00160     FLANN_INT64 = 3,
00161     FLANN_UINT8 = 4,
00162     FLANN_UINT16 = 5,
00163     FLANN_UINT32 = 6,
00164     FLANN_UINT64 = 7,
00165     FLANN_FLOAT32 = 8,
00166     FLANN_FLOAT64 = 9
00167 };
00168 
00169 enum
00170 {
00171     FLANN_CHECKS_UNLIMITED = -1,
00172     FLANN_CHECKS_AUTOTUNED = -2
00173 };
00174 
00175 }
00176 
00177 #endif /* OPENCV_FLANN_DEFINES_H_ */