Advertisement
Guest User

Untitled

a guest
Nov 19th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.06 KB | None | 0 0
  1.     uint32 CatmullRomSpline::insertBefore(uint32 index)
  2.     {
  3.         f32vec2 p0 = getPosition(index-1);
  4.         f32vec2 m0 = getTangent(index-1) / (getParameter(index) - getParameter(index-1));
  5.         f32vec2 p1 = getPosition(index);
  6.         f32vec2 m1 = getTangent(index) / (getParameter(index) - getParameter(index-1));
  7.         float u = 0.5f;
  8.         f32vec2 newPoint = evaluateHermiteSegment(p0, m0, m1, p1, u);
  9.         m_positions.insert(m_positions.begin() + index , newPoint);
  10.         return index;
  11.     }
  12.  
  13.     uint32 CatmullRomSpline::insertAfter(uint32 index)
  14.     {
  15.         f32vec2 p0 = getPosition(index);
  16.         f32vec2 m0 = getTangent(index) / (getParameter(index+1) - getParameter(index));
  17.         f32vec2 p1 = getPosition(index+1);
  18.         f32vec2 m1 = getTangent(index+1) / (getParameter(index+1) - getParameter(index));
  19.         float u = 0.5f;
  20.         f32vec2 newPoint = evaluateHermiteSegment(p0, m0, m1, p1, u);
  21.         m_positions.insert(m_positions.begin() + (index+1), newPoint);
  22.         return index+1;
  23.     }
  24.  
  25.     uint32 CatmullRomSpline::removeAt(uint32 index)
  26.     {
  27.         // Assignment 1e
  28.         m_positions.erase(m_positions.begin() + index);
  29.         return index;
  30.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement