//-*-c++-*- #ifndef _TREE3DLAYOUT_H #define _TREE3DLAYOUT_H #include /// ConeTree.h - An implementation of the Carierre and Kazman cone tree layout. /** This plugin is an implementation of the Cone tree layout * algorithm first published as: * * A. FJ. Carriere and R. Kazman, "Interacting with Huge Hierarchies: Beyond Cone Trees", * In Proceedings of InfoViz'95, IEEE Symposium on Information Visualization * pages 74-78, 1995, * * HISTORY: * * 01/12/99 Verson 0.0.1: Initial release * * NOTES: * * This algorithm only work on trees. * Let n be the number of nodes, the algorithm complexity is in O(n). * * AUTHOR: * * David Auber University Bordeaux I France: Email:auber@tulip-software.org */ class ConeTree:public Layout { public: ConeTree(PropertyContext *); ~ConeTree(); bool run(); bool check(std::string &); void reset(); private: double treePlace3D(node n, STL_EXT_NS::hash_map *posRelX, STL_EXT_NS::hash_map *posRelY); void calcLayout(node n, STL_EXT_NS::hash_map *px, STL_EXT_NS::hash_map *py, double x, double y, int level); }; #endif