/* -*- 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 * * 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: // to allow sdr::properties::E3dExtrudeProperties access to SetGeometryValid() friend class sdr::properties::E3dExtrudeProperties; // Geometrie, die dieses Objekt bestimmt basegfx::B2DPolyPolygon maExtrudePolygon; protected: virtual sdr::contact::ViewContact* CreateObjectSpecificViewContact(); virtual sdr::properties::BaseProperties* CreateObjectSpecificProperties(); 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 sal_uInt16 GetObjIdentifier() const; virtual E3dExtrudeObj* Clone() const; // TakeObjName...() is for the display in the UI (for example "3 frames selected") virtual void TakeObjNameSingul(String& rName) const; virtual void TakeObjNamePlural(String& rName) const; // set/get local parameters with geometry regeneration void SetExtrudePolygon(const basegfx::B2DPolyPolygon &rNew); const basegfx::B2DPolyPolygon &GetExtrudePolygon() { return maExtrudePolygon; } virtual sal_Bool IsBreakObjPossible(); virtual SdrAttrObj* GetBreakObj(); }; #endif // _E3D_EXTRUD3D_HXX /* vim:set shiftwidth=4 softtabstop=4 expandtab: */