Changeset cc21cd for src/Tesselation/unittests/TesselationUnitTest.cpp
- Timestamp:
- Mar 27, 2012, 3:53:36 PM (13 years ago)
- 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, 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:
- 418b5e
- Parents:
- bdf6c8
- git-author:
- Frederik Heber <heber@…> (01/30/12 11:09:06)
- git-committer:
- Frederik Heber <heber@…> (03/27/12 15:53:36)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Tesselation/unittests/TesselationUnitTest.cpp
rbdf6c8 rcc21cd 29 29 #include "Helpers/defs.hpp" 30 30 #include "LinkedCell/PointCloudAdaptor.hpp" 31 #include "LinkedCell/linkedcell.hpp" 31 32 #include "Tesselation/BoundaryLineSet.hpp" 32 33 #include "Tesselation/BoundaryTriangleSet.hpp" … … 73 74 Corners.push_back(Walker); 74 75 75 // create linkedcell76 PointCloudAdaptor<TesselPointSTLList> cloud(&Corners, "TesselPointSTLList");77 LinkedList = new LinkedCell_deprecated(cloud, 2.*SPHERERADIUS);78 79 76 // create tesselation 80 77 TesselStruct = new Tesselation; … … 82 79 CPPUNIT_ASSERT_EQUAL( true, TesselStruct->LinesOnBoundary.empty() ); 83 80 CPPUNIT_ASSERT_EQUAL( true, TesselStruct->TrianglesOnBoundary.empty() ); 84 TesselStruct->FindStartingTriangle(SPHERERADIUS, LinkedList); 85 86 CandidateForTesselation *baseline = NULL; 87 BoundaryTriangleSet *T = NULL; 88 bool OneLoopWithoutSuccessFlag = true; 89 bool TesselationFailFlag = false; 90 while ((!TesselStruct->OpenLines.empty()) && (OneLoopWithoutSuccessFlag)) { 91 // 2a. fill all new OpenLines 92 for (CandidateMap::iterator Runner = TesselStruct->OpenLines.begin(); Runner != TesselStruct->OpenLines.end(); Runner++) { 93 baseline = Runner->second; 94 if (baseline->pointlist.empty()) { 95 T = (((baseline->BaseLine->triangles.begin()))->second); 96 TesselationFailFlag = TesselStruct->FindNextSuitableTriangle(*baseline, *T, SPHERERADIUS, LinkedList); //the line is there, so there is a triangle, but only one. 97 } 98 } 99 100 // 2b. search for smallest ShortestAngle among all candidates 101 double ShortestAngle = 4.*M_PI; 102 for (CandidateMap::iterator Runner = TesselStruct->OpenLines.begin(); Runner != TesselStruct->OpenLines.end(); Runner++) { 103 if (Runner->second->ShortestAngle < ShortestAngle) { 104 baseline = Runner->second; 105 ShortestAngle = baseline->ShortestAngle; 106 } 107 } 108 if ((ShortestAngle == 4.*M_PI) || (baseline->pointlist.empty())) 109 OneLoopWithoutSuccessFlag = false; 110 else { 111 TesselStruct->AddCandidatePolygon(*baseline, SPHERERADIUS, LinkedList); 112 } 113 } 81 PointCloudAdaptor<TesselPointSTLList> cloud(&Corners, "TesselPointSTLList"); 82 (*TesselStruct)(cloud, SPHERERADIUS); 114 83 }; 115 84 … … 117 86 void TesselationTest::tearDown() 118 87 { 119 delete(LinkedList);120 88 delete(TesselStruct); 121 89 for (TesselPointSTLList::iterator Runner = Corners.begin(); Runner != Corners.end(); Runner++)
Note:
See TracChangeset
for help on using the changeset viewer.