/** * \brief Constructor to build Part from PartInfo */ PartInfo::PartInfo(const Part& part) { partno = part.partno(); instrument = part.instrument(); width = part.exposure().width(); height = part.exposure().height(); xoffset = part.exposure().x(); yoffset = part.exposure().y(); exposuretime = part.exposure().exposuretime(); gain = part.exposure().gain(); limit = part.exposure().limit(); binx = part.exposure().mode().x(); biny = part.exposure().mode().y(); switch (part.exposure().shutter()) { case astro::camera::Shutter::OPEN: shutter = 1; break; case astro::camera::Shutter::CLOSED: shutter = 0; break; } purpose = part.exposure().purpose(); filtername = part.filtername(); temperature = part.temperature(); taskserver = part.taskserver(); taskid = part.taskid(); repoid = part.repoid(); }
/** * \brief Cast operator to convert a PartInfo object to a part */ PartInfo::operator Part() const { Part part; part.partno(partno); part.instrument(instrument); astro::image::ImageSize size(width, height); astro::image::ImagePoint origin(xoffset, yoffset); astro::image::ImageRectangle frame(size, origin); astro::camera::Exposure exposure; exposure.frame(frame); exposure.exposuretime(exposuretime); exposure.gain(gain); exposure.limit(limit); exposure.mode(astro::image::Binning(binx, biny)); exposure.shutter((shutter) ? astro::camera::Shutter::OPEN : astro::camera::Shutter::CLOSED); exposure.purpose((astro::camera::Exposure::purpose_t)purpose); part.exposure(exposure); part.filtername(filtername); part.temperature(temperature); part.taskserver(taskserver); part.taskid(taskid); part.repoid(repoid); return part; }