Vector Index Array VIX |
vixa = VIX()
vixa = VIX( ix1 AS INTEGER ) AS INTEGER
vixa = VIX( ix2 AS INTEGER, ix1 AS INTEGER ) AS INTEGER
vixa = VIX( ix3 AS INTEGER, ix2 AS INTEGER, ix1 AS INTEGER ) AS INTEGER
Creates a Vector Index Array (VIXA). This is a compressed index into a multidimensional vector array. MyBASIC2 Supports up to 4 dimensions where the Motion Analysis Library uses 3 of the dimensions. The first used array dimension is used as the trajectory. This is usually the frame number. The second is usually the point or analog number and the last one is usually the data dimension. For example:
DIM vad_array( 60, 8 ) AS REAL ' 60 Frames, 8 channels DIM vad_array( 60, 8, 1 ) AS REAL ' Same as above DIM v2d_array( 60, 4, 2 ) AS REAL ' 60 Frames, 4 points, X/Y data DIM v3d_array( 60, 4, 3 ) AS REAL ' 60 Frames, 4 points, X/Y/Z data
The dimension parameters of the VIX function follows the MyBASIC2 array subscript format. For example, to index X data of point 4 in the example above, use VIX( 4, 1 )assuming option base 1. If you omit all the indexes, then VIX will create a "wild" VIXA where all ths fields are set to -1. (0xFFFFFFFF)
The VIX function creates an INTEGER with the vector dimensions compressed into one 32-bit INTEGER. The format is as follows
DIM name( n/a, ix3, ix2, ix1 ) AS TYPE
where
ix3 - Frames ix2 - Points or Channels. Default 1 ix1 - Data Dimension (1D, 2D or 3D). Default 1D
This is encoded as
Bit 20-31: ix3 - 12 Bits, Max 4095 Bit 8-19: ix2 - 12 Bits, Max 4095 Bit 0-7: ix1 - 8 Bits, Max 255
Example:
OPTION BASE 1
' Note; Array will have X/Y/Z Data + Resid and Camera Mask DIM fourP( nFrames, 4, 5 )
' Read Point 1 into first point index C3D.GET_3D_POINT_ARR( hFid, 1, REF( fourP ), C3D_ITEM_ALL, 1 )
' Plot the X/Z data for Point 1 GRAPH.AddElement( hGraph, "Point 1", fourP, VIX( 1, 1 ), fourP, VIX( 1, 3 ) )
|