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

Все

<- IsInsideStroke() - Оглавление VectorDrawing - MovePathCursor()->