ImplicitTube.mesa
Copyright © 1985 by Xerox Corporation. All rights reserved.
Bloomenthal, August 11, 1992 4:02 pm PDT
DIRECTORY G3dBasic, G3dMatrix, G3dTube, Imager, ImplicitDefs;
ImplicitTube: CEDAR DEFINITIONS
~ 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[].
END.