@ -1395,129 +1395,114 @@ void DrawTriangleStrip(Vector2 *points, int pointCount, Color color)
void DrawPoly ( Vector2 center , int sides , float radius , float rotation , Color color )
{
if ( sides < 3 ) sides = 3 ;
float centralAngle = 0.0f ;
rlPushMatrix ( ) ;
rlTranslatef ( center . x , center . y , 0.0f ) ;
rlRotatef ( rotation , 0.0f , 0.0f , 1.0f ) ;
float centralAngle = rotation ;
# if defined(SUPPORT_QUADS_DRAW_MODE)
rlSetTexture ( texShapes . id ) ;
rlSetTexture ( texShapes . id ) ;
rlBegin ( RL_QUADS ) ;
for ( int i = 0 ; i < sides ; i + + )
{
rlColor4ub ( color . r , color . g , color . b , color . a ) ;
rlBegin ( RL_QUADS ) ;
for ( int i = 0 ; i < sides ; i + + )
{
rlColor4ub ( color . r , color . g , color . b , color . a ) ;
rlTexCoord2f ( texShapesRec . x / texShapes . width , texShapesRec . y / texShapes . height ) ;
rlVertex2f ( mi">0 , 0 ) ;
rlTexCoord2f ( texShapesRec . x / texShapes . width , texShapesRec . y / texShapes . height ) ;
rlVertex2f ( n">center . x , center . y ) ;
rlTexCoord2f ( texShapesRec . x / texShapes . width , ( texShapesRec . y + texShapesRec . height ) / texShapes . height ) ;
rlVertex2f ( sinf ( DEG2RAD * centralAngle ) * radius , cosf ( DEG2RAD * centralAngle ) * radius ) ;
rlTexCoord2f ( texShapesRec . x / texShapes . width , ( texShapesRec . y + texShapesRec . height ) / texShapes . height ) ;
rlVertex2f ( center . x + sinf( DEG2RAD * centralAngle ) * radius , center . y + cosf ( DEG2RAD * centralAngle ) * radius ) ;
rlTexCoord2f ( ( texShapesRec . x + texShapesRec . width ) / texShapes . width , ( texShapesRec . y + texShapesRec . height ) / texShapes . height ) ;
rlVertex2f ( sinf ( DEG2RAD * centralAngle ) * radius , cosf ( DEG2RAD * centralAngle ) * radius ) ;
rlTexCoord2f ( ( texShapesRec . x + texShapesRec . width ) / texShapes . width , ( texShapesRec . y + texShapesRec . height ) / texShapes . height ) ;
rlVertex2f ( center . x + sinf( DEG2RAD * centralAngle ) * radius , center . y + cosf ( DEG2RAD * centralAngle ) * radius ) ;
centralAngle + = 360.0f / ( float ) sides ;
rlTexCoord2f ( ( texShapesRec . x + texShapesRec . width ) / texShapes . width , texShapesRec . y / texShapes . height ) ;
rlVertex2f ( sinf ( DEG2RAD * centralAngle ) * radius , cosf ( DEG2RAD * centralAngle ) * radius ) ;
}
rlEnd ( ) ;
rlSetTexture ( 0 ) ;
centralAngle + = 360.0f / ( float ) sides ;
rlTexCoord2f ( ( texShapesRec . x + texShapesRec . width ) / texShapes . width , texShapesRec . y / texShapes . height ) ;
rlVertex2f ( center . x + sinf( DEG2RAD * centralAngle ) * radius , center . y + cosf ( DEG2RAD * centralAngle ) * radius ) ;
}
rlEnd ( ) ;
rlSetTexture ( 0 ) ;
# else
rlBegin ( RL_TRIANGLES ) ;
for ( int i = 0 ; i < sides ; i + + )
{
rlColor4ub ( color . r , color . g , color . b , color . a ) ;
rlBegin ( RL_TRIANGLES ) ;
for ( int i = 0 ; i < sides ; i + + )
{
rlColor4ub ( color . r , color . g , color . b , color . a ) ;
rlVertex2f ( mi">0 , 0 ) ;
rlVertex2f ( sinf ( DEG2RAD * centralAngle ) * radius , cosf ( DEG2RAD * centralAngle ) * radius ) ;
rlVertex2f ( n">center . x , center . y ) ;
rlVertex2f ( center . x + sinf( DEG2RAD * centralAngle ) * radius , center . y + cosf ( DEG2RAD * centralAngle ) * radius ) ;
centralAngle + = 360.0f / ( float ) sides ;
rlVertex2f ( sinf ( DEG2RAD * centralAngle ) * radius , cosf ( DEG2RAD * centralAngle ) * radius ) ;
}
rlEnd ( ) ;
centralAngle + = 360.0f / ( float ) sides ;
rlVertex2f ( center . x + sinf( DEG2RAD * centralAngle ) * radius , center . y + cosf ( DEG2RAD * centralAngle ) * radius ) ;
}
rlEnd ( ) ;
# endif
rlPopMatrix ( ) ;
}
/ / Draw a polygon outline of n sides
void DrawPolyLines ( Vector2 center , int sides , float radius , float rotation , Color color )
{
if ( sides < 3 ) sides = 3 ;
float centralAngle = mf">0.0f ;
float centralAngle = n">rotation ;
rlPushMatrix ( ) ;
rlTranslatef ( center . x , center . y , 0.0f ) ;
rlRotatef ( rotation , 0.0f , 0.0f , 1.0f ) ;
rlBegin ( RL_LINES ) ;
for ( int i = 0 ; i < sides ; i + + )
{
rlColor4ub ( color . r , color . g , color . b , color . a ) ;
rlBegin ( RL_LINES ) ;
for ( int i = 0 ; i < sides ; i + + )
{
rlColor4ub ( color . r , color . g , color . b , color . a ) ;
rlVertex2f ( sinf ( DEG2RAD * centralAngle ) * radius , cosf ( DEG2RAD * centralAngle ) * radius ) ;
centralAngle + = 360.0f / ( float ) sides ;
rlVertex2f ( sinf ( DEG2RAD * centralAngle ) * radius , cosf ( DEG2RAD * centralAngle ) * radius ) ;
}
rlEnd ( ) ;
rlPopMatrix ( ) ;
rlVertex2f ( center . x + sinf ( DEG2RAD * centralAngle ) * radius , center . y + cosf ( DEG2RAD * centralAngle ) * radius ) ;
centralAngle + = 360.0f / ( float ) sides ;
rlVertex2f ( center . x + sinf ( DEG2RAD * centralAngle ) * radius , center . y + cosf ( DEG2RAD * centralAngle ) * radius ) ;
}
rlEnd ( ) ;
}
void DrawPolyLinesEx ( Vector2 center , int sides , float radius , float rotation , float lineThick , Color color )
{
if ( sides < 3 ) sides = 3 ;
float centralAngle = mf">0.0f ;
float centralAngle = n">rotation ;
float exteriorAngle = 360.0f / ( float ) sides ;
float innerRadius = radius - ( lineThick * cosf ( DEG2RAD * exteriorAngle / 2.0f ) ) ;
rlPushMatrix ( ) ;
rlTranslatef ( center . x , center . y , 0.0f ) ;
rlRotatef ( rotation , 0.0f , 0.0f , 1.0f ) ;
# if defined(SUPPORT_QUADS_DRAW_MODE)
rlSetTexture ( texShapes . id ) ;
rlSetTexture ( texShapes . id ) ;
rlBegin ( RL_QUADS ) ;
for ( int i = 0 ; i < sides ; i + + )
{
rlColor4ub ( color . r , color . g , color . b , color . a ) ;
rlBegin ( RL_QUADS ) ;
for ( int i = 0 ; i < sides ; i + + )
{
rlColor4ub ( color . r , color . g , color . b , color . a ) ;
rlTexCoord2f ( texShapesRec . x / texShapes . width , texShapesRec . y / texShapes . height ) ;
rlVertex2f ( sinf ( DEG2RAD * centralAngle ) * innerRadius , cosf ( DEG2RAD * centralAngle ) * innerRadius ) ;
rlTexCoord2f ( texShapesRec . x / texShapes . width , texShapesRec . y / texShapes . height ) ;
rlVertex2f ( center . x + sinf( DEG2RAD * centralAngle ) * innerRadius , center . y + cosf ( DEG2RAD * centralAngle ) * innerRadius ) ;
rlTexCoord2f ( texShapesRec . x / texShapes . width , ( texShapesRec . y + texShapesRec . height ) / texShapes . height ) ;
rlVertex2f ( sinf ( DEG2RAD * centralAngle ) * radius , cosf ( DEG2RAD * centralAngle ) * radius ) ;
rlTexCoord2f ( texShapesRec . x / texShapes . width , ( texShapesRec . y + texShapesRec . height ) / texShapes . height ) ;
rlVertex2f ( center . x + sinf( DEG2RAD * centralAngle ) * radius , center . y + cosf ( DEG2RAD * centralAngle ) * radius ) ;
centralAngle + = exteriorAngle ;
rlTexCoord2f ( ( texShapesRec . x + texShapesRec . width ) / texShapes . width , texShapesRec . y / texShapes . height ) ;
rlVertex2f ( sinf ( DEG2RAD * centralAngle ) * radius , cosf ( DEG2RAD * centralAngle ) * radius ) ;
centralAngle + = exteriorAngle ;
rlTexCoord2f ( ( texShapesRec . x + texShapesRec . width ) / texShapes . width , texShapesRec . y / texShapes . height ) ;
rlVertex2f ( center . x + sinf( DEG2RAD * centralAngle ) * radius , center . y + cosf ( DEG2RAD * centralAngle ) * radius ) ;
rlTexCoord2f ( ( texShapesRec . x + texShapesRec . width ) / texShapes . width , ( texShapesRec . y + texShapesRec . height ) / texShapes . height ) ;
rlVertex2f ( sinf ( DEG2RAD * centralAngle ) * innerRadius , cosf ( DEG2RAD * centralAngle ) * innerRadius ) ;
}
rlEnd ( ) ;
rlSetTexture ( 0 ) ;
rlTexCoord2f ( ( texShapesRec . x + texShapesRec . width ) / texShapes . width , ( texShapesRec . y + texShapesRec . height ) / texShapes . height ) ;
rlVertex2f ( center . x + sinf( DEG2RAD * centralAngle ) * innerRadius , center . y + cosf ( DEG2RAD * centralAngle ) * innerRadius ) ;
}
rlEnd ( ) ;
rlSetTexture ( 0 ) ;
# else
rlBegin ( RL_TRIANGLES ) ;
for ( int i = 0 ; i < sides ; i + + )
{
rlColor4ub ( color . r , color . g , color . b , color . a ) ;
float nextAngle = centralAngle + exteriorAngle ;
rlBegin ( RL_TRIANGLES ) ;
for ( int i = 0 ; i < sides ; i + + )
{
rlColor4ub ( color . r , color . g , color . b , color . a ) ;
float nextAngle = centralAngle + exteriorAngle ;
rlVertex2f ( sinf ( DEG2RAD * centralAngle ) * radius , cosf ( DEG2RAD * centralAngle ) * radius ) ;
rlVertex2f ( sinf ( DEG2RAD * centralAngle ) * innerRadius , cosf ( DEG2RAD * centralAngle ) * innerRadius ) ;
rlVertex2f ( sinf ( DEG2RAD * nextAngle ) * radius , cosf ( DEG2RAD * nextAngle ) * radius ) ;
rlVertex2f ( center . x + sinf( DEG2RAD * centralAngle ) * radius , center . y + cosf ( DEG2RAD * centralAngle ) * radius ) ;
rlVertex2f ( center . x + sinf( DEG2RAD * centralAngle ) * innerRadius , center . y + cosf ( DEG2RAD * centralAngle ) * innerRadius ) ;
rlVertex2f ( center . x + sinf( DEG2RAD * nextAngle ) * radius , center . y + cosf ( DEG2RAD * nextAngle ) * radius ) ;
rlVertex2f ( sinf ( DEG2RAD * centralAngle ) * innerRadius , cosf ( DEG2RAD * centralAngle ) * innerRadius ) ;
rlVertex2f ( sinf ( DEG2RAD * nextAngle ) * radius , cosf ( DEG2RAD * nextAngle ) * radius ) ;
rlVertex2f ( sinf ( DEG2RAD * nextAngle ) * innerRadius , cosf ( DEG2RAD * nextAngle ) * innerRadius ) ;
rlVertex2f ( center . x + sinf( DEG2RAD * centralAngle ) * innerRadius , center . y + cosf ( DEG2RAD * centralAngle ) * innerRadius ) ;
rlVertex2f ( center . x + sinf( DEG2RAD * nextAngle ) * radius , center . y + cosf ( DEG2RAD * nextAngle ) * radius ) ;
rlVertex2f ( center . x + sinf( DEG2RAD * nextAngle ) * innerRadius , center . y + cosf ( DEG2RAD * nextAngle ) * innerRadius ) ;
centralAngle = nextAngle ;
}
rlEnd ( ) ;
centralAngle = nextAngle ;
}
rlEnd ( ) ;
# endif
rlPopMatrix ( ) ;
}
/ / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -