CFx SDK Documentation
2020SP3
|
Go to the documentation of this file.
24 #ifndef __OD_GS_BLOCK_NODE__
25 #define __OD_GS_BLOCK_NODE__
38 class OdGsSharedRefDefinition;
39 class OdGsReferenceImpl;
51 m_layoutBlockId(layoutBlockId),
53 , m_lineTypeId(tr.lineType())
54 , m_cmColor(tr.trueColor().color())
55 , m_lineWeight(tr.lineWeight())
56 , m_lineTypeScale(tr.lineTypeScale())
58 , m_plotStyleNameId(bUsePlotStyles ? tr.plotStyleNameId() :
NULL)
59 , m_materialId(tr.material()), m_cmTransparency(tr.transparency().serializeOut())
112 return bEqual ? m_annoScales <
v.m_annoScales :
false;
129 kLastFlag = kUnloaded
142 bool bSetGsNode):
OdGsNode(pModel, pUnderlyingDrawable), m_bModelTfDependent(0)
153 SETBIT(m_flags, kSyncDrawable,
false);
158 void setUnloaded(
bool isUnloaded);
159 bool isUnloaded()
const;
160 void setModelTfDependent(
bool bOn);
172 m_inserts.insert(pEntity);
176 m_inserts.insert(pEntity);
183 m_inserts.erase(pEntity);
184 if(!isUnloaded() || !m_inserts.empty())
188 SETBIT(m_flags, kSyncDrawable,
false);
238 m_sharedImp.destroy();
247 OdGsSharedRefDefinition* pRes = m_sharedImp.findAt(d);
248 return pRes ? pRes : createDef(d);
250 OdGsSharedRefDefinition* pRes = m_sharedImp.findAt(d);
251 return pRes ? pRes : createDef(d);
265 m_sharedImp.removeDef(pDef);
269 m_sharedImp.removeDef(pDef);
277 return m_sharedImp.findDef(pDef, d);
279 return m_sharedImp.findDef(pDef, d);
298 _map::iterator it = m_map.find(d);
299 return (it == m_map.end() ?
NULL : it->second);
302 OdGsReferenceImpl* pImp);
309 #ifndef ODGS_LOCAL_IDS
318 std::less<OdGsBlockRefNodeDesc> >
_map;
323 typedef std::set<OdGsBlockReferenceNode*>
Inserts;
346 #ifndef TD_SINGLE_THREAD
370 #ifndef TD_SINGLE_THREAD
379 #endif // __OD_GS_BLOCK_NODE__
#define GETBIT(flags, bit)
OdGsBlockNode(OdGsBaseModel *pModel, const OdGiDrawable *pUnderlyingDrawable, bool bSetGsNode)
bool lessOrEqual(const OdGsBlockRefNodeDescMem &v, bool &bEqual) const
bool isModelTfDependent(OdUInt32 flags)
void invalidateAwareFlags(OdGsViewImpl *pView, OdUInt32 nViewChanges, const OdDbStub *layoutId)
void removeDef(OdGsSharedRefDefinition *pDef)
OdGsBlockRefNodeDesc(const OdGsBlockRefNodeDesc &c)
bool loadNodeState(OdGsFiler *pFiler, OdGsBaseVectorizer *pVectorizer=NULL)
void invalidateSharedAwareFlags(OdGsViewImpl *pView, OdUInt32 nViewChanges, const OdDbStub *layoutId)
void propagateLayerChangesStock()
Inserts::iterator InsertIterator
void addRef(OdGsBlockReferenceNode *pEntity)
volatile int m_bModelTfDependent
bool findDef(OdGsSharedRefDefinition *pDef, OdGsBlockRefNodeDesc &d)
void setUnloaded(bool isUnloaded)
#define SETBIT(flags, bit, value)
void invalidateSharedRegenDraw(OdUInt32 vpID, const OdDbStub *layoutId)
void setToDrawable(const OdGiDrawable *pUnderlyingDrawable)
bool layersChanged(OdGsViewImpl &view, OdGsBaseModel *pModel)
OdGsSharedRefDefinition * findAt(const OdGsBlockRefNodeDesc &d)
void invalidate(OdGsContainerNode *pParent, OdGsViewImpl *view, OdUInt32 mask)
void release(OdGsBlockReferenceNode *pEntity)
void setModelTfDependent(bool bOn)
#define TD_AUTOLOCK_P(Mutex)
bool saveNodeState(OdGsFiler *pFiler, OdGsBaseVectorizer *pVectorizer=NULL) const
bool isModelTfDependent() const
std::set< OdGsBlockReferenceNode * > Inserts
bool postprocessNodeLoading(OdGsFiler *pFiler)
OdGsBlockRefNodeDescMem(const OdGsBlockRefNodeDescMem &c)
OdUInt32 m_cmTransparency
OdDbStub * m_plotStyleNameId
const OdDbStub * m_layoutBlockId
#define TD_AUTOLOCK_P_DEF(Mutex)
void display(OdGsDisplayContext &)
void invalidateRegenDraw(OdUInt32 vpID, const OdDbStub *layoutId)
void update(OdGsUpdateContext &, OdGsContainerNode *, OdSiSpatialIndex *)
OdDb::LineWeight m_lineWeight
@ kPlotStyleNameIsDictDefault
std::map< OdGsBlockRefNodeDesc, OdGsSharedRefDefinition *, std::less< OdGsBlockRefNodeDesc > > _map
OdGiAnnoScaleSet m_annoScales
virtual void detach(OdGsNode *pNode)
bool findDef(OdGsSharedRefDefinition *pDef, OdGsBlockRefNodeDesc &d)
OdGsSharedRefDefinition * findCreateDef(const OdGsBlockRefNodeDesc &d)
virtual void propagateLayerChanges(OdGsViewImpl &)
bool operator<(const OdString &s1, const OdString &s2)
virtual ENodeType nodeType() const
void invalidateSharedSectionable()
OdDb::PlotStyleNameType m_plotStyleNameType
void removeDef(OdGsSharedRefDefinition *pDef)
#define GS_TOOLKIT_EXPORT
ODRX_DECLARE_MEMBERS(OdGsBlockNode)
OdGsSharedRefDefinition * createDef(const OdGsBlockRefNodeDesc &d)
void invalidateSharedSubents(OdUInt32 vpID, OdUInt32 nViewChanges)
OdGsBlockRefNodeDescMem()
OdGsBlockRefNodeDesc(const OdDbStub *layoutBlockId, const OdGiSubEntityTraitsData &tr, const OdGeScale3d &scale, bool bUsePlotStyles, const OdGiAnnoScaleSet &annoScales)
void invalidateSectionable()
void invalidateSubents(OdUInt32 vpID, OdUInt32 nViewChanges)
FIRSTDLL_EXPORT ThreadsCounter & odThreadsCounter()
bool extents(OdGeExtents3d &) const
OdGsSharedRefDefinition * insertAt(const OdGsBlockRefNodeDesc &d, OdGsReferenceImpl *pImp)
OdGsBlockRefNodeDescMem(const OdDbStub *layoutBlockId, const OdGiSubEntityTraitsData &tr, const OdGeScale3d &scale, bool bUsePlotStyles)
OdGsBaseModel * baseModel() const