def test_is_visible(self): _sphere = hom.CMDS.polySphere() _grp1 = hom.CMDS.group() _grp2 = _grp1.duplicate() _sphere1 = hom.HFnMesh( get_single( _grp1.list_relatives(allDescendents=True, path=True, type='transform'))) _sphere2 = hom.HFnMesh( get_single( _grp2.list_relatives(allDescendents=True, path=True, type='transform'))) _sphere2.hide() assert is_visible(_sphere1.shp) assert not is_visible(_sphere2.shp)
def find_meshes(self): """Find meshes in this reference. Returns: (HFnMesh list): meshes """ from maya_psyhive import open_maya as hom _meshes = [] for _shp in self.find_nodes(type_='mesh'): if _shp.plug('intermediateObject').get_val(): continue _mesh = hom.HFnMesh(get_parent(_shp)) _meshes.append(_mesh) return _meshes
def find_meshes(self): """Find meshes in the current scene. Returns: (HFnMesh list): meshes """ _meshes = [] for _shp in hom.CMDS.ls(type='mesh'): if _shp.namespace: continue if _shp.plug('intermediateObject').get_val(): continue _mesh = hom.HFnMesh(get_parent(_shp)) _meshes.append(_mesh) return _meshes
def test_shade_geo_from_rig(self): _path = (_DEV_PROJ.path + '/assets/3D/character/archer/' 'rig/output/rig/rig_main/v016/maya/archer_rig_main_v016.mb') _ref = ref.obtain_ref(file_=_path, namespace='archer_test') _ref.get_node('placer_Ctrl', class_=hom.HFnTransform).tz.set_val(10) _bbox = _ref.get_node('hairStrand_04_Geo', class_=hom.HFnMesh).bbox() _cache_set = nt.ObjectSet(_ref.get_node('bakeSet')) _n_refs = len(ref.find_refs()) del_namespace(':tmp_archer_test') tank_support.drive_shade_geo_from_rig(_cache_set, verbose=1) assert len(ref.find_refs()) == _n_refs _geo = hom.HFnMesh('tmp_archer_test:hairStrand_04_Geo') assert _geo.bbox().min == _bbox.min assert _geo.bbox().max == _bbox.max
def read_mesh_data(verbose=0): """Read mesh data from current scene. Args: verbose (int): print process data Returns: (dict): mesh data """ # Get list of meshes if cmds.objExists('bakeSet'): _meshes = [] for _node in cmds.sets('bakeSet', query=True): try: _meshes.append(hom.HFnMesh(_node)) except RuntimeError: continue else: _meshes = hom.find_nodes(class_=hom.HFnMesh) # Read mesh data _data = {} for _mesh in _meshes: if _mesh.isFromReferencedFile: continue _uv_sets = [str(_set) for _set in _mesh.getUVSetNames()] lprint('MESH', _mesh, _mesh.shp, _mesh.shp.typeName, verbose=verbose) lprint(' - NUM VTXS', _mesh.numVertices, verbose=verbose) lprint(' - UV SETS', _mesh.numUVSets, _uv_sets, verbose=verbose) _mesh_data = {} _mesh_data['uv_sets'] = _uv_sets _mesh_data['vtx_count'] = _mesh.numVertices _mesh_data['poly_count'] = _mesh.numPolygons _data[str(_mesh)] = _mesh_data return _data