Class TLspOffscreenView

java.lang.Object
com.luciad.view.lightspeed.TLspOffscreenView
All Implemented Interfaces:
ILcdPropertyChangeSource, ILcdLayered, ILcdTreeLayered, ILcdView, ILspView, Serializable

public class TLspOffscreenView extends Object implements ILspView

An offscreen Lightspeed view that uses an internal buffer to render images to.

To perform a paint operation, use the display(boolean) method. This allows the view to be repainted into the internal buffer. The resulting image can be retrieved using getImage().

Note that an instance of this class can only be used on a single thread: the thread that was used to construct an instance of this class. Furthermore, the invokeLater(Runnable) method requires that the user specifies an ALcdPaintExecutorService, since it cannot otherwise schedule arbitrary work on a thread over which it has no control.

Since:
2012.0
See Also:
  • Constructor Details

    • TLspOffscreenView

      public TLspOffscreenView() throws UnsatisfiedLinkError
      Creates a new offscreen view with a default configuration. Note that TLspViewBuilder provides a convenient way of configuring views if you wish to deviate from the default settings for any reason.
      Throws:
      UnsatisfiedLinkError
    • TLspOffscreenView

      public TLspOffscreenView(int aWidth, int aHeight) throws UnsatisfiedLinkError
      Creates a new view with given width and height.
      Throws:
      UnsatisfiedLinkError - when the OpenGL binding native libraries could not be loaded
  • Method Details

    • getPaintExecutorService

      public ALcdPaintExecutorService getPaintExecutorService()
      Returns the executor service which is used by the invokeLater(java.lang.Runnable) method. By default, the service is null.
      Returns:
      the paint executor service of this view
      Since:
      2020.0
      See Also:
    • setPaintExecutorService

      public void setPaintExecutorService(ALcdPaintExecutorService aPaintExecutorService)
      Sets the view's paint executor service, which is used by the invokeLater(java.lang.Runnable) method. Note that invokeLater() cannot be used until an executor service has been set.
      Parameters:
      aPaintExecutorService - the executor service to be used by this view
      Since:
      2020.0
      See Also:
    • addLayerSelectionListener

      public void addLayerSelectionListener(ILcdSelectionListener aSelectionListener)
      Description copied from interface: ILspView
      Adds the given ILcdSelectionListener to the view so that is notified of any selection changes in any of the view's layers.
      Specified by:
      addLayerSelectionListener in interface ILspView
      Parameters:
      aSelectionListener - the selection listener to add
    • removeLayerSelectionListener

      public void removeLayerSelectionListener(ILcdSelectionListener aSelectionListener)
      Description copied from interface: ILspView
      Removes the given ILcdSelectionListener from the view so that it is no longer notified of selection changes.
      Specified by:
      removeLayerSelectionListener in interface ILspView
      Parameters:
      aSelectionListener - the selection listener to remove
    • addLayerModelListener

      public void addLayerModelListener(ILcdModelListener aModelListener)
      Description copied from interface: ILspView
      Adds a ILcdModelListener to receive model change events from any layer's model in this view.
      Specified by:
      addLayerModelListener in interface ILspView
      Parameters:
      aModelListener - the listener that will be notified of model change events from any layer's model in this view.
    • removeLayerModelListener

      public void removeLayerModelListener(ILcdModelListener aModelListener)
      Description copied from interface: ILspView
      Unregisters the given ILcdModelListener from receiving model change events from any layer's model in this view.
      Specified by:
      removeLayerModelListener in interface ILspView
      Parameters:
      aModelListener - a listener that the view will no longer notify of model change events
    • getViewXYZWorldTransformation

      public ALspViewXYZWorldTransformation getViewXYZWorldTransformation()
      Description copied from interface: ILspView
      Returns the transformation that is used to transform from view coordinates to world coordinates and vice versa.
      Specified by:
      getViewXYZWorldTransformation in interface ILspView
      Returns:
      the transformation that is used to transform from view coordinates to world coordinates and vice versa.
    • setViewXYZWorldTransformation

      public void setViewXYZWorldTransformation(ALspViewXYZWorldTransformation aViewXYZWorldTransformation)
      Description copied from interface: ILspView
      Sets the transformation that is used to transform from view coordinates to world coordinates and vice versa.

      TLspViewTransformationUtil provides a convenient way to set up a 2D or 3D view.

      Specified by:
      setViewXYZWorldTransformation in interface ILspView
      Parameters:
      aViewXYZWorldTransformation - the transformation that is used to transform from view coordinates to world coordinates and vice versa.
    • addLayer

      public void addLayer(ILspLayer aLayer)
      Description copied from interface: ILspView
      Adds the given layer to the view.
      Specified by:
      addLayer in interface ILspView
      Parameters:
      aLayer - the layer to add
    • addLayersFor

      public Collection<ILspLayer> addLayersFor(ILcdModel aModel)
      Description copied from interface: ILspView
      Adds a model to be displayed in this view. To this effect, the view asks its layer factory to create one or more ILspLayers for the model, and adds that to its layer list. This method returns the layers that were created, or null if the layer factory failed to create a layer.
      Specified by:
      addLayersFor in interface ILspView
      Parameters:
      aModel - the model to be added to the view as a new layer
      Returns:
      the layers that were added
    • getController

      public ILspController getController()
      Description copied from interface: ILspView
      Gets the controller that the view uses to forward input events to.
      Specified by:
      getController in interface ILspView
      Returns:
      the controller the view uses to forward input events to
    • setController

      public void setController(ILspController aController)
      Description copied from interface: ILspView
      Sets the controller that the view will forward input events to. Only one controller can be active at a time. It is the responsibility of the view to call startInteraction when a controller is set on the view, and terminateInteraction when the controller is removed from the view. To detach a controller from the view, you either set another controller or you set the controller to null. Furthermore, the view is responsible for providing input events to the controller via its ILcdAWTEventListener.handleAWTEvent(java.awt.AWTEvent) handleAWTEvent} method. Finally, the view must also invoke the paint method of its controller any time the view itself is repainted.
      Specified by:
      setController in interface ILspView
      Parameters:
      aController - the controller to be used for the view
    • getXYZWorldReference

      public ILcdXYZWorldReference getXYZWorldReference()
      Description copied from interface: ILspView
      Returns the view's current world coordinate system.
      Specified by:
      getXYZWorldReference in interface ILspView
      Returns:
      the view's world coordinate system
    • setXYZWorldReference

      public void setXYZWorldReference(ILcdXYZWorldReference aXYZWorldReference)
      Description copied from interface: ILspView
      Sets the view's world coordinate system, repainting the view according to isAutoUpdate.

      TLspViewTransformationUtil provides a convenient way to set up a 2D or 3D view.

      Specified by:
      setXYZWorldReference in interface ILspView
      Parameters:
      aXYZWorldReference - the new world reference associated to this view
    • getLayerFactory

      public ILspLayerFactory getLayerFactory()
      Description copied from interface: ILspView
      Sets the factory used to create layers for models added to the view using addModel.
      Specified by:
      getLayerFactory in interface ILspView
      Returns:
      the factory used to create layers for models added to the view
    • setLayerFactory

      public void setLayerFactory(ILspLayerFactory aLayerFactory)
      Description copied from interface: ILspView
      Sets the factory used to create layers for models added to the view using addModel.
      Specified by:
      setLayerFactory in interface ILspView
      Parameters:
      aLayerFactory - the factory that will be used to create layers for models added to the view
    • removeModel

      public void removeModel(ILcdModel aILcdModel)
      Description copied from interface: ILcdView
      Removes a single representation of the specified model from this view, if it is present in the view.
      Specified by:
      removeModel in interface ILcdView
    • addModel

      public void addModel(ILcdModel aModel)
      Description copied from interface: ILcdView
      Adds aModel to be displayed in this ILcdView.
      Specified by:
      addModel in interface ILcdView
    • containsLayer

      public boolean containsLayer(ILcdLayer aILcdLayer)
      Description copied from interface: ILcdTreeLayered

      Returns whether the flat list representation of the hierarchical layer structure contains the given layer. More formally, returns true if and only if the flat list representation contains at least one layer l such that (aLayer==null ? l==null : aLayer.equals(l)).

      Calling this method with the root node will return false, since the root node is not a part of the flat list representation.

      Specified by:
      containsLayer in interface ILcdLayered
      Specified by:
      containsLayer in interface ILcdTreeLayered
      Parameters:
      aILcdLayer - the layer to check whether it is in the flat list representation
      Returns:
      true when the flat list representation contains the given layer, false otherwise
    • removeAllLayers

      public void removeAllLayers()
      Description copied from interface: ILcdTreeLayered

      Remove all the layers from the hierarchical layer structure and the flat list representation. An event will be fired for every layer that has been removed. This will not remove the root node.

      Specified by:
      removeAllLayers in interface ILcdLayered
      Specified by:
      removeAllLayers in interface ILcdTreeLayered
    • removeLayer

      public void removeLayer(ILcdLayer aILcdLayer)
      Description copied from interface: ILcdTreeLayered

      Removes a layer from both the hierarchical layer structure and the flat list representation. When removing an ILcdLayerTreeNode all of its children will also be removed. An event will then be generated for every layer that has been removed (one for the node and one for each of its child layers).

      It is not possible to remove the root node

      Specified by:
      removeLayer in interface ILcdLayered
      Specified by:
      removeLayer in interface ILcdTreeLayered
      Parameters:
      aILcdLayer - the layer to remove. If the layer is not in the flat list, this method has no effect.
    • moveLayerAt

      public void moveLayerAt(int i, ILcdLayer aILcdLayer) throws NoSuchElementException, ArrayIndexOutOfBoundsException
      Description copied from interface: ILcdLayered
      Moves the given layer (which is already in ILcdLayered) to the existing index aIndex. When a layer is moved down, all layers in between the previous and future position of the given layer (including the layer at index aIndex) are moved one position up. When a layer is moved up, all layers in between the previous and future position of the given layer (including the layer at index aIndex) are moved one position down.

      More formally, let previousIndex be the index of aLayer before the move. If previousIndex < aIndex, then the index of all ILcdLayer objects in from previousIndex + 1 to aIndex is decremented with 1. If previousIndex > aIndex, then the index of all ILcdLayer objects in from aIndex to previousIndex -1 is incremented with 1.

      Specified by:
      moveLayerAt in interface ILcdLayered
      Parameters:
      i - the index of the position where to move the layer.
      aILcdLayer - the layer to move.
      Throws:
      NoSuchElementException - if aLayer is not in this ILcdLayered.
      ArrayIndexOutOfBoundsException - if aIndex is not an index of one of the layers of this ILcdLayered.
    • indexOf

      public int indexOf(ILcdLayer aILcdLayer) throws NoSuchElementException
      Description copied from interface: ILcdTreeLayered

      Returns the index of the given layer aLayer in the flat list representation of the hierarchical structure.

      Specified by:
      indexOf in interface ILcdLayered
      Specified by:
      indexOf in interface ILcdTreeLayered
      Parameters:
      aILcdLayer - the layer whose index to return
      Returns:
      the index of aLayer in the flat list representation
      Throws:
      NoSuchElementException - if aLayer is not in the flat list
    • layerOf

      public ILspLayer layerOf(ILcdModel aILcdModel) throws NoSuchElementException
      Description copied from interface: ILcdTreeLayered
      Returns the ILcdLayer of the flat list that contains the given ILcdModel.
      Specified by:
      layerOf in interface ILcdLayered
      Specified by:
      layerOf in interface ILcdTreeLayered
      Parameters:
      aILcdModel - the model to check for in the flat list
      Returns:
      the ILcdLayer of the flat list that contains the given ILcdModel.
      Throws:
      NoSuchElementException - if there is no layer containing the given model
    • getLayer

      public ILspLayer getLayer(int i) throws ArrayIndexOutOfBoundsException
      Description copied from interface: ILspView
      Returns the layer at the given index.
      Specified by:
      getLayer in interface ILcdLayered
      Specified by:
      getLayer in interface ILcdTreeLayered
      Specified by:
      getLayer in interface ILspView
      Parameters:
      i - the index of the requested layer
      Returns:
      the layer at the given index
      Throws:
      ArrayIndexOutOfBoundsException - if the given index is invalid
    • layersBackwards

      public Enumeration layersBackwards()
      Description copied from interface: ILcdTreeLayered

      Returns an Enumeration of all the ILcdLayers currently in the flat list representation of the hierarchical layer structure, starting from the top layer to the bottom layer. This does not include the root node.

      Specified by:
      layersBackwards in interface ILcdLayered
      Specified by:
      layersBackwards in interface ILcdTreeLayered
      Returns:
      an Enumeration of all the ILcdLayers currently in the flat list, starting from the top layer to the bottom layer. Does not include the root node.
    • layers

      public Enumeration layers()
      Description copied from interface: ILcdTreeLayered

      Returns an Enumeration of all the ILcdLayers currently in the flat list representation of the hierarchical layer structure, starting from the bottom layer to the top layer. This does not include the root node.

      Specified by:
      layers in interface ILcdLayered
      Specified by:
      layers in interface ILcdTreeLayered
      Returns:
      an Enumeration of all the ILcdLayers currently in the flat list, starting from the bottom layer to the top layer. Does not include the root node.
    • layerCount

      public int layerCount()
      Description copied from interface: ILcdTreeLayered

      Returns the number of layers in the flat list representation of the hierarchical layer structure. This does not include the root node.

      Specified by:
      layerCount in interface ILcdLayered
      Specified by:
      layerCount in interface ILcdTreeLayered
      Returns:
      the number of layers in the flat list. Does not include the root node.
    • removeLayeredListener

      public void removeLayeredListener(ILcdLayeredListener aILcdLayeredListener)
      Description copied from interface: ILcdTreeLayered
      Unregisters the given ILcdLayeredListener from receiving layered events for the flat list.
      Specified by:
      removeLayeredListener in interface ILcdLayered
      Specified by:
      removeLayeredListener in interface ILcdTreeLayered
      Parameters:
      aILcdLayeredListener - the listener that will no longer be notified of changes in the flat list.
      See Also:
    • addLayeredListener

      public void addLayeredListener(ILcdLayeredListener aILcdLayeredListener)
      Description copied from interface: ILcdTreeLayered
      Registers the given ILcdLayeredListener to be notified when layers are added, removed or moved in the flat list.
      Specified by:
      addLayeredListener in interface ILcdLayered
      Specified by:
      addLayeredListener in interface ILcdTreeLayered
      Parameters:
      aILcdLayeredListener - the listener that from now on will be notified of all changes to the flat list.
      See Also:
    • getRootNode

      public ILcdLayerTreeNode getRootNode()
      Description copied from interface: ILcdTreeLayered

      Returns the root node of the tree structure.

      Specified by:
      getRootNode in interface ILcdTreeLayered
      Returns:
      the root node of the tree structure
    • addViewInvalidationListener

      public void addViewInvalidationListener(ILcdViewInvalidationListener aInvalidationListener)
      Description copied from interface: ILspView
      Registers an ILcdViewInvalidationListener to be informed when the view's contents are invalid. This can happen directly (e.g. by calling ILcdView.invalidate(boolean, Object, String)) or indirectly (e.g. by using a controller)
      Specified by:
      addViewInvalidationListener in interface ILspView
      Parameters:
      aInvalidationListener - the listener to notify when the view has been invalidated
      See Also:
    • removeViewInvalidationListener

      public void removeViewInvalidationListener(ILcdViewInvalidationListener aInvalidationListener)
      Description copied from interface: ILspView
      Unregisters an ILcdViewInvalidationListener so that it is no longer informed of invalidation events for this view.
      Specified by:
      removeViewInvalidationListener in interface ILspView
      Parameters:
      aInvalidationListener - the listener to no longer notify when the view has been invalidated
      See Also:
    • addViewListener

      public void addViewListener(ILspViewListener aViewListener)
      Description copied from interface: ILspView
      Adds the given ILspViewListener to the view to be notified of initialization, disposal or render events.
      Specified by:
      addViewListener in interface ILspView
      Parameters:
      aViewListener - the view listener to add
    • removeViewListener

      public void removeViewListener(ILspViewListener aViewListener)
      Description copied from interface: ILspView
      Removes the given ILspViewListener from the view.
      Specified by:
      removeViewListener in interface ILspView
      Parameters:
      aViewListener - the view listener to remove.
    • getBackground

      public Color getBackground()
      Description copied from interface: ILspView
      Returns the view's background clear color.
      Specified by:
      getBackground in interface ILspView
      Returns:
      the color which is used for clearing the background
    • setBackground

      public void setBackground(Color aColor)
      Description copied from interface: ILspView
      Sets the view's background clear color.
      Specified by:
      setBackground in interface ILspView
      Parameters:
      aColor - the color to be used for clearing the background
    • getGLDrawable

      public ILcdGLDrawable getGLDrawable()
      Description copied from interface: ILspView
      Returns the OpenGL drawable associated with this view. The drawable acts as the view's entry point to the OpenGL API.

      The default implementation of this method returns null.

      Specified by:
      getGLDrawable in interface ILspView
      Returns:
      the OpenGL drawable associated with this view
    • getWidth

      public int getWidth()
      Description copied from interface: ILspView
      Returns the view's current width in number of screen pixels. Divide by the DPI scale to obtain toolkit pixels.
      Specified by:
      getWidth in interface ILspView
      Returns:
      the width of the view
    • getHeight

      public int getHeight()
      Description copied from interface: ILspView
      Returns the view's current height in number of screen pixels. Divide by the DPI scale to obtain toolkit pixels.
      Specified by:
      getHeight in interface ILspView
      Returns:
      the height of the view
    • addPropertyChangeListener

      public void addPropertyChangeListener(PropertyChangeListener listener)
      Description copied from interface: ILspView
      Registers the given PropertyChangeListener to be notified when this view's properties change.
      Specified by:
      addPropertyChangeListener in interface ILcdPropertyChangeSource
      Specified by:
      addPropertyChangeListener in interface ILspView
      Parameters:
      listener - the listener to notify of changes of this view's properties
      See Also:
    • removePropertyChangeListener

      public void removePropertyChangeListener(PropertyChangeListener listener)
      Description copied from interface: ILspView
      Unregisters the given PropertyChangeListener from receiving property change events for this view.
      Specified by:
      removePropertyChangeListener in interface ILcdPropertyChangeSource
      Specified by:
      removePropertyChangeListener in interface ILspView
      Parameters:
      listener - the listener that should no longer be notified of changes of this views properties
      See Also:
    • setCursor

      public void setCursor(Cursor aCursor)
    • getCursor

      public Cursor getCursor()
    • resize

      public void resize(int aWidth, int aHeight)
      Resizes this TLspOffscreenView.
      Parameters:
      aWidth - a new width
      aHeight - a new height
    • invalidate

      public void invalidate(boolean aRepaint, Object aSource, String aReason)
      Description copied from interface: ILcdView
      Invalidate the content of this ILcdView.
      Specified by:
      invalidate in interface ILcdView
      Parameters:
      aRepaint - if true, this ILcdView shall be repainted immediately.
      aSource - the class instance that calls this method. Used for tracing.
      aReason - a message associated with this call. Used for tracing.
    • display

      public boolean display()
      Paints the current state of the view to an offscreen PBuffer, without waiting for the painting to finish completely. This is equivalent to calling display(false).
      Returns:
      A boolean flag indicating whether the paint was fully finished.
    • display

      public boolean display(boolean aWaitTillFinished)
      Paints the current state of the view to an offscreen PBuffer. The given boolean indicates whether or not this method should block until the view has completely finished painting. If true, this method will block the caller until painting is finished, otherwise only a partial paint will be performed. This partial paint can be useful for displaying partial results in an image.
      Parameters:
      aWaitTillFinished - whether or not this method should wait until the painting to PBuffer was finished completely.
      Returns:
      A boolean flag indicating whether the paint was fully finished. Note that when the aWaitTillFinished was true, this will also be true.
    • isAutoUpdate

      public boolean isAutoUpdate()
      Description copied from interface: ILspView
      Returns true if the view automatically updates its representation upon receiving any event that might require an update. Such events can include changes to properties of the view or to an Object in a model, or addition/removal of models.
      Specified by:
      isAutoUpdate in interface ILcdView
      Specified by:
      isAutoUpdate in interface ILspView
      Returns:
      true if the view automatically updates when necessary; false if the view must be repainted manually
      See Also:
    • setAutoUpdate

      public void setAutoUpdate(boolean b)
      Description copied from interface: ILspView
      Sets whether to update the view's representation automatically to keep it in sync with its state and the state of its models.
      Specified by:
      setAutoUpdate in interface ILcdView
      Specified by:
      setAutoUpdate in interface ILspView
      Parameters:
      b - true if the view should update automatically; false if it will be repainted manually
      See Also:
    • getImage

      public BufferedImage getImage()

      Returns a BufferedImage that represents this view.

      This method will only repaint the view if it has been invalidated. This will happen automatically if auto-updating is enabled. A repaint can also be forced by calling the display method.

      This method may re-use and return the same image instance to improve efficiency. So the returned image may change when this method is called again.

      Returns:
      an image of the view
      See Also:
    • print

      public void print(Graphics2D aGraphics)
      Prints the contents of the view to the given graphics. This method is the equivalent of java.awt.Component.print() for offscreen views.

      The view must not be changed while printing. This includes all layers in the view and their models. A typical case is a model that is updated asynchronously (for example updates received from a remote server or a updates from a simulation). These asynchronous updates should be paused before starting the print. You can for example do this by taking a read lock on all models in the view.

      Parameters:
      aGraphics - the Graphics context in which to paint
    • print

      public void print(Graphics2D aGraphics, TLspViewPrintSettings aPrintSettings)
      Prints the contents of the view to the given graphics. The TLspViewPrintSettings object provides additional configuration options for the print, such as the aspect ratio.

      When doing multi-page prints, it is strongly recommended to call beginPrinting() before the first page and endPrinting() after the last. This avoids redundant state changes in between pages, thus reducing the time needed to complete the print. It also avoids potential inconsistencies between pages due to animations or other changes. If these methods are not called, print() will call them itself. For single-page prints, this is sufficient.

      The view must not be changed while printing. This includes all layers in the view and their models. A typical case is a model that is updated asynchronously (for example updates received from a remote server or a updates from a simulation). These asynchronous updates should be paused before starting the print. You can for example do this by taking a read lock on all models in the view.

      Parameters:
      aGraphics - the graphics to print the view to
      aPrintSettings - configuration settings for the printing operation
    • beginPrinting

      public void beginPrinting()
      Prepares the view to be printed. Among other things, this method stops asynchronous tasks and animations, making sure that the state of the view cannot change unexpectedly while printing is in progress. When doing multi-page prints, this method should be called before the first page, and endPrinting() should be called after the last. Not doing so will allow animations and asynchronous tasks to briefly resume in between pages, leading to possible inconsistencies from one page to the next. For single-page prints, it is not technically necessary to call this method, although there is no harm in doing so.
    • endPrinting

      public void endPrinting()
      Returns the view to its normal state after a prior call to beginPrinting().
    • destroy

      public void destroy()
      Description copied from interface: ILspView
      Frees resources associated with this view. The view must not be used anymore after this method has been called.
      Specified by:
      destroy in interface ILspView
    • getPaintingOrder

      public ILspPaintingOrder getPaintingOrder()
      Description copied from interface: ILspView
      Gets the order object that determines the order in which layers and their various painters are invoked.
      Specified by:
      getPaintingOrder in interface ILspView
      Returns:
      the painting order object
    • setPaintingOrder

      public void setPaintingOrder(ILspPaintingOrder aPaintingOrder)
      Description copied from interface: ILspView
      Sets the order object that determines the order in which layers and their various painters are invoked.
      Specified by:
      setPaintingOrder in interface ILspView
      Parameters:
      aPaintingOrder - the painting order object
    • setAltitudeExaggerationFactor

      public void setAltitudeExaggerationFactor(double aVerticalExaggerationFactor)
      Description copied from interface: ILspView
      Sets the vertical exaggeration factor that is applied to altitudes and elevations in this view. Note that this method throws an exception when a non-strict positive value is passed to it (i.e. a negative number or 0). It is possible to disable terrain elevation using ILspTerrainSupport#setElevationEnabled.

      A factor of 1.0 results in no exaggeration.

      Specified by:
      setAltitudeExaggerationFactor in interface ILspView
      Parameters:
      aVerticalExaggerationFactor - the vertical exaggeration factor
      See Also:
    • getAltitudeExaggerationFactor

      public double getAltitudeExaggerationFactor()
      Description copied from interface: ILspView
      Gets the vertical exaggeration factor that is applied to altitudes and elevations in this view. All elevations are multiplied with this factor during visualization.

      The exaggeration factor must be strictly positive. A factor of 1.0 results in no exaggeration. Values between 0 and 1 result in reduced relief, values higher than 1 result in increased relief. Rendering artifacts may occur when using values that are too small or too large; for most applications, values below 1 and above 20 or so will not produce useful results.

      Specified by:
      getAltitudeExaggerationFactor in interface ILspView
      Returns:
      the vertical exaggeration factor
    • getLabelPlacer

      public ILspLabelPlacer getLabelPlacer()
      Description copied from interface: ILspView
      Gets the currently used label placer.
      Specified by:
      getLabelPlacer in interface ILspView
      Returns:
      the current placer, never null.
    • setLabelPlacer

      public void setLabelPlacer(ILspLabelPlacer aPlacer)
      Description copied from interface: ILspView
      Sets the label placer to be used by this view.

      A label placer positions the labels of all the view's layers. The layers are only responsible for painting of their labels, not de-cluttering them.

      Specified by:
      setLabelPlacer in interface ILspView
      Parameters:
      aPlacer - the new placer, never null.
      See Also:
    • getRequiredOpenGLProfile

      public TLspOpenGLProfile getRequiredOpenGLProfile()
      Description copied from interface: ILspView
      Returns the minimum required OpenGL profile that an end user system must support in order to be compatible with this view. This profile does NOT take into account any of the layers or painters that are present in the view -- these should be checked individually to get a complete overview of an application's OpenGL requirements.

      All current implementations of this method return TLspOpenGLProfile.LIGHTSPEED_MINIMUM.

      Specified by:
      getRequiredOpenGLProfile in interface ILspView
      Returns:
      a TLspGLProfile
    • getServices

      public TLspViewServices getServices()
      Description copied from interface: ILspView
      Returns a view services object which provides various utilities that can be leveraged by the view's layers. Examples include caching mechanisms and asynchronous processing support. Note that this method returns null if invoked after a call to ILspView.destroy().
      Specified by:
      getServices in interface ILspView
      Returns:
      a view services object
    • getPaintExceptionHandler

      public ILcdPaintExceptionHandler getPaintExceptionHandler()
      Description copied from interface: ILspView
      Returns a handler to report paint exceptions. The view, as well as layers and painters can use this handler if they encounter an exception during painting. Because painting may happen asynchronously, the handler may be called from different threads.
      Specified by:
      getPaintExceptionHandler in interface ILspView
      Returns:
      a handler to report paint exceptions.
    • getViewType

      public ILspView.ViewType getViewType()
      Description copied from interface: ILspView
      Convenience method that returns whether the view is currently configured for 2D or 3D visualization. This is actually determined by the type of ILspView.getViewXYZWorldTransformation(): In other words, getViewType() is equivalent to an instanceof test on the ALspViewXYZWorldTransformation.
      Specified by:
      getViewType in interface ILspView
      Returns:
      the current view type
    • invokeLater

      public void invokeLater(Runnable aRunnable)
      Schedules the supplied Runnable to be executed at some point in the future using the view's paint executor service. If the service has not been configured, this method throws an UnsupportedOperationException.
      Specified by:
      invokeLater in interface ILspView
      Parameters:
      aRunnable - the runnable to be scheduled for execution
      Since:
      2020.0
      See Also: