//--------------------------------------------------------------------------- void OGLGeo::voxel(Voxel &v_in) { //Voxel int i,j,k,index_temp; for(k=0;k<v_in.mesh_z;k++) { for(j=0;j<v_in.mesh_y;j++) { for(i=0;i<v_in.mesh_x;i++) { index_temp=v_in.index(i,j,k); if(v_in.flag[index_temp]!=0) { double x0=v_in.x0+i*v_in.dx; double x1=v_in.x0+(i+1)*v_in.dx; double y0=v_in.y0+j*v_in.dy; double y1=v_in.y0+(j+1)*v_in.dy; double z0=v_in.z0+k*v_in.dz; double z1=v_in.z0+(k+1)*v_in.dz; GL_Box(x0,x1,y0,y1,z0,z1); } } } } }
//--------------------------------------------------------------------------- void OGLGeo::voxel2(Voxel &voxel_in) { //ボクセルモデリング関数2 //点を出力 //GLfloat materialBlue[]={0.2f,0.4f,1.0f,0.5f}; //glMaterialfv(GL_FRONT,GL_AMBIENT_AND_DIFFUSE,materialBlue); for(int k=0;k<voxel_in.mesh_z;k++) { for(int j=0;j<voxel_in.mesh_y;j++) { for(int i=0;i<voxel_in.mesh_x;i++) { if(voxel_in.flag[voxel_in.index(i,j,k)]) { glBegin(GL_POINTS); glVertex3d(voxel_in.itox(i),voxel_in.jtoy(j),voxel_in.ktoz(k)); glEnd(); } } } } }