code: function normalizeCoords(dispObj, coords) {
      var focalAngleRad = dispObj.rotation * Math.PI / 180;
      var oppositeRad = (Math.PI - focalAngleRad) / 2;
  
      // Distance from register point to coords
      var relX = coords.x - dispObj.regX;
      var relY = dispObj.regY - coords.y; // opposite of cartesian
      var distFromFocal = Math.sqrt(Math.pow(relX, 2) +
                          Math.pow(relY, 2));
      if(relX < 0) distFromFocal = -distFromFocal;
  
      // Distance between the relative and normalized point
      var pointDistance;
      if(oppositeRad !== 0)
          pointDistance = distFromFocal * Math.sin(focalAngleRad) /
                          Math.sin(oppositeRad);
      else
          pointDistance =  distFromFocal * 2;
  
      var totalRelativeRad = 0;
      if(distFromFocal !== 0)
          totalRelativeRad = Math.asin(relY / distFromFocal);
  
      var xRad = (Math.PI / 2) - focalAngleRad - oppositeRad +
                              totalRelativeRad;
  
      var x = Math.sin(xRad) * pointDistance +
              coords.x - dispObj.regX + dispObj.x;
      var y = Math.cos(xRad) * pointDistance +
              coords.y - dispObj.regY + dispObj.y;
  
      var rotation = coords.rotation || 0;
      rotation += dispObj.rotation;
  
      return {
          x: x,
          y: y,
          rotation: rotation
      };
  }
docs: Given an object and point relating to that object, returns a set of coords representing the same point with respect to the parent. TODO: refactor out TODO: provide more explanation, visuals?