MCPcopy Create free account
hub / github.com/bfbbdecomp/bfbb / BasisBspline

Function BasisBspline

src/SB/Core/x/xSpline.cpp:269–323  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

267}
268
269void BasisBspline(F32 (*N)[4], F32* t)
270{
271 U32 i;
272 U32 k;
273 U32 c;
274 F32 d1;
275 F32 d2;
276
277 N[0][3] = 0.0;
278 N[1][3] = 0.0;
279 N[2][3] = 0.0;
280 N[3][3] = 1.0;
281 N[4][3] = 0.0;
282 N[5][3] = 0.0;
283 N[6][3] = 0.0;
284
285 F32* Ntemp;
286 Ntemp = 0;
287
288 for (i = 2; i < 5; i += 1)
289 {
290 if (i != 0)
291 {
292 for (k = 0; k < 8; k += 1)
293 {
294 d2 = t[k + i - 1] - *t;
295 if (d2 != 0.0)
296 {
297 d2 = 1.0 / d2;
298 }
299 d1 = t[k + i] - t[1];
300 if (d1 != 0.0)
301 {
302 d1 = 1.0 / d1;
303 }
304 if (i > 1)
305 {
306 Ntemp = Ntemp - i;
307 for (c = 0; c < 4; c += 1)
308 {
309 *Ntemp = *Ntemp + d1 * t[k + i] * *(Ntemp + 4) + d2 * -*t * *Ntemp;
310 Ntemp = Ntemp + 1;
311 }
312 }
313 (*N)[0] = Ntemp[0];
314 (*N)[1] = Ntemp[1];
315 (*N)[2] = Ntemp[2];
316 (*N)[3] = Ntemp[3];
317 t += 1;
318 N += 1;
319 }
320 }
321 }
322 return;
323}
324
325void EvalCoef3(xCoef3* coef, F32 u, U32 deriv, xVec3* o)
326{

Callers 2

EvalBspline3Function · 0.70
CoefSeg3Function · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected