From cbddc9cba4b34f00009de42e58994b67e01295a1 Mon Sep 17 00:00:00 2001 From: David Williams Date: Sat, 24 Nov 2012 12:52:37 +0100 Subject: [PATCH] Added basic dilation and erosion functions. --- .../PolyVoxCore/include/PolyVoxCore/Region.h | 3 +++ library/PolyVoxCore/source/Region.cpp | 22 +++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/library/PolyVoxCore/include/PolyVoxCore/Region.h b/library/PolyVoxCore/include/PolyVoxCore/Region.h index c5ef4335..3c937ca5 100644 --- a/library/PolyVoxCore/include/PolyVoxCore/Region.h +++ b/library/PolyVoxCore/include/PolyVoxCore/Region.h @@ -120,6 +120,9 @@ namespace PolyVox void shiftLowerCorner(const Vector3DInt32& amount); void shiftUpperCorner(const Vector3DInt32& amount); //FIXME - Add dilate and erode functions? + + void dilate(int32_t amount); + void erode(int32_t amount); private: diff --git a/library/PolyVoxCore/source/Region.cpp b/library/PolyVoxCore/source/Region.cpp index 82cae19e..e3c9a4ba 100644 --- a/library/PolyVoxCore/source/Region.cpp +++ b/library/PolyVoxCore/source/Region.cpp @@ -306,4 +306,26 @@ namespace PolyVox m_iUpperY += amount.getY(); m_iUpperZ += amount.getZ(); } + + void Region::dilate(int32_t amount) + { + m_iLowerX -= amount; + m_iLowerY -= amount; + m_iLowerZ -= amount; + + m_iUpperX += amount; + m_iUpperY += amount; + m_iUpperZ += amount; + } + + void Region::erode(int32_t amount) + { + m_iLowerX += amount; + m_iLowerY += amount; + m_iLowerZ += amount; + + m_iUpperX -= amount; + m_iUpperY -= amount; + m_iUpperZ -= amount; + } }