18#ifndef BIMHOMEAPP_APP_IDOCUMENTOBJECT_H
19#define BIMHOMEAPP_APP_IDOCUMENTOBJECT_H
22#include <Base/Vector3D.h>
23#include <Base/BoundBox.h>
26#include "boost/any.hpp"
31 class DocumentObjectObserverDelegate;
32 class IPropertyAccessor;
50 const char* pObjectName =
nullptr,
52 const char* viewType =
nullptr,
53 bool isPartial =
false);
65 const char* pObjectName =
nullptr,
66 const char* pDocObjDelegateName =
nullptr);
127 bool recursive, std::vector<App::IDocumentObject*>* inList =
nullptr)
const = 0;
134 virtual void getInList(std::vector<App::IDocumentObject*>& objList)
const = 0;
141 virtual void getOutList(std::vector<App::IDocumentObject*>& objList)
const = 0;
163 virtual void getSubObjectList(
const char* subname, std::vector<IDocumentObject*>& objList)
const = 0;
171 virtual void getParents(
int depth, std::vector<std::pair<App::IDocumentObject*, std::string>>& iobjList)
const = 0;
200 virtual void setLabel(
const std::string& label) = 0;
224 virtual bool adjustRelativeLinks(
const std::set<App::IDocumentObject*>& inList, std::set<App::IDocumentObject*>* visited =
nullptr) = 0;
271 virtual void touch(
bool noRecompute =
false) = 0;
文档对象观察者代理基类
Definition DocumentObjectObserverDelegate.h:33
文档接口类
Definition IDocument.h:43
virtual App::IDocument * getDocument(void) const =0
返回当前文档对象所属的文档
virtual bool copyShapeFrom(App::IDocumentObject *pObj)=0
shape拷贝
virtual bool recomputeFeature(bool recursive=false)=0
重新计算
virtual void getInListRecursive(std::vector< App::IDocumentObject * > &objList) const =0
递归地获取当前文档对象及其所有子对象,并将这些对象转换为接口类型的指针后添加到给定的 std::vector 中
virtual DocumentObjectObserverDelegate * getObserverDelegate()=0
获取文档对象观察者代理
virtual std::vector< std::string > getSubObjects(int reason=0) const =0
根据给定的理由(reason)获取子对象的名称列表
virtual const char * getViewProviderName(void) const =0
获取ViewProvider的名称
virtual bool adjustRelativeLinks(const std::set< App::IDocumentObject * > &inList, std::set< App::IDocumentObject * > *visited=nullptr)=0
调整当前文档对象中相对于某些对象的链接,并返回一个布尔值表示操作是否成功
virtual bool isImporting() const =0
检查当前文档对象是否正在导入
virtual void setDocument(App::IDocument *pDoc)=0
设置当前文档对象所属的文档
virtual void getParents(int depth, std::vector< std::pair< App::IDocumentObject *, std::string > > &iobjList) const =0
获取当前文档对象的父对象及其路径信息,并将这些信息存储在一个 std::vector 中
virtual void * getViewProviderDelegate() const =0
获取视图提供者代理
virtual std::map< std::string, std::string > getPropertiesList()=0
获取当前对象的属性列表
virtual void removeChild(App::IDocumentObject *pObj)=0
移除子对象
virtual void setLabel(const std::string &label)=0
设置对象名称
virtual int isElementVisible(const char *element) const =0
检查给定的元素是否可见
virtual void getSubObjectList(const char *subname, std::vector< IDocumentObject * > &objList) const =0
获取当前文档对象中具有特定子名称的所有子对象,并将这些子对象转换为接口类型的指针后添加到给定的 std::vector 中
virtual ~IDocumentObject()
static IDocumentObject * create(IDocument *pParent, const char *pObjectName=nullptr, const char *pDocObjDelegateName=nullptr)
在给定的父文档中创建一个新的文档对象
virtual void getOutList(std::vector< App::IDocumentObject * > &objList) const =0
获取与当前文档对象相关联的输出对象列表,并将这些输出对象转换为接口类型的指针后添加到给定的 std::vector 中
virtual bool redirectSubName(std::ostringstream &ss, IDocumentObject *topParent, IDocumentObject *child) const =0
重定向子对象的子名称,并将重定向后的名称写入给定的 std::ostringstream 对象中
virtual std::string getNameWithDocId()=0
获取当前文档对象在文档中的名称,并附加文档的唯一标识符(ID)
virtual void getInListEx(std::set< App::IDocumentObject * > &inSet, bool recursive, std::vector< App::IDocumentObject * > *inList=nullptr) const =0
收集当前文档对象及其子对象(如果适用的话)的信息,并将它们存储在一个集合中
virtual const char * getStatusString(void) const =0
获取当前文档对象的状态字符串
virtual long getId() const =0
获取对象ID
virtual void getInList(std::vector< App::IDocumentObject * > &objList) const =0
获取当前文档对象及其子对象的列表,并将这些对象转换为接口类型的指针后添加到给定的 std::vector 中
virtual Base::Vector3d getLocationInfo(bool isLocal)=0
获取当前对象的位置
virtual std::string getExportName(bool forced=false) const =0
获取当前文档对象在导出时使用的名称
virtual void touch(bool noRecompute=false)=0
标记当前文档对象已被触碰(即发生了改变),并根据不同的参数决定是否强制重新计算
virtual int setElementVisible(const char *element, bool visible)=0
设置给定元素的可见性状态
virtual short mustExecute(void) const =0
确定当前文档对象是否必须执行某些操作
virtual void enforceRecompute()=0
强制重新计算当前文档对象
virtual Base::BoundBox3d getBoundingBox(bool isLocal)=0
获取当前对象的包围盒
virtual std::string getLabel() const =0
获取对象名称
static IDocumentObject * create(IDocument *pParent, const char *pObjectName=nullptr, bool isNew=true, const char *viewType=nullptr, bool isPartial=false)
在给定的父文档中创建一个新的文档对象,并返回该对象的指针
virtual bool isTouched(void) const =0
判断当前文档对象是否被“触碰”过
virtual void getOutListRecursive(std::vector< App::IDocumentObject * > &objList) const =0
递归地获取当前文档对象的所有输出对象及其子输出对象,并将这些对象转换为接口类型的指针后添加到给定的 std::vector 中
virtual const char * getNameInBimPart(void) const =0
获取当前文档对象在BimPart中的名称
virtual IPropertyAccessor * getPropertyAccessor()=0
获取属性访问器
virtual bool hasChildElement() const =0
检查当前文档对象是否有任何子元素
virtual void addChild(App::IDocumentObject *pObj)=0
添加子对象
virtual App::IDocument * getIDocument(void)=0
Definition IDocumentObject.h:35
属性访问器接口类
Definition IPropertyAccessor.h:62
Definition BaseFigureFactory.h:28