org.jmol.g3d
Class Normix3D

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

 class Normix3D
extends java.lang.Object

Provides quantization of normalized vectors so that shading for lighting calculations can be handled by a simple index lookup

A 'normix' is a normal index, represented as a short

Author:
Miguel, miguel@jmol.org

Field Summary
(package private)  java.util.BitSet bsConsidered
           
private static boolean DEBUG_FACE_VECTORS
           
private static boolean DEBUG_WITH_SEQUENTIAL_SEARCH
           
private static short[][] faceNormixesArrays
           
private static short[][] faceVertexesArrays
           
private  byte[] intensities
           
private  byte[] intensities2Sided
           
(package private)  short[] inverseNormixes
           
private static short[][] neighborVertexesArrays
           
(package private) static int NORMIX_GEODESIC_LEVEL
           
private static int normixCount
           
private static byte nullIntensity
           
private  javax.vecmath.Matrix3f rotationMatrix
           
private static boolean TIMINGS
           
private  javax.vecmath.Vector3f[] transformedVectors
           
private static javax.vecmath.Vector3f[] vertexVectors
           
 
Constructor Summary
Normix3D()
           
 
Method Summary
private  short[] calcFaceNormixes(int level)
           
(package private)  void calculateInverseNormixes()
           
(package private) static double dist2(javax.vecmath.Vector3f v1, double x, double y, double z)
           
(package private) static double dist2(javax.vecmath.Vector3f v1, javax.vecmath.Vector3f v2)
           
(package private)  short[] getFaceNormixes(int level)
           
(package private)  byte getIntensity(short normix)
           
(package private)  short getNormix(double x, double y, double z, int geodesicLevel)
           
(package private)  short getNormix(javax.vecmath.Vector3f v)
           
(package private)  javax.vecmath.Vector3f[] getTransformedVectors()
           
(package private)  javax.vecmath.Vector3f getVector(short normix)
           
(package private)  boolean isDirectedTowardsCamera(short normix)
           
(package private)  void setRotationMatrix(javax.vecmath.Matrix3f rotationMatrix)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

NORMIX_GEODESIC_LEVEL

static final int NORMIX_GEODESIC_LEVEL
See Also:
Constant Field Values

normixCount

private static final int normixCount

vertexVectors

private static final javax.vecmath.Vector3f[] vertexVectors

faceVertexesArrays

private static final short[][] faceVertexesArrays

neighborVertexesArrays

private static final short[][] neighborVertexesArrays

transformedVectors

private final javax.vecmath.Vector3f[] transformedVectors

intensities

private final byte[] intensities

intensities2Sided

private final byte[] intensities2Sided

faceNormixesArrays

private static short[][] faceNormixesArrays

TIMINGS

private static final boolean TIMINGS
See Also:
Constant Field Values

DEBUG_WITH_SEQUENTIAL_SEARCH

private static final boolean DEBUG_WITH_SEQUENTIAL_SEARCH
See Also:
Constant Field Values

rotationMatrix

private final javax.vecmath.Matrix3f rotationMatrix

bsConsidered

final java.util.BitSet bsConsidered

inverseNormixes

short[] inverseNormixes

nullIntensity

private static byte nullIntensity

DEBUG_FACE_VECTORS

private static final boolean DEBUG_FACE_VECTORS
See Also:
Constant Field Values
Constructor Detail

Normix3D

Normix3D()
Method Detail

getNormix

short getNormix(javax.vecmath.Vector3f v)

getVector

javax.vecmath.Vector3f getVector(short normix)

getNormix

short getNormix(double x,
                double y,
                double z,
                int geodesicLevel)

calculateInverseNormixes

void calculateInverseNormixes()

getIntensity

byte getIntensity(short normix)

setRotationMatrix

void setRotationMatrix(javax.vecmath.Matrix3f rotationMatrix)

getTransformedVectors

javax.vecmath.Vector3f[] getTransformedVectors()

getFaceNormixes

short[] getFaceNormixes(int level)

dist2

static double dist2(javax.vecmath.Vector3f v1,
                    javax.vecmath.Vector3f v2)

dist2

static double dist2(javax.vecmath.Vector3f v1,
                    double x,
                    double y,
                    double z)

calcFaceNormixes

private short[] calcFaceNormixes(int level)

isDirectedTowardsCamera

boolean isDirectedTowardsCamera(short normix)