SoMFMatrix(3IV)

SoMFMatrix (SoMMatrix) - multiple-value field containing any number of 4x4 matrices

Showing IRIX 6.5.30 (default release). Added in IRIX 6.5.22.

NAME
     SoMFMatrix (SoMMatrix) - multiple-value field containing any number of
     4x4 matrices

INHERITS FROM
     SoField > SoMField > SoMFMatrix

SYNOPSIS
     #include <Inventor_c/fields/SoMFMatrix.h>

     typedef SoMFMatrix  SoMMatrix

          Functions from class SoMFMatrix:

     void                SoMMatrixSetMx(SoMMatrix *this, float a11, float a12,
                              float a13, float a14, float a21, float a22,
                              float a23, float a24, float a31, float a32,
                              float a33, float a34, float a41, float a42,
                              float a43, float a44)
     SoType              SoMMatrixGetClassTypeId()
     void                SoMMatrixGetTypeId(const SoMMatrix *this)
     const SbMatrix *    SoMMatrixGet(const SoMMatrix *this, int i)
     const SbMatrix *    SoMMatrixGetN(const SoMMatrix *this, int start)
     int                 SoMMatrixFind(SoMMatrix *this, const SbMatrix *
                              targetValue, SbBool addIfNotFound = FALSE)
     void                SoMMatrixSetN(SoMMatrix *this, int start, int num,
                              const SbMatrix *newValues)
     void                SoMMatrixSet1(SoMMatrix *this, int index, const
                              SbMatrix * newValue)
     void                SoMMatrixSet(SoMMatrix *this, const SbMatrix *
                              newValue)
     int                 SoMMatrixIsEq(const SoMMatrix *this, const SoMFMatrix
                              *f)
     int                 SoMMatrixIsNEq(const SoMMatrix *this, const
                              SoMFMatrix *f)
     SbMatrix *          SoMMatrixStartEdit(SoMMatrix *this)
     void                SoMMatrixFinishEdit(SoMMatrix *this)

          Functions from class SoMField:

     int                 SoMMatrixGetNum(const SoMMatrix *this)
     void                SoMMatrixSetNum(SoMMatrix *this, int num)
     void                SoMMatrixDel(SoMMatrix *this, int start, int num =
                              -1)
     void                SoMMatrixInsertSpace(SoMMatrix *this, int start, int
                              num)
     void                SoMMatrixGet1(SoMMatrix *this, int index, SbString
                              *valueString)

          Functions from class SoField:

     void                SoMMatrixSetIgnored(SoMMatrix *this, SbBool ignore)
     SbBool              SoMMatrixIsIgnored(const SoMMatrix *this)
     SbBool              SoMMatrixIsDflt(const SoMMatrix *this)
     SbBool              SoMMatrixIsOfType(const SoMMatrix *this, SoType type)
     SbBool              SoMMatrixSetFromStr(SoMMatrix *this, const char
                              *valueString)
     void                SoMMatrixGetIntoStr(SoMMatrix *this, SbString
                              *valueString)
     void                SoMMatrixTouch(SoMMatrix *this)
     SbBool              SoMMatrixConnFromField(SoMMatrix *this, SoField
                              *fromField)
     SbBool              SoMMatrixConnFrom(SoMMatrix *this, SoEngineOutput
                              *fromEngine)
     void                SoMMatrixDisconn(SoMMatrix *this)
     SbBool              SoMMatrixIsConn(const SoMMatrix *this)
     SbBool              SoMMatrixIsConnFromField(const SoMMatrix *this)
     SbBool              SoMMatrixGetConnField(const SoMMatrix *this, SoField
                              **writingField)
     SbBool              SoMMatrixIsConnFromEngine(const SoMMatrix *this)
     SbBool              SoMMatrixGetConnEngine(const SoMMatrix *this,
                              SoEngineOutput **engineOutput)
     void                SoMMatrixEnableConn(SoMMatrix *this, SbBool flag)
     SbBool              SoMMatrixIsConnEnabled(const SoMMatrix *this)
     int                 SoMMatrixGetForwardConn(const SoMMatrix *this,
                              SoFieldList *list)
     SoFieldContainer *  SoMMatrixGetContainer(const SoMMatrix *this)


DESCRIPTION
     A multiple-value field that contains any number of 4x4 matrices.

     SoMFMatrices are written to file as sets of 16 floating point numbers
     separated by whitespace. When more than one value is present, all of the
     values are enclosed in square brackets and separated by commas; for
     example, two identity matrices might be written as:

          [ 1 0 0 0  0 1 0 0  0 0 1 0  0 0 0 1,
            1 0 0 0  0 1 0 0  0 0 1 0  0 0 0 1 ]



FUNCTIONS
     void                SoMMatrixSetMx(SoMMatrix *this, float a11, float a12,
                              float a13, float a14, float a21, float a22,
                              float a23, float a24, float a31, float a32,
                              float a33, float a34, float a41, float a42,
                              float a43, float a44)
          Makes this field contain one and only one value, which is the matrix
          given by the 16 values.

     SoType              SoMMatrixGetClassTypeId()

     void                SoMMatrixGetTypeId(const SoMMatrix *this)
          Returns the type for this class or a particular object of this
          class.

     const SbMatrix *    SoMMatrixGet(const SoMMatrix *this, int i)
          Returns the i'th value of the field. Indexing past the end of the
          field (passing in i greater than getNum()) will return garbage.

     const SbMatrix *    SoMMatrixGetN(const SoMMatrix *this, int start)
          Returns a pointer into the array of values in the field, starting at
          index start. The values are read-only; see the
          startEditing()/finishEditing() methods for a way of modifying values
          in place.

     int                 SoMMatrixFind(SoMMatrix *this, const SbMatrix *
                              targetValue, SbBool addIfNotFound = FALSE)
          Finds the given value in the array and returns the index of that
          value in the array. If the value is not found, -1 is returned. If
          addIfNotFound is set, then targetValue is added to the end of the
          array (but -1 is still returned).

     void                SoMMatrixSetN(SoMMatrix *this, int start, int num,
                              const SbMatrix *newValues)
          Sets num values starting at index start to the values in newValues.
          The array will be automatically be made larger to accomodate the new
          values, if necessary.

     void                SoMMatrixSet1(SoMMatrix *this, int index, const
                              SbMatrix * newValue)
          Sets the index'th value in the array to newValue. The array will be
          automatically expanded, if necessary.

     void                SoMMatrixSet(SoMMatrix *this, const SbMatrix *
                              newValue)
          Sets the first value in the array to newValue, and deletes the
          second and subsequent values.

     int                 SoMMatrixIsEq(const SoMMatrix *this, const SoMFMatrix
                              *f)
     int                 SoMMatrixIsNEq(const SoMMatrix *this, const
                              SoMFMatrix *f)
          Returns TRUE if all of the values of this field equal (do not equal)
          those of the given field. If the fields are different types FALSE
          will always be returned (even if one field is an SoMFFloat with one
          value of 1.0 and the other is an SoMFInt with a value of 1, for
          example).

     SbMatrix *          SoMMatrixStartEdit(SoMMatrix *this)
     void                SoMMatrixFinishEdit(SoMMatrix *this)
          startEditing() returns a pointer to the internally-maintained array
          that can be modified. The values in the array may be changed, but
          values cannot be added or removed. It is illegal to call any other
          editing methods between StartEdit() and FinishEdit() (e.g. Set1(),
          Set(), etc).

          Fields, engines or sensors connected to this field and sensors are
          not notified that this field has changed until FinishEdit() is
          called. Calling FinishEdit() always sets the IsDflt flag to FALSE
          and informs engines and sensors that the field changed, even if none
          of the values actually were changed.