import maya.cmds as mc
import maya.mel as mm
from zBuilder.nodes import Ziva
import logging
logger = logging.getLogger(__name__)
[docs]class SolverNode(Ziva):
""" This node is for storing information related to zSolver.
"""
type = 'zSolver'
""" The type of node. """
def __init__(self, *args, **kwargs):
Ziva.__init__(self, *args, **kwargs)
[docs] def build(self, *args, **kwargs):
""" Builds the zSolver in maya scene.
Args:
attr_filter (dict): Attribute filter on what attributes to get.
dictionary is key value where key is node type and value is
list of attributes to use.
tmp = {'zSolver':['substeps']}
permissive (bool): Pass on errors. Defaults to ``True``
"""
attr_filter = kwargs.get('attr_filter', list())
permissive = kwargs.get('permissive', True)
solver_name = self.get_scene_name()
if not mc.objExists(solver_name):
results = mm.eval('ziva -s')
solver = mc.ls(results, type='zSolver')[0]
solverTransform = mc.ls(results, type='zSolverTransform')[0]
mc.rename(solver, solver_name.split('|')[-1])
self.mobject = solver_name
st = self.builder.bundle.get_scene_items(type_filter='zSolverTransform')[0]
mc.rename(solverTransform, st.name)
else:
new_name = mc.rename(self.get_scene_name(), self.name)
self.mobject = new_name
self.set_maya_attrs(attr_filter=attr_filter)