• Lab 2 - Macro Procedures:
    • For this lab you will be writing a macro that takes in two sets of latitude/longitude points (4 arguments) and computes the distance in meters between them.
    • The equation for this is:
      d = MAG(v1 - v2)
      where v1 and v2 are vectors in a CARTESIAN coordinate system.
    • Inside the macro, make a procedure to convert from GEODETIC to CARTESIAN (The conversion must be done before subtraction). The nxm.sys.lib.Position class contains a method to perform the conversion.
    • You will need to use the following commands:
      NEW     -- to create a Position object
      INVOKE  -- to invoke the method in Position to convert
                 from GEODETIC to CARTESIAN
      CALC    -- to compute the distance once the points are
                 converted to CARTESIAN
      
    • When you are done use UPDATE to add MISS_DISTANCE to the dictionary and try it out. The output should look similar to this:
      nM> miss_distance 44 33 45 34
      Miss distance is 136644.17740578306 meters
    • Hints:
      • If you want have an output parameter from a procedure, you can take in the result name and set the value of it like so:
        call myProc 10 res1  ! Sets res1 result
        call myProc 20 res2  ! Sets res2 result
        ...
        procedure myProc N:in U:myOutputRes
          result ^myOutputRes in
        return
        
      • You can convert the X,Y and Z values of a Position object into a Midas VD using the following syntax:
        nM> result myVector (pos.x,pos,y,pos.z)
        where pos is a Position object.
      • CALC can subtract vectors and get their magnitudes.