style cleanup / comment formatting for bli/bke/bmesh
[blender.git] / source / blender / blenkernel / BKE_customdata.h
index 72e803011325b4d412f9f359b078942f51d5faa2..67b8668348f69a406fd93ba9ff108e9fd11f3e47 100644 (file)
  *  \brief CustomData interface, see also DNA_customdata_types.h.
  */
 
-#ifndef BKE_CUSTOMDATA_H
-#define BKE_CUSTOMDATA_H
+#ifndef __BKE_CUSTOMDATA_H__
+#define __BKE_CUSTOMDATA_H__
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
+#include "../blenloader/BLO_sys_types.h" /* XXX, should have a more generic include for this */
+
 struct BMesh;
 struct ID;
 struct CustomData;
 struct CustomDataLayer;
-typedef unsigned int CustomDataMask;
+typedef uint64_t CustomDataMask;
 
 /*a data type large enough to hold 1 element from any customdata layer type*/
 typedef struct {unsigned char data[64];} CDBlockBytes;
@@ -69,14 +71,16 @@ extern const CustomDataMask CD_MASK_FACECORNERS;
 #define CD_DUPLICATE 4  /* do a full copy of all layers, only allowed if source
                                                   has same number of elements */
 
+#define CD_TYPE_AS_MASK(_type) (CustomDataMask)((CustomDataMask)1 << (CustomDataMask)(_type))
+
 /* Checks if the layer at physical offset layern (in data->layers) support math
  * the below operations.
  */
 int CustomData_layer_has_math(struct CustomData *data, int layern);
 
-/*copies the "value" (e.g. mloopuv uv or mloopcol colors) from one block to
-  another, while not overwriting anything else (e.g. flags).  probably only
-  implemented for mloopuv/mloopcol, for now.*/
+/* copies the "value" (e.g. mloopuv uv or mloopcol colors) from one block to
* another, while not overwriting anything else (e.g. flags).  probably only
* implemented for mloopuv/mloopcol, for now.*/
 void CustomData_data_copy_value(int type, void *source, void *dest);
 
 /* compares if data1 is equal to data2.  type is a valid CustomData type
@@ -102,11 +106,11 @@ void CustomData_update_typemap(struct CustomData *data);
 void CustomData_merge(const struct CustomData *source, struct CustomData *dest,
                                          CustomDataMask mask, int alloctype, int totelem);
 
-/*bmesh version of CustomData_merge; merges the layouts of source and dest,
-  then goes through the mesh and makes sure all the customdata blocks are
-  consistent with the new layout.*/
+/* bmesh version of CustomData_merge; merges the layouts of source and dest,
* then goes through the mesh and makes sure all the customdata blocks are
* consistent with the new layout.*/
 void CustomData_bmesh_merge(struct CustomData *source, struct CustomData *dest, 
-                            int mask, int alloctype, struct BMesh *bm, int type);
+                            int mask, int alloctype, struct BMesh *bm, const char htype);
 
 /* frees data associated with a CustomData object (doesn't free the object
  * itself, though)
@@ -174,13 +178,9 @@ void CustomData_copy_data(const struct CustomData *source,
                                                  struct CustomData *dest, int source_index,
                                                  int dest_index, int count);
 void CustomData_copy_elements(int type, void *source, void *dest, int count);
-void CustomData_em_copy_data(const struct CustomData *source,
-                                                       struct CustomData *dest, void *src_block,
-                                                       void **dest_block);
 void CustomData_bmesh_copy_data(const struct CustomData *source, 
-                               struct CustomData *dest, void *src_block, 
-                               void **dest_block);
-void CustomData_em_validate_data(struct CustomData *data, void *block, int sub_elements);
+                                struct CustomData *dest, void *src_block, 
+                                void **dest_block);
 
 /* frees data in a CustomData object
  * return 1 on success, 0 on failure
@@ -204,17 +204,14 @@ void CustomData_free_elem(struct CustomData *data, int index, int count);
 void CustomData_interp(const struct CustomData *source, struct CustomData *dest,
                                           int *src_indices, float *weights, float *sub_weights,
                                           int count, int dest_index);
-void CustomData_em_interp(struct CustomData *data,  void **src_blocks,
-                                                 float *weights, float *sub_weights, int count,
-                                                 void *dest_block);
 void CustomData_bmesh_interp(struct CustomData *data, void **src_blocks, 
                                                         float *weights, float *sub_weights, int count, 
                                                         void *dest_block);
 
 
 /* swaps the data in the element corners, to new corners with indices as
  specified in corner_indices. for edges this is an array of length 2, for
  faces an array of length 4 */
* specified in corner_indices. for edges this is an array of length 2, for
* faces an array of length 4 */
 void CustomData_swap(struct CustomData *data, int index, const int *corner_indices);
 
 /* gets a pointer to the data element at index from the first layer of type
@@ -222,8 +219,6 @@ void CustomData_swap(struct CustomData *data, int index, const int *corner_indic
  */
 void *CustomData_get(const struct CustomData *data, int index, int type);
 void *CustomData_get_n(const struct CustomData *data, int type, int index, int n);
-void *CustomData_em_get(const struct CustomData *data, void *block, int type);
-void *CustomData_em_get_n(const struct CustomData *data, void *block, int type, int n);
 void *CustomData_bmesh_get(const struct CustomData *data, void *block, int type);
 void *CustomData_bmesh_get_n(const struct CustomData *data, void *block, int type, int n);
 
@@ -259,10 +254,6 @@ int CustomData_get_stencil_layer(const struct CustomData *data, int type);
  */
 void CustomData_set(const struct CustomData *data, int index, int type,
                                        void *source);
-void CustomData_em_set(struct CustomData *data, void *block, int type,
-                                          void *source);
-void CustomData_em_set_n(struct CustomData *data, void *block, int type, int n,
-                                                void *source);
 
 void CustomData_bmesh_set(const struct CustomData *data, void *block, int type, 
                                                  void *source);
@@ -296,19 +287,11 @@ void CustomData_set_layer_stencil_index(struct CustomData *data, int type, int n
 /* adds flag to the layer flags */
 void CustomData_set_layer_flag(struct CustomData *data, int type, int flag);
 
-/* alloc/free a block of custom data attached to one element in editmode */
-void CustomData_em_set_default(struct CustomData *data, void **block);
-void CustomData_em_free_block(struct CustomData *data, void **block);
-
 void CustomData_bmesh_set_default(struct CustomData *data, void **block);
 void CustomData_bmesh_free_block(struct CustomData *data, void **block);
 
 /* copy custom data to/from layers as in mesh/derivedmesh, to editmesh
-   blocks of data. the CustomData's must not be compatible  */
-void CustomData_to_em_block(const struct CustomData *source,
-                                                       struct CustomData *dest, int index, void **block);
-void CustomData_from_em_block(const struct CustomData *source,
-                                                         struct CustomData *dest, void *block, int index);
+ * blocks of data. the CustomData's must not be compatible */
 void CustomData_to_bmesh_block(const struct CustomData *source, 
                                                        struct CustomData *dest, int src_index, void **dest_block);
 void CustomData_from_bmesh_block(const struct CustomData *source, 
@@ -328,7 +311,7 @@ void CustomData_set_layer_unique_name(struct CustomData *data, int index);
 void CustomData_validate_layer_name(const struct CustomData *data, int type, char *name, char *outname);
 
 /* for file reading compatibility, returns false if the layer was freed,
  only after this test passes, layer->data should be assigned */
* only after this test passes, layer->data should be assigned */
 int CustomData_verify_versions(struct CustomData *data, int index);
 
 /*BMesh specific customdata stuff*/
@@ -336,7 +319,7 @@ void CustomData_to_bmeshpoly(struct CustomData *fdata, struct CustomData *pdata,
                              struct CustomData *ldata, int totloop, int totpoly);
 void CustomData_from_bmeshpoly(struct CustomData *fdata, struct CustomData *pdata, struct CustomData *ldata, int total);
 void CustomData_bmesh_update_active_layers(struct CustomData *fdata, struct CustomData *pdata, struct CustomData *ldata);
-void CustomData_bmesh_init_pool(struct CustomData *data, int allocsize);
+void CustomData_bmesh_init_pool(struct CustomData *data, int totelem, const char htype);
 
 /* External file storage */