Main Page | Modules | Namespace List | Class Hierarchy | Class List | Namespace Members | Class Members

VIEW::ColorProcessor Class Reference
[Model Processors]

Calculating colors for given GeometricObject instances. More...

#include <colorProcessor.h>

Inheritance diagram for VIEW::ColorProcessor:

UnaryProcessor< GeometricObject * > UnaryFunctor< GeometricObject *, Processor::Result > VIEW::AtomDistanceColorProcessor VIEW::CustomColorProcessor VIEW::ElementColorProcessor VIEW::InterpolateColorProcessor VIEW::ResidueNameColorProcessor VIEW::ResidueNumberColorProcessor VIEW::ResidueTypeColorProcessor VIEW::SecondaryStructureColorProcessor List of all members.

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 () throw ()
 Default Constructor.
 ColorProcessor (const ColorProcessor &color_calculator) throw ()
 Copy constructor.
virtual ~ColorProcessor ()
 Destructor.
virtual void clear () throw ()
 Explicit default initialization.
void set (const ColorProcessor &color_calculator) throw ()
 Assignment.
virtual bool start () throw ()
 start method
const ColorProcessoroperator= (const ColorProcessor &color_calculator) throw ()
 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) throw ()
 Change the default color.
const ColorRGBAgetDefaultColor () const throw ()
 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 throw ()
virtual void setTransparency (Size value) throw ()
 Set the transparency.
void setComposites (const List< const Composite * > *composites) throw ()
 Set the pointer to the CompositeSet.
const List< const Composite * > * getComposites () throw ()
 Return a pointer to the Composites.
void clearAtomGrid () throw ()
void setAdditionalGridDistance (float distance) throw ()
float getAdditionalGridDistance () const throw ()
void setMinGridSpacing (float spacing)
AtomGridgetAtomGrid () throw ()
virtual void dump (std::ostream &s=std::cout, Size depth=0) const throw ()
 Internal value dump.
void setModelType (ModelType type)
virtual void createAtomGrid (const Composite *from_mesh=0) throw ()
const AtomgetClosestItem (const Vector3 &v) const throw ()

Protected Member Functions

virtual void colorMeshFromGrid_ (Mesh &mesh) throw ()
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 Compositelast_composite_of_grid_
float additional_grid_distance_
float min_spacing_

Detailed Description

Calculating colors for given GeometricObject instances.

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.


Member Function Documentation

virtual void VIEW::ColorProcessor::clear  )  throw () [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 VIEW::ColorProcessor::dump std::ostream &  s = std::cout,
Size  depth = 0
const throw () [virtual]
 

Internal value dump.

Dump the current state of this ColorProcessor to the output ostream s with dumping depth depth.

Parameters:
s output stream where to output the state of this ColorProcessor
depth the dumping depth

virtual void 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 VIEW::ElementColorProcessor, VIEW::ResidueNumberColorProcessor, VIEW::ResidueNameColorProcessor, VIEW::AtomChargeColorProcessor, VIEW::AtomDistanceColorProcessor, VIEW::TemperatureFactorColorProcessor, VIEW::OccupancyColorProcessor, VIEW::ForceColorProcessor, VIEW::SecondaryStructureColorProcessor, and VIEW::ResidueTypeColorProcessor.

const ColorRGBA& VIEW::ColorProcessor::getDefaultColor  )  const throw ()
 

Non-mutable inspection of the default color.

virtual Processor::Result VIEW::ColorProcessor::operator() GeometricObject *&  object  )  [virtual]
 

Calculate a color for a GeometricObject.

Reimplemented from UnaryProcessor< GeometricObject * >.

Reimplemented in VIEW::AtomDistanceColorProcessor.

const ColorProcessor& VIEW::ColorProcessor::operator= const ColorProcessor color_calculator  )  throw ()
 

Assignment operator.

Calls set.

void VIEW::ColorProcessor::setComposites const List< const Composite * > *  composites  )  throw ()
 

Set the pointer to the CompositeSet.

This method is called by Representation::setColorProcessor and Representation::update.

void VIEW::ColorProcessor::setDefaultColor const ColorRGBA color  )  throw ()
 

Change the default color.

virtual void VIEW::ColorProcessor::setTransparency Size  value  )  throw () [virtual]
 

Set the transparency.

To be overloaded in derived classes

Reimplemented in VIEW::ElementColorProcessor, VIEW::ResidueNameColorProcessor, VIEW::SecondaryStructureColorProcessor, and VIEW::ResidueTypeColorProcessor.

bool 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.