DIRECTORY G2dBasic, G2dMatrix, IO, Rope, Vector2; G3dBasic: CEDAR DEFINITIONS ~ BEGIN ROPE: TYPE ~ Rope.ROPE; STREAM: TYPE ~ IO.STREAM; Pair: TYPE ~ G2dBasic.Pair; -- RECORD [x, y: REAL ¬ 0.0] Triple: TYPE ~ G2dBasic.Triple; -- RECORD [x, y, z: REAL ¬ 0.0]; NatPair: TYPE ~ G2dBasic.NatPair; -- RECORD [x, y: NAT ¬ 0]; IntPair: TYPE ~ G2dBasic.IntPair; -- RECORD [x, y: INT ¬ 0]; IntegerPair: TYPE ~ G2dBasic.IntegerPair; -- RECORD [x, y: INTEGER ¬ 0]; Quad: TYPE ~ RECORD [x, y, z, w: REAL ¬ 0.0]; Sign: TYPE ~ G2dBasic.Sign; -- {positive, negative} Border: TYPE ~ G2dBasic.Border; -- {inside, outside, edge} Box: TYPE ~ RECORD [min, max: Triple]; -- 3d bounding box Hull: TYPE ~ RECORD [ -- elaborate bounding box center: Triple ¬ origin, -- center of hull pMin, pMax: Triple ¬ origin, -- min and max points rMin, rMax: REAL ¬ 0.0 -- min and max radii ]; Segment: TYPE ~ RECORD [p0, p1: Triple]; -- 3d line segment Screen: TYPE ~ RECORD [ quad: Quad ¬ [], -- homogeneous location pos: Pair ¬ [0, 0], -- screen space position intPos: IntegerPair ¬ [0, 0], -- screen space position in integers visible: BOOL ¬ TRUE, -- 3d point in viewing frustum? l, r, b, t, n, f: BOOL ¬ FALSE, -- l, r, b. t, n, f clip? fwdFacing: BOOL ¬ TRUE -- if vertex normal forward facing ]; Surface: TYPE ~ RECORD [ -- descriptor of polygon/patch clientData: REF ANY ¬ NIL, -- surface's private data vertices: NatSequence ¬ NIL -- vertex indices in shape ]; Ray: TYPE ~ RECORD [base, axis: Triple]; Circle: TYPE ~ RECORD [ -- 3d circle center, normal: Triple ¬ origin, radius: REAL ¬ 0.0 ]; Sphere: TYPE ~ RECORD [center: Triple, radius: REAL ¬ 0.0]; Triad: TYPE ~ RECORD [ v, n, b: Triple ¬ origin -- vector, principal normal, binormal ]; -- see Computational Geometry for Design and Manufacture Frame: TYPE ~ RECORD [ position: Triple ¬ origin, -- position on curve triad: Triad ¬ [origin,origin,origin] -- triad (right-handed) ]; Intersection: TYPE ~ RECORD [ point: Triple ¬ origin, doesIntersect: BOOL ¬ TRUE ]; NatSequence: TYPE ~ G2dBasic.NatSequence; NatSequenceRep: TYPE ~ G2dBasic.NatSequenceRep; IntegerSequence: TYPE ~ G2dBasic.IntegerSequence; IntegerSequenceRep: TYPE ~ G2dBasic.IntegerSequenceRep; IntSequence: TYPE ~ G2dBasic.IntSequence; IntSequenceRep: TYPE ~ G2dBasic.IntSequenceRep; RealSequence: TYPE ~ G2dBasic.RealSequence; RealSequenceRep: TYPE ~ G2dBasic.RealSequenceRep; PairSequence: TYPE ~ G2dBasic.PairSequence; PairSequenceRep: TYPE ~ G2dBasic.PairSequenceRep; NatPairSequence: TYPE ~ G2dBasic.NatPairSequence; NatPairSequenceRep: TYPE ~ G2dBasic.NatPairSequenceRep; IntegerPairSequence: TYPE ~ G2dBasic.IntegerPairSequence; IntegerPairSequenceRep: TYPE ~ G2dBasic.IntegerPairSequenceRep; IntPairSequence: TYPE ~ G2dBasic.IntPairSequence; IntPairSequenceRep: TYPE ~ G2dBasic.IntPairSequenceRep; BoolSequence: TYPE ~ REF BoolSequenceRep; BoolSequenceRep: TYPE ~ RECORD [ length: CARDINAL ¬ 0, element: SEQUENCE maxLength: CARDINAL OF BOOL ]; NatTable: TYPE ~ REF NatTableRep; NatTableRep: TYPE ~ RECORD [ length: CARDINAL ¬ 0, element: SEQUENCE maxLength: CARDINAL OF NatSequence ]; TripleSequence: TYPE ~ G2dBasic.TripleSequence; TripleSequenceRep: TYPE ~ G2dBasic.TripleSequenceRep; QuadSequence: TYPE ~ REF QuadSequenceRep; QuadSequenceRep: TYPE ~ RECORD [ length: CARDINAL ¬ 0, element: SEQUENCE maxLength: CARDINAL OF Quad ]; SegmentSequence: TYPE ~ REF SegmentSequenceRep; SegmentSequenceRep: TYPE ~ RECORD [ length: CARDINAL ¬ 0, element: SEQUENCE maxLength: CARDINAL OF Segment ]; SurfaceSequence: TYPE ~ REF SurfaceSequenceRep; SurfaceSequenceRep: TYPE ~ RECORD [ length: CARDINAL ¬ 0, element: SEQUENCE maxLength: CARDINAL OF Surface ]; RefSequence: TYPE ~ REF RefSequenceRep; RefSequenceRep: TYPE ~ RECORD [ length: CARDINAL ¬ 0, element: SEQUENCE maxLength: CARDINAL OF REF ]; origin: Triple ~ [0.0, 0.0, 0.0]; xAxis: Triple ~ G2dBasic.xAxis; yAxis: Triple ~ G2dBasic.yAxis; zAxis: Triple ~ G2dBasic.zAxis; PI: REAL ~ G2dBasic.PI; TripleSequenceFromList: PROC [LIST OF Triple] RETURNS [TripleSequence]; CopyBoolSequence: PROC [bools: BoolSequence] RETURNS [BoolSequence]; CopyNatTable: PROC [nats: NatTable] RETURNS [NatTable]; CopyTripleSequence: PROC [triples: TripleSequence] RETURNS [TripleSequence]; CopyQuadSequence: PROC [quads: QuadSequence] RETURNS [QuadSequence]; CopySegmentSequence: PROC [segments: SegmentSequence] RETURNS [SegmentSequence]; CopySurfaceSequence: PROC [surfaces: SurfaceSequence] RETURNS [SurfaceSequence]; CopyRefSequence: PROC [refs: RefSequence] RETURNS [RefSequence]; AddToBoolSequence: PROC [bools: BoolSequence, bool: BOOL] RETURNS [BoolSequence]; AddToNatTable: PROC [nats: NatTable, natSequence: NatSequence] RETURNS [NatTable]; AddToTripleSequence: PROC [triples: TripleSequence, triple: Triple] RETURNS [TripleSequence]; AddToQuadSequence: PROC [quads: QuadSequence, quad: Quad] RETURNS [QuadSequence]; AddToSegmentSequence: PROC [segments: SegmentSequence, segment: Segment] RETURNS [SegmentSequence]; AddToSurfaceSequence: PROC [surfaces: SurfaceSequence, surface: Surface] RETURNS [SurfaceSequence]; AddToRefSequence: PROC [refs: RefSequence, ref: REF] RETURNS [RefSequence]; LengthenBoolSequence: PROC [bools: BoolSequence, amount: REAL ¬ 1.3] RETURNS [BoolSequence]; LengthenNatTable: PROC [nats: NatTable, amount: REAL ¬ 1.3] RETURNS [NatTable]; LengthenTripleSequence: PROC [triples: TripleSequence, amount: REAL ¬ 1.3] RETURNS [TripleSequence]; LengthenQuadSequence: PROC [quads: QuadSequence, amount: REAL ¬ 1.3] RETURNS [QuadSequence]; LengthenSegmentSequence: PROC [segments: SegmentSequence, amount: REAL ¬ 1.3] RETURNS [SegmentSequence]; LengthenSurfaceSequence: PROC [surfaces: SurfaceSequence, amount: REAL ¬ 1.3] RETURNS [SurfaceSequence]; LengthenRefSequence: PROC [refs: RefSequence, amount: REAL ¬ 1.3] RETURNS [RefSequence]; END. Ό G3dBasic.mesa Copyright Σ 1984, 1992 by Xerox Corporation. All rights reserved. Bloomenthal, July 14, 1992 1:49 pm PDT Glassner, July 5, 1989 7:03:05 pm PDT Basic Types Miscellaneous Types Sequences Constants Sequence Operations Additional Sequences Operations: see G2dVector, G3dMatrix, and G3dSpline Miscellany Return a sequence given a list. Copying Return a copy of the input BoolSequence. Return a copy of the input NatTable. Return a copy of the input sequence of triples. Return a copy of the input sequence of quads. Return a copy of the input sequence of segments. Return a copy of the input sequence of surfaces. Return a copy of the input sequence of REFs. Adding To Add bool to the sequence. Add natSequence to the sequence. Add triple to the sequence. Add quad to the sequence. Add segment to the sequence. Add surface to the sequence. Add refAny to the sequence. Lengthening Return a copy of the input sequence whose maxLength is amount*input.maxLength. Return a copy of the input sequence whose maxLength is amount*input.maxLength. Return a copy of the input sequence whose maxLength is amount*input.maxLength. Return a copy of the input sequence whose maxLength is amount*input.maxLength. Return a copy of the input sequence whose maxLength is amount*input.maxLength. Return a copy of the input sequence whose maxLength is amount*input.maxLength. Return a copy of the input sequence whose maxLength is amount*input.maxLength. ΚΊ•NewlineDelimiter –"cedarcode" style™™ Jšœ Οeœ6™BJ™&J™%J˜JšΟk œžœ˜1J˜—JšΠblœžœž ˜Jšœž˜headšΟl ™ Jšžœžœžœ˜šžœžœžœžœ˜J˜—Jš œ žœΟcΠcs‘’‘œ‘˜Aš œ žœ‘’‘ ’‘œ‘˜GJ˜—Jš œ žœ‘’‘’‘œ‘˜CJš œ žœ‘’‘’‘œ‘˜Cš œžœ‘’‘’‘œ‘˜MJ˜—Jšœ žœžœžœ˜2—š ™Jšœ žœ‘˜J˜—šœ žœžœ‘˜9Jšœ#‘˜4Jšœ&‘˜;Jšœžœ ‘˜5J˜J˜—Jšœ žœžœ‘˜@J˜šœ žœžœ˜Jšœ‘˜3Jšœ‘˜7Jšœ$‘&˜JJšœ žœžœ‘!˜>Jšœžœžœ‘˜@Jšœžœžœ‘"˜AJšœ˜J˜—š œ žœžœ‘’‘ ’‘’‘ ˜@Jšœžœžœžœ‘˜=Jšœžœ‘’‘’‘˜?J˜J˜—šœ žœžœ˜-J˜—šœ žœžœ‘ ˜-J˜$Jšœžœ˜J˜J˜—šœ žœžœžœ˜?J˜—šœ žœžœ˜Jšœ"‘%˜Gšœ ‘Πcz1˜CJ˜——šœ žœžœ˜Jšœ#‘˜7JšœΟsœ‘˜CJ˜J˜—šœžœžœ˜ J˜Jšœžœž˜J˜——š  ™ Jšœžœ˜,Jšœžœ˜1J˜Jšœžœ˜3šœžœ˜8J˜—Jšœžœ˜,šœžœ˜1J˜—Jšœžœ˜-šœžœ˜2J˜—Jšœžœ˜-Jšœžœ˜2J˜Jšœžœ˜2Jšœžœ˜7J˜Jšœžœ ˜9Jšœ€žœ#˜?J˜Jšœžœ˜3Jšœžœ˜8J˜Jšœžœžœ˜+šœžœžœ˜!Jšœžœ˜Jšœžœ žœžœž˜3J˜J˜—Jšœ žœžœ ˜%šœ žœžœ˜Jšœžœ˜Jšœ žœ žœžœ ˜;˜J˜——Jšœžœ˜1šœžœ˜6J˜—Jšœžœžœ˜+šœžœžœ˜!Jšœžœ˜Jšœžœ žœžœ˜3˜J˜——Jšœžœžœ˜0šœžœžœ˜#Jšœžœ˜Jšœžœ žœžœ˜6J˜J˜—Jšœžœžœ˜0šœžœžœ˜#Jšœžœ˜Jšœžœ žœžœ˜6J˜J˜—Jšœžœžœ˜*šœžœžœ˜!Jšœžœ˜Jšœžœ žœžœž˜2J˜——š  ™ ˜%J˜—J˜$J˜#˜$J˜—Jšžœžœ žœ˜—š ™J™HJ™ š Οnœžœžœžœ žœ˜GJšœ™—J™š₯œžœžœ˜DJšœ(™(J™—š₯ œžœžœ ˜7™$J™——š₯œžœžœ˜L™/J™——š₯œžœžœ˜D™-J™——š₯œžœžœ˜PJ™0J™—š₯œžœžœ˜PJ™0J™—š₯œžœžœ˜@Jšœ'€œ™,—J™ š₯œ€ž€œ€œ €œ€žœ€ž€œ˜QJ™J™—š₯ œžœ+žœ ˜R™ J™——š₯œžœ*˜CJšžœ˜™J™——š₯œžœ"žœ˜Q™J™——š₯œžœ.˜HJšžœ˜J™J™—š₯œžœ.˜HJšžœ˜J™J™—š₯œžœžœžœ˜KJ™—J™ š₯œžœžœ˜DJšžœ˜J™N—J˜š₯œžœžœžœ ˜O™NJ™——š₯œžœ#žœ˜JJšžœ˜™NJ™——š₯œžœžœ˜DJšžœ˜™NJ™——š₯œžœ%žœ˜MJšžœ˜J™NJ™—š₯œžœ%žœ˜MJšžœ˜J™NJ™—š₯œžœžœ˜AJšžœ˜J™N——J˜Jšžœ˜J˜—…—|&ς