Version 5.4.3.2, tag libreoffice-5.4.3.2
[LibreOffice.git] / include / svx / helperhittest3d.hxx
blobb9af1f24288f115862dcfb37fcbdaf884e5ae7a9
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
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/.
9 * This file incorporates work covered by the following license notice:
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 .
20 #ifndef INCLUDED_SVX_HELPERHITTEST3D_HXX
21 #define INCLUDED_SVX_HELPERHITTEST3D_HXX
23 #include <svx/svxdllapi.h>
24 #include <sal/types.h>
25 #include <vector>
28 // predefines
30 namespace basegfx {
31 class B2DPoint;
34 namespace drawinglayer { namespace geometry {
35 class ViewInformation3D;
38 class E3dCompoundObject;
39 class E3dScene;
42 /** support for getting a ViewInformation3D for a given CompoudObject3D
43 with correct ObjectTransformation filled out
45 @param o_rViewInformation3D
46 The ViewInformation3D created which will be overwritten
48 @param rCandidate
49 The E3dCompoundObject for which the ViewInformation3D shall be
50 prepared
52 @return
53 A pointer to the found and used root scene. This is also a hint
54 if the operation succeeded or not, since when object has no root
55 scene (is not inserted to a model), an empty ViewInformation3D
56 will be used
58 E3dScene* fillViewInformation3DForCompoundObject(
59 drawinglayer::geometry::ViewInformation3D& o_rViewInformation3D,
60 const E3dCompoundObject& rCandidate);
62 /** support for getting all from a 2d position hit objects in a 3d scene
63 in a depth sorted array
65 @param rPoint
66 2D Point in view coordinates
68 @param rScene
69 The 3D Scene for HitTest
71 @param o_rResult
72 Output parameter which contains all hit 3D objects inside rScene. This
73 vector will be changed in any case. If it's empty, no hit exists. If it's
74 not empty, the first object is the object closest to the viewer
77 SVX_DLLPUBLIC void getAllHit3DObjectsSortedFrontToBack(
78 const basegfx::B2DPoint& rPoint,
79 const E3dScene& rScene,
80 ::std::vector< const E3dCompoundObject* >& o_rResult);
82 /** support for checking if the single given 3d object is hit at position
84 @param rPoint
85 2D Point in view coordinates
87 @param rCandidate
88 The 3D Object which needs checking
90 @return
91 true if hit, false if not
93 bool checkHitSingle3DObject(
94 const basegfx::B2DPoint& rPoint,
95 const E3dCompoundObject& rCandidate);
98 #endif // INCLUDED_SVX_HELPERHITTEST3D_HXX
100 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */