summaryrefslogtreecommitdiff
path: root/drawinglayer/source/primitive3d/sdrpolypolygonprimitive3d.cxx
diff options
context:
space:
mode:
authorOliver Bolte <obo@openoffice.org>2008-10-17 08:40:10 +0000
committerOliver Bolte <obo@openoffice.org>2008-10-17 08:40:10 +0000
commita8ac4bc4145e7e558153b58c87b2def339aebe36 (patch)
treed1f5da0a1b702f12725b2b82117b7ff49872bb21 /drawinglayer/source/primitive3d/sdrpolypolygonprimitive3d.cxx
parentae562e931a98e708a75e8d140cf1ff24854acfc7 (diff)
CWS-TOOLING: integrate CWS aw057
Diffstat (limited to 'drawinglayer/source/primitive3d/sdrpolypolygonprimitive3d.cxx')
-rw-r--r--drawinglayer/source/primitive3d/sdrpolypolygonprimitive3d.cxx34
1 files changed, 27 insertions, 7 deletions
diff --git a/drawinglayer/source/primitive3d/sdrpolypolygonprimitive3d.cxx b/drawinglayer/source/primitive3d/sdrpolypolygonprimitive3d.cxx
index 639635970c87..e27b8b43fe93 100644
--- a/drawinglayer/source/primitive3d/sdrpolypolygonprimitive3d.cxx
+++ b/drawinglayer/source/primitive3d/sdrpolypolygonprimitive3d.cxx
@@ -41,6 +41,7 @@
#include <drawinglayer/primitive3d/drawinglayer_primitivetypes3d.hxx>
#include <basegfx/polygon/b3dpolypolygontools.hxx>
#include <drawinglayer/attribute/sdrattribute.hxx>
+#include <drawinglayer/primitive3d/hittestprimitive3d.hxx>
//////////////////////////////////////////////////////////////////////////////
@@ -58,18 +59,37 @@ namespace drawinglayer
if(getPolyPolygon3D().count())
{
- // add fill
+ ::std::vector< basegfx::B3DPolyPolygon > aFill;
+ aFill.push_back(getPolyPolygon3D());
+
if(getSdrLFSAttribute().getFill())
{
- // create single PolyPolygonFill primitives
- ::std::vector< basegfx::B3DPolyPolygon > aFill;
- aFill.push_back(getPolyPolygon3D());
-
+ // add fill
aRetval = create3DPolyPolygonFillPrimitives(
- aFill, getTransform(), getTextureSize(),
- getSdr3DObjectAttribute(), *getSdrLFSAttribute().getFill(),
+ aFill,
+ getTransform(),
+ getTextureSize(),
+ getSdr3DObjectAttribute(),
+ *getSdrLFSAttribute().getFill(),
getSdrLFSAttribute().getFillFloatTransGradient());
}
+ else
+ {
+ // create simplified 3d hit test geometry
+ const attribute::SdrFillAttribute aSimplifiedFillAttribute(0.0, basegfx::BColor(), 0, 0, 0);
+
+ aRetval = create3DPolyPolygonFillPrimitives(
+ aFill,
+ getTransform(),
+ getTextureSize(),
+ getSdr3DObjectAttribute(),
+ aSimplifiedFillAttribute,
+ 0);
+
+ // encapsulate in HitTestPrimitive3D and add
+ const Primitive3DReference xRef(new HitTestPrimitive3D(aRetval));
+ aRetval = Primitive3DSequence(&xRef, 1L);
+ }
// add line
if(getSdrLFSAttribute().getLine())