jv.geom

## Class PgBndElementSet

- java.lang.Object
- - jv.object.PsObject
  - - jv.project.PgGeometry
    - - jv.geom.PgPointSet
      - - jv.geom.PgElementSet
        - - jv.geom.PgBndElementSet

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

      public class PgBndElementSet
      extends PgElementSet

  Boundary of tetraSet is an element set with links to the boundary vertices and tetras of the tetraset.
  See Also:
    `PgBndPolygon`, `PgTetraSet`, Serialized Form
  Author:
    Konrad Polthier
  Version:
    09.03.15, 2.00 revised (kp) Moved to jv.geom from dev.volume.
    23.06.07, 1.00 created (kp) Slightly based on PgBndPolygon.

- - ### 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
    `PgBndElementSet(int aVertexDim)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `applyModelingMatrix()` Multiply the modeling matrix to all vertices and vectors.
    `boolean` | `assignVertices()` Update the vertices of the polygon.
    `boolean` | `blend(double s, PgGeometry ag, double t, PgGeometry bg)` Blend between two polygon using `this = s*a + t*b`.
    `java.lang.Object` | `clone()` Duplicate geometry by recursively cloning all instance variables except inspector panels and lists of registered listeners.
    `boolean` | `constrain()` Project boundary vertices of tetra set onto curves determined by boundary constraints.
    `void` | `copy(PsObject object)` Copies data from given boundary curve.
    `PgBndConstraint` | `getBndConstraint()`
    `PiVector` | `getNeighbourLocInd()`
    `PiVector` | `getTetraInd()`
    `PgTetraSet` | `getTetraSet()` Get number of tetras adjacent to the boundary.
    `PiVector` | `getVertexInd()`
    `void` | `init()` Initialize and reset instance variables after call to super.init().
    `boolean` | `makeTetraInd()` After the vertexInd have been assigned, this method fills the tetraInd vector by asking the triangulation for edges.
    `boolean` | `merge(PgBndElementSet b)` Merge boundary polygon with current object into 'this'.
    `void` | `setBndConstraint(PgBndConstraint bndConstraint)`
    `void` | `setMaxNumElements(int numElements)` Allocate given number of vertices, and allocate normals, colors etc.
    `void` | `setMaxNumVertices(int numVertices)` Allocate given number of vertices, and allocate normals, colors etc.
    `void` | `setNeighbourLocInd(PiVector neighbourLocInd)`
    `void` | `setTetraInd(PiVector tetraInd)`
    `void` | `setTetraSet(PgTetraSet geom)` Assign base geometry of this boundary polygon.
    `void` | `setVertexInd(PiVector vertexInd)`
    `java.lang.String` | `toString()` Create a multi-line string representation with detailed information about all instance variables.

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

      `addElement, addElement, allocateEdgeStars, assureBoundary, assureDimOfElements, assureEdgeColors, assureEdgeSizes, assureElementBackColors, assureElementColors, assureElementNormals, assureElementTextures, 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, 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, update`

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

    - #### PgBndElementSet

          public PgBndElementSet(int aVertexDim)

  - ### Method Detail

    - #### init

          public void init()

      Description copied from class: `PgElementSet`
      Initialize and reset instance variables after call to super.init().
      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. In general, all links of the clone to external objects are set to `null`.

      Link to associated tetra set is set to `null`.

      Specified by:
        `clone` in interface `PgGeometryIf`
      Overrides:
        `clone` in class `PgElementSet`
      See Also:
        `copy(PsObject)`
      Version:
        21.10.00, 1.20 revised (kp) Missing cloning of boundary constraints implements.
        21.10.00, 1.10 revised (kp) Bug removed: clear link of tetra set in clone rather than in source.
        05.07.00, 1.00 created (kp)

    - #### copy

          public void copy(PsObject object)

      Copies data from given boundary curve. Note: Reference to parent tetra set is not copied.

      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:
        24.03.10, 1.20 revised (ur) Bug fixed
        08.11.02, 1.10 revised (kp) Argument changed to PsObject from PgGeometry.
        02.09.99, 1.10 (kp) Vertices are no longer shared with tetra set and now really copied.
        31.08.99, 1.01 (kp) Super.copy() called at the end since references to old vertices used.

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

    - #### applyModelingMatrix

          public boolean applyModelingMatrix()

      Multiply the modeling matrix to all vertices and vectors. The modeling matrix of this geometry is set to the identity matrix.

      Here modeling matrix is applied to boundary constraints.

      Overrides:
        `applyModelingMatrix` in class `PgElementSet`
      Returns:
        `true` if operation was applied successfully.
      Since:
        JavaView 2.36
      Version:
        04.09.02, 1.00 created (kp)

    - #### getTetraSet

          public PgTetraSet getTetraSet()

      Get number of tetras adjacent to the boundary.
      Version:
        27.04.02, 1.10 revised (kp) Bug with non-conforming meshes removed.

    - #### getVertexInd

          public PiVector getVertexInd()

    - #### setVertexInd

          public void setVertexInd(PiVector vertexInd)

    - #### getTetraInd

          public PiVector getTetraInd()

    - #### setTetraInd

          public void setTetraInd(PiVector tetraInd)

    - #### getNeighbourLocInd

          public PiVector getNeighbourLocInd()

    - #### setNeighbourLocInd

          public void setNeighbourLocInd(PiVector neighbourLocInd)

    - #### getBndConstraint

          public PgBndConstraint getBndConstraint()

    - #### setBndConstraint

          public void setBndConstraint(PgBndConstraint bndConstraint)

    - #### setTetraSet

          public void setTetraSet(PgTetraSet geom)

      Assign base geometry of this boundary polygon.

    - #### 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 setNumElements().
      Overrides:
        `setMaxNumVertices` in class `PgPointSet`
      Version:
        14.03.06, 3.00 revised (kp) Method made public to allow better control of allocations.

    - #### setMaxNumElements

          public void setMaxNumElements(int numElements)

      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 setNumElements().
      Overrides:
        `setMaxNumElements` in class `PgElementSet`
      Version:
        14.03.06, 3.00 revised (kp) Method made public to allow better control of allocations.

    - #### assignVertices

          public boolean assignVertices()

      Update the vertices of the polygon. This method should be called when vertices of the tetraSet have changed.

      Method assumes that boundary has been setup for a tetra set before.

      Author:
        Konrad Polthier
      Version:
        12.02.00, 1.20 revised (kp) Additional check whether bnd refers to valid vertices.
        02.09.99, 1.10 revised (kp) Vertices are no longer shared with tetra set and now really copied.
        00.00.98, 1.00 created (kp)

    - #### makeTetraInd

          public boolean makeTetraInd()

      After the vertexInd have been assigned, this method fills the tetraInd vector by asking the triangulation for edges. Additionally, the vertices are assigned.

      Method does not work for non-conforming tetra sets.

      The currently used algorithm performs a linear run over all tetras to find the tetra index of the first edge. For all other boundary vertices, only their neighbourhood is checked. In case of non-manifold vertices, however, another linear run over all tetras is performed.

      Returns:
        false if missing tetra set or edge not found, else true.
      Author:
        Konrad Polthier
      Version:
        21.03.07, 2.10 revised (ah) Support for non-manifold surfaces.
        30.01.07, 2.00 revised (ah) Linearized.
        15.11.00, 1.20 revised (kp) Return false if edge not found.
        03.09.99, 1.10 revised (kp) m_neighbourLocInd incorporated.
        11.12.97, 1.00 created (kp)

    - #### merge

          public boolean merge(PgBndElementSet b)

      Merge boundary polygon with current object into 'this'.
      Parameters:
        `b` - PgBndPolygon to be merged into 'this'
      Returns:
        `true` if merge was successfull
      Author:
        Konrad Polthier
      Version:
        29.12.97, 1.00 revised (kp)
        29.12.97, 1.00 created (kp)

    - #### blend

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

      Blend between two polygon using `this = s*a + t*b`.
      Specified by:
        `blend` in interface `PgGeometryIf`
      Overrides:
        `blend` in class `PgElementSet`
      Parameters:
        `s` - weight of vertices of first boundary polygon
        `ag` - first boundary polygon used for blending
        `t` - weight of vertices of second boundary polygon
        `bg` - second boundary polygon used for blending
      Returns:
        true on success
      Author:
        Konrad Polthier
      Version:
        10.11.01, 2.00 revised (kp) Interpolation of material properties enabled.
        31.12.97, 1.00 created (kp)

    - #### constrain

          public boolean constrain()

      Project boundary vertices of tetra set onto curves determined by boundary constraints. Then update vertices of boundary polygon too.

"

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