Ejemplo n.º 1
0
/*protected*/
void
EdgeRing::mergeLabel(const Label& deLabel)
{
	mergeLabel(deLabel, 0);
	mergeLabel(deLabel, 1);

	testInvariant();

}
Ejemplo n.º 2
0
/*public*/
void
Node::mergeLabel(const Node& n)
{
	assert(!n.label.isNull());
	mergeLabel(n.label);
	testInvariant();
}
Ejemplo n.º 3
0
/*protected*/
void
EdgeRing::computePoints(DirectedEdge *newStart)
	// throw(const TopologyException &)
{
	startDe=newStart;
	DirectedEdge *de=newStart;
	bool isFirstEdge=true;
	do {
		//util::Assert::isTrue(de!=NULL,"EdgeRing::computePoints: found null Directed Edge");
		//assert(de!=NULL); // EdgeRing::computePoints: found null Directed Edge
		if(de==NULL)
			throw util::TopologyException(
				"EdgeRing::computePoints: found null Directed Edge");

		if (de->getEdgeRing()==this)
			throw util::TopologyException(
				"Directed Edge visited twice during ring-building",
				de->getCoordinate());

		edges.push_back(de);
		const Label& deLabel = de->getLabel();
		assert(deLabel.isArea());
		mergeLabel(deLabel);
		addPoints(de->getEdge(),de->isForward(),isFirstEdge);
		isFirstEdge=false;
		setEdgeRing(de,this);
		de=getNext(de);
	} while (de!=startDe);

	testInvariant();

}
Ejemplo n.º 4
0
/*public*/
void
Node::mergeLabel(const Node& n)
{
	assert(n.label);
	mergeLabel(*(n.label));
	testInvariant();
}