72 std::vector<EFANode *> & master_nodes,
73 std::vector<double> & master_weights)
const 76 master_weights.clear();
77 bool masters_found =
false;
80 master_nodes.push_back(node);
81 master_weights.push_back(1.0);
140 EFAError(
"In addIntersection from_node does not exist on edge");
155 EFAError(
"In resetIntersection from_node does not exist on edge");
167 if (from_node_id == 0)
169 else if (from_node_id == 1)
175 EFAError(
"from_node_id out of bounds");
177 EFAError(
"in copyIntersection num emb_nodes must == num of inters_x");
188 EFAError(
"In getNode index out of bounds");
215 bool has_int =
false;
218 double tmp_intersection_x = -1.0;
220 tmp_intersection_x = position;
222 tmp_intersection_x = 1.0 - position;
224 EFAError(
"In hasIntersectionAtPosition from_node does not exist on edge");
246 EFAError(
"In getIntersection node not in edge");
263 EFAError(
"the given node is not found in the current edge");
286 bool have_index =
false;
297 EFAError(
"In getEmbeddedNodeIndex, could not find index");
304 bool have_index =
false;
308 double tmp_intersection_x = -1.0;
310 tmp_intersection_x = position;
312 tmp_intersection_x = 1.0 - position;
314 EFAError(
"In getEmbeddedNodeIndex, from_node does not exist on edge");
327 EFAError(
"In getEmbeddedNodeIndex, could not find index");
337 EFAError(
"in getEmbeddedNode index out of bounds");
349 bool consistent =
true;
359 EFAError(
"In consistencyCheck nodes on edge are not consistent");
361 EFAError(
"In consistencyCheck num of emb_nodes must be = num of inters_x");
394 unsigned int index = 0;
395 bool node_found =
false;
bool getNodeMasters(EFANode *node, std::vector< EFANode *> &master_nodes, std::vector< double > &master_weights) const
EFANode * getEmbeddedNode(unsigned int index) const
bool isPartialOverlap(const EFAEdge &other) const
double getIntersection(unsigned int emb_id, EFANode *from_node) const
void switchNode(EFANode *new_node, EFANode *old_node)
std::vector< double > _intersection_x
std::pair< EFANode *, EFANode * > getSortedNodes() const
bool hasIntersection() const
std::vector< EFANode * > _embedded_nodes
ADRealEigenVector< T, D, asd > abs(const ADRealEigenVector< T, D, asd > &)
double distanceFromNode1(EFANode *node) const
EFAEdge(EFANode *node1, EFANode *node2)
unsigned int getEmbeddedNodeIndex(EFANode *node) const
bool containsEdge(const EFAEdge &other) const
void resetIntersection(double position, EFANode *embedded_node_tmp, EFANode *from_node)
bool isEmbeddedNode(const EFANode *node) const
EFANode * _edge_interior_node
bool equivalent(const EFAEdge &other) const
void copyIntersection(const EFAEdge &other, unsigned int from_node_id)
void removeEmbeddedNodes()
bool hasIntersectionAtPosition(double position, EFANode *from_node) const
bool containsNode(const EFANode *node) const
bool isEmbeddedPermanent() const
unsigned int numEmbeddedNodes() const
void addIntersection(double position, EFANode *embedded_node_tmp, EFANode *from_node)
EFANode * getNode(unsigned int index) const
void removeEmbeddedNode(EFANode *node)
N_CATEGORY category() const