Class documentation of Concepts

Loading...
Searching...
No Matches
tree02.hh
Go to the documentation of this file.
1
6#ifndef clusterTree02_hh
7#define clusterTree02_hh
8
9#include "cluster/tree.hh"
10
11namespace cluster {
12
13 // ********************************************************** TreeTraits02 **
14
19 template<class Node>
20 class TreeTraits02 : public TreeTraits<Node> {
21 public:
22 typedef typename TreeTraits<Node>::F F;
23
24 static Node* newNode(const concepts::Element<F>& elm, const BBall<F>& ball,
25 Node* lnk) {return new Node(elm, ball, lnk);}
26 static Node* newNode(uint idx, Node& chld, const concepts::Real3d& c,
27 concepts::Real r, uint nlf = 0) {
28 return new Node(idx, chld, c, r, nlf);
29 }
30
31 static Node* child(const Node* nd) {return nd->child();}
32 static Node* link(const Node* nd) {return nd->link();}
33 static Node*& link(Node* nd) {return nd->link();}
34 };
35
36 // **************************************************************** Tree02 **
37
41 template<class CNode>
42 class Tree02 : public Tree<CNode> {
43 public:
46 typedef typename Traits::F F;
47
52 Tree02(const concepts::Space<F>& spc, const BBall<F>& ball);
53 ~Tree02();
54
56 inline uint nclst() const {return nclst_;}
58 inline uint nleaf() const {return nlf_;}
60 inline const CNode* root() const {return root_;}
61
62 private:
64 uint nlf_;
66 uint nclst_;
68 CNode* root_;
69 };
70
71} // namespace cluster
72
73#endif // clusterTree02_hh
const CNode * root() const
First node of the cluster list.
Definition tree02.hh:60
uint nclst() const
Number of clusters.
Definition tree02.hh:56
Tree02(const concepts::Space< F > &spc, const BBall< F > &ball)
TreeTraits02< CNode > Traits
Interface of the tree.
Definition tree02.hh:45
uint nleaf() const
Number of leafs.
Definition tree02.hh:58
Node::CF F
Field of the node (Real or Cmplx)
Definition tree.hh:255
double Real
Definition typedefs.hh:39