ASExactGeometry.mesa
Last Edited by Arnon: November 27, 1987 10:49:49 am PST
Exact geometric operations. Lines and imager arcs, conics, and cubics can be given in with either real or exact rational or exact coefficients. In all cases, coefficients are converted to an exact representation.
One set of available routines is exact intersections of any such pair of objects. All intersections are found and reported, in whatever exact rep needed. Routines to print out finite precision approximations are available. Algorithms used are simple substitution, or two pairwise resultants and substitute and evaluate. These routines are intended for the case of finitely many intersections; cases of infinitely many intersections are detected and reported, but not analyzed.
DIRECTORY
Rope,
AlgebraClasses;
ASExactGeometry: CEDAR DEFINITIONS
~ BEGIN
Element Representation
ElementName: TYPE = AlgebraClasses.Object;
Comment
ElementNameData: TYPE = REF ElementNameDataRec;
ElementNameDataRec: TYPE = RECORD [
field: Type,
field: Type
];
Structure Instance Data
NameStructureData: TYPE = REF NameStructureDataRec;
NameStructureDataRec: TYPE = RECORD [
data1: AlgebraClasses.Object, -- Comment
data2: AlgebraClasses.Object -- Comment
];
Structure Constructor
MakeNameStructure: AlgebraClasses.StructureConstructorProc;
Structure Operations
PrintName: AlgebraClasses.ToRopeOp;
ShortPrintName: AlgebraClasses.ToRopeOp;
IsNameStructure: AlgebraClasses.UnaryPredicate;
SelectorProc: AlgebraClasses.UnaryOp;
selector: data1
SelectorProc: AlgebraClasses.UnaryOp;
selector: data2
StructureData: AlgebraClasses.UnaryToListOp;
selector: returns LIST[data1, data2] of a Name Structure
Element Conversion and IO
Recast: AlgebraClasses.BinaryOp;
CanRecast: AlgebraClasses.BinaryPredicate;
ToExpr: AlgebraClasses.ToExprOp;
LegalFirstChar: AlgebraClasses.LegalFirstCharOp;
Read: AlgebraClasses.ReadOp;
FromRope: AlgebraClasses.FromRopeOp;
ToRope: AlgebraClasses.ToRopeOp;
Write: AlgebraClasses.WriteOp;
Element Constructor
ConstructorProc: AlgebraClasses.ListImbedOp;
Element Operations
BinaryOp: AlgebraClasses.BinaryOp;
UnaryOp: AlgebraClasses.UnaryOp;
END.