def place_node(self, node, pos):
     pos_x, pos_y, pos_z = self._get_coords(pos)
     # This is equivalent to Translate(Scale(node))
     mat = [
         # fmt: off
         self.scale,
         0,
         0,
         0,
         0,
         self.scale,
         0,
         0,
         0,
         0,
         1,
         0,
         pos_x,
         pos_y,
         pos_z,
         1,
         # fmt: on
     ]
     return ngl.Transform(node,
                          matrix=mat,
                          label="grid(col=%d,row=%d)" % pos)
Example #2
0
def transform_matrix(cfg):
    cfg.aspect_ratio = (1, 1)
    shape = _transform_shape(cfg)
    mat = [
        0.5, 0.5, 0.0, 0.0,
       -1.0, 1.0, 0.0, 0.0,
        0.0, 0.0, 0.0, 0.0,
       -0.2, 0.4, 0.0, 1.0,
    ]
    return ngl.Transform(shape, matrix=mat)
Example #3
0
def _get_live_trf_spec(layout):

    t0 = ngl.Identity()
    t1 = ngl.Transform(t0)
    t2 = ngl.Translate(t1)
    t3 = ngl.Rotate(t2)
    t4 = ngl.Scale(t3)
    t5 = ngl.RotateQuat(t4)

    return [
        dict(
            name='m4',
            type='mat4',
            category='single',
            func=lambda data: ngl.UniformMat4(data, transform=t5),
            livechange=(
                lambda: t1.set_matrix(  # trf_step=1
                    0.1,
                    0.2,
                    0.0,
                    0.0,
                    0.0,
                    0.3,
                    0.4,
                    0.0,
                    0.0,
                    0.0,
                    0.5,
                    0.0,
                    0.8,
                    0.7,
                    0.0,
                    0.6,
                ),
                lambda: t2.set_vector(0.2, 0.7, -0.4),  # trf_step=2
                lambda: t3.set_angle(123.4),  # trf_step=3
                lambda: t4.set_factors(0.7, 1.4, 0.2),  # trf_step=4
                lambda: t5.set_quat(0, 0, -0.474, 0.880),  # trf_step=5
                lambda: t5.set_quat(0, 0, 0, 1),
                lambda: t4.set_factors(1, 1, 1),
                lambda: t3.set_angle(0),
                lambda: t2.set_vector(0, 0, 0),
                lambda: t1.set_matrix(
                    1.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    1.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    1.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    1.0,
                )),
        ),
    ]
Example #4
0
def _get_live_trf_spec():

    t0 = ngl.Identity()
    t1 = ngl.Transform(t0)
    t2 = ngl.Translate(t1)
    t3 = ngl.Rotate(t2)
    t4 = ngl.Scale(t3)
    t5 = ngl.RotateQuat(t4)
    t6 = ngl.Skew(t5)

    return [
        dict(
            name="m4",
            type="mat4",
            category="single",
            func=lambda data: ngl.UniformMat4(data, transform=t6),
            livechange=(
                # fmt: off
                lambda: t1.set_matrix(  # trf_step=1
                    0.1,
                    0.2,
                    0.0,
                    0.0,
                    0.0,
                    0.3,
                    0.4,
                    0.0,
                    0.0,
                    0.0,
                    0.5,
                    0.0,
                    0.8,
                    0.7,
                    0.0,
                    0.6,
                ),
                lambda: t2.set_vector(0.2, 0.7, -0.4),  # trf_step=2
                lambda: t3.set_angle(123.4),  # trf_step=3
                lambda: t4.set_factors(0.7, 1.4, 0.2),  # trf_step=4
                lambda: t5.set_quat(0, 0, -0.474, 0.880),  # trf_step=5
                lambda: t6.set_angles(0, 50, -145),  # trf_step=6
                lambda: t6.set_angles(0, 0, 0),
                lambda: t5.set_quat(0, 0, 0, 1),
                lambda: t4.set_factors(1, 1, 1),
                lambda: t3.set_angle(0),
                lambda: t2.set_vector(0, 0, 0),
                lambda: t1.set_matrix(
                    1.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    1.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    1.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    1.0,
                )
                # fmt: on
            ),
        ),
    ]