void CosmicBody::InitShape(unsigned int stacks, unsigned int slices, float fA, float fB, float fC) { float tStep = (PI) / (float)slices; float sStep = (PI) / (float)stacks; this->verticesSize=(slices*4)*(stacks+1); //this->verticesSize=(slices*2)*(stacks-1)+2; this->indicesSize=(slices*2)*6*(stacks-1); glm::vec4 *vertices=vertices=new glm::vec4[verticesSize]; int vertticesPerCircle=slices*2; unsigned int *indices=new unsigned int [indicesSize]; int count=0; for(float t = -PI/2; t <= (PI/2);t += tStep) { for(float s = -PI; s <= PI; s += sStep) { vertices[count++]=glm::vec4(fA * cos(t) * cos(s),fB * cos(t) * sin(s),fC * sin(t),1.0f); //cout<indicesSize*4, indices, GL_STATIC_DRAW); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, IndexBufferId);*/ delete[] vertices; delete[] indices; } void CosmicBody::InitPosition(float x,float y,float z) { this->position=glm::vec3(x,y,z); } void CosmicBody::Draw() { glBindVertexArray( this->VaoId ); glDrawArrays(GL_TRIANGLE_STRIP, 0,this->verticesSize); //glDrawElements(GL_TRIANGLES, this->indicesSize*4, GL_UNSIGNED_INT, NULL); glBindVertexArray(0); }