home *** CD-ROM | disk | FTP | other *** search
- // %PARAMETERS = "CH16LIST C:\UT2004"
- //Identifies the package
- //CH16_06LIST.uc
-
- class CH16_06LIST extends Commandlet;
- function int Main(string Args){
-
- //#1
- local vector vFirst, vSecond, vReturn;
- local float rDot, rScalar;
- rScalar = 4;
- vFirst.x = 3; vFirst.y = 2; vFirst.z = 4;
- vSecond.x = 4; vSecond.y = 5; vSecond.z = 7;
-
- Log(Chr(10) $" Vector structs and manual operations :"
- $ Chr(10));
- Log(" vFirst [ " @ vFirst.x @ vFirst.y
- @ vFirst.z @ " ] ");
- Log(" vSecond [ " @ vSecond.x @ vSecond.y
- @ vSecond.z @ " ] ");
-
- //#2
- //Add two vectors
- Log(Chr(10) $" vFirst + vSecond: ");
- vReturn.x = vFirst.x + vSecond.x;
- vReturn.y = vFirst.y + vSecond.y;
- vReturn.z = vFirst.z + vSecond.z;
- Log(" Sum : [ " @ vReturn.x @ vReturn.y
- @ vReturn.z @ " ] ");
-
-
- //Subtract one vector from another
- Log(Chr(10) $" vFirst - vSecond: ");
- vReturn.x = vFirst.x - vSecond.x;
- vReturn.y = vFirst.y - vSecond.y;
- vReturn.z = vFirst.z - vSecond.z;
- Log(" Difference : [ " @ vReturn.x @ vReturn.y
- @ vReturn.z @ " ] ");
-
- //#3
- //Multiply by a scalar
- Log(Chr(10) $" 4 * vSecond: ");
- vReturn.x = rScalar * vSecond.x;
- vReturn.y = rScalar * vSecond.y;
- vReturn.z = rScalar * vSecond.z;
-
- Log(" Product: [ " @ vReturn.x @ vReturn.y
- @ vReturn.z @ " ] ");
-
-
- //Multiply by a scalar
- Log(Chr(10) $" vSecond/4: ");
- vReturn.x = vSecond.x/rScalar;
- vReturn.y = vSecond.y/rScalar;
- vReturn.z = vSecond.z/rScalar;
-
- Log(" Result of division : [ " @ vReturn.x @ vReturn.y
- @ vReturn.z @ " ] ");
-
- //#4
- //Dot product
- //[3 2 4] [4 5 7]
- //(3)(4) + (2) (5) + (4) (7)
- vReturn.x = vFirst.x * vSecond.x;
- vReturn.y = vFirst.y * vSecond.y;
- vReturn.z = vFirst.z * vSecond.z;
- rDot = vReturn.x + vReturn.y + vReturn.z;
- Log(Chr(10) $" Dot Product: " $ rDot);
-
- //#5
- //Cross [product
- Log(Chr(10) $ " Cross Product: vFirst x vSecond" );
- vReturn.x = vFirst.y * vSecond.z - vFirst.z * vSecond.y;
- vReturn.y = vFirst.z * vSecond.x - vFirst.x * vSecond.z;
- vReturn.z = vFirst.x * vSecond.y - vFirst.y * vSecond.x;
- Log(" Cross Product: [ " @ vReturn.x @ vReturn.y
- @ vReturn.z @ " ] ");
- //#6
- //Generate a random vector
- vReturn.x = FRand();
- vReturn.y = FRand();
- vReturn.z = FRand();
- Log(Chr(10) $ " Random unit vector [ "
- @ vReturn.x @ vReturn.y
- @ vReturn.z @ " ] ");
- return 0;
- }
-