ImplicitTube.mesa
Copyright © 1985 by Xerox Corporation. All rights reserved.
Bloomenthal, August 11, 1992 4:02 pm PDT
DIRECTORY G3dBasic, G3dMatrix, G3dTube, Imager, ImplicitDefs;
~
BEGIN
Pair: TYPE ~ G3dBasic.Pair;
Triple: TYPE ~ G3dBasic.Triple;
Matrix: TYPE ~ G3dMatrix.Matrix;
Tube: TYPE ~ G3dTube.Tube;
Context: TYPE ~ Imager.Context;
Sample: TYPE ~ ImplicitDefs.Sample;
DistanceMode: TYPE ~ ImplicitDefs.DistanceMode;
ValueProc: TYPE ~ ImplicitDefs.ValueProc;
PrepareTube:
PROC [tube: Tube, distanceMode: DistanceMode, measureMode:
ATOM];
Prepare the tube for implicit tracking.
StartPoint:
PROC [
tube: Tube,
valueProc: ValueProc,
threshold: REAL ¬ 1.0,
measureMode: ATOM ¬ $Unspecified,
spread: REAL ¬ 0.75,
clientData: REF ANY ¬ NIL]
RETURNS [Triple];
Find a starting point for implicit tracking.
SampleTube:
PROC [
q: Triple,
tube: Tube,
measureMode: ATOM,
distanceMode: DistanceMode,
tolerance, spread: REAL]
RETURNS [Sample];
Return the sample for a tube given point q.
SampleTubeBranch:
PROC [
q: Triple,
tube: Tube,
measureMode: ATOM,
distanceMode: DistanceMode,
tolerance, spread: REAL]
RETURNS [Sample];
Return sample at q of the first tube segment of tube or its branches, whichever greatest.
SampleTubeBranches:
PROC [
q: Triple,
tube: Tube,
measureMode: ATOM,
distanceMode: DistanceMode,
tolerance, spread: REAL]
RETURNS [Sample];
Return the sample at a point q of the branches of tube.
SampleTubeSegment:
PROC [
q: Triple,
tube: Tube,
measureMode: ATOM,
distanceMode: DistanceMode,
tolerance, spread: REAL]
RETURNS [Sample];
Return the sample at a point q of the tube segment.
TextureOfTube:
PROC [q: Triple, tube: Tube]
RETURNS [Pair];
Return the u (circumferential) and v (longitudinal) texture coordinates.
DiagramTube:
PROC [
context: Context,
view: Matrix,
viewport: G3dMatrix.Viewport,
q: Triple,
tube: Tube,
measureMode: ATOM,
distanceMode: DistanceMode,
tolerance, spread: REAL];
Diagramatically explain the derivation of SampleTube[].