LibreOffice Module basegfx (master) 1
b2dclipstate.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#pragma once
21
22#include <o3tl/cow_wrapper.hxx>
24
25
26namespace basegfx
27{
28 class B2DRange;
29 class B2DPolyPolygon;
30 class B2DHomMatrix;
31}
32
33namespace basegfx::utils
34{
35 class ImplB2DClipState;
36
48 {
49 public:
51
52 private:
54
55 public:
61 explicit B2DClipState( const B2DPolyPolygon& );
64
66 void makeNull();
67
69 bool isCleared() const;
70
71 bool operator==(const B2DClipState&) const;
72 bool operator!=(const B2DClipState&) const;
73
74 void unionRange(const B2DRange& );
75 void unionPolyPolygon(const B2DPolyPolygon& );
76
77 void intersectRange(const B2DRange& );
78 void intersectPolyPolygon(const B2DPolyPolygon& );
79
80 void subtractRange(const B2DRange& );
81 void subtractPolyPolygon(const B2DPolyPolygon& );
82
83 void xorRange(const B2DRange& );
84 void xorPolyPolygon(const B2DPolyPolygon& );
85
86 void transform(const B2DHomMatrix& );
87
88 B2DPolyPolygon const & getClipPoly() const;
89 };
90}
91
92/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
#define BASEGFX_DLLPUBLIC
Definition: basegfxdllapi.h:35
A two-dimensional interval over doubles.
Definition: b2drange.hxx:54
This class provides an optimized, symbolic clip state for graphical output.
B2DClipState(const B2DClipState &)
B2DClipState & operator=(const B2DClipState &)
B2DClipState(B2DClipState &&)
B2DClipState()
Init clip, in 'cleared' state - everything is visible.
o3tl::cow_wrapper< ImplB2DClipState > ImplType
B2DClipState & operator=(B2DClipState &&)
bool operator!=(const XclExpString &rLeft, const XclExpString &rRight)
bool operator==(const XclFontData &rLeft, const XclFontData &rRight)