source: src/Descriptors/AtomDescriptor_impl.hpp@ 7a1ce5

Action_Thermostats Add_AtomRandomPerturbation Add_FitFragmentPartialChargesAction Add_RotateAroundBondAction Add_SelectAtomByNameAction Added_ParseSaveFragmentResults AddingActions_SaveParseParticleParameters Adding_Graph_to_ChangeBondActions Adding_MD_integration_tests Adding_ParticleName_to_Atom Adding_StructOpt_integration_tests AtomFragments Automaking_mpqc_open AutomationFragmentation_failures Candidate_v1.5.4 Candidate_v1.6.0 Candidate_v1.6.1 ChangeBugEmailaddress ChangingTestPorts ChemicalSpaceEvaluator CombiningParticlePotentialParsing Combining_Subpackages Debian_Package_split Debian_package_split_molecuildergui_only Disabling_MemDebug Docu_Python_wait EmpiricalPotential_contain_HomologyGraph EmpiricalPotential_contain_HomologyGraph_documentation Enable_parallel_make_install Enhance_userguide Enhanced_StructuralOptimization Enhanced_StructuralOptimization_continued Example_ManyWaysToTranslateAtom Exclude_Hydrogens_annealWithBondGraph FitPartialCharges_GlobalError Fix_BoundInBox_CenterInBox_MoleculeActions Fix_ChargeSampling_PBC Fix_ChronosMutex Fix_FitPartialCharges Fix_FitPotential_needs_atomicnumbers Fix_ForceAnnealing Fix_IndependentFragmentGrids Fix_ParseParticles Fix_ParseParticles_split_forward_backward_Actions Fix_PopActions Fix_QtFragmentList_sorted_selection Fix_Restrictedkeyset_FragmentMolecule Fix_StatusMsg Fix_StepWorldTime_single_argument Fix_Verbose_Codepatterns Fix_fitting_potentials Fixes ForceAnnealing_goodresults ForceAnnealing_oldresults ForceAnnealing_tocheck ForceAnnealing_with_BondGraph ForceAnnealing_with_BondGraph_continued ForceAnnealing_with_BondGraph_continued_betteresults ForceAnnealing_with_BondGraph_contraction-expansion FragmentAction_writes_AtomFragments FragmentMolecule_checks_bonddegrees GeometryObjects Gui_Fixes Gui_displays_atomic_force_velocity ImplicitCharges IndependentFragmentGrids IndependentFragmentGrids_IndividualZeroInstances IndependentFragmentGrids_IntegrationTest IndependentFragmentGrids_Sole_NN_Calculation JobMarket_RobustOnKillsSegFaults JobMarket_StableWorkerPool JobMarket_unresolvable_hostname_fix MoreRobust_FragmentAutomation ODR_violation_mpqc_open PartialCharges_OrthogonalSummation PdbParser_setsAtomName PythonUI_with_named_parameters QtGui_reactivate_TimeChanged_changes Recreated_GuiChecks Rewrite_FitPartialCharges RotateToPrincipalAxisSystem_UndoRedo SaturateAtoms_findBestMatching SaturateAtoms_singleDegree StoppableMakroAction Subpackage_CodePatterns Subpackage_JobMarket Subpackage_LinearAlgebra Subpackage_levmar Subpackage_mpqc_open Subpackage_vmg Switchable_LogView ThirdParty_MPQC_rebuilt_buildsystem TrajectoryDependenant_MaxOrder TremoloParser_IncreasedPrecision TremoloParser_MultipleTimesteps TremoloParser_setsAtomName Ubuntu_1604_changes stable
Last change on this file since 7a1ce5 was 7a1ce5, checked in by Tillmann Crueger <crueger@…>, 15 years ago

Rebuilt AtomDescriptors using PIMPL-Idiom and added unittest for descriptors

  • Property mode set to 100644
File size: 1.8 KB
Line 
1#include "Descriptors/AtomDescriptor.hpp"
2
3/************************ Declarations of implementation Objects ************************/
4
5class AtomDescriptor_impl
6{
7 friend class AtomDescriptor;
8public:
9
10 AtomDescriptor_impl();
11 virtual ~AtomDescriptor_impl();
12
13 virtual bool predicate(std::pair<int,atom*>)=0;
14
15protected:
16 virtual atom* find();
17 virtual std::vector<atom*> findAll();
18 std::map<int,atom*>& getAtoms();
19};
20
21/************************** Universe and Emptyset *****************/
22
23class AtomAllDescriptor_impl : public AtomDescriptor_impl {
24public:
25 AtomAllDescriptor_impl();
26 virtual ~AtomAllDescriptor_impl();
27 virtual bool predicate(std::pair<int,atom*>);
28};
29
30class AtomNoneDescriptor_impl : public AtomDescriptor_impl {
31public:
32 AtomNoneDescriptor_impl();
33 virtual ~AtomNoneDescriptor_impl();
34 virtual bool predicate(std::pair<int,atom*>);
35};
36
37/************************** Operator stuff ************************/
38
39class AtomAndDescriptor_impl : public AtomDescriptor_impl
40{
41public:
42 AtomAndDescriptor_impl(AtomDescriptor::impl_ptr _lhs, AtomDescriptor::impl_ptr _rhs);
43 ~AtomAndDescriptor_impl();
44 virtual bool predicate(std::pair<int,atom*>);
45
46private:
47 AtomDescriptor::impl_ptr lhs;
48 AtomDescriptor::impl_ptr rhs;
49};
50
51class AtomOrDescriptor_impl : public AtomDescriptor_impl
52{
53public:
54 AtomOrDescriptor_impl(AtomDescriptor::impl_ptr _lhs, AtomDescriptor::impl_ptr _rhs);
55 virtual ~AtomOrDescriptor_impl();
56 virtual bool predicate(std::pair<int,atom*>);
57
58private:
59 AtomDescriptor::impl_ptr lhs;
60 AtomDescriptor::impl_ptr rhs;
61};
62
63class AtomNotDescriptor_impl : public AtomDescriptor_impl
64{
65public:
66 AtomNotDescriptor_impl(AtomDescriptor::impl_ptr _arg);
67 virtual ~AtomNotDescriptor_impl();
68
69 virtual bool predicate(std::pair<int,atom*>);
70
71private:
72 AtomDescriptor::impl_ptr arg;
73};
Note: See TracBrowser for help on using the repository browser.