MapplMath.BuildPolygonCrossLinesInt
Модуль: MapplMath
Построить массив горизонтальных сечений полигона
Объявление
function BuildPolygonCrossLinesInt(pBuf: PPoint; pCounts: PInteger;
SubObjectCount: integer; Delta: double; var LargestSubObject: integer;
var PolygonCrossLines: TArrayPolygonCrossLines;
var MinX, MaxX, MinY, MaxY: integer; ClipRect: TRect;
soLevelMaxCount: integer = POLYGON_LEVEL_LABELS_COUNT;
soMinHeight: integer = -1; soLevelMinStep: integer = -1;
soLevelMaxStep: integer = -1; CrossLineMinLength: double = 0;
flOnlyInLargestSubObject: boolean = false;
flOnlyLongestCrossLineForLevel: boolean = true): integer;
Параметры
pBuf
- указатель на буфер точек полигона
pCounts
- указатель на буфер количества точек в каждом подобъекте полигона
SubObjectCount
- количество подобъектов
Delta
- погрешность вычислений
LargestSubObject
- индекс максимального объекта по сумме габаритов (возвращается, если flOnlyInLargestSubObject=true)
PolygonCrossLines
- массив секущих сечений полигона
MinX
- минимальное значение координат точек полигона по горизонтали (по умолчанию 1)
MaxX
- максимальное значение координат точек полигона по горизонтали (по умолчанию -1)
MinY
- минимальное значение координат точек полигона по вертикали (по умолчанию 1)
MaxY
- максимальное значение координат точек полигона по вертикали (по умолчанию -1)
ClipRect
- не используется
soLevelMaxCount
- максимально число сечений
soMinHeight
- максимальная высота подобъекта для построения сечений (если параметр > 0, то для объектов с высотой меньше его сечения не делаются, по умолчанию -1)
soLevelMinStep
- минимальный размер шага построения сечений (если < 0, то не учитывается, по умолчанию -1)
soLevelMaxStep
- максимальный размер шага построения сечений (если < 0, то не учитывается, по умолчанию -1)
CrossLineMinLength
- минимальная длина сечения, по умолчанию 0
flOnlyInLargestSubObject
- флаг сечения максимального объекта по сумме габаритов
flOnlyLongestCrossLineForLevel
- флаг выбора сечения максимальной длины для каждого уровня (по умолчанию true)
Описание
Если значения MinX,MinY,MaxX,MaxY не заданы, то они рассчитываются по буферу точек