Cleanup: use more descriptive variable names for character building

Also improve const correctness.
This commit is contained in:
Campbell Barton
2024-12-14 23:17:50 +11:00
parent 94d39aac0c
commit 57ba4c4892

View File

@@ -236,22 +236,22 @@ static void build_underline(Curve *cu,
short mat_nr,
const float font_size)
{
Nurb *nu2;
Nurb *nu;
BPoint *bp;
nu2 = (Nurb *)MEM_callocN(sizeof(Nurb), "underline_nurb");
nu2->resolu = cu->resolu;
nu2->bezt = nullptr;
nu2->knotsu = nu2->knotsv = nullptr;
nu2->charidx = charidx + 1000;
nu = (Nurb *)MEM_callocN(sizeof(Nurb), "underline_nurb");
nu->resolu = cu->resolu;
nu->bezt = nullptr;
nu->knotsu = nu->knotsv = nullptr;
nu->charidx = charidx + 1000;
if (mat_nr >= 0) {
nu2->mat_nr = mat_nr;
nu->mat_nr = mat_nr;
}
nu2->pntsu = 4;
nu2->pntsv = 1;
nu2->orderu = 4;
nu2->orderv = 1;
nu2->flagu = CU_NURB_CYCLIC;
nu->pntsu = 4;
nu->pntsv = 1;
nu->orderu = 4;
nu->orderv = 1;
nu->flagu = CU_NURB_CYCLIC;
bp = (BPoint *)MEM_calloc_arrayN(4, sizeof(BPoint), "underline_bp");
@@ -263,14 +263,14 @@ static void build_underline(Curve *cu,
/* Used by curve extrusion. */
bp[0].radius = bp[1].radius = bp[2].radius = bp[3].radius = 1.0f;
nu2->bp = bp;
BLI_addtail(nubase, nu2);
nu->bp = bp;
BLI_addtail(nubase, nu);
if (rot != 0.0f) {
float si = sinf(rot);
float co = cosf(rot);
for (int i = nu2->pntsu; i > 0; i--) {
for (int i = nu->pntsu; i > 0; i--) {
float *fp = bp->vec;
float x = fp[0] - rect->xmin;
@@ -282,7 +282,7 @@ static void build_underline(Curve *cu,
bp++;
}
bp = nu2->bp;
bp = nu->bp;
}
mul_v2_fl(bp[0].vec, font_size);
@@ -307,57 +307,57 @@ static void vfont_char_build_impl(Curve *cu,
float co = cosf(rot);
/* Select the glyph data */
Nurb *nu1 = nullptr;
const Nurb *nu_from_vchar = nullptr;
if (che) {
nu1 = static_cast<Nurb *>(che->nurbsbase.first);
nu_from_vchar = static_cast<Nurb *>(che->nurbsbase.first);
}
/* Create the character */
while (nu1) {
BezTriple *bezt1 = nu1->bezt;
if (bezt1) {
Nurb *nu2 = (Nurb *)MEM_mallocN(sizeof(Nurb), "duplichar_nurb");
if (nu2 == nullptr) {
/* Create the character. */
while (nu_from_vchar) {
const BezTriple *bezt_from_vchar = nu_from_vchar->bezt;
if (bezt_from_vchar) {
Nurb *nu = (Nurb *)MEM_mallocN(sizeof(Nurb), "duplichar_nurb");
if (nu == nullptr) {
break;
}
*nu2 = blender::dna::shallow_copy(*nu1);
nu2->resolu = cu->resolu;
nu2->bp = nullptr;
nu2->knotsu = nu2->knotsv = nullptr;
nu2->flag = CU_SMOOTH;
nu2->charidx = charidx;
*nu = blender::dna::shallow_copy(*nu_from_vchar);
nu->resolu = cu->resolu;
nu->bp = nullptr;
nu->knotsu = nu->knotsv = nullptr;
nu->flag = CU_SMOOTH;
nu->charidx = charidx;
if (info->mat_nr > 0) {
nu2->mat_nr = info->mat_nr;
nu->mat_nr = info->mat_nr;
}
else {
nu2->mat_nr = 0;
nu->mat_nr = 0;
}
// nu2->trim.first = 0;
// nu2->trim.last = 0;
int u = nu2->pntsu;
// nu->trim.first = 0;
// nu->trim.last = 0;
int u = nu->pntsu;
BezTriple *bezt2 = (BezTriple *)MEM_malloc_arrayN(u, sizeof(BezTriple), "duplichar_bezt2");
if (bezt2 == nullptr) {
MEM_freeN(nu2);
BezTriple *bezt = (BezTriple *)MEM_malloc_arrayN(u, sizeof(BezTriple), "duplichar_bezt2");
if (bezt == nullptr) {
MEM_freeN(nu);
break;
}
memcpy(bezt2, bezt1, u * sizeof(BezTriple));
nu2->bezt = bezt2;
memcpy(bezt, bezt_from_vchar, u * sizeof(BezTriple));
nu->bezt = bezt;
if (shear != 0.0f) {
bezt2 = nu2->bezt;
bezt = nu->bezt;
for (int i = nu2->pntsu; i > 0; i--) {
bezt2->vec[0][0] += shear * bezt2->vec[0][1];
bezt2->vec[1][0] += shear * bezt2->vec[1][1];
bezt2->vec[2][0] += shear * bezt2->vec[2][1];
bezt2++;
for (int i = nu->pntsu; i > 0; i--) {
bezt->vec[0][0] += shear * bezt->vec[0][1];
bezt->vec[1][0] += shear * bezt->vec[1][1];
bezt->vec[2][0] += shear * bezt->vec[2][1];
bezt++;
}
}
if (rot != 0.0f) {
bezt2 = nu2->bezt;
for (int i = nu2->pntsu; i > 0; i--) {
float *fp = bezt2->vec[0];
bezt = nu->bezt;
for (int i = nu->pntsu; i > 0; i--) {
float *fp = bezt->vec[0];
float x = fp[0];
fp[0] = co * x + si * fp[1];
@@ -369,41 +369,41 @@ static void vfont_char_build_impl(Curve *cu,
fp[6] = co * x + si * fp[7];
fp[7] = -si * x + co * fp[7];
bezt2++;
bezt++;
}
}
bezt2 = nu2->bezt;
bezt = nu->bezt;
if (info->flag & CU_CHINFO_SMALLCAPS_CHECK) {
const float sca = cu->smallcaps_scale;
for (int i = nu2->pntsu; i > 0; i--) {
float *fp = bezt2->vec[0];
for (int i = nu->pntsu; i > 0; i--) {
float *fp = bezt->vec[0];
fp[0] *= sca;
fp[1] *= sca;
fp[3] *= sca;
fp[4] *= sca;
fp[6] *= sca;
fp[7] *= sca;
bezt2++;
bezt++;
}
}
bezt2 = nu2->bezt;
bezt = nu->bezt;
for (int i = nu2->pntsu; i > 0; i--) {
float *fp = bezt2->vec[0];
for (int i = nu->pntsu; i > 0; i--) {
float *fp = bezt->vec[0];
fp[0] = (fp[0] + ofsx) * fsize;
fp[1] = (fp[1] + ofsy) * fsize;
fp[3] = (fp[3] + ofsx) * fsize;
fp[4] = (fp[4] + ofsy) * fsize;
fp[6] = (fp[6] + ofsx) * fsize;
fp[7] = (fp[7] + ofsy) * fsize;
bezt2++;
bezt++;
}
BLI_addtail(nubase, nu2);
BLI_addtail(nubase, nu);
}
nu1 = nu1->next;
nu_from_vchar = nu_from_vchar->next;
}
}