mirror of https://github.com/vitalif/openscad
bugfix: root modifier now works with test apps
parent
bdd7c1f583
commit
723c6b7cf2
|
@ -71,6 +71,15 @@ void cgalTree(Tree &tree)
|
||||||
evaluate.execute();
|
evaluate.execute();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
AbstractNode *find_root_tag(AbstractNode *n)
|
||||||
|
{
|
||||||
|
foreach(AbstractNode *v, n->children) {
|
||||||
|
if (v->modinst->tag_root) return v;
|
||||||
|
if (AbstractNode *vroot = find_root_tag(v)) return vroot;
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
struct CsgInfo
|
struct CsgInfo
|
||||||
{
|
{
|
||||||
OffscreenView *glview;
|
OffscreenView *glview;
|
||||||
|
@ -131,7 +140,6 @@ int main(int argc, char **argv)
|
||||||
|
|
||||||
AbstractModule *root_module;
|
AbstractModule *root_module;
|
||||||
ModuleInstantiation root_inst;
|
ModuleInstantiation root_inst;
|
||||||
AbstractNode *root_node;
|
|
||||||
|
|
||||||
QFileInfo fileInfo(filename);
|
QFileInfo fileInfo(filename);
|
||||||
handle_dep(filename);
|
handle_dep(filename);
|
||||||
|
@ -158,7 +166,10 @@ int main(int argc, char **argv)
|
||||||
QDir::setCurrent(fileInfo.absolutePath());
|
QDir::setCurrent(fileInfo.absolutePath());
|
||||||
|
|
||||||
AbstractNode::resetIndexCounter();
|
AbstractNode::resetIndexCounter();
|
||||||
root_node = root_module->evaluate(&root_ctx, &root_inst);
|
AbstractNode *absolute_root_node = root_module->evaluate(&root_ctx, &root_inst);
|
||||||
|
AbstractNode *root_node;
|
||||||
|
// Do we have an explicit root node (! modifier)?
|
||||||
|
if (!(root_node = find_root_tag(absolute_root_node))) root_node = absolute_root_node;
|
||||||
|
|
||||||
Tree tree(root_node);
|
Tree tree(root_node);
|
||||||
|
|
||||||
|
|
|
@ -66,6 +66,15 @@ void cgalTree(Tree &tree)
|
||||||
evaluate.execute();
|
evaluate.execute();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
AbstractNode *find_root_tag(AbstractNode *n)
|
||||||
|
{
|
||||||
|
foreach(AbstractNode *v, n->children) {
|
||||||
|
if (v->modinst->tag_root) return v;
|
||||||
|
if (AbstractNode *vroot = find_root_tag(v)) return vroot;
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
if (argc != 2) {
|
if (argc != 2) {
|
||||||
|
@ -121,7 +130,6 @@ int main(int argc, char **argv)
|
||||||
|
|
||||||
AbstractModule *root_module;
|
AbstractModule *root_module;
|
||||||
ModuleInstantiation root_inst;
|
ModuleInstantiation root_inst;
|
||||||
AbstractNode *root_node;
|
|
||||||
|
|
||||||
QFileInfo fileInfo(filename);
|
QFileInfo fileInfo(filename);
|
||||||
handle_dep(filename);
|
handle_dep(filename);
|
||||||
|
@ -148,7 +156,10 @@ int main(int argc, char **argv)
|
||||||
QDir::setCurrent(fileInfo.absolutePath());
|
QDir::setCurrent(fileInfo.absolutePath());
|
||||||
|
|
||||||
AbstractNode::resetIndexCounter();
|
AbstractNode::resetIndexCounter();
|
||||||
root_node = root_module->evaluate(&root_ctx, &root_inst);
|
AbstractNode *absolute_root_node = root_module->evaluate(&root_ctx, &root_inst);
|
||||||
|
AbstractNode *root_node;
|
||||||
|
// Do we have an explicit root node (! modifier)?
|
||||||
|
if (!(root_node = find_root_tag(absolute_root_node))) root_node = absolute_root_node;
|
||||||
|
|
||||||
Tree tree(root_node);
|
Tree tree(root_node);
|
||||||
|
|
||||||
|
|
|
@ -43,6 +43,15 @@ struct CsgInfo
|
||||||
OffscreenView *glview;
|
OffscreenView *glview;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
AbstractNode *find_root_tag(AbstractNode *n)
|
||||||
|
{
|
||||||
|
foreach(AbstractNode *v, n->children) {
|
||||||
|
if (v->modinst->tag_root) return v;
|
||||||
|
if (AbstractNode *vroot = find_root_tag(v)) return vroot;
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
if (argc != 2) {
|
if (argc != 2) {
|
||||||
|
@ -99,7 +108,6 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
AbstractModule *root_module;
|
AbstractModule *root_module;
|
||||||
ModuleInstantiation root_inst;
|
ModuleInstantiation root_inst;
|
||||||
AbstractNode *root_node;
|
|
||||||
|
|
||||||
QFileInfo fileInfo(filename);
|
QFileInfo fileInfo(filename);
|
||||||
handle_dep(filename);
|
handle_dep(filename);
|
||||||
|
@ -126,7 +134,10 @@ int main(int argc, char *argv[])
|
||||||
QDir::setCurrent(fileInfo.absolutePath());
|
QDir::setCurrent(fileInfo.absolutePath());
|
||||||
|
|
||||||
AbstractNode::resetIndexCounter();
|
AbstractNode::resetIndexCounter();
|
||||||
root_node = root_module->evaluate(&root_ctx, &root_inst);
|
AbstractNode *absolute_root_node = root_module->evaluate(&root_ctx, &root_inst);
|
||||||
|
AbstractNode *root_node;
|
||||||
|
// Do we have an explicit root node (! modifier)?
|
||||||
|
if (!(root_node = find_root_tag(absolute_root_node))) root_node = absolute_root_node;
|
||||||
|
|
||||||
Tree tree(root_node);
|
Tree tree(root_node);
|
||||||
|
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 7.3 KiB |
Binary file not shown.
After Width: | Height: | Size: 7.3 KiB |
Loading…
Reference in New Issue