Merged changes in the trunk up to revision 42116.
[blender.git] / source / blender / blenkernel / BKE_mesh.h
index 02d52e10fa5be7edea4b853f1a20645c29b68b81..900835940c7b68e5b037ef25da1c7fa95c78e6f5 100644 (file)
@@ -1,8 +1,4 @@
-/**
- * blenlib/BKE_mesh.h (mar-2001 nzc)
- *     
- * $Id$ 
- *
+/*
  * ***** BEGIN GPL LICENSE BLOCK *****
  *
  * This program is free software; you can redistribute it and/or
  *
  * The Original Code is: all of this file.
  *
- * Contributor(s): none yet.
+ * Contributor(s): (mar-2001 nzc)
  *
  * ***** END GPL LICENSE BLOCK *****
  */
 #ifndef BKE_MESH_H
 #define BKE_MESH_H
 
+/** \file BKE_mesh.h
+ *  \ingroup bke
+ */
+
 /***/
 
 struct BoundBox;
@@ -62,7 +62,6 @@ void free_mesh(struct Mesh *me);
 struct Mesh *add_mesh(const char *name);
 struct Mesh *copy_mesh(struct Mesh *me);
 void mesh_update_customdata_pointers(struct Mesh *me);
-void make_local_tface(struct Mesh *me);
 void make_local_mesh(struct Mesh *me);
 void boundbox_mesh(struct Mesh *me, float *loc, float *size);
 void tex_space_mesh(struct Mesh *me);
@@ -81,7 +80,7 @@ void nurbs_to_mesh(struct Object *ob);
 void mesh_to_curve(struct Scene *scene, struct Object *ob);
 void free_dverts(struct MDeformVert *dvert, int totvert);
 void copy_dverts(struct MDeformVert *dst, struct MDeformVert *src, int totvert); /* __NLA */
-void mesh_delete_material_index(struct Mesh *me, int index);
+void mesh_delete_material_index(struct Mesh *me, short index);
 void mesh_set_smooth_flag(struct Object *meshOb, int enableSmooth);
 
 struct BoundBox *mesh_get_bb(struct Object *ob);
@@ -96,7 +95,7 @@ void mesh_strip_loose_edges(struct Mesh *me);
        /* Calculate vertex and face normals, face normals are returned in *faceNors_r if non-NULL
         * and vertex normals are stored in actual mverts.
         */
-void mesh_calc_normals(struct MVert *mverts, int numVerts, struct MFace *mfaces, int numFaces, float **faceNors_r);
+void mesh_calc_normals(struct MVert *mverts, int numVerts, struct MFace *mfaces, int numFaces, float (*faceNors_r)[3]);
 
        /* Return a newly MEM_malloc'd array of all the mesh vertex locations
         * (_numVerts_r_ may be NULL) */
@@ -129,9 +128,9 @@ typedef struct IndexNode {
        int index;
 } IndexNode;
 void create_vert_face_map(ListBase **map, IndexNode **mem, const struct MFace *mface,
-                         const int totvert, const int totface);
+                          const int totvert, const int totface);
 void create_vert_edge_map(ListBase **map, IndexNode **mem, const struct MEdge *medge,
-                         const int totvert, const int totedge);
+                          const int totvert, const int totedge);
 
 /* Partial Mesh Visibility */
 struct PartialVisibility *mesh_pmv_copy(struct PartialVisibility *);
@@ -152,12 +151,14 @@ int mesh_center_bounds(struct Mesh *me, float cent[3]);
 void mesh_translate(struct Mesh *me, float offset[3], int do_keys);
 
 /* mesh_validate.c */
-int BKE_mesh_validate_arrays(struct Mesh *me, struct MVert *mverts, int totvert, struct MEdge *medges, int totedge, struct MFace *mfaces, int totface, const short do_verbose, const short do_fixes);
+int BKE_mesh_validate_arrays(struct Mesh *me, struct MVert *mverts, unsigned int totvert, struct MEdge *medges, unsigned int totedge, struct MFace *mfaces, unsigned int totface, const short do_verbose, const short do_fixes);
 int BKE_mesh_validate(struct Mesh *me, int do_verbose);
 int BKE_mesh_validate_dm(struct DerivedMesh *dm);
 
 void BKE_mesh_calc_edges(struct Mesh *mesh, int update);
 
+void BKE_mesh_ensure_navmesh(struct Mesh *me);
+
 #ifdef __cplusplus
 }
 #endif