I am trying to create Voronoi diagram for some given points. Each points have different attributes and I want to denote it as color. To map my own Point structure with Boost Point concept, I have written some code. I have the following setup:
struct Point {
  double a;
  double b;
  Point(double x, double y) : a(x), b(y) {}
};
// This Point structure is mapped to Boost Point concept. Code emitted 
I have another structure as :
struct Point_Collection {
  Point xy(double x, double y);
  short color;
};
Visual Studio created an automatic definition as :
Point Point_Collection::xy(double x, double y)
{
    return Point();
}
Now if I try to instantiate an object of Point_collection as:
std::vector<Point_Collection> *test;
test = new std::vector<Point_Collection>();
Point_Collection xy_color;
for (int i = 0; i < 5000; i++) {
    xy_color.xy(rand() % 1000, rand() % 1000);
    xy_color.color = rand() % 17;
    test->push_back(xy_color);
}
I get an error.
 error C2512: 'Point': no appropriate default constructor available
Can someone point me in the right direction why is this happening?
 
    