void findNearest ( const searchableSurfaces& geometry, const labelList& surfaces, const pointField& start, const scalarField& distSqr, pointField& near, List<pointConstraint>& constraint ) { // Multi-surface findNearest vectorField normal; List<pointIndexHit> info; geometry[surfaces[0]].findNearest(start, distSqr, info); geometry[surfaces[0]].getNormal(info, normal); // Extract useful info near.setSize(info.size()); forAll(info, i) { near[i] = info[i].hitPoint(); } constraint.setSize(near.size()); if (surfaces.size() == 1) { constraint = pointConstraint(); forAll(constraint, i) { constraint[i].applyConstraint(normal[i]); }
void Foam::searchableCylinder::boundingSpheres ( pointField& centres, scalarField& radiusSqr ) const { centres.setSize(1); centres[0] = 0.5*(point1_ + point2_); radiusSqr.setSize(1); radiusSqr[0] = Foam::magSqr(point1_-centres[0]) + Foam::sqr(radius_); // Add a bit to make sure all points are tested inside radiusSqr += Foam::sqr(SMALL); }
void Foam::searchablePlate::boundingSpheres ( pointField& centres, scalarField& radiusSqr ) const { centres.setSize(1); centres[0] = origin_ + 0.5*span_; radiusSqr.setSize(1); radiusSqr[0] = Foam::magSqr(0.5*span_); // Add a bit to make sure all points are tested inside radiusSqr += Foam::sqr(SMALL); }
void Foam::searchableDisk::boundingSpheres ( pointField& centres, scalarField& radiusSqr ) const { centres.setSize(1); centres[0] = origin_; radiusSqr.setSize(1); radiusSqr[0] = sqr(radius_); // Add a bit to make sure all points are tested inside radiusSqr += Foam::sqr(small); }
void Foam::hexCellLooper::makeFace ( const labelList& loop, const scalarField& loopWeights, labelList& faceVerts, pointField& facePoints ) const { facePoints.setSize(loop.size()); faceVerts.setSize(loop.size()); forAll(loop, cutI) { label cut = loop[cutI]; if (isEdge(cut)) { label edgeI = getEdge(cut); const edge& e = mesh().edges()[edgeI]; const point& v0 = mesh().points()[e.start()]; const point& v1 = mesh().points()[e.end()]; facePoints[cutI] = loopWeights[cutI]*v1 + (1.0-loopWeights[cutI])*v0; } else { label vertI = getVertex(cut); facePoints[cutI] = mesh().points()[vertI]; } faceVerts[cutI] = cutI; }