List of all members.
Classes |
| struct | Compartment |
Public Member Functions |
| | Array3DFloodfill (const Array3D< T > &input, T threshold, bool aboveisovalue, Array3D< T > &output) |
| | ~Array3DFloodfill () |
| void | setOutsideValue (T val) |
| void | setInsideValue (T val) |
| void | useInputValue (bool yn) |
| void | use6Neighbors (bool yn) |
| void | addSeed (int, int, int) |
| bool | isAboveIsovalue () const |
| int | maxNrThreads () |
| od_int64 | nrIterations () const |
Protected Member Functions |
| void | setOutput (int, int, int, bool addseed) |
| bool | doWork (od_int64 start, od_int64 stop, int) |
| int | getNextWorkCompartment () |
| void | returnCompartment (int) |
| int | getWorkCompartment (int, int, int) const |
Protected Attributes |
| T | threshold_ |
| bool | aboveisovalue_ |
| int | use6neighbors_ |
| bool | useinputval_ |
| T | insideval_ |
| T | outsideval_ |
| int | nrcomp0_ |
| int | compsz0_ |
| int | nrcomp1_ |
| int | compsz1_ |
| int | nrcomp2_ |
| int | compsz2_ |
| int | sz0_ |
| int | sz1_ |
| int | sz2_ |
| ObjectSet< Compartment > | compartments_ |
| Threads::ConditionVar | compartmentlock_ |
| TypeSet< int > | permutation_ |
| const Array3D< T > & | input_ |
| | Not protected.
|
| Array3D< T > & | output_ |
| Array3DImpl< bool > * | isdefined_ |
Detailed Description
template<class T>
class Array3DFloodfill< T >
Given an input array and a threshold, we use flood fill to find all the locations with values less (or greater) than the threshold based on seeds. User has the option to set inside or outside value on the output.
Example: Given known array, threshold, T=float
Array3DImpl<float> output( array.info() ); Array3DFloodfill<float> floodfill( arr, threshold, max, output ); floodfill.setOutsideValue( 1e+5 );
floodfill.addSeed(0,0,0); At least one seed's value should be bigger than the threshold if max (or smaller if !max)
floodfill.execute();
Constructor & Destructor Documentation
Member Function Documentation
template<class T >
| bool Array3DFloodfill< T >::doWork |
( |
od_int64 |
start, |
|
|
od_int64 |
stop, |
|
|
int |
| |
|
) |
| | [inline, protected] |
template<class T >
| int Array3DFloodfill< T >::getWorkCompartment |
( |
int |
x0, |
|
|
int |
x1, |
|
|
int |
x2 | |
|
) |
| | const [inline, protected] |
If udf, input value will be used.
template<class T >
| void Array3DFloodfill< T >::setOutput |
( |
int |
x0, |
|
|
int |
x1, |
|
|
int |
x2, |
|
|
bool |
addseed | |
|
) |
| | [inline, protected] |
If udf, uDf(T) will be set. Must be set if use Marchingcubes.
Member Data Documentation
Protects the isused_ flags on the compartments.
The locks_ on the compartment protects 'its' part of the array.
The locks_ on the compartment protects 'its' part of the array.