O Rocs em Resumo

Cada sessão do Rocs é um projecto: ao abrir o Rocs, é criado um projecto vazio e podê-lo-á substituir se carregar ou importar outro projecto. Como tal, um projecto em si consiste nos documentos de grafos, nos programas/algoritmos e num registo.

Documentos do Grafo

Um documento de grafo representa o conteúdo de um quadro no editor de grafos. Contém informações sobre os tipos de nós e arestas definidos pelo utilizador, as suas propriedades e os nós e arestas já criados. Isto é, o Rocs compreende o conjunto de todos os nós e arestas de um documento de grafo para formar um grafo (não necessariamente ligado). Tudo o que pertence ao documento de um grafo fica acessível ao motor de programação através do objecto global Document.

Tipos de Arestas

Em alguns cenários, os grafos consistem em diversos tipos de arestas (p.ex., um grafo não-direccional mais as arestas da árvore calculadas por um algoritmo de pesquisa primeiro-em-largura) que deverá ser tratado e apresentado de forma diferente. Para tal, para além de um tipo de aresta predefinido, poderá definir outros tipos de arestas arbitrários. Cada tipo de aresta tem a sua representação visual individual, propriedades dinâmicas e poderá ser configurado como direccionado ou não-direccionado. A interface de programação oferece métodos de conveniência para aceder de forma específica apenas às arestas de determinados tipos.

Tipos de Nós

De forma análoga aos tipos de arestas, poderá definir diferentes tipos de nós de um grafo (p.ex., para dar alguns papéis especiais aos nós). Cada tipo de nó tem a sua própria representação visual e propriedades dinâmicas.

Propriedades

Cada elemento (nó ou aresta) poderá ter propriedades. Essas propriedades deverão ser configuradas no tipo de nó ou aresta correspondente. As propriedades são identificadas e acedidas pelos seus nomes e poderão conter qualquer valor. Para criar novas propriedades ou alterar as existentes, use a barra lateral Tipos de Elementos e use o botão Propriedades para abrir a janela de propriedades.

Também poderá usar o motor de programação para aceder às propriedades registadas e alterar os seus valores. No exemplo que se segue, assume-se que a propriedade "peso" está registada para o tipo de aresta predefinido.

var nos = Document.nodes()
for (var i = 0; i < nos.length; ++i){
    nos[i].peso = i;
}
for (var i = 0; i < nos.length; ++i){
    Console.log("peso do nó " + i + ": " + nos[i].peso);
}