jvx.surface

## Class PgGraph

- java.lang.Object
- - jv.object.PsObject
  - - jv.project.PgGeometry
    - - jv.geom.PgPointSet
      - - jv.geom.PgElementSet
        - - jvx.surface.PgGraph

- All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, PsUpdateIf, PgGeometryIf

      public class PgGraph
      extends PgElementSet

  Graph of one-dimensional function over a two-dimensional, rectangular domain.

  Use `PnSurfaceGraph` if more flexibility is needed.

  See Also:
    Serialized Form
  Author:
    Konrad Polthier
  Version:
    03.12.04, 2.30 revised (ep) Changed domain to be a PgDomain; is now only a graph of an `R^2->R` function.
    15.10.04, 2.20 revised (kp) Walls implemented.
    26.07.04, 2.10 revised (kp) Class of instance variable m_domain changed to PgDomain.
    16.01.04, 2.00 revised (kp) Copy(), clone() and default initialization of domain and scalar added.
    29.05.03, 1.30 revised (kp) Handling of non-conforming meshes corrected.
    20.11.02, 1.20 revised (ep) Removed update bug.
    19.11.02, 1.10 revised (ep) Added controls for 'normal variation', scaling and offset.
    22.08.99, 1.00 created (kp)

- - ### Field Summary

    - ### Fields inherited from class jv.object.PsObject

      `HAS_BOUNDARY_PANEL, HAS_CONFIG_PANEL, HAS_INFO_PANEL, HAS_LABEL_PANEL, HAS_MATERIAL_PANEL, HAS_TEXTURE_PANEL, HAS_VECTOR_PANEL, INSPECTOR_INFO, INSPECTOR_INFO_EXT, IS_DELETED, IS_FIXED, IS_FOCUSSED, IS_PICKED, IS_SELECTED, IS_USED, NUM_TAGS`

    - ### Fields inherited from interface jv.project.PgGeometryIf

      `AMBIENT_H2_HYPERBOLIC, AMBIENT_H3_HYPERBOLIC, AMBIENT_H4_HYPERBOLIC, AMBIENT_PROJECTIONS, AMBIENT_R1_EUCLIDEAN, AMBIENT_R2_EUCLIDEAN, AMBIENT_R3_EUCLIDEAN, AMBIENT_R4_EUCLIDEAN, AMBIENT_R5_EUCLIDEAN, AMBIENT_S1_SPHERE, AMBIENT_S2_SPHERE, AMBIENT_S3_SPHERE, AMBIENT_S4_SPHERE, AMBIENT_SPACES, BLEND_ALPHA, BLEND_MATERIAL, BLEND_REPLACE, FILTER_DIRECT, FILTER_LINEAR, FILTER_QUADRATIC, HAS_METHOD_MENU, INSPECTOR_CONTROL, INSPECTOR_CONTROL_EXT, INSPECTOR_MATERIAL, INSPECTOR_MATERIAL_EXT, INSPECTOR_TEXTURE, INSPECTOR_TEXTURE_EXT, LABEL_BASE, LABEL_CENTER, LABEL_HEAD, LABEL_MIDDLE, LABEL_TAIL, LABEL_TOP, m_numLabelTypes, METHOD_EXT, PERIODIC_BOTH, PERIODIC_HEIGHT, PERIODIC_NONE, PERIODIC_WIDTH, PROJ_KLEIN_BALL, PROJ_PARALLEL, PROJ_POINCARE_BALL, PROJ_STEREOGRAPHIC, PROJ_UPPER_HALFSPACE, SIDE_BACK, SIDE_BOTH, SIDE_FRONT, SIDE_NONE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PgGraph()` Create a graph of a scalar-valued function over a rectangular 2D domain.
    `PgGraph(int dim)` Deprecated. since 2004, use PgGraph() instead since only dim=3 is supplied.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.Object` | `clone()` Duplicate geometry by recursively cloning all instance variables except inspector panels and lists of registered listeners.
    `void` | `compute()` Perform all computations to update graph.
    `void` | `copy(PsObject object)` Copy a geometry into this geometry.
    `PgDomain` | `getDomain()` Get domain of graph.
    `PuFunction` | `getFunction()` Get function object of the graph.
    `double` | `getOffset()` Get scaling factor for graph (in every component of target space and in direction of domain vertex normals if m_bShowAsNormalVariation) - only the visualization has offset.
    `PuDouble` | `getOffsetSlider()` Get scaling factor for graph (in every component of target space and in direction of domain vertex normals if m_bShowAsNormalVariation) - only the visualization has offset.
    `double` | `getScalingFactor()` Get offset of graph (in every component of target space and in direction of domain vertex normals if m_bShowAsNormalVariation) - only the visualization is scaled.
    `PgElementSet` | `getSurface()` Get surface of graph.
    `void` | `init()` Initialize sliders.
    `boolean` | `isEnabledSynchronization()` Check if synchronization of material properties from graph to domain is enabled.
    `boolean` | `isShowingDomain()` Check if display of domain is enabled.
    `boolean` | `isShowingWalls()` Check if display of bounding walls is enabled.
    `void` | `makeSurface()` Recompute surface vertices after domain or function have changed.
    `void` | `makeVertices()` Recompute graph vertices after domain or surface have changed.
    `void` | `setEnabledSynchronization(boolean flag)` Enable synchronization of material properties from graph to domain.
    `boolean` | `setFunction(PuFunction function)` Set function object of the graph whose number of functions must be equal to the dimension of the surface component of the graph, i.e. equal to the dimension of vertices of the graph minus the domain.
    `void` | `setNumVertices(int num)` Get domain of graph.
    `void` | `setOffset(double off)` Set scaling factor for graph (in every component of target space and in direction of domain vertex normals if m_bShowAsNormalVariation) - only the visualization has offset.
    `void` | `setScalingFactor(double fac)` Set offset of graph (in every component of target space and in direction of domain vertex normals if m_bShowAsNormalVariation) - only the visualization is scaled.
    `void` | `setShowingDomain(boolean flag)` Enable display of domain.
    `void` | `setShowingWalls(boolean flag)` Enable display of bounding walls.
    `void` | `setSurfaces(PgDomain domain, PgElementSet surface)` Assign a domain and image surface which provide the data for this graph.
    `boolean` | `setSurfaceVertex(int anIndex, PdVector aVertex)` Assign vertex of surface with given index.
    `java.lang.String` | `toString()` Create a multi-line string representation with detailed information about all instance variables.
    `boolean` | `update(java.lang.Object event)` Perform update operations on this object if children have changed.

    - ### Methods inherited from class jv.geom.PgElementSet

      `addElement, addElement, allocateEdgeStars, applyModelingMatrix, assureBoundary, assureDimOfElements, assureEdgeColors, assureEdgeSizes, assureElementBackColors, assureElementColors, assureElementNormals, assureElementTextures, blend, buildPolygon, buildQuadr, buildQuadrFromCurve, buildTriangle, buildTriangleFromCurve, checkNeighbour, checkNeighbour, clearTagElement, close, computeCone, computeCylinder, computeDisk, computePlane, computeRotation, computeSnail, computeSphere, computeTorus, copyConnectivity, copyConnectivitySelect, copyElementSet, copyElementSetSelect, copySelect, fixBoundaries, flipEdges, flipOrientation, getArea, getAreaOfElement, getBoundaries, getCenterOfElement, getCreaseAngle, getDimOfElement, getDimOfElements, getEdge, getEdge, getEdgeColors, getEdgeLength, getEdgeSizes, getEdgeStar, getEdgeStars, getElement, getElementBackColor, getElementBackColors, getElementColor, getElementColors, getElementEdge, getElementEdges, getElementNormal, getElementNormals, getElements, getElementTexture, getElementTextures, getElementVertices, getElementWithVertex, getFVector, getGlobalBndColor, getGlobalBndSize, getGlobalBndTagColor, getGlobalEdgeColor, getGlobalEdgeSize, getGlobalEdgeTagColor, getGlobalElementBackColor, getGlobalElementColor, getGlobalElementNormalColor, getGlobalElementNormalLength, getGlobalElementNormalSize, getGlobalElementTagColor, getIndexOfBndPolygon, getJvx, getL2Matrix, getL2Norm, getMaxDimOfElements, getMaxNumElements, getNeighbour, getNeighbourLocInd, getNeighbours, getNumBoundaries, getNumBoundaryEdges, getNumBoundaryVertices, getNumEdges, getNumEdgeStars, getNumElementIndices, getNumElements, getNumUnusedVertices, getOppVertexInd, getOppVertexLocInd, getSavedElements, getSavedNumVertices, getSelectedBndPolygon, getVertexAngle, getVertexTextures, getVertexValence, getVolume, getVolumeOfElement, hasBoundary, hasEdgeColors, hasEdgeSizes, hasElementBackColors, hasElementColors, hasElementNormals, hasElementTextures, hasTagElement, intersectionWithLine, isConforming, isEnabledEdges, isShowingBackface, isShowingBoundaries, isShowingEdgeColorFromElements, isShowingEdgeColorFromVertices, isShowingEdgeColors, isShowingEdgeLabels, isShowingEdges, isShowingEdgeSizes, isShowingElementBackColor, isShowingElementBackColors, isShowingElementColorFromVertices, isShowingElementColors, isShowingElementFromVertexColors, isShowingElementLabels, isShowingElementNormalArrow, isShowingElementNormals, isShowingElements, isShowingElementTexture, isShowingElementTextures, isShowingSilhouette, isShowingSmoothEdgeColors, isShowingSmoothElementColors, isShowingSmoothLighting, isShowingTaggedBoundaries, isShowingTaggedEdges, isShowingTaggedElements, makeAlternatingQuadrConn, makeCylinderConn, makeEdgeStars, makeEdgeStarsFromNeighbour, makeElementColorsFromNormal, makeElementColorsFromXYZ, makeElementColorsFromZ, makeElementColorsFromZHue, makeElementFromVertexColors, makeElementFromVertexTexture, makeElementNormals, makeNeighbour, makeQuadrBnd, makeQuadrConn, makeQuadrElementTexture, makeTriangleBnd, makeTriangleConn, makeVertexFromElementColors, makeVertexNormals, markBoundary, merge, paint, printEdgeList, projectFromAmbientSpace, refineGlobalIntoFour, refineGlobalIntoFour, reflect, removeBoundaries, removeDeletedBoundaries, removeEdgeColors, removeEdgeSizes, removeElement, removeElementBackColors, removeElementColors, removeElementEdges, removeElementNormals, removeMarkedElements, removeMarkedVertices, removeTexture, removeUnusedVertices, resetBoundaryNormals, selectBndPolygon, setBoundary, setConforming, setCreaseAngle, setDimOfColors, setDimOfElement, setDimOfElements, setDimOfVectors, setDimOfVertices, setEdgeColors, setEdgeSizes, setEdgeStar, setElement, setElement, setElement, setElement, setElementBackColor, setElementBackColors, setElementColor, setElementColors, setElementEdges, setElementNormal, setElementNormals, setElements, setElementTexture, setElementTextures, setElementTexturesFromList, setElementVertices, setEnabledEdges, setGlobalBndColor, setGlobalBndSize, setGlobalBndTagColor, setGlobalEdgeColor, setGlobalEdgeSize, setGlobalEdgeTagColor, setGlobalElementBackColor, setGlobalElementColor, setGlobalElementNormalColor, setGlobalElementNormalLength, setGlobalElementNormalSize, setGlobalElementTagColor, setGlobalVertexNormalColor, setGlobalVertexNormalLength, setGlobalVertexNormalSize, setJvx, setMaxNumElements, setNeighbour, setNeighbours, setNumElements, setSavedElements, setSavedNumVertices, setTagElement, showBackface, showBoundaries, showEdgeColorFromElements, showEdgeColorFromVertices, showEdgeColors, showEdgeLabels, showEdges, showEdgeSizes, showElementBackColor, showElementBackColors, showElementColorFromVertices, showElementColors, showElementFromVertexColors, showElementLabels, showElementNormalArrow, showElementNormals, showElements, showElementTexture, showSilhouette, showSmoothEdgeColors, showSmoothElementColors, showSmoothLighting, showTaggedBoundaries, showTaggedEdges, showTaggedElements, showVertexTexture, triangulate`

    - ### Methods inherited from class jv.geom.PgPointSet

      `addGeometryItem, addVectorField, addVertex, applyAmbientMatrix, assureVertexColors, assureVertexNormals, assureVertexSizes, assureVertexTextures, clearTagVertex, getAmbientBounds, getBounds, getCenterOfBndBox, getCenterOfGravity, getDimOfColors, getDimOfTextures, getDimOfVectors, getEulerCharacteristic, getGlobalVectorColor, getGlobalVectorLength, getGlobalVectorSize, getGlobalVertexColor, getGlobalVertexNormalColor, getGlobalVertexNormalLength, getGlobalVertexNormalSize, getGlobalVertexSize, getGlobalVertexTagColor, getIndexOfVectorField, getMarkedVertices, getMarkedVertices, getMaxNumVertices, getNumVectorFields, getNumVertices, getSelectedVectorField, getShininess, getSpecularColor, getTexture, getTextureImage, getTextureImageName, getTransparency, getVectorField, getVectorField, getVertex, getVertexColor, getVertexColors, getVertexNormal, getVertexNormals, getVertexSize, getVertexSizes, getVertexTexture, getVertices, hasTagVertex, hasVertex, hasVertex, hasVertexColors, hasVertexNormals, hasVertexSizes, hasVertexTextures, isDefaultLabelEnabled, isEnabledIndexLabels, isShowingIndices, isShowingSingleVectorField, isShowingTaggedVertices, isShowingTransparency, isShowingVectorArrow, isShowingVectorArrows, isShowingVectorColors, isShowingVectorField, isShowingVectorFields, isShowingVertexColors, isShowingVertexLabels, isShowingVertexNormalArrow, isShowingVertexNormals, isShowingVertexOutline, isShowingVertexSizes, isShowingVertexTexture, isShowingVertices, makeColorFromVectorLength, makeQuadrVertexTexture, makeVertexColorsFromNormal, makeVertexColorsFromXYZ, makeVertexColorsFromZ, makeVertexColorsFromZHue, makeVertexTextureFromBndBox, makeVertexTextureFromCylinder, makeVertexTextureFromSphere, makeVertexTextureFromUV, projectToSphere, removeAllVectorFields, removeHiddenVectorFields, removeVectorField, removeVertex, removeVertexColors, removeVertexNormals, removeVertexSizes, scale, scale, selectVectorField, setCenterOfBndBox, setDefaultLabelEnabled, setDimOfTextures, setEnabledIndexLabels, setGlobalVectorColor, setGlobalVectorLength, setGlobalVectorSize, setGlobalVertexColor, setGlobalVertexSize, setGlobalVertexSize, setGlobalVertexTagColor, setMaxNumVertices, setShininess, setSpecularColor, setState, setTagVertex, setTexture, setTextureImage, setTextureImageName, setTransparency, setVertex, setVertex, setVertex, setVertex, setVertexColor, setVertexColors, setVertexNormal, setVertexNormals, setVertexSize, setVertexSizes, setVertexTexture, setVertexTextures, setVertices, showIndices, showSingleVectorField, showTaggedVertices, showTransparency, showVectorArrow, showVectorArrows, showVectorColors, showVectorField, showVectorFields, showVertexColors, showVertexLabels, showVertexNormalArrow, showVertexNormals, showVertexOutline, showVertexSizes, showVertices, translate`

    - ### Methods inherited from class jv.project.PgGeometry

      `addDisplay, addPolygon, clearTagPolygon, convertWorldToModel, fillMethodMenu, fillMethodMenu, getAmbientInvMatrix, getAmbientMatrix, getAmbientProjection, getAmbientSpace, getAuthorInfo, getAuthors, getCenter, getCenterOfElement, getControlPanel, getDiameter, getDimOfSimplex, getDimOfVertices, getDisplayList, getDisplays, getGeometryInfo, getLabelAttribute, getLabelColor, getLabelFont, getLabelSize, getLabelStyle, getMaterialPanel, getModelMatrix, getPolygon, getState, getTitle, getType, getVersion, getVersionType, hasAmbientMatrix, hasDisplay, hasModelMatrix, hasTagPolygon, isConfigurable, isEnabledInstanceSharing, isShowingBndBox, isShowingCenter, isShowingName, isShowingTitle, isVisible, removeDisplay, removeMethodMenus, removePolygon, setAmbientMatrix, setAmbientProjection, setAmbientSpace, setAuthorInfo, setAuthors, setCenter, setDimOfSimplex, setEnabledInstanceSharing, setGeometryInfo, setLabelAttribute, setLabelAttribute, setLabelColor, setLabelFont, setLabelSize, setLabelStyle, setModelMatrix, setPolygon, setTagPolygon, setTitle, setType, setVersion, setVersionType, setVisible, showBndBox, showCenter, showName, showTitle`

    - ### Methods inherited from class jv.object.PsObject

      `addInspector, addUpdateListener, assureInspector, clearTag, clone, clone, getFather, getInfoPanel, getInspector, getName, getNumObjects, getSymbol, hasInspector, hasTag, hasUpdateListener, instanceOf, instanceOf, newInspector, newInspector, removeInspector, removeInspector, removeUpdateListener, setName, setParent, setSymbol, setTag, updatePanels`

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface jv.project.PgGeometryIf

      `assureInspector, getInfoPanel, getName, hasTag, setName`

    - ### Methods inherited from interface jv.object.PsUpdateIf

      `getFather, setParent`

- - ### Constructor Detail

    - #### PgGraph

          public PgGraph(int dim)

      Deprecated. since 2004, use PgGraph() instead since only dim=3 is supplied.
      Create a graph of a scalar-valued function over a rectangular 2D domain. The resulting graph surface lives in 2+1=3-dimensional space.

    - #### PgGraph

          public PgGraph()

      Create a graph of a scalar-valued function over a rectangular 2D domain. The resulting graph surface lives in 2+1=3-dimensional space.

  - ### Method Detail

    - #### init

          public void init()

      Initialize sliders.
      Overrides:
        `init` in class `PgElementSet`

    - #### clone

          public java.lang.Object clone()

      Duplicate geometry by recursively cloning all instance variables except inspector panels and lists of registered listeners. The parent relationship is maintained only within this class but not to external classes.
      Specified by:
        `clone` in interface `PgGeometryIf`
      Overrides:
        `clone` in class `PgElementSet`
      See Also:
        `copy(PsObject)`
      Version:
        16.01.04, 1.00 created (kp)

    - #### copy

          public void copy(PsObject object)

      Copy a geometry into this geometry.

      The argument was changed from PgGeometry to PsObject since there were problems in J/Link which preferred to use PsObject#copy(PsObject) instead of PgGeometry#copy(PsObject).

      Overrides:
        `copy` in class `PgElementSet`
      See Also:
        `PgElementSet.clone()`
      Version:
        16.01.04, 1.20 revised (kp) Copy all major instance variables instead of linking them.
        08.11.02, 1.10 revised (kp) Argument changed to PsObject from PgGeometry.

    - #### toString

          public java.lang.String toString()

      Create a multi-line string representation with detailed information about all instance variables.
      Specified by:
        `toString` in interface `PgGeometryIf`
      Overrides:
        `toString` in class `PgElementSet`

    - #### update

          public boolean update(java.lang.Object event)

      Perform update operations on this object if children have changed.
      Specified by:
        `update` in interface `PsUpdateIf`
      Overrides:
        `update` in class `PgElementSet`
      Parameters:
        `event` - carries a lot of information
      Returns:
        true if event has been handled, otherwise false
      See Also:
        `PsObject.setParent(PsUpdateIf)`, `PsObject.getFather()`, `PsObject.addUpdateListener(PsUpdateIf)`

    - #### setNumVertices

          public void setNumVertices(int num)

      Get domain of graph.
      Overrides:
        `setNumVertices` in class `PgPointSet`

    - #### getDomain

          public PgDomain getDomain()

      Get domain of graph.

    - #### getSurface

          public PgElementSet getSurface()

      Get surface of graph.

    - #### setSurfaces

          public void setSurfaces(PgDomain domain,
                                  PgElementSet surface)

      Assign a domain and image surface which provide the data for this graph. The sum of domain and surface dimensions must be equal to the dimension of this graph surface.

      Number of vertices of domain and surface must be equal. The number of vertices and the mesh connectivity of this graph are both adjusted to the properties of the domain.

      This graph is registered as update listener of the new arguments, see `addUpdateListener`.

      Version:
        17.01.04, 1.10 revised (kp) Register as updateListener instead of parent.

    - #### getFunction

          public PuFunction getFunction()

      Get function object of the graph.

    - #### setFunction

          public boolean setFunction(PuFunction function)

      Set function object of the graph whose number of functions must be equal to the dimension of the surface component of the graph, i.e. equal to the dimension of vertices of the graph minus the domain.

      This graph is registered as update listener of the new function, see `addUpdateListener`.

      Version:
        01.08.04, 1.20 revised (kp) No longer invoke update(), must be called externally.
        17.01.04, 1.10 revised (kp) Register as updateListener instead of parent.

    - #### isEnabledSynchronization

          public boolean isEnabledSynchronization()

      Check if synchronization of material properties from graph to domain is enabled.
      Since:
        JavaView 3.28.003
      Version:
        17.06.04, 1.00 created (kp)

    - #### setEnabledSynchronization

          public void setEnabledSynchronization(boolean flag)

      Enable synchronization of material properties from graph to domain.
      Since:
        JavaView 3.28.003
      Version:
        17.06.04, 1.00 created (kp)

    - #### isShowingDomain

          public boolean isShowingDomain()

      Check if display of domain is enabled.
      Since:
        JavaView 3.28.003
      Version:
        17.06.04, 1.00 created (kp)

    - #### setShowingDomain

          public void setShowingDomain(boolean flag)

      Enable display of domain.
      Since:
        JavaView 3.28.003
      Version:
        17.06.04, 1.00 created (kp)

    - #### isShowingWalls

          public boolean isShowingWalls()

      Check if display of bounding walls is enabled.
      Since:
        JavaView 3.58.004
      Version:
        15.10.04, 1.00 created (kp)

    - #### setShowingWalls

          public void setShowingWalls(boolean flag)

      Enable display of bounding walls.
      Since:
        JavaView 3.58.004
      Version:
        15.10.04, 1.00 created (kp)

    - #### getOffsetSlider

          public PuDouble getOffsetSlider()

      Get scaling factor for graph (in every component of target space and in direction of domain vertex normals if m_bShowAsNormalVariation) - only the visualization has offset.
      Since:
        JavaView 2.44

    - #### getOffset

          public double getOffset()

      Get scaling factor for graph (in every component of target space and in direction of domain vertex normals if m_bShowAsNormalVariation) - only the visualization has offset.
      Since:
        JavaView 2.44

    - #### setOffset

          public void setOffset(double off)

      Set scaling factor for graph (in every component of target space and in direction of domain vertex normals if m_bShowAsNormalVariation) - only the visualization has offset.
      Since:
        JavaView 2.44

    - #### getScalingFactor

          public double getScalingFactor()

      Get offset of graph (in every component of target space and in direction of domain vertex normals if m_bShowAsNormalVariation) - only the visualization is scaled.
      Since:
        JavaView 2.44

    - #### setScalingFactor

          public void setScalingFactor(double fac)

      Set offset of graph (in every component of target space and in direction of domain vertex normals if m_bShowAsNormalVariation) - only the visualization is scaled.
      Since:
        JavaView 2.44

    - #### makeSurface

          public void makeSurface()

      Recompute surface vertices after domain or function have changed.

    - #### makeVertices

          public void makeVertices()

      Recompute graph vertices after domain or surface have changed.

    - #### setSurfaceVertex

          public boolean setSurfaceVertex(int anIndex,
                                          PdVector aVertex)

      Assign vertex of surface with given index. The corresponding domain vertex is not modified.
      Parameters:
        `anIndex` - index of modified vertex
        `aVertex` - new vertex data
      Version:
        30.01.04, 2.00 revised (kp) Renamed to setSurfaceVertex() from setVertex() since collision with PgPointSet#setVertex().

    - #### compute

          public void compute()

      Perform all computations to update graph.
      Since:
        JavaView v.3.50.001
      Version:
        26.07.04, 1.00 created (kp) For compatibility reason with other geometry classes.

"

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