The NiCE Geometry Editor provides users of NiCEClient a method for viewing and editing application-specific input data in the form of 3D volume meshes. Editing is performed by means of constructive solid geometry, as is used in many CAD and drafting tools. The Geometry Editor integrates with NiCE to enable users to build geometry data inside the NiCEClient window, as well as to generate output formats to be served as input data for processes launched with NiCECore.
The user must be able to perform the following from the Geometry Editor's interface.
In order to integrate with NiCECore, NiCEClient, and third party applications, the geometry engine must have the following capability.
The Geometry Editor GUI is opened from within the NiCEClient environment. Within this environment are three dockable panels—the Viewport panel, the Object List panel, and the Transform panel. Each of these are used to manipulate the CSG tree, i.e. create shapes, relate them with set operations, and edit their transformation matrix.
A variable-quality rendering of the CSG tree is displayed in the Viewport panel, along with a Mini-Axis Widget for determining the orientation of the virtual camera. With the mouse, the user can pan and rotate the camera's perspective and select certain types of primitives and groups. Right-clicking will display a context menu with additional features for quick access.
The Object List panel features a representation of the current CSG tree as a SWT Tree or JFace TreeViewer. Leaf nodes in this tree list correspond to primitives, while parent branches represent set operations applied to their child nodes.
"I hate meshes. I cannot believe how hard this is. Geometry is hard."
—David Baraff, Senior Research Scientist, Pixar Animation Studios