/// <summary> /// Adds a graph component to the control /// </summary> public void AddGraphComponent( GraphComponent component ) { m_GraphComponents.Add( component ); GraphComponentControl componentControl = new GraphComponentControl( component ); componentControl.AssociatedGraphControl = m_GraphControl; componentControl.Anchor |= AnchorStyles.Right; tableLayoutPanel1.Controls.Add( componentControl ); }
public GraphComponentControl( GraphComponent graphComponent ) { InitializeComponent( ); m_GraphComponent = graphComponent; graphComponent.Source.GraphChanged += OnGraphChanged; enableCheckbox.Checked = !GraphComponent.Source.Disabled; graphNameLabel.Text = GraphComponent.Name; Color dark = GraphUtils.ScaleColour( Color.LightSteelBlue, 0.9f ); Color light = Color.White; m_Blends = GraphUtils.CreateColourBlend( light, 0, light, 0.75f, dark, 1 ); m_SelectedBlends = GraphUtils.CreateColourBlend( dark, 0, dark, 0.75f, light, 1 ); }
public TestForm() { InitializeComponent(); IGraph2dSource data = new Graph2dSourceUniformValue( Graph2dSourceUniformValue.Axis.X, 0.5f ); GraphComponent component = new GraphComponent( "test0", data, data.CreateRenderer( ), new Graph2dUniformValueController( ) ); component.Renderer.Colour = m_Colours.NextColour( ); graphControl1.AddGraphComponent( component ); data = new GraphX2dSourceFunction( 0, 100, -1, 1, delegate( float x ) { return ( float )Math.Sin( x ); } ); component = new GraphComponent( "test1", data, data.CreateRenderer( ), null ); component.Renderer.Colour = m_Colours.NextColour( ); graphControl1.AddGraphComponent( component ); if ( m_EnableDynamicSource ) { data = m_DynamicSource; m_DynamicSource.MaximumNumberOfSamples = 100; component = new GraphComponent( "dynamic source", data, data.CreateRenderer( ), null ); component.Renderer.Colour = m_Colours.NextColour( ); graphControl1.AddGraphComponent( component ); } GraphX2dSourceLineSegments segData = new GraphX2dSourceLineSegments( ); segData.AddControlPoint( new Graph2dSourcePiecewiseLinear.ControlPoint( 0, 1 ) ); segData.AddControlPoint( new Graph2dSourcePiecewiseLinear.ControlPoint( 0.2f, 0.3f ) ); segData.AddControlPoint( new Graph2dSourcePiecewiseLinear.ControlPoint( 0.6f, 0.8f ) ); IGraph2dRenderer renderer = segData.CreateRenderer( ); renderer.Colour = m_Colours.NextColour( ); graphControl1.AddGraphComponent( new GraphComponent( "very long graph name that will overrun bounds", segData, renderer, new GraphX2dControlPointController( ) ) ); foreach ( GraphComponent graphComponent in graphControl1.GraphComponents ) { graphComponentsControl1.AddGraphComponent( graphComponent ); } graphComponentsControl1.AssociatedGraphControl = graphControl1; }
/// <summary> /// Removes a graph component from the control /// </summary> public bool RemoveGraphComponent( GraphComponent component ) { if ( !m_GraphComponents.Remove( component ) ) { return false; } foreach ( Control control in tableLayoutPanel1.Controls ) { GraphComponentControl graphControl = control as GraphComponentControl; if ( graphControl == null ) { continue; } if ( graphControl.GraphComponent == component ) { tableLayoutPanel1.Controls.Remove( control ); return true; } } return false; }
/// <summary> /// Removes a graph component frmo the control /// </summary> /// <param name="component"></param> public void RemoveGraphComponent( GraphComponent component ) { if ( component != null ) { m_GraphComponents.Remove( component ); Invalidate( ); } }
/// <summary> /// Adds a graph component to the control /// </summary> public GraphComponent AddGraphComponent( GraphComponent component ) { if ( component == null ) { throw new ArgumentNullException( "component" ); } m_GraphComponents.Add( component ); component.Source.GraphChanged += delegate { Invalidate( ); }; Invalidate( ); return component; }
/// <summary> /// Sets up this control /// </summary> /// <param name="altitudeGraph">Altitude distribution graph</param> /// <param name="slopeGraph">Slope distribution graph</param> public void Initialise( GraphControl altitudeGraph, GraphControl slopeGraph ) { Arguments.CheckNotNull( altitudeGraph, "altitudeGraph" ); Arguments.CheckNotNull( slopeGraph, "slopeGraph" ); m_SlopeGraphComponent = new GraphComponent( "", new GraphX2dSourceFunction1dAdapter( TerrainType.SlopeDistribution ) ); m_AltitudeGraphComponent = new GraphComponent( "", new GraphX2dSourceFunction1dAdapter( TerrainType.AltitudeDistribution ) ); m_SlopeGraphComponent.Source.GraphChanged += OnGraphChanged; m_AltitudeGraphComponent.Source.GraphChanged += OnGraphChanged; m_AltitudeGraph = altitudeGraph; m_SlopeGraph = slopeGraph; m_SlopeGraph.AddGraphComponent( m_SlopeGraphComponent ); m_AltitudeGraph.AddGraphComponent( m_AltitudeGraphComponent ); selectedCheckBox.Checked = true; }