Added toString method to polygons, together with fields "label" and
"collided_with"
This commit is contained in:
parent
399949876f
commit
398cae3b24
14
polygons.h
14
polygons.h
@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
#include <gtk/gtk.h>
|
#include <gtk/gtk.h>
|
||||||
|
#include <unordered_set>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
@ -20,11 +21,13 @@ class polygon {
|
|||||||
std::vector<vec2d> points;
|
std::vector<vec2d> points;
|
||||||
double inertia;
|
double inertia;
|
||||||
double mass;
|
double mass;
|
||||||
|
std::string label;
|
||||||
|
|
||||||
std::vector<vec2d> global_points = points;
|
std::vector<vec2d> global_points = points;
|
||||||
|
|
||||||
vec2d speed;
|
vec2d speed;
|
||||||
double angular_speed;
|
double angular_speed;
|
||||||
|
std::unordered_set<polygon*> collided_with;
|
||||||
|
|
||||||
void draw(cairo_t* cr) const;
|
void draw(cairo_t* cr) const;
|
||||||
void draw_bounding_rect(cairo_t* cr) const;
|
void draw_bounding_rect(cairo_t* cr) const;
|
||||||
@ -92,6 +95,17 @@ class polygon {
|
|||||||
|
|
||||||
return vec2d{x, y} / points.size();
|
return vec2d{x, y} / points.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
friend std::ostream& operator<<(std::ostream& os, polygon& p) {
|
||||||
|
vec2d c = p.centroid();
|
||||||
|
os << p.label << ": " << std::endl;
|
||||||
|
os << " mass: " << p.mass << std::endl;
|
||||||
|
os << " position: " << c << std::endl;
|
||||||
|
os << " angle: " << p.angle << std::endl;
|
||||||
|
os << " speed: " << p.speed << std::endl;
|
||||||
|
os << " angular speed: " << p.angular_speed << std::endl;
|
||||||
|
return os;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
extern polygon* polygons;
|
extern polygon* polygons;
|
||||||
|
Loading…
Reference in New Issue
Block a user