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; } }
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)); }
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 }
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); }
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; } }
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; } }