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  SDF::Obj arr = GetArray(dict, key);
85  while(arr.Size() <= index)
86  {
87  arr.PushBackArray();
88  }
89  SDF::Obj innerArray = arr.GetAt(index);
90  for (size_t i = 0; i < rects.GetNumRects(); ++i)
91  {
92  Rect rect = rects.GetRectAt((int)i);
93  innerArray.PushBackRect(rect.GetX1(), rect.GetY1(), rect.GetX2(), rect.GetY2());
94  }
95  }
96 
97  static Rect RectFromArray(void*)
98  {
99  return Rect();
100  }
101 
102  static double ColorPtToNumber(const ColorPt& cp)
103  {
104  int num_comp = 3;
105  int red = 0;
106  int green = 0;
107  int blue = 0;
108  int alpha = 255;
109  if(num_comp == 1) {
110  red = (int)(255*cp.Get(0));
111  green = red;
112  blue = red;
113  }
114  else if(num_comp == 3 || num_comp == 4) {
115  red = (int)(255*cp.Get(0));
116  green = (int)(255*cp.Get(1));
117  blue = (int)(255*cp.Get(2));
118  }
119  if(num_comp == 4) {
120  alpha = (int)(255*cp.Get(3));
121  }
122  UInt32 num = ((0xFF&alpha) << 24)
123  | ((0xFF&red) << 16)
124  | ((0xFF&green) << 8)
125  | ((0xFF&blue) << 0);
126  return (double)num;
127  }
128  static ColorPt ColorPtFromNumber(double dnum)
129  {
130  UInt32 num = (UInt32)dnum;
131  return ColorPt(((num >> 16) & 0xFF)/255.0,
132  ((num >> 8) & 0xFF)/255.0,
133  ((num >> 0) & 0xFF)/255.0,
134  ((num >> 24)&0xFF)/255.0);
135  }
136 
137  // @cond PRIVATE_DOC
138  #ifndef SWIGHIDDEN
139  const SDF::Obj& GetInternalObj() const
140  {
141  return m_dict;
142  }
143  SDF::Obj& GetInternalObj()
144  {
145  return m_dict;
146  }
147 
148 protected:
149 
150  SDF::ObjSet m_obj_set;
151  SDF::Obj m_dict;
152  #endif
153  // @endcond
154 };
155 
156 }
157 }
158 
159 #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:128
Obj PutText(const char *key, const UString &value)
static Rect RectFromArray(void *)
Definition: OptionsBase.h:97
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:102
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