Added distance to and index of closest surface patch to indexedVertex, using this to preform tests of near surface grading and refinement.
This commit is contained in:
parent
7f2f779779
commit
c09bbf8a25
@ -98,6 +98,10 @@ void Foam::CV3D::setVertexAlignmentDirections()
|
|||||||
|
|
||||||
vector d = pHit.hitPoint() - vert;
|
vector d = pHit.hitPoint() - vert;
|
||||||
|
|
||||||
|
vit->distanceToClosestSurface() = mag(d);
|
||||||
|
|
||||||
|
vit->indexOfClosestPatch() = qSurf_[pHit.index()].region();
|
||||||
|
|
||||||
tensor R = rotationTensor(vector(0,0,1), np);
|
tensor R = rotationTensor(vector(0,0,1), np);
|
||||||
|
|
||||||
label s = 36;
|
label s = 36;
|
||||||
@ -1019,6 +1023,9 @@ void Foam::CV3D::relaxPoints(const scalar relaxation)
|
|||||||
// Use the least similar of globalAlignmentDirs as the
|
// Use the least similar of globalAlignmentDirs as the
|
||||||
// 2nd alignment and then generate the third.
|
// 2nd alignment and then generate the third.
|
||||||
|
|
||||||
|
Warning<< "Using supplementary globalAlignmentDirs."
|
||||||
|
<< endl;
|
||||||
|
|
||||||
scalar minDotProduct = 1+SMALL;
|
scalar minDotProduct = 1+SMALL;
|
||||||
|
|
||||||
alignmentDirs.setSize(3);
|
alignmentDirs.setSize(3);
|
||||||
@ -1048,6 +1055,8 @@ void Foam::CV3D::relaxPoints(const scalar relaxation)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Warning<< "Using all globalAlignmentDirs." << endl;
|
||||||
|
|
||||||
alignmentDirs = globalAlignmentDirs;
|
alignmentDirs = globalAlignmentDirs;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1084,6 +1093,38 @@ void Foam::CV3D::relaxPoints(const scalar relaxation)
|
|||||||
|
|
||||||
// targetCellSize *= 0.56222 - 0.413*midEdgeY;
|
// targetCellSize *= 0.56222 - 0.413*midEdgeY;
|
||||||
|
|
||||||
|
scalar targetCellSizeA = targetCellSize;
|
||||||
|
|
||||||
|
scalar targetCellSizeB = targetCellSize;
|
||||||
|
|
||||||
|
if
|
||||||
|
(
|
||||||
|
vA->indexOfClosestPatch() == 1
|
||||||
|
&& vA->distanceToClosestSurface() < 0.03
|
||||||
|
)
|
||||||
|
{
|
||||||
|
targetCellSizeA *= 0.5;
|
||||||
|
}
|
||||||
|
else if (vA->indexOfClosestPatch() == 0)
|
||||||
|
{
|
||||||
|
targetCellSizeA *= 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
if
|
||||||
|
(
|
||||||
|
vB->indexOfClosestPatch() == 1
|
||||||
|
&& vB->distanceToClosestSurface() < 0.03
|
||||||
|
)
|
||||||
|
{
|
||||||
|
targetCellSizeB *= 0.5;
|
||||||
|
}
|
||||||
|
else if (vB->indexOfClosestPatch() == 0)
|
||||||
|
{
|
||||||
|
targetCellSizeB *= 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
targetCellSize = sqrt(targetCellSizeA * targetCellSizeB);
|
||||||
|
|
||||||
scalar targetFaceArea = targetCellSize*targetCellSize;
|
scalar targetFaceArea = targetCellSize*targetCellSize;
|
||||||
|
|
||||||
if (alignmentDotProd > cosAcceptanceAngle)
|
if (alignmentDotProd > cosAcceptanceAngle)
|
||||||
|
@ -67,6 +67,10 @@ class indexedVertex
|
|||||||
|
|
||||||
Foam::List<Foam::vector> alignmentDirections_;
|
Foam::List<Foam::vector> alignmentDirections_;
|
||||||
|
|
||||||
|
Foam::scalar distanceToClosestSurface_;
|
||||||
|
|
||||||
|
Foam::label indexOfClosestPatch_;
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@ -94,7 +98,9 @@ public:
|
|||||||
Vb(),
|
Vb(),
|
||||||
index_(INTERNAL_POINT),
|
index_(INTERNAL_POINT),
|
||||||
type_(INTERNAL_POINT),
|
type_(INTERNAL_POINT),
|
||||||
alignmentDirections_(0)
|
alignmentDirections_(0),
|
||||||
|
distanceToClosestSurface_(-1),
|
||||||
|
indexOfClosestPatch_(-1)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
indexedVertex(const Point& p)
|
indexedVertex(const Point& p)
|
||||||
@ -102,7 +108,9 @@ public:
|
|||||||
Vb(p),
|
Vb(p),
|
||||||
index_(INTERNAL_POINT),
|
index_(INTERNAL_POINT),
|
||||||
type_(INTERNAL_POINT),
|
type_(INTERNAL_POINT),
|
||||||
alignmentDirections_(0)
|
alignmentDirections_(0),
|
||||||
|
distanceToClosestSurface_(-1),
|
||||||
|
indexOfClosestPatch_(-1)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
indexedVertex(const Point& p, Cell_handle f)
|
indexedVertex(const Point& p, Cell_handle f)
|
||||||
@ -110,7 +118,9 @@ public:
|
|||||||
Vb(f, p),
|
Vb(f, p),
|
||||||
index_(INTERNAL_POINT),
|
index_(INTERNAL_POINT),
|
||||||
type_(INTERNAL_POINT),
|
type_(INTERNAL_POINT),
|
||||||
alignmentDirections_(0)
|
alignmentDirections_(0),
|
||||||
|
distanceToClosestSurface_(-1),
|
||||||
|
indexOfClosestPatch_(-1)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
indexedVertex(Cell_handle f)
|
indexedVertex(Cell_handle f)
|
||||||
@ -118,7 +128,9 @@ public:
|
|||||||
Vb(f),
|
Vb(f),
|
||||||
index_(INTERNAL_POINT),
|
index_(INTERNAL_POINT),
|
||||||
type_(INTERNAL_POINT),
|
type_(INTERNAL_POINT),
|
||||||
alignmentDirections_(0)
|
alignmentDirections_(0),
|
||||||
|
distanceToClosestSurface_(-1),
|
||||||
|
indexOfClosestPatch_(-1)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -142,16 +154,26 @@ public:
|
|||||||
return type_;
|
return type_;
|
||||||
}
|
}
|
||||||
|
|
||||||
Foam::List<Foam::vector>& alignmentDirections()
|
inline Foam::List<Foam::vector>& alignmentDirections()
|
||||||
{
|
{
|
||||||
return alignmentDirections_;
|
return alignmentDirections_;
|
||||||
}
|
}
|
||||||
|
|
||||||
const Foam::List<Foam::vector>& alignmentDirections() const
|
inline const Foam::List<Foam::vector>& alignmentDirections() const
|
||||||
{
|
{
|
||||||
return alignmentDirections_;
|
return alignmentDirections_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline Foam::scalar& distanceToClosestSurface()
|
||||||
|
{
|
||||||
|
return distanceToClosestSurface_;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline Foam::label& indexOfClosestPatch()
|
||||||
|
{
|
||||||
|
return indexOfClosestPatch_;
|
||||||
|
}
|
||||||
|
|
||||||
inline bool uninitialised() const
|
inline bool uninitialised() const
|
||||||
{
|
{
|
||||||
return type_ == INTERNAL_POINT && index_ == INTERNAL_POINT;
|
return type_ == INTERNAL_POINT && index_ == INTERNAL_POINT;
|
||||||
|
@ -888,14 +888,16 @@ void Foam::CV3D::insertSurfaceNearestPointPairs()
|
|||||||
|
|
||||||
if (edgePoints.size())
|
if (edgePoints.size())
|
||||||
{
|
{
|
||||||
smoothEdgePositions(edgePoints, edgeLabels);
|
Warning<< "Edge point insertion disabled." << endl;
|
||||||
|
|
||||||
insertEdgePointGroups
|
// smoothEdgePositions(edgePoints, edgeLabels);
|
||||||
(
|
|
||||||
edgePoints,
|
// insertEdgePointGroups
|
||||||
edgeLabels,
|
// (
|
||||||
"surfaceNearestEdgePoints.obj"
|
// edgePoints,
|
||||||
);
|
// edgeLabels,
|
||||||
|
// "surfaceNearestEdgePoints.obj"
|
||||||
|
// );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user