Пример #1
0
    def testCreatePrimitive5(self):
        context = revl.Context()

        primitive = revl.createPrimitive(context,
                                         parent=True,
                                         forceTransformCreation=False)
        self.assertIsInstance(primitive, revl.Primitive)
        self.assertTrue(
            primitive.generator.hasFn(OpenMaya.MFn.kCreate)
            or primitive.generator.hasFn(OpenMaya.MFn.kPolyPrimitive))
        self.assertTrue(primitive.transform.hasFn(OpenMaya.MFn.kTransform))
        self.assertTrue(len(primitive.shapes) > 0)
        self.assertTrue(
            all(
                shape.hasFn(OpenMaya.MFn.kGeometric)
                for shape in primitive.shapes))
        self.assertEqual(len(context.transforms), 1)

        primitive = revl.createPrimitive(context,
                                         parent=True,
                                         forceTransformCreation=False)
        self.assertIsInstance(primitive, revl.Primitive)
        self.assertTrue(
            primitive.generator.hasFn(OpenMaya.MFn.kCreate)
            or primitive.generator.hasFn(OpenMaya.MFn.kPolyPrimitive))
        self.assertTrue(primitive.transform.hasFn(OpenMaya.MFn.kTransform))
        self.assertTrue(len(primitive.shapes) > 0)
        self.assertTrue(
            all(
                shape.hasFn(OpenMaya.MFn.kGeometric)
                for shape in primitive.shapes))
        self.assertEqual(len(context.transforms), 1)
Пример #2
0
def _createPrimitive(context, intermediate=False, template=False, **kwargs):
    primitive = revl.createPrimitive(context, **kwargs)
    for oShape in primitive.shapes:
        shape = OpenMaya.MFnDependencyNode(oShape)
        context.dg.newPlugValueBool(shape.findPlug('intermediateObject'),
                                    intermediate)
        context.dg.newPlugValueBool(shape.findPlug('template'), template)
Пример #3
0
    def testCreatePrimitive3(self):
        context = revl.Context()
        primitives = []

        primitive = revl.createPrimitive(context,
                                         revl.PrimitiveType.NURBS_CUBE,
                                         name='kubo')
        primitives.append(primitive)
        self.assertIsInstance(primitive, revl.Primitive)
        self.assertTrue(primitive.generator.hasFn(OpenMaya.MFn.kNurbsCube))
        self.assertTrue(primitive.transform.hasFn(OpenMaya.MFn.kTransform))
        self.assertEqual(len(primitive.shapes), 6)
        self.assertTrue(
            all(
                shape.hasFn(OpenMaya.MFn.kNurbsSurface)
                for shape in primitive.shapes))
        self.assertEqual(len(context.transforms), len(primitives))

        primitive = revl.createPrimitive(context,
                                         revl.PrimitiveType.POLY_CUBE,
                                         name='koba')
        primitives.append(primitive)
        self.assertIsInstance(primitive, revl.Primitive)
        self.assertTrue(primitive.generator.hasFn(OpenMaya.MFn.kPolyCube))
        self.assertTrue(primitive.transform.hasFn(OpenMaya.MFn.kTransform))
        self.assertEqual(len(primitive.shapes), 1)
        self.assertTrue(
            all(shape.hasFn(OpenMaya.MFn.kMesh) for shape in primitive.shapes))
        self.assertEqual(len(context.transforms), len(primitives))

        context.dag.doIt()
        context.dg.doIt()

        names = ('kubo', 'koba')
        dagPath = OpenMaya.MDagPath()
        for primitive, name in zip(primitives, names):
            OpenMaya.MDagPath.getAPathTo(primitive.transform, dagPath)
            self.assertEqual(dagPath.length(), 1)
            self.assertEqual(
                OpenMaya.MFnTransform(primitive.transform).name(), name)
Пример #4
0
        def createTemplatedPrimitive(context,
                                     type=None,
                                     name=None,
                                     parent=False):
            primitive = revl.createPrimitive(context,
                                             type=type,
                                             name=name,
                                             parent=parent)
            for oShape in primitive.shapes:
                shape = OpenMaya.MFnDependencyNode(oShape)
                context.dg.newPlugValueBool(shape.findPlug('template'), True)

            return primitive
Пример #5
0
    def testCreatePrimitive4(self):
        context = revl.Context()
        primitives = []

        revl.createTransform(context)

        primitive = revl.createPrimitive(context,
                                         revl.PrimitiveType.NURBS_SPHERE,
                                         parent=True)
        primitives.append(primitive)
        self.assertIsInstance(primitive, revl.Primitive)
        self.assertTrue(primitive.generator.hasFn(OpenMaya.MFn.kSphere))
        self.assertTrue(primitive.transform.hasFn(OpenMaya.MFn.kTransform))
        self.assertEqual(len(primitive.shapes), 1)
        self.assertTrue(
            all(
                shape.hasFn(OpenMaya.MFn.kNurbsSurface)
                for shape in primitive.shapes))
        self.assertEqual(len(context.transforms), len(primitives) + 1)

        primitive = revl.createPrimitive(context,
                                         revl.PrimitiveType.POLY_SPHERE,
                                         parent=True)
        primitives.append(primitive)
        self.assertIsInstance(primitive, revl.Primitive)
        self.assertTrue(primitive.generator.hasFn(OpenMaya.MFn.kPolySphere))
        self.assertTrue(primitive.transform.hasFn(OpenMaya.MFn.kTransform))
        self.assertEqual(len(primitive.shapes), 1)
        self.assertTrue(
            all(shape.hasFn(OpenMaya.MFn.kMesh) for shape in primitive.shapes))
        self.assertEqual(len(context.transforms), len(primitives) + 1)

        context.dag.doIt()
        context.dg.doIt()

        dagPath = OpenMaya.MDagPath()
        for primitive in primitives:
            OpenMaya.MDagPath.getAPathTo(primitive.transform, dagPath)
            self.assertTrue(dagPath.length() > 1)
Пример #6
0
    def testCreatePrimitive2(self):
        context = revl.Context()
        primitives = []

        primitive = revl.createPrimitive(context,
                                         revl.PrimitiveType.NURBS_CIRCLE)
        primitives.append(primitive)
        self.assertIsInstance(primitive, revl.Primitive)
        self.assertTrue(primitive.generator.hasFn(OpenMaya.MFn.kCircle))
        self.assertTrue(primitive.transform.hasFn(OpenMaya.MFn.kTransform))
        self.assertEqual(len(primitive.shapes), 1)
        self.assertTrue(
            all(
                shape.hasFn(OpenMaya.MFn.kNurbsCurve)
                for shape in primitive.shapes))
        self.assertEqual(len(context.transforms), len(primitives))

        primitive = revl.createPrimitive(context,
                                         revl.PrimitiveType.NURBS_CONE)
        primitives.append(primitive)
        self.assertIsInstance(primitive, revl.Primitive)
        self.assertTrue(primitive.generator.hasFn(OpenMaya.MFn.kCone))
        self.assertTrue(primitive.transform.hasFn(OpenMaya.MFn.kTransform))
        self.assertEqual(len(primitive.shapes), 1)
        self.assertTrue(
            all(
                shape.hasFn(OpenMaya.MFn.kNurbsSurface)
                for shape in primitive.shapes))
        self.assertEqual(len(context.transforms), len(primitives))

        primitive = revl.createPrimitive(context,
                                         revl.PrimitiveType.NURBS_CUBE)
        primitives.append(primitive)
        self.assertIsInstance(primitive, revl.Primitive)
        self.assertTrue(primitive.generator.hasFn(OpenMaya.MFn.kNurbsCube))
        self.assertTrue(primitive.transform.hasFn(OpenMaya.MFn.kTransform))
        self.assertEqual(len(primitive.shapes), 6)
        self.assertTrue(
            all(
                shape.hasFn(OpenMaya.MFn.kNurbsSurface)
                for shape in primitive.shapes))
        self.assertEqual(len(context.transforms), len(primitives))

        primitive = revl.createPrimitive(context,
                                         revl.PrimitiveType.NURBS_CYLINDER)
        primitives.append(primitive)
        self.assertIsInstance(primitive, revl.Primitive)
        self.assertTrue(primitive.generator.hasFn(OpenMaya.MFn.kCylinder))
        self.assertTrue(primitive.transform.hasFn(OpenMaya.MFn.kTransform))
        self.assertEqual(len(primitive.shapes), 1)
        self.assertTrue(
            all(
                shape.hasFn(OpenMaya.MFn.kNurbsSurface)
                for shape in primitive.shapes))
        self.assertEqual(len(context.transforms), len(primitives))

        primitive = revl.createPrimitive(context,
                                         revl.PrimitiveType.NURBS_PLANE)
        primitives.append(primitive)
        self.assertIsInstance(primitive, revl.Primitive)
        self.assertTrue(primitive.generator.hasFn(OpenMaya.MFn.kNurbsPlane))
        self.assertTrue(primitive.transform.hasFn(OpenMaya.MFn.kTransform))
        self.assertEqual(len(primitive.shapes), 1)
        self.assertTrue(
            all(
                shape.hasFn(OpenMaya.MFn.kNurbsSurface)
                for shape in primitive.shapes))
        self.assertEqual(len(context.transforms), len(primitives))

        primitive = revl.createPrimitive(context,
                                         revl.PrimitiveType.NURBS_SPHERE)
        primitives.append(primitive)
        self.assertIsInstance(primitive, revl.Primitive)
        self.assertTrue(primitive.generator.hasFn(OpenMaya.MFn.kSphere))
        self.assertTrue(primitive.transform.hasFn(OpenMaya.MFn.kTransform))
        self.assertEqual(len(primitive.shapes), 1)
        self.assertTrue(
            all(
                shape.hasFn(OpenMaya.MFn.kNurbsSurface)
                for shape in primitive.shapes))
        self.assertEqual(len(context.transforms), len(primitives))

        primitive = revl.createPrimitive(context,
                                         revl.PrimitiveType.NURBS_SQUARE)
        primitives.append(primitive)
        self.assertIsInstance(primitive, revl.Primitive)
        self.assertTrue(primitive.generator.hasFn(OpenMaya.MFn.kNurbsSquare))
        self.assertTrue(primitive.transform.hasFn(OpenMaya.MFn.kTransform))
        self.assertEqual(len(primitive.shapes), 4)
        self.assertTrue(
            all(
                shape.hasFn(OpenMaya.MFn.kNurbsCurve)
                for shape in primitive.shapes))
        self.assertEqual(len(context.transforms), len(primitives))

        primitive = revl.createPrimitive(context,
                                         revl.PrimitiveType.NURBS_TORUS)
        primitives.append(primitive)
        self.assertIsInstance(primitive, revl.Primitive)
        self.assertTrue(primitive.generator.hasFn(OpenMaya.MFn.kTorus))
        self.assertTrue(primitive.transform.hasFn(OpenMaya.MFn.kTransform))
        self.assertEqual(len(primitive.shapes), 1)
        self.assertTrue(
            all(
                shape.hasFn(OpenMaya.MFn.kNurbsSurface)
                for shape in primitive.shapes))
        self.assertEqual(len(context.transforms), len(primitives))

        primitive = revl.createPrimitive(context, revl.PrimitiveType.POLY_CONE)
        primitives.append(primitive)
        self.assertIsInstance(primitive, revl.Primitive)
        self.assertTrue(primitive.generator.hasFn(OpenMaya.MFn.kPolyCone))
        self.assertTrue(primitive.transform.hasFn(OpenMaya.MFn.kTransform))
        self.assertEqual(len(primitive.shapes), 1)
        self.assertTrue(
            all(shape.hasFn(OpenMaya.MFn.kMesh) for shape in primitive.shapes))
        self.assertEqual(len(context.transforms), len(primitives))

        primitive = revl.createPrimitive(context, revl.PrimitiveType.POLY_CUBE)
        primitives.append(primitive)
        self.assertIsInstance(primitive, revl.Primitive)
        self.assertTrue(primitive.generator.hasFn(OpenMaya.MFn.kPolyCube))
        self.assertTrue(primitive.transform.hasFn(OpenMaya.MFn.kTransform))
        self.assertEqual(len(primitive.shapes), 1)
        self.assertTrue(
            all(shape.hasFn(OpenMaya.MFn.kMesh) for shape in primitive.shapes))
        self.assertEqual(len(context.transforms), len(primitives))

        primitive = revl.createPrimitive(context,
                                         revl.PrimitiveType.POLY_CYLINDER)
        primitives.append(primitive)
        self.assertIsInstance(primitive, revl.Primitive)
        self.assertTrue(primitive.generator.hasFn(OpenMaya.MFn.kPolyCylinder))
        self.assertTrue(primitive.transform.hasFn(OpenMaya.MFn.kTransform))
        self.assertEqual(len(primitive.shapes), 1)
        self.assertTrue(
            all(shape.hasFn(OpenMaya.MFn.kMesh) for shape in primitive.shapes))
        self.assertEqual(len(context.transforms), len(primitives))

        primitive = revl.createPrimitive(context,
                                         revl.PrimitiveType.POLY_HELIX)
        primitives.append(primitive)
        self.assertIsInstance(primitive, revl.Primitive)
        self.assertTrue(primitive.generator.hasFn(OpenMaya.MFn.kPolyHelix))
        self.assertTrue(primitive.transform.hasFn(OpenMaya.MFn.kTransform))
        self.assertEqual(len(primitive.shapes), 1)
        self.assertTrue(
            all(shape.hasFn(OpenMaya.MFn.kMesh) for shape in primitive.shapes))
        self.assertEqual(len(context.transforms), len(primitives))

        primitive = revl.createPrimitive(context, revl.PrimitiveType.POLY_MISC)
        primitives.append(primitive)
        self.assertIsInstance(primitive, revl.Primitive)
        self.assertTrue(
            primitive.generator.hasFn(OpenMaya.MFn.kPolyPrimitiveMisc))
        self.assertTrue(primitive.transform.hasFn(OpenMaya.MFn.kTransform))
        self.assertEqual(len(primitive.shapes), 1)
        self.assertTrue(
            all(shape.hasFn(OpenMaya.MFn.kMesh) for shape in primitive.shapes))
        self.assertEqual(len(context.transforms), len(primitives))

        primitive = revl.createPrimitive(context, revl.PrimitiveType.POLY_PIPE)
        primitives.append(primitive)
        self.assertIsInstance(primitive, revl.Primitive)
        self.assertTrue(primitive.generator.hasFn(OpenMaya.MFn.kPolyPipe))
        self.assertTrue(primitive.transform.hasFn(OpenMaya.MFn.kTransform))
        self.assertEqual(len(primitive.shapes), 1)
        self.assertTrue(
            all(shape.hasFn(OpenMaya.MFn.kMesh) for shape in primitive.shapes))
        self.assertEqual(len(context.transforms), len(primitives))

        primitive = revl.createPrimitive(context,
                                         revl.PrimitiveType.POLY_PLANE)
        primitives.append(primitive)
        self.assertIsInstance(primitive, revl.Primitive)
        self.assertTrue(primitive.generator.hasFn(OpenMaya.MFn.kPolyMesh))
        self.assertTrue(primitive.transform.hasFn(OpenMaya.MFn.kTransform))
        self.assertEqual(len(primitive.shapes), 1)
        self.assertTrue(
            all(shape.hasFn(OpenMaya.MFn.kMesh) for shape in primitive.shapes))
        self.assertEqual(len(context.transforms), len(primitives))

        primitive = revl.createPrimitive(
            context, revl.PrimitiveType.POLY_PLATONIC_SOLID)
        primitives.append(primitive)
        self.assertIsInstance(primitive, revl.Primitive)
        self.assertTrue(
            primitive.generator.hasFn(OpenMaya.MFn.kPolyPlatonicSolid))
        self.assertTrue(primitive.transform.hasFn(OpenMaya.MFn.kTransform))
        self.assertEqual(len(primitive.shapes), 1)
        self.assertTrue(
            all(shape.hasFn(OpenMaya.MFn.kMesh) for shape in primitive.shapes))
        self.assertEqual(len(context.transforms), len(primitives))

        primitive = revl.createPrimitive(context,
                                         revl.PrimitiveType.POLY_PRISM)
        primitives.append(primitive)
        self.assertIsInstance(primitive, revl.Primitive)
        self.assertTrue(primitive.generator.hasFn(OpenMaya.MFn.kPolyPrism))
        self.assertTrue(primitive.transform.hasFn(OpenMaya.MFn.kTransform))
        self.assertEqual(len(primitive.shapes), 1)
        self.assertTrue(
            all(shape.hasFn(OpenMaya.MFn.kMesh) for shape in primitive.shapes))
        self.assertEqual(len(context.transforms), len(primitives))

        primitive = revl.createPrimitive(context,
                                         revl.PrimitiveType.POLY_PYRAMID)
        primitives.append(primitive)
        self.assertIsInstance(primitive, revl.Primitive)
        self.assertTrue(primitive.generator.hasFn(OpenMaya.MFn.kPolyPyramid))
        self.assertTrue(primitive.transform.hasFn(OpenMaya.MFn.kTransform))
        self.assertEqual(len(primitive.shapes), 1)
        self.assertTrue(
            all(shape.hasFn(OpenMaya.MFn.kMesh) for shape in primitive.shapes))
        self.assertEqual(len(context.transforms), len(primitives))

        primitive = revl.createPrimitive(context,
                                         revl.PrimitiveType.POLY_SPHERE)
        primitives.append(primitive)
        self.assertIsInstance(primitive, revl.Primitive)
        self.assertTrue(primitive.generator.hasFn(OpenMaya.MFn.kPolySphere))
        self.assertTrue(primitive.transform.hasFn(OpenMaya.MFn.kTransform))
        self.assertEqual(len(primitive.shapes), 1)
        self.assertTrue(
            all(shape.hasFn(OpenMaya.MFn.kMesh) for shape in primitive.shapes))
        self.assertEqual(len(context.transforms), len(primitives))

        primitive = revl.createPrimitive(context,
                                         revl.PrimitiveType.POLY_TORUS)
        primitives.append(primitive)
        self.assertIsInstance(primitive, revl.Primitive)
        self.assertTrue(primitive.generator.hasFn(OpenMaya.MFn.kPolyTorus))
        self.assertTrue(primitive.transform.hasFn(OpenMaya.MFn.kTransform))
        self.assertEqual(len(primitive.shapes), 1)
        self.assertTrue(
            all(shape.hasFn(OpenMaya.MFn.kMesh) for shape in primitive.shapes))
        self.assertEqual(len(context.transforms), len(primitives))

        context.dag.doIt()
        context.dg.doIt()

        dagPath = OpenMaya.MDagPath()
        for primitive in primitives:
            OpenMaya.MDagPath.getAPathTo(primitive.transform, dagPath)
            self.assertEqual(dagPath.length(), 1)