poly 的奇数 偶数 隔点选择
---段数的跳一个 选择一个,这样进行处理。点数的,面数的处理
---起初我是这么想的。用when 语句进行操作,单我按下按钮时,就是这样的,当我点击的线符合拓扑结构时。
---产生横向与纵向的连长,但是我后来就不这么想了。
---尤其是在听了路生的教导后。我不想在刷什么。我要做的工作是,在max的基础上,做东西。补不足。 max 能实现的,大家都在用,所以习惯了,
---不是很好改了。
---好了,写东西了。起初只是想写线的,现在看来,我要写 点的 边的, 面的 奇数 偶数的选择。2011.4.22 晚
---由于在选择中选择缺口 返回的是边,所以 所以这样按缺口选择的 估计有特定的函数,或有特定的组,
---这个我在后卖在考虑。
fn odd_numbers_even_numbers input_poly type_t odd_even num =
(
---结构是点 边 面 在往下就是 奇数性 还有就是偶数性
case of ---这个是我的手动的处理。所以这里面我只列举3 中情况进行处理。
(
(type_t == "select_vertex"):(
local mod_array =#()
local mod_back_array =#()
Back_Verts_array = polyop.getVertSelection input_poly
Back_Verts_array =Back_Verts_array as array
if Back_Verts_array.count !=0 then
(
Back_Verts_array =sort Back_Verts_array --数组排列方便选择。
for i in 1 to Back_Verts_array.count do
(
if (mod i num )as integer ==0 then
(
append mod_array Back_Verts_array[i]
)else
(
append mod_back_array Back_Verts_array[i]
)---end else
)---end for
if odd_even=="odd"then
(
polyop.setVertSelection input_poly mod_back_array
)--end odd
if odd_even=="even" then
(
polyop.setVertSelection input_poly mod_array
)---end enen
)----end back_vertex_array
)---end ()
(type_t == "select_edge"):(
local mod_array =#()
local mod_back_array =#()
Back_Verts_array = polyop.getEdgeSelection input_poly
Back_Verts_array =Back_Verts_array as array
if Back_Verts_array.count !=0 then
(
Back_Verts_array =sort Back_Verts_array --数组排列方便选择。
for i in 1 to Back_Verts_array.count do
(
if (mod i num )as integer ==0 then
(
append mod_array Back_Verts_array[i]
)else
(
append mod_back_array Back_Verts_array[i]
)---end else
)---end for
if odd_even=="odd"then
(
polyop.setEdgeSelection input_poly mod_back_array
)--end odd
if odd_even=="even" then
(
polyop.setEdgeSelection input_poly mod_array
)---end enen
)----end back_vertex_array
)---end ()
(type_t == "select_polygon"):(
local mod_array =#()
local mod_back_array =#()
Back_Verts_array = polyop.getFaceSelection input_poly
Back_Verts_array =Back_Verts_array as array
if Back_Verts_array.count !=0 then
(
Back_Verts_array =sort Back_Verts_array --数组排列方便选择。
for i in 1 to Back_Verts_array.count do
(
if (mod i num )as integer ==0 then
(
append mod_array Back_Verts_array[i]
)else
(
append mod_back_array Back_Verts_array[i]
)---end else
)---end for
if odd_even=="odd"then
(
polyop.setFaceSelection input_poly mod_back_array
)--end odd
if odd_even=="even" then
(
polyop.setFaceSelection input_poly mod_array
)---end enen
)else return false ----end back_vertex_array
)---end ()
)---enf case
)---end fn
---我觉得点的选择可以由面点会来,这个就不用写了。其实原来也是有面转成点,这个不是很费时间。
---我做的工具也是配合max 的命令一期操作的,所以这个就不选了。