mirror of https://github.com/vitalif/openscad
31 lines
695 B
C++
31 lines
695 B
C++
#ifndef TREE_H_
|
|
#define TREE_H_
|
|
|
|
#include "nodecache.h"
|
|
|
|
/*!
|
|
For now, just an abstraction of the node tree which keeps a dump
|
|
cache based on node indices around.
|
|
|
|
Note that since node trees don't survive a recompilation, the tree cannot either.
|
|
*/
|
|
class Tree
|
|
{
|
|
public:
|
|
Tree(const AbstractNode *root = NULL) : root_node(root) {}
|
|
~Tree();
|
|
|
|
void setRoot(const AbstractNode *root);
|
|
const AbstractNode *root() const { return this->root_node; }
|
|
|
|
const std::string &getString(const AbstractNode &node) const;
|
|
const std::string &getIdString(const AbstractNode &node) const;
|
|
|
|
private:
|
|
const AbstractNode *root_node;
|
|
mutable NodeCache nodecache;
|
|
mutable NodeCache nodeidcache;
|
|
};
|
|
|
|
#endif
|