Класс предназначен для объединения нескольких матриц разных типов в одну матрицу. Таким образом можно создавать блочные матрицы.

Этот класс наследует функции класса CmaMatrix.
Функции класса СmaCompositeMatrix


CmaCompositeMatrix ();
Создание новой, пустой составной матрицы.

Код ошибки:

MA_ERR_NOINTERFACE если не удалось создать компонент (не вызван CoInitialize() или не зарегистрирован maCom)

CmaCompositeMatrix (ImaMatrix *matrix);
Присоединение класса к существующей составной матрице, заданной интерфейсом matrix.

Код ошибки:

MA_ERR_NOINTERFACE если matrix не является составной матрицей

CmaCompositeMatrix (const CmaCompositeMatrix &matrix);
Присоединение класса к существующей матрице, заданной в классе matrix.
CmaCompositeMatrix (CmaCell &cell);
Присоединение класса к существующей матрице, хранящейся в ячейке cell.

Код ошибки:

MA_ERR_NOINTERFACE если в ячейке хранится не составная матрица

~CmaCompositeMatrix ();
Уменьшение числа ссылок на интерфейс и уничтожение объекта.
void PutMatrix(CmaIndex& startPos,CmaMatrix &mat);
Функция вставляет матрицу mat в составную матрицу так, что "левый верхний угол" (элемент с координатами (0,0,..,0) матрицы mat) имеет координаты startPos в составной матрице.

Код ошибки:

MA_ERR_VERIFY если размерность матрицы mat не равна размерности уже имеющихся в составной матрице матриц

CmaMatrix GetMatrixAtPos(CmaIndex& pos);
Функция находит матрицу, которой принадлежит ячейка pos в составной матрице. Возвращает матрицу с нулевым указателем на интерфейс, если ячейка не принадлежит ни одной матрице.
maType GetPosType(CmaIndex& pos);
Функция находит матрицу, которой принадлежит ячейка pos в составной матрице и возвращает ее тип Если ячейка не принадлежит ни одной матрице, функция возвращает MA_EMPTY
int MatrixCount();
Функция возвращает число матриц в составной матрице.
CmaMatrix GetMatrix(int no);
Функция возвращает матрицу из составной матрицы по ее номеру no. Возвращает матрицу с нулевым указателем на интерфейс, если нет матрицы с таким номером.
void DeleteMatrix(CmaMatrix& mat);
Функция удаляет матрицу mat из составной матрицы.
void DeleteMatrix(int no);
Функция удаляет матрицу с номером no из составной матрицы.