14 #ifndef CULLBINMANAGER_H
15 #define CULLBINMANAGER_H
40 typedef CullBin::BinType BinType;
42 int add_bin(
const std::string &name, BinType type,
int sort);
43 void remove_bin(
int bin_index);
45 INLINE
int get_num_bins()
const;
46 INLINE
int get_bin(
int n)
const;
47 MAKE_SEQ(get_bins, get_num_bins, get_bin);
48 int find_bin(
const std::string &name)
const;
50 INLINE std::string get_bin_name(
int bin_index)
const;
52 INLINE BinType get_bin_type(
int bin_index)
const;
53 INLINE BinType get_bin_type(
const std::string &name)
const;
54 INLINE
void set_bin_type(
int bin_index, BinType type);
55 INLINE
void set_bin_type(
const std::string &name, BinType type);
57 INLINE
int get_bin_sort(
int bin_index)
const;
58 INLINE
int get_bin_sort(
const std::string &name)
const;
59 INLINE
void set_bin_sort(
int bin_index,
int sort);
60 INLINE
void set_bin_sort(
const std::string &name,
int sort);
62 INLINE
bool get_bin_active(
int bin_index)
const;
63 INLINE
bool get_bin_active(
const std::string &name)
const;
64 INLINE
void set_bin_active(
int bin_index,
bool active);
65 INLINE
void set_bin_active(
const std::string &name,
bool active);
68 INLINE
bool get_bin_flash_active(
int bin_index)
const;
69 INLINE
const LColor &get_bin_flash_color(
int bin_index)
const;
70 INLINE
void set_bin_flash_active(
int bin_index,
bool active);
71 INLINE
void set_bin_flash_color(
int bin_index,
const LColor &color);
74 void write(std::ostream &out)
const;
86 typedef CullBin *BinConstructor(
const std::string &name,
90 void register_bin_type(BinType type, BinConstructor *constructor);
94 void setup_initial_bins();
95 static BinType parse_bin_type(
const std::string &bin_type);
97 class EXPCL_PANDA_PGRAPH BinDefinition {
109 typedef epvector<BinDefinition> BinDefinitions;
110 BinDefinitions _bin_definitions;
115 INLINE
bool operator () (
int a,
int b)
const;
120 BinsByName _bins_by_name;
122 typedef vector_int SortedBins;
123 SortedBins _sorted_bins;
124 bool _bins_are_sorted;
125 bool _unused_bin_index;
128 BinConstructors _bin_constructors;
131 friend class SortBins;
134 EXPCL_PANDA_PGRAPH std::ostream &
135 operator << (std::ostream &out, CullBinManager::BinType bin_type);