All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
OptionsBase.h
Go to the documentation of this file.
1 // This file is autogenerated: please see the codegen template "Options"
2 #ifndef PDFTRON_H_CPPPDFOptionsBase
3 #define PDFTRON_H_CPPPDFOptionsBase
4 
5 #include <SDF/ObjSet.h>
6 #include <PDF/ColorSpace.h>
7 #include <PDF/Rect.h>
8 #include <PDF/RectCollection.h>
9 
10 namespace pdftron{ namespace PDF{
11 
13 {
14 public:
16  : m_obj_set()
17  , m_dict()
18  {
19  m_dict = m_obj_set.CreateDict();
20  }
21 
22  OptionsBase(const UString& json)
23  {
24  m_dict = m_obj_set.CreateFromJson(json);
25  }
26 
27  static SDF::Obj GetArray(SDF::Obj dict, const char* key)
28  {
29  SDF::Obj found = dict.FindObj(key);
30  if(!found.IsValid())
31  {
32  found = dict.PutArray(key);
33  }
34  return found;
35  }
36 
37  static void PutNumber(SDF::Obj dict, const char* key, double num)
38  {
39  dict.PutNumber(key, num);
40  }
41  static void PutBool(SDF::Obj dict, const char* key, bool val)
42  {
43  dict.PutBool(key, val);
44  }
45  static void PutText(SDF::Obj dict, const char* key, const UString& text)
46  {
47  dict.PutText(key, text);
48  }
49  static void PutRect(SDF::Obj dict, const char* key, const Rect& rect)
50  {
51  dict.PutRect(key, rect.GetX1(), rect.GetY1(), rect.GetX2(), rect.GetY2());
52  }
53 
54  static void PushBackNumber(SDF::Obj dict, const char* key, double num)
55  {
56  SDF::Obj arr = GetArray(dict, key);
57  arr.PushBackNumber(num);
58  }
59  static void PushBackBool(SDF::Obj dict, const char* key, bool val)
60  {
61  SDF::Obj arr = GetArray(dict, key);
62  arr.PushBackBool(val);
63  }
64  static void PushBackText(SDF::Obj dict, const char* key, const UString& text)
65  {
66  SDF::Obj arr = GetArray(dict, key);
67  arr.PushBackText(text);
68  }
69  static void PushBackRect(SDF::Obj dict, const char* key, const Rect& rect)
70  {
71  SDF::Obj arr = GetArray(dict, key);
72  arr.PushBackRect(rect.GetX1(), rect.GetY1(), rect.GetX2(), rect.GetY2());
73  }
74 
76  {
77  return Rect(nums.GetAt(0).GetNumber(), nums.GetAt(1).GetNumber(),
78  nums.GetAt(2).GetNumber(), nums.GetAt(3).GetNumber());
79  }
80 
81  static void InsertRectCollection(SDF::Obj dict, const char* key,
82  const RectCollection& rects, int index)
83  {
84  if (index < 0)
85  {
86  return;
87  }
88  SDF::Obj arr = GetArray(dict, key);
89  while(arr.Size() <= (size_t)index)
90  {
91  arr.PushBackArray();
92  }
93  SDF::Obj innerArray = arr.GetAt((size_t)index);
94  for (size_t i = 0; i < rects.GetNumRects(); ++i)
95  {
96  Rect rect = rects.GetRectAt(i);
97  innerArray.PushBackRect(rect.GetX1(), rect.GetY1(), rect.GetX2(), rect.GetY2());
98  }
99  }
100 
101  static Rect RectFromArray(void*)
102  {
103  return Rect();
104  }
105 
106  static double ColorPtToNumber(const ColorPt& cp)
107  {
108  int num_comp = 3;
109  UInt32 red = 0;
110  UInt32 green = 0;
111  UInt32 blue = 0;
112  UInt32 alpha = 255;
113  if(num_comp == 1) {
114  red = (UInt32)(255*cp.Get(0));
115  green = red;
116  blue = red;
117  }
118  else if(num_comp == 3 || num_comp == 4) {
119  red = (UInt32)(255*cp.Get(0));
120  green = (UInt32)(255*cp.Get(1));
121  blue = (UInt32)(255*cp.Get(2));
122  }
123  if(num_comp == 4) {
124  alpha = (UInt32)(255*cp.Get(3));
125  }
126  const UInt32 num = ((0xFF&alpha) << 24)
127  | ((0xFF&red) << 16)
128  | ((0xFF&green) << 8)
129  | ((0xFF&blue) << 0);
130  return (double)num;
131  }
132  static ColorPt ColorPtFromNumber(double dnum)
133  {
134  UInt32 num = (UInt32)dnum;
135  return ColorPt(((num >> 16) & 0xFF)/255.0,
136  ((num >> 8) & 0xFF)/255.0,
137  ((num >> 0) & 0xFF)/255.0,
138  ((num >> 24)&0xFF)/255.0);
139  }
140 
141  // @cond PRIVATE_DOC
142  #ifndef SWIGHIDDEN
143  const SDF::Obj& GetInternalObj() const
144  {
145  return m_dict;
146  }
147  SDF::Obj& GetInternalObj()
148  {
149  return m_dict;
150  }
151 
152 protected:
153 
154  SDF::ObjSet m_obj_set;
155  SDF::Obj m_dict;
156  #endif
157  // @endcond
158 };
159 
160 }
161 }
162 
163 #endif // PDFTRON_H_CPPPDFOptionsBase
OptionsBase(const UString &json)
Definition: OptionsBase.h:22
static SDF::Obj GetArray(SDF::Obj dict, const char *key)
Definition: OptionsBase.h:27
Obj PutBool(const char *key, bool value)
static void PutText(SDF::Obj dict, const char *key, const UString &text)
Definition: OptionsBase.h:45
double GetY1() const
Obj PutNumber(const char *key, double value)
Obj PushBackRect(double x1, double y1, double x2, double y2)
static void PushBackRect(SDF::Obj dict, const char *key, const Rect &rect)
Definition: OptionsBase.h:69
static void PushBackBool(SDF::Obj dict, const char *key, bool val)
Definition: OptionsBase.h:59
static void PutBool(SDF::Obj dict, const char *key, bool val)
Definition: OptionsBase.h:41
static ColorPt ColorPtFromNumber(double dnum)
Definition: OptionsBase.h:132
Obj PutText(const char *key, const UString &value)
static Rect RectFromArray(void *)
Definition: OptionsBase.h:101
static void PushBackText(SDF::Obj dict, const char *key, const UString &text)
Definition: OptionsBase.h:64
double GetX2() const
double GetY2() const
Obj PushBackBool(bool value)
TRN_UInt32 UInt32
Definition: BasicTypes.h:13
Rect GetRectAt(size_t index) const
Obj PushBackNumber(double value)
static void PutRect(SDF::Obj dict, const char *key, const Rect &rect)
Definition: OptionsBase.h:49
Obj PutRect(const char *key, double x1, double y1, double x2, double y2)
double GetX1() const
Obj PushBackText(const UString &value)
static double ColorPtToNumber(const ColorPt &cp)
Definition: OptionsBase.h:106
Obj PutArray(const char *key)
double Get(int colorant_index) const
Obj FindObj(const char *key)
static void PutNumber(SDF::Obj dict, const char *key, double num)
Definition: OptionsBase.h:37
static void InsertRectCollection(SDF::Obj dict, const char *key, const RectCollection &rects, int index)
Definition: OptionsBase.h:81
bool IsValid() const
size_t Size() const
Obj GetAt(size_t index) const
double GetNumber() const
static void PushBackNumber(SDF::Obj dict, const char *key, double num)
Definition: OptionsBase.h:54
static Rect RectFromArray(SDF::Obj nums)
Definition: OptionsBase.h:75