Lines Matching refs:pp

76 static void pointslope(privpath_t *pp, int i, int j, dpoint_t *ctr, dpoint_t *dir) {  in pointslope()  argument
79 int n = pp->len; in pointslope()
80 sums_t *sums = pp->sums; in pointslope()
268 static int calc_sums(privpath_t *pp) { in calc_sums() argument
270 int n = pp->len; in calc_sums()
272 SAFE_CALLOC(pp->sums, pp->len+1, sums_t); in calc_sums()
275 pp->x0 = pp->pt[0].x; in calc_sums()
276 pp->y0 = pp->pt[0].y; in calc_sums()
279 pp->sums[0].x2 = pp->sums[0].xy = pp->sums[0].y2 = pp->sums[0].x = pp->sums[0].y = 0; in calc_sums()
281 x = pp->pt[i].x - pp->x0; in calc_sums()
282 y = pp->pt[i].y - pp->y0; in calc_sums()
283 pp->sums[i+1].x = pp->sums[i].x + x; in calc_sums()
284 pp->sums[i+1].y = pp->sums[i].y + y; in calc_sums()
285 pp->sums[i+1].x2 = pp->sums[i].x2 + x*x; in calc_sums()
286 pp->sums[i+1].xy = pp->sums[i].xy + x*y; in calc_sums()
287 pp->sums[i+1].y2 = pp->sums[i].y2 + y*y; in calc_sums()
325 static int calc_lon(privpath_t *pp) { in calc_lon() argument
326 point_t *pt = pp->pt; in calc_lon()
327 int n = pp->len; in calc_lon()
356 SAFE_CALLOC(pp->lon, n, int); in calc_lon()
449 pp->lon[n-1]=j; in calc_lon()
454 pp->lon[i]=j; in calc_lon()
457 for (i=n-1; cyclic(mod(i+1,n),j,pp->lon[i]); i--) { in calc_lon()
458 pp->lon[i] = j; in calc_lon()
478 static double penalty3(privpath_t *pp, int i, int j) { in penalty3() argument
479 int n = pp->len; in penalty3()
480 point_t *pt = pp->pt; in penalty3()
481 sums_t *sums = pp->sums; in penalty3()
530 static int bestpolygon(privpath_t *pp) in bestpolygon() argument
533 int n = pp->len; in bestpolygon()
553 c = mod(pp->lon[mod(i-1,n)]-1,n); in bestpolygon()
600 thispen = penalty3(pp, k, i) + pen[k]; in bestpolygon()
610 pp->m = m; in bestpolygon()
611 SAFE_CALLOC(pp->po, m, int); in bestpolygon()
616 pp->po[j] = i; in bestpolygon()
645 static int adjust_vertices(privpath_t *pp) { in adjust_vertices() argument
646 int m = pp->m; in adjust_vertices()
647 int *po = pp->po; in adjust_vertices()
648 int n = pp->len; in adjust_vertices()
649 point_t *pt = pp->pt; in adjust_vertices()
650 int x0 = pp->x0; in adjust_vertices()
651 int y0 = pp->y0; in adjust_vertices()
666 r = privcurve_init(&pp->curve, m); in adjust_vertices()
676 pointslope(pp, po[i], j, &ctr[i], &dir[i]); in adjust_vertices()
769 pp->curve.vertex[i].x = w.x+x0; in adjust_vertices()
770 pp->curve.vertex[i].y = w.y+y0; in adjust_vertices()
824 pp->curve.vertex[i].x = xmin + x0; in adjust_vertices()
825 pp->curve.vertex[i].y = ymin + y0; in adjust_vertices()
922 static int opti_penalty(privpath_t *pp, int i, int j, opti_t *res, double opttolerance, int *convc,… in opti_penalty() argument
923 int m = pp->curve.n; in opti_penalty()
943 d = ddist(pp->curve.vertex[i], pp->curve.vertex[i1]); in opti_penalty()
950 …if (sign(cprod(pp->curve.vertex[i], pp->curve.vertex[i1], pp->curve.vertex[k1], pp->curve.vertex[k… in opti_penalty()
953 …if (iprod1(pp->curve.vertex[i], pp->curve.vertex[i1], pp->curve.vertex[k1], pp->curve.vertex[k2]) … in opti_penalty()
959 p0 = pp->curve.c[mod(i,m)][2]; in opti_penalty()
960 p1 = pp->curve.vertex[mod(i+1,m)]; in opti_penalty()
961 p2 = pp->curve.vertex[mod(j,m)]; in opti_penalty()
962 p3 = pp->curve.c[mod(j,m)][2]; in opti_penalty()
966 area -= dpara(pp->curve.vertex[0], pp->curve.c[i][2], pp->curve.c[j][2])/2; in opti_penalty()
1011 t = tangent(p0, p1, p2, p3, pp->curve.vertex[k], pp->curve.vertex[k1]); in opti_penalty()
1016 d = ddist(pp->curve.vertex[k], pp->curve.vertex[k1]); in opti_penalty()
1020 d1 = dpara(pp->curve.vertex[k], pp->curve.vertex[k1], pt) / d; in opti_penalty()
1024 …if (iprod(pp->curve.vertex[k], pp->curve.vertex[k1], pt) < 0 || iprod(pp->curve.vertex[k1], pp->cu… in opti_penalty()
1033 t = tangent(p0, p1, p2, p3, pp->curve.c[k][2], pp->curve.c[k1][2]); in opti_penalty()
1038 d = ddist(pp->curve.c[k][2], pp->curve.c[k1][2]); in opti_penalty()
1042 d1 = dpara(pp->curve.c[k][2], pp->curve.c[k1][2], pt) / d; in opti_penalty()
1043 d2 = dpara(pp->curve.c[k][2], pp->curve.c[k1][2], pp->curve.vertex[k1]) / d; in opti_penalty()
1044 d2 *= 0.75 * pp->curve.alpha[k1]; in opti_penalty()
1063 static int opticurve(privpath_t *pp, double opttolerance) { in opticurve() argument
1064 int m = pp->curve.n; in opticurve()
1091 if (pp->curve.tag[i] == POTRACE_CURVETO) { in opticurve()
1092 …convc[i] = sign(dpara(pp->curve.vertex[mod(i-1,m)], pp->curve.vertex[i], pp->curve.vertex[mod(i+1,… in opticurve()
1101 p0 = pp->curve.vertex[0]; in opticurve()
1104 if (pp->curve.tag[i1] == POTRACE_CURVETO) { in opticurve()
1105 alpha = pp->curve.alpha[i1]; in opticurve()
1106 … area += 0.3*alpha*(4-alpha)*dpara(pp->curve.c[i][2], pp->curve.vertex[i1], pp->curve.c[i1][2])/2; in opticurve()
1107 area += dpara(p0, pp->curve.c[i][2], pp->curve.c[i1][2])/2; in opticurve()
1126 r = opti_penalty(pp, i, mod(j,m), &o, opttolerance, convc, areac); in opticurve()
1139 r = privcurve_init(&pp->ocurve, om); in opticurve()
1149 pp->ocurve.tag[i] = pp->curve.tag[mod(j,m)]; in opticurve()
1150 pp->ocurve.c[i][0] = pp->curve.c[mod(j,m)][0]; in opticurve()
1151 pp->ocurve.c[i][1] = pp->curve.c[mod(j,m)][1]; in opticurve()
1152 pp->ocurve.c[i][2] = pp->curve.c[mod(j,m)][2]; in opticurve()
1153 pp->ocurve.vertex[i] = pp->curve.vertex[mod(j,m)]; in opticurve()
1154 pp->ocurve.alpha[i] = pp->curve.alpha[mod(j,m)]; in opticurve()
1155 pp->ocurve.alpha0[i] = pp->curve.alpha0[mod(j,m)]; in opticurve()
1156 pp->ocurve.beta[i] = pp->curve.beta[mod(j,m)]; in opticurve()
1159 pp->ocurve.tag[i] = POTRACE_CURVETO; in opticurve()
1160 pp->ocurve.c[i][0] = opt[j].c[0]; in opticurve()
1161 pp->ocurve.c[i][1] = opt[j].c[1]; in opticurve()
1162 pp->ocurve.c[i][2] = pp->curve.c[mod(j,m)][2]; in opticurve()
1163 … pp->ocurve.vertex[i] = interval(opt[j].s, pp->curve.c[mod(j,m)][2], pp->curve.vertex[mod(j,m)]); in opticurve()
1164 pp->ocurve.alpha[i] = opt[j].alpha; in opticurve()
1165 pp->ocurve.alpha0[i] = opt[j].alpha; in opticurve()
1175 pp->ocurve.beta[i] = s[i] / (s[i] + t[i1]); in opticurve()
1177 pp->ocurve.alphacurve = 1; in opticurve()