g4tools  5.4.0
sf_img
Go to the documentation of this file.
1 // Copyright (C) 2010, Guy Barrand. All rights reserved.
2 // See the file tools.license for terms.
3 
4 #ifndef tools_sg_sf_img
5 #define tools_sg_sf_img
6 
7 #include "sf"
8 
9 #include "../img"
10 
11 namespace tools {
12 namespace sg {
13 
14 template <class T>
15 class sf_img : public bsf< img<T> > {
16  typedef bsf< img<T> > parent;
17 public:
18  static const std::string& s_class() {
19  static const std::string s_v("tools::sg::sf_img<"+stype(T())+">");
20  return s_v;
21  }
22  virtual void* cast(const std::string& a_class) const {
23  if(void* p = cmp_cast< sf_img<T> >(this,a_class)) {return p;}
24  return parent::cast(a_class);
25  }
26  virtual const std::string& s_cls() const {return s_class();}
27 public:
28  virtual bool write(io::iwbuf& a_buffer) {
29  const img<T>& im = parent::m_value;
30  return a_buffer.write_img(im.width(),im.height(),im.bpp(),im.buffer());
31  }
32  virtual bool read(io::irbuf& a_buffer) {
33  uint32 w,h,n;uchar* b;
34  if(!a_buffer.read_img(w,h,n,b)) return false;
35  img<T>& im = parent::m_value;
36  if(w && h && n && b) {
37  im.set(w,h,n,b,true);
38 #ifdef TOOLS_MEM
39  mem::decrement(s_new().c_str());
40 #endif
41  }
42  return true;
43  }
44  virtual bool dump(std::ostream&) {
45  //a_out << parent::m_value << std::endl;
46  return true;
47  }
48  virtual bool s_value(std::string& a_s) const {a_s.clear();return false;}
49  virtual bool s2value(const std::string&) {return false;}
50 public:
51  sf_img():parent(){}
52  sf_img(const img<T>& a_value):parent(a_value){}
53  virtual ~sf_img(){}
54 public:
55  sf_img(const sf_img& a_from):parent(a_from){}
56  sf_img& operator=(const sf_img& a_from){
57  parent::operator=(a_from);
58  return *this;
59  }
60 public:
61  sf_img& operator=(const img<T>& a_value){
62  parent::operator=(a_value);
63  return *this;
64  }
65 };
66 
67 }}
68 
69 #endif
tools::sg::sf_img
Definition: sf_img:15
tools::sg::sf_img::sf_img
sf_img(const sf_img &a_from)
Definition: sf_img:55
tools::io::irbuf::read_img
virtual bool read_img(uint32 &, uint32 &, uint32 &, uchar *&)=0
tools::img
Definition: img:21
tools::sg::bsf
Definition: bsf:19
tools::sg::sf_img::sf_img
sf_img(const img< T > &a_value)
Definition: sf_img:52
tools::sg::sf_img::write
virtual bool write(io::iwbuf &a_buffer)
Definition: sf_img:28
tools::sg::bsf< img< T > >::m_value
img< T > m_value
Definition: bsf:120
tools::sg::sf_img::s_cls
virtual const std::string & s_cls() const
Definition: sf_img:26
tools::sg::sf_img::operator=
sf_img & operator=(const sf_img &a_from)
Definition: sf_img:56
tools::sg::sf_img::s_value
virtual bool s_value(std::string &a_s) const
Definition: sf_img:48
tools::sg::field
Definition: field:25
tools::sg::bsf< img< T > >::cast
virtual void * cast(const std::string &a_class) const
Definition: bsf:27
tools::sg::sf_img::cast
virtual void * cast(const std::string &a_class) const
Definition: sf_img:22
tools::img::width
unsigned int width() const
Definition: img:214
tools::sg::sf_img::s2value
virtual bool s2value(const std::string &)
Definition: sf_img:49
tools::uchar
unsigned char uchar
Definition: typedefs:99
sf
tools::sg::sf_img::s_class
static const std::string & s_class()
Definition: sf_img:18
tools::sg::sf_img::read
virtual bool read(io::irbuf &a_buffer)
Definition: sf_img:32
tools
inlined C code : ///////////////////////////////////
Definition: aida_ntuple:26
tools::io::irbuf
Definition: irbuf:19
tools::sg::sf_img::dump
virtual bool dump(std::ostream &)
Definition: sf_img:44
tools::io::iwbuf::write_img
virtual bool write_img(uint32, uint32, uint32, const uchar *)=0
tools::cmp_cast
void * cmp_cast(const TO *a_this, const std::string &a_class)
Definition: scast:15
tools::sg::sf_img::~sf_img
virtual ~sf_img()
Definition: sf_img:53
tools::sg::bsf< img< T > >::operator=
bsf & operator=(const bsf &a_from)
Definition: bsf:49
tools::img::bpp
unsigned int bpp() const
Definition: img:217
tools::io::iwbuf
Definition: iwbuf:15
tools::img::height
unsigned int height() const
Definition: img:215
tools::img::set
void set(unsigned int a_w, unsigned int a_h, unsigned int a_n, T *a_buffer, bool a_owner)
Definition: img:119
tools::img::buffer
const T * buffer() const
Definition: img:218
tools::stype
const std::string & stype(const mat4f &)
Definition: mat4f:73
tools::uint32
unsigned int uint32
Definition: typedefs:71
tools::sg::sf_img::operator=
sf_img & operator=(const img< T > &a_value)
Definition: sf_img:61
tools::sg::sf_img::sf_img
sf_img()
Definition: sf_img:51