Changeset 244a84
- Timestamp:
- Jan 26, 2010, 12:52:31 PM (15 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:
- 04b6f9, 481601
- Parents:
- 315164
- Location:
- src
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
src/analysis_correlation.cpp
r315164 r244a84 308 308 } 309 309 outmap = new CorrelationToSurfaceMap; 310 double ShortestDistance = 0.; 311 BoundaryTriangleSet *ShortestTriangle = NULL; 310 312 for (MoleculeList::const_iterator MolWalker = molecules->ListOfMolecules.begin(); MolWalker != molecules->ListOfMolecules.end(); MolWalker++) 311 313 if ((*MolWalker)->ActiveFlag) { … … 321 323 periodicX.MatrixMultiplication(FullInverseMatrix); // x now in [0,1)^3 322 324 // go through every range in xyz and get distance 325 ShortestDistance = -1.; 323 326 for (n[0]=-ranges[0]; n[0] <= ranges[0]; n[0]++) 324 327 for (n[1]=-ranges[1]; n[1] <= ranges[1]; n[1]++) … … 327 330 checkX.AddVector(&periodicX); 328 331 checkX.MatrixMultiplication(FullMatrix); 329 triangle = Surface->FindClosestTriangleToVector(&checkX, LC ); 330 if (triangle != NULL) { 331 distance = DistanceToTrianglePlane(&checkX, triangle); 332 outmap->insert ( pair<double, pair<atom *, BoundaryTriangleSet*> >(distance, pair<atom *, BoundaryTriangleSet*> (Walker, triangle) ) ); 332 triangle = Surface->FindClosestTriangleToVector(&checkX, LC); 333 distance = Surface->GetDistanceSquaredToTriangle(checkX, triangle); 334 if ((ShortestDistance == -1.) || (distance < ShortestDistance)) { 335 ShortestDistance = distance; 336 ShortestTriangle = triangle; 333 337 } 334 } 338 } 339 // insert 340 ShortestDistance = sqrt(ShortestDistance); 341 outmap->insert ( pair<double, pair<atom *, BoundaryTriangleSet*> >(ShortestDistance, pair<atom *, BoundaryTriangleSet*> (Walker, ShortestTriangle) ) ); 342 //Log() << Verbose(1) << "INFO: Inserting " << Walker << " with distance " << ShortestDistance << " to " << *ShortestTriangle << "." << endl; 335 343 } 336 344 } … … 406 414 *file << "# BinStart\tTriangle" << endl; 407 415 for (CorrelationToSurfaceMap::const_iterator runner = map->begin(); runner != map->end(); ++runner) { 408 *file << runner->first << "\t" << *(runner->second. second) << endl;409 } 410 }; 411 416 *file << runner->first << "\t" << *(runner->second.first) << "\t" << *(runner->second.second) << endl; 417 } 418 }; 419 -
src/analysis_correlation.hpp
r315164 r244a84 53 53 double GetBin ( const double value, const double BinWidth, const double BinStart ); 54 54 void OutputCorrelation( ofstream * const file, const BinPairMap * const map ); 55 void OutputPairCorrelation( ofstream * const file, const BinPairMap * const map );56 void OutputCorrelationToPoint( ofstream * const file, const BinPairMap * const map );57 void OutputCorrelationToSurface( ofstream * const file, const BinPairMap * const map );55 void OutputPairCorrelation( ofstream * const file, const PairCorrelationMap * const map ); 56 void OutputCorrelationToPoint( ofstream * const file, const CorrelationToPointMap * const map ); 57 void OutputCorrelationToSurface( ofstream * const file, const CorrelationToSurfaceMap * const map ); 58 58 59 59 -
src/bondgraph.cpp
r315164 r244a84 11 11 #include "bondgraph.hpp" 12 12 #include "element.hpp" 13 #include "info.hpp" 13 14 #include "log.hpp" 14 15 #include "molecule.hpp" … … 42 43 bool BondGraph::LoadBondLengthTable(const string &filename) 43 44 { 45 Info FunctionInfo(__func__); 44 46 bool status = true; 45 47 MatrixContainer *TempContainer = NULL; … … 53 55 54 56 // parse in matrix 55 status = TempContainer->ParseMatrix(filename.c_str(), 0, 1, 0); 57 if (status = TempContainer->ParseMatrix(filename.c_str(), 0, 1, 0)) { 58 Log() << Verbose(1) << "Parsing bond length matrix successful." << endl; 59 } else { 60 eLog() << Verbose(1) << "Parsing bond length matrix failed." << endl; 61 } 56 62 57 63 // find greatest distance -
src/builder.cpp
r315164 r244a84 1551 1551 if (configuration.BG == NULL) { 1552 1552 configuration.BG = new BondGraph(configuration.GetIsAngstroem()); 1553 if (( BondGraphFileName.empty()) && (configuration.BG->LoadBondLengthTable(BondGraphFileName))) {1553 if ((!BondGraphFileName.empty()) && (configuration.BG->LoadBondLengthTable(BondGraphFileName))) { 1554 1554 Log() << Verbose(0) << "Bond length table loaded successfully." << endl; 1555 1555 } else { … … 1660 1660 Log() << Verbose(1) << "Dissecting molecular system into a set of disconnected subgraphs ... " << endl; 1661 1661 // @TODO rather do the dissection afterwards 1662 molecules->DissectMoleculeIntoConnectedSubgraphs( mol,&configuration);1662 molecules->DissectMoleculeIntoConnectedSubgraphs(periode, &configuration); 1663 1663 mol = NULL; 1664 1664 if (molecules->ListOfMolecules.size() != 0) { … … 1708 1708 int ranges[NDIM] = {1,1,1}; 1709 1709 CorrelationToSurfaceMap *surfacemap = PeriodicCorrelationToSurface( molecules, elemental, TesselStruct, LCList, ranges ); 1710 //OutputCorrelationToSurface(&output, surfacemap); 1710 1711 BinPairMap *binmap = BinData( surfacemap, 0.5, 0., 0. ); 1711 1712 OutputCorrelation ( &binoutput, binmap ); … … 1744 1745 Log() << Verbose(1) << "Filling Box with water molecules." << endl; 1745 1746 // construct water molecule 1746 molecule *filler = new molecule(periode); ;1747 molecule *filler = new molecule(periode); 1747 1748 molecule *Filling = NULL; 1748 // atom *second = NULL, *third = NULL; 1749 atom *second = NULL, *third = NULL; 1750 // first = new atom(); 1751 // first->type = periode->FindElement(5); 1752 // first->x.Zero(); 1753 // filler->AddAtom(first); 1749 1754 first = new atom(); 1750 first->type = periode->FindElement( 5);1751 first->x. Zero();1755 first->type = periode->FindElement(1); 1756 first->x.Init(0.441, -0.143, 0.); 1752 1757 filler->AddAtom(first); 1753 // first = new atom(); 1754 // first->type = periode->FindElement(1); 1755 // first->x.Init(0.441, -0.143, 0.); 1756 // filler->AddAtom(first); 1757 // second = new atom(); 1758 // second->type = periode->FindElement(1); 1759 // second->x.Init(-0.464, 1.137, 0.0); 1760 // filler->AddAtom(second); 1761 // third = new atom(); 1762 // third->type = periode->FindElement(8); 1763 // third->x.Init(-0.464, 0.177, 0.); 1764 // filler->AddAtom(third); 1765 // filler->AddBond(first, third, 1); 1766 // filler->AddBond(second, third, 1); 1758 second = new atom(); 1759 second->type = periode->FindElement(1); 1760 second->x.Init(-0.464, 1.137, 0.0); 1761 filler->AddAtom(second); 1762 third = new atom(); 1763 third->type = periode->FindElement(8); 1764 third->x.Init(-0.464, 0.177, 0.); 1765 filler->AddAtom(third); 1766 filler->AddBond(first, third, 1); 1767 filler->AddBond(second, third, 1); 1767 1768 // call routine 1768 1769 double distance[NDIM]; -
src/molecule.hpp
r315164 r244a84 323 323 void Enumerate(ofstream *out); 324 324 void Output(ofstream *out); 325 void DissectMoleculeIntoConnectedSubgraphs( molecule * const mol, config * const configuration);325 void DissectMoleculeIntoConnectedSubgraphs(const periodentafel * const periode, config * const configuration); 326 326 int CountAllAtoms() const; 327 327 -
src/moleculelist.cpp
r315164 r244a84 741 741 /** Dissects given \a *mol into connected subgraphs and inserts them as new molecules but with old atoms into \a this. 742 742 * \param *out output stream for debugging 743 * \param * mol molecule with atoms to dissect743 * \param *periode periodentafel 744 744 * \param *configuration config with BondGraph 745 745 */ 746 void MoleculeListClass::DissectMoleculeIntoConnectedSubgraphs(molecule * const mol, config * const configuration) 747 { 746 void MoleculeListClass::DissectMoleculeIntoConnectedSubgraphs(const periodentafel * const periode, config * const configuration) 747 { 748 molecule *mol = new molecule(periode); 749 atom *Walker = NULL; 750 atom *Advancer = NULL; 751 bond *Binder = NULL; 752 bond *Stepper = NULL; 753 // 0. gather all atoms into single molecule 754 for (MoleculeList::iterator MolRunner = ListOfMolecules.begin(); !ListOfMolecules.empty(); MolRunner = ListOfMolecules.begin()) { 755 // shift all atoms to new molecule 756 Advancer = (*MolRunner)->start->next; 757 while (Advancer != (*MolRunner)->end) { 758 Walker = Advancer; 759 Advancer = Advancer->next; 760 Log() << Verbose(3) << "Re-linking " << *Walker << "..." << endl; 761 unlink(Walker); 762 Walker->father = Walker; 763 mol->AddAtom(Walker); // counting starts at 1 764 } 765 // remove all bonds 766 Stepper = (*MolRunner)->first->next; 767 while (Stepper != (*MolRunner)->last) { 768 Binder = Stepper; 769 Stepper = Stepper->next; 770 delete(Binder); 771 } 772 // remove the molecule 773 delete(*MolRunner); 774 ListOfMolecules.erase(MolRunner); 775 } 776 748 777 // 1. dissect the molecule into connected subgraphs 749 778 configuration->BG->ConstructBondGraph(mol); … … 779 808 int *MolMap = Calloc<int>(mol->AtomCount, "config::Load() - *MolMap"); 780 809 MoleculeLeafClass *MolecularWalker = Subgraphs; 781 atom *Walker = NULL;810 Walker = NULL; 782 811 while (MolecularWalker->next != NULL) { 783 812 MolecularWalker = MolecularWalker->next; … … 809 838 } 810 839 // 4d. we don't need to redo bonds, as they are connected subgraphs and still maintain their ListOfBonds, but we have to remove them from first..last list 811 bond *Binder = mol->first;840 Binder = mol->first; 812 841 while (mol->first->next != mol->last) { 813 842 Binder = mol->first->next; -
src/parser.cpp
r315164 r244a84 158 158 159 159 input.open(name, ios::in); 160 //Log() << Verbose( 0) << "Opening " << name << " ... " << input << endl;160 //Log() << Verbose(1) << "Opening " << name << " ... " << input << endl; 161 161 if (input == NULL) { 162 162 eLog() << Verbose(1) << endl << "Unable to open " << name << ", is the directory correct?" << endl; … … 181 181 } 182 182 //Log() << Verbose(0) << line.str() << endl; 183 //Log() << Verbose( 0) << "ColumnCounter[" << MatrixNr << "]: " << ColumnCounter[MatrixNr] << "." << endl;183 //Log() << Verbose(1) << "ColumnCounter[" << MatrixNr << "]: " << ColumnCounter[MatrixNr] << "." << endl; 184 184 if (ColumnCounter[MatrixNr] == 0) { 185 185 eLog() << Verbose(0) << "ColumnCounter[" << MatrixNr << "]: " << ColumnCounter[MatrixNr] << " from file " << name << ", this is probably an error!" << endl; … … 197 197 } 198 198 } 199 //Log() << Verbose( 0) << "RowCounter[" << MatrixNr << "]: " << RowCounter[MatrixNr] << " from file " << name << "." << endl;199 //Log() << Verbose(1) << "RowCounter[" << MatrixNr << "]: " << RowCounter[MatrixNr] << " from file " << name << "." << endl; 200 200 if (RowCounter[MatrixNr] == 0) { 201 201 eLog() << Verbose(0) << "RowCounter[" << MatrixNr << "]: " << RowCounter[MatrixNr] << " from file " << name << ", this is probably an error!" << endl; … … 220 220 input.getline(filename, 1023); 221 221 stringstream lines(filename); 222 //Log() << Verbose( 0) << "Matrix at level " << j << ":";// << filename << endl;222 //Log() << Verbose(2) << "Matrix at level " << j << ":";// << filename << endl; 223 223 for(int k=skipcolumns;k--;) 224 224 lines >> filename; 225 225 for(int k=0;(k<ColumnCounter[MatrixNr]) && (!lines.eof());k++) { 226 226 lines >> Matrix[MatrixNr][j][k]; 227 //Log() << Verbose( 0) << " " << setprecision(2) << Matrix[MatrixNr][j][k];;227 //Log() << Verbose(1) << " " << setprecision(2) << Matrix[MatrixNr][j][k] << endl; 228 228 } 229 //Log() << Verbose(0) << endl;230 229 Matrix[MatrixNr][ RowCounter[MatrixNr] ] = Malloc<double>(ColumnCounter[MatrixNr], "MatrixContainer::ParseMatrix: *Matrix[RowCounter[MatrixNr]][]"); 231 230 for(int j=ColumnCounter[MatrixNr];j--;) -
src/tesselation.cpp
r315164 r244a84 939 939 TesselPoint::TesselPoint() 940 940 { 941 Info FunctionInfo(__func__);941 //Info FunctionInfo(__func__); 942 942 node = NULL; 943 943 nr = -1; … … 949 949 TesselPoint::~TesselPoint() 950 950 { 951 Info FunctionInfo(__func__);951 //Info FunctionInfo(__func__); 952 952 }; 953 953 … … 976 976 PointCloud::PointCloud() 977 977 { 978 Info FunctionInfo(__func__);978 //Info FunctionInfo(__func__); 979 979 }; 980 980 … … 983 983 PointCloud::~PointCloud() 984 984 { 985 Info FunctionInfo(__func__);985 //Info FunctionInfo(__func__); 986 986 }; 987 987 … … 1174 1174 * \param PointsOnBoundary set of boundary points defining the convex envelope of the cluster 1175 1175 */ 1176 void 1177 Tesselation::GuessStartingTriangle() 1176 void Tesselation::GuessStartingTriangle() 1178 1177 { 1179 1178 Info FunctionInfo(__func__); … … 3378 3377 * @param *LC LinkedCell structure 3379 3378 * 3380 * @return >0 if outside, ==0 if on surface, <0 if inside (Note that distance can be at most LinkedCell::RADIUS.)3381 */ 3382 double Tesselation::GetDistanceSquaredTo Surface(const Vector &Point, const LinkedCell* const LC) const3379 * @return >0 if outside, ==0 if on surface, <0 if inside 3380 */ 3381 double Tesselation::GetDistanceSquaredToTriangle(const Vector &Point, const BoundaryTriangleSet* const triangle) const 3383 3382 { 3384 3383 Info FunctionInfo(__func__); 3385 class BoundaryTriangleSet *result = FindClosestTriangleToVector(&Point, LC);3386 3384 Vector Center; 3387 3385 Vector helper; … … 3390 3388 double distance = 0.; 3391 3389 3392 if ( result== NULL) {// is boundary point or only point in point cloud?3393 Log() << Verbose(1) << Point << " is the only point in vicinity." << endl;3394 return LC->RADIUS;3390 if (triangle == NULL) {// is boundary point or only point in point cloud? 3391 Log() << Verbose(1) << "No triangle given!" << endl; 3392 return -1.; 3395 3393 } else { 3396 Log() << Verbose(1) << "INFO: Closest triangle found is " << * result << " with normal vector " << result->NormalVector << "." << endl;3397 } 3398 3399 result->GetCenter(&Center);3394 Log() << Verbose(1) << "INFO: Closest triangle found is " << *triangle << " with normal vector " << triangle->NormalVector << "." << endl; 3395 } 3396 3397 triangle->GetCenter(&Center); 3400 3398 Log() << Verbose(2) << "INFO: Central point of the triangle is " << Center << "." << endl; 3401 3399 DistanceToCenter.CopyVector(&Center); … … 3404 3402 3405 3403 // check whether we are on boundary 3406 if (fabs(DistanceToCenter.ScalarProduct(& result->NormalVector)) < MYEPSILON) {3404 if (fabs(DistanceToCenter.ScalarProduct(&triangle->NormalVector)) < MYEPSILON) { 3407 3405 // calculate whether inside of triangle 3408 3406 DistanceToCenter.CopyVector(&Point); 3409 3407 Center.CopyVector(&Point); 3410 Center.SubtractVector(& result->NormalVector); // points towards MolCenter3411 DistanceToCenter.AddVector(& result->NormalVector); // points outside3408 Center.SubtractVector(&triangle->NormalVector); // points towards MolCenter 3409 DistanceToCenter.AddVector(&triangle->NormalVector); // points outside 3412 3410 Log() << Verbose(1) << "INFO: Calling Intersection with " << Center << " and " << DistanceToCenter << "." << endl; 3413 if ( result->GetIntersectionInsideTriangle(&Center, &DistanceToCenter, &Intersection)) {3411 if (triangle->GetIntersectionInsideTriangle(&Center, &DistanceToCenter, &Intersection)) { 3414 3412 Log() << Verbose(1) << Point << " is inner point: sufficiently close to boundary, " << Intersection << "." << endl; 3415 3413 return 0.; … … 3420 3418 } else { 3421 3419 // calculate smallest distance 3422 distance = result->GetClosestPointInsideTriangle(&Point, &Intersection);3420 distance = triangle->GetClosestPointInsideTriangle(&Point, &Intersection); 3423 3421 Log() << Verbose(1) << "Closest point on triangle is " << Intersection << "." << endl; 3424 distance = Min(distance, (LC->RADIUS*LC->RADIUS));3425 3422 3426 3423 // then check direction to boundary 3427 if (DistanceToCenter.ScalarProduct(& result->NormalVector) > MYEPSILON) {3424 if (DistanceToCenter.ScalarProduct(&triangle->NormalVector) > MYEPSILON) { 3428 3425 Log() << Verbose(1) << Point << " is an inner point, " << distance << " below surface." << endl; 3429 3426 return -distance; … … 3433 3430 } 3434 3431 } 3432 }; 3433 3434 /** Calculates distance to a tesselated surface. 3435 * Combines \sa FindClosestTrianglesToVector() and \sa GetDistanceSquaredToTriangle(). 3436 * \param &Point point to calculate distance from 3437 * \param *LC needed for finding closest points fast 3438 * \return distance squared to closest point on surface 3439 */ 3440 double Tesselation::GetDistanceSquaredToSurface(const Vector &Point, const LinkedCell* const LC) const 3441 { 3442 BoundaryTriangleSet *triangle = FindClosestTriangleToVector(&Point, LC); 3443 const double distance = GetDistanceSquaredToTriangle(Point, triangle); 3444 return Min(distance, LC->RADIUS); 3435 3445 }; 3436 3446 … … 3695 3705 * @return list of the all points linked to the provided one 3696 3706 */ 3697 list< TesselPointList *>* Tesselation::GetPathsOfConnectedPoints(const TesselPoint* const Point) const3707 ListOfTesselPointList * Tesselation::GetPathsOfConnectedPoints(const TesselPoint* const Point) const 3698 3708 { 3699 3709 Info FunctionInfo(__func__); … … 3811 3821 * @return list of the closed paths 3812 3822 */ 3813 list<TesselPointList *>* Tesselation::GetClosedPathsOfConnectedPoints(const TesselPoint* const Point) const3823 ListOfTesselPointList * Tesselation::GetClosedPathsOfConnectedPoints(const TesselPoint* const Point) const 3814 3824 { 3815 3825 Info FunctionInfo(__func__); -
src/tesselation.hpp
r315164 r244a84 87 87 #define TesselPointList list <TesselPoint *> 88 88 #define TesselPointSet set <TesselPoint *> 89 90 #define ListOfTesselPointList list<list <TesselPoint *> *> 89 91 90 92 /********************************************** declarations *******************************/ … … 298 300 double PickFarthestofTwoBaselines(class BoundaryLineSet *Base); 299 301 class BoundaryPointSet *IsConvexRectangle(class BoundaryLineSet *Base); 300 map<int, int>* FindAllDegeneratedTriangles();301 map<int, int>* FindAllDegeneratedLines();302 IndexToIndex * FindAllDegeneratedTriangles(); 303 IndexToIndex * FindAllDegeneratedLines(); 302 304 void RemoveDegeneratedTriangles(); 303 305 void AddBoundaryPointByDegeneratedTriangle(class TesselPoint *point, LinkedCell *LC); 304 306 int CorrectAllDegeneratedPolygons(); 305 307 306 set<TesselPoint*>* GetAllConnectedPoints(const TesselPoint* const Point) const;307 set<BoundaryTriangleSet*> *GetAllTriangles(const BoundaryPointSet * const Point) const;308 list<list<TesselPoint*> *>* GetPathsOfConnectedPoints(const TesselPoint* const Point) const;309 list<list<TesselPoint*> *>* GetClosedPathsOfConnectedPoints(const TesselPoint* const Point) const;310 list<TesselPoint*> * GetCircleOfSetOfPoints(set<TesselPoint*>*SetOfNeighbours, const TesselPoint* const Point, const Vector * const Reference = NULL) const;311 list<TesselPoint*> * GetCircleOfConnectedTriangles(set<TesselPoint*>*SetOfNeighbours, const TesselPoint* const Point, const Vector * const Reference) const;312 class BoundaryPointSet * GetCommonEndpoint(const BoundaryLineSet * line1, const BoundaryLineSet * line2) const;313 list<BoundaryTriangleSet*> *FindTriangles(const TesselPoint* const Points[3]) const;314 list<BoundaryTriangleSet*> * FindClosestTrianglesToPoint(const Vector *x, const LinkedCell* LC) const;315 class BoundaryTriangleSet * FindClosestTriangleToPoint(const Vector *x, const LinkedCell* LC) const;308 TesselPointSet * GetAllConnectedPoints(const TesselPoint* const Point) const; 309 TriangleSet * GetAllTriangles(const BoundaryPointSet * const Point) const; 310 ListOfTesselPointList * GetPathsOfConnectedPoints(const TesselPoint* const Point) const; 311 ListOfTesselPointList * GetClosedPathsOfConnectedPoints(const TesselPoint* const Point) const; 312 TesselPointList * GetCircleOfSetOfPoints(TesselPointSet *SetOfNeighbours, const TesselPoint* const Point, const Vector * const Reference = NULL) const; 313 TesselPointList * GetCircleOfConnectedTriangles(TesselPointSet *SetOfNeighbours, const TesselPoint* const Point, const Vector * const Reference) const; 314 class BoundaryPointSet * GetCommonEndpoint(const BoundaryLineSet * line1, const BoundaryLineSet * line2) const; 315 TriangleList * FindTriangles(const TesselPoint* const Points[3]) const; 316 TriangleList * FindClosestTrianglesToVector(const Vector *x, const LinkedCell* LC) const; 317 BoundaryTriangleSet * FindClosestTriangleToVector(const Vector *x, const LinkedCell* LC) const; 316 318 bool IsInnerPoint(const Vector &Point, const LinkedCell* const LC) const; 319 double GetDistanceSquaredToTriangle(const Vector &Point, const BoundaryTriangleSet* const triangle) const; 317 320 double GetDistanceSquaredToSurface(const Vector &Point, const LinkedCell* const LC) const; 318 321 bool AddBoundaryPoint(TesselPoint * Walker, const int n); 319 322 DistanceToPointMap * FindClosestBoundaryPointsToVector(const Vector *x, const LinkedCell* LC) const; 320 323 BoundaryLineSet * FindClosestBoundaryLineToVector(const Vector *x, const LinkedCell* LC) const; 321 TriangleList * FindClosestTrianglesToVector(const Vector *x, const LinkedCell* LC) const;322 BoundaryTriangleSet* FindClosestTriangleToVector(const Vector *x, const LinkedCell* LC) const;323 324 324 325 // print for debugging
Note:
See TracChangeset
for help on using the changeset viewer.