...
This commit is contained in:
@@ -27,7 +27,8 @@ static_assert(traits::mcc_celestial_point_c<MccCelestialPoint>, "MccCelestialPoi
|
||||
|
||||
/* COMMON SLEW-AND-GUIDING POINT CLASS DEFINITION */
|
||||
|
||||
struct MccSlewAndGuidingPoint : MccCelestialPoint {
|
||||
template <typename coord_t>
|
||||
struct MccSimpleSlewAndGuidingModelParams {
|
||||
// ******* default constants *******
|
||||
|
||||
static constexpr size_t defaultWithinToleranceCycleNumber = 10;
|
||||
@@ -74,6 +75,11 @@ struct MccSlewAndGuidingPoint : MccCelestialPoint {
|
||||
bool dualAxisGuiding{true}; // mount must be of an equatorial type: false means guiding along only HA-axis
|
||||
};
|
||||
|
||||
struct MccSlewAndGuidingPoint : MccCelestialPoint,
|
||||
MccSimpleSlewAndGuidingModelParams<typename MccCelestialPoint::coord_t> {
|
||||
typedef MccSimpleSlewAndGuidingModelParams<typename MccCelestialPoint::coord_t> slew_guiding_params_t;
|
||||
};
|
||||
|
||||
|
||||
/* CHECK FOR CURRENT MOUNT POSITION IN PROHIBITED ZONES */
|
||||
|
||||
@@ -100,24 +106,32 @@ template <traits::mcc_mount_telemetry_data_c TelemetryDataT,
|
||||
std::ranges::output_range<bool> ResT>
|
||||
auto mccCheckInZonePZRange(const TelemetryDataT& telemetry_data, const RT& pzones, ResT& result)
|
||||
{
|
||||
bool in_zone = false;
|
||||
|
||||
auto Npz = std::ranges::distance(pzones);
|
||||
if (!Npz) {
|
||||
return;
|
||||
return in_zone;
|
||||
}
|
||||
|
||||
auto res_sz = std::ranges::distance(result);
|
||||
bool ok;
|
||||
|
||||
size_t i = 1;
|
||||
auto res_iter = result.begin();
|
||||
for (auto& el : pzones) {
|
||||
ok = el.inZone(telemetry_data);
|
||||
in_zone |= ok;
|
||||
|
||||
if (i > res_sz) {
|
||||
std::back_inserter(result) = el.inZone(telemetry_data);
|
||||
std::back_inserter(result) = ok;
|
||||
} else {
|
||||
std::ranges::advance(res_iter, 1);
|
||||
*res_iter = el.inZone(telemetry_data);
|
||||
*res_iter = ok;
|
||||
}
|
||||
++i;
|
||||
}
|
||||
|
||||
return in_zone;
|
||||
}
|
||||
|
||||
} // namespace mcc
|
||||
|
||||
Reference in New Issue
Block a user