示例#1
0
    def test_create_heirarchy(self):
        # Test on object with parent
        jnts = []
        jnts.append(pm.joint(p=(1, 1, 1)))
        jnts.append(pm.joint(p=(2, 2, 2)))
        crv = pm.circle()[0]
        pm.delete(pm.parentConstraint(jnts[-1], crv, mo=0))
        pm.parent(crv, jnts[-1])

        grps = control.create_heirarchy('temp', crv, 5)

        count = 0
        for g in grps:
            self.assertTrue(
                transforms.assertLocationsMatch(g, crv))
            self.assertTrue(
                transforms.assertDefaultScale(g))
            if count > 0:
                self.assertTrue(
                    transforms.assertAllZero(g))
                self.assertTrue(
                    transforms.assertParentIs(g, grps[count-1]))
            count += 1

        self.assertEqual(grps[0].name(), 'temp_top_node')
        self.assertEqual(grps[-1].name(), 'temp_btm_node')
        self.assertTrue(transforms.assertParentIs(crv,
                                                  grps[-1]))
        self.assertTrue(transforms.assertParentIs(grps[0],
                                                  jnts[-1]))
        self.assertTrue(transforms.assertAllZero(crv))
        self.assertTrue(transforms.assertDefaultScale(crv))
 def test_assertAllZero(self):
     self.assertTrue(transforms.assertAllZero(self.joints[0]))
     self.joints[0].rx.set(5)
     self.assertFalse(transforms.assertAllZero(self.joints[0]))
     self.joints[0].rx.set(0)
     self.joints[0].sx.set(5)
     self.assertFalse(transforms.assertAllZero(self.joints[0]))
     self.assertFalse(transforms.assertAllZero(self.joints[1]))
示例#3
0
 def test_assertAllZero(self):
     self.assertTrue(transforms.assertAllZero(self.joints[0]))
     self.joints[0].rx.set(5)
     self.assertFalse(transforms.assertAllZero(self.joints[0]))
     self.joints[0].rx.set(0)
     self.joints[0].sx.set(5)
     self.assertFalse(transforms.assertAllZero(self.joints[0]))
     self.assertFalse(transforms.assertAllZero(self.joints[1]))
示例#4
0
    def test_make_control(self):
        controls = []
        reg_node = None
        for i in range(5):
            if i == 0:
                reg_node, control = fk_rig.make_control(name='temp%s' %
                                                        str(i + 1),
                                                        obj=self.jnts[i],
                                                        buffers=2,
                                                        color='light_blue',
                                                        scale=3.0,
                                                        typ='cube')
            else:
                reg_node, control = fk_rig.make_control(name='temp%s' %
                                                        str(i + 1),
                                                        obj=self.jnts[i],
                                                        buffers=2,
                                                        color='light_blue',
                                                        scale=3.0,
                                                        typ='cube',
                                                        reg_node=reg_node)
            controls.append(control)

        self.assertEqual(len(controls), 5)

        count = 0
        for cnt, jnt in zip(controls, self.jnts):
            name = 'temp%s' % (count + 1)
            for s in cnt.getShapes():
                self.assertEqual(s.overrideColor.get(), 6)
            self.assertTrue(transforms.assertOrientationMatches(cnt, jnt))
            attr = getattr(reg_node, cnt.name())
            self.assertEqual(attr.listConnections()[0], cnt)
            self.assertEqual(cnt.name().split('_')[0], name)
            self.assertTrue(transforms.assertLocationsMatch(cnt, jnt))
            self.assertTrue(transforms.assertAllZero(cnt))

            # Check that joint is under curve
            pm.select(cnt, hi=True, r=True)
            sel = pm.ls(sl=1)
            self.assertIn(jnt, sel)
            pm.select(clear=True)

            # Check heirarchy
            try:
                p1 = cnt.getParent()
                p2 = p1.getParent()
                if count > 0:
                    prnt = p2.getParent()
                    self.assertEqual(prnt, self.jnts[count - 1])
                self.assertTrue(transforms.assertAllZero(p1))
                self.assertEqual(p1.name(), '%s_btm_node' % name)
                self.assertEqual(p2.name(), '%s_top_node' % name)
            except Exception as e:
                str_1 = 'Heirarchy check failed: Error: ', str(e)
                self.fail(str_1)
            count += 1
    def test_make_control(self):
        controls = []
        reg_node = None
        for i in range(5):
            if i == 0:
                reg_node, control = fk_rig.make_control(name='temp%s' %
                                                        str(i+1),
                                                        obj=self.jnts[i],
                                                        buffers=2,
                                                        color='light_blue',
                                                        scale=3.0,
                                                        typ='cube')
            else:
                reg_node, control = fk_rig.make_control(name='temp%s' %
                                                        str(i+1),
                                                        obj=self.jnts[i],
                                                        buffers=2,
                                                        color='light_blue',
                                                        scale=3.0,
                                                        typ='cube',
                                                        reg_node=reg_node)
            controls.append(control)

        self.assertEqual(len(controls), 5)

        count = 0
        for cnt, jnt in zip(controls, self.jnts):
            name = 'temp%s' % (count+1)
            for s in cnt.getShapes():
                self.assertEqual(s.overrideColor.get(), 6)
            self.assertTrue(transforms.assertOrientationMatches(cnt, jnt))
            attr = getattr(reg_node, cnt.name())
            self.assertEqual(attr.listConnections()[0], cnt)
            self.assertEqual(cnt.name().split('_')[0], name)
            self.assertTrue(transforms.assertLocationsMatch(cnt, jnt))
            self.assertTrue(transforms.assertAllZero(cnt))

            # Check that joint is under curve
            pm.select(cnt, hi=True, r=True)
            sel = pm.ls(sl=1)
            self.assertIn(jnt, sel)
            pm.select(clear=True)

            # Check heirarchy
            try:
                p1 = cnt.getParent()
                p2 = p1.getParent()
                if count > 0:
                    prnt = p2.getParent()
                    self.assertEqual(prnt, self.jnts[count-1])
                self.assertTrue(transforms.assertAllZero(p1))
                self.assertEqual(p1.name(), '%s_btm_node' % name)
                self.assertEqual(p2.name(), '%s_top_node' % name)
            except Exception as e:
                str_1 = 'Heirarchy check failed: Error: ', str(e)
                self.fail(str_1)
            count += 1