Skip to main content
`Ctrl`+`K`

# Package structure

The `silx.gui.plot3d` package provides 3D visualisation widgets. This package is structured as follows.

## Widget-level API

Widgets are available as modules of the `silx.gui.plot3d` packages.

The `Plot3DWidget` module provides the OpenGL canvas where the scene is rendered. The `Plot3DWindow` module provides a `QMainWindow` with a `Plot3DWindow` as its central widget and toolbars: `InteractiveModeToolBar`, `ViewpointToolBar` and `OutputToolBar`. `QAction` that can be associated with a `Plot3DWidget` are defined in the `actions` package. Toolbars and tool buttons are available in `tools` package.

The `ScalarFieldView` module defines the `ScalarFieldView` widget that displays iso-surfaces of a 3D scalar data set and the associated classes. The `SFViewParamTree` module defines a `SFViewParamTree.TreeView` widget that can be attached to a `ScalarFieldView` to control the display.

## OpenGL scene API

This API is NOT stable. Widgets of `silx.gui.plot3d` are based on the following sub-packages:

- `scene`: Provides a hierarchical scene structure handling rendering and interaction.

- `utils`: Miscellaneous supporting modules.

- `silx.gui._glutils`: Loads PyOpenGL and provides classes to handle OpenGL resources.

- `scene`
  - `axes`: Bounding Box with axes ticks and labels
  - `camera`: Projection management classes
  - `core`: Base class of the scene nodes
  - `cutplane`: Cutting plane primitive
  - `event`: Scene event system
  - `function`: OpenGL shader functions
  - `interaction`: User interaction implementation
  - `primitives`: Base rendering primitives
  - `text`: Text field rendering primitives
  - `transform`: Transformation matrix system
  - `utils`: Miscellaneous
  - `viewport`: Root of a scene tree
  - `window`: On-screen window
- `utils`
  - `mng`
- `_glutils`
  - `_glutils.gl`
  - Utility functions
  - `Program`
  - `Texture`
  - `FramebufferTexture`
  - Vertex Buffer
  - `font`