Changeset 47d041 for src/Tesselation/tesselationhelpers.cpp
- Timestamp:
- Nov 3, 2011, 7:44:01 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:
- 41a467
- Parents:
- 50e4e5
- git-author:
- Frederik Heber <heber@…> (10/27/11 11:53:58)
- git-committer:
- Frederik Heber <heber@…> (11/03/11 19:44:01)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Tesselation/tesselationhelpers.cpp
r50e4e5 r47d041 76 76 77 77 if (fabs(m11) < MYEPSILON) 78 DoeLog(1) && (eLog()<< Verbose(1) << "three points are colinear." << endl);78 ELOG(1, "three points are colinear."); 79 79 80 80 center->at(0) = 0.5 * m12/ m11; … … 83 83 84 84 if (fabs(a.distance(*center) - RADIUS) > MYEPSILON) 85 DoeLog(1) && (eLog()<< Verbose(1) << "The given center is further way by " << fabs(a.distance(*center) - RADIUS) << " from a than RADIUS." << endl);85 ELOG(1, "The given center is further way by " << fabs(a.distance(*center) - RADIUS) << " from a than RADIUS."); 86 86 }; 87 87 … … 122 122 Center->Scale(1./(sin(2.*alpha) + sin(2.*beta) + sin(2.*gamma))); 123 123 (*NewUmkreismittelpunkt) = (*Center); 124 DoLog(1) && (Log() << Verbose(1) << "Center of new circumference is " << *NewUmkreismittelpunkt << ".\n");124 LOG(2, "INFO: Center of new circumference is " << *NewUmkreismittelpunkt << "."); 125 125 // Here we calculated center of circumscribing circle, using barycentric coordinates 126 DoLog(1) && (Log() << Verbose(1) << "Center of circumference is " << *Center << " in direction " << *Direction << ".\n");126 LOG(2, "INFO: Center of circumference is " << *Center << " in direction " << *Direction << "."); 127 127 128 128 TempNormal = a - b; … … 146 146 TempNormal.Normalize(); 147 147 Restradius = sqrt(RADIUS*RADIUS - Umkreisradius*Umkreisradius); 148 DoLog(1) && (Log() << Verbose(1) << "Height of center of circumference to center of sphere is " << Restradius << ".\n");148 LOG(2, "Height of center of circumference to center of sphere is " << Restradius << "."); 149 149 TempNormal.Scale(Restradius); 150 DoLog(1) && (Log() << Verbose(1) << "Shift vector to sphere of circumference is " << TempNormal << ".\n");150 LOG(2, "Shift vector to sphere of circumference is " << TempNormal << "."); 151 151 (*Center) += TempNormal; 152 DoLog(1) && (Log() << Verbose(1) << "Center of sphere of circumference is " << *Center << ".\n");152 LOG(2, "Center of sphere of circumference is " << *Center << "."); 153 153 GetSphere(&OtherCenter, a, b, c, RADIUS); 154 DoLog(1) && (Log() << Verbose(1) << "OtherCenter of sphere of circumference is " << OtherCenter << ".\n");154 LOG(2, "OtherCenter of sphere of circumference is " << OtherCenter << "."); 155 155 }; 156 156 … … 180 180 if (fabs(helper[0]+helper[1]+helper[2]) > MYEPSILON) 181 181 Center.Scale(1./(helper[0]+helper[1]+helper[2])); 182 L og() << Verbose(1) << "INFO: Center (2nd algo) is at " << Center << "." << endl;182 LOG(1, "INFO: Center (2nd algo) is at " << Center << "."); 183 183 }; 184 184 … … 208 208 // test whether new center is on the parameter circle's plane 209 209 if (fabs(helper.ScalarProduct(CirclePlaneNormal)) > HULLEPSILON) { 210 DoeLog(1) && (eLog()<< Verbose(1) << "Something's very wrong here: NewSphereCenter is not on the band's plane as desired by " <<fabs(helper.ScalarProduct(CirclePlaneNormal)) << "!" << endl);210 ELOG(1, "Something's very wrong here: NewSphereCenter is not on the band's plane as desired by " <<fabs(helper.ScalarProduct(CirclePlaneNormal)) << "!"); 211 211 helper.ProjectOntoPlane(CirclePlaneNormal); 212 212 } … … 214 214 // test whether the new center vector has length of CircleRadius 215 215 if (fabs(radius - CircleRadius) > HULLEPSILON) 216 DoeLog(1) && (eLog()<< Verbose(1) << "The projected center of the new sphere has radius " << radius << " instead of " << CircleRadius << "." << endl);216 ELOG(1, "The projected center of the new sphere has radius " << radius << " instead of " << CircleRadius << "."); 217 217 alpha = helper.Angle(RelativeOldSphereCenter); 218 218 // make the angle unique by checking the halfplanes/search direction 219 219 if (helper.ScalarProduct(SearchDirection) < -HULLEPSILON) // acos is not unique on [0, 2.*M_PI), hence extra check to decide between two half intervals 220 220 alpha = 2.*M_PI - alpha; 221 DoLog(1) && (Log() << Verbose(1) << "INFO: RelativeNewSphereCenter is " << helper << ", RelativeOldSphereCenter is " << RelativeOldSphereCenter << " and resulting angle is " << alpha << "." << endl);221 LOG(1, "INFO: RelativeNewSphereCenter is " << helper << ", RelativeOldSphereCenter is " << RelativeOldSphereCenter << " and resulting angle is " << alpha << "."); 222 222 radius = helper.distance(RelativeOldSphereCenter); 223 223 helper.ProjectOntoPlane(NormalVector); 224 224 // check whether new center is somewhat away or at least right over the current baseline to prevent intersecting triangles 225 225 if ((radius > HULLEPSILON) || (helper.Norm() < HULLEPSILON)) { 226 DoLog(1) && (Log() << Verbose(1) << "INFO: Distance between old and new center is " << radius << " and between new center and baseline center is " << helper.Norm() << "." << endl);226 LOG(1, "INFO: Distance between old and new center is " << radius << " and between new center and baseline center is " << helper.Norm() << "."); 227 227 return alpha; 228 228 } else { 229 DoLog(1) && (Log() << Verbose(1) << "INFO: NewSphereCenter " << RelativeNewSphereCenter << " is too close to RelativeOldSphereCenter" << RelativeOldSphereCenter << "." << endl);229 LOG(1, "INFO: NewSphereCenter " << RelativeNewSphereCenter << " is too close to RelativeOldSphereCenter" << RelativeOldSphereCenter << "."); 230 230 return 2.*M_PI; 231 231 } … … 262 262 } 263 263 264 DoLog(1) && (Log() << Verbose(1) << "INFO: " << point << " has angle " << phi << " with respect to reference " << reference << "." << endl);264 LOG(1, "INFO: " << point << " has angle " << phi << " with respect to reference " << reference << "."); 265 265 266 266 return phi; … … 329 329 for (int j=i+1; j<3; j++) { 330 330 if (nodes[i] == NULL) { 331 DoLog(1) && (Log() << Verbose(1) << "Node nr. " << i << " is not yet present." << endl);331 LOG(1, "Node nr. " << i << " is not yet present."); 332 332 result = true; 333 333 } else if (nodes[i]->lines.find(nodes[j]->node->getNr()) != nodes[i]->lines.end()) { // there already is a line … … 343 343 } 344 344 } else { // no line 345 DoLog(1) && (Log() << Verbose(1) << "The line between " << *nodes[i] << " and " << *nodes[j] << " is not yet present, hence no need for a degenerate triangle." << endl);345 LOG(1, "The line between " << *nodes[i] << " and " << *nodes[j] << " is not yet present, hence no need for a degenerate triangle."); 346 346 result = true; 347 347 } 348 348 } 349 349 if ((!result) && (counter > 1)) { 350 DoLog(1) && (Log() << Verbose(1) << "INFO: Degenerate triangle is ok, at least two, here " << counter << ", existing lines are used." << endl);350 LOG(1, "INFO: Degenerate triangle is ok, at least two, here " << counter << ", existing lines are used."); 351 351 result = true; 352 352 } … … 362 362 // Vector BaseLineVector, OrthogonalVector, helper; 363 363 // if (candidate1->BaseLine != candidate2->BaseLine) { // sanity check 364 // DoeLog(1) && (eLog()<< Verbose(1) << "sortCandidates was called for two different baselines: " << candidate1->BaseLine << " and " << candidate2->BaseLine << "." << endl);364 // ELOG(1, "sortCandidates was called for two different baselines: " << candidate1->BaseLine << " and " << candidate2->BaseLine << "."); 365 365 // //return false; 366 366 // exit(1); … … 393 393 // } 394 394 // 395 // L og() << Verbose(1) << *candidate1->point << " has angle " << phi << endl;396 // L og() << Verbose(1) << *candidate2->point << " has angle " << psi << endl;395 // LOG(1, *candidate1->point << " has angle " << phi); 396 // LOG(1, *candidate2->point << " has angle " << psi); 397 397 // 398 398 // // return comparison … … 421 421 for(int i=0;i<NDIM;i++) // store indices of this cell 422 422 N[i] = LC->n[i]; 423 DoLog(1) && (Log() << Verbose(1) << "INFO: Center cell is " << N[0] << ", " << N[1] << ", " << N[2] << " with No. " << LC->index << "." << endl);423 LOG(1, "INFO: Center cell is " << N[0] << ", " << N[1] << ", " << N[2] << " with No. " << LC->index << "."); 424 424 425 425 LC->GetNeighbourBounds(Nlower, Nupper); 426 //Log() << Verbose(1) << endl;427 426 for (LC->n[0] = Nlower[0]; LC->n[0] <= Nupper[0]; LC->n[0]++) 428 427 for (LC->n[1] = Nlower[1]; LC->n[1] <= Nupper[1]; LC->n[1]++) 429 428 for (LC->n[2] = Nlower[2]; LC->n[2] <= Nupper[2]; LC->n[2]++) { 430 429 const TesselPointSTLList *List = LC->GetCurrentCell(); 431 //L og() << Verbose(1) << "The current cell " << LC->n[0] << "," << LC->n[1] << "," << LC->n[2] << endl;430 //LOG(1, "The current cell " << LC->n[0] << "," << LC->n[1] << "," << LC->n[2]); 432 431 if (List != NULL) { 433 432 for (TesselPointSTLList::const_iterator Runner = List->begin(); Runner != List->end(); Runner++) { … … 441 440 distance = currentNorm; 442 441 closestPoint = (*Runner); 443 //L og() << Verbose(2) << "INFO: New Second Nearest Neighbour is " << *secondClosestPoint << "." << endl;442 //LOG(2, "INFO: New Second Nearest Neighbour is " << *secondClosestPoint << "."); 444 443 } 445 444 } 446 445 } else { 447 DoeLog(1) && (eLog() << Verbose(1) << "The current cell " << LC->n[0] << "," << LC->n[1] << "," << LC->n[2] << " is invalid!" << endl);446 ELOG(1, "The current cell " << LC->n[0] << "," << LC->n[1] << "," << LC->n[2] << " is invalid!"); 448 447 } 449 448 } … … 474 473 for(int i=0;i<NDIM;i++) // store indices of this cell 475 474 N[i] = LC->n[i]; 476 DoLog(1) && (Log() << Verbose(1) << "INFO: Center cell is " << N[0] << ", " << N[1] << ", " << N[2] << " with No. " << LC->index << "." << endl);475 LOG(1, "INFO: Center cell is " << N[0] << ", " << N[1] << ", " << N[2] << " with No. " << LC->index << "."); 477 476 478 477 LC->GetNeighbourBounds(Nlower, Nupper); 479 //Log() << Verbose(1) << endl;480 478 for (LC->n[0] = Nlower[0]; LC->n[0] <= Nupper[0]; LC->n[0]++) 481 479 for (LC->n[1] = Nlower[1]; LC->n[1] <= Nupper[1]; LC->n[1]++) 482 480 for (LC->n[2] = Nlower[2]; LC->n[2] <= Nupper[2]; LC->n[2]++) { 483 481 const TesselPointSTLList *List = LC->GetCurrentCell(); 484 //L og() << Verbose(1) << "The current cell " << LC->n[0] << "," << LC->n[1] << "," << LC->n[2] << endl;482 //LOG(1, "The current cell " << LC->n[0] << "," << LC->n[1] << "," << LC->n[2]); 485 483 if (List != NULL) { 486 484 for (TesselPointSTLList::const_iterator Runner = List->begin(); Runner != List->end(); Runner++) { … … 492 490 distance = currentNorm; 493 491 closestPoint = (*Runner); 494 //L og() << Verbose(1) << "INFO: New Nearest Neighbour is " << *closestPoint << "." << endl;492 //LOG(1, "INFO: New Nearest Neighbour is " << *closestPoint << "."); 495 493 } else if (currentNorm < secondDistance) { 496 494 secondDistance = currentNorm; 497 495 SecondPoint = (*Runner); 498 //L og() << Verbose(1) << "INFO: New Second Nearest Neighbour is " << *SecondPoint << "." << endl;496 //LOG(1, "INFO: New Second Nearest Neighbour is " << *SecondPoint << "."); 499 497 } 500 498 } 501 499 } else { 502 DoeLog(1) && (eLog() << Verbose(1) << "The current cell " << LC->n[0] << "," << LC->n[1] << "," << LC->n[2] << " is invalid!" << endl);500 ELOG(1, "The current cell " << LC->n[0] << "," << LC->n[1] << "," << LC->n[2] << " is invalid!"); 503 501 } 504 502 } 505 503 // output 506 504 if (closestPoint != NULL) { 507 DoLog(1) && (Log() << Verbose(1) << "Closest point is " << *closestPoint); 508 if (SecondPoint != NULL) 509 DoLog(0) && (Log() << Verbose(0) << " and second closest is " << *SecondPoint); 510 DoLog(0) && (Log() << Verbose(0) << "." << endl); 505 if (DoLog(1)) { 506 std::stringstream output; 507 output << "Closest point is " << *closestPoint; 508 if (SecondPoint != NULL) 509 output << " and second closest is " << *SecondPoint; 510 LOG(0, output.str() << "."); 511 } 511 512 } 512 513 return closestPoint; … … 528 529 Normal.VectorProduct(OtherBaseline); 529 530 Normal.Normalize(); 530 DoLog(1) && (Log() << Verbose(1) << "First direction is " << Baseline << ", second direction is " << OtherBaseline << ", normal of intersection plane is " << Normal << "." << endl);531 LOG(1, "First direction is " << Baseline << ", second direction is " << OtherBaseline << ", normal of intersection plane is " << Normal << "."); 531 532 532 533 // project one offset point of OtherBase onto this plane (and add plane offset vector) … … 542 543 *Intersection = line1.getIntersection(line2); 543 544 Normal = (*Intersection) - (Base->endpoints[0]->node->getPosition()); 544 DoLog(1) && (Log() << Verbose(1) << "Found closest point on " << *Base << " at " << *Intersection << ", factor in line is " << fabs(Normal.ScalarProduct(Baseline)/Baseline.NormSquared()) << "." << endl);545 LOG(1, "Found closest point on " << *Base << " at " << *Intersection << ", factor in line is " << fabs(Normal.ScalarProduct(Baseline)/Baseline.NormSquared()) << "."); 545 546 546 547 return Intersection; … … 577 578 Vector *center = cloud.GetCenter(); 578 579 if (vrmlfile != NULL) { 579 //Log() << Verbose(1) << "Writing Raster3D file ... ";580 LOG(1, "INFO: Writing Raster3D file ... "); 580 581 *vrmlfile << "#VRML V2.0 utf8" << endl; 581 582 *vrmlfile << "#Created by molecuilder" << endl; … … 603 604 } 604 605 } else { 605 DoeLog(1) && (eLog()<< Verbose(1) << "Given vrmlfile is " << vrmlfile << "." << endl);606 ELOG(1, "Given vrmlfile is " << vrmlfile << "."); 606 607 } 607 608 delete(center); … … 649 650 Vector *center = cloud.GetCenter(); 650 651 if (rasterfile != NULL) { 651 //Log() << Verbose(1) << "Writing Raster3D file ... ";652 LOG(1, "INFO: Writing Raster3D file ... "); 652 653 *rasterfile << "# Raster3D object description, created by MoleCuilder" << endl; 653 654 *rasterfile << "@header.r3d" << endl; … … 681 682 *rasterfile << "9\n# terminating special property\n"; 682 683 } else { 683 DoeLog(1) && (eLog()<< Verbose(1) << "Given rasterfile is " << rasterfile << "." << endl);684 ELOG(1, "Given rasterfile is " << rasterfile << "."); 684 685 } 685 686 IncludeSphereinRaster3D(rasterfile, Tess, cloud); … … 734 735 *tecplot << endl; 735 736 // print connectivity 736 DoLog(1) && (Log() << Verbose(1) << "The following triangles were created:" << endl);737 LOG(1, "The following triangles were created:"); 737 738 for (TriangleMap::const_iterator runner = TesselStruct->TrianglesOnBoundary.begin(); runner != TesselStruct->TrianglesOnBoundary.end(); runner++) { 738 DoLog(1) && (Log() << Verbose(1) << " " << runner->second->endpoints[0]->node->getName() << "<->" << runner->second->endpoints[1]->node->getName() << "<->" << runner->second->endpoints[2]->node->getName() << endl);739 LOG(1, " " << runner->second->endpoints[0]->node->getName() << "<->" << runner->second->endpoints[1]->node->getName() << "<->" << runner->second->endpoints[2]->node->getName()); 739 740 *tecplot << LookupList[runner->second->endpoints[0]->node->getNr()] << " " << LookupList[runner->second->endpoints[1]->node->getNr()] << " " << LookupList[runner->second->endpoints[2]->node->getNr()] << endl; 740 741 } … … 761 762 for (PointMap::const_iterator PointRunner = TesselStruct->PointsOnBoundary.begin(); PointRunner != TesselStruct->PointsOnBoundary.end(); PointRunner++) { 762 763 point = PointRunner->second; 763 DoLog(1) && (Log() << Verbose(1) << "INFO: Current point is " << *point << "." << endl);764 LOG(1, "INFO: Current point is " << *point << "."); 764 765 765 766 // calculate mean concavity over all connected line … … 767 768 for (LineMap::iterator LineRunner = point->lines.begin(); LineRunner != point->lines.end(); LineRunner++) { 768 769 line = LineRunner->second; 769 //L og() << Verbose(1) << "INFO: Current line of point " << *point << " is " << *line << "." << endl;770 //LOG(1, "INFO: Current line of point " << *point << " is " << *line << "."); 770 771 ConcavityPerLine -= line->CalculateConvexity(); 771 772 } … … 815 816 816 817 for (PointMap::const_iterator PointRunner = TesselStruct->PointsOnBoundary.begin(); PointRunner != TesselStruct->PointsOnBoundary.end(); PointRunner++) { 817 DoeLog(1) && (eLog() << Verbose(1) << "INFO: Current point is " << * PointRunner->second << "." << endl);818 ELOG(1, "INFO: Current point is " << * PointRunner->second << "."); 818 819 819 820 distance = 0.; … … 840 841 int counter = 0; 841 842 842 DoLog(1) && (Log() << Verbose(1) << "Check: List of Baselines with not two connected triangles:" << endl);843 LOG(1, "Check: List of Baselines with not two connected triangles:"); 843 844 for (testline = TesselStruct->LinesOnBoundary.begin(); testline != TesselStruct->LinesOnBoundary.end(); testline++) { 844 845 if (testline->second->triangles.size() != 2) { 845 DoLog(2) && (Log() << Verbose(2) << *testline->second << "\t" << testline->second->triangles.size() << endl);846 LOG(2, *testline->second << "\t" << testline->second->triangles.size()); 846 847 counter++; 847 848 } 848 849 } 849 850 if (counter == 0) { 850 DoLog(1) && (Log() << Verbose(1) << "None." << endl);851 LOG(1, "None."); 851 852 result = true; 852 853 } … … 863 864 // check number of endpoints in *P 864 865 if (P->endpoints.size() != 4) { 865 DoeLog(1) && (eLog()<< Verbose(1) << "CountTrianglePairContainingPolygon works only on polygons with 4 nodes!" << endl);866 ELOG(1, "CountTrianglePairContainingPolygon works only on polygons with 4 nodes!"); 866 867 return 0; 867 868 } … … 869 870 // check number of triangles in *T 870 871 if (T->size() < 2) { 871 DoeLog(1) && (eLog()<< Verbose(1) << "Not enough triangles to have pairs!" << endl);872 ELOG(1, "Not enough triangles to have pairs!"); 872 873 return 0; 873 874 } 874 875 875 DoLog(0) && (Log() << Verbose(0) << "Polygon is " << *P << endl);876 LOG(0, "Polygon is " << *P); 876 877 // create each pair, get the endpoints and check whether *P is contained. 877 878 int counter = 0; … … 889 890 const int size = PairTrianglenodes.endpoints.size(); 890 891 if (size == 4) { 891 DoLog(0) && (Log() << Verbose(0) << " Current pair of triangles: " << **Walker << "," << **PairWalker << " with " << size << " distinct endpoints:" << PairTrianglenodes << endl);892 LOG(0, " Current pair of triangles: " << **Walker << "," << **PairWalker << " with " << size << " distinct endpoints:" << PairTrianglenodes); 892 893 // now check 893 894 if (PairTrianglenodes.ContainsPresentTupel(P)) { 894 895 counter++; 895 DoLog(0) && (Log() << Verbose(0) << " ACCEPT: Matches with " << *P << endl);896 LOG(0, " ACCEPT: Matches with " << *P); 896 897 } else { 897 DoLog(0) && (Log() << Verbose(0) << " REJECT: No match with " << *P << endl);898 LOG(0, " REJECT: No match with " << *P); 898 899 } 899 900 } else { 900 DoLog(0) && (Log() << Verbose(0) << " REJECT: Less than four endpoints." << endl);901 LOG(0, " REJECT: Less than four endpoints."); 901 902 } 902 903 } … … 919 920 if (P2->ContainsBoundaryPoint((*Runner))) { 920 921 counter++; 921 DoLog(1) && (Log() << Verbose(1) << *(*Runner) << " of second polygon is found in the first one." << endl);922 LOG(1, *(*Runner) << " of second polygon is found in the first one."); 922 923 return true; 923 924 } … … 937 938 Tester = P1->endpoints.insert((*Runner)); 938 939 if (Tester.second) 939 DoLog(0) && (Log() << Verbose(0) << "Inserting endpoint " << *(*Runner) << " into first polygon." << endl);940 LOG(0, "Inserting endpoint " << *(*Runner) << " into first polygon."); 940 941 } 941 942 P2->endpoints.clear();
Note:
See TracChangeset
for help on using the changeset viewer.