vex: centering - miyagiA/MyLearningNote GitHub Wiki

オブジェクトをセンタリングする

point wrangle

// オブジェクトのバウンディングボックスの中心を取得する (centroid)
vector min = {0, 0, 0};
vector max = {0, 0, 0};
getpointbbox(0, min, max);
vector centroid = (max + min)/2.0;
//中心をY=0にしたい場合は下記を記載
centroid.y=min.y;

//変換行列を作成して適用
vector translate = centroid;
vector rotate = {0,0,0};
vector scale = {1,1,1};
matrix xform = invert(maketransform(0, 0, translate, rotate, scale));
@P *= xform;

// 変換行列をアトリビュートに格納する
4@xform_matrix = xform;