SFImpl.mesa
Copyright Ó 1986, 1987, 1988, 1991 by Xerox Corporation. All rights reserved.
Michael Plass, February 10, 1988 9:41:25 am PST
Doug Wyatt, January 19, 1987 8:44:02 pm PST
DIRECTORY SF, SFInline;
SFImpl: CEDAR PROGRAM IMPORTS SFInline EXPORTS SF
~ BEGIN
Vec operations
Vec: TYPE ~ SF.Vec;
Box: TYPE ~ SF.Box;
zeroVec: Vec ~ SF.zeroVec;
NonNegative: PUBLIC PROC [v: Vec] RETURNS [Vec] ~ { RETURN [SFInline.NonNegative[v]] };
Neg: PUBLIC PROC [v: Vec] RETURNS [Vec] ~ { RETURN [SFInline.Neg[v]] };
Add: PUBLIC PROC [v1, v2: Vec] RETURNS [Vec] ~ { RETURN [SFInline.Add[v1, v2]] };
Sub: PUBLIC PROC [v1, v2: Vec] RETURNS [Vec] ~ { RETURN [SFInline.Sub[v1, v2]] };
Min: PUBLIC PROC [v1, v2: Vec] RETURNS [Vec] ~ { RETURN [SFInline.Min[v1, v2]] };
Min3: PUBLIC PROC [v1, v2, v3: Vec] RETURNS [Vec] ~ { RETURN [SFInline.Min3[v1, v2, v3]] };
Max: PUBLIC PROC [v1, v2: Vec] RETURNS [Vec] ~ { RETURN [SFInline.Max[v1, v2]] };
Max3: PUBLIC PROC [v1, v2, v3: Vec] RETURNS [Vec] ~ { RETURN [SFInline.Max3[v1, v2, v3]] };
Eq: PUBLIC PROC [v1, v2: Vec] RETURNS [BOOL] ~ { RETURN [SFInline.Eq[v1, v2]] };
Box operations
Nonempty: PUBLIC PROC [box: Box] RETURNS [BOOL] ~ { RETURN [SFInline.Nonempty[box]] };
Empty: PUBLIC PROC [box: Box] RETURNS [BOOL] ~ { RETURN [SFInline.Empty[box]] };
Intersect: PUBLIC PROC [box1, box2: Box] RETURNS [Box] ~ { RETURN [SFInline.Intersect[box1, box2]] };
Disjoint: PUBLIC PROC [box1, box2: Box] RETURNS [BOOL] ~ { RETURN [SFInline.Disjoint[box1, box2]] };
SizeF: PUBLIC PROC [box: Box] RETURNS [CARDINAL] ~ { RETURN [SFInline.SizeF[box]] };
SizeS: PUBLIC PROC [box: Box] RETURNS [CARDINAL] ~ { RETURN [SFInline.SizeS[box]] };
Size: PUBLIC PROC [box: Box] RETURNS [Vec] ~ { RETURN [SFInline.Size[box]] };
Inside: PUBLIC PROC [inner, outer: Box] RETURNS [BOOL] ~ { RETURN [SFInline.Inside[inner, outer]] };
Displace: PUBLIC PROC [box: Box, t: Vec] RETURNS [Box] ~ { RETURN [SFInline.Displace[box, t]] };
In: PUBLIC PROC [vec: Vec, box: Box] RETURNS [BOOL] ~ { RETURN [SFInline.In[vec, box]] };
END.