diff --git a/common/gal/cairo/cairo_gal.cpp b/common/gal/cairo/cairo_gal.cpp index 741fad0761..48354070b1 100644 --- a/common/gal/cairo/cairo_gal.cpp +++ b/common/gal/cairo/cairo_gal.cpp @@ -293,7 +293,7 @@ void CAIRO_GAL::RestoreScreen() } -void CAIRO_GAL::DrawLine( VECTOR2D aStartPoint, VECTOR2D aEndPoint ) +void CAIRO_GAL::DrawLine( const VECTOR2D& aStartPoint, const VECTOR2D& aEndPoint ) { cairo_move_to( cairoImage, aStartPoint.x, aStartPoint.y ); cairo_line_to( cairoImage, aEndPoint.x, aEndPoint.y ); @@ -341,7 +341,7 @@ void CAIRO_GAL::DrawSegment( const VECTOR2D& aStartPoint, const VECTOR2D& aEndPo } -void CAIRO_GAL::DrawCircle( VECTOR2D aCenterPoint, double aRadius ) +void CAIRO_GAL::DrawCircle( const VECTOR2D& aCenterPoint, double aRadius ) { // A circle is drawn using an arc cairo_new_sub_path( cairoImage ); @@ -351,7 +351,7 @@ void CAIRO_GAL::DrawCircle( VECTOR2D aCenterPoint, double aRadius ) } -void CAIRO_GAL::DrawArc( VECTOR2D aCenterPoint, double aRadius, double aStartAngle, +void CAIRO_GAL::DrawArc( const VECTOR2D& aCenterPoint, double aRadius, double aStartAngle, double aEndAngle ) { SWAP( aStartAngle, >, aEndAngle ); @@ -368,7 +368,7 @@ void CAIRO_GAL::DrawPolyline( std::deque& aPointList ) bool isFirstPoint = true; // Iterate over the point list and draw the segments - for( std::deque::iterator it = aPointList.begin(); it != aPointList.end(); ++it ) + for( std::deque::const_iterator it = aPointList.begin(); it != aPointList.end(); ++it ) { if( isFirstPoint ) { @@ -410,7 +410,7 @@ void CAIRO_GAL::DrawPolygon( const std::deque& aPointList ) } -void CAIRO_GAL::DrawRectangle( VECTOR2D aStartPoint, VECTOR2D aEndPoint ) +void CAIRO_GAL::DrawRectangle( const VECTOR2D& aStartPoint, const VECTOR2D& aEndPoint ) { // Calculate the diagonal points VECTOR2D diagonalPointA( aEndPoint.x, aStartPoint.y ); @@ -427,8 +427,8 @@ void CAIRO_GAL::DrawRectangle( VECTOR2D aStartPoint, VECTOR2D aEndPoint ) } -void CAIRO_GAL::DrawCurve( VECTOR2D aStartPoint, VECTOR2D aControlPointA, - VECTOR2D aControlPointB, VECTOR2D aEndPoint ) +void CAIRO_GAL::DrawCurve( const VECTOR2D& aStartPoint, const VECTOR2D& aControlPointA, + const VECTOR2D& aControlPointB, const VECTOR2D& aEndPoint ) { cairo_move_to( cairoImage, aStartPoint.x, aStartPoint.y ); cairo_curve_to( cairoImage, aControlPointA.x, aControlPointA.y, aControlPointB.x, @@ -606,7 +606,7 @@ void CAIRO_GAL::Rotate( double aAngle ) } -void CAIRO_GAL::Translate( VECTOR2D aTranslation ) +void CAIRO_GAL::Translate( const VECTOR2D& aTranslation ) { storePath(); @@ -623,7 +623,7 @@ void CAIRO_GAL::Translate( VECTOR2D aTranslation ) } -void CAIRO_GAL::Scale( VECTOR2D aScale ) +void CAIRO_GAL::Scale( const VECTOR2D& aScale ) { storePath(); @@ -905,9 +905,8 @@ void CAIRO_GAL::initCursor( int aCursorSize ) } -VECTOR2D CAIRO_GAL::ComputeCursorToWorld( VECTOR2D aCursorPosition ) +VECTOR2D CAIRO_GAL::ComputeCursorToWorld( const VECTOR2D& aCursorPosition ) { - MATRIX3x3D inverseMatrix = worldScreenMatrix.Inverse(); VECTOR2D cursorPositionWorld = inverseMatrix * aCursorPosition; @@ -953,7 +952,7 @@ void CAIRO_GAL::DrawCursor( VECTOR2D aCursorPosition ) } -void CAIRO_GAL::DrawGridLine( VECTOR2D aStartPoint, VECTOR2D aEndPoint ) +void CAIRO_GAL::DrawGridLine( const VECTOR2D& aStartPoint, const VECTOR2D& aEndPoint ) { cairo_move_to( cairoImage, aStartPoint.x, aStartPoint.y ); cairo_line_to( cairoImage, aEndPoint.x, aEndPoint.y ); diff --git a/common/gal/opengl/opengl_gal.cpp b/common/gal/opengl/opengl_gal.cpp index e3747bca24..e0f5270342 100644 --- a/common/gal/opengl/opengl_gal.cpp +++ b/common/gal/opengl/opengl_gal.cpp @@ -439,7 +439,7 @@ inline void OPENGL_GAL::selectShader( int aIndex ) } -void OPENGL_GAL::drawRoundedSegment( VECTOR2D aStartPoint, VECTOR2D aEndPoint, +void OPENGL_GAL::drawRoundedSegment( const VECTOR2D& aStartPoint, const VECTOR2D& aEndPoint, double aWidth, bool aStroke, bool aGlBegin ) { VECTOR2D l = (aEndPoint - aStartPoint); @@ -493,7 +493,7 @@ void OPENGL_GAL::drawRoundedSegment( VECTOR2D aStartPoint, VECTOR2D aEndPoint, } -inline void OPENGL_GAL::drawLineQuad( VECTOR2D aStartPoint, VECTOR2D aEndPoint ) +inline void OPENGL_GAL::drawLineQuad( const VECTOR2D& aStartPoint, const VECTOR2D& aEndPoint ) { VECTOR2D startEndVector = aEndPoint - aStartPoint; double lineLength = startEndVector.EuclideanNorm(); @@ -564,10 +564,11 @@ void OPENGL_GAL::DrawSegment( const VECTOR2D& aStartPoint, const VECTOR2D& aEndP } -inline void OPENGL_GAL::drawLineCap( VECTOR2D aStartPoint, VECTOR2D aEndPoint, double aDepthOffset ) +inline void OPENGL_GAL::drawLineCap( const VECTOR2D& aStartPoint, const VECTOR2D& aEndPoint, + double aDepthOffset ) { VECTOR2D startEndVector = aEndPoint - aStartPoint; - double lineLength = startEndVector.EuclideanNorm(); + // double lineLength = startEndVector.EuclideanNorm(); double lineAngle = atan2( startEndVector.y, startEndVector.x ); switch( lineCap ) @@ -582,16 +583,16 @@ inline void OPENGL_GAL::drawLineCap( VECTOR2D aStartPoint, VECTOR2D aEndPoint, d break; case LINE_CAP_SQUARED: - VECTOR2D offset; - offset = startEndVector * ( lineWidth / lineLength / 2.0 ); - aStartPoint = aStartPoint - offset; - aEndPoint = aEndPoint + offset; + // FIXME? VECTOR2D offset; + // offset = startEndVector * ( lineWidth / lineLength / 2.0 ); + // aStartPoint = aStartPoint - offset; + // aEndPoint = aEndPoint + offset; break; } } -void OPENGL_GAL::DrawLine( VECTOR2D aStartPoint, VECTOR2D aEndPoint ) +void OPENGL_GAL::DrawLine( const VECTOR2D& aStartPoint, const VECTOR2D& aEndPoint ) { if( isUseShader ) { @@ -816,7 +817,7 @@ void OPENGL_GAL::DrawPolyline( std::deque& aPointList ) } -void OPENGL_GAL::DrawRectangle( VECTOR2D aStartPoint, VECTOR2D aEndPoint ) +void OPENGL_GAL::DrawRectangle( const VECTOR2D& aStartPoint, const VECTOR2D& aEndPoint ) { // Compute the diagonal points of the rectangle VECTOR2D diagonalPointA( aEndPoint.x, aStartPoint.y ); @@ -890,7 +891,7 @@ void OPENGL_GAL::DrawRectangle( VECTOR2D aStartPoint, VECTOR2D aEndPoint ) } -void OPENGL_GAL::DrawCircle( VECTOR2D aCenterPoint, double aRadius ) +void OPENGL_GAL::DrawCircle( const VECTOR2D& aCenterPoint, double aRadius ) { // We need a minimum radius, else simply don't draw the circle if( aRadius <= 0.0 ) @@ -959,7 +960,7 @@ void OPENGL_GAL::DrawCircle( VECTOR2D aCenterPoint, double aRadius ) // This method is used for round line caps -void OPENGL_GAL::drawSemiCircle( VECTOR2D aCenterPoint, double aRadius, double aAngle, +void OPENGL_GAL::drawSemiCircle( const VECTOR2D& aCenterPoint, double aRadius, double aAngle, double aDepthOffset ) { // XXX Depth seems to be buggy @@ -975,7 +976,7 @@ void OPENGL_GAL::drawSemiCircle( VECTOR2D aCenterPoint, double aRadius, double a // FIXME Optimize -void OPENGL_GAL::DrawArc( VECTOR2D aCenterPoint, double aRadius, double aStartAngle, +void OPENGL_GAL::DrawArc( const VECTOR2D& aCenterPoint, double aRadius, double aStartAngle, double aEndAngle ) { if( aRadius <= 0 ) @@ -1158,8 +1159,8 @@ void OPENGL_GAL::DrawPolygon( const std::deque& aPointList ) } -void OPENGL_GAL::DrawCurve( VECTOR2D aStartPoint, VECTOR2D aControlPointA, - VECTOR2D aControlPointB, VECTOR2D aEndPoint ) +void OPENGL_GAL::DrawCurve( const VECTOR2D& aStartPoint, const VECTOR2D& aControlPointA, + const VECTOR2D& aControlPointB, const VECTOR2D& aEndPoint ) { // FIXME The drawing quality needs to be improved // FIXME Perhaps choose a quad/triangle strip instead? @@ -1266,13 +1267,13 @@ void OPENGL_GAL::Rotate( double aAngle ) } -void OPENGL_GAL::Translate( VECTOR2D aVector ) +void OPENGL_GAL::Translate( const VECTOR2D& aVector ) { glTranslated( aVector.x, aVector.y, 0 ); } -void OPENGL_GAL::Scale( VECTOR2D aScale ) +void OPENGL_GAL::Scale( const VECTOR2D& aScale ) { // TODO: Check method glScaled( aScale.x, aScale.y, 0 ); @@ -1487,11 +1488,12 @@ void OPENGL_GAL::initCursor( int aCursorSize ) } -VECTOR2D OPENGL_GAL::ComputeCursorToWorld( VECTOR2D aCursorPosition ) +VECTOR2D OPENGL_GAL::ComputeCursorToWorld( const VECTOR2D& aCursorPosition ) { - aCursorPosition.y = screenSize.y - aCursorPosition.y; + VECTOR2D cursorPosition = aCursorPosition; + cursorPosition.y = screenSize.y - aCursorPosition.y; MATRIX3x3D inverseMatrix = worldScreenMatrix.Inverse(); - VECTOR2D cursorPositionWorld = inverseMatrix * aCursorPosition; + VECTOR2D cursorPositionWorld = inverseMatrix * cursorPosition; return cursorPositionWorld; } @@ -1552,7 +1554,7 @@ void OPENGL_GAL::DrawCursor( VECTOR2D aCursorPosition ) } -void OPENGL_GAL::DrawGridLine( VECTOR2D aStartPoint, VECTOR2D aEndPoint ) +void OPENGL_GAL::DrawGridLine( const VECTOR2D& aStartPoint, const VECTOR2D& aEndPoint ) { // We check, if we got a horizontal or a vertical grid line and compute the offset VECTOR2D perpendicularVector; diff --git a/include/gal/cairo/cairo_gal.h b/include/gal/cairo/cairo_gal.h index 7e69bd7c16..767f5a2701 100644 --- a/include/gal/cairo/cairo_gal.h +++ b/include/gal/cairo/cairo_gal.h @@ -96,7 +96,7 @@ public: virtual void EndDrawing(); /// @copydoc GAL::DrawLine() - virtual void DrawLine( VECTOR2D aStartPoint, VECTOR2D aEndPoint ); + virtual void DrawLine( const VECTOR2D& aStartPoint, const VECTOR2D& aEndPoint ); /// @copydoc GAL::DrawSegment() virtual void DrawSegment( const VECTOR2D& aStartPoint, const VECTOR2D& aEndPoint, double aWidth ); @@ -105,21 +105,21 @@ public: virtual void DrawPolyline( std::deque& aPointList ); /// @copydoc GAL::DrawCircle() - virtual void DrawCircle( VECTOR2D aCenterPoint, double aRadius ); + virtual void DrawCircle( const VECTOR2D& aCenterPoint, double aRadius ); /// @copydoc GAL::DrawArc() virtual void - DrawArc( VECTOR2D aCenterPoint, double aRadius, double aStartAngle, double aEndAngle ); + DrawArc( const VECTOR2D& aCenterPoint, double aRadius, double aStartAngle, double aEndAngle ); /// @copydoc GAL::DrawRectangle() - virtual void DrawRectangle( VECTOR2D aStartPoint, VECTOR2D aEndPoint ); + virtual void DrawRectangle( const VECTOR2D& aStartPoint, const VECTOR2D& aEndPoint ); /// @copydoc GAL::DrawPolygon() virtual void DrawPolygon( const std::deque& aPointList ); /// @copydoc GAL::DrawCurve() - virtual void DrawCurve( VECTOR2D startPoint, VECTOR2D controlPointA, VECTOR2D controlPointB, - VECTOR2D endPoint ); + virtual void DrawCurve( const VECTOR2D& startPoint, const VECTOR2D& controlPointA, + const VECTOR2D& controlPointB, const VECTOR2D& endPoint ); // -------------- // Screen methods @@ -188,10 +188,10 @@ public: virtual void Rotate( double aAngle ); /// @copydoc GAL::Translate() - virtual void Translate( VECTOR2D aTranslation ); + virtual void Translate( const VECTOR2D& aTranslation ); /// @copydoc GAL::Scale() - virtual void Scale( VECTOR2D aScale ); + virtual void Scale( const VECTOR2D& aScale ); /// @copydoc GAL::Save() virtual void Save(); @@ -235,7 +235,7 @@ public: void SetScreenDPI( double aScreenDPI ); /// @copydoc GAL::SetLookAtPoint() - void SetLookAtPoint( VECTOR2D aPoint ); + void SetLookAtPoint( const VECTOR2D& aPoint ); /// @copydoc GAL::GetLookAtPoint() VECTOR2D GetLookAtPoint(); @@ -257,7 +257,7 @@ public: // ------- /// @copydoc GAL::ComputeCursorToWorld() - virtual VECTOR2D ComputeCursorToWorld( VECTOR2D aCursorPosition ); + virtual VECTOR2D ComputeCursorToWorld( const VECTOR2D& aCursorPosition ); /// @copydoc GAL::SetIsCursorEnabled() void SetIsCursorEnabled( bool aIsCursorEnabled ); @@ -290,7 +290,7 @@ public: } protected: - virtual void DrawGridLine(VECTOR2D aStartPoint, VECTOR2D aEndPoint); + virtual void DrawGridLine( const VECTOR2D& aStartPoint, const VECTOR2D& aEndPoint ); private: /// Super class definition diff --git a/include/gal/graphics_abstraction_layer.h b/include/gal/graphics_abstraction_layer.h index b06cfef9f7..40bf33b5c8 100644 --- a/include/gal/graphics_abstraction_layer.h +++ b/include/gal/graphics_abstraction_layer.h @@ -105,7 +105,7 @@ public: * @param aStartPoint is the start point of the line. * @param aEndPoint is the end point of the line. */ - virtual void DrawLine( VECTOR2D aStartPoint, VECTOR2D aEndPoint ) = 0; + virtual void DrawLine( const VECTOR2D& aStartPoint, const VECTOR2D& aEndPoint ) = 0; /** * @brief Draw a rounded segment. @@ -131,7 +131,7 @@ public: * @param aCenterPoint is the center point of the circle. * @param aRadius is the radius of the circle. */ - virtual void DrawCircle( VECTOR2D aCenterPoint, double aRadius ) = 0; + virtual void DrawCircle( const VECTOR2D& aCenterPoint, double aRadius ) = 0; /** * @brief Draw an arc. @@ -142,7 +142,7 @@ public: * @param aEndAngle is the end angle of the arc. */ virtual void - DrawArc( VECTOR2D aCenterPoint, double aRadius, double aStartAngle, double aEndAngle ) = 0; + DrawArc( const VECTOR2D& aCenterPoint, double aRadius, double aStartAngle, double aEndAngle ) = 0; /** * @brief Draw a rectangle. @@ -150,7 +150,7 @@ public: * @param aStartPoint is the start point of the rectangle. * @param aEndPoint is the end point of the rectangle. */ - virtual void DrawRectangle( VECTOR2D aStartPoint, VECTOR2D aEndPoint ) = 0; + virtual void DrawRectangle( const VECTOR2D& aStartPoint, const VECTOR2D& aEndPoint ) = 0; /** * @brief Draw a polygon. @@ -167,8 +167,8 @@ public: * @param controlPointB is the second control point. * @param endPoint is the end point of the spline. */ - virtual void DrawCurve( VECTOR2D startPoint, VECTOR2D controlPointA, - VECTOR2D controlPointB, VECTOR2D endPoint ) = 0; + virtual void DrawCurve( const VECTOR2D& startPoint, const VECTOR2D& controlPointA, + const VECTOR2D& controlPointB, const VECTOR2D& endPoint ) = 0; // -------------- // Screen methods @@ -326,14 +326,14 @@ public: * * @param aTranslation is the translation vector. */ - virtual void Translate( VECTOR2D aTranslation ) = 0; + virtual void Translate( const VECTOR2D& aTranslation ) = 0; /** * @brief Scale the context. * * @param aScale is the scale factor for the x- and y-axis. */ - virtual void Scale( VECTOR2D aScale ) = 0; + virtual void Scale( const VECTOR2D& aScale ) = 0; /// @brief Save the context. virtual void Save() = 0; @@ -476,7 +476,7 @@ public: * @param aDepthRange is the depth range where component x is the near clipping plane and y * is the far clipping plane. */ - inline void SetDepthRange( VECTOR2D aDepthRange ) + inline void SetDepthRange( const VECTOR2D& aDepthRange ) { depthRange = aDepthRange; } @@ -617,7 +617,7 @@ public: * @param aCursorPosition is the cursor position in screen coordinates. * @return the cursor position in world coordinates. */ - virtual VECTOR2D ComputeCursorToWorld( VECTOR2D aCursorPosition ) = 0; + virtual VECTOR2D ComputeCursorToWorld( const VECTOR2D& aCursorPosition ) = 0; /** * @brief Enable/Disable cursor. @@ -720,7 +720,7 @@ protected: * @param aStartPoint is the start point of the line. * @param aEndPoint is the end point of the line. */ - virtual void DrawGridLine( VECTOR2D aStartPoint, VECTOR2D aEndPoint ) = 0; + virtual void DrawGridLine( const VECTOR2D& aStartPoint, const VECTOR2D& aEndPoint ) = 0; }; } // namespace KiGfx diff --git a/include/gal/opengl/opengl_gal.h b/include/gal/opengl/opengl_gal.h index 2a8194144b..bf967c2060 100644 --- a/include/gal/opengl/opengl_gal.h +++ b/include/gal/opengl/opengl_gal.h @@ -103,7 +103,7 @@ public: virtual void EndDrawing(); /// @copydoc GAL::DrawLine() - virtual void DrawLine( VECTOR2D aStartPoint, VECTOR2D aEndPoint ); + virtual void DrawLine( const VECTOR2D& aStartPoint, const VECTOR2D& aEndPoint ); /// @copydoc GAL::DrawSegment() virtual void DrawSegment( const VECTOR2D& aStartPoint, const VECTOR2D& aEndPoint, double aWidth ); @@ -112,21 +112,21 @@ public: virtual void DrawPolyline( std::deque& aPointList ); /// @copydoc GAL::DrawCircle() - virtual void DrawCircle( VECTOR2D aCenterPoint, double aRadius ); + virtual void DrawCircle( const VECTOR2D& aCenterPoint, double aRadius ); /// @copydoc GAL::DrawArc() virtual void - DrawArc( VECTOR2D aCenterPoint, double aRadius, double aStartAngle, double aEndAngle ); + DrawArc( const VECTOR2D& aCenterPoint, double aRadius, double aStartAngle, double aEndAngle ); /// @copydoc GAL::DrawRectangle() - virtual void DrawRectangle( VECTOR2D aStartPoint, VECTOR2D aEndPoint ); + virtual void DrawRectangle( const VECTOR2D& aStartPoint, const VECTOR2D& aEndPoint ); /// @copydoc GAL::DrawPolygon() virtual void DrawPolygon( const std::deque& aPointList ); /// @copydoc GAL::DrawCurve() - virtual void DrawCurve( VECTOR2D startPoint, VECTOR2D controlPointA, VECTOR2D controlPointB, - VECTOR2D endPoint ); + virtual void DrawCurve( const VECTOR2D& startPoint, const VECTOR2D& controlPointA, + const VECTOR2D& controlPointB, const VECTOR2D& endPoint ); // -------------- // Screen methods @@ -206,10 +206,10 @@ public: virtual void Rotate( double aAngle ); /// @copydoc GAL::Translate() - virtual void Translate( VECTOR2D aTranslation ); + virtual void Translate( const VECTOR2D& aTranslation ); /// @copydoc GAL::Scale() - virtual void Scale( VECTOR2D aScale ); + virtual void Scale( const VECTOR2D& aScale ); /// @copydoc GAL::Save() virtual void Save(); @@ -253,7 +253,7 @@ public: void SetScreenDPI( double aScreenDPI ); /// @copydoc GAL::SetLookAtPoint() - void SetLookAtPoint( VECTOR2D aPoint ); + void SetLookAtPoint( const VECTOR2D& aPoint ); /// @copydoc GAL::GetLookAtPoint() VECTOR2D GetLookAtPoint(); @@ -275,7 +275,7 @@ public: // ------- /// @copydoc GAL::ComputeCursorToWorld() - virtual VECTOR2D ComputeCursorToWorld( VECTOR2D aCursorPosition ); + virtual VECTOR2D ComputeCursorToWorld( const VECTOR2D& aCursorPosition ); /// @copydoc GAL::SetIsCursorEnabled() void SetIsCursorEnabled( bool aIsCursorEnabled ); @@ -313,7 +313,7 @@ public: } protected: - virtual void DrawGridLine( VECTOR2D aStartPoint, VECTOR2D aEndPoint ); + virtual void DrawGridLine( const VECTOR2D& aStartPoint, const VECTOR2D& aEndPoint ); private: /// Super class definition @@ -384,7 +384,7 @@ private: * @param ADepthOffset is the relative depth of the semi-circle. * */ - void drawSemiCircle( VECTOR2D aCenterPoint, double aRadius, double aAngle, + void drawSemiCircle( const VECTOR2D& aCenterPoint, double aRadius, double aAngle, double aDepthOffset ); /// Compute the points of a unit circle. @@ -470,7 +470,7 @@ private: * @param aStartPoint is the start point of the line. * @param aEndPoint is the end point of the line. */ - inline void drawLineQuad( VECTOR2D aStartPoint, VECTOR2D aEndPoint ); + inline void drawLineQuad( const VECTOR2D& aStartPoint, const VECTOR2D& aEndPoint ); /** * @brief Draw the line cap @@ -479,12 +479,13 @@ private: * @param aEndPoint is the end point of the line. * @param aDepthOffset is the relative depth of the line cap. */ - inline void drawLineCap( VECTOR2D aStartPoint, VECTOR2D aEndPoint, double aDepthOffset ); + inline void drawLineCap( const VECTOR2D& aStartPoint, const VECTOR2D& aEndPoint, + double aDepthOffset ); inline void selectShader( int aIndex ); /// @copydoc GAL::DrawRoundedSegment() - void drawRoundedSegment( VECTOR2D aStartPoint, VECTOR2D aEndPoint, double aWidth, + void drawRoundedSegment( const VECTOR2D& aStartPoint, const VECTOR2D& aEndPoint, double aWidth, bool aStroke = false, bool aGlBegin = false );