C++SDK  1.0.0
annotationobject.h
浏览该文件的文档.
1 #ifndef RT_AnnotationObject_H_
2 #define RT_AnnotationObject_H_
3 
4 #include "api/common.h"
5 #include "annotationdefines.h"
6 
8 namespace rtcbase {
9  class CriticalSection;
10 }
11 namespace room_pdu{
12  class AnnotationObject;
13  class Annotation2Point;
14  class AnnotationMultiPoint;
15  class AnnotationList;
16 }
17 /*
18 {
19 "annotationbase":{
20 "annotation_id_":"1594fcf816c84d75a6677ff2565af1c4",
21 "annotation_rect_":{
22 "bottom":500,
23 "left":0,
24 "right":800,
25 "top":0
26 },
27 "display_rect_":{
28 "bottom":500,
29 "left":0,
30 "right":800,
31 "top":0
32 },
33 "fill_color_":{
34 "a":255,
35 "b":0,
36 "g":0,
37 "r":255
38 },
39 "line_width_":2,
40 "line_arrow_":1,
41 "line_color_":{
42 "a":255,
43 "b":0,
44 "g":0,
45 "r":255
46 },
47 "object_id_":"{79c09a71-2f89-48f2-9f0b-de9ad6394443}",
48 "object_rect_":{
49 "bottom":462,
50 "left":43,
51 "right":119,
52 "top":227
53 },
54 "tool_type_":2,
55 "user_id_":"30"
56 },
57 "points":[
58 {
59 "x":43,
60 "y":227
61 },
62 {
63 "x":118,
64 "y":461
65 }
66 ]
67 }
68 */
69 namespace rtcimp {
70 
72  public:
73  static AnnotationObject* Create(AnnotationToolType type);
74  static AnnotationToolType checkToolType(std::string json);
75  virtual ~AnnotationObject() {}
76 
77  //object info
78  virtual void SetLineWidth(int width) { line_width_ = width; }
79  virtual void SetLineColor(Color color) { line_color_ = color; }
80  virtual void SetFillColor(Color color) { fill_color_ = color; }
81  virtual void SetLineArrow(const LineArrowType& arrow) { line_arrow_ = arrow; }
82  virtual void SetEnable(bool enable = true) { enable_ = enable; }
83  virtual void SetDisplayRect(const Rect& rc) { display_rect_ = rc; }
84  virtual void SetAnnotationRect(const Rect& rc) { annotation_rect_ = rc; }
85  virtual void SetZoomMode(bool isZoom) { zoom_ = isZoom; }
86  virtual bool IsEnable() { return enable_; }
87  virtual bool Is(AnnotationToolType type) { return tool_type_ == type; };
88  virtual AnnotationToolType ToolType() { return tool_type_; }
89 
90  virtual bool Draw(const AVDContext& context, bool paint){ return true; }
91  virtual void CopyDataFrom(AnnotationObject* data){}
92  virtual void CopyDataTo(room_pdu::AnnotationObject* pduobject);
93  virtual void CopyDataFrom(const room_pdu::AnnotationObject* pduobject);
94 
95  //json
96  virtual bool CopyDataFromJson(std::string annotStr);
97  virtual bool CopyDataToJson(std::string& annotStr);
98 
99  virtual bool HitTest(const Point& pt) { return true; }
100 
101  //id info
102  void SetUserId(const std::string& id) { user_id_ = id; }
103  void SetAnnotationId(const std::string& id) { annotation_id_ = id; }
104  void SetObjectId(const std::string& id) { object_id_ = id; }
105 
106  std::string GetUserId() { return user_id_; }
107  std::string GetAnnotationId() { return annotation_id_; }
108  std::string GetObjectId() { return object_id_; }
109  Color GetLineColor() { return line_color_; }
110  void setSeqNum(uint32 i){ _seq_num = i; }
111  uint32 getSeqNum(){ return _seq_num; }
112  protected:
117  bool touched_;
118  bool enable_;
119  bool zoom_;
121 
122  //not need initialize params
128 
129  //user info
130  std::string object_id_;
131  std::string annotation_id_;
132  std::string user_id_;
134  };
135 
136  typedef std::vector <AnnotationObject* > AnnotationObjects;
137  typedef std::vector <std::string > AnnotationObjectIds;
139  public:
140  virtual void CopyDataFrom(AnnotationObject* data);
141  virtual void CopyDataFrom(const room_pdu::Annotation2Point* pdu2point);
142  virtual void CopyDataFromEx(const room_pdu::Annotation2Point* pdu2point);
143  virtual void CopyDataTo(room_pdu::Annotation2Point* pdu2point);
144  virtual void SetDisplayRect(const Rect& rc);
145  virtual bool CopyDataFromJson(std::string annotStr);
146  virtual bool CopyDataToJson(std::string& annotStr);
147  public:
150  };
151 
153  public:
154  bool HitTest(const Point& pt);
155  AnnotationLine();
156  };
158  public:
160  bool HitTest(const Point& pt);
161  protected:
162  };
164  public:
166  bool HitTest(const Point& pt);
167  protected:
168  };
170  public:
171  AnnotationRhomb();
172  bool HitTest(const Point& pt);
173  protected:
174  };
175 
177  public:
178  AnnotationArrow();
179  bool HitTest(const Point& pt);
180  protected:
181  };
182 
184  public:
186  bool HitTest(const Point& pt);
187  protected:
188  };
189 
191  public:
193  bool HitTest(const Point& pt);
194  protected:
195  };
196 
198  public:
199  virtual void CopyDataFrom(AnnotationObject* data);
200  virtual void CopyDataFrom(const room_pdu::AnnotationMultiPoint* pdupoints);
201  virtual void CopyDataFromEx(const room_pdu::AnnotationMultiPoint* pdupoints);
202  virtual void CopyDataTo(room_pdu::AnnotationMultiPoint* pdupoints);
203  virtual void SetDisplayRect(const Rect& rc);
204  virtual bool CopyDataFromJson(std::string annotStr);
205  virtual bool CopyDataToJson(std::string& annotStr);
206  protected:
208  };
209 
211  public:
213  virtual bool HitTest(const Point& pt);
214  protected:
215  };
216 
217 
219  public:
220  AnnotationEraser(AnnotationObjects& eraserObjects);
221  AnnotationEraser(AnnotationObjectIds& eraserObjectIds);
224  void Undo();
225  void Redo();
226  void CopyDataFrom(AnnotationObject* data) { return; }
227  virtual void CopyDataFrom(const room_pdu::AnnotationList* pdulist);
228  virtual void CopyDataTo(room_pdu::AnnotationList* pdulist);
229  void SetEraserObjects(AnnotationObjects& eraserObjects);
230  void GetEraserObjectIds(AnnotationObjectIds& eraserObjectIds);
231  bool HitTest(const Point& pt) { return false; }
232  bool Draw(const AVDContext& context, bool paint) { return false; }
233  void MoveOnly(const Point& movePt) {};
234  protected:
235  AnnotationObjects eraser_objects_;
236  AnnotationObjectIds eraser_object_ids_;
237  rtcbase::CriticalSection* map_crit_;
238  };
239 
241  public:
243  virtual bool HitTest(const Point& pt) { return false; }
244  virtual bool Draw(const AVDContext& context, bool paint) { return false; }
245  protected:
246  };
247 }
248 #endif//RT_AnnotationObject_H_
bool HitTest(const Point &pt)
bool owned_cursor_
Definition: annotationobject.h:116
virtual bool CopyDataToJson(std::string &annotStr)
LineArrowType line_arrow_
Definition: annotationobject.h:115
virtual bool HitTest(const Point &pt)
virtual void SetZoomMode(bool isZoom)
Definition: annotationobject.h:85
Definition: annotationobject.h:218
Definition: annotationbasedefines.h:23
Definition: annotationobject.h:197
bool HitTest(const Point &pt)
std::vector< AnnotationObject * > AnnotationObjects
Definition: annotationobject.h:136
void CopyDataFrom(AnnotationObject *data)
Definition: annotationobject.h:226
uint32 _seq_num
Definition: annotationobject.h:133
Definition: annotationdefines.h:55
virtual void SetDisplayRect(const Rect &rc)
void setSeqNum(uint32 i)
Definition: annotationobject.h:110
Definition: annotationobject.h:11
void SetEraserObjects(AnnotationObjects &eraserObjects)
virtual bool IsEnable()
Definition: annotationobject.h:86
Definition: annotationobject.h:240
Definition: annotationobject.h:163
virtual bool CopyDataToJson(std::string &annotStr)
Color GetLineColor()
Definition: annotationobject.h:109
#define RT_API_EXPORT
Definition: defines.h:188
AnnotationObjects eraser_objects_
Definition: annotationobject.h:233
bool HitTest(const Point &pt)
void SetObjectId(const std::string &id)
Definition: annotationobject.h:104
std::string user_id_
Definition: annotationobject.h:132
unsigned int uint32
Definition: defines.h:393
Color line_color_
Definition: annotationobject.h:123
Rect annotation_rect_
Definition: annotationobject.h:127
void GetEraserObjectIds(AnnotationObjectIds &eraserObjectIds)
virtual ~AnnotationObject()
Definition: annotationobject.h:75
Definition: annotationobject.h:183
virtual void CopyDataFrom(AnnotationObject *data)
Definition: annotationobject.h:91
std::list< Point > PointArray
Definition: annotationbasedefines.h:18
void MoveOnly(const Point &movePt)
Definition: annotationobject.h:233
virtual void SetFillColor(Color color)
Definition: annotationobject.h:80
virtual void CopyDataFromEx(const room_pdu::AnnotationMultiPoint *pdupoints)
AnnotationToolType tool_type_
Definition: annotationobject.h:114
Definition: annotationobject.h:210
virtual void SetAnnotationRect(const Rect &rc)
Definition: annotationobject.h:84
virtual void CopyDataTo(room_pdu::AnnotationMultiPoint *pdupoints)
Definition: annotationobject.h:8
bool touched_
Definition: annotationobject.h:117
PointArray points_
Definition: annotationobject.h:207
virtual bool Draw(const AVDContext &context, bool paint)
Definition: annotationobject.h:90
std::string GetAnnotationId()
Definition: annotationobject.h:107
bool HitTest(const Point &pt)
Definition: annotationobject.h:138
Definition: annotationobject.h:152
std::string annotation_id_
Definition: annotationobject.h:131
Definition: annotationbasedefines.h:41
Definition: annotationbasedefines.h:7
bool HitTest(const Point &pt)
virtual void CopyDataFrom(AnnotationObject *data)
Definition: annotationobject.h:176
virtual void CopyDataFromEx(const room_pdu::Annotation2Point *pdu2point)
bool zoom_
Definition: annotationobject.h:119
Definition: annotationobject.h:190
Definition: annotationobject.h:157
std::vector< std::string > AnnotationObjectIds
Definition: annotationobject.h:137
virtual void SetLineArrow(const LineArrowType &arrow)
Definition: annotationobject.h:81
LineArrowType
Definition: common.h:499
virtual void SetEnable(bool enable=true)
Definition: annotationobject.h:82
Rect object_rect_
Definition: annotationobject.h:125
Definition: annotationobject.h:169
uint32 getSeqNum()
Definition: annotationobject.h:111
virtual bool Is(AnnotationToolType type)
Definition: annotationobject.h:87
virtual bool HitTest(const Point &pt)
Definition: annotationobject.h:99
Color fill_color_
Definition: annotationobject.h:124
virtual void SetLineColor(Color color)
Definition: annotationobject.h:79
bool enable_
Definition: annotationobject.h:118
std::string GetUserId()
Definition: annotationobject.h:106
virtual bool CopyDataFromJson(std::string annotStr)
virtual bool HitTest(const Point &pt)
Definition: annotationobject.h:243
bool HitTest(const Point &pt)
Definition: annotationobject.h:231
Rect display_rect_
Definition: annotationobject.h:126
Point point_from_
Definition: annotationobject.h:148
std::string object_id_
Definition: annotationobject.h:130
virtual void CopyDataFrom(AnnotationObject *data)
std::string GetObjectId()
Definition: annotationobject.h:108
int line_width_
Definition: annotationobject.h:120
virtual void CopyDataTo(room_pdu::Annotation2Point *pdu2point)
virtual void SetLineWidth(int width)
Definition: annotationobject.h:78
AnnotationToolType
Definition: common.h:482
Definition: annotationbasedefines.h:11
virtual void CopyDataTo(room_pdu::AnnotationList *pdulist)
void SetAnnotationId(const std::string &id)
Definition: annotationobject.h:103
AnnotationObjectIds eraser_object_ids_
Definition: annotationobject.h:236
virtual bool CopyDataFromJson(std::string annotStr)
Point point_to_
Definition: annotationobject.h:149
rtcbase::CriticalSection * map_crit_
Definition: annotationobject.h:237
virtual void SetDisplayRect(const Rect &rc)
bool HitTest(const Point &pt)
bool Draw(const AVDContext &context, bool paint)
Definition: annotationobject.h:232
virtual bool Draw(const AVDContext &context, bool paint)
Definition: annotationobject.h:244
virtual AnnotationToolType ToolType()
Definition: annotationobject.h:88
Definition: annotationobject.h:71
virtual void SetDisplayRect(const Rect &rc)
Definition: annotationobject.h:83
bool HitTest(const Point &pt)
void SetUserId(const std::string &id)
Definition: annotationobject.h:102