Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Development
openfoam
Commits
14240e93
Commit
14240e93
authored
Apr 22, 2013
by
mattijs
Browse files
ENH: treeDataTrisurface: nearest to line
parent
7013bf19
Changes
2
Hide whitespace changes
Inline
Side-by-side
src/meshTools/indexedOctree/treeDataPoint.C
View file @
14240e93
...
...
@@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-201
2
OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-201
3
OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
...
...
@@ -160,7 +160,11 @@ void Foam::treeDataPoint::findNearest
)
const
{
// Best so far
scalar
nearestDistSqr
=
magSqr
(
linePoint
-
nearestPoint
);
scalar
nearestDistSqr
=
GREAT
;
if
(
minIndex
>=
0
)
{
nearestDistSqr
=
magSqr
(
linePoint
-
nearestPoint
);
}
forAll
(
indices
,
i
)
{
...
...
src/meshTools/indexedOctree/treeDataTriSurface.C
View file @
14240e93
...
...
@@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-201
2
OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-201
3
OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
...
...
@@ -404,11 +404,50 @@ void Foam::treeDataTriSurface::findNearest
point
&
nearestPoint
)
const
{
notImplemented
(
"treeDataTriSurface::findNearest(const labelUList&"
", const linePointRef&, treeBoundBox&, label&, point&, point&) const"
);
// Best so far
scalar
nearestDistSqr
=
VGREAT
;
if
(
minIndex
>=
0
)
{
nearestDistSqr
=
magSqr
(
linePoint
-
nearestPoint
);
}
const
pointField
&
points
=
surface_
.
points
();
forAll
(
indices
,
i
)
{
label
index
=
indices
[
i
];
const
triSurface
::
FaceType
&
f
=
surface_
[
index
];
triPointRef
tri
(
f
.
tri
(
points
));
pointHit
lineInfo
(
point
::
max
);
pointHit
pHit
=
tri
.
nearestPoint
(
ln
,
lineInfo
);
scalar
distSqr
=
sqr
(
pHit
.
distance
());
if
(
distSqr
<
nearestDistSqr
)
{
nearestDistSqr
=
distSqr
;
minIndex
=
index
;
linePoint
=
lineInfo
.
rawPoint
();
nearestPoint
=
pHit
.
rawPoint
();
{
point
&
minPt
=
tightest
.
min
();
minPt
=
min
(
ln
.
start
(),
ln
.
end
());
minPt
.
x
()
-=
pHit
.
distance
();
minPt
.
y
()
-=
pHit
.
distance
();
minPt
.
z
()
-=
pHit
.
distance
();
}
{
point
&
maxPt
=
tightest
.
max
();
maxPt
=
max
(
ln
.
start
(),
ln
.
end
());
maxPt
.
x
()
+=
pHit
.
distance
();
maxPt
.
y
()
+=
pHit
.
distance
();
maxPt
.
z
()
+=
pHit
.
distance
();
}
}
}
}
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment