Line data Source code
1 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : /*
3 : * This file is part of the LibreOffice project.
4 : *
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/.
8 : *
9 : * This file incorporates work covered by the following license notice:
10 : *
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 .
18 : */
19 :
20 : #include <comphelper/extract.hxx>
21 : #include "ximp3dobject.hxx"
22 : #include <xmloff/XMLShapeStyleContext.hxx>
23 : #include <xmloff/xmluconv.hxx>
24 : #include <com/sun/star/beans/XPropertySet.hpp>
25 : #include <com/sun/star/drawing/PointSequenceSequence.hpp>
26 : #include <com/sun/star/drawing/PointSequence.hpp>
27 : #include "xexptran.hxx"
28 : #include <com/sun/star/drawing/PolyPolygonBezierCoords.hpp>
29 : #include <xmloff/families.hxx>
30 : #include "ximpstyl.hxx"
31 : #include <xmloff/xmltoken.hxx>
32 : #include <com/sun/star/drawing/PolyPolygonShape3D.hpp>
33 : #include <com/sun/star/drawing/DoubleSequence.hpp>
34 :
35 : using ::rtl::OUString;
36 : using ::rtl::OUStringBuffer;
37 :
38 : using namespace ::com::sun::star;
39 :
40 : ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
41 : ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
42 :
43 0 : TYPEINIT1( SdXML3DObjectContext, SdXMLShapeContext );
44 :
45 0 : SdXML3DObjectContext::SdXML3DObjectContext(
46 : SvXMLImport& rImport,
47 : sal_uInt16 nPrfx,
48 : const OUString& rLocalName,
49 : const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
50 : uno::Reference< drawing::XShapes >& rShapes,
51 : sal_Bool bTemporaryShape)
52 : : SdXMLShapeContext( rImport, nPrfx, rLocalName, xAttrList, rShapes, bTemporaryShape ),
53 0 : mbSetTransform( sal_False )
54 : {
55 0 : sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
56 0 : for(sal_Int16 i=0; i < nAttrCount; i++)
57 : {
58 0 : OUString sAttrName = xAttrList->getNameByIndex( i );
59 0 : OUString aLocalName;
60 0 : sal_uInt16 nPrefix = GetImport().GetNamespaceMap().GetKeyByAttrName( sAttrName, &aLocalName );
61 0 : OUString sValue = xAttrList->getValueByIndex( i );
62 0 : const SvXMLTokenMap& rAttrTokenMap = GetImport().GetShapeImport()->Get3DObjectAttrTokenMap();
63 :
64 0 : switch(rAttrTokenMap.Get(nPrefix, aLocalName))
65 : {
66 : case XML_TOK_3DOBJECT_DRAWSTYLE_NAME:
67 : {
68 0 : maDrawStyleName = sValue;
69 0 : break;
70 : }
71 : case XML_TOK_3DOBJECT_TRANSFORM:
72 : {
73 0 : SdXMLImExTransform3D aTransform(sValue, GetImport().GetMM100UnitConverter());
74 0 : if(aTransform.NeedsAction())
75 0 : mbSetTransform = aTransform.GetFullHomogenTransform(mxHomMat);
76 0 : break;
77 : }
78 : }
79 0 : }
80 0 : }
81 :
82 : //////////////////////////////////////////////////////////////////////////////
83 :
84 0 : SdXML3DObjectContext::~SdXML3DObjectContext()
85 : {
86 0 : }
87 :
88 : //////////////////////////////////////////////////////////////////////////////
89 :
90 0 : void SdXML3DObjectContext::StartElement(const uno::Reference< xml::sax::XAttributeList>& xAttrList)
91 : {
92 0 : uno::Reference< beans::XPropertySet > xPropSet(mxShape, uno::UNO_QUERY);
93 0 : if(xPropSet.is())
94 : {
95 : // set parameters
96 0 : if(mbSetTransform)
97 : {
98 0 : uno::Any aAny;
99 0 : aAny <<= mxHomMat;
100 0 : xPropSet->setPropertyValue(OUString(RTL_CONSTASCII_USTRINGPARAM("D3DTransformMatrix")), aAny);
101 : }
102 :
103 : // call parent
104 0 : SdXMLShapeContext::StartElement(xAttrList);
105 0 : }
106 0 : }
107 :
108 : //////////////////////////////////////////////////////////////////////////////
109 :
110 0 : void SdXML3DObjectContext::EndElement()
111 : {
112 : // call parent
113 0 : SdXMLShapeContext::EndElement();
114 0 : }
115 :
116 : ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
117 : ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
118 :
119 0 : TYPEINIT1( SdXML3DCubeObjectShapeContext, SdXML3DObjectContext);
120 :
121 0 : SdXML3DCubeObjectShapeContext::SdXML3DCubeObjectShapeContext(
122 : SvXMLImport& rImport,
123 : sal_uInt16 nPrfx,
124 : const OUString& rLocalName,
125 : const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
126 : uno::Reference< drawing::XShapes >& rShapes,
127 : sal_Bool bTemporaryShape)
128 : : SdXML3DObjectContext( rImport, nPrfx, rLocalName, xAttrList, rShapes, bTemporaryShape ),
129 : maMinEdge(-2500.0, -2500.0, -2500.0),
130 : maMaxEdge(2500.0, 2500.0, 2500.0),
131 : mbMinEdgeUsed(sal_False),
132 0 : mbMaxEdgeUsed(sal_False)
133 : {
134 0 : sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
135 0 : for(sal_Int16 i=0; i < nAttrCount; i++)
136 : {
137 0 : OUString sAttrName = xAttrList->getNameByIndex( i );
138 0 : OUString aLocalName;
139 0 : sal_uInt16 nPrefix = GetImport().GetNamespaceMap().GetKeyByAttrName( sAttrName, &aLocalName );
140 0 : OUString sValue = xAttrList->getValueByIndex( i );
141 0 : const SvXMLTokenMap& rAttrTokenMap = GetImport().GetShapeImport()->Get3DCubeObjectAttrTokenMap();
142 :
143 0 : switch(rAttrTokenMap.Get(nPrefix, aLocalName))
144 : {
145 : case XML_TOK_3DCUBEOBJ_MINEDGE:
146 : {
147 0 : ::basegfx::B3DVector aNewVec;
148 0 : GetImport().GetMM100UnitConverter().convertB3DVector(aNewVec, sValue);
149 :
150 0 : if(aNewVec != maMinEdge)
151 : {
152 0 : maMinEdge = aNewVec;
153 0 : mbMinEdgeUsed = sal_True;
154 : }
155 0 : break;
156 : }
157 : case XML_TOK_3DCUBEOBJ_MAXEDGE:
158 : {
159 0 : ::basegfx::B3DVector aNewVec;
160 0 : GetImport().GetMM100UnitConverter().convertB3DVector(aNewVec, sValue);
161 :
162 0 : if(aNewVec != maMaxEdge)
163 : {
164 0 : maMaxEdge = aNewVec;
165 0 : mbMaxEdgeUsed = sal_True;
166 : }
167 0 : break;
168 : }
169 : }
170 0 : }
171 0 : }
172 :
173 : //////////////////////////////////////////////////////////////////////////////
174 :
175 0 : SdXML3DCubeObjectShapeContext::~SdXML3DCubeObjectShapeContext()
176 : {
177 0 : }
178 :
179 : //////////////////////////////////////////////////////////////////////////////
180 :
181 0 : void SdXML3DCubeObjectShapeContext::StartElement(const uno::Reference< xml::sax::XAttributeList>& xAttrList)
182 : {
183 : // create shape
184 0 : AddShape( "com.sun.star.drawing.Shape3DCubeObject" );
185 0 : if(mxShape.is())
186 : {
187 : // add, set style and properties from base shape
188 0 : SetStyle();
189 0 : SdXML3DObjectContext::StartElement(xAttrList);
190 :
191 : // set local parameters on shape
192 0 : uno::Reference< beans::XPropertySet > xPropSet(mxShape, uno::UNO_QUERY);
193 0 : if(xPropSet.is())
194 : {
195 : // set parameters
196 0 : drawing::Position3D aPosition3D;
197 0 : drawing::Direction3D aDirection3D;
198 :
199 : // convert from min, max to size to be set
200 0 : maMaxEdge = maMaxEdge - maMinEdge;
201 :
202 0 : aPosition3D.PositionX = maMinEdge.getX();
203 0 : aPosition3D.PositionY = maMinEdge.getY();
204 0 : aPosition3D.PositionZ = maMinEdge.getZ();
205 :
206 0 : aDirection3D.DirectionX = maMaxEdge.getX();
207 0 : aDirection3D.DirectionY = maMaxEdge.getY();
208 0 : aDirection3D.DirectionZ = maMaxEdge.getZ();
209 :
210 0 : uno::Any aAny;
211 0 : aAny <<= aPosition3D;
212 0 : xPropSet->setPropertyValue(OUString(RTL_CONSTASCII_USTRINGPARAM("D3DPosition")), aAny);
213 0 : aAny <<= aDirection3D;
214 0 : xPropSet->setPropertyValue(OUString(RTL_CONSTASCII_USTRINGPARAM("D3DSize")), aAny);
215 0 : }
216 : }
217 0 : }
218 :
219 : //////////////////////////////////////////////////////////////////////////////
220 :
221 0 : void SdXML3DCubeObjectShapeContext::EndElement()
222 : {
223 : // call parent
224 0 : SdXML3DObjectContext::EndElement();
225 0 : }
226 :
227 : ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
228 : ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
229 :
230 0 : TYPEINIT1( SdXML3DSphereObjectShapeContext, SdXML3DObjectContext);
231 :
232 0 : SdXML3DSphereObjectShapeContext::SdXML3DSphereObjectShapeContext(
233 : SvXMLImport& rImport,
234 : sal_uInt16 nPrfx,
235 : const OUString& rLocalName,
236 : const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
237 : uno::Reference< drawing::XShapes >& rShapes,
238 : sal_Bool bTemporaryShape)
239 : : SdXML3DObjectContext( rImport, nPrfx, rLocalName, xAttrList, rShapes, bTemporaryShape ),
240 : maCenter(0.0, 0.0, 0.0),
241 : maSize(5000.0, 5000.0, 5000.0),
242 : mbCenterUsed(sal_False),
243 0 : mbSizeUsed(sal_False)
244 : {
245 0 : sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
246 0 : for(sal_Int16 i=0; i < nAttrCount; i++)
247 : {
248 0 : OUString sAttrName = xAttrList->getNameByIndex( i );
249 0 : OUString aLocalName;
250 0 : sal_uInt16 nPrefix = GetImport().GetNamespaceMap().GetKeyByAttrName( sAttrName, &aLocalName );
251 0 : OUString sValue = xAttrList->getValueByIndex( i );
252 0 : const SvXMLTokenMap& rAttrTokenMap = GetImport().GetShapeImport()->Get3DSphereObjectAttrTokenMap();
253 :
254 0 : switch(rAttrTokenMap.Get(nPrefix, aLocalName))
255 : {
256 : case XML_TOK_3DSPHEREOBJ_CENTER:
257 : {
258 0 : ::basegfx::B3DVector aNewVec;
259 0 : GetImport().GetMM100UnitConverter().convertB3DVector(aNewVec, sValue);
260 :
261 0 : if(aNewVec != maCenter)
262 : {
263 0 : maCenter = aNewVec;
264 0 : mbCenterUsed = sal_True;
265 : }
266 0 : break;
267 : }
268 : case XML_TOK_3DSPHEREOBJ_SIZE:
269 : {
270 0 : ::basegfx::B3DVector aNewVec;
271 0 : GetImport().GetMM100UnitConverter().convertB3DVector(aNewVec, sValue);
272 :
273 0 : if(aNewVec != maSize)
274 : {
275 0 : maSize = aNewVec;
276 0 : mbSizeUsed = sal_True;
277 : }
278 0 : break;
279 : }
280 : }
281 0 : }
282 0 : }
283 :
284 : //////////////////////////////////////////////////////////////////////////////
285 :
286 0 : SdXML3DSphereObjectShapeContext::~SdXML3DSphereObjectShapeContext()
287 : {
288 0 : }
289 :
290 : //////////////////////////////////////////////////////////////////////////////
291 :
292 0 : void SdXML3DSphereObjectShapeContext::StartElement(const uno::Reference< xml::sax::XAttributeList>& xAttrList)
293 : {
294 : // create shape
295 0 : AddShape( "com.sun.star.drawing.Shape3DSphereObject" );
296 0 : if(mxShape.is())
297 : {
298 : // add, set style and properties from base shape
299 0 : SetStyle();
300 0 : SdXML3DObjectContext::StartElement(xAttrList);
301 :
302 : // set local parameters on shape
303 0 : uno::Reference< beans::XPropertySet > xPropSet(mxShape, uno::UNO_QUERY);
304 0 : if(xPropSet.is())
305 : {
306 : // set parameters
307 0 : drawing::Position3D aPosition3D;
308 0 : drawing::Direction3D aDirection3D;
309 :
310 0 : aPosition3D.PositionX = maCenter.getX();
311 0 : aPosition3D.PositionY = maCenter.getY();
312 0 : aPosition3D.PositionZ = maCenter.getZ();
313 :
314 0 : aDirection3D.DirectionX = maSize.getX();
315 0 : aDirection3D.DirectionY = maSize.getY();
316 0 : aDirection3D.DirectionZ = maSize.getZ();
317 :
318 0 : uno::Any aAny;
319 0 : aAny <<= aPosition3D;
320 0 : xPropSet->setPropertyValue(OUString(RTL_CONSTASCII_USTRINGPARAM("D3DPosition")), aAny);
321 0 : aAny <<= aDirection3D;
322 0 : xPropSet->setPropertyValue(OUString(RTL_CONSTASCII_USTRINGPARAM("D3DSize")), aAny);
323 0 : }
324 : }
325 0 : }
326 :
327 : //////////////////////////////////////////////////////////////////////////////
328 :
329 0 : void SdXML3DSphereObjectShapeContext::EndElement()
330 : {
331 : // call parent
332 0 : SdXML3DObjectContext::EndElement();
333 0 : }
334 :
335 : ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
336 : ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
337 :
338 0 : TYPEINIT1( SdXML3DPolygonBasedShapeContext, SdXML3DObjectContext );
339 :
340 0 : SdXML3DPolygonBasedShapeContext::SdXML3DPolygonBasedShapeContext(
341 : SvXMLImport& rImport,
342 : sal_uInt16 nPrfx,
343 : const OUString& rLocalName,
344 : const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
345 : uno::Reference< drawing::XShapes >& rShapes,
346 : sal_Bool bTemporaryShape)
347 0 : : SdXML3DObjectContext( rImport, nPrfx, rLocalName, xAttrList, rShapes, bTemporaryShape )
348 : {
349 0 : sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
350 0 : for(sal_Int16 i=0; i < nAttrCount; i++)
351 : {
352 0 : OUString sAttrName = xAttrList->getNameByIndex( i );
353 0 : OUString aLocalName;
354 0 : sal_uInt16 nPrefix = GetImport().GetNamespaceMap().GetKeyByAttrName( sAttrName, &aLocalName );
355 0 : OUString sValue = xAttrList->getValueByIndex( i );
356 0 : const SvXMLTokenMap& rAttrTokenMap = GetImport().GetShapeImport()->Get3DPolygonBasedAttrTokenMap();
357 :
358 0 : switch(rAttrTokenMap.Get(nPrefix, aLocalName))
359 : {
360 : case XML_TOK_3DPOLYGONBASED_VIEWBOX:
361 : {
362 0 : maViewBox = sValue;
363 0 : break;
364 : }
365 : case XML_TOK_3DPOLYGONBASED_D:
366 : {
367 0 : maPoints = sValue;
368 0 : break;
369 : }
370 : }
371 0 : }
372 0 : }
373 :
374 : //////////////////////////////////////////////////////////////////////////////
375 :
376 0 : SdXML3DPolygonBasedShapeContext::~SdXML3DPolygonBasedShapeContext()
377 : {
378 0 : }
379 :
380 : //////////////////////////////////////////////////////////////////////////////
381 :
382 0 : void SdXML3DPolygonBasedShapeContext::StartElement(const uno::Reference< xml::sax::XAttributeList>& xAttrList)
383 : {
384 0 : uno::Reference< beans::XPropertySet > xPropSet(mxShape, uno::UNO_QUERY);
385 0 : if(xPropSet.is())
386 : {
387 : // set parameters
388 0 : if(!maPoints.isEmpty() && !maViewBox.isEmpty())
389 : {
390 0 : SdXMLImExViewBox aViewBox(maViewBox, GetImport().GetMM100UnitConverter());
391 0 : awt::Point aMinPoint(aViewBox.GetX(), aViewBox.GetY());
392 0 : awt::Size aMaxSize(aViewBox.GetWidth(), aViewBox.GetHeight());
393 0 : SdXMLImExSvgDElement aPoints(maPoints, aViewBox, aMinPoint, aMaxSize, GetImport());
394 :
395 : // convert to double sequences
396 : drawing::PointSequenceSequence& xPoSeSe =
397 0 : (drawing::PointSequenceSequence&)aPoints.GetPointSequenceSequence();
398 0 : sal_Int32 nOuterSequenceCount = xPoSeSe.getLength();
399 0 : drawing::PointSequence* pInnerSequence = xPoSeSe.getArray();
400 :
401 0 : drawing::PolyPolygonShape3D xPolyPolygon3D;
402 0 : xPolyPolygon3D.SequenceX.realloc(nOuterSequenceCount);
403 0 : xPolyPolygon3D.SequenceY.realloc(nOuterSequenceCount);
404 0 : xPolyPolygon3D.SequenceZ.realloc(nOuterSequenceCount);
405 0 : drawing::DoubleSequence* pOuterSequenceX = xPolyPolygon3D.SequenceX.getArray();
406 0 : drawing::DoubleSequence* pOuterSequenceY = xPolyPolygon3D.SequenceY.getArray();
407 0 : drawing::DoubleSequence* pOuterSequenceZ = xPolyPolygon3D.SequenceZ.getArray();
408 :
409 0 : for(sal_Int32 a(0L); a < nOuterSequenceCount; a++)
410 : {
411 0 : sal_Int32 nInnerSequenceCount(pInnerSequence->getLength());
412 0 : awt::Point* pArray = pInnerSequence->getArray();
413 :
414 0 : pOuterSequenceX->realloc(nInnerSequenceCount);
415 0 : pOuterSequenceY->realloc(nInnerSequenceCount);
416 0 : pOuterSequenceZ->realloc(nInnerSequenceCount);
417 0 : double* pInnerSequenceX = pOuterSequenceX->getArray();
418 0 : double* pInnerSequenceY = pOuterSequenceY->getArray();
419 0 : double* pInnerSequenceZ = pOuterSequenceZ->getArray();
420 :
421 0 : for(sal_Int32 b(0L); b < nInnerSequenceCount; b++)
422 : {
423 0 : *pInnerSequenceX++ = pArray->X;
424 0 : *pInnerSequenceY++ = pArray->Y;
425 0 : *pInnerSequenceZ++ = 0.0;
426 0 : pArray++;
427 : }
428 0 : pInnerSequence++;
429 :
430 0 : pOuterSequenceX++;
431 0 : pOuterSequenceY++;
432 0 : pOuterSequenceZ++;
433 : }
434 :
435 : // set poly
436 0 : uno::Any aAny;
437 0 : aAny <<= xPolyPolygon3D;
438 0 : xPropSet->setPropertyValue(
439 0 : OUString(RTL_CONSTASCII_USTRINGPARAM("D3DPolyPolygon3D")), aAny);
440 : }
441 :
442 : // call parent
443 0 : SdXML3DObjectContext::StartElement(xAttrList);
444 0 : }
445 0 : }
446 :
447 : //////////////////////////////////////////////////////////////////////////////
448 :
449 0 : void SdXML3DPolygonBasedShapeContext::EndElement()
450 : {
451 : // call parent
452 0 : SdXML3DObjectContext::EndElement();
453 0 : }
454 :
455 : ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
456 : ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
457 :
458 0 : TYPEINIT1( SdXML3DLatheObjectShapeContext, SdXML3DPolygonBasedShapeContext);
459 :
460 0 : SdXML3DLatheObjectShapeContext::SdXML3DLatheObjectShapeContext(
461 : SvXMLImport& rImport,
462 : sal_uInt16 nPrfx,
463 : const OUString& rLocalName,
464 : const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
465 : uno::Reference< drawing::XShapes >& rShapes,
466 : sal_Bool bTemporaryShape)
467 0 : : SdXML3DPolygonBasedShapeContext( rImport, nPrfx, rLocalName, xAttrList, rShapes, bTemporaryShape )
468 : {
469 0 : }
470 :
471 : //////////////////////////////////////////////////////////////////////////////
472 :
473 0 : SdXML3DLatheObjectShapeContext::~SdXML3DLatheObjectShapeContext()
474 : {
475 0 : }
476 :
477 : //////////////////////////////////////////////////////////////////////////////
478 :
479 0 : void SdXML3DLatheObjectShapeContext::StartElement(const uno::Reference< xml::sax::XAttributeList>& xAttrList)
480 : {
481 : // create shape
482 0 : AddShape( "com.sun.star.drawing.Shape3DLatheObject" );
483 0 : if(mxShape.is())
484 : {
485 : // add, set style and properties from base shape
486 0 : SetStyle();
487 0 : SdXML3DPolygonBasedShapeContext::StartElement(xAttrList);
488 : }
489 0 : }
490 :
491 : //////////////////////////////////////////////////////////////////////////////
492 :
493 0 : void SdXML3DLatheObjectShapeContext::EndElement()
494 : {
495 : // call parent
496 0 : SdXML3DPolygonBasedShapeContext::EndElement();
497 0 : }
498 :
499 : ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
500 : ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
501 :
502 0 : TYPEINIT1( SdXML3DExtrudeObjectShapeContext, SdXML3DPolygonBasedShapeContext);
503 :
504 0 : SdXML3DExtrudeObjectShapeContext::SdXML3DExtrudeObjectShapeContext(
505 : SvXMLImport& rImport,
506 : sal_uInt16 nPrfx,
507 : const OUString& rLocalName,
508 : const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
509 : uno::Reference< drawing::XShapes >& rShapes,
510 : sal_Bool bTemporaryShape)
511 0 : : SdXML3DPolygonBasedShapeContext( rImport, nPrfx, rLocalName, xAttrList, rShapes, bTemporaryShape )
512 : {
513 0 : }
514 :
515 : //////////////////////////////////////////////////////////////////////////////
516 :
517 0 : SdXML3DExtrudeObjectShapeContext::~SdXML3DExtrudeObjectShapeContext()
518 : {
519 0 : }
520 :
521 : //////////////////////////////////////////////////////////////////////////////
522 :
523 0 : void SdXML3DExtrudeObjectShapeContext::StartElement(const uno::Reference< xml::sax::XAttributeList>& xAttrList)
524 : {
525 0 : AddShape( "com.sun.star.drawing.Shape3DExtrudeObject" );
526 0 : if(mxShape.is())
527 : {
528 : // add, set style and properties from base shape
529 0 : SetStyle();
530 0 : SdXML3DPolygonBasedShapeContext::StartElement(xAttrList);
531 : }
532 0 : }
533 :
534 : //////////////////////////////////////////////////////////////////////////////
535 :
536 0 : void SdXML3DExtrudeObjectShapeContext::EndElement()
537 : {
538 : // call parent
539 0 : SdXML3DPolygonBasedShapeContext::EndElement();
540 0 : }
541 :
542 : // EOF
543 :
544 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|