CFx SDK Documentation  2020SP3
GiFaceEdgeDataTraitsSaver.h
Go to the documentation of this file.
1 // Copyright (C) 2002-2017, 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 Teigha(R) software pursuant to a license
16 // agreement with Open Design Alliance.
17 // Teigha(R) Copyright (C) 2002-2017 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 
24 #ifndef __ODGIFACEEDGEDATATRAITSSAVER_H__
25 #define __ODGIFACEEDGEDATATRAITSSAVER_H__
26 
27 #include "Gi/GiGeometry.h"
28 #include "Gi/GiCommonDraw.h"
29 #include "Gi/GiConveyorGeometry.h"
30 
31 // Uncomment to enable selection marker restore on exit
32 //#define EX_TRAITS_SELMARK_RESTORE
33 // Uncomment to enable onTraitsModified call on exit
34 //#define EX_TRAITS_TRAITSMOD_ONEXIT
35 // Uncomment to enable traits restoration on exit
36 #define EX_TRAITS_RESTORE_ONEXIT
37 
38 #ifdef EX_TRAITS_SELMARK_RESTORE
39 #include "Gi/GiPathNode.h"
40 #endif
41 
42 #ifdef EX_TRAITS_TRAITSMOD_ONEXIT
43 #define EX_TRAITS_TRAITSMOD_ONEXIT_SET() \
44  bModified = true
45 #else // EX_TRAITS_TRAITSMOD_ONEXIT
46 #define EX_TRAITS_TRAITSMOD_ONEXIT_SET()
47 #endif // EX_TRAITS_TRAITSMOD_ONEXIT
48 
49 #ifdef EX_TRAITS_RESTORE_ONEXIT
50 #define EX_TRAITS_SET(prevStorage, curStorage, param) \
51  prevStorage = curStorage = param
52 #define EX_TRAITS_DEFINE(type, prevStorage, curStorage) \
53  type prevStorage, curStorage
54 #define EX_TRAITS_DEFINE_PTR(type, prevStorage, curStorage) \
55  type prevStorage, *curStorage
56 #else // EX_TRAITS_RESTORE_ONEXIT
57 #define EX_TRAITS_SET(prevStorage, curStorage, param) \
58  curStorage = param
59 #define EX_TRAITS_DEFINE(type, prevStorage, curStorage) \
60  type curStorage
61 #define EX_TRAITS_DEFINE_PTR(type, prevStorage, curStorage) \
62  type curStorage
63 #ifdef EX_TRAITS_SELMARK_RESTORE
64 #undef EX_TRAITS_SELMARK_RESTORE
65 #endif // EX_TRAITS_SELMARK_RESTORE
66 #endif
67 
69 {
70  protected:
72  {
73  // LoWord - FaceTraits
74  kFaceColors = (1 << 0),
75  kFaceTrueColors = (1 << 1),
76  kFaceLayers = (1 << 2),
78  kFaceMaterials = (1 << 4),
79  kFaceMappers = (1 << 5),
80  kFaceTransparencies = (1 << 6),
81  kFaceVisibilities = (1 << 7),
82  kFaceSelMarkAvail = (1 << 8),
84  // HiWord - EdgeTraits
85  kEdgeColors = (1 << 16),
86  kEdgeTrueColors = (1 << 17),
87  kEdgeLayers = (1 << 18),
88  kEdgeLinetypes = (1 << 19),
89  kEdgeSelectionMarkers = (1 << 20),
90  kEdgeVisibilities = (1 << 21),
91  kEdgeSelMarkAvail = (1 << 22),
92  kEdgeSelMarkOnModify = (1 << 23),
93  // Masks
94  kFaceMask = 0x0000FFFF,
95  kEdgeMask = 0xFFFF0000,
96  // Mask used for restore traits state
97 #ifdef EX_TRAITS_SELMARK_RESTORE
100 #else
103 #endif
104  // Mask used for reset traits state
107  };
108  protected:
113  EX_TRAITS_DEFINE(OdCmEntityColor, m_prevTrueColor, m_curTrueColor);
114  EX_TRAITS_DEFINE_PTR(OdDbStub*, m_prevLayerId, m_curLayerId);
115 #ifdef EX_TRAITS_SELMARK_RESTORE
116  OdGsMarker m_prevSelectionMarker;
117 #endif // EX_TRAITS_SELMARK_RESTORE
118  protected:
120  : m_pTraits(pTraits), m_pDrawCtx(pDrawCtx), m_renderMode(renderMode), m_components(0)
121  {
122  }
123  // The default constructor will be used for virtual inheritance
126  {
127  }
128 
129  bool setColor(const OdUInt16* pColors, int index)
130  {
131  OdCmEntityColor trueColor; trueColor.setColorIndex(pColors[index]);
132  if (m_curTrueColor != trueColor)
133  {
134  m_curTrueColor = trueColor;
135  m_pTraits->setColor(pColors[index]);
136  return true;
137  }
138  return false;
139  }
140  bool setTrueColor(const OdCmEntityColor* pTrueColors, int index)
141  {
142  if (m_curTrueColor != pTrueColors[index])
143  {
144  m_pTraits->setTrueColor(m_curTrueColor = pTrueColors[index]);
145  return true;
146  }
147  return false;
148  }
149  bool setLayer(OdDbStub **pLayers, int index)
150  {
151  if (m_curLayerId != pLayers[index])
152  {
153  m_pTraits->setLayer(m_curLayerId = pLayers[index]);
154  return true;
155  }
156  return false;
157  }
158 
159  bool needExit() const { return m_renderMode != OdGsView::k2DOptimized; }
160 };
161 
163 {
164  protected:
166  EX_TRAITS_DEFINE_PTR(OdDbStub*, m_prevMaterialId, m_curMaterialId);
167  EX_TRAITS_DEFINE_PTR(const OdGiMapper*, m_prevMapper, m_curMapper);
168  EX_TRAITS_DEFINE( OdCmTransparency, m_prevTransparency, m_curTransparency);
169  public:
171  OdGsView::RenderMode renderMode, bool bForEdge = false)
172  : OdGiFaceEdgeDataTraitsSaverBase(pTraits, pDrawCtx, renderMode), m_pFaceData(pFaceData)
173  {
174  if (pFaceData && pTraits)
175  {
176  if (pFaceData->colors())
177  {
178  EX_TRAITS_SET(m_prevTrueColor, m_curTrueColor, pTraits->trueColor());
180  }
181  if (pFaceData->trueColors())
182  {
183  EX_TRAITS_SET(m_prevTrueColor, m_curTrueColor, pTraits->trueColor());
185  }
186  if (pFaceData->layerIds())
187  {
188  EX_TRAITS_SET(m_prevLayerId, m_curLayerId, pTraits->layer());
190  }
191  if (pFaceData->selectionMarkers())
192  {
193 #ifdef EX_TRAITS_SELMARK_RESTORE
194  if (pDrawCtx->currentGiPath())
195  {
196  m_prevSelectionMarker = pDrawCtx->currentGiPath()->selectionMarker();
198  }
199 #endif // EX_TRAITS_SELMARK_RESTORE
203  }
204  if (!bForEdge)
205  {
206  if (pFaceData->materials())
207  {
208  EX_TRAITS_SET(m_prevMaterialId, m_curMaterialId, pTraits->material());
210  }
211  if (pFaceData->mappers())
212  {
213  EX_TRAITS_SET(m_prevMapper, m_curMapper, pTraits->mapper());
214 #ifdef EX_TRAITS_RESTORE_ONEXIT
215  // Mapper can point onto internal storage which is similar always, we need store data itself
216  if (m_prevMapper) m_prevMapper = new OdGiMapper(*m_curMapper);
217 #endif // EX_TRAITS_RESTORE_ONEXIT
219  }
220  }
221  if (pFaceData->transparency())
222  {
223  EX_TRAITS_SET(m_prevTransparency, m_curTransparency, pTraits->transparency());
225  }
226  if (pFaceData->visibility())
228  }
229  }
230 
231 #ifdef EX_TRAITS_RESTORE_ONEXIT
232  bool onExit()
233  {
234  bool bModified = false;
236  {
237  if (GETBIT(m_components, kFaceColors | kFaceTrueColors) && (m_prevTrueColor != m_curTrueColor))
238  {
239  m_pTraits->setTrueColor(m_prevTrueColor);
241  }
242  if (GETBIT(m_components, kFaceLayers) && (m_prevLayerId != m_curLayerId))
243  {
244  m_pTraits->setLayer(m_prevLayerId);
246  }
247 #ifdef EX_TRAITS_SELMARK_RESTORE
249  {
250  m_pTraits->setSelectionMarker(m_prevSelectionMarker);
253  }
254 #endif // EX_TRAITS_SELMARK_RESTORE
255  if (GETBIT(m_components, kFaceMaterials) && (m_prevMaterialId != m_curMaterialId))
256  {
257  m_pTraits->setMaterial(m_prevMaterialId);
259  }
261  { // If mappers is specified them will be different always
262  m_pTraits->setMapper(m_prevMapper);
263  if (m_prevMapper) delete m_prevMapper;
265  }
266  if (GETBIT(m_components, kFaceTransparencies) && (m_prevTransparency != m_curTransparency))
267  {
268  m_pTraits->setTransparency(m_prevTransparency);
270  }
271  }
272  return bModified;
273  }
274  bool needExit() const
275  {
277  {
278  if (GETBIT(m_components, kFaceMappers) && m_prevMapper)
279  delete m_prevMapper;
280  return false;
281  }
282  return true;
283  }
285  {
286  if (needExit() && onExit())
288  }
289 #endif // EX_TRAITS_RESTORE_ONEXIT
290 
291  bool setFaceTraits(int faceIndex)
292  {
293  if (!(m_components & kFaceMask))
294  return true;
295 
298 
300  return false;
301 
303  {
304  bool bModified = GETBIT(m_components, kFaceSelMarkOnModify);
306  bModified |= setColor(m_pFaceData->colors(), faceIndex);
308  bModified |= setTrueColor(m_pFaceData->trueColors(), faceIndex);
310  bModified |= setLayer(m_pFaceData->layerIds(), faceIndex);
312  {
313  OdDbStub **pMaterials = m_pFaceData->materials();
314  if (m_curMaterialId != pMaterials[faceIndex])
315  {
316  m_pTraits->setMaterial(m_curMaterialId = pMaterials[faceIndex]);
317  bModified = true;
318  }
319  }
321  {
322  const OdGiMapper* pMappers = m_pFaceData->mappers();
323  m_pTraits->setMapper(m_curMapper = (pMappers + faceIndex));
324  bModified = true;
325  }
327  {
328  const OdCmTransparency* pTransparencies = m_pFaceData->transparency();
329  if (m_curTransparency != pTransparencies[faceIndex])
330  {
331  m_pTraits->setTransparency(m_curTransparency = pTransparencies[faceIndex]);
332  bModified = true;
333  }
334  }
336  {
337  if (bModified)
339  return true;
340  }
341  else
342  return false;
343  }
344 
345  return m_pDrawCtx->effectivelyVisible();
346  }
347 
348  bool hasData() const { return (m_components & kFaceMask) != 0; }
349 };
350 
352 {
353  protected:
355  EX_TRAITS_DEFINE_PTR(OdDbStub*, m_prevLinetypeId, m_curLinetypeId);
356  public:
358  OdGsView::RenderMode renderMode, bool bFaceChk = false)
359  : OdGiFaceEdgeDataTraitsSaverBase(pTraits, pDrawCtx, renderMode), m_pEdgeData(pEdgeData)
360  {
361  if (pEdgeData && pTraits)
362  {
363  if (pEdgeData->colors())
364  {
365  if (!bFaceChk || !GETBIT(m_components, kFaceColors | kFaceTrueColors))
366  EX_TRAITS_SET(m_prevTrueColor, m_curTrueColor, pTraits->trueColor());
368  }
369  if (pEdgeData->trueColors())
370  {
371  if (!bFaceChk || !GETBIT(m_components, kFaceColors | kFaceTrueColors))
372  EX_TRAITS_SET(m_prevTrueColor, m_curTrueColor, pTraits->trueColor());
374  }
375  if (pEdgeData->layerIds())
376  {
377  if (!bFaceChk || !GETBIT(m_components, kFaceLayers))
378  EX_TRAITS_SET(m_prevLayerId, m_curLayerId, pTraits->layer());
380  }
381  if (pEdgeData->linetypeIds())
382  {
383  EX_TRAITS_SET(m_prevLinetypeId, m_curLinetypeId, pTraits->lineType());
385  }
386  if (pEdgeData->selectionMarkers())
387  {
388 #ifdef EX_TRAITS_SELMARK_RESTORE
389  if ((!bFaceChk || !GETBIT(m_components, kFaceSelectionMarkers)) && pDrawCtx->currentGiPath())
390  {
391  m_prevSelectionMarker = pDrawCtx->currentGiPath()->selectionMarker();
393  }
394 #endif // EX_TRAITS_SELMARK_RESTORE
396  if (!bFaceChk || !GETBIT(m_components, kFaceSelectionMarkers))
397  {
400  }
403  }
404  if (pEdgeData->visibility())
406  }
407  }
408 
409 #ifdef EX_TRAITS_RESTORE_ONEXIT
410  bool onExit(bool bFaceChk = false)
411  {
412  bool bModified = false;
414  {
416  (!bFaceChk || !GETBIT(m_components, kFaceColors | kFaceTrueColors)) && (m_prevTrueColor != m_curTrueColor))
417  {
418  m_pTraits->setTrueColor(m_prevTrueColor);
420  }
422  (!bFaceChk || !GETBIT(m_components, kFaceLayers)) && (m_prevLayerId != m_curLayerId))
423  {
424  m_pTraits->setLayer(m_prevLayerId);
426  }
427  if (GETBIT(m_components, kEdgeLinetypes) && (m_prevLinetypeId != m_curLinetypeId))
428  {
429  m_pTraits->setLineType(m_prevLinetypeId);
431  }
432 #ifdef EX_TRAITS_SELMARK_RESTORE
434  (!bFaceChk || !GETBIT(m_components, kFaceSelectionMarkers)))
435  {
436  m_pTraits->setSelectionMarker(m_prevSelectionMarker);
439  }
440 #endif // EX_TRAITS_SELMARK_RESTORE
441  }
442  return bModified;
443  }
445  {
446  if (needExit() && onExit())
448  }
449 #endif // EX_TRAITS_RESTORE_ONEXIT
450 
451  bool setEdgeTraits(int edgeIndex)
452  {
453  if (!(m_components & kEdgeMask))
454  return true;
455 
458 
460  return false;
461 
463  {
464  bool bModified = GETBIT(m_components, kEdgeSelMarkOnModify);
466  bModified |= setColor(m_pEdgeData->colors(), edgeIndex);
468  bModified |= setTrueColor(m_pEdgeData->trueColors(), edgeIndex);
470  bModified |= setLayer(m_pEdgeData->layerIds(), edgeIndex);
472  {
473  OdDbStub **pLinetypes = m_pEdgeData->linetypeIds();
474  if (m_curLinetypeId != pLinetypes[edgeIndex])
475  {
476  m_pTraits->setLineType(m_curLinetypeId = pLinetypes[edgeIndex]);
477  bModified = true;
478  }
479  }
481  {
482  if (bModified)
484  return true;
485  }
486  else
487  return false;
488  }
489 
490  return m_pDrawCtx->effectivelyVisible();
491  }
492 
493  bool hasData() const { return (m_components & kEdgeMask) != 0; }
494 };
495 
497 {
498  public:
499  OdGiFaceEdgeDataTraitsSaver(const OdGiFaceData *pFaceData, const OdGiEdgeData *pEdgeData,
500  OdGiSubEntityTraits *pTraits, OdGiConveyorContext *pDrawCtx,
501  OdGsView::RenderMode renderMode)
502  : OdGiFaceEdgeDataTraitsSaverBase(pTraits, pDrawCtx, renderMode)
503  , OdGiFaceDataTraitsSaver(pFaceData, pTraits, pDrawCtx, renderMode, true)
504  , OdGiEdgeDataTraitsSaver(pEdgeData, pTraits, pDrawCtx, renderMode, true)
505  {
506  }
507 #ifdef EX_TRAITS_RESTORE_ONEXIT
509  {
511  {
512  bool bModified = OdGiFaceDataTraitsSaver::onExit();
513  bModified |= OdGiEdgeDataTraitsSaver::onExit(true);
514  if (bModified)
516  }
517  m_components = 0; // Avoid redundant operations in base class destructors
518  }
519 #endif
520 
521  bool hasData() const { return m_components != 0; }
522 };
523 
524 #endif // __ODGIFACEEDGEDATATRAITSSAVER_H__
GETBIT
#define GETBIT(flags, bit)
Definition: OdaDefs.h:498
OdGiFaceEdgeDataTraitsSaverBase::kEdgeSetMask
@ kEdgeSetMask
Definition: GiFaceEdgeDataTraitsSaver.h:106
OdGiSubEntityTraits::setTrueColor
virtual void setTrueColor(const OdCmEntityColor &color)=0
OdCmEntityColor
Definition: CmColorBase.h:68
OdGiFaceEdgeDataTraitsSaverBase::kEdgeSelMarkAvail
@ kEdgeSelMarkAvail
Definition: GiFaceEdgeDataTraitsSaver.h:91
OdGiFaceEdgeDataTraitsSaverBase::kFaceSetMask
@ kFaceSetMask
Definition: GiFaceEdgeDataTraitsSaver.h:105
OdGiFaceData::materials
OdDbStub ** materials() const
Definition: GiGeometry.h:486
OdCmEntityColor::setColorIndex
void setColorIndex(OdInt16 colorIndex)
Definition: CmColorBase.h:321
OdGiSubEntityTraits::lineType
virtual OdDbStub * lineType() const =0
NULL
#define NULL
Definition: GsProperties.h:177
OdGiSubEntityTraits::transparency
virtual OdCmTransparency transparency() const
OdGsView::RenderMode
RenderMode
Definition: Gs.h:138
OdGiConveyorContext::drawContextFlags
virtual OdUInt32 drawContextFlags() const
Definition: GiConveyorGeometry.h:215
OdGiFaceDataTraitsSaver::m_pFaceData
const OdGiFaceData * m_pFaceData
Definition: GiFaceEdgeDataTraitsSaver.h:165
EX_TRAITS_SET
#define EX_TRAITS_SET(prevStorage, curStorage, param)
Definition: GiFaceEdgeDataTraitsSaver.h:50
OdGiSubEntityTraits::setSelectionMarker
virtual void setSelectionMarker(OdGsMarker selectionMarker)=0
OdGiEdgeDataTraitsSaver::~OdGiEdgeDataTraitsSaver
~OdGiEdgeDataTraitsSaver()
Definition: GiFaceEdgeDataTraitsSaver.h:444
OdGsView
Definition: Gs.h:133
OdGiFaceData::selectionMarkers
const OdGsMarker * selectionMarkers() const
Definition: GiGeometry.h:450
OdGiFaceEdgeDataTraitsSaver::~OdGiFaceEdgeDataTraitsSaver
~OdGiFaceEdgeDataTraitsSaver()
Definition: GiFaceEdgeDataTraitsSaver.h:508
SETBIT_1
#define SETBIT_1(flags, bit)
Definition: OdaDefs.h:501
OdGiFaceEdgeDataTraitsSaverBase::m_pTraits
OdGiSubEntityTraits * m_pTraits
Definition: GiFaceEdgeDataTraitsSaver.h:109
OdGiFaceEdgeDataTraitsSaverBase::m_components
OdUInt32 m_components
Definition: GiFaceEdgeDataTraitsSaver.h:112
OdCmTransparency
Definition: CmColorBase.h:1617
kOdGiInvisible
@ kOdGiInvisible
Definition: Gi.h:47
OdGiFaceEdgeDataTraitsSaverBase::kFaceTransparencies
@ kFaceTransparencies
Definition: GiFaceEdgeDataTraitsSaver.h:80
OdGiFaceData::layerIds
OdDbStub ** layerIds() const
Definition: GiGeometry.h:441
OdGiFaceDataTraitsSaver
Definition: GiFaceEdgeDataTraitsSaver.h:163
OdGiFaceEdgeDataTraitsSaverBase::kFaceRestoreMask
@ kFaceRestoreMask
Definition: GiFaceEdgeDataTraitsSaver.h:101
OdGiFaceDataTraitsSaver::onExit
bool onExit()
Definition: GiFaceEdgeDataTraitsSaver.h:232
OdGiSubEntityTraits::setColor
virtual void setColor(OdUInt16 color)=0
OdGiFaceEdgeDataTraitsSaverBase::setLayer
bool setLayer(OdDbStub **pLayers, int index)
Definition: GiFaceEdgeDataTraitsSaver.h:149
OdGiFaceEdgeDataTraitsSaverBase::kFaceLayers
@ kFaceLayers
Definition: GiFaceEdgeDataTraitsSaver.h:76
EX_TRAITS_TRAITSMOD_ONEXIT_SET
#define EX_TRAITS_TRAITSMOD_ONEXIT_SET()
Definition: GiFaceEdgeDataTraitsSaver.h:46
OdGiFaceEdgeDataTraitsSaverBase::kEdgeMask
@ kEdgeMask
Definition: GiFaceEdgeDataTraitsSaver.h:95
OdGiFaceEdgeDataTraitsSaverBase::kFaceSelMarkOnModify
@ kFaceSelMarkOnModify
Definition: GiFaceEdgeDataTraitsSaver.h:83
OdGiSubEntityTraits::setTransparency
virtual void setTransparency(const OdCmTransparency &transparency)
OdGiFaceEdgeDataTraitsSaverBase::OdGiFaceEdgeDataTraitsSaverBase
OdGiFaceEdgeDataTraitsSaverBase(OdGiSubEntityTraits *pTraits, OdGiConveyorContext *pDrawCtx, OdGsView::RenderMode renderMode)
Definition: GiFaceEdgeDataTraitsSaver.h:119
OdGiSubEntityTraits::setLineType
virtual void setLineType(OdDbStub *lineTypeId)=0
OdGiFaceEdgeDataTraitsSaverBase::kFaceMappers
@ kFaceMappers
Definition: GiFaceEdgeDataTraitsSaver.h:79
OdGsMarker
ptrdiff_t OdGsMarker
Definition: OdPlatformSettings.h:889
OdUInt16
unsigned short OdUInt16
Definition: OdPlatformSettings.h:760
OdGiFaceData::colors
const OdUInt16 * colors() const
Definition: GiGeometry.h:423
OdGiFaceEdgeDataTraitsSaverBase::kFaceMaterials
@ kFaceMaterials
Definition: GiFaceEdgeDataTraitsSaver.h:78
OdUInt32
unsigned int OdUInt32
Definition: OdPlatformSettings.h:783
OdGiSubEntityTraits::trueColor
virtual OdCmEntityColor trueColor() const =0
OdGiConveyorContext::kForceMarkersOnModified
@ kForceMarkersOnModified
Definition: GiConveyorGeometry.h:202
OdGiFaceEdgeDataTraitsSaverBase::EX_TRAITS_DEFINE_PTR
EX_TRAITS_DEFINE_PTR(OdDbStub *, m_prevLayerId, m_curLayerId)
OdGiFaceEdgeDataTraitsSaverBase::kEdgeLayers
@ kEdgeLayers
Definition: GiFaceEdgeDataTraitsSaver.h:87
index
GLuint index
Definition: gles2_ext.h:265
OdGiEdgeData::trueColors
const OdCmEntityColor * trueColors() const
Definition: GiGeometry.h:186
OdGiSubEntityTraits::layer
virtual OdDbStub * layer() const =0
OdGiEdgeDataTraitsSaver::OdGiEdgeDataTraitsSaver
OdGiEdgeDataTraitsSaver(const OdGiEdgeData *pEdgeData, OdGiSubEntityTraits *pTraits, OdGiConveyorContext *pDrawCtx, OdGsView::RenderMode renderMode, bool bFaceChk=false)
Definition: GiFaceEdgeDataTraitsSaver.h:357
OdGiFaceDataTraitsSaver::~OdGiFaceDataTraitsSaver
~OdGiFaceDataTraitsSaver()
Definition: GiFaceEdgeDataTraitsSaver.h:284
OdGiFaceEdgeDataTraitsSaverBase::OdGiFaceEdgeDataTraitsSaverBase
OdGiFaceEdgeDataTraitsSaverBase()
Definition: GiFaceEdgeDataTraitsSaver.h:124
OdGiSubEntityTraits::mapper
virtual const OdGiMapper * mapper() const =0
OdGiFaceEdgeDataTraitsSaverBase::kFaceSelectionMarkers
@ kFaceSelectionMarkers
Definition: GiFaceEdgeDataTraitsSaver.h:77
OdGiFaceEdgeDataTraitsSaverBase::kFaceVisibilities
@ kFaceVisibilities
Definition: GiFaceEdgeDataTraitsSaver.h:81
OdGiFaceEdgeDataTraitsSaverBase::kEdgeSelectionMarkers
@ kEdgeSelectionMarkers
Definition: GiFaceEdgeDataTraitsSaver.h:89
OdGiConveyorContext::onTraitsModified
virtual void onTraitsModified()=0
OdGiFaceData
Definition: GiGeometry.h:245
OdGiFaceEdgeDataTraitsSaverBase::m_pDrawCtx
OdGiConveyorContext * m_pDrawCtx
Definition: GiFaceEdgeDataTraitsSaver.h:110
OdGiFaceEdgeDataTraitsSaverBase
Definition: GiFaceEdgeDataTraitsSaver.h:69
OdGiFaceEdgeDataTraitsSaver::hasData
bool hasData() const
Definition: GiFaceEdgeDataTraitsSaver.h:521
OdGiEdgeData::selectionMarkers
const OdGsMarker * selectionMarkers() const
Definition: GiGeometry.h:213
OdGiSubEntityTraits::material
virtual OdDbStub * material() const =0
OdGiEdgeDataTraitsSaver::onExit
bool onExit(bool bFaceChk=false)
Definition: GiFaceEdgeDataTraitsSaver.h:410
true
true
Definition: DimVarDefs.h:2046
OdGiSubEntityTraits::setLayer
virtual void setLayer(OdDbStub *layerId)=0
GiConveyorGeometry.h
OdGiEdgeDataTraitsSaver::EX_TRAITS_DEFINE_PTR
EX_TRAITS_DEFINE_PTR(OdDbStub *, m_prevLinetypeId, m_curLinetypeId)
OdGiEdgeData::colors
const OdUInt16 * colors() const
Definition: GiGeometry.h:177
GiGeometry.h
OdGiFaceEdgeDataTraitsSaverBase::kEdgeLinetypes
@ kEdgeLinetypes
Definition: GiFaceEdgeDataTraitsSaver.h:88
OdGiFaceDataTraitsSaver::hasData
bool hasData() const
Definition: GiFaceEdgeDataTraitsSaver.h:348
OdGiConveyorContext::effectivelyVisible
virtual bool effectivelyVisible() const
Definition: GiConveyorGeometry.h:88
OdGiEdgeData
Definition: GiGeometry.h:67
OdGiSubEntityTraits::setMaterial
virtual void setMaterial(OdDbStub *materialId)=0
GiCommonDraw.h
OdGiFaceEdgeDataTraitsSaverBase::kEdgeTrueColors
@ kEdgeTrueColors
Definition: GiFaceEdgeDataTraitsSaver.h:86
OdGiEdgeData::linetypeIds
OdDbStub ** linetypeIds() const
Definition: GiGeometry.h:204
OdGiFaceEdgeDataTraitsSaverBase::kFaceMask
@ kFaceMask
Definition: GiFaceEdgeDataTraitsSaver.h:94
OdGiFaceDataTraitsSaver::needExit
bool needExit() const
Definition: GiFaceEdgeDataTraitsSaver.h:274
OdGiEdgeData::visibility
const OdUInt8 * visibility() const
Definition: GiGeometry.h:232
OdGiFaceEdgeDataTraitsSaverBase::kEdgeColors
@ kEdgeColors
Definition: GiFaceEdgeDataTraitsSaver.h:85
OdGiFaceDataTraitsSaver::EX_TRAITS_DEFINE
EX_TRAITS_DEFINE(OdCmTransparency, m_prevTransparency, m_curTransparency)
OdGiFaceEdgeDataTraitsSaverBase::kEdgeRestoreMask
@ kEdgeRestoreMask
Definition: GiFaceEdgeDataTraitsSaver.h:102
OdGiSubEntityTraits
Definition: Gi.h:94
OdGiFaceEdgeDataTraitsSaverBase::kEdgeVisibilities
@ kEdgeVisibilities
Definition: GiFaceEdgeDataTraitsSaver.h:90
OdGiFaceEdgeDataTraitsSaverBase::kEdgeSelMarkOnModify
@ kEdgeSelMarkOnModify
Definition: GiFaceEdgeDataTraitsSaver.h:92
OdGiFaceEdgeDataTraitsSaverBase::kFaceTrueColors
@ kFaceTrueColors
Definition: GiFaceEdgeDataTraitsSaver.h:75
OdGsView::k2DOptimized
@ k2DOptimized
Definition: Gs.h:140
OdGiFaceEdgeDataTraitsSaverBase::kFaceSelMarkAvail
@ kFaceSelMarkAvail
Definition: GiFaceEdgeDataTraitsSaver.h:82
OdGiFaceData::visibility
const OdUInt8 * visibility() const
Definition: GiGeometry.h:477
OdGiConveyorContext::currentGiPath
virtual const OdGiPathNode * currentGiPath() const =0
OdGiConveyorContext
Definition: GiConveyorGeometry.h:54
OdGiFaceEdgeDataTraitsSaver::OdGiFaceEdgeDataTraitsSaver
OdGiFaceEdgeDataTraitsSaver(const OdGiFaceData *pFaceData, const OdGiEdgeData *pEdgeData, OdGiSubEntityTraits *pTraits, OdGiConveyorContext *pDrawCtx, OdGsView::RenderMode renderMode)
Definition: GiFaceEdgeDataTraitsSaver.h:499
OdGiFaceEdgeDataTraitsSaverBase::EX_TRAITS_DEFINE
EX_TRAITS_DEFINE(OdCmEntityColor, m_prevTrueColor, m_curTrueColor)
OdGiEdgeDataTraitsSaver::setEdgeTraits
bool setEdgeTraits(int edgeIndex)
Definition: GiFaceEdgeDataTraitsSaver.h:451
OdGiFaceData::trueColors
const OdCmEntityColor * trueColors() const
Definition: GiGeometry.h:432
OdGiFaceEdgeDataTraitsSaverBase::needExit
bool needExit() const
Definition: GiFaceEdgeDataTraitsSaver.h:159
OdGiFaceDataTraitsSaver::EX_TRAITS_DEFINE_PTR
EX_TRAITS_DEFINE_PTR(const OdGiMapper *, m_prevMapper, m_curMapper)
OdGiFaceDataTraitsSaver::setFaceTraits
bool setFaceTraits(int faceIndex)
Definition: GiFaceEdgeDataTraitsSaver.h:291
OdGiFaceEdgeDataTraitsSaverBase::setTrueColor
bool setTrueColor(const OdCmEntityColor *pTrueColors, int index)
Definition: GiFaceEdgeDataTraitsSaver.h:140
OdGiEdgeDataTraitsSaver::hasData
bool hasData() const
Definition: GiFaceEdgeDataTraitsSaver.h:493
OdGiEdgeData::layerIds
OdDbStub ** layerIds() const
Definition: GiGeometry.h:195
OdGiSubEntityTraits::setMapper
virtual void setMapper(const OdGiMapper *pMapper)=0
OdGiPathNode::selectionMarker
virtual OdGsMarker selectionMarker() const =0
OdGiMapper
Definition: GiMaterial.h:1123
GiPathNode.h
OdDb::k2DOptimized
@ k2DOptimized
Definition: ViewportDefs.h:47
OdGiEdgeDataTraitsSaver
Definition: GiFaceEdgeDataTraitsSaver.h:352
OdGiFaceEdgeDataTraitsSaverBase::m_renderMode
OdGsView::RenderMode m_renderMode
Definition: GiFaceEdgeDataTraitsSaver.h:111
OdGiFaceEdgeDataTraitsSaverBase::kFaceColors
@ kFaceColors
Definition: GiFaceEdgeDataTraitsSaver.h:74
OdGiFaceEdgeDataTraitsSaverBase::Components
Components
Definition: GiFaceEdgeDataTraitsSaver.h:72
OdGiEdgeDataTraitsSaver::m_pEdgeData
const OdGiEdgeData * m_pEdgeData
Definition: GiFaceEdgeDataTraitsSaver.h:354
OdGiFaceEdgeDataTraitsSaver
Definition: GiFaceEdgeDataTraitsSaver.h:497
OdGiFaceDataTraitsSaver::EX_TRAITS_DEFINE_PTR
EX_TRAITS_DEFINE_PTR(OdDbStub *, m_prevMaterialId, m_curMaterialId)
OdGiFaceEdgeDataTraitsSaverBase::setColor
bool setColor(const OdUInt16 *pColors, int index)
Definition: GiFaceEdgeDataTraitsSaver.h:129
OdGiFaceDataTraitsSaver::OdGiFaceDataTraitsSaver
OdGiFaceDataTraitsSaver(const OdGiFaceData *pFaceData, OdGiSubEntityTraits *pTraits, OdGiConveyorContext *pDrawCtx, OdGsView::RenderMode renderMode, bool bForEdge=false)
Definition: GiFaceEdgeDataTraitsSaver.h:170
OdGiFaceData::mappers
const OdGiMapper * mappers() const
Definition: GiGeometry.h:495
OdGiFaceData::transparency
const OdCmTransparency * transparency() const
Definition: GiGeometry.h:504