Skip to content

Commit 55400d1

Browse files
committed
Apply neighbour stencil to erosion as well.
Fix tabs. Signed-off-by: jlait <[email protected]>
1 parent 1912b09 commit 55400d1

File tree

1 file changed

+19
-17
lines changed

1 file changed

+19
-17
lines changed

openvdb_houdini/openvdb_houdini/SOP_OpenVDB_Activate.cc

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -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(
248248
R"(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

512512
template <typename GridType>
513513
static 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

Comments
 (0)