Fix scale calculation in VHACD Volume::Voxelize().
This commit is contained in:
parent
aca9cfa76c
commit
75553c4f90
|
@ -0,0 +1,20 @@
|
|||
diff --git a/thirdparty/vhacd/inc/vhacdVolume.h b/thirdparty/vhacd/inc/vhacdVolume.h
|
||||
index 8c47fa1e2c..c445f20122 100644
|
||||
--- a/thirdparty/vhacd/inc/vhacdVolume.h
|
||||
+++ b/thirdparty/vhacd/inc/vhacdVolume.h
|
||||
@@ -316,13 +316,13 @@ void Volume::Voxelize(const T* const points, const uint32_t stridePoints, const
|
||||
|
||||
double d[3] = { m_maxBB[0] - m_minBB[0], m_maxBB[1] - m_minBB[1], m_maxBB[2] - m_minBB[2] };
|
||||
double r;
|
||||
- if (d[0] > d[1] && d[0] > d[2]) {
|
||||
+ if (d[0] >= d[1] && d[0] >= d[2]) {
|
||||
r = d[0];
|
||||
m_dim[0] = dim;
|
||||
m_dim[1] = 2 + static_cast<size_t>(dim * d[1] / d[0]);
|
||||
m_dim[2] = 2 + static_cast<size_t>(dim * d[2] / d[0]);
|
||||
}
|
||||
- else if (d[1] > d[0] && d[1] > d[2]) {
|
||||
+ else if (d[1] >= d[0] && d[1] >= d[2]) {
|
||||
r = d[1];
|
||||
m_dim[1] = dim;
|
||||
m_dim[0] = 2 + static_cast<size_t>(dim * d[0] / d[1]);
|
|
@ -316,13 +316,13 @@ void Volume::Voxelize(const T* const points, const uint32_t stridePoints, const
|
|||
|
||||
double d[3] = { m_maxBB[0] - m_minBB[0], m_maxBB[1] - m_minBB[1], m_maxBB[2] - m_minBB[2] };
|
||||
double r;
|
||||
if (d[0] > d[1] && d[0] > d[2]) {
|
||||
if (d[0] >= d[1] && d[0] >= d[2]) {
|
||||
r = d[0];
|
||||
m_dim[0] = dim;
|
||||
m_dim[1] = 2 + static_cast<size_t>(dim * d[1] / d[0]);
|
||||
m_dim[2] = 2 + static_cast<size_t>(dim * d[2] / d[0]);
|
||||
}
|
||||
else if (d[1] > d[0] && d[1] > d[2]) {
|
||||
else if (d[1] >= d[0] && d[1] >= d[2]) {
|
||||
r = d[1];
|
||||
m_dim[1] = dim;
|
||||
m_dim[0] = 2 + static_cast<size_t>(dim * d[0] / d[1]);
|
||||
|
|
Loading…
Reference in New Issue