Objeto SceneGraphicItemList

.html ›› .html ›› .html ››
Parent Previous Next

Objeto SceneGraphicItemList

O Objeto SceneGraphicItem é um objeto que contém a coleção de todos os itens gráficos/visuais do tabuleiro, como os tokens.


O SceneGraphicItemList de um scene pode ser obtido através da propriedade "items" do objeto Scene



Herança

O objeto SceneGraphicItemList herda de SceneBaseObject e possui também todas as suas características.


Características

Além das características herdadas, o objeto SceneGraphicItemList também possui as seguintes características:

Propriedades e atributos

Propriedade

Tipo

Descrição

operador #

Integer

(Somente Leitura) Contem a quantidade de itens gráficos que existem no scene.


Exemplo:

local qtDeItens = #scene.items;


operador []

Objeto SceneGraphicItem

(Somente Leitura) Contem um objeto SceneGraphicItem representando um item gráfico do scene, como um token.


O valor passado dentro do colchete deve ser um número entre 1 a "count".


Exemplo de uso:
local item1 = scene.items[1]; -- Primeiro item
local item2 = scene.items[2];


-- Percorrendo todos os itens gráficos do scene

for i = 1, #scene.items, 1 do

  local umItem = scene.items[i];

end;


count

Integer

(Somente Leitura), equivale ao operador #. Contem a quantidade de itens gráficos que existem no scene.


selection

Array de SceneGraphicItem

(Somente Leitura) Retorna um array (uma tabela lua indexada de 1 a #array) contendo os itens do scene que estão selecionados no momento.




Métodos

Método

Descrição

list:get(index)

Equivalente ao operador [], retorna um SceneGraphicItem representando um item gráfico do scene, como um token.


Parâmetros:

    • index - um número inteiro entre 1 e "count"


Retorno:

Um objeto SceneGraphicItem.


list:enumAtPoint(worldX, worldY [, layer])

Dada uma posição em métrica de mundo, retorna todos os SceneGraphicItem do scene que podem ser encontrados neste ponto (isto é, se o ponto for uma posição dentro do item).


Parâmetros:

    • worldX - Número em métrica de mundo que contem a coordenada X da ponto.
    • worldY - Número em métrica de mundo que contem a coordenada Y do ponto.
    • (OPCIONAL) layer - String contendo uma camada. Se este parâmetro for informado, apenas itens que estiverem na camada informada serão enumeradas por esta função. Se este parâmetro não informado, todos os itens no ponto serão retornados, independente de qual camada pertencer.


Retorno:

Um array (tabela lua com índices de 1 a #tabela) de objetos SceneGraphicItem. Caso nenhum item seja encontrado na posição informada, o array vem vazio.


Observação:

 O array retornado pela função vem ordenado pela posição Z dos itens quando há sobreposição. Isto é, quando um item ocupa o mesmo espaço que outro item ocupa, a função garante que o item que é desenhado mais abaixo apareça antes no array retornado do que o item que é desenhado acima dele.Se um item achado não sobrepor nenhum outro item, sua ordem no array retornado é indefinida (Ordenação Z apenas dos itens em sobreposição).


list:enumInRect(rect [, layer])

Dado um retângulo em métrica de mundo, retorna todos os SceneGraphicItem do scene que sobrepõe ao retângulo (que coincidem, justapõe, que intercedem, etc..)


Parâmetros:

    • rect - Um retângulo em estrutura SceneRect com valores em métrica de mundo.
    • (OPCIONAL) layer - String contendo uma camada. Se este parâmetro for informado, apenas itens que estiverem na camada informada serão enumeradas por esta função. Se este parâmetro não informado, todos os itens no ponto serão retornados, independente de qual camada pertencerem.


Retorno:

Um array (tabela lua com índices de 1 a #tabela) de objetos SceneGraphicItem. Caso nenhum item seja encontrado no retângulo informado, o array vem vazio.


Observação:

 O array retornado pela função vem ordenado pela posição Z dos itens quando há sobreposição. Isto é, quando um item ocupa o mesmo espaço que outro item ocupa, a função garante que o item que é desenhado mais abaixo apareça antes no array retornado do que o item que é desenhado acima dele.Se um item achado não sobrepor nenhum outro item, sua ordem no array retornado é indefinida (Ordenação Z apenas dos itens em sobreposição).


list:itemAtPoint(worldX, worldY [, layer])

Dada uma posição em métrica de mundo, retorna um SceneGraphicItem do scene que se encontra neste ponto.


Parâmetros:

    • worldX - Número em métrica de mundo que contem a coordenada X da ponto.
    • worldY - Número em métrica de mundo que contem a coordenada Y do ponto.
    • (OPCIONAL) layer - String contendo uma camada. Se este parâmetro for informado, apenas itens que estiverem na camada informada serão retornados por esta função. Se este parâmetro não informado, todos os itens no ponto poderão ser retornados, independente de qual camada pertencerem.


Retorno:

    • Se houver algum item na posição informada, retorna um SceneGraphicItem, aquele mais acima na ordem Z, isto é, o que é desenhado acima dos outros.
    • Se não houver item na posição informada, retorna nil.


list:clearSelection()

Deseleciona todos os itens que estavam na lista de seleção do usuário.


list:addToken([layer])

Adiciona um novo Token ao tabuleiro.


Parâmetros:

  • (OPCIONAL) layer - Define em qual camada o novo token deve aparecer. Pode conter "background", "objects" ou "tokens".


Retorno:


list:addUserDrawing([layer])

Adiciona um novo UserDrawing ao tabuleiro.


Parâmetros:

  • (OPCIONAL) layer - Define em qual camada o novo user drawing deve aparecer. Pode conter "background", "objects" ou "tokens".


Retorno:




Eventos

Nome do evento

Descrição

onItemAdded

Evento invocado quando um item for adicionado ao scene, seja porque acabou de ser criado ou porque estava invisível e se tornou visível agora.


Parâmetros:



onItemRemoved

Evento invocado quando um item for removido do scene, seja porque foi destruído ou porque se tornou invisível.


Parâmetros:


onItemSelected

Evento invocado quando um item for adicionado à seleção de itens do usuário.


Parâmetros:


onItemDeselected

Evento invocado quando um item for removido da seleção de itens do usuário.


Parâmetros:

  • Item - Um objeto SceneGraphicItem representando o item que foi removido da seleção.


onItemLayerChange

Evento invocado quando a camada de um item for alterada.


Parâmetros:

  • Item - Um objeto SceneGraphicItem representando o item que teve a propriedade "layer" alterada.



Exemplos

Exemplo 1 - Um plugin que descobre em qual item do scene o usuário clicou


require("scene.lua");

 

SceneLib.registerPlugin(

    function (scene, attachment)           

   

        -- Manipular o evento onMouseUp do Viewport afim de detectar o click do mouse      

        scene.viewport.onMouseUp =

            function(event)

                -- Converter para métrica de mundo a posição do clique

                local wx, wy = scene.viewport:screenToWorld(event.x, event.y);

               

                -- Localizar o objeto mais acima da posição clicada

                local o = scene.items:itemAtPoint(wx, wy);

               

                -- Exibir uma mensagem

                if o ~= nil then

                    showMessage("Clique em um objeto");

                else

                    showMessage("Clique em nada");

                end;

            end;

               

    end);

Created with the Personal Edition of HelpNDoc: Create Professional CHM Help Files with HelpNDoc's Easy-to-Use Tool