User Tools

Site Tools


01_user_documentation:06_graph:06_extent:02_index

This is an old revision of the document!


Index

An extent collects its nodes not by a single list, but by a number of (doubly linked) lists. Currently, eight lists are used, but this can easily be changed. This feature is used to partition the extents. The eight lists are called the extent indexes.

The extent indexes are defined from 0 to 7. By default most nodes added to the graph are added with the index 0. There are two exceptions (by default. You can manually set index of Node):

  1. meta objects: Nodes of the meta graph. Added at index 7.
  2. GUI inserted objects: Nodes inserted from the GUI. Added at index 6 (since GroIMP 2.1.5, they where added to index 7 before).

The most common example of extent index is the meta-graph. Each project in GroIMP includes a meta-graph with at least one node per compiled file in the project. Yet, these Nodes are not returned by default in XL queries. The reason is that, they were added to an invisible (by default) extent index.

Note: before GroIMP version 2.1.5, all objects added through the GUI>objects>insert> … where also added on the extent index 7. Thus, not queriable by default. E.g. If you inserted a Plane in the scene, it was not reachable by default queries. In GroIMP version 2.1.5 their extent index have been changed to 6.

An index is visible, if it is included in the queries. A Node can be added in the scene with a geometrical representation, and still be in an invisible index. By default only the 7th first indexes are visible (0 to 6). The last index (7) is not visible.

It is possible to change the index visibility in a project with the method: setVisibleExtents(int ) on the RGGGraph.

Example

For instance, let's consider the following method in an empty project. Notice that we set the visible extent value to 1:

public void run(){
de.grogra.rgg.model.Runtime.INSTANCE.currentGraph().setVisibleExtents(1);
println((*Node*));
}

The method output:

de.grogra.rgg.RGGRoot[id=99]@2e86af42
de.grogra.rgg.Axiom[id=100]@59f1c976

Only the “normal” nodes are visible.

Let's change the visible extent value to 255. Now the method output:

de.grogra.graph.impl.Node[id=0]@5add4889
de.grogra.graph.impl.Node[id=1]@4f690d55
de.grogra.rgg.RGGRoot[id=103]@621de1a6
Model[id=101]@331e288e
parameters[id=102]@cd97a89
de.grogra.rgg.Axiom[id=104]@4cface1f

Some additional nodes are now visible:

  • the roots (id 0 and 1). id 0 is the root of the main graph. id 1 is the root of the meta graph.
  • the nodes from the meta graph: the compiled version of the files: Model, and parameters.

Notice that:

  • Once the setVisibleExtents is called. The value remains until a new value is set.
  • setVisibleExtents use as parameter the decimal value of a binary number of 8 values where each 1 mean that the index is visible, the 0 to 7 index visibility are defined from left to right. E.g. to have all indexes visible, we use 11111111 (eight 1), which is equal in decimal to 255. To have all indexes visible except for the 1rst one, we use 11111110 (=254). The default value is 01111111 (=127).
01_user_documentation/06_graph/06_extent/02_index.1760341301.txt.gz · Last modified: 2025/10/13 09:41 by gaetan