Now named MaterialType. It's easier to type this:
auto t = Trade::MaterialType::Phong;
Than this overlong name, which is moreover ambiguous due to subclassing:
auto t = Trade::AbstractMaterialData::Type::Phong;
// or should I use rather Trade::PhongMaterialData::Type::Phong?
* They are now deinlined into source files, as most of the classes have
either heavy members (std::vector) or virtual methods.
* All of them are explicit now (that should be already done, don't know
why not).
* Passing huge classes by value and using move constructors to avoid
unnecessary copying.
In most cases the names aren't even supported/used and thus it is
wasteful to have them in all *Data classes. If the importer wants to
support them, it would reimplement *name() functions instead.
AbstractImporter now provides access to the data directly and doesn't
attempt to do any OpenGL stuff, thus making everything more transparent
and testable.
Start of AbstractImporter rework - Trade namespace will contain simple
classes usable for exchanging data with other formats, importers will
not depend on any OpenGL functionality, they will just provide access to
plain data.