<> <> DIRECTORY Rope USING [ ROPE ], ThreeDBasics USING [ Context, ShapeInstance ]; ShapeTwiddle: CEDAR DEFINITIONS ~ BEGIN <> Context: TYPE ~ ThreeDBasics.Context; ShapeInstance: TYPE ~ ThreeDBasics.ShapeInstance; ShapeTwiddleError: SIGNAL [reason: ATOM]; NatPair: TYPE ~ RECORD [x, y: NAT]; <> ScaleShape: PROCEDURE [context: REF Context, name: Rope.ROPE, scale, xRatio, yRatio, zRatio: REAL _ 1.0, applyXfm: BOOLEAN _ FALSE]; <> ScaleTexture: PROCEDURE [ context: REF Context, name: Rope.ROPE, scale, xRatio, yRatio, zRatio: REAL _ 1.0]; <> <> <> CleanUp: PROC [context: REF Context, name: Rope.ROPE, deSeam: BOOLEAN _ FALSE, tolerance: REAL _ 0.0]; <> CopyShape: PROC [context: REF Context, dstName, srcName: Rope.ROPE] RETURNS[REF ShapeInstance]; <> Combine: PROC [context: REF Context, dstName, src1, src2: Rope.ROPE] RETURNS[REF ShapeInstance]; <> DeletePatches: PROC [context: REF Context, dstName, srcName: Rope.ROPE, patchList: LIST OF NatPair] RETURNS[REF ShapeInstance]; <> Bounds: PROC [context: REF Context, name: Rope.ROPE] RETURNS[xMin, xMax, yMin, yMax, zMin, zMax: REAL]; <> <> ShapeExpand: PROC[ context: REF Context, name: Rope.ROPE, limitType: ATOM _ NIL, limit: REAL _ 0.0] RETURNS [REF ShapeInstance]; <> ShapeSubdivide: PROC[ context: REF Context, name: Rope.ROPE, limitType: ATOM _ NIL, limit: REAL _ 0.0] RETURNS [REF ShapeInstance]; <> END.