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

原文地址:https://www.cnblogs.com/gaitian00/p/2044856.html