示例#1
0
bool Sprite3D::initWithFile(const std::string &path)
{
    _meshes.clear();
    _meshVertexDatas.clear();
    CC_SAFE_RELEASE_NULL(_skeleton);
    removeAllAttachNode();
    
    if (loadFromCache(path))
        return true;
    
    //load from file
    std::string ext = path.substr(path.length() - 4, 4);
    std::transform(ext.begin(), ext.end(), ext.begin(), tolower);
    
    if (ext == ".obj")
    {
        return loadFromObj(path);
    }
    else if (ext == ".c3b" || ext == ".c3t")
    {
        return loadFromC3x(path);
    }
    
    return false;
}
示例#2
0
bool Sprite3D::initWithFile(const std::string &path)
{
    CC_SAFE_RELEASE_NULL(_mesh);
    
    CC_SAFE_RELEASE_NULL(_texture);
    
    //find from the cache
    Mesh* mesh = Sprite3DDataCache::getInstance()->getSprite3DMesh(path);
    if (mesh)
    {
        _mesh = mesh;
        _mesh->retain();
        
        auto tex = Sprite3DDataCache::getInstance()->getSprite3DTexture(path);
        setTexture(tex);

        genGLProgramState();
        
        return true;
    }
    else
    {
        //load from file
        std::string ext = path.substr(path.length() - 4, 4);
        if (ext != ".obj" || !loadFromObj(path))
        {
            return false;
        }
        return true;
    }
}
示例#3
0
Animation3D* Animation3D::create(const std::string &modelPath, const std::string &texturePath, const std::string &animationPath)
{
	auto animation = new Animation3D();
	animation->loadFromObj(modelPath);
	animation->setTexture(texturePath);
	animation->autorelease();
	return animation;
}
示例#4
0
Hill::Hill(const char * filename)
{
	loadFromObj(filename);
	xmin = ymin = -5000; // small enough
	xmax = ymax = INT_MAX;
	if (!heightDiagram)
	{
		// suppose hill.obj is a matrix
		GLuint num = sqrt(vNum);
		heightDiagram = new float*[num];
		for (int i = 0; i < num; i++)
			heightDiagram[i] = new float[num];
	}
	xmin = 0.0f;
	xmax = 20.0f;
	ymin = -10.0f;
	ymax = 10.0f;
}
示例#5
0
void MeshBase::loadModel( const std::string& filename )
{
  m_filename = filename;
  m_pathname = directoryOfFilePath( filename );

  if( fileIsObj(filename) ) {
    loadFromObj( filename );
  }
  else if( fileIsPly(filename) ) {
    loadFromPly( filename );
  }
  else {
    throw MeshException( "Unrecognized model file extension (" + filename + ")" );
  }

  m_filename.clear();
  m_pathname.clear();
}
示例#6
0
bool Sprite3D::initWithFile(const std::string &path)
{
    CC_SAFE_RELEASE_NULL(_mesh);
    CC_SAFE_RELEASE_NULL(_skin);
    CC_SAFE_RELEASE_NULL(_texture);
    
    //load from file
    std::string ext = path.substr(path.length() - 4, 4);
    std::transform(ext.begin(), ext.end(), ext.begin(), tolower);
    
    if (ext == ".obj")
    {
        return loadFromObj(path);
    }
    else if (ext == ".c3b" || ext == ".c3t")
    {
        return loadFromC3x(path);
    }
    
    return false;
}
示例#7
0
Terrain::Terrain(const char * filename) : Object()
{
	loadFromObj(filename);
}