CFx SDK Documentation
2020SP3
|
Go to the documentation of this file.
24 #ifndef __OD_GS_BLOCKREFERENCE_NODE__
25 #define __OD_GS_BLOCKREFERENCE_NODE__
32 class OdGsSpQueryContext;
44 m_worldToModel(
NULL), m_modelToWorld(
NULL){}
85 std::auto_ptr<OdSiShape> m_transformedQuery;
116 class WorldDrawBlockRef;
117 class OdGsUpdateState;
132 kChildrenNotUpToDate = 0x80000000
138 void clear() { m_vpAwareFlags.clear(); }
139 bool isEmpty()
const {
return m_vpAwareFlags.isEmpty(); }
145 {
return nVpID < m_vpAwareFlags.size(); }
163 void*
operator new(size_t);
164 void operator delete(
void*);
173 if (!(--m_nRefCounter))
176 long numRefs()
const {
return m_nRefCounter; }
185 virtual void display(OdGsDisplayContext& ctx,
bool isHighlightedAll) = 0;
197 virtual void highlight(
bool bDoIt,
bool bWholeBranch) = 0;
242 kLastFlag = kBrClipped
297 void clearBlockNode();
330 if( nAF == 0xFFFFFFFF || (
baseModel()->viewChanges(nVpID) & nAF) != 0 )
340 bool bEnableSharedGraphics);
354 void createImpl(
const OdGsUpdateContext& ctx,
bool bTryShared);
355 void drawBlockImpl(OdGsUpdateContext& ctx,
const OdGiDrawable* pBlockTableRecord,
357 bool bEnableSharedGraphics);
368 friend class WorldDrawBlockRef;
369 friend class GsDrawableNested;
370 friend class OdGsSpQueryContext;
403 const OdGiDrawable* pBlockTableRecord,
unsigned iInstance);
432 m_nodeImp(c.m_nodeImp), m_pFirstAttrib(c.m_pFirstAttrib){}
463 void clearParams() {m_nCols = m_nRows = 0; m_sx = m_sy = 0.; m_blockTf.setToIdentity(); }
488 #endif // __OD_GS_REFERENCE_NODE__
void addEntPropsFromState(const OdGsUpdateState &state)
#define GETBIT(flags, bit)
virtual void doSpatialQuery(OdGsSpQueryContext &ctx)
virtual bool layersChanged(OdGsViewImpl &view) const
virtual ~OdGsBlockReferenceNodeImpl()
const OdGeMatrix3d * modelToWorld() const
virtual bool saveNodeImplState(OdGsFiler *pFiler, OdGsBaseVectorizer *pVectorizer) const =0
void postUpdateStep(OdGsUpdateState &state)
virtual void playAsGeometry(OdGsBaseVectorizer &view, EMetafilePlayMode eMode)
OdGsBlockReferenceNodeImpl * getImpl(unsigned iInstance)
OdGsEntityNode *& firstAttrib(unsigned iInstance)
virtual void doSpatialQuery(OdGsSpQueryContext &ctx)=0
virtual bool childrenRegenDraw(OdUInt32 nVpID) const
virtual void invalidate(OdGsContainerNode *pParent, OdGsViewImpl *pView, OdUInt32 mask)
virtual void destroySubitems()
virtual void releaseStock()=0
~OdGsBlockReferenceNode()
virtual bool select(OdGsBaseVectorizer &view, OdSiSelBaseVisitor *pVisitor, bool bHasExtents, OdGsView::SelectionMode mode)=0
virtual void doDisplay(OdGsDisplayContext &ctx)
OdUInt32 get(OdUInt32 nVpID) const
const OdGeMatrix3d * m_nodeToWorld
virtual bool isSharedReference() const
virtual void playAsGeometry(OdGsBaseVectorizer &view, EMetafilePlayMode eMode)=0
const OdGsEntityNode * firstAttrib() const
virtual bool select(OdGsBaseVectorizer &view, OdSiSelBaseVisitor *, OdGsView::SelectionMode mode)
virtual bool layersChanged(OdGsViewImpl &view) const
CollectionItem * item(unsigned iInstance)
OdGsBlockReferenceNodeImpl()
static void actionCheckCancelledSharedRef(void *pObj, OdGsUpdateState &state)
OdGeMatrix3d m_modelToWorld
#define SETBIT(flags, bit, value)
bool saveClientNodeState(OdGsFiler *pFiler, OdGsBaseVectorizer *pVectorizer) const
OdRefCounter m_nRefCounter
virtual bool doSelect(OdGsBaseVectorizer &vect, OdGiDrawable *pDrw, OdSiSelBaseVisitor *pVisitor, OdGsView::SelectionMode mode)
virtual void highlight(bool bDoIt, bool bWholeBranch)=0
virtual void updateSubitems(OdGsUpdateContext &ctx, OdGsBlockNode &blockNode, const OdGiDrawable *pBlock)=0
virtual bool doSelect(OdGsBaseVectorizer &vect, OdGiDrawable *pDrw, OdSiSelBaseVisitor *pVisitor, OdGsView::SelectionMode mode)
bool loadClientNodeState(OdGsFiler *pFiler, OdGsBaseVectorizer *pVectorizer)
const OdGeMatrix3d * worldToModel() const
OdGeMatrix3d m_worldToModel
OdSiRecursiveVisitor OdSiSelBaseVisitor
Collection * m_pCollectionImpl
OdGsBlockNode * m_pBlockNode
void initBlockNode(const OdGiDrawable *pBlock)
virtual void propagateLayerChanges(OdGsViewImpl &view)
virtual void update(OdGsUpdateContext &ctx, OdGsContainerNode *pParent, OdSiSpatialIndex *pParentIndex)
virtual bool isSharedDefinition() const
bool loadClientNodeState(OdGsFiler *pFiler, OdGsBaseVectorizer *pVectorizer)
bool selectSubitems(OdGsBaseVectorizer &view, OdSiSelBaseVisitor *pVisitor, OdGsView::SelectionMode mode)
virtual OdGsEntityNode * firstEntity()
const OdGeMatrix3d * m_worldToNode
OdSiRecursiveVisitor & m_visitor
virtual void propagateLayerChangesStock()=0
void setNodeToWorld(const OdGeMatrix3d *tf)
void * sharedDefinition()
ODRX_DECLARE_MEMBERS(OdGsMInsertBlockNode)
virtual OdUInt32 awareFlags(OdUInt32 viewportId) const
virtual OdGsEntityNode * firstEntity()
void copyFrom(const CollectionItem &c)
void set(OdUInt32 nVpID, OdUInt32 flags)
virtual bool childrenUpToDate(OdUInt32 nVpID) const
bool areInvalid(OdUInt32 nVpID) const
TPtr< OdGsBlockReferenceNodeImpl > m_nodeImp
void drawBlock(OdGsUpdateContext &ctx, const OdGiDrawable *pBlockTableRecord, OdGsBlockReferenceNodeImpl *pContainer, bool bEnableSharedGraphics)
static void actionRestartLocked(void *pObj, OdGsUpdateContext &ctx)
virtual void destroySubitems()
virtual void display(OdGsDisplayContext &ctx, bool isHighlightedAll)=0
virtual OdGsEntityNode * firstAttrib()
static void actionAddEntPropsFromState(void *pObj, OdGsUpdateState &state)
virtual void setChildrenUpToDate(bool childrenUpToDate, const OdUInt32 nVpID)
const OdGeMatrix3d * m_prevModelToWorld
const OdSiShape * query() const
bool DAI_EXPORT operator!=(const OdDAI::OdSelect &left, const OdDAI::OdSelect &right)
void setParams(const OdGeMatrix3d &blockTf, int nCols, int nRows, double sx, double sy)
virtual bool loadNodeImplState(OdGsFiler *pFiler, OdGsBaseVectorizer *pVectorizer, OdGsBaseModel *pModel)=0
OdGeMatrix3d m_xModelToWorld
virtual bool invalidate(OdGsContainerNode *pParent, OdGsViewImpl *pView, OdUInt32 mask)=0
OdGsMInsertBlockNode(OdGsBaseModel *pModel, const OdGiDrawable *pInsert, bool bSetGsNode=false)
virtual bool awareFlagsAreInvalid(OdUInt32 viewportId) const
virtual void doUpdateImpl(OdGsUpdateContext &ctx, const OdGiDrawable *pBlockTableRecord, unsigned iInstance)
TPtr< OdGsBlockReferenceNodeImpl > m_pImpl
const OdGeMatrix3d * m_prevWorldToModel
const OdGeMatrix3d * m_worldToModel
void setWorldToModel(const OdGeMatrix3d *tf)
bool postprocessNodeLoading(OdGsFiler *pFiler)
OdGeMatrix3d m_nodeToWorld
OdGsSpQueryContextTf(OdSiRecursiveVisitor &v, const OdGeMatrix3d &objectTf, const OdGeMatrix3d &objectTfInv, const OdGeScale3d &scale)
void checkCancelledSharedRef(OdGsUpdateState &state)
static void actionStretchExtents(void *pObj, OdGsUpdateState &state)
ODRX_DECLARE_MEMBERS(OdGsBlockReferenceNode)
void updateImpl(OdGsUpdateContext &ctx, const OdGiDrawable *pInsert, OdSiSpatialIndex *pParentIndex)
void updateBlockNode(const OdGiDrawable *pBlockTableRecord)
OdGsEntityNode * firstAttrib()
virtual void highlight(bool bDoIt, bool bWholeBranch)
OdGeMatrix3d m_worldToNode
OdGsEntityNode * m_pFirstAttrib
static void actionPostUpdateStep(void *pObj, OdGsUpdateState &state)
virtual void releaseStock()
virtual OdUInt32 awareFlags(OdUInt32 viewportId) const
bool excludeFromViewExt() const
const OdSiShape * m_pQuery
void setMetafile(OdGsUpdateContext &ctx, OdGsEntityNode::Metafile *pMf, OdUInt32 awareFlags, const OdGeExtents3d &ext)
virtual void doDisplay(OdGsDisplayContext &ctx)
bool highlightSubnodes(OdUInt32 nSubnodes, bool bHighlight, bool bAll)
bool saveClientNodeState(OdGsFiler *pFiler, OdGsBaseVectorizer *pVectorizer) const
bool needRegen(OdUInt32 nVpID) const
const OdGeMatrix3d * worldToNode() const
OdSiRecursiveVisitorTf(OdSiRecursiveVisitor &v, const OdGeMatrix3d &mat)
void updateAttribute(OdGsUpdateContext &ctx, OdGsEntityNode *pNode, const OdGiDrawable *pInsert, OdGsMarker marker)
virtual bool layersChanged(OdGsViewImpl &view) const
virtual void makeStock()=0
const OdGsBlockReferenceNodeImpl * imp() const
static OdGsBlockReferenceNode * create(OdGsBaseModel *pModel, const OdGiDrawable *pDrawable)
virtual void postprocessNodeImplLoading(OdGsFiler *)
virtual bool destroySubitems()=0
bool childrenUpToDate(OdUInt32 nVpID) const
void setExcludeFromViewExt(bool bSet)
void setWorldToNode(const OdGeMatrix3d *tf)
#define GS_TOOLKIT_EXPORT
virtual void releaseStock()
virtual bool isMInsert() const
virtual bool isMInsert() const
virtual bool isReference() const
bool DAI_EXPORT operator==(const OdFileDescriptionAuto &left, const OdFileDescriptionAuto &right)
virtual void invalidate(OdGsContainerNode *pParent, OdGsViewImpl *pView, OdUInt32 mask)
const OdGeMatrix3d * nodeToWorld() const
OdSiRecursiveVisitorTf OdSiSelectVisitorTf
CollectionItem(const CollectionItem &c)
virtual OdGsEntityNode * firstEntity()=0
void setModelToWorld(const OdGeMatrix3d *tf)
virtual void doUpdateImpl(OdGsUpdateContext &ctx, const OdGiDrawable *pBlockTableRecord, unsigned iInstance)
virtual void propagateLayerChangesStock()
bool postprocessNodeLoading(OdGsFiler *pFiler)
void setAwareFlags(OdUInt32 viewportId, OdUInt32 nAwareFlags)
OdGsBlockReferenceNodeImpl * imp()
virtual void playAsGeometry(OdGsBaseVectorizer &view, EMetafilePlayMode eMode)
virtual void propagateLayerChangesStock()
const OdGeMatrix3d * m_prevWorldToNode
virtual OdGsEntityNode * firstAttrib()
Collection(const Collection &c)
OdUInt32 numAwareFlags() const
const OdGeMatrix3d * m_prevNodeToWorld
virtual void spatialQuery(const OdGsView &view, OdSiRecursiveVisitor *pVisitor)
OdGsEntityNode * m_pFirstAttrib
const OdGeMatrix3d * m_modelToWorld
OdGsBlockReferenceNode(OdGsBaseModel *pModel, const OdGiDrawable *pDrawable, bool bSetGsNode=false)
bool selectAttributes(OdGsBaseVectorizer &view)
~OdSiRecursiveVisitorTf()
void resetQuery(const OdSiShape *pQuery)
bool findFlag(OdUInt32 nVpID) const
void setChildrenUpToDate(bool childrenUpToDate, const OdUInt32 nVpID)
OdGsBlockNode * blockNode() const
OdGsBaseModel * baseModel() const