jvx.geom

## Class PgPointSetOnElementSet

- java.lang.Object
- - jv.object.PsObject
  - - jv.project.PgGeometry
    - - jv.geom.PgPointSet
      - - jvx.geom.PgPointSetOnElementSet

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

      public class PgPointSetOnElementSet
      extends PgPointSet

  A point set on a triangulated element set whose vertices are given by barycentric coordinates. Every point of a `PointsOnElementSet` is given by the element index of the element the point lies on, and the barycentric coordinates with respect to this triangle. The base geometry must be a triangulated element set.
  See Also:
    `PgElementSet`, `PgPolygonOnElementSet`, Serialized Form
  Author:
    Konrad Polthier
  Version:
    16.04.06, 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
    `PgPointSetOnElementSet(PgElementSet geom)` Construct a new point set on given base surface.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `blend(double s, PgGeometry ag, double t, PgGeometry bg)` Blend between two point sets using `this = s*ag + t*bg`.
    `java.lang.Object` | `clone()` Duplicate geometry by recursively cloning all instance variables except inspector panels and lists of registered listeners.
    `void` | `computeVertices()` Compute all geometric vertex positions on the base surface from barycentric coordinates.
    `void` | `copy(PsObject object)` Copy instance variables by duplication, not by copying a reference.
    `PgElementSet` | `getGeometry()` Get the underlying geometry.
    `PdBary[]` | `getVertexBary()` Get array of barycentric positions for read and write access, but do not modify the size of any vector.
    `PdBary` | `getVertexBary(int vertInd)` Get barycentric coordinates of the vertex at given index.
    `int` | `getVertexElemInd(int vertInd)` Get element index of the vertex at given index.
    `void` | `init()` Initialize to default values.
    `boolean` | `merge(PgGeometryIf aGeom)` Merge point set with current object and store union of both objects in 'this'.
    `void` | `setGeometry(PgElementSet geom)` Assign a new underlying simplicial surface.
    `void` | `setMaxNumVertices(int numVertices)` Allocate given number of vertices, and allocate normals, colors etc.
    `void` | `setVertexBary(int vertInd, int elemInd, PdBary bary)` Set barycentric coordinate and element index of vertex at given index, and also update the position of the corresponding vertex.
    `void` | `setVertexBary(int vertInd, PdBary bary)` Set barycentric coordinate and element index of vertex at given index, and also update the position of the corresponding vertex.
    `void` | `setVertexBary(PdBary[] vertexBary)` Set vector of barycentric position.

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

      `addGeometryItem, addVectorField, addVertex, applyAmbientMatrix, applyModelingMatrix, assureVertexColors, assureVertexNormals, assureVertexSizes, assureVertexTextures, clearTagVertex, computeCone, computeCylinder, computeDisk, computePlane, computeRotation, computeSnail, computeSphere, computeTorus, copySelect, flipOrientation, getAmbientBounds, getBounds, getCenterOfBndBox, getCenterOfGravity, getDimOfColors, getDimOfTextures, getDimOfVectors, getEulerCharacteristic, getFVector, getGlobalVectorColor, getGlobalVectorLength, getGlobalVectorSize, getGlobalVertexColor, getGlobalVertexNormalColor, getGlobalVertexNormalLength, getGlobalVertexNormalSize, getGlobalVertexSize, getGlobalVertexTagColor, getIndexOfVectorField, getJvx, getMarkedVertices, getMarkedVertices, getMaxNumVertices, getNumVectorFields, getNumVertices, getSelectedVectorField, getShininess, getSpecularColor, getTexture, getTextureImage, getTextureImageName, getTransparency, getVectorField, getVectorField, getVertex, getVertexColor, getVertexColors, getVertexNormal, getVertexNormals, getVertexSize, getVertexSizes, getVertexTexture, getVertexTextures, getVertices, hasTagVertex, hasVertex, hasVertex, hasVertexColors, hasVertexNormals, hasVertexSizes, hasVertexTextures, intersectionWithLine, 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, makeVertexNormals, makeVertexTextureFromBndBox, makeVertexTextureFromCylinder, makeVertexTextureFromSphere, makeVertexTextureFromUV, paint, projectFromAmbientSpace, projectToSphere, reflect, removeAllVectorFields, removeHiddenVectorFields, removeMarkedVertices, removeTexture, removeVectorField, removeVertex, removeVertexColors, removeVertexNormals, removeVertexSizes, scale, scale, selectVectorField, setCenterOfBndBox, setDefaultLabelEnabled, setDimOfColors, setDimOfTextures, setDimOfVectors, setDimOfVertices, setEnabledIndexLabels, setGlobalVectorColor, setGlobalVectorLength, setGlobalVectorSize, setGlobalVertexColor, setGlobalVertexNormalColor, setGlobalVertexNormalLength, setGlobalVertexNormalSize, setGlobalVertexSize, setGlobalVertexSize, setGlobalVertexTagColor, setJvx, 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, showVertexTexture, showVertices, toString, translate, update`

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

      `addDisplay, addElement, addPolygon, clearTagElement, clearTagPolygon, convertWorldToModel, fillMethodMenu, fillMethodMenu, getAmbientInvMatrix, getAmbientMatrix, getAmbientProjection, getAmbientSpace, getAuthorInfo, getAuthors, getCenter, getCenterOfElement, getControlPanel, getDiameter, getDimOfSimplex, getDimOfVertices, getDisplayList, getDisplays, getElement, getGeometryInfo, getLabelAttribute, getLabelColor, getLabelFont, getLabelSize, getLabelStyle, getMaterialPanel, getModelMatrix, getPolygon, getState, getTitle, getType, getVersion, getVersionType, hasAmbientMatrix, hasDisplay, hasModelMatrix, hasTagElement, hasTagPolygon, isConfigurable, isEnabledInstanceSharing, isShowingBndBox, isShowingCenter, isShowingName, isShowingTitle, isVisible, removeDisplay, removeElement, removeMethodMenus, removePolygon, setAmbientMatrix, setAmbientProjection, setAmbientSpace, setAuthorInfo, setAuthors, setCenter, setDimOfSimplex, setElement, setEnabledInstanceSharing, setGeometryInfo, setLabelAttribute, setLabelAttribute, setLabelColor, setLabelFont, setLabelSize, setLabelStyle, setModelMatrix, setPolygon, setTagElement, 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

    - #### PgPointSetOnElementSet

          public PgPointSetOnElementSet(PgElementSet geom)

      Construct a new point set on given base surface.
      Parameters:
        `geom` - Base geometry of point set.

  - ### Method Detail

    - #### init

          public void init()

      Initialize to default values.
      Overrides:
        `init` in class `PgPointSet`

    - #### getGeometry

          public PgElementSet getGeometry()

      Get the underlying geometry.
      Returns:
        Reference to underlying triangulation.

    - #### setGeometry

          public void setGeometry(PgElementSet geom)

      Assign a new underlying simplicial surface. Method returns with warning if surface is not a triangulation.
      Parameters:
        `geom` - New underlying triangulation.
      Version:
        22.10.05, 1.10 revised (kp) Return with warning if geometry is not triangulated.

    - #### 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. In general, all links of the clone to external objects are set to `null` except to the base geometry whose reference is kept.
      Specified by:
        `clone` in interface `PgGeometryIf`
      Overrides:
        `clone` in class `PgPointSet`
      See Also:
        `copy(PsObject)`
      Version:
        16.04.06, 1.00 created (kp)

    - #### copy

          public void copy(PsObject object)

      Copy instance variables by duplication, not by copying a reference. Reference to base geometry is not changed.
      Overrides:
        `copy` in class `PgPointSet`
      Since:
        JavaView 2.65.000
      See Also:
        `clone()`
      Version:
        16.04.06, 2.00 revised (kp) Full revision, name changed to copy from copyIntrinsicData().

    - #### merge

          public boolean merge(PgGeometryIf aGeom)

      Merge point set with current object and store union of both objects in 'this'. Number of points and polygons is the sum of both objects.

      The merged geometry will local colors allocated and assignd if

                          1. both the global color of both geometries are different, or
                          2. either geometry has local colors.

      If local colors are allocated but one of the geometries does not have local colors then its local colors are be assumed to be its global color. The merged geometry will show globalVertexColors if

                          1. the global color of both geometries is the same, and
                          2. both geometries are showing the global color.

      In all other cases the merged geometry will show local colors. The global color of the merged geometry is never changed.
      Specified by:
        `merge` in interface `PgGeometryIf`
      Overrides:
        `merge` in class `PgPointSet`
      Parameters:
        `aGeom` - Polygon set to be merged into 'this'
      Returns:
        `true` if method was successfull
      Version:
        09.12.06, 1.00 created (kp)

    - #### blend

          public boolean blend(double s,
                               PgGeometry ag,
                               double t,
                               PgGeometry bg)

      Blend between two point sets using `this = s*ag + t*bg`.
      Specified by:
        `blend` in interface `PgGeometryIf`
      Overrides:
        `blend` in class `PgPointSet`
      Parameters:
        `s` - weight of vertices of first geometry
        `ag` - first geometry used for blending
        `t` - weight of vertices of second geometry
        `bg` - second geometry used for blending
      Returns:
        true on success
      Version:
        09.12.06, 1.00 created (kp)

    - #### setMaxNumVertices

          public void setMaxNumVertices(int numVertices)

      Allocate given number of vertices, and allocate normals, colors etc. if they already exist. All vertex allocation is done in this method. Method should not be called directly unless a specific allocation is required. Usually, a user would specify the number of vertices via setNumVertices().
      Overrides:
        `setMaxNumVertices` in class `PgPointSet`
      Version:
        14.03.06, 3.00 revised (kp) Method made public to allow better control of allocations.

    - #### getVertexBary

          public PdBary[] getVertexBary()

      Get array of barycentric positions for read and write access, but do not modify the size of any vector.

      Note, that the actual size of the vertex array may differ from getNumVertices() for efficiency reasons. Therefore, do not use bary.length but use getNumVertices().

      Note, the array is void as soon as the number of vertices changes. After issuing setNumVertices(int) then call this method again.

    - #### setVertexBary

          public void setVertexBary(PdBary[] vertexBary)

      Set vector of barycentric position. Length of vector must be at least m_numVertices.
      Since:
        JavaView 3.97.034
      Version:
        27.11.06, 1.00 created (kp)

    - #### getVertexBary

          public PdBary getVertexBary(int vertInd)

      Get barycentric coordinates of the vertex at given index.
      Parameters:
        `vertInd` - Index of vertex.
      Returns:
        Barycentric coordinates of vertex.
      See Also:
        `getVertexElemInd(int)`

    - #### getVertexElemInd

          public int getVertexElemInd(int vertInd)

      Get element index of the vertex at given index.
      Parameters:
        `vertInd` - index of vertex
      Returns:
        element index of given vertex
      See Also:
        `getVertexBary(int)`

    - #### setVertexBary

          public void setVertexBary(int vertInd,
                                    int elemInd,
                                    PdBary bary)

      Set barycentric coordinate and element index of vertex at given index, and also update the position of the corresponding vertex. Barycentric coordinate is copied into another `PdBary` instance.
      Parameters:
        `vertInd` - Vertex index in vertex array.
        `elemInd` - Global element index where the vertex shall lie on.
        `bary` - Barycentric coordinates of vertex within the given element.
      Version:
        21.08.06, 2.10 revised (kp) Improved checks for consistency of indices.

    - #### setVertexBary

          public void setVertexBary(int vertInd,
                                    PdBary bary)

      Set barycentric coordinate and element index of vertex at given index, and also update the position of the corresponding vertex. Element index is contained in parameter bary.
      Parameters:
        `vertInd` - Vertex index in vertex array.
        `bary` - Barycentric coordinates of vertex within the given element.
      Version:
        21.08.06, 2.10 revised (kp) Update position of vertex too.

    - #### computeVertices

          public void computeVertices()

      Compute all geometric vertex positions on the base surface from barycentric coordinates.
      Version:
        16.04.06, 1.00 created (kp)

"

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