Ejemplo n.º 1
0
//---------------------------------------------------------------------------
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);
    }
}
}
}

 }
Ejemplo n.º 2
0
//---------------------------------------------------------------------------
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();
  }
}
}
}

}