cubeRound function

Cube cubeRound(
  1. double q,
  2. double r,
  3. double s
)

Rounds a 'double' cube to the nearest 'int' cube.

Implementation

Cube cubeRound(double q, double r, double s) {
  var rq = q.round();
  var rr = r.round();
  var rs = s.round();

  var qDiff = (rq - q).abs();
  var rDiff = (rr - r).abs();
  var sDiff = (rs - s).abs();

  if (qDiff > rDiff && qDiff > sDiff) {
    rq = -rr - rs;
  } else if (rDiff > sDiff) {
    rr = -rq - rs;
  } else {
    rs = -rq - rr;
  }
  return Cube(rq, rr, rs);
}