OpenGLSurface

Qualified name: algan.mobs.opengl\_compat.OpenGLSurface

class OpenGLSurface(uv_func=None, u_range=None, v_range=None, resolution=None, axes=None, color=Color([0.5333, 0.5333, 0.5333, 0.0000, 1.0000]), colorscale=None, colorscale_axis=2, opacity=1.0, gloss=0.3, shadow=0.4, prefered_creation_axis=1, epsilon=1e-05, render_primitive=None, depth_test=True, shader_folder=None, **kwargs)[source]

Bases: Surface

Methods

get_surface_points_and_nudged_points

get_triangle_indices

get_unit_normals

Return one smooth unit normal for each sampled surface vertex.

sort_faces_back_to_front

uv_func

Attributes

animation_manager

This mob's scene-owned animation manager.

basis

The Mob's orientation and scale, as a flattened 3x3 matrix of shape (*, 9).

casts_shadows

Whether this Mob's geometry blocks light on its way from a light source to another surface -- whether it casts a shadow.

children

The Mobs attached below this one, in attachment order.

closed_shell

Whether this Mob's triangles form a CLOSED shell -- every camera ray that enters the geometry crosses a second time on its way out.

color_texture

An image painted across the surface, as an [W, H, 5] RGBA+glow tensor.

draws_descendants

Whether get_render_primitives returns geometry belonging to this Mob's DESCENDANTS as well as its own.

forward

Get the direction the Mob is facing.

geometry_tolerance

How far this surface's mesh may sit from the exact shape, in world units.

lifespan

This mob's [spawn, despawn) interval on its Scene timeline (a Lifespan).

location

The Mob's position in world space, shape (*, 3).

normalized_basis

The Mob's orientation with scale divided out, shape (*, 9).

parents

The Mobs this one is attached to, in attachment order.

receives_shadows

Whether this Mob's surfaces are darkened by shadows cast onto them.

render_tolerance_pixels

How far a drawn triangle may sit from the true surface, in pixels.

right

Get the Mob's own rightward direction.

scale_coefficient

The Mob's scale along its own right, up and forward axes, shape (*, 3).

two_sided

Whether this Mob's geometry should be lit from whichever side the ray arrives on.

up

Get the Mob's own upward direction.

vertices

The surface's vertex positions, shape (*, grid_width * grid_height, 3).

x

The Mob's x coordinate in world units, shape (*, 1).

xy

The Mob's x and y coordinates in world units, shape (*, 2).

y

The Mob's y coordinate in world units, shape (*, 1).

z

The Mob's z coordinate in world units, shape (*, 1).

get_unit_normals()[source]

Return one smooth unit normal for each sampled surface vertex.

Oriented the way the renderer orients them (outward, for the built-in shapes), because both go through _reshape_grid_for_render(). The v axis that reorientation reverses is put back before flattening, so row i is still the normal of grid.location’s row i.