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

###### Функции интерфейса ImaCompositeMatrix

- PutMatrix([in] maIndex startPos,[in] ImaMatrix* mat)
- GetMatrixAtPos([in] maIndex pos,[out,retval] ImaMatrix** mat)
- GetPosType([in] maIndex pos,[out,retval] maType* type)
- MatrixCount([out,retval] int* count)
- GetMatrix([in] int no,[out,retval] ImaMatrix** mat)
- DeleteMatrix([in] ImaMatrix* mat)
- DeleteMatrixno([in] int no)

    HRESULT PutMatrix([in] maIndex startPos,[in] ImaMatrix* mat)

Функция вставляет матрицу mat в составную матрицу так, что "левый верхний угол" (элемент с координатами (0,0,..,0) матрицы mat) имеет координаты startPos в составной матрице.

Параметры:

startPos положение левого верхнего угла матрицы mat
mat добавляемая матрица

Возвращаемое значение:

MA_NOERROR при отсутствии ошибок
MA_ERR_BAD_PARAM если mat==NULL
MA_ERR_VERIFY если размерность матрицы mat не равна размерности уже имеющихся в составной матрице матриц

    HRESULT GetMatrixAtPos([in] maIndex pos,[out,retval] ImaMatrix** mat)

Функция находит матрицу, которой принадлежит ячейка pos в составной матрице.

Параметры:

startPos координата проверяемой ячейки
mat найденая матрица или NULL, если ячейка не принадлежит ни одной матрице

Возвращаемое значение:

MA_NOERROR при отсутствии ошибок
MA_ERR_NOTFOUND если ячейка не принадлежит ни одной матрице

    HRESULT GetPosType([in] maIndex pos,[out,retval] maType* type)

Функция находит матрицу, которой принадлежит ячейка pos в составной матрице и возвращает ее тип

Параметры:

startPos координата проверяемой ячейки
type тип найденой матрицы или MA_EMPTY, если ячейка не принадлежит ни одной матрице

Возвращаемое значение:

MA_NOERROR при отсутствии ошибок
MA_ERR_NOTFOUND если ячейка не принадлежит ни одной матрице

    HRESULT MatrixCount([out,retval] int* count)

Функция возвращает число матриц в составной матрице.

Параметры:

count указатель на возвращаемое значение

Возвращаемое значение:

MA_NOERROR всегда

    HRESULT GetMatrix([in] int no,[out,retval] ImaMatrix** mat)

Функция возвращает матрицу из составной матрицы по ее номеру.

Параметры:

no номер матрицы
type найденая матрица

Возвращаемое значение:

MA_NOERROR всегда
MA_ERR_NOTFOUND если нет матрицы с таким номером

    HRESULT DeleteMatrix([in] ImaMatrix* mat)

Функция удаляет матрицу mat из составной матрицы.

Параметры:

mat удаляемая матрица

Возвращаемое значение:

MA_NOERROR всегда
MA_ERR_NOTFOUND если в составной матрице нет матрицы mat

    HRESULT DeleteMatrixno([in] int no)

Функция удаляет матрицу с номером no из составной матрицы.

Параметры:

no номер матрицы

Возвращаемое значение:

MA_NOERROR всегда
MA_ERR_NOTFOUND если нет матрицы с таким номером