基本的なやり方は直交格子と同じです。詳細はXCodeでVTK楽園を参照
ImageData.hの代わりにvtkStructuredGrid.hをincludeします。その後座標を設定し、値を設定します。値の設定のやり方はモロ直交格子と同じです。
単一領域のファイル出力をしたいならvtkXMLStructuredGridWriterをインクルードしてください。
- 座標の設定
まず構造格子と格子点(6面体のセルの角)を宣言します。(ここまで直交と同じ)
vtkSmartPointer<vtkStructuredGrid> image = vtkSmartPointer<vtkStructuredGrid>::New();
vtkSmartPointer<vtkPoints> points = vtkSmartPointer<vtkPoints>::New();
次に格子点に具体的な座標を与えていきます。(ここでcellの数はimax*jmax*kmaxとします。)
x=hoge,y=hige,z=hage;
for(int i = 0; i < imax+1; i++){
for(int j = 0; j < jmax+1; j++){
for(int k = 0; k < kmax+1; k++){
points->InsertNextPoint(x,y,z);
}
}
}
その後セルの数を設定します(引数に注意、for文をijkで回したならkmax,jmax,imaxの順)
image->SetDimensions(kmax+1,jmax+1,imax+1);
構造格子に格子点を設定します(ここから同じ)
image->SetPoints(points);
- 値の設定 (ちょっとした注意点)
設定した座標と同じ順にインクリメントされます。つまり設定した座標と同じ順にfor文を入れ子にしてください。ijkの順ならijkの順にといったノリで。