User Tools

Site Tools


groimp-platform:3d:visualization

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
groimp-platform:3d:visualization [2024/11/06 16:37] – [Project graph visitation] gaetangroimp-platform:3d:visualization [2024/11/06 16:49] (current) – [Project graph visitation] gaetan
Line 7: Line 7:
 ===== Project graph visitation ===== ===== Project graph visitation =====
  
-To be displayed in the 3d scene, the project graph is visited by a DisplayVisitor (whose most common implementations are WFVisitor for the Wireframe view, and GLVisitor for the OpenGL 1 view). From the root, each Node with a **Successor** or **Branch** edge is visited. All nodes connected with other types of edges are ignored.+To be displayed in the 3d scene, the project graph is visited by a **DisplayVisitor** (whose most common implementations are WFVisitor for the Wireframe view, and GLVisitor for the OpenGL 1 view). From the root, each Node with a **Successor** or **Branch** edge is visited. All nodes connected with other types of edges are ignored.
  
-Additionally, to impact the 3d display nodes needs to extends Null (de.grogra.imp3d.objects.Null), which represent the Nodes with 3d transformation. Each Null object have its own local transformation (could be null).+Additionally, to impact the 3d display nodes needs to extends **Null** (de.grogra.imp3d.objects.Null), which represent the Nodes with 3d transformation. Each **Null** object have its own local transformation (could be null).
 The DisplayVisitor goes through Nodes stacking their local transformation. Thus, the global transformation of an Object in the 3d scene, is the combination of all local transformations of all its parents (in the successor/branch sense). The DisplayVisitor goes through Nodes stacking their local transformation. Thus, the global transformation of an Object in the 3d scene, is the combination of all local transformations of all its parents (in the successor/branch sense).
 +
 +All GroIMP **module** extends **Null**.
  
 See more: See more:
   * [[3d-guide:view_manipulations#change_the_default_display| Change the 3d display]]   * [[3d-guide:view_manipulations#change_the_default_display| Change the 3d display]]
   * [[3d-guide:view_manipulations#navigate_in_the_scene|Navigate in the 3d scene]]   * [[3d-guide:view_manipulations#navigate_in_the_scene|Navigate in the 3d scene]]
 +  * [[groimp-platform:visit-resolution|Reduce the display visitation time using the resolution index]]
 ===== Instantiation rules ===== ===== Instantiation rules =====
  
-If a Node have a [[tutorials:rgg-code-structure#Instantiation|instantiation rule]], it is added before its local transformation. E.g. the following code display a Sphere, then a Cylinder+If a Node have a [[tutorials:rgg-code-structure#Instantiation|instantiation rule]], it is added before its local transformation. E.g. the following code display a Sphere, then a Cylinder.
  
 <code java> <code java>
 module A extends Cylinder ==> Sphere; module A extends Cylinder ==> Sphere;
 </code> </code>
 +
 +Produced geometry:
 +
 +{{:groimp-platform:3d:3dview_inst1.png?200|}}
 +
  
 But instantiation rules are not included in the graph and do not modify the stack of local transformation.  But instantiation rules are not included in the graph and do not modify the stack of local transformation. 
Line 31: Line 39:
 module A ==> Cylinder Sphere; module A ==> Cylinder Sphere;
 </code> </code>
 +
 +Produced geometry:
 +
 +{{:groimp-platform:3d:3dview_inst2.png?200|}}
groimp-platform/3d/visualization.1730907437.txt.gz · Last modified: 2024/11/06 16:37 by gaetan