PureBasic
IsPathEmpty()
Синтаксис
Result = IsPathEmpty()
Описание
Эта функция проверяет, содержит ли текущий Векторный контур какие либо сегменты.
Параметры
Ничего.
Возвращаемое значение
Возвращает не нулевое значение, если текущий Векторный контур пуст, в противном случае 0.
Комментарии
Сегмент Векторного контура, это элемент добавляемый к нему с помощью таких функций как AddPathArc, AddPathBox, AddPathCircle и тд., то есть это линия, прямоугольник, окружность и тд.
После применения различных функций Обводки, Заливки и тд., текущий Векторный контур по умолчанию сбрасывается, и соответственно не будет содержать каких либо сегментов. Это поведение можно изменить с помощью соответствующих флагов этих функций.
Принудительно сбросить текущий Векторный контур можно с помощью функции ResetPath().
Пример
If OpenWindow(0, 0, 0, 400, 200, "VectorDrawing", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
CanvasGadget(0, 0, 0, 400, 200)
If StartVectorDrawing(CanvasVectorOutput(0)) ; Эта команда позволяет начать рисование.
If IsPathEmpty() ; проверяем отсутствие сегментов
Debug "сегментов нет №1" ; здесь их нет.
EndIf
AddPathCircle(100, 100, 75) ; добавим к контуру окружность, то есть сегмент.
If IsPathEmpty() ; снова проверяем отсутствие сегментов
Debug "сегментов нет №2" ; здесь уже есть окружность.
EndIf
VectorSourceColor(RGBA(255, 0, 0, 255))
StrokePath(10, #PB_Path_Preserve) ; обводим контур, но не сбрасываем его!
If IsPathEmpty() ; опять проверяем отсутствие сегментов
Debug "сегментов нет №3" ; здесь всё ещё есть окружность.
EndIf
StrokePath(10) ; обводим контур и он будет сброшен!
If IsPathEmpty() ; опять проверяем отсутствие сегментов
Debug "сегментов нет №4" ; здесь их нет, так как контур сброшен
EndIf
StopVectorDrawing()
EndIf
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
EndIf
См. также
ResetPath(), IsInsidePath(), IsInsideStroke()
Поддерживаемые OS
Все