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

class Visibility;

//This file includes helper-functions that operate on arrangements.
void polygonToArrangement(vector<Point_2> vertices, Arrangement_2& arrangement);

Polygon_2 arrangementToPolygon(Arrangement_2 &arrangement);
vector<Segment_2> faceToPolygon(Face_handle face);

vector<Point_2> faceToPolygonP(Face_handle face);


Arrangement_2 rotateArrangement(Arrangement_2 &original);

vector<Point_2> shootRayUpDown(Arrangement_2& theArrangement, Point_2 start, bool goUp = true, bool goDown = true);

Vertex_handle splitFaceEdge(Arrangement_2& theArrangement, Point_2 splitter, Face_handle face);

bool properIntersectFace(Face_handle& face, Ray_2 ray, Segment_2& out);
bool properIntersectFace(Face_handle& face, Segment_2 ray, Segment_2& out);

Ray_2 getRay(int numberOfRays, int rayIndex, Point_2 reflex);
back to top