org.jmol.g3d
Class Hermite3D

java.lang.Object
  extended by org.jmol.g3d.Hermite3D

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

Author:
Miguel, miguel@jmol.org

Field Summary
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
           
(package private)  int sp
           
private  float[] sRight
           
private  javax.vecmath.Vector3f T1
           
private  javax.vecmath.Vector3f T2
           
 
Constructor Summary
Hermite3D(JmolRendererInterface g3d)
           
 
Method Summary
(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 render(boolean tFill, int tension, int diameterBeg, int diameterMid, int diameterEnd, javax.vecmath.Point3i p0, javax.vecmath.Point3i p1, javax.vecmath.Point3i p2, javax.vecmath.Point3i p3)
           
 void render2(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 render2x(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)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

g3d

private JmolRendererInterface g3d

pLeft

private final javax.vecmath.Point3i[] pLeft

pRight

private final javax.vecmath.Point3i[] pRight

sLeft

private final float[] sLeft

sRight

private final float[] sRight

sp

int sp

pTopLeft

private final javax.vecmath.Point3f[] pTopLeft

pTopRight

private final javax.vecmath.Point3f[] pTopRight

pBotLeft

private final javax.vecmath.Point3f[] pBotLeft

pBotRight

private final javax.vecmath.Point3f[] pBotRight

needToFill

private final boolean[] needToFill

a1

private final javax.vecmath.Point3f a1

a2

private final javax.vecmath.Point3f a2

b1

private final javax.vecmath.Point3f b1

b2

private final javax.vecmath.Point3f b2

c1

private final javax.vecmath.Point3f c1

c2

private final javax.vecmath.Point3f c2

d1

private final javax.vecmath.Point3f d1

d2

private final javax.vecmath.Point3f d2

depth1

private final javax.vecmath.Vector3f depth1

T1

private final javax.vecmath.Vector3f T1

T2

private final javax.vecmath.Vector3f T2
Constructor Detail

Hermite3D

public Hermite3D(JmolRendererInterface g3d)
Method Detail

render

public void render(boolean tFill,
                   int tension,
                   int diameterBeg,
                   int diameterMid,
                   int diameterEnd,
                   javax.vecmath.Point3i p0,
                   javax.vecmath.Point3i p1,
                   javax.vecmath.Point3i p2,
                   javax.vecmath.Point3i p3)

render2x

private void render2x(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)

set

private static void set(javax.vecmath.Point3f p3f,
                        javax.vecmath.Point3i p3i)

render2

public void render2(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)

setDepth

private void setDepth(javax.vecmath.Vector3f depth,
                      javax.vecmath.Point3f c,
                      javax.vecmath.Point3f a,
                      javax.vecmath.Point3f b,
                      float ratio)

setPoint

private void setPoint(javax.vecmath.Point3f a1,
                      javax.vecmath.Point3f a,
                      javax.vecmath.Vector3f depth,
                      int direction)

getHermiteList

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)