Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ iflConfig(3) — IRIX 6.5.3f

Media Vault

Software Library

Restoration Projects

Artifacts Sought



iflConfig(3)      Image Format Library C++ Reference Manual       iflConfig(3)



NAME
     iflConfig - class for pixel abstraction

INHERITS FROM
     This is a base class and therefore has no inheritance.

HEADER FILE
     #include <ifl/iflConfig.h>

CLASS DESCRIPTION
     The iflConfig class is used to describe the configuration of pixel data.
     It is used in iflFile functions such as getTile() and setTile() to
     describe the configuration of data in the user's buffer.

     An iflConfig contains six public member variables describing a collection
     of pixels:


          iflType dtype               Data type of the pixels

          iflOrder order              Order of the pixels

          iflOrientation orientation  Orientation of the pixels

          int nchans                  Number of data channels the pixels
                                      contain

          int choff                   Offset in the channel list for the
                                      purpose of mapping from one collection
                                      of channels to another.

          int* channels               List that maps channels from one
                                      collection to another.  This array is
                                      not maintained by this object, the data
                                      pointed to must persist while the object
                                      is in use.



















                                                                        Page 1





iflConfig(3)      Image Format Library C++ Reference Manual       iflConfig(3)



     Using iflConfig

     The iflConfig object contains a list that maps channels from one
     collection to another.  In this code fragment,

          unsigned char buffer[10*10*3];
          static int list[] = { 2, 1, 0 };
          iflConfig cfg(iflUChar, iflInterleaved, 3, list);

          someFile.getTile(0, 0, 0, 10, 10, 1, buffer, &cfg);

     cfg is used to indicate that buffer is going to receive a 10-by-10 array
     of three-component  pixels stored in interleaved order with an unsigned
     char data type.  This would override the actual configuration of the data
     in someFile.

     The channel list provides the buffer's channel information. The first
     channel of the buffer receives data from channel 2 of someFile. The
     second channel is from someFile's channel 1. The third buffer channel
     gets channel 0 of someFile.  In general, when an iflConfig is defaulted,
     the operation being performed assumes that the source and destination
     configurations match.  If someFile was actually a four-channel float
     image stored in separate order, then

          someFile.getTile(0, 0, 0, 10, 10, 1, buffer);


     would require a buffer declared as

          float buffer[10*10*4];

     and would receive a verbatim copy of the requested section of someFile.

CLASS MEMBER FUNCTION SUMMARY
     Constructor

          iflConfig()
          iflConfig(iflDataType type, iflOrder ord=iflInterleaved,
                    int nchan=0, int* chanList=NULL, int chanOff=0,
                    iflOrientation ori=iflOrientation(0))


     Channel list manipulations

          void compose(int nc, int* in, int* out) const
          int isInvertable() const
          void invert(int nc, int* chanList) const
          int mapChan(int idx) const
          int operator[](int idx) const






                                                                        Page 2





iflConfig(3)      Image Format Library C++ Reference Manual       iflConfig(3)



FUNCTION DESCRIPTIONS
     iflConfig()

          iflConfig()
          iflConfig(iflDataType type, iflOrder order=iflInterleaved,
                    int nchan=0, int* chanList=NULL, int chanOff=0,
                    iflOrientation ori=iflOrientation(0))


          The first constructor creates an uninitialized object (not
          recommended).  The second constructor creates an iflConfig with data
          type, type; data ordering, order; and channel list defined by
          chanList of nc channels.  If chanList is omitted, all nchan channels
          are used in ascending order.  Optionally, the orientation is set to
          ori.  If omitted, the orientation matches that of the image being
          accessed.

     compose()

          void compose(int nc, int* in, int* out) const


          This function composes the channel list in the iflConfig object with
          the channel list of nchan channels specified by in.  The composed
          list is written to out.

     mapChan()

          void mapChan(int idx) const


          This function returns the channel on the list in the iflConfig
          object that maps to idx. It takes into account the offset specified
          by choff, or just the offseted index, if the channel list is NULL.
          If idx is more than nchans or less than 0, it returns -1.

     operator[]()

          void operator[](int idx) const


          This operator returns the channel on the list in the iflConfig
          object that maps to idx. It takes into account the offset specified
          by choff, or just the offseted index, if the channel list is NULL.
          If idx is more than nchans or less than 0, it returns -1.

     invert()

          void invert(int nc, int* chanList) const






                                                                        Page 3





iflConfig(3)      Image Format Library C++ Reference Manual       iflConfig(3)



          This function inverts the channel list in the iflConfig object to
          perform the mapping in the opposite direction.  The result is
          written to nc entries of chanlist.

     isInvertable()

          int isInvertable() const


          This function returns whether the mapping described by the channel
          list has an inverse.

SEE ALSO
     iflFile









































                                                                        Page 4



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026