DIRECTORY SV3d, SVVector2d; SVVector3d: CEDAR DEFINITIONS = BEGIN Point3d: TYPE = SV3d.Point3d; Vector3d: TYPE = SV3d.Vector3d; Vector2d: TYPE = SVVector2d.Vector2d; Add: PROC [v1: Vector3d, v2: Vector3d] RETURNS [sumV: Vector3d]; Sub: PROC [v1: Vector3d, v2: Vector3d] RETURNS [v1Minusv2: Vector3d]; Scale: PROC [v: Vector3d, scalar: REAL] RETURNS [scaledV: Vector3d]; Normalize: PROC [v: Vector3d] RETURNS [normV: Vector3d]; Negate: PROC [v: Vector3d] RETURNS [negV: Vector3d]; DotProduct: PROC [v1: Vector3d, v2: Vector3d] RETURNS [scalar: REAL]; ElementwiseProduct: PROC [v1: Vector3d, v2: Vector3d] RETURNS [prod: Vector3d]; CrossProduct: PROC [v1: Vector3d, v2: Vector3d] RETURNS [prodV: Vector3d]; AngleCCWBetweenVectors: PROC [v1: Vector3d, v2: Vector3d] RETURNS [degrees: REAL]; Magnitude: PROC [v: Vector3d] RETURNS [magnitude: REAL]; Distance: PROC [p1, p2: Point3d] RETURNS [dist: REAL]; MagnitudeSquared: PROC [v: Vector3d] RETURNS [magSquared: REAL]; DistanceSquared: PROC [p1, p2: Point3d] RETURNS [distSquared: REAL]; VectorFromPoints: PROC [tail, head: Point3d] RETURNS [vector: Vector3d]; Parallel: PROC [v1, v2: Vector3d] RETURNS [BOOL]; Perpendicular: PROC [v1, v2: Vector3d] RETURNS [BOOL]; Vector2DAsXYVector: PROC [vXY: Vector2d] RETURNS [vZeroZ: Vector3d]; Vector2DAsYZVector: PROC [vYZ: Vector2d] RETURNS [vZeroX: Vector3d]; Vector2DAsZXVector: PROC [vZX: Vector2d] RETURNS [vZeroY: Vector3d]; ProjectOntoXYPlane: PROC [v: Vector3d] RETURNS [v2d: Vector2d]; ProjectOntoYZPlane: PROC [v: Vector3d] RETURNS [v2d: Vector2d]; ProjectOntoZXPlane: PROC [v: Vector3d] RETURNS [v2d: Vector2d]; END. ^File: SVVector3d.mesa Last edited by Bier on May 29, 1987 4:59:29 pm PDT Contents: Vector3d addition and multiplication and stuff like that. Returns the unit vector with the same direction as v. The cross product v1 x v2 produces a vector. With the plane determined by v1 and v2 facing you, measure the counter-clockwise angle from v1 to v2. Κ^– "cedar" style˜Iheadšœ™Iprocšœ2™2LšœC™CL˜šœ ˜ Lšœ˜—L˜Lšœ Οkœ˜Lš˜˜Lšœ œ˜Lšœ œ˜Lšœ œ˜%L˜—LšΟnœœœ˜@Lšžœœœ˜ELšžœœœœ˜Ešž œœœ˜8Lšœ5™5—Lšžœœœ˜5Lšž œœœ œ˜ELšžœœœ˜OLšž œœœ˜Jšžœœœ œ˜RL™“—L˜Lšž œœœ œ˜8Lšžœœœœ˜6Lšžœœœœ˜@Lšžœœœœ˜DL˜Lšžœœœ˜HL˜Lšžœœœœ˜1Lšž œœœœ˜6L˜Lšžœœœ˜DLšžœœœ˜DLšžœœœ˜DL˜Lšžœœœ˜?Lšžœœœ˜?Lšžœœœ˜?L˜Lšœ˜L˜—…—^