Skip to content
Snippets Groups Projects

#194: Add documentation for GraphView

Open #194: Add documentation for GraphView
All threads resolved!
Open Ghost User requested to merge hrouis/aidge_core:aidge_core#194 into dev
All threads resolved!
1 file
+ 7
1
Compare changes
  • Side-by-side
  • Inline
+ 7
1
@@ -1125,6 +1125,7 @@ bool Aidge::GraphView::replace(const std::shared_ptr<GraphView>& oldGraph, const
commonGraphViews.erase(oldGraph);
commonGraphViews.erase(newGraph);
//todo this part may give a message such as "input output discrepencies between old and new graphs" before returning false
if ((newNodes.size() > 0) && (oldOIn.size() != newOIn.size()) && (oldOOut.size() != newOOut.size())) {
for (const auto& nodePtr : oldNodes) {
nodePtr->removeView(oldGraph);
@@ -1143,6 +1144,7 @@ bool Aidge::GraphView::replace(const std::shared_ptr<GraphView>& oldGraph, const
inputParents[i].first -> addChild(newOIn[i].first, inputParents[i].second, newOIn[i].second);
}
}
//todo: i'm surprised there's no need for remove child first
for (std::size_t o = 0; o < oldOOut.size(); ++o) {
for (const auto& child : outputChildren[o]) {
newOOut[o].first -> addChild(child.first, newOOut[o].second, child.second);
@@ -1154,6 +1156,7 @@ bool Aidge::GraphView::replace(const std::shared_ptr<GraphView>& oldGraph, const
// get the number of Children for oldg->outputNodes()
if (newNodes.size() == 0) {
// Case 3
// todo so this case is a big remove and stitch back
if (oldOIn.size() == oldOOut.size()) {
// Same number of inputs and outputs: connect each input to the corresponding output
for (std::size_t i = 0; i < oldOIn.size(); ++i) {
@@ -1182,6 +1185,8 @@ bool Aidge::GraphView::replace(const std::shared_ptr<GraphView>& oldGraph, const
((oldOOut.size() == newOOut.size()))
) {
// Case 2
// todo what the heck is this condition? what is that case?
// todo how are you supposed to connect all to the same child?
if ((oldOIn.size() == 1) && (inputParents[0].first)) {
for (std::size_t i = 0; i < newOIn.size(); ++i) {
// Only re-connect the same input category
@@ -1202,7 +1207,7 @@ bool Aidge::GraphView::replace(const std::shared_ptr<GraphView>& oldGraph, const
}
}
}
else {
else {// todo add message as to why it's failing
for (const auto& nodePtr : oldNodes) {
nodePtr->removeView(oldGraph);
}
@@ -1216,6 +1221,7 @@ bool Aidge::GraphView::replace(const std::shared_ptr<GraphView>& oldGraph, const
auto oldGOutputs = oldGraph->outputNodes();
for (const auto& nodePtr : oldNodes) {
bool removeFromGraphs = true;
// toddo it seems to check oldGoutput's relevance
if (std::find(oldGOutputs.cbegin(), oldGOutputs.cend(), nodePtr) == oldGOutputs.cend()) {
for (const auto& chPtr : nodePtr->getChildren()) {
if (oldNodes.find(chPtr) == oldNodes.cend()) {
Loading