Esempio n. 1
0
	Graphics::CEntity* CCamera::addEntityChild(const std::string &nameEntity, const std::string &nameMesh, Vector3 position){
	
		// creo escena para la entidad nueva
		Ogre::SceneNode* sceneNode;
		sceneNode = new Ogre::SceneNode(_scene->getSceneMgr(), "_SceneCamera_"+nameEntity);

		// creo la entidad nueva
		Ogre::Entity *entity;
		entity = _scene->getSceneMgr()->createEntity(nameMesh);

		
		// atacho la entidad a la escena recien creada
		sceneNode->attachObject(entity);
		
		entity->setRenderQueueGroupAndPriority(Ogre::RenderQueueGroupID::RENDER_QUEUE_6, 200);

		//entity->getSubEntity(0)->getMaterial()->setDepthCheckEnabled(false); 
		//entity->getSubEntity(0)->getMaterial()->setDepthWriteEnabled(false);

		// especifico su posicion
		sceneNode->setPosition(position);

		// añado la escena como hija de la camara
		_cameraNode->addChild(sceneNode);

		// Esto es una pequeña ñapa, me creo un entidad grafica pero sin inicializar, y le añado una escena ahierro
		// Hago esto para que se pueda desplazar desde la logica sin ningun problema.
		Graphics::CEntity *entityTemp = new CEntity(nameEntity, nameMesh);
		entityTemp->setOgreEntity(entity);
		entityTemp->setSceneNode(sceneNode);
		entityTemp->setScene(_scene);

		return entityTemp;
	}