Class WAbstractDataSeries3D

  • Direct Known Subclasses:
    WAbstractGridData, WScatterData

    public abstract class WAbstractDataSeries3D
    extends WObject
    Abstract base class for dataseries that can be drawn on a WCartesian3DChart.

    General

    The model that is provided at construction or with setModel() contains the data of a dataseries. Implementations of this class format the data for representation on the chart and perform all necessary drawing operations. Note that if a dataseries holds numerical data it should be added to a chart of type ChartType.Scatter, if it holds categorical data it should be added to a chart of type ChartType.Category.

    Color

    The color used to draw data on a chart can be specified in a number of ways. The priority of this is as follows (1 being the highest):

    1. ItemDataRole.MarkerBrushColor set on a value in the model
    2. WAbstractColorMap set on the dataseries
    3. WChartPalette present in the chart

    A chart-palette will specify one color for the entire dataseries. Each new dataseries on a chart will receive another color.
    A colormap assigns different colors to the data within one dataseries, based on the z-value of the data. WStandardColorMap provides an easy way to create a colormap that is either smooth or consists of a number of bands.

    Data-roles

    The roles on the model which are taken into account are:

    Some representations of the data ignore these roles. For example, when a surface is drawn, the roles are ignored.

    Implementing a new dataseries class

    When the existing implementations of WAbstractDataSeries3D don't meet your needs, you might want to make your own. When doing this there are some details of the chart that you should know. The chart is made so that when a property of the chart changes, which affect any of the GL resources, all GL resources are destroyed and re-initialized. This eliminates the need to determine which chart-setting affect which GL-resources, which can be a complicated problem.

    Therefore only unchanging GL resources are initialized in initializeGL(). The initializeGL function in the chart is implemented to immediately request a call to updateGL(), which then initializes the rest of the GL resources. Every call to updateGL in the chart, will first call deleteAllGLResources() on all dataseries and will then call updateGL() on all dataseries. So, when implementing a dataseries: initialize unchanging GL resources in initializeGL(), initialize the rest of your GL resources in updateGL() and make GL-delete calls to all resources initialized in updateGL() in the function deleteAllGLResources(). It is also best to check isNull() on each of your GL-resources when deleting them.

    • Constructor Detail

      • WAbstractDataSeries3D

        public WAbstractDataSeries3D​(WAbstractItemModel model)
        Constructor.

        This constructor takes a WAbstractItemModel as an argument. The model contains the data of this dataseries. How the model should be structured is dependent on the implementation. Therefore this information is found in the documentation of classes deriving from this one.

    • Method Detail

      • setTitle

        public void setTitle​(java.lang.CharSequence name)
        Sets the title of this dataseries.

        When a dataseries that did not have a title set, is added to a WCartesian3DChart it automatically gets the default title 'dataset i', with i the count of how many dataseries have been added to the chart.

      • getTitle

        public WString getTitle()
        Returns the title of this dataseries.
      • setModel

        public void setModel​(WAbstractItemModel model)
        Sets a model from which the dataseries gets its data.

        Every dataseries needs a model from which it gets the data. How the data is structured is determined by the type of dataseries. Therefore more info on how to construct a proper model is provided in classes that derive from this one.

        See Also:
        getModel(), WAbstractDataSeries3D(WAbstractItemModel model)
      • minimum

        public abstract double minimum​(Axis axis)
        Returns the computed minimum value of this dataseries along the given axis.

        See Also:
        maximum(Axis axis)
      • maximum

        public abstract double maximum​(Axis axis)
        Returns the computed maximum value of this dataseries along the given axis.

        See Also:
        minimum(Axis axis)
      • setPointSize

        public void setPointSize​(double size)
        Sets the pointsize for drawing this dataseries.

        The default pointsize is 2 pixels.

        Note: Setting the point-size is currently not supported in IE.

      • getPointSize

        public double getPointSize()
        Returns the pointsize for drawing this dataseries.

        See Also:
        setPointSize(double size)
      • setPointSprite

        public void setPointSprite​(java.lang.String image)
        Set the point sprite used for drawing this dataseries.

        This should be a local (server side) path to an image, such as a PNG or GIF. Only the alpha channel of this image is used: the sprite only decides if a pixel in the point appears or not. If the alpha value is below 0.5, the pixel is discarded.

        For best effect, the point sprite's width and height should be the same as the getPointSize(), and the chart's antialiasing should be disabled.

        Defaults to the empty string, meaning that every pixel of the point will be drawn, yielding a square.

      • getPointSprite

        public java.lang.String getPointSprite()
        Returns the point sprite used for drawing this dataseries.

        See Also:
        setPointSprite(String image)
      • setColorMapVisible

        public final void setColorMapVisible()
        Sets whether the colormap that is used should be shown alongside the chart in the form of a legend.

        Calls setColorMapVisible(true)

      • setLegendEnabled

        public void setLegendEnabled​(boolean enabled)
        Sets whether this dataseries is included in the chart-legend.

        By default, dataseries are enabled in the legend.

      • setLegendEnabled

        public final void setLegendEnabled()
        Sets whether this dataseries is included in the chart-legend.

        Calls setLegendEnabled(true)

      • setHidden

        public void setHidden​(boolean enabled)
        Sets if this dataseries is hidden.

        By default dataseries are visible.

      • setHidden

        public final void setHidden()
        Sets if this dataseries is hidden.

        Calls setHidden(true)

      • setDefaultTitle

        public void setDefaultTitle​(int i)
      • getChartpaletteColor

        public WColor getChartpaletteColor()
      • getGlObjects

        public java.util.List<java.lang.Object> getGlObjects()
      • initializeGL

        public abstract void initializeGL()
        Initialize GL resources.

        This function is called by initializeGL() in the chart to which this dataseries was added.

      • paintGL

        public abstract void paintGL()
        Update the client-side painting function.

        This function is called by paintGL() in the chart to which this dataseries was added.

      • resizeGL

        public abstract void resizeGL()
        Act on resize events.

        This function is called by resizeGL() in the chart to which this dataseries was added.

      • deleteAllGLResources

        public abstract void deleteAllGLResources()
        Delete GL resources.

        This function is called by updateGL() in the chart to which this dataseries was added.

      • loadPointSpriteTexture

        protected void loadPointSpriteTexture​(WGLWidget.Texture tex)