// Change Point Order in QuadPoly v0.132
@name "ChangePointOrder"
@version 2.5
@warnings
@script modeler
// 一度に対象にする最大ポリゴン数
@define MAX_POLY 50
main
{
var BuffTmp[6];
selmode(DIRECT);
BuffTmp = polycount();
// 90/92/93 はpoint/poly countでUndoバッファを消費する
@if version < 2.2
undo();
@end
@if version > 2.7
undo();
@end
// 1行内で2つのdefineは効かない?↓
if(BuffTmp[5] == 0 || BuffTmp[5] > MAX_POLY){
error("
Need Select. or Allow lower than ",MAX_POLY," Quad Polys.");
return;
}
if(BuffTmp[1] != BuffTmp[5]){
// [1]はポリ総数、[5]は四角ポリの数。四角以外の選択解除
selmode(USER);
selpolygon(CLEAR, NVLT, 4);
selpolygon(CLEAR, NVGT, 4);
selmode(DIRECT);
}
var PntIdx[4];
var SelPoly = BuffTmp[5];
editbegin();
for(i = 1; i <= SelPoly; i++){
@if version == 2.5
// 戻りの[1]はSurface、以降[2]...とpointが順に続く
BuffTmp = polyinfo(polygons[i]);
PntIdx[1] = BuffTmp[3];
PntIdx[2] = BuffTmp[4];
PntIdx[3] = BuffTmp[5];
PntIdx[4] = BuffTmp[2];
@else
PntIdx[1] = polygons[i].points[2];
PntIdx[2] = polygons[i].points[3];
PntIdx[3] = polygons[i].points[4];
PntIdx[4] = polygons[i].points[1];
@end
polypoints(polygons[i], PntIdx);
}
editend();
info("
Changed PointOrder");
}