当前位置: 首页>>代码示例>>C++>>正文


C++ Group::getVideoDriver方法代码示例

本文整理汇总了C++中osg::Group::getVideoDriver方法的典型用法代码示例。如果您正苦于以下问题:C++ Group::getVideoDriver方法的具体用法?C++ Group::getVideoDriver怎么用?C++ Group::getVideoDriver使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在osg::Group的用法示例。


在下文中一共展示了Group::getVideoDriver方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: OnCharacterCreate

void OSGSmartBodyListener::OnCharacterCreate( const std::string & name, const std::string & objectClass )
{
#if 0	
	std::stringstream strstr;
	strstr << "../irrlicht-1.8.1/media/" << objectClass<< ".mesh";
	std::cout << "Getting mesh " << strstr.str() << std::endl;

	irr::scene::ISkinnedMesh* skinnedMesh = (irr::scene::ISkinnedMesh*)mSceneMgr->getMesh(strstr.str().c_str());

	if (!skinnedMesh)
	{
		LOG("Cannot find mesh named '%s", objectClass.c_str());
		return;
	}

	irr::scene::IAnimatedMeshSceneNode* node = mSceneMgr->addAnimatedMeshSceneNode( skinnedMesh, NULL, id );

	//must set to allow manual joint control
	node->setJointMode(irr::scene::EJUOR_CONTROL);

	irr::scene::IAnimatedMesh* animMesh  = node->getMesh();
	irr::scene::E_ANIMATED_MESH_TYPE type = animMesh->getMeshType();

	irr::core::array<irr::scene::ISkinnedMesh::SJoint*> jointssss  = skinnedMesh->getAllJoints();


	for(irr::u32 i = 1; i < jointssss.size(); i++)
	{
		//Clear all joint animation keys - model takes less space on disk
		jointssss[i]->PositionKeys.clear();
		jointssss[i]->RotationKeys.clear();
		jointssss[i]->ScaleKeys.clear();
	}



	(*map)[name] = id;
	id++;

	//set texture
	std::string textures[9];
	textures[0] = "../irrlicht-1.8.1/media/sinbad_body.tga";
	textures[1] = "../irrlicht-1.8.1/media/sinbad_body.tga";
	textures[2] = "../irrlicht-1.8.1/media/sinbad_clothes.tga";
	textures[3] = "../irrlicht-1.8.1/media/sinbad_body.tga";
	textures[4] = "../irrlicht-1.8.1/media/sinbad_sword.tga";
	textures[5] = "../irrlicht-1.8.1/media/sinbad_clothes.tga";
	textures[6] = "../irrlicht-1.8.1/media/sinbad_clothes.tga";
	textures[7] = "../irrlicht-1.8.1/media/sinbad_clothes.tga";
	textures[8] = "../irrlicht-1.8.1/media/irrlicht2_dn.jpg";
	node->getMaterial(8).setTexture(0,mSceneMgr->getVideoDriver()->getTexture("../irrlicht-1.8.1/media/irrlicht2_dn.jpg"));
	for (int t = 0; t < 8; t++)
	{
		std::cout << "Attempting to retrieve " << textures[t] << std::endl;
		node->getMaterial(t).setTexture(0,mSceneMgr->getVideoDriver()->getTexture(textures[t].c_str()));
	}

	node->setPosition(irr::core::vector3df(0,-80,0));


	node->addShadowVolumeSceneNode();

	//mSceneMgr->setShadowColor(irr::video::SColor(150,0,0,0));

	node->setScale(irr::core::vector3df(10,10,10));
	node->setMaterialFlag(irr::video::EMF_NORMALIZE_NORMALS , true);
#endif

}
开发者ID:whztt07,项目名称:test_osg,代码行数:69,代码来源:osgsmartbody.cpp


注:本文中的osg::Group::getVideoDriver方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。