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 | 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.
The code is currently intended for 2D level sets only.
Note for the future: lsToDiskMesh could be used instead of lsToSurfaceMesh, which is probably more efficient but slightly less accurate.