MCPcopy Create free account
hub / github.com/MapServer/MapServer / prepare

Method prepare

renderers/agg/src/agg_bspline.cpp:85–146  ·  view source on GitHub ↗

------------------------------------------------------------------------

Source from the content-addressed store, hash-verified

83
84 //------------------------------------------------------------------------
85 void bspline::prepare()
86 {
87 if(m_num > 2)
88 {
89 int i, k, n1;
90 double* temp;
91 double* r;
92 double* s;
93 double h, p, d, f, e;
94
95 for(k = 0; k < m_num; k++)
96 {
97 m_am[k] = 0.0;
98 }
99
100 n1 = 3 * m_num;
101
102 pod_array<double> al(n1);
103 temp = &al[0];
104
105 for(k = 0; k < n1; k++)
106 {
107 temp[k] = 0.0;
108 }
109
110 r = temp + m_num;
111 s = temp + m_num * 2;
112
113 n1 = m_num - 1;
114 d = m_x[1] - m_x[0];
115 e = (m_y[1] - m_y[0]) / d;
116
117 for(k = 1; k < n1; k++)
118 {
119 h = d;
120 d = m_x[k + 1] - m_x[k];
121 f = e;
122 e = (m_y[k + 1] - m_y[k]) / d;
123 al[k] = d / (d + h);
124 r[k] = 1.0 - al[k];
125 s[k] = 6.0 * (e - f) / (h + d);
126 }
127
128 for(k = 1; k < n1; k++)
129 {
130 p = 1.0 / (r[k] * al[k - 1] + 2.0);
131 al[k] *= -p;
132 s[k] = (s[k] - r[k] * s[k - 1]) * p;
133 }
134
135 m_am[n1] = 0.0;
136 al[n1 - 1] = s[n1 - 1];
137 m_am[n1 - 1] = al[n1 - 1];
138
139 for(k = n1 - 2, i = 0; i < m_num - 2; i++, k--)
140 {
141 al[k] = al[k] * al[k + 1] + s[k];
142 m_am[k] = al[k];

Callers 4

rewindMethod · 0.45
decompose_ft_bitmap_monoFunction · 0.45
prepare_glyphMethod · 0.45

Calls

no outgoing calls

Tested by

no test coverage detected