Changeset 73b510


Ignore:
Timestamp:
Dec 17, 2009, 5:50:04 PM (16 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, 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:
1cf5df
Parents:
2130dd (diff), 125b3c (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'FixDegeneratedTesselation' into CorrectDegeneratedPolygons

Files:
23 edited

Legend:

Unmodified
Added
Removed
  • src/Makefile.am

    r2130dd r73b510  
    2525
    2626#EXTRA_DIST = ${molecuilder_DATA}
     27
     28FORCE:
     29$(srcdir)/.git-version: FORCE
     30        @if (test -d $(top_srcdir)/../.git && cd $(srcdir) && git describe HEAD) > .git-version-t 2>/dev/null \
     31          && ! diff .git-version-t $(srcdir)/.git-version >/dev/null 2>&1; then \
     32          mv -f .git-version-t $(srcdir)/.git-version; \
     33        else \
     34          rm -f .git-version-t; \
     35        fi
     36
     37EXTRA_DIST = $(srcdir)/.git-version
     38
     39$(srcdir)/version.c: $(srcdir)/.git-version
     40        echo "const char *ESPACKVersion = \"$(PACKAGE_NAME) -- git version: "`cat $(srcdir)/.git-version`"\";" > $@
     41
     42molecuilder_SOURCES += $(srcdir)/version.c
  • src/bondgraph.cpp

    r2130dd r73b510  
    3535/** Parses the bond lengths in a given file and puts them int a matrix form.
    3636 * Allocates \a MatrixContainer for BondGraph::BondLengthMatrix, using MatrixContainer::ParseMatrix(),
    37  * but only if parsing is successfull. Otherwise variable is left as NULL.
     37 * but only if parsing is successful. Otherwise variable is left as NULL.
    3838 * \param *out output stream for debugging
    3939 * \param filename file with bond lengths to parse
  • src/boundary.cpp

    r2130dd r73b510  
    10411041//  TesselStruct->RemoveDegeneratedTriangles();
    10421042
     1043  // check envelope for consistency
     1044  status = CheckListOfBaselines(TesselStruct);
     1045
     1046  // store before correction
     1047  StoreTrianglesinFile(mol, (const Tesselation *&)TesselStruct, filename, "");
     1048
    10431049  // correct degenerated polygons
    10441050  TesselStruct->CorrectAllDegeneratedPolygons();
  • src/boundary.hpp

    r2130dd r73b510  
    3636#define DEBUG 1
    3737#define DoSingleStepOutput 0
    38 #define SingleStepWidth 1
     38#define SingleStepWidth 10
    3939
    4040#define DistancePair pair < double, atom* >
  • src/builder.cpp

    r2130dd r73b510  
    6565#include "molecule.hpp"
    6666#include "periodentafel.hpp"
     67#include "version.h"
    6768
    6869/********************************************* Subsubmenu routine ************************************/
     
    21062107                if (volume != -1)
    21072108                  ExitFlag = 255;
    2108                   eLog() << Verbose(0) << "Not enough arguments given for suspension: -u <density>" << endl;
     2109                  eLog() << Verbose(0) << "Not enough or invalid arguments given for suspension: -u <density>" << endl;
    21092110                  performCriticalExit();
    21102111              } else {
     
    22222223  int j;
    22232224
     2225  cout << ESPACKVersion << endl;
     2226
    22242227  setVerbosity(0);
    22252228
  • src/config.cpp

    r2130dd r73b510  
    10741074  // don't do this here ...
    10751075  //MolList->DissectMoleculeIntoConnectedSubgraphs(mol,this);
    1076 
    1077   delete(mol);
     1076  //delete(mol);
     1077
    10781078  delete(FileBuffer);
    10791079};
  • src/molecule_graph.cpp

    r2130dd r73b510  
    11171117  bool status = true;
    11181118  if (ReferenceStack->IsEmpty()) {
    1119     eLog() << Verbose(0) << "ReferenceStack is empty!" << endl;
    1120     performCriticalExit();
     1119    Log() << Verbose(1) << "ReferenceStack is empty!" << endl;
    11211120    return false;
    11221121  }
  • src/moleculelist.cpp

    r2130dd r73b510  
    402402  input.open(line.c_str());
    403403  if (input == NULL) {
    404     eLog() << Verbose(0) << endl << "Unable to open " << line << ", is the directory correct?" << endl;
    405     performCriticalExit();
     404    Log() << Verbose(1) << endl << "Unable to open " << line << ", is the directory correct?" << endl;
    406405    return false;
    407406  }
  • src/parser.cpp

    r2130dd r73b510  
    158158  //Log() << Verbose(0) << "Opening " << name << " ... "  << input << endl;
    159159  if (input == NULL) {
    160     eLog() << Verbose(0) << endl << "Unable to open " << name << ", is the directory correct?" << endl;
    161     performCriticalExit();
     160    eLog() << Verbose(1) << endl << "Unable to open " << name << ", is the directory correct?" << endl;
     161    //performCriticalExit();
    162162    return false;
    163163  }
  • src/tesselation.cpp

    r2130dd r73b510  
    15871587  bool insertNewLine = true;
    15881588
    1589   if (a->lines.find(b->node->nr) != a->lines.end()) {
    1590     LineMap::iterator FindLine = a->lines.find(b->node->nr);
     1589  LineMap::iterator FindLine = a->lines.find(b->node->nr);
     1590  if (FindLine != a->lines.end()) {
     1591    Log() << Verbose(1) << "INFO: There is at least one line between " << *a << " and " << *b << ": " << *(FindLine->second) << "." << endl;
     1592
    15911593    pair<LineMap::iterator,LineMap::iterator> FindPair;
    15921594    FindPair = a->lines.equal_range(b->node->nr);
    1593     Log() << Verbose(1) << "INFO: There is at least one line between " << *a << " and " << *b << ": " << *(FindLine->second) << "." << endl;
    15941595
    15951596    for (FindLine = FindPair.first; FindLine != FindPair.second; FindLine++) {
     
    19151916  double maxCoordinate[NDIM];
    19161917  BoundaryLineSet BaseLine;
    1917   Vector Oben;
    19181918  Vector helper;
    19191919  Vector Chord;
    19201920  Vector SearchDirection;
    1921 
    1922   Oben.Zero();
     1921  Vector CircleCenter;  // center of the circle, i.e. of the band of sphere's centers
     1922  Vector CirclePlaneNormal; // normal vector defining the plane this circle lives in
     1923  Vector SphereCenter;
     1924  Vector NormalVector;
     1925
     1926  NormalVector.Zero();
    19231927
    19241928  for (i = 0; i < 3; i++) {
     
    19551959  BTS = NULL;
    19561960  for (int k=0;k<NDIM;k++) {
    1957     Oben.Zero();
    1958     Oben.x[k] = 1.;
     1961    NormalVector.Zero();
     1962    NormalVector.x[k] = 1.;
    19591963    BaseLine.endpoints[0] = new BoundaryPointSet(MaxPoint[k]);
    19601964    Log() << Verbose(0) << "Coordinates of start node at " << *BaseLine.endpoints[0]->node << "." << endl;
     
    19631967    ShortestAngle = 999999.; // This will contain the angle, which will be always positive (when looking for second point), when looking for third point this will be the quadrant.
    19641968
    1965     FindSecondPointForTesselation(BaseLine.endpoints[0]->node, Oben, Temporary, &ShortestAngle, RADIUS, LC); // we give same point as next candidate as its bonds are looked into in find_second_...
     1969    FindSecondPointForTesselation(BaseLine.endpoints[0]->node, NormalVector, Temporary, &ShortestAngle, RADIUS, LC); // we give same point as next candidate as its bonds are looked into in find_second_...
    19661970    if (Temporary == NULL)  // have we found a second point?
    19671971      continue;
    19681972    BaseLine.endpoints[1] = new BoundaryPointSet(Temporary);
    19691973
    1970     helper.CopyVector(BaseLine.endpoints[0]->node->node);
    1971     helper.SubtractVector(BaseLine.endpoints[1]->node->node);
    1972     helper.Normalize();
    1973     Oben.ProjectOntoPlane(&helper);
    1974     Oben.Normalize();
    1975     helper.VectorProduct(&Oben);
     1974    // construct center of circle
     1975    CircleCenter.CopyVector(BaseLine.endpoints[0]->node->node);
     1976    CircleCenter.AddVector(BaseLine.endpoints[1]->node->node);
     1977    CircleCenter.Scale(0.5);
     1978
     1979    // construct normal vector of circle
     1980    CirclePlaneNormal.CopyVector(BaseLine.endpoints[0]->node->node);
     1981    CirclePlaneNormal.SubtractVector(BaseLine.endpoints[1]->node->node);
     1982
     1983    double radius = CirclePlaneNormal.NormSquared();
     1984    double CircleRadius = sqrt(RADIUS*RADIUS - radius/4.);
     1985
     1986    NormalVector.ProjectOntoPlane(&CirclePlaneNormal);
     1987    NormalVector.Normalize();
    19761988    ShortestAngle = 2.*M_PI; // This will indicate the quadrant.
    19771989
    1978     Chord.CopyVector(BaseLine.endpoints[0]->node->node); // bring into calling function
    1979     Chord.SubtractVector(BaseLine.endpoints[1]->node->node);
    1980     double radius = Chord.ScalarProduct(&Chord);
    1981     double CircleRadius = sqrt(RADIUS*RADIUS - radius/4.);
    1982     helper.CopyVector(&Oben);
    1983     helper.Scale(CircleRadius);
    1984     // Now, oben and helper are two orthonormalized vectors in the plane defined by Chord (not normalized)
     1990    SphereCenter.CopyVector(&NormalVector);
     1991    SphereCenter.Scale(CircleRadius);
     1992    SphereCenter.AddVector(&CircleCenter);
     1993    // Now, NormalVector and SphereCenter are two orthonormalized vectors in the plane defined by CirclePlaneNormal (not normalized)
    19851994
    19861995    // look in one direction of baseline for initial candidate
    1987     SearchDirection.MakeNormalVector(&Chord, &Oben);  // whether we look "left" first or "right" first is not important ...
     1996    SearchDirection.MakeNormalVector(&CirclePlaneNormal, &NormalVector);  // whether we look "left" first or "right" first is not important ...
    19881997
    19891998    // adding point 1 and point 2 and add the line between them
     
    19932002    //Log() << Verbose(1) << "INFO: OldSphereCenter is at " << helper << ".\n";
    19942003    CandidateForTesselation OptCandidates(&BaseLine);
    1995     FindThirdPointForTesselation(Oben, SearchDirection, helper, OptCandidates, NULL, RADIUS, LC);
     2004    FindThirdPointForTesselation(NormalVector, SearchDirection, SphereCenter, OptCandidates, NULL, RADIUS, LC);
    19962005    Log() << Verbose(0) << "List of third Points is:" << endl;
    19972006    for (TesselPointList::iterator it = OptCandidates.pointlist.begin(); it != OptCandidates.pointlist.end(); it++) {
     
    21672176  Vector CircleCenter;
    21682177  Vector CirclePlaneNormal;
    2169   Vector OldSphereCenter;
     2178  Vector RelativeSphereCenter;
    21702179  Vector SearchDirection;
    21712180  Vector helper;
     
    21742183  double radius, CircleRadius;
    21752184
    2176   Log() << Verbose(0) << "Current baseline is " << *CandidateLine.BaseLine << " of triangle " << T << "." << endl;
    21772185  for (int i=0;i<3;i++)
    2178     if ((T.endpoints[i]->node != CandidateLine.BaseLine->endpoints[0]->node) && (T.endpoints[i]->node != CandidateLine.BaseLine->endpoints[1]->node))
     2186    if ((T.endpoints[i]->node != CandidateLine.BaseLine->endpoints[0]->node) && (T.endpoints[i]->node != CandidateLine.BaseLine->endpoints[1]->node)) {
    21792187      ThirdNode = T.endpoints[i]->node;
     2188      break;
     2189    }
     2190  Log() << Verbose(0) << "Current baseline is " << *CandidateLine.BaseLine << " with ThirdNode " << *ThirdNode << " of triangle " << T << "." << endl;
    21802191
    21812192  // construct center of circle
     
    21912202  radius = CirclePlaneNormal.ScalarProduct(&CirclePlaneNormal);
    21922203  if (radius/4. < RADIUS*RADIUS) {
     2204    // construct relative sphere center with now known CircleCenter
     2205    RelativeSphereCenter.CopyVector(&T.SphereCenter);
     2206    RelativeSphereCenter.SubtractVector(&CircleCenter);
     2207
    21932208    CircleRadius = RADIUS*RADIUS - radius/4.;
    21942209    CirclePlaneNormal.Normalize();
    21952210    Log() << Verbose(1) << "INFO: CircleCenter is at " << CircleCenter << ", CirclePlaneNormal is " << CirclePlaneNormal << " with circle radius " << sqrt(CircleRadius) << "." << endl;
    21962211
    2197     // construct old center
    2198     GetCenterofCircumcircle(&OldSphereCenter, *T.endpoints[0]->node->node, *T.endpoints[1]->node->node, *T.endpoints[2]->node->node);
    2199     helper.CopyVector(&T.NormalVector);  // normal vector ensures that this is correct center of the two possible ones
    2200     radius = CandidateLine.BaseLine->endpoints[0]->node->node->DistanceSquared(&OldSphereCenter);
    2201     helper.Scale(sqrt(RADIUS*RADIUS - radius));
    2202     OldSphereCenter.AddVector(&helper);
    2203     OldSphereCenter.SubtractVector(&CircleCenter);
    2204     Log() << Verbose(1) << "INFO: OldSphereCenter is at " << OldSphereCenter << "." << endl;
    2205 
    2206     // construct SearchDirection
    2207     SearchDirection.MakeNormalVector(&T.NormalVector, &CirclePlaneNormal);
    2208     helper.CopyVector(CandidateLine.BaseLine->endpoints[0]->node->node);
     2212    Log() << Verbose(1) << "INFO: OldSphereCenter is at " << T.SphereCenter << "." << endl;
     2213
     2214    // construct SearchDirection and an "outward pointer"
     2215    SearchDirection.MakeNormalVector(&RelativeSphereCenter, &CirclePlaneNormal);
     2216    helper.CopyVector(&CircleCenter);
    22092217    helper.SubtractVector(ThirdNode->node);
    22102218    if (helper.ScalarProduct(&SearchDirection) < -HULLEPSILON)// ohoh, SearchDirection points inwards!
    22112219      SearchDirection.Scale(-1.);
    2212     SearchDirection.ProjectOntoPlane(&OldSphereCenter);
    2213     SearchDirection.Normalize();
    22142220    Log() << Verbose(1) << "INFO: SearchDirection is " << SearchDirection << "." << endl;
    2215     if (fabs(OldSphereCenter.ScalarProduct(&SearchDirection)) > HULLEPSILON) {
     2221    if (fabs(RelativeSphereCenter.ScalarProduct(&SearchDirection)) > HULLEPSILON) {
    22162222      // rotated the wrong way!
    22172223      eLog() << Verbose(1) << "SearchDirection and RelativeOldSphereCenter are still not orthogonal!" << endl;
     
    22192225
    22202226    // add third point
    2221     FindThirdPointForTesselation(T.NormalVector, SearchDirection, OldSphereCenter, CandidateLine, ThirdNode, RADIUS, LC);
     2227    FindThirdPointForTesselation(T.NormalVector, SearchDirection, T.SphereCenter, CandidateLine, ThirdNode, RADIUS, LC);
    22222228
    22232229  } else {
     
    23502356    AddTesselationPoint((*Sprinter), 2);
    23512357
    2352     Center.CopyVector(&CandidateLine.OptCenter);
     2358
    23532359    // add the lines
    23542360    AddTesselationLine(TPS[0], TPS[1], 0);
     
    23592365    BTS = new class BoundaryTriangleSet(BLS, TrianglesOnBoundaryCount);
    23602366    AddTesselationTriangle();
    2361     Center.Scale(-1.);
     2367    BTS->GetCenter(&Center);
     2368    Center.SubtractVector(&CandidateLine.OptCenter);
     2369    BTS->SphereCenter.CopyVector(&CandidateLine.OptCenter);
    23622370    BTS->GetNormalVector(Center);
    23632371
     
    27662774  Vector NewNormalVector;   // normal vector of the Candidate's triangle
    27672775  Vector helper, OptCandidateCenter, OtherOptCandidateCenter;
     2776  Vector RelativeOldSphereCenter;
     2777  Vector NewPlaneCenter;
    27682778  double CircleRadius; // radius of this circle
    27692779  double radius;
     2780  double otherradius;
    27702781  double alpha, Otheralpha; // angles (i.e. parameter for the circle).
    27712782  int N[NDIM], Nlower[NDIM], Nupper[NDIM];
     
    27832794  CirclePlaneNormal.SubtractVector(CandidateLine.BaseLine->endpoints[1]->node->node);
    27842795
     2796  RelativeOldSphereCenter.CopyVector(&OldSphereCenter);
     2797  RelativeOldSphereCenter.SubtractVector(&CircleCenter);
     2798
    27852799  // calculate squared radius TesselPoint *ThirdNode,f circle
    2786   radius = CirclePlaneNormal.ScalarProduct(&CirclePlaneNormal);
    2787   if (radius/4. < RADIUS*RADIUS) {
    2788     CircleRadius = RADIUS*RADIUS - radius/4.;
     2800  radius = CirclePlaneNormal.NormSquared()/4.;
     2801  if (radius < RADIUS*RADIUS) {
     2802    CircleRadius = RADIUS*RADIUS - radius;
    27892803    CirclePlaneNormal.Normalize();
    2790     //Log() << Verbose(1) << "INFO: CircleCenter is at " << CircleCenter << ", CirclePlaneNormal is " << CirclePlaneNormal << " with circle radius " << sqrt(CircleRadius) << "." << endl;
     2804    Log() << Verbose(1) << "INFO: CircleCenter is at " << CircleCenter << ", CirclePlaneNormal is " << CirclePlaneNormal << " with circle radius " << sqrt(CircleRadius) << "." << endl;
    27912805
    27922806    // test whether old center is on the band's plane
    2793     if (fabs(OldSphereCenter.ScalarProduct(&CirclePlaneNormal)) > HULLEPSILON) {
    2794       eLog() << Verbose(1) << "Something's very wrong here: OldSphereCenter is not on the band's plane as desired by " << fabs(OldSphereCenter.ScalarProduct(&CirclePlaneNormal)) << "!" << endl;
    2795       OldSphereCenter.ProjectOntoPlane(&CirclePlaneNormal);
    2796     }
    2797     radius = OldSphereCenter.ScalarProduct(&OldSphereCenter);
     2807    if (fabs(RelativeOldSphereCenter.ScalarProduct(&CirclePlaneNormal)) > HULLEPSILON) {
     2808      eLog() << Verbose(1) << "Something's very wrong here: RelativeOldSphereCenter is not on the band's plane as desired by " << fabs(RelativeOldSphereCenter.ScalarProduct(&CirclePlaneNormal)) << "!" << endl;
     2809      RelativeOldSphereCenter.ProjectOntoPlane(&CirclePlaneNormal);
     2810    }
     2811    radius = RelativeOldSphereCenter.NormSquared();
    27982812    if (fabs(radius - CircleRadius) < HULLEPSILON) {
    2799       //Log() << Verbose(1) << "INFO: OldSphereCenter is at " << OldSphereCenter << "." << endl;
     2813      Log() << Verbose(1) << "INFO: RelativeOldSphereCenter is at " << RelativeOldSphereCenter << "." << endl;
    28002814
    28012815      // check SearchDirection
    2802       //Log() << Verbose(1) << "INFO: SearchDirection is " << SearchDirection << "." << endl;
    2803       if (fabs(OldSphereCenter.ScalarProduct(&SearchDirection)) > HULLEPSILON) {  // rotated the wrong way!
     2816      Log() << Verbose(1) << "INFO: SearchDirection is " << SearchDirection << "." << endl;
     2817      if (fabs(RelativeOldSphereCenter.ScalarProduct(&SearchDirection)) > HULLEPSILON) {  // rotated the wrong way!
    28042818        eLog() << Verbose(1) << "SearchDirection and RelativeOldSphereCenter are not orthogonal!" << endl;
    28052819      }
     
    28322846
    28332847                // check for three unique points
    2834                 Log() << Verbose(2) << "INFO: Current Candidate is " << *Candidate << " at " << *(Candidate->node) << "." << endl;
     2848                Log() << Verbose(2) << "INFO: Current Candidate is " << *Candidate << " for BaseLine " << *CandidateLine.BaseLine << " with OldSphereCenter " << OldSphereCenter << "." << endl;
    28352849                if ((Candidate != CandidateLine.BaseLine->endpoints[0]->node) && (Candidate != CandidateLine.BaseLine->endpoints[1]->node) ){
    28362850
    2837                   // construct both new centers
    2838                   GetCenterofCircumcircle(&NewSphereCenter, *CandidateLine.BaseLine->endpoints[0]->node->node, *CandidateLine.BaseLine->endpoints[1]->node->node, *Candidate->node);
    2839                   OtherNewSphereCenter.CopyVector(&NewSphereCenter);
    2840 
    2841                   if ((NewNormalVector.MakeNormalVector(CandidateLine.BaseLine->endpoints[0]->node->node, CandidateLine.BaseLine->endpoints[1]->node->node, Candidate->node))
    2842                   && (fabs(NewNormalVector.ScalarProduct(&NewNormalVector)) > HULLEPSILON)
     2851                  // find center on the plane
     2852                  GetCenterofCircumcircle(&NewPlaneCenter, *CandidateLine.BaseLine->endpoints[0]->node->node, *CandidateLine.BaseLine->endpoints[1]->node->node, *Candidate->node);
     2853                  Log() << Verbose(1) << "INFO: NewPlaneCenter is " << NewPlaneCenter << "." << endl;
     2854
     2855                  if (NewNormalVector.MakeNormalVector(CandidateLine.BaseLine->endpoints[0]->node->node, CandidateLine.BaseLine->endpoints[1]->node->node, Candidate->node)
     2856                  && (fabs(NewNormalVector.NormSquared()) > HULLEPSILON)
    28432857                  ) {
    2844                     helper.CopyVector(&NewNormalVector);
    28452858                    Log() << Verbose(1) << "INFO: NewNormalVector is " << NewNormalVector << "." << endl;
    2846                     radius = CandidateLine.BaseLine->endpoints[0]->node->node->DistanceSquared(&NewSphereCenter);
     2859                    radius = CandidateLine.BaseLine->endpoints[0]->node->node->DistanceSquared(&NewPlaneCenter);
     2860                    Log() << Verbose(1) << "INFO: CircleCenter is at " << CircleCenter << ", CirclePlaneNormal is " << CirclePlaneNormal << " with circle radius " << sqrt(CircleRadius) << "." << endl;
     2861                    Log() << Verbose(1) << "INFO: SearchDirection is " << SearchDirection << "." << endl;
     2862                    Log() << Verbose(1) << "INFO: Radius of CircumCenterCircle is " << radius << "." << endl;
    28472863                    if (radius < RADIUS*RADIUS) {
     2864                      otherradius = CandidateLine.BaseLine->endpoints[1]->node->node->DistanceSquared(&NewPlaneCenter);
     2865                      if (fabs(radius - otherradius) > HULLEPSILON) {
     2866                        eLog() << Verbose(1) << "Distance to center of circumcircle is not the same from each corner of the triangle: " << fabs(radius-otherradius) << endl;
     2867                      }
     2868                      // construct both new centers
     2869                      NewSphereCenter.CopyVector(&NewPlaneCenter);
     2870                      OtherNewSphereCenter.CopyVector(&NewPlaneCenter);
     2871                      helper.CopyVector(&NewNormalVector);
    28482872                      helper.Scale(sqrt(RADIUS*RADIUS - radius));
    2849                       Log() << Verbose(2) << "INFO: Distance of NewCircleCenter to NewSphereCenter is " << helper.Norm() << " with sphere radius " << RADIUS << "." << endl;
     2873                      Log() << Verbose(2) << "INFO: Distance of NewPlaneCenter " << NewPlaneCenter << " to either NewSphereCenter is " << helper.Norm() << " of vector " << helper << " with sphere radius " << RADIUS << "." << endl;
    28502874                      NewSphereCenter.AddVector(&helper);
    2851                       NewSphereCenter.SubtractVector(&CircleCenter);
    28522875                      Log() << Verbose(2) << "INFO: NewSphereCenter is at " << NewSphereCenter << "." << endl;
    2853 
    28542876                      // OtherNewSphereCenter is created by the same vector just in the other direction
    28552877                      helper.Scale(-1.);
    28562878                      OtherNewSphereCenter.AddVector(&helper);
    2857                       OtherNewSphereCenter.SubtractVector(&CircleCenter);
    28582879                      Log() << Verbose(2) << "INFO: OtherNewSphereCenter is at " << OtherNewSphereCenter << "." << endl;
    28592880
     
    28612882                      Otheralpha = GetPathLengthonCircumCircle(CircleCenter, CirclePlaneNormal, CircleRadius, OtherNewSphereCenter, OldSphereCenter, NormalVector, SearchDirection);
    28622883                      alpha = min(alpha, Otheralpha);
     2884
    28632885                      // if there is a better candidate, drop the current list and add the new candidate
    28642886                      // otherwise ignore the new candidate and keep the list
     
    28922914                        }
    28932915                      }
    2894 
    28952916                    } else {
    28962917                      Log() << Verbose(1) << "REJECT: NewSphereCenter " << NewSphereCenter << " for " << *Candidate << " is too far away: " << radius << "." << endl;
     
    41274148  Info FunctionInfo(__func__);
    41284149
    4129   /// 1. Find all simply degenerated triangles and sort into a list with each endpoint as key
    4130   map<int, int> * SimplyDegeneratedTriangles = FindAllDegeneratedTriangles();
    4131 
    4132   /// 2. Go through all lines not contained in degenerated triangles.
    4133   UniquePolygonSet ListofFours;
    4134   UniquePolygonSet TestedPolygons;
    4135   for (LineMap::const_iterator LineRunner = LinesOnBoundary.begin(); LineRunner != LinesOnBoundary.end(); LineRunner++) {
    4136     Log() << Verbose(1) << "Current Line is: " << *(LineRunner->second) << endl;
    4137 
    4138     BoundaryPolygonSet *Four = new BoundaryPolygonSet;
    4139 
    4140     /// 2a. Get all four endpoints of the two connected triangles.
    4141     Four->FillPolygonFromTrianglesOfLine((LineRunner->second));
    4142     if (Four->endpoints.size() != 4) {
    4143       Log() << Verbose(0) << "REJECT: There were no four endpoints:" << *Four << endl;
    4144       delete(Four);
    4145       continue;
    4146     }
    4147 
    4148     /// 2b. Get the triangles of all those endpoints
    4149     TriangleSet *T = Four->GetAllContainedTrianglesFromEndpoints();
    4150 
    4151     /// 2c1. Check whether all triangles have (besides sign) same normal vector)
    4152     TriangleSet::const_iterator Runner = T->begin();
    4153     Vector NormalVector;
    4154     NormalVector.CopyVector(&(*Runner)->NormalVector);
    4155     Runner++;
    4156     bool IsPlanar = true;
    4157     for (; Runner != T->end(); Runner++) {
    4158       if (fabs(fabs(NormalVector.ScalarProduct(&(*Runner)->NormalVector)) - 1.) > MYEPSILON)  // check whether all NormalVectors are parallel
    4159         IsPlanar = false;
    4160     }
    4161 
    4162     /// 2c2. check whether triangles are not already simply degenerated.
    4163     size_t DegeneratedCount = 0;
    4164     for (TriangleSet::const_iterator Runner = T->begin(); Runner != T->end(); Runner++) {
    4165       if (SimplyDegeneratedTriangles->find((*Runner)->Nr) != SimplyDegeneratedTriangles->end())
    4166         DegeneratedCount++;
    4167     }
    4168     Log() << Verbose(1) << "Found " << DegeneratedCount << " degenerated triangles." << endl;
    4169 
    4170     if (IsPlanar) {
    4171       if(DegeneratedCount == 0) {
    4172         /// 2c. Find all pairs of those triangles that contain the four endpoints
    4173         const int counter = CountTrianglePairContainingPolygon(Four, T);
    4174         Log() << Verbose(1) << "There are " << counter << " pairs for this polygon of four." << endl;
    4175         if (counter %3 == 0) {
    4176           /// 2d. Check the number of pairs, if greater 1, we have a degenerated polygon (mark down for later use)
    4177           pair < UniquePolygonSet::iterator, bool > Tester = ListofFours.insert(Four);
    4178           if (Tester.second) {
    4179             Log() << Verbose(0) << "ACCEPT: We have a degenerated polygon." << *Four << endl;
    4180           } else {
    4181             Log() << Verbose(0) << "REJECT: Degenerated polygon already present." << *Four << endl;
    4182             delete(Four);
     4150  /// 2. Go through all BoundaryPointSet's, check their triangles' NormalVector
     4151  map <int, int> *DegeneratedTriangles = FindAllDegeneratedTriangles();
     4152  set < BoundaryPointSet *> EndpointCandidateList;
     4153  pair < set < BoundaryPointSet *>::iterator, bool > InsertionTester;
     4154  pair < map < int, Vector *>::iterator, bool > TriangleInsertionTester;
     4155  for (PointMap::const_iterator Runner = PointsOnBoundary.begin(); Runner != PointsOnBoundary.end(); Runner++) {
     4156    Log() << Verbose(0) << "Current point is " << *Runner->second << "." << endl;
     4157    map < int, Vector *> TriangleVectors;
     4158    // gather all NormalVectors
     4159    Log() << Verbose(1) << "Gathering triangles ..." << endl;
     4160    for (LineMap::const_iterator LineRunner = (Runner->second)->lines.begin(); LineRunner != (Runner->second)->lines.end(); LineRunner++)
     4161      for (TriangleMap::const_iterator TriangleRunner = (LineRunner->second)->triangles.begin(); TriangleRunner != (LineRunner->second)->triangles.end(); TriangleRunner++) {
     4162        if (DegeneratedTriangles->find(TriangleRunner->second->Nr) == DegeneratedTriangles->end()) {
     4163          TriangleInsertionTester = TriangleVectors.insert( pair< int, Vector *> ((TriangleRunner->second)->Nr, &((TriangleRunner->second)->NormalVector)) );
     4164          if (TriangleInsertionTester.second)
     4165            Log() << Verbose(1) << " Adding triangle " << *(TriangleRunner->second) << " to triangles to check-list." << endl;
     4166        } else {
     4167          Log() << Verbose(1) << " NOT adding triangle " << *(TriangleRunner->second) << " as it's a simply degenerated one." << endl;
     4168        }
     4169      }
     4170    // check whether there are two that are parallel
     4171    Log() << Verbose(1) << "Finding two parallel triangles ..." << endl;
     4172    for (map < int, Vector *>::iterator VectorWalker = TriangleVectors.begin(); VectorWalker != TriangleVectors.end(); VectorWalker++)
     4173      for (map < int, Vector *>::iterator VectorRunner = VectorWalker; VectorRunner != TriangleVectors.end(); VectorRunner++)
     4174        if (VectorWalker != VectorRunner) { // skip equals
     4175          const double SCP = VectorWalker->second->ScalarProduct(VectorRunner->second);  // ScalarProduct should result in -1. for degenerated triangles
     4176          Log() << Verbose(1) << "Checking " << *VectorWalker->second<< " against " << *VectorRunner->second << ": " << SCP << endl;
     4177          if (fabs(SCP + 1.) < ParallelEpsilon) {
     4178            InsertionTester = EndpointCandidateList.insert((Runner->second));
     4179            if (InsertionTester.second)
     4180              Log() << Verbose(0) << " Adding " << *Runner->second << " to endpoint candidate list." << endl;
     4181            // and break out of both loops
     4182            VectorWalker = TriangleVectors.end();
     4183            VectorRunner = TriangleVectors.end();
     4184            break;
    41834185          }
     4186        }
     4187  }
     4188
     4189  /// 3. Find connected endpoint candidates and put them into a polygon
     4190  UniquePolygonSet ListofDegeneratedPolygons;
     4191  BoundaryPointSet *Walker = NULL;
     4192  BoundaryPointSet *OtherWalker = NULL;
     4193  BoundaryPolygonSet *Current = NULL;
     4194  stack <BoundaryPointSet*> ToCheckConnecteds;
     4195  while (!EndpointCandidateList.empty()) {
     4196    Walker = *(EndpointCandidateList.begin());
     4197    if (Current == NULL) {  // create a new polygon with current candidate
     4198      Log() << Verbose(0) << "Starting new polygon set at point " << *Walker << endl;
     4199      Current = new BoundaryPolygonSet;
     4200      Current->endpoints.insert(Walker);
     4201      EndpointCandidateList.erase(Walker);
     4202      ToCheckConnecteds.push(Walker);
     4203    }
     4204
     4205    // go through to-check stack
     4206    while (!ToCheckConnecteds.empty()) {
     4207      Walker = ToCheckConnecteds.top(); // fetch ...
     4208      ToCheckConnecteds.pop(); // ... and remove
     4209      for (LineMap::const_iterator LineWalker = Walker->lines.begin(); LineWalker != Walker->lines.end(); LineWalker++) {
     4210        OtherWalker = (LineWalker->second)->GetOtherEndpoint(Walker);
     4211        Log() << Verbose(1) << "Checking " << *OtherWalker << endl;
     4212        set < BoundaryPointSet *>::iterator Finder = EndpointCandidateList.find(OtherWalker);
     4213        if (Finder != EndpointCandidateList.end()) {  // found a connected partner
     4214          Log() << Verbose(1) << " Adding to polygon." << endl;
     4215          Current->endpoints.insert(OtherWalker);
     4216          EndpointCandidateList.erase(Finder);  // remove from candidates
     4217          ToCheckConnecteds.push(OtherWalker);  // but check its partners too
    41844218        } else {
    4185           Log() << Verbose(0) << "REJECT: Seems to be the edge line of a degenerated polygon only." << *Four << endl;
    4186           delete(Four);
     4219          Log() << Verbose(1) << " is not connected to " << *Walker << endl;
    41874220        }
    4188       } else {
    4189         Log() << Verbose(0) << "REJECT: This polygon contains some simply degenerated triangles." << endl;
    4190         delete(Four);
    41914221      }
    4192     } else {
    4193       Log() << Verbose(0) << "REJECT: This polygon does not lay on a plane." << endl;
    4194       delete(Four);
    4195     }
    4196 
    4197     delete(T);
    4198   }
    4199 
    4200   /// 3. Combine all edge-connected degenerated polygons
    4201   {
    4202     UniquePolygonSet::iterator PolygonWalker;  // is the inner iterator
    4203     UniquePolygonSet::iterator PolygonSprinter; // is the inner advanced iterator
    4204     for (UniquePolygonSet::iterator PolygonRunner = ListofFours.begin(); PolygonRunner != ListofFours.end(); PolygonRunner++) {
    4205       const BoundaryPolygonSet *P1 = *PolygonRunner;
    4206       Log() << Verbose(1) << "Current Polygon is : " << *P1 << endl;
    4207       PolygonWalker = PolygonRunner;
    4208       PolygonWalker++;
    4209       PolygonSprinter = PolygonWalker;
    4210       while (PolygonWalker != ListofFours.end()) {
    4211         BoundaryPolygonSet *P2 = *PolygonWalker;
    4212         Log() << Verbose(1) << "Current Other Polygon is : " << *P2 << endl;
    4213         PolygonSprinter++;
    4214         Log() << Verbose(1) << "Are " << *P1 << " and " << *P2 << " edge-connected?" << endl;
    4215         if (ArePolygonsEdgeConnected((*PolygonRunner), (P2))) { // if connected
    4216           Log() << Verbose(0) << "Yes!" << endl;
    4217           CombinePolygons((*PolygonRunner), (P2)); // combined and ...
    4218           ListofFours.erase(PolygonWalker); // ... remove from list
    4219           Log() << Verbose(1) << "  New current Polygon is : " << *P1 << endl;
    4220         } else {
    4221           Log() << Verbose(0) << "No." << endl;
    4222         }
    4223         PolygonWalker = PolygonSprinter;
    4224       }
    4225     }
    4226   }
    4227 
    4228   Log() << Verbose(0) << "The following degenerated polygons have been found: " << endl;
    4229   for (UniquePolygonSet::iterator PolygonRunner = ListofFours.begin(); PolygonRunner != ListofFours.end(); PolygonRunner++)
     4222    }
     4223
     4224    Log() << Verbose(0) << "Final polygon is " << *Current << endl;
     4225    ListofDegeneratedPolygons.insert(Current);
     4226    Current = NULL;
     4227  }
     4228
     4229  const int counter = ListofDegeneratedPolygons.size();
     4230
     4231  Log() << Verbose(0) << "The following " << counter << " degenerated polygons have been found: " << endl;
     4232  for (UniquePolygonSet::iterator PolygonRunner = ListofDegeneratedPolygons.begin(); PolygonRunner != ListofDegeneratedPolygons.end(); PolygonRunner++)
    42304233    Log() << Verbose(0) << " " << **PolygonRunner << endl;
    42314234
    42324235  /// 4. Go through all these degenerated polygons
    4233   for (UniquePolygonSet::iterator PolygonRunner = ListofFours.begin(); PolygonRunner != ListofFours.end(); PolygonRunner++) {
     4236  for (UniquePolygonSet::iterator PolygonRunner = ListofDegeneratedPolygons.begin(); PolygonRunner != ListofDegeneratedPolygons.end(); PolygonRunner++) {
    42344237    stack <int> TriangleNrs;
    42354238    Vector NormalVector;
    42364239    /// 4a. Gather all triangles of this polygon
    42374240    TriangleSet *T = (*PolygonRunner)->GetAllContainedTrianglesFromEndpoints();
     4241
     4242    // check whether number is bigger than 2, otherwise it's just a simply degenerated one and nothing to do.
     4243    if (T->size() == 2) {
     4244      Log() << Verbose(1) << " Skipping degenerated polygon, is just a (already simply degenerated) triangle." << endl;
     4245      delete(T);
     4246      continue;
     4247    }
     4248
     4249    // check whether number is even
     4250    // If this case occurs, we have to think about it!
     4251    // The Problem is probably due to two degenerated polygons being connected by a bridging, non-degenerated polygon, as somehow one node has
     4252    // connections to either polygon ...
     4253    if (T->size() % 2 != 0) {
     4254      eLog() << Verbose(0) << " degenerated polygon contains an odd number of triangles, probably contains bridging non-degenerated ones, too!" << endl;
     4255      performCriticalExit();
     4256    }
    42384257
    42394258    TriangleSet::iterator TriangleWalker = T->begin();  // is the inner iterator
     
    42614280    TriangleWalker = T->begin();
    42624281    while (TriangleWalker != T->end()) {  // go through all front triangles
    4263       Log() << Verbose(1) << " Re-creating triangle " << **TriangleWalker << " with NormalVector " << BTS->NormalVector << endl;
     4282      Log() << Verbose(1) << " Re-creating triangle " << **TriangleWalker << " with NormalVector " << (*TriangleWalker)->NormalVector << endl;
    42644283      for (int i = 0; i < 3; i++)
    42654284        AddTesselationPoint((*TriangleWalker)->endpoints[i]->node, i);
     
    42674286      AddTesselationLine(TPS[0], TPS[2], 1);
    42684287      AddTesselationLine(TPS[1], TPS[2], 2);
     4288      if (TriangleNrs.empty())
     4289        eLog() << Verbose(0) << "No more free triangle numbers!" << endl;
    42694290      BTS = new BoundaryTriangleSet(BLS, TriangleNrs.top()); // copy triangle ...
    42704291      AddTesselationTriangle(); // ... and add
     
    42724293      BTS->NormalVector.CopyVector(&(*TriangleWalker)->NormalVector);
    42734294      BTS->NormalVector.Scale(-1.);
    4274       /// 4d. Add all degenerated triangles to the list of simply degenerated triangles
    4275       SimplyDegeneratedTriangles->insert(pair <int, int> ((*TriangleWalker)->Nr, BTS->Nr) );
    4276       SimplyDegeneratedTriangles->insert(pair <int, int> (BTS->Nr, (*TriangleWalker)->Nr) );
    42774295      TriangleWalker++;
    42784296    }
     
    42834301  }
    42844302
     4303  map<int, int> * SimplyDegeneratedTriangles = FindAllDegeneratedTriangles();
    42854304  Log() << Verbose(0) << "Final list of simply degenerated triangles found, containing " << SimplyDegeneratedTriangles->size() << " triangles:" << endl;
    42864305  map<int,int>::iterator it;
    42874306  for (it = SimplyDegeneratedTriangles->begin(); it != SimplyDegeneratedTriangles->end(); it++)
    42884307      Log() << Verbose(0) << (*it).first << " => " << (*it).second << endl;
     4308  delete(SimplyDegeneratedTriangles);
    42894309
    42904310  /// 5. exit
    42914311  UniquePolygonSet::iterator PolygonRunner;
    4292   while (!ListofFours.empty()) {
    4293     PolygonRunner = ListofFours.begin();
     4312  while (!ListofDegeneratedPolygons.empty()) {
     4313    PolygonRunner = ListofDegeneratedPolygons.begin();
    42944314    delete(*PolygonRunner);
    4295     ListofFours.erase(PolygonRunner);
    4296   }
    4297 
    4298   const int counter = SimplyDegeneratedTriangles->size();
    4299   delete(SimplyDegeneratedTriangles);
     4315    ListofDegeneratedPolygons.erase(PolygonRunner);
     4316  }
     4317
    43004318  return counter;
    43014319};
  • src/tesselation.hpp

    r2130dd r73b510  
    4747#define Raster3DSuffix ".r3d"
    4848#define VRMLSUffix ".wrl"
     49
     50#define ParallelEpsilon 1e-3
    4951
    5052// ======================================================= some template functions =========================================
     
    156158    class BoundaryLineSet *lines[3];
    157159    Vector NormalVector;
     160    Vector SphereCenter;
    158161    int Nr;
    159162};
  • src/tesselationhelpers.cpp

    r2130dd r73b510  
    226226  Vector helper;
    227227  double radius, alpha;
    228 
    229   helper.CopyVector(&NewSphereCenter);
     228  Vector RelativeOldSphereCenter;
     229  Vector RelativeNewSphereCenter;
     230
     231  RelativeOldSphereCenter.CopyVector(&OldSphereCenter);
     232  RelativeOldSphereCenter.SubtractVector(&CircleCenter);
     233  RelativeNewSphereCenter.CopyVector(&NewSphereCenter);
     234  RelativeNewSphereCenter.SubtractVector(&CircleCenter);
     235  helper.CopyVector(&RelativeNewSphereCenter);
    230236  // test whether new center is on the parameter circle's plane
    231237  if (fabs(helper.ScalarProduct(&CirclePlaneNormal)) > HULLEPSILON) {
     
    233239    helper.ProjectOntoPlane(&CirclePlaneNormal);
    234240  }
    235   radius = helper.ScalarProduct(&helper);
     241  radius = helper.NormSquared();
    236242  // test whether the new center vector has length of CircleRadius
    237243  if (fabs(radius - CircleRadius) > HULLEPSILON)
    238244    eLog() << Verbose(1) << "The projected center of the new sphere has radius " << radius << " instead of " << CircleRadius << "." << endl;
    239   alpha = helper.Angle(&OldSphereCenter);
     245  alpha = helper.Angle(&RelativeOldSphereCenter);
    240246  // make the angle unique by checking the halfplanes/search direction
    241247  if (helper.ScalarProduct(&SearchDirection) < -HULLEPSILON)  // acos is not unique on [0, 2.*M_PI), hence extra check to decide between two half intervals
    242248    alpha = 2.*M_PI - alpha;
    243   //Log() << Verbose(1) << "INFO: RelativeNewSphereCenter is " << helper << ", RelativeOldSphereCenter is " << OldSphereCenter << " and resulting angle is " << alpha << "." << endl;
    244   radius = helper.Distance(&OldSphereCenter);
     249  Log() << Verbose(1) << "INFO: RelativeNewSphereCenter is " << helper << ", RelativeOldSphereCenter is " << RelativeOldSphereCenter << " and resulting angle is " << alpha << "." << endl;
     250  radius = helper.Distance(&RelativeOldSphereCenter);
    245251  helper.ProjectOntoPlane(&NormalVector);
    246252  // check whether new center is somewhat away or at least right over the current baseline to prevent intersecting triangles
    247253  if ((radius > HULLEPSILON) || (helper.Norm() < HULLEPSILON)) {
    248     //Log() << Verbose(1) << "INFO: Distance between old and new center is " << radius << " and between new center and baseline center is " << helper.Norm() << "." << endl;
     254    Log() << Verbose(1) << "INFO: Distance between old and new center is " << radius << " and between new center and baseline center is " << helper.Norm() << "." << endl;
    249255    return alpha;
    250256  } else {
    251     //Log() << Verbose(1) << "INFO: NewSphereCenter " << helper << " is too close to OldSphereCenter" << OldSphereCenter << "." << endl;
     257    Log() << Verbose(1) << "INFO: NewSphereCenter " << RelativeNewSphereCenter << " is too close to RelativeOldSphereCenter" << RelativeOldSphereCenter << "." << endl;
    252258    return 2.*M_PI;
    253259  }
  • src/vector.cpp

    r2130dd r73b510  
    480480  else
    481481    return false;
     482};
     483
     484/** Checks whether vector is normal to \a *normal.
     485 * @return true - vector is normalized, false - vector is not
     486 */
     487bool Vector::IsEqualTo(const Vector * const a) const
     488{
     489  bool status = true;
     490  for (int i=0;i<NDIM;i++) {
     491    if (fabs(x[i] - a->x[i]) > MYEPSILON)
     492      status = false;
     493  }
     494  return status;
    482495};
    483496
  • src/vector.hpp

    r2130dd r73b510  
    4242  bool IsOne() const;
    4343  bool IsNormalTo(const Vector * const normal) const;
     44  bool IsEqualTo(const Vector * const a) const;
    4445
    4546  void AddVector(const Vector * const y);
  • tests/regression/Tesselation/1/post/NonConvexEnvelope.dat

    r2130dd r73b510  
    11TITLE = "3D CONVEX SHELL"
    22VARIABLES = "X" "Y" "Z" "U"
    3 ZONE T="0- H08_ H09_ H11", N=8, E=12, DATAPACKING=POINT, ZONETYPE=FETRIANGLE
     3ZONE T="test", N=8, E=12, DATAPACKING=POINT, ZONETYPE=FETRIANGLE
    449.78209 2.64589 2.64589 0
    559.78209 2.64589 4.42589 0
     
    13131 3 4
    14141 4 7
     154 6 7
    15163 4 5
    16 1 7 8
    17 1 2 8
    18 4 6 7
     174 5 6
    19182 3 5
    20 4 5 6
    21 6 7 8
    22 1 2 3
    23192 5 8
    24205 6 8
     216 7 8
     221 2 7
     232 7 8
     241 2 3
  • tests/regression/Tesselation/1/post/NonConvexEnvelope.r3d

    r2130dd r73b510  
    3434  1.37419 -0.89433 -0.89        0.12489 1.24767 -0.89   -1.12431 -0.89433 -0.89         1. 0. 0.
    35351
    36   2.26414 0.364321 -4.44089e-16         0.12489 1.24767 -0.89   0.12489 1.24767 0.89    1. 0. 0.
    37 1
    38   1.37419 -0.89433 -0.89        -1.12431 -0.89433 -0.89         -1.12431 -0.89433 0.89  1. 0. 0.
    39 1
    40   1.37419 -0.89433 -0.89        1.37419 -0.89433 0.89   -1.12431 -0.89433 0.89  1. 0. 0.
    41 1
    4236  0.12489 1.24767 -0.89         -2.01426 0.364321 -4.44089e-16  -1.12431 -0.89433 -0.89         1. 0. 0.
    43371
    44   1.37419 -0.89433 0.89         2.26414 0.364321 -4.44089e-16   0.12489 1.24767 0.89    1. 0. 0.
     38  2.26414 0.364321 -4.44089e-16         0.12489 1.24767 -0.89   0.12489 1.24767 0.89    1. 0. 0.
    45391
    4640  0.12489 1.24767 -0.89         0.12489 1.24767 0.89    -2.01426 0.364321 -4.44089e-16  1. 0. 0.
    47411
    48   -2.01426 0.364321 -4.44089e-16        -1.12431 -0.89433 -0.89         -1.12431 -0.89433 0.89  1. 0. 0.
    49 1
    50   1.37419 -0.89433 -0.89        1.37419 -0.89433 0.89   2.26414 0.364321 -4.44089e-16   1. 0. 0.
     42  1.37419 -0.89433 0.89         2.26414 0.364321 -4.44089e-16   0.12489 1.24767 0.89    1. 0. 0.
    51431
    5244  1.37419 -0.89433 0.89         0.12489 1.24767 0.89    -1.12431 -0.89433 0.89  1. 0. 0.
    53451
    5446  0.12489 1.24767 0.89  -2.01426 0.364321 -4.44089e-16  -1.12431 -0.89433 0.89  1. 0. 0.
     471
     48  -2.01426 0.364321 -4.44089e-16        -1.12431 -0.89433 -0.89         -1.12431 -0.89433 0.89  1. 0. 0.
     491
     50  1.37419 -0.89433 -0.89        1.37419 -0.89433 0.89   -1.12431 -0.89433 -0.89         1. 0. 0.
     511
     52  1.37419 -0.89433 0.89         -1.12431 -0.89433 -0.89         -1.12431 -0.89433 0.89  1. 0. 0.
     531
     54  1.37419 -0.89433 -0.89        1.37419 -0.89433 0.89   2.26414 0.364321 -4.44089e-16   1. 0. 0.
    55559
    5656#  terminating special property
     
    5959  25.0    0.6     -1.0 -1.0 -1.0     0.2        0 0 0 0
    60602
    61   -1.00456 0.23922 0.593333     5       1 0 0
     61  1.67084 -0.47478 -8.88178e-16 5       1 0 0
    62629
    6363  terminating special property
  • tests/regression/Tesselation/2/post/ConvexEnvelope.dat

    r2130dd r73b510  
    11TITLE = "3D CONVEX SHELL"
    22VARIABLES = "X" "Y" "Z" "U"
    3 ZONE T="0- H08_ H09_ H11", N=8, E=12, DATAPACKING=POINT, ZONETYPE=FETRIANGLE
     3ZONE T="test", N=8, E=12, DATAPACKING=POINT, ZONETYPE=FETRIANGLE
    449.78209 2.64589 2.64589 0
    559.78209 2.64589 4.42589 0
     
    13131 3 4
    14141 4 7
     154 6 7
    15163 4 5
    16 1 7 8
    17 1 2 8
    18 4 6 7
     174 5 6
    19182 3 5
    20 4 5 6
    21 6 7 8
    22 1 2 3
    23192 5 8
    24205 6 8
     216 7 8
     221 2 7
     232 7 8
     241 2 3
  • tests/regression/Tesselation/2/post/ConvexEnvelope.r3d

    r2130dd r73b510  
    3434  1.37419 -0.89433 -0.89        0.12489 1.24767 -0.89   -1.12431 -0.89433 -0.89         1. 0. 0.
    35351
    36   2.26414 0.364321 -4.44089e-16         0.12489 1.24767 -0.89   0.12489 1.24767 0.89    1. 0. 0.
    37 1
    38   1.37419 -0.89433 -0.89        -1.12431 -0.89433 -0.89         -1.12431 -0.89433 0.89  1. 0. 0.
    39 1
    40   1.37419 -0.89433 -0.89        1.37419 -0.89433 0.89   -1.12431 -0.89433 0.89  1. 0. 0.
    41 1
    4236  0.12489 1.24767 -0.89         -2.01426 0.364321 -4.44089e-16  -1.12431 -0.89433 -0.89         1. 0. 0.
    43371
    44   1.37419 -0.89433 0.89         2.26414 0.364321 -4.44089e-16   0.12489 1.24767 0.89    1. 0. 0.
     38  2.26414 0.364321 -4.44089e-16         0.12489 1.24767 -0.89   0.12489 1.24767 0.89    1. 0. 0.
    45391
    4640  0.12489 1.24767 -0.89         0.12489 1.24767 0.89    -2.01426 0.364321 -4.44089e-16  1. 0. 0.
    47411
    48   -2.01426 0.364321 -4.44089e-16        -1.12431 -0.89433 -0.89         -1.12431 -0.89433 0.89  1. 0. 0.
    49 1
    50   1.37419 -0.89433 -0.89        1.37419 -0.89433 0.89   2.26414 0.364321 -4.44089e-16   1. 0. 0.
     42  1.37419 -0.89433 0.89         2.26414 0.364321 -4.44089e-16   0.12489 1.24767 0.89    1. 0. 0.
    51431
    5244  1.37419 -0.89433 0.89         0.12489 1.24767 0.89    -1.12431 -0.89433 0.89  1. 0. 0.
    53451
    5446  0.12489 1.24767 0.89  -2.01426 0.364321 -4.44089e-16  -1.12431 -0.89433 0.89  1. 0. 0.
     471
     48  -2.01426 0.364321 -4.44089e-16        -1.12431 -0.89433 -0.89         -1.12431 -0.89433 0.89  1. 0. 0.
     491
     50  1.37419 -0.89433 -0.89        1.37419 -0.89433 0.89   -1.12431 -0.89433 -0.89         1. 0. 0.
     511
     52  1.37419 -0.89433 0.89         -1.12431 -0.89433 -0.89         -1.12431 -0.89433 0.89  1. 0. 0.
     531
     54  1.37419 -0.89433 -0.89        1.37419 -0.89433 0.89   2.26414 0.364321 -4.44089e-16   1. 0. 0.
    55559
    5656#  terminating special property
     
    5959  25.0    0.6     -1.0 -1.0 -1.0     0.2        0 0 0 0
    60602
    61   -1.00456 0.23922 0.593333     5       1 0 0
     61  1.67084 -0.47478 -8.88178e-16 5       1 0 0
    62629
    6363  terminating special property
  • tests/regression/Tesselation/2/post/NonConvexEnvelope.dat

    r2130dd r73b510  
    11TITLE = "3D CONVEX SHELL"
    22VARIABLES = "X" "Y" "Z" "U"
    3 ZONE T="0- H08_ H09_ H11", N=8, E=12, DATAPACKING=POINT, ZONETYPE=FETRIANGLE
     3ZONE T="test", N=8, E=12, DATAPACKING=POINT, ZONETYPE=FETRIANGLE
    449.78209 2.64589 2.64589 0
    559.78209 2.64589 4.42589 0
     
    13131 3 4
    14141 4 7
     154 6 7
    15163 4 5
    16 1 7 8
    17 1 2 8
    18 4 6 7
     174 5 6
    19182 3 5
    20 4 5 6
    21 6 7 8
    22 1 2 3
    23192 5 8
    24205 6 8
     216 7 8
     221 2 7
     232 7 8
     241 2 3
  • tests/regression/Tesselation/2/post/NonConvexEnvelope.r3d

    r2130dd r73b510  
    3434  1.37419 -0.89433 -0.89        0.12489 1.24767 -0.89   -1.12431 -0.89433 -0.89         1. 0. 0.
    35351
    36   2.26414 0.364321 -4.44089e-16         0.12489 1.24767 -0.89   0.12489 1.24767 0.89    1. 0. 0.
    37 1
    38   1.37419 -0.89433 -0.89        -1.12431 -0.89433 -0.89         -1.12431 -0.89433 0.89  1. 0. 0.
    39 1
    40   1.37419 -0.89433 -0.89        1.37419 -0.89433 0.89   -1.12431 -0.89433 0.89  1. 0. 0.
    41 1
    4236  0.12489 1.24767 -0.89         -2.01426 0.364321 -4.44089e-16  -1.12431 -0.89433 -0.89         1. 0. 0.
    43371
    44   1.37419 -0.89433 0.89         2.26414 0.364321 -4.44089e-16   0.12489 1.24767 0.89    1. 0. 0.
     38  2.26414 0.364321 -4.44089e-16         0.12489 1.24767 -0.89   0.12489 1.24767 0.89    1. 0. 0.
    45391
    4640  0.12489 1.24767 -0.89         0.12489 1.24767 0.89    -2.01426 0.364321 -4.44089e-16  1. 0. 0.
    47411
    48   -2.01426 0.364321 -4.44089e-16        -1.12431 -0.89433 -0.89         -1.12431 -0.89433 0.89  1. 0. 0.
    49 1
    50   1.37419 -0.89433 -0.89        1.37419 -0.89433 0.89   2.26414 0.364321 -4.44089e-16   1. 0. 0.
     42  1.37419 -0.89433 0.89         2.26414 0.364321 -4.44089e-16   0.12489 1.24767 0.89    1. 0. 0.
    51431
    5244  1.37419 -0.89433 0.89         0.12489 1.24767 0.89    -1.12431 -0.89433 0.89  1. 0. 0.
    53451
    5446  0.12489 1.24767 0.89  -2.01426 0.364321 -4.44089e-16  -1.12431 -0.89433 0.89  1. 0. 0.
     471
     48  -2.01426 0.364321 -4.44089e-16        -1.12431 -0.89433 -0.89         -1.12431 -0.89433 0.89  1. 0. 0.
     491
     50  1.37419 -0.89433 -0.89        1.37419 -0.89433 0.89   -1.12431 -0.89433 -0.89         1. 0. 0.
     511
     52  1.37419 -0.89433 0.89         -1.12431 -0.89433 -0.89         -1.12431 -0.89433 0.89  1. 0. 0.
     531
     54  1.37419 -0.89433 -0.89        1.37419 -0.89433 0.89   2.26414 0.364321 -4.44089e-16   1. 0. 0.
    55559
    5656#  terminating special property
     
    5959  25.0    0.6     -1.0 -1.0 -1.0     0.2        0 0 0 0
    60602
    61   -1.00456 0.23922 0.593333     5       1 0 0
     61  1.67084 -0.47478 -8.88178e-16 5       1 0 0
    62629
    6363  terminating special property
  • tests/regression/Tesselation/3/post/NonConvexEnvelope.dat

    r2130dd r73b510  
    11TITLE = "3D CONVEX SHELL"
    22VARIABLES = "X" "Y" "Z" "U"
    3 ZONE T="0- H49_ H50_ H51", N=44, E=86, DATAPACKING=POINT, ZONETYPE=FETRIANGLE
     3ZONE T="test", N=44, E=86, DATAPACKING=POINT, ZONETYPE=FETRIANGLE
    446.9077 1.1106 0.1214 1
    550.3612 -3.628 1.323 1
     
    28282.8131 1.4776 2.5103 0
    29293.9137 2.2936 1.3739 0
    30 2.159 2.5738 1.2698 2
     302.159 2.5738 1.2698 5
    31313.6606 -0.4593 2.1396 2
    32323.2007 -1.4419 0.7311 4
    33 -3.3002 2.3589 0.0094 5
     33-3.3002 2.3589 0.0094 8
    3434-4.377 1.6962 -1.2433 3
    35355.2593 1.4547 -1.7445 0
     
    40405.2727 1.6068 1.2828 2
    4141-6.2394 4.6427 0.0632 0
    42 -4.4738 4.5591 -0.1458 1
     42-4.4738 4.5591 -0.1458 3
    4343-5.5506 3.8964 -1.3985 0
    4444-6.7081 0.9923 0.6224 2
     
    49491 32 44
    50501 32 35
    51 32 33 44
    52511 34 35
    535223 32 35
    54 23 32 33
     5317 23 35
     548 17 35
     558 10 17
     563 8 10
     573 8 35
     583 4 35
     594 29 35
     6029 34 35
     612 3 4
     622 4 29
     632 15 29
     6415 28 29
     6528 29 34
     662 7 15
     677 14 15
     6814 15 28
     6914 25 28
     7025 28 37
     7128 34 37
     721 34 37
     731 37 44
     7425 26 37
     7525 26 27
     7626 27 33
    557726 33 44
    56 1 34 37
    57 29 34 35
    58 17 23 35
    59 18 23 33
    60 26 27 33
    617826 37 44
    62 1 37 44
    63 28 34 37
    64 28 29 34
    65 4 29 35
    66 17 18 23
    67 8 17 35
    68 18 27 33
    69 25 26 27
    70 25 26 37
    71 25 28 37
    72 15 28 29
    73 2 4 29
    74 3 4 35
    75 9 17 18
    76 8 10 17
    77 3 8 35
    78 16 18 27
    797914 25 27
    80 14 25 28
    81 14 15 28
    82 2 15 29
    83 2 3 4
    84 9 10 17
    85 9 18 31
    86 3 8 10
    87 16 18 30
    88 16 27 30
    898014 27 30
    90 7 14 15
    91 2 7 15
    92 2 3 5
    93 9 10 12
    94 9 19 31
    95 18 30 31
    96 3 10 12
    97816 14 30
     826 24 30
     8324 30 36
     8430 36 39
     8527 30 39
     866 7 24
    98876 7 14
    99 2 5 7
    100 3 5 12
    101 9 12 13
    102 9 13 19
    103 13 19 31
    104 30 31 39
    105 6 24 30
    106 6 7 24
    107 5 7 11
    108 5 12 22
    109 12 13 21
    110 13 21 31
    111 27 30 39
    112 31 39 40
    113 24 30 36
    114887 11 24
    115 5 11 22
    116 12 21 22
    117 21 31 43
    118 31 40 43
    119 40 42 43
    120 41 42 43
    121 21 41 43
    122 20 21 41
     8911 20 24
    1239020 24 41
    1249124 36 41
    1259236 41 42
     9311 20 22
     945 11 22
     955 7 11
     962 5 7
     9727 30 39
     9816 27 30
     9916 18 30
     10016 18 27
     10118 27 33
     10218 23 33
     10336 38 39
    12610436 38 42
     10518 30 31
     10630 31 39
     10731 39 40
     1089 18 31
     1099 17 18
     11017 18 23
     1119 19 31
     1129 13 19
     11313 19 31
     11413 21 31
     11521 31 43
     11631 40 43
     1179 12 13
     1189 10 12
     1199 10 17
     12012 13 21
     12112 21 22
     1225 12 22
     1233 5 12
     1242 3 5
     1253 10 12
     12620 21 22
     12720 21 41
     12821 41 43
     12941 42 43
     13023 32 33
     13132 33 44
     13240 42 43
    12713338 40 42
    12813438 39 40
    129 36 38 39
    130 30 36 39
    131 27 30 39
    132 11 20 24
    133 11 20 22
    134 20 21 22
  • tests/regression/Tesselation/3/post/NonConvexEnvelope.r3d

    r2130dd r73b510  
    160160  7.33693 1.04442 0.0886712     5.68853 1.38852 -1.77723        5.55043 -0.952879 -0.490929     1. 0. 0.
    1611611
     162  7.33693 1.04442 0.0886712     6.17523 -0.969279 1.17127       5.55043 -0.952879 -0.490929     1. 0. 0.
     1631
     164  3.62023 1.25552 -2.86813      5.68853 1.38852 -1.77723        5.55043 -0.952879 -0.490929     1. 0. 0.
     1651
     166  1.76663 -0.360379 -2.99373    3.62023 1.25552 -2.86813        5.55043 -0.952879 -0.490929     1. 0. 0.
     1671
     168  2.19193 -1.51408 -0.867629    1.76663 -0.360379 -2.99373      5.55043 -0.952879 -0.490929     1. 0. 0.
     1691
     170  2.19193 -1.51408 -0.867629    0.450934 -2.72908 -2.23353      1.76663 -0.360379 -2.99373      1. 0. 0.
     1711
     172  0.917634 -3.66448 -0.484829   2.19193 -1.51408 -0.867629      0.450934 -2.72908 -2.23353      1. 0. 0.
     1731
     174  0.917634 -3.66448 -0.484829   2.19193 -1.51408 -0.867629      5.55043 -0.952879 -0.490929     1. 0. 0.
     1751
     176  0.917634 -3.66448 -0.484829   1.92773 -2.57738 0.498071       5.55043 -0.952879 -0.490929     1. 0. 0.
     1771
     178  1.92773 -2.57738 0.498071     3.62993 -1.50808 0.698371       5.55043 -0.952879 -0.490929     1. 0. 0.
     1791
     180  3.62993 -1.50808 0.698371     6.17523 -0.969279 1.17127       5.55043 -0.952879 -0.490929     1. 0. 0.
     1811
     182  0.790434 -3.69418 1.29027     0.917634 -3.66448 -0.484829     1.92773 -2.57738 0.498071       1. 0. 0.
     1831
     184  0.790434 -3.69418 1.29027     1.92773 -2.57738 0.498071       3.62993 -1.50808 0.698371       1. 0. 0.
     1851
     186  0.790434 -3.69418 1.29027     2.06173 -1.39848 1.79787        3.62993 -1.50808 0.698371       1. 0. 0.
     1871
     188  2.06173 -1.39848 1.79787      4.08983 -0.525479 2.10687       3.62993 -1.50808 0.698371       1. 0. 0.
     1891
     190  4.08983 -0.525479 2.10687     3.62993 -1.50808 0.698371       6.17523 -0.969279 1.17127       1. 0. 0.
     1911
     192  0.790434 -3.69418 1.29027     -0.287266 -1.67078 2.48017      2.06173 -1.39848 1.79787        1. 0. 0.
     1931
     194  -0.287266 -1.67078 2.48017    1.46453 0.112321 2.50927        2.06173 -1.39848 1.79787        1. 0. 0.
     1951
     196  1.46453 0.112321 2.50927      2.06173 -1.39848 1.79787        4.08983 -0.525479 2.10687       1. 0. 0.
     1971
     198  1.46453 0.112321 2.50927      3.24233 1.41142 2.47757         4.08983 -0.525479 2.10687       1. 0. 0.
     1991
     200  3.24233 1.41142 2.47757       4.08983 -0.525479 2.10687       5.70193 1.54062 1.25007         1. 0. 0.
     2011
     202  4.08983 -0.525479 2.10687     6.17523 -0.969279 1.17127       5.70193 1.54062 1.25007         1. 0. 0.
     2031
     204  7.33693 1.04442 0.0886712     6.17523 -0.969279 1.17127       5.70193 1.54062 1.25007         1. 0. 0.
     2051
     206  7.33693 1.04442 0.0886712     5.70193 1.54062 1.25007         7.56833 1.97852 -0.00632877     1. 0. 0.
     2071
     208  3.24233 1.41142 2.47757       4.34293 2.22742 1.34117         5.70193 1.54062 1.25007         1. 0. 0.
     2091
     210  3.24233 1.41142 2.47757       4.34293 2.22742 1.34117         2.58823 2.50762 1.23707         1. 0. 0.
     2111
     212  4.34293 2.22742 1.34117       2.58823 2.50762 1.23707         5.11553 2.70122 -0.710229       1. 0. 0.
     2131
     214  4.34293 2.22742 1.34117       5.11553 2.70122 -0.710229       7.56833 1.97852 -0.00632877     1. 0. 0.
     2151
     216  4.34293 2.22742 1.34117       5.70193 1.54062 1.25007         7.56833 1.97852 -0.00632877     1. 0. 0.
     2171
     218  1.46453 0.112321 2.50927      3.24233 1.41142 2.47757         2.58823 2.50762 1.23707         1. 0. 0.
     2191
     220  1.46453 0.112321 2.50927      2.58823 2.50762 1.23707         -2.87097 2.29272 -0.0233288     1. 0. 0.
     2211
     222  -0.759066 -0.265179 1.48487   1.46453 0.112321 2.50927        -2.87097 2.29272 -0.0233288     1. 0. 0.
     2231
     224  -0.759066 -0.265179 1.48487   -3.66127 0.565021 1.57007       -2.87097 2.29272 -0.0233288     1. 0. 0.
     2251
     226  -3.66127 0.565021 1.57007     -2.87097 2.29272 -0.0233288     -4.83487 2.76522 1.41487        1. 0. 0.
     2271
     228  -2.87097 2.29272 -0.0233288   -4.83487 2.76522 1.41487        -4.04457 4.49292 -0.178529      1. 0. 0.
     2291
     230  2.58823 2.50762 1.23707       -2.87097 2.29272 -0.0233288     -4.04457 4.49292 -0.178529      1. 0. 0.
     2311
     232  -0.759066 -0.265179 1.48487   -0.287266 -1.67078 2.48017      -3.66127 0.565021 1.57007       1. 0. 0.
     2331
     234  -0.759066 -0.265179 1.48487   -0.287266 -1.67078 2.48017      1.46453 0.112321 2.50927        1. 0. 0.
     2351
     236  -0.287266 -1.67078 2.48017    -2.45927 -1.63678 1.72157       -3.66127 0.565021 1.57007       1. 0. 0.
     2371
     238  -2.45927 -1.63678 1.72157     -4.75167 -1.93408 0.935971      -3.66127 0.565021 1.57007       1. 0. 0.
     2391
     240  -4.75167 -1.93408 0.935971    -3.66127 0.565021 1.57007       -6.27887 0.926121 0.589671      1. 0. 0.
     2411
     242  -3.66127 0.565021 1.57007     -4.83487 2.76522 1.41487        -6.27887 0.926121 0.589671      1. 0. 0.
     2431
     244  -4.83487 2.76522 1.41487      -6.27887 0.926121 0.589671      -7.11497 2.49352 0.479071       1. 0. 0.
     2451
     246  -2.45927 -1.63678 1.72157     -4.75167 -1.93408 0.935971      -3.90927 -3.49908 0.839771      1. 0. 0.
     2471
     248  -1.52417 -3.64138 0.503471    -2.45927 -1.63678 1.72157       -3.90927 -3.49908 0.839771      1. 0. 0.
     2491
     250  -1.52417 -3.64138 0.503471    -0.287266 -1.67078 2.48017      -2.45927 -1.63678 1.72157       1. 0. 0.
     2511
     252  0.790434 -3.69418 1.29027     -1.52417 -3.64138 0.503471      -0.287266 -1.67078 2.48017      1. 0. 0.
     2531
     254  2.58823 2.50762 1.23707       -2.87097 2.29272 -0.0233288     -4.04457 4.49292 -0.178529      1. 0. 0.
     2551
     256  1.15633 1.11082 0.326671      2.58823 2.50762 1.23707         -2.87097 2.29272 -0.0233288     1. 0. 0.
     2571
     258  1.15633 1.11082 0.326671      1.03283 1.01972 -2.14533        -2.87097 2.29272 -0.0233288     1. 0. 0.
     2591
     260  1.15633 1.11082 0.326671      1.03283 1.01972 -2.14533        2.58823 2.50762 1.23707         1. 0. 0.
     2611
     262  1.03283 1.01972 -2.14533      2.58823 2.50762 1.23707         5.11553 2.70122 -0.710229       1. 0. 0.
     2631
     264  1.03283 1.01972 -2.14533      3.62023 1.25552 -2.86813        5.11553 2.70122 -0.710229       1. 0. 0.
     2651
     266  -4.83487 2.76522 1.41487      -5.81017 4.57652 0.0304712      -4.04457 4.49292 -0.178529      1. 0. 0.
     2671
     268  -4.83487 2.76522 1.41487      -5.81017 4.57652 0.0304712      -7.11497 2.49352 0.479071       1. 0. 0.
     2691
     270  1.03283 1.01972 -2.14533      -2.87097 2.29272 -0.0233288     -3.94777 1.63002 -1.27603       1. 0. 0.
     2711
     272  -2.87097 2.29272 -0.0233288   -3.94777 1.63002 -1.27603       -4.04457 4.49292 -0.178529      1. 0. 0.
     2731
     274  -3.94777 1.63002 -1.27603     -4.04457 4.49292 -0.178529      -5.12137 3.83022 -1.43123       1. 0. 0.
     2751
     276  -0.573766 -1.42458 -2.91753   1.03283 1.01972 -2.14533        -3.94777 1.63002 -1.27603       1. 0. 0.
     2771
     278  -0.573766 -1.42458 -2.91753   1.76663 -0.360379 -2.99373      1.03283 1.01972 -2.14533        1. 0. 0.
     2791
     280  1.76663 -0.360379 -2.99373    1.03283 1.01972 -2.14533        3.62023 1.25552 -2.86813        1. 0. 0.
     2811
     282  -0.573766 -1.42458 -2.91753   -2.77417 -0.570279 -1.12083     -3.94777 1.63002 -1.27603       1. 0. 0.
     2831
     284  -0.573766 -1.42458 -2.91753   -2.49667 -2.18078 -1.79993      -2.77417 -0.570279 -1.12083     1. 0. 0.
     2851
     286  -2.49667 -2.18078 -1.79993    -2.77417 -0.570279 -1.12083     -3.94777 1.63002 -1.27603       1. 0. 0.
     2871
     288  -2.49667 -2.18078 -1.79993    -4.17327 -2.53828 -0.635229     -3.94777 1.63002 -1.27603       1. 0. 0.
     2891
     290  -4.17327 -2.53828 -0.635229   -3.94777 1.63002 -1.27603       -6.42617 1.74722 -0.982629      1. 0. 0.
     2911
     292  -3.94777 1.63002 -1.27603     -5.12137 3.83022 -1.43123       -6.42617 1.74722 -0.982629      1. 0. 0.
     2931
     294  -0.573766 -1.42458 -2.91753   -1.62867 -3.74268 -1.79493      -2.49667 -2.18078 -1.79993      1. 0. 0.
     2951
     296  -0.573766 -1.42458 -2.91753   0.450934 -2.72908 -2.23353      -1.62867 -3.74268 -1.79493      1. 0. 0.
     2971
     298  -0.573766 -1.42458 -2.91753   0.450934 -2.72908 -2.23353      1.76663 -0.360379 -2.99373      1. 0. 0.
     2991
     300  -1.62867 -3.74268 -1.79493    -2.49667 -2.18078 -1.79993      -4.17327 -2.53828 -0.635229     1. 0. 0.
     3011
     302  -1.62867 -3.74268 -1.79493    -4.17327 -2.53828 -0.635229     -3.90927 -3.49908 0.839771      1. 0. 0.
     3031
     304  -1.52417 -3.64138 0.503471    -1.62867 -3.74268 -1.79493      -3.90927 -3.49908 0.839771      1. 0. 0.
     3051
     306  0.917634 -3.66448 -0.484829   -1.52417 -3.64138 0.503471      -1.62867 -3.74268 -1.79493      1. 0. 0.
     3071
     308  0.790434 -3.69418 1.29027     0.917634 -3.66448 -0.484829     -1.52417 -3.64138 0.503471      1. 0. 0.
     3091
     310  0.917634 -3.66448 -0.484829   0.450934 -2.72908 -2.23353      -1.62867 -3.74268 -1.79493      1. 0. 0.
     3111
     312  -4.75167 -1.93408 0.935971    -4.17327 -2.53828 -0.635229     -3.90927 -3.49908 0.839771      1. 0. 0.
     3131
     314  -4.75167 -1.93408 0.935971    -4.17327 -2.53828 -0.635229     -6.27887 0.926121 0.589671      1. 0. 0.
     3151
     316  -4.17327 -2.53828 -0.635229   -6.27887 0.926121 0.589671      -6.42617 1.74722 -0.982629      1. 0. 0.
     3171
     318  -6.27887 0.926121 0.589671    -7.11497 2.49352 0.479071       -6.42617 1.74722 -0.982629      1. 0. 0.
     3191
     320  3.62023 1.25552 -2.86813      5.68853 1.38852 -1.77723        5.11553 2.70122 -0.710229       1. 0. 0.
     3211
    162322  5.68853 1.38852 -1.77723      5.11553 2.70122 -0.710229       7.56833 1.97852 -0.00632877     1. 0. 0.
    1633231
    164   7.33693 1.04442 0.0886712     6.17523 -0.969279 1.17127       5.55043 -0.952879 -0.490929     1. 0. 0.
    165 1
    166   3.62023 1.25552 -2.86813      5.68853 1.38852 -1.77723        5.55043 -0.952879 -0.490929     1. 0. 0.
    167 1
    168   3.62023 1.25552 -2.86813      5.68853 1.38852 -1.77723        5.11553 2.70122 -0.710229       1. 0. 0.
    169 1
    170   4.34293 2.22742 1.34117       5.11553 2.70122 -0.710229       7.56833 1.97852 -0.00632877     1. 0. 0.
    171 1
    172   7.33693 1.04442 0.0886712     6.17523 -0.969279 1.17127       5.70193 1.54062 1.25007         1. 0. 0.
    173 1
    174   3.62993 -1.50808 0.698371     6.17523 -0.969279 1.17127       5.55043 -0.952879 -0.490929     1. 0. 0.
    175 1
    176   1.76663 -0.360379 -2.99373    3.62023 1.25552 -2.86813        5.55043 -0.952879 -0.490929     1. 0. 0.
    177 1
    178   1.03283 1.01972 -2.14533      3.62023 1.25552 -2.86813        5.11553 2.70122 -0.710229       1. 0. 0.
    179 1
    180   4.34293 2.22742 1.34117       2.58823 2.50762 1.23707         5.11553 2.70122 -0.710229       1. 0. 0.
    181 1
    182   4.34293 2.22742 1.34117       5.70193 1.54062 1.25007         7.56833 1.97852 -0.00632877     1. 0. 0.
    183 1
    184   7.33693 1.04442 0.0886712     5.70193 1.54062 1.25007         7.56833 1.97852 -0.00632877     1. 0. 0.
    185 1
    186   4.08983 -0.525479 2.10687     6.17523 -0.969279 1.17127       5.70193 1.54062 1.25007         1. 0. 0.
    187 1
    188   4.08983 -0.525479 2.10687     3.62993 -1.50808 0.698371       6.17523 -0.969279 1.17127       1. 0. 0.
    189 1
    190   1.92773 -2.57738 0.498071     3.62993 -1.50808 0.698371       5.55043 -0.952879 -0.490929     1. 0. 0.
    191 1
    192   1.76663 -0.360379 -2.99373    1.03283 1.01972 -2.14533        3.62023 1.25552 -2.86813        1. 0. 0.
    193 1
    194   2.19193 -1.51408 -0.867629    1.76663 -0.360379 -2.99373      5.55043 -0.952879 -0.490929     1. 0. 0.
    195 1
    196   1.03283 1.01972 -2.14533      2.58823 2.50762 1.23707         5.11553 2.70122 -0.710229       1. 0. 0.
    197 1
    198   3.24233 1.41142 2.47757       4.34293 2.22742 1.34117         2.58823 2.50762 1.23707         1. 0. 0.
    199 1
    200   3.24233 1.41142 2.47757       4.34293 2.22742 1.34117         5.70193 1.54062 1.25007         1. 0. 0.
    201 1
    202   3.24233 1.41142 2.47757       4.08983 -0.525479 2.10687       5.70193 1.54062 1.25007         1. 0. 0.
    203 1
    204   2.06173 -1.39848 1.79787      4.08983 -0.525479 2.10687       3.62993 -1.50808 0.698371       1. 0. 0.
    205 1
    206   0.790434 -3.69418 1.29027     1.92773 -2.57738 0.498071       3.62993 -1.50808 0.698371       1. 0. 0.
    207 1
    208   0.917634 -3.66448 -0.484829   1.92773 -2.57738 0.498071       5.55043 -0.952879 -0.490929     1. 0. 0.
    209 1
    210   -0.573766 -1.42458 -2.91753   1.76663 -0.360379 -2.99373      1.03283 1.01972 -2.14533        1. 0. 0.
    211 1
    212   2.19193 -1.51408 -0.867629    0.450934 -2.72908 -2.23353      1.76663 -0.360379 -2.99373      1. 0. 0.
    213 1
    214   0.917634 -3.66448 -0.484829   2.19193 -1.51408 -0.867629      5.55043 -0.952879 -0.490929     1. 0. 0.
    215 1
    216   1.15633 1.11082 0.326671      1.03283 1.01972 -2.14533        2.58823 2.50762 1.23707         1. 0. 0.
    217 1
    218   1.46453 0.112321 2.50927      3.24233 1.41142 2.47757         2.58823 2.50762 1.23707         1. 0. 0.
    219 1
    220   1.46453 0.112321 2.50927      3.24233 1.41142 2.47757         4.08983 -0.525479 2.10687       1. 0. 0.
    221 1
    222   1.46453 0.112321 2.50927      2.06173 -1.39848 1.79787        4.08983 -0.525479 2.10687       1. 0. 0.
    223 1
    224   0.790434 -3.69418 1.29027     2.06173 -1.39848 1.79787        3.62993 -1.50808 0.698371       1. 0. 0.
    225 1
    226   0.790434 -3.69418 1.29027     0.917634 -3.66448 -0.484829     1.92773 -2.57738 0.498071       1. 0. 0.
    227 1
    228   -0.573766 -1.42458 -2.91753   0.450934 -2.72908 -2.23353      1.76663 -0.360379 -2.99373      1. 0. 0.
    229 1
    230   -0.573766 -1.42458 -2.91753   1.03283 1.01972 -2.14533        -3.94777 1.63002 -1.27603       1. 0. 0.
    231 1
    232   0.917634 -3.66448 -0.484829   2.19193 -1.51408 -0.867629      0.450934 -2.72908 -2.23353      1. 0. 0.
    233 1
    234   1.15633 1.11082 0.326671      1.03283 1.01972 -2.14533        -2.87097 2.29272 -0.0233288     1. 0. 0.
    235 1
    236   1.15633 1.11082 0.326671      2.58823 2.50762 1.23707         -2.87097 2.29272 -0.0233288     1. 0. 0.
    237 1
    238   1.46453 0.112321 2.50927      2.58823 2.50762 1.23707         -2.87097 2.29272 -0.0233288     1. 0. 0.
    239 1
    240   -0.287266 -1.67078 2.48017    1.46453 0.112321 2.50927        2.06173 -1.39848 1.79787        1. 0. 0.
    241 1
    242   0.790434 -3.69418 1.29027     -0.287266 -1.67078 2.48017      2.06173 -1.39848 1.79787        1. 0. 0.
    243 1
    244   0.790434 -3.69418 1.29027     0.917634 -3.66448 -0.484829     -1.52417 -3.64138 0.503471      1. 0. 0.
    245 1
    246   -0.573766 -1.42458 -2.91753   0.450934 -2.72908 -2.23353      -1.62867 -3.74268 -1.79493      1. 0. 0.
    247 1
    248   -0.573766 -1.42458 -2.91753   -2.77417 -0.570279 -1.12083     -3.94777 1.63002 -1.27603       1. 0. 0.
    249 1
    250   1.03283 1.01972 -2.14533      -2.87097 2.29272 -0.0233288     -3.94777 1.63002 -1.27603       1. 0. 0.
    251 1
    252   0.917634 -3.66448 -0.484829   0.450934 -2.72908 -2.23353      -1.62867 -3.74268 -1.79493      1. 0. 0.
    253 1
    254   -0.759066 -0.265179 1.48487   1.46453 0.112321 2.50927        -2.87097 2.29272 -0.0233288     1. 0. 0.
    255 1
    256   -0.759066 -0.265179 1.48487   -0.287266 -1.67078 2.48017      1.46453 0.112321 2.50927        1. 0. 0.
    257 1
    258   0.790434 -3.69418 1.29027     -1.52417 -3.64138 0.503471      -0.287266 -1.67078 2.48017      1. 0. 0.
    259 1
    260   0.917634 -3.66448 -0.484829   -1.52417 -3.64138 0.503471      -1.62867 -3.74268 -1.79493      1. 0. 0.
    261 1
    262   -0.573766 -1.42458 -2.91753   -1.62867 -3.74268 -1.79493      -2.49667 -2.18078 -1.79993      1. 0. 0.
    263 1
    264   -0.573766 -1.42458 -2.91753   -2.49667 -2.18078 -1.79993      -2.77417 -0.570279 -1.12083     1. 0. 0.
    265 1
    266   -2.49667 -2.18078 -1.79993    -2.77417 -0.570279 -1.12083     -3.94777 1.63002 -1.27603       1. 0. 0.
    267 1
    268   -2.87097 2.29272 -0.0233288   -3.94777 1.63002 -1.27603       -4.04457 4.49292 -0.178529      1. 0. 0.
    269 1
    270   -0.759066 -0.265179 1.48487   -3.66127 0.565021 1.57007       -2.87097 2.29272 -0.0233288     1. 0. 0.
    271 1
    272   -0.759066 -0.265179 1.48487   -0.287266 -1.67078 2.48017      -3.66127 0.565021 1.57007       1. 0. 0.
    273 1
    274   -1.52417 -3.64138 0.503471    -0.287266 -1.67078 2.48017      -2.45927 -1.63678 1.72157       1. 0. 0.
    275 1
    276   -1.52417 -3.64138 0.503471    -1.62867 -3.74268 -1.79493      -3.90927 -3.49908 0.839771      1. 0. 0.
    277 1
    278   -1.62867 -3.74268 -1.79493    -2.49667 -2.18078 -1.79993      -4.17327 -2.53828 -0.635229     1. 0. 0.
    279 1
    280   -2.49667 -2.18078 -1.79993    -4.17327 -2.53828 -0.635229     -3.94777 1.63002 -1.27603       1. 0. 0.
    281 1
    282   2.58823 2.50762 1.23707       -2.87097 2.29272 -0.0233288     -4.04457 4.49292 -0.178529      1. 0. 0.
    283 1
    284   -3.94777 1.63002 -1.27603     -4.04457 4.49292 -0.178529      -5.12137 3.83022 -1.43123       1. 0. 0.
    285 1
    286   -3.66127 0.565021 1.57007     -2.87097 2.29272 -0.0233288     -4.83487 2.76522 1.41487        1. 0. 0.
    287 1
    288   -0.287266 -1.67078 2.48017    -2.45927 -1.63678 1.72157       -3.66127 0.565021 1.57007       1. 0. 0.
    289 1
    290   -1.52417 -3.64138 0.503471    -2.45927 -1.63678 1.72157       -3.90927 -3.49908 0.839771      1. 0. 0.
    291 1
    292   -1.62867 -3.74268 -1.79493    -4.17327 -2.53828 -0.635229     -3.90927 -3.49908 0.839771      1. 0. 0.
    293 1
    294   -4.17327 -2.53828 -0.635229   -3.94777 1.63002 -1.27603       -6.42617 1.74722 -0.982629      1. 0. 0.
    295 1
    296   -3.94777 1.63002 -1.27603     -5.12137 3.83022 -1.43123       -6.42617 1.74722 -0.982629      1. 0. 0.
    297 1
    298324  -5.12137 3.83022 -1.43123     -7.11497 2.49352 0.479071       -6.42617 1.74722 -0.982629      1. 0. 0.
    2993251
    300   -6.27887 0.926121 0.589671    -7.11497 2.49352 0.479071       -6.42617 1.74722 -0.982629      1. 0. 0.
    301 1
    302   -4.17327 -2.53828 -0.635229   -6.27887 0.926121 0.589671      -6.42617 1.74722 -0.982629      1. 0. 0.
    303 1
    304   -4.75167 -1.93408 0.935971    -4.17327 -2.53828 -0.635229     -6.27887 0.926121 0.589671      1. 0. 0.
    305 1
    306   -4.75167 -1.93408 0.935971    -3.66127 0.565021 1.57007       -6.27887 0.926121 0.589671      1. 0. 0.
    307 1
    308   -3.66127 0.565021 1.57007     -4.83487 2.76522 1.41487        -6.27887 0.926121 0.589671      1. 0. 0.
    309 1
    310   -4.83487 2.76522 1.41487      -6.27887 0.926121 0.589671      -7.11497 2.49352 0.479071       1. 0. 0.
    311 1
    312   -4.83487 2.76522 1.41487      -5.81017 4.57652 0.0304712      -7.11497 2.49352 0.479071       1. 0. 0.
    313 1
    314326  -5.81017 4.57652 0.0304712    -5.12137 3.83022 -1.43123       -7.11497 2.49352 0.479071       1. 0. 0.
    3153271
    316328  -5.81017 4.57652 0.0304712    -4.04457 4.49292 -0.178529      -5.12137 3.83022 -1.43123       1. 0. 0.
    317 1
    318   -4.83487 2.76522 1.41487      -5.81017 4.57652 0.0304712      -4.04457 4.49292 -0.178529      1. 0. 0.
    319 1
    320   -2.87097 2.29272 -0.0233288   -4.83487 2.76522 1.41487        -4.04457 4.49292 -0.178529      1. 0. 0.
    321 1
    322   2.58823 2.50762 1.23707       -2.87097 2.29272 -0.0233288     -4.04457 4.49292 -0.178529      1. 0. 0.
    323 1
    324   -2.45927 -1.63678 1.72157     -4.75167 -1.93408 0.935971      -3.66127 0.565021 1.57007       1. 0. 0.
    325 1
    326   -2.45927 -1.63678 1.72157     -4.75167 -1.93408 0.935971      -3.90927 -3.49908 0.839771      1. 0. 0.
    327 1
    328   -4.75167 -1.93408 0.935971    -4.17327 -2.53828 -0.635229     -3.90927 -3.49908 0.839771      1. 0. 0.
    3293299
    330330#  terminating special property
     
    333333  25.0    0.6     -1.0 -1.0 -1.0     0.2        0 0 0 0
    3343342
    335   -4.27807 -2.65715 0.380171    5       1 0 0
     335  -4.99203 4.29989 -0.526429    5       1 0 0
    3363369
    337337  terminating special property
  • tests/testsuite.at

    r2130dd r73b510  
    1212AT_CHECK([pwd],[ignore],[ignore])
    1313AT_CHECK([../../molecuilder -v], 0, [stdout], [ignore])
    14 AT_CHECK([fgrep molecuilder stdout], 0, [ignore], [ignore])
     14AT_CHECK([fgrep olecuilder stdout], 0, [ignore], [ignore])
    1515AT_CHECK([../../molecuilder -h], 0, [stdout], [ignore])
    1616AT_CHECK([fgrep "Give this help screen" stdout], 0, [ignore], [ignore])
    17 AT_CHECK([../../molecuilder -e], 0, [ignore], [stderr])
     17AT_CHECK([../../molecuilder -e], 255, [ignore], [stderr])
    1818AT_CHECK([fgrep "Not enough or invalid arguments" stderr], 0, [ignore], [ignore])
    1919AT_CHECK([../../molecuilder test.conf], 0, [stdout], [stderr])
     
    7878AT_SETUP([Simple configuration - invalid commands on present configs])
    7979AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/regression/Simple_configuration/7/pre/test.conf .], 0)
    80 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -t -s -b -E -c -b -a -U -T -u], 255, [ignore], [stderr])
    81 AT_CHECK([fgrep -c "Not enough or invalid" stderr], 0, [9
    82 ], [ignore])
     80AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -t], 255, [ignore], [stderr])
     81AT_CHECK([fgrep -c "CRITICAL: Not enough or invalid" stderr], 0, [ignore], [ignore])
     82AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -s -b -E -c -b -a -U -T -u], 255, [ignore], [stderr])
     83AT_CHECK([fgrep -c "CRITICAL: Not enough or invalid" stderr], 0, [ignore], [ignore])
     84AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -b -E -c -b -a -U -T -u], 255, [ignore], [stderr])
     85AT_CHECK([fgrep -c "CRITICAL: Not enough or invalid" stderr], 0, [ignore], [ignore])
     86AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -E -c -b -a -U -T -u], 255, [ignore], [stderr])
     87AT_CHECK([fgrep -c "CRITICAL: Not enough or invalid" stderr], 0, [ignore], [ignore])
     88AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -c -b -a -U -T -u], 255, [ignore], [stderr])
     89AT_CHECK([fgrep -c "CRITICAL: Not enough or invalid" stderr], 0, [ignore], [ignore])
     90AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -b -a -U -T -u], 255, [ignore], [stderr])
     91AT_CHECK([fgrep -c "CRITICAL: Not enough or invalid" stderr], 0, [ignore], [ignore])
     92AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -a -U -T -u], 255, [ignore], [stderr])
     93AT_CHECK([fgrep -c "CRITICAL: Not enough or invalid" stderr], 0, [ignore], [ignore])
     94AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -U -T -u], 255, [ignore], [stderr])
     95AT_CHECK([fgrep -c "CRITICAL: Not enough or invalid" stderr], 0, [ignore], [ignore])
     96AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -T -u], 255, [ignore], [stderr])
     97AT_CHECK([fgrep -c "CRITICAL: Not enough or invalid" stderr], 0, [ignore], [ignore])
     98AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -u], 255, [ignore], [stderr])
     99AT_CHECK([fgrep -c "CRITICAL: Not enough or invalid" stderr], 0, [ignore], [ignore])
    83100AT_CLEANUP
    84101
     
    88105AT_SETUP([Graph - DFS analysis])
    89106AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/regression/Graph/1/pre/test.conf .], 0)
    90 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -D 2.], 0, [stdout], [stderr])
     107AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -vvv -D 2.], 0, [stdout], [stderr])
    91108AT_CHECK([fgrep -c "No rings were detected in the molecular structure." stdout], 0, [1
    92109], [ignore])
     
    134151AT_CHECK([file=ConvexEnvelope.dat; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/regression/Tesselation/2/post/$file], 0, [ignore], [ignore])
    135152AT_CHECK([file=ConvexEnvelope.r3d; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/regression/Tesselation/2/post/$file], 0, [ignore], [ignore])
    136 AT_CHECK([fgrep "RESULT: The summed volume is 16.401577 angstrom^3" stdout], 0, [ignore], [ignore])
     153AT_CHECK([fgrep "tesselated volume area is 16.4016 angstrom^3" stdout], 0, [ignore], [ignore])
    137154AT_CHECK([diff ConvexEnvelope.dat NonConvexEnvelope.dat], 0, [ignore], [ignore])
    138155AT_CLEANUP
     
    152169#AT_CHECK([file=ConvexEnvelope.dat; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/regression/Tesselation/4/post/$file], 0, [ignore], [ignore])
    153170#AT_CHECK([file=ConvexEnvelope.r3d; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/regression/Tesselation/4/post/$file], 0, [ignore], [ignore])
    154 #AT_CHECK([fgrep "RESULT: The summed volume is 16.401577 angstrom^3" stdout], 0, [ignore], [ignore])
     171#AT_CHECK([fgrep "tesselated volume area is 16.4016 angstrom^3" stdout], 0, [ignore], [ignore])
    155172#AT_CLEANUP
    156173
Note: See TracChangeset for help on using the changeset viewer.