public BlockStrip(DisplayOpenGL parent, IVisualizer visualizer) { if (!(visualizer is IDiscrete1D)) { Log.Error("BlockStrip cannot use the provided visualizer, as it does not output 1D discrete data."); throw new InvalidOperationException("Incompatible visualizer. Must implement IDiscrete1D."); } this.HostWindow = parent; this.DataSource = (IDiscrete1D)visualizer; this.BlockCount = this.DataSource.GetCountDiscrete(); this.GeometryData = new float[1]; GenerateGeometry(); }
public Tube(DisplayOpenGL parent, IVisualizer visualizer) { if (!(visualizer is IDiscrete1D)) { Log.Error("Tube cannot use the provided visualizer, as it does not output 1D discrete data."); throw new InvalidOperationException("Incompatible visualizer. Must implement IDiscrete1D."); } if (ColorChord.NoteFinder is not BaseNoteFinder) { throw new Exception("Tube currently only supports BaseNoteFinder."); } this.HostWindow = parent; this.DataSource = (IDiscrete1D)visualizer; this.TubeResolution = this.DataSource.GetCountDiscrete(); // TODO: Handle this changing this.HostWindow.UpdateFrame += UpdateFrame; }
public Radar(DisplayOpenGL parent, IVisualizer visualizer, Dictionary <string, object> config) { if (visualizer is not IDiscrete1D) { Log.Error("Radar cannot use the provided visualizer, as it does not output 1D discrete data."); throw new InvalidOperationException("Incompatible visualizer. Must implement IDiscrete1D."); } if (ColorChord.NoteFinder is not BaseNoteFinder) { throw new Exception("Radar currently only supports BaseNoteFinder."); } Configurer.Configure(this, config); this.HostWindow = parent; this.DataSource = (IDiscrete1D)visualizer; this.RadiusResolution = this.DataSource.GetCountDiscrete(); }