15 #include "cerata/transform.h"
19 #include "cerata/graph.h"
20 #include "cerata/type.h"
21 #include "cerata/object.h"
22 #include "cerata/node.h"
23 #include "cerata/array.h"
27 void GetAllGraphs(
Graph *top_graph, std::vector<Graph *> *graphs_out,
bool include_components) {
29 graphs_out->push_back(top_graph);
34 auto comp =
dynamic_cast<Component *
>(top_graph);
36 graphs_out->insert(graphs_out->end(), instances.begin(), instances.end());
39 if (include_components) {
40 for (
const auto &instance : instances) {
41 Component *instance_component = instance->component();
49 std::vector<Graph *> graphs;
51 if (include_instances) {
55 for (
const auto &graph : graphs) {
56 auto comp_objs = graph->objects();
57 objects->insert(objects->end(), comp_objs.begin(), comp_objs.end());
62 std::vector<Object *> objects;
65 for (
const auto &o : objects) {
67 auto *n =
dynamic_cast<Node *
>(o);
68 types->push_back(n->type());
69 }
else if (o->IsArray()) {
71 types->push_back(a->type());