CFx SDK Documentation 2026 SP0
Loading...
Searching...
No Matches
GsBaseModel.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
24#ifndef __ODGSMODELIMPL_H__
25#define __ODGSMODELIMPL_H__
26
27#define OD_MATERIAL_CACHE_SUPPORTED
28
29#include "TD_PackPush.h"
30
31#define STL_USING_MAP
32#include "OdaSTL.h"
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"
52
53#define CACHE_STATISTICS
54
55class OdGsLayerNode;
58class OdGsBaseModule;
59
60class OdGsBaseModelImpl;
61class OdGsEntityNode;
63class OdGsLightNode;
64
65class OdGsViewImpl;
67
69{
70//FELIX_CHANGE_BEGIN
72//FELIX_CHANGE_END
78 kLastNodeType, //number of types enumerated above
82};
83
96{
97 //FELIX_CHANGE_BEGIN
98 friend class CFxGsExtension;
100 //FELIX_CHANGE_END
101protected:
104
105 friend class OdGsNode;
106 friend class OdGsViewImpl;
107 friend class OdGsBaseVectorizer;
109
114 virtual void addNode(OdGsNode* pNode);
115
116public:
117 virtual void invalidateEntRect(OdGiDrawable* pDrawable, OdGiDrawable* pParent, bool bForceIfNoExtents = false);
118 virtual void invalidateEntRect(OdGsEntityNode* pNode, OdGsContainerNode* pParent, bool bForceIfNoExtents);
119
120#ifdef BS_CHANGES_ENABLED // @@@TODO: Feature is obsolete and marked to be removed.
126 virtual OdRxObjectPtr saveAndDetach(OdGiDrawable& db);
127
134 virtual void restoreAndAttach(OdGiDrawable& db, OdRxObject* pFrom);
135#endif // BS_CHANGES_ENABLED
136
137#if defined(CACHE_STATISTICS)
138 OdRefCounter m_nMfCached; // For safety and perhaps future extension
139 OdRefCounter m_nMfReused; // Can be incremented from worker threads
140#endif//CACHE_STATISTICS
141protected:
143 {
144 kCheckFaded = (1 << 0),
147 kLightsInBlocks = (1 << 3),
148 kSkipViewClip = (1 << 4),
149 kViewExtCalcs = (1 << 5),
151 kIdentityXform = (1 << 7),
152 kVectorizing = (1 << 8),
153 kKeepSelStyles = (1 << 9)
154#ifdef BS_CHANGES_ENABLED // @@@TODO: Feature is obsolete and marked to be removed.
155 , kDisableAddNode = (1 << 10)
156#endif // BS_CHANGES_ENABLED
158 , kDisableInvalidate = (1 << 11)
159 };
161public:
162 bool checkFaded() const { return GETBIT(m_gsModelFlags, kCheckFaded); }
168 //bool trySetDisableInvalidate(bool bOn);
169
170#ifdef ODA_DIAGNOSTICS
171 OdRefCounter m_nNodes; //number of OdGsNodes allocated within the model (not necessary in
172 //m_pNodes list _directly_, can be owned by insert/block nodes).
173#endif
174
175 typedef std::pair<OdGsViewImpl*, OdUInt32> ViewRef;
177 typedef std::pair<const OdGsBaseModule*, OdUInt32> ModuleRef;
179 const ViewPropsArray& getViewProps() const { return m_viewProps; }
180 OdGsViewImpl *refView() const;
182 OdUInt32 refModulesCount() const { return m_modules.size(); }
183 virtual void attachLocalViewportId(OdGsViewImpl* pView, OdGsViewImpl* pFrom = NULL);
186
190 bool invalidVp(unsigned int viewportId) const
191 {
192 if(m_viewProps.size()>viewportId)
193 return m_viewProps[viewportId].isInvalid();
194 return true;
195 }
196 //DOM-IGNORE-BEGIN
197 OdGsBaseModelImpl* impl() { return m_impl; }
198 //DOM-IGNORE-END
199 void invalidateRegenDrawBlocks(OdGsViewImpl& view, const OdDbStub* layoutId);
201
206 {
209
212
215
218
221
224
226 double m_dTop;
227
229 double m_dBottom;
230
232 OdDbStub *m_visualStyle;
233
240
247 bool isEnabled() const { return m_bEnabled && !m_points.isEmpty(); }
248 };
249
250protected:
251#ifdef BS_CHANGES_ENABLED // @@@TODO: Feature is obsolete and marked to be removed.
252 bool disableAddNode() const { return GETBIT(m_gsModelFlags, kDisableAddNode); }
253#endif // BS_CHANGES_ENABLED
254
257
261 void setInvalidVp(unsigned int viewportId, bool val)
262 {
263 if(m_viewProps.size()>viewportId)
264 m_viewProps[viewportId].setInvalid(val);
265 }
267
269 void setSelectionStyleRef(const OdGsNode* pNode, OdUInt32 nStyle);
273
274protected:
275
279
285
287 // Reserved pointer for internal use (binary incompatible changes), do not delete.
289
290 // Material cache support
292
293 OdGsBaseModelImpl* m_impl;
294
296
299
302
303 typedef std::map<const OdGsNode*, OdUInt32> SelectionStyleRefMap;
305 typedef std::map<OdUInt32, OdGsIntParamPtr> SelectionStyleParamMap;
307
308protected:
309
312
313public:
321 virtual OdGsNode* gsNode(OdGiDrawable* pDrawable);
322
327 virtual void detach(OdGsNode* pNode);
328
332 virtual void detachAll();
333
335
343 OdGiDrawablePtr open(OdDbStub* objectId);
344
350 void setDrawableGsNode(OdGiDrawable *pDrawable, OdGsCache *pNode);
356
359
361 {
362 kAddDrawable = 0, // New drawable added
363 kUneraseDrawable // Exist drawable unerased
364 };
365
366 void onAdded(OdGiDrawable* pAdded, OdGiDrawable* pParent);
367 void onAdded(OdGiDrawable* pAdded, OdDbStub* parentID);
368 virtual void onAddedImpl(OdGiDrawable* pAdded, OdGiDrawable* pParent, AdditionMode additionMode = kAddDrawable);
369
370 void onModified(OdGiDrawable* pModified, OdGiDrawable* pParent);
371 void onModified(OdGiDrawable* pModified, OdDbStub* parentID);
372 virtual void onModifiedImpl(OdGiDrawable* pModified, OdGiDrawable* pParent);
373
374 virtual void onModifiedGraphics(const OdGiDrawable* pModified, OdDbStub* parentID) ODRX_OVERRIDE;
375
376 void onErased(OdGiDrawable* pErased, OdGiDrawable* pParent);
377 void onErased(OdGiDrawable* pErased, OdDbStub* parentID);
378 virtual void onErasedImpl(OdGiDrawable* pErased, OdGiDrawable* pParent);
379
380 void onUnerased(OdGiDrawable* pUnerased, OdGiDrawable* pParent);
381 void onUnerased(OdGiDrawable* pUnerased, OdDbStub* parentID);
382
384 void invalidate(OdGsView* pView);
390
396 OdUInt32 viewChanges(OdUInt32 viewportId) const;
397
401 OdUInt32 numViewProps() const;
402
408 const ViewProps& viewProps(OdUInt32 viewportId) const;
409
414 virtual void updateViewProps(const OdGsViewImpl& viewport);
415
420 virtual bool isViewPropsValid(OdUInt32 viewportId) const;
421
427 const OdGsViewImpl *viewById(OdUInt32 viewportId) const;
428
434 virtual OdGsLayerNode* gsLayerNode(OdDbStub* layerId, const OdGsBaseVectorizer* pView);
435
441
446 void setTransform(const OdGeMatrix3d& xForm);
447
452
458 bool isIdentityTransform() const;
459
465
472
480
490 void highlight(const OdGiPathNode& path, bool bDoIt = true, OdUInt32 nStyle = 0, const OdGsView* pView = NULL);
491
503 void highlight(const OdGiPathNode& path, const OdGsMarker* pMarkers, OdUInt32 nMarkers, bool bDoIt = true,
504 OdUInt32 nStyle = 0, const OdGsView* pView = NULL);
505 //DOM-IGNORE-BEGIN
506 virtual void highlightImpl(const OdGiPathNode& path, const OdGsMarker* pMarkers, OdUInt32 nMarkers, bool bDoIt = true,
507 OdUInt32 nStyle = 0, const OdGsView* pView = NULL);
508 //DOM-IGNORE-END
517 void hide(const OdGiPathNode& path, bool bDoIt = true, bool bSelectHidden = false, const OdGsView* pView = NULL);
528 void hide(const OdGiPathNode& path, const OdGsMarker* pMarkers, OdUInt32 nMarkers, bool bDoIt = true,
529 bool bSelectHidden = false, const OdGsView* pView = NULL);
540 virtual void hideImpl(const OdGiPathNode& path, const OdGsMarker* pMarkers, OdUInt32 nMarkers, bool bDoIt = true,
541 bool bSelectHidden = false, const OdGsView* pView = NULL);
542
551 virtual void externalTransform(const OdGiPathNode& path, bool bDoIt = true, const OdGsMatrixParam *xForm = NULL,
552 const OdGsView* pView = NULL);
563 virtual void externalTransform(const OdGiPathNode& path, const OdGsMarker* pMarkers, OdUInt32 nMarkers, bool bDoIt = true,
564 const OdGsMatrixParam *xForm = NULL, const OdGsView* pView = NULL);
575 virtual void externalTransformImpl(const OdGiPathNode& path, const OdGsMarker* pMarkers, OdUInt32 nMarkers, bool bDoIt = true,
576 const OdGsMatrixParam *xForm = NULL, const OdGsView* pView = NULL);
577
585 virtual bool getExternalTransform(const OdGiPathNode &path, const OdGsMatrixParam *&xForm, const OdGsView *pView = NULL) const;
586
587 // Material cache support
588
593
602
608 RenderType renderType() const;
609
617 void setBackground(OdDbStub *backgroundId);
618
624 OdDbStub *background() const;
625
633 void setVisualStyle(OdDbStub *visualStyleId);
634
640 OdDbStub *visualStyle() const;
641
650
658 const OdGiDrawable *visualStyleDrawable() const;
659
660 virtual bool makeStock(OdDbStub* layoutId);
661 virtual void releaseStock(OdDbStub* layoutId);
662
670 bool hasChangedLayers() const { return m_pFirstChangedLayer != NULL; }
671
677
683
692 void setEnableSectioning(bool bEnable);
693
704
717 bool setSectioning(const OdGePoint3dArray &points, const OdGeVector3d &upVector);
718
734 bool setSectioning(const OdGePoint3dArray &points, const OdGeVector3d &upVector,
735 double dTop, double dBottom);
736
750 void setSectioningVisualStyle(OdDbStub *visualStyleId);
751
765
774 void setViewClippingOverride(bool bEnable);
775
783 bool viewClippingOverride() const;
784
790 void setEnableLinetypes(bool bEnable);
791
797 bool isLinetypesEnabled() const;
798
804 void setSelectable(bool bEnable);
805
811 bool isSelectable() const;
812
818
825
834 void setEnableLightsInBlocks(bool bEnable);
835
846
857 void setViewSectioningOverride(bool bEnable);
858
868 bool viewSectioningOverride() const;
869
870 virtual bool saveModelState(OdGsFiler *pFiler, OdGsBaseVectorizer *pVectorizer = NULL) const;
871 virtual bool loadModelState(OdGsFiler *pFiler, OdGsBaseVectorizer *pVectorizer = NULL);
872 virtual bool saveClientModelState(OdGsFiler *pFiler) const;
873 virtual bool loadClientModelState(OdGsFiler *pFiler);
875protected:
876 void onModifiedNode(OdGsNode* pCache, OdGiDrawable* pDrawable, OdGiDrawable* pParent);
877 void onModifiedDrawable(OdGiDrawable* pDrawable, OdGiDrawable* pParent);
878 void onModifiedNodeImp(OdGsNode* pCache, OdGiDrawable* pDrawable, OdGiDrawable* pParent, bool bGraphicsOnly);
881public:
882 virtual OdGsNode* newNode(ENodeType ntp, const OdGiDrawable* drawable, bool bSetGsNode);
883};
884
889
891{
893}
894//FELIX_CHANGE_BEGIN
896//FELIX_CHANGE_END
901
902inline OdGiDrawablePtr OdGsBaseModel::open(OdDbStub* objectId)
903{
904 //FELIX_CHANGE_BEGIN
905 /*
906 if(m_openDrawableFn)
907 return m_openDrawableFn(objectId);
908 //ODA_ASSERT_ONCE(objectId==0);
909 return OdGiDrawablePtr();
910 */
911 return( fxOpenDrawable( this, objectId ) );
912 //FELIX_CHANGE_END
913}
914
916{
917 return m_viewProps.size();
918}
919
920inline const ViewProps& OdGsBaseModel::viewProps(OdUInt32 viewportId) const
921{
922 ODA_ASSERT(m_viewProps.size() > viewportId);
923 return m_viewProps[viewportId];
924}
925
927{
928 return viewProps(viewportId).m_nViewChanges;
929}
930
932{
933 if (m_views.empty())
934 return NULL;
935 return m_views.first().first;
936}
937
942
944{
946}
947
949{
950 return m_pTransVisualStyle.get();
951}
952
953#include "TD_PackPop.h"
954
955#endif // __ODGSMODELIMPL_H__
OdArray< OdGePoint3d, OdMemoryAllocator< OdGePoint3d > > OdGePoint3dArray
OdRxObject OdDbBaseDatabase
#define ODA_ASSERT(exp)
Definition DebugStuff.h:57
false
Definition DimVarDefs.h:165
OdSmartPtr< OdGiDrawable > OdGiDrawablePtr
GS_TOOLKIT_EXPORT OdGiDrawablePtr fxOpenDrawable(OdGsBaseModel *, OdDbStub *)
ENodeType
Definition GsBaseModel.h:69
@ kBlockReferenceNode
Definition GsBaseModel.h:80
@ kContainerNode
Definition GsBaseModel.h:74
@ kLayerNode
Definition GsBaseModel.h:75
@ kMInsertBlockNode
Definition GsBaseModel.h:81
@ kEntityNode
Definition GsBaseModel.h:76
@ kLightNode
Definition GsBaseModel.h:79
@ kBlockNode
Definition GsBaseModel.h:73
@ kFxNode
Definition GsBaseModel.h:71
@ kMaterialNode
Definition GsBaseModel.h:77
@ kLastNodeType
Definition GsBaseModel.h:78
#define GS_TOOLKIT_EXPORT
Definition GsExport.h:37
OdSmartPtr< OdGsMaterialCache > OdGsMaterialCachePtr
OdGiDrawablePtr(* OdGiOpenDrawableFn)(OdDbStub *id)
Definition GsModel.h:67
OdSmartPtr< OdGsBaseModelLocalIds > OdGsBaseModelLocalIdsPtr
OdArray< ViewProps > ViewPropsArray
int OdRefCounter
Definition OdMutex.h:478
ptrdiff_t OdGsMarker
unsigned int OdUInt32
#define ODRX_OVERRIDE
#define SETBIT(flags, bit, value)
Definition OdaDefs.h:516
#define SETBIT_0(flags, bit)
Definition OdaDefs.h:519
#define GETBIT(flags, bit)
Definition OdaDefs.h:517
#define SETBIT_1(flags, bit)
Definition OdaDefs.h:520
OdGsNode * m_aNodes[kLastNodeType]
void removeModelReactor(OdGsModelReactor *pReactor)
OdGsCacheRedirectionManager * m_pRedirectionMgr
OdUInt32 m_gsModelFlags
SelectionStyleRefMap m_selStyleRefs
bool supportSelectionStyles() const
virtual OdGsLayerNode * gsLayerNode(OdDbStub *layerId, const OdGsBaseVectorizer *pView)
virtual bool disableNotifications() const
void setRenderType(RenderType renderType)
friend class OdGsViewImpl
bool isLightsInBlocksEnabled() const
void invalidateSectionableBlocks()
OdDbStub * visualStyle() const
void onModifiedDrawable(OdGiDrawable *pDrawable, OdGiDrawable *pParent)
bool invalidVp(unsigned int viewportId) const
bool visualStyle(OdGiVisualStyle &visualStyle) const
SectioningSettings m_sectioning
const OdGiDrawable * visualStyleDrawable() const
OdGiDrawablePtr m_pTransVisualStyle
bool isSectioningEnabled() const
void setVectorizing()
OdRefCounter m_nMfCached
void setOpenDrawableFn(OdGiOpenDrawableFn openDrawableFn)
void invalidateRegenDrawBlocks(OdGsViewImpl &view, const OdDbStub *layoutId)
OdDbStub * m_modelBackground
OdRefCounter m_nMfReused
friend class OdGsNode
virtual void externalTransform(const OdGiPathNode &path, const OdGsMarker *pMarkers, OdUInt32 nMarkers, bool bDoIt=true, const OdGsMatrixParam *xForm=NULL, const OdGsView *pView=NULL)
OdGiOpenDrawableFn m_openDrawableFn
virtual bool makeStock(OdDbStub *layoutId)
void invalidate(OdGsViewImpl &view, OdUInt32 mask)
void highlight(const OdGiPathNode &path, const OdGsMarker *pMarkers, OdUInt32 nMarkers, bool bDoIt=true, OdUInt32 nStyle=0, const OdGsView *pView=NULL)
void setEnableLinetypes(bool bEnable)
void setSelectable(bool bEnable)
virtual void hideImpl(const OdGiPathNode &path, const OdGsMarker *pMarkers, OdUInt32 nMarkers, bool bDoIt=true, bool bSelectHidden=false, const OdGsView *pView=NULL)
void onModified(OdGiDrawable *pModified, OdDbStub *parentID)
virtual void addNode(OdGsNode *pNode)
virtual void externalTransform(const OdGiPathNode &path, bool bDoIt=true, const OdGsMatrixParam *xForm=NULL, const OdGsView *pView=NULL)
virtual OdGsNode * newNode(ENodeType ntp, const OdGiDrawable *drawable, bool bSetGsNode)
SelectionStyleParamMap m_selStyleParam
OdVector< OdGsModelReactor *, OdMemoryAllocator< OdGsModelReactor * > > m_modelReactors
bool viewSectioningOverride() const
virtual void releaseStock(OdDbStub *layoutId)
virtual bool getExternalTransform(const OdGiPathNode &path, const OdGsMatrixParam *&xForm, const OdGsView *pView=NULL) const
OdDbStub * m_modelVisualStyle
void resetVectorizing()
void onModified(OdGiDrawable *pModified, OdGiDrawable *pParent)
void onPropertyModifiedImpl(OdGsBaseModelReactor::ModelProperty nProp, bool &bReturnValue)
OdGsMaterialCache * materialCache()
void setViewSectioningOverride(bool bEnable)
OdGsView::RenderMode renderModeOverride() const
OdArray< ViewProps > m_viewProps
virtual bool saveClientModelState(OdGsFiler *pFiler) const
void setSelectionStyleRef(const OdGsNode *pNode, OdUInt32 nStyle)
void setVisualStyle(const OdGiVisualStyle &visualStyle)
virtual bool isViewPropsValid(OdUInt32 viewportId) const
void onUnerased(OdGiDrawable *pUnerased, OdGiDrawable *pParent)
OdGsMaterialCachePtr m_pMaterialCache
virtual OdGsNode * gsNode(OdGiDrawable *pDrawable)
OdArray< ModuleRef, OdMemoryAllocator< ModuleRef > > m_modules
void extendSelStyleFlag(OdGsViewImpl *pView)
virtual void detach(OdGsNode *pNode)
friend class OdGsBaseVectorizer
void setEnableSectioning(bool bEnable)
virtual void invalidateEntRect(OdGsEntityNode *pNode, OdGsContainerNode *pParent, bool bForceIfNoExtents)
void hide(const OdGiPathNode &path, bool bDoIt=true, bool bSelectHidden=false, const OdGsView *pView=NULL)
void setRenderModeOverride(OdGsView::RenderMode mode=OdGsView::kNone)
OdArray< ViewRef, OdMemoryAllocator< ViewRef > > m_views
bool checkFaded() const
void invalidate(InvalidationHint hint)
friend GS_TOOLKIT_EXPORT OdGiDrawablePtr fxOpenDrawable(OdGsBaseModel *, OdDbStub *)
void onUnerased(OdGiDrawable *pUnerased, OdDbStub *parentID)
std::map< const OdGsNode *, OdUInt32 > SelectionStyleRefMap
OdGsBaseModelImpl * impl()
virtual OdUInt32 getMaxLocalViewportId() const
friend class CFxGsExtension
Definition GsBaseModel.h:98
virtual void clearChangedLayersList()
RenderType m_renderType
bool isLinetypesEnabled() const
OdGsBaseModelImpl * m_impl
friend class OdGsBaseVectorizeDevice
const SectioningSettings & getSectioning() const
const ViewPropsArray & getViewProps() const
void onModifiedNode(OdGsNode *pCache, OdGiDrawable *pDrawable, OdGiDrawable *pParent)
virtual void invalidateEntRect(OdGiDrawable *pDrawable, OdGiDrawable *pParent, bool bForceIfNoExtents=false)
OdGsLayerNode * m_pFirstChangedLayer
OdGsViewImpl * refView() const
void removeViewRef(OdGsViewImpl *pView)
bool postprocessModelLoading(OdGsFiler *pFiler)
OdVector< OdGsBaseModelReactor *, OdMemoryAllocator< OdGsBaseModelReactor * > > m_baseModelReactors
OdDbStub * background() const
void highlight(const OdGiPathNode &path, bool bDoIt=true, OdUInt32 nStyle=0, const OdGsView *pView=NULL)
virtual bool saveModelState(OdGsFiler *pFiler, OdGsBaseVectorizer *pVectorizer=NULL) const
void addViewRef(OdGsViewImpl *pView)
std::map< OdUInt32, OdGsIntParamPtr > SelectionStyleParamMap
OdGiOpenDrawableFn openDrawableFn() const
std::pair< OdGsViewImpl *, OdUInt32 > ViewRef
OdGeMatrix3d m_xForm
bool viewClippingOverride() const
virtual void highlightImpl(const OdGiPathNode &path, const OdGsMarker *pMarkers, OdUInt32 nMarkers, bool bDoIt=true, OdUInt32 nStyle=0, const OdGsView *pView=NULL)
RenderType renderType() const
OdGsBaseVectorizeDevice * refDevice() const
virtual void updateViewProps(const OdGsViewImpl &viewport)
void setVisualStyle(OdDbStub *visualStyleId)
virtual OdUInt32 getLocalViewportId(OdGsViewImpl *pView)
void setTransform(const OdGeMatrix3d &xForm)
bool setSectioning(const OdGePoint3dArray &points, const OdGeVector3d &upVector, double dTop, double dBottom)
void setEnableLightsInBlocks(bool bEnable)
void hide(const OdGiPathNode &path, const OdGsMarker *pMarkers, OdUInt32 nMarkers, bool bDoIt=true, bool bSelectHidden=false, const OdGsView *pView=NULL)
void setSectioningVisualStyle(OdDbStub *visualStyleId)
virtual void onErasedImpl(OdGiDrawable *pErased, OdGiDrawable *pParent)
bool isIdentityTransform() const
void setDisableNotifications(bool bOn)
void addModelReactor(OdGsModelReactor *pReactor)
void setBackground(OdDbStub *backgroundId)
virtual bool loadModelState(OdGsFiler *pFiler, OdGsBaseVectorizer *pVectorizer=NULL)
OdUInt32 viewChanges(OdUInt32 viewportId) const
OdGsBaseModelLocalIdsPtr m_pViewIds
void setDrawableGsNode(OdGiDrawable *pDrawable, OdGsCache *pNode)
const ViewProps & viewProps(OdUInt32 viewportId) const
OdGeMatrix3d transform() const
void detachAllFromDb(const OdDbBaseDatabase *pDb)
OdGsView::RenderMode m_renderModeOverride
OdUInt32 numViewProps() const
void setInvalidVp(unsigned int viewportId, bool val)
void setViewClippingOverride(bool bEnable)
virtual void onAddedImpl(OdGiDrawable *pAdded, OdGiDrawable *pParent, AdditionMode additionMode=kAddDrawable)
void onAdded(OdGiDrawable *pAdded, OdGiDrawable *pParent)
OdGeExtents3d & transformExtents(OdGeExtents3d &pExts) const
virtual bool onPropertyModified(OdGsBaseModelReactor::ModelProperty nProp)
std::pair< const OdGsBaseModule *, OdUInt32 > ModuleRef
bool isViewExtentsCalculationEnabled() const
void setCheckFaded(bool bOn)
void onErased(OdGiDrawable *pErased, OdGiDrawable *pParent)
virtual void onModifiedImpl(OdGiDrawable *pModified, OdGiDrawable *pParent)
OdRxObjectPtr m_pGsReserved
void rescanSelStyleFlag()
OdUInt32 m_nLayers
void onModifiedNodeImp(OdGsNode *pCache, OdGiDrawable *pDrawable, OdGiDrawable *pParent, bool bGraphicsOnly)
bool hasChangedLayers() const
OdGiDrawablePtr open(OdDbStub *objectId)
OdUInt32 refModulesCount() const
OdUInt32 selectionStyleRef(const OdGsNode *pNode) const
void onAdded(OdGiDrawable *pAdded, OdDbStub *parentID)
virtual void detachAll()
void invalidateVisible(OdGsDevice *pDevice)
virtual void propagateLayerChanges(OdGsBaseVectorizeDevice &device)
const OdGsViewImpl * viewById(OdUInt32 viewportId) const
virtual bool loadClientModelState(OdGsFiler *pFiler)
virtual void externalTransformImpl(const OdGiPathNode &path, const OdGsMarker *pMarkers, OdUInt32 nMarkers, bool bDoIt=true, const OdGsMatrixParam *xForm=NULL, const OdGsView *pView=NULL)
void invalidate(OdGsView *pView)
virtual void onModifiedGraphics(const OdGiDrawable *pModified, OdDbStub *parentID) ODRX_OVERRIDE
virtual void attachLocalViewportId(OdGsViewImpl *pView, OdGsViewImpl *pFrom=NULL)
bool setSectioning(const OdGePoint3dArray &points, const OdGeVector3d &upVector)
void setEnableViewExtentsCalculation(bool bEnable)
void onErased(OdGiDrawable *pErased, OdDbStub *parentID)
bool isSelectable() const
OdGsCache * drawableGsNode(const OdGiDrawable *pDrawable)
virtual bool viewSectioningOverride() const =0
virtual RenderType renderType() const =0
virtual OdGsView::RenderMode renderModeOverride() const =0
virtual bool viewClippingOverride() const =0
InvalidationHint
Definition GsModel.h:170
Definition Gs.h:141
RenderMode
Definition Gs.h:149
@ kNone
Definition Gs.h:158
GLenum GLint GLuint mask
Definition gles2_ext.h:262
OdUInt32 m_nViewChanges