1 /************************************************************************* 2 * 3 * OpenOffice.org - a multi-platform office productivity suite 4 * 5 * $RCSfile: hittestprimitive3d.hxx,v $ 6 * 7 * $Revision: 1.1.2.1 $ 8 * 9 * last change: $Author: aw $ $Date: 2008/09/24 14:27:39 $ 10 * 11 * The Contents of this file are made available subject to 12 * the terms of GNU Lesser General Public License Version 2.1. 13 * 14 * 15 * GNU Lesser General Public License Version 2.1 16 * ============================================= 17 * Copyright 2005 by Sun Microsystems, Inc. 18 * 901 San Antonio Road, Palo Alto, CA 94303, USA 19 * 20 * This library is free software; you can redistribute it and/or 21 * modify it under the terms of the GNU Lesser General Public 22 * License version 2.1, as published by the Free Software Foundation. 23 * 24 * This library is distributed in the hope that it will be useful, 25 * but WITHOUT ANY WARRANTY; without even the implied warranty of 26 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 27 * Lesser General Public License for more details. 28 * 29 * You should have received a copy of the GNU Lesser General Public 30 * License along with this library; if not, write to the Free Software 31 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 32 * MA 02111-1307 USA 33 * 34 ************************************************************************/ 35 36 #ifndef INCLUDED_DRAWINGLAYER_PRIMITIVE2D_HIDDENGEOMETRYPRIMITIVE2D_HXX 37 #define INCLUDED_DRAWINGLAYER_PRIMITIVE2D_HIDDENGEOMETRYPRIMITIVE2D_HXX 38 39 #include <drawinglayer/drawinglayerdllapi.h> 40 #include <drawinglayer/primitive2d/groupprimitive2d.hxx> 41 42 ////////////////////////////////////////////////////////////////////////////// 43 44 namespace drawinglayer 45 { 46 namespace primitive2d 47 { 48 // This primitive is used to represent geometry for non-visible objects, 49 // e.g. a PresObj's outline. To still be able to use primitives for HitTest 50 // functionality, the 2d decompositions will produce an as much as possible 51 // simplified line geometry encapsulated in this primtive when there is no 52 // line geometry. In a further enchanced version this may change to 'if neither 53 // filled nor lines' creation criteria. The whole primitive decomposes to nothing, 54 // so no one not knowing it will be influenced. Only helper processors for hit test 55 // (and maybe BoundRect extractors) will use it and it's children subcontent. 56 class DRAWINGLAYER_DLLPUBLIC HiddenGeometryPrimitive2D : public GroupPrimitive2D 57 { 58 public: 59 HiddenGeometryPrimitive2D(const Primitive2DSequence& rChildren); 60 61 // despite returning an empty decomposition since it's no visualisation data, 62 // range calculation is intended to use hidden geometry, so 63 // the local implementation will return the children's range 64 virtual basegfx::B2DRange getB2DRange(const geometry::ViewInformation2D& rViewInformation) const; 65 66 /// local decomposition. Implementation will return empty Primitive2DSequence 67 virtual Primitive2DSequence get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const; 68 69 // provide unique ID 70 DeclPrimitrive2DIDBlock() 71 }; 72 } // end of namespace primitive2d 73 } // end of namespace drawinglayer 74 75 ////////////////////////////////////////////////////////////////////////////// 76 77 #endif //INCLUDED_DRAWINGLAYER_PRIMITIVE2D_HIDDENGEOMETRYPRIMITIVE2D_HXX 78 79 ////////////////////////////////////////////////////////////////////////////// 80 // eof 81