#ifndef MESH #define MESH class Mesh{ public: int vertexN; int faceN; float (*vertex)[3]; int (*face)[3]; void setSize(int vN, int fN){ vertexN = vN; faceN = fN; vertex = new float[vN][3]; face = new int[fN][3]; } void setVertex(int i, float x, float y, float z){ vertex[i][0] = x; vertex[i][1] = y; vertex[i][2] = z; } void setFace(int i, int i0, int i1, int i2){ face[i][0] = i0; face[i][1] = i1; face[i][2] = i2; } void getBound(float min[3], float max[3]){ for(int i=0; i<3; i++){ max[i] = min[i] = vertex[0][i]; for(int j=1; j vertex[j][i]) min[i] = vertex[j][i]; if(max[i] < vertex[j][i]) max[i] = vertex[j][i]; } float s = max[i]-min[i]; float m = 0.5f*(max[i]+min[i]); max[i] = m + 0.5f*s; min[i] = m - 0.5f*s; } } void rescale(float max_axis){ float min[3], max[3]; getBound(min, max); float size = max[0] - min[0]; if(max[1] - min[1] > size) size = max[1] - min[1]; if(max[2] - min[2] > size) size = max[2] - min[2]; float s = max_axis/size; int i; for(i=0; i