HLIBpro 3.1
Loading...
Searching...
No Matches
TGeomGroupCTBuilder Class Reference

Enhances geometrical ct builder by allowing to group indices, e.g. the groups are clustered and later expanded, ensuring that all indices in a group are in the same cluster NOTE: bounding boxes per index are not yet supported (bb_min/bb_max)

#include <TBSPCTBuilder.hh>

Inheritance diagram for TGeomGroupCTBuilder:
TGeomCTBuilder

Public Member Functions

 TGeomGroupCTBuilder (const std::vector< uint > &groups, const TBSPCTBuilder *base_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
 recursively build cluster tree for indices in dofs
 
- Public Member Functions inherited from TGeomCTBuilder
 TGeomCTBuilder (const uint n_min=CFG::Cluster::nmin, const uint min_leaf_lvl=0)
 construct cluster tree builder
 
void set_max_lvl (const uint l)
 set maximal leaf level
 
void adjust_bb (const bool b)
 set flag for adjusting bounding box
 
void sort_wrt_size (const bool b)
 set flag for sorting son cluster wrt. size
 

Protected Member Functions

std::unique_ptr< TGeomClusterexpand (TCluster *cluster, const std::vector< std::deque< uint > > &group_to_idx, const TCoordinate *coord, const TPermutation &group_perm, TPermutation &perm, const idx_t idx_ofs) const
 
- Protected Member Functions inherited from TGeomCTBuilder
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
 

Additional Inherited Members

- Protected Attributes inherited from TGeomCTBuilder
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
 
uint _max_lvl
 maximal level of tree (0: automatic choice)
 
bool _adjust_bb
 flag for adjusting bounding boxes of nodes
 
bool _sort_wrt_size
 flag for sorting sub clusters w.r.t. size
 

Constructor & Destructor Documentation

◆ TGeomGroupCTBuilder()

TGeomGroupCTBuilder ( const std::vector< uint > &  groups,
const TBSPCTBuilder base_builder 
)

construct cluster tree with index grouping defined by groups and base ct builder base_builder

Member Function Documentation

◆ build()

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

build cluster tree out of coordinate set \coord but with respect to additional index groups defined by

See also
_groups

Reimplemented from TGeomCTBuilder.

◆ expand()

std::unique_ptr< TGeomCluster > expand ( TCluster cluster,
const std::vector< std::deque< uint > > &  group_to_idx,
const TCoordinate coord,
const TPermutation group_perm,
TPermutation perm,
const idx_t  idx_ofs 
) const
protected

recursively expand index groups and update the corresponding cluster, e.g. size, bounding box, etc.