sas.qtgui.GL package¶
Submodules¶
sas.qtgui.GL.color module¶
- class sas.qtgui.GL.color.ColorMap(colormap_name='rainbow', min_value=0.0, max_value=1.0)¶
Bases:
object- vertex_coloring(values: ndarray)¶
Evaluate the color map and return a ColorSpecification object
- class sas.qtgui.GL.color.ColorSpecification(method: ColorSpecificationMethod, data: ndarray)¶
Bases:
objectSpecification of how to colour an object, and the data needed to do so
- data: ndarray¶
- method: ColorSpecificationMethod¶
- class sas.qtgui.GL.color.ColorSpecificationMethod(*values)¶
Bases:
EnumSpecifies how to colour an object
- BY_COMPONENT = 2¶
- BY_VERTEX = 3¶
- UNIFORM = 1¶
- sas.qtgui.GL.color.edge_coloring(data: Sequence[Sequence[float] | ndarray]) ColorSpecification¶
Create a ColorSpecification for colouring each edge within an object a single colour
- sas.qtgui.GL.color.mesh_coloring(data: Sequence[Sequence[float] | ndarray]) ColorSpecification¶
Create a ColorSpecification for colouring each mesh within an object a single colour
- sas.qtgui.GL.color.uniform_coloring(r, g, b, alpha=1.0)¶
Create a ColorSpecification for colouring with a single colour
- sas.qtgui.GL.color.vertex_coloring(data: ndarray) ColorSpecification¶
Create a ColorSpecification for using vertex colouring
sas.qtgui.GL.cone module¶
- class sas.qtgui.GL.cone.Cone(n: int = 20, colors: ColorSpecification | None = None, edge_colors: ColorSpecification | None = None)¶
Bases:
FullModelGraphics primitive: Radius 1, Height 2 cone “centred” at (0,0,0)
- static cone_base_triangles(n) list[tuple[int, int, int]]¶
Helper function: Triangles in base the cone primitive
- static cone_edges(n)¶
Helper function: Edges of the cone primitive
- static cone_tip_triangles(n) list[tuple[int, int, int]]¶
Helper function: Triangles in tip of the cone primitive
- static cone_triangles(n) list[list[tuple[int, int, int]]]¶
Helper function: The two separate meshes for triangles of the cone primitive
- static cone_vertices(n) list[tuple[float, float, float]]¶
Helper function: Vertices of the cone primitive
sas.qtgui.GL.cube module¶
- class sas.qtgui.GL.cube.Cube(colors: ColorSpecification | None = None, edge_colors: ColorSpecification | None = None)¶
Bases:
FullModelUnit cube centred at 0,0,0
- cube_edges = [(0, 1), (1, 5), (5, 4), (4, 0), (2, 3), (3, 7), (7, 6), (6, 2), (1, 3), (5, 7), (4, 6), (0, 2)]¶
- cube_triangles = [[(1, 2, 3), (1, 0, 2)], [(0, 6, 2), (0, 4, 6)], [(4, 7, 6), (4, 5, 7)], [(5, 3, 7), (5, 1, 3)], [(2, 7, 3), (2, 6, 7)], [(1, 4, 0), (1, 5, 4)]]¶
- cube_vertices = [(-0.5, -0.5, -0.5), (-0.5, -0.5, 0.5), (-0.5, 0.5, -0.5), (-0.5, 0.5, 0.5), (0.5, -0.5, -0.5), (0.5, -0.5, 0.5), (0.5, 0.5, -0.5), (0.5, 0.5, 0.5)]¶
sas.qtgui.GL.cylinder module¶
- class sas.qtgui.GL.cylinder.Cylinder(n: int = 20, colors: ColorSpecification | None = None, edge_colors: ColorSpecification | None = None)¶
Bases:
FullModelGraphics primitive: Radius 1, Height 2 cone “centred” at (0,0,0)
- static cylinder_edges(n)¶
Helper function: Edges of the cylinder primitive
- static cylinder_face_triangles(n, offset) list[tuple[int, int, int]]¶
Helper function: Faces of the ends of cylinder primitive
- static cylinder_side_triangles(n) list[tuple[int, int, int]]¶
Helper function: Faces of the sides of the cylinder primitive
- static cylinder_triangles(n) list[list[tuple[int, int, int]]]¶
Helper function: All faces of the cylinder primitive
- static cylinder_vertices(n) list[tuple[float, float, float]]¶
Helper function: Vertices of the cylinder primitive
sas.qtgui.GL.icosahedron module¶
- class sas.qtgui.GL.icosahedron.Icosahedron(colors: ColorSpecification | None = None, edge_colors: ColorSpecification | None = None)¶
Bases:
FullModelIcosahedron centred at 0,0,0
- ico_edges = [(0, 1), (0, 2), (0, 3), (0, 4), (0, 5), (1, 2), (2, 3), (3, 4), (4, 5), (5, 1), (1, 6), (2, 7), (3, 8), (4, 9), (5, 10), (1, 10), (2, 6), (3, 7), (4, 8), (5, 9), (6, 7), (7, 8), (8, 9), (9, 10), (10, 6), (6, 11), (7, 11), (8, 11), (9, 11), (10, 11)]¶
- ico_triangles = [[(0, 1, 2), (0, 2, 3), (0, 3, 4), (0, 4, 5), (0, 5, 1), (2, 1, 6), (3, 2, 7), (4, 3, 8), (5, 4, 9), (1, 5, 10), (6, 10, 1), (7, 6, 2), (8, 7, 3), (9, 8, 4), (10, 9, 5), (6, 7, 11), (7, 8, 11), (8, 9, 11), (9, 10, 11), (10, 6, 11)]]¶
- ico_vertices = [(0.0, 0.0, 1.0), (np.float64(0.8944271909999159), np.float64(0.0), np.float64(0.4472135954999579)), (np.float64(0.27639320225002106), np.float64(0.8506508083520399), np.float64(0.4472135954999579)), (np.float64(-0.7236067977499788), np.float64(0.5257311121191337), np.float64(0.4472135954999579)), (np.float64(-0.723606797749979), np.float64(-0.5257311121191335), np.float64(0.4472135954999579)), (np.float64(0.27639320225002084), np.float64(-0.85065080835204), np.float64(0.4472135954999579)), (np.float64(0.7236067977499789), np.float64(0.5257311121191336), np.float64(-0.4472135954999579)), (np.float64(-0.27639320225002095), np.float64(0.85065080835204), np.float64(-0.4472135954999579)), (np.float64(-0.8944271909999159), np.float64(1.0953573965284052e-16), np.float64(-0.4472135954999579)), (np.float64(-0.2763932022500211), np.float64(-0.8506508083520399), np.float64(-0.4472135954999579)), (np.float64(0.7236067977499788), np.float64(-0.5257311121191338), np.float64(-0.4472135954999579)), (0.0, 0.0, -1.0)]¶
sas.qtgui.GL.models module¶
3D Model classes
- class sas.qtgui.GL.models.FullModel(vertices: Sequence[tuple[float, float, float]] | ndarray, edges: Sequence[tuple[int, int]] | ndarray, triangle_meshes: Sequence[Sequence[tuple[int, int, int]] | ndarray], edge_colors: ColorSpecification | None, colors: ColorSpecification | None)¶
Bases:
SolidVertexModel,WireModelModel that has both wireframe and solid, vertex coloured rendering enabled,
See SolidVertexModel and WireModel
- class sas.qtgui.GL.models.ModelBase(vertices: Sequence[tuple[float, float, float]] | ndarray)¶
Bases:
RenderableBase class for all models
- property vertices¶
- class sas.qtgui.GL.models.SolidModel(vertices: Sequence[tuple[float, float, float]] | ndarray, triangle_meshes: Sequence[Sequence[tuple[int, int, int]] | ndarray])¶
Bases:
ModelBaseBase class for the solid models
- property triangle_meshes: Sequence[Sequence[tuple[int, int, int]] | ndarray]¶
- class sas.qtgui.GL.models.SolidVertexModel(vertices: Sequence[tuple[float, float, float]] | ndarray, triangle_meshes: Sequence[Sequence[tuple[int, int, int]] | ndarray], colors: ColorSpecification | None)¶
Bases:
SolidModel- render_solid()¶
- class sas.qtgui.GL.models.WireModel(vertices: Sequence[tuple[float, float, float]] | ndarray, edges: Sequence[tuple[int, int]] | ndarray, edge_colors: ColorSpecification | None)¶
Bases:
ModelBase- render_wireframe()¶
sas.qtgui.GL.renderable module¶
sas.qtgui.GL.scene module¶
- class sas.qtgui.GL.scene.Scene(parent=None, on_key: ~collections.abc.Callable[[int], None] = <function Scene.<lambda>>)¶
Bases:
QOpenGLWidget- add(item: Renderable)¶
- default_viewport()¶
- initializeGL()¶
- keyPressEvent(event: QKeyEvent)¶
- mouseMoveEvent(ev)¶
- mousePressEvent(ev)¶
- mouseReleaseEvent(ev)¶
- paintGL()¶
Paint the GL viewport
- projection_matrix()¶
- set_model_view()¶
- set_projection()¶
- staticMetaObject = PySide6.QtCore.QMetaObject("Scene" inherits "QOpenGLWidget": )¶
- wheelEvent(event: QWheelEvent)¶
- sas.qtgui.GL.scene.main()¶
Show a demo of the opengl.rst window
sas.qtgui.GL.sphere module¶
- class sas.qtgui.GL.sphere.Sphere(n_horizontal: int = 21, n_segments: int = 28, grid_gap: int = 1, colors: ColorSpecification | None = None, edge_colors: ColorSpecification | None = None)¶
Bases:
FullModel- static sphere_edges(n_horizontal, n_segments, grid_gap)¶
Helper function: Edges of the UV sphere primitive
- static sphere_triangles(n_horizontal, n_segments)¶
Helper function: Triangles of the UV sphere primitive
- static sphere_vertices(n_horizontal, n_segments)¶
Helper function: Vertices of the UV sphere primitive
sas.qtgui.GL.surface module¶
- class sas.qtgui.GL.surface.Surface(x_values: ndarray, y_values: ndarray, z_data: ndarray, colormap: str = 'rainbow', c_range: tuple[float, float] = (0, 1), edge_skip: int = 1)¶
Bases:
FullModel- static calculate_edge_indices(nx, ny, gap=1)¶
Helper function to calculate the indices of the edges
- static calculate_triangles(nx, ny)¶
Helper function to calculate the indices of the triangles in the mesh
- property colormap: str¶
Name of the colormap
- set_z_data(z_data)¶
Set the z data on this surface plot
sas.qtgui.GL.transforms module¶
- class sas.qtgui.GL.transforms.MatrixTransform(matrix: ndarray, *children: Renderable)¶
Bases:
SceneGraphNode- apply()¶
GL operations needed to apply any transformations associated with this node
- class sas.qtgui.GL.transforms.Rotation(angle, x, y, z, *children: Renderable)¶
Bases:
SceneGraphNode- apply()¶
GL operations needed to apply any transformations associated with this node
- class sas.qtgui.GL.transforms.Scaling(x: float, y: float, z: float, *children: Renderable)¶
Bases:
SceneGraphNode- apply()¶
GL operations needed to apply any transformations associated with this node
- class sas.qtgui.GL.transforms.SceneGraphNode(*children: Renderable)¶
Bases:
RenderableGeneral transform - also doubles as a scene graph node
For the sake of speed, the transformation matrix shape is not checked. It should be a 4x4 transformation matrix
- add_child(child: Renderable)¶
Add a renderable object to this scene graph node
- apply()¶
GL operations needed to apply any transformations associated with this node
- render_solid()¶
- render_wireframe()¶
- class sas.qtgui.GL.transforms.Translation(x: float, y: float, z: float, *children: Renderable)¶
Bases:
SceneGraphNode- apply()¶
GL operations needed to apply any transformations associated with this node