def hexagon(): hex = group() for n in range(5): side = hexagon_side() set_transform(side, rotation_y(n * pi / 3)) add_child(hex, side) return hex
def hexagon_edge(): edge = cylinder() edge.minimum = 0 edge.maximum = 1 set_transform( edge, translation(0, 0, -1) * rotation_y(-pi / 6) * rotation_z(-pi / 2) * scaling(0.25, 1, 0.25), ) return edge
def hexagon_corner(): corner = sphere() set_transform(corner, translation(0, 0, -1) * scaling(0.25, 0.25, 0.25)) return corner
def step_impl(context): set_transform(context.g2, scaling(2, 2, 2))
def step_impl(context): set_transform(context.s, context.m)
def step_impl(context): set_transform(context.g1, rotation_y(pi / 2))
def step_impl(context): set_transform(context.s, translation(0, 1, 0))
def step_impl(context): set_transform(context.s, translation(2, 3, 4))
def step_set_obj_new_transform(context, item, new_transform): assert (item in context.dict.keys()) assert (new_transform in context.dict.keys()) transform_matrix = context.dict[str(new_transform)] s = context.dict[item] set_transform(s, transform_matrix)
def step_set_obj_new_scaling_transform2(context, item, x, y, z): assert (item in context.dict.keys()) transform_matrix = translation(float(x), float(y), float(z)) s = context.dict[item] set_transform(s, transform_matrix)
def step_set_obj_new_scaling_transform_B(context, item, item2): assert (item in context.dict.keys()) assert (item2 in context.dict.keys()) transform_matrix = context.dict[str(item2)] s = context.dict[item] set_transform(s, transform_matrix)