/************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * Copyright 2008 by Sun Microsystems, Inc. * * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: extrud3d.hxx,v $ * $Revision: 1.4.18.1 $ * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License version 3 * only, as published by the Free Software Foundation. * * OpenOffice.org is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License version 3 for more details * (a copy is included in the LICENSE file that accompanied this code). * * You should have received a copy of the GNU Lesser General Public License * version 3 along with OpenOffice.org. If not, see * * for a copy of the LGPLv3 License. * ************************************************************************/ #ifndef _E3D_EXTRUD3D_HXX #define _E3D_EXTRUD3D_HXX #include #include "svx/svxdllapi.h" /************************************************************************* |* |* 3D-Extrusionsobjekt aus uebergebenem 2D-Polygon erzeugen |* \************************************************************************/ class SVX_DLLPUBLIC E3dExtrudeObj : public E3dCompoundObject { private: // #110094# DrawContact section virtual sdr::contact::ViewContact* CreateObjectSpecificViewContact(); virtual sdr::properties::BaseProperties* CreateObjectSpecificProperties(); // to allow sdr::properties::E3dExtrudeProperties access to SetGeometryValid() friend class sdr::properties::E3dExtrudeProperties; // Geometrie, die dieses Objekt bestimmt basegfx::B2DPolyPolygon maExtrudePolygon; protected: void SetDefaultAttributes(E3dDefaultAttributes& rDefault); public: TYPEINFO(); E3dExtrudeObj(E3dDefaultAttributes& rDefault, const basegfx::B2DPolyPolygon& rPP, double fDepth); E3dExtrudeObj(); // PercentDiagonal: 0..100, before 0.0..0.5 sal_uInt16 GetPercentDiagonal() const { return ((const Svx3DPercentDiagonalItem&)GetObjectItemSet().Get(SDRATTR_3DOBJ_PERCENT_DIAGONAL)).GetValue(); } // BackScale: 0..100, before 0.0..1.0 sal_uInt16 GetPercentBackScale() const { return ((const Svx3DBackscaleItem&)GetObjectItemSet().Get(SDRATTR_3DOBJ_BACKSCALE)).GetValue(); } // BackScale: 0..100, before 0.0..1.0 sal_uInt32 GetExtrudeDepth() const { return ((const Svx3DDepthItem&)GetObjectItemSet().Get(SDRATTR_3DOBJ_DEPTH)).GetValue(); } // #107245# GetSmoothNormals() for bExtrudeSmoothed sal_Bool GetSmoothNormals() const { return ((const Svx3DSmoothNormalsItem&)GetObjectItemSet().Get(SDRATTR_3DOBJ_SMOOTH_NORMALS)).GetValue(); } // #107245# GetSmoothLids() for bExtrudeSmoothFrontBack sal_Bool GetSmoothLids() const { return ((const Svx3DSmoothLidsItem&)GetObjectItemSet().Get(SDRATTR_3DOBJ_SMOOTH_LIDS)).GetValue(); } // #107245# GetCharacterMode() for bExtrudeCharacterMode sal_Bool GetCharacterMode() const { return ((const Svx3DCharacterModeItem&)GetObjectItemSet().Get(SDRATTR_3DOBJ_CHARACTER_MODE)).GetValue(); } // #107245# GetCloseFront() for bExtrudeCloseFront sal_Bool GetCloseFront() const { return ((const Svx3DCloseFrontItem&)GetObjectItemSet().Get(SDRATTR_3DOBJ_CLOSE_FRONT)).GetValue(); } // #107245# GetCloseBack() for bExtrudeCloseBack sal_Bool GetCloseBack() const { return ((const Svx3DCloseBackItem&)GetObjectItemSet().Get(SDRATTR_3DOBJ_CLOSE_BACK)).GetValue(); } virtual UINT16 GetObjIdentifier() const; virtual void operator=(const SdrObject&); // TakeObjName...() ist fuer die Anzeige in der UI, z.B. "3 Rahmen selektiert". virtual void TakeObjNameSingul(String& rName) const; virtual void TakeObjNamePlural(String& rName) const; // Lokale Parameter setzen/lesen mit Geometrieneuerzeugung void SetExtrudePolygon(const basegfx::B2DPolyPolygon &rNew); const basegfx::B2DPolyPolygon &GetExtrudePolygon() { return maExtrudePolygon; } // Aufbrechen virtual BOOL IsBreakObjPossible(); virtual SdrAttrObj* GetBreakObj(); }; #endif // _E3D_EXTRUD3D_HXX