IMP  2.2.1
The Integrative Modeling Platform
FilterGeometry.h
Go to the documentation of this file.
1 /**
2  * \file IMP/display/FilterGeometry.h
3  * \brief Implement FilterGeometry
4  *
5  * Copyright 2007-2014 IMP Inventors. All rights reserved.
6  */
7 
8 #ifndef IMPDISPLAY_FILTER_GEOMETRY_H
9 #define IMPDISPLAY_FILTER_GEOMETRY_H
10 
11 #include <IMP/display/display_config.h>
12 #include "declare_Geometry.h"
13 #include "GeometryProcessor.h"
14 
15 #include <IMP/PairContainer.h>
16 #include <IMP/SingletonContainer.h>
17 #include <IMP/algebra/Plane3D.h>
19 
20 IMPDISPLAY_BEGIN_NAMESPACE
21 
22 //! Remove geometry which is not above a plane.
23 /** Any geometry which is not above the plane is not passed on to the writer
24  or log or whatever this CompoundGoemetry is passed to.
25  */
26 class IMPDISPLAYEXPORT FilterGeometry : public GeometryProcessor,
27  public Geometry {
28  const algebra::Plane3D &p_;
29  Geometries gdata_;
30  mutable Geometries filtered_;
31  bool handle_sphere(SphereGeometry *g, Color color, std::string name);
32  bool handle_cylinder(CylinderGeometry *g, Color color, std::string name);
33  bool handle_point(PointGeometry *g, Color color, std::string name);
34  bool handle_segment(SegmentGeometry *g, Color color, std::string name);
35 
36  public:
37  //! Pay attention to the orientation of the plane.
39 
40  void add_geometry(Geometry *g);
41 
42  void add_geometry(const Geometries &g);
43 
44  virtual IMP::display::Geometries get_components() const IMP_OVERRIDE;
46 };
47 
48 IMPDISPLAY_END_NAMESPACE
49 
50 #endif /* IMPDISPLAY_FILTER_GEOMETRY_H */
Represent an RGB color.
Definition: Color.h:24
Import IMP/kernel/SingletonContainer.h in the namespace.
The base class for geometry.
Implement geometry for the basic shapes from IMP.algebra.
Provide a standard geometry processing framework.
Import IMP/kernel/PairContainer.h in the namespace.
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Various general useful macros for IMP.
Simple 3D plane class.
virtual Geometries get_components() const
Return a set of geometry composing this one.
Implement GeometryProcessor.
Remove geometry which is not above a plane.