cgv
packing_info.h
1 #pragma once
2 
3 #include <cgv/data/lib_begin.h>
4 
5 namespace cgv {
6  namespace data {
7 
22 class CGV_API packing_info
23 {
24 protected:
25  bool is_packed : 1;
26  unsigned int bd0 : 6;
27  unsigned int bd1 : 6;
28  unsigned int bd2 : 6;
29  unsigned int bd3 : 6;
30  unsigned int ca : 6;
32  bool prepare_bit_operation(unsigned int ci, void* ptr, unsigned int &off, unsigned int &bd, unsigned int* &iptr) const;
33  bool prepare_bit_operation(unsigned int ci, const void* ptr, unsigned int &off, unsigned int &bd, const unsigned int* &iptr) const;
34  unsigned int get_bit_offset(unsigned int ci) const;
35 public:
39  packing_info(unsigned int align = 1, unsigned int d0 = 0, unsigned int d1 = 0, unsigned int d2 = 0, unsigned int d3 = 0);
41  void clear();
43  unsigned int get_bit_depth(unsigned int ci) const;
45  void set_bit_depth(unsigned int ci, unsigned int depth);
47  bool is_packing() const;
49  void set_packing(bool enable = true);
51  unsigned int get_component_alignment() const;
53  void set_component_alignment(unsigned int a);
55  static unsigned int align(unsigned int v, unsigned int a);
57  int get_signed(unsigned int ci, const void* ptr) const;
59  unsigned int get_unsigned(unsigned int ci, const void* ptr) const;
61  bool set_signed(unsigned int ci, void* ptr, int v) const;
63  bool set_unsigned(unsigned int ci, void* ptr, unsigned int v) const;
65  bool operator == (const packing_info& pi) const;
67  bool operator != (const packing_info& pi) const;
68 };
69 
70  }
71 }
72 
73 #include <cgv/config/lib_end.h>
cgv::data::packing_info
Definition: packing_info.h:23
cgv
the cgv namespace
Definition: vr_calib.cxx:9