template<typename K, typename E>
class bridges::datastructure::KdTreeElement< K, E >
This class can be used to create K-d Tree elements, derived from BSTElement. K-D trees can be thought of as the spatial equivalent binary search trees and operate on multiple dimensions (2D and 3D are most common). These trees serve as a representation of the underlying geometrically defined spaces. Specialized versions of these trees include quadtrees and octrees, which subdivide into equal sized quadrants octants at each level, respectively.
This class extends the BSTElement class by adding a dimension property. It also includes a thickness property for displaying the partitioning lines generated by the convex decomposition.
convenient to generate visual representation to allow for use in a binary search tree implementation.
- See also
- There is a tutorial about K-d Trees : https://bridgesuncc.github.io/tutorials/KdTree.html
@param K that is the search key type - this is usually a number, integer
or float
@param E the application data type
- Author
- Kalpathi Subramanian
- Date
- 6/18/15, 7/17/16, 12/28/20
|
| KdTreeElement (const K &k, int dim, int th, const KdTreeElement *l, const KdTreeElement *r, const E &val=E(), const string &lab=string()) |
|
| KdTreeElement (const K &k, int dim, int th=0, const E &val=E(), const string &lab=string()) |
|
virtual const string | getDStype () const override |
|
int | getDimension () const |
| Get Dimension of the partition. More...
|
|
void | setDimension (const int &dim) |
| Set partitioning dimension to "dim". More...
|
|
float | getThickness () const |
| Get thickness of the partition. More...
|
|
void | setThickness (const float &th) |
| Set partitioning dimension to "dim". More...
|
|
K | getPartitioner () const |
| Get partitioner value. More...
|
|
void | setPartitioner (const K &p) |
| Set partitioning dimension to "dim". More...
|
|
virtual KdTreeElement * | getLeft () override |
| Get left child. More...
|
|
virtual const KdTreeElement * | getLeft () const override |
| Get left child - constant version. More...
|
|
void | setLeft (KdTreeElement *l) |
| Sets left child to "l". More...
|
|
virtual KdTreeElement * | getRight () override |
| Get right child. More...
|
|
virtual const KdTreeElement * | getRight () const override |
| Get right child - Constant version. More...
|
|
void | setRight (KdTreeElement *r) |
| Sets right child to "r". More...
|
|
| BSTElement (const K &k, BSTElement *l, BSTElement *r, const E &val=E(), const string &lab=string()) |
|
| BSTElement (const K &k, const E &val=E(), const string &lab=string()) |
|
K | getKey () const |
|
void | setKey (const K &k) |
|
void | setLeft (BSTElement *l) |
|
void | setRight (BSTElement *r) |
|
| BinTreeElement (BinTreeElement *l, BinTreeElement *r, const E &e=E(), const string &lab=string()) |
|
| BinTreeElement (const E &e=E(), const string &lab=string()) |
|
void | setLeft (BinTreeElement *l) |
|
void | setRight (BinTreeElement *r) |
|
| TreeElement (const E &e=E(), const string &lab=string()) |
| Construct a TreeElement from given values. More...
|
|
vector< TreeElement * > & | getChildren () |
| Get the children of this node. More...
|
|
const vector< TreeElement * > & | getChildren () const |
| Get the children of this node. More...
|
|
TreeElement * | getChild (const int &n) |
| Gets the nth child of this node. More...
|
|
const TreeElement * | getChild (const int &n) const |
| Gets the nth child of this node - constant version. More...
|
|
void | addChild (TreeElement *child) |
| Adds a child to children. More...
|
|
void | setChild (const size_t &index, TreeElement *kid) |
| Sets child at index to "kid". More...
|
|
| Element (const E &val=E(), const string &lab=string()) |
|
| Element (const Element &e) |
|
Element & | operator= (const Element &e) |
|
E & | operator= (E const &e) |
|
virtual | ~Element () |
|
ElementVisualizer * | getVisualizer () |
| Get the element visualizer object. More...
|
|
const ElementVisualizer * | getVisualizer () const |
| Get the element visualizer object - constant version. More...
|
|
LinkVisualizer * | getLinkVisualizer (const Element *el) |
| Returns the LinkVisualizer of element. More...
|
|
LinkVisualizer * | getLinkVisualizer (const Element *el) const |
| Returns the LinkVisualizer of element. More...
|
|
string const & | getLabel () const |
| Gets the label of this element. More...
|
|
void | setLabel (const string &lab) |
| Sets label of this element. More...
|
|
E const & | getValue () const |
| Gets the object held in the generic object E. More...
|
|
E & | getValue () |
| Gets the object held in the generic object E. More...
|
|
void | setValue (const E &val) |
| Sets generic object to "val". More...
|
|
void | setSize (const double &sz) |
| Sets size of the element. More...
|
|
double | getSize () const |
| Get element size. More...
|
|
void | setColor (const Color &col) |
| Set the color of the Element. More...
|
|
void | setColor (const string col) |
| Set the color by name. More...
|
|
Color | getColor () const |
| Get the current color of the element. More...
|
|
void | setOpacity (double opacity) |
| Set opacity of element - use the 4th color component. More...
|
|
double | getOpacity () |
|
void | setShape (const Shape &shp) |
| Set the shape of the element. More...
|
|
Shape | getShape () const |
| Returns the shape of the element. More...
|
|
void | setLocation (const double &locX, const double &locY) |
| Sets the location attributes of an element. More...
|
|
double | getLocationX () const |
| Gets the X coordinate of the location. More...
|
|
double | getLocationY () const |
| Gets the Y coordinate of the location. More...
|
|
virtual | ~DataStructure ()=default |
|