Beispiel #1
0
void Settings::to_file(const QString& filename)
{
	QFile::remove(filename);
	QFile setting_file(filename);
	if (setting_file.open(QIODevice::WriteOnly))
	{
		QJsonObject obj;
		for (auto it = map_.constBegin(); it != map_.constEnd() ; ++it)
			obj[it.key()] = QJsonObject::fromVariantMap(it.value());
		QJsonDocument doc(obj);
		setting_file.write(doc.toJson());
	} else {
		cgogn_log_info("Settings::to_file()") << "Unable to write in the file \"" << filename.toStdString() << "\".";
	}
}
int main(int argc, char** argv)
{
	std::string filename;
	if (argc < 2)
	{
		cgogn_log_info("topogical_analysis") << "USAGE: " << argv[0] << " [filename]";
		filename = std::string(DEFAULT_MESH_PATH) + std::string("/tet/hand.tet");
		cgogn_log_info("topogical_analysis") << "Using default mesh \"" << filename << "\".";
	}
	else
		filename = std::string(argv[1]);

	QApplication application(argc, argv);
	qoglviewer::init_ogl_context();

	// Instantiate the viewer.
	TopologicalAnalyser<CMap3> viewer;
	viewer.setWindowTitle("Topological Analysis");
	viewer.import(filename);
	viewer.show();

	// Run main loop.
	return application.exec();
}
Beispiel #3
0
std::unique_ptr<Settings> Settings::from_file(const QString& setting_filename)
{
	std::unique_ptr<Settings> settings = cgogn::make_unique<Settings>();
	QFile setting_file(setting_filename);
	if (setting_file.exists() && setting_file.open(QIODevice::ReadOnly))
	{
		QByteArray data =  setting_file.readAll();

		QJsonParseError parse_error;
		QJsonDocument doc = QJsonDocument::fromJson(data, &parse_error);
		if (parse_error.error != QJsonParseError::NoError)
		{
			cgogn_log_warning("Settings(const QString&)") << "Error while reading the file \"" << setting_filename.toStdString() << "\". Error is : \"" << parse_error.errorString().toStdString() << "\".";
		} else {
			cgogn_log_info("Settings(const QString&)") << "Loaded setting file \"" << setting_filename.toStdString() << "\".";
		}
		const auto obj = doc.object();
		for(auto it = obj.constBegin(); it != obj.constEnd(); ++it)
			settings->add_module(it.key(), it.value().toObject().toVariantMap());
	} else {
		cgogn_log_warning("Settings::from_file()") << "Unable to read the file \"" << setting_filename.toStdString() << "\".";
	}
	return settings;
}