--- a/src/types.cpp Sat Jun 01 20:31:33 2013 +0300 +++ b/src/types.cpp Sat Jun 01 21:36:03 2013 +0300 @@ -28,13 +28,13 @@ } // ============================================================================= -void vertex::move (vertex other) { +void vertex::move (const vertex& other) { for (const Axis ax : g_Axes) m_coords[ax] += other[ax]; } // ============================================================================= -vertex vertex::midpoint (vertex& other) { +vertex vertex::midpoint (const vertex& other) { vertex mid; for (const Axis ax : g_Axes) @@ -44,7 +44,7 @@ } // ============================================================================= -str vertex::stringRep (const bool mangled) { +str vertex::stringRep (bool mangled) const { return fmt (mangled ? "(%s, %s, %s)" : "%s %s %s", ftoa (coord (X)).chars(), ftoa (coord (Y)).chars(), @@ -104,11 +104,17 @@ return other /= d; } -vertex& vertex::operator+= (vertex other) { +vertex& vertex::operator+= (const vertex& other) { move (other); return *this; } +vertex& vertex::operator+ (const vertex& other) const { + vertex newvert = *this; + newvert.move (other); + return newvert; +} + int vertex::operator< (const vertex& other) const { if (operator== (other)) return false; @@ -171,7 +177,7 @@ } // ============================================================================= -matrix matrix::mult (matrix other) { +matrix matrix::mult (matrix other) const { matrix val; val.zero ();