Package com.j3d.engine.scene


package com.j3d.engine.scene
Package containing every class related to the actual viewport scene the user sees.

Da Scene

The entire idea is that, everything should be made up from smaller pieces before constructing the entire huge piece. Which ties into the idea of a SceneObject. In the simplest terms, it represents any node that can participate within the scene.

All SceneObjects are extremely fundamental in that, many subsystems have to explicit use, check or apply them multiple times. These subsystems are: properties, the entirety of the command line interface.

Node Structure

The "simplest" set of similar SceneObjects are GObject(s) (Graphics Objects), which store state about simple shapes/geometry that the user can edit directly. E.g. a point, a line, a triangle, (future) a polyline, etc... GObjects tend to reference each other, say a GTri references 3 GLine + 3 GPoint.

The next, is a container for multiple GObjects, being a Thing. This does have extra logic such as transforming multiple GObjects in unison, but other than that no GObject can actually be drawn or interacted with unless it is part of a parent Thing

And lastly, a Layer hodls multiple Things. Layers at the moment are really for organisation and just handling multiple Things at once. It's a glorified ArrayList

Package Structure

Classes

  • SceneManager, the most important class to even think about interacting with anything related to the scene. It holds all the state about the scene being: the entire scene graph, the history, and more. The main instance link any other single-instance property should be accessed via StaticRefs
  • Camera, which controls the viewpoint and projection of the 3D scene, determining what is visible to the user. Similar to SceneManager, the user's main camera can be accessed via StaticRefs
  • SceneObject, base interface which all scene elements implement to participate i n the 3D environment.

Sub-packages

  • com.j3d.engine.scene.nodes contains all the classes and interfaces relating to the scene graph's fundamental building blocks, including Things, Layers, and various GObjects.
  • com.j3d.engine.scene.find contains everything you could possibly need to find a specific instance without the scene graph without having to traverse it yourself.
  • com.j3d.engine.scene.copy contains the classes responsible for copy operations relating to GObjects in particular for CTRL+C and CTRL+V
  • com.j3d.engine.scene.draw contains classes and interfaces responsible for the actual rendering and drawing of scene elements onto the display.

Author:
Lehlogonolo Poole
See Also: