I made an object loader that can load textures from a material library file, but I am having trouble with the way the texture gets bound to the object. It will wrap around the object like I want, except for one part. The textures are being loaded properly too since I can bind the same texture to a box and not have a problem. A picture is below of where I am talking about, I get that weird sliver where it looks like the texture stretches. It does this for all my spheres of any shape or size. The function I use to bind, display, and render the texture and object is below too.


bool LOADOBJ::RenderAllObjects()
    if(head.size() == 0) return false;                  //nothing to render
    ObjectList *temp;                                   //temp space for the render function
    int f_index = 0, f_index2 = 0;                      //face index, and non-changing face index

    /*render all objects to the screen*/
    glPolygonMode( GL_BACK, GL_FILL );                  //draw back face with lines
    glPolygonMode( GL_FRONT, GL_FILL );                 //draw front face with lines

    for(unsigned int m = 0; m < head.size(); m++){
        temp = head.front();                            //get the front object
        head.pop();                                     //pop the front object
        head.push(temp);                                //then put it back in line for the next time it's rendered
        for(int i = 0; i < temp->face_count; i++){
            if(temp->texture_id != NO_TEXTURE)          //if there is a texture, bind it
            /*determine what type needs to be rendered*/
            if(temp->vert_per_face[i] == 4)
                glBegin(GL_QUADS);                      //render squares
            else if(temp->vert_per_face[i] == 3)
                glBegin(GL_TRIANGLES);                  //render triangles
            else if(temp->vert_per_face[i] == 2)
                glBegin(GL_LINES);                      //render lines
            else if(temp->vert_per_face[i] == 1)
                glBegin(GL_POINTS);                     //render points
                glBegin(GL_POLYGON);                    //if nothing else render a polygon (5 or more vertex)

            f_index2 = f_index;
            for(int n = f_index2; n < f_index2 + temp->vert_per_face[i]; n++){
                /*create the 3D vertexes, textures, and normals*/
                //if there is a texture to render, otherwise render the color
                if(temp->texture_id != NO_TEXTURE)
                    glTexCoord2f(temp->vt_x [ temp->fvt[n]-1 ],
                                 temp->vt_y [ temp->fvt[n]-1 ]);
                    glColor3f(temp->vn_x [ temp->fvn[n]-1 ],    //red color
                              temp->vn_y [ temp->fvn[n]-1 ],    //green color
                              temp->vn_z [ temp->fvn[n]-1 ]);   //blue color
                glVertex3f(0.01*temp->v_x [ temp->fv[n]-1 ],     //x coordinate
                           0.01*temp->v_y [ temp->fv[n]-1 ],     //y coordinate
                           0.01*temp->v_z [ temp->fv[n]-1 ]);    //z coordinate
                glNormal3f(temp->vn_x [ temp->fvn[n]-1 ],    //x normal
                           temp->vn_y [ temp->fvn[n]-1 ],    //y normal
                           temp->vn_z [ temp->fvn[n]-1 ]);   //z normal
        }                                                   //end for loop
        f_index2 = 0; f_index = 0;
    return true;