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

###### Функции класса СmaCompositeMatrix

- CmaCompositeMatrix ()
- CmaCompositeMatrix (ImaMatrix *matrix)
- CmaCompositeMatrix (const CmaCompositeMatrix &matrix)
- CmaCompositeMatrix (CmaCell &cell)
- ~CmaCompositeMatrix ()
- void PutMatrix(CmaIndex& startPos,CmaMatrix &mat)
- CmaMatrix GetMatrixAtPos(CmaIndex& pos)
- maType GetPosType(CmaIndex& pos)
- int MatrixCount()
- CmaMatrix GetMatrix(int no)
- void DeleteMatrix(CmaMatrix& mat)
- void DeleteMatrix(int no)

    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 из составной матрицы.