24#ifndef _DbEvalGraph_h_Included_
25#define _DbEvalGraph_h_Included_
42class OdDbImpEvalContext;
43class OdDbImpEvalContextIterator;
82#ifdef DYNBLOCKS_DLL_EXPORTS
84#define DYNBLOCKS_EXPORT OD_TOOLKIT_EXPORT
86#define DYNBLOCKS_EXPORT
88#define DYNBLOCKS_EXPORT_STATIC OD_STATIC_EXPORT
91#define DYNBLOCKS_EXPORT OD_TOOLKIT_IMPORT
93#define DYNBLOCKS_EXPORT
95#define DYNBLOCKS_EXPORT_STATIC OD_STATIC_IMPORT
461 bool& isActive)
const;
513 : mFlags(0), mRefCount(0)
528 : mIdFrom(fromId), mIdTo(toId), mFlags(flags), mRefCount(
count)
566 unsigned long mRefCount;
835 friend class OdDbEvalExprImpl;
919 const OdString& sourceConnectionName);
937 const OdString& sourceConnectionName);
953 const OdString& sourceConnectionName)
const;
1059 OdDbImpEvalContext* m_pImp;
1060 friend class OdDbImpEvalContextIterator;
1177 OdDbImpEvalContextIterator* m_pImp;
1178 friend class OdDbImpEvalContext;
OdArray< OdDbEvalEdgeInfo > OdDbEvalEdgeInfoArray
OdSmartPtr< OdDbEvalConnectable > OdDbEvalConnectablePtr
OdSmartPtr< OdDbEvalGraph > OdDbEvalGraphPtr
OdArray< OdDbEvalNodeId, OdMemoryAllocator< OdDbEvalNodeId > > OdDbEvalNodeIdArray
OdArray< OdDbEvalExprPtr > OdDbEvalExprPtrArray
OdSmartPtr< OdDbEvalContextIterator > OdDbEvalContextIteratorPtr
unsigned long OdDbEvalNodeId
OdSmartPtr< OdDbEvalExpr > OdDbEvalExprPtr
OdArray< OdResBufPtr > OdResBufArray
bool operator==(T left, const OdGiVariant::EnumType right)
virtual void getConnectionNames(OdStringArray &connectionNames) const
virtual bool disconnectFrom(const OdString &thisConnectionName, OdDbEvalNodeId sourceConnectableId, const OdString &sourceConnectionName)
virtual bool getConnectionType(const OdString &connectionName, OdResBuf::ValueType &connectionType) const
ODDB_DECLARE_MEMBERS(OdDbEvalConnectable)
virtual bool connectionAllowed(const OdString &thisConnectionName, OdDbEvalNodeId sourceConnectableId, const OdString &sourceConnectionName) const
virtual bool getConnectedObjects(const OdString &thisConnectionName, OdDbEvalNodeIdArray &connectedObjects) const
virtual bool hasConnectionNamed(const OdString &connectionName) const
virtual bool connectTo(const OdString &thisConnectionName, OdDbEvalNodeId sourceConnectableId, const OdString &sourceConnectionName)
virtual ~OdDbEvalConnectable()
virtual OdResBufPtr getConnectionValue(const OdString &connectionName) const
virtual bool getConnectedNames(const OdString &thisConnectionName, OdDbEvalNodeId sourceConnectableId, OdStringArray &sourceConnectionNames) const
virtual bool setConnectionValue(const OdString &connectionName, const OdResBuf *pValue)
virtual bool getAt(OdDbEvalContextPair &pair) const
virtual void insertAt(const OdDbEvalContextPair &pair)
virtual void removeAt(const OdString &key)
virtual OdDbEvalContextIteratorPtr newIterator() const
virtual ~OdDbEvalContext()
ODRX_DECLARE_MEMBERS(OdDbEvalContext)
OdDbEvalContextIterator()
virtual OdDbEvalContextPair contextPair() const
ODRX_DECLARE_MEMBERS(OdDbEvalContextIterator)
virtual bool done() const
virtual ~OdDbEvalContextIterator()
const OdString key() const
OdDbEvalContextPair(const OdString &key, void *value)
virtual ~OdDbEvalContextPair()
void setKey(const OdString &key)
void setValue(void *value)
OdDbEvalNodeId from() const
bool isInvertible() const
OdDbEvalNodeId to() const
unsigned long refCount() const
OdDbEvalEdgeInfo(OdDbEvalNodeId fromId, OdDbEvalNodeId toId, long flags, unsigned long count)
bool isSuppressed() const
virtual void activated(OdDbEvalNodeIdArray &argumentActiveList)
virtual void adjacentEdgeAdded(const OdDbEvalNodeId &fromId, const OdDbEvalNodeId &toId, bool isInvertible)
virtual void copiedIntoGraph(OdDbEvalGraph *pIntoGraph)
OdResult dwgInFields(OdDbDwgFiler *pFiler)
virtual void remappedNodeIds(OdDbEvalIdMap &idMap)
virtual void adjacentNodeRemoved(const OdDbEvalNodeId &adjNodeId)
OdResult dxfInFields(OdDbDxfFiler *pFiler)
virtual void adjacentEdgeRemoved(const OdDbEvalNodeId &adjEdgeNodeId)
virtual void addedToGraph(OdDbEvalGraph *pGraph)
OdDbEvalNodeId nodeId() const
virtual void graphEvalEnd(bool nodeIsActive)
OdResBufPtr value() const
virtual bool isActivatable() const
OdDbEvalGraphPtr getGraph(OdDb::OpenMode openMode=OdDb::kForRead) const
virtual void movedFromGraph(OdDbEvalGraph *pFromGraph)
void dxfOutFields(OdDbDxfFiler *pFiler) const
virtual bool equals(const OdDbEvalExpr *pOther) const
void dwgOutFields(OdDbDwgFiler *pFiler) const
ODDB_DECLARE_MEMBERS(OdDbEvalExpr)
virtual OdResult postInDatabase(OdDbDatabase *)
virtual bool evaluate(const OdDbEvalContext *evalContext)
virtual void graphEvalAbort(bool nodeIsActive)
virtual void movedIntoGraph(OdDbEvalGraph *pIntoGraph)
virtual void graphEvalStart(bool nodeIsActive)
virtual void removedFromGraph(OdDbEvalGraph *pGraph)
virtual void addGraph(OdDbEvalGraph *pGraphToAdd, OdDbEvalIdMap *&idMap)
virtual OdResult dwgInFields(OdDbDwgFiler *pFiler) ODRX_OVERRIDE
virtual bool isSubgraphOf(const OdDbEvalGraph *pOther) const
virtual bool activate(const OdDbEvalNodeIdArray &activatedNodes, OdDbEvalNodeIdArray *pActiveSubgraph, OdDbEvalNodeIdArray *pCycleNodes) const
virtual bool evaluate(const OdDbEvalContext *pContext, const OdDbEvalNodeIdArray *pActivateNodes) const
virtual void getOutgoingEdges(const OdDbEvalNodeId &nodeId, OdDbEvalEdgeInfoArray &edges) const
virtual bool addEdge(const OdDbEvalNodeId &idFrom, const OdDbEvalNodeId &idTo)
virtual bool activate(const OdDbEvalNodeIdArray &activatedNodes) const
virtual bool addEdge(const OdDbEvalNodeId &idFrom, const OdDbEvalNodeId &idTo, bool invertible)
static bool removeGraph(OdDbObject *pObj, const OdString &pKey)
virtual void getAllNodes(OdDbEvalNodeIdArray &allNodes) const
virtual bool getEdgeInfo(const OdDbEvalNodeId &idFrom, const OdDbEvalNodeId &idTo, OdDbEvalEdgeInfo &edgeInfo) const
virtual OdResult dxfInFields(OdDbDxfFiler *pFiler) ODRX_OVERRIDE
virtual bool equals(const OdDbEvalGraph *pOther) const
virtual void dxfOutFields(OdDbDxfFiler *pFiler) const ODRX_OVERRIDE
virtual bool removeNode(const OdDbEvalNodeId &nodeId)
virtual bool getIsActive(const OdDbEvalNodeId &nodeId, bool &isActive) const
virtual void getIncomingEdges(const OdDbEvalNodeId &nodeId, OdDbEvalEdgeInfoArray &edges) const
virtual bool activate(const OdDbEvalNodeIdArray &activatedNodes, OdDbEvalNodeIdArray *pActiveSubgraph) const
virtual bool removeEdge(const OdDbEvalNodeId &idFrom, const OdDbEvalNodeId &idTo)
virtual OdDbEvalNodeId addNode(OdDbEvalExpr *pNode)
ODDB_DECLARE_MEMBERS(OdDbEvalGraph)
virtual void copyFrom(const OdRxObject *p) ODRX_OVERRIDE
virtual void subHandOverTo(OdDbObject *pNewObject) ODRX_OVERRIDE
static bool removeGraph(OdDbDatabase *pDb, const OdString &key)
static OdDbEvalGraphPtr getGraph(OdDbDatabase *pDb, const OdString &key, const OdDb::OpenMode openMode=OdDb::kForRead)
virtual OdDbEvalExprPtr getNode(const OdDbEvalNodeId &nodeId, OdDb::OpenMode openMode=OdDb::kForRead) const
virtual void applyPartialUndo(OdDbDwgFiler *pFiler, OdRxClass *pClassObj) ODRX_OVERRIDE
static bool createGraph(OdDbDatabase *pDb, const OdString &key)
virtual void dwgOutFields(OdDbDwgFiler *pFiler) const ODRX_OVERRIDE
virtual bool removeNode(OdDbEvalExpr *pNode)
virtual bool evaluate() const
static bool hasGraph(OdDbDatabase *pDb, const OdString &key)
virtual OdResult postInDatabase(OdDbDatabase *)
static OdDbEvalGraphPtr getGraph(const OdDbObject *pObj, const OdString &pKey, const OdDb::OpenMode openMode=OdDb::kForRead)
virtual bool evaluate(const OdDbEvalContext *pContext) const
static bool createGraph(OdDbObject *pObj, const OdString &key)
static bool hasGraph(const OdDbObject *pObj, const OdString &key)
virtual OdDbEvalNodeId find(const OdDbEvalNodeId &key)=0
GLsizei const GLfloat * value