Handle(TDataStd_TreeNode) aNode, aRoot;
Handle(GEOM_Function) aFunction;
- TDF_LabelMap aFuncMap;
- std::set<std::string> anObjMap;
+ TDF_LabelMap aCheckedFuncMap;
+ std::set<std::string> anIgnoreObjMap;
if (aDoc->Main().FindAttribute(GEOM_Function::GetFunctionTreeID(), aRoot)) {
TDataStd_ChildNodeIterator Itr(aRoot);
MESSAGE ( "Null function !!!!" );
continue;
}
- ProcessFunction(aFunction, aScript, aFuncMap, anObjMap);
+ ProcessFunction(aFunction, aScript, aCheckedFuncMap, anIgnoreObjMap);
}
}
{
const TCollection_AsciiString& aEntry = anEntryToNameIt.Key();
const TCollection_AsciiString& aName = anEntryToNameIt.Value();
- if (!anObjMap.count(aEntry.ToCString()))
- continue; // was not dumped
+ if (anIgnoreObjMap.count(aEntry.ToCString()))
+ continue; // should not be dumped
if ( !aEntry2StEntry.IsBound( aEntry ))
continue; // was not published
TCollection_AsciiString aCommand("\n\tgeompy."), aFatherEntry;
void ProcessFunction(Handle(GEOM_Function)& theFunction,
TCollection_AsciiString& theScript,
TDF_LabelMap& theProcessed,
- std::set<std::string>& theDumpedObjs)
+ std::set<std::string>& theIgnoreObjs)
{
if (theFunction.IsNull()) return;
- if (theProcessed.Contains(theFunction->GetEntry())) return;
-/*
- TDF_LabelSequence aSeq;
- theFunction->GetDependency(aSeq);
- Standard_Integer aLen = aSeq.Length();
- for(Standard_Integer i = 1; i <= aLen; i++) {
- Handle(GEOM_Function) aFunction = GEOM_Function::GetFunction(aSeq.Value(i));
- if(aFunction.IsNull()) continue;
- ProcessFunction(aFunction, theScript, theProcessed);
- }
-*/
+ if (theProcessed.Contains(theFunction->GetEntry())) return;
// pass functions, that depends on nonexisting ones
bool doNotProcess = false;
}
}
- if (doNotProcess) return;
-
- TCollection_AsciiString aDescr = theFunction->GetDescription();
- if(aDescr.Length() == 0) {
- //cout << "Warning: the function has no description" << endl;
+ if (doNotProcess) {
+ TCollection_AsciiString anObjEntry;
+ TDF_Tool::Entry(theFunction->GetOwnerEntry(), anObjEntry);
+ theIgnoreObjs.insert(anObjEntry.ToCString());
return;
}
+ theProcessed.Add(theFunction->GetEntry());
+
+ TCollection_AsciiString aDescr = theFunction->GetDescription();
+ if(aDescr.Length() == 0) return;
//Check if its internal function which doesn't requires dumping
if(aDescr == "None") return;
theScript += "\n\t";
theScript += aDescr;
-
- theProcessed.Add(theFunction->GetEntry());
-
- TCollection_AsciiString anObjEntry;
- TDF_Tool::Entry(theFunction->GetOwnerEntry(), anObjEntry);
- theDumpedObjs.insert(anObjEntry.ToCString());
}
//=============================================================================