Beispiel #1
0
def test_pose_computation():
    g = inertia.graph.Node()

    g['x'].pose = inertia.translate(offset=[10, 10])
    g['x.z'].pose = inertia.translate(offset=[10, 10]) @ inertia.rotate(
        angle=np.pi / 2)
    g['y'].pose = inertia.translate(offset=[-10, -10])

    aae(g.pose_in_world, inertia.identity(dims=2))
    aae(g['x'].pose_in_world, inertia.translate(offset=[10, 10]))
    aae(
        g['x.z'].pose_in_world,
        inertia.translate(offset=[10, 10]) @ inertia.translate(offset=[10, 10])
        @ inertia.rotate(angle=np.pi / 2))
    aae(
        g['x.z'].pose_in(g['y']),
        inertia.inv(g['y'].pose_in_world) @ inertia.translate(offset=[10, 10])
        @ inertia.translate(offset=[10, 10]) @ inertia.rotate(angle=np.pi / 2))
    aae(g.pose_in(g['x.z']), inertia.inv(g['x.z'].pose_in_world))
Beispiel #2
0
def test_transform_vectors():
    m = inertia.translate(offset=[-10, -10]) @ inertia.rotate(angle=np.pi / 2)
    aae(inertia.tv(m, [1, 1]), [-1, 1])
    aae(inertia.tv(m, [[1, 2], [1, 2]]), [[-1, -2], [1, 2]])
Beispiel #3
0
def test_transform_points():
    m = inertia.translate(offset=[-10, -10]) @ inertia.rotate(angle=np.pi / 2)
    aae(inertia.tp(m, [1, 1]), [-11, -9])
    aae(inertia.tp(m, [[1, 2], [1, 2]]), [[-11, -12], [-9, -8]])
Beispiel #4
0
def test_inverse():
    m = inertia.translate(offset=[1, 1]) @ inertia.rotate(angle=np.pi / 2)
    aae(inertia.inv(m), lin.inv(m))
    aae(inertia.inv(m, hint='isometry'), lin.inv(m))
Beispiel #5
0
def test_rotate_cw():
    m = inertia.rotate(angle=-np.pi / 2)
    aae(m, [[0, 1, 0], [-1, 0, 0], [0, 0, 1]])