summaryrefslogtreecommitdiff
path: root/include/svx/helperhittest3d.hxx
blob: b9af1f24288f115862dcfb37fcbdaf884e5ae7a9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
 * This file is part of the LibreOffice project.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * This file incorporates work covered by the following license notice:
 *
 *   Licensed to the Apache Software Foundation (ASF) under one or more
 *   contributor license agreements. See the NOTICE file distributed
 *   with this work for additional information regarding copyright
 *   ownership. The ASF licenses this file to you under the Apache
 *   License, Version 2.0 (the "License"); you may not use this file
 *   except in compliance with the License. You may obtain a copy of
 *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
 */

#ifndef INCLUDED_SVX_HELPERHITTEST3D_HXX
#define INCLUDED_SVX_HELPERHITTEST3D_HXX

#include <svx/svxdllapi.h>
#include <sal/types.h>
#include <vector>


// predefines

namespace basegfx {
    class B2DPoint;
}

namespace drawinglayer { namespace geometry {
    class ViewInformation3D;
}}

class E3dCompoundObject;
class E3dScene;


/** support for getting a ViewInformation3D for a given CompoudObject3D
    with correct ObjectTransformation filled out

    @param o_rViewInformation3D
    The ViewInformation3D created which will be overwritten

    @param rCandidate
    The E3dCompoundObject for which the ViewInformation3D shall be
    prepared

    @return
    A pointer to the found and used root scene. This is also a hint
    if the operation succeeded or not, since when object has no root
    scene (is not inserted to a model), an empty ViewInformation3D
    will be used
*/
E3dScene* fillViewInformation3DForCompoundObject(
    drawinglayer::geometry::ViewInformation3D& o_rViewInformation3D,
    const E3dCompoundObject& rCandidate);

/** support for getting all from a 2d position hit objects in a 3d scene
    in a depth sorted array

    @param rPoint
    2D Point in view coordinates

    @param rScene
    The 3D Scene for HitTest

    @param o_rResult
    Output parameter which contains all hit 3D objects inside rScene. This
    vector will be changed in any case. If it's empty, no hit exists. If it's
    not empty, the first object is the object closest to the viewer

*/
SVX_DLLPUBLIC void getAllHit3DObjectsSortedFrontToBack(
    const basegfx::B2DPoint& rPoint,
    const E3dScene& rScene,
    ::std::vector< const E3dCompoundObject* >& o_rResult);

/** support for checking if the single given 3d object is hit at position

    @param rPoint
    2D Point in view coordinates

    @param rCandidate
    The 3D Object which needs checking

    @return
    true if hit, false if not
*/
bool checkHitSingle3DObject(
    const basegfx::B2DPoint& rPoint,
    const E3dCompoundObject& rCandidate);


#endif // INCLUDED_SVX_HELPERHITTEST3D_HXX

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
td>2019-10-28Fix build with poppler-0.82Rasmus Thomsen Change-Id: I3b6b3faea7986f3e5a6ae4790580d03bc9c955fc Reviewed-on: https://gerrit.libreoffice.org/81545 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de> 2019-01-15poppler: upgrade to release 0.73.0Michael Stahl Change-Id: If20998f8565b5534a96b3f29ccec572273edca1d Reviewed-on: https://gerrit.libreoffice.org/66306 Tested-by: Jenkins Reviewed-by: Michael Stahl <Michael.Stahl@cib.de> 2019-01-15sdext: fix build with poppler 0.73Michael Stahl ... which has removed Guchar, Gushort, Guint, Gulong... Change-Id: Ia54ad378031f167f6779f6ffe574b85c1e72f26d Reviewed-on: https://gerrit.libreoffice.org/66305 Tested-by: Jenkins Reviewed-by: Michael Stahl <Michael.Stahl@cib.de> 2018-12-10Fix build with poppler 0.71Aleksei Nikiforov Change-Id: I470ece9dc4766e10e1ccb5e99b25a8d8cc4cbf38 Reviewed-on: https://gerrit.libreoffice.org/63860 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com> 2018-11-20poppler dropped GBool since 0.71Mike Kaganski See https://lists.freedesktop.org/archives/libreoffice/2018-November/081410.html Change-Id: I258e08894486a925bed50a3a4232b6e805af6784 Reviewed-on: https://gerrit.libreoffice.org/63625 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com> 2018-10-23remove old poppler compat codeNoel Grandin since we require poppler >= 0.12.0 Change-Id: Ie698ecbe776d12ef21ba8f12ac4dfa0575ed467b Reviewed-on: https://gerrit.libreoffice.org/62223 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> 2018-04-24fix build with poppler 0.64Rene Engelhard GooString became const... Change-Id: Icc95be2e8603a4e22c6a9ac2008986bacd0bfba5 2018-02-02sdext: MSVC: pragma warning: make more specific, remove obsoleteMike Kaganski Change-Id: I317b952c27fd052d4f19aa0dfc4ee9ce1e4705ad Reviewed-on: https://gerrit.libreoffice.org/49046 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>