DIRECTORY HerculesAlgebra USING [Se, PointPtr, Frame]; HerculesBody: DEFINITIONS = BEGIN OPEN Alg: HerculesAlgebra; Nest: PROC [list: LIST OF Alg.Se, op, zero: ATOM] RETURNS [Alg.Se]; -- Returns a juno expression of the form ( ( (... ( are the elements of the given list. If the list is empty, returns zero instead. NestAtoms: PROC [list: LIST OF ATOM, op, zero: ATOM] RETURNS [Alg.Se]; -- Same except that input is LIST OF ATOM. EraseAllNames: PROC; -- Erases the names of all points in the current image. NamePoint: PROC [p: Alg.PointPtr, i: INT] RETURNS [nam: ATOM]; -- Assigns the ith standard name to the point p, and returns the chosen name. MakeBody: PROC[frame: Alg.Frame, nParms: INT] RETURNS [body: Alg.Se]; -- Creates a procedure body describing all points in the current image list -- with nonzero winding numbers, plus associated constraints and actions. -- Assumes nParms of those points are parameters, whose name field has already been set. -- The remaining points are local variables. The hints for each of these will be its -- current position, relative to the frame determined by the given frame. END. žHerculesBody.mesa (ex JunoBody.mesa) Procedures for creating a symbolic procedure out of the current image. Last Edited by: Gnelson, January 13, 1983 10:16 pm Last Edited by: Stolfi, February 22, 1984 5:50 am Edited on January 24, 1984 3:25 am, by Stolfi -- Added Tioga formatting. -- Extended MakeDefBody for more than two arguments. -- Cleaned up matrix operations in preparation for relative constraints. changes to: Matrix (new), GetFrameMatrix (new), InvertMatrix (new), MultiplyMatrix (new), EraseAllNames (new), NamePoint (new), MakeBody (new - replaces MakeDefBody), MakeDefBody (deleted), ComputeTransform (parameter change), TransformPoints (replaces PerformTransform), PerformTransform (replaced by TransformPoints), ComputeSomeTransform (replaces a piece of JunoTop.MoveStep), TransformPoint (new) Edited on January 28, 1984 2:40 am, by Stolfi changes to: TransformPoint (takes and returns x, y: REAL instead of p: PointPtr), Matrix, GetFrameMatrix, InvertMatrix, MultiplyMatrix, ComputeTransform, ComputeSomeTransform, TransformPoint (moved to JunoStorage) Edited on February 7, 1984 2:40 am, by Stolfi changes to: Delete, TransformPoint, Copy, copiedPoints, Identify (moved to HerculesImage), FindSelectedPoint, SortPoints (moved to HerculesTop) MakeBody (parameter is Frame, result is Se) Edited on February 10, 1984 4:10 am, by Stolfi changes to: UnEval, UnEvalList (replace PointNames, PointOrValueNames), ÊɘJšœ$™$J™JšœG™GJšœ2™2J™Jšœ1™1J˜JšÏk œ0˜9Jšœ œ˜Jšœœ˜!JšÏnœœœœœœ œÏcÆœ˜‹Jšž œœœœœ œœ œŸ-œ˜uJšž œœŸ:œ˜PJš ž œœœœœŸMœ˜’JšžœœœœŸ§œŸ'œŸÁœ˜åJšœ˜™-J™Jšœ Ïr œ ™4J™HJšœ  œ œ œ œ œ  œ  œ œ  œ œ œ œ' œ™‘—J™™-Jš œ  œ  œ   œ lœ™Õ—J™™-Jšœ  4œ   œ œ  œ   œ œ œ  œ™»—J™™.Jšœ  œ  œ™I—J™—…—Î 5