Some options used for "expert" x264 setup were removed from FFmpeg 0.11
[blender.git] / source / blender / blenkernel / intern / deform.c
index 3e0c947ff4a544926252083a5b49b0517d05bb85..547a64a70d416f382a18b4f86c940fcc82035c9a 100644 (file)
@@ -251,7 +251,7 @@ void defvert_flip(MDeformVert *dvert, const int *flip_map, const int flip_map_le
        MDeformWeight *dw;
        int i;
 
        MDeformWeight *dw;
        int i;
 
-       for (dw = dvert->dw, i = 0; i<dvert->totweight; dw++, i++) {
+       for (dw = dvert->dw, i = 0; i < dvert->totweight; dw++, i++) {
                if (dw->def_nr < flip_map_len) {
                        if (flip_map[dw->def_nr] >= 0) {
                                dw->def_nr = flip_map[dw->def_nr];
                if (dw->def_nr < flip_map_len) {
                        if (flip_map[dw->def_nr] >= 0) {
                                dw->def_nr = flip_map[dw->def_nr];
@@ -424,24 +424,64 @@ static int defgroup_find_name_dupe(const char *name, bDeformGroup *dg, Object *o
 
 static int defgroup_unique_check(void *arg, const char *name)
 {
 
 static int defgroup_unique_check(void *arg, const char *name)
 {
-       struct {Object *ob; void *dg;} *data = arg;
+       struct {Object *ob; void *dg; } *data = arg;
        return defgroup_find_name_dupe(name, data->dg, data->ob);
 }
 
 void defgroup_unique_name(bDeformGroup *dg, Object *ob)
 {
        return defgroup_find_name_dupe(name, data->dg, data->ob);
 }
 
 void defgroup_unique_name(bDeformGroup *dg, Object *ob)
 {
-       struct {Object *ob; void *dg;} data;
+       struct {Object *ob; void *dg; } data;
        data.ob = ob;
        data.dg = dg;
 
        BLI_uniquename_cb(defgroup_unique_check, &data, "Group", '.', dg->name, sizeof(dg->name));
 }
 
        data.ob = ob;
        data.dg = dg;
 
        BLI_uniquename_cb(defgroup_unique_check, &data, "Group", '.', dg->name, sizeof(dg->name));
 }
 
-BLI_INLINE int is_char_sep(const char c)
+static int is_char_sep(const char c)
 {
        return ELEM4(c, '.', ' ', '-', '_');
 }
 
 {
        return ELEM4(c, '.', ' ', '-', '_');
 }
 
+/* based on BLI_split_dirfile() / os.path.splitext(), "a.b.c" -> ("a.b", ".c") */
+
+void BKE_deform_split_suffix(const char string[MAX_VGROUP_NAME], char body[MAX_VGROUP_NAME], char suf[MAX_VGROUP_NAME])
+{
+       size_t len = BLI_strnlen(string, MAX_VGROUP_NAME);
+       size_t i;
+
+       body[0] = suf[0] = '\0';
+
+       for (i = len - 1; i > 1; i--) {
+               if (is_char_sep(string[i])) {
+                       BLI_strncpy(body, string, i + 1);
+                       BLI_strncpy(suf, string + i,  (len + 1) - i);
+                       return;
+               }
+       }
+
+       BLI_strncpy(body, string, len);
+}
+
+/* "a.b.c" -> ("a.", "b.c") */
+void BKE_deform_split_prefix(const char string[MAX_VGROUP_NAME], char pre[MAX_VGROUP_NAME], char body[MAX_VGROUP_NAME])
+{
+       size_t len = BLI_strnlen(string, MAX_VGROUP_NAME);
+       size_t i;
+
+       body[0] = pre[0] = '\0';
+
+       for (i = 1; i < len; i++) {
+               if (is_char_sep(string[i])) {
+                       i++;
+                       BLI_strncpy(pre, string, i + 1);
+                       BLI_strncpy(body, string + i, (len + 1) - i);
+                       return;
+               }
+       }
+
+       BLI_strncpy(body, string, len);
+}
+
 /* finds the best possible flipped name. For renaming; check for unique names afterwards */
 /* if strip_number: removes number extensions
  * note: don't use sizeof() for 'name' or 'from_name' */
 /* finds the best possible flipped name. For renaming; check for unique names afterwards */
 /* if strip_number: removes number extensions
  * note: don't use sizeof() for 'name' or 'from_name' */
@@ -466,7 +506,7 @@ void flip_side_name(char name[MAX_VGROUP_NAME], const char from_name[MAX_VGROUP_
        /* We first check the case with a .### extension, let's find the last period */
        if (isdigit(name[len - 1])) {
                index = strrchr(name, '.'); // last occurrence
        /* We first check the case with a .### extension, let's find the last period */
        if (isdigit(name[len - 1])) {
                index = strrchr(name, '.'); // last occurrence
-               if (index && isdigit(index[1]) ) { // doesnt handle case bone.1abc2 correct..., whatever!
+               if (index && isdigit(index[1])) { // doesnt handle case bone.1abc2 correct..., whatever!
                        if (strip_number == 0) {
                                BLI_strncpy(number, index, sizeof(number));
                        }
                        if (strip_number == 0) {
                                BLI_strncpy(number, index, sizeof(number));
                        }
@@ -478,7 +518,7 @@ void flip_side_name(char name[MAX_VGROUP_NAME], const char from_name[MAX_VGROUP_
        BLI_strncpy(prefix, name, sizeof(prefix));
 
        /* first case; separator . - _ with extensions r R l L  */
        BLI_strncpy(prefix, name, sizeof(prefix));
 
        /* first case; separator . - _ with extensions r R l L  */
-       if (is_char_sep(name[len - 2]) ) {
+       if (is_char_sep(name[len - 2])) {
                switch (name[len - 1]) {
                        case 'l':
                                prefix[len - 1] = 0;
                switch (name[len - 1]) {
                        case 'l':
                                prefix[len - 1] = 0;
@@ -498,8 +538,8 @@ void flip_side_name(char name[MAX_VGROUP_NAME], const char from_name[MAX_VGROUP_
                                break;
                }
        }
                                break;
                }
        }
-       /* case; beginning with r R l L , with separator after it */
-       else if (is_char_sep(name[1]) ) {
+       /* case; beginning with r R l L, with separator after it */
+       else if (is_char_sep(name[1])) {
                switch (name[0]) {
                        case 'l':
                                strcpy(replace, "r");
                switch (name[0]) {
                        case 'l':
                                strcpy(replace, "r");
@@ -555,7 +595,7 @@ void flip_side_name(char name[MAX_VGROUP_NAME], const char from_name[MAX_VGROUP_
                }
        }
 
                }
        }
 
-       BLI_snprintf (name, MAX_VGROUP_NAME, "%s%s%s%s", prefix, replace, suffix, number);
+       BLI_snprintf(name, MAX_VGROUP_NAME, "%s%s%s%s", prefix, replace, suffix, number);
 }
 
 float defvert_find_weight(const struct MDeformVert *dvert, const int defgroup)
 }
 
 float defvert_find_weight(const struct MDeformVert *dvert, const int defgroup)
@@ -670,7 +710,7 @@ void defvert_remove_group(MDeformVert *dvert, MDeformWeight *dw)
                if (dvert->totweight) {
                        dw_new = MEM_mallocN(sizeof(MDeformWeight) * (dvert->totweight), __func__);
                        if (dvert->dw) {
                if (dvert->totweight) {
                        dw_new = MEM_mallocN(sizeof(MDeformWeight) * (dvert->totweight), __func__);
                        if (dvert->dw) {
-#if 1                  /* since we don't care about order, swap this with the last, save a memcpy */
+#if 1           /* since we don't care about order, swap this with the last, save a memcpy */
                                if (i != dvert->totweight) {
                                        dvert->dw[i] = dvert->dw[dvert->totweight];
                                }
                                if (i != dvert->totweight) {
                                        dvert->dw[i] = dvert->dw[dvert->totweight];
                                }