CFx SDK Documentation  2020SP3
GsBaseModel.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 __ODGSMODELIMPL_H__
25 #define __ODGSMODELIMPL_H__
26 
27 #define OD_MATERIAL_CACHE_SUPPORTED
28 class OdGsNode;
29 class OdGsViewImpl;
30 
31 #include "TD_PackPush.h"
32 
33 #include "OdList.h"
34 #include "UInt8Array.h"
35 #include "UInt32Array.h"
36 #include "DbStubPtrArray.h"
37 #include "StaticRxObject.h"
38 #include "OdVector.h"
39 
40 #include "Gi/GiDrawable.h"
41 #include "Gi/GiCommonDraw.h"
42 #include "Gi/GiPathNode.h"
43 
44 #include "Gs/GsExport.h"
45 #include "Gs/GsModel.h"
46 #include "Gs/GsViewProps.h"
47 #include "Gs/GsExtAccum.h"
48 #include "Gs/GsMaterialCache.h"
49 #include "Gs/GsViewLocalId.h"
50 #include "Gs/GsHighlightData.h"
51 
52 #define CACHE_STATISTICS
53 
54 class OdGsLayerNode;
56 class OdGsBaseVectorizer;
57 class OdGsBaseModule;
58 
59 class OdGsBaseModelImpl;
60 class OdGsEntityNode;
61 class OdGsContainerNode;
62 class OdGsLightNode;
63 
65 {
66 //FELIX_CHANGE_BEGIN
68 //FELIX_CHANGE_END
74  kLastNodeType, //number of types enumerated above
78 };
79 
87 {
88  public:
89  virtual bool onHighlight(OdGsModel *pModel, const OdGiPathNode& path, bool bDoIt, const OdGsView* pView) { return true; }
90 
91  virtual bool onInvalidate(OdGsModel *pModel, OdGsModel::InvalidationHint hint) { return true; }
92  virtual bool onInvalidate(OdGsModel *pModel, OdGsView* pView) { return true; }
93 
95  {
101 
103  };
104  virtual bool onPropertyModified(OdGsModel *pModel, ModelProperty nProp) { return true; }
105 };
106 
118 {
119  //FELIX_CHANGE_BEGIN
120  friend class CFxGsExtension;
122  //FELIX_CHANGE_END
123 protected:
126 
127  friend class OdGsNode;
128  friend class OdGsViewImpl;
129  friend class OdGsBaseVectorizer;
131 
136  void addNode(OdGsNode* pNode);
137 
138 public:
139  virtual void invalidateEntRect(OdGiDrawable* pDrawable, OdGiDrawable* pParent, bool bForceIfNoExtents = false);
140  virtual void invalidateEntRect(OdGsEntityNode* pNode, OdGsContainerNode* pParent, bool bForceIfNoExtents);
141 
142 #if defined(CACHE_STATISTICS)
143  unsigned m_nMfCached;
144  unsigned m_nMfReused;
145 #endif//CACHE_STATISTICS
146 protected:
148  {
149  kCheckFaded = (1 << 0),
150  kEnableLinetypes = (1 << 1),
151  kModelSelectable = (1 << 2),
152  kLightsInBlocks = (1 << 3),
153  kSkipViewClip = (1 << 4),
154  kIdentityXform = (1 << 5)
155  };
157 public:
158  bool checkFaded() const { return GETBIT(m_gsModelFlags, kCheckFaded); }
159  void setCheckFaded(bool bOn) { SETBIT(m_gsModelFlags, kCheckFaded, bOn); }
160 #ifdef ODA_DIAGNOSTICS
161  OdRefCounter m_nNodes; //number of OdGsNodes allocated within the model (not necessary in
162  //m_pNodes list _directly_, can be owned by insert/block nodes).
163 #endif
164 
165  typedef std::pair<OdGsViewImpl*, OdUInt32> ViewRef;
167  typedef std::pair<const OdGsBaseModule*, OdUInt32> ModuleRef;
169  const ViewPropsArray& getViewProps() const { return m_viewProps; }
170  OdGsViewImpl *refView() const;
172  OdUInt32 refModulesCount() const { return m_modules.size(); }
173 #ifdef ODGS_LOCAL_IDS
174  virtual void attachLocalViewportId(OdGsViewImpl* pView, OdGsViewImpl* pFrom = NULL);
175  virtual OdUInt32 getLocalViewportId(OdGsViewImpl* pView);
176  virtual OdUInt32 getMaxLocalViewportId() const;
177 #endif
178 
182  bool invalidVp(unsigned int viewportId) const
183  {
184  if(m_viewProps.size()>viewportId)
185  return m_viewProps[viewportId].isInvalid();
186  return true;
187  }
188 
189  OdGsBaseModelImpl* impl() { return m_impl; }
190  void invalidateRegenDrawBlocks(OdGsViewImpl& view, const OdDbStub* layoutId);
192 
194  {
196  bool m_bTopSet;
201  double m_dTop;
202  double m_dBottom;
203  OdDbStub *m_visualStyle;
205  : m_bEnabled(false), m_bTopSet(false), m_bBottomSet(false), m_bVisualStyle(false)
206  , m_dTop(0.0), m_dBottom(0.0), m_visualStyle(NULL) { }
207  bool isEnabled() const { return m_bEnabled && !m_points.isEmpty(); }
208  };
209 
210 protected:
211  void addViewRef(OdGsViewImpl* pView);
213 
217  void setInvalidVp(unsigned int viewportId, bool val)
218  {
219  if(m_viewProps.size()>viewportId)
220  m_viewProps[viewportId].setInvalid(val);
221  }
222  virtual void clearChangedLayersList();
223 
224 protected:
225 
229 
232  OdDbStub* m_modelBackground;
235 
237  // Reserved pointer for internal use (binary incompatible changes), do not delete.
239 
240  // Material cache support
242 
243  OdGsBaseModelImpl* m_impl;
244 
246 
247 #ifdef ODGS_LOCAL_IDS
248  OdGsBaseModelLocalIdsPtr m_pViewIds;
249 #endif
250 
253 
254 protected:
255 
258 
259 public:
267  virtual OdGsNode* gsNode(OdGiDrawable* pDrawable);
268 
273  virtual void detach(OdGsNode* pNode);
274 
278  virtual void detachAll();
279 
281 
289  OdGiDrawablePtr open(OdDbStub* objectId);
290 
291  void setOpenDrawableFn(OdGiOpenDrawableFn openDrawableFn);
293 
295  {
296  kAddDrawable = 0, // New drawable added
297  kUneraseDrawable // Exist drawable unerased
298  };
299 
300  void onAdded(OdGiDrawable* pAdded, OdGiDrawable* pParent);
301  void onAdded(OdGiDrawable* pAdded, OdDbStub* parentID);
302  virtual void onAddedImpl(OdGiDrawable* pAdded, OdGiDrawable* pParent, AdditionMode additionMode = kAddDrawable);
303 
304  void onModified(OdGiDrawable* pModified, OdGiDrawable* pParent);
305  void onModified(OdGiDrawable* pModified, OdDbStub* parentID);
306  virtual void onModifiedImpl(OdGiDrawable* pModified, OdGiDrawable* pParent);
307 
308  void onErased(OdGiDrawable* pErased, OdGiDrawable* pParent);
309  void onErased(OdGiDrawable* pErased, OdDbStub* parentID);
310  virtual void onErasedImpl(OdGiDrawable* pErased, OdGiDrawable* pParent);
311 
312  void onUnerased(OdGiDrawable* pUnerased, OdGiDrawable* pParent);
313  void onUnerased(OdGiDrawable* pUnerased, OdDbStub* parentID);
314 
316  void invalidate(OdGsView* pView);
317  void invalidateVisible( OdGsDevice* pDevice );
322 
328  OdUInt32 viewChanges(OdUInt32 viewportId) const;
332  OdUInt32 numViewProps() const;
333 
339  const ViewProps& viewProps(OdUInt32 viewportId) const;
340 
345  virtual void updateViewProps(const OdGsViewImpl& viewport);
346 
347  virtual bool isViewPropsValid(OdUInt32 viewportId) const;
348 
349  virtual OdGsLayerNode* gsLayerNode(OdDbStub* layerId, const OdGsBaseVectorizer* pView);
350 
352 
353  void setTransform(const OdGeMatrix3d& xForm);
354 
356 
357  bool isIdentityTransform() const;
358 
359  OdGsView::RenderMode renderModeOverride() const;
360 
362 
363  void highlight(const OdGiPathNode& path, bool bDoIt = true, const OdGsView* pView = NULL);
364  virtual void highlightImpl(const OdGiPathNode& path, bool bDoIt = true, const OdGsView* pView = NULL);
365 
366  // Material cache support
367  OdGsMaterialCache* materialCache() { return m_pMaterialCache.get(); }
368 
371 
372  void setRenderType(RenderType renderType);
373  RenderType renderType() const;
374 
375  void setBackground(OdDbStub *backgroundId);
376  OdDbStub *background() const;
377 
378  void setVisualStyle(OdDbStub *visualStyleId);
379  OdDbStub *visualStyle() const;
380  void setVisualStyle(const OdGiVisualStyle &visualStyle);
381  bool visualStyle(OdGiVisualStyle &visualStyle) const;
382  const OdGiDrawable *visualStyleDrawable() const;
383 
384  virtual bool makeStock(OdDbStub* layoutId);
385  virtual void releaseStock(OdDbStub* layoutId);
386 
387  bool hasChangedLayers() const { return m_pFirstChangedLayer != NULL; }
388 
391 
392  void setEnableSectioning(bool bEnable);
393  bool isSectioningEnabled() const;
394  bool setSectioning(const OdGePoint3dArray &points, const OdGeVector3d &upVector);
395  bool setSectioning(const OdGePoint3dArray &points, const OdGeVector3d &upVector,
396  double dTop, double dBottom);
397  void setSectioningVisualStyle(OdDbStub *visualStyleId);
398  const SectioningSettings &getSectioning() const { return m_sectioning; }
399 
400  void setViewClippingOverride(bool bEnable);
401  bool isViewClippingOverride() const;
402 
403  void setEnableLinetypes(bool bEnable);
404  bool isLinetypesEnabled() const;
405 
406  void setSelectable(bool bEnable);
407  bool isSelectable() const;
408 
409  void setEnableLightsInBlocks(bool bEnable);
411 
412  virtual bool saveModelState(OdGsFiler *pFiler, OdGsBaseVectorizer *pVectorizer = NULL) const;
413  virtual bool loadModelState(OdGsFiler *pFiler, OdGsBaseVectorizer *pVectorizer = NULL);
414  virtual bool saveClientModelState(OdGsFiler *pFiler) const;
415  virtual bool loadClientModelState(OdGsFiler *pFiler);
417 protected:
418  void onModifiedNode(OdGsNode* pCache, OdGiDrawable* pDrawable, OdGiDrawable* pParent);
419  void onModifiedDrawable(OdGiDrawable* pDrawable, OdGiDrawable* pParent);
422 public:
423  virtual OdGsNode* newNode(ENodeType ntp, const OdGiDrawable* drawable, bool bSetGsNode);
424 };
425 
427 {
428  return m_renderModeOverride;
429 }
430 
432 {
434 }
435 //FELIX_CHANGE_BEGIN
437 //FELIX_CHANGE_END
438 inline OdGiDrawablePtr OdGsBaseModel::open(OdDbStub* objectId)
439 {
440  //FELIX_CHANGE_BEGIN
441  /*
442  if(m_openDrawableFn)
443  return m_openDrawableFn(objectId);
444  //ODA_ASSERT_ONCE(objectId==0);
445  return OdGiDrawablePtr();
446  */
447  return( fxOpenDrawable( this, objectId ) );
448  //FELIX_CHANGE_END
449 }
450 
452 {
453  return m_viewProps.size();
454 }
455 
456 inline const ViewProps& OdGsBaseModel::viewProps(OdUInt32 viewportId) const
457 {
458  ODA_ASSERT(m_viewProps.size() > viewportId);
459  return m_viewProps[viewportId];
460 }
461 
463 {
464  return viewProps(viewportId).m_nViewChanges;
465 }
466 
468 {
469  if (m_views.empty())
470  return NULL;
471  return m_views.first().first;
472 }
473 
475 {
476  return m_renderType;
477 }
478 
480 {
482 }
483 
485 {
486  return m_pTransVisualStyle.get();
487 }
488 
489 #include "TD_PackPop.h"
490 
491 #endif // __ODGSMODELIMPL_H__
GETBIT
#define GETBIT(flags, bit)
Definition: OdaDefs.h:498
OdGsBaseModelReactor
Definition: GsBaseModel.h:87
OdGsBaseModel::setBackground
void setBackground(OdDbStub *backgroundId)
ViewProps::m_nViewChanges
OdUInt32 m_nViewChanges
Definition: GsViewProps.h:66
OdGsBaseModel::loadClientModelState
virtual bool loadClientModelState(OdGsFiler *pFiler)
OdGsBaseModelReactor::onHighlight
virtual bool onHighlight(OdGsModel *pModel, const OdGiPathNode &path, bool bDoIt, const OdGsView *pView)
Definition: GsBaseModel.h:89
OdGsBaseModel::SectioningSettings::isEnabled
bool isEnabled() const
Definition: GsBaseModel.h:207
OdGsBaseModel::viewProps
const ViewProps & viewProps(OdUInt32 viewportId) const
Definition: GsBaseModel.h:456
OdGsBaseModel::invalidateRegenDrawBlocks
void invalidateRegenDrawBlocks(OdGsViewImpl &view, const OdDbStub *layoutId)
OdGsBaseModel::highlightImpl
virtual void highlightImpl(const OdGiPathNode &path, bool bDoIt=true, const OdGsView *pView=NULL)
OdGeVector3d
Definition: GeVector3d.h:54
NULL
#define NULL
Definition: GsProperties.h:177
OdGsView::RenderMode
RenderMode
Definition: Gs.h:138
OdGsBaseModel::setRenderType
void setRenderType(RenderType renderType)
OdRxObjectPtr
Definition: RxObject.h:345
OdGsModelReactor
Definition: GsModel.h:447
GsMaterialCache.h
OdGsContainerNode
Definition: GsContainerNode.h:47
OdGsView::kNone
@ kNone
Definition: Gs.h:147
OdGsBaseVectorizer
Definition: GsBaseVectorizer.h:112
OdGsView
Definition: Gs.h:133
OdGsBaseModel::onModified
void onModified(OdGiDrawable *pModified, OdDbStub *parentID)
OdGsBaseModel::SectioningSettings::m_dTop
double m_dTop
Definition: GsBaseModel.h:201
OdVector.h
OdGsBaseModel::loadModelState
virtual bool loadModelState(OdGsFiler *pFiler, OdGsBaseVectorizer *pVectorizer=NULL)
OdGsBaseModel::m_modelReactors
OdVector< OdGsModelReactor *, OdMemoryAllocator< OdGsModelReactor * > > m_modelReactors
Definition: GsBaseModel.h:251
OdGsBaseModel::m_xForm
OdGeMatrix3d m_xForm
Definition: GsBaseModel.h:231
OdGsModel::renderType
virtual RenderType renderType() const =0
OdGsBaseModel::m_views
OdArray< ViewRef, OdMemoryAllocator< ViewRef > > m_views
Definition: GsBaseModel.h:166
OdGsBaseModel::setEnableLinetypes
void setEnableLinetypes(bool bEnable)
OdGsBaseModelReactor::ModelProperty
ModelProperty
Definition: GsBaseModel.h:95
OdGsBaseModel::SectioningSettings::m_upVector
OdGeVector3d m_upVector
Definition: GsBaseModel.h:200
OdGsBaseModel::SectioningSettings::m_bTopSet
bool m_bTopSet
Definition: GsBaseModel.h:196
OdGsBaseModel::gsLayerNode
virtual OdGsLayerNode * gsLayerNode(OdDbStub *layerId, const OdGsBaseVectorizer *pView)
OdGsBaseModel::m_modules
OdArray< ModuleRef, OdMemoryAllocator< ModuleRef > > m_modules
Definition: GsBaseModel.h:168
false
false
Definition: DimVarDefs.h:165
kLastNodeType
@ kLastNodeType
Definition: GsBaseModel.h:74
OdGsBaseModelReactor::kModelRenderType
@ kModelRenderType
Definition: GsBaseModel.h:97
OdRxObject
Definition: RxObject.h:564
OdGsBaseModel::detachAll
virtual void detachAll()
OdGsBaseModelReactor::kModelBackground
@ kModelBackground
Definition: GsBaseModel.h:98
OdGsBaseModel::refDevice
OdGsBaseVectorizeDevice * refDevice() const
SETBIT
#define SETBIT(flags, bit, value)
Definition: OdaDefs.h:497
OdGsBaseModel::onModifiedImpl
virtual void onModifiedImpl(OdGiDrawable *pModified, OdGiDrawable *pParent)
OdGsBaseModel::m_modelVisualStyle
OdDbStub * m_modelVisualStyle
Definition: GsBaseModel.h:233
OdRefCounter
int OdRefCounter
Definition: OdMutex.h:436
OdGsDevice
Definition: Gs.h:1061
OdGsBaseModel::onAddedImpl
virtual void onAddedImpl(OdGiDrawable *pAdded, OdGiDrawable *pParent, AdditionMode additionMode=kAddDrawable)
kContainerNode
@ kContainerNode
Definition: GsBaseModel.h:70
OdGsNode
Definition: GsNode.h:60
OdGsLayerNode
Definition: GsLayerNode.h:41
OdGsBaseModel::m_viewProps
OdArray< ViewProps > m_viewProps
Definition: GsBaseModel.h:226
OdGsBaseModel::onAdded
void onAdded(OdGiDrawable *pAdded, OdDbStub *parentID)
GsModel.h
OdGsMaterialCache
Definition: GsMaterialCache.h:41
kMaterialNode
@ kMaterialNode
Definition: GsBaseModel.h:73
OdGsBaseModel::setInvalidVp
void setInvalidVp(unsigned int viewportId, bool val)
Definition: GsBaseModel.h:217
OdGsBaseModel::setViewClippingOverride
void setViewClippingOverride(bool bEnable)
OdArray
Definition: OdArray.h:591
kLightNode
@ kLightNode
Definition: GsBaseModel.h:75
TD_PackPop.h
OdGsBaseModel::m_renderType
RenderType m_renderType
Definition: GsBaseModel.h:236
OdGsBaseModel::isViewClippingOverride
bool isViewClippingOverride() const
Definition: GsBaseModel.h:431
OdGsBaseModel::setSelectable
void setSelectable(bool bEnable)
OdGsBaseModel::openDrawableFn
OdGiOpenDrawableFn openDrawableFn() const
OdGsModel::RenderType
RenderType
Definition: GsModel.h:225
kLayerNode
@ kLayerNode
Definition: GsBaseModel.h:71
OdGiOpenDrawableFn
OdGiDrawablePtr(* OdGiOpenDrawableFn)(OdDbStub *id)
Definition: GsModel.h:65
OdGsBaseModel::setRenderModeOverride
void setRenderModeOverride(OdGsView::RenderMode mode=OdGsView::kNone)
OdUInt32
unsigned int OdUInt32
Definition: OdPlatformSettings.h:783
OdGeMatrix3d
Definition: GeMatrix3d.h:73
OdGsBaseModel::m_nMfCached
unsigned m_nMfCached
Definition: GsBaseModel.h:143
OdGsBaseModel::detachAllFromDb
void detachAllFromDb(const OdDbBaseDatabase *pDb)
mask
GLenum GLint GLuint mask
Definition: gles2_ext.h:262
OdGsBaseModel::onModifiedNode
void onModifiedNode(OdGsNode *pCache, OdGiDrawable *pDrawable, OdGiDrawable *pParent)
OdGsBaseModel::~OdGsBaseModel
~OdGsBaseModel()
kBlockNode
@ kBlockNode
Definition: GsBaseModel.h:69
OdGsBaseModelReactor::kModelTransform
@ kModelTransform
Definition: GsBaseModel.h:96
OdGsBaseModel::onModifiedDrawable
void onModifiedDrawable(OdGiDrawable *pDrawable, OdGiDrawable *pParent)
OdGsBaseModel::onErased
void onErased(OdGiDrawable *pErased, OdGiDrawable *pParent)
OdGsBaseModel::m_pMaterialCache
OdGsMaterialCachePtr m_pMaterialCache
Definition: GsBaseModel.h:241
OdGsBaseModel::SectioningSettings::m_visualStyle
OdDbStub * m_visualStyle
Definition: GsBaseModel.h:203
OdGsBaseModel::newNode
virtual OdGsNode * newNode(ENodeType ntp, const OdGiDrawable *drawable, bool bSetGsNode)
OdGsBaseModel::renderType
RenderType renderType() const
Definition: GsBaseModel.h:474
OdGsBaseModel::updateViewProps
virtual void updateViewProps(const OdGsViewImpl &viewport)
OdGsBaseModel::onPropertyModified
virtual bool onPropertyModified(OdGsBaseModelReactor::ModelProperty nProp)
OdGsBaseModel::SectioningSettings::m_bBottomSet
bool m_bBottomSet
Definition: GsBaseModel.h:197
ENodeType
ENodeType
Definition: GsBaseModel.h:65
OdGsBaseModel::SectioningSettings::SectioningSettings
SectioningSettings()
Definition: GsBaseModel.h:204
OdGsBaseModel::m_pTransVisualStyle
OdGiDrawablePtr m_pTransVisualStyle
Definition: GsBaseModel.h:234
OdGsBaseModel::isSelectable
bool isSelectable() const
OdGsBaseModel::removeViewRef
void removeViewRef(OdGsViewImpl *pView)
OdGsBaseModel::m_nMfReused
unsigned m_nMfReused
Definition: GsBaseModel.h:144
OdGsBaseModel::isLinetypesEnabled
bool isLinetypesEnabled() const
OdGsBaseModel::kIdentityXform
@ kIdentityXform
Definition: GsBaseModel.h:154
OdGsBaseModel::impl
OdGsBaseModelImpl * impl()
Definition: GsBaseModel.h:189
OdGsBaseModel::m_impl
OdGsBaseModelImpl * m_impl
Definition: GsBaseModel.h:243
OdGsBaseModel::makeStock
virtual bool makeStock(OdDbStub *layoutId)
OdGsBaseModel::setCheckFaded
void setCheckFaded(bool bOn)
Definition: GsBaseModel.h:159
OdSmartPtr
Definition: SmartPtr.h:58
OdGsBaseModel::viewChanges
OdUInt32 viewChanges(OdUInt32 viewportId) const
Definition: GsBaseModel.h:462
OdGsBaseModel::SectioningSettings::m_dBottom
double m_dBottom
Definition: GsBaseModel.h:202
OdGiVisualStyle
Definition: GiVisualStyle.h:996
OdGiPathNode
Definition: GiPathNode.h:36
kMInsertBlockNode
@ kMInsertBlockNode
Definition: GsBaseModel.h:77
OdGsModel::InvalidationHint
InvalidationHint
Definition: GsModel.h:159
OdGsBaseModel::invalidateSectionableBlocks
void invalidateSectionableBlocks()
kFxNode
@ kFxNode
Definition: GsBaseModel.h:67
fxOpenDrawable
GS_TOOLKIT_EXPORT OdGiDrawablePtr fxOpenDrawable(OdGsBaseModel *, OdDbStub *)
OdGsBaseModel::m_gsModelFlags
OdUInt32 m_gsModelFlags
Definition: GsBaseModel.h:156
OdGsBaseModel::setEnableLightsInBlocks
void setEnableLightsInBlocks(bool bEnable)
OdGsBaseModel::hasChangedLayers
bool hasChangedLayers() const
Definition: GsBaseModel.h:387
OdGsBaseModel::visualStyle
OdDbStub * visualStyle() const
OdGsBaseModel::m_pFirstChangedLayer
OdGsLayerNode * m_pFirstChangedLayer
Definition: GsBaseModel.h:228
OdArray::size
size_type size() const
Definition: OdArray.h:893
OdGsBaseModel::materialCache
OdGsMaterialCache * materialCache()
Definition: GsBaseModel.h:367
OdGsBaseModel::invalidateVisible
void invalidateVisible(OdGsDevice *pDevice)
OdGsBaseModel::onPropertyModifiedImpl
void onPropertyModifiedImpl(OdGsBaseModelReactor::ModelProperty nProp, bool &bReturnValue)
OdGsBaseModelReactor::kModelVisualStyle
@ kModelVisualStyle
Definition: GsBaseModel.h:99
OdGsBaseModel::ModuleRef
std::pair< const OdGsBaseModule *, OdUInt32 > ModuleRef
Definition: GsBaseModel.h:167
OdGiDrawable
Definition: GiDrawable.h:49
OdGsBaseModel::checkFaded
bool checkFaded() const
Definition: GsBaseModel.h:158
OdGsViewImpl
Definition: GsViewImpl.h:58
OdSmartPtr::get
const T * get() const
Definition: SmartPtr.h:326
OdGsBaseModel::postprocessModelLoading
bool postprocessModelLoading(OdGsFiler *pFiler)
OdGsBaseModel::transform
OdGeMatrix3d transform() const
OdGsBaseModel::SectioningSettings::m_bVisualStyle
bool m_bVisualStyle
Definition: GsBaseModel.h:198
kBlockReferenceNode
@ kBlockReferenceNode
Definition: GsBaseModel.h:76
OdGsBaseModel::refView
OdGsViewImpl * refView() const
Definition: GsBaseModel.h:467
OdVector
Definition: OdVector.h:54
GiCommonDraw.h
OdGsBaseModel::clearChangedLayersList
virtual void clearChangedLayersList()
OdGsBaseModel::SectioningSettings
Definition: GsBaseModel.h:194
OdGsBaseModel::detach
virtual void detach(OdGsNode *pNode)
OdGsBaseModel::setAdditionMode
void setAdditionMode(AdditionMode mode)
OdGsBaseModel::invalidVp
bool invalidVp(unsigned int viewportId) const
Definition: GsBaseModel.h:182
OdGsBaseModel::addModelReactor
void addModelReactor(OdGsModelReactor *pReactor)
OdGsBaseModel::getViewProps
const ViewPropsArray & getViewProps() const
Definition: GsBaseModel.h:169
TD_PackPush.h
OdGsBaseModel::m_baseModelReactors
OdVector< OdGsBaseModelReactor *, OdMemoryAllocator< OdGsBaseModelReactor * > > m_baseModelReactors
Definition: GsBaseModel.h:252
StaticRxObject.h
OdGsBaseModel::setVisualStyle
void setVisualStyle(const OdGiVisualStyle &visualStyle)
OdGsBaseModel::m_pGsReserved
OdRxObjectPtr m_pGsReserved
Definition: GsBaseModel.h:238
GsExport.h
OdGsBaseModel::m_nLayers
OdUInt32 m_nLayers
Definition: GsBaseModel.h:227
OdGsBaseModel::renderModeOverride
OdGsView::RenderMode renderModeOverride() const
Definition: GsBaseModel.h:426
OdGsBaseModel::invalidate
void invalidate(OdGsViewImpl &view, OdUInt32 mask)
GsViewProps.h
OdGsBaseModel::invalidate
void invalidate(InvalidationHint hint)
OdGsBaseModel::background
OdDbStub * background() const
OdGsBaseModelReactor::onPropertyModified
virtual bool onPropertyModified(OdGsModel *pModel, ModelProperty nProp)
Definition: GsBaseModel.h:104
OdGsBaseVectorizeDevice
Definition: GsBaseVectorizeDevice.h:69
OdGsBaseModel::isViewPropsValid
virtual bool isViewPropsValid(OdUInt32 viewportId) const
GsExtAccum.h
kEntityNode
@ kEntityNode
Definition: GsBaseModel.h:72
OdGsBaseModelReactor::onInvalidate
virtual bool onInvalidate(OdGsModel *pModel, OdGsView *pView)
Definition: GsBaseModel.h:92
OdGsBaseModel::visualStyleDrawable
const OdGiDrawable * visualStyleDrawable() const
Definition: GsBaseModel.h:484
OdGsBaseModel::setSectioning
bool setSectioning(const OdGePoint3dArray &points, const OdGeVector3d &upVector, double dTop, double dBottom)
OdGsBaseModel::gsNode
virtual OdGsNode * gsNode(OdGiDrawable *pDrawable)
OdGsBaseModel::setEnableSectioning
void setEnableSectioning(bool bEnable)
OdGsBaseModel::highlight
void highlight(const OdGiPathNode &path, bool bDoIt=true, const OdGsView *pView=NULL)
OdGsBaseModel::removeModelReactor
void removeModelReactor(OdGsModelReactor *pReactor)
OdGsBaseModel
Definition: GsBaseModel.h:118
OdGsBaseModelReactor::kModelSectioning
@ kModelSectioning
Definition: GsBaseModel.h:100
OdGsBaseModel::invalidateEntRect
virtual void invalidateEntRect(OdGsEntityNode *pNode, OdGsContainerNode *pParent, bool bForceIfNoExtents)
ODA_ASSERT
#define ODA_ASSERT(exp)
Definition: DebugStuff.h:49
OdGsBaseModel::visualStyle
bool visualStyle(OdGiVisualStyle &visualStyle) const
OdGsBaseModelReactor::kNumModelProps
@ kNumModelProps
Definition: GsBaseModel.h:102
OdGsBaseModel::m_modelBackground
OdDbStub * m_modelBackground
Definition: GsBaseModel.h:232
UInt8Array.h
OdGsBaseModel::addNode
void addNode(OdGsNode *pNode)
OdGsBaseModel::additionMode
AdditionMode additionMode() const
GsHighlightData.h
OdGsBaseModel::addViewRef
void addViewRef(OdGsViewImpl *pView)
GS_TOOLKIT_EXPORT
#define GS_TOOLKIT_EXPORT
Definition: GsExport.h:37
GiDrawable.h
OdGsBaseModel::refModulesCount
OdUInt32 refModulesCount() const
Definition: GsBaseModel.h:172
OdGsBaseModel::setTransform
void setTransform(const OdGeMatrix3d &xForm)
OdGsBaseModel::kSkipViewClip
@ kSkipViewClip
Definition: GsBaseModel.h:153
OdGsBaseModel::getSectioning
const SectioningSettings & getSectioning() const
Definition: GsBaseModel.h:398
OdGsBaseModel::onErased
void onErased(OdGiDrawable *pErased, OdDbStub *parentID)
OdGsBaseModel::setOpenDrawableFn
void setOpenDrawableFn(OdGiOpenDrawableFn openDrawableFn)
OdArray::first
T & first()
Definition: OdArray.h:1186
OdGsBaseModel::onUnerased
void onUnerased(OdGiDrawable *pUnerased, OdDbStub *parentID)
OdGsLightNode
Definition: GsLightNode.h:40
OdGsBaseModel::onUnerased
void onUnerased(OdGiDrawable *pUnerased, OdGiDrawable *pParent)
OdGsBaseModel::m_openDrawableFn
OdGiOpenDrawableFn m_openDrawableFn
Definition: GsBaseModel.h:124
GsViewLocalId.h
OdGsBaseModel::SectioningSettings::m_bEnabled
bool m_bEnabled
Definition: GsBaseModel.h:195
OdGsBaseModel::saveModelState
virtual bool saveModelState(OdGsFiler *pFiler, OdGsBaseVectorizer *pVectorizer=NULL) const
OdGsBaseModel::fxOpenDrawable
friend GS_TOOLKIT_EXPORT OdGiDrawablePtr fxOpenDrawable(OdGsBaseModel *, OdDbStub *)
OdGsBaseModel::onErasedImpl
virtual void onErasedImpl(OdGiDrawable *pErased, OdGiDrawable *pParent)
OdGsBaseModelReactor::onInvalidate
virtual bool onInvalidate(OdGsModel *pModel, OdGsModel::InvalidationHint hint)
Definition: GsBaseModel.h:91
OdGsBaseModel::m_sectioning
SectioningSettings m_sectioning
Definition: GsBaseModel.h:245
OdGsBaseModel::invalidate
void invalidate(OdGsView *pView)
DbStubPtrArray.h
OdGsBaseModel::onModified
void onModified(OdGiDrawable *pModified, OdGiDrawable *pParent)
OdGsModel
Definition: GsModel.h:77
OdGsBaseModel::setSectioningVisualStyle
void setSectioningVisualStyle(OdDbStub *visualStyleId)
OdGsBaseModel::propagateLayerChanges
virtual void propagateLayerChanges(OdGsBaseVectorizeDevice &device)
OdGsBaseModel::setSectioning
bool setSectioning(const OdGePoint3dArray &points, const OdGeVector3d &upVector)
OdGsBaseModel::onAdded
void onAdded(OdGiDrawable *pAdded, OdGiDrawable *pParent)
OdGsBaseModel::AdditionMode
AdditionMode
Definition: GsBaseModel.h:295
OdGsBaseModel::saveClientModelState
virtual bool saveClientModelState(OdGsFiler *pFiler) const
OdGsBaseModule
Definition: GsBaseModule.h:41
OdGsBaseModel::setVisualStyle
void setVisualStyle(OdDbStub *visualStyleId)
OdGsBaseModel::ViewRef
std::pair< OdGsViewImpl *, OdUInt32 > ViewRef
Definition: GsBaseModel.h:165
OdGsFiler
Definition: GsFiler.h:63
OdGsBaseModel::OdGsBaseModel
OdGsBaseModel()
OdGsBaseModel::open
OdGiDrawablePtr open(OdDbStub *objectId)
Definition: GsBaseModel.h:438
OdGsBaseModel::GsModelFlags
GsModelFlags
Definition: GsBaseModel.h:148
OdGsBaseModel::isLightsInBlocksEnabled
bool isLightsInBlocksEnabled() const
ViewProps
Definition: GsViewProps.h:43
OdGsBaseModel::isSectioningEnabled
bool isSectioningEnabled() const
GiPathNode.h
OdGsBaseModel::releaseStock
virtual void releaseStock(OdDbStub *layoutId)
OdGsBaseModel::invalidateEntRect
virtual void invalidateEntRect(OdGiDrawable *pDrawable, OdGiDrawable *pParent, bool bForceIfNoExtents=false)
OdGsBaseModel::isIdentityTransform
bool isIdentityTransform() const
Definition: GsBaseModel.h:479
OD::File::open
StreamP open(const OdString &path, int acc=Read, Creation dispos=OpenExisting, Share sh=DenyNo)
Definition: RxFS.h:239
UInt32Array.h
OdGsBaseModel::numViewProps
OdUInt32 numViewProps() const
Definition: GsBaseModel.h:451
OdArray::empty
bool empty() const
Definition: OdArray.h:901
OdGsEntityNode
Definition: GsEntityNode.h:103
OdGsBaseModel::m_renderModeOverride
OdGsView::RenderMode m_renderModeOverride
Definition: GsBaseModel.h:230
OdList.h
OdGsBaseModel::SectioningSettings::m_points
OdGePoint3dArray m_points
Definition: GsBaseModel.h:199
OdArray::isEmpty
bool isEmpty() const
Definition: OdArray.h:1062