nuclear@6: #include "layout.h" nuclear@6: nuclear@6: Layout::Layout() nuclear@6: { nuclear@6: init(); nuclear@6: } nuclear@6: nuclear@6: Layout::~Layout() nuclear@6: { nuclear@6: destroy(); nuclear@6: } nuclear@6: nuclear@6: bool Layout::init() nuclear@6: { nuclear@6: tree = 0; nuclear@6: return true; nuclear@6: } nuclear@6: nuclear@6: void Layout::destroy() nuclear@6: { nuclear@6: std::map::iterator it = node_data.begin(); nuclear@6: while(it != node_data.end()) { nuclear@6: delete it->second; nuclear@6: ++it; nuclear@6: } nuclear@6: node_data.clear(); nuclear@6: } nuclear@6: nuclear@6: void Layout::clear() nuclear@6: { nuclear@6: destroy(); nuclear@6: init(); nuclear@6: } nuclear@6: nuclear@6: void Layout::set_root(FSNode *root) nuclear@6: { nuclear@6: clear(); nuclear@6: tree = root; nuclear@6: } nuclear@6: nuclear@6: Vector3 Layout::get_local_pos(const FSNode *node) const nuclear@6: { nuclear@6: return Vector3(); nuclear@6: } nuclear@6: nuclear@6: Vector3 Layout::get_world_pos(const FSNode *node) const nuclear@6: { nuclear@6: Vector3 pos; nuclear@6: nuclear@6: while(node) { nuclear@6: pos += get_local_pos(node); nuclear@6: node = node->get_parent(); nuclear@6: } nuclear@6: return pos; nuclear@6: } nuclear@6: nuclear@6: nuclear@6: // ---- PlanarLayout ---- nuclear@6: nuclear@6: void PlanarLayout::layout() nuclear@6: { nuclear@6: clear(); nuclear@6: nuclear@6: if(!tree) return; nuclear@6: nuclear@6: PlanarLayoutData *root_data = new PlanarLayoutData; nuclear@6: root_data->width = root_data->height = 0; nuclear@6: root_data->sub_width = root_data->sub_width = 0; nuclear@6: node_data[tree] = root_data; nuclear@6: nuclear@6: layout_tree(tree); nuclear@6: } nuclear@6: nuclear@6: void PlanarLayout::layout_tree(FSNode *tree) nuclear@6: { nuclear@6: nuclear@6: } nuclear@6: nuclear@6: Vector3 PlanarLayout::get_local_pos(const FSNode *node) const nuclear@6: { nuclear@6: }