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
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]] };