|
|
|
@ -110,8 +110,9 @@ void GAL::ComputeWorldScreenMatrix() |
|
|
|
scale.SetScale( VECTOR2D( worldScale, worldScale ) ); |
|
|
|
|
|
|
|
MATRIX3x3D flip; |
|
|
|
|
|
|
|
flip.SetIdentity(); |
|
|
|
flip.SetScale( VECTOR2D( flipX, flipY ) ); |
|
|
|
flip.SetScale( VECTOR2D( globalFlipX ? -1.0 : 1.0, globalFlipY ? -1.0 : 1.0 ) ); |
|
|
|
|
|
|
|
MATRIX3x3D lookat; |
|
|
|
lookat.SetIdentity(); |
|
|
|
@ -150,9 +151,8 @@ void GAL::DrawGrid() |
|
|
|
int gridEndX = KiROUND( worldEndPoint.x / gridSize.x ); |
|
|
|
int gridStartY = KiROUND( worldStartPoint.y / gridSize.y ); |
|
|
|
int gridEndY = KiROUND( worldEndPoint.y / gridSize.y ); |
|
|
|
|
|
|
|
assert( gridEndX >= gridStartX ); |
|
|
|
assert( gridEndY >= gridStartY ); |
|
|
|
int dirX = gridEndX >= gridStartX ? 1 : -1; |
|
|
|
int dirY = gridEndY >= gridStartY ? 1 : -1; |
|
|
|
|
|
|
|
// Correct the index, else some lines are not correctly painted
|
|
|
|
gridStartX -= std::abs( gridOrigin.x / gridSize.x ) + 1; |
|
|
|
@ -172,7 +172,7 @@ void GAL::DrawGrid() |
|
|
|
// Now draw the grid, every coarse grid line gets the double width
|
|
|
|
|
|
|
|
// Vertical lines
|
|
|
|
for( int j = gridStartY; j < gridEndY; j += 1 ) |
|
|
|
for( int j = gridStartY; j != gridEndY; j += dirY ) |
|
|
|
{ |
|
|
|
if( j % gridTick == 0 && gridScreenSizeDense > gridDrawThreshold ) |
|
|
|
SetLineWidth( doubleMarker ); |
|
|
|
@ -188,7 +188,7 @@ void GAL::DrawGrid() |
|
|
|
} |
|
|
|
|
|
|
|
// Horizontal lines
|
|
|
|
for( int i = gridStartX; i < gridEndX; i += 1 ) |
|
|
|
for( int i = gridStartX; i != gridEndX; i += dirX ) |
|
|
|
{ |
|
|
|
if( i % gridTick == 0 && gridScreenSizeDense > gridDrawThreshold ) |
|
|
|
SetLineWidth( doubleMarker ); |
|
|
|
@ -210,14 +210,14 @@ void GAL::DrawGrid() |
|
|
|
SetIsStroke( false ); |
|
|
|
SetFillColor( gridColor ); |
|
|
|
|
|
|
|
for( int j = gridStartY; j < gridEndY; j += 1 ) |
|
|
|
for( int j = gridStartY; j != gridEndY; j += dirY ) |
|
|
|
{ |
|
|
|
if( j % gridTick == 0 && gridScreenSizeDense > gridDrawThreshold ) |
|
|
|
tickY = true; |
|
|
|
else |
|
|
|
tickY = false; |
|
|
|
|
|
|
|
for( int i = gridStartX; i < gridEndX; i += 1 ) |
|
|
|
for( int i = gridStartX; i != gridEndX; i += dirX ) |
|
|
|
{ |
|
|
|
if( i % gridTick == 0 && gridScreenSizeDense > gridDrawThreshold ) |
|
|
|
tickX = true; |
|
|
|
|