Index
An extent collects its nodes not by a single list, but by a number of (doubly linked) lists. Currently, 16 lists are used, but this can easily be changed. This feature is used to partition the extents. The 16 lists are called the extent indexes.
Extents are used by the query graph to access the nodes of the graph. In this process, nodes can be “hidden” to queries by being on a extent index non visible by the query scope (see RGG's extent index visibility). Non visible nodes are not visited and “ignored” by the queries, they are not visited at all (thus, efficient to speed up queries). For the RGG model graph, queries use only the seven first indexes by default. The default index usage is:
- 0 to 6: Default visibility - used by default in queries. Only these indexes are visible by default.
- 7: Meta data index.
- 8: Type graph data - used for the multi-scales.
- 9 to 15: Unused indexes - non visible by default.
Note: the index visibility is not used for the display. Thus, nodes on a “non” visible index are still displayed in the 3d view.
Default usage
The extent indexes are defined from 0 to 15. By default most nodes added to the graph are added with the index 0. There are three exceptions:
- The roots of the graphs are added at index 7.
- meta objects: Nodes of the meta graph (e.g. shaders). Added at index 7.
- GUI inserted objects: Nodes inserted from the GUI. Added at index 6 (since GroIMP 2.1.5, they where added to index 7 before) (only the first node is added at index 6. The following ones are added at index 0).
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.
