JavaView® v2.12

jvx.geom
Class PgTube

java.lang.Object
  |
  +--jv.object.PsObject
        |
        +--jv.project.PgGeometry
              |
              +--jv.geom.PgPointSet
                    |
                    +--jv.geom.PgElementSet
                          |
                          +--jvx.geom.PgTube
All Implemented Interfaces:
java.lang.Cloneable, PgGeometryIf, PsUpdateIf, java.io.Serializable

public class PgTube
extends PgElementSet

Class generates a tube either around a given polygon or around edges of an elementSet. In case of polygons tube is generated e.g. by parallel translating a frame. It requires an existing polygon of class PgPolygon and produces a tube which is a subclass of PgElementSet. In case of element sets tube is generated by using vertex normals.

Version:
11.06.01, 3.10 revised (ur) Set tube as updateListener of polygon/elementSet.
01.04.00, 3.00 revised (kp) Moved from package jv.rsrc to jvx.geom.
07.11.99, 2.02 revised (kp) Lower limit of tube discr increased to 2.
16.07.99, 2.01 revised (kp) update() now ensures that info panel is updated.
14.02.99, 2.00 revised (kp) Extended to thicken edges of elementSets too.
13.02.99, 1.50 revised (kp) Tube is now subclass of PgElementSet instead of PgPolygon.
00.00.97, 1.00 created (kp)
Author:
Konrad Polthier
See Also:
PgPolygon, PgElementSet, Serialized Form

Fields inherited from class jv.object.PsObject
HAS_CONFIG_PANEL, HAS_INFO_PANEL, HAS_MATERIAL_PANEL, HAS_TEXTURE_PANEL, INSPECTOR_INFO, INSPECTOR_INFO_EXT, IS_DELETED, IS_FIXED, 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, 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, METHOD_EXT, PROJ_KLEIN_BALL, PROJ_PARALLEL, PROJ_POINCARE_BALL, PROJ_STEREOGRAPHIC, PROJ_UPPER_HALFSPACE
 
Constructor Summary
PgTube(int aDim)
           
 
Method Summary
 PgFrame[] generateFrames()
          Parallel translate a frame along the polygon and store one frame per polygon vertex.
 void generateThickEdges()
          Make tube around edges of elementSet using instance variables m_disr and m_thickness.
 void generateTube()
          Make tube around polygon using array of previously computed frames and instance variables m_discr and m_thickness.
 PuInteger getDiscr()
           
 PuDouble getThickness()
           
 void init()
          Initialize and reset instance variables after call to super.init().
 void removeElementSet()
          Remove the current polygon and initialize this object.
 void removePolygon()
          Remove the current polygon and initialize this object.
 void setDefDiscr(int defDiscr)
           
 void setDefThickness(double defThickness)
           
 void setDiscr(int discr)
           
 void setElementSet(PgElementSet elementSet)
          Set elementSet to compute thick edges from.
 void setPolygon(PgPolygon polygon)
          Set polygon, but does not compute the tube.
 void setThickness(double thickness)
           
 boolean update(java.lang.Object event)
          A call of update with the polygon as set by setPolygon(PgPolygon) re-computes frames and tube.
 
Methods inherited from class jv.geom.PgElementSet
addEdge, addElement, addElement, assureBoundary, assureDimOfElements, assureEdgeColors, assureElementBackColors, assureElementColors, assureElementNormals, assureElementTextures, blend, buildPolygon, buildPolygonFromCurve, buildQuadr, buildQuadrFromCurve, buildTriangle, buildTriangleFromCurve, checkNeighbour, clearTagElement, clone, close, computeCylinder, computeDisk, computePlane, computeRotation, computeSnail, computeSphere, computeTorus, copy, copyConnectivity, copyElementSet, fixBoundaries, flipEdges, flipOrientation, getArea, getAreaOfElement, getBoundaries, getDimOfElements, getEdge, getEdge, getEdgeColors, getEdgeLength, getEdgeList, getEdges, getElement, getElementBackColor, getElementBackColors, getElementColor, getElementColors, getElementNormal, getElementNormals, getElements, getElementTextures, getElementVertices, getElementWithVertex, getGlobalBndColor, getGlobalBndSize, getGlobalBndTagColor, getGlobalEdgeColor, getGlobalEdgeSize, getGlobalEdgeTagColor, getGlobalElementBackColor, getGlobalElementColor, getGlobalElementNormalColor, getGlobalElementNormalLength, getGlobalElementNormalSize, getGlobalElementTagColor, getJvx, getL2Matrix, getL2Norm, getMaxNumElements, getNeighbour, getNeighbourLocInd, getNeighbours, getNumBoundaries, getNumBoundaryComponents, getNumBoundaryEdges, getNumBoundaryVertices, getNumEdges, getNumElementIndices, getNumElements, getOppVertexInd, getOppVertexLocInd, getSavedElements, getSavedNumVertices, getVertexAngle, getVertexTextures, getVolume, getVolumeOfElement, hasBoundary, hasEdgeColors, hasEdges, hasElementBackColors, hasElementColors, hasElementNormals, hasElementTextures, hasTagElement, intersectionWithLine, isConforming, isShowingBackface, isShowingBoundaries, isShowingEdgeColors, isShowingEdgeLabels, isShowingEdges, isShowingElementBackColor, isShowingElementBackColors, isShowingElementColors, isShowingElementLabels, isShowingElementNormalArrow, isShowingElementNormals, isShowingElements, isShowingElementTextures, isShowingOutline, isShowingTaggedBoundaries, isShowingTaggedEdges, isShowingTaggedElements, makeAlternatingQuadrConn, makeCylinderConn, makeElementColorsFromXYZ, makeElementColorsFromZ, makeElementColorsFromZHue, makeElementFromVertexColors, makeElementNormals, makeNeighbour, makePatchConn, makeQuadrBnd, makeQuadrConn, makeQuadrElementTexture, makeQuadrVertexTexture, makeTriangleBnd, makeTriangleConn, makeVertexFromElementColors, makeVertexNormals, markBoundary, merge, paint, printEdgeList, refineGlobalIntoFour, reflect, removeBoundaries, removeElement, removeMarkedElements, removeMarkedVertices, removeUnusedVertices, resetBoundaryNormals, setBoundary, setConforming, setDimOfColors, setDimOfElements, setDimOfVectors, setEdge, setEdgeColors, setEdges, setElement, setElement, setElement, setElement, setElementBackColor, setElementBackColors, setElementColor, setElementColors, setElementNormal, setElementNormals, setElements, setElementTexture, setElementTextures, setElementVertices, setGlobalBndColor, setGlobalBndSize, setGlobalBndTagColor, setGlobalEdgeColor, setGlobalEdgeSize, setGlobalEdgeTagColor, setGlobalElementBackColor, setGlobalElementColor, setGlobalElementNormalColor, setGlobalElementNormalLength, setGlobalElementNormalSize, setGlobalElementTagColor, setJvx, setNeighbours, setNumEdges, setNumElements, setSavedElements, setSavedNumVertices, setTagElement, setVertexTextures, showBackface, showBoundaries, showEdgeColors, showEdgeLabels, showEdges, showElementBackColor, showElementBackColors, showElementColors, showElementLabels, showElementNormalArrow, showElementNormals, showElements, showElementTexture, showOutline, showTaggedBoundaries, showTaggedEdges, showTaggedElements, toString, triangulate
 
Methods inherited from class jv.geom.PgPointSet
addVectorField, addVertex, assureVertexColors, assureVertexNormals, assureVertexTextures, clearTagVertex, getAmbientBounds, getBounds, getCenterOfBndBox, getCenterOfGravity, getDimOfColors, getDimOfTextures, getDimOfVectors, getGlobalVectorColor, getGlobalVectorLength, getGlobalVectorSize, getGlobalVertexColor, getGlobalVertexNormalColor, getGlobalVertexNormalLength, getGlobalVertexNormalSize, getGlobalVertexSize, getGlobalVertexTagColor, getIndexOfVectorField, getMaxNumVertices, getNumVectorFields, getNumVertices, getTexture, getTextureImage, getTextureImageName, getVectorField, getVectorField, getVertex, getVertexColor, getVertexColors, getVertexNormal, getVertexNormals, getVertices, hasTagVertex, hasVertex, hasVertex, hasVertexColors, hasVertexNormals, hasVertexTextures, isDefaultLabelEnabled, isShowingIndices, isShowingTaggedVertices, isShowingVectorArrow, isShowingVectorArrows, isShowingVectorColors, isShowingVectorField, isShowingVertexColors, isShowingVertexLabels, isShowingVertexNormalArrow, isShowingVertexNormals, isShowingVertexTexture, isShowingVertices, makeColorFromVectorLength, makeVertexColorsFromXYZ, makeVertexColorsFromZ, makeVertexColorsFromZHue, makeVertexTextureFromBndBox, makeVertexTextureFromCylinder, makeVertexTextureFromSphere, projectToSphere, removeAllVectorFields, removeVectorField, removeVertex, scale, scale, setCenterOfBndBox, setDefaultLabelEnabled, setDimOfTextures, setGlobalVectorColor, setGlobalVectorLength, setGlobalVectorSize, setGlobalVertexColor, setGlobalVertexNormalColor, setGlobalVertexNormalLength, setGlobalVertexNormalSize, setGlobalVertexSize, setGlobalVertexTagColor, setNumVertices, setState, setTagVertex, setTexture, setTextureImage, setTextureImageName, setTransparency, setVertex, setVertex, setVertex, setVertex, setVertexColor, setVertexColors, setVertexNormal, setVertexNormals, setVertices, showIndices, showTaggedVertices, showVectorArrow, showVectorArrows, showVectorColors, showVectorField, showVectorFields, showVertexColors, showVertexLabels, showVertexNormalArrow, showVertexNormals, showVertexTexture, showVertices, translate
 
Methods inherited from class jv.project.PgGeometry
addDisplay, addPolygon, clearTagPolygon, fillMethodMenu, getAmbientInvMatrix, getAmbientMatrix, getAmbientProjection, getAmbientSpace, getAuthorInfo, getAuthors, getCenter, getCenterOfElement, getControlPanel, getDiameter, getDimOfSimplex, getDimOfVertices, getDisplays, getGeometryInfo, getLabelAttribute, getMaterialPanel, getModelMatrix, getPolygon, getTitle, getVersion, getVersionType, hasAmbientMatrix, hasDisplay, hasModelMatrix, hasTagPolygon, isConfigurable, isShowingBndBox, isShowingCenter, isShowingTitle, isVisible, removeDisplay, removePolygon, setAmbientMatrix, setAmbientProjection, setAmbientSpace, setAuthorInfo, setAuthors, setCenter, setDimOfSimplex, setGeometryInfo, setLabelAttribute, setLabelAttribute, setModelMatrix, setPolygon, setTagPolygon, setTitle, setVersion, setVersionType, setVisible, showBndBox, showCenter, showTitle
 
Methods inherited from class jv.object.PsObject
addInspector, addUpdateListener, assureInspector, clearTag, clone, clone, copy, getFather, getInfoPanel, getInspector, getName, getNumObjects, hasInspector, hasTag, hasUpdateListener, instanceOf, instanceOf, removeInspector, removeUpdateListener, setName, setParent, 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, setName
 
Methods inherited from interface jv.object.PsUpdateIf
getFather, setParent
 

Constructor Detail

PgTube

public PgTube(int aDim)
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

getDiscr

public PuInteger getDiscr()

setDiscr

public void setDiscr(int discr)

getThickness

public PuDouble getThickness()

setThickness

public void setThickness(double thickness)

setDefDiscr

public void setDefDiscr(int defDiscr)

setDefThickness

public void setDefThickness(double defThickness)

setElementSet

public void setElementSet(PgElementSet elementSet)
Set elementSet to compute thick edges from. You must compute frames and tube per hand or send an update with the polygon as argument.

Method registers this class as updateListener in the polygon.

See Also:
generateThickEdges(), update(Object)

removeElementSet

public void removeElementSet()
Remove the current polygon and initialize this object.

Method de-registers this class as updateListener in the polygon.

See Also:
setPolygon(PgPolygon)

setPolygon

public void setPolygon(PgPolygon polygon)
Set polygon, but does not compute the tube. You must compute frames and tube per hand or send an update with the polygon as argument.

Method registers this class as updateListener in the polygon.

See Also:
generateFrames(), generateTube(), update(Object)

removePolygon

public void removePolygon()
Remove the current polygon and initialize this object.

Method de-registers this class as updateListener in the polygon.

See Also:
setPolygon(PgPolygon)

update

public boolean update(java.lang.Object event)
A call of update with the polygon as set by setPolygon(PgPolygon) re-computes frames and tube.
Overrides:
update in class PgElementSet
See Also:
setPolygon(PgPolygon), generateFrames(), generateTube()

generateFrames

public PgFrame[] generateFrames()
Parallel translate a frame along the polygon and store one frame per polygon vertex. This methods must be called whenever the geometry or discretization of the polygon changes. Currently, this method is automatically invoked by PgTube#update.

Method ignores edges of length 0, therefore, the number of returned frames maybe different than the number of vertices.

The returned frames are later used by method PgTube#generateTube().

Returns:
array of frames, one frame for each geometrix polygon vertex
See Also:
generateTube(), PgFrame

generateTube

public void generateTube()
Make tube around polygon using array of previously computed frames and instance variables m_discr and m_thickness.

Method #generateFrame() must be called prior to this method.

See Also:
getDiscr(), getThickness(), #generateFrame()

generateThickEdges

public void generateThickEdges()
Make tube around edges of elementSet using instance variables m_disr and m_thickness. Vertex and element normals are recomputed.
See Also:
getDiscr(), getThickness()

JavaView® v2.12

The software JavaView® is copyright protected. All Rights Reserved.