29#include <com/sun/star/uno/Sequence.h>
36class ImplPairDephAndObject
49 bool operator<(
const ImplPairDephAndObject& rComp)
const
51 return (mfDepth < rComp.mfDepth);
65 ::std::vector< basegfx::B3DPoint >& o_rResult,
70 if(rFront.
equal(rBack))
77 if(aPrimitives.empty())
87 if(aObjectRange.
overlaps(aFrontBackRange))
91 aCutFindProcessor.
process(aPrimitives);
113 if(pParentParentScene)
116 aInBetweenSceneMatrix = pParentScene->
GetTransform() * aInBetweenSceneMatrix;
121 pRootScene = pParentScene;
124 pParentScene = pParentParentScene;
151 const uno::Sequence< beans::PropertyValue > aEmptyParameters;
162 ::std::vector< const E3dCompoundObject* >& o_rResult)
175 aInverseSceneTransform.
invert();
179 if(!(aRelativePoint.
getX() >= 0.0 && aRelativePoint.
getX() <= 1.0 && aRelativePoint.
getY() >= 0.0 && aRelativePoint.
getY() <= 1.0))
183 ::std::vector< ImplPairDephAndObject > aDepthAndObjectResults;
184 const uno::Sequence< beans::PropertyValue > aEmptyParameters;
201 if(!aFront.
equal(aBack))
204 ::std::vector< basegfx::B3DPoint > aHitsWithObject;
210 aDepthAndObjectResults.emplace_back(pCandidate, aPointInViewCoordinates.
getZ());
217 const sal_uInt32
nCount(aDepthAndObjectResults.size());
222 ::std::sort(aDepthAndObjectResults.begin(), aDepthAndObjectResults.end());
225 for(
const auto& rResult : aDepthAndObjectResults)
227 o_rResult.push_back(rResult.getObject());
237 const uno::Sequence< beans::PropertyValue > aEmptyParameters;
248 aInverseSceneTransform.
invert();
252 if(aRelativePoint.
getX() >= 0.0 && aRelativePoint.
getX() <= 1.0 && aRelativePoint.
getY() >= 0.0 && aRelativePoint.
getY() <= 1.0)
260 if(!aFront.
equal(aBack))
263 ::std::vector< basegfx::B3DPoint > aHitsWithObject;
266 if(!aHitsWithObject.empty())
const basegfx::B3DHomMatrix & GetTransform() const
E3dScene * getParentE3dSceneFromE3dObject() const
virtual SdrObjList * GetSubList() const override
size_t GetObjCount() const
sdr::contact::ViewContact & GetViewContact() const
bool overlaps(const B3DRange &rRange) const
bool equal(const B3DTuple &rTup) const
basegfx::B3DRange getB3DRange(const geometry::ViewInformation3D &aViewInformation) const
void process(const primitive3d::Primitive3DContainer &rSource)
const ::std::vector< basegfx::B3DPoint > & getCutPoints() const
EmbeddedObjectRef * pObject
bool checkHitSingle3DObject(const basegfx::B2DPoint &rPoint, const E3dCompoundObject &rCandidate)
support for checking if the single given 3d object is hit at position
E3dScene * fillViewInformation3DForCompoundObject(drawinglayer::geometry::ViewInformation3D &o_rViewInformation3D, const E3dCompoundObject &rCandidate)
support for getting a ViewInformation3D for a given CompoudObject3D with correct ObjectTransformation...
void getAllHit3DObjectsSortedFrontToBack(const basegfx::B2DPoint &rPoint, const E3dScene &rScene, ::std::vector< const E3dCompoundObject * > &o_rResult)
support for getting all from a 2d position hit objects in a 3d scene in a depth sorted array
static void getAllHit3DObjectWithRelativePoint(const basegfx::B3DPoint &rFront, const basegfx::B3DPoint &rBack, const E3dCompoundObject &rObject, const drawinglayer::geometry::ViewInformation3D &rObjectViewInformation3D, ::std::vector< basegfx::B3DPoint > &o_rResult, bool bAnyHit)
bool operator<(const Subset &rLHS, const Subset &rRHS)