fix potential crasher: malloc->calloc
[blender.git] / source / blender / blenkernel / BKE_deform.h
index e7494f28fc446347ba0e3c2825990d2309b617e7..53f474aa97247e304d8b94044f9788174c530d92 100644 (file)
@@ -1,20 +1,17 @@
 /*  BKE_deform.h   June 2001
  *  
- *  support for deformation groups
+ *  support for deformation groups and hooks
  * 
- *     Reevan McKay
+ *     Reevan McKay et al
  *
  * $Id$
  *
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
  * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License.  See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -23,7 +20,7 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
  * All rights reserved.
@@ -32,7 +29,7 @@
  *
  * Contributor(s): none yet.
  *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
  */
 
 #ifndef BKE_DEFORM_H
 struct Object;
 struct ListBase;
 struct bDeformGroup;
+struct MDeformVert;
 
-void copy_defgroups (struct ListBase *lb1, struct ListBase *lb2);
-struct bDeformGroup* copy_defgroup (struct bDeformGroup *ingroup);
-void color_temperature (float input, unsigned char *r, unsigned char *g, unsigned char *b);
+void                            defgroup_copy_list(struct ListBase *lb1, struct ListBase *lb2);
+struct bDeformGroup *defgroup_duplicate(struct bDeformGroup *ingroup);
+struct bDeformGroup *defgroup_find_name(struct Object *ob, const char *name);
+int                                     defgroup_find_index(struct Object *ob, struct bDeformGroup *dg);
+int                                    *defgroup_flip_map(struct Object *ob, int use_default);
+int                                     defgroup_flip_index(struct Object *ob, int index, int use_default);
+int                                     defgroup_name_index(struct Object *ob, const char *name);
+void                            defgroup_unique_name(struct bDeformGroup *dg, struct Object *ob);
+
+struct MDeformWeight   *defvert_find_index(const struct MDeformVert *dv, int defgroup);
+struct MDeformWeight   *defvert_verify_index(struct MDeformVert *dv, int defgroup);
+
+float  defvert_find_weight(const struct MDeformVert *dvert, int group_num);
+float  defvert_array_find_weight_safe(const struct MDeformVert *dvert, int index, int group_num);
+
+void defvert_copy(struct MDeformVert *dvert_r, const struct MDeformVert *dvert);
+void defvert_sync(struct MDeformVert *dvert_r, const struct MDeformVert *dvert, int use_verify);
+void defvert_sync_mapped(struct MDeformVert *dvert_r, const struct MDeformVert *dvert, int *flip_map, int use_verify);
+void defvert_remap (struct MDeformVert *dvert, int *map);
+void defvert_flip(struct MDeformVert *dvert, int *flip_map);
+void defvert_normalize(struct MDeformVert *dvert);
+
+/* utility function, note that 32 chars is the maximum string length since its only
+ * used with defgroups currently */
+void flip_side_name(char *name, const char *from_name, int strip_number);
 
 #endif