vgp.discrete.harmonic

## Class PgSurfacePair

- java.lang.Object
- - jv.object.PsObject
  - - jv.project.PgGeometry
    - - vgp.discrete.harmonic.PgSurfacePair

- All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, PsTimeListenerIf, PsUpdateIf, PgGeometryIf
  Direct Known Subclasses:
    PgHarmonicMap

      public class PgSurfacePair
      extends PgGeometry
      implements PsTimeListenerIf

  Maps between surfaces are given by specifying a domain and an image surface. Additionally, image surface may have a conjugate surface and a continuous, animatable 1-parameter family between surface and its conjugate.
  See Also:
    Serialized Form
  Author:
    Konrad Polthier
  Version:
    21.12.00, 2.50 revised (kp) Working on full non-conforming mesh.
    21.07.99, 2.00 revised (kp) Instance Energy of subclass removed.
    00.00.98, 1.00 created (kp)

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `ASSOCIATE`
    `static int` | `ASSOCIATE_FULL`
    `static int` | `CURRENT`
    `static int` | `DOMAIN` Identifiers of surfaces handle in data structure PgSurfacePair.
    `static int` | `DUAL`
    `static int` | `DUAL_FULL`
    `static int` | `SURFACE`

    - ### 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
    `PgSurfacePair(int domainDim, int imageDim)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `computeAssociate(double t)` Compute associate family by interpolating between surface and dual.
    `boolean` | `conjugate()`
    `boolean` | `conjugateToFull()`
    `PgElementSet` | `getActiveSurface()`
    `PsAnimation` | `getAnimation()` Get the animation object of the project which handles the projects animations.
    `PgElementSet` | `getSurface(int type)`
    `boolean` | `hasAnimation()` Check whether this project is registered as listener of an animation object.
    `void` | `init()` Initializes and resets geometry.
    `void` | `paint(PvGeometryIf dc)` Major rendering method fills an internal container class supplied by the display.
    `void` | `setActiveSurface(int type)`
    `void` | `setAnimation(PsAnimation anAnimation)` Assign the animation object where this listener is registered.
    `void` | `setSurface(PgElementSet geom, int type)`
    `boolean` | `setTime(PsTimeEvent timeEvent)` Required interface for PsTimeListenerIf
    `boolean` | `update(java.lang.Object event)` Update method of geometry updates registered panels, update listeners, and invokes a repaint in the registered displays.

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

      `addDisplay, addElement, addPolygon, addVertex, applyAmbientMatrix, applyModelingMatrix, blend, clearTagElement, clearTagPolygon, clearTagVertex, clone, convertWorldToModel, copy, fillMethodMenu, fillMethodMenu, getAmbientBounds, getAmbientInvMatrix, getAmbientMatrix, getAmbientProjection, getAmbientSpace, getAuthorInfo, getAuthors, getBounds, getCenter, getCenterOfElement, getControlPanel, getDiameter, getDimOfSimplex, getDimOfVertices, getDisplayList, getDisplays, getElement, getGeometryInfo, getJvx, getLabelAttribute, getLabelColor, getLabelFont, getLabelSize, getLabelStyle, getMaterialPanel, getModelMatrix, getPolygon, getState, getTextureImage, getTextureImageName, getTitle, getType, getVersion, getVersionType, getVertex, hasAmbientMatrix, hasDisplay, hasModelMatrix, hasTagElement, hasTagPolygon, hasTagVertex, intersectionWithLine, isConfigurable, isEnabledInstanceSharing, isShowingBndBox, isShowingCenter, isShowingName, isShowingTitle, isVisible, merge, projectFromAmbientSpace, reflect, removeDisplay, removeElement, removeMethodMenus, removePolygon, removeVertex, setAmbientMatrix, setAmbientProjection, setAmbientSpace, setAuthorInfo, setAuthors, setCenter, setDimOfSimplex, setDimOfVertices, setElement, setEnabledInstanceSharing, setGeometryInfo, setJvx, setLabelAttribute, setLabelAttribute, setLabelColor, setLabelFont, setLabelSize, setLabelStyle, setModelMatrix, setPolygon, setState, setTagElement, setTagPolygon, setTagVertex, setTextureImage, setTextureImageName, setTitle, setType, setVersion, setVersionType, setVertex, setVisible, showBndBox, showCenter, showName, showTitle, toString`

    - ### 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.anim.PsTimeListenerIf

      `getName`

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

      `assureInspector, getInfoPanel, getName, hasTag, setName`

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

      `getFather, setParent`

- - ### Field Detail

    - #### DOMAIN

          public static final int DOMAIN

      Identifiers of surfaces handle in data structure PgSurfacePair. Numbering must be in the same order than in the corresponding choice in PgSurfacePair_IP, see PgSurfacePair_IP#m_cShowSurface.
      See Also:
        Constant Field Values

    - #### SURFACE

          public static final int SURFACE

      See Also:
        Constant Field Values

    - #### DUAL

          public static final int DUAL

      See Also:
        Constant Field Values

    - #### DUAL_FULL

          public static final int DUAL_FULL

      See Also:
        Constant Field Values

    - #### ASSOCIATE

          public static final int ASSOCIATE

      See Also:
        Constant Field Values

    - #### ASSOCIATE_FULL

          public static final int ASSOCIATE_FULL

      See Also:
        Constant Field Values

    - #### CURRENT

          public static final int CURRENT

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### PgSurfacePair

          public PgSurfacePair(int domainDim,
                               int imageDim)

  - ### Method Detail

    - #### init

          public void init()

      Description copied from class: `PgGeometry`
      Initializes and resets geometry.
      Overrides:
        `init` in class `PgGeometry`

    - #### update

          public boolean update(java.lang.Object event)

      Description copied from class: `PgGeometry`
      Update method of geometry updates registered panels, update listeners, and invokes a repaint in the registered displays.

      Usage:

      1. 1. event == this : geometry has changed, all panels will be updated.
      2. 2. event == null : geometry has changed, no need to update a panel.
      3. 3. event == a panel : geometry has changed, all panels except 'panel' will be updated.
      4. 4. event == else : unhandled event, error.
      Panels are not updated if they have not been created yet, or if they are not visible.

      Any update is forwarded to the parent of the geometry with the geometry as event.

      Any update is forwarded to each registered display with the geometry as event which leads to a repaint of the display.

      Specified by:
        `update` in interface `PsUpdateIf`
      Overrides:
        `update` in class `PgGeometry`
      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)`

    - #### getActiveSurface

          public PgElementSet getActiveSurface()

    - #### setActiveSurface

          public void setActiveSurface(int type)

    - #### computeAssociate

          public boolean computeAssociate(double t)

      Compute associate family by interpolating between surface and dual. Use info panel to start animation sequence.

    - #### setSurface

          public void setSurface(PgElementSet geom,
                                 int type)

    - #### getSurface

          public PgElementSet getSurface(int type)

    - #### paint

          public void paint(PvGeometryIf dc)

      Description copied from class: `PgGeometry`
      Major rendering method fills an internal container class supplied by the display. See `jv.project.PgGeometryIf` for detailed information.
      Specified by:
        `paint` in interface `PgGeometryIf`
      Overrides:
        `paint` in class `PgGeometry`
      See Also:
        `PgGeometryIf`

    - #### conjugate

          public boolean conjugate()

    - #### conjugateToFull

          public boolean conjugateToFull()

    - #### setTime

          public boolean setTime(PsTimeEvent timeEvent)

      Required interface for PsTimeListenerIf
      Specified by:
        `setTime` in interface `PsTimeListenerIf`

    - #### getAnimation

          public PsAnimation getAnimation()

      Get the animation object of the project which handles the projects animations. This listener may only have a single animation object which is assigned by the animation object when this listener is registered using `setAnimation(PsAnimation)`.
      Specified by:
        `getAnimation` in interface `PsTimeListenerIf`
      See Also:
        `hasAnimation()`, `setAnimation(PsAnimation)`

    - #### hasAnimation

          public boolean hasAnimation()

      Check whether this project is registered as listener of an animation object.
      Specified by:
        `hasAnimation` in interface `PsTimeListenerIf`
      See Also:
        `getAnimation()`, `setAnimation(PsAnimation)`

    - #### setAnimation

          public void setAnimation(PsAnimation anAnimation)

      Assign the animation object where this listener is registered. This method is invoked by the animation object during registration of this listener, and usually is not required to be called by a user. If this listener has an assigned animation object, then its animation panel may be shown to change the current time of this listener.

      Only one animation object may be assigned to this listener. Subsequent assignments will replace the previous assignment.

      Specified by:
        `setAnimation` in interface `PsTimeListenerIf`
      See Also:
        `getAnimation()`, `hasAnimation()`

"

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