47 const size_t nSourceCount(aSource.size());
48 std::vector< Primitive3DReference > aDestination;
50 for(
size_t a(0);
a < nSourceCount;
a++)
72 aDestination.push_back(xReference);
77 const sal_uInt32 nPolyCount(aFillPolyPolygon.
count());
83 bool b2N(
false), b2X(
false), b2Y(
false);
85 for(sal_uInt32 b(0); b < nPolyCount; b++)
88 const sal_uInt32 nPointCount(aPartPoly.
count());
91 for(sal_uInt32 c(0); c < nPointCount; c++)
101 else if(!b2X && !a2N.
equal(a2Candidate))
103 a2X = a2Candidate - a2N;
107 else if(!b2Y && !a2N.
equal(a2Candidate) && !a2X.
equal(a2Candidate))
109 a2Y = a2Candidate - a2N;
111 const double fCross(a2X.
cross(a2Y));
120 aTexPolygon.
append(a2Candidate);
124 aTexPolyPolygon.
append(aTexPolygon);
127 if(b2N && b2X && b2Y)
133 const double fAngle(
getHatch().getAngle());
134 std::vector< basegfx::B2DHomMatrix > aMatrices;
188 a2DHatchLines.
append(aNewLine);
191 if(a2DHatchLines.
count())
197 if(a2DHatchLines.
count())
234 const sal_uInt32 nHatchLines(a3DHatchLines.
count());
236 for(sal_uInt32
d(0);
d < nHatchLines;
d++)
239 aDestination.push_back(xRef);
250 aDestination.push_back(xReference);
258 const sal_uInt32 nDestSize(aDestination.size());
259 aRetval.resize(nDestSize);
261 for(sal_uInt32 b(0); b < nDestSize; b++)
263 aRetval[b] = aDestination[b];
277 maHatch(
std::move(aHatch))
283 if(TexturePrimitive3D::operator==(rPrimitive))
295 std::unique_lock aGuard(
m_aMutex );
void set(sal_uInt16 nRow, sal_uInt16 nColumn, double fValue)
void append(const B2DPolygon &rPolygon, sal_uInt32 nCount=1)
void transform(const basegfx::B2DHomMatrix &rMatrix)
void transform(const basegfx::B2DHomMatrix &rMatrix)
void append(const basegfx::B2DPoint &rPoint, sal_uInt32 nCount)
void setClosed(bool bNew)
double cross(const B2DVector &rVec) const
void set(sal_uInt16 nRow, sal_uInt16 nColumn, double fValue)
bool areTextureCoordinatesUsed() const
void transform(const basegfx::B3DHomMatrix &rMatrix)
B3DPolygon const & getB3DPolygon(sal_uInt32 nIndex) const
B3DPoint const & getB3DPoint(sal_uInt32 nIndex) const
B2DPoint const & getTextureCoordinate(sal_uInt32 nIndex) const
bool equal(const Tuple2D< TYPE > &rTup) const
bool isFillBackground() const
virtual sal_uInt32 getPrimitive3DID() const =0
provide unique ID for fast identifying of known primitive implementations in renderers.
const Primitive3DContainer & getChildren() const
data read access
HatchTexturePrimitive3D class.
virtual Primitive3DContainer get3DDecomposition(const geometry::ViewInformation3D &rViewInformation) const override
local decomposition.
attribute::FillHatchAttribute maHatch
the hatch definition
const Primitive3DContainer & getBuffered3DDecomposition() const
local access methods to maBufferedDecomposition
Primitive3DContainer maBuffered3DDecomposition
the buffered decomposed hatch
HatchTexturePrimitive3D(attribute::FillHatchAttribute aHatch, const Primitive3DContainer &rChildren, const basegfx::B2DVector &rTextureSize, bool bModulate, bool bFilter)
constructor
const attribute::FillHatchAttribute & getHatch() const
data read access
Primitive3DContainer impCreate3DDecomposition() const
helper: local decomposition
virtual bool operator==(const BasePrimitive3D &rPrimitive) const override
compare operator
PolyPolygonMaterialPrimitive3D class.
const basegfx::B3DPolyPolygon & getB3DPolyPolygon() const
data read access
PolygonHairlinePrimitive3D class.
TexturePrimitive3D class.
void appendTransformations(::std::vector< basegfx::B2DHomMatrix > &rMatrices)
#define PRIMITIVE3D_ID_POLYPOLYGONMATERIALPRIMITIVE3D
#define PRIMITIVE3D_ID_HATCHTEXTUREPRIMITIVE3D
B3DPolyPolygon createB3DPolyPolygonFromB2DPolyPolygon(const B2DPolyPolygon &rCandidate, double fZCoordinate)
B2DPolyPolygon clipPolyPolygonOnPolyPolygon(const B2DPolyPolygon &rCandidate, const B2DPolyPolygon &rClip, bool bInside, bool bStroke, size_t *pPointLimit)
B2DRange getRange(const B2DPolygon &rCandidate)
css::uno::Reference< css::graphic::XPrimitive3D > Primitive3DReference
ImplPrimitive3DIDBlock(PolygonHairlinePrimitive3D, PRIMITIVE3D_ID_POLYGONHAIRLINEPRIMITIVE3D) Primitive3DContainer PolygonStrokePrimitive3D