MCPcopy Create free account
hub / github.com/SpartanJ/eepp / borderAddArc

Function borderAddArc

src/eepp/ui/border.cpp:7–93  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5namespace EE { namespace UI {
6
7static void borderAddArc( VertexBuffer* vbo, Vector2f pos, Float radiW, Float radiH,
8 double arcStartAngle, double arcEndAngle, Color color, Float lineW,
9 Vector2f basePos, bool decrease = false, bool addInnerVertex = true ) {
10 // TODO: Add segment count parameter to change the arc precision (num of vertex).
11 Float angleShift = 1;
12 double startAngle = eemin( arcStartAngle, arcEndAngle );
13 double endAngle = eemax( arcStartAngle, arcEndAngle );
14 Vector2f startPos = ( radiW > lineW ) ? pos : basePos;
15 double lastAngle = startAngle;
16 double i;
17
18 if ( decrease ) {
19 for ( i = endAngle; i >= startAngle; i -= angleShift ) {
20 vbo->addVertex(
21 Vector2f( pos.x + radiW * Math::cosAng( i ), pos.y + radiH * Math::sinAng( i ) ) );
22 vbo->addColor( color );
23
24 if ( addInnerVertex ) {
25 if ( radiW > lineW ) {
26 vbo->addVertex( Vector2f( pos.x + ( radiW - lineW ) * Math::cosAng( i ),
27 pos.y + ( radiH - lineW ) * Math::sinAng( i ) ) );
28 } else {
29 vbo->addVertex( startPos );
30 }
31
32 vbo->addColor( color );
33 }
34
35 lastAngle = i;
36 }
37
38 if ( lastAngle != endAngle ) {
39 i = endAngle;
40 vbo->addVertex(
41 Vector2f( pos.x + radiW * Math::cosAng( i ), pos.y + radiH * Math::sinAng( i ) ) );
42 vbo->addColor( color );
43
44 if ( addInnerVertex ) {
45 if ( radiW > lineW ) {
46 vbo->addVertex( Vector2f( pos.x + ( radiW - lineW ) * Math::cosAng( i ),
47 pos.y + ( radiH - lineW ) * Math::sinAng( i ) ) );
48 } else {
49 vbo->addVertex( startPos );
50 }
51 vbo->addColor( color );
52 }
53 }
54 } else {
55 for ( i = startAngle; i <= endAngle; i += angleShift ) {
56 if ( addInnerVertex ) {
57 if ( radiW > lineW ) {
58 vbo->addVertex( Vector2f( pos.x + ( radiW - lineW ) * Math::cosAng( i ),
59 pos.y + ( radiH - lineW ) * Math::sinAng( i ) ) );
60 } else {
61 vbo->addVertex( startPos );
62 }
63
64 vbo->addColor( color );

Callers 2

createBordersMethod · 0.85
createBackgroundMethod · 0.85

Calls 6

eeminFunction · 0.85
eemaxFunction · 0.85
cosAngFunction · 0.85
sinAngFunction · 0.85
addVertexMethod · 0.80
addColorMethod · 0.80

Tested by

no test coverage detected