App::DocumentP Struct Reference

Public Member Functions

void addRecomputeLog (const char *why, App::DocumentObject *obj)
 
void addRecomputeLog (const std::string &why, App::DocumentObject *obj)
 
void addRecomputeLog (DocumentObjectExecReturn *returnCode)
 
void clearDocument ()
 
void clearRecomputeLog (const App::DocumentObject *obj=nullptr)
 
 DocumentP ()
 
const char * findRecomputeLog (const App::DocumentObject *obj)
 
std::vector< App::DocumentObject * > topologicalSort (const std::vector< App::DocumentObject * > &objects) const
 

Static Public Member Functions

static void findAllPathsAt (const std::vector< Node > &all_nodes, size_t id, std::vector< Path > &all_paths, Path tmp)
 
static std::vector< App::DocumentObject * > partialTopologicalSort (const std::vector< App::DocumentObject * > &objects)
 

Public Attributes

DocumentObjectactiveObject
 
TransactionactiveUndoTransaction
 
bool committing
 
Py::Object DocumentPythonObject
 
int iTransactionMode
 
int iUndoMode
 
long lastObjectId
 
std::vector< DocumentObject * > objectArray
 
std::unordered_map< long, DocumentObject * > objectIdMap
 
std::unordered_map< std::string, DocumentObject * > objectMap
 
bool opentransaction
 
std::unordered_map< std::string, boolpartialLoadObjects
 
std::vector< DocumentObjectTpendingRemove
 
std::string programVersion
 
bool rollback
 
std::bitset< 32 > StatusBits
 
std::unordered_set< App::DocumentObject * > touchedObjs
 
bool undoing
 document in the middle of undo or redo More...
 
unsigned int UndoMaxStackSize
 
unsigned int UndoMemSize
 

Constructor & Destructor Documentation

◆ DocumentP()

Member Function Documentation

◆ addRecomputeLog() [1/3]

void App::DocumentP::addRecomputeLog ( const char *  why,
App::DocumentObject obj 
)

◆ addRecomputeLog() [2/3]

void App::DocumentP::addRecomputeLog ( const std::string &  why,
App::DocumentObject obj 
)

References addRecomputeLog().

◆ addRecomputeLog() [3/3]

void App::DocumentP::addRecomputeLog ( DocumentObjectExecReturn returnCode)

◆ clearDocument()

void App::DocumentP::clearDocument ( )

◆ clearRecomputeLog()

void App::DocumentP::clearRecomputeLog ( const App::DocumentObject obj = nullptr)

◆ findAllPathsAt()

void DocumentP::findAllPathsAt ( const std::vector< Node > &  all_nodes,
size_t  id,
std::vector< Path > &  all_paths,
Path  tmp 
)
static

◆ findRecomputeLog()

const char * App::DocumentP::findRecomputeLog ( const App::DocumentObject obj)

◆ partialTopologicalSort()

std::vector< App::DocumentObject * > DocumentP::partialTopologicalSort ( const std::vector< App::DocumentObject * > &  objects)
static

Does almost the same as topologicalSort() until no object with an input degree of zero can be found. It then searches for objects with an output degree of zero until neither an object with input or output degree can be found. The remaining objects form one or multiple cycles. An alternative to this method might be: https://en.wikipedia.org/wiki/Tarjan%E2%80%99s_strongly_connected_components_algorithm

Referenced by App::Document::getDependencyList(), and App::Document::recompute().

◆ topologicalSort()

std::vector< App::DocumentObject * > DocumentP::topologicalSort ( const std::vector< App::DocumentObject * > &  objects) const

Member Data Documentation

◆ activeObject

◆ activeUndoTransaction

◆ committing

◆ DocumentPythonObject

Py::Object App::DocumentP::DocumentPythonObject

◆ iTransactionMode

int App::DocumentP::iTransactionMode

◆ iUndoMode

◆ lastObjectId

◆ objectArray

◆ objectIdMap

◆ objectMap

◆ opentransaction

bool App::DocumentP::opentransaction

Referenced by DocumentP().

◆ partialLoadObjects

std::unordered_map<std::string, bool> App::DocumentP::partialLoadObjects

◆ pendingRemove

std::vector<DocumentObjectT> App::DocumentP::pendingRemove

◆ programVersion

std::string App::DocumentP::programVersion

◆ rollback

◆ StatusBits

std::bitset<32> App::DocumentP::StatusBits

◆ touchedObjs

◆ undoing

◆ UndoMaxStackSize

unsigned int App::DocumentP::UndoMaxStackSize

◆ UndoMemSize

unsigned int App::DocumentP::UndoMemSize

The documentation for this struct was generated from the following file: