Documentation of 'jvx.vector.PwLIC' Java class
PwLIC ("JavaView Reference Manual")
"JavaView? v5.03.003"
jvx.vector

Class PwLIC

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, java.lang.Runnable, PsUpdateIf, PjWorkshopIf


    public class PwLIC
    extends PjWorkshop
    implements java.lang.Runnable
    Make Line Integral Convolution texture image to given vector field in a JavaView workshop. Uses the methods provided by class jvx.numeric.PnLIC.
    All computation is done in a separate thread. If you register as an update listener to this object, then you will receive an update whenever a LIC computation has been ended.

    Using this class:
    Tell it about the geometry with a vector field: setGeometry(PgGeometry).
    Select a vector field: setVectorFieldIndex(int).
    Configure LIC: setConvolutionWidth(int), setLICSize(int),setFast(boolean), ...
    Compute LIC: startLIC().

    When you want to get rid of an instance of this workshop you should call the close() method to clean up things.

    See Also:
    PnLIC, Serialized Form
    Author:
    Eike Preuss
    Version:
    09.12.06, 4.00 revised (kp) Moved to jvx.vector from jvx.geom.
    20.03.03, 3.80 revised (ep) Some missing getters and setters implemented. Fast preview.
    16.01.03, 3.70 revised (ep) Switch for frequent updates feature added.
    15.01.03, 3.60 revised (ep) New integration type 'ignore direction' added (methods get/setIgnoreDirection).
    17.12.02, 3.50 revised (ep) Added contrast parameter.
    13.08.01, 3.40 revised (ep) Added methods for configuration of LIC.
    08.07.01, 3.30 revised (ep) Labeling moved from Button to Label.
    07.06.01, 3.20 revised (ep) Added vector field selection.
    18.09.00, 3.10 revised (ep) bugfix vertex based vector fields in method run().
    19.06.00, 3.00 created (ep)
    • Constructor Detail

      • PwLIC

        public PwLIC()
    • Method Detail

      • init

        public void init()
        Resets all properties to default values.
        Overrides:
        init in class PjWorkshop
      • setGeometry

        public void setGeometry(PgGeometry geom)
        Sets the triangulation. It must be a triangulation and should have at least one vector field (but that last point is not necessary; you may add vector fields later and send an update).
        The workshop adds himself as an update listener to the geometry. A call of close will remove this connection.

        Geometry is triangulated if it is no triangulation.

        Specified by:
        setGeometry in interface PjWorkshopIf
        Overrides:
        setGeometry in class PjWorkshop
        Parameters:
        geom - may be null to indicate that the geometry shall be removed from this workshop
        Version:
        03.02.07, 2.00 revised (kp) Method now overloads PjWorkshop#setGeometry(PgGeometry).
        21.02.04, 1.20 revised (kp) Triangulate geometry if it is no triangulation.
        21.02.04, 1.10 revised (kp) Call super.setGeometry() to allow cancel of workshop.
      • getVectorFieldIndex

        public int getVectorFieldIndex()
        Get index of selected vector field.
        Returns:
        -1 if no vector field has been set
      • setVectorFieldIndex

        public void setVectorFieldIndex(int vfIndex)
        Set the vector field that will be visualized by index in the element set as set by setGeometry(PgGeometry), beginning with index 0.
        Parameters:
        vfIndex - index of vector field that shall be visualized 0,...
        See Also:
        setGeometry(PgGeometry)
      • computeTextureSize

        public void computeTextureSize()
        Called from info panel.
      • setFast

        public void setFast(boolean flag)
        Set flag which determines if 4th-order Runge-Kutta or Euler integration will be used for integration along vector field.
        Parameters:
        flag - true: euler; false: 4th order r.-k.
      • getFast

        public boolean getFast()
        Get flag if 4th-order Runge-Kutta or Euler integration is used.
      • setIgnoreDirection

        public void setIgnoreDirection(boolean flag)
        Ignores the direction of vertex based vector fields, i.e. at each point there are two possible vectors: + and - the original vector.
        Since:
        JavaView 2.48.007
      • getIgnoreDirection

        public boolean getIgnoreDirection()
        Get flag is workshop makes LIC texture visible after every element.
        Since:
        JavaView 2.48.007
      • setSendManyUpdates

        public void setSendManyUpdates(boolean flag)
        Set flag is workshop makes LIC texture visible after every element.
        Since:
        JavaView 2.49.004
      • getSendManyUpdates

        public boolean getSendManyUpdates()
        Since:
        JavaView 2.49.004
      • setConvolutionWidth

        public void setConvolutionWidth(int convWidth)
        Sets the number of pixels that are convoluted in a neighbourhood of a pixel to compute the new value of that pixel. This number is multiplied with the velocity of the vector field at that point to get the actual convolution window.
      • getConvolutionWidth

        public int getConvolutionWidth()
      • getCoarseness

        public double getCoarseness()
        Since:
        JavaView 2.65.000
      • getStepSize

        public double getStepSize()
        Since:
        JavaView 2.65.000
      • setMinConvolutionWidth

        public void setMinConvolutionWidth(int minconvwidth)
        Sets the least number of pixels that are convoluted in a neighbourhood of a pixel to compute the new value of that pixel, even if the velocity of the vector field is zero (or very very small). This least number of pixel may be 0 of course!
      • getMinConvolutionWidth

        public int getMinConvolutionWidth()
      • getContrast

        public double getContrast()
        Since:
        JavaView 2.65.000
      • setLICSize

        public void setLICSize(int aSize)
        Sets the size that the longest edge of the triangulation will have in the texture image (in pixels). You MUST set geometry to a valid triangulation before calling this method or you'll get a NullPointerException!
        See Also:
        setGeometry(PgGeometry)
      • getLICSize

        public int getLICSize()
      • getTextureSize

        public java.awt.Dimension getTextureSize()
      • getNumericLICInstance

        public PnLIC getNumericLICInstance()
        HACK:
      • isComputingLIC

        public boolean isComputingLIC()
        Checks whether workshop is currently working on a LIC texture.
        Returns:
        true if the LIC thread is running at the moment
        See Also:
        startLIC(), stopLIC()
      • startLIC

        public void startLIC(boolean bPreview)
        Starts a new thread that computes the LIC texture.
        See Also:
        isComputingLIC(), stopLIC()
      • close

        public void close()
        Call this method to shutdown the workshop. Removes the workshop from the list of update listeners of the geometry and stops any LIC processes that are currently working.
        Overrides:
        close in class PjWorkshop
      • run

        public void run()
        Specified by:
        run in interface java.lang.Runnable
        Version:
        18.09.00, 1.10 revised (ep) bugfix vertex based vector fields.
"JavaView? v5.03.003"

"

The software JavaView? is copyright protected. All Rights Reserved.
"

Ads help maintain this website.