summaryrefslogtreecommitdiff
path: root/drawinglayer/source/geometry
diff options
context:
space:
mode:
authorArmin Weiss <aw@openoffice.org>2008-06-24 14:31:09 +0000
committerArmin Weiss <aw@openoffice.org>2008-06-24 14:31:09 +0000
commit1e21f485d87bad15c424df116165c42fe0f9f08d (patch)
tree7a27a0143cc31857ee4ffbfed11b800686552c64 /drawinglayer/source/geometry
parentca734fe7777bd7f4211557c8c61d0bc5fe9bbf37 (diff)
#i39532# corrections
Diffstat (limited to 'drawinglayer/source/geometry')
-rw-r--r--drawinglayer/source/geometry/viewinformation2d.cxx180
-rw-r--r--drawinglayer/source/geometry/viewinformation3d.cxx85
2 files changed, 171 insertions, 94 deletions
diff --git a/drawinglayer/source/geometry/viewinformation2d.cxx b/drawinglayer/source/geometry/viewinformation2d.cxx
index 87ec9c7163d5..52fdf12cf3bc 100644
--- a/drawinglayer/source/geometry/viewinformation2d.cxx
+++ b/drawinglayer/source/geometry/viewinformation2d.cxx
@@ -4,9 +4,9 @@
*
* $RCSfile: viewinformation2d.cxx,v $
*
- * $Revision: 1.6 $
+ * $Revision: 1.7 $
*
- * last change: $Author: aw $ $Date: 2008-06-10 09:29:32 $
+ * last change: $Author: aw $ $Date: 2008-06-24 15:31:07 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
@@ -61,13 +61,20 @@ namespace drawinglayer
// two memory regions for pairs of ViewInformation2D/ImpViewInformation2D
friend class ::drawinglayer::geometry::ViewInformation2D;
- // the refcounter
+ // the refcounter. 0 means exclusively used
sal_uInt32 mnRefCount;
protected:
- // the view transformation and the on-demand inverse of it
+ // the object transformation
+ basegfx::B2DHomMatrix maObjectTransformation;
+
+ // the view transformation
basegfx::B2DHomMatrix maViewTransformation;
- basegfx::B2DHomMatrix maInverseViewTransformation;
+
+ // the ObjectToView and it's inverse, both on demand from ObjectTransformation
+ // and ViewTransformation
+ basegfx::B2DHomMatrix maObjectToViewTransformation;
+ basegfx::B2DHomMatrix maInverseObjectToViewTransformation;
// the visible range and the on-demand one in ViewCoordinates
basegfx::B2DRange maViewport;
@@ -87,33 +94,35 @@ namespace drawinglayer
// Viewport, VisualizedPage or ViewTime
uno::Sequence< beans::PropertyValue > mxExtendedInformation;
- // bitfield
- unsigned mbInverseValid : 1;
- unsigned mbDiscreteViewportValid : 1;
-
// the local UNO API strings
- const ::rtl::OUString& getNamePropertyTransformation()
+ const ::rtl::OUString& getNamePropertyObjectTransformation()
{
- static ::rtl::OUString s_sNamePropertyTransformation(RTL_CONSTASCII_USTRINGPARAM("Transformation"));
- return s_sNamePropertyTransformation;
+ static ::rtl::OUString s_sNameProperty(RTL_CONSTASCII_USTRINGPARAM("ObjectTransformation"));
+ return s_sNameProperty;
+ }
+
+ const ::rtl::OUString& getNamePropertyViewTransformation()
+ {
+ static ::rtl::OUString s_sNameProperty(RTL_CONSTASCII_USTRINGPARAM("ViewTransformation"));
+ return s_sNameProperty;
}
const ::rtl::OUString& getNamePropertyViewport()
{
- static ::rtl::OUString s_sNamePropertyViewport(RTL_CONSTASCII_USTRINGPARAM("Viewport"));
- return s_sNamePropertyViewport;
+ static ::rtl::OUString s_sNameProperty(RTL_CONSTASCII_USTRINGPARAM("Viewport"));
+ return s_sNameProperty;
}
const ::rtl::OUString& getNamePropertyTime()
{
- static ::rtl::OUString s_sNamePropertyTime(RTL_CONSTASCII_USTRINGPARAM("Time"));
- return s_sNamePropertyTime;
+ static ::rtl::OUString s_sNameProperty(RTL_CONSTASCII_USTRINGPARAM("Time"));
+ return s_sNameProperty;
}
const ::rtl::OUString& getNamePropertyVisualizedPage()
{
- static ::rtl::OUString s_sNamePropertyXDrawPage(RTL_CONSTASCII_USTRINGPARAM("VisualizedPage"));
- return s_sNamePropertyXDrawPage;
+ static ::rtl::OUString s_sNameProperty(RTL_CONSTASCII_USTRINGPARAM("VisualizedPage"));
+ return s_sNameProperty;
}
void impInterpretPropertyValues(const uno::Sequence< beans::PropertyValue >& rViewParameters)
@@ -130,7 +139,13 @@ namespace drawinglayer
{
const beans::PropertyValue& rProp = rViewParameters[a];
- if(rProp.Name == getNamePropertyTransformation())
+ if(rProp.Name == getNamePropertyObjectTransformation())
+ {
+ com::sun::star::geometry::AffineMatrix2D aAffineMatrix2D;
+ rProp.Value >>= aAffineMatrix2D;
+ basegfx::unotools::homMatrixFromAffineMatrix(maObjectTransformation, aAffineMatrix2D);
+ }
+ else if(rProp.Name == getNamePropertyViewTransformation())
{
com::sun::star::geometry::AffineMatrix2D aAffineMatrix2D;
rProp.Value >>= aAffineMatrix2D;
@@ -165,6 +180,7 @@ namespace drawinglayer
void impFillViewInformationFromContent()
{
uno::Sequence< beans::PropertyValue > xRetval;
+ const bool bObjectTransformationUsed(!maObjectTransformation.isIdentity());
const bool bViewTransformationUsed(!maViewTransformation.isIdentity());
const bool bViewportUsed(!maViewport.isEmpty());
const bool bTimeUsed(0.0 < mfViewTime);
@@ -172,6 +188,7 @@ namespace drawinglayer
const bool bExtraInformation(mxExtendedInformation.hasElements());
sal_uInt32 nIndex(0);
const sal_uInt32 nCount(
+ (bObjectTransformationUsed ? 1 : 0) +
(bViewTransformationUsed ? 1 : 0) +
(bViewportUsed ? 1 : 0) +
(bTimeUsed ? 1 : 0) +
@@ -180,11 +197,20 @@ namespace drawinglayer
mxViewInformation.realloc(nCount);
+ if(bObjectTransformationUsed)
+ {
+ com::sun::star::geometry::AffineMatrix2D aAffineMatrix2D;
+ basegfx::unotools::affineMatrixFromHomMatrix(aAffineMatrix2D, maObjectTransformation);
+ mxViewInformation[nIndex].Name = getNamePropertyObjectTransformation();
+ mxViewInformation[nIndex].Value <<= aAffineMatrix2D;
+ nIndex++;
+ }
+
if(bViewTransformationUsed)
{
com::sun::star::geometry::AffineMatrix2D aAffineMatrix2D;
basegfx::unotools::affineMatrixFromHomMatrix(aAffineMatrix2D, maViewTransformation);
- mxViewInformation[nIndex].Name = getNamePropertyTransformation();
+ mxViewInformation[nIndex].Name = getNamePropertyViewTransformation();
mxViewInformation[nIndex].Value <<= aAffineMatrix2D;
nIndex++;
}
@@ -224,79 +250,105 @@ namespace drawinglayer
public:
ImpViewInformation2D(
+ const basegfx::B2DHomMatrix& rObjectTransformation,
const basegfx::B2DHomMatrix& rViewTransformation,
const basegfx::B2DRange& rViewport,
const uno::Reference< drawing::XDrawPage >& rxDrawPage,
double fViewTime,
const uno::Sequence< beans::PropertyValue >& rExtendedParameters)
: mnRefCount(0),
+ maObjectTransformation(rObjectTransformation),
maViewTransformation(rViewTransformation),
- maInverseViewTransformation(maViewTransformation),
+ maObjectToViewTransformation(),
+ maInverseObjectToViewTransformation(),
maViewport(rViewport),
maDiscreteViewport(),
mxVisualizedPage(rxDrawPage),
mfViewTime(fViewTime),
mxViewInformation(),
- mxExtendedInformation(),
- mbInverseValid(false),
- mbDiscreteViewportValid(false)
+ mxExtendedInformation()
{
impInterpretPropertyValues(rExtendedParameters);
}
ImpViewInformation2D(const uno::Sequence< beans::PropertyValue >& rViewParameters)
: mnRefCount(0),
+ maObjectTransformation(),
maViewTransformation(),
- maInverseViewTransformation(),
+ maObjectToViewTransformation(),
+ maInverseObjectToViewTransformation(),
maViewport(),
maDiscreteViewport(),
mxVisualizedPage(),
mfViewTime(),
mxViewInformation(rViewParameters),
- mxExtendedInformation(),
- mbInverseValid(false),
- mbDiscreteViewportValid(false)
+ mxExtendedInformation()
{
impInterpretPropertyValues(rViewParameters);
}
- const basegfx::B2DHomMatrix& getViewTransformation() const { return maViewTransformation; }
+ const basegfx::B2DHomMatrix& getObjectTransformation() const
+ {
+ return maObjectTransformation;
+ }
- const basegfx::B2DRange& getViewport() const { return maViewport; }
+ const basegfx::B2DHomMatrix& getViewTransformation() const
+ {
+ return maViewTransformation;
+ }
+
+ const basegfx::B2DRange& getViewport() const
+ {
+ return maViewport;
+ }
const basegfx::B2DRange& getDiscreteViewport() const
{
::osl::Mutex m_mutex;
- if(!mbDiscreteViewportValid)
+ if(maDiscreteViewport.isEmpty() && !maViewport.isEmpty())
{
- if(!maViewport.isEmpty())
- {
- basegfx::B2DRange aDiscreteViewport(maViewport);
- aDiscreteViewport.transform(getViewTransformation());
- const_cast< ImpViewInformation2D* >(this)->maDiscreteViewport = aDiscreteViewport;
- }
-
- const_cast< ImpViewInformation2D* >(this)->mbDiscreteViewportValid = true;
+ basegfx::B2DRange aDiscreteViewport(maViewport);
+ aDiscreteViewport.transform(getViewTransformation());
+ const_cast< ImpViewInformation2D* >(this)->maDiscreteViewport = aDiscreteViewport;
}
return maDiscreteViewport;
}
- const basegfx::B2DHomMatrix& getInverseViewTransformation() const
+ const basegfx::B2DHomMatrix& getObjectToViewTransformation() const
+ {
+ ::osl::Mutex m_mutex;
+
+ if(maObjectToViewTransformation.isIdentity() &&
+ (!maObjectTransformation.isIdentity() || !maViewTransformation.isIdentity()))
+ {
+ basegfx::B2DHomMatrix aObjectToView(maViewTransformation * maObjectTransformation);
+ const_cast< ImpViewInformation2D* >(this)->maObjectToViewTransformation = aObjectToView;
+ }
+
+ return maObjectToViewTransformation;
+ }
+
+ const basegfx::B2DHomMatrix& getInverseObjectToViewTransformation() const
{
::osl::Mutex m_mutex;
- if(!mbInverseValid)
+ if(maInverseObjectToViewTransformation.isIdentity() &&
+ (!maObjectTransformation.isIdentity() || !maViewTransformation.isIdentity()))
{
- const_cast< ImpViewInformation2D* >(this)->maInverseViewTransformation.invert();
- const_cast< ImpViewInformation2D* >(this)->mbInverseValid = true;
+ basegfx::B2DHomMatrix aInverseObjectToView(maViewTransformation * maObjectTransformation);
+ aInverseObjectToView.invert();
+ const_cast< ImpViewInformation2D* >(this)->maInverseObjectToViewTransformation = aInverseObjectToView;
}
- return maInverseViewTransformation;
+ return maInverseObjectToViewTransformation;
}
- double getViewTime() const { return mfViewTime; }
+ double getViewTime() const
+ {
+ return mfViewTime;
+ }
const uno::Reference< drawing::XDrawPage >& getVisualizedPage() const
{
@@ -320,7 +372,8 @@ namespace drawinglayer
bool operator==(const ImpViewInformation2D& rCandidate) const
{
- return (maViewTransformation == rCandidate.maViewTransformation
+ return (maObjectTransformation == rCandidate.maObjectTransformation
+ && maViewTransformation == rCandidate.maViewTransformation
&& maViewport == rCandidate.maViewport
&& mxVisualizedPage == rCandidate.mxVisualizedPage
&& mfViewTime == rCandidate.mfViewTime
@@ -337,12 +390,19 @@ namespace drawinglayer
namespace geometry
{
ViewInformation2D::ViewInformation2D(
+ const basegfx::B2DHomMatrix& rObjectTransformation,
const basegfx::B2DHomMatrix& rViewTransformation,
const basegfx::B2DRange& rViewport,
const uno::Reference< drawing::XDrawPage >& rxDrawPage,
double fViewTime,
const uno::Sequence< beans::PropertyValue >& rExtendedParameters)
- : mpViewInformation2D(new ImpViewInformation2D(rViewTransformation, rViewport, rxDrawPage, fViewTime, rExtendedParameters))
+ : mpViewInformation2D(new ImpViewInformation2D(
+ rObjectTransformation,
+ rViewTransformation,
+ rViewport,
+ rxDrawPage,
+ fViewTime,
+ rExtendedParameters))
{
}
@@ -401,6 +461,11 @@ namespace drawinglayer
return (*rCandidate.mpViewInformation2D == *mpViewInformation2D);
}
+ const basegfx::B2DHomMatrix& ViewInformation2D::getObjectTransformation() const
+ {
+ return mpViewInformation2D->getObjectTransformation();
+ }
+
const basegfx::B2DHomMatrix& ViewInformation2D::getViewTransformation() const
{
return mpViewInformation2D->getViewTransformation();
@@ -411,24 +476,29 @@ namespace drawinglayer
return mpViewInformation2D->getViewport();
}
- const basegfx::B2DRange& ViewInformation2D::getDiscreteViewport() const
+ double ViewInformation2D::getViewTime() const
{
- return mpViewInformation2D->getDiscreteViewport();
+ return mpViewInformation2D->getViewTime();
}
- const basegfx::B2DHomMatrix& ViewInformation2D::getInverseViewTransformation() const
+ const uno::Reference< drawing::XDrawPage >& ViewInformation2D::getVisualizedPage() const
{
- return mpViewInformation2D->getInverseViewTransformation();
+ return mpViewInformation2D->getVisualizedPage();
}
- double ViewInformation2D::getViewTime() const
+ const basegfx::B2DHomMatrix& ViewInformation2D::getObjectToViewTransformation() const
{
- return mpViewInformation2D->getViewTime();
+ return mpViewInformation2D->getObjectToViewTransformation();
}
- const uno::Reference< drawing::XDrawPage >& ViewInformation2D::getVisualizedPage() const
+ const basegfx::B2DHomMatrix& ViewInformation2D::getInverseObjectToViewTransformation() const
{
- return mpViewInformation2D->getVisualizedPage();
+ return mpViewInformation2D->getInverseObjectToViewTransformation();
+ }
+
+ const basegfx::B2DRange& ViewInformation2D::getDiscreteViewport() const
+ {
+ return mpViewInformation2D->getDiscreteViewport();
}
const uno::Sequence< beans::PropertyValue >& ViewInformation2D::getViewInformationSequence() const
diff --git a/drawinglayer/source/geometry/viewinformation3d.cxx b/drawinglayer/source/geometry/viewinformation3d.cxx
index 2f5546c75e4f..61ceddc8396a 100644
--- a/drawinglayer/source/geometry/viewinformation3d.cxx
+++ b/drawinglayer/source/geometry/viewinformation3d.cxx
@@ -4,9 +4,9 @@
*
* $RCSfile: viewinformation3d.cxx,v $
*
- * $Revision: 1.1 $
+ * $Revision: 1.2 $
*
- * last change: $Author: aw $ $Date: 2008-06-10 09:29:32 $
+ * last change: $Author: aw $ $Date: 2008-06-24 15:31:07 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
@@ -53,6 +53,8 @@ namespace drawinglayer
{
namespace
{
+ /** Implementation class for ViewInformation3D
+ */
class ImpViewInformation3D
{
private:
@@ -60,13 +62,13 @@ namespace drawinglayer
// two memory regions for pairs of ViewInformation3D/ImpViewInformation3D
friend class ::drawinglayer::geometry::ViewInformation3D;
- // the refcounter
+ // the refcounter. 0 means exclusively used
sal_uInt32 mnRefCount;
// the 3D transformations
// Object to World. This may change and being adapted when entering 3D transformation
// groups
- basegfx::B3DHomMatrix maTransformation;
+ basegfx::B3DHomMatrix maObjectTransformation;
// World to Camera. This includes VRP, VPN and VUV camera coordinate system
basegfx::B3DHomMatrix maOrientation;
@@ -96,52 +98,52 @@ namespace drawinglayer
uno::Sequence< beans::PropertyValue > mxExtendedInformation;
// the local UNO API strings
- const ::rtl::OUString& getNamePropertyTransformation()
+ const ::rtl::OUString& getNamePropertyObjectTransformation()
{
- static ::rtl::OUString s_sNamePropertyTransformation(RTL_CONSTASCII_USTRINGPARAM("Transformation"));
- return s_sNamePropertyTransformation;
+ static ::rtl::OUString s_sNameProperty(RTL_CONSTASCII_USTRINGPARAM("ObjectTransformation"));
+ return s_sNameProperty;
}
const ::rtl::OUString& getNamePropertyOrientation()
{
- static ::rtl::OUString s_sNamePropertyTransformation(RTL_CONSTASCII_USTRINGPARAM("Orientation"));
- return s_sNamePropertyTransformation;
+ static ::rtl::OUString s_sNameProperty(RTL_CONSTASCII_USTRINGPARAM("Orientation"));
+ return s_sNameProperty;
}
const ::rtl::OUString& getNamePropertyProjection()
{
- static ::rtl::OUString s_sNamePropertyTransformation(RTL_CONSTASCII_USTRINGPARAM("Projection"));
- return s_sNamePropertyTransformation;
+ static ::rtl::OUString s_sNameProperty(RTL_CONSTASCII_USTRINGPARAM("Projection"));
+ return s_sNameProperty;
}
const ::rtl::OUString& getNamePropertyProjection_30()
{
- static ::rtl::OUString s_sNamePropertyTransformation(RTL_CONSTASCII_USTRINGPARAM("Projection30"));
- return s_sNamePropertyTransformation;
+ static ::rtl::OUString s_sNameProperty(RTL_CONSTASCII_USTRINGPARAM("Projection30"));
+ return s_sNameProperty;
}
const ::rtl::OUString& getNamePropertyProjection_31()
{
- static ::rtl::OUString s_sNamePropertyTransformation(RTL_CONSTASCII_USTRINGPARAM("Projection31"));
- return s_sNamePropertyTransformation;
+ static ::rtl::OUString s_sNameProperty(RTL_CONSTASCII_USTRINGPARAM("Projection31"));
+ return s_sNameProperty;
}
const ::rtl::OUString& getNamePropertyProjection_32()
{
- static ::rtl::OUString s_sNamePropertyTransformation(RTL_CONSTASCII_USTRINGPARAM("Projection32"));
- return s_sNamePropertyTransformation;
+ static ::rtl::OUString s_sNameProperty(RTL_CONSTASCII_USTRINGPARAM("Projection32"));
+ return s_sNameProperty;
}
const ::rtl::OUString& getNamePropertyProjection_33()
{
- static ::rtl::OUString s_sNamePropertyTransformation(RTL_CONSTASCII_USTRINGPARAM("Projection33"));
- return s_sNamePropertyTransformation;
+ static ::rtl::OUString s_sNameProperty(RTL_CONSTASCII_USTRINGPARAM("Projection33"));
+ return s_sNameProperty;
}
const ::rtl::OUString& getNamePropertyDeviceToView()
{
- static ::rtl::OUString s_sNamePropertyTransformation(RTL_CONSTASCII_USTRINGPARAM("DeviceToView"));
- return s_sNamePropertyTransformation;
+ static ::rtl::OUString s_sNameProperty(RTL_CONSTASCII_USTRINGPARAM("DeviceToView"));
+ return s_sNameProperty;
}
const ::rtl::OUString& getNamePropertyTime()
@@ -150,6 +152,8 @@ namespace drawinglayer
return s_sNamePropertyTime;
}
+ // a central PropertyValue parsing method to allow transportatin of
+ // all ViewParameters using UNO API
void impInterpretPropertyValues(const uno::Sequence< beans::PropertyValue >& rViewParameters)
{
if(rViewParameters.hasElements())
@@ -164,11 +168,11 @@ namespace drawinglayer
{
const beans::PropertyValue& rProp = rViewParameters[a];
- if(rProp.Name == getNamePropertyTransformation())
+ if(rProp.Name == getNamePropertyObjectTransformation())
{
com::sun::star::geometry::AffineMatrix3D aAffineMatrix3D;
rProp.Value >>= aAffineMatrix3D;
- maTransformation = basegfx::unotools::homMatrixFromAffineMatrix3D(aAffineMatrix3D);
+ maObjectTransformation = basegfx::unotools::homMatrixFromAffineMatrix3D(aAffineMatrix3D);
}
else if(rProp.Name == getNamePropertyOrientation())
{
@@ -241,10 +245,12 @@ namespace drawinglayer
}
}
+ // central method to create a Sequence of PropertyValues containing he complete
+ // data set
void impFillViewInformationFromContent()
{
uno::Sequence< beans::PropertyValue > xRetval;
- const bool bTransformationUsed(!maTransformation.isIdentity());
+ const bool bObjectTransformationUsed(!maObjectTransformation.isIdentity());
const bool bOrientationUsed(!maOrientation.isIdentity());
const bool bProjectionUsed(!maProjection.isIdentity());
const bool bDeviceToViewUsed(!maDeviceToView.isIdentity());
@@ -261,7 +267,7 @@ namespace drawinglayer
sal_uInt32 nIndex(0);
const sal_uInt32 nCount(
- (bTransformationUsed ? 1 : 0) +
+ (bObjectTransformationUsed ? 1 : 0) +
(bOrientationUsed ? 1 : 0) +
(bProjectionUsed ? 1 : 0) +
(bProjectionUsed_30 ? 1 : 0) +
@@ -274,11 +280,11 @@ namespace drawinglayer
mxViewInformation.realloc(nCount);
- if(bTransformationUsed)
+ if(bObjectTransformationUsed)
{
com::sun::star::geometry::AffineMatrix3D aAffineMatrix3D;
- basegfx::unotools::affineMatrixFromHomMatrix3D(aAffineMatrix3D, maTransformation);
- mxViewInformation[nIndex].Name = getNamePropertyTransformation();
+ basegfx::unotools::affineMatrixFromHomMatrix3D(aAffineMatrix3D, maObjectTransformation);
+ mxViewInformation[nIndex].Name = getNamePropertyObjectTransformation();
mxViewInformation[nIndex].Value <<= aAffineMatrix3D;
nIndex++;
}
@@ -358,14 +364,14 @@ namespace drawinglayer
public:
ImpViewInformation3D(
- const basegfx::B3DHomMatrix& rTransformation,
+ const basegfx::B3DHomMatrix& rObjectTransformation,
const basegfx::B3DHomMatrix& rOrientation,
const basegfx::B3DHomMatrix& rProjection,
const basegfx::B3DHomMatrix& rDeviceToView,
double fViewTime,
const uno::Sequence< beans::PropertyValue >& rExtendedParameters)
: mnRefCount(0),
- maTransformation(rTransformation),
+ maObjectTransformation(rObjectTransformation),
maOrientation(rOrientation),
maProjection(rProjection),
maDeviceToView(rDeviceToView),
@@ -378,7 +384,7 @@ namespace drawinglayer
ImpViewInformation3D(const uno::Sequence< beans::PropertyValue >& rViewParameters)
: mnRefCount(0),
- maTransformation(),
+ maObjectTransformation(),
maOrientation(),
maProjection(),
maDeviceToView(),
@@ -389,11 +395,10 @@ namespace drawinglayer
impInterpretPropertyValues(rViewParameters);
}
- const basegfx::B3DHomMatrix& getTransformation() const { return maTransformation; }
+ const basegfx::B3DHomMatrix& getObjectTransformation() const { return maObjectTransformation; }
const basegfx::B3DHomMatrix& getOrientation() const { return maOrientation; }
const basegfx::B3DHomMatrix& getProjection() const { return maProjection; }
const basegfx::B3DHomMatrix& getDeviceToView() const { return maDeviceToView; }
-
double getViewTime() const { return mfViewTime; }
const basegfx::B3DHomMatrix& getObjectToView() const
@@ -403,7 +408,7 @@ namespace drawinglayer
if(maObjectToView.isIdentity())
{
- const_cast< ImpViewInformation3D* >(this)->maObjectToView = maDeviceToView * maProjection * maOrientation * maTransformation;
+ const_cast< ImpViewInformation3D* >(this)->maObjectToView = maDeviceToView * maProjection * maOrientation * maObjectTransformation;
}
return maObjectToView;
@@ -411,6 +416,8 @@ namespace drawinglayer
const uno::Sequence< beans::PropertyValue >& getViewInformationSequence() const
{
+ ::osl::Mutex m_mutex;
+
if(!mxViewInformation.hasElements())
{
const_cast< ImpViewInformation3D* >(this)->impFillViewInformationFromContent();
@@ -426,7 +433,7 @@ namespace drawinglayer
bool operator==(const ImpViewInformation3D& rCandidate) const
{
- return (maTransformation == rCandidate.maTransformation
+ return (maObjectTransformation == rCandidate.maObjectTransformation
&& maOrientation == rCandidate.maOrientation
&& maProjection == rCandidate.maProjection
&& maDeviceToView == rCandidate.maDeviceToView
@@ -444,13 +451,13 @@ namespace drawinglayer
namespace geometry
{
ViewInformation3D::ViewInformation3D(
- const basegfx::B3DHomMatrix& rTransformation,
+ const basegfx::B3DHomMatrix& rObjectObjectTransformation,
const basegfx::B3DHomMatrix& rOrientation,
const basegfx::B3DHomMatrix& rProjection,
const basegfx::B3DHomMatrix& rDeviceToView,
double fViewTime,
const uno::Sequence< beans::PropertyValue >& rExtendedParameters)
- : mpViewInformation3D(new ImpViewInformation3D(rTransformation, rOrientation, rProjection, rDeviceToView, fViewTime, rExtendedParameters))
+ : mpViewInformation3D(new ImpViewInformation3D(rObjectObjectTransformation, rOrientation, rProjection, rDeviceToView, fViewTime, rExtendedParameters))
{
}
@@ -509,9 +516,9 @@ namespace drawinglayer
return (*rCandidate.mpViewInformation3D == *mpViewInformation3D);
}
- const basegfx::B3DHomMatrix& ViewInformation3D::getTransformation() const
+ const basegfx::B3DHomMatrix& ViewInformation3D::getObjectTransformation() const
{
- return mpViewInformation3D->getTransformation();
+ return mpViewInformation3D->getObjectTransformation();
}
const basegfx::B3DHomMatrix& ViewInformation3D::getOrientation() const