BezierCurveCubic

Qualified name: algan.mobs.bezier\_circuit.BezierCurveCubic

class BezierCurveCubic(*args, filled=None, **kwargs)[source]

Bases: BezierCircuitCubic

An open path of cubic bezier curves – a stroke with no interior.

A BezierCircuitCubic with filled=False, which is the whole difference: there is no fill to paint, so the color you set is the stroke’s, stroke_color. The stroke stays centred on the path rather than being laid inward from an outline, which is what Line is built on.

The control points need not describe a closed loop, and need not lie in a plane either: an open path bounds no surface, so a 3-D curve keeps its true position in space and is drawn by splitting it into near-straight runs, each turned to face the camera so the stroke keeps a constant width on screen. That decision is made once, from the control points you construct it with (see the tutorial). Nothing stops the path from closing – a closed path drawn as a curve is an outline.

Parameters:
  • *args – Passed to BezierCircuitCubic, except filled, which is always False. color stands in for stroke_color when that was not given, as it does on a Line, since an unfilled path has no fill for it to act on otherwise.

  • **kwargs – Passed to BezierCircuitCubic, except filled, which is always False. color stands in for stroke_color when that was not given, as it does on a Line, since an unfilled path has no fill for it to act on otherwise.

See also

BezierCircuitCubic

The filled counterpart, and where the parameters are documented.

Examples

Example: Example1BezierCurveCubic

../_images/Example1BezierCurveCubic-1.png
from algan import *
import torch

BezierCurveCubic(
    torch.tensor([[-2.0, -1.0, 0.0], [-1.0, 2.0, 0.0],
                  [1.0, -2.0, 0.0], [2.0, 1.0, 0.0]]),
    stroke_color=YELLOW,
).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

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.

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

stroke_color

The color of the circuit's border stroke.

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

z_index

Which of two exactly coplanar circuits draws in front (higher wins).