picogl.renderer.meshdata

GLContext class

Classes

MeshData

Holds OpenGL-related state objects for rendering.

Functions

compute_vertex_normals(→ numpy.ndarray)

vertices: (N, 3)

Module Contents

picogl.renderer.meshdata.compute_vertex_normals(vertices: numpy.ndarray, faces: numpy.ndarray) numpy.ndarray[source]

vertices: (N, 3) faces: (M, 3) 0-based indices returns: (N, 3) normalized vertex normals

class picogl.renderer.meshdata.MeshData(vbo: numpy.ndarray = None, nbo: numpy.ndarray = None, uvs: numpy.ndarray = None, cbo: numpy.ndarray = None, ebo: numpy.ndarray = None)[source]

Holds OpenGL-related state objects for rendering.

vbo = None[source]
nbo = None[source]
uvs = None[source]
cbo = None[source]
ebo = None[source]
vertex_count[source]
as_ribbon_args() dict[source]

Convert into arguments for setup_ribbon_buffers.

__str__()[source]
classmethod _to_float32_flat(arr, name: str, required: bool = False) numpy.ndarray[source]
classmethod _to_float32_flat_or_none(arr, name: str) numpy.ndarray[source]
classmethod _to_int32_flat(arr, name: str, required: bool = False) numpy.ndarray[source]
classmethod _default_colors_for_vertices(vertex_count: int) numpy.ndarray[source]
classmethod _default_normals_for_vertices(vertex_count: int) numpy.ndarray[source]
__enter__()[source]
__exit__(exc_type, exc_val, exc_tb)[source]
bind()[source]
unbind()[source]
classmethod from_raw(vertices: numpy.ndarray | list[float], normals: numpy.ndarray | list[float] | None = None, uvs: numpy.ndarray | list[float] | None = None, colors: numpy.ndarray | list[float] | None = None, indices: numpy.ndarray | list[float] | None = None, color_per_vertex: numpy.ndarray | list[float] | None = None)[source]

Build a MeshData from raw/python inputs.

Parameters:
  • vertices – np.ndarray required, list/array of x,y,z triplets

  • normals – np.ndarray optional, list/array of x,y,z triplets

  • uvs – np.ndarray optional, list/array of u,v pairs

  • indices – np.ndarray optional int indices

  • colors – np.ndarray optional per-vertex colors (flat float32 array)

  • color_per_vertex – np.ndarray if provided and colors is None, generate per-vertex colors

draw(color: tuple = None, line_width: float = 1.0, mode: int = GL.GL_TRIANGLES, fill: bool = False, alpha: float = 1.0)[source]

Draw the mesh with optional colour override and transparency.

Parameters:
  • color – Optional colour override. If None and vertex colors exist, uses vertex colors.

  • line_width – Line width for wireframe mode

  • mode – OpenGL drawing mode

  • fill – Whether to fill or use wireframe

  • alpha – Transparency value from 0.0 (opaque) to 1.0 (fully transparent)

delete()[source]

delete to remove atoms_buffers