public class Hermite3D
extends java.lang.Object
Implementation of hermite curves for drawing smoothed curves that pass through specified points.
Examples of usage in Jmol include the commands: trace,
ribbons and cartoons
.
for some useful background info about hermite curves check out http://www.cubic.org/docs/hermite.htm Technically, Jmol implements a Cardinal spline varient of the Hermitian spline
Modifier and Type | Field and Description |
---|---|
private javax.vecmath.Point3f |
a1 |
private javax.vecmath.Point3f |
a2 |
private javax.vecmath.Point3f |
b1 |
private javax.vecmath.Point3f |
b2 |
private javax.vecmath.Point3f |
c1 |
private javax.vecmath.Point3f |
c2 |
private javax.vecmath.Point3f |
d1 |
private javax.vecmath.Point3f |
d2 |
private javax.vecmath.Vector3f |
depth1 |
private JmolRendererInterface |
g3d |
private boolean[] |
needToFill |
private javax.vecmath.Point3f[] |
pBotLeft |
private javax.vecmath.Point3f[] |
pBotRight |
private javax.vecmath.Point3i[] |
pLeft |
private javax.vecmath.Point3i[] |
pRight |
private javax.vecmath.Point3f[] |
pTopLeft |
private javax.vecmath.Point3f[] |
pTopRight |
private float[] |
sLeft |
private float[] |
sRight |
private javax.vecmath.Vector3f |
T1 |
private javax.vecmath.Vector3f |
T2 |
Constructor and Description |
---|
Hermite3D(JmolRendererInterface g3d) |
Modifier and Type | Method and Description |
---|---|
(package private) static void |
getHermiteList(int tension,
javax.vecmath.Tuple3f p0,
javax.vecmath.Tuple3f p1,
javax.vecmath.Tuple3f p2,
javax.vecmath.Tuple3f p3,
javax.vecmath.Tuple3f p4,
javax.vecmath.Tuple3f[] list,
int index0,
int n) |
void |
renderHermiteRibbon(boolean fill,
boolean border,
int tension,
javax.vecmath.Point3i p0,
javax.vecmath.Point3i p1,
javax.vecmath.Point3i p2,
javax.vecmath.Point3i p3,
javax.vecmath.Point3i p4,
javax.vecmath.Point3i p5,
javax.vecmath.Point3i p6,
javax.vecmath.Point3i p7,
int aspectRatio) |
void |
renderHermiteRope(boolean fill,
int tension,
int diameterBeg,
int diameterMid,
int diameterEnd,
javax.vecmath.Point3i p0,
javax.vecmath.Point3i p1,
javax.vecmath.Point3i p2,
javax.vecmath.Point3i p3) |
private void |
renderParallelPair(boolean fill,
int tension,
javax.vecmath.Point3i p0,
javax.vecmath.Point3i p1,
javax.vecmath.Point3i p2,
javax.vecmath.Point3i p3,
javax.vecmath.Point3i p4,
javax.vecmath.Point3i p5,
javax.vecmath.Point3i p6,
javax.vecmath.Point3i p7) |
private static void |
set(javax.vecmath.Point3f p3f,
javax.vecmath.Point3i p3i) |
private void |
setDepth(javax.vecmath.Vector3f depth,
javax.vecmath.Point3f c,
javax.vecmath.Point3f a,
javax.vecmath.Point3f b,
float ratio) |
private void |
setPoint(javax.vecmath.Point3f a1,
javax.vecmath.Point3f a,
javax.vecmath.Vector3f depth,
int direction) |
private JmolRendererInterface g3d
private final javax.vecmath.Point3i[] pLeft
private final javax.vecmath.Point3i[] pRight
private final float[] sLeft
private final float[] sRight
private final javax.vecmath.Point3f[] pTopLeft
private final javax.vecmath.Point3f[] pTopRight
private final javax.vecmath.Point3f[] pBotLeft
private final javax.vecmath.Point3f[] pBotRight
private final javax.vecmath.Point3f a1
private final javax.vecmath.Point3f a2
private final javax.vecmath.Point3f b1
private final javax.vecmath.Point3f b2
private final javax.vecmath.Point3f c1
private final javax.vecmath.Point3f c2
private final javax.vecmath.Point3f d1
private final javax.vecmath.Point3f d2
private final javax.vecmath.Vector3f depth1
private final boolean[] needToFill
private final javax.vecmath.Vector3f T1
private final javax.vecmath.Vector3f T2
public Hermite3D(JmolRendererInterface g3d)
public void renderHermiteRope(boolean fill, int tension, int diameterBeg, int diameterMid, int diameterEnd, javax.vecmath.Point3i p0, javax.vecmath.Point3i p1, javax.vecmath.Point3i p2, javax.vecmath.Point3i p3)
public void renderHermiteRibbon(boolean fill, boolean border, int tension, javax.vecmath.Point3i p0, javax.vecmath.Point3i p1, javax.vecmath.Point3i p2, javax.vecmath.Point3i p3, javax.vecmath.Point3i p4, javax.vecmath.Point3i p5, javax.vecmath.Point3i p6, javax.vecmath.Point3i p7, int aspectRatio)
private void renderParallelPair(boolean fill, int tension, javax.vecmath.Point3i p0, javax.vecmath.Point3i p1, javax.vecmath.Point3i p2, javax.vecmath.Point3i p3, javax.vecmath.Point3i p4, javax.vecmath.Point3i p5, javax.vecmath.Point3i p6, javax.vecmath.Point3i p7)
fill
- NOT USEDtension
- p0
- p1
- p2
- p3
- p4
- p5
- p6
- p7
- private static void set(javax.vecmath.Point3f p3f, javax.vecmath.Point3i p3i)
private void setDepth(javax.vecmath.Vector3f depth, javax.vecmath.Point3f c, javax.vecmath.Point3f a, javax.vecmath.Point3f b, float ratio)
private void setPoint(javax.vecmath.Point3f a1, javax.vecmath.Point3f a, javax.vecmath.Vector3f depth, int direction)
static void getHermiteList(int tension, javax.vecmath.Tuple3f p0, javax.vecmath.Tuple3f p1, javax.vecmath.Tuple3f p2, javax.vecmath.Tuple3f p3, javax.vecmath.Tuple3f p4, javax.vecmath.Tuple3f[] list, int index0, int n)