#pragma once #include "data_view.h" #include "lib_begin.h" namespace cgv { namespace data { class CGV_API image_view { public: data_format df; data_view dv; void* ref_void(int i, int j); const void* get_void(int i, int j) const; public: image_view(); int get_width() const { return df.get_width(); } int get_height() const { return df.get_height(); } data_view& ref_data_view() { return dv; } void create(const std::string& fmt_dcr, int w=-1, int h=-1); void clear(double v); /* bool read(const std::string& fn); bool write(const std::string& fn) const; */ template T& ref(int i, int j) { return *((T*)ref_void(i,j)); } template const T& get(int i, int j) const { return *((const T*)get_void(i,j)); } template T* ptr(int i, int j) { return (T*)ref_void(i,j); } void copy_rectangle(const image_view& src, int X = 0, int Y = 0, int x = 0, int y = 0, int w = -1, int h = -1); void sub_sample(); }; } } #include