moderngl_window.geometry

moderngl_window.geometry.bbox(size=(1.0, 1.0, 1.0), name=None, attr_names=<class 'moderngl_window.geometry.attributes.AttributeNames'>)[source]

Generates a bounding box with (0.0, 0.0, 0.0) as the center. This is simply a box with LINE_STRIP as draw mode.

Keyword Arguments
  • size (tuple) – x, y, z size of the box

  • name (str) – Optional name for the VAO

  • attr_names (AttributeNames) – Attribute names

Returns

A moderngl_window.opengl.vao.VAO instance

moderngl_window.geometry.quad_fs(attr_names=<class 'moderngl_window.geometry.attributes.AttributeNames'>, normals=True, uvs=True, name=None) → moderngl_window.opengl.vao.VAO[source]

Creates a screen aligned quad using two triangles with normals and texture coordinates.

Keyword Arguments
  • attr_names (AttributeNames) – Attrib name config

  • normals (bool) – Include normals in VAO

  • uvs (bool) – Include normals in VAO

  • name (str) – Optional name for the VAO

Returns

A VAO instance.

moderngl_window.geometry.quad_2d(size=(1.0, 1.0), pos=(0.0, 0.0), normals=True, uvs=True, attr_names=<class 'moderngl_window.geometry.attributes.AttributeNames'>, name=None) → moderngl_window.opengl.vao.VAO[source]

Creates a 2D quad VAO using 2 triangles with normals and texture coordinates.

Keyword Arguments
  • size (tuple) – width and height

  • pos (float) – Center position x and y

  • normals (bool) – Include normals in VAO

  • uvs (bool) – Include normals in VAO

  • attr_names (AttributeNames) – Attrib name config

  • name (str) – Optional name for the VAO

Returns

A VAO instance.

moderngl_window.geometry.cube(size=(1.0, 1.0, 1.0), center=(0.0, 0.0, 0.0), normals=True, uvs=True, name=None, attr_names=<class 'moderngl_window.geometry.attributes.AttributeNames'>) → moderngl_window.opengl.vao.VAO[source]

Creates a cube VAO with normals and texture coordinates

Keyword Arguments
  • width (float) – Width of the cube

  • height (float) – Height of the cube

  • depth (float) – Depth of the cube

  • center – center of the cube as a 3-component tuple

  • normals – (bool) Include normals

  • uvs – (bool) include uv coordinates

  • name (str) – Optional name for the VAO

  • attr_names (AttributeNames) – Attribute names

Returns

A moderngl_window.opengl.vao.VAO instance

moderngl_window.geometry.sphere(radius=0.5, sectors=32, rings=16, normals=True, uvs=True, name: str = None, attr_names=<class 'moderngl_window.geometry.attributes.AttributeNames'>) → moderngl_window.opengl.vao.VAO[source]

Creates a sphere.

Keyword Arguments
  • radius (float) – Radius or the sphere

  • rings (int) – number or horizontal rings

  • sectors (int) – number of vertical segments

  • normals (bool) – Include normals in the VAO

  • uvs (bool) – Include texture coordinates in the VAO

  • name (str) – An optional name for the VAO

  • attr_names (AttributeNames) – Attribute names

Returns

A VAO instance