home *** CD-ROM | disk | FTP | other *** search
/ UnrealScript Game Programming All in One / UnrealScriptGameProgrammingAllInOne.iso / UGPAIOListings / UGPAIOListingsCh16 / CH16LIST / Classes / CH16_06LIST.uc < prev    next >
Encoding:
Text File  |  2006-02-18  |  2.8 KB  |  88 lines

  1. // %PARAMETERS = "CH16LIST C:\UT2004"
  2. //Identifies the package
  3. //CH16_06LIST.uc
  4.  
  5. class CH16_06LIST extends Commandlet;
  6. function int Main(string Args){
  7.  
  8.   //#1
  9.   local vector vFirst, vSecond, vReturn;
  10.   local float rDot, rScalar;
  11.   rScalar = 4;
  12.   vFirst.x = 3;    vFirst.y = 2;    vFirst.z = 4;
  13.   vSecond.x = 4;   vSecond.y = 5;   vSecond.z = 7;
  14.   
  15.   Log(Chr(10) $" Vector structs and manual operations :"
  16.                $ Chr(10));
  17.   Log("  vFirst  [  " @ vFirst.x @ vFirst.y
  18.                        @ vFirst.z @ " ] ");
  19.   Log("  vSecond [  " @ vSecond.x @ vSecond.y
  20.                        @ vSecond.z @ " ] ");
  21.  
  22.    //#2
  23.     //Add two vectors
  24.     Log(Chr(10) $"  vFirst + vSecond: ");
  25.     vReturn.x = vFirst.x + vSecond.x;
  26.     vReturn.y = vFirst.y + vSecond.y;
  27.     vReturn.z = vFirst.z + vSecond.z;
  28.     Log("  Sum  :  [  " @ vReturn.x @ vReturn.y
  29.                         @ vReturn.z @ " ] ");
  30.                         
  31.  
  32.     //Subtract one vector from another
  33.     Log(Chr(10) $"  vFirst - vSecond: ");
  34.     vReturn.x = vFirst.x - vSecond.x;
  35.     vReturn.y = vFirst.y - vSecond.y;
  36.     vReturn.z = vFirst.z - vSecond.z;
  37.     Log("  Difference :  [  " @ vReturn.x @ vReturn.y
  38.                         @ vReturn.z @ " ] ");
  39.  
  40.     //#3
  41.     //Multiply by a scalar
  42.     Log(Chr(10) $"  4 * vSecond: ");
  43.     vReturn.x = rScalar * vSecond.x;
  44.     vReturn.y = rScalar * vSecond.y;
  45.     vReturn.z = rScalar * vSecond.z;
  46.  
  47.     Log("  Product:  [  " @ vReturn.x @  vReturn.y
  48.                           @ vReturn.z @ " ] ");
  49.                           
  50.                           
  51.        //Multiply by a scalar
  52.     Log(Chr(10) $"  vSecond/4: ");
  53.     vReturn.x =  vSecond.x/rScalar;
  54.     vReturn.y =  vSecond.y/rScalar;
  55.     vReturn.z =  vSecond.z/rScalar;
  56.  
  57.     Log("  Result of division :  [  " @ vReturn.x @  vReturn.y
  58.                           @ vReturn.z @ " ] ");
  59.  
  60.     //#4
  61.     //Dot product
  62.      //[3 2 4]  [4 5 7]
  63.     //(3)(4) + (2) (5) +  (4) (7)
  64.     vReturn.x = vFirst.x * vSecond.x;
  65.     vReturn.y = vFirst.y * vSecond.y;
  66.     vReturn.z = vFirst.z * vSecond.z;
  67.     rDot =  vReturn.x + vReturn.y +  vReturn.z;
  68.     Log(Chr(10) $"  Dot Product: " $ rDot);
  69.  
  70.     //#5
  71.     //Cross [product
  72.     Log(Chr(10) $ "  Cross Product: vFirst x vSecond" );
  73.     vReturn.x =  vFirst.y * vSecond.z - vFirst.z * vSecond.y;
  74.     vReturn.y =  vFirst.z * vSecond.x - vFirst.x * vSecond.z;
  75.     vReturn.z =  vFirst.x * vSecond.y - vFirst.y * vSecond.x;
  76.     Log("  Cross Product: [  " @ vReturn.x @  vReturn.y
  77.                                @ vReturn.z @ " ] ");
  78.     //#6
  79.     //Generate a random vector
  80.     vReturn.x = FRand();
  81.     vReturn.y = FRand();
  82.     vReturn.z = FRand();
  83.     Log(Chr(10) $ "  Random unit vector  [  "
  84.                    @ vReturn.x @ vReturn.y
  85.                    @ vReturn.z @ " ] ");
  86.     return 0;
  87. }
  88.