private void Update(FovData fovData) { var moveDelta = _nodeSplitController.CameraLastPosition.FlatDistance(fovData.CameraPosition); if (moveDelta > _configuration.MinimumTreeUpdateDelta) { _nodeSplitController.SetCameraPosition(fovData.CameraPosition); _visibilityResolver.SetFovDataOverride(null); _visibilityResolver.SetFovData(fovData); _rootNode.UpdateLod(); } }
public static FovData FromCamera(Camera camera, Repositioner repositioner = null) { var lastPosition = camera.transform.position; var newPosition = new Vector3(lastPosition.x, 1, lastPosition.z); if (repositioner != null) { newPosition = repositioner.InvMove(newPosition); } camera.transform.position = newPosition; var data = new FovData(camera.transform.position, GeometryUtility.CalculateFrustumPlanes(camera)); camera.transform.position = lastPosition; return(data); }
public static FovData FromCamera(ICameraForUpdate camera, Repositioner repositioner = null) { var lastPosition = camera.Position; var newPosition = new Vector3(lastPosition.x, 1, lastPosition.z); if (repositioner != null) { newPosition = repositioner.InvMove(newPosition); } camera.Position = newPosition; //BoundDebugging.SetCamera(camera); var data = new FovData(camera.Position, camera.CalculateFrustumPlanes(camera)); camera.Position = lastPosition; return(data); }
public void UpdateCameraPosition() { _ring1TreeProxy.UpdateCamera(FovData.FromCamera(ActiveCamera)); }
public void SetFovData(FovData fovData) { _fovData = fovData; }
public Ring1VisibilityResolver(Ring1BoundsCalculator ring1BoundsCalculator, Vector3 initialCameraPosition = default(Vector3)) { _ring1BoundsCalculator = ring1BoundsCalculator; _fovData = new FovData(initialCameraPosition, null); }
public void UpdateLod(FovData fovData) { Update(fovData); }