Raw File
ArtGallery.h
#pragma once
//#include "pch.h"
#include <iostream>
#include <vector>

using namespace std;

class ArtGalleryImpl;
//typedef ArtGalleryImpl* AGPTR;
typedef unique_ptr<ArtGalleryImpl> AGPTR;


class ArtGallery {
public:
	int testPolygonID;
	bool useWeakVis;
	int criticalThreshold;
	bool inTestMode; //whether we take input from file or test polygons
	bool inDrawMode; 
	int currentSize; //which test polygon size we are at

	//Saved information for excel sheet output
	int verticesAtEnd = 0;
	int facesAtEnd = 0;
	int criticalVerticesAtEnd = 0;
	int criticalFacesAtEnd = 0;
	int squareSplits = 0;
	int angularSplits = 0;
	int chordSplits = 0;
	int extensionSplits = 0;
	int vislineSplits = 0;
	int solutionSize = 0;
	double preprocessingTime = 0;
	double processingTime = 0;
	int decompositionSize = 0;
	int maxDecompVertices = 0;
	int maxDecompReflexVertices = 0;
	int weakvisLookups = 0;
	int constantLookups = 0;
	int faceVisibilitiesComputed = 0;
	int pointVisibilitiesComputed = 0;
	int currentGranularity = 0;

	//irrational polygon test
	std::vector<double> p5Times = {};
	std::vector<double> hausdorffDistances = {};
	double maxP5Time = 0;
	bool doingP5 = false;

	int intermediateSteps = 0;
	int maxIterations = 200;

	std::string initSVGString = "initial";
	std::string intermediateSVGString = "intermediate-";
	std::string decompSVGString = "decomp";
	std::string criticalSVGString = "critical-";
	std::string polygonName;
	int reflexVertices = 0;
	//etc...


	AGPTR implementation;
	

	//Arrangement_2 theArrangement;
	ArtGallery(int tId, int maxIterations, int criticalThreshold, bool useWeakVis, bool inTestMode = false, bool inDrawMode = true, int currentSize = 20);
	bool initialize(); //placeholder functions
	bool preProcess();
	bool iterations();
	~ArtGallery();
};






back to top