Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2017
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.96 KB | None | 0 0
  1.  
  2. void WorldEditorSelection::offset( const Point3F& offset, F32 gridSnap )
  3. {
  4. for( iterator iter = begin(); iter != end(); ++ iter )
  5. {
  6. SceneObject* obj = dynamic_cast<SceneObject*>( *iter );
  7. if( !obj )
  8. continue;
  9.  
  10. MatrixF mat = obj->getTransform();
  11. Point3F wPos;
  12. mat.getColumn(3, &wPos);
  13.  
  14. // adjust
  15. wPos += offset;
  16.  
  17. if( gridSnap != 0.f )
  18. {
  19. wPos.x = _snapFloat(wPos.x, gridSnap);
  20. wPos.y = _snapFloat(wPos.y, gridSnap);
  21. wPos.z = _snapFloat(wPos.z, gridSnap);
  22. }
  23.  
  24. mat.setColumn(3, wPos);
  25. obj->setTransform(mat);
  26. }
  27.  
  28. mCentroidValid = false;
  29. }
  30.  
  31. F32 WorldEditorSelection::_snapFloat(const F32 &val, const F32 &snap) const
  32. {
  33. if (snap == 0.0f)
  34. return val;
  35.  
  36. F32 a = mFmod(val, snap);
  37.  
  38. F32 temp = val;
  39.  
  40. if (mFabs(a) > (snap / 2))
  41. val < 0.0f ? temp -= snap : temp += snap;
  42.  
  43. return(temp - a);
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement