mirror of https://github.com/CGAL/cgal
add a way to not update automatically the color vector
(in case a plugin has fixed it)
This commit is contained in:
parent
2f6dae6bbb
commit
8fdfaaf041
|
|
@ -62,7 +62,8 @@ Scene_polyhedron_item::Scene_polyhedron_item()
|
||||||
poly(new Polyhedron),
|
poly(new Polyhedron),
|
||||||
show_only_feature_edges_m(false),
|
show_only_feature_edges_m(false),
|
||||||
facet_picking_m(false),
|
facet_picking_m(false),
|
||||||
erase_next_picked_facet_m(false)
|
erase_next_picked_facet_m(false),
|
||||||
|
plugin_has_set_color_vector_m(false)
|
||||||
{
|
{
|
||||||
//init();
|
//init();
|
||||||
}
|
}
|
||||||
|
|
@ -72,7 +73,8 @@ Scene_polyhedron_item::Scene_polyhedron_item(Polyhedron* const p)
|
||||||
poly(p),
|
poly(p),
|
||||||
show_only_feature_edges_m(false),
|
show_only_feature_edges_m(false),
|
||||||
facet_picking_m(false),
|
facet_picking_m(false),
|
||||||
erase_next_picked_facet_m(false)
|
erase_next_picked_facet_m(false),
|
||||||
|
plugin_has_set_color_vector_m(false)
|
||||||
{
|
{
|
||||||
init();
|
init();
|
||||||
}
|
}
|
||||||
|
|
@ -82,7 +84,8 @@ Scene_polyhedron_item::Scene_polyhedron_item(const Polyhedron& p)
|
||||||
poly(new Polyhedron(p)),
|
poly(new Polyhedron(p)),
|
||||||
show_only_feature_edges_m(false),
|
show_only_feature_edges_m(false),
|
||||||
facet_picking_m(false),
|
facet_picking_m(false),
|
||||||
erase_next_picked_facet_m(false)
|
erase_next_picked_facet_m(false),
|
||||||
|
plugin_has_set_color_vector_m(false)
|
||||||
{
|
{
|
||||||
init();
|
init();
|
||||||
}
|
}
|
||||||
|
|
@ -108,17 +111,20 @@ init()
|
||||||
{
|
{
|
||||||
typedef Polyhedron::Facet_iterator Facet_iterator;
|
typedef Polyhedron::Facet_iterator Facet_iterator;
|
||||||
|
|
||||||
// Fill indices map and get max subdomain value
|
if ( !plugin_has_set_color_vector_m )
|
||||||
int max = 0;
|
|
||||||
for(Facet_iterator fit = poly->facets_begin(), end = poly->facets_end() ;
|
|
||||||
fit != end; ++fit)
|
|
||||||
{
|
{
|
||||||
max = (std::max)(max, fit->patch_id());
|
// Fill indices map and get max subdomain value
|
||||||
|
int max = 0;
|
||||||
|
for(Facet_iterator fit = poly->facets_begin(), end = poly->facets_end() ;
|
||||||
|
fit != end; ++fit)
|
||||||
|
{
|
||||||
|
max = (std::max)(max, fit->patch_id());
|
||||||
|
}
|
||||||
|
|
||||||
|
colors_.clear();
|
||||||
|
compute_color_map(this->color(), max + 1,
|
||||||
|
std::back_inserter(colors_));
|
||||||
}
|
}
|
||||||
|
|
||||||
colors_.clear();
|
|
||||||
compute_color_map(this->color(), max + 1,
|
|
||||||
std::back_inserter(colors_));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,8 @@ public:
|
||||||
bool isEmpty() const;
|
bool isEmpty() const;
|
||||||
Bbox bbox() const;
|
Bbox bbox() const;
|
||||||
std::vector<QColor>& color_vector() {return colors_;}
|
std::vector<QColor>& color_vector() {return colors_;}
|
||||||
|
void set_color_vector_read_only(bool on_off) {plugin_has_set_color_vector_m=on_off;}
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
virtual void changed();
|
virtual void changed();
|
||||||
void show_only_feature_edges(bool);
|
void show_only_feature_edges(bool);
|
||||||
|
|
@ -85,6 +86,8 @@ private:
|
||||||
bool show_only_feature_edges_m;
|
bool show_only_feature_edges_m;
|
||||||
bool facet_picking_m;
|
bool facet_picking_m;
|
||||||
bool erase_next_picked_facet_m;
|
bool erase_next_picked_facet_m;
|
||||||
|
//the following variable is used to indicate if the color vector must not be automatically updated.
|
||||||
|
bool plugin_has_set_color_vector_m;
|
||||||
}; // end class Scene_polyhedron_item
|
}; // end class Scene_polyhedron_item
|
||||||
|
|
||||||
#endif // SCENE_POLYHEDRON_ITEM_H
|
#endif // SCENE_POLYHEDRON_ITEM_H
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue