Raw File
WeakVisDecomp.h
#pragma once
#include "pch.h"

class WeakVisNode {
public:
	static int weakVisCounter;


	//The small polygon that his own segment sees
	Arrangement_2 ownPolygon; 
	Polygon_2 boundary;

	int papaId;

	list<shared_ptr<WeakVisNode>> children;
	bool visited = false;
	int id = -1;
	//The polygon obtained by merging with parents and sibblings
	CDT triangulation;
	WeakVisNode();
	WeakVisNode(Arrangement_2& thePolygon, Arrangement_2 previousPolygon, 
		int papaId, Halfedge_handle startingEdge, bool computeWeakvis = true);

	int subTreeSize();
	int maxVertices();
	int maxReflexVertices();
	vector<shared_ptr<WeakVisNode>> subTree();

	bool canSeeDecomp(shared_ptr<WeakVisNode> other);

	void clearTree();
};
back to top