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); }
public float[] CalculateHouses(AstroDefs.planet_positions pp) { float[] houses = new float[12]; HouseCalc.calcHouses(ref houses, pp, HouseSystem, Latitude, Longitude); return(houses); }