昔MELで作ったボロノイ分割をMayaのC++プラグインで作って高速にしたいと思い、Mayaのプラグインを作っています。とりあえず、コマンドとしてポリゴンを分割するプラグインを作ろうとしています。MayaのAPIを触るのは久しぶりなので徐々に思い出しながら作っています。完成するかわからないですがのんびりやっていきます。
とりあえず、思い出したOpenMayaでポリゴンを生成するコードをまた忘れぬよう載せておきます。
4つの頂点を持つ平面ポリゴンを生成するコード
MFnMesh fn_mesh;
/* Create Polygon */
float src_ver_list[][4] = {
{-1.0f, 0.0f, 1.0f, 0.0f},
{ 1.0f, 0.0f, 1.0f, 0.0f},
{ 1.0f, 0.0f,-1.0f, 0.0f},
{-1.0f, 0.0f,-1.0f, 0.0f}
};
int num_poly = 2;
int src_poly_cnt[] = {3, 3};
int src_poly_connects[] = {
0, 1, 3,
1, 2, 3
};
MFloatPointArray ver_list(src_ver_list, 4);
MIntArray poly_cnt(src_poly_cnt, 2);
MIntArray poly_connects(src_poly_connects, 6);
fn_mesh.create(
ver_list.length(),
num_poly,
ver_list,
poly_cnt,
poly_connects
);