CFx SDK Documentation 2024 SP0
Loading...
Searching...
No Matches
TrVisRenditionBranching.h
Go to the documentation of this file.
1
2// Copyright (C) 2002-2022, Open Design Alliance (the "Alliance").
3// All rights reserved.
4//
5// This software and its documentation and related materials are owned by
6// the Alliance. The software may only be incorporated into application
7// programs owned by members of the Alliance, subject to a signed
8// Membership Agreement and Supplemental Software License Agreement with the
9// Alliance. The structure and organization of this software are the valuable
10// trade secrets of the Alliance and its suppliers. The software is also
11// protected by copyright law and international treaty provisions. Application
12// programs incorporating this software must include the following statement
13// with their copyright notices:
14//
15// This application incorporates Open Design Alliance software pursuant to a license
16// agreement with Open Design Alliance.
17// Open Design Alliance Copyright (C) 2002-2022 by Open Design Alliance.
18// All rights reserved.
19//
20// By use of this software, its documentation or related materials, you
21// acknowledge and accept the above terms.
23// Rendition branching interface
24
25#ifndef ODTRVISRENDITIONBRANCHING
26#define ODTRVISRENDITIONBRANCHING
27
28#include "TD_PackPush.h"
29
30#include "TrVisRendition.h"
31#define STL_USING_MAP
32#include "OdaSTL.h"
33
38{
39 protected:
41 mutable struct IdRegistratorBranching : public IdRegistrator
42 {
45
46 void setIdRegA(IdRegistrator *pReg) { m_pIdRegA = pReg; }
48 const IdRegistrator *getIdRegA() const { return m_pIdRegA; }
49 bool hasIdRegA() const { return (m_pIdRegA != NULL); }
50
51 void setIdRegB(IdRegistrator *pReg) { m_pIdRegB = pReg; }
53 const IdRegistrator *getIdRegB() const { return m_pIdRegB; }
54 bool hasIdRegB() const { return (m_pIdRegB != NULL); }
55
57 { setIdRegA(pRegA); setIdRegB(pRegB); }
58 bool hasIdReg() const { return hasIdRegA() || hasIdRegB(); }
59 bool hasIdRegs() const { return hasIdRegA() && hasIdRegB(); }
60
61 virtual void reg(DataType type, OdTrVisId id, OdDbStub *pPersId)
62 {
63 if (hasIdRegA())
64 getIdRegA()->reg(type, id, pPersId);
65 if (hasIdRegB())
66 getIdRegB()->reg(type, id, pPersId);
67 }
68 virtual void reg(DataType type, OdTrVisId id, const OdGiDrawable *pTransId)
69 {
70 if (hasIdRegA())
71 getIdRegA()->reg(type, id, pTransId);
72 if (hasIdRegB())
73 getIdRegB()->reg(type, id, pTransId);
74 }
75 virtual void reg(DataType type, OdTrVisId id, const OdTrVisUniqueID &uId)
76 {
77 if (hasIdRegA())
78 getIdRegA()->reg(type, id, uId);
79 if (hasIdRegB())
80 getIdRegB()->reg(type, id, uId);
81 }
82 virtual void kill(DataType type, OdTrVisId id)
83 {
84 if (hasIdRegA())
85 getIdRegA()->kill(type, id);
86 if (hasIdRegB())
87 getIdRegB()->kill(type, id);
88 }
89 virtual OdTrVisUniqueID *get(DataType type, OdTrVisId id, bool bKill = false) const
90 {
91 if (hasIdRegA())
92 return getIdRegA()->get(type, id, bKill);
93 if (hasIdRegB())
94 return getIdRegB()->get(type, id, bKill);
95 return NULL;
96 }
99 protected:
101 {
102 // Map between metafileId and first displayId.
103 typedef std::map<OdTrVisMetafileId, OdTrVisDisplayId> MetafileRegMap;
105 // Map between first displayId and second displayId.
106 typedef std::map<OdTrVisDisplayId, OdTrVisDisplayId> DisplayIdsMap;
108 // Temporary displayId's array for second displayId's.
110 // Check does mapping exist.
111 bool hasMapping() const { return !m_metafileIdMap.empty(); }
112 // Insert mapping.
114 { m_metafileIdMap[mfId] = ds1; m_displayIdMap[ds1] = ds2; }
115 // Remove mapping.
117 { if (hasMapping()) { MetafileRegMap::iterator it = m_metafileIdMap.find(mfId);
118 if (it != m_metafileIdMap.end()) { m_displayIdMap.erase(it->second); m_metafileIdMap.erase(it); } } }
119 // Clear mapping by request.
121 { if (hasMapping()) { m_metafileIdMap.clear(); m_displayIdMap.clear(); m_temporaryDisplayIds.setPhysicalLength(0); } }
122 // Make temporary displayId's mapping.
124 { if (hasMapping()) { DisplayIdsMap::const_iterator it = m_displayIdMap.find(id);
125 if (it != m_displayIdMap.end()) return it->second; }
126 return id; }
127 const OdTrVisDisplayId *remap(const OdTrVisDisplayId *pIdsList, OdUInt32 nData) const
128 { if (!nData || !hasMapping()) { return pIdsList; }
129 m_temporaryDisplayIds.resize(nData);
130 OdTrVisDisplayId *pOutIds = m_temporaryDisplayIds.asArrayPtr();
131 for (OdUInt32 nId = 0; nId < nData; nId++)
132 { DisplayIdsMap::const_iterator it = m_displayIdMap.find(pIdsList[nId]);
133 if (it != m_displayIdMap.end()) pOutIds[nId] = it->second;
134 else pOutIds[nId] = pIdsList[nId]; } return pOutIds; }
137 protected:
140 public:
142
143 void setRenditionA(OdTrVisRendition *pRendition) { m_pRenditionA = pRendition; updateIdRegA(); }
146 bool hasRenditionA() const { return !m_pRenditionA.isNull(); }
147
148 void setRenditionB(OdTrVisRendition *pRendition) { if (pRendition != m_pRenditionB) { m_displayIdMapping.clearMapping(); }
149 m_pRenditionB = pRendition; updateIdRegB(); }
152 bool hasRenditionB() const { return !m_pRenditionB.isNull(); }
153
154 void setRenditions(OdTrVisRendition *pRenditionA, OdTrVisRendition *pRenditionB)
155 { setRenditionA(pRenditionA); setRenditionB(pRenditionB); }
156 bool hasRendition() const { return hasRenditionA() || hasRenditionB(); }
157 bool hasRenditions() const { return hasRenditionA() && hasRenditionB(); }
158
159 void setClientSettingsRendition(bool bRenditionA = true, bool bRenditionB = false)
160 {
161 if (bRenditionA)
162 { if (bRenditionB) m_pRenditionC = NULL;
164 } else if (bRenditionB) m_pRenditionC = m_pRenditionB;
165 else m_pRenditionC = NULL;
166 }
170
171 // High-level callbacks
172
173 // Called on starting vectorizer update.
175 {
176 if (hasRenditionA())
178 if (hasRenditionB())
180 }
181 // Called on ending vectorizer update.
182 virtual void onDeviceUpdateEnd(OdTrVisRenderClient *pDevice, bool bRender = true)
183 {
184 if (hasRenditionA())
185 getRenditionA()->onDeviceUpdateEnd(pDevice, bRender);
186 if (hasRenditionB())
187 getRenditionB()->onDeviceUpdateEnd(pDevice, bRender);
188 }
189 // Checks that vectorizer update started.
190 virtual bool isWithinDeviceUpdate() const
191 { bool bRes = false;
192 if (hasRenditionA())
194 if (hasRenditionB())
196 return bRes;
197 }
198
199 // Called by underlying application to store frame changing information.
200 virtual void onFrameSwitchInfo(OdUInt32 nInterval)
201 {
202 if (hasRenditionA())
203 getRenditionA()->onFrameSwitchInfo(nInterval);
204 if (hasRenditionB())
205 getRenditionB()->onFrameSwitchInfo(nInterval);
206 }
207
208 // Returns set of bit flags which indicate rendition capabilities/settings
209 virtual OdUInt32 queryRenditionCaps(OdUInt32 requestFor = 0xFFFFFFFF) const
210 {
211 if (hasRenditions())
212 return getRenditionA()->queryRenditionCaps(requestFor) & getRenditionB()->queryRenditionCaps(requestFor);
213 if (hasRenditionA())
214 return getRenditionA()->queryRenditionCaps(requestFor);
215 if (hasRenditionB())
216 return getRenditionB()->queryRenditionCaps(requestFor);
217 return 0;
218 }
219
220 // Partial update support for local renditions:
221 // Called to check does specified viewport/overlay combination support partial update query.
223 { bool bRVal = false;
224 if (hasRenditionA())
225 bRVal |= getRenditionA()->onPartialUpdateCheckLimit(viewportId, overlayId);
226 if (hasRenditionB())
227 bRVal |= getRenditionB()->onPartialUpdateCheckLimit(viewportId, overlayId);
228 return bRVal;
229 }
230 // Called to setup invalid rectangles and overlays on partial update.
231 virtual void onPartialUpdateInvalidRects(OdTrVisOverlayId overlayId, const OdGsDCRectArray &invalidRects, bool bOverlayInvalid = false)
232 {
233 if (hasRenditionA())
234 getRenditionA()->onPartialUpdateInvalidRects(overlayId, invalidRects, bOverlayInvalid);
235 if (hasRenditionB())
236 getRenditionB()->onPartialUpdateInvalidRects(overlayId, invalidRects, bOverlayInvalid);
237 }
238 // Called on partial update query to set entire actual visibilities list.
239 virtual void onPartialUpdateList(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, const OdTrVisDisplayId *pList, OdUInt32 nEntries)
240 {
241 if (hasRenditionA())
242 getRenditionA()->onPartialUpdateList(viewportId, overlayId, pList, nEntries);
243 if (hasRenditionB())
244 getRenditionB()->onPartialUpdateList(viewportId, overlayId, m_displayIdMapping.remap(pList, nEntries), nEntries);
245 }
246 protected:
248 {
251 typedef std::map<OdTrVisDisplayId, OdTrVisDisplayId> DisplayIdsMap;
252 const DisplayIdsMap *m_pDisplayIdMap;
253 virtual bool incomeMetafile(OdTrVisDisplayId mfId)
254 {
255 if (m_pDisplayIdMap)
256 {
257 DisplayIdsMap::const_iterator it = m_pDisplayIdMap->find(mfId);
258 if (it != m_pDisplayIdMap->end()) mfId = it->second;
259 }
261 }
262 public:
264 void setup(OdTrVisDirectRenderPartialUpdateInvocation *pInvocationA, OdTrVisDirectRenderPartialUpdateInvocation *pInvocationB, const DisplayIdsMap *pIdMap)
265 { m_pInvocationA = pInvocationA; m_pInvocationB = pInvocationB; m_pDisplayIdMap = pIdMap; }
267 { RemapABInvocation *pRemap = const_cast<RemapABInvocation*>(this);
269 return pRemap; }
271 { return m_pInvocationA; }
272 };
273 public:
274 // Can be called by client side to check that rendition supports direct rendering ability.
276 {
277 const bool bHasA = hasRenditionA() ? getRenditionA()->queryPartialUpdateDirectInvocation(viewportId, overlayId, pInvocationPtr) : false;
278 if (!hasRenditionB())
279 return bHasA;
280 OdTrVisDirectRenderPartialUpdateInvocationPtr pInvocationA = pInvocationPtr;
281 const bool bHasB = hasRenditionB() ? getRenditionB()->queryPartialUpdateDirectInvocation(viewportId, overlayId, pInvocationPtr) : false;
282 if (bHasB)
283 {
285 rabInvocation->setup(pInvocationPtr);
286 rabInvocation->setup(pInvocationA, pInvocationPtr, (m_displayIdMapping.hasMapping()) ? &m_displayIdMapping.m_displayIdMap : NULL);
287 pInvocationPtr = rabInvocation;
288 }
289 return bHasA || bHasB;
290 }
291 // Can be called by client side to setup direct invocation interface for partial update instead of partial update list usage.
293 {
294 if (hasRenditionA())
296 if (hasRenditionB())
297 getRenditionB()->onPartialUpdateDirectInvocation(pInvocation, pAccessor);
298 }
299
300 // Query snapshot
301 virtual void querySnapshot(OdUInt8 *pScanlines, long minX, long minY, long nWidth, long nHeight)
302 {
303 if (hasRenditionA())
304 getRenditionA()->querySnapshot(pScanlines, minX, minY, nWidth, nHeight);
305 if (hasRenditionB())
306 getRenditionB()->querySnapshot(pScanlines, minX, minY, nWidth, nHeight);
307 }
308
309 // Renders viewport to selection texture. Return top object id with (x, y) position in viewport.
311 {
312 if (hasRenditionA())
313 getRenditionA()->getSelectedObject(id, x, y, outIDs, outMarker);
314 if (hasRenditionB())
315 getRenditionB()->getSelectedObject(id, x, y, outIDs, outMarker);
316 }
317
318 // Allocate new resource sharing provider compatible with rendition
320 { // @@@TODO: probably we need branching of sharing providers?
321 if (hasRenditionA())
323 if (hasRenditionB())
326 }
327
328 // Multithread processing flags
330 { // Each rendition must be protected by own Mt handler, but we still can sort handler types by priority.
331 if (hasRenditions())
332 {
334 const MtHandlerType rv = g_mtHandlerPriority[MtComplex::decode(typeA)][MtComplex::decode(typeB)];
335 if (rv == kMtComplex)
336 {
337 if (MtComplex::decode(typeA) == kMtComplex)
338 return typeA;
339 return typeB;
340 }
341 return rv;
342 }
343 if (hasRenditionA())
345 if (hasRenditionB())
347 return kMtSkip;
348 }
349
350 // Returns Id registrator, or NULL if no registration supported
352 {
354 return &m_idRegsBranching;
359 return NULL;
360 }
361
362 // Returns true if metafile streams accessible directly, returns stream by Id
363 virtual bool queryMetafileStream(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, const OdTrVisDisplayId *pDisplayId,
364 OdUInt32 nPathLength, const OdTrVisMetafileContainer **pStream)
365 {
366 if (hasRenditionA() && getRenditionA()->queryMetafileStream(viewportId, overlayId, pDisplayId, nPathLength, pStream))
367 return true;
368 if (hasRenditionB())
369 return getRenditionB()->queryMetafileStream(viewportId, overlayId, m_displayIdMapping.remap(pDisplayId, nPathLength), nPathLength, pStream);
370 return false;
371 }
372 // Unlock metafile stream, queried by queryMetafileStream method
374 {
376 return true;
377 if (hasRenditionB())
378 return getRenditionB()->unlockMetafileStream(pStream);
379 return false;
380 }
381
382 // Returns block metafile list in case if it is accessible.
384 { const OdTrVisDisplayId *pRVal;
385 if (hasRenditionA() && (pRVal = getRenditionA()->queryBlockMetafilesList(blockId, numEntries)))
386 return pRVal;
387 if (hasRenditionB())
388 return getRenditionB()->queryBlockMetafilesList(blockId, numEntries);
389 return NULL;
390 }
391
392 // Returns extension object by Id.
395 if (hasRenditionA() && !(pExtObj = getRenditionA()->queryExtensionObject(extId)).isNull())
396 return pExtObj;
397 if (hasRenditionB())
398 return getRenditionB()->queryExtensionObject(extId);
400 }
401
402 // Returns non-kTrVisNegativeId in case if vectorizer supports ProgramID's embedded into metafile stream
404 OdTrVisGeomType geomType = OdTrVisGeomType_Default, OdUInt16 attrFlags = 0, OdUInt16 shadingFlags = 0) const
405 {
406 if (hasRenditionA())
407 {
408 const OdTrVisProgramId prgId = getRenditionA()->queryProgramId(mode, vsId, geomType, attrFlags, shadingFlags);
409 if (prgId != kTrVisNegativeId)
410 return true;
411 }
412 if (hasRenditionB())
413 return getRenditionB()->queryProgramId(mode, vsId, geomType, attrFlags, shadingFlags);
414 return kTrVisNegativeId;
415 }
416
417 // GsFiler support
418 virtual bool saveRenditionState(OdGsFiler *pFiler) const
419 {
421 return false;
422 if (hasRenditionB())
423 return getRenditionB()->saveRenditionState(pFiler);
424 return false;
425 }
426 virtual bool loadRenditionState(OdGsFiler *pFiler, OdTrVisIdMap *pIdMap)
427 {
428 if (hasRenditionA() && !getRenditionA()->loadRenditionState(pFiler, pIdMap))
429 return false;
430 if (hasRenditionB())
431 return getRenditionB()->loadRenditionState(pFiler, pIdMap);
432 return false;
433 }
434
435 // Mid-level callbacks
436
437 // Client information
438
439 // Returns rendering client settings.
440 virtual void obtainClientSettings(ClientSettings &clientSets);
441
442 // Surface
443
444 // Called when output render surface parameters changed.
445 virtual void onSurfaceChanged(const OdTrVisSurfaceDef &pDef)
446 {
447 if (hasRenditionA())
449 if (hasRenditionB())
451 }
452 // Called when rendering surface needs to be invalidated forcibly.
453 virtual void onSurfaceInvalidated()
454 {
455 if (hasRenditionA())
457 if (hasRenditionB())
459 }
460
461 // Overlays
462
463 // Called when new overlay added into device.
464 virtual void onOverlayAdded(OdTrVisOverlayId overlayId, const OdTrVisOverlayDef &pDef)
465 {
466 if (hasRenditionA())
467 getRenditionA()->onOverlayAdded(overlayId, pDef);
468 if (hasRenditionB())
469 getRenditionB()->onOverlayAdded(overlayId, pDef);
470 }
471 // Called when exist overlay removed from device.
472 virtual void onOverlayDeleted(OdTrVisOverlayId overlayId)
473 {
474 if (hasRenditionA())
475 getRenditionA()->onOverlayDeleted(overlayId);
476 if (hasRenditionB())
477 getRenditionB()->onOverlayDeleted(overlayId);
478 }
479 // Called when overlay visibility changed.
480 virtual void onOverlayVisibilityChanged(OdTrVisOverlayId overlayId, bool bVisibility)
481 {
482 if (hasRenditionA())
483 getRenditionA()->onOverlayVisibilityChanged(overlayId, bVisibility);
484 if (hasRenditionB())
485 getRenditionB()->onOverlayVisibilityChanged(overlayId, bVisibility);
486 }
487 // Called when overlay rendering order changed.
488 virtual void onOverlayRenderOrderChanged(OdTrVisOverlayId overlayId, OdInt16 nRenderOrder)
489 {
490 if (hasRenditionA())
491 getRenditionA()->onOverlayRenderOrderChanged(overlayId, nRenderOrder);
492 if (hasRenditionB())
493 getRenditionB()->onOverlayRenderOrderChanged(overlayId, nRenderOrder);
494 }
495
496 // Viewports
497
498 // Called when new viewport added into device.
499 virtual void onViewportAdded(OdTrVisViewportId viewportId, const OdTrVisViewportDef &pDef)
500 {
501 if (hasRenditionA())
502 getRenditionA()->onViewportAdded(viewportId, pDef);
503 if (hasRenditionB())
504 getRenditionB()->onViewportAdded(viewportId, pDef);
505 }
506 // Called when viewport inserted in list with some index.
507 virtual void onViewportInserted(OdTrVisViewportId viewportId, int nIndex, const OdTrVisViewportDef &pDef)
508 {
509 if (hasRenditionA())
510 getRenditionA()->onViewportInserted(viewportId, nIndex, pDef);
511 if (hasRenditionB())
512 getRenditionB()->onViewportInserted(viewportId, nIndex, pDef);
513 }
514 // Called when viewport removed from device.
515 virtual void onViewportDeleted(OdTrVisViewportId viewportId)
516 {
517 if (hasRenditionA())
518 getRenditionA()->onViewportDeleted(viewportId);
519 if (hasRenditionB())
520 getRenditionB()->onViewportDeleted(viewportId);
521 }
522 // Called when viewport visibility changed.
523 virtual void onViewportVisibilityChanged(OdTrVisViewportId viewportId, bool bVisibility)
524 {
525 if (hasRenditionA())
526 getRenditionA()->onViewportVisibilityChanged(viewportId, bVisibility);
527 if (hasRenditionB())
528 getRenditionB()->onViewportVisibilityChanged(viewportId, bVisibility);
529 }
530
531 // Primary viewports configuration
532
533 // Called when viewport view parameters is modified.
535 {
536 if (hasRenditionA())
537 getRenditionA()->onViewportViewParamsModified(viewportId, pDef);
538 if (hasRenditionB())
539 getRenditionB()->onViewportViewParamsModified(viewportId, pDef);
540 }
541 // Called when viewport linestyle settings is modified.
543 {
544 if (hasRenditionA())
545 getRenditionA()->onViewportLineStylesModified(viewportId, pDef);
546 if (hasRenditionB())
547 getRenditionB()->onViewportLineStylesModified(viewportId, pDef);
548 }
549 // Called when viewport fading settings is modified.
551 {
552 if (hasRenditionA())
553 getRenditionA()->onViewportFadingModified(viewportId, pDef);
554 if (hasRenditionB())
555 getRenditionB()->onViewportFadingModified(viewportId, pDef);
556 }
557 // Called when viewport lineweight settings is modified.
559 {
560 if (hasRenditionA())
561 getRenditionA()->onViewportLineweightsModified(viewportId, pDef);
562 if (hasRenditionB())
563 getRenditionB()->onViewportLineweightsModified(viewportId, pDef);
564 }
565 // Called when viewport rendering mode is modified.
567 {
568 if (hasRenditionA())
569 getRenditionA()->onViewportShadingModified(viewportId, pDef);
570 if (hasRenditionB())
571 getRenditionB()->onViewportShadingModified(viewportId, pDef);
572 }
573 // Called when viewport clipping region is modified.
575 bool bNrcClipModified = true, bool bBorderModified = true)
576 {
577 if (hasRenditionA())
578 getRenditionA()->onViewportClipModified(viewportId, pDef, bNrcClipModified, bBorderModified);
579 if (hasRenditionB())
580 getRenditionB()->onViewportClipModified(viewportId, pDef, bNrcClipModified, bBorderModified);
581 }
582
583 // Extended viewports configuration
584
585 // Called when background stream in viewport is changed.
587 OdTrVisProgramId baseProgramId = kTrVisNegativeId)
588 {
589 if (hasRenditionA())
590 getRenditionA()->onViewportBackgroundChanged(viewportId, pStream, baseProgramId);
591 if (hasRenditionB())
592 getRenditionB()->onViewportBackgroundChanged(viewportId, pStream, baseProgramId);
593 }
594 // Called when viewport fog changed.
595 virtual void onViewportFogChanged(OdTrVisViewportId viewportId, const OdTrVisFogDef &pDef = OdTrVisFogDef())
596 {
597 if (hasRenditionA())
598 getRenditionA()->onViewportFogChanged(viewportId, pDef);
599 if (hasRenditionB())
600 getRenditionB()->onViewportFogChanged(viewportId, pDef);
601 }
602 // Called when viewport sectioning modified.
604 {
605 if (hasRenditionA())
606 getRenditionA()->onViewportSectioningChanged(viewportId, pDef);
607 if (hasRenditionB())
608 getRenditionB()->onViewportSectioningChanged(viewportId, pDef);
609 }
610 // Called when viewport anti-aliasing setting changed.
611 virtual void onViewportAntiAliasingChanged(OdTrVisViewportId viewportId, OdUInt32 nAntiAliasing)
612 {
613 if (hasRenditionA())
614 getRenditionA()->onViewportAntiAliasingChanged(viewportId, nAntiAliasing);
615 if (hasRenditionB())
616 getRenditionB()->onViewportAntiAliasingChanged(viewportId, nAntiAliasing);
617 }
618
619 // Called when viewport ssao setting changed.
621 {
622 if (hasRenditionA())
623 getRenditionA()->onViewportSSAOChanged(viewportId, bEnabled);
624 if (hasRenditionB())
625 getRenditionB()->onViewportSSAOChanged(viewportId, bEnabled);
626 }
627
628 // Viewport default lights configuration
629
630 // Called when viewport ambient light setting modified.
631 virtual void onViewportAmbientLightChanged(OdTrVisViewportId viewportId, const OdTrVisMaterialColor &ambientLight)
632 {
633 if (hasRenditionA())
634 getRenditionA()->onViewportAmbientLightChanged(viewportId, ambientLight);
635 if (hasRenditionB())
636 getRenditionB()->onViewportAmbientLightChanged(viewportId, ambientLight);
637 }
638 // Called when viewport default light setting modified.
639 virtual void onViewportDefaultLightsChanged(OdTrVisViewportId viewportId, bool bDefaultLightsOn,
640 const OdTrVisLightDef *pLightsList = NULL, OdUInt32 nLightsListEntries = 0)
641 {
642 if (hasRenditionA())
643 getRenditionA()->onViewportDefaultLightsChanged(viewportId, bDefaultLightsOn, pLightsList, nLightsListEntries);
644 if (hasRenditionB())
645 getRenditionB()->onViewportDefaultLightsChanged(viewportId, bDefaultLightsOn, pLightsList, nLightsListEntries);
646 }
647
648 // Viewport lights management
649
650 // Called when light source added into viewport light sources list.
652 OdUInt32 nOverrides = 0, const OdTrVisLightDef &pOverrides = OdTrVisLightDef())
653 {
654 if (hasRenditionA())
655 getRenditionA()->onViewportLightAttached(viewportId, lightId, nOverrides, pOverrides);
656 if (hasRenditionB())
657 getRenditionB()->onViewportLightAttached(viewportId, lightId, nOverrides, pOverrides);
658 }
659 // Called when light source removed from viewport light sources list.
661 {
662 if (hasRenditionA())
663 getRenditionA()->onViewportLightDetached(viewportId, lightId);
664 if (hasRenditionB())
665 getRenditionB()->onViewportLightDetached(viewportId, lightId);
666 }
667
668 // Per-overlay viewport overrides
669
670 // Called when viewport needs override view parameters for specific overlay.
671 virtual void onOverlayViewParamsOverride(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, bool bOverride,
673 {
674 if (hasRenditionA())
675 getRenditionA()->onOverlayViewParamsOverride(viewportId, overlayId, bOverride, pDef);
676 if (hasRenditionB())
677 getRenditionB()->onOverlayViewParamsOverride(viewportId, overlayId, bOverride, pDef);
678 }
679 // Called when viewport extents changed.
680 virtual void onOverlayExtentsOverride(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, const OdTrVisExtentsDef &pDef)
681 {
682 if (hasRenditionA())
683 getRenditionA()->onOverlayExtentsOverride(viewportId, overlayId, pDef);
684 if (hasRenditionB())
685 getRenditionB()->onOverlayExtentsOverride(viewportId, overlayId, pDef);
686 }
687
688 // Viewports ordering lists
689
690 // Called when order of metafiles in viewport is changed.
691 virtual void onMetafileOrderChanged(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, const OdTrVisDisplayId *pList, OdUInt32 nEntries)
692 {
693 if (hasRenditionA())
694 getRenditionA()->onMetafileOrderChanged(viewportId, overlayId, pList, nEntries);
695 if (hasRenditionB())
696 getRenditionB()->onMetafileOrderChanged(viewportId, overlayId, m_displayIdMapping.remap(pList, nEntries), nEntries);
697 }
698 // Called when order of metafiles in viewport is changed (for obtain modified part of list by renderer).
699 virtual void onMetafileOrderChanged(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, OdUInt32 nInvalidFrom, OdUInt32 nInvalidLen,
700 const OdTrVisDisplayId *pValidFrom, OdUInt32 nValidLen)
701 {
702 if (hasRenditionA())
703 getRenditionA()->onMetafileOrderChanged(viewportId, overlayId, nInvalidFrom, nInvalidLen, pValidFrom, nValidLen);
704 if (hasRenditionB())
705 getRenditionB()->onMetafileOrderChanged(viewportId, overlayId, nInvalidFrom, nInvalidLen, m_displayIdMapping.remap(pValidFrom, nValidLen), nValidLen);
706 }
707 // Called when order of metafiles can be inherit from other source.
708 virtual void onMetafileOrderInheritance( OdTrVisViewportId viewportId1, OdTrVisOverlayId overlayId1, OdTrVisViewportId viewportId2 )
709 {
710 if (hasRenditionA())
711 getRenditionA()->onMetafileOrderInheritance(viewportId1, overlayId1, viewportId2);
712 if (hasRenditionB())
713 getRenditionB()->onMetafileOrderInheritance(viewportId1, overlayId1, viewportId2);
714 }
715
716 // Metafiles
717
718 // Called when new metafile added (returns visualId, equal to metafileId by default).
720 { OdTrVisDisplayId id1, id2;
721 if (hasRenditionA())
722 { id1 = getRenditionA()->onMetafileAdded(metafileId, pDef);
723 if (!hasRenditionB())
724 id2 = id1; }
725 if (hasRenditionB())
727 id2 = getRenditionB()->onMetafileAdded(metafileId, pDef);
728 if (!hasRenditionA())
729 id1 = id2; }
730 if (id1 != id2)
731 m_displayIdMapping.regMapping(metafileId, id1, id2);
732 return id1;
733 }
734 // Called when exist metafile deleted.
735 virtual void onMetafileDeleted(OdTrVisMetafileId metafileId)
736 {
737 if (hasRenditionA())
738 getRenditionA()->onMetafileDeleted(metafileId);
739 if (hasRenditionB())
740 getRenditionB()->onMetafileDeleted(metafileId);
742 }
743 // Called when exist metafile changed.
744 //virtual void onMetafileModified(OdTrVisMetafileId metafileId, const OdTrVisMetafileDef &pDef)
745 //{
746 // if (hasRenditionA())
747 // getRenditionA()->onMetafileModified(metafileId, pDef);
748 // if (hasRenditionB())
749 // getRenditionB()->onMetafileModified(metafileId, pDef);
750 //}
751 // Called when exist metafile visibility changed.
752 virtual void onMetafileVisibilityChanged(OdTrVisMetafileId metafileId, bool bVisibility)
753 {
754 if (hasRenditionA())
755 getRenditionA()->onMetafileVisibilityChanged(metafileId, bVisibility);
756 if (hasRenditionB())
757 getRenditionB()->onMetafileVisibilityChanged(metafileId, bVisibility);
758 }
759 // Called when exist metafile highlighting changed.
760 virtual void onMetafileHighlightingChanged(OdTrVisMetafileId metafileId, bool bHighlight)
761 {
762 if (hasRenditionA())
763 getRenditionA()->onMetafileHighlightingChanged(metafileId, bHighlight);
764 if (hasRenditionB())
765 getRenditionB()->onMetafileHighlightingChanged(metafileId, bHighlight);
766 }
767 // Called when exist metafile fading changed.
768 virtual void onMetafileFadingChanged(OdTrVisMetafileId metafileId, bool bFade)
769 {
770 if (hasRenditionA())
771 getRenditionA()->onMetafileFadingChanged(metafileId, bFade);
772 if (hasRenditionB())
773 getRenditionB()->onMetafileFadingChanged(metafileId, bFade);
774 }
775
776 // Lights
777
778 // Called when new light source added.
779 virtual void onLightAdded(OdTrVisLightId lightId, const OdTrVisLightDef &pDef)
780 {
781 if (hasRenditionA())
782 getRenditionA()->onLightAdded(lightId, pDef);
783 if (hasRenditionB())
784 getRenditionB()->onLightAdded(lightId, pDef);
785 }
786 // Called when exist light source modified.
787 virtual void onLightModified(OdTrVisLightId lightId, OdUInt32 nKindOfMod, const OdTrVisLightDef &pDef)
788 {
789 if (hasRenditionA())
790 getRenditionA()->onLightModified(lightId, nKindOfMod, pDef);
791 if (hasRenditionB())
792 getRenditionB()->onLightModified(lightId, nKindOfMod, pDef);
793 }
794 // Called when exist light source deleted.
795 virtual void onLightDeleted(OdTrVisLightId lightId)
796 {
797 if (hasRenditionA())
798 getRenditionA()->onLightDeleted(lightId);
799 if (hasRenditionB())
800 getRenditionB()->onLightDeleted(lightId);
801 }
802
803 // State branches (highlighting, hide)
804
805 // Called when new state branch added.
806 virtual void onStateBranchAdded(OdTrVisStateBranchId stateBranchId, const OdTrVisStateBranchDef &pDef)
807 {
808 if (hasRenditionA())
809 getRenditionA()->onStateBranchAdded(stateBranchId, pDef);
810 if (hasRenditionB())
811 getRenditionB()->onStateBranchAdded(stateBranchId, pDef);
812 }
813 // Called when exist state branch modified.
814 virtual void onStateBranchModified(OdTrVisStateBranchId stateBranchId, const OdTrVisStateBranchDef &pDef,
815 bool bChildsModified, bool bMarkersModified)
816 {
817 if (hasRenditionA())
818 getRenditionA()->onStateBranchModified(stateBranchId, pDef, bChildsModified, bMarkersModified);
819 if (hasRenditionB())
820 getRenditionB()->onStateBranchModified(stateBranchId, pDef, bChildsModified, bMarkersModified);
821 }
822 // Called when exist state branch deleted.
823 virtual void onStateBranchDeleted(OdTrVisStateBranchId stateBranchId)
824 {
825 if (hasRenditionA())
826 getRenditionA()->onStateBranchDeleted(stateBranchId);
827 if (hasRenditionB())
828 getRenditionB()->onStateBranchDeleted(stateBranchId);
829 }
830
831 // Textures
832
833 // Called when new texture added.
834 virtual void onTextureAdded(OdTrVisTextureId textureId, const OdTrVisTextureDef &pDef)
835 {
836 if (hasRenditionA())
837 getRenditionA()->onTextureAdded(textureId, pDef);
838 if (hasRenditionB())
839 getRenditionB()->onTextureAdded(textureId, pDef);
840 }
841 // Called when exist texture deleted.
842 virtual void onTextureDeleted(OdTrVisTextureId textureId)
843 {
844 if (hasRenditionA())
845 getRenditionA()->onTextureDeleted(textureId);
846 if (hasRenditionB())
847 getRenditionB()->onTextureDeleted(textureId);
848 }
849
850 // Materials
851
852 // Called when new material added.
853 virtual void onMaterialAdded(OdTrVisMaterialId materialId, const OdTrVisMaterialDef &pDef)
854 {
855 if (hasRenditionA())
856 getRenditionA()->onMaterialAdded(materialId, pDef);
857 if (hasRenditionB())
858 getRenditionB()->onMaterialAdded(materialId, pDef);
859 }
860 // Called when exist material deleted.
861 virtual void onMaterialDeleted(OdTrVisMaterialId materialId)
862 {
863 if (hasRenditionA())
864 getRenditionA()->onMaterialDeleted(materialId);
865 if (hasRenditionB())
866 getRenditionB()->onMaterialDeleted(materialId);
867 }
868
869 // Visual Styles
870
871 // Called when new visual style added.
872 virtual void onVisualStyleAdded(OdTrVisVisualStyleId visualStyleId, const OdTrVisVisualStyle &pDef)
873 {
874 if (hasRenditionA())
875 getRenditionA()->onVisualStyleAdded(visualStyleId, pDef);
876 if (hasRenditionB())
877 getRenditionB()->onVisualStyleAdded(visualStyleId, pDef);
878 }
879 // Called when exist visual style modified.
880 virtual void onVisualStyleModified(OdTrVisVisualStyleId visualStyleId, const OdTrVisVisualStyle &pDef)
881 {
882 if (hasRenditionA())
883 getRenditionA()->onVisualStyleModified(visualStyleId, pDef);
884 if (hasRenditionB())
885 getRenditionB()->onVisualStyleModified(visualStyleId, pDef);
886 }
887 // Called when exist visual style deleted.
888 virtual void onVisualStyleDeleted(OdTrVisVisualStyleId visualStyleId)
889 {
890 if (hasRenditionA())
891 getRenditionA()->onVisualStyleDeleted(visualStyleId);
892 if (hasRenditionB())
893 getRenditionB()->onVisualStyleDeleted(visualStyleId);
894 }
895
896 // Layers
897
898 // Called when new layer added.
899 virtual void onLayerAdded(OdTrVisLayerId layerId, const OdTrVisLayerDef &pDef)
900 {
901 if (hasRenditionA())
902 getRenditionA()->onLayerAdded(layerId, pDef);
903 if (hasRenditionB())
904 getRenditionB()->onLayerAdded(layerId, pDef);
905 }
906 // Called when exist layer modified.
907 //virtual void onLayerModified(OdTrVisLayerId layerId, const OdTrVisLayerDef &pDef)
908 //{
909 // if (hasRenditionA())
910 // getRenditionA()->onLayerModified(layerId, pDef);
911 // if (hasRenditionB())
912 // getRenditionB()->onLayerModified(layerId, pDef);
913 //}
914 // Called when exist layer deleted.
915 virtual void onLayerDeleted(OdTrVisLayerId layerId)
916 {
917 if (hasRenditionA())
918 getRenditionA()->onLayerDeleted(layerId);
919 if (hasRenditionB())
920 getRenditionB()->onLayerDeleted(layerId);
921 }
922 // Called when exist layer visibility changed.
923 virtual void onLayerVisibilityChanged(OdTrVisLayerId layerId, bool bVisibility)
924 {
925 if (hasRenditionA())
926 getRenditionA()->onLayerVisibilityChanged(layerId, bVisibility);
927 if (hasRenditionB())
928 getRenditionB()->onLayerVisibilityChanged(layerId, bVisibility);
929 }
930 // Called when exist layer fading changed.
931 virtual void onLayerFadingChanged(OdTrVisLayerId layerId, bool bFade)
932 {
933 if (hasRenditionA())
934 getRenditionA()->onLayerFadingChanged(layerId, bFade);
935 if (hasRenditionB())
936 getRenditionB()->onLayerFadingChanged(layerId, bFade);
937 }
938 // Called when layer viewport-dependent properties changed.
939 virtual void onLayerVpDepPropsOverride(OdTrVisLayerId layerId, OdTrVisViewportId viewportId, bool bOverride,
940 const OdTrVisLayerProps &pProps = OdTrVisLayerProps())
941 {
942 if (hasRenditionA())
943 getRenditionA()->onLayerVpDepPropsOverride(layerId, viewportId, bOverride, pProps);
944 if (hasRenditionB())
945 getRenditionB()->onLayerVpDepPropsOverride(layerId, viewportId, bOverride, pProps);
946 }
947
948 // Extension objects
949
950 // Called when new extension object added.
952 {
953 if (hasRenditionA())
955 if (hasRenditionB())
957 }
958 // Called when exist extension object deleted.
960 {
961 if (hasRenditionA())
963 if (hasRenditionB())
965 }
966 // Called to send special extension object specific data.
968 {
969 if (hasRenditionA())
970 getRenditionA()->onExtensionObjectSpecificData(extId, nDataId, propDef);
971 if (hasRenditionB())
972 getRenditionB()->onExtensionObjectSpecificData(extId, nDataId, propDef);
973 }
974 // Called to change extension object visibility.
975 virtual void onExtensionObjectVisibilityChanged(OdTrVisExtensionId extId, bool bVisibility)
976 {
977 if (hasRenditionA())
979 if (hasRenditionB())
981 }
982
983 // Blocks
984
985 // Called when new block added.
986 virtual void onBlockAdded(OdTrVisBlockId blockId, const OdTrVisDisplayId *pList, OdUInt32 nEntries)
987 {
988 if (hasRenditionA())
989 getRenditionA()->onBlockAdded(blockId, pList, nEntries);
990 if (hasRenditionB())
991 getRenditionB()->onBlockAdded(blockId, pList, nEntries);
992 }
993 // Called when block display list changed.
994 virtual void onBlockModified(OdTrVisBlockId blockId, OdUInt32 nInvalidFrom, OdUInt32 nInvalidLen,
995 const OdTrVisDisplayId *pValidFrom, OdUInt32 nValidLen)
996 {
997 if (hasRenditionA())
998 getRenditionA()->onBlockModified(blockId, nInvalidFrom, nInvalidLen, pValidFrom, nValidLen);
999 if (hasRenditionB())
1000 getRenditionB()->onBlockModified(blockId, nInvalidFrom, nInvalidLen, pValidFrom, nValidLen);
1001 }
1002 // Called when exist block deleted.
1003 virtual void onBlockDeleted(OdTrVisBlockId blockId)
1004 {
1005 if (hasRenditionA())
1006 getRenditionA()->onBlockDeleted(blockId);
1007 if (hasRenditionB())
1008 getRenditionB()->onBlockDeleted(blockId);
1009 }
1010
1011 // Groups
1012
1013 // Called when new group added.
1014 virtual void onGroupAdded(OdTrVisGroupId groupId)
1015 {
1016 if (hasRenditionA())
1017 getRenditionA()->onGroupAdded(groupId);
1018 if (hasRenditionB())
1019 getRenditionB()->onGroupAdded(groupId);
1020 }
1021 // Called when exist group deleted.
1022 virtual void onGroupDeleted(OdTrVisGroupId groupId)
1023 {
1024 if (hasRenditionA())
1025 getRenditionA()->onGroupDeleted(groupId);
1026 if (hasRenditionB())
1027 getRenditionB()->onGroupDeleted(groupId);
1028 }
1029 // Called to attach metafiles to group.
1030 virtual void onGroupMetafilesAttached(OdTrVisGroupId groupId, const OdTrVisMetafileId *pMetafilesList, OdUInt32 nMetafiles)
1031 {
1032 if (hasRenditionA())
1033 getRenditionA()->onGroupMetafilesAttached(groupId, pMetafilesList, nMetafiles);
1034 if (hasRenditionB())
1035 getRenditionB()->onGroupMetafilesAttached(groupId, pMetafilesList, nMetafiles);
1036 }
1037 // Called to detach metafiles from group (if no metafiles specified - clear entire list of groupped metafiles).
1038 virtual void onGroupMetafilesDetached(OdTrVisGroupId groupId, const OdTrVisMetafileId *pMetafilesList, OdUInt32 nMetafiles)
1039 {
1040 if (hasRenditionA())
1041 getRenditionA()->onGroupMetafilesDetached(groupId, pMetafilesList, nMetafiles);
1042 if (hasRenditionB())
1043 getRenditionB()->onGroupMetafilesDetached(groupId, pMetafilesList, nMetafiles);
1044 }
1045 // Called to delete all groupped metafiles from graphics scene.
1046 //virtual void onGroupMetafilesDeleted(OdTrVisGroupId groupId)
1047 //{
1048 // if (hasRenditionA())
1049 // getRenditionA()->onGroupMetafilesDeleted(groupId);
1050 // if (hasRenditionB())
1051 // getRenditionB()->onGroupMetafilesDeleted(groupId);
1052 //}
1053 // Called to change visibility state for all groupped metafiles.
1054 virtual void onGroupMetafilesVisibilityChanged(OdTrVisGroupId groupId, bool bVisibility)
1055 {
1056 if (hasRenditionA())
1057 getRenditionA()->onGroupMetafilesVisibilityChanged(groupId, bVisibility);
1058 if (hasRenditionB())
1059 getRenditionB()->onGroupMetafilesVisibilityChanged(groupId, bVisibility);
1060 }
1061 // Called to change highlighting state for all groupped metafiles.
1062 virtual void onGroupMetafilesHighlightingChanged(OdTrVisGroupId groupId, bool bHighlight)
1063 {
1064 if (hasRenditionA())
1065 getRenditionA()->onGroupMetafilesHighlightingChanged(groupId, bHighlight);
1066 if (hasRenditionB())
1067 getRenditionB()->onGroupMetafilesHighlightingChanged(groupId, bHighlight);
1068 }
1069 // Called to change fading state for all groupped metafiles.
1070 virtual void onGroupMetafilesFadingChanged(OdTrVisGroupId groupId, bool bFade)
1071 {
1072 if (hasRenditionA())
1074 if (hasRenditionB())
1076 }
1077
1078 // Properties
1079
1080 // Metafile-related properties.
1081 // Called to attach property to metafile.
1082 virtual void onMetafilePropertyAttached(OdTrVisMetafileId metafileId, const OdTrVisPropertyDef &propDef)
1083 {
1084 if (hasRenditionA())
1085 getRenditionA()->onMetafilePropertyAttached(metafileId, propDef);
1086 if (hasRenditionB())
1087 getRenditionB()->onMetafilePropertyAttached(metafileId, propDef);
1088 }
1089 // Called to detach property from metafile.
1091 {
1092 if (hasRenditionA())
1093 getRenditionA()->onMetafilePropertyDetached(metafileId, propType);
1094 if (hasRenditionB())
1095 getRenditionB()->onMetafilePropertyDetached(metafileId, propType);
1096 }
1097 // Group-related properties.
1098 // Called to attach property to group.
1099 virtual void onGroupPropertyAttached(OdTrVisGroupId groupId, const OdTrVisPropertyDef &propDef)
1100 {
1101 if (hasRenditionA())
1102 getRenditionA()->onGroupPropertyAttached(groupId, propDef);
1103 if (hasRenditionB())
1104 getRenditionB()->onGroupPropertyAttached(groupId, propDef);
1105 }
1106 // Called to detach property from group.
1108 {
1109 if (hasRenditionA())
1110 getRenditionA()->onGroupPropertyDetached(groupId, propType);
1111 if (hasRenditionB())
1112 getRenditionB()->onGroupPropertyDetached(groupId, propType);
1113 }
1114 // Layer-related properties.
1115 // Called to attach property to layer.
1116 virtual void onLayerPropertyAttached(OdTrVisLayerId layerId, const OdTrVisPropertyDef &propDef)
1117 {
1118 if (hasRenditionA())
1119 getRenditionA()->onLayerPropertyAttached(layerId, propDef);
1120 if (hasRenditionB())
1121 getRenditionB()->onLayerPropertyAttached(layerId, propDef);
1122 }
1123 // Called to detach property from layer.
1125 {
1126 if (hasRenditionA())
1127 getRenditionA()->onLayerPropertyDetached(layerId, propType);
1128 if (hasRenditionB())
1129 getRenditionB()->onLayerPropertyDetached(layerId, propType);
1130 }
1131 // VisualStyle-related properties.
1132 // Called to attach property to visual style.
1134 {
1135 if (hasRenditionA())
1136 getRenditionA()->onVisualStylePropertyAttached(visualStyleId, propDef);
1137 if (hasRenditionB())
1138 getRenditionB()->onVisualStylePropertyAttached(visualStyleId, propDef);
1139 }
1140 // Called to detach property from visual style.
1142 {
1143 if (hasRenditionA())
1144 getRenditionA()->onVisualStylePropertyDetached(visualStyleId, propType);
1145 if (hasRenditionB())
1146 getRenditionB()->onVisualStylePropertyDetached(visualStyleId, propType);
1147 }
1148 // Material-related properties.
1149 // Called to attach property to material.
1150 virtual void onMaterialPropertyAttached(OdTrVisMaterialId materialId, const OdTrVisPropertyDef &propDef)
1151 {
1152 if (hasRenditionA())
1153 getRenditionA()->onMaterialPropertyAttached(materialId, propDef);
1154 if (hasRenditionB())
1155 getRenditionB()->onMaterialPropertyAttached(materialId, propDef);
1156 }
1157 // Called to detach property from material.
1159 {
1160 if (hasRenditionA())
1161 getRenditionA()->onMaterialPropertyDetached(materialId, propType);
1162 if (hasRenditionB())
1163 getRenditionB()->onMaterialPropertyDetached(materialId, propType);
1164 }
1165 // Texture-related properties.
1166 // Called to attach property to texture.
1167 virtual void onTexturePropertyAttached(OdTrVisTextureId textureId, const OdTrVisPropertyDef &propDef)
1168 {
1169 if (hasRenditionA())
1170 getRenditionA()->onTexturePropertyAttached(textureId, propDef);
1171 if (hasRenditionB())
1172 getRenditionB()->onTexturePropertyAttached(textureId, propDef);
1173 }
1174 // Called to detach property from texture.
1176 {
1177 if (hasRenditionA())
1178 getRenditionA()->onTexturePropertyDetached(textureId, propType);
1179 if (hasRenditionB())
1180 getRenditionB()->onTexturePropertyDetached(textureId, propType);
1181 }
1182 // Light-related properties.
1183 // Called to attach property to light source.
1184 virtual void onLightPropertyAttached(OdTrVisLightId lightId, const OdTrVisPropertyDef &propDef)
1185 {
1186 if (hasRenditionA())
1187 getRenditionA()->onLightPropertyAttached(lightId, propDef);
1188 if (hasRenditionB())
1189 getRenditionB()->onLightPropertyAttached(lightId, propDef);
1190 }
1191 // Called to detach property from light source.
1193 {
1194 if (hasRenditionA())
1195 getRenditionA()->onLightPropertyDetached(lightId, propType);
1196 if (hasRenditionB())
1197 getRenditionB()->onLightPropertyDetached(lightId, propType);
1198 }
1199 // StateBranch-related properties.
1200 // Called to attach property to state branch.
1202 {
1203 if (hasRenditionA())
1204 getRenditionA()->onStateBranchPropertyAttached(stateBranchId, propDef);
1205 if (hasRenditionB())
1206 getRenditionB()->onStateBranchPropertyAttached(stateBranchId, propDef);
1207 }
1208 // Called to detach property from state branch.
1210 {
1211 if (hasRenditionA())
1212 getRenditionA()->onStateBranchPropertyDetached(stateBranchId, propType);
1213 if (hasRenditionB())
1214 getRenditionB()->onStateBranchPropertyDetached(stateBranchId, propType);
1215 }
1216 // Viewport-related properties.
1217 // Called to attach property to viewport.
1218 virtual void onViewportPropertyAttached(OdTrVisViewportId viewportId, const OdTrVisPropertyDef &propDef)
1219 {
1220 if (hasRenditionA())
1221 getRenditionA()->onViewportPropertyAttached(viewportId, propDef);
1222 if (hasRenditionB())
1223 getRenditionB()->onViewportPropertyAttached(viewportId, propDef);
1224 }
1225 // Called to detach property from viewport.
1227 {
1228 if (hasRenditionA())
1229 getRenditionA()->onViewportPropertyDetached(viewportId, propType);
1230 if (hasRenditionB())
1231 getRenditionB()->onViewportPropertyDetached(viewportId, propType);
1232 }
1233 // Overlay-related properties.
1234 // Called to attach property to overlay.
1235 virtual void onOverlayPropertyAttached(OdTrVisOverlayId overlayId, const OdTrVisPropertyDef &propDef)
1236 {
1237 if (hasRenditionA())
1238 getRenditionA()->onOverlayPropertyAttached(overlayId, propDef);
1239 if (hasRenditionB())
1240 getRenditionB()->onOverlayPropertyAttached(overlayId, propDef);
1241 }
1242 // Called to detach property from overlay.
1244 {
1245 if (hasRenditionA())
1246 getRenditionA()->onOverlayPropertyDetached(overlayId, propType);
1247 if (hasRenditionB())
1248 getRenditionB()->onOverlayPropertyDetached(overlayId, propType);
1249 }
1250 // ExtensionObject-related properties.
1251 // Called to attach property to extension object.
1253 {
1254 if (hasRenditionA())
1256 if (hasRenditionB())
1258 }
1259 // Called to detach property from extension object.
1261 {
1262 if (hasRenditionA())
1264 if (hasRenditionB())
1266 }
1267 // Block-related properties.
1268 // Called to attach property to block.
1269 virtual void onBlockPropertyAttached(OdTrVisBlockId blockId, const OdTrVisPropertyDef &propDef)
1270 {
1271 if (hasRenditionA())
1272 getRenditionA()->onBlockPropertyAttached(blockId, propDef);
1273 if (hasRenditionB())
1274 getRenditionB()->onBlockPropertyAttached(blockId, propDef);
1275 }
1276 // Called to detach property from viewport.
1278 {
1279 if (hasRenditionA())
1280 getRenditionA()->onBlockPropertyDetached(blockId, propType);
1281 if (hasRenditionB())
1282 getRenditionB()->onBlockPropertyDetached(blockId, propType);
1283 }
1284};
1285
1286#include "TD_PackPop.h"
1287
1288#endif // ODTRVISRENDITIONBRANCHING
unsigned int OdUInt32
short OdInt16
unsigned short OdUInt16
unsigned char OdUInt8
#define ODRX_OVERRIDE
const OdTrVisId kTrVisNegativeId
Definition: TrVisDefs.h:128
OdSmartPtr< OdTrVisExtensionObject > OdTrVisExtensionObjectPtr
OdTrVisGeomType
@ OdTrVisGeomType_Default
OdSmartPtr< OdTrVisSharingProviderClient > OdTrVisSharingProviderClientPtr
bool isNull() const
Definition: BaseObjectPtr.h:86
RenderMode
Definition: Gs.h:148
static OdSmartPtr< TInterface > createObject()
Definition: RxObjectImpl.h:107
void setup(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId)
virtual OdTrVisRenderDataInvoke * wrapInvoke(OdTrVisRenderDataInvokeHid *pInvoke) const
virtual const OdTrVisDirectRenderPartialUpdateInvocation * basicInvocation() const
virtual bool incomeMetafile(OdTrVisDisplayId mfId)
void setRedirection(OdTrVisRenderDataInvoke *pRedirection)
virtual OdTrVisRenderDataInvoke * wrapInvoke(OdTrVisRenderDataInvokeHid *pInvoke) const
TD_USING(OdTrVisDirectRenderPartialUpdateInvocation::setup)
virtual const OdTrVisDirectRenderPartialUpdateInvocation * basicInvocation() const
void setup(OdTrVisDirectRenderPartialUpdateInvocation *pInvocationA, OdTrVisDirectRenderPartialUpdateInvocation *pInvocationB, const DisplayIdsMap *pIdMap)
virtual void onViewportSectioningChanged(OdTrVisViewportId viewportId, const OdTrVisSectionDef &pDef=OdTrVisSectionDef())
virtual void onLayerVisibilityChanged(OdTrVisLayerId layerId, bool bVisibility)
virtual bool queryPartialUpdateDirectInvocation(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, OdTrVisDirectRenderPartialUpdateInvocationPtr &pInvocationPtr)
virtual void onMetafilePropertyDetached(OdTrVisMetafileId metafileId, OdTrVisPropertyDef::PropertyType propType)
virtual IdRegistrator * idRegistrator() const
virtual void onVisualStylePropertyDetached(OdTrVisVisualStyleId visualStyleId, OdTrVisPropertyDef::PropertyType propType)
virtual void onLayerPropertyAttached(OdTrVisLayerId layerId, const OdTrVisPropertyDef &propDef)
virtual void onBlockPropertyDetached(OdTrVisBlockId blockId, OdTrVisPropertyDef::PropertyType propType)
OdTrVisRenditionBranching::IdRegistratorBranching m_idRegsBranching
virtual MtHandlerType mtDataTypeProcessing(DataType &type) const
void setClientSettingsRendition(bool bRenditionA=true, bool bRenditionB=false)
virtual void onGroupMetafilesDetached(OdTrVisGroupId groupId, const OdTrVisMetafileId *pMetafilesList, OdUInt32 nMetafiles)
virtual void onStateBranchAdded(OdTrVisStateBranchId stateBranchId, const OdTrVisStateBranchDef &pDef)
virtual void onDeviceUpdateEnd(OdTrVisRenderClient *pDevice, bool bRender=true)
virtual void onGroupPropertyAttached(OdTrVisGroupId groupId, const OdTrVisPropertyDef &propDef)
virtual OdUInt32 queryRenditionCaps(OdUInt32 requestFor=0xFFFFFFFF) const
virtual void onViewportAmbientLightChanged(OdTrVisViewportId viewportId, const OdTrVisMaterialColor &ambientLight)
virtual bool loadRenditionState(OdGsFiler *pFiler, OdTrVisIdMap *pIdMap)
virtual void onViewportShadingModified(OdTrVisViewportId viewportId, const OdTrVisViewportShadingDef &pDef)
virtual void onLightDeleted(OdTrVisLightId lightId)
virtual void onMetafileOrderInheritance(OdTrVisViewportId viewportId1, OdTrVisOverlayId overlayId1, OdTrVisViewportId viewportId2)
virtual void onGroupMetafilesVisibilityChanged(OdTrVisGroupId groupId, bool bVisibility)
virtual void onPartialUpdateList(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, const OdTrVisDisplayId *pList, OdUInt32 nEntries)
virtual void onMaterialDeleted(OdTrVisMaterialId materialId)
virtual void onOverlayDeleted(OdTrVisOverlayId overlayId)
virtual void onBlockAdded(OdTrVisBlockId blockId, const OdTrVisDisplayId *pList, OdUInt32 nEntries)
virtual void onLightModified(OdTrVisLightId lightId, OdUInt32 nKindOfMod, const OdTrVisLightDef &pDef)
virtual void onLayerVpDepPropsOverride(OdTrVisLayerId layerId, OdTrVisViewportId viewportId, bool bOverride, const OdTrVisLayerProps &pProps=OdTrVisLayerProps())
virtual void onMetafileOrderChanged(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, const OdTrVisDisplayId *pList, OdUInt32 nEntries)
virtual void onGroupPropertyDetached(OdTrVisGroupId groupId, OdTrVisPropertyDef::PropertyType propType)
struct OdTrVisRenditionBranching::DisplayIdMapping m_displayIdMapping
virtual void onStateBranchDeleted(OdTrVisStateBranchId stateBranchId)
const OdTrVisRendition * getRenditionB() const
OdTrVisRendition * getRenditionB()
virtual void onExtensionObjectSpecificData(OdTrVisExtensionId extId, OdUInt32 nDataId, const OdTrVisPropertyDef &propDef)
virtual void onMetafilePropertyAttached(OdTrVisMetafileId metafileId, const OdTrVisPropertyDef &propDef)
void setRenditionB(OdTrVisRendition *pRendition)
virtual void onViewportPropertyAttached(OdTrVisViewportId viewportId, const OdTrVisPropertyDef &propDef)
virtual OdTrVisSharingProviderClientPtr createSharingProvider()
virtual void onLightPropertyAttached(OdTrVisLightId lightId, const OdTrVisPropertyDef &propDef)
virtual void onMetafileDeleted(OdTrVisMetafileId metafileId)
virtual void onViewportLightDetached(OdTrVisViewportId viewportId, OdTrVisLightId lightId)
OdTrVisRendition * getRenditionA()
virtual bool isWithinDeviceUpdate() const
virtual void onSurfaceChanged(const OdTrVisSurfaceDef &pDef)
virtual bool onPartialUpdateCheckLimit(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId)
virtual void onStateBranchPropertyDetached(OdTrVisStateBranchId stateBranchId, OdTrVisPropertyDef::PropertyType propType)
virtual void onOverlayRenderOrderChanged(OdTrVisOverlayId overlayId, OdInt16 nRenderOrder)
virtual void onViewportInserted(OdTrVisViewportId viewportId, int nIndex, const OdTrVisViewportDef &pDef)
virtual void onViewportPropertyDetached(OdTrVisViewportId viewportId, OdTrVisPropertyDef::PropertyType propType)
virtual void onVisualStyleDeleted(OdTrVisVisualStyleId visualStyleId)
virtual void onBlockDeleted(OdTrVisBlockId blockId)
virtual void onViewportBackgroundChanged(OdTrVisViewportId viewportId, OdTrVisFlatMetafileContainerPtr pStream, OdTrVisProgramId baseProgramId=kTrVisNegativeId)
virtual void onViewportDeleted(OdTrVisViewportId viewportId)
virtual void onBlockPropertyAttached(OdTrVisBlockId blockId, const OdTrVisPropertyDef &propDef)
virtual void onOverlayExtentsOverride(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, const OdTrVisExtentsDef &pDef)
virtual void onTextureDeleted(OdTrVisTextureId textureId)
virtual void onViewportAdded(OdTrVisViewportId viewportId, const OdTrVisViewportDef &pDef)
virtual void onViewportClipModified(OdTrVisViewportId viewportId, const OdTrVisViewportClipDef &pDef, bool bNrcClipModified=true, bool bBorderModified=true)
void setRenditions(OdTrVisRendition *pRenditionA, OdTrVisRendition *pRenditionB)
virtual bool queryMetafileStream(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, const OdTrVisDisplayId *pDisplayId, OdUInt32 nPathLength, const OdTrVisMetafileContainer **pStream)
virtual void onPartialUpdateDirectInvocation(const OdTrVisDirectRenderPartialUpdateInvocation *pInvocation, OdTrVisRenderDataDirectAccessor *pAccessor)
virtual void onBlockModified(OdTrVisBlockId blockId, OdUInt32 nInvalidFrom, OdUInt32 nInvalidLen, const OdTrVisDisplayId *pValidFrom, OdUInt32 nValidLen)
virtual void onVisualStyleAdded(OdTrVisVisualStyleId visualStyleId, const OdTrVisVisualStyle &pDef)
void metafileStreamRemapping(const OdTrVisMetafileDef &pDef)
virtual void onViewportVisibilityChanged(OdTrVisViewportId viewportId, bool bVisibility)
virtual void onTexturePropertyAttached(OdTrVisTextureId textureId, const OdTrVisPropertyDef &propDef)
virtual void onExtensionObjectVisibilityChanged(OdTrVisExtensionId extId, bool bVisibility)
virtual void obtainClientSettings(ClientSettings &clientSets)
virtual void onOverlayViewParamsOverride(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, bool bOverride, const OdTrVisViewParamsDef &pDef=OdTrVisViewParamsDef())
virtual void onViewportLightAttached(OdTrVisViewportId viewportId, OdTrVisLightId lightId, OdUInt32 nOverrides=0, const OdTrVisLightDef &pOverrides=OdTrVisLightDef())
virtual void onOverlayPropertyDetached(OdTrVisOverlayId overlayId, OdTrVisPropertyDef::PropertyType propType)
virtual void onLayerAdded(OdTrVisLayerId layerId, const OdTrVisLayerDef &pDef)
virtual void onExtensionObjectPropertyAttached(OdTrVisExtensionId extId, const OdTrVisPropertyDef &propDef)
virtual void onMetafileFadingChanged(OdTrVisMetafileId metafileId, bool bFade)
virtual void onOverlayPropertyAttached(OdTrVisOverlayId overlayId, const OdTrVisPropertyDef &propDef)
virtual void onLightAdded(OdTrVisLightId lightId, const OdTrVisLightDef &pDef)
virtual void onExtensionObjectDeleted(OdTrVisExtensionId extId)
virtual void onMaterialPropertyAttached(OdTrVisMaterialId materialId, const OdTrVisPropertyDef &propDef)
virtual void onViewportLineStylesModified(OdTrVisViewportId viewportId, const OdTrVisViewportLineStyleDef &pDef)
virtual void onLayerFadingChanged(OdTrVisLayerId layerId, bool bFade)
virtual void onStateBranchPropertyAttached(OdTrVisStateBranchId stateBranchId, const OdTrVisPropertyDef &propDef)
virtual void onExtensionObjectAdded(OdTrVisExtensionId extId, const OdTrVisExtensionObject *pObj)
virtual OdTrVisExtensionObjectPtr queryExtensionObject(OdTrVisExtensionId extId)
virtual void onDeviceUpdateBegin(OdTrVisRenderClient *pDevice)
virtual void onTextureAdded(OdTrVisTextureId textureId, const OdTrVisTextureDef &pDef)
virtual void onFrameSwitchInfo(OdUInt32 nInterval)
virtual void onViewportViewParamsModified(OdTrVisViewportId viewportId, const OdTrVisViewParamsDef &pDef)
virtual void onPartialUpdateInvalidRects(OdTrVisOverlayId overlayId, const OdGsDCRectArray &invalidRects, bool bOverlayInvalid=false)
virtual void onLayerPropertyDetached(OdTrVisLayerId layerId, OdTrVisPropertyDef::PropertyType propType)
virtual void onViewportFogChanged(OdTrVisViewportId viewportId, const OdTrVisFogDef &pDef=OdTrVisFogDef())
virtual void onGroupMetafilesAttached(OdTrVisGroupId groupId, const OdTrVisMetafileId *pMetafilesList, OdUInt32 nMetafiles)
virtual void onMetafileVisibilityChanged(OdTrVisMetafileId metafileId, bool bVisibility)
virtual void onGroupMetafilesFadingChanged(OdTrVisGroupId groupId, bool bFade)
static const MtHandlerType g_mtHandlerPriority[6][6]
virtual void onLayerDeleted(OdTrVisLayerId layerId)
virtual void querySnapshot(OdUInt8 *pScanlines, long minX, long minY, long nWidth, long nHeight)
virtual void onGroupAdded(OdTrVisGroupId groupId)
virtual void onLightPropertyDetached(OdTrVisLightId lightId, OdTrVisPropertyDef::PropertyType propType)
const OdTrVisRendition * getClientSettingsRendition() const
virtual void onMetafileHighlightingChanged(OdTrVisMetafileId metafileId, bool bHighlight)
void setRenditionA(OdTrVisRendition *pRendition)
virtual void onViewportFadingModified(OdTrVisViewportId viewportId, const OdTrVisViewportFadingDef &pDef)
OdTrVisRendition * getClientSettingsRendition()
virtual void onVisualStyleModified(OdTrVisVisualStyleId visualStyleId, const OdTrVisVisualStyle &pDef)
virtual void onOverlayVisibilityChanged(OdTrVisOverlayId overlayId, bool bVisibility)
virtual void onGroupDeleted(OdTrVisGroupId groupId)
virtual void onViewportLineweightsModified(OdTrVisViewportId viewportId, const OdTrVisViewportLineweightsDef &pDef)
virtual bool saveRenditionState(OdGsFiler *pFiler) const
const OdTrVisRendition * getRenditionA() const
void onViewportSSAOChanged(OdTrVisViewportId viewportId, bool bEnabled) ODRX_OVERRIDE
virtual void onMaterialPropertyDetached(OdTrVisMaterialId materialId, OdTrVisPropertyDef::PropertyType propType)
virtual const OdTrVisDisplayId * queryBlockMetafilesList(OdTrVisBlockId blockId, OdUInt32 &numEntries)
virtual void onMetafileOrderChanged(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, OdUInt32 nInvalidFrom, OdUInt32 nInvalidLen, const OdTrVisDisplayId *pValidFrom, OdUInt32 nValidLen)
virtual void onExtensionObjectPropertyDetached(OdTrVisExtensionId extId, OdTrVisPropertyDef::PropertyType propType)
virtual OdTrVisProgramId queryProgramId(OdGsView::RenderMode mode, OdTrVisVisualStyleId vsId=kTrVisNegativeId, OdTrVisGeomType geomType=OdTrVisGeomType_Default, OdUInt16 attrFlags=0, OdUInt16 shadingFlags=0) const
virtual void onMaterialAdded(OdTrVisMaterialId materialId, const OdTrVisMaterialDef &pDef)
virtual OdTrVisDisplayId onMetafileAdded(OdTrVisMetafileId metafileId, const OdTrVisMetafileDef &pDef)
virtual void onViewportDefaultLightsChanged(OdTrVisViewportId viewportId, bool bDefaultLightsOn, const OdTrVisLightDef *pLightsList=NULL, OdUInt32 nLightsListEntries=0)
virtual void onTexturePropertyDetached(OdTrVisTextureId textureId, OdTrVisPropertyDef::PropertyType propType)
virtual bool unlockMetafileStream(const OdTrVisMetafileContainer *pStream)
virtual void onVisualStylePropertyAttached(OdTrVisVisualStyleId visualStyleId, const OdTrVisPropertyDef &propDef)
virtual void onGroupMetafilesHighlightingChanged(OdTrVisGroupId groupId, bool bHighlight)
virtual void getSelectedObject(OdTrVisViewportId id, OdUInt32 x, OdUInt32 y, OdArray< OdTrVisId > &outIDs, OdTrVisGsMarker *outMarker=NULL)
virtual void onOverlayAdded(OdTrVisOverlayId overlayId, const OdTrVisOverlayDef &pDef)
virtual void onStateBranchModified(OdTrVisStateBranchId stateBranchId, const OdTrVisStateBranchDef &pDef, bool bChildsModified, bool bMarkersModified)
virtual void onViewportAntiAliasingChanged(OdTrVisViewportId viewportId, OdUInt32 nAntiAliasing)
virtual void onMaterialAdded(OdTrVisMaterialId materialId, const OdTrVisMaterialDef &pDef)=0
virtual void onLayerDeleted(OdTrVisLayerId layerId)=0
virtual void onMetafileHighlightingChanged(OdTrVisMetafileId metafileId, bool bHighlight)=0
virtual void onVisualStyleDeleted(OdTrVisVisualStyleId visualStyleId)=0
virtual void onGroupMetafilesAttached(OdTrVisGroupId groupId, const OdTrVisMetafileId *pMetafilesList, OdUInt32 nMetafiles)=0
virtual void onViewportVisibilityChanged(OdTrVisViewportId viewportId, bool bVisibility)=0
virtual void onDeviceUpdateBegin(OdTrVisRenderClient *pDevice)=0
virtual void onExtensionObjectVisibilityChanged(OdTrVisExtensionId extId, bool bVisibility)=0
virtual void onOverlayExtentsOverride(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, const OdTrVisExtentsDef &pDef)=0
virtual void onVisualStylePropertyAttached(OdTrVisVisualStyleId visualStyleId, const OdTrVisPropertyDef &propDef)=0
virtual void onDeviceUpdateEnd(OdTrVisRenderClient *pDevice, bool bRender=true)=0
virtual void onExtensionObjectDeleted(OdTrVisExtensionId extId)=0
virtual void querySnapshot(OdUInt8 *pScanlines, long minX, long minY, long nWidth, long nHeight)=0
virtual void onOverlayAdded(OdTrVisOverlayId overlayId, const OdTrVisOverlayDef &pDef)=0
virtual void onViewportLightAttached(OdTrVisViewportId viewportId, OdTrVisLightId lightId, OdUInt32 nOverrides=0, const OdTrVisLightDef &pOverrides=OdTrVisLightDef())=0
virtual void getSelectedObject(OdTrVisViewportId id, OdUInt32 x, OdUInt32 y, OdArray< OdTrVisId > &outIDs, OdTrVisGsMarker *outMarker=NULL)=0
virtual void onLayerAdded(OdTrVisLayerId layerId, const OdTrVisLayerDef &pDef)=0
virtual void onViewportSectioningChanged(OdTrVisViewportId viewportId, const OdTrVisSectionDef &pDef=OdTrVisSectionDef())=0
virtual void onLayerVisibilityChanged(OdTrVisLayerId layerId, bool bVisibility)=0
virtual void onStateBranchPropertyDetached(OdTrVisStateBranchId stateBranchId, OdTrVisPropertyDef::PropertyType propType)=0
virtual void onMaterialDeleted(OdTrVisMaterialId materialId)=0
virtual void onExtensionObjectSpecificData(OdTrVisExtensionId extId, OdUInt32 nDataId, const OdTrVisPropertyDef &propDef)=0
virtual void onVisualStyleAdded(OdTrVisVisualStyleId visualStyleId, const OdTrVisVisualStyle &pDef)=0
virtual void onLightDeleted(OdTrVisLightId lightId)=0
virtual bool loadRenditionState(OdGsFiler *pFiler, OdTrVisIdMap *pIdMap)=0
virtual void onStateBranchDeleted(OdTrVisStateBranchId stateBranchId)=0
virtual bool onPartialUpdateCheckLimit(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId)=0
virtual void onLayerPropertyDetached(OdTrVisLayerId layerId, OdTrVisPropertyDef::PropertyType propType)=0
virtual void onPartialUpdateList(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, const OdTrVisDisplayId *pList, OdUInt32 nEntries)=0
virtual void onOverlayViewParamsOverride(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, bool bOverride, const OdTrVisViewParamsDef &pDef=OdTrVisViewParamsDef())=0
virtual void onLayerVpDepPropsOverride(OdTrVisLayerId layerId, OdTrVisViewportId viewportId, bool bOverride, const OdTrVisLayerProps &pProps=OdTrVisLayerProps())=0
virtual OdUInt32 queryRenditionCaps(OdUInt32 requestFor=0xFFFFFFFF) const =0
virtual void onBlockPropertyDetached(OdTrVisBlockId blockId, OdTrVisPropertyDef::PropertyType propType)=0
virtual void onLightPropertyAttached(OdTrVisLightId lightId, const OdTrVisPropertyDef &propDef)=0
virtual void onStateBranchAdded(OdTrVisStateBranchId stateBranchId, const OdTrVisStateBranchDef &pDef)=0
virtual void onMetafileDeleted(OdTrVisMetafileId metafileId)=0
virtual void onViewportFogChanged(OdTrVisViewportId viewportId, const OdTrVisFogDef &pDef=OdTrVisFogDef())=0
virtual void onExtensionObjectPropertyDetached(OdTrVisExtensionId extId, OdTrVisPropertyDef::PropertyType propType)=0
virtual void onLightModified(OdTrVisLightId lightId, OdUInt32 nKindOfMod, const OdTrVisLightDef &pDef)=0
virtual void onViewportSSAOChanged(OdTrVisViewportId viewportId, bool bEnabled)=0
virtual bool queryPartialUpdateDirectInvocation(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, OdTrVisDirectRenderPartialUpdateInvocationPtr &pInvocationPtr)=0
virtual void onViewportViewParamsModified(OdTrVisViewportId viewportId, const OdTrVisViewParamsDef &pDef)=0
virtual void onExtensionObjectAdded(OdTrVisExtensionId extId, const OdTrVisExtensionObject *pObj)=0
virtual void onMetafileOrderInheritance(OdTrVisViewportId viewportId1, OdTrVisOverlayId overlayId1, OdTrVisViewportId viewportId2)=0
virtual void onLightPropertyDetached(OdTrVisLightId lightId, OdTrVisPropertyDef::PropertyType propType)=0
virtual void onViewportLightDetached(OdTrVisViewportId viewportId, OdTrVisLightId lightId)=0
virtual void onViewportDefaultLightsChanged(OdTrVisViewportId viewportId, bool bDefaultLightsOn, const OdTrVisLightDef *pLightsList=NULL, OdUInt32 nLightsListEntries=0)=0
virtual void onViewportLineStylesModified(OdTrVisViewportId viewportId, const OdTrVisViewportLineStyleDef &pDef)=0
virtual void onMetafileVisibilityChanged(OdTrVisMetafileId metafileId, bool bVisibility)=0
virtual void onViewportPropertyAttached(OdTrVisViewportId viewportId, const OdTrVisPropertyDef &propDef)=0
virtual void onViewportBackgroundChanged(OdTrVisViewportId viewportId, OdTrVisFlatMetafileContainerPtr pStream, OdTrVisProgramId baseProgramId=kTrVisNegativeId)=0
virtual void onTextureDeleted(OdTrVisTextureId textureId)=0
virtual void onGroupMetafilesDetached(OdTrVisGroupId groupId, const OdTrVisMetafileId *pMetafilesList, OdUInt32 nMetafiles)=0
virtual void onOverlayPropertyAttached(OdTrVisOverlayId overlayId, const OdTrVisPropertyDef &propDef)=0
virtual void onOverlayPropertyDetached(OdTrVisOverlayId overlayId, OdTrVisPropertyDef::PropertyType propType)=0
virtual void onBlockDeleted(OdTrVisBlockId blockId)=0
virtual void onBlockPropertyAttached(OdTrVisBlockId blockId, const OdTrVisPropertyDef &propDef)=0
virtual void onViewportAntiAliasingChanged(OdTrVisViewportId viewportId, OdUInt32 nAntiAliasing)=0
virtual void onGroupDeleted(OdTrVisGroupId groupId)=0
virtual void onGroupMetafilesFadingChanged(OdTrVisGroupId groupId, bool bFade)=0
virtual MtHandlerType mtDataTypeProcessing(DataType &type) const =0
virtual OdTrVisSharingProviderClientPtr createSharingProvider()=0
virtual void onStateBranchModified(OdTrVisStateBranchId stateBranchId, const OdTrVisStateBranchDef &pDef, bool bChildsModified, bool bMarkersModified)=0
virtual void onMaterialPropertyAttached(OdTrVisMaterialId materialId, const OdTrVisPropertyDef &propDef)=0
virtual void onExtensionObjectPropertyAttached(OdTrVisExtensionId extId, const OdTrVisPropertyDef &propDef)=0
virtual void onMetafileOrderChanged(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, const OdTrVisDisplayId *pList, OdUInt32 nEntries)=0
virtual void onTexturePropertyAttached(OdTrVisTextureId textureId, const OdTrVisPropertyDef &propDef)=0
virtual void onLayerPropertyAttached(OdTrVisLayerId layerId, const OdTrVisPropertyDef &propDef)=0
virtual void onVisualStylePropertyDetached(OdTrVisVisualStyleId visualStyleId, OdTrVisPropertyDef::PropertyType propType)=0
virtual bool isWithinDeviceUpdate() const =0
virtual void onViewportClipModified(OdTrVisViewportId viewportId, const OdTrVisViewportClipDef &pDef, bool bNrcClipModified=true, bool bBorderModified=true)=0
virtual bool unlockMetafileStream(const OdTrVisMetafileContainer *pStream)=0
virtual void onVisualStyleModified(OdTrVisVisualStyleId visualStyleId, const OdTrVisVisualStyle &pDef)=0
virtual void onViewportShadingModified(OdTrVisViewportId viewportId, const OdTrVisViewportShadingDef &pDef)=0
virtual void onPartialUpdateDirectInvocation(const OdTrVisDirectRenderPartialUpdateInvocation *pInvocation, OdTrVisRenderDataDirectAccessor *pAccessor)=0
virtual OdTrVisProgramId queryProgramId(OdGsView::RenderMode mode, OdTrVisVisualStyleId vsId=kTrVisNegativeId, OdTrVisGeomType geomType=OdTrVisGeomType_Default, OdUInt16 attrFlags=0, OdUInt16 shadingFlags=0) const =0
virtual OdTrVisDisplayId onMetafileAdded(OdTrVisMetafileId metafileId, const OdTrVisMetafileDef &pDef)=0
virtual void onViewportLineweightsModified(OdTrVisViewportId viewportId, const OdTrVisViewportLineweightsDef &pDef)=0
virtual bool saveRenditionState(OdGsFiler *pFiler) const =0
virtual OdTrVisExtensionObjectPtr queryExtensionObject(OdTrVisExtensionId extId)=0
virtual void onFrameSwitchInfo(OdUInt32 nInterval)=0
virtual void onGroupPropertyAttached(OdTrVisGroupId groupId, const OdTrVisPropertyDef &propDef)=0
virtual void onOverlayVisibilityChanged(OdTrVisOverlayId overlayId, bool bVisibility)=0
virtual void onBlockAdded(OdTrVisBlockId blockId, const OdTrVisDisplayId *pList, OdUInt32 nEntries)=0
virtual void onMetafilePropertyDetached(OdTrVisMetafileId metafileId, OdTrVisPropertyDef::PropertyType propType)=0
virtual void onViewportInserted(OdTrVisViewportId viewportId, int nIndex, const OdTrVisViewportDef &pDef)=0
virtual void onLightAdded(OdTrVisLightId lightId, const OdTrVisLightDef &pDef)=0
virtual void onViewportFadingModified(OdTrVisViewportId viewportId, const OdTrVisViewportFadingDef &pDef)=0
virtual void onMaterialPropertyDetached(OdTrVisMaterialId materialId, OdTrVisPropertyDef::PropertyType propType)=0
virtual void onViewportDeleted(OdTrVisViewportId viewportId)=0
virtual void onSurfaceInvalidated()=0
virtual void onOverlayDeleted(OdTrVisOverlayId overlayId)=0
virtual void onOverlayRenderOrderChanged(OdTrVisOverlayId overlayId, OdInt16 nRenderOrder)=0
virtual void onPartialUpdateInvalidRects(OdTrVisOverlayId overlayId, const OdGsDCRectArray &invalidRects, bool bOverlayInvalid=false)=0
virtual void onGroupMetafilesHighlightingChanged(OdTrVisGroupId groupId, bool bHighlight)=0
virtual void onSurfaceChanged(const OdTrVisSurfaceDef &pDef)=0
virtual void onGroupAdded(OdTrVisGroupId groupId)=0
virtual void onMetafileFadingChanged(OdTrVisMetafileId metafileId, bool bFade)=0
virtual bool queryMetafileStream(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, const OdTrVisDisplayId *pDisplayId, OdUInt32 nPathLength, const OdTrVisMetafileContainer **pStream)=0
virtual void onTextureAdded(OdTrVisTextureId textureId, const OdTrVisTextureDef &pDef)=0
virtual void onTexturePropertyDetached(OdTrVisTextureId textureId, OdTrVisPropertyDef::PropertyType propType)=0
virtual void onMetafilePropertyAttached(OdTrVisMetafileId metafileId, const OdTrVisPropertyDef &propDef)=0
virtual void onGroupPropertyDetached(OdTrVisGroupId groupId, OdTrVisPropertyDef::PropertyType propType)=0
virtual void onViewportAmbientLightChanged(OdTrVisViewportId viewportId, const OdTrVisMaterialColor &ambientLight)=0
virtual void onViewportPropertyDetached(OdTrVisViewportId viewportId, OdTrVisPropertyDef::PropertyType propType)=0
virtual void onBlockModified(OdTrVisBlockId blockId, OdUInt32 nInvalidFrom, OdUInt32 nInvalidLen, const OdTrVisDisplayId *pValidFrom, OdUInt32 nValidLen)=0
virtual const OdTrVisDisplayId * queryBlockMetafilesList(OdTrVisBlockId blockId, OdUInt32 &numEntries)=0
virtual void onLayerFadingChanged(OdTrVisLayerId layerId, bool bFade)=0
virtual void onGroupMetafilesVisibilityChanged(OdTrVisGroupId groupId, bool bVisibility)=0
virtual void onStateBranchPropertyAttached(OdTrVisStateBranchId stateBranchId, const OdTrVisPropertyDef &propDef)=0
virtual void onViewportAdded(OdTrVisViewportId viewportId, const OdTrVisViewportDef &pDef)=0
GLuint GLsizei GLsizei GLint GLenum * type
Definition: gles2_ext.h:274
GLfloat x
Definition: gles2_ext.h:314
GLfloat GLfloat y
Definition: gles2_ext.h:316
virtual OdTrVisUniqueID * get(DataType type, OdTrVisId id, bool bKill=false) const =0
virtual void kill(DataType type, OdTrVisId id)=0
virtual void reg(DataType type, OdTrVisId id, OdDbStub *pPersId)=0
OdVector< OdTrVisDisplayId, OdMemoryAllocator< OdTrVisDisplayId > > m_temporaryDisplayIds
void regMapping(OdTrVisMetafileId mfId, OdTrVisDisplayId ds1, OdTrVisDisplayId ds2)
std::map< OdTrVisMetafileId, OdTrVisDisplayId > MetafileRegMap
std::map< OdTrVisDisplayId, OdTrVisDisplayId > DisplayIdsMap
OdTrVisDisplayId remap(OdTrVisDisplayId id) const
const OdTrVisDisplayId * remap(const OdTrVisDisplayId *pIdsList, OdUInt32 nData) const
virtual void kill(DataType type, OdTrVisId id)
virtual void reg(DataType type, OdTrVisId id, const OdTrVisUniqueID &uId)
virtual OdTrVisUniqueID * get(DataType type, OdTrVisId id, bool bKill=false) const
virtual void reg(DataType type, OdTrVisId id, OdDbStub *pPersId)
void setIdRegs(IdRegistrator *pRegA, IdRegistrator *pRegB)
virtual void reg(DataType type, OdTrVisId id, const OdGiDrawable *pTransId)