BIMHome v1.0.0
BIMHome接口文档说明
IDocumentObject.h
浏览该文件的文档.
1/************************************************************************
2* @file IDocumentObject.h
3*
4* @brief 文档对象类
5*
6* @details 文档对象类
7*
8* @author dixu
9*
10* @version 1.0
11*
12* @date 2014-9-8
13*
14* @license 北京华科软科技有限公司
15*
16*************************************************************************/
17
18#ifndef BIMHOMEAPP_APP_IDOCUMENTOBJECT_H
19#define BIMHOMEAPP_APP_IDOCUMENTOBJECT_H
20
21#include "BHGlobal.h"
22#include <Base/Vector3D.h>
23#include <Base/BoundBox.h>
24#include <set>
25#include <map>
26#include "boost/any.hpp"
27
28namespace App
29{
30 class IDocument;
31 class DocumentObjectObserverDelegate;
32 class IPropertyAccessor;
33
34 class AppExport IDocumentObject
35 {
36 public:
49 IDocument* pParent,
50 const char* pObjectName = nullptr,
51 bool isNew = true,
52 const char* viewType = nullptr,
53 bool isPartial = false);
54
64 IDocument* pParent,
65 const char* pObjectName = nullptr,
66 const char* pDocObjDelegateName = nullptr);
67
69
75 virtual const char* getViewProviderName(void) const = 0;
76
82 virtual const char* getNameInBimPart(void) const = 0;
83
89 virtual const char* getStatusString(void) const = 0;
90
96 virtual App::IDocument* getDocument(void) const = 0;
97
103 virtual void setDocument(App::IDocument* pDoc) = 0;
110 virtual std::string getExportName(bool forced = false) const = 0;
111
117 virtual std::string getNameWithDocId() = 0;
118
126 virtual void getInListEx(std::set<App::IDocumentObject*>& inSet,
127 bool recursive, std::vector<App::IDocumentObject*>* inList = nullptr) const = 0;
128
134 virtual void getInList(std::vector<App::IDocumentObject*>& objList) const = 0;
135
141 virtual void getOutList(std::vector<App::IDocumentObject*>& objList) const = 0;
142
148 virtual void getInListRecursive(std::vector<App::IDocumentObject*>& objList) const = 0;
149
155 virtual void getOutListRecursive(std::vector<App::IDocumentObject*>& objList) const = 0;
156
163 virtual void getSubObjectList(const char* subname, std::vector<IDocumentObject*>& objList) const = 0;
164
171 virtual void getParents(int depth, std::vector<std::pair<App::IDocumentObject*, std::string>>& iobjList) const = 0;
172
180 virtual int setElementVisible(const char* element, bool visible) = 0;
186 virtual long getId() const = 0;
187
193 virtual std::string getLabel() const = 0;
194
200 virtual void setLabel(const std::string& label) = 0;
201
208 virtual bool recomputeFeature(bool recursive = false) = 0;
209
215 virtual bool isTouched(void) const = 0;
216
224 virtual bool adjustRelativeLinks(const std::set<App::IDocumentObject*>& inList, std::set<App::IDocumentObject*>* visited = nullptr) = 0;
225
231 virtual bool hasChildElement() const = 0;
232
241 virtual bool redirectSubName(std::ostringstream& ss, IDocumentObject* topParent, IDocumentObject* child) const = 0;
242
249 virtual std::vector<std::string> getSubObjects(int reason = 0) const = 0;
250
257 virtual int isElementVisible(const char* element) const = 0;
258
264 virtual short mustExecute(void) const = 0;
265
271 virtual void touch(bool noRecompute = false) = 0;
272
278 virtual bool isImporting() const = 0;
279
284 virtual void enforceRecompute() = 0;
285
291 virtual Base::BoundBox3d getBoundingBox(bool isLocal) = 0;
292
299 virtual Base::Vector3d getLocationInfo(bool isLocal) = 0;
300
301 /* *
302 * @brief 获取父类节点对象
303 * @details 获取父类节点对象
304 * @return 父节点指针
305 */
306 virtual App::IDocument* getIDocument(void) = 0;
307
313 virtual std::map<std::string, std::string> getPropertiesList() = 0;
314
321
328
334 virtual void* getViewProviderDelegate()const = 0;
335
342 virtual bool copyShapeFrom(App::IDocumentObject* pObj) = 0;
343
349 virtual void addChild(App::IDocumentObject* pObj) = 0;
350
356 virtual void removeChild(App::IDocumentObject* pObj) = 0;
357 };
358}
359
360#endif // BIMHOMEAPP_APP_ANNOTATION_H
文档对象观察者代理基类
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