Version=3+BE
special option for version 3 to filter neighbors over boundary elements (BEs)
NEIGHBOR_FilterMethod = ( 3,
NormalShift,
BE_RadiusSize,
nValidNeighbors,
geodeticDistance,
filteringClusterID,
iMethod )
default:
NEIGHBOR_FilterMethod = ( 3,
5,
35,
1,
90,
0,
0 )
-
- NormalShift (in percent!!!): regular boundary point to be shifted by (NormalShift/100)*H towards the interior for ray analysis
- BEsize (negative BEballsize!!!): A radius of abs(BERadiusSize)* H is constrcuted around the point to limit the ray analysis over a reduced list
- nValidNeighbors: a neighbor is plugged back (see ReplugNeighbors) if both have this number of common valid neighbors and NEIGHBOR_FilterMethod(5) >0
- geodeticDistance (in percent!!!): a neighbor is plugged back (see ReplugNeighbors) only if the geodetic distance to the central point is less than (geodeticDistance/100)*H and NEIGHBOR_FilterMethod(5) >0
- filteringClusterID: can be activated with 1; neighbors are filtered out, if they have a different cluster index (see SCAN_ClustersOfConnectivity)
- iMethod: There are several ideas based on a compromise between performance and accuracy. They are listed below:
iMethod = 1 : In this Method, the signed volume of the tetrahedron is calculated between the triangulation of the BE and the current point, as well as between the BE and each potential neighbor.
This check is quite trivial and relatively fast, but the consequence is that it filters out too many neighbors, esp. around corners.
iMethod = 2 : To alleviate the issues arising from Method 1, one actually needs to check the intersections of the ray with the BEs. The angle between the BEnormal and the ray is computed and in addition, a check is done to see if the ray actually hits the plane.
Since this check is a lot more expensive, it is done only over regular boundary points. For interior points, the approach in method 1 works efficiently.
This method handles corner points more effectively but tends to suffer in terms of performance. Overall, it appears more accurate for filtering, which may allow for skipping the replugging algorithm, potentially improving performance.
To skip the replugging algorithm, set
NEIGHBOR_FilterMethod(5) = 0.
Using the approach of checking for ray intersections with the plane for all points, is quite inefficient for pratical purposes.