Compares critical dimensions (surface positions) between two level sets. Critical dimensions are defined as the maximum or minimum positions where the surface (SDF = 0) exists within a specified range.
More...
|
| | CompareCriticalDimensions () |
| | CompareCriticalDimensions (SmartPointer< Domain< T, D > > passedLevelSetTarget, SmartPointer< Domain< T, D > > passedLevelSetSample) |
| void | setLevelSetTarget (SmartPointer< Domain< T, D > > passedLevelSet) |
| void | setLevelSetSample (SmartPointer< Domain< T, D > > passedLevelSet) |
| void | addRange (int measureDimension, const std::array< T, D > &minBounds, const std::array< T, D > &maxBounds, bool findMaximum=true) |
| | Add a generic range specification.
|
| void | addXRange (T minX, T maxX, bool findMaximum=true) |
| | Add an X range to find maximum or minimum Y position.
|
| void | addYRange (T minY, T maxY, bool findMaximum=true) |
| | Add a Y range to find maximum or minimum X position.
|
| void | clearRanges () |
| | Clear all range specifications.
|
| void | setOutputMesh (SmartPointer< Mesh< T > > passedMesh) |
| | Set the output mesh where critical dimension locations will be stored.
|
| void | apply () |
| | Apply the comparison.
|
| size_t | getNumCriticalDimensions () const |
| | Get the number of critical dimensions compared.
|
| bool | getCriticalDimensionResult (size_t index, T &positionTarget, T &positionSample, T &difference) const |
| | Get a specific critical dimension result.
|
| T | getMeanDifference () const |
| | Get mean absolute difference across all valid critical dimensions.
|
| T | getMaxDifference () const |
| | Get maximum difference across all valid critical dimensions.
|
| T | getRMSE () const |
| | Get RMSE across all valid critical dimensions.
|
| std::vector< T > | getAllDifferences () const |
| | Get all valid results.
|
template<class
T, int D = 2>
class viennals::CompareCriticalDimensions< T, D >
Compares critical dimensions (surface positions) between two level sets. Critical dimensions are defined as the maximum or minimum positions where the surface (SDF = 0) exists within a specified range.
- If X range is specified: finds Y coordinates where surface exists, then identifies max/min Y positions
- If Y range is specified: finds X coordinates where surface exists, then identifies max/min X positions
The surface position is interpolated from grid points where the SDF crosses zero. Multiple ranges can be specified to compare different critical dimensions.
Note for the future: lsToDiskMesh could be used instead of lsToSurfaceMesh, which is probably more efficient but slightly less accurate.