Ignore:
Timestamp:
Aug 7, 2010, 1:46:16 PM (15 years ago)
Author:
Frederik Heber <heber@…>
Branches:
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, Candidate_v1.7.0, Candidate_v1.7.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
Children:
5b4605
Parents:
44de80
Message:

converted #define's to enums, consts and typedefs [Meyers, "Effective C++", item 1].

basic changes:

  • #define bla 1.3 -> const double bla = 1.3
  • #define bla "test" -> const char * const bla = "test
  • use class specific constants! (HULLEPSILON)

const int Class::bla = 1.3; (in .cpp)
static const int bla; (in .hpp inside class private section)

  • "enum hack": #define bla 5 -> enum { bla = 5 };
    • if const int bla=5; impossible
    • e.g. necessary if constant is used in array declaration (int blabla[bla];)

details:

  • new file defs.cpp where const double reside in and are referenced by extern "C" const double
  • joiner.cpp: main() had to be changed due to concatenation of two #define possible, of two const char * not
  • class specific constants: HULLEPSILON, BONDTHRESHOLD, SPHERERADIUS
  • extended GetPathLengthonCircumCircle to additional parameter HULLEPSILON
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/BoundaryMaps.hpp

    r44de80 r88b400  
    99#define BOUNDARYMAPS_HPP_
    1010
    11 #define IndexToIndex std::map <int, int>
     11class BoundaryPointSet;
     12class BoundaryLineSet;
     13class BoundaryTriangleSet;
     14class BoundaryPolygonSet;
     15class CandidateForTesselation;
     16class TesselPoint;
    1217
    13 #define PointMap std::map < int, class BoundaryPointSet * >
    14 #define PointSet std::set < class BoundaryPointSet * >
    15 #define PointList std::list < class BoundaryPointSet * >
    16 #define PointPair std::pair < int, class BoundaryPointSet * >
    17 #define PointTestPair std::pair < PointMap::iterator, bool >
     18#include <list>
     19#include <map>
     20#include <set>
    1821
    19 #define CandidateList std::list <class CandidateForTesselation *>
    20 #define CandidateMap std::map <class BoundaryLineSet *, class CandidateForTesselation *>
     22typedef std::map <int, int> IndexToIndex;
    2123
    22 #define LineMap std::multimap < int, class BoundaryLineSet * >
    23 #define LineSet std::set < class BoundaryLineSet * >
    24 #define LineList std::list < class BoundaryLineSet * >
    25 #define LinePair std::pair < int, class BoundaryLineSet * >
    26 #define LineTestPair std::pair < LineMap::iterator, bool >
     24typedef std::map < int, class BoundaryPointSet * > PointMap;
     25typedef std::set < class BoundaryPointSet * > PointSet;
     26typedef std::list < class BoundaryPointSet * > PointList;
     27typedef std::pair < int, class BoundaryPointSet * > PointPair;
     28typedef std::pair < PointMap::iterator, bool > PointTestPair;
    2729
    28 #define TriangleMap std::map < int, class BoundaryTriangleSet * >
    29 #define TriangleSet std::set < class BoundaryTriangleSet * >
    30 #define TriangleList std::list < class BoundaryTriangleSet * >
    31 #define TrianglePair std::pair < int, class BoundaryTriangleSet * >
    32 #define TriangleTestPair std::pair < TrianglePair::iterator, bool >
     30typedef std::list <class CandidateForTesselation *> CandidateList;
     31typedef std::map <class BoundaryLineSet *, class CandidateForTesselation *> CandidateMap;
    3332
    34 #define PolygonMap std::map < int, class BoundaryPolygonSet * >
    35 #define PolygonSet std::set < class BoundaryPolygonSet * >
    36 #define PolygonList std::list < class BoundaryPolygonSet * >
     33typedef std::multimap < int, class BoundaryLineSet * > LineMap;
     34typedef std::set < class BoundaryLineSet * > LineSet;
     35typedef std::list < class BoundaryLineSet * > LineList;
     36typedef std::pair < int, class BoundaryLineSet * > LinePair;
     37typedef std::pair < LineMap::iterator, bool > LineTestPair;
    3738
    38 #define DistanceToPointMap std::multimap <double, class BoundaryPointSet * >
    39 #define DistanceToPointPair std::pair <double, class BoundaryPointSet * >
     39typedef std::map < int, class BoundaryTriangleSet * > TriangleMap;
     40typedef std::set < class BoundaryTriangleSet * > TriangleSet;
     41typedef std::list < class BoundaryTriangleSet * > TriangleList;
     42typedef std::pair < int, class BoundaryTriangleSet * > TrianglePair;
     43typedef std::pair < TriangleMap::iterator, bool > TriangleTestPair;
    4044
    41 #define DistanceMultiMap std::multimap <double, std::pair < PointMap::iterator, PointMap::iterator> >
    42 #define DistanceMultiMapPair std::pair <double, std::pair < PointMap::iterator, PointMap::iterator> >
     45typedef std::map < int, class BoundaryPolygonSet * > PolygonMap;
     46typedef std::set < class BoundaryPolygonSet * > PolygonSet;
     47typedef std::list < class BoundaryPolygonSet * > PolygonList;
    4348
    44 #define TesselPointList std::list <TesselPoint *>
    45 #define TesselPointSet std::set <TesselPoint *>
     49typedef std::multimap <double, class BoundaryPointSet * > DistanceToPointMap;
     50typedef std::pair <double, class BoundaryPointSet * > DistanceToPointPair;
    4651
    47 #define ListOfTesselPointList std::list<std::list <TesselPoint *> *>
     52typedef std::multimap <double, std::pair < PointMap::iterator, PointMap::iterator> > DistanceMultiMap;
     53typedef std::pair <double, std::pair < PointMap::iterator, PointMap::iterator> > DistanceMultiMapPair;
     54
     55typedef std::list <TesselPoint *> TesselPointList;
     56typedef std::set <TesselPoint *> TesselPointSet;
     57
     58typedef std::list<std::list <TesselPoint *> *> ListOfTesselPointList;
    4859
    4960enum centers {Opt, OtherOpt};
    5061
    51 #define HULLEPSILON 1e-9 //!< TODO: Get rid of HULLEPSILON, points to numerical instabilities
    5262
    5363
Note: See TracChangeset for help on using the changeset viewer.