diff --git a/include/SurfaceEdge.h b/include/SurfaceEdge.h index 3fbec2cd..d3f3534e 100644 --- a/include/SurfaceEdge.h +++ b/include/SurfaceEdge.h @@ -38,28 +38,28 @@ namespace Ogre bool isDegenerate(void); - const SurfaceVertexIterator& getTarget(void); - const SurfaceVertexIterator& getSource(void); - const SurfaceEdgeIterator& getOtherHalfEdge(void); - const SurfaceEdgeIterator& getPreviousHalfEdge(void); - const SurfaceEdgeIterator& getNextHalfEdge(void); - const SurfaceTriangleIterator& getTriangle(void); + const SurfaceVertexIterator& getTarget(void) const; + const SurfaceVertexIterator& getSource(void) const; + const SurfaceEdgeIterator& getOtherHalfEdge(void) const; + const SurfaceEdgeIterator& getPreviousHalfEdge(void) const; + const SurfaceEdgeIterator& getNextHalfEdge(void) const; + const SurfaceTriangleIterator& getTriangle(void) const; - void setPreviousHalfEdge(const SurfaceEdgeIterator& previousHalfEdgeToSet); - void setNextHalfEdge(const SurfaceEdgeIterator& nextHalfEdgeToSet); - void setTriangle(const SurfaceTriangleIterator& triangleToSet); + void setPreviousHalfEdge(const SurfaceEdgeIterator& previousHalfEdgeToSet) const; + void setNextHalfEdge(const SurfaceEdgeIterator& nextHalfEdgeToSet) const; + void setTriangle(const SurfaceTriangleIterator& triangleToSet) const; - void pairWithOtherHalfEdge(const SurfaceEdgeIterator& otherHalfEdgeToPair); + void pairWithOtherHalfEdge(const SurfaceEdgeIterator& otherHalfEdgeToPair) const; private: SurfaceVertexIterator target; SurfaceVertexIterator source; - SurfaceEdgeIterator previousHalfEdge; - SurfaceEdgeIterator nextHalfEdge; - SurfaceEdgeIterator otherHalfEdge; + mutable SurfaceEdgeIterator previousHalfEdge; + mutable SurfaceEdgeIterator nextHalfEdge; + mutable SurfaceEdgeIterator otherHalfEdge; - SurfaceTriangleIterator triangle; + mutable SurfaceTriangleIterator triangle; }; } diff --git a/include/SurfaceTypes.h b/include/SurfaceTypes.h index c33b6f96..f3337606 100644 --- a/include/SurfaceTypes.h +++ b/include/SurfaceTypes.h @@ -14,4 +14,4 @@ namespace Ogre typedef std::set::const_iterator SurfaceEdgeConstIterator; } -#endif \ No newline at end of file +#endif diff --git a/include/SurfaceVertex.h b/include/SurfaceVertex.h index 29335766..17d561db 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); - void setNormal(const Vector3& normalToSet); + void setEdge(const SurfaceEdgeIterator& edgeToSet) const; + void setNormal(const Vector3& normalToSet) const; - std::string toString(void); + std::string toString(void) const; private: UIntVector3 position; - Vector3 normal; + mutable Vector3 normal; float alpha; - SurfaceEdgeIterator edge; + mutable SurfaceEdgeIterator edge; unsigned long m_uHash; }; diff --git a/source/SurfaceEdge.cpp b/source/SurfaceEdge.cpp index 1ba57854..0e3848ff 100644 --- a/source/SurfaceEdge.cpp +++ b/source/SurfaceEdge.cpp @@ -50,54 +50,54 @@ namespace Ogre return false; } - const SurfaceVertexIterator& SurfaceEdge::getTarget(void) + const SurfaceVertexIterator& SurfaceEdge::getTarget(void) const { return target; } - const SurfaceVertexIterator& SurfaceEdge::getSource(void) + const SurfaceVertexIterator& SurfaceEdge::getSource(void) const { return source; } - void SurfaceEdge::pairWithOtherHalfEdge(const SurfaceEdgeIterator& otherHalfEdgeToPair) + void SurfaceEdge::pairWithOtherHalfEdge(const SurfaceEdgeIterator& otherHalfEdgeToPair) const { otherHalfEdge = otherHalfEdgeToPair; previousHalfEdge = otherHalfEdgeToPair; nextHalfEdge = otherHalfEdgeToPair; } - const SurfaceEdgeIterator& SurfaceEdge::getOtherHalfEdge(void) + const SurfaceEdgeIterator& SurfaceEdge::getOtherHalfEdge(void) const { return otherHalfEdge; } - const SurfaceEdgeIterator& SurfaceEdge::getPreviousHalfEdge(void) + const SurfaceEdgeIterator& SurfaceEdge::getPreviousHalfEdge(void) const { return previousHalfEdge; } - const SurfaceEdgeIterator& SurfaceEdge::getNextHalfEdge(void) + const SurfaceEdgeIterator& SurfaceEdge::getNextHalfEdge(void) const { return nextHalfEdge; } - const SurfaceTriangleIterator& SurfaceEdge::getTriangle(void) + const SurfaceTriangleIterator& SurfaceEdge::getTriangle(void) const { return triangle; } - void SurfaceEdge::setPreviousHalfEdge(const SurfaceEdgeIterator& previousHalfEdgeToSet) + void SurfaceEdge::setPreviousHalfEdge(const SurfaceEdgeIterator& previousHalfEdgeToSet) const { previousHalfEdge = previousHalfEdgeToSet; } - void SurfaceEdge::setNextHalfEdge(const SurfaceEdgeIterator& nextHalfEdgeToSet) + void SurfaceEdge::setNextHalfEdge(const SurfaceEdgeIterator& nextHalfEdgeToSet) const { nextHalfEdge = nextHalfEdgeToSet; } - void SurfaceEdge::setTriangle(const SurfaceTriangleIterator& triangleToSet) + void SurfaceEdge::setTriangle(const SurfaceTriangleIterator& triangleToSet) const { triangle = triangleToSet; } diff --git a/source/SurfaceVertex.cpp b/source/SurfaceVertex.cpp index 9c4df628..bf1dd09b 100644 --- a/source/SurfaceVertex.cpp +++ b/source/SurfaceVertex.cpp @@ -49,18 +49,18 @@ namespace Ogre alpha = alphaToSet; } - void SurfaceVertex::setEdge(const SurfaceEdgeIterator& edgeToSet) + void SurfaceVertex::setEdge(const SurfaceEdgeIterator& edgeToSet) const { edge = edgeToSet; } - void SurfaceVertex::setNormal(const Vector3& normalToSet) + void SurfaceVertex::setNormal(const Vector3& normalToSet) const { normal = normalToSet; normal.normalise(); } - std::string SurfaceVertex::toString(void) + std::string SurfaceVertex::toString(void) const { std::stringstream ss; ss << "SurfaceVertex: Position = (" << position.x << "," << position.y << "," << position.z << "), Normal = " << StringConverter::toString(normal);