2005年06月06日

CenterUV

CenterDataのUV版
Symmetryモードで左右対称にUV編集が出来るので便利です。

 

/**************************************

CenterDataのUV版

***************************************/

@script modeler
@name CenterUV
@version 2.3

main
{
 vmap = VMap(VMTEXTURE) || error("メッシュ内部にUV Mapはありません。 ");
 while( vmap && vmap.type == VMTEXTURE ){
  vmapnames += vmap.name;
  vmap = vmap.next();
 }
 
 reqbegin("Center UV");
 c1 = ctlpopup("Texture", 1, vmapnames);
 return if !reqpost();
 vindex = getvalue(c1);
 reqend();
 
 vmap = VMap(vmapnames[vindex]) || error(vmapnames[vindex],"を取得できません。");
 
 selmode(USER);
 editbegin();
 
 valmax[1] = -100.0;
 valmax[2] = -100.0;
 valmin[1] = 100.0;
 valmin[2] = 100.0;
 
 foreach(p, points){
  if( vmap.isMapped(p) ){
   values = vmap.getValue(p);
   if( values[1] > valmax[1] ) valmax[1] = values[1];
   else if( values[1] < valmin[1] ) valmin[1] = values[1];
   if( values[2] > valmax[2] ) valmax[2] = values[2];
   else if( values[2] < valmin[2] ) valmin[2] = values[2];
  }
 }
 
 offset[1] = (valmin[1] + (valmax[1]-valmin[1])*0.5) * -1;
 offset[2] = (valmin[2] + (valmax[2]-valmin[2])*0.5) * -1;
 
 foreach(p, points){
  if( vmap.isMapped(p) ){
   values = vmap.getValue(p);
   values[1] += offset[1];
   values[2] += offset[2];
   vmap.setValue(p, values);
  }
 }
 
 editend();
}

posted by toka at 16:05| Comment(0) | TrackBack(0) | LScript | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:


この記事へのトラックバック
×

この広告は90日以上新しい記事の投稿がないブログに表示されております。