• 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

  • 相关阅读:
    How to Use HyperV Snapshot Revert, Apply, and Delete Options
    读取含有命名空间xml文件内容
    C# 如何判断文件属性(like: readonly)
    Winform: how to cancel the winform close when click the "x" button
    Android 程序打包及签名 【图解】
    【转】近两日极为纠结——游戏服务器,选择何种技术方案?(Python + SWIGRakNet + Lua)
    apk打包和反编译三、有关 Conversion to Dalvik format failed with error 1
    (转)投票软件识别验证码思路及方法
    如何解决Android中输入法挡住输入框的问题
    A folder failed to be renamed or moved安装Android SDK的问题
  • 原文地址:https://www.cnblogs.com/gaitian00/p/2044856.html
Copyright © 2020-2023  润新知