Bridges-C++  3.4.1
Bridges(C++API)
Circle.h
Go to the documentation of this file.
1 #include "DataStructure.h"
2 #include "Symbol.h"
3 #include <vector>
4 
5 using namespace std;
6 
7 #ifndef CIRCLE_H
8 
9 #define CIRCLE_H
10 
11 
12 namespace bridges {
13  namespace datastructure {
22  class Circle : public Symbol {
23  private:
24  double center_x, center_y;
25  double radius = 1.;
26 
27  public:
28 
32  Circle () {
33  setCircle(0., 0., 1.);
34  }
35 
40  Circle (double r) {
41  setCircle (0., 0., r);
42  }
43 
49  Circle (double cx, double cy, double r) {
50  center_x = cx; center_y = cy;
51  if (r < 0.)
52  throw "Illegal value for radius. Must be positive";
53  radius = r;
54  }
55 
61  virtual string getShapeType() const override {
62  return "circle";
63  }
64 
70  double getRadius() {
71  return radius;
72  }
78  void setRadius(double r) {
79  if (r < 0.)
80  throw "Illegal value for radius. Must be positive";
81  radius = r;
82  }
83 
91  void setCircle (double cx, double cy, double r) {
92  setCenter(cx,cy);
93  if (r < 0.)
94  throw "Illegal value for radius. Must be positive";
95  radius = r;
96  }
97  void setCenter (double cx, double cy) {
98  center_x = cx;
99  center_y = cy;
100  }
101 
102 
103  double getCenterX() const {
104  return center_x;
105  }
106  double getCenterY() const {
107  return center_y;
108  }
109 
115  const string getSymbolRepresentation() const override {
116 
117  string shape_json = getSymbolAttributeRepresentation();
118 
119  shape_json +=
120  QUOTE + "center" + QUOTE + COLON +
121  OPEN_BOX +
122  to_string(center_x) + COMMA + to_string(center_y) +
123  CLOSE_BOX + COMMA +
124  QUOTE + "r" + QUOTE + COLON + to_string(radius) + CLOSE_CURLY;
125 
126  return shape_json;
127 
128  }
129  };
130  }
131 } // namespace bridges
132 
133 #endif
virtual string getShapeType() const override
Definition: Circle.h:61
const string COLON
Definition: DataStructure.h:51
double getCenterX() const
Definition: Circle.h:103
void setRadius(double r)
This method sets the radius of the circle.
Definition: Circle.h:78
const string OPEN_BOX
Definition: DataStructure.h:54
Circle(double r)
Definition: Circle.h:40
Circle(double cx, double cy, double r)
Definition: Circle.h:49
const string CLOSE_CURLY
Definition: DataStructure.h:53
This is an abstract class for deriving a number of Symbol shape objects, for use in a SymbolCollectio...
Definition: Symbol.h:32
This class defines a circle and is part of the symbol collection. A circle has a radius.
Definition: Circle.h:22
void setCenter(double cx, double cy)
Definition: Circle.h:97
these methods convert byte arrays in to base64 codes and are used in BRIDGES to represent the color a...
Definition: alltypes.h:4
Circle()
Definition: Circle.h:32
const string CLOSE_BOX
Definition: DataStructure.h:55
const string getSymbolRepresentation() const override
Definition: Circle.h:115
double getRadius()
This method returns the radius of the circle.
Definition: Circle.h:70
void setCircle(double cx, double cy, double r)
This method sets the circle dimensions.
Definition: Circle.h:91
double getCenterY() const
Definition: Circle.h:106
const string COMMA
Definition: DataStructure.h:50
const string QUOTE
Definition: DataStructure.h:49