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/primitive2d/groupprimitive2d.hxx> 40 41 ////////////////////////////////////////////////////////////////////////////// 42 43 namespace drawinglayer 44 { 45 namespace primitive2d 46 { 47 // This primitive is used to represent geometry for non-visible objects, 48 // e.g. a PresObj's outline. To still be able to use primitives for HitTest 49 // functionality, the 2d decompositions will produce an as much as possible 50 // simplified line geometry encapsulated in this primtive when there is no 51 // line geometry. In a further enchanced version this may change to 'if neither 52 // filled nor lines' creation criteria. The whole primitive decomposes to nothing, 53 // so no one not knowing it will be influenced. Only helper processors for hit test 54 // (and maybe BoundRect extractors) will use it and it's children subcontent. 55 class HiddenGeometryPrimitive2D : public GroupPrimitive2D 56 { 57 public: 58 HiddenGeometryPrimitive2D(const Primitive2DSequence& rChildren); 59 60 // despite returning an empty decomposition since it's no visualisation data, 61 // range calculation is intended to use hidden geometry, so 62 // the local implementation will return the children's range 63 virtual basegfx::B2DRange getB2DRange(const geometry::ViewInformation2D& rViewInformation) const; 64 65 /// local decomposition. Implementation will return empty Primitive2DSequence 66 virtual Primitive2DSequence get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const; 67 68 // provide unique ID 69 DeclPrimitrive2DIDBlock() 70 }; 71 } // end of namespace primitive2d 72 } // end of namespace drawinglayer 73 74 ////////////////////////////////////////////////////////////////////////////// 75 76 #endif //INCLUDED_DRAWINGLAYER_PRIMITIVE2D_HIDDENGEOMETRYPRIMITIVE2D_HXX 77 78 ////////////////////////////////////////////////////////////////////////////// 79 // eof 80