Accessing Shininess Property Causes Chart Objects to Appear White


Accessing Shininess Property Causes Chart Objects to Appear White
Author
Message
Lance Levendowski
Lance Levendowski
Forum Newbie (0 reputation)Forum Newbie (0 reputation)Forum Newbie (0 reputation)Forum Newbie (0 reputation)Forum Newbie (0 reputation)Forum Newbie (0 reputation)Forum Newbie (0 reputation)Forum Newbie (0 reputation)Forum Newbie (0 reputation)
Group: Forum Members
Posts: 60, Visits: 157
Getting or setting a series' FillStyle.MaterialStyle.Shininess property causes all of the bars to appear white, regardless of whether we change the property's value.

Is there any way to prevent this behavior?

See the following example:
Public Class ChartForm
  Inherits Windows.Forms.Form

  Public Sub New()
    Dim series1 As New Nevron.Chart.NBarSeries
    series1.BarShape = Nevron.Chart.BarShape.SmoothEdgeBar
    series1.HasBottomEdge = False

    series1.AddDataPoint(New Nevron.Chart.NDataPoint(3))
    series1.AddDataPoint(New Nevron.Chart.NDataPoint(1))
    series1.AddDataPoint(New Nevron.Chart.NDataPoint(2))
    series1.AddDataPoint(New Nevron.Chart.NDataPoint(5))
    series1.AddDataPoint(New Nevron.Chart.NDataPoint(4))

    'BUG: Getting or setting a series' FillStyle.MaterialStyle.Shininess property causes all of the bars to appear white, regardless of whether we change the property's value.
    ' NOTE: If you comment out the following line then the bars appear to have the appropriate color.
    Dim currentShininess As Single = series1.FillStyle.MaterialStyle.Shininess
    'series1.FillStyle.MaterialStyle.Shininess = series1.FillStyle.MaterialStyle.Shininess

    Dim chart As New Nevron.Chart.NCartesianChart
    chart.Enable3D = True
    chart.Series.Add(series1)

    Dim chartControl As New Nevron.Chart.WinForm.NChartControl
    chartControl.Charts.Clear()
    chartControl.Charts.Add(chart)
    chartControl.Dock = DockStyle.Fill

    chartControl.Controller.Tools.Clear()
    chartControl.Controller.Tools.Add(New Nevron.Chart.Windows.NTrackballTool())
    chartControl.Controller.Selection.Clear()
    chartControl.Controller.Selection.Add(chart)

    Me.Size = New Drawing.Size(800, 600)
    Me.StartPosition = FormStartPosition.CenterScreen
    Me.Controls.Add(chartControl)
  End Sub

End Class

Nevron Support
Nevron Support
Supreme Being (4.5K reputation)Supreme Being (4.5K reputation)Supreme Being (4.5K reputation)Supreme Being (4.5K reputation)Supreme Being (4.5K reputation)Supreme Being (4.5K reputation)Supreme Being (4.5K reputation)Supreme Being (4.5K reputation)Supreme Being (4.5K reputation)
Group: Administrators
Posts: 3.1K, Visits: 4.2K
Hi Lance,
The problem in this case is that the MaterialStyle is created on demand with default values. For performance reasons all fill styles material style is initially null. You'll need to initialize the Ambient, Diffuse, Specular and Emissive colors from code if you don't want them to have the initial values (White for Ambient, Diffuse and Specular and Black for Emissive).

Best Regards,
Nevron Support Team


Lance Levendowski
Lance Levendowski
Forum Newbie (0 reputation)Forum Newbie (0 reputation)Forum Newbie (0 reputation)Forum Newbie (0 reputation)Forum Newbie (0 reputation)Forum Newbie (0 reputation)Forum Newbie (0 reputation)Forum Newbie (0 reputation)Forum Newbie (0 reputation)
Group: Forum Members
Posts: 60, Visits: 157
Thank you for the feedback, but what should I set the Ambient, Diffuse, Specular and Emissive colors to in order to restore the appearance of the chart objects to what they were before the MaterialStyle.Shininess property was accessed?


Nevron Support
Nevron Support
Supreme Being (4.5K reputation)Supreme Being (4.5K reputation)Supreme Being (4.5K reputation)Supreme Being (4.5K reputation)Supreme Being (4.5K reputation)Supreme Being (4.5K reputation)Supreme Being (4.5K reputation)Supreme Being (4.5K reputation)Supreme Being (4.5K reputation)
Group: Administrators
Posts: 3.1K, Visits: 4.2K
Hi Lance,
The ambient / diffuse colors must match the color of the fill style. You'll also need to set the specular to white and emissive to black. Hope this helps - let us know if you meet any problems.


Best Regards,
Nevron Support Team


GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Similar Topics

Reading This Topic

Login

Explore
Messages
Mentions
Search