@Override
    public void frameUpdate(Point mouse, float partialFrame) {

        // Set camera location bounds
        TileCoord minBounds = editor.getTileMap().getMinBounds();
        TileCoord maxBounds = editor.getTileMap().getMaxBounds();
        cameraZoomAnimator.setBounds(
                minBounds.x,
                cameraLayerAnimator.vector.y + ZOOM_DIST_MIN, // Y bounds follows zoom
                minBounds.z,
                maxBounds.x + 1,
                cameraLayerAnimator.vector.y + ZOOM_DIST_MAX,
                maxBounds.z + 1);

        long t = System.currentTimeMillis();
        cameraZoomAnimator.tick(t);
        cameraLayerAnimator.tick(t);

        // Store mouse position for mouse drag calculations
        lastMousePos = mouse;

        // Combine components to calculate final position
        cameraPosition.set(0);
        cameraZoomAnimator.apply(cameraPosition);
        cameraLayerAnimator.apply(cameraPosition);
    }
Apply a camera delta based on NDC delta
@param delta Amount to pan camera in frame NDC units
fabrication/src/main/java/mrtjp/projectred/fabrication/gui/ICRenderNode.java