DIRECTORY SV3d, SVVector2d; SVVector3d: DEFINITIONS = BEGIN Point3d: TYPE = SV3d.Point3d; Vector: TYPE = SV3d.Vector; Vector2d: TYPE = SVVector2d.Vector2d; Add: PROC [v1: Vector, v2: Vector] RETURNS [sumV: Vector]; Sub: PROC [v1: Vector, v2: Vector] RETURNS [v1Minusv2: Vector]; Scale: PROC [v: Vector, scalar: REAL] RETURNS [scaledV: Vector]; Normalize: PROC [v: Vector] RETURNS [normV: Vector]; Negate: PROC [v: Vector] RETURNS [negV: Vector]; DotProduct: PROC [v1: Vector, v2: Vector] RETURNS [scalar: REAL]; ElementwiseProduct: PROC [v1: Vector, v2: Vector] RETURNS [prod: Vector]; CrossProduct: PROC [v1: Vector, v2: Vector] RETURNS [prodV: Vector]; Magnitude: PROC [v: Vector] RETURNS [magnitude: REAL]; Distance: PROC [p1, p2: Point3d] RETURNS [dist: REAL]; MagnitudeSquared: PROC [v: Vector] RETURNS [magSquared: REAL]; DistanceSquared: PROC [p1, p2: Point3d] RETURNS [distSquared: REAL]; VectorFromPoints: PROC [tail, head: Point3d] RETURNS [vector: Vector]; Parallel: PROC [v1, v2: Vector] RETURNS [BOOL]; Perpendicular: PROC [v1, v2: Vector] RETURNS [BOOL]; Vector2DAsXYVector: PROC [vXY: Vector2d] RETURNS [vZeroZ: Vector]; Vector2DAsYZVector: PROC [vYZ: Vector2d] RETURNS [vZeroX: Vector]; Vector2DAsZXVector: PROC [vZX: Vector2d] RETURNS [vZeroY: Vector]; ProjectOntoXYPlane: PROC [v: Vector] RETURNS [v2d: Vector2d]; ProjectOntoYZPlane: PROC [v: Vector] RETURNS [v2d: Vector2d]; ProjectOntoZXPlane: PROC [v: Vector] RETURNS [v2d: Vector2d]; END. ΚFile: SVVector3d.mesa Last edited by Bier on June 26, 1984 11:50:06 am PDT Contents: Vector addition and multiplication and stuff like that. Returns the unit vector with the same direction as v. ΚH– "cedar" style˜Iheadšœ™Iprocšœ4™4LšœA™AL˜šœ ˜ Lšœ˜Lšœ ˜ —L˜Lšœ Οk œ˜Lš˜˜Lšœ œ˜Lšœœ˜Lšœ œ˜%L˜—LšΟnœœœ˜:Lšžœœœ˜?Lšžœœœœ˜Ašž œœ œ˜4Lšœ5™5—Lšžœœ œ˜1Lšž œœœ œ˜ALšžœœœ˜ILšž œœœ˜ELšž œœ œ œ˜6Lšžœœœœ˜6Lšžœœ œœ˜>Lšžœœœœ˜DL˜Lšžœœœ˜FL˜Lšžœœœœ˜/Lšž œœœœ˜4L˜Lšžœœœ˜BLšžœœœ˜BLšžœœœ˜BL˜Lšžœœ œ˜=Lšžœœ œ˜=Lšžœœ œ˜=L˜Lšœ˜L˜—…—ΔΦ