Cogs.Foundation
Loading...
Searching...
No Matches
Classes | Namespaces | Enumerations | Functions
Polygon.cpp File Reference
#include "Polygon.h"
#include <glm/glm.hpp>
#include <glm/gtc/epsilon.hpp>
#include <algorithm>
#include <iterator>

Classes

struct  Cogs::Geometry::Vertex
 

Namespaces

namespace  Cogs
 Main Cogs namespace.
 
namespace  Cogs::Geometry
 

Enumerations

enum  Cogs::Geometry::Location { Cogs::Geometry::Inside = -1 , Cogs::Geometry::Outside = 1 }
 

Functions

bool Cogs::Geometry::veryClose (const glm::vec3 &lhs, const glm::vec3 &rhs)
 Tests whether the two points are within one centimetre of each other.
 
void Cogs::Geometry::removeDuplicates (Vertex::List &vertices)
 Removes any adjacent vertices that are within five millimetres of their neighbours.
 
int Cogs::Geometry::calcLineSide (const glm::vec3 &start, const glm::vec3 &end, const glm::vec3 &point)
 Calculates which side of the line (start-end) the given point lies.
 
uint32_t Cogs::Geometry::findMatchingVertex (const glm::vec3 &vertex, const Vertex::List &vertices)
 Searches for the vertex at the specified location.
 
Location Cogs::Geometry::getVertexLocation (const Vertex &vertex, const Vertex::List &vertices)
 Determines whether the given vertex is located inside the polygon defined by the list of vertices.
 
Location Cogs::Geometry::findDivergenceForwards (const Vertex::List &mine, const Vertex::List &theirs, uint32_t myIdx, uint32_t theirIdx, uint32_t &myNextIdx, uint32_t &theirNextIdx)
 Trace a path from the two specified points (which are located at the same position) until they diverge.
 
bool Cogs::Geometry::generateIntersectionPoints (Vertex::List &mine, Vertex::List &theirs)
 Inserts additional vertices into the two provided lists at all the intersection points of the two polygons those lists represent.
 
bool Cogs::Geometry::findClosestVertices (const Vertex::List &mine, const Vertex::List &theirs, uint32_t &myPoint, uint32_t &theirPoint)
 Finds the closest vertices from the two polygons.
 
uint32_t Cogs::Geometry::findNextIntersection (const Vertex::List &vertices, uint32_t startIdx, bool wrap=true)
 Searches the provided list of vertices looking for the next one that is marked as being an intersection between the two polygons.