# coyote: TRANSFORM_VOLUME

- coyote/Mathematics
- coyote/Graphics
- [Source code]

NAME

      TRANSFORM_VOLUME

PURPOSE

      The purpose of this program is to transform (e.g., rotate,
      scale, and translate) a 3D array or volume.

AUTHOR

      Martin Downing,
      Clinical Research Physicist,
      Grampian Orthopaedic RSA Research Centre,
      Woodend Hospital, Aberdeen, AB15 6LS.
      Pnone: 01224 556055 / 07903901612
      Fa: 01224 556662
      E-mail: m.downing@abdn.ac.uk

CATEGORY

      Mathematics, graphics.

CALLING SEQUENCE

      result = TRANSFORM_VOLUME( volume )

INPUTS

      volume:    The 3D array or volume to be transformed.

OPTIONAL KEYWORDS

      BUFFER_SIZE: To reduce memory overhead the routine processes the job in chunks, the number
         of elements of which can be set using the BUFFER_SIZE keyword, set this keyword to
         0 to force the whole array to be processed at one time. The default value is 128.
      MISSING: The value to return for transformed values outside the bounds of
         the volume. (Passed to the INTERPOLATE function.) Default is 0.
      T3DMAT: The homogeneous transforamtion matrix. If this keyword is not present,
         the following keywords can be used to create a homogeneous transformation matrix:
         ROTATION - The rotation vector [rx,ry,rz]. The order of rotation is ZYX.
         TRANSLATE - The translation vector [tx,ty,tz].
         SCALE - The scale vector [sx,sy,sz].
         CENTRE_ROTATION - The centre of rotation [cx,cy,cz].

OUTPUTS

      result:    The transformed array or volume.

COMMON BLOCKS

      None.

DEPENDENCIES

      The program uses the library INTERPLOLATE routine, which currently (IDL 5.4)
      uses linear interpolation. Note that the operation is performed in chunks,
      each of which is independant of the result of the others, so the operation
      could easiliy be parallelised.

MODIFICATION HISTORY

      Written by: Martin Downing, 16 September 2001.
      Added MISSING keyword. Removed INPLACE keyword. 25 Nov 2001. MD