HLIBpro  2.0
Public Member Functions | Protected Member Functions | List of all members
TBSPGroupCTBuilder Class Reference

Enhances BSP by allowing grouping of 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 TBSPGroupCTBuilder:
TBSPCTBuilder

Public Member Functions

 TBSPGroupCTBuilder (const std::vector< uint > &groups, const TBSPCTBuilder *base_builder)
 
virtual TClusterTreebuild (const TCoordinate *coord, const idx_t idx_ofs=0) const
 
- Public Member Functions inherited from TBSPCTBuilder
 TBSPCTBuilder ()
 default ctor
 
 TBSPCTBuilder (const TBSPPartStrat *part_strat, const uint n_min=CFG::Cluster::nmin, const uint min_leaf_lvl=0)
 construct BSP cluster tree builder with partitioning strategy part_strat
 
virtual ~TBSPCTBuilder ()
 dtor
 
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
 
virtual 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
 

Protected Member Functions

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

Additional Inherited Members

- Protected Attributes inherited from TBSPCTBuilder
const TBSPPartStrat_part_strat
 type of partitioning strategy
 
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
 

Constructor & Destructor Documentation

TBSPGroupCTBuilder ( 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

virtual TClusterTree* build ( const TCoordinate coord,
const idx_t  idx_ofs = 0 
) const
virtual

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

See Also
_groups

Reimplemented from TBSPCTBuilder.

TCluster* expand ( TCluster cluster,
const std::vector< std::vector< 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.