Containers#
Container is the base class for grouping items. It’s possible to add children to
the container with Python’s with statement. It’s not possible to reparent
items. Instead, it’s necessary to remove the item and recreate a similar item
under another parent.
Transform#
Transform is the container that propagates the affine transformations to its children. It has properties to scale the items to screen space and orient the items to the current camera.

    line_count = 36
    for i in range(line_count):
        weight = i / line_count
        angle = 2.0 * math.pi * weight
        # translation matrix
        move = sc.Matrix44.get_translation_matrix(
            8 * (weight - 0.5), 0.5 * math.sin(angle), 0)
        # rotation matrix
        rotate = sc.Matrix44.get_rotation_matrix(0, 0, angle)
        # the final transformation
        transform = move * rotate
        color = cl(weight, 1.0 - weight, 1.0)
        # create transform and put line to it
        with sc.Transform(transform=transform):
            sc.Line([0, 0, 0], [0.5, 0, 0], color=color)