BIMHome v1.0.0
BIMHome接口文档说明
TransformFactory.h
浏览该文件的文档.
1/************************************************************************
2* @file TransformFactory.h
3*
4* @brief 变换工厂类
5*
6* @details 变换工厂类
7*
8* @author sunpeng
9*
10* @version 版本号 V0.1
11*
12* @date 2025-6-17
13*
14* @license 北京华科软科技有限公司
15*
16*************************************************************************/
17
18#ifndef PLATFORMALGORITHM_INTERFACE_TRANSFORMFACTORY_H
19#define PLATFORMALGORITHM_INTERFACE_TRANSFORMFACTORY_H
20
21#include <BHGlobal.h>
22#include <string>
23#include <vector>
24#include "Base/Vector3D.h"
25
26namespace App {
27 class IDocument;
28 class IDocumentObject;
29}
30
31namespace Base
32{
33 class Axis2;
34}
35
36namespace PlatformAlgorithm
37{
38 class PlatformAlgorithmEXPORTS TransformFactory
39 {
40 public:
41
50 static App::IDocumentObject* translation(App::IDocumentObject* pObj, const Base::Vector3d& vec, const std::string& objName = "Translation", App::IDocument* pParentDoc = nullptr);
51
61 static App::IDocumentObject* translation(App::IDocumentObject* pObj, const Base::Vector3d& pt1, const Base::Vector3d& pt2, const std::string& objName = "Translation", App::IDocument* pParentDoc = nullptr);
62
73 static App::IDocumentObject* rotation(App::IDocumentObject* pObj, const Base::Vector3d& loc, const Base::Vector3d& dir, const double ang, const std::string& objName = "Rotation", App::IDocument* pParentDoc = nullptr);
74
84 static App::IDocumentObject* scale(App::IDocumentObject* pObj, const Base::Vector3d& point, const double scale, const std::string& objName = "Scale", App::IDocument* pParentDoc = nullptr);
85
94 static App::IDocumentObject* mirror(App::IDocumentObject* pObj, const Base::Vector3d& pt, const std::string& objName = "Mirror", App::IDocument* pParentDoc = nullptr);
95
105 static App::IDocumentObject* mirror(App::IDocumentObject* pObj, const Base::Vector3d& locPoint, const Base::Vector3d& dir, const std::string& objName = "Mirror", App::IDocument* pParentDoc = nullptr);
106
117 static App::IDocumentObject* mirror(App::IDocumentObject* pObj, const Base::Vector3d& locPoint, const Base::Vector3d& dir1, const Base::Vector3d& dir2, const std::string& objName = "Mirror", App::IDocument* pParentDoc = nullptr);
118
129 static App::IDocumentObject* createMirroring(App::IDocumentObject* pIObj, const Base::Vector3d& vBase, const Base::Vector3d& vNormal, const std::string& sObjname = "Mirror", App::IDocument* pIDoc = nullptr);
130
140 static void updateMirroringParameters(App::IDocumentObject* pIObj, App::IDocumentObject* pIsource, const Base::Vector3d& vBase, const Base::Vector3d& vNormal);
141
151 static App::IDocumentObject* transformation(App::IDocumentObject* pObj, const Base::Axis2& fromSystem1, const Base::Axis2& toSystem2, const std::string& objName = "Transformation", App::IDocument* pParentDoc = nullptr);
152 };
153}
154
155#endif //PLATFORMALGORITHM_INTERFACE_TRANSFORMFACTORY_H
文档接口类
Definition IDocument.h:43
Definition IDocumentObject.h:35
Axis2 类,用于表示三维空间中的二维坐标系
Definition Axis2.h:33
static App::IDocumentObject * createMirroring(App::IDocumentObject *pIObj, const Base::Vector3d &vBase, const Base::Vector3d &vNormal, const std::string &sObjname="Mirror", App::IDocument *pIDoc=nullptr)
创建镜像
static void updateMirroringParameters(App::IDocumentObject *pIObj, App::IDocumentObject *pIsource, const Base::Vector3d &vBase, const Base::Vector3d &vNormal)
更新镜像
static App::IDocumentObject * scale(App::IDocumentObject *pObj, const Base::Vector3d &point, const double scale, const std::string &objName="Scale", App::IDocument *pParentDoc=nullptr)
对指定对象执行缩放变换。
static App::IDocumentObject * rotation(App::IDocumentObject *pObj, const Base::Vector3d &loc, const Base::Vector3d &dir, const double ang, const std::string &objName="Rotation", App::IDocument *pParentDoc=nullptr)
对指定对象执行旋转变换
static App::IDocumentObject * mirror(App::IDocumentObject *pObj, const Base::Vector3d &locPoint, const Base::Vector3d &dir, const std::string &objName="Mirror", App::IDocument *pParentDoc=nullptr)
对指定对象执行镜像变换
static App::IDocumentObject * mirror(App::IDocumentObject *pObj, const Base::Vector3d &locPoint, const Base::Vector3d &dir1, const Base::Vector3d &dir2, const std::string &objName="Mirror", App::IDocument *pParentDoc=nullptr)
对指定对象执行镜像变换
static App::IDocumentObject * transformation(App::IDocumentObject *pObj, const Base::Axis2 &fromSystem1, const Base::Axis2 &toSystem2, const std::string &objName="Transformation", App::IDocument *pParentDoc=nullptr)
对指定对象执行坐标系间的变换操作
static App::IDocumentObject * translation(App::IDocumentObject *pObj, const Base::Vector3d &vec, const std::string &objName="Translation", App::IDocument *pParentDoc=nullptr)
执行平移变换,创建变换后的新对象
static App::IDocumentObject * mirror(App::IDocumentObject *pObj, const Base::Vector3d &pt, const std::string &objName="Mirror", App::IDocument *pParentDoc=nullptr)
对指定对象执行镜像变换
static App::IDocumentObject * translation(App::IDocumentObject *pObj, const Base::Vector3d &pt1, const Base::Vector3d &pt2, const std::string &objName="Translation", App::IDocument *pParentDoc=nullptr)
执行两点间位移向量对指定对象执行平移变换
Definition TransformFactory.h:39
Definition BaseFigureFactory.h:28
Definition BaseFigureFactory.h:24
Definition BaseFigureFactory.h:33