Simbody
3.3
|
Matrix "outline" refers to the characteristic relationship between the number of rows and columns of a matrix, without necessarily specifying the absolute dimensions. More...
#include <MatrixCharacteristics.h>
Classes | |
struct | Mask |
Public Types | |
enum | Outline { NoOutline = 0x0000, Scalar = 0x0001, Column = 0x0002, Row = 0x0004, Square = 0x0008, Wide = 0x0010, Tall = 0x0020, Rectangular = 0x0040 } |
typedef unsigned short | OutlineMask |
Public Member Functions | |
std::string | name () const |
MatrixOutline () | |
Default constructor produces an object containing no outline specification. More... | |
MatrixOutline (Outline outline) | |
This is an implicit conversion from the Outline enum to a MatrixOutline object. More... | |
MatrixOutline & | setToNone () |
Set the outline back to its default-constructed value of "none". More... | |
Mask | mask () const |
When "this" outline is used as a commitment, it represents a mask of acceptable outlines. More... | |
bool | isSizeOK (int m, int n) const |
Determine if the proposed shape satisfies this outline. More... | |
void | getMinimumSize (int &m, int &n) const |
Return the minimum shape that will satisfy this outline. More... | |
Outline | getOutline () const |
Return the outline value stored in this MatrixOutline object. More... | |
Static Public Member Functions | |
static const char * | name (Outline) |
static OutlineMask | calcMask (Outline) |
Compute a mask of acceptable Outline values given a particular value specified as a commitment. More... | |
static MatrixOutline | calcFromSize (int m, int n) |
Determine the outline from given actual dimensions. More... | |
Static Public Attributes | |
static const OutlineMask | AnyOutline = 0x007fU |
static const OutlineMask | UncommittedOutline = 0xffffU |
Matrix "outline" refers to the characteristic relationship between the number of rows and columns of a matrix, without necessarily specifying the absolute dimensions.
There are seven possible outline attributes:
A matrix handle with no outline commitment can hold a general (rectangular) matrix, which of course includes all the other outlines as well. Vector handles are always committed to column outline, RowVector handles to row outline. Scalar matrices are also rows, columns, and square and some rows and columns are square (if they are 1x1).
Note that certain outlines imply fixed sizes of one or both dimensions.
typedef unsigned short SimTK::MatrixOutline::OutlineMask |
|
inline |
Default constructor produces an object containing no outline specification.
If used as a commitment it won't accept any outline!
|
inline |
This is an implicit conversion from the Outline enum to a MatrixOutline object.
|
static |
|
inline |
|
inline |
Set the outline back to its default-constructed value of "none".
|
static |
Compute a mask of acceptable Outline values given a particular value specified as a commitment.
For example, if the commitment is "Wide" then Square, Row, and Scalar outlines are also acceptable.
|
inline |
When "this" outline is used as a commitment, it represents a mask of acceptable outlines.
Calculate and return that mask.
bool SimTK::MatrixOutline::isSizeOK | ( | int | m, |
int | n | ||
) | const |
Determine if the proposed shape satisfies this outline.
void SimTK::MatrixOutline::getMinimumSize | ( | int & | m, |
int & | n | ||
) | const |
Return the minimum shape that will satisfy this outline.
|
static |
Determine the outline from given actual dimensions.
|
inline |
Return the outline value stored in this MatrixOutline object.
|
static |
|
static |