[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [44784] trunk/blender/source/blender/ blenkernel/intern/unit.c: style cleanup: unit code
Campbell Barton
ideasman42 at gmail.com
Sat Mar 10 15:21:06 CET 2012
Revision: 44784
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=44784
Author: campbellbarton
Date: 2012-03-10 14:20:55 +0000 (Sat, 10 Mar 2012)
Log Message:
-----------
style cleanup: unit code
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/intern/unit.c
Modified: trunk/blender/source/blender/blenkernel/intern/unit.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/unit.c 2012-03-10 12:26:32 UTC (rev 44783)
+++ trunk/blender/source/blender/blenkernel/intern/unit.c 2012-03-10 14:20:55 UTC (rev 44784)
@@ -35,7 +35,6 @@
#include "BLI_string.h"
#include "BLI_winstuff.h"
-
#define TEMP_STR_SIZE 256
#define SEP_CHR '#'
@@ -76,15 +75,15 @@
/* define a single unit */
typedef struct bUnitDef {
const char *name;
- const char *name_plural; /* abused a bit for the display name */
- const char *name_short; /* this is used for display*/
- const char *name_alt; /* keyboard-friendly ASCII-only version of name_short, can be NULL */
- /* if name_short has non-ASCII chars, name_alt should be present */
-
- const char *name_display; /* can be NULL */
+ const char *name_plural; /* abused a bit for the display name */
+ const char *name_short; /* this is used for display*/
+ const char *name_alt; /* keyboard-friendly ASCII-only version of name_short, can be NULL */
+ /* if name_short has non-ASCII chars, name_alt should be present */
+ const char *name_display; /* can be NULL */
+
double scalar;
- double bias; /* not used yet, needed for converting temperature */
+ double bias; /* not used yet, needed for converting temperature */
int flag;
} bUnitDef;
@@ -94,19 +93,15 @@
/* define a single unit */
typedef struct bUnitCollection {
struct bUnitDef *units;
- int base_unit; /* basic unit index (when user doesn't specify unit explicitly) */
- int flag; /* options for this system */
- int length; /* to quickly find the last item */
+ int base_unit; /* basic unit index (when user doesn't specify unit explicitly) */
+ int flag; /* options for this system */
+ int length; /* to quickly find the last item */
} bUnitCollection;
/* Dummy */
-static struct bUnitDef buDummyDef[] = {
- {"", NULL, "", NULL, NULL, 1.0, 0.0},
- {NULL, NULL, NULL, NULL, NULL, 0.0, 0.0}
-};
+static struct bUnitDef buDummyDef[] = { {"", NULL, "", NULL, NULL, 1.0, 0.0}, {NULL, NULL, NULL, NULL, NULL, 0.0, 0.0}};
static struct bUnitCollection buDummyCollecton = {buDummyDef, 0, 0, sizeof(buDummyDef)};
-
/* Lengths */
static struct bUnitDef buMetricLenDef[] = {
{"kilometer", "kilometers", "km", NULL, "Kilometers", UN_SC_KM, 0.0, B_UNIT_DEF_NONE},
@@ -292,85 +287,83 @@
static bUnitDef *unit_best_fit(double value, bUnitCollection *usys, bUnitDef *unit_start, int suppress)
{
bUnitDef *unit;
- double value_abs= value>0.0?value:-value;
+ double value_abs = value > 0.0 ? value : -value;
- for (unit= unit_start ? unit_start:usys->units; unit->name; unit++) {
+ for (unit = unit_start ? unit_start : usys->units; unit->name; unit++) {
if (suppress && (unit->flag & B_UNIT_DEF_SUPPRESS))
continue;
/* scale down scalar so 1cm doesnt convert to 10mm because of float error */
- if (value_abs >= unit->scalar*(1.0-EPS))
+ if (value_abs >= unit->scalar * (1.0 - EPS))
return unit;
}
return unit_default(usys);
}
-
-
/* convert into 2 units and 2 values for "2ft, 3inch" syntax */
-static void unit_dual_convert(double value, bUnitCollection *usys,
- bUnitDef **unit_a, bUnitDef **unit_b, double *value_a, double *value_b)
+static void unit_dual_convert(double value, bUnitCollection *usys, bUnitDef **unit_a, bUnitDef **unit_b,
+ double *value_a, double *value_b)
{
- bUnitDef *unit= unit_best_fit(value, usys, NULL, 1);
+ bUnitDef *unit = unit_best_fit(value, usys, NULL, 1);
- *value_a= (value < 0.0 ? ceil:floor)(value/unit->scalar) * unit->scalar;
- *value_b= value - (*value_a);
+ *value_a = (value < 0.0 ? ceil : floor)(value / unit->scalar) * unit->scalar;
+ *value_b = value - (*value_a);
- *unit_a= unit;
- *unit_b= unit_best_fit(*value_b, usys, *unit_a, 1);
+ *unit_a = unit;
+ *unit_b = unit_best_fit(*value_b, usys, *unit_a, 1);
}
static int unit_as_string(char *str, int len_max, double value, int prec, bUnitCollection *usys,
- /* non exposed options */
- bUnitDef *unit, char pad)
+ /* non exposed options */
+ bUnitDef *unit, char pad)
{
double value_conv;
int len, i;
-
+
if (unit) {
/* use unit without finding the best one */
}
else if (value == 0.0) {
/* use the default units since there is no way to convert */
- unit= unit_default(usys);
+ unit = unit_default(usys);
}
else {
- unit= unit_best_fit(value, usys, NULL, 1);
+ unit = unit_best_fit(value, usys, NULL, 1);
}
- value_conv= value/unit->scalar;
+ value_conv = value / unit->scalar;
/* Convert to a string */
{
- len= BLI_snprintf(str, len_max, "%.*f", prec, value_conv);
+ len = BLI_snprintf(str, len_max, "%.*f", prec, value_conv);
if (len >= len_max)
- len= len_max;
+ len = len_max;
}
-
+
/* Add unit prefix and strip zeros */
/* replace trailing zero's with spaces
* so the number is less complicated but allignment in a button wont
* jump about while dragging */
- i= len-1;
+ i = len - 1;
- while(i>0 && str[i]=='0') { /* 4.300 -> 4.3 */
- str[i--]= pad;
+ while (i > 0 && str[i] == '0') { /* 4.300 -> 4.3 */
+ str[i--] = pad;
}
- if (i>0 && str[i]=='.') { /* 10. -> 10 */
- str[i--]= pad;
+ if (i > 0 && str[i] == '.') { /* 10. -> 10 */
+ str[i--] = pad;
}
-
+
/* Now add the suffix */
- if (i<len_max) {
- int j=0;
+ if (i < len_max) {
+ int j = 0;
i++;
- while(unit->name_short[j] && (i < len_max)) {
- str[i++]= unit->name_short[j++];
+ while (unit->name_short[j] && (i < len_max)) {
+ str[i++] = unit->name_short[j++];
}
if (pad) {
@@ -378,64 +371,62 @@
* the unit name only used padded chars,
* In that case add padding for the name. */
- while(i<=len+j && (i < len_max)) {
- str[i++]= pad;
+ while (i <= len + j && (i < len_max)) {
+ str[i++] = pad;
}
}
}
/* terminate no matter whats done with padding above */
if (i >= len_max)
- i= len_max-1;
+ i = len_max - 1;
str[i] = '\0';
return i;
}
-
/* Used for drawing number buttons, try keep fast */
void bUnit_AsString(char *str, int len_max, double value, int prec, int system, int type, int split, int pad)
{
bUnitCollection *usys = unit_get_system(system, type);
- if (usys==NULL || usys->units[0].name==NULL)
- usys= &buDummyCollecton;
-
+ if (usys == NULL || usys->units[0].name == NULL)
+ usys = &buDummyCollecton;
+
/* split output makes sense only for length, mass and time */
- if (split && (type==B_UNIT_LENGTH || type==B_UNIT_MASS || type==B_UNIT_TIME)) {
+ if (split && (type == B_UNIT_LENGTH || type == B_UNIT_MASS || type == B_UNIT_TIME)) {
bUnitDef *unit_a, *unit_b;
double value_a, value_b;
- unit_dual_convert(value, usys, &unit_a, &unit_b, &value_a, &value_b);
+ unit_dual_convert(value, usys, &unit_a, &unit_b, &value_a, &value_b);
/* check the 2 is a smaller unit */
if (unit_b > unit_a) {
- int i= unit_as_string(str, len_max, value_a, prec, usys, unit_a, '\0');
+ int i = unit_as_string(str, len_max, value_a, prec, usys, unit_a, '\0');
/* is there enough space for at least 1 char of the next unit? */
- if (i+2 < len_max) {
- str[i++]= ' ';
+ if (i + 2 < len_max) {
+ str[i++] = ' ';
/* use low precision since this is a smaller unit */
- unit_as_string(str+i, len_max-i, value_b, prec?1:0, usys, unit_b, '\0');
+ unit_as_string(str + i, len_max - i, value_b, prec ? 1 : 0, usys, unit_b, '\0');
}
return;
}
}
- unit_as_string(str, len_max, value, prec, usys, NULL, pad?' ':'\0');
+ unit_as_string(str, len_max, value, prec, usys, NULL, pad ? ' ' : '\0');
}
-
static const char *unit_find_str(const char *str, const char *substr)
{
const char *str_found;
if (substr && substr[0] != '\0') {
- str_found= strstr(str, substr);
+ str_found = strstr(str, substr);
if (str_found) {
/* previous char cannot be a letter */
- if (str_found == str || isalpha(*(str_found-1))==0) {
+ if (str_found == str || isalpha(*(str_found-1)) == 0) {
/* next char cannot be alphanum */
int len_name = strlen(substr);
@@ -462,60 +453,60 @@
/* not too strict, (- = * /) are most common */
static int ch_is_op(char op)
{
- switch(op) {
- case '+':
- case '-':
- case '*':
- case '/':
- case '|':
- case '&':
- case '~':
- case '<':
- case '>':
- case '^':
- case '!':
- case '=':
- case '%':
- return 1;
- default:
- return 0;
+ switch (op) {
+ case '+':
+ case '-':
+ case '*':
+ case '/':
+ case '|':
+ case '&':
+ case '~':
+ case '<':
+ case '>':
+ case '^':
+ case '!':
+ case '=':
+ case '%':
+ return 1;
+ default:
+ return 0;
}
}
-static int unit_scale_str(char *str, int len_max, char *str_tmp,
- double scale_pref, bUnitDef *unit, const char *replace_str)
+static int unit_scale_str(char *str, int len_max, char *str_tmp, double scale_pref, bUnitDef *unit,
+ const char *replace_str)
{
char *str_found;
- if ((len_max>0) && (str_found= (char *)unit_find_str(str, replace_str))) {
+ if ((len_max > 0) && (str_found = (char *)unit_find_str(str, replace_str))) {
/* XXX - investigate, does not respect len_max properly */
int len, len_num, len_name, len_move, found_ofs;
- found_ofs = (int)(str_found-str);
+ found_ofs = (int)(str_found - str);
- len= strlen(str);
+ len = strlen(str);
len_name = strlen(replace_str);
- len_move= (len - (found_ofs+len_name)) + 1; /* 1+ to copy the string terminator */
- len_num= BLI_snprintf(str_tmp, TEMP_STR_SIZE, "*%g"SEP_STR, unit->scalar/scale_pref); /* # removed later */
+ len_move = (len - (found_ofs + len_name)) + 1; /* 1+ to copy the string terminator */
+ len_num = BLI_snprintf(str_tmp, TEMP_STR_SIZE, "*%g"SEP_STR, unit->scalar / scale_pref); /* # removed later */
if (len_num > len_max)
- len_num= len_max;
+ len_num = len_max;
- if (found_ofs+len_num+len_move > len_max) {
+ if (found_ofs + len_num + len_move > len_max) {
/* can't move the whole string, move just as much as will fit */
- len_move -= (found_ofs+len_num+len_move) - len_max;
+ len_move -= (found_ofs + len_num + len_move) - len_max;
}
- if (len_move>0) {
+ if (len_move > 0) {
/* resize the last part of the string */
- memmove(str_found+len_num, str_found+len_name, len_move); /* may grow or shrink the string */
+ memmove(str_found + len_num, str_found + len_name, len_move); /* may grow or shrink the string */
}
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list