37void createSubPrimitive3DVector(
42 const bool bTestSelectedVisibility)
46 if(pViewContactOfE3dScene)
57 for(sal_uInt32
a(0);
a < nChildrenCount;
a++)
59 createSubPrimitive3DVector(
62 o_pVisibleTarget ? &aNewVisibleTarget :
nullptr,
63 pVisibleSdrLayerIDSet,
64 bTestSelectedVisibility);
73 o_rAllTarget.push_back(xReference);
78 o_pVisibleTarget->push_back(xReference);
91 if(!xPrimitive3DSeq.empty())
94 o_rAllTarget.
append(xPrimitive3DSeq);
101 if(pVisibleSdrLayerIDSet)
110 if(bVisible && bTestSelectedVisibility)
121 o_pVisibleTarget->
append(xPrimitive3DSeq);
138 DBG_ASSERT(pRetval,
"ViewContactOfE3dScene::CreateObjectSpecificViewObjectContact() failed (!)");
182 const double fMinZ(-aCameraRange.
getMaxZ());
183 const double fMaxZ(-aCameraRange.
getMinZ());
189 if(css::drawing::ProjectionMode_PERSPECTIVE == rSdrSceneAttribute.
getProjectionMode())
191 aWorldToDevice.
frustum(-1.0, 1.0, -1.0, 1.0, fMinZ, fMaxZ);
195 aWorldToDevice.
ortho(-1.0, 1.0, -1.0, 1.0, fMinZ, fMaxZ);
204 if(css::drawing::ProjectionMode_PERSPECTIVE == rSdrSceneAttribute.
getProjectionMode())
226 aDeviceToView.
scale(0.5, -0.5, 0.5);
230 const uno::Sequence< beans::PropertyValue > aEmptyProperties;
232 aTransformation, aOrientation, aProjection,
233 aDeviceToView, 0.0, aEmptyProperties);
270 const bool bTestLayerVisibility(
nullptr != pLayerVisibility);
271 const bool bTestSelectedVisibility(
GetE3dScene().GetDrawOnlySelected());
272 const bool bTestVisibility(bTestLayerVisibility || bTestSelectedVisibility);
278 for(sal_uInt32
a(0);
a < nChildrenCount;
a++)
280 createSubPrimitive3DVector(
283 bTestLayerVisibility ? &aVisibleSequence :
nullptr,
284 bTestLayerVisibility ? pLayerVisibility :
nullptr,
285 bTestSelectedVisibility);
288 const size_t nAllSize(!aAllSequence.empty() ? aAllSequence.size() : 0);
289 const size_t nVisibleSize(!aVisibleSequence.empty() ? aVisibleSequence.size() : 0);
291 if((bTestVisibility && nVisibleSize) || nAllSize)
298 const uno::Sequence< beans::PropertyValue > aEmptyProperties;
305 bTestVisibility ? aVisibleSequence : aAllSequence,
357 OSL_FAIL(
"No need to get ViewInformation3D from an empty scene (!)");
417 for(sal_uInt32
a(0);
a < nChildrenCount;
a++)
419 createSubPrimitive3DVector(
GetViewContact(
a), aAllPrimitive3DContainer,
nullptr,
nullptr,
false);
422 return aAllPrimitive3DContainer;
430 if(!xAllSequence.empty())
435 const uno::Sequence< beans::PropertyValue > aEmptyProperties;
438 aAllContentRange3D = xAllSequence.
getB3DRange(aNeutralViewInformation3D);
441 return aAllContentRange3D;
const basegfx::B3DPoint & GetVRP() const
const basegfx::B3DVector & GetVPN() const
const basegfx::B3DVector & GetVUV() const
const basegfx::B3DHomMatrix & GetTransform() const
B3dCamera & GetCameraSet()
bool IsSet(SdrLayerID a) const
const SfxItemSet & GetMergedItemSet() const
virtual SdrLayerID GetLayer() const
void set(sal_uInt16 nRow, sal_uInt16 nColumn, double fValue)
void orientation(const B3DPoint &rVRP=B3DPoint(0.0, 0.0, 1.0), B3DVector aVPN=B3DVector(0.0, 0.0, 1.0), B3DVector aVUV=B3DVector(0.0, 1.0, 0.0))
void ortho(double fLeft=-1.0, double fRight=1.0, double fBottom=-1.0, double fTop=1.0, double fNear=0.0, double fFar=1.0)
void translate(double fX, double fY, double fZ)
void scale(double fX, double fY, double fZ)
void frustum(double fLeft=-1.0, double fRight=1.0, double fBottom=-1.0, double fTop=1.0, double fNear=0.001, double fFar=1.0)
BASEGFX_DLLPUBLIC void transform(const B3DHomMatrix &rMatrix)
void expand(const B3DTuple &rTuple)
css::drawing::ProjectionMode getProjectionMode() const
virtual void visit(const Primitive2DReference &)=0
basegfx::B3DRange getB3DRange(const geometry::ViewInformation3D &aViewInformation) const
void append(const Primitive3DContainer &rSource)
#define DBG_ASSERT(sCon, aError)
attribute::SdrSceneAttribute createNewSdrSceneAttribute(const SfxItemSet &rSet)
Primitive2DReference createHiddenGeometryPrimitives2D(const basegfx::B2DHomMatrix &rMatrix)
attribute::SdrLightingAttribute createNewSdrLightingAttribute(const SfxItemSet &rSet)
css::uno::Reference< css::graphic::XPrimitive3D > Primitive3DReference