CFx SDK Documentation 2026 SP0
Loading...
Searching...
No Matches
TrVisRenditionBranching.h
Go to the documentation of this file.
1
2// Copyright (C) 2002-2024, 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-2024 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.
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 }
169 bool hasClientSettingsRendition() const { return !m_pRenditionC.isNull(); }
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.
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.
310 virtual void getSelectedObject(OdTrVisViewportId id, const OdGePoint2d* aPtDc, int numPoints, OdArray<OdTrVisId> &outIDs, OdTrVisGsMarker *outMarker = NULL) ODRX_OVERRIDE
311 {
312 if (hasRenditionA())
313 getRenditionA()->getSelectedObject(id, aPtDc, numPoints, outIDs, outMarker);
314 if (hasRenditionB())
315 getRenditionB()->getSelectedObject(id, aPtDc, numPoints, 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 // Extract local rendition-specific host service.
329 { // @@@TODO: probably we need branching of sharing providers?
330 if (hasRenditionA())
332 if (hasRenditionB())
334 return nullptr;
335 }
336
337 // Multithread processing flags
339 { // Each rendition must be protected by own Mt handler, but we still can sort handler types by priority.
340 if (hasRenditions())
341 {
343 const MtHandlerType rv = g_mtHandlerPriority[MtComplex::decode(typeA)][MtComplex::decode(typeB)];
344 if (rv == kMtComplex)
345 {
346 if (MtComplex::decode(typeA) == kMtComplex)
347 return typeA;
348 return typeB;
349 }
350 return rv;
351 }
352 if (hasRenditionA())
354 if (hasRenditionB())
356 return kMtSkip;
357 }
358
359 // Returns Id registrator, or NULL if no registration supported
361 {
362 if (m_idRegsBranching.hasIdRegs())
363 return &m_idRegsBranching;
364 if (m_idRegsBranching.hasIdRegA())
365 return m_idRegsBranching.getIdRegA();
366 if (m_idRegsBranching.hasIdRegB())
367 return m_idRegsBranching.getIdRegB();
368 return NULL;
369 }
370
371 // Returns true if metafile streams accessible directly, returns stream by Id
372 virtual bool queryMetafileStream(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, const OdTrVisDisplayId *pDisplayId,
373 OdUInt32 nPathLength, const OdTrVisMetafileContainer **pStream)
374 {
375 if (hasRenditionA() && getRenditionA()->queryMetafileStream(viewportId, overlayId, pDisplayId, nPathLength, pStream))
376 return true;
377 if (hasRenditionB())
378 return getRenditionB()->queryMetafileStream(viewportId, overlayId, m_displayIdMapping.remap(pDisplayId, nPathLength), nPathLength, pStream);
379 return false;
380 }
381 // Unlock metafile stream, queried by queryMetafileStream method
383 {
385 return true;
386 if (hasRenditionB())
387 return getRenditionB()->unlockMetafileStream(pStream);
388 return false;
389 }
390
391 // Returns block metafile list in case if it is accessible.
393 { const OdTrVisDisplayId *pRVal;
394 if (hasRenditionA() && (pRVal = getRenditionA()->queryBlockMetafilesList(blockId, numEntries)))
395 return pRVal;
396 if (hasRenditionB())
397 return getRenditionB()->queryBlockMetafilesList(blockId, numEntries);
398 return NULL;
399 }
400
401 // Returns extension object by Id.
404 if (hasRenditionA() && !(pExtObj = getRenditionA()->queryExtensionObject(extId)).isNull())
405 return pExtObj;
406 if (hasRenditionB())
407 return getRenditionB()->queryExtensionObject(extId);
409 }
410
411 // Returns non-kTrVisNegativeId in case if vectorizer supports ProgramID's embedded into metafile stream
413 OdTrVisGeomType geomType = OdTrVisGeomType_Default, OdUInt16 attrFlags = 0, OdUInt16 shadingFlags = 0) const
414 {
415 if (hasRenditionA())
416 {
417 const OdTrVisProgramId prgId = getRenditionA()->queryProgramId(mode, vsId, geomType, attrFlags, shadingFlags);
418 if (prgId != kTrVisNegativeId)
419 return true;
420 }
421 if (hasRenditionB())
422 return getRenditionB()->queryProgramId(mode, vsId, geomType, attrFlags, shadingFlags);
423 return kTrVisNegativeId;
424 }
425
426 // GsFiler support
427 virtual bool saveRenditionState(OdGsFiler *pFiler) const
428 {
430 return false;
431 if (hasRenditionB())
432 return getRenditionB()->saveRenditionState(pFiler);
433 return false;
434 }
435 virtual bool loadRenditionState(OdGsFiler *pFiler, OdTrVisIdMap *pIdMap)
436 {
437 if (hasRenditionA() && !getRenditionA()->loadRenditionState(pFiler, pIdMap))
438 return false;
439 if (hasRenditionB())
440 return getRenditionB()->loadRenditionState(pFiler, pIdMap);
441 return false;
442 }
443
444 // Mid-level callbacks
445
446 // Client information
447
448 // Returns rendering client settings.
449 virtual void obtainClientSettings(ClientSettings &clientSets);
450
451 // Surface
452
453 // Called when output render surface parameters changed.
454 virtual void onSurfaceChanged(const OdTrVisSurfaceDef &pDef)
455 {
456 if (hasRenditionA())
458 if (hasRenditionB())
460 }
461 // Called when rendering surface needs to be invalidated forcibly.
469
470 // Overlays
471
472 // Called when new overlay added into device.
473 virtual void onOverlayAdded(OdTrVisOverlayId overlayId, const OdTrVisOverlayDef &pDef)
474 {
475 if (hasRenditionA())
476 getRenditionA()->onOverlayAdded(overlayId, pDef);
477 if (hasRenditionB())
478 getRenditionB()->onOverlayAdded(overlayId, pDef);
479 }
480 // Called when exist overlay removed from device.
481 virtual void onOverlayDeleted(OdTrVisOverlayId overlayId)
482 {
483 if (hasRenditionA())
484 getRenditionA()->onOverlayDeleted(overlayId);
485 if (hasRenditionB())
486 getRenditionB()->onOverlayDeleted(overlayId);
487 }
488 // Called when overlay visibility changed.
489 virtual void onOverlayVisibilityChanged(OdTrVisOverlayId overlayId, bool bVisibility)
490 {
491 if (hasRenditionA())
492 getRenditionA()->onOverlayVisibilityChanged(overlayId, bVisibility);
493 if (hasRenditionB())
494 getRenditionB()->onOverlayVisibilityChanged(overlayId, bVisibility);
495 }
496 // Called when overlay rendering order changed.
497 virtual void onOverlayRenderOrderChanged(OdTrVisOverlayId overlayId, OdInt16 nRenderOrder)
498 {
499 if (hasRenditionA())
500 getRenditionA()->onOverlayRenderOrderChanged(overlayId, nRenderOrder);
501 if (hasRenditionB())
502 getRenditionB()->onOverlayRenderOrderChanged(overlayId, nRenderOrder);
503 }
504
505 // Viewports
506
507 // Called when new viewport added into device.
508 virtual void onViewportAdded(OdTrVisViewportId viewportId, const OdTrVisViewportDef &pDef)
509 {
510 if (hasRenditionA())
511 getRenditionA()->onViewportAdded(viewportId, pDef);
512 if (hasRenditionB())
513 getRenditionB()->onViewportAdded(viewportId, pDef);
514 }
515 // Called when viewport inserted in list with some index.
516 virtual void onViewportInserted(OdTrVisViewportId viewportId, int nIndex, const OdTrVisViewportDef &pDef)
517 {
518 if (hasRenditionA())
519 getRenditionA()->onViewportInserted(viewportId, nIndex, pDef);
520 if (hasRenditionB())
521 getRenditionB()->onViewportInserted(viewportId, nIndex, pDef);
522 }
523 // Called when viewport removed from device.
524 virtual void onViewportDeleted(OdTrVisViewportId viewportId)
525 {
526 if (hasRenditionA())
527 getRenditionA()->onViewportDeleted(viewportId);
528 if (hasRenditionB())
529 getRenditionB()->onViewportDeleted(viewportId);
530 }
531 // Called when viewport visibility changed.
532 virtual void onViewportVisibilityChanged(OdTrVisViewportId viewportId, bool bVisibility)
533 {
534 if (hasRenditionA())
535 getRenditionA()->onViewportVisibilityChanged(viewportId, bVisibility);
536 if (hasRenditionB())
537 getRenditionB()->onViewportVisibilityChanged(viewportId, bVisibility);
538 }
539
540 // Primary viewports configuration
541
542 // Called when viewport view parameters is modified.
544 {
545 if (hasRenditionA())
546 getRenditionA()->onViewportViewParamsModified(viewportId, pDef);
547 if (hasRenditionB())
548 getRenditionB()->onViewportViewParamsModified(viewportId, pDef);
549 }
550 // Called when viewport linestyle settings is modified.
552 {
553 if (hasRenditionA())
554 getRenditionA()->onViewportLineStylesModified(viewportId, pDef);
555 if (hasRenditionB())
556 getRenditionB()->onViewportLineStylesModified(viewportId, pDef);
557 }
558 // Called when viewport fading settings is modified.
560 {
561 if (hasRenditionA())
562 getRenditionA()->onViewportFadingModified(viewportId, pDef);
563 if (hasRenditionB())
564 getRenditionB()->onViewportFadingModified(viewportId, pDef);
565 }
566 // Called when viewport lineweight settings is modified.
568 {
569 if (hasRenditionA())
570 getRenditionA()->onViewportLineweightsModified(viewportId, pDef);
571 if (hasRenditionB())
572 getRenditionB()->onViewportLineweightsModified(viewportId, pDef);
573 }
574 // Called when viewport rendering mode is modified.
576 {
577 if (hasRenditionA())
578 getRenditionA()->onViewportShadingModified(viewportId, pDef);
579 if (hasRenditionB())
580 getRenditionB()->onViewportShadingModified(viewportId, pDef);
581 }
582 // Called when viewport clipping region is modified.
584 bool bNrcClipModified = true, bool bBorderModified = true)
585 {
586 if (hasRenditionA())
587 getRenditionA()->onViewportClipModified(viewportId, pDef, bNrcClipModified, bBorderModified);
588 if (hasRenditionB())
589 getRenditionB()->onViewportClipModified(viewportId, pDef, bNrcClipModified, bBorderModified);
590 }
591
592 // Extended viewports configuration
593
594 // Called when background stream in viewport is changed.
596 {
597 if (hasRenditionA())
598 getRenditionA()->onViewportBackgroundChanged(viewportId, pDef);
599 if (hasRenditionB())
600 getRenditionB()->onViewportBackgroundChanged(viewportId, pDef);
601 }
602 // Called when viewport fog changed.
603 virtual void onViewportFogChanged(OdTrVisViewportId viewportId, const OdTrVisFogDef &pDef)
604 {
605 if (hasRenditionA())
606 getRenditionA()->onViewportFogChanged(viewportId, pDef);
607 if (hasRenditionB())
608 getRenditionB()->onViewportFogChanged(viewportId, pDef);
609 }
610 // Called when viewport sectioning modified.
612 {
613 if (hasRenditionA())
614 getRenditionA()->onViewportSectioningChanged(viewportId, pDef);
615 if (hasRenditionB())
616 getRenditionB()->onViewportSectioningChanged(viewportId, pDef);
617 }
618 // Called when viewport anti-aliasing setting changed.
619 virtual void onViewportAntiAliasingChanged(OdTrVisViewportId viewportId, OdUInt32 nAntiAliasing)
620 {
621 if (hasRenditionA())
622 getRenditionA()->onViewportAntiAliasingChanged(viewportId, nAntiAliasing);
623 if (hasRenditionB())
624 getRenditionB()->onViewportAntiAliasingChanged(viewportId, nAntiAliasing);
625 }
626
627 // Called when viewport ssao setting changed.
629 {
630 if (hasRenditionA())
631 getRenditionA()->onViewportSSAOChanged(viewportId, bEnabled);
632 if (hasRenditionB())
633 getRenditionB()->onViewportSSAOChanged(viewportId, bEnabled);
634 }
635
636 // Viewport default lights configuration
637
638 // Called when viewport ambient light setting modified.
639 virtual void onViewportAmbientLightChanged(OdTrVisViewportId viewportId, const OdTrVisMaterialColor &ambientLight)
640 {
641 if (hasRenditionA())
642 getRenditionA()->onViewportAmbientLightChanged(viewportId, ambientLight);
643 if (hasRenditionB())
644 getRenditionB()->onViewportAmbientLightChanged(viewportId, ambientLight);
645 }
646 // Called when viewport default light setting modified.
647 virtual void onViewportDefaultLightsChanged(OdTrVisViewportId viewportId, bool bDefaultLightsOn,
648 const OdTrVisLightDef *pLightsList = NULL, OdUInt32 nLightsListEntries = 0)
649 {
650 if (hasRenditionA())
651 getRenditionA()->onViewportDefaultLightsChanged(viewportId, bDefaultLightsOn, pLightsList, nLightsListEntries);
652 if (hasRenditionB())
653 getRenditionB()->onViewportDefaultLightsChanged(viewportId, bDefaultLightsOn, pLightsList, nLightsListEntries);
654 }
655
656 // Viewport lights management
657
658 // Called when light source added into viewport light sources list.
660 OdUInt32 nOverrides = 0, const OdTrVisLightDef &pOverrides = OdTrVisLightDef())
661 {
662 if (hasRenditionA())
663 getRenditionA()->onViewportLightAttached(viewportId, lightId, nOverrides, pOverrides);
664 if (hasRenditionB())
665 getRenditionB()->onViewportLightAttached(viewportId, lightId, nOverrides, pOverrides);
666 }
667 // Called when light source removed from viewport light sources list.
669 {
670 if (hasRenditionA())
671 getRenditionA()->onViewportLightDetached(viewportId, lightId);
672 if (hasRenditionB())
673 getRenditionB()->onViewportLightDetached(viewportId, lightId);
674 }
675
676 // Per-overlay viewport overrides
677
678 // Called when viewport needs override view parameters for specific overlay.
679 virtual void onOverlayViewParamsOverride(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, bool bOverride,
681 {
682 if (hasRenditionA())
683 getRenditionA()->onOverlayViewParamsOverride(viewportId, overlayId, bOverride, pDef);
684 if (hasRenditionB())
685 getRenditionB()->onOverlayViewParamsOverride(viewportId, overlayId, bOverride, pDef);
686 }
687 // Called when viewport extents changed.
688 virtual void onOverlayExtentsOverride(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, const OdTrVisExtentsDef &pDef)
689 {
690 if (hasRenditionA())
691 getRenditionA()->onOverlayExtentsOverride(viewportId, overlayId, pDef);
692 if (hasRenditionB())
693 getRenditionB()->onOverlayExtentsOverride(viewportId, overlayId, pDef);
694 }
695
696 // Viewports ordering lists
697
698 // Called when order of metafiles in viewport is changed.
699 virtual void onMetafileOrderChanged(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, const OdTrVisDisplayId *pList, OdUInt32 nEntries)
700 {
701 if (hasRenditionA())
702 getRenditionA()->onMetafileOrderChanged(viewportId, overlayId, pList, nEntries);
703 if (hasRenditionB())
704 getRenditionB()->onMetafileOrderChanged(viewportId, overlayId, m_displayIdMapping.remap(pList, nEntries), nEntries);
705 }
706 // Called when order of metafiles in viewport is changed (for obtain modified part of list by renderer).
707 virtual void onMetafileOrderChanged(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, OdUInt32 nInvalidFrom, OdUInt32 nInvalidLen,
708 const OdTrVisDisplayId *pValidFrom, OdUInt32 nValidLen)
709 {
710 if (hasRenditionA())
711 getRenditionA()->onMetafileOrderChanged(viewportId, overlayId, nInvalidFrom, nInvalidLen, pValidFrom, nValidLen);
712 if (hasRenditionB())
713 getRenditionB()->onMetafileOrderChanged(viewportId, overlayId, nInvalidFrom, nInvalidLen, m_displayIdMapping.remap(pValidFrom, nValidLen), nValidLen);
714 }
715 // Called when order of metafiles can be inherit from other source.
716 virtual void onMetafileOrderInheritance( OdTrVisViewportId viewportId1, OdTrVisOverlayId overlayId1, OdTrVisViewportId viewportId2 )
717 {
718 if (hasRenditionA())
719 getRenditionA()->onMetafileOrderInheritance(viewportId1, overlayId1, viewportId2);
720 if (hasRenditionB())
721 getRenditionB()->onMetafileOrderInheritance(viewportId1, overlayId1, viewportId2);
722 }
723
724 // Metafiles
725
726 // Called when new metafile added (returns visualId, equal to metafileId by default).
728 { OdTrVisDisplayId id1, id2;
729 if (hasRenditionA())
730 { id1 = getRenditionA()->onMetafileAdded(metafileId, pDef);
731 if (!hasRenditionB())
732 id2 = id1; }
733 if (hasRenditionB())
735 id2 = getRenditionB()->onMetafileAdded(metafileId, pDef);
736 if (!hasRenditionA())
737 id1 = id2; }
738 if (id1 != id2)
739 m_displayIdMapping.regMapping(metafileId, id1, id2);
740 return id1;
741 }
742 // Called when exist metafile deleted.
743 virtual void onMetafileDeleted(OdTrVisMetafileId metafileId)
744 {
745 if (hasRenditionA())
746 getRenditionA()->onMetafileDeleted(metafileId);
747 if (hasRenditionB())
748 getRenditionB()->onMetafileDeleted(metafileId);
749 m_displayIdMapping.unregMapping(metafileId);
750 }
751 // Called when exist metafile changed.
752 //virtual void onMetafileModified(OdTrVisMetafileId metafileId, const OdTrVisMetafileDef &pDef)
753 //{
754 // if (hasRenditionA())
755 // getRenditionA()->onMetafileModified(metafileId, pDef);
756 // if (hasRenditionB())
757 // getRenditionB()->onMetafileModified(metafileId, pDef);
758 //}
759 // Called when exist metafile extents updated (affected by transformation state branches).
760 virtual void onMetafileExtentsUpdated(OdTrVisMetafileId metafileId, const OdGeExtents3d &extents)
761 {
762 if (hasRenditionA())
763 getRenditionA()->onMetafileExtentsUpdated(metafileId, extents);
764 if (hasRenditionB())
765 getRenditionB()->onMetafileExtentsUpdated(metafileId, extents);
766 }
767 // Called when exist metafile visibility changed.
768 virtual void onMetafileVisibilityChanged(OdTrVisMetafileId metafileId, bool bVisibility)
769 {
770 if (hasRenditionA())
771 getRenditionA()->onMetafileVisibilityChanged(metafileId, bVisibility);
772 if (hasRenditionB())
773 getRenditionB()->onMetafileVisibilityChanged(metafileId, bVisibility);
774 }
775 // Called when exist metafile highlighting changed.
776 virtual void onMetafileHighlightingChanged(OdTrVisMetafileId metafileId, bool bHighlight)
777 {
778 if (hasRenditionA())
779 getRenditionA()->onMetafileHighlightingChanged(metafileId, bHighlight);
780 if (hasRenditionB())
781 getRenditionB()->onMetafileHighlightingChanged(metafileId, bHighlight);
782 }
783 // Called when exist metafile fading changed.
784 virtual void onMetafileFadingChanged(OdTrVisMetafileId metafileId, bool bFade)
785 {
786 if (hasRenditionA())
787 getRenditionA()->onMetafileFadingChanged(metafileId, bFade);
788 if (hasRenditionB())
789 getRenditionB()->onMetafileFadingChanged(metafileId, bFade);
790 }
791
792 // Lights
793
794 // Called when new light source added.
795 virtual void onLightAdded(OdTrVisLightId lightId, const OdTrVisLightDef &pDef)
796 {
797 if (hasRenditionA())
798 getRenditionA()->onLightAdded(lightId, pDef);
799 if (hasRenditionB())
800 getRenditionB()->onLightAdded(lightId, pDef);
801 }
802 // Called when exist light source modified.
803 virtual void onLightModified(OdTrVisLightId lightId, OdUInt32 nKindOfMod, const OdTrVisLightDef &pDef)
804 {
805 if (hasRenditionA())
806 getRenditionA()->onLightModified(lightId, nKindOfMod, pDef);
807 if (hasRenditionB())
808 getRenditionB()->onLightModified(lightId, nKindOfMod, pDef);
809 }
810 // Called when exist light source deleted.
811 virtual void onLightDeleted(OdTrVisLightId lightId)
812 {
813 if (hasRenditionA())
814 getRenditionA()->onLightDeleted(lightId);
815 if (hasRenditionB())
816 getRenditionB()->onLightDeleted(lightId);
817 }
818
819 // State branches (highlighting, hide, transform)
820
821 // Called when new state branch added.
822 virtual void onStateBranchAdded(OdTrVisStateBranchId stateBranchId, const OdTrVisStateBranchDef &pDef)
823 {
824 if (hasRenditionA())
825 getRenditionA()->onStateBranchAdded(stateBranchId, pDef);
826 if (hasRenditionB())
827 getRenditionB()->onStateBranchAdded(stateBranchId, pDef);
828 }
829 // Called when exist state branch modified.
830 virtual void onStateBranchModified(OdTrVisStateBranchId stateBranchId, const OdTrVisStateBranchDef &pDef,
831 bool bChildsModified, bool bMarkersModified)
832 {
833 if (hasRenditionA())
834 getRenditionA()->onStateBranchModified(stateBranchId, pDef, bChildsModified, bMarkersModified);
835 if (hasRenditionB())
836 getRenditionB()->onStateBranchModified(stateBranchId, pDef, bChildsModified, bMarkersModified);
837 }
838 // Called when exist state branch deleted.
839 virtual void onStateBranchDeleted(OdTrVisStateBranchId stateBranchId)
840 {
841 if (hasRenditionA())
842 getRenditionA()->onStateBranchDeleted(stateBranchId);
843 if (hasRenditionB())
844 getRenditionB()->onStateBranchDeleted(stateBranchId);
845 }
846 // Called to attach additional data to range of state branch markers.
848 const OdTrVisPropertyDef &propDef)
849 {
850 if (hasRenditionA())
851 getRenditionA()->onStateBranchMarkersRangeDataAdded(stateBranchId, range, propDef);
852 if (hasRenditionB())
853 getRenditionB()->onStateBranchMarkersRangeDataAdded(stateBranchId, range, propDef);
854 }
855 // Called to detach additional data from state branch markers range.
863
864 // Textures
865
866 // Called when new texture added.
867 virtual void onTextureAdded(OdTrVisTextureId textureId, const OdTrVisTextureDef &pDef)
868 {
869 if (hasRenditionA())
870 getRenditionA()->onTextureAdded(textureId, pDef);
871 if (hasRenditionB())
872 getRenditionB()->onTextureAdded(textureId, pDef);
873 }
874 // Called when exist texture deleted.
875 virtual void onTextureDeleted(OdTrVisTextureId textureId)
876 {
877 if (hasRenditionA())
878 getRenditionA()->onTextureDeleted(textureId);
879 if (hasRenditionB())
880 getRenditionB()->onTextureDeleted(textureId);
881 }
882 // Called when texture flags modified.
883 virtual void onTextureFlagsModified(OdTrVisTextureId textureId, OdUInt32 newFlags)
884 {
885 if (hasRenditionA())
886 getRenditionA()->onTextureFlagsModified(textureId, newFlags);
887 if (hasRenditionB())
888 getRenditionB()->onTextureFlagsModified(textureId, newFlags);
889 }
890
891 // Materials
892
893 // Called when new material added.
894 virtual void onMaterialAdded(OdTrVisMaterialId materialId, const OdTrVisMaterialDef &pDef)
895 {
896 if (hasRenditionA())
897 getRenditionA()->onMaterialAdded(materialId, pDef);
898 if (hasRenditionB())
899 getRenditionB()->onMaterialAdded(materialId, pDef);
900 }
901 // Called when exist material deleted.
902 virtual void onMaterialDeleted(OdTrVisMaterialId materialId)
903 {
904 if (hasRenditionA())
905 getRenditionA()->onMaterialDeleted(materialId);
906 if (hasRenditionB())
907 getRenditionB()->onMaterialDeleted(materialId);
908 }
909 // Called when new material reflection plane added.
911 {
912 if (hasRenditionA())
913 getRenditionA()->onMaterialRefPlaneAdded(refPlaneId, pDef);
914 if (hasRenditionB())
915 getRenditionB()->onMaterialRefPlaneAdded(refPlaneId, pDef);
916 }
917 // Called when exist material reflection plane deleted.
919 {
920 if (hasRenditionA())
922 if (hasRenditionB())
924 }
925
926 // Visual Styles
927
928 // Called when new visual style added.
929 virtual void onVisualStyleAdded(OdTrVisVisualStyleId visualStyleId, const OdTrVisVisualStyle &pDef)
930 {
931 if (hasRenditionA())
932 getRenditionA()->onVisualStyleAdded(visualStyleId, pDef);
933 if (hasRenditionB())
934 getRenditionB()->onVisualStyleAdded(visualStyleId, pDef);
935 }
936 // Called when exist visual style modified.
937 virtual void onVisualStyleModified(OdTrVisVisualStyleId visualStyleId, const OdTrVisVisualStyle &pDef)
938 {
939 if (hasRenditionA())
940 getRenditionA()->onVisualStyleModified(visualStyleId, pDef);
941 if (hasRenditionB())
942 getRenditionB()->onVisualStyleModified(visualStyleId, pDef);
943 }
944 // Called when exist visual style deleted.
945 virtual void onVisualStyleDeleted(OdTrVisVisualStyleId visualStyleId)
946 {
947 if (hasRenditionA())
948 getRenditionA()->onVisualStyleDeleted(visualStyleId);
949 if (hasRenditionB())
950 getRenditionB()->onVisualStyleDeleted(visualStyleId);
951 }
952
953 // Layers
954
955 // Called when new layer added.
956 virtual void onLayerAdded(OdTrVisLayerId layerId, const OdTrVisLayerDef &pDef)
957 {
958 if (hasRenditionA())
959 getRenditionA()->onLayerAdded(layerId, pDef);
960 if (hasRenditionB())
961 getRenditionB()->onLayerAdded(layerId, pDef);
962 }
963 // Called when exist layer modified.
964 //virtual void onLayerModified(OdTrVisLayerId layerId, const OdTrVisLayerDef &pDef)
965 //{
966 // if (hasRenditionA())
967 // getRenditionA()->onLayerModified(layerId, pDef);
968 // if (hasRenditionB())
969 // getRenditionB()->onLayerModified(layerId, pDef);
970 //}
971 // Called when exist layer deleted.
972 virtual void onLayerDeleted(OdTrVisLayerId layerId)
973 {
974 if (hasRenditionA())
975 getRenditionA()->onLayerDeleted(layerId);
976 if (hasRenditionB())
977 getRenditionB()->onLayerDeleted(layerId);
978 }
979 // Called when exist layer visibility changed.
980 virtual void onLayerVisibilityChanged(OdTrVisLayerId layerId, bool bVisibility)
981 {
982 if (hasRenditionA())
983 getRenditionA()->onLayerVisibilityChanged(layerId, bVisibility);
984 if (hasRenditionB())
985 getRenditionB()->onLayerVisibilityChanged(layerId, bVisibility);
986 }
987 // Called when exist layer fading changed.
988 virtual void onLayerFadingChanged(OdTrVisLayerId layerId, bool bFade)
989 {
990 if (hasRenditionA())
991 getRenditionA()->onLayerFadingChanged(layerId, bFade);
992 if (hasRenditionB())
993 getRenditionB()->onLayerFadingChanged(layerId, bFade);
994 }
995 // Called when layer viewport-dependent properties changed.
996 virtual void onLayerVpDepPropsOverride(OdTrVisLayerId layerId, OdTrVisViewportId viewportId, bool bOverride,
997 const OdTrVisLayerProps &pProps = OdTrVisLayerProps())
998 {
999 if (hasRenditionA())
1000 getRenditionA()->onLayerVpDepPropsOverride(layerId, viewportId, bOverride, pProps);
1001 if (hasRenditionB())
1002 getRenditionB()->onLayerVpDepPropsOverride(layerId, viewportId, bOverride, pProps);
1003 }
1004
1005 // Extension objects
1006
1007 // Called when new extension object added.
1009 {
1010 if (hasRenditionA())
1011 getRenditionA()->onExtensionObjectAdded(extId, pObj);
1012 if (hasRenditionB())
1013 getRenditionB()->onExtensionObjectAdded(extId, pObj);
1014 }
1015 // Called when exist extension object deleted.
1017 {
1018 if (hasRenditionA())
1020 if (hasRenditionB())
1022 }
1023 // Called to send special extension object specific data.
1025 {
1026 if (hasRenditionA())
1027 getRenditionA()->onExtensionObjectSpecificData(extId, nDataId, propDef);
1028 if (hasRenditionB())
1029 getRenditionB()->onExtensionObjectSpecificData(extId, nDataId, propDef);
1030 }
1031 // Called to change extension object visibility.
1032 virtual void onExtensionObjectVisibilityChanged(OdTrVisExtensionId extId, bool bVisibility)
1033 {
1034 if (hasRenditionA())
1036 if (hasRenditionB())
1038 }
1039
1040 // Blocks
1041
1042 // Called when new block added.
1043 virtual void onBlockAdded(OdTrVisBlockId blockId, const OdTrVisDisplayId *pList, OdUInt32 nEntries)
1044 {
1045 if (hasRenditionA())
1046 getRenditionA()->onBlockAdded(blockId, pList, nEntries);
1047 if (hasRenditionB())
1048 getRenditionB()->onBlockAdded(blockId, pList, nEntries);
1049 }
1050 // Called when block display list changed.
1051 virtual void onBlockModified(OdTrVisBlockId blockId, OdUInt32 nInvalidFrom, OdUInt32 nInvalidLen,
1052 const OdTrVisDisplayId *pValidFrom, OdUInt32 nValidLen)
1053 {
1054 if (hasRenditionA())
1055 getRenditionA()->onBlockModified(blockId, nInvalidFrom, nInvalidLen, pValidFrom, nValidLen);
1056 if (hasRenditionB())
1057 getRenditionB()->onBlockModified(blockId, nInvalidFrom, nInvalidLen, pValidFrom, nValidLen);
1058 }
1059 // Called when exist block deleted.
1060 virtual void onBlockDeleted(OdTrVisBlockId blockId)
1061 {
1062 if (hasRenditionA())
1063 getRenditionA()->onBlockDeleted(blockId);
1064 if (hasRenditionB())
1065 getRenditionB()->onBlockDeleted(blockId);
1066 }
1067
1068 // Groups
1069
1070 // Called when new group added.
1071 virtual void onGroupAdded(OdTrVisGroupId groupId)
1072 {
1073 if (hasRenditionA())
1074 getRenditionA()->onGroupAdded(groupId);
1075 if (hasRenditionB())
1076 getRenditionB()->onGroupAdded(groupId);
1077 }
1078 // Called when exist group deleted.
1079 virtual void onGroupDeleted(OdTrVisGroupId groupId)
1080 {
1081 if (hasRenditionA())
1082 getRenditionA()->onGroupDeleted(groupId);
1083 if (hasRenditionB())
1084 getRenditionB()->onGroupDeleted(groupId);
1085 }
1086 // Called to attach metafiles to group.
1087 virtual void onGroupMetafilesAttached(OdTrVisGroupId groupId, const OdTrVisMetafileId *pMetafilesList, OdUInt32 nMetafiles)
1088 {
1089 if (hasRenditionA())
1090 getRenditionA()->onGroupMetafilesAttached(groupId, pMetafilesList, nMetafiles);
1091 if (hasRenditionB())
1092 getRenditionB()->onGroupMetafilesAttached(groupId, pMetafilesList, nMetafiles);
1093 }
1094 // Called to detach metafiles from group (if no metafiles specified - clear entire list of groupped metafiles).
1095 virtual void onGroupMetafilesDetached(OdTrVisGroupId groupId, const OdTrVisMetafileId *pMetafilesList, OdUInt32 nMetafiles)
1096 {
1097 if (hasRenditionA())
1098 getRenditionA()->onGroupMetafilesDetached(groupId, pMetafilesList, nMetafiles);
1099 if (hasRenditionB())
1100 getRenditionB()->onGroupMetafilesDetached(groupId, pMetafilesList, nMetafiles);
1101 }
1102 // Called to delete all groupped metafiles from graphics scene.
1103 //virtual void onGroupMetafilesDeleted(OdTrVisGroupId groupId)
1104 //{
1105 // if (hasRenditionA())
1106 // getRenditionA()->onGroupMetafilesDeleted(groupId);
1107 // if (hasRenditionB())
1108 // getRenditionB()->onGroupMetafilesDeleted(groupId);
1109 //}
1110 // Called to change visibility state for all groupped metafiles.
1111 virtual void onGroupMetafilesVisibilityChanged(OdTrVisGroupId groupId, bool bVisibility)
1112 {
1113 if (hasRenditionA())
1114 getRenditionA()->onGroupMetafilesVisibilityChanged(groupId, bVisibility);
1115 if (hasRenditionB())
1116 getRenditionB()->onGroupMetafilesVisibilityChanged(groupId, bVisibility);
1117 }
1118 // Called to change highlighting state for all groupped metafiles.
1119 virtual void onGroupMetafilesHighlightingChanged(OdTrVisGroupId groupId, bool bHighlight)
1120 {
1121 if (hasRenditionA())
1122 getRenditionA()->onGroupMetafilesHighlightingChanged(groupId, bHighlight);
1123 if (hasRenditionB())
1124 getRenditionB()->onGroupMetafilesHighlightingChanged(groupId, bHighlight);
1125 }
1126 // Called to change fading state for all groupped metafiles.
1127 virtual void onGroupMetafilesFadingChanged(OdTrVisGroupId groupId, bool bFade)
1128 {
1129 if (hasRenditionA())
1131 if (hasRenditionB())
1133 }
1134
1135 // Properties
1136
1137 // Metafile-related properties.
1138 // Called to attach property to metafile.
1139 virtual void onMetafilePropertyAttached(OdTrVisMetafileId metafileId, const OdTrVisPropertyDef &propDef)
1140 {
1141 if (hasRenditionA())
1142 getRenditionA()->onMetafilePropertyAttached(metafileId, propDef);
1143 if (hasRenditionB())
1144 getRenditionB()->onMetafilePropertyAttached(metafileId, propDef);
1145 }
1146 // Called to detach property from metafile.
1148 {
1149 if (hasRenditionA())
1150 getRenditionA()->onMetafilePropertyDetached(metafileId, propType);
1151 if (hasRenditionB())
1152 getRenditionB()->onMetafilePropertyDetached(metafileId, propType);
1153 }
1154 // Group-related properties.
1155 // Called to attach property to group.
1156 virtual void onGroupPropertyAttached(OdTrVisGroupId groupId, const OdTrVisPropertyDef &propDef)
1157 {
1158 if (hasRenditionA())
1159 getRenditionA()->onGroupPropertyAttached(groupId, propDef);
1160 if (hasRenditionB())
1161 getRenditionB()->onGroupPropertyAttached(groupId, propDef);
1162 }
1163 // Called to detach property from group.
1165 {
1166 if (hasRenditionA())
1167 getRenditionA()->onGroupPropertyDetached(groupId, propType);
1168 if (hasRenditionB())
1169 getRenditionB()->onGroupPropertyDetached(groupId, propType);
1170 }
1171 // Layer-related properties.
1172 // Called to attach property to layer.
1173 virtual void onLayerPropertyAttached(OdTrVisLayerId layerId, const OdTrVisPropertyDef &propDef)
1174 {
1175 if (hasRenditionA())
1176 getRenditionA()->onLayerPropertyAttached(layerId, propDef);
1177 if (hasRenditionB())
1178 getRenditionB()->onLayerPropertyAttached(layerId, propDef);
1179 }
1180 // Called to detach property from layer.
1182 {
1183 if (hasRenditionA())
1184 getRenditionA()->onLayerPropertyDetached(layerId, propType);
1185 if (hasRenditionB())
1186 getRenditionB()->onLayerPropertyDetached(layerId, propType);
1187 }
1188 // VisualStyle-related properties.
1189 // Called to attach property to visual style.
1191 {
1192 if (hasRenditionA())
1193 getRenditionA()->onVisualStylePropertyAttached(visualStyleId, propDef);
1194 if (hasRenditionB())
1195 getRenditionB()->onVisualStylePropertyAttached(visualStyleId, propDef);
1196 }
1197 // Called to detach property from visual style.
1199 {
1200 if (hasRenditionA())
1201 getRenditionA()->onVisualStylePropertyDetached(visualStyleId, propType);
1202 if (hasRenditionB())
1203 getRenditionB()->onVisualStylePropertyDetached(visualStyleId, propType);
1204 }
1205 // Material-related properties.
1206 // Called to attach property to material.
1207 virtual void onMaterialPropertyAttached(OdTrVisMaterialId materialId, const OdTrVisPropertyDef &propDef)
1208 {
1209 if (hasRenditionA())
1210 getRenditionA()->onMaterialPropertyAttached(materialId, propDef);
1211 if (hasRenditionB())
1212 getRenditionB()->onMaterialPropertyAttached(materialId, propDef);
1213 }
1214 // Called to detach property from material.
1216 {
1217 if (hasRenditionA())
1218 getRenditionA()->onMaterialPropertyDetached(materialId, propType);
1219 if (hasRenditionB())
1220 getRenditionB()->onMaterialPropertyDetached(materialId, propType);
1221 }
1222 // Texture-related properties.
1223 // Called to attach property to texture.
1224 virtual void onTexturePropertyAttached(OdTrVisTextureId textureId, const OdTrVisPropertyDef &propDef)
1225 {
1226 if (hasRenditionA())
1227 getRenditionA()->onTexturePropertyAttached(textureId, propDef);
1228 if (hasRenditionB())
1229 getRenditionB()->onTexturePropertyAttached(textureId, propDef);
1230 }
1231 // Called to detach property from texture.
1233 {
1234 if (hasRenditionA())
1235 getRenditionA()->onTexturePropertyDetached(textureId, propType);
1236 if (hasRenditionB())
1237 getRenditionB()->onTexturePropertyDetached(textureId, propType);
1238 }
1239 // Light-related properties.
1240 // Called to attach property to light source.
1241 virtual void onLightPropertyAttached(OdTrVisLightId lightId, const OdTrVisPropertyDef &propDef)
1242 {
1243 if (hasRenditionA())
1244 getRenditionA()->onLightPropertyAttached(lightId, propDef);
1245 if (hasRenditionB())
1246 getRenditionB()->onLightPropertyAttached(lightId, propDef);
1247 }
1248 // Called to detach property from light source.
1250 {
1251 if (hasRenditionA())
1252 getRenditionA()->onLightPropertyDetached(lightId, propType);
1253 if (hasRenditionB())
1254 getRenditionB()->onLightPropertyDetached(lightId, propType);
1255 }
1256 // StateBranch-related properties.
1257 // Called to attach property to state branch.
1259 {
1260 if (hasRenditionA())
1261 getRenditionA()->onStateBranchPropertyAttached(stateBranchId, propDef);
1262 if (hasRenditionB())
1263 getRenditionB()->onStateBranchPropertyAttached(stateBranchId, propDef);
1264 }
1265 // Called to detach property from state branch.
1267 {
1268 if (hasRenditionA())
1269 getRenditionA()->onStateBranchPropertyDetached(stateBranchId, propType);
1270 if (hasRenditionB())
1271 getRenditionB()->onStateBranchPropertyDetached(stateBranchId, propType);
1272 }
1273 // Viewport-related properties.
1274 // Called to attach property to viewport.
1275 virtual void onViewportPropertyAttached(OdTrVisViewportId viewportId, const OdTrVisPropertyDef &propDef)
1276 {
1277 if (hasRenditionA())
1278 getRenditionA()->onViewportPropertyAttached(viewportId, propDef);
1279 if (hasRenditionB())
1280 getRenditionB()->onViewportPropertyAttached(viewportId, propDef);
1281 }
1282 // Called to detach property from viewport.
1284 {
1285 if (hasRenditionA())
1286 getRenditionA()->onViewportPropertyDetached(viewportId, propType);
1287 if (hasRenditionB())
1288 getRenditionB()->onViewportPropertyDetached(viewportId, propType);
1289 }
1290 // Overlay-related properties.
1291 // Called to attach property to overlay.
1292 virtual void onOverlayPropertyAttached(OdTrVisOverlayId overlayId, const OdTrVisPropertyDef &propDef)
1293 {
1294 if (hasRenditionA())
1295 getRenditionA()->onOverlayPropertyAttached(overlayId, propDef);
1296 if (hasRenditionB())
1297 getRenditionB()->onOverlayPropertyAttached(overlayId, propDef);
1298 }
1299 // Called to detach property from overlay.
1301 {
1302 if (hasRenditionA())
1303 getRenditionA()->onOverlayPropertyDetached(overlayId, propType);
1304 if (hasRenditionB())
1305 getRenditionB()->onOverlayPropertyDetached(overlayId, propType);
1306 }
1307 // ExtensionObject-related properties.
1308 // Called to attach property to extension object.
1310 {
1311 if (hasRenditionA())
1313 if (hasRenditionB())
1315 }
1316 // Called to detach property from extension object.
1324 // Block-related properties.
1325 // Called to attach property to block.
1326 virtual void onBlockPropertyAttached(OdTrVisBlockId blockId, const OdTrVisPropertyDef &propDef)
1327 {
1328 if (hasRenditionA())
1329 getRenditionA()->onBlockPropertyAttached(blockId, propDef);
1330 if (hasRenditionB())
1331 getRenditionB()->onBlockPropertyAttached(blockId, propDef);
1332 }
1333 // Called to detach property from viewport.
1335 {
1336 if (hasRenditionA())
1337 getRenditionA()->onBlockPropertyDetached(blockId, propType);
1338 if (hasRenditionB())
1339 getRenditionB()->onBlockPropertyDetached(blockId, propType);
1340 }
1341};
1342
1343#include "TD_PackPop.h"
1344
1345#endif // ODTRVISRENDITIONBRANCHING
OdArray< OdGsDCRect, OdMemoryAllocator< OdGsDCRect > > OdGsDCRectArray
unsigned int OdUInt32
short OdInt16
unsigned short OdUInt16
unsigned char OdUInt8
#define ODRX_OVERRIDE
const OdTrVisId kTrVisNegativeId
Definition TrVisDefs.h:135
OdUInt64 OdTrVisGsMarker
Definition TrVisDefs.h:87
OdTrVisId OdTrVisVisualStyleId
Definition TrVisDefs.h:120
OdTrVisId OdTrVisGroupId
Definition TrVisDefs.h:126
OdTrVisId OdTrVisOverlayId
Definition TrVisDefs.h:124
OdTrVisId OdTrVisRefPlaneId
Definition TrVisDefs.h:110
OdTrVisId OdTrVisViewportId
Definition TrVisDefs.h:103
OdTrVisId OdTrVisProgramId
Definition TrVisDefs.h:112
OdTrVisId OdTrVisMaterialId
Definition TrVisDefs.h:109
OdTrVisId OdTrVisExtensionId
Definition TrVisDefs.h:128
OdTrVisId OdTrVisLayerId
Definition TrVisDefs.h:122
OdTrVisId OdTrVisStateBranchId
Definition TrVisDefs.h:118
OdTrVisId OdTrVisDisplayId
Definition TrVisDefs.h:114
OdTrVisId OdTrVisTextureId
Definition TrVisDefs.h:108
OdTrVisId OdTrVisBlockId
Definition TrVisDefs.h:130
OdTrVisId OdTrVisLightId
Definition TrVisDefs.h:116
OdTrVisId OdTrVisMetafileId
Definition TrVisDefs.h:105
OdUInt64 OdTrVisId
Definition TrVisDefs.h:101
OdSmartPtr< OdTrVisExtensionObject > OdTrVisExtensionObjectPtr
@ OdTrVisGeomType_Default
OdSmartPtr< OdTrVisRendition > OdTrVisRenditionPtr
OdSmartPtr< OdTrVisDirectRenderPartialUpdateInvocation > OdTrVisDirectRenderPartialUpdateInvocationPtr
OdSmartPtr< OdTrVisSharingProviderClient > OdTrVisSharingProviderClientPtr
RenderMode
Definition Gs.h:149
static OdSmartPtr< TInterface > createObject(Args &&... args)
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 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 onViewportBackgroundChanged(OdTrVisViewportId viewportId, const OdTrVisBackgroundDef &pDef)
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
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 onTextureFlagsModified(OdTrVisTextureId textureId, OdUInt32 newFlags)
virtual void onViewportLightDetached(OdTrVisViewportId viewportId, OdTrVisLightId lightId)
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 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)
virtual void onMaterialRefPlaneDeleted(OdTrVisRefPlaneId refPlaneId)
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 getSelectedObject(OdTrVisViewportId id, const OdGePoint2d *aPtDc, int numPoints, OdArray< OdTrVisId > &outIDs, OdTrVisGsMarker *outMarker=NULL) ODRX_OVERRIDE
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 onStateBranchMarkersRangeDataRemoved(OdTrVisStateBranchId stateBranchId, const OdTrVisStateBranchMarkersRange &range)
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 OdTrRndLocalRenditionHost * localRenditionHost()
virtual void onLayerFadingChanged(OdTrVisLayerId layerId, bool bFade)
virtual void onStateBranchPropertyAttached(OdTrVisStateBranchId stateBranchId, const OdTrVisPropertyDef &propDef)
virtual void onMaterialRefPlaneAdded(OdTrVisRefPlaneId refPlaneId, const OdTrVisRefPlaneDef &pDef)
virtual void onExtensionObjectAdded(OdTrVisExtensionId extId, const OdTrVisExtensionObject *pObj)
virtual OdTrVisExtensionObjectPtr queryExtensionObject(OdTrVisExtensionId extId)
virtual void onDeviceUpdateBegin(OdTrVisRenderClient *pDevice)
virtual void onStateBranchMarkersRangeDataAdded(OdTrVisStateBranchId stateBranchId, const OdTrVisStateBranchMarkersRange &range, const OdTrVisPropertyDef &propDef)
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 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)
virtual void onViewportSectioningChanged(OdTrVisViewportId viewportId, const OdTrVisSectionDef &pDef)
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 onViewportFogChanged(OdTrVisViewportId viewportId, const OdTrVisFogDef &pDef)
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 void onMetafileExtentsUpdated(OdTrVisMetafileId metafileId, const OdGeExtents3d &extents)
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 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, const OdGePoint2d *aPtDc, int numPoints, OdArray< OdTrVisId > &outIDs, OdTrVisGsMarker *outMarker=NULL)=0
virtual OdTrRndLocalRenditionHost * localRenditionHost()=0
virtual void onMaterialRefPlaneDeleted(OdTrVisRefPlaneId refPlaneId)=0
virtual void onLayerAdded(OdTrVisLayerId layerId, const OdTrVisLayerDef &pDef)=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 onStateBranchMarkersRangeDataRemoved(OdTrVisStateBranchId stateBranchId, const OdTrVisStateBranchMarkersRange &range)=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 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 onViewportFogChanged(OdTrVisViewportId viewportId, const OdTrVisFogDef &pDef)=0
virtual void onMetafileVisibilityChanged(OdTrVisMetafileId metafileId, bool bVisibility)=0
virtual void onViewportPropertyAttached(OdTrVisViewportId viewportId, const OdTrVisPropertyDef &propDef)=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 onViewportBackgroundChanged(OdTrVisViewportId viewportId, const OdTrVisBackgroundDef &pDef)=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 void onMaterialRefPlaneAdded(OdTrVisRefPlaneId refPlaneId, const OdTrVisRefPlaneDef &pDef)=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 onMetafileExtentsUpdated(OdTrVisMetafileId metafileId, const OdGeExtents3d &extents)=0
virtual void onSurfaceInvalidated()=0
virtual void onOverlayDeleted(OdTrVisOverlayId overlayId)=0
virtual void onTextureFlagsModified(OdTrVisTextureId textureId, OdUInt32 newFlags)=0
virtual void onOverlayRenderOrderChanged(OdTrVisOverlayId overlayId, OdInt16 nRenderOrder)=0
virtual void onViewportSectioningChanged(OdTrVisViewportId viewportId, const OdTrVisSectionDef &pDef)=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
virtual void onStateBranchMarkersRangeDataAdded(OdTrVisStateBranchId stateBranchId, const OdTrVisStateBranchMarkersRange &range, const OdTrVisPropertyDef &propDef)=0
GLuint GLsizei GLsizei GLint GLenum * type
Definition gles2_ext.h:274
GLenum GLint * range
Definition gles2_ext.h:563
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)