35 const scalar distSqr =
magSqr(pt-origin_);
38 scalar levelSize = level0Size_/(1<<originLevel_);
42 for (label level = originLevel_; level >= 0; --level)
60 inline bool Foam::refinementDistanceData::update
69 if (!neighbourInfo.
valid())
74 operator=(neighbourInfo);
79 label cellLevel = wantedLevel(pos);
84 if (nbrLevel > cellLevel)
86 operator=(neighbourInfo);
89 else if (nbrLevel == cellLevel)
91 scalar myDistSqr =
magSqr(pos-origin_);
92 scalar nbrDistSqr =
magSqr(pos - neighbourInfo.
origin());
93 scalar diff = myDistSqr - nbrDistSqr;
101 if ((diff < SMALL) || ((myDistSqr > SMALL) && (diff/myDistSqr < tol)))
109 operator=(neighbourInfo);
132 const scalar level0Size,
134 const label originLevel
137 level0Size_(level0Size),
139 originLevel_(originLevel)
147 return level0Size_ != -1;
167 const label patchFaceI,
168 const point& faceCentre
171 origin_ -= faceCentre;
190 const label patchFaceI,
191 const point& faceCentre
195 origin_ += faceCentre;
203 const label thisCellI,
204 const label neighbourFaceI,
211 return update(pos, neighbourInfo, tol);
219 const label thisFaceI,
220 const label neighbourCellI,
227 return update(pos, neighbourInfo, tol);
235 const label thisFaceI,
242 return update(pos, neighbourInfo, tol);
248 inline bool Foam::refinementDistanceData::operator==
268 level0Size_ == rhs.level0Size_
269 && origin_ == rhs.origin_
270 && originLevel_ == rhs.originLevel_;
275 inline bool Foam::refinementDistanceData::operator!=
281 return !(*
this == rhs);