ConvexHull3D

Qualified name: algan.mobs.shapes\_3d.ConvexHull3D

class ConvexHull3D(*points, tolerance=1e-05, **kwargs)[source]

Bases: Polyhedron

The convex hull of a point cloud, as a flat-faced Polyhedron.

Interior points are discarded: only the vertices on the hull survive into the solid.

Parameters:
  • *points – The points to wrap, each a 3-D coordinate in world units, passed as separate arguments. At least four are required, and they must not all be coplanar.

  • tolerance – Qhull’s joggle magnitude, used to perturb degenerate inputs into a solvable configuration. Raise it if a nearly-coplanar cloud fails to triangulate. Defaults to 1e-5.

  • **kwargs – Passed to Polyhedron – notably color and location.

Raises:

ValueError – If fewer than four points are given.

Examples

The hull of five scattered points:

Example: Example1ConvexHull3D

../_images/Example1ConvexHull3D-1.png
from algan import *

ConvexHull3D(
    (-0.7, -0.5, -0.5), (0.7, -0.5, -0.5), (0, -0.5, 0.7),
    (0, 0.8, 0), (0, -0.9, 0),
    color=BLUE,
).spawn()

Scene.save_video()

Methods

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.

draws_descendants

get_render_primitives below hands the renderer every face under one _mesh_key, and nothing else -- so the faces are this Mob's internals rather than Mobs of their own, and the vertex Dot3D``s and edge Mobs under ``self.graph (kept for Manim parity, where graph_config styles them) are geometry it owns but never puts on screen.

forward

Get the direction the Mob is facing.

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.

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.

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).