jvx.surface

## Class PgSurfaceGraph

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

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

      public class PgSurfaceGraph
      extends PgElementSet

  Graph surface over an arbitrary domain.

  You must set a domain and image surface by calling `setSurfaces(PgElementSet, PgElementSet)`. The dimension of vertices of the graph must be equal to the sum of the dimensions of domain and surface vertices.

  Connectivity of image surface and graph depends on connectivity of domain. Only the connectivity of the domain may change.

  You need to compute the image values of the function for yourself (and set them in the `surface` object of this graph, or call method `compute(PuFunction)`.

  See Also:
    Serialized Form
  Author:
    Konrad Polthier
  Version:
    02.04.04, 3.00 revised (ep) Created from jvx.surface.PgGraph.
    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
    `PgSurfaceGraph()` Create a graph of a scalar-valued function over a rectangular 2D domain.
    `PgSurfaceGraph(int dim)` Construct a new graph with empty domain, surface and function.

  - ### 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()` Recompute graph vertices after domain or surface have changed.
    `void` | `compute(PuFunction function)` Sets the `surface` vertices to the values of the given function object.
    `void` | `copy(PsObject object)` Copy a geometry into this geometry.
    `PgElementSet` | `getDomain()` Get domain of 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` | `isShowingAsNormalVariation()` Flag if graph surfaceIn3D to 1D is shown as domain evolved along vertex normal.
    `void` | `setEnabledSynchronization(boolean flag)` Enable synchronization of material properties from graph to domain.
    `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` | `setSurfaces(PgElementSet 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.
    `void` | `showAsNormalVariation(boolean flag)` Flag if graph surfaceIn3D to 1D is shown as domain evolved along vertex normal.
    `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, setNumVertices, 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

    - #### PgSurfaceGraph

          public PgSurfaceGraph()

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

    - #### PgSurfaceGraph

          public PgSurfaceGraph(int dim)

      Construct a new graph with empty domain, surface and function. The given dimension must be the sum of domain and surface dimensions.
      Parameters:
        `dim` - total dimension of graph surface.

  - ### 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)`

    - #### getDomain

          public PgElementSet getDomain()

      Get domain of graph.

    - #### getSurface

          public PgElementSet getSurface()

      Get surface of graph.

    - #### setSurfaces

          public void setSurfaces(PgElementSet 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`. When an update of the domain occurs, the graph and the surface adjust to the connectivity of the domain. When an update of the image surface occurs, the graph is adjusted to the new image values.

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

    - #### isShowingAsNormalVariation

          public boolean isShowingAsNormalVariation()

      Flag if graph surfaceIn3D to 1D is shown as domain evolved along vertex normal.
      Since:
        JavaView 2.44
      Version:
        00.00.03, 1.00 created (ep)

    - #### showAsNormalVariation

          public void showAsNormalVariation(boolean flag)

      Flag if graph surfaceIn3D to 1D is shown as domain evolved along vertex normal.
      Since:
        JavaView 2.44
      Version:
        01.08.04, 1.10 revised (kp) No longer invoke update(), must be called externally.
        00.00.03, 1.00 created (ep)

    - #### 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)

    - #### 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

    - #### compute

          public void compute(PuFunction function)

      Sets the `surface` vertices to the values of the given function object.

    - #### compute

          public void compute()

      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().

"

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