ImplicitOps.mesa
Copyright Ó 1985, 1990 by Xerox Corporation. All rights reserved.
Bloomenthal, August 11, 1992 4:02 pm PDT
DIRECTORY G3dBasic, ImplicitDefs;
ImplicitOps: CEDAR DEFINITIONS
~ BEGIN
Triple:  TYPE ~ G3dBasic.Triple;
Surface:  TYPE ~ ImplicitDefs.Surface;
ValueProc: TYPE ~ ImplicitDefs.ValueProc;
Function Addition
AddFunctionSurface: PROC [
surface: Surface,
valueProc: ValueProc,
seedPoint: Triple,
conmputeCrosses: BOOL ¬ TRUE,
polygonize: BOOL ¬ TRUE];
surface.root is presumed to be the volume spanning the present surface.
seedPoint is presumed a point influenced by valueProc and contained within surface.root.
Beginning from seedPoint, a corner value is recomputed as the sum of the old value and that
returned by valueProc.
The computations are propagated along those cube faces that have newly changed corner
values; depending on the spatial extent of valueProc, the propagation may or may not
significantly alter surface.root.
If computeCrosses, the cube crossings are recomputed for the altered cubes.
If polygonize, surface.polygons and surface.vertices are recomputed for the altered cubes.
END.