Line3D

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

class Line3D(start=tensor([-1., 0., 0.]), end=tensor([1., 0., 0.]), radius=0.02, color=None, resolution=24, **kwargs)[source]

Bases: Cylinder

A thin capped Cylinder spanning two points.

Unlike the 2-D Line, this has real thickness in world units and responds to light, so it stays visible from any angle.

Parameters:
  • start – The endpoints, shape (*, 3) in world units. The line is moved and oriented to span them. Default to (-1, 0, 0) and (1, 0, 0).

  • end – The endpoints, shape (*, 3) in world units. The line is moved and oriented to span them. Default to (-1, 0, 0) and (1, 0, 0).

  • radius – Radius of the tube, in world units. Defaults to 0.02.

  • color – An Algan Color, a named constant such as BLUE, or anything Color() accepts. Defaults to None, meaning the Cylinder default (GREEN).

  • resolution – One int sets the number of samples around the tube (grid_width, at least 4) with two samples along its length; a pair is taken as (grid_height, grid_width). Defaults to 24.

  • **kwargs – Passed to Cylinder.

Examples

An edge drawn between two marked points:

Example: Example1Line3D

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

Line3D(start=LEFT + DOWN, end=RIGHT + UP, radius=0.05,
       color=BLUE).spawn()

Scene.save_video()

Methods

get_end

get_start

move_between_points

parallel_to

perpendicular_to

set_start_and_end_attrs

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