Seleção

As formas de seleção se combinam com a seleção atual (substituir, adicionar, subtrair, intersectar). A máscara de seleção pode ser lida e escrita. (19 funções)

app.canReselect() — lê

Indica se app.reselect() tem uma seleção anterior para restaurar.

Retorna (boolean): true se houver.

app.deselect() — altera

Limpa a seleção (Seleção ▸ Desmarcar); os comandos de desenho passam então a pintar em qualquer lugar. app.reselect() a traz de volta.

Não retorna nada.

app.enterQuickMask() — altera, desfazível

Liga a máscara rápida: a seleção vira uma máscara que você pinta, e nada fica selecionado. Enquanto está ligada, as funções de desenho pintam a máscara quando você passa "quickMask" como layerId e frameId (qualquer cor adiciona, tinta transparente remove); todo o resto que mudaria o sprite é recusado até app.exitQuickMask().

Não retorna nada.

app.exitQuickMask() — altera, desfazível

Desliga a máscara rápida: cada pixel da máscara com metade da opacidade ou mais vira a seleção.

Não retorna nada.

app.getSelection() — lê

A seleção atual como { x, y, width, height, mask }, ou nil se nada estiver selecionado. mask é uma lista plana de 0/1 sobre os limites (em ordem de linhas: (px, py) no índice py*width + px + 1), incluída quando os limites contêm no máximo 262144 pixels; para seleções maiores, leia-a em partes com app.getSelectionMask.

Retorna (table): Tabela de seleção ou nil.

app.getSelectionBounds() — lê

O { x, y, width, height } da seleção atual, ou nil se nada estiver selecionado.

Retorna (table): { x, y, width, height } ou nil.

app.getSelectionMask(x, y, width, height) — lê

Quais pixels de um retângulo em coordenadas do sprite estão selecionados, como uma lista plana de 0/1 (em ordem de linhas: (px, py) no índice py*width + px + 1). Tudo 0 quando nada está selecionado. No máximo 262144 pixels por chamada.

  • x (number)
  • y (number)
  • width (number)
  • height (number)

Retorna (table): Lista plana de 0/1.

app.isSelected(x, y) — lê

Indica se o pixel (x, y) do sprite está dentro da seleção atual (false quando nada está selecionado).

  • x (number)
  • y (number)

Retorna (boolean): true se estiver selecionado.

app.magicWand(layerId, frameId, points, opts?) — altera, desfazível

Seleciona os pixels que correspondem à cor sob cada ponto em uma camada, com todas as regiões em uma única seleção, exatamente como a varinha mágica da interface (um clique ou um arraste).

  • layerId (string)
  • frameId (string)
  • points (table) — Lista de pontos { x = n, y = n } (ou { n, n }), de 1 a 1024: { { x = 3, y = 4 } } seleciona uma região, como um clique; com vários, a região de cada ponto entra em uma única seleção, como um arraste.
  • opts (table, opcional)
    • mode (SelectionCombineMode: "replace" | "add" | "subtract" | "intersect"; padrão "replace") — Como a nova forma se combina com a seleção atual.
    • tolerance (integer 0–255; padrão context.wandTolerance) — A maior diferença de cor por canal que ainda conta como correspondência.
    • contiguous (boolean; padrão context.wandFillMode (true para o modo contíguo do contexto, false para global)) — Apenas a região conectada (true) ou todos os pixels correspondentes na tela (false).
    • diagonal (boolean; padrão context.wandDiagonal) — Somente contíguo: também se espalha para vizinhos diagonais (8 conectados), então a região vaza por linhas diagonais de 1px.
    • stopAtGrid (boolean; padrão context.wandStopAtGrid) — Limita a região à célula da grade em que o clique cai (a célula de uma grade isométrica é o losango que ela desenha, com os pixels de linha das suas duas bordas superiores).

Não retorna nada.

app.modifySelection(op, amount, opts?) — altera, desfazível

Expande, contrai ou contorna a seleção, recortada pela tela, exatamente como Seleção > Modificar. A borda da tela conta como a borda da seleção.

  • op (SelectionModifyOp: "expand" | "contract" | "border")
  • amount (number) — Pixels, de 1 a 256.
  • opts (table, opcional)
    • shape (SelectionModifyShape: "circle" | "square"; padrão "circle") — Como a distância até a borda é medida.

Não retorna nada.

app.reselect() — altera

Restaura a seleção não vazia mais recente (Seleção ▸ Selecionar novamente). Lança um erro se não houver nenhuma; verifique com app.canReselect().

Não retorna nada.

app.selectAll() — altera, desfazível

Seleciona a tela inteira.

Não retorna nada.

app.selectEllipse(x0, y0, x1, y1, opts?) — altera, desfazível

Seleciona a elipse inscrita na caixa definida pelos dois cantos, exatamente como a ferramenta de seleção elíptica da interface.

  • x0 (number) — Primeiro canto.
  • y0 (number)
  • x1 (number) — Canto oposto (inclusivo).
  • y1 (number)
  • opts (table, opcional)
    • mode (SelectionCombineMode: "replace" | "add" | "subtract" | "intersect"; padrão "replace") — Como a nova forma se combina com a seleção atual.

Não retorna nada.

app.selectGridCells(x0, y0, x1, y1, opts?) — altera, desfazível

Seleciona células inteiras da grade do sprite (retangular, isométrica ou hexagonal): cada célula que contém um pixel da caixa entre os dois pontos, exatamente como um clique duplo (e arrasto) com uma ferramenta de seleção da interface.

  • x0 (number) — Um pixel na primeira célula.
  • y0 (number)
  • x1 (number) — Um pixel na última célula (o mesmo ponto de novo seleciona uma única célula).
  • y1 (number)
  • opts (table, opcional)
    • mode (SelectionCombineMode: "replace" | "add" | "subtract" | "intersect"; padrão "replace") — Como a nova forma se combina com a seleção atual.

Não retorna nada.

app.selectInverse() — altera, desfazível

Inverte a seleção atual dentro dos limites da tela.

Não retorna nada.

app.selectLayerPixels(layerId, frameId, opts?) — altera, desfazível

Seleciona os pixels pintados (ou, com transparent = true, não pintados) de uma camada em um quadro, exatamente como Seleção > Selecionar opacos / Selecionar transparentes e Alt+clique em uma camada da linha do tempo.

  • layerId (string) — Um grupo seleciona os pixels de todas as camadas dentro dele.
  • frameId (string)
  • opts (table, opcional)
    • mode (SelectionCombineMode: "replace" | "add" | "subtract" | "intersect"; padrão "replace") — Como a nova forma se combina com a seleção atual.
    • transparent (boolean; padrão false) — Seleciona os pixels sem tinta em vez dos pintados.

Não retorna nada.

app.selectPolygon(vertices, opts?) — altera, desfazível

Seleciona o interior (e o contorno) do polígono fechado que passa pelos vértices, exatamente como o laço / laço poligonal da interface.

  • vertices (table) — Lista de vértices { x = n, y = n } (ou { n, n }); o polígono se fecha de volta ao primeiro automaticamente. Cobre tanto o laço quanto o laço poligonal.
  • opts (table, opcional)
    • mode (SelectionCombineMode: "replace" | "add" | "subtract" | "intersect"; padrão "replace") — Como a nova forma se combina com a seleção atual.

Não retorna nada.

app.selectRectangle(x0, y0, x1, y1, opts?) — altera, desfazível

Seleciona o retângulo definido pelos dois cantos, exatamente como a ferramenta de seleção retangular da interface (radius arredonda seus cantos).

  • x0 (number) — Primeiro canto.
  • y0 (number)
  • x1 (number) — Canto oposto (inclusivo).
  • y1 (number)
  • opts (table, opcional)
    • mode (SelectionCombineMode: "replace" | "add" | "subtract" | "intersect"; padrão "replace") — Como a nova forma se combina com a seleção atual.
    • radius (an integer 0–1024 for every corner, or a list of four { topLeft, topRight, bottomRight, bottomLeft }; padrão context.selectionCornerRadius) — Arredonda os cantos, em pixels (0 = reto): um raio para os quatro, ou um por canto no sentido horário a partir do canto superior esquerdo. Cada um é limitado à metade do lado menor.

Não retorna nada.

app.setSelection(x, y, width, height, mask?) — altera, desfazível

Substitui a seleção por um retângulo, ou por qualquer forma via mask.

  • x (number)
  • y (number)
  • width (number)
  • height (number)
  • mask (table, opcional) — Lista plana de 0/1 (width*height, em ordem de linhas, o formato que app.getSelection retorna) que seleciona apenas esses pixels do retângulo; omitida = o retângulo inteiro.

Não retorna nada.

Em Markdown: selection.md.