Пример #1
0
	template<typename T> void xmlAdapter(const char *str, Optional<T> &t) {
		T tmp;

		xmlAdapter(str, tmp);

		t.set(tmp);
	}
Пример #2
0
int main()
{
	XMLAdapter xmlAdapter("../map_xml");
	xmlAdapter.adaptXML("BeiJingYiDiGang","FloorF1");
	xmlAdapter.createQuestList();
	printf("preProcess Completed\n");
	while(true){
	Point p;
	printf("Point:\n");
	scanf("%f %f",&p.x,&p.y);
	pair<int,int> index = xmlAdapter.askIndex(p);
	int* result;
	result = xmlAdapter.askResult(index);
	if (result == NULL)
	{
		printf("out of index\n");
	//	return 0;
		continue;
	}
	for (int i = 0;i<3;i++)
		printf("%s %f%s\n",xmlAdapter.polyList[result[i]].id.c_str()
			,xmlAdapter.polyList[result[i]].getDis(p),xmlAdapter.polyList[result[i]].inside(p)?"(inside)":"(outside)");
	}
	return 0;
}
Пример #3
0
	void _readRecordTypeDefinition(xercesc::DOMElement *element, RecordTypeDefinition &def) {


		_readDefinition(element, def);

		/* read Members */

		xercesc::DOMElement *membersElem = DOMHelper::getElementByTagNameNS(
			element,
			DOMHelper::fromUTF8(XML_NS),
			DOMHelper::fromUTF8("Members")
		);

		if (!membersElem) {

			throw XMLImporter::Exception("Elements property missing");

		}

		xercesc::DOMElement *memberElem = membersElem->getFirstElementChild();

		while (memberElem) {



			if (xercesc::XMLString::compareIString(DOMHelper::fromUTF8("Name"), memberElem->getLocalName()) == 0) {

				def.members.resize(def.members.size() + 1);

				xmlAdapter(DOMHelper::toUTF8(memberElem->getTextContent()), def.members.back().name);

			} else if (xercesc::XMLString::compareIString(DOMHelper::fromUTF8("Type"), memberElem->getLocalName()) == 0) {

				xmlAdapter(DOMHelper::toUTF8(memberElem->getTextContent()), def.members.back().type);

			}



			memberElem = memberElem->getNextElementSibling();
		}

	}