INTEGRATION: CWS presfixes12 (1.8.22); FILE MERGED

2007/03/08 21:37:08 thb 1.8.22.1: #i37778# Added extra setClip() method to be able to set no clip - setting a clip with zero polygons by definition clips everything
This commit is contained in:
Oliver Bolte
2007-07-17 14:27:11 +00:00
parent 3e7cc5d8f1
commit 6bf80552f3

View File

@@ -4,9 +4,9 @@
* *
* $RCSfile: implsprite.cxx,v $ * $RCSfile: implsprite.cxx,v $
* *
* $Revision: 1.8 $ * $Revision: 1.9 $
* *
* last change: $Author: obo $ $Date: 2006-09-17 12:53:06 $ * last change: $Author: obo $ $Date: 2007-07-17 15:27:11 $
* *
* The Contents of this file are made available subject to * The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1. * the terms of GNU Lesser General Public License Version 2.1.
@@ -182,13 +182,8 @@ namespace cppcanvas
OSL_ENSURE( mxSprite.is(), "ImplSprite::transform(): Invalid sprite"); OSL_ENSURE( mxSprite.is(), "ImplSprite::transform(): Invalid sprite");
if( mxSprite.is() && mxGraphicDevice.is() ) if( mxSprite.is() && mxGraphicDevice.is() )
{ mxSprite->clip( ::basegfx::unotools::xPolyPolygonFromB2DPolyPolygon( mxGraphicDevice,
if( rClipPoly.count() == 0 )
mxSprite->clip( uno::Reference< rendering::XPolyPolygon2D >() );
else
mxSprite->clip( ::basegfx::unotools::xPolyPolygonFromB2DPolyPolygon( mxGraphicDevice,
rClipPoly ) ); rClipPoly ) );
}
} }
void ImplSprite::setClip( const ::basegfx::B2DPolyPolygon& rClipPoly ) void ImplSprite::setClip( const ::basegfx::B2DPolyPolygon& rClipPoly )
@@ -198,29 +193,31 @@ namespace cppcanvas
if( mxSprite.is() && mxGraphicDevice.is() ) if( mxSprite.is() && mxGraphicDevice.is() )
{ {
if( rClipPoly.count() == 0 ) ::basegfx::B2DPolyPolygon aTransformedClipPoly( rClipPoly );
{
mxSprite->clip( uno::Reference< rendering::XPolyPolygon2D >() );
}
else
{
::basegfx::B2DPolyPolygon aTransformedClipPoly( rClipPoly );
// extract linear part of canvas view transformation (linear means: // extract linear part of canvas view transformation (linear means:
// without translational components) // without translational components)
::basegfx::B2DHomMatrix aViewTransform( mpTransformArbiter->getTransformation() ); ::basegfx::B2DHomMatrix aViewTransform( mpTransformArbiter->getTransformation() );
aViewTransform.set( 0, 2, 0.0 ); aViewTransform.set( 0, 2, 0.0 );
aViewTransform.set( 1, 2, 0.0 ); aViewTransform.set( 1, 2, 0.0 );
// transform polygon from view to device coordinate space // transform polygon from view to device coordinate space
aTransformedClipPoly.transform( aViewTransform ); aTransformedClipPoly.transform( aViewTransform );
mxSprite->clip( ::basegfx::unotools::xPolyPolygonFromB2DPolyPolygon( mxGraphicDevice, mxSprite->clip( ::basegfx::unotools::xPolyPolygonFromB2DPolyPolygon( mxGraphicDevice,
aTransformedClipPoly ) ); aTransformedClipPoly ) );
}
} }
} }
void ImplSprite::setClip()
{
OSL_ENSURE( mxGraphicDevice.is(), "ImplSprite::setClip(): Invalid canvas");
OSL_ENSURE( mxSprite.is(), "ImplSprite::setClip(): Invalid sprite");
if( mxSprite.is() && mxGraphicDevice.is() )
mxSprite->clip( uno::Reference< rendering::XPolyPolygon2D >() );
}
void ImplSprite::show() void ImplSprite::show()
{ {
OSL_ENSURE( mxSprite.is(), "ImplSprite::show(): Invalid sprite"); OSL_ENSURE( mxSprite.is(), "ImplSprite::show(): Invalid sprite");