public void FilterSceneForRenderer(WSceneView view, WWorld world) { if (m_bOverrideSceneCamera) { view.OverrideSceneCamera(m_SceneCameraOverride); } foreach (WScene scene in world.Map.SceneList) { foreach (var renderable in scene.GetChildrenOfType <IRenderable>()) { renderable.AddToRenderer(view); } } Staff camera = (Staff)SelectedEvent.Actors.ToList().Find(x => x.StaffType == StaffType.Camera); if (camera != null) { Cut c = camera.FirstCut; while (c != null) { OpenTK.Vector3 eye_pos = new OpenTK.Vector3(); OpenTK.Vector3 target_pos = new OpenTK.Vector3(); Substance eye = c.Properties.Find(x => x.Name.ToLower() == "eye"); if (eye != null) { Substance <ObservableCollection <BindingVector3> > eye_vec = eye as Substance <ObservableCollection <BindingVector3> >; eye_pos = eye_vec.Data[0].BackingVector; WLinearColor draw_color = WLinearColor.White; if (EditorSelection.SelectedObjects.Contains(eye_vec.Data[0])) { draw_color = WLinearColor.FromHexString("0xFF4F00FF"); } world.DebugDrawBillboard("eye.png", eye_pos, new OpenTK.Vector3(100, 100, 100), draw_color, 0.025f); } Substance target = c.Properties.Find(x => x.Name.ToLower() == "center"); if (target != null) { Substance <ObservableCollection <BindingVector3> > target_vec = target as Substance <ObservableCollection <BindingVector3> >; target_pos = target_vec.Data[0].BackingVector; WLinearColor draw_color = WLinearColor.White; if (EditorSelection.SelectedObjects.Contains(target_vec.Data[0])) { draw_color = WLinearColor.FromHexString("0xFF4F00FF"); } world.DebugDrawBillboard("target.png", target_pos, new OpenTK.Vector3(100, 100, 100), draw_color, 0.025f); } if (eye != null && target != null) { world.DebugDrawLine(eye_pos, target_pos, WLinearColor.Black, 100000.0f, 0.025f); } c = c.NextCut; } } }