Coverage Report

Created: 2025-07-07 10:01

/src/libreoffice/svx/source/sdr/contact/viewobjectcontactofsdrpage.cxx
Line
Count
Source (jump to first uncovered line)
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
21
#include <sdr/contact/viewobjectcontactofsdrpage.hxx>
22
#include <svx/sdr/contact/displayinfo.hxx>
23
#include <sdr/contact/viewcontactofsdrpage.hxx>
24
#include <svx/svdview.hxx>
25
#include <svx/svdpage.hxx>
26
#include <svx/svdpagv.hxx>
27
#include <svx/sdr/contact/objectcontact.hxx>
28
#include <drawinglayer/primitive2d/backgroundcolorprimitive2d.hxx>
29
#include <basegfx/polygon/b2dpolygontools.hxx>
30
#include <drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx>
31
#include <drawinglayer/primitive2d/gridprimitive2d.hxx>
32
#include <drawinglayer/primitive2d/helplineprimitive2d.hxx>
33
#include <basegfx/polygon/b2dpolygon.hxx>
34
#include <sdr/primitive2d/sdrprimitivetools.hxx>
35
36
using namespace com::sun::star;
37
38
namespace sdr::contact {
39
40
const SdrPage& ViewObjectContactOfPageSubObject::getPage() const
41
0
{
42
0
    return static_cast< ViewContactOfPageSubObject& >(GetViewContact()).getPage();
43
0
}
44
45
ViewObjectContactOfPageSubObject::ViewObjectContactOfPageSubObject(ObjectContact& rObjectContact, ViewContact& rViewContact)
46
18.0k
:   ViewObjectContact(rObjectContact, rViewContact)
47
18.0k
{
48
18.0k
}
49
50
ViewObjectContactOfPageSubObject::~ViewObjectContactOfPageSubObject()
51
18.0k
{
52
18.0k
}
53
54
bool ViewObjectContactOfPageSubObject::isPrimitiveVisible(const DisplayInfo& rDisplayInfo) const
55
49.2k
{
56
49.2k
    if(rDisplayInfo.GetSubContentActive())
57
0
    {
58
0
        return false;
59
0
    }
60
61
49.2k
    if(rDisplayInfo.GetControlLayerProcessingActive())
62
16.4k
    {
63
16.4k
        return false;
64
16.4k
    }
65
66
32.8k
    if(!GetObjectContact().isPageDecorationActive())
67
32.8k
    {
68
32.8k
        return false;
69
32.8k
    }
70
71
0
    if(GetObjectContact().isOutputToPrinter())
72
0
    {
73
0
        return false;
74
0
    }
75
76
0
    if(!GetObjectContact().TryToGetSdrPageView())
77
0
    {
78
0
        return false;
79
0
    }
80
81
0
    return true;
82
0
}
83
84
bool ViewObjectContactOfPageSubObject::isPrimitiveGhosted(const DisplayInfo& /*rDisplayInfo*/) const
85
0
{
86
    // suppress ghosted for page parts
87
0
    return false;
88
0
}
89
90
ViewObjectContactOfPageBackground::ViewObjectContactOfPageBackground(ObjectContact& rObjectContact, ViewContact& rViewContact)
91
1.64k
:   ViewObjectContactOfPageSubObject(rObjectContact, rViewContact)
92
1.64k
{
93
1.64k
}
94
95
ViewObjectContactOfPageBackground::~ViewObjectContactOfPageBackground()
96
{
97
}
98
99
bool ViewObjectContactOfPageBackground::isPrimitiveVisible(const DisplayInfo& rDisplayInfo) const
100
4.92k
{
101
4.92k
    if(!ViewObjectContactOfPageSubObject::isPrimitiveVisible(rDisplayInfo))
102
4.92k
    {
103
4.92k
        return false;
104
4.92k
    }
105
106
    // no page background for preview renderers
107
0
    if(GetObjectContact().IsPreviewRenderer())
108
0
    {
109
0
        return false;
110
0
    }
111
112
0
    return true;
113
0
}
114
115
void ViewObjectContactOfPageBackground::createPrimitive2DSequence(const DisplayInfo& /*rDisplayInfo*/, drawinglayer::primitive2d::Primitive2DDecompositionVisitor& rVisitor) const
116
0
{
117
    // Initialize background. Dependent of IsPageVisible, use ApplicationBackgroundColor or ApplicationDocumentColor. Most
118
    // old renderers for export (html, pdf, gallery, ...) set the page to not visible (SetPageVisible(false)). They expect the
119
    // given OutputDevice to be initialized with the ApplicationDocumentColor then.
120
0
    const SdrPageView* pPageView = GetObjectContact().TryToGetSdrPageView();
121
122
0
    if(pPageView)
123
0
    {
124
0
        const SdrView& rView = pPageView->GetView();
125
0
        Color aInitColor;
126
127
0
        if(rView.IsPageVisible())
128
0
        {
129
0
            aInitColor = pPageView->GetApplicationBackgroundColor();
130
0
        }
131
0
        else
132
0
        {
133
0
            aInitColor = pPageView->GetApplicationDocumentColor();
134
135
0
            if(COL_AUTO == aInitColor)
136
0
            {
137
0
                const svtools::ColorConfig aColorConfig;
138
0
                aInitColor = aColorConfig.GetColorValue(svtools::DOCCOLOR).nColor;
139
0
            }
140
0
        }
141
142
        // init background with InitColor
143
0
        const basegfx::BColor aRGBColor(aInitColor.getBColor());
144
0
        rVisitor.visit(new drawinglayer::primitive2d::BackgroundColorPrimitive2D(aRGBColor, (255 - aInitColor.GetAlpha()) / 255.0));
145
0
    }
146
0
}
147
148
ViewObjectContactOfMasterPage::ViewObjectContactOfMasterPage(ObjectContact& rObjectContact, ViewContact& rViewContact)
149
1.64k
:   ViewObjectContactOfPageSubObject(rObjectContact, rViewContact)
150
1.64k
{
151
1.64k
}
152
153
ViewObjectContactOfMasterPage::~ViewObjectContactOfMasterPage()
154
{
155
}
156
157
bool ViewObjectContactOfMasterPage::isPrimitiveVisible(const DisplayInfo& rDisplayInfo) const
158
4.92k
{
159
4.92k
    if(!ViewObjectContactOfPageSubObject::isPrimitiveVisible(rDisplayInfo))
160
4.92k
    {
161
4.92k
        return false;
162
4.92k
    }
163
164
    // this object is only used for MasterPages. When not the MasterPage is
165
    // displayed as a page, but another page is using it as sub-object, the
166
    // geometry needs to be hidden
167
0
    if(rDisplayInfo.GetSubContentActive())
168
0
    {
169
0
        return false;
170
0
    }
171
172
0
    return true;
173
0
}
174
175
ViewObjectContactOfPageFill::ViewObjectContactOfPageFill(ObjectContact& rObjectContact, ViewContact& rViewContact)
176
1.64k
:   ViewObjectContactOfPageSubObject(rObjectContact, rViewContact)
177
1.64k
{
178
1.64k
}
179
180
ViewObjectContactOfPageFill::~ViewObjectContactOfPageFill()
181
{
182
}
183
184
bool ViewObjectContactOfPageFill::isPrimitiveVisible(const DisplayInfo& rDisplayInfo) const
185
4.92k
{
186
4.92k
    if(!ViewObjectContactOfPageSubObject::isPrimitiveVisible(rDisplayInfo))
187
4.92k
    {
188
4.92k
        return false;
189
4.92k
    }
190
191
0
    SdrPageView* pSdrPageView = GetObjectContact().TryToGetSdrPageView();
192
193
0
    if(!pSdrPageView)
194
0
    {
195
0
        return false;
196
0
    }
197
198
0
    if(!pSdrPageView->GetView().IsPageVisible())
199
0
    {
200
0
        return false;
201
0
    }
202
203
0
    return true;
204
0
}
205
206
void ViewObjectContactOfPageFill::createPrimitive2DSequence(const DisplayInfo& /*rDisplayInfo*/, drawinglayer::primitive2d::Primitive2DDecompositionVisitor& rVisitor) const
207
0
{
208
0
    const SdrPageView* pPageView = GetObjectContact().TryToGetSdrPageView();
209
210
0
    if(pPageView)
211
0
    {
212
0
        const SdrPage& rPage = getPage();
213
214
0
        const basegfx::B2DRange aPageFillRange(0.0, 0.0, static_cast<double>(rPage.GetWidth()), static_cast<double>(rPage.GetHeight()));
215
0
        const basegfx::B2DPolygon aPageFillPolygon(basegfx::utils::createPolygonFromRect(aPageFillRange));
216
0
        Color aPageFillColor;
217
218
0
        if(pPageView->GetApplicationDocumentColor() != COL_AUTO)
219
0
        {
220
0
            aPageFillColor = pPageView->GetApplicationDocumentColor();
221
0
        }
222
0
        else
223
0
        {
224
0
            const svtools::ColorConfig aColorConfig;
225
0
            aPageFillColor = aColorConfig.GetColorValue(svtools::DOCCOLOR).nColor;
226
0
        }
227
228
        // create and add primitive
229
0
        const basegfx::BColor aRGBColor(aPageFillColor.getBColor());
230
0
        rVisitor.visit(new drawinglayer::primitive2d::PolyPolygonColorPrimitive2D(basegfx::B2DPolyPolygon(aPageFillPolygon), aRGBColor));
231
0
    }
232
0
}
233
234
ViewObjectContactOfPageShadow::ViewObjectContactOfPageShadow(ObjectContact& rObjectContact, ViewContact& rViewContact)
235
1.64k
:   ViewObjectContactOfPageSubObject(rObjectContact, rViewContact)
236
1.64k
{
237
1.64k
}
238
239
ViewObjectContactOfPageShadow::~ViewObjectContactOfPageShadow()
240
{
241
}
242
243
bool ViewObjectContactOfPageShadow::isPrimitiveVisible(const DisplayInfo& rDisplayInfo) const
244
4.92k
{
245
4.92k
    if(!ViewObjectContactOfPageSubObject::isPrimitiveVisible(rDisplayInfo))
246
4.92k
    {
247
4.92k
        return false;
248
4.92k
    }
249
250
0
    SdrPageView* pSdrPageView = GetObjectContact().TryToGetSdrPageView();
251
252
0
    if(!pSdrPageView)
253
0
    {
254
0
        return false;
255
0
    }
256
257
0
    if(!pSdrPageView->GetView().IsPageVisible())
258
0
    {
259
0
        return false;
260
0
    }
261
262
0
    if(!pSdrPageView->GetView().IsPageShadowVisible())
263
0
    {
264
0
        return false;
265
0
    }
266
267
    // no page shadow for preview renderers
268
0
    if(GetObjectContact().IsPreviewRenderer())
269
0
    {
270
0
        return false;
271
0
    }
272
273
    // no page shadow for high contrast mode
274
0
    if(GetObjectContact().isDrawModeHighContrast())
275
0
    {
276
0
        return false;
277
0
    }
278
279
0
    return true;
280
0
}
281
282
ViewObjectContactOfOuterPageBorder::ViewObjectContactOfOuterPageBorder(ObjectContact& rObjectContact, ViewContact& rViewContact)
283
1.64k
:   ViewObjectContactOfPageSubObject(rObjectContact, rViewContact)
284
1.64k
{
285
1.64k
}
286
287
ViewObjectContactOfOuterPageBorder::~ViewObjectContactOfOuterPageBorder()
288
{
289
}
290
291
bool ViewObjectContactOfOuterPageBorder::isPrimitiveVisible(const DisplayInfo& rDisplayInfo) const
292
4.92k
{
293
4.92k
    if(!ViewObjectContactOfPageSubObject::isPrimitiveVisible(rDisplayInfo))
294
4.92k
    {
295
4.92k
        return false;
296
4.92k
    }
297
298
0
    SdrPageView* pSdrPageView = GetObjectContact().TryToGetSdrPageView();
299
300
0
    if(!pSdrPageView)
301
0
    {
302
0
        return false;
303
0
    }
304
305
0
    const SdrView& rView = pSdrPageView->GetView();
306
307
0
    return rView.IsPageVisible() || !rView.IsPageBorderVisible();
308
0
}
309
310
ViewObjectContactOfInnerPageBorder::ViewObjectContactOfInnerPageBorder(ObjectContact& rObjectContact, ViewContact& rViewContact)
311
1.64k
:   ViewObjectContactOfPageSubObject(rObjectContact, rViewContact)
312
1.64k
{
313
1.64k
}
314
315
ViewObjectContactOfInnerPageBorder::~ViewObjectContactOfInnerPageBorder()
316
{
317
}
318
319
bool ViewObjectContactOfInnerPageBorder::isPrimitiveVisible(const DisplayInfo& rDisplayInfo) const
320
4.92k
{
321
4.92k
    if(!ViewObjectContactOfPageSubObject::isPrimitiveVisible(rDisplayInfo))
322
4.92k
    {
323
4.92k
        return false;
324
4.92k
    }
325
326
0
    SdrPageView* pSdrPageView = GetObjectContact().TryToGetSdrPageView();
327
328
0
    if(!pSdrPageView)
329
0
    {
330
0
        return false;
331
0
    }
332
333
0
    if(!pSdrPageView->GetView().IsBordVisible())
334
0
    {
335
0
        return false;
336
0
    }
337
338
0
    const SdrPage& rPage = getPage();
339
340
0
    if(!rPage.GetLeftBorder() && !rPage.GetUpperBorder() && !rPage.GetRightBorder() && !rPage.GetLowerBorder())
341
0
    {
342
0
        return false;
343
0
    }
344
345
    // no inner page border for preview renderers
346
0
    if(GetObjectContact().IsPreviewRenderer())
347
0
    {
348
0
        return false;
349
0
    }
350
351
0
    return true;
352
0
}
353
354
ViewObjectContactOfPageHierarchy::ViewObjectContactOfPageHierarchy(ObjectContact& rObjectContact, ViewContact& rViewContact)
355
1.64k
:   ViewObjectContactOfPageSubObject(rObjectContact, rViewContact)
356
1.64k
{
357
1.64k
}
358
359
ViewObjectContactOfPageHierarchy::~ViewObjectContactOfPageHierarchy()
360
{
361
}
362
363
void ViewObjectContactOfPageHierarchy::getPrimitive2DSequenceHierarchy(DisplayInfo& rDisplayInfo, drawinglayer::primitive2d::Primitive2DDecompositionVisitor& rVisitor) const
364
4.92k
{
365
    // process local sub-hierarchy
366
4.92k
    const sal_uInt32 nSubHierarchyCount(GetViewContact().GetObjectCount());
367
368
4.92k
    if(!nSubHierarchyCount)
369
0
        return;
370
371
4.92k
    getPrimitive2DSequenceSubHierarchy(rDisplayInfo, rVisitor);
372
4.92k
}
373
374
ViewObjectContactOfPageGrid::ViewObjectContactOfPageGrid(ObjectContact& rObjectContact, ViewContact& rViewContact)
375
3.28k
:   ViewObjectContactOfPageSubObject(rObjectContact, rViewContact)
376
3.28k
{
377
3.28k
}
378
379
ViewObjectContactOfPageGrid::~ViewObjectContactOfPageGrid()
380
{
381
}
382
383
bool ViewObjectContactOfPageGrid::isPrimitiveVisible(const DisplayInfo& rDisplayInfo) const
384
9.85k
{
385
9.85k
    if(!ViewObjectContactOfPageSubObject::isPrimitiveVisible(rDisplayInfo))
386
9.85k
    {
387
9.85k
        return false;
388
9.85k
    }
389
390
0
    SdrPageView* pSdrPageView = GetObjectContact().TryToGetSdrPageView();
391
392
0
    if(!pSdrPageView)
393
0
    {
394
0
        return false;
395
0
    }
396
397
0
    const SdrView& rView = pSdrPageView->GetView();
398
399
0
    if(!rView.IsGridVisible())
400
0
    {
401
0
        return false;
402
0
    }
403
404
    // no page grid for preview renderers
405
0
    if(GetObjectContact().IsPreviewRenderer())
406
0
    {
407
0
        return false;
408
0
    }
409
410
0
    if(static_cast< ViewContactOfGrid& >(GetViewContact()).getFront() != rView.IsGridFront())
411
0
    {
412
0
        return false;
413
0
    }
414
415
0
    return true;
416
0
}
417
418
void ViewObjectContactOfPageGrid::createPrimitive2DSequence(const DisplayInfo& /*rDisplayInfo*/, drawinglayer::primitive2d::Primitive2DDecompositionVisitor& rVisitor) const
419
0
{
420
0
    const SdrPageView* pPageView = GetObjectContact().TryToGetSdrPageView();
421
422
0
    if(pPageView)
423
0
    {
424
0
        const SdrView& rView = pPageView->GetView();
425
0
        const SdrPage& rPage = getPage();
426
0
        const Color aGridColor(rView.GetGridColor());
427
0
        const basegfx::BColor aRGBGridColor(aGridColor.getBColor());
428
429
0
        basegfx::B2DHomMatrix aGridMatrix;
430
0
        aGridMatrix.set(0, 0, static_cast<double>(rPage.GetWidth() - (rPage.GetRightBorder() + rPage.GetLeftBorder())));
431
0
        aGridMatrix.set(1, 1, static_cast<double>(rPage.GetHeight() - (rPage.GetLowerBorder() + rPage.GetUpperBorder())));
432
0
        aGridMatrix.set(0, 2, static_cast<double>(rPage.GetLeftBorder()));
433
0
        aGridMatrix.set(1, 2, static_cast<double>(rPage.GetUpperBorder()));
434
435
0
        const Size aRaw(rView.GetGridCoarse());
436
0
        const Size aFine(rView.GetGridFine());
437
0
        const double fWidthX(aRaw.getWidth());
438
0
        const double fWidthY(aRaw.getHeight());
439
0
        const sal_uInt32 nSubdivisionsX(aFine.getWidth() ? aRaw.getWidth() / aFine.getWidth() : 0);
440
0
        const sal_uInt32 nSubdivisionsY(aFine.getHeight() ? aRaw.getHeight() / aFine.getHeight() : 0);
441
442
0
        rVisitor.visit(new drawinglayer::primitive2d::GridPrimitive2D(
443
0
            aGridMatrix, fWidthX, fWidthY, 10.0, 3.0, nSubdivisionsX, nSubdivisionsY, aRGBGridColor,
444
0
            drawinglayer::primitive2d::createDefaultCross_3x3(aRGBGridColor)));
445
0
    }
446
0
}
447
448
ViewObjectContactOfPageHelplines::ViewObjectContactOfPageHelplines(ObjectContact& rObjectContact, ViewContact& rViewContact)
449
3.28k
:   ViewObjectContactOfPageSubObject(rObjectContact, rViewContact)
450
3.28k
{
451
3.28k
}
452
453
ViewObjectContactOfPageHelplines::~ViewObjectContactOfPageHelplines()
454
{
455
}
456
457
bool ViewObjectContactOfPageHelplines::isPrimitiveVisible(const DisplayInfo& rDisplayInfo) const
458
9.85k
{
459
9.85k
    if(!ViewObjectContactOfPageSubObject::isPrimitiveVisible(rDisplayInfo))
460
9.85k
    {
461
9.85k
        return false;
462
9.85k
    }
463
464
0
    SdrPageView* pSdrPageView = GetObjectContact().TryToGetSdrPageView();
465
466
0
    if(!pSdrPageView)
467
0
    {
468
0
        return false;
469
0
    }
470
471
0
    const SdrView& rView = pSdrPageView->GetView();
472
473
0
    if(!rView.IsHlplVisible())
474
0
    {
475
0
        return false;
476
0
    }
477
478
    // no helplines for preview renderers
479
0
    if(GetObjectContact().IsPreviewRenderer())
480
0
    {
481
0
        return false;
482
0
    }
483
484
0
    if(static_cast< ViewContactOfHelplines& >(GetViewContact()).getFront() != rView.IsHlplFront())
485
0
    {
486
0
        return false;
487
0
    }
488
489
0
    return true;
490
0
}
491
492
void ViewObjectContactOfPageHelplines::createPrimitive2DSequence(const DisplayInfo& /*rDisplayInfo*/, drawinglayer::primitive2d::Primitive2DDecompositionVisitor& rVisitor) const
493
0
{
494
0
    const SdrPageView* pPageView = GetObjectContact().TryToGetSdrPageView();
495
496
0
    if(pPageView)
497
0
    {
498
0
        const SdrHelpLineList& rHelpLineList = pPageView->GetHelpLines();
499
0
        const sal_uInt32 nCount(rHelpLineList.GetCount());
500
501
0
        if(nCount)
502
0
        {
503
0
            const basegfx::BColor aRGBColorA(1.0, 1.0, 1.0);
504
0
            const basegfx::BColor aRGBColorB(0.0, 0.0, 0.0);
505
506
0
            for(sal_uInt32 a(0); a < nCount; a++)
507
0
            {
508
0
                const SdrHelpLine& rHelpLine = rHelpLineList[static_cast<sal_uInt16>(a)];
509
0
                const basegfx::B2DPoint aPosition(static_cast<double>(rHelpLine.GetPos().X()), static_cast<double>(rHelpLine.GetPos().Y()));
510
0
                const double fDiscreteDashLength(4.0);
511
512
0
                switch(rHelpLine.GetKind())
513
0
                {
514
0
                    default : // SdrHelpLineKind::Point
515
0
                    {
516
0
                        rVisitor.visit(new drawinglayer::primitive2d::HelplinePrimitive2D(
517
0
                            aPosition, basegfx::B2DVector(1.0, 0.0), drawinglayer::primitive2d::HelplineStyle2D::Point,
518
0
                            aRGBColorA, aRGBColorB, fDiscreteDashLength));
519
0
                        break;
520
0
                    }
521
0
                    case SdrHelpLineKind::Vertical :
522
0
                    {
523
0
                        rVisitor.visit(new drawinglayer::primitive2d::HelplinePrimitive2D(
524
0
                            aPosition, basegfx::B2DVector(0.0, 1.0), drawinglayer::primitive2d::HelplineStyle2D::Line,
525
0
                            aRGBColorA, aRGBColorB, fDiscreteDashLength));
526
0
                        break;
527
0
                    }
528
0
                    case SdrHelpLineKind::Horizontal :
529
0
                    {
530
0
                        rVisitor.visit(new drawinglayer::primitive2d::HelplinePrimitive2D(
531
0
                            aPosition, basegfx::B2DVector(1.0, 0.0), drawinglayer::primitive2d::HelplineStyle2D::Line,
532
0
                            aRGBColorA, aRGBColorB, fDiscreteDashLength));
533
0
                        break;
534
0
                    }
535
0
                }
536
0
            }
537
0
        }
538
0
    }
539
0
}
540
541
ViewObjectContactOfSdrPage::ViewObjectContactOfSdrPage(ObjectContact& rObjectContact, ViewContact& rViewContact)
542
69.2k
:   ViewObjectContact(rObjectContact, rViewContact)
543
69.2k
{
544
69.2k
}
545
546
ViewObjectContactOfSdrPage::~ViewObjectContactOfSdrPage()
547
69.2k
{
548
69.2k
}
549
550
void ViewObjectContactOfSdrPage::getPrimitive2DSequenceHierarchy(DisplayInfo& rDisplayInfo, drawinglayer::primitive2d::Primitive2DDecompositionVisitor& rVisitor) const
551
4.92k
{
552
    // process local sub-hierarchy
553
4.92k
    const sal_uInt32 nSubHierarchyCount(GetViewContact().GetObjectCount());
554
555
4.92k
    if(!nSubHierarchyCount)
556
0
        return;
557
558
4.92k
    const bool bDoGhostedDisplaying(
559
4.92k
        GetObjectContact().DoVisualizeEnteredGroup()
560
4.92k
        && !GetObjectContact().isOutputToPrinter()
561
4.92k
        && GetObjectContact().getActiveViewContact() == &GetViewContact());
562
563
4.92k
    if(bDoGhostedDisplaying)
564
4.92k
    {
565
4.92k
        rDisplayInfo.ClearGhostedDrawMode();
566
4.92k
    }
567
568
    // visit object hierarchy
569
4.92k
    getPrimitive2DSequenceSubHierarchy(rDisplayInfo, rVisitor);
570
571
4.92k
    if(bDoGhostedDisplaying)
572
4.92k
    {
573
4.92k
        rDisplayInfo.SetGhostedDrawMode();
574
4.92k
    }
575
4.92k
}
576
577
}
578
579
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */