diff options
Diffstat (limited to 'svx/inc/svx')
39 files changed, 490 insertions, 877 deletions
diff --git a/svx/inc/svx/cube3d.hxx b/svx/inc/svx/cube3d.hxx index 3c32d9f870..b280128fc8 100644 --- a/svx/inc/svx/cube3d.hxx +++ b/svx/inc/svx/cube3d.hxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: cube3d.hxx,v $ - * $Revision: 1.4 $ + * $Revision: 1.4.18.1 $ * * This file is part of OpenOffice.org. * @@ -60,12 +60,12 @@ private: virtual sdr::contact::ViewContact* CreateObjectSpecificViewContact(); // Parameter - basegfx::B3DPoint aCubePos; - basegfx::B3DVector aCubeSize; - UINT16 nSideFlags; + basegfx::B3DPoint aCubePos; + basegfx::B3DVector aCubeSize; + UINT16 nSideFlags; // BOOLeans - unsigned bPosIsCenter : 1; + unsigned bPosIsCenter : 1; protected: void SetDefaultAttributes(E3dDefaultAttributes& rDefault); @@ -80,12 +80,6 @@ public: virtual void operator=(const SdrObject&); - // Geometrieerzeugung - virtual void CreateGeometry(); - - // Give out simple line geometry - virtual basegfx::B3DPolyPolygon Get3DLineGeometry() const; - // Lokale Parameter setzen mit Geometrieneuerzeugung void SetCubePos(const basegfx::B3DPoint& rNew); const basegfx::B3DPoint& GetCubePos() { return aCubePos; } diff --git a/svx/inc/svx/def3d.hxx b/svx/inc/svx/def3d.hxx index 1c167a87be..76f28b5782 100644 --- a/svx/inc/svx/def3d.hxx +++ b/svx/inc/svx/def3d.hxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: def3d.hxx,v $ - * $Revision: 1.3 $ + * $Revision: 1.3.226.1 $ * * This file is part of OpenOffice.org. * @@ -31,8 +31,6 @@ #ifndef _SVX_DEF3D_HXX #define _SVX_DEF3D_HXX -class Vector3D; - #ifndef _INC_MATH #include <math.h> #endif @@ -47,9 +45,6 @@ const double EPSILON = 1e-06; //+++ 3D-Hilfsfunktionen +++++++++++++++++++++++++++++++++++++++++++++++++ //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -FASTBOOL Do3DEdgesIntersect(const Vector3D& rV1a, const Vector3D& rV1b, - const Vector3D& rV2a, const Vector3D& rV2b); - enum E3dDragConstraint { E3DDRAG_CONSTR_X = 0x0001, E3DDRAG_CONSTR_Y = 0x0002, E3DDRAG_CONSTR_Z = 0x0004, diff --git a/svx/inc/svx/deflt3d.hxx b/svx/inc/svx/deflt3d.hxx index 3b3e90c601..244eb81381 100644 --- a/svx/inc/svx/deflt3d.hxx +++ b/svx/inc/svx/deflt3d.hxx @@ -31,10 +31,10 @@ #ifndef _E3D_DEFLT3D_HXX #define _E3D_DEFLT3D_HXX -#include <goodies/matril3d.hxx> #include <basegfx/point/b3dpoint.hxx> #include <basegfx/vector/b3dvector.hxx> #include "svx/svxdllapi.h" +#include <tools/color.hxx> /************************************************************************* |* @@ -47,39 +47,34 @@ class SVX_DLLPUBLIC E3dDefaultAttributes private: // Compound-Objekt Color aDefaultAmbientColor; - B3dMaterial aDefaultBackMaterial; - BOOL bDefaultCreateNormals ; - BOOL bDefaultCreateTexture ; - BOOL bDefaultUseDifferentBackMaterial ; + BOOL bDefaultCreateNormals; + BOOL bDefaultCreateTexture; // Cube-Objekt - basegfx::B3DPoint aDefaultCubePos; - basegfx::B3DVector aDefaultCubeSize; + basegfx::B3DPoint aDefaultCubePos; + basegfx::B3DVector aDefaultCubeSize; UINT16 nDefaultCubeSideFlags; - BOOL bDefaultCubePosIsCenter ; + BOOL bDefaultCubePosIsCenter; // Sphere-Objekt - basegfx::B3DPoint aDefaultSphereCenter; - basegfx::B3DVector aDefaultSphereSize; + basegfx::B3DPoint aDefaultSphereCenter; + basegfx::B3DVector aDefaultSphereSize; // Lathe-Objekt long nDefaultLatheEndAngle; - BOOL bDefaultLatheSmoothed ; - BOOL bDefaultLatheSmoothFrontBack ; - BOOL bDefaultLatheCharacterMode ; + BOOL bDefaultLatheSmoothed; + BOOL bDefaultLatheSmoothFrontBack; + BOOL bDefaultLatheCharacterMode; BOOL bDefaultLatheCloseFront; BOOL bDefaultLatheCloseBack; // Extrude-Objekt - BOOL bDefaultExtrudeSmoothed ; - BOOL bDefaultExtrudeSmoothFrontBack ; - BOOL bDefaultExtrudeCharacterMode ; + BOOL bDefaultExtrudeSmoothed; + BOOL bDefaultExtrudeSmoothFrontBack; + BOOL bDefaultExtrudeCharacterMode; BOOL bDefaultExtrudeCloseFront; BOOL bDefaultExtrudeCloseBack; - // Scene-Objekt - BOOL bDefaultDither ; - public: // Konstruktor E3dDefaultAttributes(); @@ -92,14 +87,10 @@ public: const Color& GetDefaultAmbientColor() { return aDefaultAmbientColor; } void SetDefaultAmbientColor(const Color& rNew) { aDefaultAmbientColor = rNew; } - const B3dMaterial& GetDefaultBackMaterial() { return aDefaultBackMaterial; } - void SetDefaultBackMaterial(const B3dMaterial& rNew) { aDefaultBackMaterial = rNew; } BOOL GetDefaultCreateNormals() const { return bDefaultCreateNormals; } void SetDefaultCreateNormals(const BOOL bNew) { bDefaultCreateNormals = bNew; } BOOL GetDefaultCreateTexture() const { return bDefaultCreateTexture; } void SetDefaultCreateTexture(const BOOL bNew) { bDefaultCreateTexture = bNew; } - BOOL GetDefaultUseDifferentBackMaterial() const { return bDefaultUseDifferentBackMaterial; } - void SetDefaultUseDifferentBackMaterial(const BOOL bNew) { bDefaultUseDifferentBackMaterial = bNew; } // Cube-Objekt const basegfx::B3DPoint& GetDefaultCubePos() { return aDefaultCubePos; } @@ -142,10 +133,6 @@ public: void SetDefaultExtrudeCloseFront(const BOOL bNew) { bDefaultExtrudeCloseFront = bNew; } BOOL GetDefaultExtrudeCloseBack() const { return bDefaultExtrudeCloseBack; } void SetDefaultExtrudeCloseBack(const BOOL bNew) { bDefaultExtrudeCloseBack = bNew; } - - // Scene-Objekt - BOOL GetDefaultDither() const { return bDefaultDither; } - void SetDefaultDither(const BOOL bNew) { bDefaultDither = bNew; } }; #endif // _E3D_DEFLT3D_HXX diff --git a/svx/inc/svx/dlgctl3d.hxx b/svx/inc/svx/dlgctl3d.hxx index 3b19bab4f4..8b70601dc8 100644 --- a/svx/inc/svx/dlgctl3d.hxx +++ b/svx/inc/svx/dlgctl3d.hxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: dlgctl3d.hxx,v $ - * $Revision: 1.4 $ + * $Revision: 1.4.226.1 $ * * This file is part of OpenOffice.org. * @@ -31,320 +31,169 @@ #ifndef _SVX_DLGCTL3D_HXX #define _SVX_DLGCTL3D_HXX -// includes -------------------------------------------------------------- - -#include <tools/poly.hxx> #include <vcl/ctrl.hxx> -#include <goodies/b3dgeom.hxx> -#include <goodies/b3dtrans.hxx> -#include <goodies/matril3d.hxx> -#include <goodies/b3dlight.hxx> #include <vcl/scrbar.hxx> - -#ifndef _SV_BUTTON_HXX #include <vcl/button.hxx> -#endif #include <svtools/itemset.hxx> +#include "svx/svxdllapi.h" +#include <basegfx/vector/b3dvector.hxx> + +////////////////////////////////////////////////////////////////////////////// class FmFormModel; class FmFormPage; class E3dView; class E3dPolyScene; class E3dObject; -class Base3D; -/************************************************************************* -|* -|* Control zur Darstellung einer 3D-Scene -|* -\************************************************************************/ +////////////////////////////////////////////////////////////////////////////// #define PREVIEW_OBJECTTYPE_SPHERE 0x0000 #define PREVIEW_OBJECTTYPE_CUBE 0x0001 -class Svx3DPreviewControl : public Control -{ -protected: - FmFormModel* pModel; - FmFormPage* pFmPage; - E3dView* p3DView; - E3dPolyScene* pScene; - E3dObject* p3DObj; - UINT16 nObjectType; - - void Construct(); - -public: - Svx3DPreviewControl( Window* pParent, const ResId& rResId ); - Svx3DPreviewControl( Window* pParent, WinBits nStyle = 0 ); - ~Svx3DPreviewControl(); - - virtual void Paint( const Rectangle& rRect ); - virtual void MouseButtonDown( const MouseEvent& rMEvt ); - virtual void Resize(); - - void Reset(); - - void SetObjectType( UINT16 nType ); - UINT16 GetObjectType() const { return( nObjectType ); } +////////////////////////////////////////////////////////////////////////////// - SfxItemSet Get3DAttributes() const; - void Set3DAttributes( const SfxItemSet& rAttr ); - - void Set3DObject( const E3dObject* pObj ); -}; - -/************************************************************************* -|* -|* 3D Preview Control -|* -\************************************************************************/ - -// Defines fuer NormalMode -#define PREVIEW_NORMAL_MODE_OBJECT 0x0000 -#define PREVIEW_NORMAL_MODE_FLAT 0x0001 -#define PREVIEW_NORMAL_MODE_SPHERE 0x0002 - -// Defines fuer ShadeMode -#define PREVIEW_SHADEMODE_FLAT 0x0000 -#define PREVIEW_SHADEMODE_PHONG 0x0001 -#define PREVIEW_SHADEMODE_GOURAUD 0x0002 -#define PREVIEW_SHADEMODE_DRAFT 0x0003 - -class SvxPreviewCtl3D : public Control +class SVX_DLLPUBLIC Svx3DPreviewControl : public Control { protected: - // Geometrie des Objektes - B3dGeometry aGeometry; + FmFormModel* mpModel; + FmFormPage* mpFmPage; + E3dView* mp3DView; + E3dPolyScene* mpScene; + E3dObject* mp3DObj; + sal_uInt16 mnObjectType; - // Kameraset - B3dCamera aCameraSet; - double fDistance; - double fDeviceSize; - - // Rotation der Geometrie (bei Cube) - double fRotateX; - double fRotateY; - double fRotateZ; - - // Farben des Objektes - B3dMaterial aObjectMaterial; - - // Lichtquellen - B3dLightGroup aLights; - - // Segmentierung, wird bei Kugel verwendet - UINT16 nHorSegs; - UINT16 nVerSegs; - - // Modus fuer Normalen - UINT16 nNormalMode; - - // Zeichenmodus - UINT16 nShadeMode; - - // Art der Geometrie, Cube oder Sphere - BOOL bGeometryCube; + void Construct(); public: - SvxPreviewCtl3D( Window* pParent, const ResId& rResId); - SvxPreviewCtl3D( Window* pParent, WinBits nStyle = 0); - ~SvxPreviewCtl3D(); + Svx3DPreviewControl(Window* pParent, const ResId& rResId); + Svx3DPreviewControl(Window* pParent, WinBits nStyle = 0); + ~Svx3DPreviewControl(); - // Zeichenmethode virtual void Paint( const Rectangle& rRect ); - void DrawGeometryClip(Base3D* pBase3D); - virtual void DrawGeometry(Base3D* pBase3D); - - // Art der Geometrie setzen - void SetGeometry(BOOL bGeomCube); - - // Rotation setzen - void SetRotation(double fRotX, double fRotY, double fRotZ); - void GetRotation(double& rRotX, double& rRotY, double& rRotZ); - - // Zugriffsfunktionen Materialien - void SetMaterial(Color rNew, - Base3DMaterialValue=Base3DMaterialAmbient); - Color GetMaterial(Base3DMaterialValue=Base3DMaterialAmbient); - void SetShininess(UINT16 nNew); - UINT16 GetShininess(); - - // Lichtquellen setzen - void SetLightGroup(B3dLightGroup* pNew=0L); - B3dLightGroup* GetLightGroup() { return &aLights; } - - // View-Einstellungen - void SetUserDistance(double fNew); - double GetUserDistance() { return fDistance; } - void SetDeviceSize(double fNew); - double GetDeviceSize() { return fDeviceSize; } - - // Zugriffsfunktionen Segmentierung - UINT16 GetHorizontalSegments() { return nHorSegs; } - UINT16 GetVerticalSegments() { return nVerSegs; } - void SetHorizontalSegments(UINT16 nNew); - void SetVerticalSegments(UINT16 nNew); - void SetSegments(UINT16 nNewHor, UINT16 nNewVer); - - // Zugriff Normalenmodus - UINT16 GetNormalMode() { return nNormalMode; } - void SetNormalMode(UINT16 nNew); - - // Zugriff auf ShadeMode - UINT16 GetShadeMode() { return nShadeMode; } - void SetShadeMode(UINT16 nNew); - -protected: - - // Geometrieerzeugung - void CreateGeometry(); - - // Lokale Parameter Initialisieren - void Init(); + virtual void MouseButtonDown( const MouseEvent& rMEvt ); + virtual void Resize(); + + void Reset(); + virtual void SetObjectType(sal_uInt16 nType); + sal_uInt16 GetObjectType() const { return( mnObjectType ); } + SfxItemSet Get3DAttributes() const; + virtual void Set3DAttributes(const SfxItemSet& rAttr); }; -/************************************************************************* -|* -|* 3D Light Preview Control -|* -\************************************************************************/ +////////////////////////////////////////////////////////////////////////////// -class SVX_DLLPUBLIC SvxLightPrevievCtl3D : public SvxPreviewCtl3D +class SVX_DLLPUBLIC Svx3DLightControl : public Svx3DPreviewControl { -private: - // Geometrie eines Lichtobjektes - B3dGeometry aLightGeometry; - - Base3DLightNumber eSelectedLight; - - // Werte fuer Rendering - double fObjectRadius; - double fDistanceToObject; - double fScaleSizeSelected; - double fLampSize; - - // Callback bei interaktiven Aenderungen - Link aChangeCallback; - Link aSelectionChangeCallback; - - // Sichern der Interaktion - double fSaveActionStartHor; - double fSaveActionStartVer; - double fSaveActionStartRotZ; - Point aActionStartPoint; - - // Mindestentfernung fuer Interaktionsstart - INT32 nInteractionStartDistance; - - // Maus-Status - unsigned bMouseMoved : 1; - unsigned bGeometrySelected : 1; + // Callback for interactive changes + Link maUserInteractiveChangeCallback; + Link maUserSelectionChangeCallback; + Link maChangeCallback; + Link maSelectionChangeCallback; + + // lights + sal_uInt32 maSelectedLight; + + // extra objects for light control + E3dObject* mpExpansionObject; + E3dObject* mpLampBottomObject; + E3dObject* mpLampShaftObject; + std::vector< E3dObject* > maLightObjects; + + // 3d rotations of object + double mfRotateX; + double mfRotateY; + double mfRotateZ; + + // interaction parameters + Point maActionStartPoint; + sal_Int32 mnInteractionStartDistance; + double mfSaveActionStartHor; + double mfSaveActionStartVer; + double mfSaveActionStartRotZ; + + // bitfield + unsigned mbMouseMoved : 1; + unsigned mbGeometrySelected : 1; + + void Construct2(); + void ConstructLightObjects(); + void AdaptToSelectedLight(); + void TrySelection(Point aPosPixel); public: - SvxLightPrevievCtl3D( Window* pParent, const ResId& rResId); - SvxLightPrevievCtl3D( Window* pParent, WinBits nStyle = 0); - ~SvxLightPrevievCtl3D(); - - void SelectLight(Base3DLightNumber=Base3DLightNone); - Base3DLightNumber GetSelectedLight() { return eSelectedLight; } - - void SelectGeometry(); - BOOL IsGeometrySelected() { return bGeometrySelected; } - - void SetObjectRadius(double fNew); - double GetObjectRadius() { return fObjectRadius; } - - void SetDistanceToObject(double fNew); - double GetDistanceToObject() { return fDistanceToObject; } + Svx3DLightControl(Window* pParent, const ResId& rResId); + Svx3DLightControl(Window* pParent, WinBits nStyle = 0); + ~Svx3DLightControl(); - void SetScaleSizeSelected(double fNew); - double GetScaleSizeSelected() { return fScaleSizeSelected; } + virtual void Paint(const Rectangle& rRect); + virtual void MouseButtonDown(const MouseEvent& rMEvt); + virtual void Tracking( const TrackingEvent& rTEvt ); + virtual void Resize(); - void SetLampSize(double fNew); - double GetLampSize() { return fLampSize; } + virtual void SetObjectType(sal_uInt16 nType); - // Zeichenmethode - virtual void DrawGeometry(Base3D* pBase3D); - void DrawLightGeometry(Base3DLightNumber eLightNum, Base3D* pBase3D); + // User Callback eintragen + void SetUserInteractiveChangeCallback(Link aNew) { maUserInteractiveChangeCallback = aNew; } + void SetUserSelectionChangeCallback(Link aNew) { maUserSelectionChangeCallback = aNew; } + void SetChangeCallback(Link aNew) { maChangeCallback = aNew; } + void SetSelectionChangeCallback(Link aNew) { maSelectionChangeCallback = aNew; } - // Selektion gueltig - BOOL IsSelectionValid(); + // selection checks + bool IsSelectionValid(); + bool IsGeometrySelected() { return mbGeometrySelected; } - // Selektierte Lampe Position in Polarkoordinaten holen/setzen - // dabei geht Hor:[0..360.0[ und Ver:[-90..90] Grad + // get/set position of selected lamp in polar coordinates, Hor:[0..360.0[ and Ver:[-90..90] degrees void GetPosition(double& rHor, double& rVer); void SetPosition(double fHor, double fVer); - // Callback eintragen - void SetChangeCallback(Link aNew) { aChangeCallback = aNew; } - void SetSelectionChangeCallback(Link aNew) { aSelectionChangeCallback = aNew; } - - // Interaktion - virtual void MouseButtonDown( const MouseEvent& rMEvt ); - virtual void Tracking( const TrackingEvent& rTEvt ); - -protected: - - // Geometrieerzeugung Lampe - void CreateLightGeometry(); + // get/set rotation of 3D object + void SetRotation(double fRotX, double fRotY, double fRotZ); + void GetRotation(double& rRotX, double& rRotY, double& rRotZ); - // Selektion einer Lampe - void TrySelection(Point aPosPixel); + void SelectLight(sal_uInt32 nLightNumber); + virtual void Set3DAttributes(const SfxItemSet& rAttr); + sal_uInt32 GetSelectedLight() { return maSelectedLight; } - // Lokale Parameter Initialisieren - void Init(); + // light data access + bool GetLightOnOff(sal_uInt32 nNum) const; + Color GetLightColor(sal_uInt32 nNum) const; + basegfx::B3DVector GetLightDirection(sal_uInt32 nNum) const; }; -/************************************************************************* -|* -|* 3D Light Control -|* -\************************************************************************/ +////////////////////////////////////////////////////////////////////////////// class SVX_DLLPUBLIC SvxLightCtl3D : public Control { private: - // Lokale Controls - SvxLightPrevievCtl3D aLightControl; - ScrollBar aHorScroller; - ScrollBar aVerScroller; - PushButton aSwitcher; - basegfx::B3DVector aVector; - -// Callback bei interaktiven Aenderungen - Link aUserInteractiveChangeCallback; - Link aUserSelectionChangeCallback; + // local controls + Svx3DLightControl maLightControl; + ScrollBar maHorScroller; + ScrollBar maVerScroller; + PushButton maSwitcher; - // Flags - unsigned bVectorValid : 1; - unsigned bSphereUsed : 1; + // Callback bei interaktiven Aenderungen + Link maUserInteractiveChangeCallback; + Link maUserSelectionChangeCallback; public: SvxLightCtl3D( Window* pParent, const ResId& rResId); SvxLightCtl3D( Window* pParent, WinBits nStyle = 0); ~SvxLightCtl3D(); - // Altes Interface - void SetVector(const basegfx::B3DVector& rNew); - const basegfx::B3DVector& GetVector(); - BOOL GetVectorValid() { return bVectorValid; } - // Reagiere auf Groessenaenderungen - virtual void Resize(); + virtual void Resize(); void NewLayout(); // Selektion auf Gueltigkeit pruefen void CheckSelection(); // Um weitere Einstellungen nach Aussen zu bringen... - SvxLightPrevievCtl3D& GetPreviewControl() { return aLightControl; } + Svx3DLightControl& GetSvx3DLightControl() { return maLightControl; } // User Callback eintragen - void SetUserInteractiveChangeCallback(Link aNew) - { aUserInteractiveChangeCallback = aNew; } - void SetUserSelectionChangeCallback(Link aNew) - { aUserSelectionChangeCallback = aNew; } + void SetUserInteractiveChangeCallback(Link aNew) { maUserInteractiveChangeCallback = aNew; } + void SetUserSelectionChangeCallback(Link aNew) { maUserSelectionChangeCallback = aNew; } virtual void KeyInput( const KeyEvent& rKEvt ); virtual void GetFocus(); @@ -363,6 +212,7 @@ protected: void move( double fDeltaHor, double fDeltaVer ); }; - #endif // _SCH_DLGCTL3D_HXX +////////////////////////////////////////////////////////////////////////////// +// eof diff --git a/svx/inc/svx/e3dsceneupdater.hxx b/svx/inc/svx/e3dsceneupdater.hxx new file mode 100644 index 0000000000..ecc413a47e --- /dev/null +++ b/svx/inc/svx/e3dsceneupdater.hxx @@ -0,0 +1,77 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2008 by Sun Microsystems, Inc. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: e3dsceneupdater.hxx,v $ + * $Revision: 1.1.2.1 $ + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _E3D_SCENEUPDATER_HXX +#define _E3D_SCENEUPDATER_HXX + +#include <svx/svxdllapi.h> + +////////////////////////////////////////////////////////////////////////////// +// predeclarations + +class SdrObject; +class E3dScene; +namespace drawinglayer { namespace geometry { + class ViewInformation3D; +}} + +////////////////////////////////////////////////////////////////////////////// +// This class is a helper to encapsulate 3D object changes which shall change the +// scene's 2D geometry. E.g. when moving one 3D object in a scene, the visualisation +// would not change since the scene's 2D attributes are defined by it's 2D object +// transformation and the changed content would be projected to the same 2D bounds +// as before. To reflect the fact that the 2D positions may 'change' for the user's +// imagination, it is necessary to calculate a new 2D object transformation of the scene +// (the SnapRect) using the old 3D transformation stack and the eventually changed +// 3D content and tu use it. This is only wanted if changes to the scene's +// content are intended to change the scene's 2D geometry attributes + +class SVX_DLLPUBLIC E3DModifySceneSnapRectUpdater +{ + // the scene which may be changed. This gets set to the outmost scene + // of the to-be-changed 3D object when the scene has a 3d transformation + // stack at construction time. In all other cases it's set to zero and + // no action needs to be taken + E3dScene* mpScene; + + // the 3d transformation stack at the time of construction, valid when + // mpScene is not zero + drawinglayer::geometry::ViewInformation3D* mpViewInformation3D; + +public: + // the constructor evaluates and sets the members at construction time + E3DModifySceneSnapRectUpdater(const SdrObject* pObject); + + // the destructor will take action if mpScene is not zero and modify the + // 2D geomeztry of the target scene + ~E3DModifySceneSnapRectUpdater(); +}; + +#endif // _E3D_SCENEUPDATER_HXX diff --git a/svx/inc/svx/extrud3d.hxx b/svx/inc/svx/extrud3d.hxx index 41f91fc5ad..4d5d62e145 100644 --- a/svx/inc/svx/extrud3d.hxx +++ b/svx/inc/svx/extrud3d.hxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: extrud3d.hxx,v $ - * $Revision: 1.4 $ + * $Revision: 1.4.18.1 $ * * This file is part of OpenOffice.org. * @@ -54,13 +54,8 @@ private: // Geometrie, die dieses Objekt bestimmt basegfx::B2DPolyPolygon maExtrudePolygon; - // #78972# - basegfx::B3DPolyPolygon maLinePolyPolygon; - protected: void SetDefaultAttributes(E3dDefaultAttributes& rDefault); - basegfx::B3DPolyPolygon GetFrontSide(); - basegfx::B3DPolyPolygon GetBackSide(const basegfx::B3DPolyPolygon& rFrontSide); public: TYPEINFO(); @@ -108,12 +103,6 @@ public: virtual void TakeObjNameSingul(String& rName) const; virtual void TakeObjNamePlural(String& rName) const; - // Geometrieerzeugung - virtual void CreateGeometry(); - - // Give out simple line geometry - virtual basegfx::B3DPolyPolygon Get3DLineGeometry() const; - // Lokale Parameter setzen/lesen mit Geometrieneuerzeugung void SetExtrudePolygon(const basegfx::B2DPolyPolygon &rNew); const basegfx::B2DPolyPolygon &GetExtrudePolygon() { return maExtrudePolygon; } diff --git a/svx/inc/svx/float3d.hxx b/svx/inc/svx/float3d.hxx index 99941f4303..bf7d49545f 100644 --- a/svx/inc/svx/float3d.hxx +++ b/svx/inc/svx/float3d.hxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: float3d.hxx,v $ - * $Revision: 1.3 $ + * $Revision: 1.3.226.1 $ * * This file is part of OpenOffice.org. * @@ -61,8 +61,6 @@ enum ViewType3D }; class SdrModel; -class B3dLightGroup; - class FmFormModel; class FmFormPage; class VirtualDevice; @@ -201,10 +199,9 @@ private: ImageButton aBtnLatheObject; ImageButton aBtnPerspective; Svx3DPreviewControl aCtlPreview; - SvxLightCtl3D aCtlLightPreview; // <-- Probleme mit Select/Change-Hdl, wenn ueberladen + SvxLightCtl3D aCtlLightPreview; // der Rest ... - B3dLightGroup* pLightGroup; Image aImgLightOn; Image aImgLightOff; BOOL bUpdate; diff --git a/svx/inc/svx/helperhittest3d.hxx b/svx/inc/svx/helperhittest3d.hxx new file mode 100644 index 0000000000..8561618d57 --- /dev/null +++ b/svx/inc/svx/helperhittest3d.hxx @@ -0,0 +1,113 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2008 by Sun Microsystems, Inc. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: helperhittest3d.hxx,v $ + * $Revision: 1.1.2.1 $ + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef INCLUDED_SVX_HELPERHITTEST_HXX +#define INCLUDED_SVX_HELPERHITTEST_HXX + +#include "svx/svxdllapi.h" +#include <sal/types.h> +#include <vector> + +////////////////////////////////////////////////////////////////////////////// +// predefines + +namespace basegfx { + class B2DPoint; +} + +namespace drawinglayer { namespace geometry { + class ViewInformation3D; +}} + +class E3dCompoundObject; +class E3dScene; + +////////////////////////////////////////////////////////////////////////////// + +/** support for getting a ViewInformation3D for a given CompoudObject3D + with correct ObjectTransformation filled out + + @param o_rViewInformation3D + The ViewInformation3D created which will be overwritten + + @param rCandidate + The E3dCompoundObject for which the ViewInformation3D shall be + prepared + + @return + A pointer to the found and used root scene. This is also a hint + if the operation succeeded or not, since when object has no root + scene (is not inserted to a model), an empty ViewInformation3D + will be used +*/ +E3dScene* fillViewInformation3DForCompoundObject( + drawinglayer::geometry::ViewInformation3D& o_rViewInformation3D, + const E3dCompoundObject& rCandidate); + +/** support for getting all from a 2d position hit objects in a 3d scene + in a depth sorted array + + @param rPoint + 2D Point in view coordinates + + @param rScene + The 3D Scene for HitTest + + @param o_rResult + Output parameter which contains all hit 3D objects inside rScene. This + vector will be changed in any case. If it's empty, no hit exists. If it's + not empty, the first object is the object closest to the viewer + +*/ +SVX_DLLPUBLIC void getAllHit3DObjectsSortedFrontToBack( + const basegfx::B2DPoint& rPoint, + const E3dScene& rScene, + ::std::vector< const E3dCompoundObject* >& o_rResult); + +/** support for checking if the single given 3d object is hit at position + + @param rPoint + 2D Point in view coordinates + + @param rCandidate + The 3D Object which needs checking + + @return + true if hit, false if not +*/ +bool checkHitSingle3DObject( + const basegfx::B2DPoint& rPoint, + const E3dCompoundObject& rCandidate); + +////////////////////////////////////////////////////////////////////////////// + +#endif // INCLUDED_SVX_HELPERHITTEST_HXX + +// eof diff --git a/svx/inc/svx/lathe3d.hxx b/svx/inc/svx/lathe3d.hxx index 0a445aa01a..c87e6f1983 100644 --- a/svx/inc/svx/lathe3d.hxx +++ b/svx/inc/svx/lathe3d.hxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: lathe3d.hxx,v $ - * $Revision: 1.4 $ + * $Revision: 1.4.18.1 $ * * This file is part of OpenOffice.org. * @@ -32,10 +32,6 @@ #define _E3D_LATHE3D_HXX #include <svx/obj3d.hxx> - -//#ifndef _E3D_POLY3D_HXX -//#include <svx/poly3d.hxx> -//#endif #include "svx/svxdllapi.h" /************************************************************************* @@ -60,15 +56,9 @@ private: enum { LATHE_PART_STD = 1, LATHE_PART_COVER = 2 }; basegfx::B2DPolyPolygon maPolyPoly2D; - // #78972# - basegfx::B3DPolyPolygon maLinePolyPolygon; - protected: void SetDefaultAttributes(E3dDefaultAttributes& rDefault); - basegfx::B2DPolyPolygon CreateLathePolyPoly(const basegfx::B2DPolyPolygon& rPolyPoly2D, sal_uInt32 nVSegs); - basegfx::B2DPolygon CreateLathePoly(const basegfx::B2DPolygon& rPoly2D, sal_uInt32 nVSegs); - public: TYPEINFO(); E3dLatheObj(E3dDefaultAttributes& rDefault, const basegfx::B2DPolyPolygon rPoly2D); @@ -121,12 +111,6 @@ private: virtual SdrObject* DoConvertToPolyObj(BOOL bBezier) const; - // Geometrieerzeugung - virtual void CreateGeometry(); - - // Give out simple line geometry - virtual basegfx::B3DPolyPolygon Get3DLineGeometry() const; - // TakeObjName...() ist fuer die Anzeige in der UI, z.B. "3 Rahmen selektiert". virtual void TakeObjNameSingul(String& rName) const; virtual void TakeObjNamePlural(String& rName) const; diff --git a/svx/inc/svx/obj3d.hxx b/svx/inc/svx/obj3d.hxx index 119e29518a..20727b0d87 100644 --- a/svx/inc/svx/obj3d.hxx +++ b/svx/inc/svx/obj3d.hxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: obj3d.hxx,v $ - * $Revision: 1.5 $ + * $Revision: 1.5.18.1 $ * * This file is part of OpenOffice.org. * @@ -34,18 +34,10 @@ #include <svx/svdoattr.hxx> #include <svx/svdobj.hxx> #include <svx/volume3d.hxx> - -#ifndef _DEF3D_HXX #include <svx/def3d.hxx> -#endif #include <svx/svdpage.hxx> #include <svx/deflt3d.hxx> #include <vcl/bitmap.hxx> -#include <goodies/b3dgeom.hxx> -#include <goodies/matril3d.hxx> -#include <goodies/b3dtex.hxx> -#include <goodies/b3dlight.hxx> -#include <goodies/base3d.hxx> #include <svx/svx3ditems.hxx> #include <svx/xflclit.hxx> #include <svtools/itemset.hxx> @@ -63,21 +55,16 @@ class SfxPoolItem; class Viewport3D; class E3dScene; class E3dPolyScene; -class Base3D; -namespace basegfx { class B3DPolyPolygon; } -namespace sdr -{ - namespace properties - { - class BaseProperties; - class E3dProperties; - class E3dCompoundProperties; - class E3dExtrudeProperties; - class E3dLatheProperties; - class E3dSphereProperties; - } // end of namespace properties -} // end of namespace sdr +namespace basegfx { class B3DPolyPolygon; } +namespace sdr { namespace properties { + class BaseProperties; + class E3dProperties; + class E3dCompoundProperties; + class E3dExtrudeProperties; + class E3dLatheProperties; + class E3dSphereProperties; +}} /************************************************************************* |* @@ -88,8 +75,8 @@ namespace sdr class E3DObjGeoData : public SdrObjGeoData { public: - Volume3D aLocalBoundVol; // umschliessendes Volumen des Objekts - basegfx::B3DHomMatrix aTfMatrix; // lokale Transformation + basegfx::B3DRange maLocalBoundVol; // umschliessendes Volumen des Objekts + basegfx::B3DHomMatrix maTransformation; // lokale Transformation E3DObjGeoData() {} }; @@ -104,12 +91,12 @@ class E3dObjList : public SdrObjList { public: TYPEINFO(); - E3dObjList(SdrModel* pNewModel, SdrPage* pNewPage, E3dObjList* pNewUpList=NULL); + E3dObjList(SdrModel* pNewModel = 0, SdrPage* pNewPage = 0, E3dObjList* pNewUpList = 0); E3dObjList(const E3dObjList& rSrcList); virtual ~E3dObjList(); - virtual void NbcInsertObject(SdrObject* pObj, ULONG nPos=CONTAINER_APPEND, - const SdrInsertReason* pReason=NULL); + virtual void NbcInsertObject(SdrObject* pObj, ULONG nPos=CONTAINER_APPEND, const SdrInsertReason* pReason=NULL); + virtual void InsertObject(SdrObject* pObj, ULONG nPos=CONTAINER_APPEND, const SdrInsertReason* pReason=NULL); virtual SdrObject* NbcRemoveObject(ULONG nObjNum); virtual SdrObject* RemoveObject(ULONG nObjNum); }; @@ -132,28 +119,24 @@ class SVX_DLLPUBLIC E3dObject : public SdrAttrObj friend class E3dDragMethod; protected: - E3dObjList* pSub; // Subliste (Childobjekte) + E3dObjList maSubList; // Subliste (Childobjekte) - Volume3D aBoundVol; // umschliessendes Volumen mit allen Childs - Volume3D aLocalBoundVol; // umschliessendes Volumen des Objekts - basegfx::B3DHomMatrix aTfMatrix; // lokale Transformation - basegfx::B3DHomMatrix aFullTfMatrix; // globale Transformation (inkl. Parents) + basegfx::B3DRange maLocalBoundVol; // umschliessendes Volumen des Objekts (aus geometrieerzeugung) + basegfx::B3DHomMatrix maTransformation; // lokale Transformation + basegfx::B3DHomMatrix maFullTransform; // globale Transformation (inkl. Parents) // Flags - unsigned bTfHasChanged : 1; - unsigned bBoundVolValid : 1; - unsigned bIsSelected : 1; + unsigned mbTfHasChanged : 1; + unsigned mbIsSelected : 1; public: - virtual void SetBoundVolInvalid(); + void SetBoundVolInvalid(); protected: - virtual void SetTransformChanged(); + void SetTransformChanged(); virtual void NewObjectInserted(const E3dObject* p3DObj); - virtual void StructureChanged(const E3dObject* p3DObj); - virtual void RecalcBoundVolume(); - - basegfx::B2DPolyPolygon ImpCreateWireframePoly() const; + virtual void StructureChanged(); + basegfx::B3DRange RecalcBoundVolume() const; protected: // E3dObject is only a helper class (for E3DScene and E3DCompoundObject) @@ -181,14 +164,8 @@ public: virtual void SetModel(SdrModel* pNewModel); virtual void NbcMove(const Size& rSize); virtual void NbcResize(const Point& rRef, const Fraction& xFact, const Fraction& yFact); - virtual SdrObjList* GetSubList() const; - virtual basegfx::B2DPolyPolygon TakeXorPoly(sal_Bool bDetail) const; - virtual sal_uInt32 GetHdlCount() const; - virtual void AddToHdlList(SdrHdlList& rHdlList) const; - virtual FASTBOOL HasSpecialDrag() const; - // 3D-Objekt in die Gruppe einfuegen; Eigentumsuebergang! virtual void Insert3DObj(E3dObject* p3DObj); void Remove3DObj(E3dObject* p3DObj); @@ -196,56 +173,24 @@ public: E3dObject* GetParentObj() const; virtual E3dScene* GetScene() const; - const Volume3D& GetLocalBoundVolume() { return aLocalBoundVol; } - virtual const Volume3D& GetBoundVolume() const; - basegfx::B3DPoint GetCenter(); + const basegfx::B3DRange& GetBoundVolume() const; + void InvalidateBoundVolume(); // komplette Transformation inklusive aller Parents berechnen const basegfx::B3DHomMatrix& GetFullTransform() const; // Transformationsmatrix abfragen bzw. (zurueck)setzen - virtual const basegfx::B3DHomMatrix& GetTransform() const; + const basegfx::B3DHomMatrix& GetTransform() const; virtual void NbcSetTransform(const basegfx::B3DHomMatrix& rMatrix); - virtual void NbcResetTransform(); virtual void SetTransform(const basegfx::B3DHomMatrix& rMatrix); - virtual void ResetTransform(); - - // Translation - virtual void NbcTranslate(const basegfx::B3DVector& rTrans); - virtual void Translate(const basegfx::B3DVector& rTrans); - // Skalierung - virtual void NbcScaleX (double fSx); - virtual void NbcScaleY (double fSy); - virtual void NbcScaleZ (double fSz); - virtual void NbcScale (double fSx, double fSy, double fSz); - virtual void NbcScale (double fS); - - virtual void ScaleX (double fSx); - virtual void ScaleY (double fSy); - virtual void ScaleZ (double fSz); - virtual void Scale (double fSx, double fSy, double fSz); - virtual void Scale (double fS); - - // Rotation mit Winkel in Radiant - virtual void NbcRotateX(double fAng); - virtual void NbcRotateY(double fAng); - virtual void NbcRotateZ(double fAng); - - virtual void RotateX(double fAng); - virtual void RotateY(double fAng); - virtual void RotateZ(double fAng); // [FG] 2D-Rotationen, werden hier als Rotationen um die Z-Achse, die in den Bildschirm zeigt, // implementiert plus eine Verschiebung der Scene. Dies bedeutet auch die Scene (E3dScene) // muss diese Routine in der Klasse als virtual definieren. virtual void NbcRotate(const Point& rRef, long nWink, double sn, double cs); - // Transformation auf die Koordinaten (nicht auf die lokale Matrix) - // eines Objekts und seiner Childs anwenden; Objekte, die eigene - // Koordinaten speichern, muessen diese Methode implementieren - // Wireframe-Darstellung des Objekts erzeugen und die Linien als - // Punkt-Paare in rPoly3D ablegen - void CreateWireframe(basegfx::B3DPolygon& rWirePoly, const basegfx::B3DHomMatrix* pTf = 0L) const; + // get wireframe polygon for local object. No transform is applied. + basegfx::B3DPolyPolygon CreateWireframe() const; // TakeObjName...() ist fuer die Anzeige in der UI, z.B. "3 Rahmen selektiert". virtual void TakeObjNameSingul(String& rName) const; @@ -258,8 +203,8 @@ public: virtual void RestGeoData(const SdrObjGeoData& rGeo); // Selektion Setzen/Lesen - BOOL GetSelected() const { return bIsSelected; } - void SetSelected(BOOL bNew); + bool GetSelected() const { return mbIsSelected; } + void SetSelected(bool bNew); // Aufbrechen virtual BOOL IsBreakObjPossible(); @@ -286,129 +231,15 @@ class SVX_DLLPUBLIC E3dCompoundObject : public E3dObject friend class sdr::properties::E3dLatheProperties; friend class sdr::properties::E3dSphereProperties; - // for access from E3dCompoundProperties only - void InvalidateGeometry() { bGeometryValid = sal_False; } - protected: - // Die Darstellungsgeometrie dieses Objektes - B3dGeometry aDisplayGeometry; - // Material des Objektes Color aMaterialAmbientColor; - B3dMaterial aBackMaterial; // Attribute zur Geometrieerzeugung unsigned bCreateNormals : 1; unsigned bCreateTexture : 1; - // Wird zwischen Vorder- und Hintergrundmaterial unterschieden - unsigned bUseDifferentBackMaterial : 1; - - // Geometrie gueltig? - unsigned bGeometryValid : 1; - - // THB: Temporary fix for SJ's flipping problem - // TODO: Clarify with AW - unsigned bFullTfIsPositive : 1; - protected: - // Hilfsfunktionen zur Geometrieerzeugung - basegfx::B3DPolyPolygon ImpGrowPoly( - const basegfx::B3DPolyPolygon& rPolyPolyGrow, - const basegfx::B3DPolyPolygon& rPolyPolyNormals, - double fFactor); - basegfx::B2VectorOrientation ImpGetOrientationInPoint( - const basegfx::B3DPolygon& rPolygon, - sal_uInt32 nIndex); - basegfx::B3DPolyPolygon ImpCorrectGrownPoly( - const basegfx::B3DPolyPolygon& aToBeCorrected, - const basegfx::B3DPolyPolygon& aOriginal); - - basegfx::B3DPolyPolygon ImpScalePoly( - const basegfx::B3DPolyPolygon& rPolyPolyScale, - double fFactor); - - void ImpCreateFront( - const basegfx::B3DPolyPolygon& rPolyPoly3D, - const basegfx::B3DPolyPolygon& rFrontNormals, - BOOL bCreateNormals = TRUE, - BOOL bCreateTexture = TRUE); - void ImpCreateBack( - const basegfx::B3DPolyPolygon& rPolyPoly3D, - const basegfx::B3DPolyPolygon& rBackNormals, - BOOL bCreateNormals = TRUE, - BOOL bCreateTexture = TRUE); - - basegfx::B3DPolyPolygon ImpCreateByPattern(const basegfx::B3DPolyPolygon& rPattern); - basegfx::B3DPolyPolygon ImpAddFrontNormals( - const basegfx::B3DPolyPolygon& rNormalsFront, - const basegfx::B3DPoint& rOffset); - basegfx::B3DPolyPolygon ImpAddBackNormals( - const basegfx::B3DPolyPolygon& rNormalsBack, - const basegfx::B3DPoint& rOffset); - - basegfx::B3DPolyPolygon ImpAddInBetweenNormals( - const basegfx::B3DPolyPolygon& rPolyPolyFront, - const basegfx::B3DPolyPolygon& rPolyPolyBack, - const basegfx::B3DPolyPolygon& rNormals, - BOOL bSmoothed = TRUE); - void ImpCreateInBetween( - const basegfx::B3DPolyPolygon& rPolyPolyFront, - const basegfx::B3DPolyPolygon& rPolyPolyBack, - const basegfx::B3DPolyPolygon& rFrontNormals, - const basegfx::B3DPolyPolygon& rBackNormals, - BOOL bCreateNormals = TRUE, - double fSurroundFactor=1.0, - double fTextureStart=0.0, - double fTextureDepth=1.0, - BOOL bRotateTexture90=FALSE); - - // Geometrieerzeugung - void AddGeometry( - const basegfx::B3DPolyPolygon& rPolyPolygon, - BOOL bHintIsComplex=TRUE, - BOOL bOutline=FALSE); - void AddGeometry( - const basegfx::B3DPolyPolygon& rPolyPolygon, - const basegfx::B3DPolyPolygon& rPolyPolygonNormal, - BOOL bHintIsComplex=TRUE, - BOOL bOutline=FALSE); - void AddGeometry( - const basegfx::B3DPolyPolygon& rPolyPolygon, - const basegfx::B3DPolyPolygon& rPolyPolygonNormal, - const basegfx::B2DPolyPolygon& rPolyPolygonTexture, - BOOL bHintIsComplex=TRUE, - BOOL bOutline=FALSE); - void StartCreateGeometry(); - - // Segmenterzeugung - void ImpCreateSegment( - const basegfx::B3DPolyPolygon& rFront, // vorderes Polygon - const basegfx::B3DPolyPolygon& rBack, // hinteres Polygon - const basegfx::B3DPolyPolygon* pPrev = 0L, // smooth uebergang zu Vorgaenger - const basegfx::B3DPolyPolygon* pNext = 0L, // smooth uebergang zu Nachfolger - BOOL bCreateFront = TRUE, // vorderen Deckel erzeugen - BOOL bCreateBack = TRUE, // hinteren Deckel erzeugen - double fPercentDiag = 0.05, // Anteil des Deckels an der Tiefe - BOOL bSmoothLeft = TRUE, // Glaetten der umlaufenden Normalen links - BOOL bSmoothRight = TRUE, // Glaetten der umlaufenden Normalen rechts - BOOL bSmoothFrontBack = FALSE, // Glaetten der Abschlussflaechen - double fSurroundFactor = 1.0, // Wertebereich der Texturkoordinaten im Umlauf - double fTextureStart = 0.0, // TexCoor ueber Extrude-Tiefe - double fTextureDepth = 1.0, // TexCoor ueber Extrude-Tiefe - BOOL bCreateTexture = TRUE, - BOOL bCreateNormals = TRUE, - BOOL bCharacterExtrude = FALSE, // FALSE=exakt, TRUE=ohne Ueberschneidungen - BOOL bRotateTexture90 = FALSE, // Textur der Seitenflaechen um 90 Grad kippen - // #i28528# - basegfx::B3DPolyPolygon* pLineGeometryFront = 0L, // For creation of line geometry front parts - basegfx::B3DPolyPolygon* pLineGeometryBack = 0L, // For creation of line geometry back parts - basegfx::B3DPolyPolygon* pLineGeometry = 0L // For creation of line geometry in-betweens - ); - - // #i28528# - basegfx::B3DPolyPolygon ImpCompleteLinePolygon(const basegfx::B3DPolyPolygon& rLinePolyPoly, sal_uInt32 nPolysPerRun, sal_Bool bClosed); - void SetDefaultAttributes(E3dDefaultAttributes& rDefault); // convert given basegfx::B3DPolyPolygon to screen coor @@ -421,6 +252,11 @@ public : E3dCompoundObject(E3dDefaultAttributes& rDefault); virtual ~E3dCompoundObject(); + virtual basegfx::B2DPolyPolygon TakeXorPoly() const; + virtual sal_uInt32 GetHdlCount() const; + virtual void AddToHdlList(SdrHdlList& rHdlList) const; + virtual FASTBOOL HasSpecialDrag() const; + // DoubleSided: TRUE/FALSE BOOL GetDoubleSided() const { return ((const Svx3DDoubleSidedItem&)GetObjectItemSet().Get(SDRATTR_3DOBJ_DOUBLE_SIDED)).GetValue(); } @@ -461,14 +297,6 @@ public : sal_uInt16 GetMaterialSpecularIntensity() const { return ((const Svx3DMaterialSpecularIntensityItem&)GetObjectItemSet().Get(SDRATTR_3DOBJ_MAT_SPECULAR_INTENSITY)).GetValue(); } - // TextureKind: 1 == Base3DTextureLuminance, 2 == Base3DTextureIntensity, 3 == Base3DTextureColor - Base3DTextureKind GetTextureKind() const - { return (Base3DTextureKind)((const Svx3DTextureKindItem&)GetObjectItemSet().Get(SDRATTR_3DOBJ_TEXTURE_KIND)).GetValue(); } - - // TextureMode: 1 == Base3DTextureReplace, 2 == Base3DTextureModulate, 3 == Base3DTextureBlend - Base3DTextureMode GetTextureMode() const - { return (Base3DTextureMode)((const Svx3DTextureModeItem&)GetObjectItemSet().Get(SDRATTR_3DOBJ_TEXTURE_MODE)).GetValue(); } - // TextureFilter: TRUE/FALSE BOOL GetTextureFilter() const { return ((const Svx3DTextureFilterItem&)GetObjectItemSet().Get(SDRATTR_3DOBJ_TEXTURE_FILTER)).GetValue(); } @@ -480,23 +308,10 @@ public : virtual UINT16 GetObjIdentifier() const; virtual void RecalcSnapRect(); - virtual const Volume3D& GetBoundVolume() const; // Hittest, wird an Geometrie weitergegeben virtual SdrObject* CheckHit(const Point& rPnt, USHORT nTol, const SetOfByte* pVisiLayer) const; - // #110988# test if given hit candidate point is inside bound volume of object. Used - // from CheckHit. - sal_Bool ImpIsInsideBoundVolume(const basegfx::B3DPoint& rFront, const basegfx::B3DPoint& rBack, const Point& rPnt) const; - - // Geometrieerzeugung - void DestroyGeometry(); - virtual void CreateGeometry(); - void ReCreateGeometry(); - - // Give out simple line geometry - virtual basegfx::B3DPolyPolygon Get3DLineGeometry() const; - // Parameter Geometrieerzeugung setzen/lesen BOOL GetCreateNormals() const { return bCreateNormals; } void SetCreateNormals(BOOL bNew); @@ -507,32 +322,11 @@ public : // Copy-Operator virtual void operator=(const SdrObject&); - // DisplayGeometry rausruecken - const B3dGeometry& GetDisplayGeometry() const; - - // Schattenattribute holen - Color GetShadowColor() const; - BOOL DrawShadowAsOutline() const; - INT32 GetShadowXDistance() const; - INT32 GetShadowYDistance() const; - BOOL DoDrawShadow(); - - // Nromalen invertiert benutzen -private: - SVX_DLLPRIVATE void SetInvertNormals(BOOL bNew); -public: - // Material des Objektes const Color& GetMaterialAmbientColor() const { return aMaterialAmbientColor; } void SetMaterialAmbientColor(const Color& rColor); - const B3dMaterial& GetBackMaterial() const { return aBackMaterial; } - void SetBackMaterial(const B3dMaterial& rNew); - BOOL GetUseDifferentBackMaterial() const { return bUseDifferentBackMaterial; } - void SetUseDifferentBackMaterial(BOOL bNew); - // #110988# - double GetMinimalDepthInViewCoor(E3dScene& rScene) const; sal_Bool IsAOrdNumRemapCandidate(E3dScene*& prScene) const; }; diff --git a/svx/inc/svx/polygn3d.hxx b/svx/inc/svx/polygn3d.hxx index 9087ab2d7f..63ceee30cc 100644 --- a/svx/inc/svx/polygn3d.hxx +++ b/svx/inc/svx/polygn3d.hxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: polygn3d.hxx,v $ - * $Revision: 1.4 $ + * $Revision: 1.4.18.1 $ * * This file is part of OpenOffice.org. * @@ -84,12 +84,6 @@ public: virtual void operator=(const SdrObject&); - // Geometrieerzeugung - virtual void CreateGeometry(); - - // Give out simple line geometry - virtual basegfx::B3DPolyPolygon Get3DLineGeometry() const; - // LineOnly? BOOL GetLineOnly() { return bLineOnly; } void SetLineOnly(BOOL bNew); diff --git a/svx/inc/svx/scene3d.hxx b/svx/inc/svx/scene3d.hxx index c995ed40d2..ccccf1ded4 100644 --- a/svx/inc/svx/scene3d.hxx +++ b/svx/inc/svx/scene3d.hxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: scene3d.hxx,v $ - * $Revision: 1.5 $ + * $Revision: 1.5.18.1 $ * * This file is part of OpenOffice.org. * @@ -32,20 +32,19 @@ #define _E3D_SCENE3D_HXX #include <svx/camera3d.hxx> -#include <goodies/base3d.hxx> #include <goodies/b3dtrans.hxx> #include <tools/time.hxx> #include <svx/svxdllapi.h> #include <svx/obj3d.hxx> -namespace sdr -{ - namespace properties - { - class BaseProperties; - class E3dSceneProperties; - } // end of namespace properties -} // end of namespace sdr +namespace sdr { namespace properties { + class BaseProperties; + class E3dSceneProperties; +}} + +namespace drawinglayer { namespace geometry { + class ViewInformation3D; +}} /************************************************************************* |* @@ -85,38 +84,16 @@ private: protected: // Transformationen B3dCamera aCameraSet; - - // Beleuchtung - B3dLightGroup aLightGroup; - Camera3D aCamera; - // Zeit, die der letzte Paint() benoetigte - Time aPaintTime; - - // Darstellungsqualitaet, wird in Base3D verwendet - UINT8 nDisplayQuality; - // #110988# Imp3DDepthRemapper* mp3DDepthRemapper; - // BOOLean Flags - unsigned bDoubleBuffered : 1; - unsigned bClipping : 1; - unsigned bFitInSnapRect : 1; - unsigned bDither : 1; - - // Merker, ob die Szene urspruenglich selektiert war - unsigned bWasSelectedWhenCopy : 1; - // Flag to determine if only selected objects should be drawn unsigned bDrawOnlySelected : 1; - // #i71618# - double mfPolygonOffset; - virtual void NewObjectInserted(const E3dObject* p3DObj); - virtual void StructureChanged(const E3dObject* p3DObj); + virtual void StructureChanged(); void RebuildLists(); @@ -134,21 +111,10 @@ public: E3dScene(E3dDefaultAttributes& rDefault); virtual ~E3dScene(); - // #i71618# - // support for value for PolygonOffset. Value is relative to Z-Buffer depth. Used - // for 3d rendering. See Base3D for more info - void setPolygonOffset(double fNew) - { - if(fNew != mfPolygonOffset) - { - mfPolygonOffset = fNew; - } - } - - double getPolygonOffset() const - { - return mfPolygonOffset; - } + // access to cleanup of depth mapper + void Cleanup3DDepthMapper() { ImpCleanup3DDepthMapper(); } + + virtual basegfx::B2DPolyPolygon TakeXorPoly() const; // #110988# sal_uInt32 RemapOrdNum(sal_uInt32 nOrdNum) const; @@ -237,16 +203,9 @@ public: // set flag to draw only selected void SetDrawOnlySelected(BOOL bNew) { bDrawOnlySelected = bNew; } - BOOL DoDrawOnlySelected() const { return bDrawOnlySelected; } - - virtual basegfx::B3DRange FitInSnapRect(); - + bool GetDrawOnlySelected() const { return bDrawOnlySelected; } virtual UINT16 GetObjIdentifier() const; - virtual sal_uInt32 GetHdlCount() const; - virtual void AddToHdlList(SdrHdlList& rHdlList) const; - virtual FASTBOOL HasSpecialDrag() const; - virtual void NbcSetSnapRect(const Rectangle& rRect); virtual void NbcMove(const Size& rSize); virtual void NbcResize(const Point& rRef, const Fraction& rXFact, @@ -254,38 +213,19 @@ public: virtual void RecalcSnapRect(); virtual E3dScene* GetScene() const; - - // TransformationSet vorbereiten - void InitTransformationSet(); - - Time GetLastPaintTime() { return aPaintTime; } - - // Darstellungsqualitaet - void SetDisplayQuality(UINT8 nNew) { nDisplayQuality = nNew; } - UINT8 GetDisplayQuality() { return nDisplayQuality; } - void SetCamera(const Camera3D& rNewCamera); const Camera3D& GetCamera() const { return aCamera; } + void removeAllNonSelectedObjects(); - void SetDoubleBuffered(FASTBOOL bBuff = TRUE); - FASTBOOL IsDoubleBuffered() const { return bDoubleBuffered; } - - // Clipping auf umschliessendes Rechteck der Szene - // (Double Buffering ist immer geclipt!) - void SetClipping(FASTBOOL bClip = TRUE); - FASTBOOL IsClipping() const { return bClipping; } - - void SetFitInSnapRect(FASTBOOL bFit = TRUE); - void CorrectSceneDimensions(); - FASTBOOL IsFitInSnapRect() const { return bFitInSnapRect; } - - void FitSnapRectToBoundVol(); virtual void operator=(const SdrObject&); virtual SdrObjGeoData *NewGeoData() const; virtual void SaveGeoData(SdrObjGeoData& rGeo) const; virtual void RestGeoData(const SdrObjGeoData& rGeo); + virtual void NbcSetTransform(const basegfx::B3DHomMatrix& rMatrix); + virtual void SetTransform(const basegfx::B3DHomMatrix& rMatrix); + virtual void NbcRotate(const Point& rRef, long nWink, double sn, double cs); void RotateScene(const Point& rRef, long nWink, double sn, double cs); @@ -296,29 +236,12 @@ public: // Transformationen rausgeben B3dCamera& GetCameraSet() { return aCameraSet; } - // Beleuchtung rausgeben - B3dLightGroup& GetLightGroup() { return aLightGroup; } - - // Dithering - BOOL GetDither() { return bDither; } - void SetDither(BOOL bNew) { bDither = bNew; } - - // Marker fuer WasSelectedWhenCopy - BOOL GetWasSelectedWhenCopy() { return bWasSelectedWhenCopy; } - void SetWasSelectedWhenCopy(BOOL bNew) { bWasSelectedWhenCopy = bNew; } - // Aufbrechen virtual BOOL IsBreakObjPossible(); basegfx::B3DVector GetShadowPlaneDirection() const; void SetShadowPlaneDirection(const basegfx::B3DVector& rVec); - // #115662# - // For new chart, calculate the number of hit contained 3D objects at given point, - // give back the count and a depth-sorted list of SdrObjects (a Vector). The vector will be - // changed, at least cleared. - sal_uInt32 HitTest(const Point& rHitTestPosition, ::std::vector< SdrObject* >& o_rResult); - // Polygon das waehrend des Erzeugens aufgezogen wird virtual basegfx::B2DPolyPolygon TakeCreatePoly(const SdrDragStat& rDrag) const; diff --git a/svx/inc/svx/sdr/contact/viewcontactofe3d.hxx b/svx/inc/svx/sdr/contact/viewcontactofe3d.hxx index a3d1c54e87..ad92d5afd5 100644 --- a/svx/inc/svx/sdr/contact/viewcontactofe3d.hxx +++ b/svx/inc/svx/sdr/contact/viewcontactofe3d.hxx @@ -8,7 +8,7 @@ * * $RCSfile: viewcontactofe3d.hxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.2.18.1 $ * * This file is part of OpenOffice.org. * @@ -48,6 +48,7 @@ namespace drawinglayer { namespace attribute { namespace basegfx { class BColor; + class B3DHomMatrix; } class E3dObject; @@ -79,19 +80,19 @@ namespace sdr // public helpers drawinglayer::primitive2d::Primitive2DSequence impCreateWithGivenPrimitive3DSequence( const drawinglayer::primitive3d::Primitive3DSequence& rxContent3D) const; - const ViewContactOfE3dScene* tryToFindVCOfE3DScene() const; ////////////////////////////////////////////////////////////////////////////// // primitive stuff protected: - // Primitive2DSequence of the ViewContact. This contains all necessary information + // Primitive3DSequence of the ViewContact. This contains all necessary information // for the graphical visualisation and needs to be supported by all 3D VCs which - // can be visualized. + // can be visualized. It does NOT contain the object transformation to be able to + // buffer for all possible usages drawinglayer::primitive3d::Primitive3DSequence mxViewIndependentPrimitive3DSequence; // This method is responsible for creating the graphical visualisation data which is - // stored in mxViewIndependentPrimitive3DSequence + // stored in mxViewIndependentPrimitive3DSequence, but without object transformation virtual drawinglayer::primitive3d::Primitive3DSequence createViewIndependentPrimitive3DSequence() const = 0; // This method is responsible for creating the graphical visualisation data derived ONLY from @@ -103,8 +104,14 @@ namespace sdr drawinglayer::attribute::SdrLineAttribute* impCreateFallbackLineAttribute(const basegfx::BColor& rBColor) const; public: + // access to the local primitive without the object's local 3D transform. This is e.g. needed + // to get the not-yet transformed BoundVolume for e.g. interactions + drawinglayer::primitive3d::Primitive3DSequence getVIP3DSWithoutObjectTransform() const; + // access to the local primitive. This will ensure that the list is - // current in comparing the local list content with a fresh created incarnation + // current in comparing the local list content with a fresh created incarnation. It will + // use getVIP3DSWithoutObjectTransform and embed to 3d transform primitive when object's + // local 3d transform is used drawinglayer::primitive3d::Primitive3DSequence getViewIndependentPrimitive3DSequence() const; }; } // end of namespace contact diff --git a/svx/inc/svx/sdr/contact/viewcontactofe3dscene.hxx b/svx/inc/svx/sdr/contact/viewcontactofe3dscene.hxx index 8f2d47f5b4..aec9d8df54 100644 --- a/svx/inc/svx/sdr/contact/viewcontactofe3dscene.hxx +++ b/svx/inc/svx/sdr/contact/viewcontactofe3dscene.hxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: viewcontactofe3dscene.hxx,v $ - * $Revision: 1.5 $ + * $Revision: 1.5.18.1 $ * * This file is part of OpenOffice.org. * @@ -59,7 +59,7 @@ namespace sdr { namespace contact { - class ViewContactOfE3dScene : public ViewContactOfSdrObj + class SVX_DLLPUBLIC ViewContactOfE3dScene : public ViewContactOfSdrObj { protected: // Create a Object-Specific ViewObjectContact, set ViewContact and diff --git a/svx/inc/svx/sdr/contact/viewobjectcontactofgraphic.hxx b/svx/inc/svx/sdr/contact/viewobjectcontactofgraphic.hxx index f6d5a20dc5..84c7c35d4c 100644 --- a/svx/inc/svx/sdr/contact/viewobjectcontactofgraphic.hxx +++ b/svx/inc/svx/sdr/contact/viewobjectcontactofgraphic.hxx @@ -8,7 +8,7 @@ * * $RCSfile: viewobjectcontactofgraphic.hxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.2.18.1 $ * * This file is part of OpenOffice.org. * @@ -60,7 +60,8 @@ namespace sdr // async graphics loading helpers. Only to be used internally or from the // event helper class (in .cxx file) - bool impPrepareForPaint(); + bool impPrepareGraphicWithAsynchroniousLoading(); + bool impPrepareGraphicWithSynchroniousLoading(); void doAsynchGraphicLoading(); void forgetAsynchGraphicLoadingEvent(sdr::event::AsynchGraphicLoadingEvent* pEvent); diff --git a/svx/inc/svx/sdr/contact/viewobjectcontactofpageobj.hxx b/svx/inc/svx/sdr/contact/viewobjectcontactofpageobj.hxx index ba9c63aa57..444820cc5c 100644 --- a/svx/inc/svx/sdr/contact/viewobjectcontactofpageobj.hxx +++ b/svx/inc/svx/sdr/contact/viewobjectcontactofpageobj.hxx @@ -8,7 +8,7 @@ * * $RCSfile: viewobjectcontactofpageobj.hxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.2.18.1 $ * * This file is part of OpenOffice.org. * @@ -37,9 +37,9 @@ ////////////////////////////////////////////////////////////////////////////// // predeclarations -namespace { +namespace sdr { namespace contact { class PagePrimitiveExtractor; -} +}} class SdrPage; diff --git a/svx/inc/svx/sdr/contact/viewobjectcontactofsdrmediaobj.hxx b/svx/inc/svx/sdr/contact/viewobjectcontactofsdrmediaobj.hxx index f665a0e2a2..505bc25791 100644 --- a/svx/inc/svx/sdr/contact/viewobjectcontactofsdrmediaobj.hxx +++ b/svx/inc/svx/sdr/contact/viewobjectcontactofsdrmediaobj.hxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: viewobjectcontactofsdrmediaobj.hxx,v $ - * $Revision: 1.9 $ + * $Revision: 1.9.18.1 $ * * This file is part of OpenOffice.org. * @@ -66,13 +66,6 @@ namespace sdr ::sdr::contact::SdrMediaWindow* mpMediaWindow; - ////////////////////////////////////////////////////////////////////////////// - // primitive stuff - public: - // process this primitive: ask for isPrimitiveVisible() and take necessary actions - // to give useful data to the processor in DisplayInfo. Eventually also - // recursively travel a existing hierarchy, e.g. for group objects - virtual drawinglayer::primitive2d::Primitive2DSequence getPrimitive2DSequenceHierarchy(DisplayInfo& rDisplayInfo) const; }; } // end of namespace contact } // end of namespace sdr diff --git a/svx/inc/svx/sdr/primitive2d/sdrattributecreator.hxx b/svx/inc/svx/sdr/primitive2d/sdrattributecreator.hxx index bff9814426..3f60816060 100644 --- a/svx/inc/svx/sdr/primitive2d/sdrattributecreator.hxx +++ b/svx/inc/svx/sdr/primitive2d/sdrattributecreator.hxx @@ -8,7 +8,7 @@ * * $RCSfile: sdrattributecreator.hxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.2.18.1 $ * * This file is part of OpenOffice.org. * @@ -38,7 +38,6 @@ // predefines class SfxItemSet; class SdrText; -class B3dLightGroup; namespace drawinglayer { namespace attribute { class SdrLineAttribute; @@ -80,7 +79,7 @@ namespace drawinglayer attribute::SdrLineFillShadowTextAttribute* createNewSdrLineFillShadowTextAttribute(const SfxItemSet& rSet, const SdrText& rText); attribute::SdrLineFillShadowAttribute* createNewSdrLineFillShadowAttribute(const SfxItemSet& rSet, bool bSuppressFill); attribute::SdrSceneAttribute* createNewSdrSceneAttribute(const SfxItemSet& rSet); - attribute::SdrLightingAttribute* createNewSdrLightingAttribute(const SfxItemSet& rSet, const B3dLightGroup& rLightGroup); + attribute::SdrLightingAttribute* createNewSdrLightingAttribute(const SfxItemSet& rSet); attribute::SdrFillTextAttribute* createNewSdrFillTextAttribute(const SfxItemSet& rSet, const SdrText* pSdrText); // helpers diff --git a/svx/inc/svx/sdr/primitive2d/sdrcustomshapeprimitive2d.hxx b/svx/inc/svx/sdr/primitive2d/sdrcustomshapeprimitive2d.hxx index 4714b3394e..00d98e9dcf 100644 --- a/svx/inc/svx/sdr/primitive2d/sdrcustomshapeprimitive2d.hxx +++ b/svx/inc/svx/sdr/primitive2d/sdrcustomshapeprimitive2d.hxx @@ -8,7 +8,7 @@ * * $RCSfile: sdrcustomshapeprimitive2d.hxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.2.18.1 $ * * This file is part of OpenOffice.org. * @@ -50,7 +50,12 @@ namespace drawinglayer private: attribute::SdrShadowTextAttribute maSdrSTAttribute; Primitive2DSequence maSubPrimitives; - ::basegfx::B2DHomMatrix maTextBox; + basegfx::B2DHomMatrix maTextBox; + + // bitfield + // defines if SdrTextWordWrapItem was set at SdrObjCustomShape which means + // that the text needs to be block formatted + unsigned mbWordWrap : 1; protected: // local decomposition. @@ -60,12 +65,14 @@ namespace drawinglayer SdrCustomShapePrimitive2D( const attribute::SdrShadowTextAttribute& rSdrSTAttribute, const Primitive2DSequence& rSubPrimitives, - const ::basegfx::B2DHomMatrix& rTextBox); + const basegfx::B2DHomMatrix& rTextBox, + bool bWordWrap); // data access const attribute::SdrShadowTextAttribute& getSdrSTAttribute() const { return maSdrSTAttribute; } const Primitive2DSequence& getSubPrimitives() const { return maSubPrimitives; } - const ::basegfx::B2DHomMatrix& getTextBox() const { return maTextBox; } + const basegfx::B2DHomMatrix& getTextBox() const { return maTextBox; } + bool getWordWrap() const { return mbWordWrap; } // compare operator virtual bool operator==(const BasePrimitive2D& rPrimitive) const; diff --git a/svx/inc/svx/sdr/primitive2d/sdrdecompositiontools.hxx b/svx/inc/svx/sdr/primitive2d/sdrdecompositiontools.hxx index 9bdaf31da4..118c368ab6 100644 --- a/svx/inc/svx/sdr/primitive2d/sdrdecompositiontools.hxx +++ b/svx/inc/svx/sdr/primitive2d/sdrdecompositiontools.hxx @@ -8,7 +8,7 @@ * * $RCSfile: sdrdecompositiontools.hxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.2.18.1 $ * * This file is part of OpenOffice.org. * @@ -74,7 +74,8 @@ namespace drawinglayer const ::basegfx::B2DHomMatrix& rObjectTransform, const attribute::SdrTextAttribute& rText, const attribute::SdrLineAttribute* pStroke, - bool bCellText); + bool bCellText, + bool bWordWrap); Primitive2DReference createShadowPrimitive( const Primitive2DSequence& rSource, diff --git a/svx/inc/svx/sdr/primitive2d/sdrtextprimitive2d.hxx b/svx/inc/svx/sdr/primitive2d/sdrtextprimitive2d.hxx index b8b21f0ff5..e277dea965 100644 --- a/svx/inc/svx/sdr/primitive2d/sdrtextprimitive2d.hxx +++ b/svx/inc/svx/sdr/primitive2d/sdrtextprimitive2d.hxx @@ -8,7 +8,7 @@ * * $RCSfile: sdrtextprimitive2d.hxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.2.18.1 $ * * This file is part of OpenOffice.org. * @@ -182,6 +182,7 @@ namespace drawinglayer // bitfield unsigned mbUnlimitedPage : 1; // force layout with no text break unsigned mbCellText : 1; // this is a cell text as block text + unsigned mbWordWrap : 1; // for CustomShapes text layout protected: // local decomposition. @@ -192,12 +193,14 @@ namespace drawinglayer const SdrText& rSdrText, const ::basegfx::B2DHomMatrix& rTextRangeTransform, bool bUnlimitedPage, - bool bCellText); + bool bCellText, + bool bWordWrap); // get data const basegfx::B2DHomMatrix& getTextRangeTransform() const { return maTextRangeTransform; } bool getUnlimitedPage() const { return mbUnlimitedPage; } bool getCellText() const { return mbCellText; } + bool getWordWrap() const { return mbWordWrap; } // compare operator virtual bool operator==(const BasePrimitive2D& rPrimitive) const; diff --git a/svx/inc/svx/sdr/properties/e3dsceneproperties.hxx b/svx/inc/svx/sdr/properties/e3dsceneproperties.hxx index 77824c0659..c5fdbdb581 100644 --- a/svx/inc/svx/sdr/properties/e3dsceneproperties.hxx +++ b/svx/inc/svx/sdr/properties/e3dsceneproperties.hxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: e3dsceneproperties.hxx,v $ - * $Revision: 1.6 $ + * $Revision: 1.6.226.1 $ * * This file is part of OpenOffice.org. * @@ -33,9 +33,6 @@ #include <svx/sdr/properties/e3dproperties.hxx> -// predeclarations -class B3dLightGroup; - ////////////////////////////////////////////////////////////////////////////// namespace sdr @@ -90,7 +87,6 @@ namespace sdr virtual void MoveToItemPool(SfxItemPool* pSrcPool, SfxItemPool* pDestPool, SdrModel* pNewModel = 0L); // Special for scene: - void SetLightItemsFromLightGroup(B3dLightGroup& rLightGroup); void SetSceneItemsFromCamera(); }; } // end of namespace properties diff --git a/svx/inc/svx/sphere3d.hxx b/svx/inc/svx/sphere3d.hxx index 6bdeddde20..38f78eca52 100644 --- a/svx/inc/svx/sphere3d.hxx +++ b/svx/inc/svx/sphere3d.hxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: sphere3d.hxx,v $ - * $Revision: 1.4 $ + * $Revision: 1.4.18.1 $ * * This file is part of OpenOffice.org. * @@ -49,7 +49,7 @@ private: virtual sdr::properties::BaseProperties* CreateObjectSpecificProperties(); - basegfx::B3DPoint aCenter; + basegfx::B3DPoint aCenter; basegfx::B3DVector aSize; protected: @@ -82,12 +82,6 @@ public: const basegfx::B3DPoint& Center() const { return aCenter; } const basegfx::B3DVector& Size() const { return aSize; } - // Geometrieerzeugung - virtual void CreateGeometry(); - - // Give out simple line geometry - virtual basegfx::B3DPolyPolygon Get3DLineGeometry() const; - // Lokale Parameter setzen mit Geometrieneuerzeugung void SetCenter(const basegfx::B3DPoint& rNew); void SetSize(const basegfx::B3DVector& rNew); diff --git a/svx/inc/svx/svdoashp.hxx b/svx/inc/svx/svdoashp.hxx index 1d196924bf..c52da4226f 100644 --- a/svx/inc/svx/svdoashp.hxx +++ b/svx/inc/svx/svdoashp.hxx @@ -32,9 +32,7 @@ #define _SVDOASHP_HXX #include <svx/svdobj.hxx> -#ifndef _SVDOATTR_HXX #include <svx/svdotext.hxx> -#endif #include <svx/svdhdl.hxx> #include <vector> #include <com/sun/star/uno/Reference.h> @@ -236,7 +234,7 @@ public: virtual basegfx::B2DPolyPolygon TakeCreatePoly( const SdrDragStat& rDrag) const; - virtual basegfx::B2DPolyPolygon TakeXorPoly(sal_Bool bDetail) const; + virtual basegfx::B2DPolyPolygon TakeXorPoly() const; virtual basegfx::B2DPolyPolygon TakeContour() const; virtual void NbcSetOutlinerParaObject(OutlinerParaObject* pTextObject); diff --git a/svx/inc/svx/svdobj.hxx b/svx/inc/svx/svdobj.hxx index 2fe7cc1c84..71a6d866b4 100644 --- a/svx/inc/svx/svdobj.hxx +++ b/svx/inc/svx/svdobj.hxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: svdobj.hxx,v $ - * $Revision: 1.9 $ + * $Revision: 1.9.16.1 $ * * This file is part of OpenOffice.org. * @@ -33,10 +33,7 @@ #include <memory> #include <cppuhelper/weakref.hxx> - -#ifndef _MAPMOD_HXX //autogen #include <vcl/mapmod.hxx> -#endif #include <tools/weakbase.hxx> #include <svtools/lstner.hxx> #include <vcl/timer.hxx> @@ -45,13 +42,7 @@ #include <svx/svdglue.hxx> // Klebepunkte #include <svx/xdash.hxx> #include <svx/xpoly.hxx> - -//#ifndef _POLY3D_HXX -//#include <svx/poly3d.hxx> -//#endif #include <svx/xenum.hxx> - -// #111096# #include <vcl/bitmapex.hxx> #include <svx/sdrobjectuser.hxx> #include "svx/svxdllapi.h" @@ -712,7 +703,7 @@ public: // Das Xor-Polygon wird von der View zu Draggen des Objektes benoetigt. // Alle Polygone innerhalb des PolyPolygon werden als PolyLine interpretiert. // Moechte man ein geschlossenes Polygon, so muss man es explizit schliessen. - virtual basegfx::B2DPolyPolygon TakeXorPoly(sal_Bool bDetail) const; + virtual basegfx::B2DPolyPolygon TakeXorPoly() const; // Die Kontur fuer TextToContour virtual basegfx::B2DPolyPolygon TakeContour() const; diff --git a/svx/inc/svx/svdocapt.hxx b/svx/inc/svx/svdocapt.hxx index 73691d17d4..e294151fc0 100644 --- a/svx/inc/svx/svdocapt.hxx +++ b/svx/inc/svx/svdocapt.hxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: svdocapt.hxx,v $ - * $Revision: 1.4 $ + * $Revision: 1.4.18.1 $ * * This file is part of OpenOffice.org. * @@ -40,13 +40,9 @@ class ImpCaptParams; -namespace sdr -{ - namespace properties - { - class CaptionProperties; - } // end of namespace properties -} // end of namespace sdr +namespace sdr { namespace properties { + class CaptionProperties; +}} #define SDRSETITEM_CAPTION_ATTR SDRSETITEM_ATTR_COUNT @@ -83,7 +79,7 @@ private: Polygon aTailPoly; // das ganze Polygon des Schwanzes sal_Bool mbSpecialTextBoxShadow; // for calc special shadow, default FALSE sal_Bool mbFixedTail; // for calc note box fixed tail, default FALSE - Point maFixedTailPos; // for calc note box fixed tail position. + Point maFixedTailPos; // for calc note box fixed tail position. private: SVX_DLLPRIVATE void ImpGetCaptParams(ImpCaptParams& rPara) const; @@ -116,7 +112,7 @@ public: virtual void TakeObjNameSingul(String& rName) const; virtual void TakeObjNamePlural(String& rName) const; - virtual basegfx::B2DPolyPolygon TakeXorPoly(sal_Bool bDetail) const; + virtual basegfx::B2DPolyPolygon TakeXorPoly() const; virtual void SetModel(SdrModel* pNewModel); virtual void Notify(SfxBroadcaster& rBC, const SfxHint& rHint); diff --git a/svx/inc/svx/svdocirc.hxx b/svx/inc/svx/svdocirc.hxx index c40906ed95..138448abb9 100644 --- a/svx/inc/svx/svdocirc.hxx +++ b/svx/inc/svx/svdocirc.hxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: svdocirc.hxx,v $ - * $Revision: 1.5 $ + * $Revision: 1.5.18.1 $ * * This file is part of OpenOffice.org. * @@ -38,13 +38,9 @@ // Vorausdeklarationen //************************************************************ -namespace sdr -{ - namespace properties - { - class CircleProperties; - } // end of namespace properties -} // end of namespace sdr +namespace sdr { namespace properties { + class CircleProperties; +}} //************************************************************ // Hilfsklasse SdrCircObjGeoData @@ -125,7 +121,7 @@ public: virtual void operator=(const SdrObject& rObj); virtual void RecalcSnapRect(); virtual void NbcSetSnapRect(const Rectangle& rRect); - virtual basegfx::B2DPolyPolygon TakeXorPoly(sal_Bool bDetail) const; + virtual basegfx::B2DPolyPolygon TakeXorPoly() const; virtual sal_uInt32 GetSnapPointCount() const; virtual Point GetSnapPoint(sal_uInt32 i) const; diff --git a/svx/inc/svx/svdoedge.hxx b/svx/inc/svx/svdoedge.hxx index e84cc1c5b8..d40773c3f5 100644 --- a/svx/inc/svx/svdoedge.hxx +++ b/svx/inc/svx/svdoedge.hxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: svdoedge.hxx,v $ - * $Revision: 1.5 $ + * $Revision: 1.5.18.1 $ * * This file is part of OpenOffice.org. * @@ -42,13 +42,9 @@ class SdrDragMethod; class SdrPageView; -namespace sdr -{ - namespace properties - { - class ConnectorProperties; - } // end of namespace properties -} // end of namespace sdr +namespace sdr { namespace properties { + class ConnectorProperties; +}} //************************************************************ // Hilfsklasse SdrObjConnection @@ -264,7 +260,7 @@ public: void SetEdgeTrackPath( const basegfx::B2DPolyPolygon& rPoly ); basegfx::B2DPolyPolygon GetEdgeTrackPath() const; - virtual basegfx::B2DPolyPolygon TakeXorPoly(sal_Bool bDetail) const; + virtual basegfx::B2DPolyPolygon TakeXorPoly() const; virtual sal_uInt32 GetHdlCount() const; virtual SdrHdl* GetHdl(sal_uInt32 nHdlNum) const; diff --git a/svx/inc/svx/svdograf.hxx b/svx/inc/svx/svdograf.hxx index 5d912c1f7a..dac8273bb3 100644 --- a/svx/inc/svx/svdograf.hxx +++ b/svx/inc/svx/svdograf.hxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: svdograf.hxx,v $ - * $Revision: 1.5 $ + * $Revision: 1.5.18.2 $ * * This file is part of OpenOffice.org. * @@ -142,7 +142,7 @@ public: virtual ~SdrGrafObj(); void SetGraphicObject( const GraphicObject& rGrfObj ); - const GraphicObject& GetGraphicObject() const; + const GraphicObject& GetGraphicObject( bool bForceSwapIn = false) const; void SetGraphic(const Graphic& rGrf); const Graphic& GetGraphic() const; @@ -186,7 +186,7 @@ public: virtual void TakeObjNamePlural(String& rName) const; // #i25616# - virtual basegfx::B2DPolyPolygon TakeXorPoly(sal_Bool bDetail) const; + virtual basegfx::B2DPolyPolygon TakeXorPoly() const; virtual void operator=(const SdrObject& rObj); virtual FASTBOOL HasSpecialDrag() const; diff --git a/svx/inc/svx/svdogrp.hxx b/svx/inc/svx/svdogrp.hxx index cc9a0bb2ae..4d6a49377c 100644 --- a/svx/inc/svx/svdogrp.hxx +++ b/svx/inc/svx/svdogrp.hxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: svdogrp.hxx,v $ - * $Revision: 1.3 $ + * $Revision: 1.3.226.1 $ * * This file is part of OpenOffice.org. * @@ -91,7 +91,7 @@ public: virtual void TakeObjNamePlural(String& rName) const; virtual void RecalcSnapRect(); - virtual basegfx::B2DPolyPolygon TakeXorPoly(sal_Bool bDetail) const; + virtual basegfx::B2DPolyPolygon TakeXorPoly() const; virtual FASTBOOL BegDrag(SdrDragStat& rDrag) const; virtual FASTBOOL BegCreate(SdrDragStat& rStat); diff --git a/svx/inc/svx/svdomeas.hxx b/svx/inc/svx/svdomeas.hxx index 5e06ac6533..b3c521e741 100644 --- a/svx/inc/svx/svdomeas.hxx +++ b/svx/inc/svx/svdomeas.hxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: svdomeas.hxx,v $ - * $Revision: 1.5 $ + * $Revision: 1.5.18.1 $ * * This file is part of OpenOffice.org. * @@ -42,13 +42,9 @@ class SdrOutliner; struct ImpMeasureRec; struct ImpMeasurePoly; -namespace sdr -{ - namespace properties - { - class MeasureProperties; - } // end of namespace properties -} // end of namespace sdr +namespace sdr { namespace properties { + class MeasureProperties; +}} //************************************************************ // Hilfsklasse SdrMeasureObjGeoData @@ -115,7 +111,7 @@ public: virtual void TakeObjNameSingul(String& rName) const; virtual void TakeObjNamePlural(String& rName) const; - virtual basegfx::B2DPolyPolygon TakeXorPoly(sal_Bool bDetail) const; + virtual basegfx::B2DPolyPolygon TakeXorPoly() const; virtual sal_uInt32 GetHdlCount() const; virtual SdrHdl* GetHdl(sal_uInt32 nHdlNum) const; virtual FASTBOOL HasSpecialDrag() const; diff --git a/svx/inc/svx/svdopath.hxx b/svx/inc/svx/svdopath.hxx index ce96d1457a..b3cd9ee839 100644 --- a/svx/inc/svx/svdopath.hxx +++ b/svx/inc/svx/svdopath.hxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: svdopath.hxx,v $ - * $Revision: 1.4 $ + * $Revision: 1.4.18.1 $ * * This file is part of OpenOffice.org. * @@ -104,7 +104,7 @@ public: virtual void TakeObjNameSingul(String& rName) const; virtual void TakeObjNamePlural(String& rName) const; - virtual basegfx::B2DPolyPolygon TakeXorPoly(sal_Bool bDetail) const; + virtual basegfx::B2DPolyPolygon TakeXorPoly() const; virtual void RecalcSnapRect(); virtual void NbcSetSnapRect(const Rectangle& rRect); virtual sal_uInt32 GetHdlCount() const; diff --git a/svx/inc/svx/svdorect.hxx b/svx/inc/svx/svdorect.hxx index dcf685fda3..d70cef1c55 100644 --- a/svx/inc/svx/svdorect.hxx +++ b/svx/inc/svx/svdorect.hxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: svdorect.hxx,v $ - * $Revision: 1.5 $ + * $Revision: 1.5.18.1 $ * * This file is part of OpenOffice.org. * @@ -40,13 +40,9 @@ class XPolygon; -namespace sdr -{ - namespace properties - { - class RectangleProperties; - } // end of namespace properties -} // end of namespace sdr +namespace sdr { namespace properties { + class RectangleProperties; +}} //************************************************************ // SdrRectObj @@ -116,7 +112,7 @@ public: virtual void RecalcSnapRect(); virtual void NbcSetSnapRect(const Rectangle& rRect); virtual void NbcSetLogicRect(const Rectangle& rRect); - virtual basegfx::B2DPolyPolygon TakeXorPoly(sal_Bool bDetail) const; + virtual basegfx::B2DPolyPolygon TakeXorPoly() const; virtual sal_uInt32 GetHdlCount() const; virtual SdrHdl* GetHdl(sal_uInt32 nHdlNum) const; diff --git a/svx/inc/svx/svdotable.hxx b/svx/inc/svx/svdotable.hxx index 6f9aef4eb5..b91c42ae9c 100644 --- a/svx/inc/svx/svdotable.hxx +++ b/svx/inc/svx/svdotable.hxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: svdotable.hxx,v $ - * $Revision: 1.4 $ + * $Revision: 1.4.18.1 $ * * This file is part of OpenOffice.org. * @@ -230,7 +230,7 @@ public: virtual void TakeObjNameSingul(String& rName) const; virtual void TakeObjNamePlural(String& rName) const; virtual void operator=(const SdrObject& rObj); - virtual basegfx::B2DPolyPolygon TakeXorPoly(sal_Bool bDetail) const; + virtual basegfx::B2DPolyPolygon TakeXorPoly() const; virtual basegfx::B2DPolyPolygon TakeContour() const; virtual void RecalcSnapRect(); virtual const Rectangle& GetSnapRect() const; diff --git a/svx/inc/svx/svdotext.hxx b/svx/inc/svx/svdotext.hxx index 3c40f588ae..88430005c3 100644 --- a/svx/inc/svx/svdotext.hxx +++ b/svx/inc/svx/svdotext.hxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: svdotext.hxx,v $ - * $Revision: 1.5 $ + * $Revision: 1.5.18.1 $ * * This file is part of OpenOffice.org. * @@ -434,7 +434,7 @@ public: virtual void TakeObjNameSingul(String& rName) const; virtual void TakeObjNamePlural(String& rName) const; virtual void operator=(const SdrObject& rObj); - virtual basegfx::B2DPolyPolygon TakeXorPoly(sal_Bool bDetail) const; + virtual basegfx::B2DPolyPolygon TakeXorPoly() const; virtual basegfx::B2DPolyPolygon TakeContour() const; virtual void RecalcSnapRect(); virtual void NbcSetSnapRect(const Rectangle& rRect); diff --git a/svx/inc/svx/svdovirt.hxx b/svx/inc/svx/svdovirt.hxx index 79ab364d70..b351ff90b3 100644 --- a/svx/inc/svx/svdovirt.hxx +++ b/svx/inc/svx/svdovirt.hxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: svdovirt.hxx,v $ - * $Revision: 1.4 $ + * $Revision: 1.4.18.1 $ * * This file is part of OpenOffice.org. * @@ -90,7 +90,7 @@ public: virtual void TakeObjNameSingul(String& rName) const; virtual void TakeObjNamePlural(String& rName) const; - virtual basegfx::B2DPolyPolygon TakeXorPoly(sal_Bool bDetail) const; + virtual basegfx::B2DPolyPolygon TakeXorPoly() const; virtual sal_uInt32 GetHdlCount() const; virtual SdrHdl* GetHdl(sal_uInt32 nHdlNum) const; virtual sal_uInt32 GetPlusHdlCount(const SdrHdl& rHdl) const; diff --git a/svx/inc/svx/svx3ditems.hxx b/svx/inc/svx/svx3ditems.hxx index 1296636a61..558c1904cf 100644 --- a/svx/inc/svx/svx3ditems.hxx +++ b/svx/inc/svx/svx3ditems.hxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: svx3ditems.hxx,v $ - * $Revision: 1.4 $ + * $Revision: 1.4.226.1 $ * * This file is part of OpenOffice.org. * @@ -196,7 +196,7 @@ public: Svx3DTwoSidedLightingItem(BOOL bVal = 0); }; -class Svx3DLightcolor1Item : public SvxColorItem { +class SVX_DLLPUBLIC Svx3DLightcolor1Item : public SvxColorItem { public: Svx3DLightcolor1Item(const Color& rCol = Color(0xffcccccc)); }; @@ -206,37 +206,37 @@ public: Svx3DLightcolor2Item(const Color& rCol = Color(0x00000000)); }; -class Svx3DLightcolor3Item : public SvxColorItem { +class SVX_DLLPUBLIC Svx3DLightcolor3Item : public SvxColorItem { public: Svx3DLightcolor3Item(const Color& rCol = Color(0x00000000)); }; -class Svx3DLightcolor4Item : public SvxColorItem { +class SVX_DLLPUBLIC Svx3DLightcolor4Item : public SvxColorItem { public: Svx3DLightcolor4Item(const Color& rCol = Color(0x00000000)); }; -class Svx3DLightcolor5Item : public SvxColorItem { +class SVX_DLLPUBLIC Svx3DLightcolor5Item : public SvxColorItem { public: Svx3DLightcolor5Item(const Color& rCol = Color(0x00000000)); }; -class Svx3DLightcolor6Item : public SvxColorItem { +class SVX_DLLPUBLIC Svx3DLightcolor6Item : public SvxColorItem { public: Svx3DLightcolor6Item(const Color& rCol = Color(0x00000000)); }; -class Svx3DLightcolor7Item : public SvxColorItem { +class SVX_DLLPUBLIC Svx3DLightcolor7Item : public SvxColorItem { public: Svx3DLightcolor7Item(const Color& rCol = Color(0x00000000)); }; -class Svx3DLightcolor8Item : public SvxColorItem { +class SVX_DLLPUBLIC Svx3DLightcolor8Item : public SvxColorItem { public: Svx3DLightcolor8Item(const Color& rCol = Color(0x00000000)); }; -class Svx3DAmbientcolorItem : public SvxColorItem { +class SVX_DLLPUBLIC Svx3DAmbientcolorItem : public SvxColorItem { public: Svx3DAmbientcolorItem(const Color& rCol = Color(0x00666666)); }; @@ -251,37 +251,37 @@ public: Svx3DLightOnOff2Item(BOOL bVal = 0); }; -class Svx3DLightOnOff3Item : public SfxBoolItem { +class SVX_DLLPUBLIC Svx3DLightOnOff3Item : public SfxBoolItem { public: Svx3DLightOnOff3Item(BOOL bVal = 0); }; -class Svx3DLightOnOff4Item : public SfxBoolItem { +class SVX_DLLPUBLIC Svx3DLightOnOff4Item : public SfxBoolItem { public: Svx3DLightOnOff4Item(BOOL bVal = 0); }; -class Svx3DLightOnOff5Item : public SfxBoolItem { +class SVX_DLLPUBLIC Svx3DLightOnOff5Item : public SfxBoolItem { public: Svx3DLightOnOff5Item(BOOL bVal = 0); }; -class Svx3DLightOnOff6Item : public SfxBoolItem { +class SVX_DLLPUBLIC Svx3DLightOnOff6Item : public SfxBoolItem { public: Svx3DLightOnOff6Item(BOOL bVal = 0); }; -class Svx3DLightOnOff7Item : public SfxBoolItem { +class SVX_DLLPUBLIC Svx3DLightOnOff7Item : public SfxBoolItem { public: Svx3DLightOnOff7Item(BOOL bVal = 0); }; -class Svx3DLightOnOff8Item : public SfxBoolItem { +class SVX_DLLPUBLIC Svx3DLightOnOff8Item : public SfxBoolItem { public: Svx3DLightOnOff8Item(BOOL bVal = 0); }; -class Svx3DLightDirection1Item : public SvxB3DVectorItem { +class SVX_DLLPUBLIC Svx3DLightDirection1Item : public SvxB3DVectorItem { public: Svx3DLightDirection1Item(const basegfx::B3DVector& rVec = basegfx::B3DVector(0.57735026918963, 0.57735026918963, 0.57735026918963)); }; @@ -291,32 +291,32 @@ public: Svx3DLightDirection2Item(const basegfx::B3DVector& rVec = basegfx::B3DVector(0.0,0.0,1.0)); }; -class Svx3DLightDirection3Item : public SvxB3DVectorItem { +class SVX_DLLPUBLIC Svx3DLightDirection3Item : public SvxB3DVectorItem { public: Svx3DLightDirection3Item(const basegfx::B3DVector& rVec = basegfx::B3DVector(0.0,0.0,1.0)); }; -class Svx3DLightDirection4Item : public SvxB3DVectorItem { +class SVX_DLLPUBLIC Svx3DLightDirection4Item : public SvxB3DVectorItem { public: Svx3DLightDirection4Item(const basegfx::B3DVector& rVec = basegfx::B3DVector(0.0,0.0,1.0)); }; -class Svx3DLightDirection5Item : public SvxB3DVectorItem { +class SVX_DLLPUBLIC Svx3DLightDirection5Item : public SvxB3DVectorItem { public: Svx3DLightDirection5Item(const basegfx::B3DVector& rVec = basegfx::B3DVector(0.0,0.0,1.0)); }; -class Svx3DLightDirection6Item : public SvxB3DVectorItem { +class SVX_DLLPUBLIC Svx3DLightDirection6Item : public SvxB3DVectorItem { public: Svx3DLightDirection6Item(const basegfx::B3DVector& rVec = basegfx::B3DVector(0.0,0.0,1.0)); }; -class Svx3DLightDirection7Item : public SvxB3DVectorItem { +class SVX_DLLPUBLIC Svx3DLightDirection7Item : public SvxB3DVectorItem { public: Svx3DLightDirection7Item(const basegfx::B3DVector& rVec = basegfx::B3DVector(0.0,0.0,1.0)); }; -class Svx3DLightDirection8Item : public SvxB3DVectorItem { +class SVX_DLLPUBLIC Svx3DLightDirection8Item : public SvxB3DVectorItem { public: Svx3DLightDirection8Item(const basegfx::B3DVector& rVec = basegfx::B3DVector(0.0,0.0,1.0)); }; diff --git a/svx/inc/svx/viewpt3d.hxx b/svx/inc/svx/viewpt3d.hxx index d881dc6b45..dbdcac36f3 100644 --- a/svx/inc/svx/viewpt3d.hxx +++ b/svx/inc/svx/viewpt3d.hxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: viewpt3d.hxx,v $ - * $Revision: 1.3 $ + * $Revision: 1.3.226.1 $ * * This file is part of OpenOffice.org. * @@ -61,8 +61,8 @@ class SVX_DLLPUBLIC Viewport3D protected: basegfx::B3DHomMatrix aViewTf; // die eigentliche Transformationsmatrix basegfx::B3DPoint aVRP; // View Reference Point - basegfx::B3DVector aVPN; // View Plane Normal - basegfx::B3DVector aVUV; // View Up Vector + basegfx::B3DVector aVPN; // View Plane Normal + basegfx::B3DVector aVUV; // View Up Vector basegfx::B3DPoint aPRP; // Projection Reference Point(View-Koordinaten) // bisher wird nur die Z-Koordinate beachtet double fVPD; // View Plane Distance @@ -118,9 +118,6 @@ class SVX_DLLPUBLIC Viewport3D void SetViewWindow(double fX, double fY, double fW, double fH); void GetViewWindow(double& rX, double& rY, double& rW, double& rH) const; - // View-Window genau um das mit rTransform transformierte Volumen legen - void FitViewToVolume(const basegfx::B3DRange& rVolume, const basegfx::B3DHomMatrix& rTransform); - void SetDeviceWindow(const Rectangle& rRect); const Rectangle& GetDeviceWindow() const { return aDeviceRect; } diff --git a/svx/inc/svx/volume3d.hxx b/svx/inc/svx/volume3d.hxx index 5edbb3f9d0..514d567e73 100644 --- a/svx/inc/svx/volume3d.hxx +++ b/svx/inc/svx/volume3d.hxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: volume3d.hxx,v $ - * $Revision: 1.3 $ + * $Revision: 1.3.226.1 $ * * This file is part of OpenOffice.org. * @@ -32,56 +32,5 @@ #define _VOLUME3D_HXX #include <basegfx/range/b3drange.hxx> -#include "svx/svxdllapi.h" - -//************************************************************ -// Vorausdeklarationen -//************************************************************ -namespace basegfx -{ - class B3DPolygon; - class B3DPoint; - class B3DHomMatrix; -} - -/************************************************************************* -|* -|* dreidimensionales Volumen, symmetrisch zu den Koordinatenachsen -|* -\************************************************************************/ - -class SVX_DLLPUBLIC Volume3D : public basegfx::B3DRange -{ -public: - Volume3D(const basegfx::B3DPoint& rPos, const basegfx::B3DPoint& r3DSize, bool bPosIsCenter = true); - explicit Volume3D(const basegfx::B3DRange& rVol); - Volume3D(); - - Volume3D GetTransformVolume(const basegfx::B3DHomMatrix& rTfMatrix) const; - void CreateWireframe(basegfx::B3DPolygon& rPoly3D, const basegfx::B3DHomMatrix* pTf = 0L) const; -}; - -/************************************************************************* -|* -|* Iterator, der die Eckpunkte eines Volumens berechnet; wenn eine Matrix -|* uebergeben wird, werden die Punkte damit transformiert -|* -\************************************************************************/ - -class Vol3DPointIterator -{ -protected: - const basegfx::B3DRange& rVolume; - const basegfx::B3DHomMatrix* pTransform; - basegfx::B3DVector a3DExtent; - sal_uInt16 nIndex; - -public: - Vol3DPointIterator(const basegfx::B3DRange& rVol, const basegfx::B3DHomMatrix* pTf = NULL); - - bool Next(basegfx::B3DPoint& rVec); - void Reset() { nIndex = 0; } -}; - #endif // _VOLUME3D_HXX |