MCPcopy Create free account
hub / github.com/CruiserOne/Astrolog / DrawFillWheel

Function DrawFillWheel

xcharts0.cpp:630–724  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

628// sector type may be sign, house, or Gauquelin sector.
629
630flag DrawFillWheel(int x, int y, int i, int typ)
631{
632 KV kvC, kvF, kv1, kv2, kv3;
633 int nTrans, n, typ2;
634 real rDeg;
635
636 if (gs.nDecaFill <= 0)
637 return fFalse;
638
639 // Don't do anything if background bitmap visible.
640 nTrans = (int)(gs.rBackPct * 256.0 / 100.0);
641 if (gi.bmpBack.rgb != NULL && gs.fBackDraw && nTrans > 0)
642 return fFalse;
643
644 // Figure out what RGB colors to use to fill.
645 nTrans = (int)(gs.rBackPct * 256.0 / 100.0);
646 if (nTrans <= 0)
647 return fFalse;
648 if (gs.nDecaFill == 1) {
649 // Standard fill: Based on sign/element color.
650 kvC = gi.kvCur;
651 } else if (gs.nDecaFill <= 3) {
652 // Rainbow fills: Based on degree around color wheel.
653 rDeg = (real)(i-1) * rDegMax / (real)(typ < 2 ? cSign : cSector);
654 kvC = gs.nDecaFill == 2 ? KvHue(rDeg) : KvHue2(rDeg);
655 } else if (gs.nDecaFill <= 5) {
656 // Ruler fills: Based on color of planet(s) ruling sign/house.
657 if (typ >= 2)
658 i = (cSector - i)/3 + 1;
659 typ2 = (gs.nDecaFill <= 4 || typ != 1 ? 1 : 2);
660 kv1 = kv2 = kv3 = n = 0;
661 if (!ignore7[rrStd]) {
662 kv1 = KvHouse(i, rules, rules2, typ2);
663 kvC = kv1;
664 n = 1;
665 }
666 if (!ignore7[rrEso]) {
667 kv2 = KvHouse(i, rgSignEso1, rgSignEso2, typ2);
668 kvC = (n <= 0 ? kv2 : KvBlend(kv1, kv2, 0.5));
669 n++;
670 }
671 if (!ignore7[rrHie]) {
672 kv3 = KvHouse(i, rgSignHie1, rgSignHie2, typ2);
673 kvC = (n <= 0 ? kv3 : KvBlend(kvC, kv3, n == 1 ? 0.5 : 0.3333));
674 }
675 } else {
676 if (typ >= 2)
677 i = (cSector - i)/3 + 1;
678 if (gs.nDecaFill == 6 || typ != 1) {
679 // Ray sign fill: Based on Ray(s) of sign.
680 kv2 = kv3 = 0;
681 n = rgSignRay[i];
682 kv1 = rgbbmpRay[n%10];
683 kv2 = rgbbmpRay[n/10%10];
684 kv3 = rgbbmpRay[n/100];
685 kvC = (kv3 == 0 ? (kv2 == 0 ? kv1 : KvBlend(kv1, kv2, 0.5)) :
686 KvBlend(KvBlend(kv1, kv2, 0.5), kv3, 0.3333));
687 } else {

Callers 3

DrawWheelFunction · 0.85
XChartSectorFunction · 0.85
XChartIndianFunction · 0.85

Calls 7

KvHueFunction · 0.85
KvHue2Function · 0.85
KvHouseFunction · 0.85
KvBlendFunction · 0.85
ExpSetNFunction · 0.85
NExpGetFunction · 0.85
DrawFillFunction · 0.85

Tested by

no test coverage detected