This is a case of MVP (Most Vexing Parse):
vector<vector<float> > points();
This is actually a function declaration, change it to:
vector<vector<float> > points;
With the first version, C++ thinks you're declaring a function called points which takes no arguments and returns a vector of vector of floats. That's why it's complaining about it being a non-class type.