Cleanup: deduplicate code and rename variables
This makes it clearer that variables are strings and how they are used in the Move header code.
This commit is contained in:
@@ -52,12 +52,27 @@
|
||||
/** \name Transform (Translation)
|
||||
* \{ */
|
||||
|
||||
static void translate_dist_to_str(char *r_str,
|
||||
const int len_max,
|
||||
const float val,
|
||||
const UnitSettings *unit)
|
||||
{
|
||||
if (unit) {
|
||||
BKE_unit_value_as_string(
|
||||
r_str, len_max, val * unit->scale_length, 4, B_UNIT_LENGTH, unit, false);
|
||||
}
|
||||
else {
|
||||
/* Check range to prevent string buffer overflow. */
|
||||
BLI_snprintf(r_str, len_max, IN_RANGE_INCL(val, -1e10f, 1e10f) ? "%.4f" : "%.4e", val);
|
||||
}
|
||||
}
|
||||
|
||||
static void headerTranslation(TransInfo *t, const float vec[3], char str[UI_MAX_DRAW_STR])
|
||||
{
|
||||
size_t ofs = 0;
|
||||
char tvec[NUM_STR_REP_LEN * 3];
|
||||
char distvec[NUM_STR_REP_LEN];
|
||||
char autoik[NUM_STR_REP_LEN];
|
||||
char dvec_str[3][NUM_STR_REP_LEN];
|
||||
char dist_str[NUM_STR_REP_LEN];
|
||||
char autoik_str[NUM_STR_REP_LEN];
|
||||
float dist;
|
||||
|
||||
UnitSettings *unit = NULL;
|
||||
@@ -66,7 +81,7 @@ static void headerTranslation(TransInfo *t, const float vec[3], char str[UI_MAX_
|
||||
}
|
||||
|
||||
if (hasNumInput(&t->num)) {
|
||||
outputNumInput(&(t->num), tvec, &t->scene->unit);
|
||||
outputNumInput(&(t->num), dvec_str, &t->scene->unit);
|
||||
dist = len_v3(t->num.val);
|
||||
}
|
||||
else {
|
||||
@@ -94,48 +109,25 @@ static void headerTranslation(TransInfo *t, const float vec[3], char str[UI_MAX_
|
||||
|
||||
dist = len_v3(dvec);
|
||||
|
||||
if (unit) {
|
||||
for (int i = 0; i < 3; i++) {
|
||||
BKE_unit_value_as_string(&tvec[NUM_STR_REP_LEN * i],
|
||||
NUM_STR_REP_LEN,
|
||||
dvec[i] * unit->scale_length,
|
||||
4,
|
||||
B_UNIT_LENGTH,
|
||||
unit,
|
||||
true);
|
||||
}
|
||||
}
|
||||
else {
|
||||
BLI_snprintf(&tvec[0], NUM_STR_REP_LEN, "%.4f", dvec[0]);
|
||||
BLI_snprintf(&tvec[NUM_STR_REP_LEN], NUM_STR_REP_LEN, "%.4f", dvec[1]);
|
||||
BLI_snprintf(&tvec[NUM_STR_REP_LEN * 2], NUM_STR_REP_LEN, "%.4f", dvec[2]);
|
||||
for (int i = 0; i < 3; i++) {
|
||||
translate_dist_to_str(dvec_str[i], sizeof(dvec_str[i]), dvec[i], unit);
|
||||
}
|
||||
}
|
||||
|
||||
if (unit) {
|
||||
BKE_unit_value_as_string(
|
||||
distvec, sizeof(distvec), dist * unit->scale_length, 4, B_UNIT_LENGTH, unit, false);
|
||||
}
|
||||
else if (dist > 1e10f || dist < -1e10f) {
|
||||
/* prevent string buffer overflow */
|
||||
BLI_snprintf(distvec, NUM_STR_REP_LEN, "%.4e", dist);
|
||||
}
|
||||
else {
|
||||
BLI_snprintf(distvec, NUM_STR_REP_LEN, "%.4f", dist);
|
||||
}
|
||||
translate_dist_to_str(dist_str, sizeof(dist_str), dist, unit);
|
||||
|
||||
if (t->flag & T_AUTOIK) {
|
||||
short chainlen = t->settings->autoik_chainlen;
|
||||
|
||||
if (chainlen) {
|
||||
BLI_snprintf(autoik, NUM_STR_REP_LEN, TIP_("AutoIK-Len: %d"), chainlen);
|
||||
BLI_snprintf(autoik_str, sizeof(autoik_str), TIP_("AutoIK-Len: %d"), chainlen);
|
||||
}
|
||||
else {
|
||||
autoik[0] = '\0';
|
||||
autoik_str[0] = '\0';
|
||||
}
|
||||
}
|
||||
else {
|
||||
autoik[0] = '\0';
|
||||
autoik_str[0] = '\0';
|
||||
}
|
||||
|
||||
if (t->con.mode & CON_APPLY) {
|
||||
@@ -144,34 +136,34 @@ static void headerTranslation(TransInfo *t, const float vec[3], char str[UI_MAX_
|
||||
ofs += BLI_snprintf_rlen(str + ofs,
|
||||
UI_MAX_DRAW_STR - ofs,
|
||||
"D: %s (%s)%s %s %s",
|
||||
&tvec[0],
|
||||
distvec,
|
||||
dvec_str[0],
|
||||
dist_str,
|
||||
t->con.text,
|
||||
t->proptext,
|
||||
autoik);
|
||||
autoik_str);
|
||||
break;
|
||||
case 1:
|
||||
ofs += BLI_snprintf_rlen(str + ofs,
|
||||
UI_MAX_DRAW_STR - ofs,
|
||||
"D: %s D: %s (%s)%s %s %s",
|
||||
&tvec[0],
|
||||
&tvec[NUM_STR_REP_LEN],
|
||||
distvec,
|
||||
dvec_str[0],
|
||||
dvec_str[1],
|
||||
dist_str,
|
||||
t->con.text,
|
||||
t->proptext,
|
||||
autoik);
|
||||
autoik_str);
|
||||
break;
|
||||
case 2:
|
||||
ofs += BLI_snprintf_rlen(str + ofs,
|
||||
UI_MAX_DRAW_STR - ofs,
|
||||
"D: %s D: %s D: %s (%s)%s %s %s",
|
||||
&tvec[0],
|
||||
&tvec[NUM_STR_REP_LEN],
|
||||
&tvec[NUM_STR_REP_LEN * 2],
|
||||
distvec,
|
||||
dvec_str[0],
|
||||
dvec_str[1],
|
||||
dvec_str[2],
|
||||
dist_str,
|
||||
t->con.text,
|
||||
t->proptext,
|
||||
autoik);
|
||||
autoik_str);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -180,9 +172,9 @@ static void headerTranslation(TransInfo *t, const float vec[3], char str[UI_MAX_
|
||||
ofs += BLI_snprintf_rlen(str + ofs,
|
||||
UI_MAX_DRAW_STR - ofs,
|
||||
"Dx: %s Dy: %s (%s)%s %s",
|
||||
&tvec[0],
|
||||
&tvec[NUM_STR_REP_LEN],
|
||||
distvec,
|
||||
dvec_str[0],
|
||||
dvec_str[1],
|
||||
dist_str,
|
||||
t->con.text,
|
||||
t->proptext);
|
||||
}
|
||||
@@ -190,13 +182,13 @@ static void headerTranslation(TransInfo *t, const float vec[3], char str[UI_MAX_
|
||||
ofs += BLI_snprintf_rlen(str + ofs,
|
||||
UI_MAX_DRAW_STR - ofs,
|
||||
"Dx: %s Dy: %s Dz: %s (%s)%s %s %s",
|
||||
&tvec[0],
|
||||
&tvec[NUM_STR_REP_LEN],
|
||||
&tvec[NUM_STR_REP_LEN * 2],
|
||||
distvec,
|
||||
dvec_str[0],
|
||||
dvec_str[1],
|
||||
dvec_str[2],
|
||||
dist_str,
|
||||
t->con.text,
|
||||
t->proptext,
|
||||
autoik);
|
||||
autoik_str);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user