The below code is how I achieved computing camera center and edge position calculations, maybe it can help you:
func computeScreenCenter():
var minPos = computeMinimumPointBoundary()
var maxPos = computeMaximumPointBoundary()
var screenRect = Rect2(minPos,Vector2())
screenRect = screenRect.expand(maxPos)
return calculate_center(screenRect)
func computeMinimumPointBoundary():
# Get view rectangle
var ctrans = getcanvastransform()
var minpos = (-ctrans.getorigin() / ctrans.getscale())
return minpos
func computeMaximumPointBoundary():
# Get view rectangle
var ctrans = getcanvastransform()
var minpos = -ctrans.getorigin() / ctrans.getscale()
var viewsize = getviewportrect().size / ctrans.getscale()
var maxpos = minpos + viewsize
return max_pos
func calculate_center(rect):
return Vector2(
rect.position.x + rect.size.x/2,
rect.position.y + rect.size.y/2)