Cleanup: make remaining blenlib headers work in C++
authorJacques Lucke <jacques@blender.org>
Mon, 2 Mar 2020 14:04:53 +0000 (15:04 +0100)
committerJacques Lucke <jacques@blender.org>
Mon, 2 Mar 2020 14:05:15 +0000 (15:05 +0100)
Differential Revision: https://developer.blender.org/D6988

Reviewers: brecht

41 files changed:
source/blender/blenlib/BLI_args.h
source/blender/blenlib/BLI_array_store.h
source/blender/blenlib/BLI_array_store_utils.h
source/blender/blenlib/BLI_array_utils.h
source/blender/blenlib/BLI_astar.h
source/blender/blenlib/BLI_bitmap.h
source/blender/blenlib/BLI_bitmap_draw_2d.h
source/blender/blenlib/BLI_boxpack_2d.h
source/blender/blenlib/BLI_buffer.h
source/blender/blenlib/BLI_convexhull_2d.h
source/blender/blenlib/BLI_delaunay_2d.h
source/blender/blenlib/BLI_dial_2d.h
source/blender/blenlib/BLI_dlrbTree.h
source/blender/blenlib/BLI_dynlib.h
source/blender/blenlib/BLI_dynstr.h
source/blender/blenlib/BLI_edgehash.h
source/blender/blenlib/BLI_endian_switch.h
source/blender/blenlib/BLI_endian_switch_inline.h
source/blender/blenlib/BLI_fileops_types.h
source/blender/blenlib/BLI_hash_md5.h
source/blender/blenlib/BLI_hash_mm2a.h
source/blender/blenlib/BLI_heap.h
source/blender/blenlib/BLI_heap_simple.h
source/blender/blenlib/BLI_iterator.h
source/blender/blenlib/BLI_jitter_2d.h
source/blender/blenlib/BLI_lasso_2d.h
source/blender/blenlib/BLI_linklist.h
source/blender/blenlib/BLI_math_interp.h
source/blender/blenlib/BLI_memory_utils.h
source/blender/blenlib/BLI_polyfill_2d.h
source/blender/blenlib/BLI_polyfill_2d_beautify.h
source/blender/blenlib/BLI_quadric.h
source/blender/blenlib/BLI_smallhash.h
source/blender/blenlib/BLI_sort_utils.h
source/blender/blenlib/BLI_string_cursor_utf8.h
source/blender/blenlib/BLI_timecode.h
source/blender/blenlib/BLI_timer.h
source/blender/blenlib/BLI_uvproject.h
source/blender/blenlib/BLI_vfontdata.h
source/blender/blenlib/BLI_voronoi_2d.h
source/blender/blenlib/BLI_voxel.h

index 0e4ca61e81aa23f3bf9873a458074e1b7b3d5a2f..9031cd2ba2fe5121fd629284e5ddd842b398260c 100644 (file)
  * \brief A general argument parsing module.
  */
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 struct bArgs;
 typedef struct bArgs bArgs;
 
@@ -71,4 +75,8 @@ void BLI_argsPrintOtherDoc(struct bArgs *ba);
 void BLI_argsPrint(struct bArgs *ba);
 const char **BLI_argsArgv(struct bArgs *ba);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif
index 1dc4a504884ed828244fee6f64ab43e3acc5fedc..a8a7dde63b5febeb3ef881c06eaf3994ea9dee9a 100644 (file)
  * \brief Efficient in-memory storage of multiple similar arrays.
  */
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 typedef struct BArrayState BArrayState;
 typedef struct BArrayStore BArrayStore;
 
@@ -46,4 +50,8 @@ void *BLI_array_store_state_data_get_alloc(BArrayState *state, size_t *r_data_le
 /* only for tests */
 bool BLI_array_store_is_valid(BArrayStore *bs);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __BLI_ARRAY_STORE_H__ */
index ff6caddffd5cc6b3d2e35fca37a6460dd1638345..5b5263bf8a42e3a29b78b6a3cc426464f0eda83f 100644 (file)
  * \ingroup bli
  */
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 struct BArrayStore;
 
 struct BArrayStore_AtSize {
@@ -40,4 +44,8 @@ void BLI_array_store_at_size_calc_memory_usage(struct BArrayStore_AtSize *bs_str
                                                size_t *r_size_expanded,
                                                size_t *r_size_compacted);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __BLI_ARRAY_STORE_UTILS_H__ */
index 4ceb149f238e2c0a6066bdaa23ef330c21736421..f70aa3b54fa40f82f76d944cefab19c398569462 100644 (file)
 
 #include "BLI_compiler_typecheck.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 void _bli_array_reverse(void *arr, unsigned int arr_len, size_t arr_stride);
 #define BLI_array_reverse(arr, arr_len) _bli_array_reverse(arr, arr_len, sizeof(*(arr)))
 
@@ -85,4 +89,8 @@ bool _bli_array_iter_span(const void *arr,
 bool _bli_array_is_zeroed(const void *arr, unsigned int arr_len, size_t arr_stride);
 #define BLI_array_is_zeroed(arr, arr_len) _bli_array_is_zeroed(arr, arr_len, sizeof(*(arr)))
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __BLI_ARRAY_UTILS_H__ */
index 3fe37d7886b8c0da0fe0f39d9cf5afff4acde9dc..8a70371cbcb87d5e638cc8ed30ed41d89712587b 100644 (file)
 
 #include "BLI_bitmap.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /* -------------------------------------------------------------------- */
 
 typedef struct BLI_AStarGNLink {
@@ -114,4 +118,8 @@ bool BLI_astar_graph_solve(BLI_AStarGraph *as_graph,
                            BLI_AStarSolution *r_solution,
                            const int max_steps);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __BLI_ASTAR_H__ */
index 3af25e3de1dee4a9b8cec45f155bf7448c3812f2..3772a063515365e71de0ff81295fa26377cc5f46 100644 (file)
  * \ingroup bli
  */
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 typedef unsigned int BLI_bitmap;
 
 /* warning: the bitmap does not keep track of its own size or check
@@ -109,4 +113,8 @@ void BLI_bitmap_copy_all(BLI_bitmap *dst, const BLI_bitmap *src, size_t bits);
 void BLI_bitmap_and_all(BLI_bitmap *dst, const BLI_bitmap *src, size_t bits);
 void BLI_bitmap_or_all(BLI_bitmap *dst, const BLI_bitmap *src, size_t bits);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif
index bad1605ac5d7361c9fe29c1c9bc7203da8d98504..f5f8b28b27fbd3439abf67a72ae5ab902887e03f 100644 (file)
  * \ingroup bli
  */
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 void BLI_bitmap_draw_2d_line_v2v2i(const int p1[2],
                                    const int p2[2],
                                    bool (*callback)(int, int, void *),
@@ -41,4 +45,8 @@ void BLI_bitmap_draw_2d_poly_v2i_n(const int xmin,
                                    void (*callback)(int x, int x_end, int y, void *),
                                    void *user_data);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __BLI_BITMAP_DRAW_2D_H__ */
index b519a920a775609b651b0128f57c05a2fc94cbac..762cb7aaa443c6fff356f2901ad3495851770891 100644 (file)
  * \ingroup bli
  */
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 struct ListBase;
 
 /* Box Packer */
@@ -57,4 +61,8 @@ void BLI_box_pack_2d_fixedarea(struct ListBase *boxes,
                                int height,
                                struct ListBase *packed);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __BLI_BOXPACK_2D_H__ */
index 22d212627127db7bc2291fc643024ee6c4d4eb64..d81446af14bfb96acbe554d895fb5653e4df4c1f 100644 (file)
  * \ingroup bli
  */
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 typedef struct BLI_Buffer {
   void *data;
   const size_t elem_size;
@@ -93,4 +97,8 @@ void _bli_buffer_free(BLI_Buffer *buffer);
 
 #define BLI_buffer_field_free(name_) _bli_buffer_free(name_)
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __BLI_BUFFER_H__ */
index 556dc79fc47ddf6c879b5ee3401b0e9ae0ed1470..7417c1e3a9827ac466447a60ec5fef364c0cecdf 100644 (file)
  * \ingroup bli
  */
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 int BLI_convexhull_2d_sorted(const float (*points)[2], const int n, int r_points[]);
 int BLI_convexhull_2d(const float (*points)[2], const int n, int r_points[]);
 
 float BLI_convexhull_aabb_fit_hull_2d(const float (*points_hull)[2], unsigned int n);
 float BLI_convexhull_aabb_fit_points_2d(const float (*points)[2], unsigned int n);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __BLI_CONVEXHULL_2D_H__ */
index 9d853dd95092304b80726c495400c0ce0bd21622..95111dbbbf70d44899ffd0c3739bdfdaeed8f7c3 100644 (file)
  * \ingroup bli
  */
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /**
  * Interface for Constrained Delaunay Triangulation (CDT) in 2D.
  *
@@ -202,4 +206,8 @@ CDT_result *BLI_delaunay_2d_cdt_calc(const CDT_input *input, const CDT_output_ty
 
 void BLI_delaunay_2d_cdt_free(CDT_result *result);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __BLI_DELAUNAY_2D_H__ */
index 71b0683d1496bac194160e8bb3e3b5b3bbf3b1ab..a39543720e6b49edcaec0ca0f7cb3c494ae746a2 100644 (file)
  * \endcode
  */
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 typedef struct Dial Dial;
 
 Dial *BLI_dial_initialize(const float start_position[2], float threshold);
 
 float BLI_dial_angle(Dial *dial, const float current_position[2]);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __BLI_DIAL_2D_H__ */
index 11e5e2c70e9a46e2046753ff08c89a560ba6879a..277d91165580c8e3e96eb7a4024ee56dd8e8baaa 100644 (file)
  * \ingroup bli
  */
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /* Double-Linked Red-Black Tree Implementation:
  *
  * This is simply a Red-Black Tree implementation whose nodes can later
@@ -159,4 +163,8 @@ void BLI_dlrbTree_insert(DLRBT_Tree *tree, DLRBT_Node *node);
 
 /* ********************************************** */
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __BLI_DLRBTREE_H__ */
index 3359a70ef116cb1f8436b023820fc9e14fc1cf96..4adffd51e1762365825fb1015e200642a2f13cd6 100644 (file)
 #ifndef __BLI_DYNLIB_H__
 #define __BLI_DYNLIB_H__
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 typedef struct DynamicLibrary DynamicLibrary;
 
 DynamicLibrary *BLI_dynlib_open(const char *name);
@@ -31,4 +35,8 @@ void *BLI_dynlib_find_symbol(DynamicLibrary *lib, const char *symname);
 char *BLI_dynlib_get_error_as_string(DynamicLibrary *lib);
 void BLI_dynlib_close(DynamicLibrary *lib);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __BLI_DYNLIB_H__ */
index 87e58d90d3f85e6c9475973bf710443adf4dcec3..cb1f3d58f23fd235d45ff19251d27ea90c96777b 100644 (file)
 
 #include "BLI_compiler_attrs.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 struct DynStr;
 
 /** The abstract DynStr type */
@@ -57,4 +61,8 @@ void BLI_dynstr_get_cstring_ex(DynStr *__restrict ds, char *__restrict str) ATTR
 void BLI_dynstr_clear(DynStr *ds) ATTR_NONNULL();
 void BLI_dynstr_free(DynStr *ds) ATTR_NONNULL();
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __BLI_DYNSTR_H__ */
index 66797ee113f8d3659402d2ff645e6206450ba300..bd149e2eaa0c71f041a101fe3fec5cca5c98e87a 100644 (file)
 
 #include "BLI_compiler_attrs.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 struct EdgeHash;
 typedef struct EdgeHash EdgeHash;
 
@@ -150,4 +154,8 @@ BLI_INLINE bool BLI_edgesetIterator_isDone(EdgeSetIterator *esi)
   return esi->index >= esi->length;
 }
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __BLI_EDGEHASH_H__ */
index c849398a56f8c7fb54f9b875c7549375de461322..a07508e31a06bc2fba7d512d3b78f03436cd528a 100644 (file)
 
 #include "BLI_compiler_attrs.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /* BLI_endian_switch_inline.h */
 BLI_INLINE void BLI_endian_switch_int16(short *val) ATTR_NONNULL(1);
 BLI_INLINE void BLI_endian_switch_uint16(unsigned short *val) ATTR_NONNULL(1);
@@ -43,6 +47,10 @@ void BLI_endian_switch_int64_array(int64_t *val, const int size) ATTR_NONNULL(1)
 void BLI_endian_switch_uint64_array(uint64_t *val, const int size) ATTR_NONNULL(1);
 void BLI_endian_switch_double_array(double *val, const int size) ATTR_NONNULL(1);
 
+#ifdef __cplusplus
+}
+#endif
+
 #include "BLI_endian_switch_inline.h"
 
 #endif /* __BLI_ENDIAN_SWITCH_H__ */
index 55e14b6d77caaa60fdc316bd319c6177b0cc43d2..316e24cfc6d820e8579450b349f2a1b3960ecff9 100644 (file)
 #ifndef __BLI_ENDIAN_SWITCH_INLINE_H__
 #define __BLI_ENDIAN_SWITCH_INLINE_H__
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /* only include from header */
 #ifndef __BLI_ENDIAN_SWITCH_H__
 #  error "this file isnt to be directly included"
@@ -85,4 +89,8 @@ BLI_INLINE void BLI_endian_switch_double(double *val)
   BLI_endian_switch_uint64((uint64_t *)val);
 }
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __BLI_ENDIAN_SWITCH_INLINE_H__ */
index 6456b457cfb7dddcbc4fe079c3ca16d71e5733ec..41f916ed0ca16db32c5e2a895337d89aeceb4bb8 100644 (file)
 
 #include <sys/stat.h>
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 #if defined(WIN32)
 typedef unsigned int mode_t;
 #endif
@@ -57,4 +61,8 @@ struct dirlink {
   char *name;
 };
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __BLI_FILEOPS_TYPES_H__ */
index a3e56b53e76ff95ebee2ab50ae7d8bfc7f8f0dc8..b326b17c19bbe048dc22974ea5ea9e5e791b7a5f 100644 (file)
  * \ingroup bli
  */
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /* Compute MD5 message digest for LEN bytes beginning at BUFFER.  The
  * result is always in little endian byte order, so that a byte-wise
  * output yields to the wanted ASCII representation of the message
@@ -36,4 +40,8 @@ int BLI_hash_md5_stream(FILE *stream, void *resblock);
 
 char *BLI_hash_md5_to_hexdigest(void *resblock, char r_hex_digest[33]);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __BLI_HASH_MD5_H__ */
index cafa52205c7d2d7a832d821c0e67c12ba7c16513..840ff31dd1966db5cdfbe90d6c4ae3415aaebad6 100644 (file)
 
 #include "BLI_sys_types.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 typedef struct BLI_HashMurmur2A {
   uint32_t hash;
   uint32_t tail;
@@ -40,4 +44,8 @@ uint32_t BLI_hash_mm2a_end(BLI_HashMurmur2A *mm2);
 
 uint32_t BLI_hash_mm2(const unsigned char *data, size_t len, uint32_t seed);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __BLI_HASH_MM2A_H__ */
index 897620da561019ea47703c1385e4a276ebf1ae60..3ce8da7e03cc7735129908e784feb401be04c0d3 100644 (file)
  * \brief A min-heap / priority queue ADT
  */
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 struct Heap;
 struct HeapNode;
 typedef struct Heap Heap;
@@ -52,4 +56,8 @@ void *BLI_heap_node_ptr(const HeapNode *heap) ATTR_WARN_UNUSED_RESULT ATTR_NONNU
 /* only for gtest */
 bool BLI_heap_is_valid(const Heap *heap);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __BLI_HEAP_H__ */
index a2ff4bebf7ed141026136e591fb61dd8af619ba6..d2bc542491c47dd3ec8fb265407983b500d50804 100644 (file)
  * \brief A min-heap / priority queue ADT
  */
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 struct HeapSimple;
 typedef struct HeapSimple HeapSimple;
 
@@ -37,4 +41,8 @@ uint BLI_heapsimple_len(const HeapSimple *heap) ATTR_WARN_UNUSED_RESULT ATTR_NON
 float BLI_heapsimple_top_value(const HeapSimple *heap) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1);
 void *BLI_heapsimple_pop_min(HeapSimple *heap) ATTR_NONNULL(1);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __BLI_HEAP_SIMPLE_H__ */
index 4513ecdff1009ceaf661c6c24d1e694d6042f418..ce2311aa3f77ceea9ab569ce1993e1adb3223ae4 100644 (file)
  * \ingroup bli
  */
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 typedef struct BLI_Iterator {
   void *current; /* current pointer we iterate over */
   void *data;    /* stored data required for this iterator */
@@ -51,4 +55,8 @@ typedef void (*IteratorBeginCb)(BLI_Iterator *iter, void *data_in);
   } \
   ((void)0)
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __BLI_ITERATOR_H__ */
index bfbf9c00befec600bc071c250cafea454b54369d..fa184916b5b54f7bb43b29c63de6d3e1fb0b7e85 100644 (file)
  * \ingroup bli
  */
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 void BLI_jitter_init(float (*jitarr)[2], int num);
 void BLI_jitterate1(float (*jit1)[2], float (*jit2)[2], int num, float radius1);
 void BLI_jitterate2(float (*jit1)[2], float (*jit2)[2], int num, float radius2);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __BLI_JITTER_2D_H__ */
index 8bd0568bb847628c9f61b997e422bb88ec24c086..56db360dab00ba3b5131e033d0919464897ffc69 100644 (file)
  * \ingroup bli
  */
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 struct rcti;
 
 void BLI_lasso_boundbox(struct rcti *rect, const int mcords[][2], const unsigned int moves);
@@ -40,4 +44,8 @@ bool BLI_lasso_is_edge_inside(const int mcords[][2],
                               int y1,
                               const int error_value);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __BLI_LASSO_2D_H__ */
index d04d3e29e1421f51aba5946ec6ebaaf147e0d537..06796d6592ab3da86bad8094bac557a0bb3536e0 100644 (file)
 
 #include "BLI_compiler_attrs.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 struct BLI_mempool;
 struct MemArena;
 
@@ -93,4 +97,8 @@ LinkNode *BLI_linklist_sort_r(LinkNode *list,
 #define BLI_linklist_append_alloca(list_pair, ptr) \
   BLI_linklist_append_nlink(list_pair, ptr, alloca(sizeof(LinkNode)))
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __BLI_LINKLIST_H__ */
index add55fa9531b9097b64033d302eceaa7b0e9823c..0f3032fa625727e9e49b7dae7cb67cd936a0e7ba 100644 (file)
  * \ingroup bli
  */
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 void BLI_bicubic_interpolation_fl(
     const float *buffer, float *output, int width, int height, int components, float u, float v);
 
@@ -88,4 +92,8 @@ void BLI_ewa_filter(const int width,
                     void *customdata,
                     float result[4]);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __BLI_MATH_INTERP_H__ */
index 74d4451ed8d3cb8ed49c15932656ca373f23af33..99ec44cf9ea0467c59fd8a7589dc7e35dff4435f 100644 (file)
  * \brief Generic memory manipulation API.
  */
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /* it may be defined already */
 #ifndef __BLI_UTILDEFINES_H__
 bool BLI_memory_is_zero(const void *arr, const size_t size);
 #endif
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __BLI_MEMORY_UTILS_H__ */
index 4b229cc6c1e586a7dbfecf0041d4918963d34107..cb12b73c1d5961a3d768b30491b9a8062898e653 100644 (file)
  * \ingroup bli
  */
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 struct MemArena;
 
 void BLI_polyfill_calc_arena(const float (*coords)[2],
@@ -38,4 +42,8 @@ void BLI_polyfill_calc(const float (*coords)[2],
 /* default size of polyfill arena */
 #define BLI_POLYFILL_ARENA_SIZE MEM_SIZE_OPTIMAL(1 << 14)
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __BLI_POLYFILL_2D_H__ */
index 042cb7e0ea980252a9dcd6e634e91fe6e836b589..94c4b412225c1e51a7bfc154cda177179029a031 100644 (file)
  * \ingroup bli
  */
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 struct Heap;
 struct MemArena;
 
@@ -44,4 +48,8 @@ float BLI_polyfill_beautify_quad_rotate_calc_ex(const float v1[2],
 /* avoid realloc's when creating new structures for polyfill ngons */
 #define BLI_POLYFILL_ALLOC_NGON_RESERVE 64
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __BLI_POLYFILL_2D_BEAUTIFY_H__ */
index 787e863049354204f81fe2dea54d048b614e8347..1383a19ed1f3c9e812ed2ddcb93c2ed168b7ea03 100644 (file)
  * \ingroup bli
  */
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 typedef struct Quadric {
   double a2, ab, ac, ad, b2, bc, bd, c2, cd, d2;
 } Quadric;
@@ -43,4 +47,8 @@ void BLI_quadric_mul(Quadric *a, const double scalar);
 double BLI_quadric_evaluate(const Quadric *q, const double v[3]);
 bool BLI_quadric_optimize(const Quadric *q, double v[3], const double epsilon);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __BLI_QUADRIC_H__ */
index 083c4c411d4912120fac20f3e21da2abfe065d8e..cb0330d1bad97d7b1b44dcd03021cb712a61291c 100644 (file)
 
 #include "BLI_compiler_attrs.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 typedef struct {
   uintptr_t key;
   void *val;
@@ -74,4 +78,8 @@ void **BLI_smallhash_iternew_p(const SmallHash *sh, SmallHashIter *iter, uintptr
 double BLI_smallhash_calc_quality(SmallHash *sh);
 #endif
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __BLI_SMALLHASH_H__ */
index 055ee26ef5f92c8ab7be1d42388f502056fc52db..9c99f893a1fe3df7c742eac801064c29d0e0b772 100644 (file)
  * \ingroup bli
  */
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /**
  * \note keep \a sort_value first,
  * so cmp functions can be reused.
@@ -57,4 +61,8 @@ int BLI_sortutil_cmp_int_reverse(const void *a_, const void *b_);
 int BLI_sortutil_cmp_ptr(const void *a_, const void *b_);
 int BLI_sortutil_cmp_ptr_reverse(const void *a_, const void *b_);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __BLI_SORT_UTILS_H__ */
index a54089ad8d641680e4e25e8ae2b655d2e36a0cfa..f8afff214a363ec5c4fd816e3a08a4e69c6ab57a 100644 (file)
  * \ingroup bli
  */
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 typedef enum eStrCursorJumpType {
   STRCUR_JUMP_NONE,
   STRCUR_JUMP_DELIM,
@@ -52,4 +56,8 @@ void BLI_str_cursor_step_utf32(const char32_t *str,
                                eStrCursorJumpType jump,
                                bool use_init_step);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __BLI_STRING_CURSOR_UTF8_H__ */
index ae514274a686ceecd1d193b079650e5d5de5a02f..d3c6803130af2f53f9cb4bf9dd95e8833fff06c0 100644 (file)
 
 #include "BLI_compiler_attrs.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 size_t BLI_timecode_string_from_time(char *str,
                                      const size_t len,
                                      const int brevity_level,
@@ -42,4 +46,8 @@ size_t BLI_timecode_string_from_time_seconds(char *str,
                                              const int brevity_level,
                                              const float time_seconds) ATTR_NONNULL();
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __BLI_TIMECODE_H__ */
index 56cafb1bd36f7e494af113a165df692e72b07d50..144fcd0a0d7601bd600e6c4173864846cf05558a 100644 (file)
  * \ingroup BLI
  */
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /* ret < 0: the timer will be removed.
  * ret >= 0: the timer will be called again in ret seconds */
 typedef double (*BLI_timer_func)(uintptr_t uuid, void *user_data);
@@ -54,4 +58,8 @@ void BLI_timer_free(void);
  * is properly configured for the new file. */
 void BLI_timer_on_file_load(void);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __BLI_TIMER_H__ */
index b5ed95f72c7089ed312699f4b2d5a5f8d433c618..8a33ea6961cbfc1df8c8aff8927a61bc6b560d98 100644 (file)
  * \ingroup bli
  */
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 struct Object;
 struct ProjCameraInfo;
 
@@ -46,4 +50,8 @@ void BLI_uvproject_from_view_ortho(float target[2], float source[3], float rotma
 /* so we can adjust scale with keeping the struct private */
 void BLI_uvproject_camera_info_scale(struct ProjCameraInfo *uci, float scale_x, float scale_y);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif
index 7fa7cab1ff75d24da9f8affa771f51efd7da0f4a..047a72ec59a57f0e07652dd3615e25683796f7a0 100644 (file)
 
 #include "DNA_listBase.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 struct PackedFile;
 struct VFont;
 
@@ -52,4 +56,8 @@ VFontData *BLI_vfontdata_copy(const VFontData *vfont_src, const int flag);
 VChar *BLI_vfontchar_from_freetypefont(struct VFont *vfont, unsigned long character);
 VChar *BLI_vfontchar_copy(const VChar *vchar_src, const int flag);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif
index fd457dc1a9a3afb34db3fb82197ae44681cdb929..947b120f51ae5c15bf8f5e170b5827d62ea833f4 100644 (file)
@@ -26,6 +26,10 @@ struct ListBase;
  * \ingroup bli
  */
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 typedef struct VoronoiSite {
   float co[2];
   float color[3];
@@ -74,4 +78,8 @@ void BLI_voronoi_triangulate(const VoronoiSite *sites,
                              int (**triangles_r)[3],
                              int *triangles_total_r);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __BLI_VORONOI_2D_H__ */
index ef210a82a659116ca2ce86c0fcca9ad19972e7c6..220ab9b3705780849ec8d1b4d370b3f46649053a 100644 (file)
  * \ingroup bli
  */
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /** Find the index number of a voxel, given x/y/z integer coords and resolution vector. */
 
 #define BLI_VOXEL_INDEX(x, y, z, res) \
@@ -36,4 +40,8 @@ float BLI_voxel_sample_trilinear(float *data, const int res[3], const float co[3
 float BLI_voxel_sample_triquadratic(float *data, const int res[3], const float co[3]);
 float BLI_voxel_sample_tricubic(float *data, const int res[3], const float co[3], int bspline);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __BLI_VOXEL_H__ */