summaryrefslogtreecommitdiff
path: root/drawinglayer/source/primitive3d/sdrcubeprimitive3d.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'drawinglayer/source/primitive3d/sdrcubeprimitive3d.cxx')
-rw-r--r--drawinglayer/source/primitive3d/sdrcubeprimitive3d.cxx79
1 files changed, 38 insertions, 41 deletions
diff --git a/drawinglayer/source/primitive3d/sdrcubeprimitive3d.cxx b/drawinglayer/source/primitive3d/sdrcubeprimitive3d.cxx
index aa2a43198df4..7fe1b1fd896d 100644
--- a/drawinglayer/source/primitive3d/sdrcubeprimitive3d.cxx
+++ b/drawinglayer/source/primitive3d/sdrcubeprimitive3d.cxx
@@ -4,9 +4,9 @@
*
* $RCSfile: sdrcubeprimitive3d.cxx,v $
*
- * $Revision: 1.4 $
+ * $Revision: 1.5 $
*
- * last change: $Author: aw $ $Date: 2006-08-09 16:51:15 $
+ * last change: $Author: aw $ $Date: 2006-10-19 10:38:33 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
@@ -33,37 +33,33 @@
*
************************************************************************/
-#ifndef _DRAWINGLAYER_PRIMITIVE3D_SDRCUBEPRIMITIVE3D_HXX
+#ifndef INCLUDED_DRAWINGLAYER_PRIMITIVE3D_SDRCUBEPRIMITIVE3D_HXX
#include <drawinglayer/primitive3d/sdrcubeprimitive3d.hxx>
#endif
-#ifndef _BGFX_RANGE_B3DRANGE_HXX
-#include <basegfx/range/b3drange.hxx>
+#ifndef _BGFX_POLYPOLYGON_B3DPOLYGONTOOLS_HXX
+#include <basegfx/polygon/b3dpolypolygontools.hxx>
#endif
-#ifndef _BGFX_POLYGON_B3DPOLYPOLYGON_HXX
-#include <basegfx/polygon/b3dpolypolygon.hxx>
+#ifndef _BGFX_POLYGON_B3DPOLYGON_HXX
+#include <basegfx/polygon/b3dpolygon.hxx>
#endif
-#ifndef _BGFX_POLYPOLYGON_B3DPOLYGONTOOLS_HXX
-#include <basegfx/polygon/b3dpolypolygontools.hxx>
+#ifndef _BGFX_MATRIX_B2DHOMMATRIX_HXX
+#include <basegfx/matrix/b2dhommatrix.hxx>
#endif
-#ifndef _DRAWINGLAYER_PRIMITIVE3D_SDRDECOMPOSITIONTOOLS3D_HXX
+#ifndef INCLUDED_DRAWINGLAYER_PRIMITIVE3D_SDRDECOMPOSITIONTOOLS3D_HXX
#include <drawinglayer/primitive3d/sdrdecompositiontools3d.hxx>
#endif
-#ifndef _BGFX_POLYGON_B3DPOLYGON_HXX
-#include <basegfx/polygon/b3dpolygon.hxx>
+#ifndef _BGFX_TOOLS_CANVASTOOLS_HXX
+#include <basegfx/tools/canvastools.hxx>
#endif
-#ifndef _BGFX_POLYGON_B3DPOLYGONTOOLS_HXX
-#include <basegfx/polygon/b3dpolygontools.hxx>
-#endif
+//////////////////////////////////////////////////////////////////////////////
-#ifndef _BGFX_MATRIX_B2DHOMMATRIX_HXX
-#include <basegfx/matrix/b2dhommatrix.hxx>
-#endif
+using namespace com::sun::star;
//////////////////////////////////////////////////////////////////////////////
@@ -71,9 +67,10 @@ namespace drawinglayer
{
namespace primitive3d
{
- void sdrCubePrimitive3D::decompose(primitiveVector3D& rTarget)
+ Primitive3DSequence SdrCubePrimitive3D::createLocalDecomposition(double /*fTime*/) const
{
const basegfx::B3DRange aUnitRange(0.0, 0.0, 0.0, 1.0, 1.0, 1.0);
+ Primitive3DSequence aRetval;
// add fill
if(getSdrLFSAttribute().getFill())
@@ -157,7 +154,7 @@ namespace drawinglayer
// transform texture coordinates to texture size
basegfx::B2DHomMatrix aTexMatrix;
- aTexMatrix.scale(maTextureSize.getX(), maTextureSize.getY());
+ aTexMatrix.scale(getTextureSize().getX(), getTextureSize().getY());
aFill.transformTextureCoordiantes(aTexMatrix);
}
@@ -170,8 +167,8 @@ namespace drawinglayer
}
// create single PolyPolygonFill primitives
- add3DPolyPolygonFillPrimitive(
- a3DPolyPolygonVector, maTransform, maTextureSize, rTarget,
+ aRetval = create3DPolyPolygonFillPrimitives(
+ a3DPolyPolygonVector, getTransform(), getTextureSize(),
getSdr3DObjectAttribute(), *getSdrLFSAttribute().getFill(),
getSdrLFSAttribute().getFillFloatTransGradient());
}
@@ -180,40 +177,35 @@ namespace drawinglayer
if(getSdrLFSAttribute().getLine())
{
basegfx::B3DPolyPolygon aLine(basegfx::tools::createCubePolyPolygonFromB3DRange(aUnitRange));
- add3DPolyPolygonLinePrimitive(aLine, maTransform, rTarget, *getSdrLFSAttribute().getLine());
+ const Primitive3DSequence aLines(create3DPolyPolygonLinePrimitives(aLine, getTransform(), *getSdrLFSAttribute().getLine()));
+ appendPrimitive3DSequenceToPrimitive3DSequence(aRetval, aLines);
}
// add shadow
- if(getSdrLFSAttribute().getShadow())
+ if(getSdrLFSAttribute().getShadow() && aRetval.hasElements())
{
- addShadowPrimitive3D(rTarget, *getSdrLFSAttribute().getShadow(), getSdr3DObjectAttribute().getShadow3D());
+ const Primitive3DSequence aShadow(createShadowPrimitive3D(aRetval, *getSdrLFSAttribute().getShadow(), getSdr3DObjectAttribute().getShadow3D()));
+ appendPrimitive3DSequenceToPrimitive3DSequence(aRetval, aShadow);
}
+
+ return aRetval;
}
- sdrCubePrimitive3D::sdrCubePrimitive3D(
+ SdrCubePrimitive3D::SdrCubePrimitive3D(
const basegfx::B3DHomMatrix& rTransform,
const basegfx::B2DVector& rTextureSize,
- const attribute::sdrLineFillShadowAttribute& rSdrLFSAttribute,
- const attribute::sdr3DObjectAttribute& rSdr3DObjectAttribute)
- : sdrPrimitive3D(rTransform, rTextureSize, rSdrLFSAttribute, rSdr3DObjectAttribute)
- {
- }
-
- sdrCubePrimitive3D::~sdrCubePrimitive3D()
+ const attribute::SdrLineFillShadowAttribute& rSdrLFSAttribute,
+ const attribute::Sdr3DObjectAttribute& rSdr3DObjectAttribute)
+ : SdrPrimitive3D(rTransform, rTextureSize, rSdrLFSAttribute, rSdr3DObjectAttribute)
{
}
- bool sdrCubePrimitive3D::operator==(const basePrimitive3D& rPrimitive) const
+ bool SdrCubePrimitive3D::operator==(const BasePrimitive3D& rPrimitive) const
{
- return sdrPrimitive3D::operator==(rPrimitive);
+ return SdrPrimitive3D::operator==(rPrimitive);
}
- PrimitiveID sdrCubePrimitive3D::getID() const
- {
- return CreatePrimitiveID('S', 'C', 'U', '3');
- }
-
- basegfx::B3DRange sdrCubePrimitive3D::get3DRange() const
+ basegfx::B3DRange SdrCubePrimitive3D::getB3DRange(double /*fTime*/) const
{
// use defaut from sdrPrimitive3D which uses transformation expanded by line width/2.
// The parent implementation which uses the ranges of the decomposition would be more
@@ -223,6 +215,11 @@ namespace drawinglayer
// has priority here.
return getStandard3DRange();
}
+
+ sal_uInt32 SdrCubePrimitive3D::getPrimitiveID() const
+ {
+ return Create3DPrimitiveID('3','C','u','b');
+ }
} // end of namespace primitive3d
} // end of namespace drawinglayer