% -*- latex -*-


\setDate{September 20, 2010}
% The following must all be on one line for latex2man to work.
\begin{Name}{3}{icetBoundingVertices}{Kenneth Moreland}{\IceT Reference}{\CFunc{icetBoundingVertices} -- set bounds of geometry.}

  \mansection{Synopsis}

  \textC{\#include <IceT.h>}

  \begin{Table}{3}
    \textC{void }\CFunc{icetBoundingVertices}\textC{(}&\textC{IceTInt}&\CArg{size}\textC{,} \\
      &\textC{IceTEnum}&\CArg{type}\textC{,} \\
      &\textC{IceTSizeType}&\CArg{stride}\textC{,} \\
      &\textC{IceTSizeType}&\CArg{count}\textC{,} \\
      &\textC{const IceTVoid *}&\CArg{pointer}\quad\textC{);}
  \end{Table}

  
  \mansection{Description}

  \CFunc{icetBoundingVertices} is used to tell \IceT what the bounds of the
  geometry drawn by the callback registered with \CFunc{icetDrawCallback}
  or \CFunc{icetGLDrawCallback} are.  The bounds are assumed to be the
  convex hull of the vertices given.  The user should take care to make
  sure that the drawn geometry actually does fit within the convex hull, or
  the data may be culled in unexpected ways.  \IceT runs most efficiently
  when the bounds given are tight (match the actual volume of the data
  well) and when the number of vertices given is minimal.

  The \CArg{size} parameter specifies the number of coordinates given for
  each vertex.  Coordinates are given in X-Y-Z-W order.  Any Y or Z
  coordinate not given (because \CArg{size} is less than 3) is assumed to
  be $0.0$, and any W coordinate not given (because \CArg{size} is less
  than 4) is assumed to be $1.0$.

  The \CArg{type} parameter specifies in what data type the coordinates are
  given.  Valid \CArg{type}s are \CEnum{ICET\_SHORT}, \CEnum{ICET\_INT},
  \CEnum{ICET\_FLOAT}, and \CEnum{ICET\_DOUBLE}, which correspond to types
  \textC{IceTShort}, \textC{IceTInt}, \textC{IceTFloat}, and
  \textC{IceTDouble}, respectively.

  The \CArg{stride} parameter specifies the offset between consecutive
  vertices in bytes.  If \CArg{stride} is $0$, the array is assumed to be
  tightly packed.

  The \CArg{count} parameter specifies the number of vertices to set.

  The \CArg{pointer} parameter is an array of vertices with the first
  vertex starting at the first byte.

  If data replication is being used, each process in a data replication
  group should register the same bounding vertices that encompass the
  entire geometry.  By default there is no data replication, so unless you
  call \CFunc{icetDataReplicationGroup}, all process can have their own
  bounds.


  \mansection{Errors}

  \begin{Description}[ICET\_INVALID\_OPERATION]
  \item[\CErrorEnum{ICET\_INVALID\_ENUM}]
    Raised if \CArg{type} is not one of \CEnum{ICET\_SHORT},
    \CEnum{ICET\_INT}, \CEnum{ICET\_FLOAT}, or \CEnum{ICET\_DOUBLE}.
  \end{Description}


  \mansection{Warnings}

  None.


  \mansection{Bugs}

  None known.


  \mansection{Copyright}
  Copyright \copyright 2003 Sandia Corporation

  @copyright@

  \mansection{See Also}

  \CFuncSeeAlso{icetBoundingBox},
  \CFuncSeeAlso{icetDataReplicationGroup},
  \CFuncSeeAlso{icetDrawCallback},
  \CFuncSeeAlso{icetGLDrawCallback}

\end{Name}


% These are emacs settings that go at the end of the file.
% Local Variables:
% writestamp-format: "%B %e, %Y"
% writestamp-prefix: "^\\\\setDate{"
% writestamp-suffix: "}$"
% End:
