diff --git a/include/SurfaceEdge.h b/include/SurfaceEdge.h index d3f3534e..51448292 100644 --- a/include/SurfaceEdge.h +++ b/include/SurfaceEdge.h @@ -45,21 +45,21 @@ namespace Ogre const SurfaceEdgeIterator& getNextHalfEdge(void) const; const SurfaceTriangleIterator& getTriangle(void) const; - void setPreviousHalfEdge(const SurfaceEdgeIterator& previousHalfEdgeToSet) const; - void setNextHalfEdge(const SurfaceEdgeIterator& nextHalfEdgeToSet) const; - void setTriangle(const SurfaceTriangleIterator& triangleToSet) const; + void setPreviousHalfEdge(const SurfaceEdgeIterator& previousHalfEdgeToSet); + void setNextHalfEdge(const SurfaceEdgeIterator& nextHalfEdgeToSet); + void setTriangle(const SurfaceTriangleIterator& triangleToSet); - void pairWithOtherHalfEdge(const SurfaceEdgeIterator& otherHalfEdgeToPair) const; + void pairWithOtherHalfEdge(const SurfaceEdgeIterator& otherHalfEdgeToPair); private: SurfaceVertexIterator target; SurfaceVertexIterator source; - mutable SurfaceEdgeIterator previousHalfEdge; - mutable SurfaceEdgeIterator nextHalfEdge; - mutable SurfaceEdgeIterator otherHalfEdge; + SurfaceEdgeIterator previousHalfEdge; + SurfaceEdgeIterator nextHalfEdge; + SurfaceEdgeIterator otherHalfEdge; - mutable SurfaceTriangleIterator triangle; + SurfaceTriangleIterator triangle; }; } diff --git a/include/SurfaceVertex.h b/include/SurfaceVertex.h index 17d561db..e386b5ad 100644 --- a/include/SurfaceVertex.h +++ b/include/SurfaceVertex.h @@ -44,17 +44,17 @@ namespace Ogre const UIntVector3& getPosition(void) const; void setAlpha(float alphaToSet); - void setEdge(const SurfaceEdgeIterator& edgeToSet) const; - void setNormal(const Vector3& normalToSet) const; + void setEdge(const SurfaceEdgeIterator& edgeToSet); + void setNormal(const Vector3& normalToSet); std::string toString(void) const; private: UIntVector3 position; - mutable Vector3 normal; + Vector3 normal; float alpha; - mutable SurfaceEdgeIterator edge; + SurfaceEdgeIterator edge; unsigned long m_uHash; }; diff --git a/source/PolyVoxSceneManager.cpp b/source/PolyVoxSceneManager.cpp index 960ff06b..a8c1a1d5 100644 --- a/source/PolyVoxSceneManager.cpp +++ b/source/PolyVoxSceneManager.cpp @@ -717,7 +717,7 @@ namespace Ogre while(iterSurfaceVertex != iterPatch->second.getVerticesEnd()) { Vector3 tempNormal = computeNormal((iterSurfaceVertex->getPosition() + offset).toOgreVector3()/2.0f, CENTRAL_DIFFERENCE); - iterSurfaceVertex->setNormal(tempNormal); + const_cast(*iterSurfaceVertex).setNormal(tempNormal); ++iterSurfaceVertex; } diff --git a/source/SurfaceEdge.cpp b/source/SurfaceEdge.cpp index 0e3848ff..3a11b440 100644 --- a/source/SurfaceEdge.cpp +++ b/source/SurfaceEdge.cpp @@ -60,7 +60,7 @@ namespace Ogre return source; } - void SurfaceEdge::pairWithOtherHalfEdge(const SurfaceEdgeIterator& otherHalfEdgeToPair) const + void SurfaceEdge::pairWithOtherHalfEdge(const SurfaceEdgeIterator& otherHalfEdgeToPair) { otherHalfEdge = otherHalfEdgeToPair; previousHalfEdge = otherHalfEdgeToPair; @@ -87,17 +87,17 @@ namespace Ogre return triangle; } - void SurfaceEdge::setPreviousHalfEdge(const SurfaceEdgeIterator& previousHalfEdgeToSet) const + void SurfaceEdge::setPreviousHalfEdge(const SurfaceEdgeIterator& previousHalfEdgeToSet) { previousHalfEdge = previousHalfEdgeToSet; } - void SurfaceEdge::setNextHalfEdge(const SurfaceEdgeIterator& nextHalfEdgeToSet) const + void SurfaceEdge::setNextHalfEdge(const SurfaceEdgeIterator& nextHalfEdgeToSet) { nextHalfEdge = nextHalfEdgeToSet; } - void SurfaceEdge::setTriangle(const SurfaceTriangleIterator& triangleToSet) const + void SurfaceEdge::setTriangle(const SurfaceTriangleIterator& triangleToSet) { triangle = triangleToSet; } diff --git a/source/SurfacePatch.cpp b/source/SurfacePatch.cpp index a24bbfa6..fe8ce09a 100644 --- a/source/SurfacePatch.cpp +++ b/source/SurfacePatch.cpp @@ -78,17 +78,17 @@ namespace Ogre SurfaceEdgeIterator v1v2Iter = findOrAddEdge(v1Iter,v2Iter); SurfaceEdgeIterator v2v0Iter = findOrAddEdge(v2Iter,v0Iter); - v0Iter->setEdge(v0v1Iter); - v1Iter->setEdge(v1v2Iter); - v2Iter->setEdge(v2v0Iter); + const_cast(*v0Iter).setEdge(v0v1Iter); + const_cast(*v1Iter).setEdge(v1v2Iter); + const_cast(*v2Iter).setEdge(v2v0Iter); - v0v1Iter->setNextHalfEdge(v1v2Iter); - v1v2Iter->setNextHalfEdge(v2v0Iter); - v2v0Iter->setNextHalfEdge(v0v1Iter); + const_cast(*v0v1Iter).setNextHalfEdge(v1v2Iter); + const_cast(*v1v2Iter).setNextHalfEdge(v2v0Iter); + const_cast(*v2v0Iter).setNextHalfEdge(v0v1Iter); - v0v1Iter->setPreviousHalfEdge(v2v0Iter); - v1v2Iter->setPreviousHalfEdge(v0v1Iter); - v2v0Iter->setPreviousHalfEdge(v1v2Iter); + const_cast(*v0v1Iter).setPreviousHalfEdge(v2v0Iter); + const_cast(*v1v2Iter).setPreviousHalfEdge(v0v1Iter); + const_cast(*v2v0Iter).setPreviousHalfEdge(v1v2Iter); SurfaceTriangle triangle; @@ -96,9 +96,9 @@ namespace Ogre SurfaceTriangleIterator iterTriangle = m_listTriangles.insert(triangle).first; - v0v1Iter->setTriangle(iterTriangle); - v1v2Iter->setTriangle(iterTriangle); - v2v0Iter->setTriangle(iterTriangle); + const_cast(*v0v1Iter).setTriangle(iterTriangle); + const_cast(*v1v2Iter).setTriangle(iterTriangle); + const_cast(*v2v0Iter).setTriangle(iterTriangle); } SurfaceVertexIterator SurfacePatch::findOrAddVertex(const SurfaceVertex& vertex) @@ -126,8 +126,8 @@ namespace Ogre SurfaceEdge otherEdge(source, target); SurfaceEdgeIterator otherEdgeIter = m_listEdges.insert(otherEdge).first; - edgeIter->pairWithOtherHalfEdge(otherEdgeIter); - otherEdgeIter->pairWithOtherHalfEdge(edgeIter); + const_cast(*edgeIter).pairWithOtherHalfEdge(otherEdgeIter); + const_cast(*otherEdgeIter).pairWithOtherHalfEdge(edgeIter); return edgeIter; } diff --git a/source/SurfaceVertex.cpp b/source/SurfaceVertex.cpp index bf1dd09b..6d8b4f53 100644 --- a/source/SurfaceVertex.cpp +++ b/source/SurfaceVertex.cpp @@ -49,12 +49,12 @@ namespace Ogre alpha = alphaToSet; } - void SurfaceVertex::setEdge(const SurfaceEdgeIterator& edgeToSet) const + void SurfaceVertex::setEdge(const SurfaceEdgeIterator& edgeToSet) { edge = edgeToSet; } - void SurfaceVertex::setNormal(const Vector3& normalToSet) const + void SurfaceVertex::setNormal(const Vector3& normalToSet) { normal = normalToSet; normal.normalise();