
SepInfo(UI)          Cube Reference Manual          SepInfo(UI)

NAME
     SepInfo - Class describing data components.

SYNOPSIS
     #include <Cube/sepinfo.h>

DESCRIPTION
     The class SepInfo contains information about the  axes,  the
     number  of  dimension of the data set, the total size of the
     data, the element size, the title.

PUBLIC OPERATIONS
     SepInfo()
          Create a three-dimensional information  structure  with
          empty axes, a default element size of 4.

     SepInfo(int ndim)
          Create an information structure of ndim dimensions  all
          the axes being initialized to no elements.

     SepInfo(SepAxis *[], int ndim, int esz, char *title=nil)
          Create an information  structure  of  ndim  dimensions,
          with  the  the  input  axes, and with the input element
          size.

     SepInfo(SepInput*)
          A SepInfo object is created from a SepInput object. The
          SepInfo  object  get  the  element size, the title, the
          axes.  At least three axes are  initialized  eventually
          to empty.

     ~SepInfo()
          Delete the axes.

     SepInfo * Copy()
          Create a copy of the current SepInfo object.  The  axes
          are copied. The title is copied.

     SepInfo * Pad(int padstart[], int padend[])
          Create a new SepInfo objects with new padded axes. Copy
          the element size and the title.

     SepAxis* Axis(int i=,2,3)
          Get the axis information on the axis number i.

     int  Dimension()
          Return the number of dimension of the data.

     int  TotalSize()
          Return the total size of the data set.

     int  Esize()

SepInfo(UI)          Cube Reference Manual          SepInfo(UI)

          Return the element size .

     char* Title()
          Return a copy of the title of the data set.

PROTECTED OPERATIONS
     void setEsize(int)
          Set the element size to the input value. Recompute  the
          total data set size.

     void SetAxis(SepAxis *,int n)
          Set the axis number n to the input axis.

     boolean contains(SepInfo *)
          Return true if the input  infoObject  is  a  subset  of
          this.  Check that the new object does not have too many
          dimensions or if it does check that  they  are  all  of
          length .  Check that each axis is within the bounds of
          the corresponding axis for this object, i.e.  calculate
          starting  and  ending  indices of the input SepInfo and
          check whether they are inside current indices.

     boolean compatible(SepInfo *)
          Check whether or not the input info object is  compati-
          ble with the current object. i.e. if they have compati-
          ble esize,  compatible  sampling  interval,  compatible
          starting values on their common axes.

     SepInfo * unionInfo(SepInfo *)
          Figure out the size of an info object that is  a  union
          of  this  and the new info object. The two info objects
          must  be  compatible.   Compute  starting  indices  and
          number  of element of the new axes. The new object copy
          the esize and title of this.

     unsigned long offset(int [])
     unsigned long offset(float [])
          Return the offset in bytes from the start of the object
          described  by this info object, given a list of indices
          or a list of coordinates.

     float * Start()
          Build an array of coordinates  for  the  start  of  the
          data.

     boolean Step(float[], int)
          Step these floating point values one sample  along  the
          specified  axis. If we get to the end of the axis, step
          the next axis.

PROTECTED VARIABLES
     SepAxis** axislist:

SepInfo(UI)          Cube Reference Manual          SepInfo(UI)

          Array of SepAxis.

     int dimension:
          number of dimension of the data set.

     int totalsize:
          total size of the data set.

     int esize:
          element size.

     char * title:
          Title of the data set.

SEE ALSO
     SepInput, SepAxis, intro

