diff options
author | Ian C <ianc@noddybox.co.uk> | 2005-09-18 19:19:36 +0000 |
---|---|---|
committer | Ian C <ianc@noddybox.co.uk> | 2005-09-18 19:19:36 +0000 |
commit | f8de91ae41929286b1cf43c72093e5c996b1f949 (patch) | |
tree | f9ccb2fa8461c2941e6d60187ae8952e9ee30f12 /vector.mod | |
parent | f79195715c66530b0bda50242380812c5e670c00 (diff) |
Added documentation
Diffstat (limited to 'vector.mod')
-rw-r--r-- | vector.mod/doc/commands.html | 56 | ||||
-rw-r--r-- | vector.mod/vector.bmx | 98 |
2 files changed, 119 insertions, 35 deletions
diff --git a/vector.mod/doc/commands.html b/vector.mod/doc/commands.html new file mode 100644 index 0000000..4cb9c08 --- /dev/null +++ b/vector.mod/doc/commands.html @@ -0,0 +1,56 @@ +<html>
+<head>
+<title>BlitzMax Module Reference</title>
+<link rel="stylesheet" type="text/css" href="../../../../doc/bmxstyle.css">
+</head>
+<body>
+<h1>Type Reference</h1>
+<p><div id=TVector class=ref>
+<div class=rootdoc><font class=token>Type TVector</font> Implements a 3D vector. Can be used as a 2D vector by ignoring Z.</div><div class=indent></div><br><p><div id=x>
+<div class=rootdoc><font class=token>Field x:Float</font> The X component of the vector.</div><div class=indent></div><br></div><br>
+<p><div id=y>
+<div class=rootdoc><font class=token>Field y:Float</font> The Y component of the vector.</div><div class=indent></div><br></div><br>
+<p><div id=z>
+<div class=rootdoc><font class=token>Field z:Float</font> The Z component of the vector.</div><div class=indent></div><br></div><br>
+<p><div id=IsNull>
+<div class=rootdoc><font class=token>Method IsNull:Int()</font> Is the vector null.</div><div class=indent><p><b>Returns:</b> True if the vector is null (all components zero), False otherwise.</div><br></div><br>
+<p><div id=Length>
+<div class=rootdoc><font class=token>Method Length:Float()</font> The length of the vector.</div><div class=indent><p><b>Returns:</b> The length of the vector.</div><br></div><br>
+<p><div id=Normalise>
+<div class=rootdoc><font class=token>Method Normalise()</font> Normalise the vector so its length is 1.</div><div class=indent></div><br></div><br>
+<p><div id=SetLength>
+<div class=rootdoc><font class=token>Method SetLength( sc:Float )</font> Set the vector so its length is <b>sc</b>.</div><div class=indent></div><br></div><br>
+<p><div id=AddScalar>
+<div class=rootdoc><font class=token>Method AddScalar( sc:Float )</font> Adds <b>sc</b> to all components.</div><div class=indent></div><br></div><br>
+<p><div id=Minus>
+<div class=rootdoc><font class=token>Method Minus()</font> Reverse the direction of the vector.</div><div class=indent></div><br></div><br>
+<p><div id=Scale>
+<div class=rootdoc><font class=token>Method Scale( sc:Float )</font> Scale all components by <b>sc</b>.</div><div class=indent></div><br></div><br>
+<p><div id=Add>
+<div class=rootdoc><font class=token>Method Add( v:TVector )</font> Add another vector to this vector.</div><div class=indent></div><br></div><br>
+<p><div id=Subtract>
+<div class=rootdoc><font class=token>Method Subtract( v:TVector )</font> Subtract another vector from this vector.</div><div class=indent></div><br></div><br>
+<p><div id=ScaleVector>
+<div class=rootdoc><font class=token>Method ScaleVector( v:TVector )</font> Scale this vector by another vector.</div><div class=indent></div><br></div><br>
+<p><div id=InverseScaleVector>
+<div class=rootdoc><font class=token>Method InverseScaleVector( v:TVector )</font> Inverse scale this vector by another vector.</div><div class=indent></div><br></div><br>
+<p><div id=Cross>
+<div class=rootdoc><font class=token>Method Cross:TVector( v:TVector )</font> Calculate the cross product of this vector with another.</div><div class=indent><p><b>Returns:</b> A new <b>TVector</b> holding the cross product.</div><br></div><br>
+<p><div id=Dot>
+<div class=rootdoc><font class=token>Method Dot:Float( v:TVector )</font> Calculate the dot product of this vector with another.</div><div class=indent><p><b>Returns:</b> The dot product.</div><br></div><br>
+<p><div id=Create>
+<div class=rootdoc><font class=token>Function Create:TVector( dx:Float=0.0, dy:Float=0.0, dz:Float=0.0 )</font> Create a vector.</div><div class=indent><p><b>Returns:</b> The created vector.<p><b>dx</b>, <b>dy</b> and <b>dz</b> are the initial component values.</div><br></div><br>
+</div><br>
+<h1>Module Information</h1>
+<table>
+<tr><td><b>Framework</b></td>
+<td> Simple Vector class</td></tr>
+<tr><td><b>Copyright</b></td>
+<td> Public Domain</td></tr>
+<tr><td><b>Author</b></td>
+<td> Ian Cowburn</td></tr>
+<tr><td><b>Version</b></td>
+<td> $Revision$</td></tr>
+</table>
+</body>
+</html>
diff --git a/vector.mod/vector.bmx b/vector.mod/vector.bmx index f32035b..67818fe 100644 --- a/vector.mod/vector.bmx +++ b/vector.mod/vector.bmx @@ -1,3 +1,6 @@ +Rem +bbdoc: noddybox.vector +EndRem Module noddybox.vector ModuleInfo "Framework: Simple Vector class" @@ -10,21 +13,30 @@ ModuleInfo "Version: $Revision$" Strict Import brl.math +Rem +bbdoc: Implements a 3D vector. Can be used as a 2D vector by ignoring Z. +EndRem Type TVector + Rem + bbdoc: The X component of the vector. + EndRem Field x:Float + Rem + bbdoc: The Y component of the vector. + EndRem Field y:Float + Rem + bbdoc: The Z component of the vector. + EndRem Field z:Float - ' Creates a new vector - ' - ' dx - X componenent - ' dy - Y componenent - ' dz - Z componenent - ' - ' Returns null for invalid parameters. - ' + Rem + bbdoc: Create a vector. + returns: The created vector. + about: @dx, @dy and @dz are the initial component values. + EndRem Function Create:TVector(dx:Float=0.0, dy:Float=0.0, dz:Float=0.0) Local o:TVector @@ -37,14 +49,18 @@ Type TVector Return o End Function - ' Is this vector null - ' + Rem + bbdoc: Is the vector null. + returns: True if the vector is null (all components zero), False otherwise. + EndRem Method IsNull:Int() Return x=0 And y=0 And z=0 End Method - ' Get the length of the vector - ' + Rem + bbdoc: The length of the vector. + returns: The length of the vector. + EndRem Method Length:Float() If (IsNull()) Return 0 @@ -53,8 +69,9 @@ Type TVector EndIf End Method - ' Normalise the vector - ' + Rem + bbdoc: Normalise the vector so its length is 1. + EndRem Method Normalise() Local l:Float=Length() If (l<>0) @@ -64,78 +81,89 @@ Type TVector EndIf End Method - ' Set the vector to a length - ' + Rem + bbdoc: Set the vector so its length is @sc. + EndRem Method SetLength(sc:Float) Normalise() Scale(sc) End Method - ' Add a scalar to the vector - ' + Rem + bbdoc: Adds @sc to all components. + EndRem Method AddScalar(sc:Float) x:+sc y:+sc z:+sc End Method - ' Flip the vector - ' + Rem + bbdoc: Reverse the direction of the vector. + EndRem Method Minus() x=-x y=-y z=-z End Method - ' Scale the vector by a scalar - ' + Rem + bbdoc: Scale all components by @sc. + EndRem Method Scale(sc:Float) x:*sc y:*sc z:*sc End Method - ' Add another vector to this - ' + Rem + bbdoc: Add another vector to this vector. + EndRem Method Add(v:TVector) x:+v.x y:+v.y z:+v.z End Method - ' Subtract another vector from this - ' + Rem + bbdoc: Subtract another vector from this vector. + EndRem Method Subtract(v:TVector) x:-v.x y:-v.y z:-v.z End Method - ' Scale this with another vector - ' + Rem + bbdoc: Scale this vector by another vector. + EndRem Method ScaleVector(v:TVector) x:*v.x y:*v.y z:*v.z End Method - ' Inverse scale this with another vector - ' + Rem + bbdoc: Inverse scale this vector by another vector. + EndRem Method InverseScaleVector(v:TVector) x:/v.x y:/v.y z:/v.z End Method - ' Calculate the cross product of this vector with another. - ' Returns a new vector. - ' + Rem + bbdoc: Calculate the cross product of this vector with another. + returns: A new @TVector holding the cross product. + EndRem Method Cross:TVector(v:TVector) Return TVector.Create(y * v.z - v.y * z, z * v.x - v.z * x, x * v.y - v.x * y) End Method - ' Calculate the dot product of this vector with another. - ' + Rem + bbdoc: Calculate the dot product of this vector with another. + returns: The dot product. + EndRem Method Dot:Float(v:TVector) Return x*v.x + y*v.y + z*v.z End Method |