//********************************************************************
// Оконтуривание матриц и растров
//********************************************************************
// Класс однородных областей в матрице
typedef struct MTRCLASS
{
double Min; // Диапазон значений элементов матрицы, принадлежащих классу (включая Min, исключая Max)
double Max; // для матрицы высот - диапазон высот
// для матрицы качеств - диапазон значений
// для палитрового растра - диапазон индексов
// для RGB растра - яркость - среднее по R,G,B
int Excode; // Код создаваемого объекта
int Color; // Цвет отображения полигонов
int SemanticNumber; // Код числовой семантики в которую записывается номер класса (если 0, то не пишется)
// (в семантику заносится номер класса начиная с 1)
int SemanticMin; // Код числовой семантики для записи Min класса (если 0, то не пишется)
int SemanticMax; // Код числовой семантики для записи Max класса (если 0, то не пишется)
int SemanticColor; // Код числовой семантики для записи цвета отображения полигонов класса (если 0, то не пишется)
}
MTRCLASS;
// Преобразование матрицы высот в вектор
// hmap - основная карта
// hsit - векторная карта в которую пишутся объекты
// mtrnum - номер оконтуриваемой матрицы высот, добавленной к карте
// isfilter - признак фильтрации точек, лежащих на одной прямой
// hselect - содержит созданные объекты
// если = 0, то не заполняется, ненулевое значение сильно замедляет обработку
// classes - распознаваемые классы
// classcount - количество классов
// border - объект, ограничивающий область преобразования матрицы в вектор
// iscuthole - признак вырезания подобъектов
// если = 0, то внутренний объект всегда имеет больший номер (Key), чем внешний
// handle - идентификатор окна диалога, которому посылается cообщение 0x0581
// в wParam - процент выполненной обработки
// в lParam - адрес строки с названием выполняемого этапа
// Если процесс должен быть принудительно завершен, в ответ
// должно вернуться значение 0x0581.
// Если Handle равно нулю - сообщения не посылаются.
// При ошибке возвращает 0
long int MTREXPORT mtrMtwToVector(HMAP hmap, HSITE hsit, long int mtrnum, long int isfilter,
HSELECT hselect, MTRCLASS *classes, long int classcount, HOBJ border,
long int iscuthole, HMESSAGE handle);
// Преобразование матрицы качеств в вектор
// hmap - основная карта
// hsit - векторная карта в которую пишутся объекты
// mtqnum - номер исходной матрицы качеств, добавленной к карте
// isfilter - признак фильтрации точек, лежащих на одной прямой (0..1)
// hselect - содержит созданные объекты (если = 0, то не заполняется)
// classes - распознаваемые классы
// classcount - количество классов
// border - объект, ограничивающий область преобразования матрицы в вектор
// iscuthole - признак вырезания подобъектов
// если = 0, то внутренний объект всегда имеет больший номер (Key), чем внешний
// handle - идентификатор окна диалога, которому посылается cообщение 0x0581
// в wParam - процент выполненной обработки
// в lParam - адрес строки с названием выполняемого этапа
// Если процесс должен быть принудительно завершен, в ответ
// должно вернуться значение 0x0581.
// Если Handle равно нулю - сообщения не посылаются.
// При ошибке возвращает 0
long int MTREXPORT mtrMtqToVector(HMAP hmap, HSITE hsit, long int mtqnum, long int isfilter,
HSELECT hselect, MTRCLASS *classes, long int classcount, HOBJ border,
long int iscuthole, HMESSAGE handle);
// Преобразование растра в вектор
// hmap - основная карта
// hsit - векторная карта в которую пишутся объекты
// rstnum - номер исходного растра, добавленного к карте
// isfilter - признак фильтрации точек, лежащих на одной прямой (0..1)
// hselect - содержит созданные объекты (если = 0, то не заполняется)
// classes - распознаваемые классы
// classcount - количество классов
// border - объект, ограничивающий область преобразования растра в вектор
// iscuthole - признак вырезания подобъектов
// если = 0, то внутренний объект всегда имеет больший номер (Key), чем внешний
// handle - идентификатор окна диалога, которому посылается cообщение 0x0581
// в wParam - процент выполненной обработки
// в lParam - адрес строки с названием выполняемого этапа
// Если процесс должен быть принудительно завершен, в ответ
// должно вернуться значение 0x0581.
// Если Handle равно нулю - сообщения не посылаются.
// При ошибке возвращает 0
long int MTREXPORT mtrRstToVector(HMAP hmap, HSITE hsit, long int rstnum, long int isfilter,
HSELECT hselect, MTRCLASS *classes, long int classcount, HOBJ border,
long int iscuthole, HMESSAGE handle);
|