Beispiel #1
0
bool GiCoreView::setContent(const char* content)
{
    DrawLocker locker(impl);
    bool ret = loadShapes(impl->defaultStorage.storageForRead(content));
    impl->defaultStorage.clear();
    return ret;
}
Beispiel #2
0
	void ModelLoader::loadModel(std::string path, ModelData* modelData)
	{
		std::string basename, directory;
		splitPath(path, &basename, &directory);

		std::vector<tinyobj::shape_t> shapes;
		std::vector<tinyobj::material_t> materials;
		std::string err = tinyobj::LoadObj(shapes, materials, path.c_str(), directory.c_str());

		modelData->vertices.clear();
		modelData->indices.clear();
		modelData->material.reset();
		modelData->diffuseTex.reset();
		modelData->alphaTex.reset();

		if (materials.size() > 0)
		{
			modelData->material.reset(createMaterialFromMtl(*materials.begin()));
			if (!materials.begin()->diffuse_texname.empty())
				modelData->diffuseTex.reset(loadImage(directory, materials.begin()->diffuse_texname));
			else modelData->diffuseTex.reset();
			if (!materials.begin()->alpha_texname.empty())
				modelData->alphaTex.reset(loadImage(directory, materials.begin()->alpha_texname));
			else modelData->alphaTex.reset();
		}
		if (!err.empty())
			throw Exception(err);
		loadShapes(shapes, &modelData->vertices, &modelData->indices);
	}
Beispiel #3
0
bool GiCoreView::loadFromFile(const char* vgfile)
{
#if defined(_MSC_VER) && _MSC_VER >= 1400 // VC8
    FILE *fp = NULL;
    fopen_s(&fp, vgfile, "rt");
#else
    FILE *fp = fopen(vgfile, "rt");
#endif
    DrawLocker locker(impl);
    MgJsonStorage s;
    bool ret = loadShapes(s.storageForRead(fp));

    if (fp) {
        fclose(fp);
    } else {
        LOGE("Fail to open file: %s", vgfile);
    }

    return ret;
}
Beispiel #4
0
void GiCoreView::clear()
{
    DrawLocker locker(impl);
    loadShapes((MgStorage*)0);
}