Roguelike
 All Classes Namespaces Functions Variables Typedefs Friends Pages
binary_space.h
1 
20 #ifndef _BINARY_SPACE_H
21 #define _BINARY_SPACE_H
22 
23 #include <time.h>
24 #include <stdlib.h>
25 #include <iostream>
26 #include <string>
27 #include <sstream>
28 #include <vector>
29 
34 {
35  public:
36  int height;
37  int width;
38  int tl_x;
39  int tl_y;
40  BSpaceNode* left;
41  BSpaceNode* right;
42  BSpaceNode(int _tl_x, int _tl_y, int _width, int _height);
43  void resize(int new_x, int new_y, int new_width, int new_height);
44 
45 };
46 
52 {
53  private:
54  BSpaceNode* root;
55  std::vector<BSpaceNode*> leaves;
56  int height;
57  int width;
58  int min_size;
59  int max_size;
60  void delete_all(BSpaceNode* node);
61  bool split_node(BSpaceNode* node);
62  void generate_tree(BSpaceNode* node);
63  public:
64  BSpaceTree(int _height, int _width, int _min_size, int _max_size);
65  ~BSpaceTree();
66  BSpaceNode* get_root();
67  std::vector<BSpaceNode*>& get_leaves();
68  void rec_get_leaves(std::vector<BSpaceNode*>& vec, BSpaceNode* node);
69 };
70 
71 #endif
Definition: binary_space.h:33
Definition: binary_space.h:51
void generate_tree(BSpaceNode *node)
Definition: binary_space.cpp:76
BSpaceNode(int _tl_x, int _tl_y, int _width, int _height)
Definition: binary_space.cpp:24