13 #include "core/core.hpp"
14 #include "core/common.h"
15 #include "core/uncopyable.h"
16 #include "core/point2d.h"
17 #include "core/image.h"
18 #include "core/filter.h"
19 #include "core/cobject.h"
27 const std::shared_ptr<Filter> &filter,
28 const std::string& filename,
29 const std::shared_ptr<std::function<
void(
const Image&)>> &callback =
nullptr);
33 inline Point2i resolution()
const {
return resolution_; }
34 inline double aspect()
const {
35 return static_cast<double>(resolution_.x()) / resolution_.y();
45 void save(
int id = 0)
const;
55 void saveMLT(
double scale,
int id = 0)
const;
57 void setImage(
const Image& image);
62 inline void setFilename(
const std::string filename) {
63 this->filename_ = filename;
66 inline void setSaveCallback(std::unique_ptr<std::function<
void(
const Image&)>>&& callback) {
67 this->saveCallback_ = std::move(callback);
70 inline double weight(
const Point2d &pixel)
const {
71 return filter_->evaluate(pixel);
74 virtual void saveImage(
const std::string &filename,
const Image &image)
const = 0;
79 std::shared_ptr<Filter> filter_;
80 std::string filename_;
82 std::vector<std::vector<double>> weights_;
83 std::vector<std::vector<int>> samples_;
84 std::shared_ptr<std::function<void(const Image&)>> saveCallback_;
90 #endif // _SPICA_FILM_H_
RGB spectrum.
Definition: spectrum.h:18
Image class.
Definition: image.h:18
Interface class which forbids copy and assignment.
Definition: uncopyable.h:15