drawings_of_cliques
graph Struct Reference

Main class to store all the information about graph, edges, vertices, ... More...

#include <functions.hpp>

Public Member Functions

void close_files ()
 
 graph (int n, int i, shared_ptr< canonic_wraper > shared_canonics)
 
void add_edge (shared_ptr< Vertex > a, shared_ptr< Vertex > b, shared_ptr< Face > face, int a_index, int b_index, bool outer_face_bool=false)
 Function to add new (part of) edge between vertices a and b through the face More...
 
void add_vertex (Edge *edge)
 Creating new vertec on the edge as a new intersection. More...
 
void delete_edge_back (bool outer_face_bool=false)
 Deleting the last added edge. More...
 
void delete_vertex (Vertex *a)
 Deleting given intersection vertex. More...
 
void create_special_vertex (int index)
 Creating the "dummy" vertex (circle) representing real vertex. More...
 
void recolor_fingerprint (const string &rotation)
 Setting values of array starts to values of given fingerprint. More...
 
void create_base_star ()
 Function to create all edges incident to vertex 0. More...
 
void create_all_special_vertices ()
 Function to create all "dummy" vertices More...
 
void find_the_way_to_intersect (int s_index, int t_index, int a, int b)
 Main algorithm described in psedocode in thesis. It recursively tries all the possible ways how to pull the edges. More...
 
bool is_correct_fingerprint (const string &fingerprint)
 Function to check whether the fingerprint consists only of realizable K4's. More...
 
void create_all_possible_drawings ()
 Function to try all possible drawings, First getting all the fingerprints then checking if all K4's are alright followed by finding canonic fingerprint and checking whether it has not been seen. Finally try all the pullings of edges until end or some realization. More...
 
string find_canonic_fingerprint (const string &fingerprint)
 Function to find canonic fingerprint through all needed rellabelings of itself (and inversion) More...
 
bool is_some_of_faces_incorrect (Edge *edge)
 Function to check if current operation of adding edge did not cause violation of one theorems providing us heuristics to fasten the code More...
 
bool is_face_incorrect (shared_ptr< Face > face)
 Function to check whether the face do not violate the (heuristic) theorems conditions. More...
 
void print_counters (Face *f)
 

Public Attributes

int number_of_vertices = 0
 
int realized = 0
 
bool done = false
 
int index
 
list< Edgeedges
 
shared_ptr< Faceouter_face
 
ofstream output_file
 
vector< Edge * > segments
 Vector to store (pointers on) edges. More...
 
array_4D blocked
 4D array to check which edges already intersect More...
 
vector< vector< int > > starts
 Array which for given pair of vertice i, j return the index in vector segments so the "dummy" edge ("dummy" vertex) where to start (end) More...
 
shared_ptr< canonic_wrapercanonic_fingerprints_wraper
 

Detailed Description

Main class to store all the information about graph, edges, vertices, ...

Constructor & Destructor Documentation

◆ graph()

graph::graph ( int  n,
int  i,
shared_ptr< canonic_wraper shared_canonics 
)
inline

Member Function Documentation

◆ add_edge()

void graph::add_edge ( shared_ptr< Vertex a,
shared_ptr< Vertex b,
shared_ptr< Face face,
int  a_index,
int  b_index,
bool  outer_face_bool = false 
)
inline

Function to add new (part of) edge between vertices a and b through the face

Parameters
a
b
face
a_index
b_index
outer_face_bool

◆ add_vertex()

void graph::add_vertex ( Edge edge)
inline

Creating new vertec on the edge as a new intersection.

Parameters
edge

◆ close_files()

void graph::close_files ( )
inline

◆ create_all_possible_drawings()

void graph::create_all_possible_drawings ( )
inline

Function to try all possible drawings, First getting all the fingerprints then checking if all K4's are alright followed by finding canonic fingerprint and checking whether it has not been seen. Finally try all the pullings of edges until end or some realization.

◆ create_all_special_vertices()

void graph::create_all_special_vertices ( )
inline

Function to create all "dummy" vertices

◆ create_base_star()

void graph::create_base_star ( )
inline

Function to create all edges incident to vertex 0.

◆ create_special_vertex()

void graph::create_special_vertex ( int  index)
inline

Creating the "dummy" vertex (circle) representing real vertex.

Parameters
index

◆ delete_edge_back()

void graph::delete_edge_back ( bool  outer_face_bool = false)
inline

Deleting the last added edge.

Parameters
outer_face_bool

◆ delete_vertex()

void graph::delete_vertex ( Vertex vertex)
inline

Deleting given intersection vertex.

Parameters
vertex

◆ find_canonic_fingerprint()

string graph::find_canonic_fingerprint ( const string &  fingerprint)
inline

Function to find canonic fingerprint through all needed rellabelings of itself (and inversion)

Parameters
fingerprint
Returns

◆ find_the_way_to_intersect()

void graph::find_the_way_to_intersect ( int  s_index,
int  t_index,
int  a,
int  b 
)
inline

Main algorithm described in psedocode in thesis. It recursively tries all the possible ways how to pull the edges.

Parameters
s_index
t_index
a
b

◆ is_correct_fingerprint()

bool graph::is_correct_fingerprint ( const string &  fingerprint)
inline

Function to check whether the fingerprint consists only of realizable K4's.

Parameters
fingerprint
Returns

◆ is_face_incorrect()

bool graph::is_face_incorrect ( shared_ptr< Face face)
inline

Function to check whether the face do not violate the (heuristic) theorems conditions.

Parameters
face
Returns

◆ is_some_of_faces_incorrect()

bool graph::is_some_of_faces_incorrect ( Edge edge)
inline

Function to check if current operation of adding edge did not cause violation of one theorems providing us heuristics to fasten the code

Parameters
edge
Returns

◆ print_counters()

void graph::print_counters ( Face f)
inline

◆ recolor_fingerprint()

void graph::recolor_fingerprint ( const string &  fingerprint)
inline

Setting values of array starts to values of given fingerprint.

Parameters
fingerprint

Member Data Documentation

◆ blocked

array_4D graph::blocked

4D array to check which edges already intersect

◆ canonic_fingerprints_wraper

shared_ptr<canonic_wraper> graph::canonic_fingerprints_wraper

◆ done

bool graph::done = false

◆ edges

list<Edge> graph::edges

◆ index

int graph::index

◆ number_of_vertices

int graph::number_of_vertices = 0

◆ outer_face

shared_ptr<Face> graph::outer_face

◆ output_file

ofstream graph::output_file

◆ realized

int graph::realized = 0

◆ segments

vector<Edge*> graph::segments

Vector to store (pointers on) edges.

◆ starts

vector<vector<int> > graph::starts

Array which for given pair of vertice i, j return the index in vector segments so the "dummy" edge ("dummy" vertex) where to start (end)


The documentation for this struct was generated from the following file: