#include <colorProcessor.h>
Public Types |
|
typedef HashSet< const Composite * > |
CompositeSet |
A HashSet with the used
Composites, see also
Representation. |
|
typedef HashGrid3< const Atom * > | AtomGrid |
a threedimensioal grid with the
pointers to the atoms |
|
typedef HashGridBox3<
const Atom * > |
AtomBox |
a single box in the threedimensional
grid |
|
Public Member Functions |
|
ColorProcessor () | |
Default Constructor. |
|
ColorProcessor (const ColorProcessor &color_calculator) | |
Copy constructor. |
|
virtual | ~ColorProcessor () |
Destructor. |
|
virtual void | clear () |
Explicit default initialization.
|
|
void | set (const ColorProcessor &color_calculator) |
Assignment. |
|
virtual bool | start () |
start method |
|
const ColorProcessor & | operator= (const ColorProcessor &color_calculator) |
Assignment operator. |
|
bool | updateAlwaysNeeded () |
Some coloring processors need only
to be applied to a
Representation if the hierarchy of the Representations
Composite is changed, or the
Composites Names or Type (like SecondaryStructure::Type)
is changed. |
|
void | setDefaultColor (const ColorRGBA &color) |
Change the default color. |
|
const ColorRGBA & | getDefaultColor () const |
Non-mutable inspection of the
default color. |
|
virtual Processor::Result | operator() (GeometricObject *&object) |
Calculate a color for a GeometricObject. |
|
virtual void | getColor (const Composite &composite, ColorRGBA &color_to_be_set) |
Calculate a color for a Composite. |
|
Size | getTransparency () const |
virtual void | setTransparency (Size value) |
Set the transparency. |
|
void | setComposites (const List< const Composite * > *composites) |
Set the pointer to the CompositeSet.
|
|
const List< const Composite * > * | getComposites () |
Return a pointer to the
Composites. |
|
void | clearAtomGrid () |
void | setAdditionalGridDistance (float distance) |
float | getAdditionalGridDistance () const |
void | setMinGridSpacing (float spacing) |
AtomGrid & | getAtomGrid () |
virtual void | dump (std::ostream &s=std::cout, Size depth=0) const |
Internal value dump. |
|
void | setModelType (ModelType type) |
virtual void | createAtomGrid (const Composite *from_mesh=0) |
const Atom * | getClosestItem (const Vector3 &v) const |
Protected Member Functions |
|
virtual void | colorMeshFromGrid_ (Mesh &mesh) |
virtual bool | canUseMeshShortcut_ (const Composite &) |
Protected Attributes |
|
bool | update_always_needed_ |
ColorRGBA | default_color_ |
ColorRGBA | selection_color_ |
Size | transparency_ |
const List< const Composite * > * | composites_ |
AtomGrid | atom_grid_ |
ModelType | model_type_ |
const Composite * | last_composite_of_grid_ |
float | additional_grid_distance_ |
float | min_spacing_ |
This class defines the interface and basic algorithms to
colorize geometric objects, e.g. Sphere, Tube,
TwoColoredTube, etc. Derived
classes implement special ways to colorize, e.g. by charge or
element. They have to overload the method getColor(Composite,
ColorRGBA).
If no color can be calculated for a GeometricObject, e.g. if it has no
Composite, the default color is
set.
A bit tricky is the coloring of meshes. The goal was to give
every triangle of a mesh a color according to its nearest
Atom. To do so, a threedimensional HashGrid3 is used. It
is computed, when the ColorProcessor
first encounters a Mesh
in the operator (). For this a pointer to the HashSet with the used Composite instances exists, which is set
by the
Representation.
virtual void BALL::VIEW::ColorProcessor::clear | ( | ) | [virtual] |
Explicit default initialization.
Reset the state of the default_color_ to red (
"FF0000FF"
). The grid is cleared and the
pointer to the CompositeSet is set to NULL.
virtual void BALL::VIEW::ColorProcessor::dump | ( | std::ostream & | s =
std::cout , |
|
Size | depth =
0 |
|||
) | const [virtual] |
Internal value dump.
Dump the current state of this ColorProcessor to the output ostream s with dumping depth depth.
s | output stream where to output the state of this ColorProcessor | |
depth | the dumping depth |
virtual void BALL::VIEW::ColorProcessor::getColor | ( | const Composite & | composite, | |
ColorRGBA & | color_to_be_set | |||
) | [virtual] |
Calculate a color for a Composite.
The given ColorRGBA instance is set to the calculated color. This method is called by the operator() method. Here it just sets the default color. You have to overload this operator in derived classes.
Reimplemented in BALL::VIEW::ElementColorProcessor, BALL::VIEW::ResidueNumberColorProcessor, BALL::VIEW::ResidueNameColorProcessor, BALL::VIEW::AtomChargeColorProcessor, BALL::VIEW::AtomDistanceColorProcessor, BALL::VIEW::TemperatureFactorColorProcessor, BALL::VIEW::OccupancyColorProcessor, BALL::VIEW::ForceColorProcessor, BALL::VIEW::SecondaryStructureColorProcessor, and BALL::VIEW::ResidueTypeColorProcessor.
const ColorProcessor& BALL::VIEW::ColorProcessor::operator= | ( | const ColorProcessor & | color_calculator | ) |
Assignment operator.
Calls set.
Set the pointer to the CompositeSet.
This method is called by Representation::setColorProcessor and Representation::update.
virtual void BALL::VIEW::ColorProcessor::setTransparency | ( | Size | value | ) | [virtual] |
Set the transparency.
To be overloaded in derived classes
Reimplemented in BALL::VIEW::ElementColorProcessor, BALL::VIEW::ResidueNameColorProcessor, BALL::VIEW::SecondaryStructureColorProcessor, and BALL::VIEW::ResidueTypeColorProcessor.
bool BALL::VIEW::ColorProcessor::updateAlwaysNeeded | ( | ) |
Some coloring processors need only to be applied to a Representation if the hierarchy of the Representations Composite is changed, or the Composites Names or Type (like SecondaryStructure::Type) is changed.
As this is seldom the case, we can speedup the call to Representation::update() in most cases. This method defines if a ColoringMethod needs to be applied in all cases. The default value is false. Initialise the member update_always_needed_ to true in derived classes, if the derived ColorProcessor shall always be applied.