JavaView® v2.00.008

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:
01.04.00, 3.00 revised (kp) Moved from package jv.rsrc to jvx.rsrc.
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

Field Summary
protected  PuInteger m_discr
          Number of vertices of tube's circle at each polygon vertex.
protected  PgElementSet m_elementSet
          Tube around edges of associated read-only elementSet living somewhere else.
protected  PgFrame[] m_frame
          Array of frames, one frame per polygon vertex.
protected  int m_numFrames
          Number of polygon vertices, equal to length of array m_frame.
protected  PgPolygon m_polygon
          Soal of tube, associated read-only polygon living somewhere else.
protected  PuDouble m_thickness
          Thickness of tube, radius of tube's circle at each polygon vertex.
 
Fields inherited from class jv.geom.PgElementSet
m_bConforming, m_bndList, m_bShowBackface, m_bShowBoundaries, m_bShowEdgeColors, m_bShowEdgeLabels, m_bShowEdges, m_bShowElementBackColor, m_bShowElementBackColors, m_bShowElementColors, m_bShowElementLabels, m_bShowElementNormalArrow, m_bShowElementNormals, m_bShowElements, m_bShowElementTexture, m_bShowOutline, m_bShowTaggedBoundaries, m_bShowTaggedEdges, m_bShowTaggedElements, m_dimOfElements, m_edge, m_edgeColor, m_element, m_elementBackColor, m_elementColor, m_elementNormal, m_elementSaved, m_elementTexture, m_globalBndColor, m_globalBndSize, m_globalBndTagColor, m_globalEdgeColor, m_globalEdgeSize, m_globalEdgeTagColor, m_globalElementBackColor, m_globalElementColor, m_globalElementNormalColor, m_globalElementNormalLength, m_globalElementNormalSize, m_globalElementTagColor, m_maxNumElements, m_neighbour, m_numEdges, m_numElements, m_savedNumVertices
 
Fields inherited from class jv.geom.PgPointSet
m_bDefaultLabelEnabled, m_bShowIndices, m_bShowTaggedVertices, m_bShowTransparency, m_bShowVectorArrow, m_bShowVectorColors, m_bShowVectorFields, m_bShowVertexColors, m_bShowVertexLabels, m_bShowVertexNormalArrow, m_bShowVertexNormals, m_bShowVertexTexture, m_bShowVertices, m_dimOfColors, m_dimOfTextures, m_dimOfVectors, m_globalVectorColor, m_globalVectorLength, m_globalVectorSize, m_globalVertexColor, m_globalVertexNormalColor, m_globalVertexNormalLength, m_globalVertexNormalSize, m_globalVertexSize, m_globalVertexTagColor, m_maxNumVertices, m_numVectorFields, m_numVertices, m_texture, m_transparency, m_vectorField, m_vertex, m_vertexColor, m_vertexNormal, m_vertexTexture
 
Fields inherited from class jv.project.PgGeometry
m_ambientProj, m_ambientSpace, m_authorInfo, m_bShowBndBox, m_bShowCenter, m_bShowing, m_bShowTitle, m_center, m_dim, m_dimOfSimplex, m_displayList, m_geometryInfo, m_labelAttribute, m_methodMenu, m_modelMatrix, m_title, m_version, m_versionType
 
Fields inherited from class jv.object.PsObject
HAS_CONFIG_PANEL, HAS_INFO_PANEL, HAS_MATERIAL_PANEL, INSPECTOR_INFO, INSPECTOR_INFO_EXT, IS_DELETED, IS_FIXED, IS_SELECTED, IS_USED, m_infoPanel, m_name, m_panelList, m_parent, m_tag, m_updateList, NUM_TAGS
 
Fields inherited from interface jv.project.PgGeometryIf
AMBIENT_H3_HYPERBOLIC, AMBIENT_PROJECTIONS, AMBIENT_R3_EUCLIDEAN, AMBIENT_R4_EUCLIDEAN, AMBIENT_S3_SPHERE, AMBIENT_SPACES, INSPECTOR_CONTROL, INSPECTOR_CONTROL_EXT, INSPECTOR_MATERIAL, INSPECTOR_MATERIAL_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 setDefDiscr(int defDiscr)
           
 void setDefThickness(double defThickness)
           
 void setDiscr(int discr)
           
 void setElementSet(PgElementSet elementSet)
          Set elementSet, and compute thick edges.
 void setPolygon(PgPolygon polygon)
          Set polygon, and compute frames of tube, but not the tube.
 void setThickness(double thickness)
           
 boolean update(java.lang.Object event)
          Update the class whenever a child has changed.
 
Methods inherited from class jv.geom.PgElementSet
addEdge, addElement, addElement, assureBoundary, assureDimOfElements, assureEdgeColors, assureElementBackColors, assureElementColors, assureElementNormals, assureElementTextures, assureNeighbours, 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, getNumElements, getOppVertexInd, getOppVertexLocInd, getSavedElements, getSavedNumVertices, getVertexAngle, getVolume, getVolumeOfElement, hasBoundary, hasEdgeColors, hasEdges, 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, makeElementNormals, makeNeighbour, makePatchConn, makeQuadrBnd, makeQuadrConn, makeQuadrElementTexture, makeQuadrVertexTexture, makeTriangleBnd, makeTriangleConn, makeVertexNormals, markBoundary, merge, paint, printEdgeList, refineGlobalIntoFour, reflect, removeBoundaries, removeElement, removeMarkedElements, removeMarkedVertices, removeUnusedVertices, setBoundary, setConforming, setDimOfColors, setDimOfElement, 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, setMaxNumElements, setNeighbours, setNumEdges, setNumElements, setSavedElements, setSavedNumVertices, setTagElement, 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, getBounds, getCenterOfBndBox, getCenterOfGravity, getDimOfColors, getDimOfTextures, getDimOfVectors, getGlobalVectorColor, getGlobalVectorLength, getGlobalVectorSize, getGlobalVertexColor, getGlobalVertexNormalColor, getGlobalVertexNormalLength, getGlobalVertexNormalSize, getGlobalVertexSize, getGlobalVertexTagColor, getIndexOfVectorField, getMaxNumVertices, getNumVectorFields, getNumVertices, getTexture, getTextureImage, getTextureImageName, getVectorField, getVectorField, getVectorField, getVertex, getVertexColor, getVertexColors, getVertexNormal, getVertexNormals, getVertexTextures, getVertices, hasTagVertex, hasVertex, hasVertex, hasVertexColors, hasVertexNormals, hasVertexTextures, isDefaultLabelEnabled, isShowingIndices, isShowingTaggedVertices, isShowingVectorArrow, isShowingVectorColors, isShowingVectorField, isShowingVertexColors, isShowingVertexLabels, isShowingVertexNormalArrow, isShowingVertexNormals, isShowingVertexTexture, isShowingVertices, makeColorFromVectorLength, makeVertexColorsFromXYZ, makeVertexColorsFromZ, makeVertexColorsFromZHue, makeVertexTextureFromBndBox, projectToSphere, removeAllVectorFields, removeVectorField, removeVertex, scale, scale, setCenterOfBndBox, setDefaultLabelEnabled, setDimOfTextures, setGlobalVectorColor, setGlobalVectorLength, setGlobalVectorSize, setGlobalVertexColor, setGlobalVertexNormalColor, setGlobalVertexNormalLength, setGlobalVertexNormalSize, setGlobalVertexSize, setGlobalVertexTagColor, setMaxNumVertices, setNumVertices, setTagVertex, setTexture, setTextureImage, setTextureImageName, setTransparency, setVertex, setVertex, setVertex, setVertex, setVertexColor, setVertexColors, setVertexNormal, setVertexNormals, setVertexTextures, setVertices, showIndices, showTaggedVertices, showVectorArrow, showVectorColors, showVectorField, showVertexColors, showVertexLabels, showVertexNormalArrow, showVertexNormals, showVertexTexture, showVertices, translate
 
Methods inherited from class jv.project.PgGeometry
addDisplay, addPolygon, clearTagPolygon, fillMethodMenu, getAmbientProjection, getAmbientSpace, getAuthorInfo, getAuthors, getCenter, getCenterOfElement, getControlPanel, getDiameter, getDimOfSimplex, getDimOfVertices, getDisplays, getGeometryInfo, getLabelAttribute, getMaterialPanel, getModelMatrix, getPolygon, getTitle, getVersion, getVersionType, hasDisplay, hasModelMatrix, hasTagPolygon, isConfigurable, isShowingBndBox, isShowingCenter, isShowingTitle, isVisible, removeDisplay, removePolygon, 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, 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, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface jv.project.PgGeometryIf
getInfoPanel, getName, setName
 
Methods inherited from interface jv.object.PsUpdateIf
getFather, setParent
 

Field Detail

m_elementSet

protected PgElementSet m_elementSet
Tube around edges of associated read-only elementSet living somewhere else.

m_polygon

protected PgPolygon m_polygon
Soal of tube, associated read-only polygon living somewhere else.

m_numFrames

protected int m_numFrames
Number of polygon vertices, equal to length of array m_frame.

m_frame

protected PgFrame[] m_frame
Array of frames, one frame per polygon vertex.

m_discr

protected PuInteger m_discr
Number of vertices of tube's circle at each polygon vertex.

m_thickness

protected PuDouble m_thickness
Thickness of tube, radius of tube's circle at each polygon vertex.
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, and compute thick edges.

setPolygon

public void setPolygon(PgPolygon polygon)
Set polygon, and compute frames of tube, but not the tube.

update

public boolean update(java.lang.Object event)
Description copied from class: PgElementSet
Update the class whenever a child has changed. Method is usually invoked from the children.
Overrides:
update in class PgElementSet
Following copied from interface: jv.object.PsUpdateIf
Parameters:
event - carries a lot of information
Returns:
true if event has been handled, otherwise false
See Also:
PsObject, PsUpdateIf.getFather(), PsUpdateIf.setParent(PsUpdateIf)

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 correspond to distinct vertex.

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.
See Also:
getDiscr(), getThickness(), PgFrame

generateThickEdges

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

JavaView® v2.00.008

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