SoMFMatrix(3IV)NAMESoMFMatrix (SoMMatrix) - multiple-value field containing any number of
4x4 matrices
INHERITS FROM
SoField > SoMField > SoMFMatrixSYNOPSIS
#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:
Page 1SoMFMatrix(3IV)
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()Page 2SoMFMatrix(3IV)
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
Page 3SoMFMatrix(3IV)
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.
Page 4