2018-05-17 13:50:03 +00:00
|
|
|
#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 <typename T>
|
|
|
|
T& ref(int i, int j) { return *((T*)ref_void(i,j)); }
|
|
|
|
template <typename T>
|
|
|
|
const T& get(int i, int j) const { return *((const T*)get_void(i,j)); }
|
|
|
|
template <typename T>
|
|
|
|
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();
|
|
|
|
};
|
2018-05-17 14:01:02 +00:00
|
|
|
|
|
|
|
}
|
|
|
|
}
|
2018-05-17 13:50:03 +00:00
|
|
|
|
|
|
|
#include <cgv/config/lib_end.h>
|