/* * Draws a solid sphere */ void DrawSolidSphere(GLdouble radius, GLint slices, GLint stacks, const Vector3& position, const Vector3 color ) { CommonGLDisables(); // PUSH // glPushMatrix(); glColor3f( color.x, color.y, color.z ); // Setting the color glTranslatef( position.x, position.y, position.z ); glScalef( 0.1f, 0.1f, 0.1f ); // TODO: Add this as a function param int i,j; /* Adjust z and radius as stacks are drawn. */ double z0,z1; double r0,r1; /* Pre-computed circle */ double *sint1,*cost1; double *sint2,*cost2; circleTable(&sint1,&cost1,-slices); circleTable(&sint2,&cost2,stacks*2); /* The top stack is covered with a triangle fan */ z0 = 1.0; z1 = cost2[1]; r0 = 0.0; r1 = sint2[1]; glBegin(GL_TRIANGLE_FAN); glNormal3d(0,0,1); glVertex3d(0,0,radius); for (j=slices; j>=0; j--) { glNormal3d(cost1[j]*r1, sint1[j]*r1, z1 ); glVertex3d(cost1[j]*r1*radius, sint1[j]*r1*radius, z1*radius); } glEnd(); /* Cover each stack with a quad strip, except the top and bottom stacks */ for( i=1; i<stacks-1; i++ ) { z0 = z1; z1 = cost2[i+1]; r0 = r1; r1 = sint2[i+1]; glBegin(GL_QUAD_STRIP); for(j=0; j<=slices; j++) { glNormal3d(cost1[j]*r1, sint1[j]*r1, z1 ); glVertex3d(cost1[j]*r1*radius, sint1[j]*r1*radius, z1*radius); glNormal3d(cost1[j]*r0, sint1[j]*r0, z0 ); glVertex3d(cost1[j]*r0*radius, sint1[j]*r0*radius, z0*radius); } glEnd(); } /* The bottom stack is covered with a triangle fan */ z0 = z1; r0 = r1; glBegin(GL_TRIANGLE_FAN); glNormal3d(0,0,-1); glVertex3d(0,0,-radius); for (j=0; j<=slices; j++) { glNormal3d(cost1[j]*r0, sint1[j]*r0, z0 ); glVertex3d(cost1[j]*r0*radius, sint1[j]*r0*radius, z0*radius); } glEnd(); /* Release sin and cos tables */ free(sint1); free(cost1); free(sint2); free(cost2); // POP // glPopMatrix(); CommonGLEnables(); ResetColor(); }
void Log::outCommand(uint32 account, const char * str, ...) { if (!str) return; // TODO: support accountid if (m_enableLogDB && m_dbGM) { va_list ap2; va_start(ap2, str); char nnew_str[MAX_QUERY_LEN]; vsnprintf(nnew_str, MAX_QUERY_LEN, str, ap2); outDB(LOG_TYPE_GM, nnew_str); va_end(ap2); } if (m_logLevel > LOGL_NORMAL) { if (m_colored) SetColor(true, m_colors[LOGL_BASIC]); va_list ap; va_start(ap, str); vutf8printf(stdout, str, &ap); va_end(ap); if (m_colored) ResetColor(true); printf("\n"); if (logfile) { outTimestamp(logfile); va_list ap; va_start(ap, str); vfprintf(logfile, str, ap); fprintf(logfile, "\n" ); va_end(ap); fflush(logfile); } } if (m_gmlog_per_account) { if (FILE* per_file = openGmlogPerAccount (account)) { outTimestamp(per_file); va_list ap; va_start(ap, str); vfprintf(per_file, str, ap); fprintf(per_file, "\n" ); va_end(ap); fclose(per_file); } } else if (gmLogfile) { outTimestamp(gmLogfile); va_list ap; va_start(ap, str); vfprintf(gmLogfile, str, ap); fprintf(gmLogfile, "\n" ); va_end(ap); fflush(gmLogfile); } fflush(stdout); }
void Log::outCommand( uint32 account, const char * str, ... ) { if (!str) return; if (m_logLevel >= LOG_LVL_DETAIL) { if (m_colored) SetColor(true,m_colors[LogDetails]); if (m_includeTime) outTime(); va_list ap; va_start(ap, str); vutf8printf(stdout, str, &ap); va_end(ap); if (m_colored) ResetColor(true); printf( "\n" ); } if (logfile && m_logFileLevel >= LOG_LVL_DETAIL) { va_list ap; outTimestamp(logfile); va_start(ap, str); vfprintf(logfile, str, ap); fprintf(logfile, "\n" ); va_end(ap); fflush(logfile); } if (m_gmlog_per_account) { if (FILE* per_file = openGmlogPerAccount (account)) { va_list ap; outTimestamp(per_file); va_start(ap, str); vfprintf(per_file, str, ap); fprintf(per_file, "\n" ); va_end(ap); fclose(per_file); } } else if (gmLogfile) { va_list ap; outTimestamp(gmLogfile); va_start(ap, str); vfprintf(gmLogfile, str, ap); fprintf(gmLogfile, "\n" ); va_end(ap); fflush(gmLogfile); } fflush(stdout); }
void CSettingsRevisionGraphColors::OnBnClickedRestore() { ResetColor (m_cAddedNode, CColors::gdpAddedNode); ResetColor (m_cDeletedNode, CColors::gdpDeletedNode); ResetColor (m_cRenamedNode, CColors::gdpRenamedNode); ResetColor (m_cModifiedNode, CColors::gdpModifiedNode); ResetColor (m_cUnchangedNode, CColors::gdpUnchangedNode); ResetColor (m_cLastCommitNode, CColors::gdpLastCommitNode); ResetColor (m_cWCNode, CColors::gdpWCNode); ResetColor (m_cWCNodeBorder, CColors::gdpWCNodeBorder); ResetColor (m_cTagOverlay, CColors::gdpTagOverlay); ResetColor (m_cTrunkOverlay, CColors::gdpTrunkOverlay); ResetColor (m_cTagMarker, CColors::ctMarkers, 0); ResetColor (m_cTrunkMarker, CColors::ctMarkers, 1); ResetColor (m_cStripeColor1, CColors::gdpStripeColor1); ResetColor (m_cStripeColor2, CColors::gdpStripeColor2); m_sStripeAlpha1 = m_Colors.GetColor (CColors::gdpStripeColor1, true).GetA(); m_sStripeAlpha2 = m_Colors.GetColor (CColors::gdpStripeColor2, true).GetA(); UpdateData (FALSE); SetModified(TRUE); }