source: src/Filling/Preparators/BaseFillerPreparator.hpp@ 70f2a1

Action_Thermostats Adding_Graph_to_ChangeBondActions Adding_MD_integration_tests Adding_StructOpt_integration_tests AutomationFragmentation_failures Candidate_v1.6.1 ChemicalSpaceEvaluator Enhanced_StructuralOptimization Enhanced_StructuralOptimization_continued Example_ManyWaysToTranslateAtom Exclude_Hydrogens_annealWithBondGraph Fix_Verbose_Codepatterns ForceAnnealing_with_BondGraph ForceAnnealing_with_BondGraph_continued ForceAnnealing_with_BondGraph_continued_betteresults ForceAnnealing_with_BondGraph_contraction-expansion Gui_displays_atomic_force_velocity JobMarket_RobustOnKillsSegFaults JobMarket_StableWorkerPool PythonUI_with_named_parameters Recreated_GuiChecks StoppableMakroAction TremoloParser_IncreasedPrecision TremoloParser_MultipleTimesteps
Last change on this file since 70f2a1 was aa91de0, checked in by Frederik Heber <frederik.heber@…>, 8 years ago

FIX: size_t definition missing and other fixes.

  • cstddef defines both size_t and NULL.
  • also string include missing.
  • this is in preparation for removing MemDebug include.
  • Property mode set to 100644
File size: 1.7 KB
Line 
1/*
2 * BaseFillerPrepator.hpp
3 *
4 * Created on: Sep 2, 2014
5 * Author: heber
6 */
7
8#ifndef BASEFILLERPREPARATOR_HPP_
9#define BASEFILLERPREPARATOR_HPP_
10
11// include config.h
12#ifdef HAVE_CONFIG_H
13#include <config.h>
14#endif
15
16#include <cstddef>
17
18class atom;
19class Filler;
20class FillPredicate;
21class Inserter;
22class LinkedCell_deprecated;
23class Mesh;
24class molecule;
25class Tesselation;
26
27#include <vector>
28
29/** BaseFillerPrepator is the base class for all specific filler preparators.
30 *
31 * Specific preparators combine all the various aspects of filling into a specific
32 * package for easy and convenient calling for returning a filler function.
33 *
34 * It defines both the interface and implements some common functions.
35 */
36class BaseFillerPreparator
37{
38public:
39 BaseFillerPreparator(molecule *_filler);
40 virtual ~BaseFillerPreparator();
41
42 void addSurfacePredicate(
43 const double _radius,
44 std::vector<atom *> &_atoms,
45 const double minimum_distance = 0.);
46 void addRandomInserter(
47 const double _RandAtomDisplacement,
48 const double _RandMoleculeDisplacement,
49 const bool _DoRotate);
50 void addVoidPredicate(
51 const double _mindistance);
52 bool operator()();
53
54 /* The operator is just a getter for the constructed fillerFunction.
55 *
56 * \return allocated Filler (is not deleted here)
57 */
58 Filler* obtainFiller()
59 {
60 Filler *temp = fillerFunction;
61 fillerFunction = NULL;
62 return temp;
63 }
64
65protected:
66 molecule *filler;
67 FillPredicate * surface_predicate;
68 LinkedCell_deprecated * LC;
69 Tesselation * TesselStruct;
70 FillPredicate *voidnode_predicate;
71 FillPredicate *Andpredicate;
72 Mesh *mesh;
73 Inserter *inserter;
74 Filler *fillerFunction;
75};
76
77
78#endif /* BASEFILLERPREPARATOR_HPP_ */
Note: See TracBrowser for help on using the repository browser.