protected bool matchesQuery(ChartData cd)
        {
            int planet  = searchQuery[0];
            int sign    = searchQuery[1];
            int house   = searchQuery[2];
            int aspect  = searchQuery[3];
            int planet2 = searchQuery[4];

            AstroDefs.planet_positions pp = cd.CalculatePositions();
            bool ok = true;

            if (ok && sign > -1)
            {
                if (sign != AstroDefs.ephem_signForPosition(AstroDefs.ephem_positionOfPlanet(pp, planet)))
                {
                    ok = false;
                }
            }
            if (ok && house > -1)
            {
                float[] houses = cd.CalculateHouses(pp);
                if (house != HouseCalc.houses_houseOfPosition(AstroDefs.ephem_positionOfPlanet(pp, planet), houses))
                {
                    ok = false;
                }
            }
            if (ok && aspect > -1 && planet2 > -1)
            {
                if (aspect != AstroDefs.getAspect(
                        AstroDefs.ephem_positionOfPlanet(pp, planet),
                        AstroDefs.ephem_positionOfPlanet(pp, planet2), AstroDefs.DEFAULT_ORBS))
                {
                    ok = false;
                }
            }
            return(ok);
        }
Example #2
0
 public float[] CalculateHouses(AstroDefs.planet_positions pp)
 {
     float[] houses = new float[12];
     HouseCalc.calcHouses(ref houses, pp, HouseSystem, Latitude, Longitude);
     return(houses);
 }