/* Functional, but should be replaced with something better. */ #pragma once #include "ModelManager.h" void InitModel(VModel * m) { m->NumberOfVertices = 0; m->Vertices = NULL; m->Color[0] = m->Color[1] = m->Color[2] = m->Color[3] = 1.0; } void CleanUpModel(VModel * m) { if (m->Vertices != NULL) { DisposePtr((Ptr) m->Vertices); m->Vertices = NULL; } m->NumberOfVertices = 0; } Boolean AllocateVertices(VModel * m, int numberOfVertices) { m->Vertices = (Vector *) NewPtrClear(sizeof(Vector) * numberOfVertices); if (m->Vertices == NULL) return 0; m->NumberOfVertices = numberOfVertices; return 1; } void DrawModel(VModel * m) { int wVertex; glColor4f(m->Color[0], m->Color[1], m->Color[2], m->Color[3]); glBegin(GL_QUADS); for (wVertex = 0; wVertex < m->NumberOfVertices; wVertex++) { glVertex3f(m->Vertices[wVertex].x, m->Vertices[wVertex].y, m->Vertices[wVertex].z); } glEnd(); glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); glPolygonOffset(1.0, 1.0); glColor4f(0.0, 0.0, 0.0, m->Color[3]); glBegin(GL_QUADS); for (wVertex = 0; wVertex < m->NumberOfVertices; wVertex++) { glVertex3f(m->Vertices[wVertex].x, m->Vertices[wVertex].y, m->Vertices[wVertex].z); } glEnd(); glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); }