Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/tesselationhelpers.cpp

    rb998c3 r856098  
    226226  Vector helper;
    227227  double radius, alpha;
    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);
     228
     229  helper.CopyVector(&NewSphereCenter);
    236230  // test whether new center is on the parameter circle's plane
    237231  if (fabs(helper.ScalarProduct(&CirclePlaneNormal)) > HULLEPSILON) {
     
    239233    helper.ProjectOntoPlane(&CirclePlaneNormal);
    240234  }
    241   radius = helper.NormSquared();
     235  radius = helper.ScalarProduct(&helper);
    242236  // test whether the new center vector has length of CircleRadius
    243237  if (fabs(radius - CircleRadius) > HULLEPSILON)
    244238    eLog() << Verbose(1) << "The projected center of the new sphere has radius " << radius << " instead of " << CircleRadius << "." << endl;
    245   alpha = helper.Angle(&RelativeOldSphereCenter);
     239  alpha = helper.Angle(&OldSphereCenter);
    246240  // make the angle unique by checking the halfplanes/search direction
    247241  if (helper.ScalarProduct(&SearchDirection) < -HULLEPSILON)  // acos is not unique on [0, 2.*M_PI), hence extra check to decide between two half intervals
    248242    alpha = 2.*M_PI - alpha;
    249   Log() << Verbose(1) << "INFO: RelativeNewSphereCenter is " << helper << ", RelativeOldSphereCenter is " << RelativeOldSphereCenter << " and resulting angle is " << alpha << "." << endl;
    250   radius = helper.Distance(&RelativeOldSphereCenter);
     243  //Log() << Verbose(1) << "INFO: RelativeNewSphereCenter is " << helper << ", RelativeOldSphereCenter is " << OldSphereCenter << " and resulting angle is " << alpha << "." << endl;
     244  radius = helper.Distance(&OldSphereCenter);
    251245  helper.ProjectOntoPlane(&NormalVector);
    252246  // check whether new center is somewhat away or at least right over the current baseline to prevent intersecting triangles
    253247  if ((radius > HULLEPSILON) || (helper.Norm() < HULLEPSILON)) {
    254     Log() << Verbose(1) << "INFO: Distance between old and new center is " << radius << " and between new center and baseline center is " << helper.Norm() << "." << endl;
     248    //Log() << Verbose(1) << "INFO: Distance between old and new center is " << radius << " and between new center and baseline center is " << helper.Norm() << "." << endl;
    255249    return alpha;
    256250  } else {
    257     Log() << Verbose(1) << "INFO: NewSphereCenter " << RelativeNewSphereCenter << " is too close to RelativeOldSphereCenter" << RelativeOldSphereCenter << "." << endl;
     251    //Log() << Verbose(1) << "INFO: NewSphereCenter " << helper << " is too close to OldSphereCenter" << OldSphereCenter << "." << endl;
    258252    return 2.*M_PI;
    259253  }
Note: See TracChangeset for help on using the changeset viewer.