public void OnCameraBoundExit(CameraBound cameraBound)
        {
            ARKLogger.LogMessage(eLogCategory.Control,
                                 eLogLevel.Info,
                                 "OnCameraBoundExit");

            foreach (AbstractCamera cam in registeredCameras)
            {
                if (!cameraBound.GetComponent<Renderer>().IsVisibleFrom(cam.GetComponent<Camera>()))
                {
                    ARKLogger.LogMessage(eLogCategory.Control,
                                         eLogLevel.Info,
                                         "Not Visible");
                    cam.DeregisterBound(cam.GetInstanceID());
                }
            }
        }
        public void OnCameraBoundEntry(CameraBound cameraBound)
        {
            ARKLogger.LogMessage(eLogCategory.Control,
                                 eLogLevel.Info,
                                 "OnCameraBoundEntry");

            foreach(AbstractCamera cam in registeredCameras)
            {
                if (cameraBound.GetComponent<Renderer>().IsVisibleFrom(cam.GetComponent<Camera>()))
                {
                    CameraMovementRestrictions restriction = new CameraMovementRestrictions();
                    Vector3 viewPos = cam.GetComponent<Camera>().WorldToViewportPoint(cameraBound.transform.position);
                    DetermineRestriction(viewPos.x, cameraBound.onXEntry, ref restriction.xAxis);
                    DetermineRestriction(viewPos.y, cameraBound.onYEntry, ref restriction.yAxis);
                    cam.RegisterBound(cam.GetInstanceID(), restriction);
                }
            }
        }