glutSolidCube(2.0); // a cube with vertices -1 to +1 // куб с вершинами от -1 до 1
glPopMatrixO;
}
}:
//@$@$@$@$@$@$@$@$ Sphere class class Sphere: public Shape{ public:
void drawOpenGLO
{
Приложение В. Некоторые полезные классы и служебные подпрограммы
telIMaterialsGL(): glPushMatrixC): glMultMatrixf(transf.m): glutSolidSphere(1.0.20.20); glPopMatrixO:
}
SphereO { }
}:
TaperedCylinder class class TaperedCylinder: public Shape{ public:
float small Radius: TaperedCylinder(){}
void drawOpenGL(){ /* to be implemented */} // подлежит реализации }:
Square class &W№m№№&t class Square: public Shape{ public: SquareOO
void drawOpenGL(){ /* to be implemented */} // подлежит реализации }:
//&№№*№№&№ Plane class @$@$@$@$@$@$@$@$@$
class Plane: public Shape{
public:
PlaneO {}
void drawOpenGL(){ /* to be implemented */} // подлежит реализации }:
iiummmmuu class vertexiD nummmm
II used to define a Mesh
// использован для определения Mesh
class VertexID{public: int vertlndex. normlndex:}:
nmnmmmm class face uuuumm
II used to define a Mesh
// использован для определения Mesh
class Face{
public:
int nVerts;
VertexiD * vert: // array of vertex and normal indices // массив индексов вершин и нормалей
Face(){ nVerts - 0: vert - NULL;}
-FaceO{deleted vert: nVerts - 0:}
}:
IMesh class №*№i№i&t&m
class Mesh : public Shape{
private:
int numVerts. numNorms. numFaces:
Point3 *pt: // array of points // массив указателей
Vector3 *norm:
ВЗ. Класс SCENE и сопутствующие классы
// array of normals // массив нормалей
Face *face: // array of faces // массив граней
int lastVertUsed:
int lastNormUsed:
int lastFaceUsed;
public:
void readMesh(string fname):
void writeMesh(char* fname):
void printMeshO:
void drawMeshO:
void drawEdgesO:
void freeMeshO;
int isEmptyO:
void makeEmptyO:
MeshO;
virtual void drawOpenGLO:
Mesh(string fname):
Vector3 newel14(int indx[]):
string meshFileName: // holds file name for this Mesh // хранит имя файла для данного Mesh }:
// end of Mesh class // конец класса Mesh /№№№9*№№Ш Torus class class Torus: public Shape{ public: