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

Компонент имеет также интерфейс ImaMatrix для доступа к созданой матрице.
Функции интерфейса ImaCompositeMatrix


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 если нет матрицы с таким номером