zoukankan      html  css  js  c++  java
  • gt_2_toborrow_pick_ray_blend

    -----写一个toborrow 函数,用前面的函数就行处理,
    ----include 的使用一定要括起来。

    ---好,下面是 射线借用函数。

    global  gt_2_collect_mesh_normal_vertexs,gt_2_collect_poly_vertexs,gt_2_pick_filter,gt_2_convertToMesh,gt_2_convertToPoly_Nopick,gt_2_toborrow_pick_ray_blend
    ---导入mesh的法线数组
    (
     include"E:\工作文件\2011.5.12\法线变形问题\gt_2_collect_mesh_normal_vertexs.ms" 
    )
     ---gt_2_collect_mesh_normal_vertexs $ 可用

    ---导入poly的顶点数组
     (
      include"E:\工作文件\2011.5.12\法线变形问题\gt_2_collect_poly_vertexs.ms" 
     )
     ---gt_2_collect_poly_vertexs $ 能用
     ---导入过滤的选择
     (
     include"E:\工作文件\2011.5.12\法线变形问题\gt_2_pick_filter.ms" 
     )
     
     --------转mesh 在转poly 在这里里面都是要导入的,
     (
      include"E:\工作文件\2011.5.12\法线变形问题\gt_2_convertToMesh.ms" 
     )
     (
     include"E:\工作文件\2011.5.12\法线变形问题\gt_2_convertToPoly_Nopick.ms"  
     )
     
     ---- 但是在用这个函数时没有加入量数的 数量的限制 ,这个我要在事件中加入。
    fn gt_2_toborrow_pick_ray_blend    =
    (    
      try (
      target_mesh = pickObject message:"Pick Target Surface:" filter:gt_2_pick_filter  rubberBand:selection.center  rubberBandColor:green --- 这种拾取的方法更好。不用再显示;
      )catch (messagebox "可能是过滤函数丢失造成的。" title:"盖天编写" )
      if isValidNode target_mesh then ---这个好用, 是如果节点没有被删除。
      (
       undo "scripts" on
       (
        ---把拾取的物体转成mesh
          convertToMesh target_mesh
            gt_2_convertToMesh $
        normal_array =gt_2_collect_mesh_normal_vertexs $ ---mesh法线数组
          gt_2_convertToPoly_Nopick $
           poly_verects_array = gt_2_collect_poly_vertexs $ ---poly 点的坐标数组
       
        for i in 1 to  normal_array.count do
        (
     
         local testRay = ray poly_verects_array[i]  normal_array[i]
        
         int_point= intersectRay target_mesh testRay
      -- print  int_point as string
         if int_point != undefined and  int_point != ok then
       (
        ----应该是设置的点的坐标 到新的位置上去。
        
       ray_pos_point = (int_point.pos)---int_point.pos 射线的位置
       polyop.setVert $  i  ray_pos_point
       -- print int_point.pos
      )
        )--end i loop
        ----把法线转回来
          try (
         oop = Normalmodifier ();oop.flip =true
       addModifier $  oop
       convertToMesh  $   )catch (
       
       messagebox "操作不当,没按流程操作。\n返回。" title:"盖天编写"
       return false
      )
       
       
       )--end undo
      )--end if
     )----end fn  gt_become_deformed_pick_Aligner

  • 相关阅读:
    Microsoft Web Camp
    [程序员学英语]26个英文字母
    原来接口是这样用的!一个例子搞定接口
    BizTalk Server 2010 培训
    [PM Tools]软件项目进度跟踪表v4.0
    BizTalk 开发系列(四十一) BizTalk 2010 BAM 安装手记
    WCF服务编程HelloWorld
    BizTalk 开发系列(三十九) BizTalk Server 2009技术概览
    WCF服务编程WCF应用程序的消息跟踪
    WCF服务编程基础
  • 原文地址:https://www.cnblogs.com/gaitian00/p/2044856.html
Copyright © 2011-2022 走看看