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)
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)
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)
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
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)
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)