jvx.geom
Class PwTetraSet
java.lang.Object
|
+--jv.object.PsObject
|
+--jvx.geom.PwTetraSet
- public class PwTetraSet
- extends PsObject
Workshop for tetrahedron related works.
- Version:
- 9. 3.00, 1.00 Seperated from jv.geom.PgTetraSet.
- Author:
- Samy Khadem-Al-Charieh
- See Also:
- Serialized Form
| Methods inherited from class jv.object.PsObject |
addInspector,
addUpdateListener,
clearTag,
clone,
clone,
clone,
copy,
getFather,
getInfoPanel,
getInspector,
getName,
getNumObjects,
hasInspector,
hasTag,
hasUpdateListener,
init,
instanceOf,
instanceOf,
removeInspector,
removeUpdateListener,
setName,
setParent,
setTag,
toString,
update |
| Methods inherited from class java.lang.Object |
equals,
getClass,
hashCode,
notify,
notifyAll,
wait,
wait,
wait |
PwTetraSet
public PwTetraSet()
colorVertices
public void colorVertices(PgTetraSet tetra,
PuFunction function)
- Colors the vertices according to the functionvalues.
First the maximal absolute value is searched for.
The resulting interval is discretized by 768 steps.
Values are coded from zero starting with black and
continuing to red, yellow, white for positive (hot) values
and to blue, cyan, white for negative (cold) values.
makeSurface
public PgElementSet makeSurface(PgTetraSet tetra,
PuFunction function,
double offset)
- Scans the tetrahedrons of this component for the intersections with the
aequi potential surface of the passed value for the passed function.
Its working on the tetrahedrons one by one. First it get the four angle
vertices and computes the corresponding function values. Then the three
edge vectors pointing from the fourth point to the others are calculated,
put into a matrix and with this matrix it is checked if the tetrahedron
is degenerated (what results in a warning message and skipping of this
tetrahedron).
Next the pairs of vertex and function value are sorted by the function
values and afterwards is counted how many have negative signum and how
many positive one (if some are zero sum is less than four).
In case of only one vertex having a positive / negative function
value the intersection is triangular and a face is added.
In case of two positive and two negative vertices the intersection
is quadrangular and also a face is adde.
In case of all vertices zero / positive / negative there is no
intersection and so no faces are added.
In case that two of the vertices are positive / negative and the
other two are zero the intersection is a line an also nothing is added.
For determining the face if one has to be added the method findZero is
used along the edges. Then the vertices are added to the vertex list
(if not already contained) and the spanned face is added to the element
list.
TODO: update nicht hier ausführen (besser in aufrufender Methode)!
- See Also:
skMath.findZero(double,double,PuFunction)
refine
public void refine(PgTetraSet tetra,
PuFunction function,
double offset)
- Refines polyhedron adaptive locally. It just looks for tetrahedrons that
should be refined, notices their indices in a list and calls
refine(Vector) with passing this list.
The criterion is that a tetrahedron is refined, if all of its vertices
have neither only positive function values nor only negative nor are
all zero.
TODO: A - hier gehts weiter (refinement-edge-Liste prüfen)
TODO: refine(): intelligenteres Kriterium? (z.B.: Gaußkrümmung mit Gradienten an Tetraeder-Eckpunkten)
TODO: refine(): Schranke für gewünschte Feinheit?
TODO: offset implementieren
- See Also:
refine(PiVector)
The software JavaView® is copyright protected. All Rights Reserved.