C3D.get_3d_point

Previous  Next

 

Value = C3D.get_3d_point(    Fid       AS HANDLE,

                             nFrameNo  AS INTEGER,

                             nPointNo  AS INTEGER,

                             nItem     AS INTEGER ) AS VARIAMT

 

nStatus = C3D.get_3d_point(  Fid       AS HANDLE,

                             nFrameNo  AS INTEGER,

                             nPointNo  AS INTEGER,

                             outArr    AS REFERENCE ) AS INTEGER

 


 

The first syntax returns the 3D point value specified by nItem.

 

Defined Constants for nItem.  Note; You can only use one at a time wit this function

 

CONST C3D_ITEM_X        = 0x00000001   ' Return Pos X as REAL

CONST C3D_ITEM_Y        = 0x00000002   ' Return Pos Y as REAL

CONST C3D_ITEM_Z        = 0x00000004   ' Return Pos Z as REAL

CONST C3D_ITEM_RESID    = 0x00000008   ' Residuals as REAL

CONST C3D_ITEM_MASK     = 0x00000010   ' Camera Mask as INTEGER

 

The second syntax returns the 3D point value in an array of REAL.  The values returned depends on the dimension of the REAL array.  The array should be declared as one of the following

 

DIM outArr( 1 ) AS REAL   ' Returns Pos X +

DIM outArr( 2 ) AS REAL   ' Returns Pos Y +

DIM outArr( 3 ) AS REAL   ' Returns Pos Z +

DIM outArr( 4 ) AS REAL   ' Residual +

DIM outArr( 5 ) AS REAL   ' Camera Mask as INTEGER coded as REAL

 

Invalid 3D values will have the Residual set to -1 (C3D_INVALID_RESID) and then 3D data is set to 3.402823466e38 (C3D_INVALID_VALUE).

 

Example:

 

' Using the first Syntax

s = FORMAT( "Frame %3d: %10.3f, %10.3f, %10.3f, %10.3f, 0x%08x", i,_

                                                                C3D.GET_3D_POINT( fid, i, 1, C3D_item_x ),_

                                                                C3D.GET_3D_POINT( fid, i, 1, C3D_item_y ),_

                                                                C3D.GET_3D_POINT( fid, i, 1, C3D_item_z ),_

                                                                C3D.GET_3D_POINT( fid, i, 1, C3D_item_resid ),_

                                                                C3D.GET_3D_POINT( fid, i, 1, C3D_item_mask ) )

' Second Syntax

DIM p(5) AS REAL

 

IF C3D.GET_3D_POINT( hFid, i, 1, REF( p ) ) = C3D_SUCCESS THEN

  s = FORMAT( "Frame %3d: %10.3f, %10.3f, %10.3f, %10.3f, 0x%08x", i, p(0), p(1), p(2), p(3), INT( p(4) ) )

ENDIF