cameraEdit_meshEdit
来源:互联网 发布:淘宝网夏季唐装 编辑:程序博客网 时间:2024/06/15 09:18
import maya.OpenMaya as OpenMayaimport maya.cmds as cmdsdef getCameraLimit(cameraName,distance = 10000,offset = 0): sel = OpenMaya.MSelectionList() sel.add(cameraName) camera_obj = OpenMaya.MObject() sel.getDependNode(0,camera_obj) camera = OpenMaya.MFnCamera(camera_obj) result = [OpenMaya.MScriptUtil(), OpenMaya.MScriptUtil(), OpenMaya.MScriptUtil(), OpenMaya.MScriptUtil()] result_double = [result[0].asDoublePtr(), result[1].asDoublePtr(), result[2].asDoublePtr(), result[3].asDoublePtr()] camera.getFilmFrustum(distance, result_double[0], result_double[1], result_double[2], result_double[3],False) width = result[0].getDouble(result_double[0])*0.5 #widthOffset = width* result[2].getDouble(result_double[2]) widthOffset = 0 high = width*1.0/cmds.getAttr('defaultResolution.w')*cmds.getAttr('defaultResolution.h') #highOffset = high* result[3].getDouble(result_double[3]) highOffset = 0 points = OpenMaya.MPointArray() points.append(camera.eyePoint()) points.append(OpenMaya.MPoint(-width-widthOffset-offset,high-highOffset+offset,-distance)) points.append(OpenMaya.MPoint(-width-widthOffset-offset,-high-highOffset-offset,-distance)) points.append(OpenMaya.MPoint(width-widthOffset+offset,-high-highOffset-offset,-distance)) points.append(OpenMaya.MPoint(width-widthOffset+offset,high-highOffset+offset,-distance)) newMesh = OpenMaya.MFnMesh() polygonCounts = OpenMaya.MIntArray() for i in [3,3,3,3,4]: polygonCounts.append(i) polygonConnects = OpenMaya.MIntArray() for i in [0,1,2,0,2,3,0,3,4,0,4,1,1,2,3,4]: polygonConnects.append(i) newMesh.create(5,5,points,polygonCounts,polygonConnects) transform = newMesh.parent(0) OpenMaya.MFnDagNode(camera.parent(0)).addChild(transform) return OpenMaya.MFnDagNode(transform).fullPathName()def getBoundingBoxMesh(objName): #sel = OpenMaya.MSelectionList() #sel.add(objName) #obj = OpenMaya.MObject() #sel.getDependNode(0,obj) #dagNode = OpenMaya.MFnDagNode(obj) #bbx = dagNode.boundingBox() bbx = cmds.xform(objName,q = True,ws = True,boundingBox = True) points = OpenMaya.MPointArray() #min = [bbx.min().x,bbx.min().y,bbx.min().z] #max = [bbx.max().x,bbx.max().y,bbx.max().z] min = [bbx[0],bbx[1],bbx[2]] max = [bbx[3],bbx[4],bbx[5]] points.append(OpenMaya.MPoint(min[0],min[1],max[2])) points.append(OpenMaya.MPoint(max[0],min[1],max[2])) points.append(OpenMaya.MPoint(min[0],max[1],max[2])) points.append(OpenMaya.MPoint(max[0],max[1],max[2])) points.append(OpenMaya.MPoint(min[0],max[1],min[2])) points.append(OpenMaya.MPoint(max[0],max[1],min[2])) points.append(OpenMaya.MPoint(min[0],min[1],min[2])) points.append(OpenMaya.MPoint(max[0],min[1],min[2])) newMesh = OpenMaya.MFnMesh() polygonCounts = OpenMaya.MIntArray() for i in [4,4,4,4,4,4]: polygonCounts.append(i) polygonConnects = OpenMaya.MIntArray() for i in [0,1,3,2,2,3,5,4,6,4,5,7,6,7,1,0,6,0,2,4,1,7,5,3]: polygonConnects.append(i) newMesh.create(8,6,points,polygonCounts,polygonConnects) return OpenMaya.MFnDagNode(newMesh.parent(0)).fullPathName()
0 0
- cameraEdit_meshEdit
- SSH框架系列:Spring配置多个数据源
- java maven项目找不到jconsole-1.8.0.jar和tools-1.8.0.jar包
- 关于spring,IOC和AOP的解析原理和举例 http://blog.sina.com.cn/s/blog_624a352c0101fo9j.html
- leetcode63.[DP] Unique Paths II
- FragmentPagerAdapter和FragmentStatePagerAdapter的区别(重新温习)
- cameraEdit_meshEdit
- 梯度下降法综述
- 12.归档及控制器跳转
- Linux删除软链接
- 利用ObjectAnimator实现侧滑菜单的效果
- 关于沉浸式状态栏的一些心得
- 如何修改ZBrush 4R7中工作区颜色
- Delphi 记录类型- 结构指针
- java基础--遍历Map的四种方法