CFx SDK Documentation 2024 SP0
Loading...
Searching...
No Matches
GsBaseModel.h
Go to the documentation of this file.
1
2// Copyright (C) 2002-2022, Open Design Alliance (the "Alliance").
3// All rights reserved.
4//
5// This software and its documentation and related materials are owned by
6// the Alliance. The software may only be incorporated into application
7// programs owned by members of the Alliance, subject to a signed
8// Membership Agreement and Supplemental Software License Agreement with the
9// Alliance. The structure and organization of this software are the valuable
10// trade secrets of the Alliance and its suppliers. The software is also
11// protected by copyright law and international treaty provisions. Application
12// programs incorporating this software must include the following statement
13// with their copyright notices:
14//
15// This application incorporates Open Design Alliance software pursuant to a license
16// agreement with Open Design Alliance.
17// Open Design Alliance Copyright (C) 2002-2022 by Open Design Alliance.
18// All rights reserved.
19//
20// By use of this software, its documentation or related materials, you
21// acknowledge and accept the above terms.
23
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),
145 kEnableLinetypes = (1 << 1),
146 kModelSelectable = (1 << 2),
147 kLightsInBlocks = (1 << 3),
148 kSkipViewClip = (1 << 4),
149 kViewExtCalcs = (1 << 5),
150 kSkipViewSection = (1 << 6),
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
157 , kDisableNotifications = (1 << 10)
158 , kDisableInvalidate = (1 << 11)
159 };
161public:
162 bool checkFaded() const { return GETBIT(m_gsModelFlags, kCheckFaded); }
163 void setCheckFaded(bool bOn) { SETBIT(m_gsModelFlags, kCheckFaded, bOn); }
164 void setVectorizing() { SETBIT_1(m_gsModelFlags, kVectorizing); }
165 void resetVectorizing() { SETBIT_0(m_gsModelFlags, kVectorizing); }
166 virtual bool disableNotifications() const { return GETBIT(m_gsModelFlags, kDisableNotifications); }
167 void setDisableNotifications(bool bOn) { SETBIT(m_gsModelFlags, kDisableNotifications, 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
197 OdGsBaseModelImpl* impl() { return m_impl; }
198 void invalidateRegenDrawBlocks(OdGsViewImpl& view, const OdDbStub* layoutId);
200
202 {
209 double m_dTop;
210 double m_dBottom;
211 OdDbStub *m_visualStyle;
213 : m_bEnabled(false), m_bTopSet(false), m_bBottomSet(false), m_bVisualStyle(false)
214 , m_dTop(0.0), m_dBottom(0.0), m_visualStyle(NULL) { }
215 bool isEnabled() const { return m_bEnabled && !m_points.isEmpty(); }
216 };
217
218protected:
219#ifdef BS_CHANGES_ENABLED // @@@TODO: Feature is obsolete and marked to be removed.
220 bool disableAddNode() const { return GETBIT(m_gsModelFlags, kDisableAddNode); }
221#endif // BS_CHANGES_ENABLED
222
225
229 void setInvalidVp(unsigned int viewportId, bool val)
230 {
231 if(m_viewProps.size()>viewportId)
232 m_viewProps[viewportId].setInvalid(val);
233 }
235
236 bool supportSelectionStyles() const { return GETBIT(m_gsModelFlags, kKeepSelStyles); }
237 void setSelectionStyleRef(const OdGsNode* pNode, OdUInt32 nStyle);
241
242protected:
243
247
253
255 // Reserved pointer for internal use (binary incompatible changes), do not delete.
257
258 // Material cache support
260
261 OdGsBaseModelImpl* m_impl;
262
264
267
270
271 typedef std::map<const OdGsNode*, OdUInt32> SelectionStyleRefMap;
273
274protected:
275
278
279public:
287 virtual OdGsNode* gsNode(OdGiDrawable* pDrawable);
288
293 virtual void detach(OdGsNode* pNode);
294
298 virtual void detachAll();
299
301
309 OdGiDrawablePtr open(OdDbStub* objectId);
310
316 void setDrawableGsNode(OdGiDrawable *pDrawable, OdGsCache *pNode);
322
325
327 {
328 kAddDrawable = 0, // New drawable added
329 kUneraseDrawable // Exist drawable unerased
330 };
331
332 void onAdded(OdGiDrawable* pAdded, OdGiDrawable* pParent);
333 void onAdded(OdGiDrawable* pAdded, OdDbStub* parentID);
334 virtual void onAddedImpl(OdGiDrawable* pAdded, OdGiDrawable* pParent, AdditionMode additionMode = kAddDrawable);
335
336 void onModified(OdGiDrawable* pModified, OdGiDrawable* pParent);
337 void onModified(OdGiDrawable* pModified, OdDbStub* parentID);
338 virtual void onModifiedImpl(OdGiDrawable* pModified, OdGiDrawable* pParent);
339
340 virtual void onModifiedGraphics(const OdGiDrawable* pModified, OdDbStub* parentID) ODRX_OVERRIDE;
341
342 void onErased(OdGiDrawable* pErased, OdGiDrawable* pParent);
343 void onErased(OdGiDrawable* pErased, OdDbStub* parentID);
344 virtual void onErasedImpl(OdGiDrawable* pErased, OdGiDrawable* pParent);
345
346 void onUnerased(OdGiDrawable* pUnerased, OdGiDrawable* pParent);
347 void onUnerased(OdGiDrawable* pUnerased, OdDbStub* parentID);
348
350 void invalidate(OdGsView* pView);
356
362 OdUInt32 viewChanges(OdUInt32 viewportId) const;
363
367 OdUInt32 numViewProps() const;
368
374 const ViewProps& viewProps(OdUInt32 viewportId) const;
375
380 virtual void updateViewProps(const OdGsViewImpl& viewport);
381
386 virtual bool isViewPropsValid(OdUInt32 viewportId) const;
387
393 const OdGsViewImpl *viewById(OdUInt32 viewportId) const;
394
400 virtual OdGsLayerNode* gsLayerNode(OdDbStub* layerId, const OdGsBaseVectorizer* pView);
401
407
412 void setTransform(const OdGeMatrix3d& xForm);
413
418
424 bool isIdentityTransform() const;
425
431
438
446
456 void highlight(const OdGiPathNode& path, bool bDoIt = true, OdUInt32 nStyle = 0, const OdGsView* pView = NULL);
457
469 void highlight(const OdGiPathNode& path, const OdGsMarker* pMarkers, OdUInt32 nMarkers, bool bDoIt = true,
470 OdUInt32 nStyle = 0, const OdGsView* pView = NULL);
471 //DOM-IGNORE-BEGIN
472 virtual void highlightImpl(const OdGiPathNode& path, const OdGsMarker* pMarkers, OdUInt32 nMarkers, bool bDoIt = true,
473 OdUInt32 nStyle = 0, const OdGsView* pView = NULL);
474 //DOM-IGNORE-END
483 void hide(const OdGiPathNode& path, bool bDoIt = true, bool bSelectHidden = false, const OdGsView* pView = NULL);
494 void hide(const OdGiPathNode& path, const OdGsMarker* pMarkers, OdUInt32 nMarkers, bool bDoIt = true,
495 bool bSelectHidden = false, const OdGsView* pView = NULL);
506 virtual void hideImpl(const OdGiPathNode& path, const OdGsMarker* pMarkers, OdUInt32 nMarkers, bool bDoIt = true,
507 bool bSelectHidden = false, const OdGsView* pView = NULL);
508
509 // Material cache support
510
514 OdGsMaterialCache* materialCache() { return m_pMaterialCache.get(); }
515
523 void setRenderType(RenderType renderType);
524
530 RenderType renderType() const;
531
539 void setBackground(OdDbStub *backgroundId);
540
546 OdDbStub *background() const;
547
555 void setVisualStyle(OdDbStub *visualStyleId);
556
562 OdDbStub *visualStyle() const;
563
571 void setVisualStyle(const OdGiVisualStyle &visualStyle);
572
579 bool visualStyle(OdGiVisualStyle &visualStyle) const;
580 const OdGiDrawable *visualStyleDrawable() const;
581
582 virtual bool makeStock(OdDbStub* layoutId);
583 virtual void releaseStock(OdDbStub* layoutId);
584
592 bool hasChangedLayers() const { return m_pFirstChangedLayer != NULL; }
593
599
605
614 void setEnableSectioning(bool bEnable);
615
626
639 bool setSectioning(const OdGePoint3dArray &points, const OdGeVector3d &upVector);
640
656 bool setSectioning(const OdGePoint3dArray &points, const OdGeVector3d &upVector,
657 double dTop, double dBottom);
658
672 void setSectioningVisualStyle(OdDbStub *visualStyleId);
673
687 const SectioningSettings &getSectioning() const { return m_sectioning; }
688
697 void setViewClippingOverride(bool bEnable);
698
706 bool viewClippingOverride() const;
707
713 void setEnableLinetypes(bool bEnable);
714
720 bool isLinetypesEnabled() const;
721
727 void setSelectable(bool bEnable);
728
734 bool isSelectable() const;
735
741
748
757 void setEnableLightsInBlocks(bool bEnable);
758
769
780 void setViewSectioningOverride(bool bEnable);
781
791 bool viewSectioningOverride() const;
792
793 virtual bool saveModelState(OdGsFiler *pFiler, OdGsBaseVectorizer *pVectorizer = NULL) const;
794 virtual bool loadModelState(OdGsFiler *pFiler, OdGsBaseVectorizer *pVectorizer = NULL);
795 virtual bool saveClientModelState(OdGsFiler *pFiler) const;
796 virtual bool loadClientModelState(OdGsFiler *pFiler);
798protected:
799 void onModifiedNode(OdGsNode* pCache, OdGiDrawable* pDrawable, OdGiDrawable* pParent);
800 void onModifiedDrawable(OdGiDrawable* pDrawable, OdGiDrawable* pParent);
801 void onModifiedNodeImp(OdGsNode* pCache, OdGiDrawable* pDrawable, OdGiDrawable* pParent, bool bGraphicsOnly);
804public:
805 virtual OdGsNode* newNode(ENodeType ntp, const OdGiDrawable* drawable, bool bSetGsNode);
806};
807
809{
811}
812
814{
816}
817//FELIX_CHANGE_BEGIN
819//FELIX_CHANGE_END
821{
823}
824
825inline OdGiDrawablePtr OdGsBaseModel::open(OdDbStub* objectId)
826{
827 //FELIX_CHANGE_BEGIN
828 /*
829 if(m_openDrawableFn)
830 return m_openDrawableFn(objectId);
831 //ODA_ASSERT_ONCE(objectId==0);
832 return OdGiDrawablePtr();
833 */
834 return( fxOpenDrawable( this, objectId ) );
835 //FELIX_CHANGE_END
836}
837
839{
840 return m_viewProps.size();
841}
842
843inline const ViewProps& OdGsBaseModel::viewProps(OdUInt32 viewportId) const
844{
845 ODA_ASSERT(m_viewProps.size() > viewportId);
846 return m_viewProps[viewportId];
847}
848
850{
851 return viewProps(viewportId).m_nViewChanges;
852}
853
855{
856 if (m_views.empty())
857 return NULL;
858 return m_views.first().first;
859}
860
862{
863 return m_renderType;
864}
865
867{
869}
870
872{
873 return m_pTransVisualStyle.get();
874}
875
876#include "TD_PackPop.h"
877
878#endif // __ODGSMODELIMPL_H__
#define ODA_ASSERT(exp)
Definition: DebugStuff.h:57
false
Definition: DimVarDefs.h:165
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
OdGiDrawablePtr(* OdGiOpenDrawableFn)(OdDbStub *id)
Definition: GsModel.h:65
int OdRefCounter
Definition: OdMutex.h:487
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
bool empty() const
Definition: OdArray.h:1257
T & first()
Definition: OdArray.h:1696
bool isEmpty() const
Definition: OdArray.h:1547
size_type size() const
Definition: OdArray.h:1247
void removeModelReactor(OdGsModelReactor *pReactor)
OdGsCacheRedirectionManager * m_pRedirectionMgr
Definition: GsBaseModel.h:266
OdUInt32 m_gsModelFlags
Definition: GsBaseModel.h:160
SelectionStyleRefMap m_selStyleRefs
Definition: GsBaseModel.h:272
bool supportSelectionStyles() const
Definition: GsBaseModel.h:236
virtual OdGsLayerNode * gsLayerNode(OdDbStub *layerId, const OdGsBaseVectorizer *pView)
virtual bool disableNotifications() const
Definition: GsBaseModel.h:166
void setRenderType(RenderType renderType)
bool isLightsInBlocksEnabled() const
void invalidateSectionableBlocks()
OdDbStub * visualStyle() const
void onModifiedDrawable(OdGiDrawable *pDrawable, OdGiDrawable *pParent)
bool invalidVp(unsigned int viewportId) const
Definition: GsBaseModel.h:190
bool visualStyle(OdGiVisualStyle &visualStyle) const
SectioningSettings m_sectioning
Definition: GsBaseModel.h:263
const OdGiDrawable * visualStyleDrawable() const
Definition: GsBaseModel.h:871
OdGiDrawablePtr m_pTransVisualStyle
Definition: GsBaseModel.h:252
bool isSectioningEnabled() const
void setVectorizing()
Definition: GsBaseModel.h:164
OdRefCounter m_nMfCached
Definition: GsBaseModel.h:138
void setOpenDrawableFn(OdGiOpenDrawableFn openDrawableFn)
void invalidateRegenDrawBlocks(OdGsViewImpl &view, const OdDbStub *layoutId)
OdDbStub * m_modelBackground
Definition: GsBaseModel.h:250
OdRefCounter m_nMfReused
Definition: GsBaseModel.h:139
OdGiOpenDrawableFn m_openDrawableFn
Definition: GsBaseModel.h:102
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 OdGsNode * newNode(ENodeType ntp, const OdGiDrawable *drawable, bool bSetGsNode)
OdVector< OdGsModelReactor *, OdMemoryAllocator< OdGsModelReactor * > > m_modelReactors
Definition: GsBaseModel.h:268
bool viewSectioningOverride() const
Definition: GsBaseModel.h:820
virtual void releaseStock(OdDbStub *layoutId)
OdDbStub * m_modelVisualStyle
Definition: GsBaseModel.h:251
void resetVectorizing()
Definition: GsBaseModel.h:165
void onModified(OdGiDrawable *pModified, OdGiDrawable *pParent)
void onPropertyModifiedImpl(OdGsBaseModelReactor::ModelProperty nProp, bool &bReturnValue)
OdGsMaterialCache * materialCache()
Definition: GsBaseModel.h:514
void setViewSectioningOverride(bool bEnable)
OdGsView::RenderMode renderModeOverride() const
Definition: GsBaseModel.h:808
OdArray< ViewProps > m_viewProps
Definition: GsBaseModel.h:244
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
Definition: GsBaseModel.h:259
virtual OdGsNode * gsNode(OdGiDrawable *pDrawable)
OdArray< ModuleRef, OdMemoryAllocator< ModuleRef > > m_modules
Definition: GsBaseModel.h:178
void extendSelStyleFlag(OdGsViewImpl *pView)
virtual void detach(OdGsNode *pNode)
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
Definition: GsBaseModel.h:176
bool checkFaded() const
Definition: GsBaseModel.h:162
void invalidate(InvalidationHint hint)
friend GS_TOOLKIT_EXPORT OdGiDrawablePtr fxOpenDrawable(OdGsBaseModel *, OdDbStub *)
void onUnerased(OdGiDrawable *pUnerased, OdDbStub *parentID)
std::map< const OdGsNode *, OdUInt32 > SelectionStyleRefMap
Definition: GsBaseModel.h:271
OdGsBaseModelImpl * impl()
Definition: GsBaseModel.h:197
virtual OdUInt32 getMaxLocalViewportId() const
virtual void clearChangedLayersList()
RenderType m_renderType
Definition: GsBaseModel.h:254
bool isLinetypesEnabled() const
OdGsBaseModelImpl * m_impl
Definition: GsBaseModel.h:261
bool trySetDisableInvalidate(bool bOn)
const SectioningSettings & getSectioning() const
Definition: GsBaseModel.h:687
const ViewPropsArray & getViewProps() const
Definition: GsBaseModel.h:179
void onModifiedNode(OdGsNode *pCache, OdGiDrawable *pDrawable, OdGiDrawable *pParent)
virtual void invalidateEntRect(OdGiDrawable *pDrawable, OdGiDrawable *pParent, bool bForceIfNoExtents=false)
OdGsLayerNode * m_pFirstChangedLayer
Definition: GsBaseModel.h:246
OdGsViewImpl * refView() const
Definition: GsBaseModel.h:854
void removeViewRef(OdGsViewImpl *pView)
bool postprocessModelLoading(OdGsFiler *pFiler)
OdVector< OdGsBaseModelReactor *, OdMemoryAllocator< OdGsBaseModelReactor * > > m_baseModelReactors
Definition: GsBaseModel.h:269
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)
OdGiOpenDrawableFn openDrawableFn() const
std::pair< OdGsViewImpl *, OdUInt32 > ViewRef
Definition: GsBaseModel.h:175
OdGeMatrix3d m_xForm
Definition: GsBaseModel.h:249
bool viewClippingOverride() const
Definition: GsBaseModel.h:813
virtual void highlightImpl(const OdGiPathNode &path, const OdGsMarker *pMarkers, OdUInt32 nMarkers, bool bDoIt=true, OdUInt32 nStyle=0, const OdGsView *pView=NULL)
RenderType renderType() const
Definition: GsBaseModel.h:861
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
Definition: GsBaseModel.h:866
void setDisableNotifications(bool bOn)
Definition: GsBaseModel.h:167
void addModelReactor(OdGsModelReactor *pReactor)
void setBackground(OdDbStub *backgroundId)
virtual bool loadModelState(OdGsFiler *pFiler, OdGsBaseVectorizer *pVectorizer=NULL)
OdUInt32 viewChanges(OdUInt32 viewportId) const
Definition: GsBaseModel.h:849
OdGsBaseModelLocalIdsPtr m_pViewIds
Definition: GsBaseModel.h:265
void setDrawableGsNode(OdGiDrawable *pDrawable, OdGsCache *pNode)
const ViewProps & viewProps(OdUInt32 viewportId) const
Definition: GsBaseModel.h:843
OdGeMatrix3d transform() const
void detachAllFromDb(const OdDbBaseDatabase *pDb)
OdGsView::RenderMode m_renderModeOverride
Definition: GsBaseModel.h:248
OdUInt32 numViewProps() const
Definition: GsBaseModel.h:838
void setInvalidVp(unsigned int viewportId, bool val)
Definition: GsBaseModel.h:229
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
Definition: GsBaseModel.h:177
bool isViewExtentsCalculationEnabled() const
void setCheckFaded(bool bOn)
Definition: GsBaseModel.h:163
void onErased(OdGiDrawable *pErased, OdGiDrawable *pParent)
virtual void onModifiedImpl(OdGiDrawable *pModified, OdGiDrawable *pParent)
OdRxObjectPtr m_pGsReserved
Definition: GsBaseModel.h:256
void rescanSelStyleFlag()
OdUInt32 m_nLayers
Definition: GsBaseModel.h:245
void onModifiedNodeImp(OdGsNode *pCache, OdGiDrawable *pDrawable, OdGiDrawable *pParent, bool bGraphicsOnly)
bool hasChangedLayers() const
Definition: GsBaseModel.h:592
OdGiDrawablePtr open(OdDbStub *objectId)
Definition: GsBaseModel.h:825
OdUInt32 refModulesCount() const
Definition: GsBaseModel.h:182
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)
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:168
Definition: Gs.h:140
RenderMode
Definition: Gs.h:148
@ kNone
Definition: Gs.h:157
const T * get() const
Definition: SmartPtr.h:339
GLenum GLint GLuint mask
Definition: gles2_ext.h:262
OdUInt32 m_nViewChanges
Definition: GsViewProps.h:128