LibreOffice Module svx (master)  1
sdrpathprimitive2d.hxx
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * This file is part of the LibreOffice project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  *
9  * This file incorporates work covered by the following license notice:
10  *
11  * Licensed to the Apache Software Foundation (ASF) under one or more
12  * contributor license agreements. See the NOTICE file distributed
13  * with this work for additional information regarding copyright
14  * ownership. The ASF licenses this file to you under the Apache
15  * License, Version 2.0 (the "License"); you may not use this file
16  * except in compliance with the License. You may obtain a copy of
17  * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18  */
19 
20 #ifndef INCLUDED_SVX_INC_SDR_PRIMITIVE2D_SDRPATHPRIMITIVE2D_HXX
21 #define INCLUDED_SVX_INC_SDR_PRIMITIVE2D_SDRPATHPRIMITIVE2D_HXX
22 
27 
28 
29 // predefines
30 
31 
33  {
35  {
36  private:
40 
41  // OperationSmiley: Added to be able to define a FillGeometry different from local
42  // geometry. It is ignored when empty and/or equal to UnitPolyPolygon.
43  // If used and there is a fill, the object's geometry (maUnitPolyPolygon) will be filled,
44  // but UnitDefinitionPolyPolygon will be used to define the FillStyle. Thus when
45  // using the 'same' UnitDefinitionPolyPolygon for multiple definitions,
46  // all filled stuff using it will fit seamlessly together.
47  // 'same' is in quotes since it is a UnitPolygon, so being relative to the
48  // unit polygon of the local geometry (UnitPolyPolygon). The definition is complete
49  // when applying the also given transformation (maTransform)
51 
52  // local decomposition.
53  virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& aViewInformation) const override;
54 
55  public:
56  // OperationSmiley: Extended to UnitDefinitionPolyPolygon, but when needed
57  // a 2nd version without can be defined that just does not set the
58  // maUnitDefinitionPolyPolygon or set equal to UnitPolyPolygon
60  const basegfx::B2DHomMatrix& rTransform,
61  const attribute::SdrLineFillEffectsTextAttribute& rSdrLFSTAttribute,
62  const basegfx::B2DPolyPolygon& rUnitPolyPolygon,
63  const basegfx::B2DPolyPolygon& rUnitDefinitionPolyPolygon);
64 
65  // data access
66  const basegfx::B2DHomMatrix& getTransform() const { return maTransform; }
70 
71  // compare operator
72  virtual bool operator==(const BasePrimitive2D& rPrimitive) const override;
73 
74  // provide unique ID
75  virtual sal_uInt32 getPrimitive2DID() const override;
76  };
77 } // end of namespace drawinglayer::primitive2d
78 
79 
80 #endif // INCLUDED_SVX_INC_SDR_PRIMITIVE2D_SDRPATHPRIMITIVE2D_HXX
81 
82 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
SdrPathPrimitive2D(const basegfx::B2DHomMatrix &rTransform, const attribute::SdrLineFillEffectsTextAttribute &rSdrLFSTAttribute, const basegfx::B2DPolyPolygon &rUnitPolyPolygon, const basegfx::B2DPolyPolygon &rUnitDefinitionPolyPolygon)
const basegfx::B2DHomMatrix & getTransform() const
const basegfx::B2DPolyPolygon & getUnitDefinitionPolyPolygon() const
virtual void create2DDecomposition(Primitive2DContainer &rContainer, const geometry::ViewInformation2D &aViewInformation) const override
virtual sal_uInt32 getPrimitive2DID() const override
const basegfx::B2DPolyPolygon & getUnitPolyPolygon() const
attribute::SdrLineFillEffectsTextAttribute maSdrLFSTAttribute
const attribute::SdrLineFillEffectsTextAttribute & getSdrLFSTAttribute() const
virtual bool operator==(const BasePrimitive2D &rPrimitive) const override