Go to the documentation of this file.
70 std::vector<EFANode *> & master_nodes,
71 std::vector<double> & master_weights)
const
74 master_weights.clear();
75 bool masters_found =
false;
78 master_nodes.push_back(node);
79 master_weights.push_back(1.0);
138 EFAError(
"In addIntersection from_node does not exist on edge");
153 EFAError(
"In resetIntersection from_node does not exist on edge");
165 if (from_node_id == 0)
167 else if (from_node_id == 1)
173 EFAError(
"from_node_id out of bounds");
175 EFAError(
"in copyIntersection num emb_nodes must == num of inters_x");
186 EFAError(
"In getNode index out of bounds");
213 bool has_int =
false;
216 double tmp_intersection_x = -1.0;
218 tmp_intersection_x = position;
220 tmp_intersection_x = 1.0 - position;
222 EFAError(
"In hasIntersectionAtPosition from_node does not exist on edge");
244 EFAError(
"In getIntersection node not in edge");
261 EFAError(
"the given node is not found in the current edge");
284 bool have_index =
false;
295 EFAError(
"In getEmbeddedNodeIndex, could not find index");
302 bool have_index =
false;
306 double tmp_intersection_x = -1.0;
308 tmp_intersection_x = position;
310 tmp_intersection_x = 1.0 - position;
312 EFAError(
"In getEmbeddedNodeIndex, from_node does not exist on edge");
325 EFAError(
"In getEmbeddedNodeIndex, could not find index");
335 EFAError(
"in getEmbeddedNode index out of bounds");
347 bool consistent =
true;
357 EFAError(
"In consistencyCheck nodes on edge are not consistent");
359 EFAError(
"In consistencyCheck num of emb_nodes must be = num of inters_x");
392 unsigned int index = 0;
393 bool node_found =
false;
bool hasIntersectionAtPosition(double position, EFANode *from_node) const
N_CATEGORY category() const
bool isEmbeddedNode(const EFANode *node) const
EFAEdge(EFANode *node1, EFANode *node2)
bool equivalent(const EFAEdge &other) const
std::vector< double > _intersection_x
void copyIntersection(const EFAEdge &other, unsigned int from_node_id)
unsigned int numEmbeddedNodes() const
void addIntersection(double position, EFANode *embedded_node_tmp, EFANode *from_node)
bool containsNode(const EFANode *node) const
double getIntersection(unsigned int emb_id, EFANode *from_node) const
void switchNode(EFANode *new_node, EFANode *old_node)
void removeEmbeddedNodes()
EFANode * getNode(unsigned int index) const
void resetIntersection(double position, EFANode *embedded_node_tmp, EFANode *from_node)
EFANode * getEmbeddedNode(unsigned int index) const
EFANode * _edge_interior_node
double distanceFromNode1(EFANode *node) const
bool hasIntersection() const
void removeEmbeddedNode(EFANode *node)
bool isPartialOverlap(const EFAEdge &other) const
std::vector< EFANode * > _embedded_nodes
bool containsEdge(const EFAEdge &other) const
unsigned int getEmbeddedNodeIndex(EFANode *node) const
bool getNodeMasters(EFANode *node, std::vector< EFANode * > &master_nodes, std::vector< double > &master_weights) const