BIMHome v1.0.0
BIMHome接口文档说明
DocumentObjectTool.h
浏览该文件的文档.
1/************************************************************************
2* @file DocumentObjectTool.h
3*
4* @brief DocumentObject工具类
5*
6* @details DocumentObject工具类
7*
8* @author sunpeng
9*
10* @version 版本号 V0.1
11*
12* @date 2025-6-18
13*
14* @license 北京华科软科技有限公司
15*
16*************************************************************************/
17
18#ifndef PLATFORMALGORITHM_INTERFACE_DOCUMENTOBJECTTOOL_H
19#define PLATFORMALGORITHM_INTERFACE_DOCUMENTOBJECTTOOL_H
20
21#include <BHGlobal.h>
22#include <string>
23#include <vector>
24#include <memory>
25#include "Base/Vector3D.h"
26
27namespace App {
28 class IDocument;
29 class IDocumentObject;
30}
31
32namespace Base {
33 enum class Geometry2DType;
34 class Placement;
35
36}
37
38namespace PlatformAlgorithm
39{
52 {
59 };
60
61 class PlatformAlgorithmEXPORTS DocumentObjectTool
62 {
63 public:
73 static std::vector<App::IDocumentObject*> getSubElements(App::IDocumentObject* pObj, const TopShapeEnum type, const std::string& objName = "SubElement", App::IDocument* pParentDoc = nullptr);
74
83
92
100
108
115 static std::vector<Base::Vector3d> getAllCurvePoints(std::vector<App::IDocumentObject*> pObj);
116
123 static std::vector<Base::Vector3d> getAllCurveMidPoints(std::vector<App::IDocumentObject*> pObj);
124
131 static std::vector<Base::Vector3d> getAllFaceCenterPoints(std::vector<App::IDocumentObject*> pObj);
132
139 static std::vector<Base::Vector3d> getAllIntersectionPoints(std::vector<App::IDocumentObject*> pObj);
140
141 //修改位置
149
158
166
167
168 };
169}
170
171#endif //PLATFORMALGORITHM_INTERFACE_DOCUMENTOBJECTHELPER_H
文档接口类
Definition IDocument.h:43
Definition IDocumentObject.h:35
Placement 类,表示三维空间中的位置和旋转
Definition Placement.h:34
static std::vector< Base::Vector3d > getAllCurvePoints(std::vector< App::IDocumentObject * > pObj)
获取所有线的端点
static std::vector< Base::Vector3d > getAllCurveMidPoints(std::vector< App::IDocumentObject * > pObj)
获取所有线的中点
static bool isSame(App::IDocumentObject *pObj1, App::IDocumentObject *pObj2)
判断两个对象的形体是否相同
static void updateGeoFeaturePlacement(App::IDocumentObject *pObj, const Base::Placement &placement)
更新GeoFeature 类型的对象的位置放置信息
static std::vector< App::IDocumentObject * > getSubElements(App::IDocumentObject *pObj, const TopShapeEnum type, const std::string &objName="SubElement", App::IDocument *pParentDoc=nullptr)
根据类型获取子元素
static TopShapeEnum getTopShapeType(App::IDocumentObject *pObj)
获取文档对象的拓扑类型
static int getSubElementsNum(App::IDocumentObject *pObj, const TopShapeEnum type)
获取子元素的数量
static std::vector< Base::Vector3d > getAllFaceCenterPoints(std::vector< App::IDocumentObject * > pObj)
获取所有面的面心
static Base::Geometry2DType getShapeLineType(App::IDocumentObject *pObj)
获取文档对象的二维几何类型
static bool getFeaturePlacement(App::IDocumentObject *pObj, Base::Placement &placement)
获取其位置放置信息
static std::vector< Base::Vector3d > getAllIntersectionPoints(std::vector< App::IDocumentObject * > pObj)
获取所有交点
static void updateGeoFeatureLocalPlacement(App::IDocumentObject *pObj, const Base::Placement &placement)
更新GeoFeature 类型的对象的本地放置信息
Definition DocumentObjectTool.h:62
Definition BaseFigureFactory.h:28
Geometry2DType
Definition Geometry2D.h:28
Definition BaseFigureFactory.h:24
TopShapeEnum
枚举类型,定义了几何形状的拓扑类型
Definition DocumentObjectTool.h:52
@ TopEDGE
Definition DocumentObjectTool.h:57
@ TopVERTEX
Definition DocumentObjectTool.h:58
@ TopSOLID
Definition DocumentObjectTool.h:53
@ TopSHELL
Definition DocumentObjectTool.h:54
@ TopWIRE
Definition DocumentObjectTool.h:56
@ TopFACE
Definition DocumentObjectTool.h:55
Definition BaseFigureFactory.h:33