#include "Model_AttributeRefList.h"
#include "Model_Application.h"
#include "Model_Data.h"
+#include "Model_Objects.h"
#include <ModelAPI_Feature.h>
#include <TDF_ListIteratorOfLabelList.hxx>
if (aDoc) {
const TDF_LabelList& aList = myRef->List();
for (TDF_ListIteratorOfLabelList aLIter(aList); aLIter.More(); aLIter.Next()) {
- ObjectPtr anObj = aDoc->object(aLIter.Value());
+ ObjectPtr anObj = aDoc->objects()->object(aLIter.Value());
if (anObj.get() == NULL) {
myRef->Remove(aLIter.Value());
REMOVE_BACK_REF(theObject);
owner()->data()->sendAttributeUpdated(this);
}
+void Model_AttributeRefList::clear()
+{
+ std::list<ObjectPtr> anOldList = list();
+ myRef->Clear();
+ std::list<ObjectPtr>::iterator anOldIter = anOldList.begin();
+ for(; anOldIter != anOldList.end(); anOldIter++) {
+ REMOVE_BACK_REF((*anOldIter));
+ }
+}
+
int Model_AttributeRefList::size() const
{
return myRef->Extent();
if (aDoc) {
const TDF_LabelList& aList = myRef->List();
for (TDF_ListIteratorOfLabelList aLIter(aList); aLIter.More(); aLIter.Next()) {
- ObjectPtr anObj = aDoc->object(aLIter.Value());
+ ObjectPtr anObj = aDoc->objects()->object(aLIter.Value());
aResult.push_back(anObj);
}
}
int anIndex = 0;
for (TDF_ListIteratorOfLabelList aLIter(aList); aLIter.More(); aLIter.Next(), anIndex++) {
if (anIndex == theIndex)
- return aDoc->object(aLIter.Value());
+ return aDoc->objects()->object(aLIter.Value());
}
}
return ObjectPtr();