24#ifndef __OD_GS_CONTAINER_NODE__
25#define __OD_GS_CONTAINER_NODE__
643 if (!pVpData && bCreateIfNotFound)
654 for (
OdUInt32 nVpId = 0; nVpId < nVpData; nVpId++)
656 if (pVpDataPtr[nVpId].get() == pVpData)
700 for (
OdUInt32 nView = 0; nView < nVpData; nView++)
727 bool bAllListsValid =
true;
728 for (
OdUInt32 nView = 0; nView < nViews; nView++)
733 bAllListsValid =
false;
845 return ( nAF == 0xFFFFFFFF || (
baseModel()->viewChanges(nVpID) & nAF) != 0 );
#define GS_TOOLKIT_EXPORT
OdVector< OdUInt32, OdMemoryAllocator< OdUInt32 > > OdUInt32Vector
#define SETBIT(flags, bit, value)
#define SETBIT_0(flags, bit)
#define GETBIT(flags, bit)
OdSmartPtr< OdSiSpatialIndex > OdSiSpatialIndexPtr
typename OdMemoryAllocator< OdUInt32 >::size_type size_type
virtual void updateEntities(OdGsUpdateContext &ctx)
OdUInt32 awareFlags(OdUInt32 viewportId) const
bool saveNodeState(OdGsFiler *pFiler, OdGsBaseVectorizer *pVectorizer=NULL) const
void addViewRef(OdUInt32 nVpId)
void setEntityListsInvalid()
bool loadVpData(OdGsFiler *pFiler, VpData *pVpData)
OdList< OdGsLightNode * > & lightNodesList(OdUInt32 nVpId)
void invalidate(OdGsContainerNode *pParent, OdGsViewImpl *pView, OdUInt32 mask)
void setVpDepCache(const OdGsViewImpl &pView)
OdUInt32 currViewChanges() const
OdVector< VpDataPtr > VpDataArray
OdList< OdGsLightNode * > LightsList
virtual void removeChild(OdGsNode *pNode)
void setRealExtents(OdUInt32 nVpId, const OdGsUpdateExtents &ext, bool bRecompute=false)
bool isMetafilesCompatible(const OdGsViewImpl *pView1, const OdGsViewImpl *pView2, OdGsUpdateContext *ctx)
void turnOnLights(OdGsBaseVectorizer &view)
OdUInt32 isAttached(OdGsEntityNode *pNode) const
virtual void propagateLayerChanges(OdGsViewImpl &view)
void display(OdGsDisplayContext &ctx)
OdGsEntityNode * firstEntityNode(OdUInt32 nVpId)
OdGsEntityNode * lastEntityNode(OdUInt32 nVpId)
int numberOfChildren(OdUInt32 nVpId) const
OdUInt32 viewportId(const OdGsViewImpl &pView, bool bForceVpId=true) const
virtual bool extents(const OdGsView *pView, OdGeExtents3d &ext) const
virtual bool updateEntityList(OdGsUpdateContext &ctx)
const ViewRefs & viewRefs() const
bool findCompatibleCache(OdGsViewImpl &keyView)
ODRX_DECLARE_MEMBERS(OdGsContainerNode)
bool highlightSubnodes(OdUInt32 nSubnodes, bool bHighlight, bool bAll, OdUInt32 nSelStyle=0)
void setCheckWorkset(bool bVal)
virtual ENodeType nodeType() const
void addEntProps(const OdGsUpdateContext &ctx)
bool isVpDepCache() const
bool allEntityListsValid() const
bool saveVpData(OdGsFiler *pFiler, const VpData *pVpData) const
bool entityListValid(OdUInt32 nVpId) const
void doSTUpdate(OdGsUpdateContext &ctx)
OdUInt32 vpDataId(const VpData *pVpData) const
VpData * makeVpData(OdUInt32 nVpId) const
const OdGsUpdateExtents & realExtents(OdUInt32 nVpId) const
bool postprocessNodeLoading(OdGsFiler *pFiler)
VpData * getVpData(OdUInt32 nVpId, bool bCreateIfNotFound=true) const
void updateVisible(OdGsViewImpl *pViewImpl)
bool extents(OdGeExtents3d &extents) const
VpDataPtr m_shareableData
OdUInt32Vector m_vpAwareFlags
bool childrenUpToDate(OdUInt32 nVpId) const
void setChildrenUpToDate(bool childrenUpToDate, const OdUInt32 *nVpID=NULL)
bool doMTUpdate(OdGsUpdateContext &ctx)
bool safeEntityUpdate(OdGsEntityNode *pEntity, OdGsUpdateContext &ctx, OdSiSpatialIndex *pSpatialIndex)
void setChildrenRegenDraw(bool bVal, OdUInt32 nVpID)
void setAwareFlags(OdUInt32 viewportId, OdUInt32 flags)
OdSmartPtr< VpData > VpDataPtr
void addContentToUpdateManager(OdUInt32 viewportId, OdGsUpdateManager *pManager, const UpdateManagerContext &context)
virtual void addLight(OdGsUpdateContext &ctx, const OdGiDrawable *pDrawable)
virtual void addChild(const OdGiDrawable *pDrawable, OdGsViewImpl *pView, bool unerased=false)
OdUInt32 numberOfChildrenErased(OdUInt32 nVpId) const
OdSiSpatialIndex & spatialIndex(OdUInt32 nVpId)
bool needRegen(OdUInt32 nVpId) const
bool hasVpData(OdUInt32 nVpId) const
bool childrenRegenDraw(OdUInt32 nVpID) const
void propagateInvalidVpFlag()
virtual void removeLights(OdGsNode *pOwner, OdUInt32 nVpId=0xFFFFFFFF)
void addChildNode(OdUInt32 nVpId, OdGsEntityNode *pEnt)
OdUInt32 numVpData() const
OdGsContainerNode(OdGsBaseModel *pModel, const OdGiDrawable *pUnderlyingDrawable, bool bSetGsNode=true)
const StockProps & stock() const
bool loadNodeState(OdGsFiler *pFiler, OdGsBaseVectorizer *pVectorizer=NULL)
OdUInt32 numberOfChildrenST(OdUInt32 nVpId) const
void update(OdGsUpdateContext &ctx, OdGsContainerNode *pParent, OdSiSpatialIndex *pParentIndex)
bool checkWorkset() const
void removeViewRef(OdUInt32 nVpId)
void setEntityListValid(OdUInt32 nVpId, bool entityListValid)
void propagateLayerChangesStock()
virtual void displayEntityList(OdGsDisplayContext &ctx)
friend class OdGsViewImpl
friend class OdGsBaseModel
OdGsBaseModel * baseModel() const
OdGsNode(OdGsBaseModel *pModel, const OdGiDrawable *pUnderlyingDrawable)
static GS_STATIC_EXPORT const OdGsUpdateExtents kInvalid
OdGsUpdateExtents m_realExtents
OdUInt32 m_nChildHighlighted
OdUInt32 m_nChildErasedPermanently
OdUInt32 m_nChildSingleThreaded
OdGsEntityNode * m_pClearSpatialQueryStateFirst
OdGsEntityNode * m_pLastEntity
OdSiSpatialIndexPtr m_pSpIndex
OdGsEntityNode * m_pFirstEntity
static OdSmartPtr< VpData > createObject(bool bShareable=false)