| 267 | } |
| 268 | |
| 269 | void 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 | |
| 325 | void EvalCoef3(xCoef3* coef, F32 u, U32 deriv, xVec3* o) |
| 326 | { |
no outgoing calls
no test coverage detected