@@ -237,14 +237,14 @@ operation or setting of values.)"));
237237 Specifies which nearby voxels are considered neighbors for expansion.
238238*/
239239 parms.add (hutil::ParmFactory (PRM_STRING, " expansionpattern" , " Expansion Pattern" )
240- .setChoiceListItems (PRM_CHOICELIST_SINGLE, {
241- " face" , " Plus" ,
242- " faceedge" , " Diamond" ,
243- " faceedgevertex" , " Box"
244- })
245- .setDefault (" face" )
246- .setTooltip (" Set pattern used to identify neighbor voxels for expansion." )
247- .setDocumentation (
240+ .setChoiceListItems (PRM_CHOICELIST_SINGLE, {
241+ " face" , " Plus" ,
242+ " faceedge" , " Diamond" ,
243+ " faceedgevertex" , " Box"
244+ })
245+ .setDefault (" face" )
246+ .setTooltip (" Set pattern used to identify neighbor voxels for expansion." )
247+ .setDocumentation (
248248R"( Specifies which nearby voxels are considered neighbors for expansion.)" ));
249249
250250 parms.addFolder (" Reference" );
@@ -511,9 +511,9 @@ sopDilateVoxels(GridType& grid, exint count, openvdb::tools::NearestNeighbors nn
511511
512512template <typename GridType>
513513static void
514- sopErodeVoxels (GridType& grid, exint count)
514+ sopErodeVoxels (GridType& grid, exint count, openvdb::tools::NearestNeighbors nn )
515515{
516- openvdb::tools::erodeActiveValues (grid.tree (), static_cast <int >(count));
516+ openvdb::tools::erodeActiveValues (grid.tree (), static_cast <int >(count), nn );
517517 if (grid.getGridClass () == openvdb::GRID_LEVEL_SET) {
518518 openvdb::tools::pruneLevelSet (grid.tree ());
519519 }
@@ -687,17 +687,19 @@ SOP_VDBActivate::Cache::cookVDBSop(OP_Context &context)
687687 evalFloat (" expanddist" , 0 , t),
688688 vdb->getVoxelDiameter ())));
689689
690+ NearestNeighbors nn = NN_FACE;
691+ const auto str = evalStdString (" expansionpattern" , t);
692+ if (str == " faceedge" )
693+ nn = NN_FACE_EDGE;
694+ else if (str == " faceedgevertex" )
695+ nn = NN_FACE_EDGE_VERTEX;
696+
690697 exint maxdilate = SYSmax (dilatevoxels, dilatedist);
691698 if (maxdilate > 0 )
692699 {
693700 if (boss->opInterrupt ())
694701 break ;
695- NearestNeighbors nn = NN_FACE;
696- const auto str = evalStdString (" expansionpattern" , t);
697- if (str == " faceedge" )
698- nn = NN_FACE_EDGE;
699- else if (str == " faceedgevertex" )
700- nn = NN_FACE_EDGE_VERTEX;
702+
701703 UTvdbCallAllTopology (vdb->getStorageType (),
702704 sopDilateVoxels,
703705 vdb->getGrid (), maxdilate, nn);
@@ -710,7 +712,7 @@ SOP_VDBActivate::Cache::cookVDBSop(OP_Context &context)
710712 break ;
711713 UTvdbCallAllTopology (vdb->getStorageType (),
712714 sopErodeVoxels,
713- vdb->getGrid (), -mindilate);
715+ vdb->getGrid (), -mindilate, nn );
714716 }
715717 if (mindilate < 0 && maxdilate > 0 )
716718 {
0 commit comments