private void CameraListBox_SelectedIndexChanged(object sender, EventArgs e) { CameraFieldsFlowLayoutPanel.Controls.Clear(); switch (CameraListBox.SelectedItem) { case "Ray Tracing": cameraBuffer = new RaytracingCamera(); break; case "Projection": cameraBuffer = new ProjectionCamera(); break; } FieldInfo[] list = cameraBuffer.GetType().GetFields(); int offset = list.Length - 9; //Camera has 9 fields NameTextBox.Text = Convert.ToString(list[offset].GetValue(cameraBuffer)); Vector3 tempPos = (Vector3)list[offset + 1].GetValue(cameraBuffer); XTextBox.Text = Convert.ToString(tempPos.X); YTextBox.Text = Convert.ToString(tempPos.Y); ZTextBox.Text = Convert.ToString(tempPos.Z); Vector3 tempDir = (Vector3)list[offset + 2].GetValue(cameraBuffer); XTextBox2.Text = Convert.ToString(tempDir.X); YTextBox2.Text = Convert.ToString(tempDir.Y); ZTextBox2.Text = Convert.ToString(tempDir.Z); SensitivityTextBox.Text = Convert.ToString(list[offset + 3].GetValue(cameraBuffer)); RadiansTextBox1.Text = Convert.ToString(list[offset + 4].GetValue(cameraBuffer)); RadiansTextBox2.Text = Convert.ToString(list[offset + 5].GetValue(cameraBuffer)); HorizontalResolutionTextBox.Text = Convert.ToString(list[offset + 7].GetValue(cameraBuffer)); VerticalResolutionTextBox.Text = Convert.ToString(list[offset + 8].GetValue(cameraBuffer)); for (int i = 0; i < offset; ++i) { FieldDisplay fd = new FieldDisplay(list[i], cameraBuffer, CameraFieldsFlowLayoutPanel); CameraFieldsFlowLayoutPanel.Controls.Add(fd); } cameraBuffer.Dispose(); }
private void DeleteButton_Click(object sender, EventArgs e) { Environment.Cameras.Remove(camera); camera.Dispose(); Parent.Controls.Remove(this); }