bezier_curve.cpp 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. // ======================================================================== //
  2. // Copyright 2009-2017 Intel Corporation //
  3. // //
  4. // Licensed under the Apache License, Version 2.0 (the "License"); //
  5. // you may not use this file except in compliance with the License. //
  6. // You may obtain a copy of the License at //
  7. // //
  8. // http://www.apache.org/licenses/LICENSE-2.0 //
  9. // //
  10. // Unless required by applicable law or agreed to in writing, software //
  11. // distributed under the License is distributed on an "AS IS" BASIS, //
  12. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. //
  13. // See the License for the specific language governing permissions and //
  14. // limitations under the License. //
  15. // ======================================================================== //
  16. #include "bezier_curve.h"
  17. namespace embree
  18. {
  19. PrecomputedBezierBasis::PrecomputedBezierBasis(int dj)
  20. {
  21. for (size_t i=0; i<=N; i++)
  22. {
  23. for (size_t j=0; j<=N; j++)
  24. {
  25. const float u = float(j+dj)/float(i);
  26. const Vec4f f = BezierBasis::eval(u);
  27. c0[i][j] = f.x;
  28. c1[i][j] = f.y;
  29. c2[i][j] = f.z;
  30. c3[i][j] = f.w;
  31. const Vec4f d = BezierBasis::derivative(u);
  32. d0[i][j] = d.x;
  33. d1[i][j] = d.y;
  34. d2[i][j] = d.z;
  35. d3[i][j] = d.w;
  36. }
  37. }
  38. }
  39. PrecomputedBezierBasis bezier_basis0(0);
  40. PrecomputedBezierBasis bezier_basis1(1);
  41. }