Пример #1
0
void 
HUD::draw_partial_tri_fan(const double fraction)
{
    const double angle = SPEEDBAR_BASE_ANGLE + 
	( SPEEDBAR_MAX_ANGLE - SPEEDBAR_BASE_ANGLE ) * fraction;

    const int divs = int(( SPEEDBAR_BASE_ANGLE - angle ) * CIRCLE_DIVISIONS / 360.0);
    double cur_angle = SPEEDBAR_BASE_ANGLE;
    const double angle_incr = 360.0 / CIRCLE_DIVISIONS;
	
	bool trifan = false;
    for(int i=0; i<divs; i++){
		if( !trifan ){
			start_tri_fan();
			trifan = true;
		}
		cur_angle -= angle_incr;
		gl::Vertex(calc_new_fan_pt(cur_angle));
    }

    if(cur_angle > angle + EPS ){
		cur_angle = angle;
		if ( !trifan ) {
			start_tri_fan();
			trifan = true;
		}
		gl::Vertex(calc_new_fan_pt(cur_angle));
    }

    if ( trifan ) {
		gl::End();
		trifan = false;
    }
}
Пример #2
0
void
HUD::start_tri_fan()
{
	gl::Begin(GL_TRIANGLE_FAN);
	gl::Vertex(ENERGY_GAUGE_CENTER_X, ENERGY_GAUGE_CENTER_Y);
	gl::Vertex(calc_new_fan_pt(SPEEDBAR_BASE_ANGLE));
}
Пример #3
0
void start_tri_fan() {
	glBegin (GL_TRIANGLE_FAN);
#ifdef USE_GLES1
	glVertex2f (ENERGY_GAUGE_CENTER_X, 
		ENERGY_GAUGE_CENTER_Y);
	glTexCoord2f(ENERGY_GAUGE_CENTER_X/GAUGE_IMG_SIZE, ENERGY_GAUGE_CENTER_Y/GAUGE_IMG_SIZE);
	TVector2d pt = calc_new_fan_pt (SPEEDBAR_BASE_ANGLE); 
	glVertex2f (pt.x, pt.y);
	glTexCoord2f(pt.x/GAUGE_IMG_SIZE, pt.y/GAUGE_IMG_SIZE);
#else
	glVertex2f (ENERGY_GAUGE_CENTER_X, 
		ENERGY_GAUGE_CENTER_Y);
	TVector2d pt = calc_new_fan_pt (SPEEDBAR_BASE_ANGLE); 
	glVertex2f (pt.x, pt.y);
#endif
}
Пример #4
0
void start_tri_fan(){
    TVector2 pt;

    glBegin (GL_TRIANGLE_FAN);
    glVertex2f (ENERGY_GAUGE_CENTER_X, 
		ENERGY_GAUGE_CENTER_Y);
    pt = calc_new_fan_pt (SPEEDBAR_BASE_ANGLE); 
    glVertex2f (pt.x, pt.y);
}
Пример #5
0
void draw_partial_tri_fan (ETR_DOUBLE fraction) {
	bool trifan = false;

	ETR_DOUBLE angle = SPEEDBAR_BASE_ANGLE + 
		(SPEEDBAR_MAX_ANGLE - SPEEDBAR_BASE_ANGLE) * fraction;

	int divs = (int)((SPEEDBAR_BASE_ANGLE - angle) * CIRCLE_DIVISIONS / 360.0);
	ETR_DOUBLE cur_angle = SPEEDBAR_BASE_ANGLE;
	ETR_DOUBLE angle_incr = 360.0 / CIRCLE_DIVISIONS;

	for (int i=0; i<divs; i++) {
		if (!trifan) {
			start_tri_fan();
			trifan = true;
		}
		cur_angle -= angle_incr;
		TVector2d pt = calc_new_fan_pt (cur_angle);
		glVertex2f (pt.x, pt.y);
#ifdef USE_GLES1
		glTexCoord2f(pt.x/GAUGE_IMG_SIZE, pt.y/GAUGE_IMG_SIZE);
#endif
	}

	if (cur_angle > angle + EPS) {
		cur_angle = angle;
		if (!trifan) {
			start_tri_fan();
			trifan = true;
		}
		TVector2d pt = calc_new_fan_pt (cur_angle);
		glVertex2f (pt.x, pt.y);
#ifdef USE_GLES1
		glTexCoord2f(pt.x/GAUGE_IMG_SIZE, pt.y/GAUGE_IMG_SIZE);
#endif
	}

	if (trifan) {
		glEnd();
		trifan = false;
	}
}
Пример #6
0
void draw_partial_tri_fan (double fraction) {
    int divs;
    double angle, angle_incr, cur_angle;
    int i;
    bool trifan = false;
    TVector2 pt;

	angle = SPEEDBAR_BASE_ANGLE + 
		(SPEEDBAR_MAX_ANGLE - SPEEDBAR_BASE_ANGLE) * fraction;

    divs = (int)((SPEEDBAR_BASE_ANGLE - angle) * CIRCLE_DIVISIONS / 360.0);
    cur_angle = SPEEDBAR_BASE_ANGLE;
    angle_incr = 360.0 / CIRCLE_DIVISIONS;

    for (i=0; i<divs; i++) {
		if  (!trifan) {
		    start_tri_fan();
	    	trifan = true;
		}
		cur_angle -= angle_incr;
		pt = calc_new_fan_pt (cur_angle);
		glVertex2f (pt.x, pt.y);
    }

    if  (cur_angle > angle + EPS) {
		cur_angle = angle;
		if  (!trifan) {
		    start_tri_fan();
	    	trifan = true;
		}
		pt = calc_new_fan_pt (cur_angle);
		glVertex2f (pt.x, pt.y);
    }

    if  (trifan) {
		glEnd();
		trifan = false;
    }
}