summaryrefslogtreecommitdiff
path: root/drawinglayer/source/primitive2d/texteffectprimitive2d.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'drawinglayer/source/primitive2d/texteffectprimitive2d.cxx')
-rw-r--r--drawinglayer/source/primitive2d/texteffectprimitive2d.cxx56
1 files changed, 29 insertions, 27 deletions
diff --git a/drawinglayer/source/primitive2d/texteffectprimitive2d.cxx b/drawinglayer/source/primitive2d/texteffectprimitive2d.cxx
index 6c5952e6aa..ac55fc5900 100644
--- a/drawinglayer/source/primitive2d/texteffectprimitive2d.cxx
+++ b/drawinglayer/source/primitive2d/texteffectprimitive2d.cxx
@@ -41,6 +41,7 @@
#include <drawinglayer/primitive2d/modifiedcolorprimitive2d.hxx>
#include <drawinglayer/primitive2d/transformprimitive2d.hxx>
#include <drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx>
+#include <basegfx/matrix/b2dhommatrixtools.hxx>
//////////////////////////////////////////////////////////////////////////////
@@ -50,7 +51,7 @@ namespace drawinglayer
{
static double fDiscreteSize(1.1);
- Primitive2DSequence TextEffectPrimitive2D::createLocalDecomposition(const geometry::ViewInformation2D& rViewInformation) const
+ Primitive2DSequence TextEffectPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const
{
Primitive2DSequence aRetval;
@@ -68,13 +69,12 @@ namespace drawinglayer
case TEXTEFFECTSTYLE2D_RELIEF_ENGRAVED_DEFAULT:
{
// prepare transform of sub-group back to (0,0) and align to X-Axis
- basegfx::B2DHomMatrix aBackTransform;
- aBackTransform.translate(-getRotationCenter().getX(), -getRotationCenter().getY());
+ basegfx::B2DHomMatrix aBackTransform(basegfx::tools::createTranslateB2DHomMatrix(
+ -getRotationCenter().getX(), -getRotationCenter().getY()));
aBackTransform.rotate(-getDirection());
// prepare transform of sub-group back to it's position and rotation
- basegfx::B2DHomMatrix aForwardTransform;
- aForwardTransform.rotate(getDirection());
+ basegfx::B2DHomMatrix aForwardTransform(basegfx::tools::createRotateB2DHomMatrix(getDirection()));
aForwardTransform.translate(getRotationCenter().getX(), getRotationCenter().getY());
// create transformation for one discrete unit
@@ -104,22 +104,22 @@ namespace drawinglayer
{
// emboss/engrave in black, original forced to white
const basegfx::BColorModifier aBColorModifierToGray(basegfx::BColor(0.0));
- const Primitive2DReference xModifiedColor(new ModifiedColorPrimitive2D(getChildren(), aBColorModifierToGray));
+ const Primitive2DReference xModifiedColor(new ModifiedColorPrimitive2D(getTextContent(), aBColorModifierToGray));
aRetval[0] = Primitive2DReference(new TransformPrimitive2D(aTransform, Primitive2DSequence(&xModifiedColor, 1)));
// add original, too
const basegfx::BColorModifier aBColorModifierToWhite(basegfx::BColor(1.0));
- aRetval[1] = Primitive2DReference(new ModifiedColorPrimitive2D(getChildren(), aBColorModifierToWhite));
+ aRetval[1] = Primitive2DReference(new ModifiedColorPrimitive2D(getTextContent(), aBColorModifierToWhite));
}
else
{
// emboss/engrave in gray, keep original's color
const basegfx::BColorModifier aBColorModifierToGray(basegfx::BColor(0.75)); // 192
- const Primitive2DReference xModifiedColor(new ModifiedColorPrimitive2D(getChildren(), aBColorModifierToGray));
+ const Primitive2DReference xModifiedColor(new ModifiedColorPrimitive2D(getTextContent(), aBColorModifierToGray));
aRetval[0] = Primitive2DReference(new TransformPrimitive2D(aTransform, Primitive2DSequence(&xModifiedColor, 1)));
// add original, too
- aRetval[1] = Primitive2DReference(new GroupPrimitive2D(getChildren()));
+ aRetval[1] = Primitive2DReference(new GroupPrimitive2D(getTextContent()));
}
break;
@@ -132,39 +132,39 @@ namespace drawinglayer
aTransform.set(0, 2, aDistance.getX());
aTransform.set(1, 2, 0.0);
- aRetval[0] = Primitive2DReference(new TransformPrimitive2D(aTransform, getChildren()));
+ aRetval[0] = Primitive2DReference(new TransformPrimitive2D(aTransform, getTextContent()));
aTransform.set(0, 2, aDiagonalDistance.getX());
aTransform.set(1, 2, aDiagonalDistance.getY());
- aRetval[1] = Primitive2DReference(new TransformPrimitive2D(aTransform, getChildren()));
+ aRetval[1] = Primitive2DReference(new TransformPrimitive2D(aTransform, getTextContent()));
aTransform.set(0, 2, 0.0);
aTransform.set(1, 2, aDistance.getY());
- aRetval[2] = Primitive2DReference(new TransformPrimitive2D(aTransform, getChildren()));
+ aRetval[2] = Primitive2DReference(new TransformPrimitive2D(aTransform, getTextContent()));
aTransform.set(0, 2, -aDiagonalDistance.getX());
aTransform.set(1, 2, aDiagonalDistance.getY());
- aRetval[3] = Primitive2DReference(new TransformPrimitive2D(aTransform, getChildren()));
+ aRetval[3] = Primitive2DReference(new TransformPrimitive2D(aTransform, getTextContent()));
aTransform.set(0, 2, -aDistance.getX());
aTransform.set(1, 2, 0.0);
- aRetval[4] = Primitive2DReference(new TransformPrimitive2D(aTransform, getChildren()));
+ aRetval[4] = Primitive2DReference(new TransformPrimitive2D(aTransform, getTextContent()));
aTransform.set(0, 2, -aDiagonalDistance.getX());
aTransform.set(1, 2, -aDiagonalDistance.getY());
- aRetval[5] = Primitive2DReference(new TransformPrimitive2D(aTransform, getChildren()));
+ aRetval[5] = Primitive2DReference(new TransformPrimitive2D(aTransform, getTextContent()));
aTransform.set(0, 2, 0.0);
aTransform.set(1, 2, -aDistance.getY());
- aRetval[6] = Primitive2DReference(new TransformPrimitive2D(aTransform, getChildren()));
+ aRetval[6] = Primitive2DReference(new TransformPrimitive2D(aTransform, getTextContent()));
aTransform.set(0, 2, aDiagonalDistance.getX());
aTransform.set(1, 2, -aDiagonalDistance.getY());
- aRetval[7] = Primitive2DReference(new TransformPrimitive2D(aTransform, getChildren()));
+ aRetval[7] = Primitive2DReference(new TransformPrimitive2D(aTransform, getTextContent()));
// at last, place original over it, but force to white
const basegfx::BColorModifier aBColorModifierToWhite(basegfx::BColor(1.0, 1.0, 1.0));
- aRetval[8] = Primitive2DReference(new ModifiedColorPrimitive2D(getChildren(), aBColorModifierToWhite));
+ aRetval[8] = Primitive2DReference(new ModifiedColorPrimitive2D(getTextContent(), aBColorModifierToWhite));
break;
}
@@ -174,11 +174,12 @@ namespace drawinglayer
}
TextEffectPrimitive2D::TextEffectPrimitive2D(
- const Primitive2DSequence& rChildren,
+ const Primitive2DSequence& rTextContent,
const basegfx::B2DPoint& rRotationCenter,
double fDirection,
TextEffectStyle2D eTextEffectStyle2D)
- : GroupPrimitive2D(rChildren),
+ : BufferedDecompositionPrimitive2D(),
+ maTextContent(rTextContent),
maRotationCenter(rRotationCenter),
mfDirection(fDirection),
meTextEffectStyle2D(eTextEffectStyle2D)
@@ -187,11 +188,12 @@ namespace drawinglayer
bool TextEffectPrimitive2D::operator==(const BasePrimitive2D& rPrimitive) const
{
- if(GroupPrimitive2D::operator==(rPrimitive))
+ if(BasePrimitive2D::operator==(rPrimitive))
{
const TextEffectPrimitive2D& rCompare = (TextEffectPrimitive2D&)rPrimitive;
- return (getRotationCenter() == rCompare.getRotationCenter()
+ return (getTextContent() == rCompare.getTextContent()
+ && getRotationCenter() == rCompare.getRotationCenter()
&& getDirection() == rCompare.getDirection()
&& getTextEffectStyle2D() == rCompare.getTextEffectStyle2D());
}
@@ -206,7 +208,7 @@ namespace drawinglayer
// then will ask 9 times at nearly the same content. This may even be refined here using the
// TextEffectStyle information, e.g. for TEXTEFFECTSTYLE2D_RELIEF the grow needs only to
// be in two directions
- basegfx::B2DRange aRetval(getB2DRangeFromPrimitive2DSequence(getChildren(), rViewInformation));
+ basegfx::B2DRange aRetval(getB2DRangeFromPrimitive2DSequence(getTextContent(), rViewInformation));
aRetval.grow(fDiscreteSize);
return aRetval;
@@ -216,23 +218,23 @@ namespace drawinglayer
{
::osl::MutexGuard aGuard( m_aMutex );
- if(getLocalDecomposition().hasElements())
+ if(getBuffered2DDecomposition().hasElements())
{
if(maLastObjectToViewTransformation != rViewInformation.getObjectToViewTransformation())
{
// conditions of last local decomposition have changed, delete
- const_cast< TextEffectPrimitive2D* >(this)->setLocalDecomposition(Primitive2DSequence());
+ const_cast< TextEffectPrimitive2D* >(this)->setBuffered2DDecomposition(Primitive2DSequence());
}
}
- if(!getLocalDecomposition().hasElements())
+ if(!getBuffered2DDecomposition().hasElements())
{
// remember ViewRange and ViewTransformation
const_cast< TextEffectPrimitive2D* >(this)->maLastObjectToViewTransformation = rViewInformation.getObjectToViewTransformation();
}
// use parent implementation
- return BasePrimitive2D::get2DDecomposition(rViewInformation);
+ return BufferedDecompositionPrimitive2D::get2DDecomposition(rViewInformation);
}
// provide unique ID