approach a surface normal vector. adjust line of sight by a
fraction of k to approach the negative surface normal vector
(away from it if k < 0). normal must be normalized.
does not change camera tilt.
approach a target position. move a fraction of k of the distance
between current position and target position towards the target
(away from target if k < 0). do not go nearer to target than near
clipping plane hither.
copy initial data from another ByteArray (non-null).
do not use the above constructor in this case, as it would use all values,
not just the used length (count); again: values are *copied*
copy initial data from another CharArray (non-null).
do not use the above constructor in this case, as it would use all values,
not just the used length (count); again: values are *copied*
DoubleArray - dynamic array of double type values
better time and memory efficiency than Vector,
double[] accessible in native code
Copyright (c) 1996 IICM
copy initial data from another DoubleArray (non-null).
do not use the above constructor in this case, as it would use all values,
not just the used length (count); again: values are *copied*
FloatArray - dynamic array of float type values
better time and memory efficiency than Vector,
float[] accessible in native code
Copyright (c) 1996 IICM
copy initial data from another FloatArray (non-null).
do not use the above constructor in this case, as it would use all values,
not just the used length (count); again: values are *copied*
copy initial data from another IntArray (non-null).
do not use the above constructor in this case, as it would use all values,
not just the used length (count); again: values are *copied*
compute the inverse of a 4x4 matrix, where the last column is
supposed to be (0, 0, 0, 1), i.e. without perspective transformation.
mat and inv must not point to the same storage.
multiply this quaternion (q0) with another (q1) from the right side.
q0 = q0 * q1 (multiplication non commutative), having the effect of
preconcatening the rotation q1 to this one
multiply this quaternion (q0) with another (q1) from the left side.
q0 = q1 * q0 (multiplication non commutative), having the effect of
postconcatening the rotation q1 to this one
create an OpenGL canvas on first painting.
derived class must also call setContext () before issuing OpenGL commands
paint of a derived class will typically look like this:
(see also SampleCanvas in ge3dsample package)
super.paint (gc); // create context on first draw
if (!
pick a cone's side. test whether ray hits the side wall of a cone
(given by height and radius). to pick a complete cone also check
bottom disk at y = - height/2.
pick a cylinder's side. test whether ray hits a cylinder (given
by height and radius). to pick a complete cylinder also check top
and bottom disks at y = +/- height/2.
pick a disk. test whether ray hits a disk parallel to the xz
plane at height y with radius r from top or bottom (according to
these flags).
if flag sens is true the radius is infinitely large
read a whole line (until \r or \n) into a char[] buffer.
if the line is longer than the buffer, the rest is skipped.
the newline character is not appended to the buffer
get the rotation (normalized axis and angle) that rotates a
coordinate axis (given by number) to another (normalized) vector.
e.g. rotationAxisToVector (2, negativenormalizedlookatvector) gives
you the orientation axis/angle values of a VRML viewpoint.
spherical linear interpolation. return a quaternion that lies "at
t between q1 and q2", i.e. q1 for t == 0, q2 for t == 1 and an
interpolation of q1 and q2 for values between 0 and 1.
remind that q and -q describe the same rotation, thus interpolate
to -q2 if path to it is shorter than to q2.
spherical linear interpolation of 3D vector. return a vector that
lies "at t between a1 and a2", i.e. a1 for t == 0, a2 for t == 1
and an interpolation of a1 and a2 for values between 0 and 1.
a1offs and a2offs allow a1 and a2 to start at an offset.
result is written at aoffs into array a.
StringArray - dynamic array of String type values
better time and memory efficiency than Vector,
String[] accessible in native code
Copyright (c) 1996 IICM
copy initial data from another StringArray (non-null).
do not use the above constructor in this case, as it would use all values,
not just the used length (count); again: values are *copied*
traverse a group node by traversing all children; this function
will be typically called on the root node (should be non-null);
traversal of all nodes derived from GroupNode will call this
function by default; all other nodes traversals are abstract