コード例 #1
0
XMLGenerator::XMLGenerator(const QString &baseDir)
{
    QList<QEngine*> qengines = QtEngines::self()->engines();
    foreach(QEngine *engine, qengines) {
        QString engineDir = engine->name();
        QString fileName = engineDir + "/" + "data.xml";

        if (!baseDir.isEmpty()) {
            engineDir = QString("%1/%2").arg(baseDir).arg(engineDir);
            fileName = QString("%1/%2").arg(baseDir).arg(fileName);
        }

        if (!QFile::exists(fileName))
            continue;


        XMLReader handler;
        QXmlSimpleReader reader;
        reader.setContentHandler(&handler);
        reader.setErrorHandler(&handler);

        QFile file(fileName);
        if (!file.open(QFile::ReadOnly | QFile::Text)) {
            qWarning("Cannot open file '%s', because: %s",
                     qPrintable(fileName), qPrintable(file.errorString()));
            continue;
        }

        QXmlInputSource xmlInputSource(&file);
        if (reader.parse(xmlInputSource)) {
            XMLEngine *engine = handler.xmlEngine();
            checkDirs(engine->generationDate, engineDir);
            engines.insert(engine->name, engine);
        }
    }
コード例 #2
0
int main(int argc, char ** argv) 
{
    //add ResourceFinder to locate iCub config file (?)
    yarp::os::ResourceFinder resourceFinder;
    resourceFinder.configure(argc, argv);
    
    yarp::os::Value file = resourceFinder.find("inputFile");
    if (file.isNull()) {
        std::cerr << "No input file provided." << std::endl;
        exit(-1);
    }
    
    std::cout << "Start parsing " << file.asString() << std::endl;
    
    XMLReader xmlReader;
    Robot robot = xmlReader.getRobot(file.asString());
    
    icub2gazebo::iCubConfigParser parser(robot);
    parser.startParsing();
    
    std::cout << std::endl << std::endl << "Computing updated PIDs" << std::endl << parser.outputPIDs();
    
    return 0;
    
    
}
コード例 #3
0
void EntityFactory::LoadBulletComponent(EntityData& aEntityToAddTo, XMLReader& aDocument, tinyxml2::XMLElement* aBulletComponentElement, float aDifficultScale)
{
	aEntityToAddTo.myDamageRadius = 0.f;
	aEntityToAddTo.myEntity->AddComponent<BulletComponent>();
	for (tinyxml2::XMLElement* e = aBulletComponentElement->FirstChildElement(); e != nullptr; e = e->NextSiblingElement())
	{
		if (std::strcmp(CU::ToLower(e->Name()).c_str(), CU::ToLower("lifeTime").c_str()) == 0)
		{
			aDocument.ForceReadAttribute(e, "value", aEntityToAddTo.myMaxTime);
		}
		if (std::strcmp(CU::ToLower(e->Name()).c_str(), CU::ToLower("damage").c_str()) == 0)
		{
			int damage = 0;

			aDocument.ForceReadAttribute(e, "value", damage);

			aEntityToAddTo.myDamage = int(damage * aDifficultScale);
		}
		if (std::strcmp(CU::ToLower(e->Name()).c_str(), CU::ToLower("damageRadius").c_str()) == 0)
		{
			float radius = 0;
			aDocument.ForceReadAttribute(e, "value", radius);
			aEntityToAddTo.myDamageRadius = radius;
		}
	}
}
コード例 #4
0
void MainWindow::setFileName(QString fileName){
    XMLReader * xMlReader = new XMLReader(fileName);
    bool ok = true;
    eventList = xMlReader->readFile(&ok);
    if (!ok){
        eventName.clear();
        ui->labelUpper->setText("<font color='red'>Error reading file " + fileName + "</font>" );
        ui->labelMiddle->setText("<font color='red'>Check if the file exists and if the program has read acces</font>");
        ui->labelLower->setText("<font color='red'>The file might also be damaged or contain XML errors</font");
        return;
    }
    if (eventList.length() == 0){
        ui->labelUpper->setText("<font color ='red'>Error: empty or incorrectly formatted XML file " + fileName + ".</font>");
        return;
    }

    QSignalMapper * signalMapper = new QSignalMapper(this);
    connect(signalMapper,SIGNAL(mapped(int)),this,SLOT(setEventSlot(int)));
    for (int i = 0; i < eventList.length();i++){
        actions.append(ui->menuEvents->addAction(eventList.at(i)->getName()));
        actions.at(i)->setCheckable(true);
        signalMapper->setMapping(actions.at(i),i);
        connect(actions.at(i),SIGNAL(triggered()),signalMapper,SLOT(map()));
    }
    currentEventIndex = 0;
    setEvent();
    actions.at(currentEventIndex)->setChecked(true);
    connect(timer,SIGNAL(timeout()),this,SLOT(eventTimerSlot()));

}
コード例 #5
0
ファイル: EMPAction.cpp プロジェクト: nian0601/Spaceshooter
EMPAction::EMPAction(XMLReader& aReader, tinyxml2::XMLElement* aElement)
{
	aReader.ForceReadAttribute(aReader.ForceFindFirstChild(aElement, "position"), "X", myPosition.x);
	aReader.ForceReadAttribute(aReader.ForceFindFirstChild(aElement, "position"), "Y", myPosition.y);
	aReader.ForceReadAttribute(aReader.ForceFindFirstChild(aElement, "position"), "Z", myPosition.z);
	myPosition *= 10.f;
}
コード例 #6
0
ファイル: joystick.cpp プロジェクト: dino0815/jstest-gtk
void
Joystick::load(const XMLReader& root_reader)
{
  std::string cfg_name;
  if (root_reader.read("name", cfg_name) && name == cfg_name)
    {
      // Read calibration data
      if (XMLReader reader = root_reader.get_section("calibration"))
        {
          std::vector<CalibrationData> calibration_data;
          const std::vector<XMLReader>& sections = reader.get_sections();
          for(std::vector<XMLReader>::const_iterator i = sections.begin(); i != sections.end(); ++i)
            {
              CalibrationData data;

              //i->read("axis", );
              //i->read("precision", );
              i->read("invert",     data.invert);
              i->read("center-min", data.center_min);
              i->read("center-max", data.center_max);
              i->read("range-min",  data.range_min);
              i->read("range-max",  data.range_max);

              calibration_data.push_back(data);
            }

          set_calibration(calibration_data);
        }

      { // Read axis mapping
        const std::vector<std::string>& cfg_axis_map = root_reader.get_string_list("axis-map");
        std::vector<int> mapping;
        
        for(std::vector<std::string>::const_iterator i = cfg_axis_map.begin(); i != cfg_axis_map.end(); ++i)
          {
            int type = 0;
            int code = 0;
            str2event(*i, type, code);
            mapping.push_back(code);
          }

        set_axis_mapping(mapping);
      }

      { // Read button mapping
        const std::vector<std::string>& cfg_button_map = root_reader.get_string_list("button-map");
        std::vector<int> mapping;
        
        for(std::vector<std::string>::const_iterator i = cfg_button_map.begin(); i != cfg_button_map.end(); ++i)
          {
            int type = 0;
            int code = 0;
            str2event(*i, type, code);
            mapping.push_back(code);
          }

        set_button_mapping(mapping);
      }
    }
}
コード例 #7
0
 XMLReader* XMLReader::getFileReader(const std::string& file)
 {
   XMLReader* result = new XMLReader() ;
   result->m_reader = xmlReaderForFile(file.c_str(), NULL, 0) ;
   result->processNode() ;
   return result ;
 }
コード例 #8
0
ファイル: Waypoint.cpp プロジェクト: PrLayton/SeriousFractal
void Waypoint::Restore(XMLReader &reader)
{
    // read my Element
    reader.readElement("Waypoint");
    Name = reader.getAttribute("name");
    // get the value of the placement
    EndPos = Base::Placement(Base::Vector3d(reader.getAttributeAsFloat("Px"),
                                            reader.getAttributeAsFloat("Py"),
                                            reader.getAttributeAsFloat("Pz")),
                             Base::Rotation(reader.getAttributeAsFloat("Q0"),
                                            reader.getAttributeAsFloat("Q1"),
                                            reader.getAttributeAsFloat("Q2"),
                                            reader.getAttributeAsFloat("Q3")));

    Velocity     = (float) reader.getAttributeAsFloat("vel");
    Accelaration = (float) reader.getAttributeAsFloat("acc");
    Cont         = (reader.getAttributeAsInteger("cont") != 0)?true:false;
    Tool         = reader.getAttributeAsInteger("tool");
    Base         = reader.getAttributeAsInteger("base");

    std::string type = reader.getAttribute("type");
    if(type=="PTP")
        Type = Waypoint::PTP;
    else if(type=="LIN")
        Type = Waypoint::LINE;
    else if(type=="CIRC")
        Type = Waypoint::CIRC;
    else if(type=="WAIT")
        Type = Waypoint::WAIT;
    else 
        Type = Waypoint::UNDEF;


}
コード例 #9
0
ファイル: Customer.cpp プロジェクト: bendova/MyCode
	Customer::Customer(XMLReader& reader)
	{
		XMLReader customerReader = reader.GetNextElement(CUSTOMER_TAG);
		mName = customerReader.GetAsString(NAME_TAG);
		mAddress = customerReader.GetAsString(ADDRESS_TAG);
		mData = customerReader.GetAsString(DATA_TAG);
	}
コード例 #10
0
ファイル: QGAppRegister.cpp プロジェクト: rentpath/qgar
void
QGAppRegister::load(const char * filename) throw (runtime_error)
{
  //-- Perform previous data cleanup

  delete _parseData;
  for_each(_entryVect.begin(), _entryVect.end(), qstlDeleteObject());

  //-- Parse File

  _parseData = new ParseData();

  // Open input source.
  ifstream stream(filename);  
  InputSource source(stream);

  // Parse input source.
  XMLReader * parser = XMLReaderFactory::createXMLReader();
  parser->setContentHandler(this);
  parser->parse(source);

  // Clean-up.
  delete _parseData;
  _parseData = 0;
  delete parser;  
}
コード例 #11
0
void LevelFactory::LoadTriggers(XMLReader& aReader, tinyxml2::XMLElement* aLevelElement)
{
	for (tinyxml2::XMLElement* entityElement = aReader.FindFirstChild(aLevelElement, "trigger"); entityElement != nullptr;
		entityElement = aReader.FindNextElement(entityElement, "trigger"))
	{
		myCurrentLevel->AddTrigger(aReader, entityElement);
	}
}
コード例 #12
0
 XMLReader* XMLReader::getStringReader(const std::string& content)
 {
   XMLReader* result = new XMLReader() ;
   result->m_reader = xmlReaderForDoc((const xmlChar*) content.c_str(),
                                      NULL, NULL, 0) ;
   result->processNode() ;
   return result ;
 }
コード例 #13
0
	void ParticleSystemData::Load(const std::string& aFilePath)
	{
		myEmitterData.Init(4);
		myOrientations.Init(4);
		myTimeStamps.Init(4);

		XMLReader xmlDoc;
		xmlDoc.OpenDocument(aFilePath);

		XMLElement emitterElement = xmlDoc.FindFirstChild();

		emitterElement = emitterElement->FirstChildElement("Emitter");

		while (emitterElement != nullptr)
		{
			XMLElement dataElement = emitterElement->FirstChildElement("Name");

			std::string emitterName = dataElement->GetText();

			dataElement = emitterElement->FirstChildElement("Time");

			float time;
			dataElement->QueryFloatText(&time);

			dataElement = emitterElement->FirstChildElement("Position");

			Vector3<float> position;

			position.x = dataElement->FloatAttribute("x");
			position.y = dataElement->FloatAttribute("y");
			position.z = dataElement->FloatAttribute("z");

			dataElement = emitterElement->FirstChildElement("Rotation");

			Vector3<float> rotation;

			rotation.x = dataElement->FloatAttribute("x");
			rotation.y = dataElement->FloatAttribute("y");
			rotation.z = dataElement->FloatAttribute("z");

			Matrix44<float> orientation;

			orientation *= Matrix44<float>::CreateRotateAroundX(rotation.x);
			orientation *= Matrix44<float>::CreateRotateAroundY(rotation.y);
			orientation *= Matrix44<float>::CreateRotateAroundZ(rotation.z);

			orientation.SetTranslation(position);

			myEmitterData.Add(emitterName);
			myOrientations.Add(orientation);
			myTimeStamps.Add(time);

			emitterElement = emitterElement->NextSiblingElement("Emitter");
		}
	}
コード例 #14
0
ファイル: ReaderMgr.cpp プロジェクト: kanbang/Colt
XMLReader*
ReaderMgr::createIntEntReader(  const   XMLCh* const        sysId
                                , const XMLReader::RefFrom  refFrom
                                , const XMLReader::Types    type
                                , const XMLCh* const        dataBuf
                                , const XMLSize_t           dataLen
                                , const bool                copyBuf
                                , const bool                calcSrcOfs
                                ,       XMLSize_t           lowWaterMark)
{
    //
    //  This one is easy, we just create an input stream for the data and
    //  provide a few extra goodies.
    //
    //  NOTE: We use a special encoding string that will be recognized
    //  as a 'do nothing' transcoder for the already internalized XMLCh
    //  data that makes up an internal entity.
    //
    BinMemInputStream* newStream = new (fMemoryManager) BinMemInputStream
                                   (
                                     (const XMLByte*)dataBuf
                                     , dataLen * sizeof(XMLCh)
                                     , copyBuf ? BinMemInputStream::BufOpt_Copy
                                               : BinMemInputStream::BufOpt_Reference
                                     , fMemoryManager
                                   );
    if (!newStream)
        return 0;

    XMLReader* retVal = new (fMemoryManager) XMLReader
    (
        sysId
        , 0
        , newStream
        , XMLRecognizer::XERCES_XMLCH
        , refFrom
        , type
        , XMLReader::Source_Internal
        , false
        , calcSrcOfs
        , lowWaterMark
        , fXMLVersion
        , fMemoryManager
    );

    // If it failed for any reason, then return zero.
    if (!retVal) {
        delete newStream;
        return 0;
    }

    // Set the reader number to the next available number
    retVal->setReaderNum(fNextReaderNum++);
    return retVal;
}
コード例 #15
0
ファイル: SAXParserTest.cpp プロジェクト: carvalhomb/tsmells
std::string SAXParserTest::parseMemory(XMLReader& reader, int options, const std::string& data)
{
	std::istringstream istr(data);
	std::ostringstream ostr;
	XMLWriter writer(ostr, options);
	reader.setContentHandler(&writer);
	reader.setDTDHandler(&writer);
	reader.setProperty(XMLReader::PROPERTY_LEXICAL_HANDLER, static_cast<Poco::XML::LexicalHandler*>(&writer));
	reader.parseMemoryNP(data.data(), data.size());
	return ostr.str();
}
コード例 #16
0
void LevelFactory::LoadProps(XMLReader& aReader, tinyxml2::XMLElement* aLevelElement)
{
	for (tinyxml2::XMLElement* entityElement = aReader.FindFirstChild(aLevelElement, "prop"); entityElement != nullptr;
		entityElement = aReader.FindNextElement(entityElement, "prop"))
	{
		Entity* newEntity = new Entity(eEntityType::PROP, *myCurrentLevel->myScene, Prism::eOctreeType::STATIC);
		std::string propType;
		aReader.ForceReadAttribute(entityElement, "propType", propType);
		myCurrentLevel->myEntityFactory->CopyEntity(newEntity, propType);

		newEntity->AddComponent<PropComponent>()->Init("", "");
		FillDataPropOrDefendable(aReader, entityElement, newEntity);
	}
}
コード例 #17
0
void LevelFactory::LoadDifficults()
{
	XMLReader reader;
	reader.OpenDocument("Data/Setting/SET_difficulty.xml");
	tinyxml2::XMLElement* rootElement = reader.ForceFindFirstChild("root");
	int index = 0;
	for (tinyxml2::XMLElement* e = reader.ForceFindFirstChild(rootElement); e != nullptr; e = reader.FindNextElement(e))
	{
		DL_ASSERT_EXP(index < static_cast<int>(eDifficult::_COUNT), "You are trying to add more difficults than there should be.");
		if (std::strcmp(e->Name(), "Difficult") == 0)
		{
			Difficult newDifficult;
			std::string diffType;
			reader.ForceReadAttribute(e, "type", diffType);
			reader.ForceReadAttribute(e, "multiplier", newDifficult.myMultiplier);
			reader.ForceReadAttribute(e, "defendHealthMulitplier", newDifficult.myHealthMultiplier);

			if (diffType == "Easy")
			{
				newDifficult.myType = eDifficult::EASY;
			}
			else if (diffType == "Normal")
			{
				newDifficult.myType = eDifficult::NORMAL;
			}
			else if (diffType == "Hard")
			{
				newDifficult.myType = eDifficult::HARD;
			}

			myDifficults.Insert(index++,newDifficult);
		}
	}
	reader.CloseDocument();
}
コード例 #18
0
ファイル: PluginUtilities.cpp プロジェクト: HeIIoween/FLHook
/** This function is not exported by FLHook so we include it here */
HK_ERROR HkFMsgEncodeMsg(const wstring &wscMessage, char *szBuf, uint iSize, uint &iRet)
{
	XMLReader rdr;
	RenderDisplayList rdl;
	wstring wscMsg = L"<?xml version=\"1.0\" encoding=\"UTF-16\"?><RDL><PUSH/>";
	wscMsg += L"<TRA data=\"0xE6C68400\" mask=\"-1\"/><TEXT>" + XMLText(wscMessage) + L"</TEXT>";
	wscMsg += L"<PARA/><POP/></RDL>\x000A\x000A";
	if(!rdr.read_buffer(rdl, (const char*)wscMsg.c_str(), (uint)wscMsg.length() * 2))
		return HKE_WRONG_XML_SYNTAX;

	BinaryRDLWriter	rdlwrite;
	rdlwrite.write_buffer(rdl, szBuf, iSize, iRet);

	return HKE_OK;
}
コード例 #19
0
TimeLimitBTDecorator::TimeLimitBTDecorator(XMLReader& fileReader) :

	BTDecoratorNode(fileReader)
{
	m_timeLimit = fileReader.getFloatValueForSubElement(timeLimitConfigAttributeName);
	m_executionTimer = m_timeLimit;
}
コード例 #20
0
ファイル: SOW_Car.cpp プロジェクト: cwriter/SFMLGame
int Module_SOW_Car::load(const XMLReader& xmldata)
{
/*    //See comment below
    if (ModuleG2D::load(xmldata) != 0) {
        //Some error happened
        return -1;
    }*/
	//xmldata.getXMLGroupHandle("")->dump();
    //Load from xml
    xmldata.for_all("object", [=](const XMLGroup* g) {
		
		XMLReader r(*g);
		SFG::Pointer<SOW_Car> c(new SOW_Car(this));
		int loadableret = c.cast<Loadable>()->Loadable::load(r);
		
		int gobjret = c.cast<GObjectBase>()->GObjectBase::load(XMLReader(*r.getXMLGroupHandle("GObjectBase/")));
		
		int carret = c->load(XMLReader(*r.getXMLGroupHandle("Car")));
		
		SFG::Util::printLog(SFG::Util::Information, __FILE__, __LINE__,
							"Loading car module has return values %d - %d -%d", loadableret, gobjret, carret);
		
		this->addObject(c);
		
		
	});
    return 0;
}
コード例 #21
0
ファイル: Trajectory.cpp プロジェクト: KimK/FreeCAD
void Trajectory::Restore(XMLReader &reader)
{
    vpcWaypoints.clear();
    // read my element
    reader.readElement("Trajectory");
    // get the value of my Attribute
    int count = reader.getAttributeAsInteger("count");
    vpcWaypoints.resize(count);

    for (int i = 0; i < count; i++) {
        Waypoint *tmp = new Waypoint();
        tmp->Restore(reader);
        vpcWaypoints[i] = tmp;
    }
    generateTrajectory();
}
コード例 #22
0
void LevelFactory::LoadPowerups(XMLReader& aReader, tinyxml2::XMLElement* aLevelElement)
{
	for (tinyxml2::XMLElement* entityElement = aReader.FindFirstChild(aLevelElement, "powerup"); entityElement != nullptr;
		entityElement = aReader.FindNextElement(entityElement, "powerup"))
	{
		Entity* newEntity = new Entity(eEntityType::POWERUP, *myCurrentLevel->myScene, Prism::eOctreeType::STATIC);

		tinyxml2::XMLElement* powerUpElement = aReader.ForceFindFirstChild(entityElement, "position");
		CU::Vector3<float> powerUpPosition;
		aReader.ForceReadAttribute(powerUpElement, "X", powerUpPosition.x);
		aReader.ForceReadAttribute(powerUpElement, "Y", powerUpPosition.y);
		aReader.ForceReadAttribute(powerUpElement, "Z", powerUpPosition.z);
		newEntity->myOriginalOrientation.SetPos(powerUpPosition*10.f);
		newEntity->myOrientation = newEntity->myOriginalOrientation;

		powerUpElement = aReader.ForceFindFirstChild(entityElement, "type");
		std::string powerUp;
		aReader.ForceReadAttribute(powerUpElement, "powerup", powerUp);

		myCurrentLevel->myEntityFactory->CopyEntity(newEntity, powerUp);
		newEntity->GetComponent<PowerUpComponent>()->SetPlayer(myCurrentLevel->myPlayer);
		myCurrentLevel->myCollisionManager->Add(newEntity->GetComponent<CollisionComponent>(), eEntityType::POWERUP);

		myCurrentLevel->myEntities.Add(newEntity);
	}
}
コード例 #23
0
void LevelFactory::LoadLevelListFromXML(const std::string& aXMLPath)
{
	myLevelPaths.clear();
	XMLReader reader;
	reader.OpenDocument(aXMLPath);
	std::string levelPath = "";
	int ID = 0;
	int lastID = ID - 1;

	tinyxml2::XMLElement* levelElement = reader.FindFirstChild("level");
	for (; levelElement != nullptr; levelElement = reader.FindNextElement(levelElement))
	{
		lastID = ID;
		
		reader.ForceReadAttribute(levelElement, "ID", ID);
		reader.ForceReadAttribute(levelElement, "path", levelPath);
		myLevelPaths[ID] = levelPath;

		if (ID - 1 != lastID)
		{
			DL_ASSERT("[LevelFactory] Wrong ID-number in levelList.xml! The numbers should be counting up, in order.");
		}
		if (myCurrentID >= 10)
		{
			DL_ASSERT("[LevelFactory] Can't handle level ID with two digits.");
		}
	}
	reader.CloseDocument();
}
コード例 #24
0
void EntityFactory::LoadPowerUpComponent(EntityData& aEntityToAddTo, XMLReader& aDocument, tinyxml2::XMLElement* aPowerUpComponent)
{
	aEntityToAddTo.myDuration = 0.f;
	aEntityToAddTo.myPowerUpValue = 0.f;
	aEntityToAddTo.myUpgradePickupMessageTime = 0.f;
	aEntityToAddTo.myUpgradeName = "";
	aEntityToAddTo.myPowerUpName = "";
	aEntityToAddTo.myUpgradePickupMessage = "";
	aEntityToAddTo.myUpgradeID = -1;
	aEntityToAddTo.myEntity->AddComponent<PowerUpComponent>();

	for (tinyxml2::XMLElement* e = aPowerUpComponent->FirstChildElement(); e != nullptr; e = e->NextSiblingElement())
	{
		if (std::strcmp(CU::ToLower(e->Name()).c_str(), CU::ToLower("Power").c_str()) == 0)
		{
			std::string name;
			aDocument.ForceReadAttribute(e, "type", name);
			aDocument.ForceReadAttribute(e, "value", aEntityToAddTo.myPowerUpValue);
			aDocument.ForceReadAttribute(e, "time", aEntityToAddTo.myDuration);
			aEntityToAddTo.myPowerUpType = ConvertToPowerUpType(name);

		}
		else if (std::strcmp(CU::ToLower(e->Name()).c_str(), CU::ToLower("WeaponUpgrade").c_str()) == 0)
		{
			aDocument.ForceReadAttribute(e, "entityName", aEntityToAddTo.myUpgradeName);
			aDocument.ForceReadAttribute(e, "weaponID", aEntityToAddTo.myUpgradeID);
			aDocument.ForceReadAttribute(e, "pickupMessage", aEntityToAddTo.myUpgradePickupMessage);
			aDocument.ForceReadAttribute(e, "pickupMessageTime", aEntityToAddTo.myUpgradePickupMessageTime);
			aEntityToAddTo.myPowerUpType = ePowerUpType::WEAPON_UPGRADE;
		}
		aEntityToAddTo.myPowerUpName = ConvertToPowerUpInGameName(aEntityToAddTo.myPowerUpType);
	}
}
コード例 #25
0
bool SceneSerializer::DeserializeParticleAffectors(XMLReader& reader, 
			std::vector<std::shared_ptr<ParticleAffector>>& outList)
{
	bool failureDetected = false;
	bool currResult = false;

	if(reader.MoveToChildNode())
	{
		std::string currNodeName; 
		std::string currAttName; 

		do 
		{
			currNodeName= reader.GetCurrentNodeName();

			if (currNodeName == ScaleAffector)
			{
				std::shared_ptr<ScaleParticleAffector> scaleAffector;
				currResult = DeserializeScaleAffector(reader, scaleAffector);
				if(currResult)
					outList.push_back(scaleAffector);
				else
					failureDetected = true;				
			}
			else if(currNodeName == ColourFaderAffector)
			{
				std::shared_ptr<ColourFadeParticleAffector> colorAffector;
				currResult = DeserializeColourFadeAffector(reader, colorAffector);
				if(currResult)
					outList.push_back(colorAffector);
				else
					failureDetected = true;
			}

		} while (reader.MoveToNextSiblingNode());

		reader.PopNode();

		return !failureDetected;
	}

	return false;
}
コード例 #26
0
void EntityFactory::LoadStreakEmitterComponent(EntityData& aEntityToAddTo, XMLReader& aDocument, tinyxml2::XMLElement* aStreakEmitterComponent)
{
	for (tinyxml2::XMLElement* e = aStreakEmitterComponent->FirstChildElement(); e != nullptr; e = e->NextSiblingElement())
	{
		if (std::strcmp(CU::ToLower(e->Name()).c_str(), CU::ToLower("Path").c_str()) == 0)
		{
			aDocument.ForceReadAttribute(e, "src", aEntityToAddTo.myStreakEmitterXMLPath);
		}
	}
}
コード例 #27
0
ファイル: Project.cpp プロジェクト: Akfreak/OpenSCAM
void Project::load(const string &_filename) {
  setFilename(_filename);

  XMLReader reader;
  reader.addFactory("tool_table", tools.get());
  reader.read(filename, &options);

  // Default workpiece
  if (!options["automatic-workpiece"].hasValue())
    options["automatic-workpiece"].
      setDefault(workpieceMin.empty() && workpieceMax.empty());

  // Load NC files
  Option::strings_t ncFiles = options["nc-files"].toStrings();
  options["nc-files"].reset();
  for (unsigned i = 0; i < ncFiles.size(); i++)
    addFile(decodeFilename(ncFiles[i]));

  markClean();
}
コード例 #28
0
ファイル: SOW_Car.cpp プロジェクト: cwriter/SFMLGame
int SOW_Car::load(const XMLReader& data)
{
	data.for_all("blinker", [=](const XMLGroup* g){
		XMLReader(*g).for_all("Light",[=](const XMLGroup* g2){
			//Add lights and stuff
			
			
		});
	});
	return 0;
}
コード例 #29
0
void LevelFactory::LoadDefendables(XMLReader& aReader, tinyxml2::XMLElement* aLevelElement, float aDifficultScale)
{
	for (tinyxml2::XMLElement* entityElement = aReader.FindFirstChild(aLevelElement, "defendable"); entityElement != nullptr;
		entityElement = aReader.FindNextElement(entityElement, "defendable"))
	{
		Entity* newEntity = new Entity(eEntityType::DEFENDABLE, *myCurrentLevel->myScene, Prism::eOctreeType::STATIC);
		std::string propType;
		aReader.ForceReadAttribute(entityElement, "propType", propType);
		myCurrentLevel->myEntityFactory->CopyEntity(newEntity, propType);
		int difficultHealth = int(newEntity->GetComponent<HealthComponent>()->GetHealth() * aDifficultScale);
		newEntity->GetComponent<HealthComponent>()->Init(difficultHealth);

		std::string defendName;
		aReader.ForceReadAttribute(entityElement, "defendName", defendName);
		defendName = CU::ToLower(defendName);

		newEntity->AddComponent<PropComponent>()->Init(defendName, "");
		FillDataPropOrDefendable(aReader, entityElement, newEntity);
	}
}
コード例 #30
0
ファイル: QgarAppDescr.cpp プロジェクト: rentpath/qgar
void
QgarAppDescr::init(InputSource source)

  throw (runtime_error)

{
  // Create parse data structure
  _parseData = new ParseData();

  // Parse input source

  // Parse
  XMLReader* parser = XMLReaderFactory::createXMLReader();
  parser->setContentHandler(this);
  parser->parse(source);

  // Clean-up
  delete _parseData;
  _parseData = 0;
  delete parser;
}