From b7eeda33705cd7317f9e56be0e1fe33e5e6ff79a Mon Sep 17 00:00:00 2001 From: Daviw Williams Date: Fri, 8 Feb 2013 16:15:53 +0100 Subject: [PATCH] Find and replace all instance of getLowerCorner().getX(), etc with getLowerX(), etc has resulted in all tests now running in 120 seconds instead of 144 seconds because it avoids creating temporary objects. --- examples/Paging/main.cpp | 6 +- .../AmbientOcclusionCalculator.inl | 10 +-- .../include/PolyVoxCore/BaseVolume.inl | 6 +- .../CubicSurfaceExtractorWithNormals.inl | 12 +-- .../PolyVoxCore/IteratorController.inl | 10 +-- .../include/PolyVoxCore/LowPassFilter.inl | 24 +++--- .../MarchingCubesSurfaceExtractor.inl | 84 +++++++++---------- .../include/PolyVoxCore/SimpleVolume.inl | 12 +-- .../include/PolyVoxCore/VolumeResampler.inl | 36 ++++---- 9 files changed, 100 insertions(+), 100 deletions(-) diff --git a/examples/Paging/main.cpp b/examples/Paging/main.cpp index 4a6c3cfe..b4e60974 100644 --- a/examples/Paging/main.cpp +++ b/examples/Paging/main.cpp @@ -201,15 +201,15 @@ void load(const ConstVolumeProxy& volume, const PolyVox:: { Perlin perlin(2,2,1,234); - for(int x = reg.getLowerCorner().getX(); x <= reg.getUpperCorner().getX(); x++) + for(int x = reg.getLowerX(); x <= reg.getUpperX(); x++) { - for(int y = reg.getLowerCorner().getY(); y <= reg.getUpperCorner().getY(); y++) + for(int y = reg.getLowerY(); y <= reg.getUpperY(); y++) { float perlinVal = perlin.Get(x / static_cast(255-1), y / static_cast(255-1)); perlinVal += 1.0f; perlinVal *= 0.5f; perlinVal *= 255; - for(int z = reg.getLowerCorner().getZ(); z <= reg.getUpperCorner().getZ(); z++) + for(int z = reg.getLowerZ(); z <= reg.getUpperZ(); z++) { MaterialDensityPair44 voxel; if(z < perlinVal) diff --git a/library/PolyVoxCore/include/PolyVoxCore/AmbientOcclusionCalculator.inl b/library/PolyVoxCore/include/PolyVoxCore/AmbientOcclusionCalculator.inl index 95c1410e..27ff3188 100644 --- a/library/PolyVoxCore/include/PolyVoxCore/AmbientOcclusionCalculator.inl +++ b/library/PolyVoxCore/include/PolyVoxCore/AmbientOcclusionCalculator.inl @@ -45,8 +45,8 @@ namespace PolyVox //Our initial indices. It doesn't matter exactly what we set here, but the code below makes //sure they are different for different regions which helps reduce tiling patterns in the results. - uRandomUnitVectorIndex += region.getLowerCorner().getX() + region.getLowerCorner().getY() + region.getLowerCorner().getZ(); - uRandomVectorIndex += region.getLowerCorner().getX() + region.getLowerCorner().getY() + region.getLowerCorner().getZ(); + uRandomUnitVectorIndex += region.getLowerX() + region.getLowerY() + region.getLowerZ(); + uRandomVectorIndex += region.getLowerX() + region.getLowerY() + region.getLowerZ(); //This value helps us jump around in the array a bit more, so the //nth 'random' value isn't always followed by the n+1th 'random' value. @@ -69,11 +69,11 @@ namespace PolyVox const Vector3DFloat v3dOffset(0.5f,0.5f,0.5f); //This loop iterates over the bottom-lower-left voxel in each of the cells in the output array - for(uint16_t z = region.getLowerCorner().getZ(); z <= region.getUpperCorner().getZ(); z += iRatioZ) + for(uint16_t z = region.getLowerZ(); z <= region.getUpperZ(); z += iRatioZ) { - for(uint16_t y = region.getLowerCorner().getY(); y <= region.getUpperCorner().getY(); y += iRatioY) + for(uint16_t y = region.getLowerY(); y <= region.getUpperY(); y += iRatioY) { - for(uint16_t x = region.getLowerCorner().getX(); x <= region.getUpperCorner().getX(); x += iRatioX) + for(uint16_t x = region.getLowerX(); x <= region.getUpperX(); x += iRatioX) { //Compute a start position corresponding to //the centre of the cell in the output array. diff --git a/library/PolyVoxCore/include/PolyVoxCore/BaseVolume.inl b/library/PolyVoxCore/include/PolyVoxCore/BaseVolume.inl index 77949413..96c5ddf0 100644 --- a/library/PolyVoxCore/include/PolyVoxCore/BaseVolume.inl +++ b/library/PolyVoxCore/include/PolyVoxCore/BaseVolume.inl @@ -96,7 +96,7 @@ namespace PolyVox template int32_t BaseVolume::getWidth(void) const { - return m_regValidRegion.getUpperCorner().getX() - m_regValidRegion.getLowerCorner().getX() + 1; + return m_regValidRegion.getUpperX() - m_regValidRegion.getLowerX() + 1; } //////////////////////////////////////////////////////////////////////////////// @@ -106,7 +106,7 @@ namespace PolyVox template int32_t BaseVolume::getHeight(void) const { - return m_regValidRegion.getUpperCorner().getY() - m_regValidRegion.getLowerCorner().getY() + 1; + return m_regValidRegion.getUpperY() - m_regValidRegion.getLowerY() + 1; } //////////////////////////////////////////////////////////////////////////////// @@ -116,7 +116,7 @@ namespace PolyVox template int32_t BaseVolume::getDepth(void) const { - return m_regValidRegion.getUpperCorner().getZ() - m_regValidRegion.getLowerCorner().getZ() + 1; + return m_regValidRegion.getUpperZ() - m_regValidRegion.getLowerZ() + 1; } //////////////////////////////////////////////////////////////////////////////// diff --git a/library/PolyVoxCore/include/PolyVoxCore/CubicSurfaceExtractorWithNormals.inl b/library/PolyVoxCore/include/PolyVoxCore/CubicSurfaceExtractorWithNormals.inl index 5e16d3b8..dca5f911 100644 --- a/library/PolyVoxCore/include/PolyVoxCore/CubicSurfaceExtractorWithNormals.inl +++ b/library/PolyVoxCore/include/PolyVoxCore/CubicSurfaceExtractorWithNormals.inl @@ -40,16 +40,16 @@ namespace PolyVox { m_meshCurrent->clear(); - for(int32_t z = m_regSizeInVoxels.getLowerCorner().getZ(); z < m_regSizeInVoxels.getUpperCorner().getZ(); z++) + for(int32_t z = m_regSizeInVoxels.getLowerZ(); z < m_regSizeInVoxels.getUpperZ(); z++) { - for(int32_t y = m_regSizeInVoxels.getLowerCorner().getY(); y < m_regSizeInVoxels.getUpperCorner().getY(); y++) + for(int32_t y = m_regSizeInVoxels.getLowerY(); y < m_regSizeInVoxels.getUpperY(); y++) { - for(int32_t x = m_regSizeInVoxels.getLowerCorner().getX(); x < m_regSizeInVoxels.getUpperCorner().getX(); x++) + for(int32_t x = m_regSizeInVoxels.getLowerX(); x < m_regSizeInVoxels.getUpperX(); x++) { // these are always positive anyway - float regX = static_cast(x - m_regSizeInVoxels.getLowerCorner().getX()); - float regY = static_cast(y - m_regSizeInVoxels.getLowerCorner().getY()); - float regZ = static_cast(z - m_regSizeInVoxels.getLowerCorner().getZ()); + float regX = static_cast(x - m_regSizeInVoxels.getLowerX()); + float regY = static_cast(y - m_regSizeInVoxels.getLowerY()); + float regZ = static_cast(z - m_regSizeInVoxels.getLowerZ()); uint32_t material = 0; diff --git a/library/PolyVoxCore/include/PolyVoxCore/IteratorController.inl b/library/PolyVoxCore/include/PolyVoxCore/IteratorController.inl index d5aef352..58246823 100644 --- a/library/PolyVoxCore/include/PolyVoxCore/IteratorController.inl +++ b/library/PolyVoxCore/include/PolyVoxCore/IteratorController.inl @@ -34,24 +34,24 @@ namespace PolyVox { Vector3DInt32 v3dInitialPosition(m_Iter->getPosition().getX(), m_Iter->getPosition().getY(), m_Iter->getPosition().getZ()); - if(v3dInitialPosition.getX() < m_regValid.getUpperCorner().getX()) + if(v3dInitialPosition.getX() < m_regValid.getUpperX()) { m_Iter->movePositiveX(); return true; } - v3dInitialPosition.setX(m_regValid.getLowerCorner().getX()); + v3dInitialPosition.setX(m_regValid.getLowerX()); - if(v3dInitialPosition.getY() < m_regValid.getUpperCorner().getY()) + if(v3dInitialPosition.getY() < m_regValid.getUpperY()) { v3dInitialPosition.setY(v3dInitialPosition.getY() + 1); m_Iter->setPosition(v3dInitialPosition); return true; } - v3dInitialPosition.setY(m_regValid.getLowerCorner().getY()); + v3dInitialPosition.setY(m_regValid.getLowerY()); - if(v3dInitialPosition.getZ() < m_regValid.getUpperCorner().getZ()) + if(v3dInitialPosition.getZ() < m_regValid.getUpperZ()) { v3dInitialPosition.setZ(v3dInitialPosition.getZ() + 1); m_Iter->setPosition(v3dInitialPosition); diff --git a/library/PolyVoxCore/include/PolyVoxCore/LowPassFilter.inl b/library/PolyVoxCore/include/PolyVoxCore/LowPassFilter.inl index cb455921..e6093723 100644 --- a/library/PolyVoxCore/include/PolyVoxCore/LowPassFilter.inl +++ b/library/PolyVoxCore/include/PolyVoxCore/LowPassFilter.inl @@ -53,21 +53,21 @@ namespace PolyVox template< typename SrcVolumeType, typename DstVolumeType, typename AccumulationType> void LowPassFilter::execute() { - int32_t iSrcMinX = m_regSrc.getLowerCorner().getX(); - int32_t iSrcMinY = m_regSrc.getLowerCorner().getY(); - int32_t iSrcMinZ = m_regSrc.getLowerCorner().getZ(); + int32_t iSrcMinX = m_regSrc.getLowerX(); + int32_t iSrcMinY = m_regSrc.getLowerY(); + int32_t iSrcMinZ = m_regSrc.getLowerZ(); - int32_t iSrcMaxX = m_regSrc.getUpperCorner().getX(); - int32_t iSrcMaxY = m_regSrc.getUpperCorner().getY(); - int32_t iSrcMaxZ = m_regSrc.getUpperCorner().getZ(); + int32_t iSrcMaxX = m_regSrc.getUpperX(); + int32_t iSrcMaxY = m_regSrc.getUpperY(); + int32_t iSrcMaxZ = m_regSrc.getUpperZ(); - int32_t iDstMinX = m_regDst.getLowerCorner().getX(); - int32_t iDstMinY = m_regDst.getLowerCorner().getY(); - int32_t iDstMinZ = m_regDst.getLowerCorner().getZ(); + int32_t iDstMinX = m_regDst.getLowerX(); + int32_t iDstMinY = m_regDst.getLowerY(); + int32_t iDstMinZ = m_regDst.getLowerZ(); - //int32_t iDstMaxX = m_regDst.getUpperCorner().getX(); - //int32_t iDstMaxY = m_regDst.getUpperCorner().getY(); - //int32_t iDstMaxZ = m_regDst.getUpperCorner().getZ(); + //int32_t iDstMaxX = m_regDst.getUpperX(); + //int32_t iDstMaxY = m_regDst.getUpperY(); + //int32_t iDstMaxZ = m_regDst.getUpperZ(); typename SrcVolumeType::Sampler srcSampler(m_pVolSrc); diff --git a/library/PolyVoxCore/include/PolyVoxCore/MarchingCubesSurfaceExtractor.inl b/library/PolyVoxCore/include/PolyVoxCore/MarchingCubesSurfaceExtractor.inl index 78e90c0a..22e1373d 100644 --- a/library/PolyVoxCore/include/PolyVoxCore/MarchingCubesSurfaceExtractor.inl +++ b/library/PolyVoxCore/include/PolyVoxCore/MarchingCubesSurfaceExtractor.inl @@ -44,8 +44,8 @@ namespace PolyVox { m_meshCurrent->clear(); - const uint32_t uArrayWidth = m_regSizeInVoxels.getUpperCorner().getX() - m_regSizeInVoxels.getLowerCorner().getX() + 1; - const uint32_t uArrayHeight = m_regSizeInVoxels.getUpperCorner().getY() - m_regSizeInVoxels.getLowerCorner().getY() + 1; + const uint32_t uArrayWidth = m_regSizeInVoxels.getUpperX() - m_regSizeInVoxels.getLowerX() + 1; + const uint32_t uArrayHeight = m_regSizeInVoxels.getUpperY() - m_regSizeInVoxels.getLowerY() + 1; const uint32_t arraySizes[2]= {uArrayWidth, uArrayHeight}; // Array dimensions //For edge indices @@ -62,7 +62,7 @@ namespace PolyVox //Create a region corresponding to the first slice m_regSlicePrevious = m_regSizeInVoxels; Vector3DInt32 v3dUpperCorner = m_regSlicePrevious.getUpperCorner(); - v3dUpperCorner.setZ(m_regSlicePrevious.getLowerCorner().getZ()); //Set the upper z to the lower z to make it one slice thick. + v3dUpperCorner.setZ(m_regSlicePrevious.getLowerZ()); //Set the upper z to the lower z to make it one slice thick. m_regSlicePrevious.setUpperCorner(v3dUpperCorner); m_regSliceCurrent = m_regSlicePrevious; @@ -91,7 +91,7 @@ namespace PolyVox m_regSliceCurrent.shift(Vector3DInt32(0,0,1)); //Process the other slices (previous slice is available) - for(int32_t uSlice = 1; uSlice <= m_regSizeInVoxels.getUpperCorner().getZ() - m_regSizeInVoxels.getLowerCorner().getZ(); uSlice++) + for(int32_t uSlice = 1; uSlice <= m_regSizeInVoxels.getUpperZ() - m_regSizeInVoxels.getLowerZ(); uSlice++) { computeBitmaskForSlice(pPreviousBitmask, pCurrentBitmask); uNoOfNonEmptyCellsForSlice1 = m_uNoOfOccupiedCells; @@ -134,29 +134,29 @@ namespace PolyVox { m_uNoOfOccupiedCells = 0; - const int32_t iMaxXVolSpace = m_regSliceCurrent.getUpperCorner().getX(); - const int32_t iMaxYVolSpace = m_regSliceCurrent.getUpperCorner().getY(); + const int32_t iMaxXVolSpace = m_regSliceCurrent.getUpperX(); + const int32_t iMaxYVolSpace = m_regSliceCurrent.getUpperY(); - const int32_t iZVolSpace = m_regSliceCurrent.getLowerCorner().getZ(); + const int32_t iZVolSpace = m_regSliceCurrent.getLowerZ(); //Process the lower left corner - int32_t iYVolSpace = m_regSliceCurrent.getLowerCorner().getY(); - int32_t iXVolSpace = m_regSliceCurrent.getLowerCorner().getX(); + int32_t iYVolSpace = m_regSliceCurrent.getLowerY(); + int32_t iXVolSpace = m_regSliceCurrent.getLowerX(); - uint32_t uXRegSpace = iXVolSpace - m_regSizeInVoxels.getLowerCorner().getX(); - uint32_t uYRegSpace = iYVolSpace - m_regSizeInVoxels.getLowerCorner().getY(); + uint32_t uXRegSpace = iXVolSpace - m_regSizeInVoxels.getLowerX(); + uint32_t uYRegSpace = iYVolSpace - m_regSizeInVoxels.getLowerY(); m_sampVolume.setPosition(iXVolSpace,iYVolSpace,iZVolSpace); computeBitmaskForCell(pPreviousBitmask, pCurrentBitmask, uXRegSpace, uYRegSpace); //Process the edge where x is minimal. - iXVolSpace = m_regSliceCurrent.getLowerCorner().getX(); - m_sampVolume.setPosition(iXVolSpace, m_regSliceCurrent.getLowerCorner().getY(), iZVolSpace); - for(iYVolSpace = m_regSliceCurrent.getLowerCorner().getY() + 1; iYVolSpace <= iMaxYVolSpace; iYVolSpace++) + iXVolSpace = m_regSliceCurrent.getLowerX(); + m_sampVolume.setPosition(iXVolSpace, m_regSliceCurrent.getLowerY(), iZVolSpace); + for(iYVolSpace = m_regSliceCurrent.getLowerY() + 1; iYVolSpace <= iMaxYVolSpace; iYVolSpace++) { - uXRegSpace = iXVolSpace - m_regSizeInVoxels.getLowerCorner().getX(); - uYRegSpace = iYVolSpace - m_regSizeInVoxels.getLowerCorner().getY(); + uXRegSpace = iXVolSpace - m_regSizeInVoxels.getLowerX(); + uYRegSpace = iYVolSpace - m_regSizeInVoxels.getLowerY(); m_sampVolume.movePositiveY(); @@ -164,12 +164,12 @@ namespace PolyVox } //Process the edge where y is minimal. - iYVolSpace = m_regSliceCurrent.getLowerCorner().getY(); - m_sampVolume.setPosition(m_regSliceCurrent.getLowerCorner().getX(), iYVolSpace, iZVolSpace); - for(iXVolSpace = m_regSliceCurrent.getLowerCorner().getX() + 1; iXVolSpace <= iMaxXVolSpace; iXVolSpace++) + iYVolSpace = m_regSliceCurrent.getLowerY(); + m_sampVolume.setPosition(m_regSliceCurrent.getLowerX(), iYVolSpace, iZVolSpace); + for(iXVolSpace = m_regSliceCurrent.getLowerX() + 1; iXVolSpace <= iMaxXVolSpace; iXVolSpace++) { - uXRegSpace = iXVolSpace - m_regSizeInVoxels.getLowerCorner().getX(); - uYRegSpace = iYVolSpace - m_regSizeInVoxels.getLowerCorner().getY(); + uXRegSpace = iXVolSpace - m_regSizeInVoxels.getLowerX(); + uYRegSpace = iYVolSpace - m_regSizeInVoxels.getLowerY(); m_sampVolume.movePositiveX(); @@ -177,13 +177,13 @@ namespace PolyVox } //Process all remaining elemnents of the slice. In this case, previous x and y values are always available - for(iYVolSpace = m_regSliceCurrent.getLowerCorner().getY() + 1; iYVolSpace <= iMaxYVolSpace; iYVolSpace++) + for(iYVolSpace = m_regSliceCurrent.getLowerY() + 1; iYVolSpace <= iMaxYVolSpace; iYVolSpace++) { - m_sampVolume.setPosition(m_regSliceCurrent.getLowerCorner().getX(), iYVolSpace, iZVolSpace); - for(iXVolSpace = m_regSliceCurrent.getLowerCorner().getX() + 1; iXVolSpace <= iMaxXVolSpace; iXVolSpace++) + m_sampVolume.setPosition(m_regSliceCurrent.getLowerX(), iYVolSpace, iZVolSpace); + for(iXVolSpace = m_regSliceCurrent.getLowerX() + 1; iXVolSpace <= iMaxXVolSpace; iXVolSpace++) { - uXRegSpace = iXVolSpace - m_regSizeInVoxels.getLowerCorner().getX(); - uYRegSpace = iYVolSpace - m_regSizeInVoxels.getLowerCorner().getY(); + uXRegSpace = iXVolSpace - m_regSizeInVoxels.getLowerX(); + uYRegSpace = iYVolSpace - m_regSizeInVoxels.getLowerY(); m_sampVolume.movePositiveX(); @@ -400,17 +400,17 @@ namespace PolyVox Array2DInt32& m_pCurrentVertexIndicesY, Array2DInt32& m_pCurrentVertexIndicesZ) { - const int32_t iZVolSpace = m_regSliceCurrent.getLowerCorner().getZ(); + const int32_t iZVolSpace = m_regSliceCurrent.getLowerZ(); //Iterate over each cell in the region - for(int32_t iYVolSpace = m_regSliceCurrent.getLowerCorner().getY(); iYVolSpace <= m_regSliceCurrent.getUpperCorner().getY(); iYVolSpace++) + for(int32_t iYVolSpace = m_regSliceCurrent.getLowerY(); iYVolSpace <= m_regSliceCurrent.getUpperY(); iYVolSpace++) { - const uint32_t uYRegSpace = iYVolSpace - m_regSizeInVoxels.getLowerCorner().getY(); + const uint32_t uYRegSpace = iYVolSpace - m_regSizeInVoxels.getLowerY(); - for(int32_t iXVolSpace = m_regSliceCurrent.getLowerCorner().getX(); iXVolSpace <= m_regSliceCurrent.getUpperCorner().getX(); iXVolSpace++) + for(int32_t iXVolSpace = m_regSliceCurrent.getLowerX(); iXVolSpace <= m_regSliceCurrent.getUpperX(); iXVolSpace++) { //Current position - const uint32_t uXRegSpace = iXVolSpace - m_regSizeInVoxels.getLowerCorner().getX(); + const uint32_t uXRegSpace = iXVolSpace - m_regSizeInVoxels.getLowerX(); //Determine the index into the edge table which tells us which vertices are inside of the surface const uint8_t iCubeIndex = pCurrentBitmask[uXRegSpace][uYRegSpace]; @@ -437,7 +437,7 @@ namespace PolyVox const float fInterp = static_cast(m_tThreshold - m_controller.convertToDensity(v000)) / static_cast(m_controller.convertToDensity(v100) - m_controller.convertToDensity(v000)); - const Vector3DFloat v3dPosition(static_cast(iXVolSpace - m_regSizeInVoxels.getLowerCorner().getX()) + fInterp, static_cast(iYVolSpace - m_regSizeInVoxels.getLowerCorner().getY()), static_cast(iZVolSpace - m_regSizeInCells.getLowerCorner().getZ())); + const Vector3DFloat v3dPosition(static_cast(iXVolSpace - m_regSizeInVoxels.getLowerX()) + fInterp, static_cast(iYVolSpace - m_regSizeInVoxels.getLowerY()), static_cast(iZVolSpace - m_regSizeInCells.getLowerZ())); Vector3DFloat v3dNormal = (n100*fInterp) + (n000*(1-fInterp)); v3dNormal.normalise(); @@ -451,7 +451,7 @@ namespace PolyVox const PositionMaterialNormal surfaceVertex(v3dPosition, v3dNormal, static_cast(uMaterial)); const uint32_t uLastVertexIndex = m_meshCurrent->addVertex(surfaceVertex); - m_pCurrentVertexIndicesX[iXVolSpace - m_regSizeInVoxels.getLowerCorner().getX()][iYVolSpace - m_regSizeInVoxels.getLowerCorner().getY()] = uLastVertexIndex; + m_pCurrentVertexIndicesX[iXVolSpace - m_regSizeInVoxels.getLowerX()][iYVolSpace - m_regSizeInVoxels.getLowerY()] = uLastVertexIndex; m_sampVolume.moveNegativeX(); } @@ -463,7 +463,7 @@ namespace PolyVox const float fInterp = static_cast(m_tThreshold - m_controller.convertToDensity(v000)) / static_cast(m_controller.convertToDensity(v010) - m_controller.convertToDensity(v000)); - const Vector3DFloat v3dPosition(static_cast(iXVolSpace - m_regSizeInVoxels.getLowerCorner().getX()), static_cast(iYVolSpace - m_regSizeInVoxels.getLowerCorner().getY()) + fInterp, static_cast(iZVolSpace - m_regSizeInVoxels.getLowerCorner().getZ())); + const Vector3DFloat v3dPosition(static_cast(iXVolSpace - m_regSizeInVoxels.getLowerX()), static_cast(iYVolSpace - m_regSizeInVoxels.getLowerY()) + fInterp, static_cast(iZVolSpace - m_regSizeInVoxels.getLowerZ())); Vector3DFloat v3dNormal = (n010*fInterp) + (n000*(1-fInterp)); v3dNormal.normalise(); @@ -477,7 +477,7 @@ namespace PolyVox const PositionMaterialNormal surfaceVertex(v3dPosition, v3dNormal, static_cast(uMaterial)); const uint32_t uLastVertexIndex = m_meshCurrent->addVertex(surfaceVertex); - m_pCurrentVertexIndicesY[iXVolSpace - m_regSizeInVoxels.getLowerCorner().getX()][iYVolSpace - m_regSizeInVoxels.getLowerCorner().getY()] = uLastVertexIndex; + m_pCurrentVertexIndicesY[iXVolSpace - m_regSizeInVoxels.getLowerX()][iYVolSpace - m_regSizeInVoxels.getLowerY()] = uLastVertexIndex; m_sampVolume.moveNegativeY(); } @@ -489,7 +489,7 @@ namespace PolyVox const float fInterp = static_cast(m_tThreshold - m_controller.convertToDensity(v000)) / static_cast(m_controller.convertToDensity(v001) - m_controller.convertToDensity(v000)); - const Vector3DFloat v3dPosition(static_cast(iXVolSpace - m_regSizeInVoxels.getLowerCorner().getX()), static_cast(iYVolSpace - m_regSizeInVoxels.getLowerCorner().getY()), static_cast(iZVolSpace - m_regSizeInVoxels.getLowerCorner().getZ()) + fInterp); + const Vector3DFloat v3dPosition(static_cast(iXVolSpace - m_regSizeInVoxels.getLowerX()), static_cast(iYVolSpace - m_regSizeInVoxels.getLowerY()), static_cast(iZVolSpace - m_regSizeInVoxels.getLowerZ()) + fInterp); Vector3DFloat v3dNormal = (n001*fInterp) + (n000*(1-fInterp)); v3dNormal.normalise(); @@ -503,7 +503,7 @@ namespace PolyVox const PositionMaterialNormal surfaceVertex(v3dPosition, v3dNormal, static_cast(uMaterial)); const uint32_t uLastVertexIndex = m_meshCurrent->addVertex(surfaceVertex); - m_pCurrentVertexIndicesZ[iXVolSpace - m_regSizeInVoxels.getLowerCorner().getX()][iYVolSpace - m_regSizeInVoxels.getLowerCorner().getY()] = uLastVertexIndex; + m_pCurrentVertexIndicesZ[iXVolSpace - m_regSizeInVoxels.getLowerX()][iYVolSpace - m_regSizeInVoxels.getLowerY()] = uLastVertexIndex; m_sampVolume.moveNegativeZ(); } @@ -525,17 +525,17 @@ namespace PolyVox indlist[i] = -1; } - const int32_t iZVolSpace = m_regSlicePrevious.getLowerCorner().getZ(); + const int32_t iZVolSpace = m_regSlicePrevious.getLowerZ(); - for(int32_t iYVolSpace = m_regSlicePrevious.getLowerCorner().getY(); iYVolSpace <= m_regSizeInCells.getUpperCorner().getY(); iYVolSpace++) + for(int32_t iYVolSpace = m_regSlicePrevious.getLowerY(); iYVolSpace <= m_regSizeInCells.getUpperY(); iYVolSpace++) { - for(int32_t iXVolSpace = m_regSlicePrevious.getLowerCorner().getX(); iXVolSpace <= m_regSizeInCells.getUpperCorner().getX(); iXVolSpace++) + for(int32_t iXVolSpace = m_regSlicePrevious.getLowerX(); iXVolSpace <= m_regSizeInCells.getUpperX(); iXVolSpace++) { m_sampVolume.setPosition(iXVolSpace,iYVolSpace,iZVolSpace); //Current position - const uint32_t uXRegSpace = m_sampVolume.getPosition().getX() - m_regSizeInVoxels.getLowerCorner().getX(); - const uint32_t uYRegSpace = m_sampVolume.getPosition().getY() - m_regSizeInVoxels.getLowerCorner().getY(); + const uint32_t uXRegSpace = m_sampVolume.getPosition().getX() - m_regSizeInVoxels.getLowerX(); + const uint32_t uYRegSpace = m_sampVolume.getPosition().getY() - m_regSizeInVoxels.getLowerY(); //Determine the index into the edge table which tells us which vertices are inside of the surface const uint8_t iCubeIndex = pPreviousBitmask[uXRegSpace][uYRegSpace]; diff --git a/library/PolyVoxCore/include/PolyVoxCore/SimpleVolume.inl b/library/PolyVoxCore/include/PolyVoxCore/SimpleVolume.inl index 938cd997..738ce7aa 100644 --- a/library/PolyVoxCore/include/PolyVoxCore/SimpleVolume.inl +++ b/library/PolyVoxCore/include/PolyVoxCore/SimpleVolume.inl @@ -281,9 +281,9 @@ namespace PolyVox m_regValidRegionInBlocks.setUpperZ(this->m_regValidRegion.getUpperZ() >> m_uBlockSideLengthPower); //Compute the size of the volume in blocks (and note +1 at the end) - m_uWidthInBlocks = m_regValidRegionInBlocks.getUpperCorner().getX() - m_regValidRegionInBlocks.getLowerCorner().getX() + 1; - m_uHeightInBlocks = m_regValidRegionInBlocks.getUpperCorner().getY() - m_regValidRegionInBlocks.getLowerCorner().getY() + 1; - m_uDepthInBlocks = m_regValidRegionInBlocks.getUpperCorner().getZ() - m_regValidRegionInBlocks.getLowerCorner().getZ() + 1; + m_uWidthInBlocks = m_regValidRegionInBlocks.getUpperX() - m_regValidRegionInBlocks.getLowerX() + 1; + m_uHeightInBlocks = m_regValidRegionInBlocks.getUpperY() - m_regValidRegionInBlocks.getLowerY() + 1; + m_uDepthInBlocks = m_regValidRegionInBlocks.getUpperZ() - m_regValidRegionInBlocks.getLowerZ() + 1; m_uNoOfBlocksInVolume = m_uWidthInBlocks * m_uHeightInBlocks * m_uDepthInBlocks; //Allocate the data @@ -304,9 +304,9 @@ namespace PolyVox { //The lower left corner of the volume could be //anywhere, but array indices need to start at zero. - uBlockX -= m_regValidRegionInBlocks.getLowerCorner().getX(); - uBlockY -= m_regValidRegionInBlocks.getLowerCorner().getY(); - uBlockZ -= m_regValidRegionInBlocks.getLowerCorner().getZ(); + uBlockX -= m_regValidRegionInBlocks.getLowerX(); + uBlockY -= m_regValidRegionInBlocks.getLowerY(); + uBlockZ -= m_regValidRegionInBlocks.getLowerZ(); POLYVOX_ASSERT(uBlockX >= 0, "Block coordinate must not be negative."); POLYVOX_ASSERT(uBlockY >= 0, "Block coordinate must not be negative."); diff --git a/library/PolyVoxCore/include/PolyVoxCore/VolumeResampler.inl b/library/PolyVoxCore/include/PolyVoxCore/VolumeResampler.inl index b76281b9..745a00bc 100644 --- a/library/PolyVoxCore/include/PolyVoxCore/VolumeResampler.inl +++ b/library/PolyVoxCore/include/PolyVoxCore/VolumeResampler.inl @@ -45,13 +45,13 @@ namespace PolyVox template< typename SrcVolumeType, typename DstVolumeType> void VolumeResampler::execute() { - int32_t uSrcWidth = m_regSrc.getUpperCorner().getX() - m_regSrc.getLowerCorner().getX() + 1; - int32_t uSrcHeight = m_regSrc.getUpperCorner().getY() - m_regSrc.getLowerCorner().getY() + 1; - int32_t uSrcDepth = m_regSrc.getUpperCorner().getZ() - m_regSrc.getLowerCorner().getZ() + 1; + int32_t uSrcWidth = m_regSrc.getUpperX() - m_regSrc.getLowerX() + 1; + int32_t uSrcHeight = m_regSrc.getUpperY() - m_regSrc.getLowerY() + 1; + int32_t uSrcDepth = m_regSrc.getUpperZ() - m_regSrc.getLowerZ() + 1; - int32_t uDstWidth = m_regDst.getUpperCorner().getX() - m_regDst.getLowerCorner().getX() + 1; - int32_t uDstHeight = m_regDst.getUpperCorner().getY() - m_regDst.getLowerCorner().getY() + 1; - int32_t uDstDepth = m_regDst.getUpperCorner().getZ() - m_regDst.getLowerCorner().getZ() + 1; + int32_t uDstWidth = m_regDst.getUpperX() - m_regDst.getLowerX() + 1; + int32_t uDstHeight = m_regDst.getUpperY() - m_regDst.getLowerY() + 1; + int32_t uDstDepth = m_regDst.getUpperZ() - m_regDst.getLowerZ() + 1; if((uSrcWidth == uDstWidth) && (uSrcHeight == uDstHeight) && (uSrcDepth == uDstDepth)) { @@ -66,11 +66,11 @@ namespace PolyVox template< typename SrcVolumeType, typename DstVolumeType> void VolumeResampler::resampleSameSize() { - for(int32_t sz = m_regSrc.getLowerCorner().getZ(), dz = m_regDst.getLowerCorner().getZ(); dz <= m_regDst.getUpperCorner().getZ(); sz++, dz++) + for(int32_t sz = m_regSrc.getLowerZ(), dz = m_regDst.getLowerZ(); dz <= m_regDst.getUpperZ(); sz++, dz++) { - for(int32_t sy = m_regSrc.getLowerCorner().getY(), dy = m_regDst.getLowerCorner().getY(); dy <= m_regDst.getUpperCorner().getY(); sy++, dy++) + for(int32_t sy = m_regSrc.getLowerY(), dy = m_regDst.getLowerY(); dy <= m_regDst.getUpperY(); sy++, dy++) { - for(int32_t sx = m_regSrc.getLowerCorner().getX(), dx = m_regDst.getLowerCorner().getX(); dx <= m_regDst.getUpperCorner().getX(); sx++,dx++) + for(int32_t sx = m_regSrc.getLowerX(), dx = m_regDst.getLowerX(); dx <= m_regDst.getUpperX(); sx++,dx++) { const typename SrcVolumeType::VoxelType& tSrcVoxel = m_pVolSrc->getVoxelAt(sx,sy,sz); const typename DstVolumeType::VoxelType& tDstVoxel = static_cast(tSrcVoxel); @@ -97,19 +97,19 @@ namespace PolyVox typename SrcVolumeType::Sampler sampler(m_pVolSrc); - for(int32_t dz = m_regDst.getLowerCorner().getZ(); dz <= m_regDst.getUpperCorner().getZ(); dz++) + for(int32_t dz = m_regDst.getLowerZ(); dz <= m_regDst.getUpperZ(); dz++) { - for(int32_t dy = m_regDst.getLowerCorner().getY(); dy <= m_regDst.getUpperCorner().getY(); dy++) + for(int32_t dy = m_regDst.getLowerY(); dy <= m_regDst.getUpperY(); dy++) { - for(int32_t dx = m_regDst.getLowerCorner().getX(); dx <= m_regDst.getUpperCorner().getX(); dx++) + for(int32_t dx = m_regDst.getLowerX(); dx <= m_regDst.getUpperX(); dx++) { - float sx = (dx - m_regDst.getLowerCorner().getX()) * fScaleX; - float sy = (dy - m_regDst.getLowerCorner().getY()) * fScaleY; - float sz = (dz - m_regDst.getLowerCorner().getZ()) * fScaleZ; + float sx = (dx - m_regDst.getLowerX()) * fScaleX; + float sy = (dy - m_regDst.getLowerY()) * fScaleY; + float sz = (dz - m_regDst.getLowerZ()) * fScaleZ; - sx += m_regSrc.getLowerCorner().getX(); - sy += m_regSrc.getLowerCorner().getY(); - sz += m_regSrc.getLowerCorner().getZ(); + sx += m_regSrc.getLowerX(); + sy += m_regSrc.getLowerY(); + sz += m_regSrc.getLowerZ(); sampler.setPosition(sx,sy,sz); const typename SrcVolumeType::VoxelType& voxel000 = sampler.peekVoxel0px0py0pz();