Example #1
0
void TGLFunWidget::drawFacet23D(TVertex3D* vertex,int size)
{
    TVertex3D vtx[3];
    unsigned ind[] = { 0, 1, 2, 3 }; // Порядок обхода вершин четырехугольника


    if (params.isFace)
        switch (size)
        {
            case 3: // Рисование линейного треугольника
                drawTriangle3D(vertex);
                break;
            case 4: // Рисование четырехугольника
                vtx[0] = vertex[ind[0]];
                vtx[1] = vertex[ind[1]];
                vtx[2] = vertex[ind[2]];
                drawTriangle3D(vtx);
                vtx[0] = vertex[ind[0]];
                vtx[1] = vertex[ind[2]];
                vtx[2] = vertex[ind[3]];
                drawTriangle3D(vtx);
                break;
            case 6: // Рисование квадратичного треугольника
                vtx[0] = vertex[0];
                vtx[1] = vertex[3];
                vtx[2] = vertex[5];
                drawTriangle3D(vtx);
                vtx[0] = vertex[3];
                vtx[1] = vertex[1];
                vtx[2] = vertex[4];
                drawTriangle3D(vtx);
                vtx[0] = vertex[3];
                vtx[1] = vertex[4];
                vtx[2] = vertex[5];
                drawTriangle3D(vtx);
                vtx[0] = vertex[5];
                vtx[1] = vertex[4];
                vtx[2] = vertex[2];
                drawTriangle3D(vtx);
        }

    if (params.isMesh)
    {
        setColor(0,0,0,params.alpha);
        glBegin(GL_LINE_LOOP);
        for (int j = 0; j < size; j++)
            glVertex3f(vertex[j].x, vertex[j].y, vertex[j].z);
        glEnd();

    }
    if (params.isVertex)
    {
        glPointSize(3);
        glBegin(GL_POINTS);
        setColor(0,0,0,params.alpha);
        for (int i = 0; i < size; i++)
            glVertex3f(vertex[i].x, vertex[i].y, vertex[i].z);
        glEnd();
    }
}
Example #2
0
	void Framework::update(){
		setFrameRate( 60 );
		double p0[ 3 ] = { 100.0, 100.0, 0.0 };
		double p1[ 3 ] = { 400.0, 200.0, 0.4 };
		double p2[ 3 ] = { 200.0, 400.0, 0.8 };

		double zOffset = ( gCount % 200 ) * 0.01 - 1.0;
		p0[ 2 ] += zOffset;
		p1[ 2 ] += zOffset;
		p2[ 2 ] += zOffset;

		drawTriangle3D( p0, p1, p2 );

		++gCount;
	}