openoffice-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From a..@apache.org
Subject svn commit: r1521070 - /openoffice/trunk/main/svx/source/customshapes/EnhancedCustomShape3d.cxx
Date Mon, 09 Sep 2013 12:23:49 GMT
Author: alg
Date: Mon Sep  9 12:23:48 2013
New Revision: 1521070

URL: http://svn.apache.org/r1521070
Log:
i122777 Corrected texture mapping for 3D CustomShapes

Modified:
    openoffice/trunk/main/svx/source/customshapes/EnhancedCustomShape3d.cxx

Modified: openoffice/trunk/main/svx/source/customshapes/EnhancedCustomShape3d.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svx/source/customshapes/EnhancedCustomShape3d.cxx?rev=1521070&r1=1521069&r2=1521070&view=diff
==============================================================================
--- openoffice/trunk/main/svx/source/customshapes/EnhancedCustomShape3d.cxx (original)
+++ openoffice/trunk/main/svx/source/customshapes/EnhancedCustomShape3d.cxx Mon Sep  9 12:23:48
2013
@@ -385,7 +385,11 @@ SdrObject* EnhancedCustomShape3d::Create
 			// #116336#
 			// If shapes are mirrored once (mirroring two times correct geometry again)
 			// double-sided at the object and two-sided-lighting at the scene need to be set.
-			if((bIsMirroredX && !bIsMirroredY) || (!bIsMirroredX && bIsMirroredY))
+            //
+            // #122777# Also use double sided for two fill styles since there several 3d
objects get
+            // created with a depth of 0; one of them is the backside which needs double-sided
to
+            // get visible
+			if(bUseTwoFillStyles || (bIsMirroredX && !bIsMirroredY) || (!bIsMirroredX &&
bIsMirroredY))
 			{
 				aSet.Put( Svx3DDoubleSidedItem( sal_True ) );
 				pScene->GetProperties().SetObjectItem( Svx3DTwoSidedLightingItem( sal_True ) );
@@ -504,7 +508,9 @@ SdrObject* EnhancedCustomShape3d::Create
                 const Rectangle aBoundRect(basegfx::fround(aTempRange.getMinX()), basegfx::fround(aTempRange.getMinY()),
basegfx::fround(aTempRange.getMaxX()), basegfx::fround(aTempRange.getMaxY()));
 				aBoundRect2d.Union( aBoundRect );
 
-				E3dCompoundObject* p3DObj = new E3dExtrudeObj( a3DDefaultAttr, aPolyPoly, bUseTwoFillStyles
? 10 : fDepth );
+                // #122777# depth 0 is okay for planes when using double-sided
+				E3dCompoundObject* p3DObj = new E3dExtrudeObj( a3DDefaultAttr, aPolyPoly, bUseTwoFillStyles
? 0 : fDepth );
+
 				p3DObj->NbcSetLayer( pShape2d->GetLayer() );
 				p3DObj->SetMergedItemSet( aLocalSet );
 				if ( bIsPlaceholderObject )
@@ -517,16 +523,21 @@ SdrObject* EnhancedCustomShape3d::Create
 					{
 						const XFillBitmapItem& rBmpItm = (XFillBitmapItem&)p3DObj->GetMergedItem(XATTR_FILLBITMAP);
 						aFillBmp = rBmpItm.GetGraphicObject().GetGraphic().GetBitmapEx();
-						Size aLogicalSize = aFillBmp.GetPrefSize();
-						if ( aFillBmp.GetPrefMapMode() == MAP_PIXEL )
-							aLogicalSize = Application::GetDefaultDevice()->PixelToLogic( aLogicalSize, MAP_100TH_MM
); 
-						else
-							aLogicalSize = OutputDevice::LogicToLogic( aLogicalSize, aFillBmp.GetPrefMapMode(),
MAP_100TH_MM );
-						aLogicalSize.Width()  *= 5;			;//				:-(		nice scaling, look at engine3d/obj3d.cxx
-						aLogicalSize.Height() *= 5;
-						aFillBmp.SetPrefSize( aLogicalSize );
-						aFillBmp.SetPrefMapMode( MAP_100TH_MM );
-						p3DObj->SetMergedItem(XFillBitmapItem(String(), Graphic(aFillBmp)));
+
+                        // #122777# old adaption of FillStyle bitmap size to 5-times the
original size; this is not needed
+                        // anymore and was used in old times to male the fill look better
when converting to 3D. Removed
+                        // from regular 3D objects for some time, also needs to be removed
from CustomShapes
+                        //
+						//Size aLogicalSize = aFillBmp.GetPrefSize();
+						//if ( aFillBmp.GetPrefMapMode() == MAP_PIXEL )
+						//	aLogicalSize = Application::GetDefaultDevice()->PixelToLogic( aLogicalSize, MAP_100TH_MM
); 
+						//else
+						//	aLogicalSize = OutputDevice::LogicToLogic( aLogicalSize, aFillBmp.GetPrefMapMode(),
MAP_100TH_MM );
+						//aLogicalSize.Width()  *= 5;			;//				:-(		nice scaling, look at engine3d/obj3d.cxx
+						//aLogicalSize.Height() *= 5;
+						//aFillBmp.SetPrefSize( aLogicalSize );
+						//aFillBmp.SetPrefMapMode( MAP_100TH_MM );
+						//p3DObj->SetMergedItem(XFillBitmapItem(String(), Graphic(aFillBmp)));
 					}
 					else
 					{
@@ -557,7 +568,10 @@ SdrObject* EnhancedCustomShape3d::Create
 					p3DObj->SetMergedItem( Svx3DCloseFrontItem( sal_False ) );
 					p3DObj->SetMergedItem( Svx3DCloseBackItem( sal_False ) );
 					pScene->Insert3DObj( p3DObj );
-					p3DObj = new E3dExtrudeObj( a3DDefaultAttr, aPolyPoly, 10 );
+
+                    // #122777# depth 0 is okay for planes when using double-sided
+					p3DObj = new E3dExtrudeObj( a3DDefaultAttr, aPolyPoly, 0 );
+
 					p3DObj->NbcSetLayer( pShape2d->GetLayer() );
 					p3DObj->SetMergedItemSet( aLocalSet );
 					



Mime
View raw message