diff options
Diffstat (limited to 'drawinglayer/inc/drawinglayer/primitive3d')
20 files changed, 0 insertions, 2349 deletions
diff --git a/drawinglayer/inc/drawinglayer/primitive3d/baseprimitive3d.hxx b/drawinglayer/inc/drawinglayer/primitive3d/baseprimitive3d.hxx deleted file mode 100644 index 7ad394c064..0000000000 --- a/drawinglayer/inc/drawinglayer/primitive3d/baseprimitive3d.hxx +++ /dev/null @@ -1,225 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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_DRAWINGLAYER_PRIMITIVE3D_BASEPRIMITIVE3D_HXX -#define INCLUDED_DRAWINGLAYER_PRIMITIVE3D_BASEPRIMITIVE3D_HXX - -#include <drawinglayer/drawinglayerdllapi.h> - -#include <cppuhelper/compbase1.hxx> -#include <boost/utility.hpp> -#include <com/sun/star/graphic/XPrimitive3D.hpp> -#include <comphelper/broadcasthelper.hxx> -#include <basegfx/range/b3drange.hxx> - -////////////////////////////////////////////////////////////////////////////// -/** defines for DeclPrimitrive3DIDBlock and ImplPrimitrive3DIDBlock - Added to be able to simply change identification stuff later, e.g. add - a identification string and/or ID to the interface and to the implementation - ATM used to delclare implement getPrimitive3DID() - */ - -#define DeclPrimitrive3DIDBlock() \ - virtual sal_uInt32 getPrimitive3DID() const; - -#define ImplPrimitrive3DIDBlock(TheClass, TheID) \ - sal_uInt32 TheClass::getPrimitive3DID() const { return TheID; } - -////////////////////////////////////////////////////////////////////////////// -// predefines - -namespace drawinglayer { namespace geometry { - class ViewInformation3D; -}} - -namespace drawinglayer { namespace primitive3d { - /// typedefs for basePrimitive3DImplBase, Primitive3DSequence and Primitive3DReference - typedef cppu::WeakComponentImplHelper1< ::com::sun::star::graphic::XPrimitive3D > BasePrimitive3DImplBase; - typedef ::com::sun::star::uno::Reference< ::com::sun::star::graphic::XPrimitive3D > Primitive3DReference; - typedef ::com::sun::star::uno::Sequence< Primitive3DReference > Primitive3DSequence; -}} - -////////////////////////////////////////////////////////////////////////////// -// basePrimitive3D class - -namespace drawinglayer -{ - namespace primitive3d - { - /** BasePrimitive3D class - - Baseclass for all C++ implementations of com::sun::star::graphic::XPrimitive2D - - The description/functionality is identical with the 2D case in baseprimitive2d.hxx, - please see there for detailed information. - - Current Basic 3D Primitives are: - - - PolygonHairlinePrimitive3D (for 3D hairlines) - - PolyPolygonMaterialPrimitive3D (for 3D filled plane polygons) - - That's all for 3D! - */ - class DRAWINGLAYER_DLLPUBLIC BasePrimitive3D - : private boost::noncopyable, - protected comphelper::OBaseMutex, - public BasePrimitive3DImplBase - { - private: - protected: - public: - // constructor/destructor - BasePrimitive3D(); - virtual ~BasePrimitive3D(); - - /** the ==operator is mainly needed to allow testing newly-created high level primitives against their last - incarnation which buffers/holds the decompositionsThe default implementation - uses getPrimitive3DID()-calls to test if it's the same ID at last. Overloaded implementation are then - based on this implementation. - */ - virtual bool operator==( const BasePrimitive3D& rPrimitive ) const; - bool operator!=( const BasePrimitive3D& rPrimitive ) const { return !operator==(rPrimitive); } - - /** This method is for places where using the C++ implementation directly is possible. The subprocessing - and range merging is more efficient when working directly on basegfx::B3DRange. The default implementation - will use getDecomposition results to create the range - */ - virtual basegfx::B3DRange getB3DRange(const geometry::ViewInformation3D& rViewInformation) const; - - /** provide unique ID for fast identifying of known primitive implementations in renderers. These use - the the defines from primitivetypes3d.hxx to define unique IDs. - */ - virtual sal_uInt32 getPrimitive3DID() const = 0; - - /// The default implementation returns an empty sequence - virtual Primitive3DSequence get3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const; - - // - // Methods from XPrimitive3D - // - - /** The getDecomposition implementation for UNO API will use getDecomposition from this implementation. It - will get the ViewInformation from the ViewParameters for that purpose - */ - virtual Primitive3DSequence SAL_CALL getDecomposition( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& rViewParameters ) throw ( ::com::sun::star::uno::RuntimeException ); - - /** the getRange default implemenation will use getDecomposition to create the range information from merging - getRange results from the single local decomposition primitives. - */ - virtual ::com::sun::star::geometry::RealRectangle3D SAL_CALL getRange( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& rViewParameters ) throw ( ::com::sun::star::uno::RuntimeException ); - }; - } // end of namespace primitive3d -} // end of namespace drawinglayer - -////////////////////////////////////////////////////////////////////////////// -// BufferedDecompositionPrimitive3D class - -namespace drawinglayer -{ - namespace primitive3d - { - /** BufferedDecompositionPrimitive3D class - - Baseclass for all C++ implementations of com::sun::star::graphic::XPrimitive2D - - The description/functionality is identical with the 2D case in baseprimitive2d.hxx, - please see there for detailed information - */ - class DRAWINGLAYER_DLLPUBLIC BufferedDecompositionPrimitive3D - : public BasePrimitive3D - { - private: - /// a sequence used for buffering the last create3DDecomposition() result - Primitive3DSequence maBuffered3DDecomposition; - - protected: - /** access methods to maBuffered3DDecomposition. The usage of this methods may allow - later thread-safe stuff to be added if needed. Only to be used by getDecomposition() - implementations for buffering the last decomposition. - */ - const Primitive3DSequence& getBuffered3DDecomposition() const { return maBuffered3DDecomposition; } - void setBuffered3DDecomposition(const Primitive3DSequence& rNew) { maBuffered3DDecomposition = rNew; } - - /** method which is to be used to implement the local decomposition of a 2D primitive. The default - implementation will just return an empty decomposition - */ - virtual Primitive3DSequence create3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const; - - public: - // constructor - BufferedDecompositionPrimitive3D(); - - /** The getDecomposition default implementation will on demand use create3DDecomposition() if - maBuffered3DDecomposition is empty. It will set maBuffered3DDecomposition to this obtained decomposition - to buffer it. If the decomposition is also ViewInformation-dependent, this method needs to be - overloaded and the ViewInformation for the last decomposition needs to be remembered, too, and - be used in the next call to decide if the buffered decomposition may be reused or not. - */ - virtual Primitive3DSequence get3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const; - }; - } // end of namespace primitive3d -} // end of namespace drawinglayer - -////////////////////////////////////////////////////////////////////////////// -// tooling - -namespace drawinglayer -{ - namespace primitive3d - { - /// get B3DRange from a given Primitive3DReference - basegfx::B3DRange DRAWINGLAYER_DLLPUBLIC getB3DRangeFromPrimitive3DReference(const Primitive3DReference& rCandidate, const geometry::ViewInformation3D& aViewInformation); - - /// get range3D from a given Primitive3DSequence - basegfx::B3DRange DRAWINGLAYER_DLLPUBLIC getB3DRangeFromPrimitive3DSequence(const Primitive3DSequence& rCandidate, const geometry::ViewInformation3D& aViewInformation); - - /** compare two Primitive2DReferences for equality, including trying to get implementations (BasePrimitive2D) - and using compare operator - */ - bool DRAWINGLAYER_DLLPUBLIC arePrimitive3DReferencesEqual(const Primitive3DReference& rA, const Primitive3DReference& rB); - - /// compare two Primitive3DReferences for equality, uses arePrimitive3DReferencesEqual internally - bool DRAWINGLAYER_DLLPUBLIC arePrimitive3DSequencesEqual(const Primitive3DSequence& rA, const Primitive3DSequence& rB); - - /// concatenate sequence - void DRAWINGLAYER_DLLPUBLIC appendPrimitive3DSequenceToPrimitive3DSequence(Primitive3DSequence& rDest, const Primitive3DSequence& rSource); - - /// concatenate single Primitive3D - void DRAWINGLAYER_DLLPUBLIC appendPrimitive3DReferenceToPrimitive3DSequence(Primitive3DSequence& rDest, const Primitive3DReference& rSource); - - } // end of namespace primitive3d -} // end of namespace drawinglayer - -////////////////////////////////////////////////////////////////////////////// - -#endif //INCLUDED_DRAWINGLAYER_PRIMITIVE3D_BASEPRIMITIVE3D_HXX - -////////////////////////////////////////////////////////////////////////////// -// eof - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/drawinglayer/inc/drawinglayer/primitive3d/drawinglayer_primitivetypes3d.hxx b/drawinglayer/inc/drawinglayer/primitive3d/drawinglayer_primitivetypes3d.hxx deleted file mode 100644 index 2f6aeb8c93..0000000000 --- a/drawinglayer/inc/drawinglayer/primitive3d/drawinglayer_primitivetypes3d.hxx +++ /dev/null @@ -1,68 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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_DRAWINGLAYER_PRIMITIVE3D_PRIMITIVETYPES3D_HXX -#define INCLUDED_DRAWINGLAYER_PRIMITIVE3D_PRIMITIVETYPES3D_HXX - -////////////////////////////////////////////////////////////////////////////// -// define ranges for other libraries - -#define PRIMITIVE3D_ID_RANGE_DRAWINGLAYER (0 << 16) -// #define PRIMITIVE3D_ID_RANGE_SVX (1 << 16) - -////////////////////////////////////////////////////////////////////////////// -// local primitives - -#define PRIMITIVE3D_ID_GROUPPRIMITIVE3D (PRIMITIVE3D_ID_RANGE_DRAWINGLAYER| 0) -#define PRIMITIVE3D_ID_HATCHTEXTUREPRIMITIVE3D (PRIMITIVE3D_ID_RANGE_DRAWINGLAYER| 1) -#define PRIMITIVE3D_ID_MODIFIEDCOLORPRIMITIVE3D (PRIMITIVE3D_ID_RANGE_DRAWINGLAYER| 2) -#define PRIMITIVE3D_ID_POLYGONHAIRLINEPRIMITIVE3D (PRIMITIVE3D_ID_RANGE_DRAWINGLAYER| 3) -#define PRIMITIVE3D_ID_POLYGONSTROKEPRIMITIVE3D (PRIMITIVE3D_ID_RANGE_DRAWINGLAYER| 4) -#define PRIMITIVE3D_ID_POLYGONTUBEPRIMITIVE3D (PRIMITIVE3D_ID_RANGE_DRAWINGLAYER| 5) -#define PRIMITIVE3D_ID_POLYPOLYGONMATERIALPRIMITIVE3D (PRIMITIVE3D_ID_RANGE_DRAWINGLAYER| 6) -#define PRIMITIVE3D_ID_SDRCUBEPRIMITIVE3D (PRIMITIVE3D_ID_RANGE_DRAWINGLAYER| 7) -#define PRIMITIVE3D_ID_SDREXTRUDEPRIMITIVE3D (PRIMITIVE3D_ID_RANGE_DRAWINGLAYER| 8) -#define PRIMITIVE3D_ID_SDRLATHEPRIMITIVE3D (PRIMITIVE3D_ID_RANGE_DRAWINGLAYER| 9) -#define PRIMITIVE3D_ID_SDRPOLYPOLYGONPRIMITIVE3D (PRIMITIVE3D_ID_RANGE_DRAWINGLAYER| 10) -#define PRIMITIVE3D_ID_SDRSPHEREPRIMITIVE3D (PRIMITIVE3D_ID_RANGE_DRAWINGLAYER| 11) -#define PRIMITIVE3D_ID_SHADOWPRIMITIVE3D (PRIMITIVE3D_ID_RANGE_DRAWINGLAYER| 12) -#define PRIMITIVE3D_ID_UNIFIEDTRANSPARENCETEXTUREPRIMITIVE3D (PRIMITIVE3D_ID_RANGE_DRAWINGLAYER| 13) -#define PRIMITIVE3D_ID_GRADIENTTEXTUREPRIMITIVE3D (PRIMITIVE3D_ID_RANGE_DRAWINGLAYER| 14) -#define PRIMITIVE3D_ID_BITMAPTEXTUREPRIMITIVE3D (PRIMITIVE3D_ID_RANGE_DRAWINGLAYER| 15) -#define PRIMITIVE3D_ID_TRANSPARENCETEXTUREPRIMITIVE3D (PRIMITIVE3D_ID_RANGE_DRAWINGLAYER| 16) -#define PRIMITIVE3D_ID_TRANSFORMPRIMITIVE3D (PRIMITIVE3D_ID_RANGE_DRAWINGLAYER| 17) -#define PRIMITIVE3D_ID_HIDDENGEOMETRYPRIMITIVE3D (PRIMITIVE3D_ID_RANGE_DRAWINGLAYER| 18) - -////////////////////////////////////////////////////////////////////////////// - -#endif //INCLUDED_DRAWINGLAYER_PRIMITIVE3D_PRIMITIVETYPES3D_HXX - -////////////////////////////////////////////////////////////////////////////// -// eof - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/drawinglayer/inc/drawinglayer/primitive3d/groupprimitive3d.hxx b/drawinglayer/inc/drawinglayer/primitive3d/groupprimitive3d.hxx deleted file mode 100644 index 106beb9f95..0000000000 --- a/drawinglayer/inc/drawinglayer/primitive3d/groupprimitive3d.hxx +++ /dev/null @@ -1,93 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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_DRAWINGLAYER_PRIMITIVE3D_GROUPPRIMITIVE3D_HXX -#define INCLUDED_DRAWINGLAYER_PRIMITIVE3D_GROUPPRIMITIVE3D_HXX - -#include <drawinglayer/drawinglayerdllapi.h> - -#include <drawinglayer/primitive3d/baseprimitive3d.hxx> - -////////////////////////////////////////////////////////////////////////////// - -namespace drawinglayer -{ - namespace primitive3d - { - /** GroupPrimitive3D class - - Baseclass for all grouping 3D primitives - - The description/functionality is identical with the 2D case in groupprimitive2d.hxx, - please see there for detailed information. - - Current Basic 3D StatePrimitives are: - - - ModifiedColorPrimitive3D (for a stack of color modifications) - - ShadowPrimitive3D (for 3D objects with shadow; this is a special case - since the shadow of a 3D primitive is a 2D primitive set) - - TexturePrimitive3D (with the following variations) - - GradientTexturePrimitive3D (for 3D gradient fill) - - BitmapTexturePrimitive3D (for 3D Bitmap fill) - - TransparenceTexturePrimitive3D (for 3D transparence) - - HatchTexturePrimitive3D (for 3D hatch fill) - - TransformPrimitive3D (for a transformation stack) - */ - class DRAWINGLAYER_DLLPUBLIC GroupPrimitive3D : public BasePrimitive3D - { - private: - /// the children. Declared private since this shall never be changed at all after construction - Primitive3DSequence maChildren; - - public: - /// constructor - GroupPrimitive3D(const Primitive3DSequence& rChildren); - - /// data read access - Primitive3DSequence getChildren() const { return maChildren; } - - /// compare operator - virtual bool operator==( const BasePrimitive3D& rPrimitive ) const; - - /// local decomposition. Implementation will just return children - virtual Primitive3DSequence get3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const; - - /// provide unique ID - DeclPrimitrive3DIDBlock() - }; - } // end of namespace primitive3d -} // end of namespace drawinglayer - -////////////////////////////////////////////////////////////////////////////// - -#endif //INCLUDED_DRAWINGLAYER_PRIMITIVE3D_GROUPPRIMITIVE3D_HXX - -////////////////////////////////////////////////////////////////////////////// -// eof - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/drawinglayer/inc/drawinglayer/primitive3d/hatchtextureprimitive3d.hxx b/drawinglayer/inc/drawinglayer/primitive3d/hatchtextureprimitive3d.hxx deleted file mode 100644 index 9a7a4f7edc..0000000000 --- a/drawinglayer/inc/drawinglayer/primitive3d/hatchtextureprimitive3d.hxx +++ /dev/null @@ -1,98 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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_DRAWINGLAYER_PRIMITIVE3D_HATCHTEXTUREPRIMITIVE3D_HXX -#define INCLUDED_DRAWINGLAYER_PRIMITIVE3D_HATCHTEXTUREPRIMITIVE3D_HXX - -#include <drawinglayer/drawinglayerdllapi.h> - -#include <drawinglayer/primitive3d/textureprimitive3d.hxx> -#include <drawinglayer/attribute/fillhatchattribute.hxx> - -////////////////////////////////////////////////////////////////////////////// - -namespace drawinglayer -{ - namespace primitive3d - { - /** HatchTexturePrimitive3D class - - HatchTexturePrimitive3D is derived from GroupPrimitive3D, but implements - a decomposition which is complicated enough for buffering. Since the group - primitive has no default buffering, it is necessary here to add a local - buffering mechanism for the decomposition - */ - class DRAWINGLAYER_DLLPUBLIC HatchTexturePrimitive3D : public TexturePrimitive3D - { - private: - /// the hatch definition - attribute::FillHatchAttribute maHatch; - - /// the buffered decomposed hatch - Primitive3DSequence maBuffered3DDecomposition; - - protected: - /// helper: local decomposition - Primitive3DSequence impCreate3DDecomposition() const; - - /// local access methods to maBufferedDecomposition - const Primitive3DSequence& getBuffered3DDecomposition() const { return maBuffered3DDecomposition; } - void setBuffered3DDecomposition(const Primitive3DSequence& rNew) { maBuffered3DDecomposition = rNew; } - - public: - /// constructor - HatchTexturePrimitive3D( - const attribute::FillHatchAttribute& rHatch, - const Primitive3DSequence& rChildren, - const basegfx::B2DVector& rTextureSize, - bool bModulate, - bool bFilter); - - /// data read access - const attribute::FillHatchAttribute& getHatch() const { return maHatch; } - - /// compare operator - virtual bool operator==(const BasePrimitive3D& rPrimitive) const; - - /// local decomposition. - virtual Primitive3DSequence get3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const; - - /// provide unique ID - DeclPrimitrive3DIDBlock() - }; - } // end of namespace primitive3d -} // end of namespace drawinglayer - -////////////////////////////////////////////////////////////////////////////// - -#endif //INCLUDED_DRAWINGLAYER_PRIMITIVE3D_HATCHTEXTUREPRIMITIVE3D_HXX - -////////////////////////////////////////////////////////////////////////////// -// eof - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/drawinglayer/inc/drawinglayer/primitive3d/hiddengeometryprimitive3d.hxx b/drawinglayer/inc/drawinglayer/primitive3d/hiddengeometryprimitive3d.hxx deleted file mode 100644 index 8be76b30d2..0000000000 --- a/drawinglayer/inc/drawinglayer/primitive3d/hiddengeometryprimitive3d.hxx +++ /dev/null @@ -1,80 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * OpenOffice.org - a multi-platform office productivity suite - * - * The Contents of this file are made available subject to - * the terms of GNU Lesser General Public License Version 2.1. - * - * - * GNU Lesser General Public License Version 2.1 - * ============================================= - * Copyright 2005 by Sun Microsystems, Inc. - * 901 San Antonio Road, Palo Alto, CA 94303, USA - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License version 2.1, as published by the Free Software Foundation. - * - * This library 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 for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - * - ************************************************************************/ - -#ifndef INCLUDED_DRAWINGLAYER_PRIMITIVE3D_HIDDENGEOMETRYPRIMITIVE3D_HXX -#define INCLUDED_DRAWINGLAYER_PRIMITIVE3D_HIDDENGEOMETRYPRIMITIVE3D_HXX - -#include <drawinglayer/drawinglayerdllapi.h> - -#include <drawinglayer/primitive3d/groupprimitive3d.hxx> - -////////////////////////////////////////////////////////////////////////////// - -namespace drawinglayer -{ - namespace primitive3d - { - // This primitive is used to represent geometry for non-visible objects, - // e.g. a 3D cube without fill attributes. To still be able to use - // primitives for HitTest functionality, the 3d decompositions produce - // an as much as possible simplified fill geometry encapsulated in this - // primtive when there is no fill geometry. Currently, the 3d hit test - // uses only areas, so maybe in a further enchanced version this will change - // to 'if neither filled nor lines' creation criteria. The whole primitive - // decomposes to nothing, so no one not knowing it will be influenced. Only - // helper processors for hit test (and maybe BoundRect extractors) will - // use it and it's children subcontent. - class DRAWINGLAYER_DLLPUBLIC HiddenGeometryPrimitive3D : public GroupPrimitive3D - { - public: - HiddenGeometryPrimitive3D(const Primitive3DSequence& rChildren); - - // despite returning an empty decomposition since it's no visualisation data, - // range calculation is intended to use hidden geometry, so - // the local implementation will return the children's range - virtual basegfx::B3DRange getB3DRange(const geometry::ViewInformation3D& rViewInformation) const; - - /// The default implementation returns an empty sequence - virtual Primitive3DSequence get3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const; - - // provide unique ID - DeclPrimitrive3DIDBlock() - }; - } // end of namespace primitive3d -} // end of namespace drawinglayer - -////////////////////////////////////////////////////////////////////////////// - -#endif //INCLUDED_DRAWINGLAYER_PRIMITIVE3D_HIDDENGEOMETRYPRIMITIVE3D_HXX - -////////////////////////////////////////////////////////////////////////////// -// eof - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/drawinglayer/inc/drawinglayer/primitive3d/modifiedcolorprimitive3d.hxx b/drawinglayer/inc/drawinglayer/primitive3d/modifiedcolorprimitive3d.hxx deleted file mode 100644 index d128be0f7d..0000000000 --- a/drawinglayer/inc/drawinglayer/primitive3d/modifiedcolorprimitive3d.hxx +++ /dev/null @@ -1,81 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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_DRAWINGLAYER_PRIMITIVE3D_MODIFIEDCOLORPRIMITIVE3D_HXX -#define INCLUDED_DRAWINGLAYER_PRIMITIVE3D_MODIFIEDCOLORPRIMITIVE3D_HXX - -#include <drawinglayer/drawinglayerdllapi.h> - -#include <drawinglayer/primitive3d/groupprimitive3d.hxx> -#include <basegfx/color/bcolormodifier.hxx> - -////////////////////////////////////////////////////////////////////////////// - -namespace drawinglayer -{ - namespace primitive3d - { - /** ModifiedColorPrimitive3D class - - This primitive is a grouping primitive and allows to define - how the colors of it's child content shall be modified for - visualisation. Please see the ModifiedColorPrimitive2D - description for more info. - */ - class DRAWINGLAYER_DLLPUBLIC ModifiedColorPrimitive3D : public GroupPrimitive3D - { - private: - /// The ColorModifier to use - basegfx::BColorModifier maColorModifier; - - public: - /// constructor - ModifiedColorPrimitive3D( - const Primitive3DSequence& rChildren, - const basegfx::BColorModifier& rColorModifier); - - /// data read access - const basegfx::BColorModifier& getColorModifier() const { return maColorModifier; } - - /// compare operator - virtual bool operator==(const BasePrimitive3D& rPrimitive) const; - - /// provide unique ID - DeclPrimitrive3DIDBlock() - }; - } // end of namespace primitive3d -} // end of namespace drawinglayer - -////////////////////////////////////////////////////////////////////////////// - -#endif //INCLUDED_DRAWINGLAYER_PRIMITIVE3D_MODIFIEDCOLORPRIMITIVE3D_HXX - -////////////////////////////////////////////////////////////////////////////// -// eof - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/drawinglayer/inc/drawinglayer/primitive3d/polygonprimitive3d.hxx b/drawinglayer/inc/drawinglayer/primitive3d/polygonprimitive3d.hxx deleted file mode 100644 index 69b5755b17..0000000000 --- a/drawinglayer/inc/drawinglayer/primitive3d/polygonprimitive3d.hxx +++ /dev/null @@ -1,146 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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_DRAWINGLAYER_PRIMITIVE3D_POLYGONPRIMITIVE3D_HXX -#define INCLUDED_DRAWINGLAYER_PRIMITIVE3D_POLYGONPRIMITIVE3D_HXX - -#include <drawinglayer/drawinglayerdllapi.h> - -#include <drawinglayer/primitive3d/baseprimitive3d.hxx> -#include <basegfx/color/bcolor.hxx> -#include <basegfx/polygon/b3dpolygon.hxx> -#include <drawinglayer/attribute/lineattribute.hxx> -#include <drawinglayer/attribute/strokeattribute.hxx> - -////////////////////////////////////////////////////////////////////////////// - -namespace drawinglayer -{ - namespace primitive3d - { - /** PolygonHairlinePrimitive3D class - - This primitive defines a Hairline in 3D. Since hairlines are view-dependent, - this primitive is view-dependent, too. - - This is one of the non-decomposable 3D primitives, so a renderer - should proccess it. - */ - class DRAWINGLAYER_DLLPUBLIC PolygonHairlinePrimitive3D : public BasePrimitive3D - { - private: - /// the hairline geometry - basegfx::B3DPolygon maPolygon; - - /// the hairline color - basegfx::BColor maBColor; - - public: - /// constructor - PolygonHairlinePrimitive3D( - const basegfx::B3DPolygon& rPolygon, - const basegfx::BColor& rBColor); - - /// data read access - const basegfx::B3DPolygon& getB3DPolygon() const { return maPolygon; } - const basegfx::BColor& getBColor() const { return maBColor; } - - /// compare operator - virtual bool operator==(const BasePrimitive3D& rPrimitive) const; - - /// get range - virtual basegfx::B3DRange getB3DRange(const geometry::ViewInformation3D& rViewInformation) const; - - /// provide unique ID - DeclPrimitrive3DIDBlock() - }; - } // end of namespace primitive3d -} // end of namespace drawinglayer - -////////////////////////////////////////////////////////////////////////////// - -namespace drawinglayer -{ - namespace primitive3d - { - /** PolygonStrokePrimitive3D class - - This primitive defines a 3D line with line width, line join, line color - and stroke attributes. It will be decomposed dependent on the definition - to the needed primitives, e.g. filled Tubes for fat lines. - */ - class DRAWINGLAYER_DLLPUBLIC PolygonStrokePrimitive3D : public BufferedDecompositionPrimitive3D - { - private: - /// the line geometry - basegfx::B3DPolygon maPolygon; - - /// the line attributes like width, join and color - attribute::LineAttribute maLineAttribute; - - /// the line stroking (if used) - attribute::StrokeAttribute maStrokeAttribute; - - protected: - /// local decomposition. - virtual Primitive3DSequence create3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const; - - public: - /// constructor - PolygonStrokePrimitive3D( - const basegfx::B3DPolygon& rPolygon, - const attribute::LineAttribute& rLineAttribute, - const attribute::StrokeAttribute& rStrokeAttribute); - - /// constructor without stroking - PolygonStrokePrimitive3D( - const basegfx::B3DPolygon& rPolygon, - const attribute::LineAttribute& rLineAttribute); - - /// data read access - basegfx::B3DPolygon getB3DPolygon() const { return maPolygon; } - const attribute::LineAttribute& getLineAttribute() const { return maLineAttribute; } - const attribute::StrokeAttribute& getStrokeAttribute() const { return maStrokeAttribute; } - - /// compare operator - virtual bool operator==(const BasePrimitive3D& rPrimitive) const; - - /// provide unique ID - DeclPrimitrive3DIDBlock() - }; - } // end of namespace primitive3d -} // end of namespace drawinglayer - -////////////////////////////////////////////////////////////////////////////// - -#endif //INCLUDED_DRAWINGLAYER_PRIMITIVE3D_POLYGONPRIMITIVE3D_HXX - -////////////////////////////////////////////////////////////////////////////// -// eof - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/drawinglayer/inc/drawinglayer/primitive3d/polygontubeprimitive3d.hxx b/drawinglayer/inc/drawinglayer/primitive3d/polygontubeprimitive3d.hxx deleted file mode 100644 index 0d57f52c0f..0000000000 --- a/drawinglayer/inc/drawinglayer/primitive3d/polygontubeprimitive3d.hxx +++ /dev/null @@ -1,116 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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_DRAWINGLAYER_PRIMITIVE3D_POLYGONTUBEPRIMITIVE3D_HXX -#define INCLUDED_DRAWINGLAYER_PRIMITIVE3D_POLYGONTUBEPRIMITIVE3D_HXX - -#include <drawinglayer/drawinglayerdllapi.h> - -#include <drawinglayer/primitive3d/polygonprimitive3d.hxx> - -////////////////////////////////////////////////////////////////////////////// -// predefines - -namespace basegfx { - class B3DPolyPolygon; - class B3DHomMatrix; -} - -////////////////////////////////////////////////////////////////////////////// - -namespace drawinglayer -{ - namespace primitive3d - { - /** PolygonStrokePrimitive3D class - - This 3D primitive extends a 3D hairline to a 3D tube which is - e.g. used for fat lines in 3D. It's decomposition will create all - 3D objects needed for the line tubes and the edge roundings - in full 3D. - */ - class DRAWINGLAYER_DLLPUBLIC PolygonTubePrimitive3D : public PolygonHairlinePrimitive3D - { - private: - /// hold the last decompositon since it's expensive - Primitive3DSequence maLast3DDecomposition; - - /// visualisation parameters - double mfRadius; - double mfDegreeStepWidth; - double mfMiterMinimumAngle; - basegfx::B2DLineJoin maLineJoin; - - protected: - /** access methods to maLast3DDecomposition. The usage of this methods may allow - later thread-safe stuff to be added if needed. Only to be used by getDecomposition() - implementations for buffering the last decomposition. - */ - const Primitive3DSequence& getLast3DDecomposition() const { return maLast3DDecomposition; } - void setLast3DDecomposition(const Primitive3DSequence& rNew) { maLast3DDecomposition = rNew; } - - /// local decomposition. - Primitive3DSequence impCreate3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const; - - public: - /// constructor - PolygonTubePrimitive3D( - const basegfx::B3DPolygon& rPolygon, - const basegfx::BColor& rBColor, - double fRadius, basegfx::B2DLineJoin aLineJoin, - double fDegreeStepWidth = 10.0 * F_PI180, - double fMiterMinimumAngle = 15.0 * F_PI180); - - /// data read access - double getRadius() const { return mfRadius; } - double getDegreeStepWidth() const { return mfDegreeStepWidth; } - double getMiterMinimumAngle() const { return mfMiterMinimumAngle; } - basegfx::B2DLineJoin getLineJoin() const { return maLineJoin; } - - /// compare operator - virtual bool operator==(const BasePrimitive3D& rPrimitive) const; - - /** local decomposition. Use own buffering since we are not derived from - BufferedDecompositionPrimitive3D - */ - virtual Primitive3DSequence get3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const; - - /// provide unique ID - DeclPrimitrive3DIDBlock() - }; - } // end of namespace primitive3d -} // end of namespace drawinglayer - -////////////////////////////////////////////////////////////////////////////// - -#endif //INCLUDED_DRAWINGLAYER_PRIMITIVE3D_POLYGONTUBEPRIMITIVE3D_HXX - -////////////////////////////////////////////////////////////////////////////// -// eof - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/drawinglayer/inc/drawinglayer/primitive3d/polypolygonprimitive3d.hxx b/drawinglayer/inc/drawinglayer/primitive3d/polypolygonprimitive3d.hxx deleted file mode 100644 index 557a7ec44a..0000000000 --- a/drawinglayer/inc/drawinglayer/primitive3d/polypolygonprimitive3d.hxx +++ /dev/null @@ -1,95 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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_DRAWINGLAYER_PRIMITIVE3D_POLYPOLYGONPRIMITIVE3D_HXX -#define INCLUDED_DRAWINGLAYER_PRIMITIVE3D_POLYPOLYGONPRIMITIVE3D_HXX - -#include <drawinglayer/drawinglayerdllapi.h> - -#include <drawinglayer/primitive3d/baseprimitive3d.hxx> -#include <basegfx/polygon/b3dpolypolygon.hxx> -#include <drawinglayer/attribute/materialattribute3d.hxx> - -////////////////////////////////////////////////////////////////////////////// - -namespace drawinglayer -{ - namespace primitive3d - { - /** PolyPolygonMaterialPrimitive3D class - - This primitive defines a planar 3D PolyPolygon filled with a single color. - This is one of the non-decomposable primitives, so a renderer - should proccess it. - - It is assumed here that the PolyPolgon is a single plane in 3D. - */ - class DRAWINGLAYER_DLLPUBLIC PolyPolygonMaterialPrimitive3D : public BasePrimitive3D - { - private: - /// the PolyPolygon geometry - basegfx::B3DPolyPolygon maPolyPolygon; - - /// the fill parameters - attribute::MaterialAttribute3D maMaterial; - - /// bitfield - unsigned mbDoubleSided : 1; - - public: - /// constructor - PolyPolygonMaterialPrimitive3D( - const basegfx::B3DPolyPolygon& rPolyPolygon, - const attribute::MaterialAttribute3D& rMaterial, - bool bDoubleSided); - - /// data read access - const basegfx::B3DPolyPolygon& getB3DPolyPolygon() const { return maPolyPolygon; } - const attribute::MaterialAttribute3D& getMaterial() const { return maMaterial; } - bool getDoubleSided() const { return mbDoubleSided; } - - /// compare operator - virtual bool operator==(const BasePrimitive3D& rPrimitive) const; - - /// get range - virtual basegfx::B3DRange getB3DRange(const geometry::ViewInformation3D& rViewInformation) const; - - /// provide unique ID - DeclPrimitrive3DIDBlock() - }; - } // end of namespace primitive3d -} // end of namespace drawinglayer - -////////////////////////////////////////////////////////////////////////////// - -#endif //INCLUDED_DRAWINGLAYER_PRIMITIVE3D_POLYPOLYGONPRIMITIVE3D_HXX - -////////////////////////////////////////////////////////////////////////////// -// eof - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/drawinglayer/inc/drawinglayer/primitive3d/sdrcubeprimitive3d.hxx b/drawinglayer/inc/drawinglayer/primitive3d/sdrcubeprimitive3d.hxx deleted file mode 100644 index 8ceed88890..0000000000 --- a/drawinglayer/inc/drawinglayer/primitive3d/sdrcubeprimitive3d.hxx +++ /dev/null @@ -1,81 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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_DRAWINGLAYER_PRIMITIVE3D_SDRCUBEPRIMITIVE3D_HXX -#define INCLUDED_DRAWINGLAYER_PRIMITIVE3D_SDRCUBEPRIMITIVE3D_HXX - -#include <drawinglayer/drawinglayerdllapi.h> - -#include <drawinglayer/primitive3d/sdrprimitive3d.hxx> - -////////////////////////////////////////////////////////////////////////////// - -namespace drawinglayer -{ - namespace primitive3d - { - /** SdrCubePrimitive3D class - - This 3D primitive expands the SdrPrimitive3D to a 3D cube definition. - The cube is implicitely in unit coordinates and the given transformation - defines it's geometry in space. - */ - class DRAWINGLAYER_DLLPUBLIC SdrCubePrimitive3D : public SdrPrimitive3D - { - protected: - /// local decomposition. - virtual Primitive3DSequence create3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const; - - public: - /// constructor - SdrCubePrimitive3D( - const basegfx::B3DHomMatrix& rTransform, - const basegfx::B2DVector& rTextureSize, - const attribute::SdrLineFillShadowAttribute3D& rSdrLFSAttribute, - const attribute::Sdr3DObjectAttribute& rSdr3DObjectAttribute); - - /// compare operator - virtual bool operator==(const BasePrimitive3D& rPrimitive) const; - - /// get range - virtual basegfx::B3DRange getB3DRange(const geometry::ViewInformation3D& rViewInformation) const; - - /// provide unique ID - DeclPrimitrive3DIDBlock() - }; - } // end of namespace primitive3d -} // end of namespace drawinglayer - -////////////////////////////////////////////////////////////////////////////// - -#endif //INCLUDED_DRAWINGLAYER_PRIMITIVE3D_SDRCUBEPRIMITIVE3D_HXX - -////////////////////////////////////////////////////////////////////////////// -// eof - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/drawinglayer/inc/drawinglayer/primitive3d/sdrdecompositiontools3d.hxx b/drawinglayer/inc/drawinglayer/primitive3d/sdrdecompositiontools3d.hxx deleted file mode 100644 index 4dae581c84..0000000000 --- a/drawinglayer/inc/drawinglayer/primitive3d/sdrdecompositiontools3d.hxx +++ /dev/null @@ -1,109 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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_DRAWINGLAYER_PRIMITIVE3D_SDRDECOMPOSITIONTOOLS3D_HXX -#define INCLUDED_DRAWINGLAYER_PRIMITIVE3D_SDRDECOMPOSITIONTOOLS3D_HXX - -#include <drawinglayer/drawinglayerdllapi.h> - -#include <drawinglayer/primitive3d/baseprimitive3d.hxx> -#include <com/sun/star/drawing/TextureProjectionMode.hpp> -#include <vector> - -////////////////////////////////////////////////////////////////////////////// -// predefines - -namespace basegfx { - class B3DPolygon; - class B3DPolyPolygon; - class B3DHomMatrix; - class B2DVector; -} - -namespace drawinglayer { namespace attribute { - class SdrLineAttribute; - class SdrFillAttribute; - class Sdr3DObjectAttribute; - class FillGradientAttribute; - class SdrShadowAttribute; -}} - -////////////////////////////////////////////////////////////////////////////// - -namespace drawinglayer -{ - namespace primitive3d - { - // #i98295# - basegfx::B3DRange DRAWINGLAYER_DLLPUBLIC getRangeFrom3DGeometry(::std::vector< basegfx::B3DPolyPolygon >& rFill); - void DRAWINGLAYER_DLLPUBLIC applyNormalsKindSphereTo3DGeometry(::std::vector< basegfx::B3DPolyPolygon >& rFill, const basegfx::B3DRange& rRange); - void DRAWINGLAYER_DLLPUBLIC applyNormalsKindFlatTo3DGeometry(::std::vector< basegfx::B3DPolyPolygon >& rFill); - void DRAWINGLAYER_DLLPUBLIC applyNormalsInvertTo3DGeometry(::std::vector< basegfx::B3DPolyPolygon >& rFill); - - // #i98314# - void DRAWINGLAYER_DLLPUBLIC applyTextureTo3DGeometry( - ::com::sun::star::drawing::TextureProjectionMode eModeX, - ::com::sun::star::drawing::TextureProjectionMode eModeY, - ::std::vector< basegfx::B3DPolyPolygon >& rFill, - const basegfx::B3DRange& rRange, - const basegfx::B2DVector& rTextureSize); - - Primitive3DSequence DRAWINGLAYER_DLLPUBLIC create3DPolyPolygonLinePrimitives( - const basegfx::B3DPolyPolygon& rUnitPolyPolygon, - const basegfx::B3DHomMatrix& rObjectTransform, - const attribute::SdrLineAttribute& rLine); - - Primitive3DSequence DRAWINGLAYER_DLLPUBLIC create3DPolyPolygonFillPrimitives( - const ::std::vector< basegfx::B3DPolyPolygon >& r3DPolyPolygonVector, - const basegfx::B3DHomMatrix& rObjectTransform, - const basegfx::B2DVector& rTextureSize, - const attribute::Sdr3DObjectAttribute& aSdr3DObjectAttribute, - const attribute::SdrFillAttribute& rFill, - const attribute::FillGradientAttribute& rFillGradient); - - Primitive3DSequence DRAWINGLAYER_DLLPUBLIC createShadowPrimitive3D( - const Primitive3DSequence& rSource, - const attribute::SdrShadowAttribute& rShadow, - bool bShadow3D); - - Primitive3DSequence DRAWINGLAYER_DLLPUBLIC createHiddenGeometryPrimitives3D( - const ::std::vector< basegfx::B3DPolyPolygon >& r3DPolyPolygonVector, - const basegfx::B3DHomMatrix& rObjectTransform, - const basegfx::B2DVector& rTextureSize, - const attribute::Sdr3DObjectAttribute& aSdr3DObjectAttribute); - - } // end of namespace primitive3d -} // end of namespace drawinglayer - -////////////////////////////////////////////////////////////////////////////// - -#endif //_DRAWINGLAYER_PRIMITIVE3D_SDRDECOMPOSITIONTOOLS3D_HXX - -// eof - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/drawinglayer/inc/drawinglayer/primitive3d/sdrextrudelathetools3d.hxx b/drawinglayer/inc/drawinglayer/primitive3d/sdrextrudelathetools3d.hxx deleted file mode 100644 index 1bfe7a1e00..0000000000 --- a/drawinglayer/inc/drawinglayer/primitive3d/sdrextrudelathetools3d.hxx +++ /dev/null @@ -1,148 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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_DRAWINGLAYER_PRIMITIVE3D_SDREXTRUDELATHETOOLS3D_HXX -#define INCLUDED_DRAWINGLAYER_PRIMITIVE3D_SDREXTRUDELATHETOOLS3D_HXX - -#include <drawinglayer/drawinglayerdllapi.h> - -#include <basegfx/polygon/b3dpolypolygon.hxx> -#include <basegfx/polygon/b2dpolypolygontools.hxx> -#include <vector> - -////////////////////////////////////////////////////////////////////////////// -// predefines - -namespace drawinglayer { namespace geometry { - class ViewInformation3D; -}} - -////////////////////////////////////////////////////////////////////////////// - -namespace drawinglayer -{ - namespace primitive3d - { - /** SliceType3D definition */ - enum SliceType3D - { - SLICETYPE3D_REGULAR, // normal geoemtry Slice3D - SLICETYPE3D_FRONTCAP, // front cap - SLICETYPE3D_BACKCAP // back cap - }; - - /// class to hold one Slice3D - class DRAWINGLAYER_DLLPUBLIC Slice3D - { - protected: - basegfx::B3DPolyPolygon maPolyPolygon; - SliceType3D maSliceType; - - public: - Slice3D( - const basegfx::B2DPolyPolygon& rPolyPolygon, - const basegfx::B3DHomMatrix& aTransform, - SliceType3D aSliceType = SLICETYPE3D_REGULAR) - : maPolyPolygon(basegfx::tools::createB3DPolyPolygonFromB2DPolyPolygon(rPolyPolygon)), - maSliceType(aSliceType) - { - maPolyPolygon.transform(aTransform); - } - - Slice3D( - const basegfx::B3DPolyPolygon& rPolyPolygon, - SliceType3D aSliceType = SLICETYPE3D_REGULAR) - : maPolyPolygon(rPolyPolygon), - maSliceType(aSliceType) - { - } - - // data access - const basegfx::B3DPolyPolygon& getB3DPolyPolygon() const { return maPolyPolygon; } - SliceType3D getSliceType() const { return maSliceType; } - }; - - /// typedef for a group of Slice3Ds - typedef ::std::vector< Slice3D > Slice3DVector; - - /// helpers for creation - void DRAWINGLAYER_DLLPUBLIC createLatheSlices( - Slice3DVector& rSliceVector, - const basegfx::B2DPolyPolygon& rSource, - double fBackScale, - double fDiagonal, - double fRotation, - sal_uInt32 nSteps, - bool bCharacterMode, - bool bCloseFront, - bool bCloseBack); - - void DRAWINGLAYER_DLLPUBLIC createExtrudeSlices( - Slice3DVector& rSliceVector, - const basegfx::B2DPolyPolygon& rSource, - double fBackScale, - double fDiagonal, - double fDepth, - bool bCharacterMode, - bool bCloseFront, - bool bCloseBack); - - /// helpers for geometry extraction - basegfx::B3DPolyPolygon DRAWINGLAYER_DLLPUBLIC extractHorizontalLinesFromSlice(const Slice3DVector& rSliceVector, bool bCloseHorLines); - basegfx::B3DPolyPolygon DRAWINGLAYER_DLLPUBLIC extractVerticalLinesFromSlice(const Slice3DVector& rSliceVector); - - void DRAWINGLAYER_DLLPUBLIC extractPlanesFromSlice( - ::std::vector< basegfx::B3DPolyPolygon >& rFill, - const Slice3DVector& rSliceVector, - bool bCreateNormals, - bool bSmoothHorizontalNormals, - bool bSmoothNormals, - bool bSmoothLids, - bool bClosed, - double fSmoothNormalsMix, - double fSmoothLidsMix, - bool bCreateTextureCoordinates, - const basegfx::B2DHomMatrix& rTexTransform); - - void DRAWINGLAYER_DLLPUBLIC createReducedOutlines( - const geometry::ViewInformation3D& rViewInformation, - const basegfx::B3DHomMatrix& rObjectTransform, - const basegfx::B3DPolygon& rLoopA, - const basegfx::B3DPolygon& rLoopB, - basegfx::B3DPolyPolygon& rTarget); - - } // end of namespace overlay -} // end of namespace drawinglayer - -////////////////////////////////////////////////////////////////////////////// - -#endif //_DRAWINGLAYER_PRIMITIVE3D_SDREXTRUDELATHETOOLS3D_HXX - -// eof - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/drawinglayer/inc/drawinglayer/primitive3d/sdrextrudeprimitive3d.hxx b/drawinglayer/inc/drawinglayer/primitive3d/sdrextrudeprimitive3d.hxx deleted file mode 100644 index 383810128b..0000000000 --- a/drawinglayer/inc/drawinglayer/primitive3d/sdrextrudeprimitive3d.hxx +++ /dev/null @@ -1,141 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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_DRAWINGLAYER_PRIMITIVE3D_SDREXTRUDEPRIMITIVE3D_HXX -#define INCLUDED_DRAWINGLAYER_PRIMITIVE3D_SDREXTRUDEPRIMITIVE3D_HXX - -#include <drawinglayer/drawinglayerdllapi.h> - -#include <drawinglayer/primitive3d/sdrprimitive3d.hxx> -#include <basegfx/polygon/b2dpolypolygon.hxx> - -////////////////////////////////////////////////////////////////////////////// - -namespace drawinglayer -{ - namespace primitive3d - { - /** SdrExtrudePrimitive3D class - - This 3D primitive expands the SdrPrimitive3D to a 3D extrude definition. - The given 2D PolyPolygon geometry is imagined as lying on the XY-plane in 3D - and gets extruded in Z-Direction by Depth. - - Various possibilities e.g. for creating diagonals (edge roudings in 3D) - and similar are given. - - The decomposition will create all necessary 3D planes for visualisation. - */ - class DRAWINGLAYER_DLLPUBLIC SdrExtrudePrimitive3D : public SdrPrimitive3D - { - private: - /// geometry helper for slices - basegfx::B2DPolyPolygon maCorrectedPolyPolygon; - Slice3DVector maSlices; - - /// primitive geometry data - basegfx::B2DPolyPolygon maPolyPolygon; - double mfDepth; - double mfDiagonal; - double mfBackScale; - - /// decomposition data when ReducedLineGeometry is used, see get3DDecomposition - geometry::ViewInformation3D* mpLastRLGViewInformation; - - /// bitfield - unsigned mbSmoothNormals : 1; // Plane self - unsigned mbSmoothHorizontalNormals : 1; // always - unsigned mbSmoothLids : 1; // Front/back - unsigned mbCharacterMode : 1; - unsigned mbCloseFront : 1; - unsigned mbCloseBack : 1; - - /// create slices - void impCreateSlices(); - - /// get (evtl. create) slices - const Slice3DVector& getSlices() const; - - protected: - /// local decomposition. - virtual Primitive3DSequence create3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const; - - public: - /// constructor - SdrExtrudePrimitive3D( - const basegfx::B3DHomMatrix& rTransform, - const basegfx::B2DVector& rTextureSize, - const attribute::SdrLineFillShadowAttribute3D& rSdrLFSAttribute, - const attribute::Sdr3DObjectAttribute& rSdr3DObjectAttribute, - const basegfx::B2DPolyPolygon& rPolyPolygon, - double fDepth, - double fDiagonal, - double fBackScale, - bool bSmoothNormals, - bool bSmoothHorizontalNormals, - bool bSmoothLids, - bool bCharacterMode, - bool bCloseFront, - bool bCloseBack); - virtual ~SdrExtrudePrimitive3D(); - - /// data read access - const basegfx::B2DPolyPolygon& getPolyPolygon() const { return maPolyPolygon; } - double getDepth() const { return mfDepth; } - double getDiagonal() const { return mfDiagonal; } - double getBackScale() const { return mfBackScale; } - bool getSmoothNormals() const { return mbSmoothNormals; } - bool getSmoothHorizontalNormals() const { return mbSmoothHorizontalNormals; } - bool getSmoothLids() const { return mbSmoothLids; } - bool getCharacterMode() const { return mbCharacterMode; } - bool getCloseFront() const { return mbCloseFront; } - bool getCloseBack() const { return mbCloseBack; } - - /// compare operator - virtual bool operator==(const BasePrimitive3D& rPrimitive) const; - - /// get range - virtual basegfx::B3DRange getB3DRange(const geometry::ViewInformation3D& rViewInformation) const; - - /// Overloaded to allow for reduced line mode to decide if to buffer decomposition or not - virtual Primitive3DSequence get3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const; - - /// provide unique ID - DeclPrimitrive3DIDBlock() - }; - } // end of namespace primitive3d -} // end of namespace drawinglayer - -////////////////////////////////////////////////////////////////////////////// - -#endif //INCLUDED_DRAWINGLAYER_PRIMITIVE3D_SDREXTRUDEPRIMITIVE3D_HXX - -////////////////////////////////////////////////////////////////////////////// -// eof - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/drawinglayer/inc/drawinglayer/primitive3d/sdrlatheprimitive3d.hxx b/drawinglayer/inc/drawinglayer/primitive3d/sdrlatheprimitive3d.hxx deleted file mode 100644 index fd901aba89..0000000000 --- a/drawinglayer/inc/drawinglayer/primitive3d/sdrlatheprimitive3d.hxx +++ /dev/null @@ -1,159 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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_DRAWINGLAYER_PRIMITIVE3D_SDRLATHEPRIMITIVE3D_HXX -#define INCLUDED_DRAWINGLAYER_PRIMITIVE3D_SDRLATHEPRIMITIVE3D_HXX - -#include <drawinglayer/drawinglayerdllapi.h> - -#include <drawinglayer/primitive3d/sdrprimitive3d.hxx> -#include <basegfx/polygon/b2dpolypolygon.hxx> - -////////////////////////////////////////////////////////////////////////////// - -namespace drawinglayer -{ - namespace primitive3d - { - /** SdrLathePrimitive3D class - - This 3D primitive expands the SdrPrimitive3D to a 3D rotation definition. - The given 2D PolyPolygon geometry is imagined as lying on the XY-plane in 3D - and gets rotated around the Y-Axis. - - Various possibilities e.g. for creating diagonals (edge roudings in 3D) - and similar are given. - - The decomposition will create all necessary 3D planes for visualisation. - */ - class DRAWINGLAYER_DLLPUBLIC SdrLathePrimitive3D : public SdrPrimitive3D - { - private: - /// geometry helper for slices - basegfx::B2DPolyPolygon maCorrectedPolyPolygon; - Slice3DVector maSlices; - - /// primitive geometry data - basegfx::B2DPolyPolygon maPolyPolygon; - sal_uInt32 mnHorizontalSegments; - sal_uInt32 mnVerticalSegments; - double mfDiagonal; - double mfBackScale; - double mfRotation; - - /// decomposition data when ReducedLineGeometry is used, see get3DDecomposition - geometry::ViewInformation3D* mpLastRLGViewInformation; - - /// bitfield - unsigned mbSmoothNormals : 1; // Plane self - unsigned mbSmoothHorizontalNormals : 1; // always - unsigned mbSmoothLids : 1; // Front/back - unsigned mbCharacterMode : 1; - unsigned mbCloseFront : 1; - unsigned mbCloseBack : 1; - - /// create slices - void impCreateSlices(); - - /// get (evtl. create) slices - const Slice3DVector& getSlices() const; - - protected: - /// local helpers - void impCreateOutlines( - const geometry::ViewInformation3D& rViewInformation, - const basegfx::B3DPolygon& rLoopA, - const basegfx::B3DPolygon& rLoopB, - basegfx::B3DPolyPolygon& rTarget) const; - - bool impHasCutWith( - const basegfx::B2DPolygon& rPoly, - const basegfx::B2DPoint& rStart, - const basegfx::B2DPoint& rEnd) const; - - /// local decomposition. - virtual Primitive3DSequence create3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const; - - public: - /// constructor - SdrLathePrimitive3D( - const basegfx::B3DHomMatrix& rTransform, - const basegfx::B2DVector& rTextureSize, - const attribute::SdrLineFillShadowAttribute3D& rSdrLFSAttribute, - const attribute::Sdr3DObjectAttribute& rSdr3DObjectAttribute, - const basegfx::B2DPolyPolygon& rPolyPolygon, - sal_uInt32 nHorizontalSegments, - sal_uInt32 nVerticalSegments, - double fDiagonal, - double fBackScale, - double fRotation, - bool bSmoothNormals, - bool bSmoothHorizontalNormals, - bool bSmoothLids, - bool bCharacterMode, - bool bCloseFront, - bool bCloseBack); - virtual ~SdrLathePrimitive3D(); - - /// data read access - const basegfx::B2DPolyPolygon& getPolyPolygon() const { return maPolyPolygon; } - sal_uInt32 getHorizontalSegments() const { return mnHorizontalSegments; } - sal_uInt32 getVerticalSegments() const { return mnVerticalSegments; } - double getDiagonal() const { return mfDiagonal; } - double getBackScale() const { return mfBackScale; } - double getRotation() const { return mfRotation; } - bool getSmoothNormals() const { return mbSmoothNormals; } - bool getSmoothHorizontalNormals() const { return mbSmoothHorizontalNormals; } - bool getSmoothLids() const { return mbSmoothLids; } - bool getCharacterMode() const { return mbCharacterMode; } - bool getCloseFront() const { return mbCloseFront; } - bool getCloseBack() const { return mbCloseBack; } - - /// compare operator - virtual bool operator==(const BasePrimitive3D& rPrimitive) const; - - /// get range - virtual basegfx::B3DRange getB3DRange(const geometry::ViewInformation3D& rViewInformation) const; - - /// Overloaded to allow for reduced line mode to decide if to buffer decomposition or not - virtual Primitive3DSequence get3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const; - - /// provide unique ID - DeclPrimitrive3DIDBlock() - }; - } // end of namespace primitive3d -} // end of namespace drawinglayer - -////////////////////////////////////////////////////////////////////////////// - -#endif //INCLUDED_DRAWINGLAYER_PRIMITIVE3D_SDRLATHEPRIMITIVE3D_HXX - -////////////////////////////////////////////////////////////////////////////// -// eof - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/drawinglayer/inc/drawinglayer/primitive3d/sdrpolypolygonprimitive3d.hxx b/drawinglayer/inc/drawinglayer/primitive3d/sdrpolypolygonprimitive3d.hxx deleted file mode 100644 index 019279ac44..0000000000 --- a/drawinglayer/inc/drawinglayer/primitive3d/sdrpolypolygonprimitive3d.hxx +++ /dev/null @@ -1,93 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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_DRAWINGLAYER_PRIMITIVE3D_SDRPOLYPOLYGONPRIMITIVE3D_HXX -#define INCLUDED_DRAWINGLAYER_PRIMITIVE3D_SDRPOLYPOLYGONPRIMITIVE3D_HXX - -#include <drawinglayer/drawinglayerdllapi.h> - -#include <drawinglayer/primitive3d/sdrprimitive3d.hxx> - -////////////////////////////////////////////////////////////////////////////// - -namespace drawinglayer -{ - namespace primitive3d - { - /** SdrPolyPolygonPrimitive3D class - - This 3D primitive defines a PolyPolgon in space which may have - Line- and FillStyles and extra 3D surface attributes. It is assumed - that the given 3D PolyPolgon (which may contain texture and normal - information) is planar in 3D. - - The decomposition will include all needed 3D data for visualisation, - including FatLines and fill styles. - */ - class DRAWINGLAYER_DLLPUBLIC SdrPolyPolygonPrimitive3D : public SdrPrimitive3D - { - private: - /// the planar polyPolygon evtl with normals and texture coordinates - basegfx::B3DPolyPolygon maPolyPolygon3D; - - protected: - /// local decomposition. - virtual Primitive3DSequence create3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const; - - public: - /// constructor - SdrPolyPolygonPrimitive3D( - const basegfx::B3DPolyPolygon& rPolyPolygon3D, - const basegfx::B3DHomMatrix& rTransform, - const basegfx::B2DVector& rTextureSize, - const attribute::SdrLineFillShadowAttribute3D& rSdrLFSAttribute, - const attribute::Sdr3DObjectAttribute& rSdr3DObjectAttribute); - - /// data access - const basegfx::B3DPolyPolygon& getPolyPolygon3D() const { return maPolyPolygon3D; } - - /// compare operator - virtual bool operator==(const BasePrimitive3D& rPrimitive) const; - - /// get range - virtual basegfx::B3DRange getB3DRange(const geometry::ViewInformation3D& rViewInformation) const; - - /// provide unique ID - DeclPrimitrive3DIDBlock() - }; - } // end of namespace primitive3d -} // end of namespace drawinglayer - -////////////////////////////////////////////////////////////////////////////// - -#endif //INCLUDED_DRAWINGLAYER_PRIMITIVE3D_SDRPOLYPOLYGONPRIMITIVE3D_HXX - -////////////////////////////////////////////////////////////////////////////// -// eof - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/drawinglayer/inc/drawinglayer/primitive3d/sdrprimitive3d.hxx b/drawinglayer/inc/drawinglayer/primitive3d/sdrprimitive3d.hxx deleted file mode 100644 index 6ce6107948..0000000000 --- a/drawinglayer/inc/drawinglayer/primitive3d/sdrprimitive3d.hxx +++ /dev/null @@ -1,100 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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_DRAWINGLAYER_PRIMITIVE3D_SDRPRIMITIVE3D_HXX -#define INCLUDED_DRAWINGLAYER_PRIMITIVE3D_SDRPRIMITIVE3D_HXX - -#include <drawinglayer/drawinglayerdllapi.h> - -#include <drawinglayer/primitive3d/baseprimitive3d.hxx> -#include <basegfx/matrix/b3dhommatrix.hxx> -#include <basegfx/vector/b2dvector.hxx> -#include <drawinglayer/attribute/sdrallattribute3d.hxx> -#include <drawinglayer/primitive3d/sdrextrudelathetools3d.hxx> -#include <drawinglayer/attribute/sdrobjectattribute3d.hxx> - -////////////////////////////////////////////////////////////////////////////// - -namespace drawinglayer -{ - /** SdrPrimitive3D class - - Base class for the more complicated geometric primitives, so - derive from buffered primitive to allow overloading of - create3DDecomposition there. - */ - namespace primitive3d - { - class DRAWINGLAYER_DLLPUBLIC SdrPrimitive3D : public BufferedDecompositionPrimitive3D - { - private: - /// object surface attributes - basegfx::B3DHomMatrix maTransform; - basegfx::B2DVector maTextureSize; - attribute::SdrLineFillShadowAttribute3D maSdrLFSAttribute; - attribute::Sdr3DObjectAttribute maSdr3DObjectAttribute; - - protected: - /** Standard implementation for primitive3D which - will use maTransform as range and expand by evtl. line width / 2 - */ - basegfx::B3DRange getStandard3DRange() const; - - /** implementation for primitive3D which - will use given Slice3Ds and expand by evtl. line width / 2 - */ - basegfx::B3DRange get3DRangeFromSlices(const Slice3DVector& rSlices) const; - - public: - /// constructor - SdrPrimitive3D( - const basegfx::B3DHomMatrix& rTransform, - const basegfx::B2DVector& rTextureSize, - const attribute::SdrLineFillShadowAttribute3D& rSdrLFSAttribute, - const attribute::Sdr3DObjectAttribute& rSdr3DObjectAttribute); - - /// data read access - const basegfx::B3DHomMatrix& getTransform() const { return maTransform; } - const basegfx::B2DVector& getTextureSize() const { return maTextureSize; } - const attribute::SdrLineFillShadowAttribute3D& getSdrLFSAttribute() const { return maSdrLFSAttribute; } - const attribute::Sdr3DObjectAttribute getSdr3DObjectAttribute() const { return maSdr3DObjectAttribute; } - - /// compare operator - virtual bool operator==(const BasePrimitive3D& rPrimitive) const; - }; - } // end of namespace primitive3d -} // end of namespace drawinglayer - -////////////////////////////////////////////////////////////////////////////// - -#endif //INCLUDED_DRAWINGLAYER_PRIMITIVE3D_SDRPRIMITIVE3D_HXX - -////////////////////////////////////////////////////////////////////////////// -// eof - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/drawinglayer/inc/drawinglayer/primitive3d/sdrsphereprimitive3d.hxx b/drawinglayer/inc/drawinglayer/primitive3d/sdrsphereprimitive3d.hxx deleted file mode 100644 index 924f05402a..0000000000 --- a/drawinglayer/inc/drawinglayer/primitive3d/sdrsphereprimitive3d.hxx +++ /dev/null @@ -1,92 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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_DRAWINGLAYER_PRIMITIVE3D_SDRSPHEREPRIMITIVE3D_HXX -#define INCLUDED_DRAWINGLAYER_PRIMITIVE3D_SDRSPHEREPRIMITIVE3D_HXX - -#include <drawinglayer/drawinglayerdllapi.h> - -#include <drawinglayer/primitive3d/sdrprimitive3d.hxx> - -////////////////////////////////////////////////////////////////////////////// - -namespace drawinglayer -{ - namespace primitive3d - { - /** SdrSpherePrimitive3D class - - This 3D primitive expands the SdrPrimitive3D to a 3D sphere definition. - The sphere is implicitely in unit coordinates and the given transformation - defines it's geometry in space. - */ - class DRAWINGLAYER_DLLPUBLIC SdrSpherePrimitive3D : public SdrPrimitive3D - { - private: - /// additional geometry definitions - sal_uInt32 mnHorizontalSegments; - sal_uInt32 mnVerticalSegments; - - protected: - /// local decomposition. - virtual Primitive3DSequence create3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const; - - public: - /// constructor - SdrSpherePrimitive3D( - const basegfx::B3DHomMatrix& rTransform, - const basegfx::B2DVector& rTextureSize, - const attribute::SdrLineFillShadowAttribute3D& rSdrLFSAttribute, - const attribute::Sdr3DObjectAttribute& rSdr3DObjectAttribute, - sal_uInt32 nHorizontalSegments, - sal_uInt32 nVerticalSegments); - - /// data read access - sal_uInt32 getHorizontalSegments() const { return mnHorizontalSegments; } - sal_uInt32 getVerticalSegments() const { return mnVerticalSegments; } - - /// compare operator - virtual bool operator==(const BasePrimitive3D& rPrimitive) const; - - /// get range - virtual basegfx::B3DRange getB3DRange(const geometry::ViewInformation3D& rViewInformation) const; - - /// provide unique ID - DeclPrimitrive3DIDBlock() - }; - } // end of namespace primitive3d -} // end of namespace drawinglayer - -////////////////////////////////////////////////////////////////////////////// - -#endif //INCLUDED_DRAWINGLAYER_PRIMITIVE3D_SDRSPHEREPRIMITIVE3D_HXX - -////////////////////////////////////////////////////////////////////////////// -// eof - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/drawinglayer/inc/drawinglayer/primitive3d/shadowprimitive3d.hxx b/drawinglayer/inc/drawinglayer/primitive3d/shadowprimitive3d.hxx deleted file mode 100644 index 3ecee686c0..0000000000 --- a/drawinglayer/inc/drawinglayer/primitive3d/shadowprimitive3d.hxx +++ /dev/null @@ -1,96 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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_DRAWINGLAYER_PRIMITIVE3D_SHADOWPRIMITIVE3D_HXX -#define INCLUDED_DRAWINGLAYER_PRIMITIVE3D_SHADOWPRIMITIVE3D_HXX - -#include <drawinglayer/drawinglayerdllapi.h> - -#include <drawinglayer/primitive3d/groupprimitive3d.hxx> -#include <basegfx/matrix/b2dhommatrix.hxx> -#include <basegfx/color/bcolor.hxx> - -////////////////////////////////////////////////////////////////////////////// - -namespace drawinglayer -{ - namespace primitive3d - { - /** ShadowPrimitive3D class - - This 3D grouping primitive is used to define a shadow for - 3d geometry by embedding it. The shadow of 3D objects are - 2D polygons, so the shadow transformation is a 2D transformation. - - If the Shadow3D flag is set, the shadow definition has to be - combined with the scene and camera definition to create the correct - projected shadow 2D-Polygons. - */ - class DRAWINGLAYER_DLLPUBLIC ShadowPrimitive3D : public GroupPrimitive3D - { - protected: - /// 2D shadow definition - basegfx::B2DHomMatrix maShadowTransform; - basegfx::BColor maShadowColor; - double mfShadowTransparence; - - /// bitfield - unsigned mbShadow3D : 1; - - public: - /// constructor - ShadowPrimitive3D( - const basegfx::B2DHomMatrix& rShadowTransform, - const basegfx::BColor& rShadowColor, - double fShadowTransparence, - bool bShadow3D, - const Primitive3DSequence& rChildren); - - /// data read access - const basegfx::B2DHomMatrix& getShadowTransform() const { return maShadowTransform; } - const basegfx::BColor& getShadowColor() const { return maShadowColor; } - double getShadowTransparence() const { return mfShadowTransparence; } - bool getShadow3D() const { return mbShadow3D; } - - /// compare operator - virtual bool operator==(const BasePrimitive3D& rPrimitive) const; - - /// provide unique ID - DeclPrimitrive3DIDBlock() - }; - } // end of namespace primitive3d -} // end of namespace drawinglayer - -////////////////////////////////////////////////////////////////////////////// - -#endif //INCLUDED_DRAWINGLAYER_PRIMITIVE3D_SHADOWPRIMITIVE3D_HXX - -////////////////////////////////////////////////////////////////////////////// -// eof - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/drawinglayer/inc/drawinglayer/primitive3d/textureprimitive3d.hxx b/drawinglayer/inc/drawinglayer/primitive3d/textureprimitive3d.hxx deleted file mode 100644 index 32d79b70ac..0000000000 --- a/drawinglayer/inc/drawinglayer/primitive3d/textureprimitive3d.hxx +++ /dev/null @@ -1,242 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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_DRAWINGLAYER_PRIMITIVE3D_TEXTUREPRIMITIVE3D_HXX -#define INCLUDED_DRAWINGLAYER_PRIMITIVE3D_TEXTUREPRIMITIVE3D_HXX - -#include <drawinglayer/drawinglayerdllapi.h> - -#include <drawinglayer/primitive3d/groupprimitive3d.hxx> -#include <drawinglayer/attribute/fillbitmapattribute.hxx> -#include <basegfx/matrix/b2dhommatrix.hxx> -#include <basegfx/vector/b2dvector.hxx> -#include <drawinglayer/attribute/fillgradientattribute.hxx> - -////////////////////////////////////////////////////////////////////////////// - -namespace drawinglayer -{ - namespace primitive3d - { - /** TexturePrimitive3D class - - This 3D grouping primitive is used to define a texture for - 3d geometry by embedding it. It is used as bae class for - extended texture definitions - */ - class DRAWINGLAYER_DLLPUBLIC TexturePrimitive3D : public GroupPrimitive3D - { - private: - /// texture geometry definition - basegfx::B2DVector maTextureSize; - - /// bitfield - /// flag if texture shall be modulated with white interpolated color - unsigned mbModulate : 1; - - /// flag if texture shall be filtered - unsigned mbFilter : 1; - - public: - /// constructor - TexturePrimitive3D( - const Primitive3DSequence& rChildren, - const basegfx::B2DVector& rTextureSize, - bool bModulate, - bool bFilter); - - /// data read access - const basegfx::B2DVector& getTextureSize() const { return maTextureSize; } - bool getModulate() const { return mbModulate; } - bool getFilter() const { return mbFilter; } - - /// compare operator - virtual bool operator==(const BasePrimitive3D& rPrimitive) const; - }; - } // end of namespace primitive3d -} // end of namespace drawinglayer - -////////////////////////////////////////////////////////////////////////////// - -namespace drawinglayer -{ - namespace primitive3d - { - /** UnifiedTransparenceTexturePrimitive3D class - - This 3D primitive expands TexturePrimitive3D to a unified - transparence texture definition. All 3D primitives - embedded here will be shown with the given transparency. - */ - class DRAWINGLAYER_DLLPUBLIC UnifiedTransparenceTexturePrimitive3D : public TexturePrimitive3D - { - private: - /// transparency definition - double mfTransparence; - - public: - /// constructor - UnifiedTransparenceTexturePrimitive3D( - double fTransparence, - const Primitive3DSequence& rChildren); - - /// data read access - double getTransparence() const { return mfTransparence; } - - /// compare operator - virtual bool operator==(const BasePrimitive3D& rPrimitive) const; - - /// own getB3DRange implementation to include transparent geometries to BoundRect calculations - virtual basegfx::B3DRange getB3DRange(const geometry::ViewInformation3D& rViewInformation) const; - - /// local decomposition. - virtual Primitive3DSequence get3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const; - - /// provide unique ID - DeclPrimitrive3DIDBlock() - }; - } // end of namespace primitive3d -} // end of namespace drawinglayer - -////////////////////////////////////////////////////////////////////////////// - -namespace drawinglayer -{ - namespace primitive3d - { - /** GradientTexturePrimitive3D class - - This 3D primitive expands TexturePrimitive3D to a gradient texture - definition. All 3D primitives embedded here will be shown with the - defined gradient. - */ - class DRAWINGLAYER_DLLPUBLIC GradientTexturePrimitive3D : public TexturePrimitive3D - { - private: - /// the gradient definition - attribute::FillGradientAttribute maGradient; - - public: - /// constructor - GradientTexturePrimitive3D( - const attribute::FillGradientAttribute& rGradient, - const Primitive3DSequence& rChildren, - const basegfx::B2DVector& rTextureSize, - bool bModulate, - bool bFilter); - - /// data read access - const attribute::FillGradientAttribute& getGradient() const { return maGradient; } - - /// compare operator - virtual bool operator==(const BasePrimitive3D& rPrimitive) const; - - /// provide unique ID - DeclPrimitrive3DIDBlock() - }; - } // end of namespace primitive3d -} // end of namespace drawinglayer - -////////////////////////////////////////////////////////////////////////////// - -namespace drawinglayer -{ - namespace primitive3d - { - /** BitmapTexturePrimitive3D class - - This 3D primitive expands TexturePrimitive3D to a bitmap texture - definition. All 3D primitives embedded here will be shown with the - defined bitmap (maybe tiled if defined). - */ - class DRAWINGLAYER_DLLPUBLIC BitmapTexturePrimitive3D : public TexturePrimitive3D - { - private: - /// bitmap fill attribute - attribute::FillBitmapAttribute maFillBitmapAttribute; - - public: - /// constructor - BitmapTexturePrimitive3D( - const attribute::FillBitmapAttribute& rFillBitmapAttribute, - const Primitive3DSequence& rChildren, - const basegfx::B2DVector& rTextureSize, - bool bModulate, - bool bFilter); - - /// data read access - const attribute::FillBitmapAttribute& getFillBitmapAttribute() const { return maFillBitmapAttribute; } - - /// compare operator - virtual bool operator==(const BasePrimitive3D& rPrimitive) const; - - /// provide unique ID - DeclPrimitrive3DIDBlock() - }; - } // end of namespace primitive3d -} // end of namespace drawinglayer - -////////////////////////////////////////////////////////////////////////////// - -namespace drawinglayer -{ - namespace primitive3d - { - /** TransparenceTexturePrimitive3D class - - This 3D primitive expands TexturePrimitive3D to a transparence texture - definition. For transparence definition, a gradient is used. The values in - that gradient will be interpreted as luminance Transparence-Values. All 3D - primitives embedded here will be shown with the defined transparence. - */ - class DRAWINGLAYER_DLLPUBLIC TransparenceTexturePrimitive3D : public GradientTexturePrimitive3D - { - public: - /// constructor - TransparenceTexturePrimitive3D( - const attribute::FillGradientAttribute& rGradient, - const Primitive3DSequence& rChildren, - const basegfx::B2DVector& rTextureSize); - - /// compare operator - virtual bool operator==(const BasePrimitive3D& rPrimitive) const; - - /// provide unique ID - DeclPrimitrive3DIDBlock() - }; - } // end of namespace primitive3d -} // end of namespace drawinglayer - -////////////////////////////////////////////////////////////////////////////// - -#endif //INCLUDED_DRAWINGLAYER_PRIMITIVE3D_TEXTUREPRIMITIVE3D_HXX - -////////////////////////////////////////////////////////////////////////////// -// eof - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/drawinglayer/inc/drawinglayer/primitive3d/transformprimitive3d.hxx b/drawinglayer/inc/drawinglayer/primitive3d/transformprimitive3d.hxx deleted file mode 100644 index fcf749df27..0000000000 --- a/drawinglayer/inc/drawinglayer/primitive3d/transformprimitive3d.hxx +++ /dev/null @@ -1,86 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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_DRAWINGLAYER_PRIMITIVE3D_TRANSFORMPRIMITIVE3D_HXX -#define INCLUDED_DRAWINGLAYER_PRIMITIVE3D_TRANSFORMPRIMITIVE3D_HXX - -#include <drawinglayer/drawinglayerdllapi.h> - -#include <drawinglayer/primitive3d/groupprimitive3d.hxx> -#include <basegfx/matrix/b3dhommatrix.hxx> - -////////////////////////////////////////////////////////////////////////////// - -namespace drawinglayer -{ - namespace primitive3d - { - /** TransformPrimitive3D class - - This is one of the basic grouping 3D primitives and it provides - embedding a sequence of primitives (a geometry) into a - 3D transformation. - - Please see the description for TransformPrimitive2D since these - primitives are pretty similar. - */ - class DRAWINGLAYER_DLLPUBLIC TransformPrimitive3D : public GroupPrimitive3D - { - private: - // the 3D transformation to apply - basegfx::B3DHomMatrix maTransformation; - - public: - /// constructor - TransformPrimitive3D( - const basegfx::B3DHomMatrix& rTransformation, - const Primitive3DSequence& rChildren); - - /// data read access - const basegfx::B3DHomMatrix& getTransformation() const { return maTransformation; } - - /// compare operator - virtual bool operator==(const BasePrimitive3D& rPrimitive) const; - - /// get range - virtual basegfx::B3DRange getB3DRange(const geometry::ViewInformation3D& rViewInformation) const; - - /// provide unique ID - DeclPrimitrive3DIDBlock() - }; - } // end of namespace primitive3d -} // end of namespace drawinglayer - -////////////////////////////////////////////////////////////////////////////// - -#endif //INCLUDED_DRAWINGLAYER_PRIMITIVE3D_TRANSFORMPRIMITIVE3D_HXX - -////////////////////////////////////////////////////////////////////////////// -// eof - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |