Objeto SceneGraphicItemList¶
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 o**bjeto 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: Objeto SceneToken representando o novo token. |
| 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: Objeto SceneUserDrawing representando o novo desenho de usuário. |
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: Item - Um objeto SceneGraphicItem representando o item que foi adicionado. |
| onItemRemoved | Evento invocado quando um item for removido do scene, seja porque foi destruído ou porque se tornou invisível. Parâmetros: Item - Um objeto SceneGraphicItem representando o item que foi removido. |
| onItemSelected | Evento invocado quando um item for adicionado à seleção de itens do usuário. Parâmetros: Item - Um objeto SceneGraphicItem representando o item que foi selecionado. |
| 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