Class WAbstractGridData

java.lang.Object
Direct Known Subclasses:
WEquidistantGridData, WGridData

public abstract class WAbstractGridData
extends WAbstractDataSeries3D
Class representing grid-based data for on a 3D chart.

General information can be found at WAbstractDataSeries3D. Information on how the model is structured is provided in the subclasses. GridData can be represented in three ways. This is indicated by Series3DType and can be either PointSeries3D, SurfaceSeries3D or BarSeries3D. Note that points and surfaces can only be added to charts of type ScatterPlot, while bars can only be added to charts of type CategoryChart.

When the data is shown as a surface, a mesh can be added to the surface. This draws lines over the surface at the positions of the x- and y-values. For bar-series data, it is possible to adjust the width of the bars in both directions.

The three types of data-representation are illustrated below.

The three representation types of grid-based data

  • Field Details

  • Constructor Details

  • Method Details

    • minimum

      public abstract double minimum​(Axis axis)
      Description copied from class: WAbstractDataSeries3D
      Returns the computed minimum value of this dataseries along the given axis.

      Specified by:
      minimum in class WAbstractDataSeries3D
      See Also:
      WAbstractDataSeries3D.maximum(Axis axis)
    • maximum

      public abstract double maximum​(Axis axis)
      Description copied from class: WAbstractDataSeries3D
      Returns the computed maximum value of this dataseries along the given axis.

      Specified by:
      maximum in class WAbstractDataSeries3D
      See Also:
      WAbstractDataSeries3D.minimum(Axis axis)
    • setType

      public void setType​(Series3DType type)
      Sets the type of representation that will be used for the data.

      All representations in Series3DType are possible for the data. Note that PointSeries3D and SurfaceSeries3D can only be used on a chart that is configured as a ScatterPlot and BarSeries3D can only be used on a chart that is configured to be a CategoryChart.

      The default value is PointSeries3D.

    • getType

      public Series3DType getType()
      Returns the type of representation that will be used for the data.

      See Also:
      setType(Series3DType type)
    • setSurfaceMeshEnabled

      public void setSurfaceMeshEnabled​(boolean enabled)
      Enables or disables a mesh for when a surface is drawn.

      The default value is false. This option only takes effect when the type of this WGridData is SurfaceSeries3D. The mesh is drawn at the position of the x-axis and y-axis values.

    • setSurfaceMeshEnabled

      public final void setSurfaceMeshEnabled()
      Enables or disables a mesh for when a surface is drawn.

      Calls setSurfaceMeshEnabled(true)

    • isSurfaceMeshEnabled

      public boolean isSurfaceMeshEnabled()
      Returns whether the surface-mesh is enabled for this dataseries.

      See Also:
      setSurfaceMeshEnabled(boolean enabled)
    • setBarWidth

      public void setBarWidth​(double xWidth, double yWidth)
      Sets the bar-width.

      This option only takes effect when the type of this WGridData is BarSeries3D. The values provided should be between 0 and 1, where 1 lets the bars each take up 1/(nb of x/y-values) of the axis.

      The default bar-width is 0.5 in both directions.

    • getBarWidthX

      public double getBarWidthX()
      Returns the bar-width in the X-axis direction.

      See Also:
      setBarWidth(double xWidth, double yWidth)
    • getBarWidthY

      public double getBarWidthY()
      Returns the bar-width in the Y-axis direction.

      See Also:
      setBarWidth(double xWidth, double yWidth)
    • setPen

      public void setPen​(WPen pen)
      Sets the WPen that is used for drawing the mesh.

      Used when drawing the mesh on a surface or the lines around bars. The default is a default constructed WPen (black and one pixel wide).

      Note: only the width and color of this WPen are used.

      See Also:
      setSurfaceMeshEnabled(boolean enabled)
    • getPen

      public WPen getPen()
      Returns the pen that is used for drawing the mesh.

      See Also:
      setPen(WPen pen)
    • pickSurface

      public java.util.List<WSurfaceSelection> pickSurface​(int x, int y)
      Find all points on the surface that are projected to the given pixel.

      A ray is cast from the given pixel's x,y position (from the top left of the chart, in screen coordinates) and every intersection with the surface is returned, along with its distance from the look point. Note that the coordinates of the intersection points are interpolated between the data points that make up the surface.

    • pickBar

      public WBarSelection pickBar​(int x, int y)
      Return the bar that is closest to the look point at the given pixel.

      A ray is cast from the given pixel's x,y position (from the top left of the chart, in screen coordinates), and the closest bar on this WAbstractGridData is returned, along with its distance from the look point.

      Note that if this WAbstractGridData is hidden, this method still returns the closest bar as if it was visible. Also, if multiple bars are on the same bar chart, the bar that is returned may be behind another data series. Use the distance field of the returned WBarSelection to determine which data series is in front from the given angle.

      If there is no bar at the given pixel, then a selection with an invalid WModelIndex is returned. The distance is then set to positive infinity.

    • setIsoLevels

      public void setIsoLevels​(java.util.List<java.lang.Double> isoLevels)
      Set isoline levels.

      Isolines are drawn on the top or ground plane of the chart. Only applies if the type is SurfaceSeries3D.

      The isoline levels are set in the coordinate system of the item model.

    • getIsoLevels

      public java.util.List<java.lang.Double> getIsoLevels()
      Get all of the isoline levels.
    • setIsoColorMap

      public void setIsoColorMap​(WAbstractColorMap colormap)
      Set the color map for the isolines.

      When no color map is defined for the isolines, i.e. getIsoColorMap() is set to NULL, the color map of this WAbstractGridData will be used.

      The isolines are only drawn if the type is SurfaceSeries3D.

      See Also:
      WAbstractDataSeries3D.setColorMap(WAbstractColorMap colormap)
    • getIsoColorMap

      public WAbstractColorMap getIsoColorMap()
      Get the color map for the isolines.

      See Also:
      setIsoColorMap(WAbstractColorMap colormap)
    • setClippingMin

      public void setClippingMin​(Axis axis, float v)
      Set the value below which the data series will be clipped on the given axis.

      This only affects data series whose type is SurfaceSeries3D.

    • getClippingMin

      public float getClippingMin​(Axis axis)
      Gets the value below which the data series will be clipped on the given axis.

      See Also:
      setClippingMin(Axis axis, float v)
    • changeClippingMin

      public JSlot changeClippingMin​(Axis axis)
      JSlot to change the value below which the data series will be clipped on the given axis.

      The JSlot takes one extra argument: the value to clip below.

      The jsRef() of this JSlot is only valid when this WAbstractGridData has been added to a WCartesian3DChart. If this WAbstractGridData moves to another WCartesian3DChart, the jsRef() of the JSlot changes.

      See Also:
      setClippingMin(Axis axis, float v)
    • setClippingMax

      public void setClippingMax​(Axis axis, float v)
      Set the value above which the data series will be clipped on the given axis.

      This only affects data series whose type is SurfaceSeries3D.

    • getClippingMax

      public float getClippingMax​(Axis axis)
      Gets the value above which the data series will be clipped on the given axis.

      See Also:
      setClippingMax(Axis axis, float v)
    • changeClippingMax

      public JSlot changeClippingMax​(Axis axis)
      JSlot to change the value above which the data series will be clipped on the given axis.

      The JSlot takes one extra argument: the value to clip below.

      The jsRef() of this JSlot is only valid when this WAbstractGridData has been added to a WCartesian3DChart. If this WAbstractGridData moves to another WCartesian3DChart, the jsRef() of the JSlot changes.

      See Also:
      setClippingMax(Axis axis, float v)
    • setClippingLinesEnabled

      public void setClippingLinesEnabled​(boolean clippingLinesEnabled)
      Sets whether clipping lines should be drawn where a surface is clipped.

      Clipping lines are disabled by default. Note that rendering will be significantly slower when enabled.

    • isClippingLinesEnabled

      public boolean isClippingLinesEnabled()
      Returns whether clipping lines are enabled.

      See Also:
      setClippingLinesEnabled(boolean clippingLinesEnabled)
    • setClippingLinesColor

      public void setClippingLinesColor​(WColor clippingLinesColor)
      Sets the color of the clipping lines.

      See Also:
      setClippingLinesEnabled(boolean clippingLinesEnabled)
    • getClippingLinesColor

      public WColor getClippingLinesColor()
      Gets the color of the clipping lines.

      See Also:
      setClippingLinesColor(WColor clippingLinesColor), setClippingLinesEnabled(boolean clippingLinesEnabled)
    • getNbXPoints

      public abstract int getNbXPoints()
    • getNbYPoints

      public abstract int getNbYPoints()
    • axisLabel

      public abstract WString axisLabel​(int u, Axis axis)
    • setChart

      public void setChart​(WCartesian3DChart chart)
      Overrides:
      setChart in class WAbstractDataSeries3D
    • getGlObjects

      public java.util.List<java.lang.Object> getGlObjects()
      Overrides:
      getGlObjects in class WAbstractDataSeries3D
    • initializeGL

      public void initializeGL()
      Description copied from class: WAbstractDataSeries3D
      Initialize GL resources.

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

      Specified by:
      initializeGL in class WAbstractDataSeries3D
    • paintGL

      public void paintGL()
      Description copied from class: WAbstractDataSeries3D
      Update the client-side painting function.

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

      Specified by:
      paintGL in class WAbstractDataSeries3D
    • updateGL

      public void updateGL()
      Description copied from class: WAbstractDataSeries3D
      Update GL resources.

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

      Specified by:
      updateGL in class WAbstractDataSeries3D
      See Also:
      WAbstractDataSeries3D.deleteAllGLResources()
    • resizeGL

      public void resizeGL()
      Description copied from class: WAbstractDataSeries3D
      Act on resize events.

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

      Specified by:
      resizeGL in class WAbstractDataSeries3D
    • deleteAllGLResources

      public void deleteAllGLResources()
      Description copied from class: WAbstractDataSeries3D
      Delete GL resources.

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

      Specified by:
      deleteAllGLResources in class WAbstractDataSeries3D
    • barDataFromModel

      protected abstract void barDataFromModel​(java.util.List<java.nio.ByteBuffer> simplePtsArrays)
    • barDataFromModel

      protected abstract void barDataFromModel​(java.util.List<java.nio.ByteBuffer> simplePtsArrays, java.util.List<java.nio.ByteBuffer> coloredPtsArrays, java.util.List<java.nio.ByteBuffer> coloredPtsColors)