public void Grabcommands() { while (true) { Debug.Log("waiting..."); Thread.Sleep(100); if (_commandRetriever.TryGrabCommand(out var commandName, out var commandValue)) { if (commandName.Equals(UnityEngineCommands.ReadTrialData)) { _dataRetriever.RetrieveData(commandValue, out _currentTrialMetaData); _currentUnijoySceneData = _sceneBuilder.Build(_currentTrialMetaData); NewSceneReceived.Invoke(this, _currentUnijoySceneData); } else if (commandName.Equals(UnityEngineCommands.VisualOperationCommand)) { if (commandValue.Equals(VisualOperationCommand.StartRender)) { StartRenderCommandReceived.Invoke(this, null); } else if (commandValue.Equals(VisualOperationCommand.CleanScreen)) { ClearRenderCommandReceied.Invoke(this, null); } } } } }
private static Frame GenerateFrame() { var entityIdFactory = new EntityIdFactory(); var sceneBuilder = new SceneBuilder(new Vector3(0.2f, 0.0f, 0.43f)); var scatterableComputer = new ScatterableComputer(); var hitableSphereComputer = new HitableSphereComputer(); // Create the scene var elementBuilderFactory = new ElementBuilderFactory(entityIdFactory, hitableSphereComputer, scatterableComputer); sceneBuilder.AddElement(elementBuilderFactory.Create() .WithPosition(new Position(new Vector3(0.725f, 0.5f, 0.725f))) .WithShape(new Sphere(0.5f)) .WithMaterial(new Diffuse(new Vector3(0.0f, 1.0f, 0.0f))).Build()); sceneBuilder.AddElement(elementBuilderFactory.Create() .WithPosition(new Position(new Vector3(0.0f, -200.0f, 0.0f))) .WithShape(new Sphere(200f)) .WithMaterial(new Diffuse(new Vector3(0.5f, 0.5f, 0.5f))).Build()); var cameraFactory = new CameraFactory(); var lookFrom = new Vector3(0, 8, 10); var lookat = new Vector3(0, 0, 0); var distanceToFocus = (lookFrom - lookat).Length(); const float aperture = 0.1f; var camera = cameraFactory.CreateCamera(lookFrom, lookat, new Vector3(0, 1, 0), 20, (float)ResolutionHorizontal / ResolutionVertical, aperture, distanceToFocus); var scene = sceneBuilder.Build(); var tracer = new MonitoringTracer( new BackgroundTracer(scene, camera, ResolutionHorizontal, ResolutionVertical, Sampling)); return(tracer.Trace()); }