BIMHome v1.0.0
BIMHome接口文档说明
BooleanFactory.h
浏览该文件的文档.
1/************************************************************************
2* @file BooleanFactory.h
3*
4* @brief 布尔运算工厂类
5*
6* @details 布尔运算工厂类
7*
8* @author sunpeng
9*
10* @version 版本号 V0.1
11*
12* @date 2025-6-10
13*
14* @license 北京华科软科技有限公司
15*
16*************************************************************************/
17
18#ifndef PLATFORMALGORITHM_INTERFACE_BOOLEANFACTORY_H
19#define PLATFORMALGORITHM_INTERFACE_BOOLEANFACTORY_H
20
21#include <BHGlobal.h>
22#include <string>
23#include <vector>
24
25namespace App {
26 class IDocument;
27 class IDocumentObject;
28}
29
30namespace PlatformAlgorithm
31{
32 class PlatformAlgorithmEXPORTS BooleanFactory
33 {
34 public:
44 static App::IDocumentObject* createCommon(App::IDocumentObject* pObj1, App::IDocumentObject* pObj2, const std::string& objName = "Common", App::IDocument* pParentDoc = nullptr);
45
55 static App::IDocumentObject* createCommon(std::vector<App::IDocumentObject*> arguments, std::vector<App::IDocumentObject*> tools, const std::string& objName = "Common", App::IDocument* pParentDoc = nullptr);
56
66 static App::IDocumentObject* createCut(App::IDocumentObject* pObj1, App::IDocumentObject* pObj2, const std::string& objName = "Cut", App::IDocument* pParentDoc = nullptr);
67
77 static App::IDocumentObject* createCut(std::vector<App::IDocumentObject*> arguments, std::vector<App::IDocumentObject*> tools, const std::string& objName = "Cut", App::IDocument* pParentDoc = nullptr);
78
88 static App::IDocumentObject* createFuse(App::IDocumentObject* pObj1, App::IDocumentObject* pObj2, const std::string& objName = "Fuse", App::IDocument* pParentDoc = nullptr);
89
99 static App::IDocumentObject* createFuse(std::vector<App::IDocumentObject*> arguments, std::vector<App::IDocumentObject*> tools, const std::string& objName = "Fuse", App::IDocument* pParentDoc = nullptr);
100
110 static App::IDocumentObject* createSection(App::IDocumentObject* pObj1, App::IDocumentObject* pObj2, const std::string& objName = "Section", App::IDocument* pParentDoc = nullptr);
111
121 static App::IDocumentObject* createSection(std::vector<App::IDocumentObject*> arguments, std::vector<App::IDocumentObject*> tools, const std::string& objName = "Section", App::IDocument* pParentDoc = nullptr);
122
132 static std::vector<App::IDocumentObject*> createSplitter(std::vector<App::IDocumentObject*> arguments, std::vector<App::IDocumentObject*> tools, const std::string& objName = "Splitter", App::IDocument* pParentDoc = nullptr);
133
145 bool bRefine, const std::string& sObjname = "Cut", App::IDocument* pIDoc = nullptr);
146
157 bool bRefine);
158
170 bool bRefine, const std::string& sObjname = "Fuse", App::IDocument* pIDoc = nullptr);
171
182 bool bRefine);
183
193 static App::IDocumentObject* createMultiFuse(const std::vector<App::IDocumentObject*>& vShapes,
194 bool bRefine, const std::string& sObjname = "MultiFuse", App::IDocument* pIDoc = nullptr);
195
204 static void updateMultiFuseParameters(App::IDocumentObject* pIObj, const std::vector<App::IDocumentObject*>& vShapes,
205 bool bRefine);
206
218 bool bRefine, const std::string& sObjname = "Common", App::IDocument* pIDoc = nullptr);
219
230 bool bRefine);
231
241 static App::IDocumentObject* createMultiCommon(const std::vector<App::IDocumentObject*>& vShapes,
242 bool bRefine, const std::string& sObjname = "MultiCommon", App::IDocument* pIDoc = nullptr);
243
252 static void updateMultiCommonParameters(App::IDocumentObject* pIObj, const std::vector<App::IDocumentObject*>& vShapes,
253 bool bRefine);
254
266 bool bRefine, const std::string& sObjname = "Section", App::IDocument* pIDoc = nullptr);
267
278
279
280
281 };
282}
283
284#endif //PLATFORMALGORITHM_INTERFACE_BOOLEANFACTORY_H
文档接口类
Definition IDocument.h:43
Definition IDocumentObject.h:35
static void updateFuseParameters(App::IDocumentObject *pIObj, App::IDocumentObject *pBase, App::IDocumentObject *pTool, bool bRefine)
布尔运算并集更新
static void updateMultiFuseParameters(App::IDocumentObject *pIObj, const std::vector< App::IDocumentObject * > &vShapes, bool bRefine)
更新并集
static void updateMultiCommonParameters(App::IDocumentObject *pIObj, const std::vector< App::IDocumentObject * > &vShapes, bool bRefine)
更新交集
static App::IDocumentObject * createCut(App::IDocumentObject *pObj1, App::IDocumentObject *pObj2, const std::string &objName="Cut", App::IDocument *pParentDoc=nullptr)
布尔运算差集
static App::IDocumentObject * createCut(std::vector< App::IDocumentObject * > arguments, std::vector< App::IDocumentObject * > tools, const std::string &objName="Cut", App::IDocument *pParentDoc=nullptr)
批量布尔运算差集
static App::IDocumentObject * createFuse(App::IDocumentObject *pObj1, App::IDocumentObject *pObj2, const std::string &objName="Fuse", App::IDocument *pParentDoc=nullptr)
布尔运算并集
static App::IDocumentObject * createSection(App::IDocumentObject *pObj1, App::IDocumentObject *pObj2, const std::string &objName="Section", App::IDocument *pParentDoc=nullptr)
布尔运算截面
static App::IDocumentObject * createCut(App::IDocumentObject *pBase, App::IDocumentObject *pTool, bool bRefine, const std::string &sObjname="Cut", App::IDocument *pIDoc=nullptr)
布尔运算差集
static App::IDocumentObject * createCommon(std::vector< App::IDocumentObject * > arguments, std::vector< App::IDocumentObject * > tools, const std::string &objName="Common", App::IDocument *pParentDoc=nullptr)
批量布尔运算交集
static App::IDocumentObject * createCommon(App::IDocumentObject *pBase, App::IDocumentObject *pTool, bool bRefine, const std::string &sObjname="Common", App::IDocument *pIDoc=nullptr)
布尔运算交集
static App::IDocumentObject * createSection(App::IDocumentObject *pBase, App::IDocumentObject *pTool, bool bRefine, const std::string &sObjname="Section", App::IDocument *pIDoc=nullptr)
布尔运算截面
static void updateCutParameters(App::IDocumentObject *pIObj, App::IDocumentObject *pBase, App::IDocumentObject *pTool, bool bRefine)
布尔运算差集更新
static App::IDocumentObject * createFuse(App::IDocumentObject *pBase, App::IDocumentObject *pTool, bool bRefine, const std::string &sObjname="Fuse", App::IDocument *pIDoc=nullptr)
布尔运算并集
static App::IDocumentObject * createMultiFuse(const std::vector< App::IDocumentObject * > &vShapes, bool bRefine, const std::string &sObjname="MultiFuse", App::IDocument *pIDoc=nullptr)
多个模型求并集
static App::IDocumentObject * createCommon(App::IDocumentObject *pObj1, App::IDocumentObject *pObj2, const std::string &objName="Common", App::IDocument *pParentDoc=nullptr)
布尔运算交集
static App::IDocumentObject * createMultiCommon(const std::vector< App::IDocumentObject * > &vShapes, bool bRefine, const std::string &sObjname="MultiCommon", App::IDocument *pIDoc=nullptr)
多个模型求交集
static void updateCommonParameters(App::IDocumentObject *pIObj, App::IDocumentObject *pBase, App::IDocumentObject *pTool, bool bRefine)
布尔运算交集更新
static App::IDocumentObject * createSection(std::vector< App::IDocumentObject * > arguments, std::vector< App::IDocumentObject * > tools, const std::string &objName="Section", App::IDocument *pParentDoc=nullptr)
批量布尔运算截面
static void updateSectionParameters(App::IDocumentObject *pIObj, App::IDocumentObject *pBase, App::IDocumentObject *pTool, bool bRefine)
布尔运算截面更新
static App::IDocumentObject * createFuse(std::vector< App::IDocumentObject * > arguments, std::vector< App::IDocumentObject * > tools, const std::string &objName="Fuse", App::IDocument *pParentDoc=nullptr)
批量布尔运算并集
static std::vector< App::IDocumentObject * > createSplitter(std::vector< App::IDocumentObject * > arguments, std::vector< App::IDocumentObject * > tools, const std::string &objName="Splitter", App::IDocument *pParentDoc=nullptr)
批量分割运算
Definition BooleanFactory.h:33
Definition BaseFigureFactory.h:28
Definition BaseFigureFactory.h:33