void CCMSDIntegrator::ParseCMSD(std::string filename) { CMSD::CCMSD doc = CMSD::CCMSD::LoadFromFile(filename); doc.SaveToFile((::ExeDirectory() + "Test1.xml").c_str(), true); //CMSD::CCMSD::DataSection d = doc.DataSection().first(); CMSD::CwhiteSpaceType root = doc.whiteSpace.first(); CMSD::CCMSDDocument cmsddocument = doc.CMSDDocument[0]; CMSD::CDataSectionType2 data = cmsddocument.DataSection[0]; for(int i=0; i< data.PartType.count() ; i++) { Part * apart ( (Part*) Part().CreateSave<Part>()); apart->Load(data.PartType[i].GetNode()); //std::vector<IObjectPtr> &someparts ( apart->objects()); //Part * part2=(Part *) someparts[0].get(); } for(int i=0; i< data.ProcessPlan.count() ; i++) { ProcessPlan * aplan ( (ProcessPlan *) IObject::CreateSave<ProcessPlan>()); aplan->Load(data.ProcessPlan[i].GetNode()); } for(int i=0; i< data.Resource.count() ; i++) { if(Cell::IsResourceCell(data.Resource[i].GetNode())) { Cell * acell( (Cell *) IObject::CreateSave<Cell>()); acell->Load(data.Resource[i].GetNode()); } else { Resource * aresource ((Resource *) IObject::CreateSave<Resource>()); aresource->Load(data.Resource[i].GetNode()); } } for(int i=0; i< data.Job.count() ; i++) { Job * ajob ( IObject::CreateSave<Job>() ); ajob->Load(data.Job[i].GetNode()); } for(int i=0; i< data.DistributionDefinition.count() ; i++) { Distribution * astat ( (Distribution *) IObject::CreateSave<Distribution>() ); astat->LoadDefinition(data.DistributionDefinition[i].GetNode()); } for(int i=0; i< data.Calendar.count() ; i++) { Calendar * calendar ( (Calendar *) IObject::CreateSave<Calendar>()); calendar->Load(data.Calendar[i].GetNode()); } for(int i=0; i< data.Layout.count() ; i++) { Layout * layout ((Layout *) IObject::CreateSave<Layout>()); layout->Load(data.Layout[i].GetNode()); } //CMSD::CInventoryItem inv = data.InventoryItem[0]; //inv.Location int j=0; }
void Puppet::LoadParts(TiXmlElement *element, Entity *intoEntity) { TiXmlElement *xmlPart = element->FirstChildElement("Part"); while (xmlPart) { XMLFileNode xmlFileNode(xmlPart); Part *part = new Part(); part->SetPuppet(this); part->Load(&xmlFileNode); LoadParts(xmlPart, part); parts.push_back(part); /// TODO...? intoEntity->Add(part); xmlPart = xmlPart->NextSiblingElement("Part"); } }
void Puppet::LoadParts(TiXmlElement *element, Part *intoPart) { TiXmlElement *xmlPart = element->FirstChildElement("Part"); while (xmlPart) { XMLFileNode xmlFileNode(xmlPart); Part *part = new Part(); part->SetPuppet(this); part->Load(&xmlFileNode); LoadParts(xmlPart, part); printf("loaded part [%s]\n", part->GetName().c_str()); if (intoPart) { intoPart->parts.push_back(part); part->SetParent(intoPart); printf(" into part [%s]\n", intoPart->GetName().c_str()); } else { part->SetParent(entity); } parts.push_back(part); Game::GetScene()->Add(part); //intoEntity->Add(part); xmlPart = xmlPart->NextSiblingElement("Part"); } }