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 не заданы, то они рассчитываются по буферу точек