Esempio n. 1
0
const QPixmap&
Environment::getPixmap( const QString& _objectName, const QString& _skinId ) const
{
	QString animationName(
		generateAnimationName(
				_skinId
			,	_objectName
			,	Core::LandscapeModel::ObjectState::Standing
			,	Core::LandscapeModel::Direction::South ) );

	if ( m_pluginInstance.getAnimationsCache()->hasAnimation( animationName ) )
	{
		const Framework::GUI::AnimationManager::AnimationInfo& animationInfo
			= m_pluginInstance.getAnimationsCache()->getAnimation( animationName );

		Framework::GUI::ImagesManager::IImagesManager::TransformationData transformationData( animationInfo.m_frames[ 0 ].m_frame );

		return m_pluginInstance.getImagesManager()->getPixmap( animationInfo.m_atlasName, transformationData );
	}
	else
	{
		return getPixmap( _objectName, IGraphicsInfo::ms_anySkinIdentifier );
	}

} // Environment::getPixmap
Esempio n. 2
0
void EyeGazeGenerator::execute(CharacterDataPackage* pkg) {
	std::cout << getGeneratorName() << ".execute() +++++++++++++++++++++++++++++++++++++++++++++++++++++" << std::endl;
	std::string animationName = generateAnimationName();
	std::cout << "generating animation " << animationName << "   " << pkg->getStartTime() << "-" << pkg->getEndTime() <<  std::endl;
	
	
	FKPerformance* fkPerformance = new FKPerformance(animationName, getCharacterName(), pkg->getLength());
	

	
	FKTrack* leftEyeTrack = new FKTrack(leyeBoneName);
	FKTrack* rightEyeTrack = new FKTrack(reyeBoneName);
	leftEyeTrack->addKeyFrame(new FKKeyFrame(0, lastQuaternion));
	rightEyeTrack->addKeyFrame(new FKKeyFrame(0, lastQuaternion));
	std::cout << "ADDING KEY FRAME " << getCharacterName() << "   --   " << 0 << " " << *lastQuaternion << std::endl;
	
	
	
	Ogre::Real pkgLength = pkg->getLength();

	Ogre::Real currentTime = 0;
	while (pkgLength - currentTime > 2) {
		currentTime += 0.5 + getDataManager()->randomAlpha(); // 0.5 bis 1.5 Sekunden weiter
		
		//Ogre::Quaternion* q = new Ogre::Quaternion(0.8+0.2*getDataManager()->randomAlpha(), 0.5-getDataManager()->randomAlpha(), 0.5-getDataManager()->randomAlpha(), 0.5-getDataManager()->randomAlpha());
		
		Ogre::Quaternion* q = new Ogre::Quaternion(Ogre::Degree(60*getDataManager()->randomAlpha()), Ogre::Vector3(0.5-getDataManager()->randomAlpha(), 0.5-getDataManager()->randomAlpha(), 0.5-getDataManager()->randomAlpha()));
		leftEyeTrack->addKeyFrame(new FKKeyFrame(currentTime, q));
		rightEyeTrack->addKeyFrame(new FKKeyFrame(currentTime, q));
		std::cout << "ADDING KEY FRAME " << getCharacterName() << "   --   " << currentTime << " " << *q << std::endl;
	}

	//Ogre::Real randomTime = (0.25 + 0.5*getDataManager()->randomAlpha() ) * pkgLength;
	Ogre::Real randomTime = currentTime + 0.5 + getDataManager()->randomAlpha();
	Ogre::Quaternion* q = new Ogre::Quaternion(Ogre::Degree(60*getDataManager()->randomAlpha()), Ogre::Vector3(0.5-getDataManager()->randomAlpha(), 0.5-getDataManager()->randomAlpha(), 0.5-getDataManager()->randomAlpha()));
	leftEyeTrack->addKeyFrame(new FKKeyFrame(randomTime, q));
	rightEyeTrack->addKeyFrame(new FKKeyFrame(randomTime, q));
	std::cout << "ADDING KEY FRAME " << getCharacterName() << "   --   " << randomTime << " " << *q << std::endl;
	
	
	lastQuaternion = new Ogre::Quaternion(Ogre::Degree(60*getDataManager()->randomAlpha()), Ogre::Vector3(0.5-getDataManager()->randomAlpha(), 0.5-getDataManager()->randomAlpha(), 0.5-getDataManager()->randomAlpha()));
	leftEyeTrack->addKeyFrame(new FKKeyFrame(pkgLength, new Ogre::Quaternion(*lastQuaternion)));
	rightEyeTrack->addKeyFrame(new FKKeyFrame(pkgLength, new Ogre::Quaternion(*lastQuaternion)));
	fkPerformance->addTrack(leftEyeTrack);
	fkPerformance->addTrack(rightEyeTrack);
	std::cout << "ADDING KEY FRAME " << getCharacterName() << "   --   " << pkgLength << " " << *lastQuaternion << std::endl;
	
	
	CharacterPerformance* cp = new CharacterPerformance(getCharacterName(), animationName, pkg->getStartTime(), 0, 0, pkg->getEndTime(), 0);
	cp->setManualPerformance(true);
	fkPerformance->setCharacterPerformance(cp);
	

	pkg->addFKPerformance(fkPerformance);
	
}