HLIBpro  2.4
Classes | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
TGeomCTBuilder Class Referenceabstract

Base class for all cluster tree constructors based on geometry data.

#include <TBSPCTBuilder.hh>

Inheritance diagram for TGeomCTBuilder:
TBSPCTBuilder TGeomGroupCTBuilder TGeomPartCTBuilder TBSPNDCTBuilder


struct  data_t
 Datatype for internal argument transfer. More...
class  TOptClusterSize
 Controls optimal cluster size per tree level. More...

Public Member Functions

 TGeomCTBuilder (const uint n_min=CFG::Cluster::nmin, const uint min_leaf_lvl=0)
 construct cluster tree builder
virtual std::unique_ptr< TClusterTreebuild (const TCoordinate *coord, const idx_t idx_ofs=0) const
virtual std::unique_ptr< TGeomClusterdivide (const TNodeSet &dofs, const uint lvl, const TBBox &bbox, const TOptClusterSize &csize, const idx_t index_ofs, data_t &data) const =0
 recursively build cluster tree for indices in dofs

Protected Member Functions

virtual std::unique_ptr< TGeomClusterbuild_leaf (const TNodeSet &dofs, const uint lvl, const idx_t index_ofs, const TBBox &bbox, data_t &data) const
 create a leaf in a clustertree containing indices in dofs
virtual TBBox compute_bb (const TNodeSet &dofs, const data_t &data) const
 compute bounding box of index set defined by dofs
virtual void update_bb (const TNodeSet &dofs, TBBox &bbox, const data_t &data) const
 update bounding box of index set defined by dofs
virtual void check_bb (TBBox &bbox, const data_t &data) const
 check and update bbox in case of degenerate axis, e.g. very small length
virtual TBBox support_size (const node_t node, const bool only_idx, const data_t &data) const
 compute support size for single index

Protected Attributes

uint _n_min
 minimal size of a cluster, i.e. not smaller than this
uint _min_leaf_lvl
 minimal level on which leaves may occur
bool _adjust_bb
 flag for adjusting bounding boxes of nodes
bool _sort_wrt_size
 flag for sorting sub clusters w.r.t. size

Member Function Documentation

virtual std::unique_ptr< TClusterTree > build ( const TCoordinate coord,
const idx_t  idx_ofs = 0 
) const

build cluster tree out of given coordinate set

coord: geometry information for each index
idx_ofs: start renumbering indices from idx_ofs

Reimplemented in TGeomGroupCTBuilder, and TBSPNDCTBuilder.