BIMHome v1.0.0
BIMHome接口文档说明
CurveFactory.h
浏览该文件的文档.
1/************************************************************************
2* @file CurveFactory.h
3*
4* @brief ߹
5*
6* @details ߹ -- ַͨʽ(ֱߣ߶Σȸ)
7*
8* @author sunpeng
9*
10* @version 汾 V0.1
11*
12* @date 2025-6-13
13*
14* @license Ƽ޹˾
15*
16*************************************************************************/
17
18#ifndef PLATFORMALGORITHM_INTERFACE_CURVEFACTORY_H
19#define PLATFORMALGORITHM_INTERFACE_CURVEFACTORY_H
20
21#include <BHGlobal.h>
22#include <string>
23#include <vector>
24#include <memory>
25#include "Base/Placement.h"
26
27namespace App {
28 class IDocument;
29 class IDocumentObject;
30}
31
32namespace Base {
33 class PolyLine;
34 class Circle;
35 class Placement;
36 class Line;
37 class Line2D;
38 class LineSegment;
39 class ArcofCircle;
40 class LineSegment2D;
41 class ArcofCircle2D;
42 class Ellipse;
43 class BSplineCurve;
44 class BSplineCurve2D;
45 class Circle2D;
46 class Ellipse2D;
47 class PolyLine2D;
48 class Hyperbola;
49 class Hyperbola2D;
50 class Parabola;
51 class Parabola2D;
52}
53
54namespace PlatformAlgorithm
55{
56 class PlatformAlgorithmEXPORTS CurveFactory
57 {
58 public:
59 //******************************* ֱ *******************************
70 const std::string& objName = "Line", const Base::Placement& placement = Base::Placement(), App::IDocument* pParentDoc = nullptr);
71
78 static void updateLine(App::IDocumentObject* pline, const Base::Line& line);
79
90 const std::string& objName = "Line2D", const Base::Placement& placement = Base::Placement(), App::IDocument* pParentDoc = nullptr);
91
98 static void updateLine2D(App::IDocumentObject* pline, const Base::Line2D& line2d);
99
100 //******************************* ֱ߶ *******************************
111 const std::string& objName = "LineSegment", const Base::Placement& placement = Base::Placement(), App::IDocument* pParentDoc = nullptr);
112
119 static void updateLineSegment(App::IDocumentObject* plinesegmrnt, const Base::LineSegment& linesegment);
120
131 const std::string& objName = "LineSegment2D", const Base::Placement& placement = Base::Placement(), App::IDocument* pParentDoc = nullptr);
132
139 static void updateLineSegment2D(App::IDocumentObject* plinesegmrnt2d, const Base::LineSegment2D& linesegment2d);
140
141 //******************************* B *******************************
152 const std::string& objName = "BSpline", const Base::Placement& placement = Base::Placement(), App::IDocument* pParentDoc = nullptr);
153
160 static void updateBSpline(App::IDocumentObject* pBSpline, const Base::BSplineCurve& BSpline);
161
172 const std::string& objName = "BSpline2D", const Base::Placement& placement = Base::Placement(), App::IDocument* pParentDoc = nullptr);
173
180 static void updateBSpline2D(App::IDocumentObject* pBSpline2d, const Base::BSplineCurve2D& BSpline2d);
181
194 static App::IDocumentObject* CreateSpaceApproximateBSpline(const std::vector<Base::Vector3d>& listPoint, int nDegMin, int nDegMax, int nContinuity, const std::string& objName = "SpaceApproximateBSpline", const Base::Placement& placement = Base::Placement(), App::IDocument* pDoc = nullptr);
195
205 static void updateApproximateBSplineParameters(App::IDocumentObject* pObj, const std::vector<Base::Vector3d>& listPoint, int nDegMin, int nDegMax, int nContinuity);
206
217 static App::IDocumentObject* CreateSpaceInterpolateBSpline(const std::vector<Base::Vector3d>& listPoint, bool bPeriodicFlag = false, const std::string& objName = "SpaceInterpolateBSpline", const Base::Placement& placement = Base::Placement(), App::IDocument* pDoc = nullptr);
218
226 static void updateInterpolateBSplineParameters(App::IDocumentObject* pObj, const std::vector<Base::Vector3d>& listPoint, bool bPeriodicFlag);
227
239 static App::IDocumentObject* CreateSpaceInterpolateBSpline(const std::vector<Base::Vector3d>& listPoint, const std::vector<double>& listParameter, bool bPeriodicFlag = false, const std::string& objName = "SpaceInterpolateBSpline", const Base::Placement& placement = Base::Placement(), App::IDocument* pIDoc = nullptr);
240
249 static void updateInterpolateBSplineParameters(App::IDocumentObject* pObj, const std::vector<Base::Vector3d>& listPoint, std::vector<double>& listParameter, bool bPeriodicFlag);
250
251 //******************************* ˫ *******************************
252
263 const std::string& objName = "Hyperbola", const Base::Placement& placement = Base::Placement(), App::IDocument* pParentDoc = nullptr);
264
272
283 const std::string& objName = "Hyperbola2D", const Base::Placement& placement = Base::Placement(), App::IDocument* pParentDoc = nullptr);
284
291 static void updateHyperbola2D(App::IDocumentObject* pHyperbola2d, const Base::Hyperbola2D& Hyperbola2D);
292
293 //******************************* *******************************
294
305 const std::string& objName = "Parabola", const Base::Placement& placement = Base::Placement(), App::IDocument* pParentDoc = nullptr);
306
314
325 const std::string& objName = "Parabola2D", const Base::Placement& placement = Base::Placement(), App::IDocument* pParentDoc = nullptr);
326
333 static void updateParabola2D(App::IDocumentObject* pParabola2d, const Base::Parabola2D& Parabola2D);
334
335 //******************************* ߶ *******************************
346 const std::string& objName = "PolyLine", const Base::Placement& placement = Base::Placement(), App::IDocument* pParentDoc = nullptr);
347
354 static void updatePolyLine(App::IDocumentObject* pPolyLine, const Base::PolyLine& polyLine);
355
366 const std::string& objName = "PolyLine2D", const Base::Placement& placement = Base::Placement(), App::IDocument* pParentDoc = nullptr);
367
374 static void updatePolyLine2D(App::IDocumentObject* pPolyLine, const Base::PolyLine2D& polyLine2d);
375
376 //******************************* *******************************
386 static App::IDocumentObject* createPolygon(const Base::Circle& circle, const double& edgenum, const std::string& objName = "Polygon", App::IDocument* pParentDoc = nullptr);
387
395 static void updatePolygon(App::IDocumentObject* pPolygon, const Base::Circle& circle, const double& edgenum);
396
397
398 //******************************* ƴ *******************************
409 const std::vector<App::IDocumentObject*>& curveList,
410 const std::string& objName = "SplicingCurve",
411 const Base::Placement& placement = Base::Placement(),
412 App::IDocument* pDoc = nullptr);
413
425 const std::vector<App::IDocumentObject*>& curveList,
426 const std::vector<std::string>& subElementNameList,
427 const std::string& objName = "SplicingCurve",
428 const Base::Placement& placement = Base::Placement(),
429 App::IDocument* pDoc = nullptr);
430
437 static void updateSplicingCurveParameters(App::IDocumentObject* pObj, const std::vector<App::IDocumentObject*>& curveList);
438
446 static void updateSplicingCurveParameters(App::IDocumentObject* pObj, const std::vector<App::IDocumentObject*>& curveList, const std::vector<std::string>& subElementNameList);
447
458 static App::IDocumentObject* CreateSpaceWire(const std::vector<Base::Vector3d>& pts, bool isPOlygon = false, const std::string& objName = "SpaceWire", const Base::Placement& placement = Base::Placement(), App::IDocument* pDoc = nullptr);
459
466 static void updateSpaceWireParameters(App::IDocumentObject* pObj, const std::vector<Base::Vector3d>& pointArray);
467
468 //******************************* *******************************
480 static App::IDocumentObject* CreateSpaceArc(const Base::Vector3d& startPt, const Base::Vector3d& middlePt, const Base::Vector3d& endPt, const std::string& objName = "SpaceCircleArc", const Base::Placement& placement = Base::Placement(), App::IDocument* pDoc = nullptr);
481
490 static void updateCircleArcParameters(App::IDocumentObject* pObj, const Base::Vector3d& startPt, const Base::Vector3d& middlePt, const Base::Vector3d& endPt);
491
505 static App::IDocumentObject* CreateSpaceArc(const Base::Vector3d& centerPt, const Base::Vector3d& normal, double radius, double startAngle, double endAngle, const std::string& objName = "SpaceCircleArc", const Base::Placement& placement = Base::Placement(), App::IDocument* pDoc = nullptr);
506
517 static void updateCircleArcParameters(App::IDocumentObject* pObj, const Base::Vector3d& centerPt, const Base::Vector3d& normal,
518 double radius, double startAngle, double endAngle);
519
532 static App::IDocumentObject* CreateSpaceArc(const Base::Vector3d& centerPt, const Base::Vector3d& startPt, const Base::Vector3d& lastPt, bool bReverse = false, const std::string& objName = "SpaceCircleArc", const Base::Placement& placement = Base::Placement(), App::IDocument* pDoc = nullptr);
533
543 static void updateCircleArcParameters(App::IDocumentObject* pObj, const Base::Vector3d& centerPt, const Base::Vector3d& startPt,
544 const Base::Vector3d& lastPt, bool bScene);
545
546 //******************************* Բ *******************************
557 const std::string& objName = "ArcofCircle", const Base::Placement& placement = Base::Placement(), App::IDocument* pParentDoc = nullptr);
558
565 static void updateArcofCircle(App::IDocumentObject* parcofcircle, const Base::ArcofCircle& arcofcircle);
566
577 const std::string& objName = "ArcofCircle2D", const Base::Placement& placement = Base::Placement(), App::IDocument* pParentDoc = nullptr);
584 static void updateArcofCircle2D(App::IDocumentObject* parcofcircle2d, const Base::ArcofCircle2D& arcofcircle2d);
585
586 //******************************* Բ *******************************
602 static App::IDocumentObject* CreateSpaceEllipseArc(double fMajorRadius, double fMinorRadius, const Base::Vector3d& oXDir, const Base::Vector3d& oZDir, const Base::Vector3d& oCenter, double fStartAngle, double fEndAngle, const std::string& objName = "SpaceEllipseArc", const Base::Placement& placement = Base::Placement(), App::IDocument* pDoc = nullptr);
603
616 static void updateEllipseArcParameters(App::IDocumentObject* pObj, double fMajorRadius, double fMinorRadius, const Base::Vector3d& oXDir,
617 const Base::Vector3d& oZDir, const Base::Vector3d& oCenter, double fStartAngle, double fEndAngle);
618
634 static App::IDocumentObject* CreateSpaceEllipseArc(double fMajorRadius, double fMinorRadius, const Base::Vector3d& oXDir, const Base::Vector3d& oZDir, const Base::Vector3d& oCenter, const Base::Vector3d& oStartPoint, double fSpan, const std::string& objName = "SpaceEllipseArc", const Base::Placement& placement = Base::Placement(), App::IDocument* pDoc = nullptr);
635
648 static void updateEllipseArcParameters(App::IDocumentObject* pObj, double fMajorRadius, double fMinorRadius, const Base::Vector3d& oXDir,
649 const Base::Vector3d& oZDir, const Base::Vector3d& oCenter, const Base::Vector3d& oStartPoint, double fSpan);
650
666 static App::IDocumentObject* CreateSpaceEllipseArc(double fMajorRadius, double fMinorRadius, const Base::Vector3d& oXDir, const Base::Vector3d& oZDir, const Base::Vector3d& oCenter, const Base::Vector3d& oStartPoint, const Base::Vector3d& oEndPoint, const std::string& objName = "SpaceEllipseArc", const Base::Placement& placement = Base::Placement(), App::IDocument* pDoc = nullptr);
667
680 static void updateEllipseArcParameters(App::IDocumentObject* pObj, double fMajorRadius, double fMinorRadius, const Base::Vector3d& oXDir,
681 const Base::Vector3d& oZDir, const Base::Vector3d& oCenter, const Base::Vector3d& oStartPoint, const Base::Vector3d& oEndPoint);
682
683 //******************************* Բ *******************************
694 const std::string& objName = "Circle", const Base::Placement& placement = Base::Placement(), App::IDocument* pParentDoc = nullptr);
695
702 static void updateCircle(App::IDocumentObject* pCircle, const Base::Circle& circle);
703
714 const std::string& objName = "Circle2D", const Base::Placement& placement = Base::Placement(), App::IDocument* pParentDoc = nullptr);
715
722 static void updateCircle2D(App::IDocumentObject* pCircle, const Base::Circle2D& circle2d);
723
724 //******************************* Բ *******************************
735 const std::string& objName = "Ellipse", const Base::Placement& placement = Base::Placement(), App::IDocument* pParentDoc = nullptr);
736
744
755 const std::string& objName = "Ellipse2D", const Base::Placement& placement = Base::Placement(), App::IDocument* pParentDoc = nullptr);
756
763 static void updateEllipse2D(App::IDocumentObject* pEllipse2d, const Base::Ellipse2D& Ellipse2D);
764
765 //******************************* ռԲ *******************************
778 const Base::Vector3d& center,
779 const Base::Vector3d& axis,
780 const double radius,
781 const std::string& objName = "SpaceCircle",
782 const Base::Placement& placement = Base::Placement(),
783 App::IDocument* pDoc = nullptr);
784
793 void updateSpaceCircleParameters(App::IDocumentObject* pObj, const Base::Vector3d& center, const Base::Vector3d& axis, double radius);
794
795 //******************************* ռԲ *******************************
810 const Base::Vector3d& center,
811 const Base::Vector3d& xDir,
812 const Base::Vector3d& yDir,
813 const double wRadius,
814 const double lRadius,
815 const std::string& objName = "SpaceEllipse",
816 const Base::Placement& placement = Base::Placement(),
817 App::IDocument* pDoc = nullptr);
818
829 static void updateSpaceEllipseParameters(App::IDocumentObject* pObj, const Base::Vector3d& center, const Base::Vector3d& xDir, const Base::Vector3d& yDir, double wRadius, double lRadius);
830
831 //******************************* Բֱƴģ *******************************
845 const Base::Vector3d& center,
846 const Base::Vector3d& normal,
847 const double radius,
848 const double angle,
849 const std::string& objName = "SplicingCircleAndLine",
850 const Base::Placement& placement = Base::Placement(),
851 App::IDocument* pDoc = nullptr);
852
862 static void updateSplicingCircleAndLinParameters(App::IDocumentObject* pObj, const Base::Vector3d& center, const Base::Vector3d& normal, double radius, double angle);
863
864
884 App::IDocument* pDoc,
886 const std::string& obj1Name,
888 const std::string& obj2Name,
890 const std::string& obj3Name,
891 const int& type,
892 const int& radius,
893 bool isArc,
894 const int& angleStart,
895 const int& angleEnd,
896 const std::string& objName = "Circle"
897 );
898
916 App::IDocument* pDoc,
918 const std::string& obj1Name,
920 const std::string& obj2Name,
922 const std::string& obj3Name,
924 const std::string& obj4Name,
925 const int& type,
926 const std::string& objName = "CurveBridging"
927 );
928
945 App::IDocument* pDoc,
946 App::IDocumentObject* centerVertexSourceObject,
947 const std::string& centerVertexName,
948 App::IDocumentObject* directionVertexSourceObject,
949 const std::string& directionVertexName,
950 const double raidus,
951 const double helixSeparationDistance,
952 const double helixHeight,
953 const std::string& direction,
954 const std::string& objName = "HelixCurve"
955 );
956
973 App::IDocument* pDoc,
974 App::IDocumentObject* centerVertexSourceObject,
975 const std::string& centerVertexName,
976 App::IDocumentObject* directionVertexSourceObject,
977 const std::string& directionVertexName,
978 const double raidus,
979 const double spiralSeparationDistance,
980 const double spiralHeight,
981 const std::string& direction,
982 const std::string& objName = "SpiralCurve"
983 );
984 };
985}
986
987#endif //PLATFORMALGORITHM_INTERFACE_CURVEFACTORY_H
@ Hyperbola
Definition CurveTypeDefine.h:39
@ Line
Definition CurveTypeDefine.h:36
@ BSplineCurve
Definition CurveTypeDefine.h:42
@ Parabola
Definition CurveTypeDefine.h:40
@ Ellipse
Definition CurveTypeDefine.h:38
@ Circle
Definition CurveTypeDefine.h:37
文档接口类
Definition IDocument.h:43
Definition IDocumentObject.h:35
Definition ArcofCircle2D.h:28
Definition ArcofCircle.h:34
Definition BSplineCurve2D.h:27
Definition BSplineCurve.h:27
Definition Circle2D.h:27
Definition Circle.h:27
Definition Ellipse2D.h:27
Definition Ellipse.h:28
Definition Hyperbola2D.h:29
Definition Hyperbola.h:29
Definition Line2D.h:28
Definition Line.h:28
Definition LineSegment2D.h:28
Definition LineSegment.h:28
Definition Parabola2D.h:27
Definition Parabola.h:30
Placement 类,表示三维空间中的位置和旋转
Definition Placement.h:34
Definition PolyLine2D.h:27
Definition PolyLine.h:27
static App::IDocumentObject * createSpaceEllipse(const Base::Vector3d &center, const Base::Vector3d &xDir, const Base::Vector3d &yDir, const double wRadius, const double lRadius, const std::string &objName="SpaceEllipse", const Base::Placement &placement=Base::Placement(), App::IDocument *pDoc=nullptr)
ռԲ
static App::IDocumentObject * createCircle(const Base::Circle &circle, const std::string &objName="Circle", const Base::Placement &placement=Base::Placement(), App::IDocument *pParentDoc=nullptr)
һԲ
static App::IDocumentObject * createArcofCircle2D(const Base::ArcofCircle2D &arcofcircle2d, const std::string &objName="ArcofCircle2D", const Base::Placement &placement=Base::Placement(), App::IDocument *pParentDoc=nullptr)
һ2DԲ
static void updateCircleArcParameters(App::IDocumentObject *pObj, const Base::Vector3d &centerPt, const Base::Vector3d &startPt, const Base::Vector3d &lastPt, bool bScene)
Բ(Բ-ʼ-Ƕ(ԲlastPt)
static App::IDocumentObject * CreateSpaceEllipseArc(double fMajorRadius, double fMinorRadius, const Base::Vector3d &oXDir, const Base::Vector3d &oZDir, const Base::Vector3d &oCenter, double fStartAngle, double fEndAngle, const std::string &objName="SpaceEllipseArc", const Base::Placement &placement=Base::Placement(), App::IDocument *pDoc=nullptr)
Բ(Բ-ʼǶ-ֹǶ)
static App::IDocumentObject * createSplicingCircleAndLine(const Base::Vector3d &center, const Base::Vector3d &normal, const double radius, const double angle, const std::string &objName="SplicingCircleAndLine", const Base::Placement &placement=Base::Placement(), App::IDocument *pDoc=nullptr)
Բֱƴģ
static void updateCircleArcParameters(App::IDocumentObject *pObj, const Base::Vector3d &centerPt, const Base::Vector3d &normal, double radius, double startAngle, double endAngle)
Բ(Բ-뾶-ʼֹǶ)
static App::IDocumentObject * createEllipse2D(const Base::Ellipse2D &Ellipse2D, const std::string &objName="Ellipse2D", const Base::Placement &placement=Base::Placement(), App::IDocument *pParentDoc=nullptr)
һ2DԲ
static void updateCircle(App::IDocumentObject *pCircle, const Base::Circle &circle)
Բ
static App::IDocumentObject * CreateSpaceEllipseArc(double fMajorRadius, double fMinorRadius, const Base::Vector3d &oXDir, const Base::Vector3d &oZDir, const Base::Vector3d &oCenter, const Base::Vector3d &oStartPoint, double fSpan, const std::string &objName="SpaceEllipseArc", const Base::Placement &placement=Base::Placement(), App::IDocument *pDoc=nullptr)
Բ(Բ-ʼ-)
static App::IDocumentObject * createHyperbola(const Base::Hyperbola &Hyperbola, const std::string &objName="Hyperbola", const Base::Placement &placement=Base::Placement(), App::IDocument *pParentDoc=nullptr)
һ˫
static App::IDocumentObject * createArcofCircle(const Base::ArcofCircle &arcofcircle, const std::string &objName="ArcofCircle", const Base::Placement &placement=Base::Placement(), App::IDocument *pParentDoc=nullptr)
һԲ
static void updateCircle2D(App::IDocumentObject *pCircle, const Base::Circle2D &circle2d)
2DԲ
static App::IDocumentObject * createLineSegment(const Base::LineSegment &linesegment, const std::string &objName="LineSegment", const Base::Placement &placement=Base::Placement(), App::IDocument *pParentDoc=nullptr)
һֱ߶
static App::IDocumentObject * createBSpline(const Base::BSplineCurve &BSpline, const std::string &objName="BSpline", const Base::Placement &placement=Base::Placement(), App::IDocument *pParentDoc=nullptr)
һB
static void updateHyperbola2D(App::IDocumentObject *pHyperbola2d, const Base::Hyperbola2D &Hyperbola2D)
2D˫߲
static App::IDocumentObject * createPolyLine(const Base::PolyLine &polyLine, const std::string &objName="PolyLine", const Base::Placement &placement=Base::Placement(), App::IDocument *pParentDoc=nullptr)
һ߶
static App::IDocumentObject * CreateSpaceApproximateBSpline(const std::vector< Base::Vector3d > &listPoint, int nDegMin, int nDegMax, int nContinuity, const std::string &objName="SpaceApproximateBSpline", const Base::Placement &placement=Base::Placement(), App::IDocument *pDoc=nullptr)
BSpline(Ϸ)
static void updatePolygon(App::IDocumentObject *pPolygon, const Base::Circle &circle, const double &edgenum)
¶β
static App::IDocumentObject * createPolygon(const Base::Circle &circle, const double &edgenum, const std::string &objName="Polygon", App::IDocument *pParentDoc=nullptr)
һ
static App::IDocumentObject * createHelixCurve(App::IDocument *pDoc, App::IDocumentObject *centerVertexSourceObject, const std::string &centerVertexName, App::IDocumentObject *directionVertexSourceObject, const std::string &directionVertexName, const double raidus, const double helixSeparationDistance, const double helixHeight, const std::string &direction, const std::string &objName="HelixCurve")
static void updateParabola(App::IDocumentObject *pParabola, const Base::Parabola &Parabola)
߲
static App::IDocumentObject * createSplicingCurve(const std::vector< App::IDocumentObject * > &curveList, const std::vector< std::string > &subElementNameList, const std::string &objName="SplicingCurve", const Base::Placement &placement=Base::Placement(), App::IDocument *pDoc=nullptr)
һƴ
static void updateHyperbola(App::IDocumentObject *pHyperbola, const Base::Hyperbola &Hyperbola)
˫߲
static void updateApproximateBSplineParameters(App::IDocumentObject *pObj, const std::vector< Base::Vector3d > &listPoint, int nDegMin, int nDegMax, int nContinuity)
BSpline߲
static void updateLineSegment2D(App::IDocumentObject *plinesegmrnt2d, const Base::LineSegment2D &linesegment2d)
2Dֱ߶β
static App::IDocumentObject * CreateSpaceArc(const Base::Vector3d &centerPt, const Base::Vector3d &normal, double radius, double startAngle, double endAngle, const std::string &objName="SpaceCircleArc", const Base::Placement &placement=Base::Placement(), App::IDocument *pDoc=nullptr)
ɻ(Բ-뾶-ʼֹǶ)
static void updateInterpolateBSplineParameters(App::IDocumentObject *pObj, const std::vector< Base::Vector3d > &listPoint, std::vector< double > &listParameter, bool bPeriodicFlag)
BSpline߲
static App::IDocumentObject * createLine(const Base::Line &line, const std::string &objName="Line", const Base::Placement &placement=Base::Placement(), App::IDocument *pParentDoc=nullptr)
һֱ
static App::IDocumentObject * CreateSpaceInterpolateBSpline(const std::vector< Base::Vector3d > &listPoint, const std::vector< double > &listParameter, bool bPeriodicFlag=false, const std::string &objName="SpaceInterpolateBSpline", const Base::Placement &placement=Base::Placement(), App::IDocument *pIDoc=nullptr)
BSpline(ֵ)
static void updateSpaceEllipseParameters(App::IDocumentObject *pObj, const Base::Vector3d &center, const Base::Vector3d &xDir, const Base::Vector3d &yDir, double wRadius, double lRadius)
¿ռԲ
static void updateSplicingCurveParameters(App::IDocumentObject *pObj, const std::vector< App::IDocumentObject * > &curveList)
ƴ߲
static void updateEllipse2D(App::IDocumentObject *pEllipse2d, const Base::Ellipse2D &Ellipse2D)
2DԲ
static App::IDocumentObject * createBSpline2D(const Base::BSplineCurve2D &BSpline2d, const std::string &objName="BSpline2D", const Base::Placement &placement=Base::Placement(), App::IDocument *pParentDoc=nullptr)
һ2D B
static App::IDocumentObject * createLine2D(const Base::Line2D &line2d, const std::string &objName="Line2D", const Base::Placement &placement=Base::Placement(), App::IDocument *pParentDoc=nullptr)
һ2Dֱ
static void updateEllipseArcParameters(App::IDocumentObject *pObj, double fMajorRadius, double fMinorRadius, const Base::Vector3d &oXDir, const Base::Vector3d &oZDir, const Base::Vector3d &oCenter, const Base::Vector3d &oStartPoint, double fSpan)
Բ(Բ-ʼ-)
static void updatePolyLine2D(App::IDocumentObject *pPolyLine, const Base::PolyLine2D &polyLine2d)
2D߶β
static void updateCircleArcParameters(App::IDocumentObject *pObj, const Base::Vector3d &startPt, const Base::Vector3d &middlePt, const Base::Vector3d &endPt)
ԲԲϣ
static App::IDocumentObject * CreateSpaceInterpolateBSpline(const std::vector< Base::Vector3d > &listPoint, bool bPeriodicFlag=false, const std::string &objName="SpaceInterpolateBSpline", const Base::Placement &placement=Base::Placement(), App::IDocument *pDoc=nullptr)
BSpline(ֵ)
static App::IDocumentObject * createParabola2D(const Base::Parabola2D &Parabola2d, const std::string &objName="Parabola2D", const Base::Placement &placement=Base::Placement(), App::IDocument *pParentDoc=nullptr)
һ2D
static App::IDocumentObject * CreateSpaceArc(const Base::Vector3d &centerPt, const Base::Vector3d &startPt, const Base::Vector3d &lastPt, bool bReverse=false, const std::string &objName="SpaceCircleArc", const Base::Placement &placement=Base::Placement(), App::IDocument *pDoc=nullptr)
ɻ(Բ-ʼ-Ƕ(ԲlastPt)
static void updateSplicingCurveParameters(App::IDocumentObject *pObj, const std::vector< App::IDocumentObject * > &curveList, const std::vector< std::string > &subElementNameList)
ƴ߲
static App::IDocumentObject * createSplicingCurve(const std::vector< App::IDocumentObject * > &curveList, const std::string &objName="SplicingCurve", const Base::Placement &placement=Base::Placement(), App::IDocument *pDoc=nullptr)
һƴ
static void updateEllipseArcParameters(App::IDocumentObject *pObj, double fMajorRadius, double fMinorRadius, const Base::Vector3d &oXDir, const Base::Vector3d &oZDir, const Base::Vector3d &oCenter, const Base::Vector3d &oStartPoint, const Base::Vector3d &oEndPoint)
Բ(Բ-ʼ-ֹ)
static App::IDocumentObject * createParabola(const Base::Parabola &Parabola, const std::string &objName="Parabola", const Base::Placement &placement=Base::Placement(), App::IDocument *pParentDoc=nullptr)
һ
static void updateInterpolateBSplineParameters(App::IDocumentObject *pObj, const std::vector< Base::Vector3d > &listPoint, bool bPeriodicFlag)
BSpline߲
static void updatePolyLine(App::IDocumentObject *pPolyLine, const Base::PolyLine &polyLine)
¶߶β
static void updateSpaceWireParameters(App::IDocumentObject *pObj, const std::vector< Base::Vector3d > &pointArray)
¿ռ߲
static void updateBSpline(App::IDocumentObject *pBSpline, const Base::BSplineCurve &BSpline)
static void updateArcofCircle(App::IDocumentObject *parcofcircle, const Base::ArcofCircle &arcofcircle)
Բ
static App::IDocumentObject * CreateSpaceArc(const Base::Vector3d &startPt, const Base::Vector3d &middlePt, const Base::Vector3d &endPt, const std::string &objName="SpaceCircleArc", const Base::Placement &placement=Base::Placement(), App::IDocument *pDoc=nullptr)
ɻԲϣ
static void updateEllipse(App::IDocumentObject *pEllipse, const Base::Ellipse &Ellipse)
Բ
static void updateSplicingCircleAndLinParameters(App::IDocumentObject *pObj, const Base::Vector3d &center, const Base::Vector3d &normal, double radius, double angle)
ԲֱƴģͲ
static void updateParabola2D(App::IDocumentObject *pParabola2d, const Base::Parabola2D &Parabola2D)
2D߲
static App::IDocumentObject * CreateSpaceWire(const std::vector< Base::Vector3d > &pts, bool isPOlygon=false, const std::string &objName="SpaceWire", const Base::Placement &placement=Base::Placement(), App::IDocument *pDoc=nullptr)
ɿռ
static void updateLineSegment(App::IDocumentObject *plinesegmrnt, const Base::LineSegment &linesegment)
ֱ߶β
static void updateLine2D(App::IDocumentObject *pline, const Base::Line2D &line2d)
2Dֱ߲
static void updateArcofCircle2D(App::IDocumentObject *parcofcircle2d, const Base::ArcofCircle2D &arcofcircle2d)
2DԲ
static void updateBSpline2D(App::IDocumentObject *pBSpline2d, const Base::BSplineCurve2D &BSpline2d)
2D B߲
static App::IDocumentObject * createSpiralCurve(App::IDocument *pDoc, App::IDocumentObject *centerVertexSourceObject, const std::string &centerVertexName, App::IDocumentObject *directionVertexSourceObject, const std::string &directionVertexName, const double raidus, const double spiralSeparationDistance, const double spiralHeight, const std::string &direction, const std::string &objName="SpiralCurve")
static void updateLine(App::IDocumentObject *pline, const Base::Line &line)
ֱ߲
static App::IDocumentObject * createCurveBridging(App::IDocument *pDoc, App::IDocumentObject *pObj1, const std::string &obj1Name, App::IDocumentObject *pObj2, const std::string &obj2Name, App::IDocumentObject *pObj3, const std::string &obj3Name, App::IDocumentObject *pObj4, const std::string &obj4Name, const int &type, const std::string &objName="CurveBridging")
Ž
static App::IDocumentObject * createPolyLine2D(const Base::PolyLine2D &polyLine2d, const std::string &objName="PolyLine2D", const Base::Placement &placement=Base::Placement(), App::IDocument *pParentDoc=nullptr)
һ2D߶
void updateSpaceCircleParameters(App::IDocumentObject *pObj, const Base::Vector3d &center, const Base::Vector3d &axis, double radius)
¿ռԲ
static App::IDocumentObject * createSpaceCircle(const Base::Vector3d &center, const Base::Vector3d &axis, const double radius, const std::string &objName="SpaceCircle", const Base::Placement &placement=Base::Placement(), App::IDocument *pDoc=nullptr)
ɿռԲ
static App::IDocumentObject * createLineSegment2D(const Base::LineSegment2D &linesegment2d, const std::string &objName="LineSegment2D", const Base::Placement &placement=Base::Placement(), App::IDocument *pParentDoc=nullptr)
һ2Dֱ߶
static void updateEllipseArcParameters(App::IDocumentObject *pObj, double fMajorRadius, double fMinorRadius, const Base::Vector3d &oXDir, const Base::Vector3d &oZDir, const Base::Vector3d &oCenter, double fStartAngle, double fEndAngle)
Բ(Բ-ʼǶ-ֹǶ)
static App::IDocumentObject * createEllipse(const Base::Ellipse &Ellipse, const std::string &objName="Ellipse", const Base::Placement &placement=Base::Placement(), App::IDocument *pParentDoc=nullptr)
һԲ
static App::IDocumentObject * CreateSpaceEllipseArc(double fMajorRadius, double fMinorRadius, const Base::Vector3d &oXDir, const Base::Vector3d &oZDir, const Base::Vector3d &oCenter, const Base::Vector3d &oStartPoint, const Base::Vector3d &oEndPoint, const std::string &objName="SpaceEllipseArc", const Base::Placement &placement=Base::Placement(), App::IDocument *pDoc=nullptr)
Բ(Բ-ʼ-ֹ)
static App::IDocumentObject * createHyperbola2D(const Base::Hyperbola2D &Hyperbola2d, const std::string &objName="Hyperbola2D", const Base::Placement &placement=Base::Placement(), App::IDocument *pParentDoc=nullptr)
һ2D˫
static App::IDocumentObject * createCircle2D(const Base::Circle2D &circle2d, const std::string &objName="Circle2D", const Base::Placement &placement=Base::Placement(), App::IDocument *pParentDoc=nullptr)
һ2DԲ
static App::IDocumentObject * createCirle(App::IDocument *pDoc, App::IDocumentObject *pObj1, const std::string &obj1Name, App::IDocumentObject *pObj2, const std::string &obj2Name, App::IDocumentObject *pObj3, const std::string &obj3Name, const int &type, const int &radius, bool isArc, const int &angleStart, const int &angleEnd, const std::string &objName="Circle")
ԲԲ
Definition CurveFactory.h:57
Definition BaseFigureFactory.h:28
Definition BaseFigureFactory.h:24
Definition BaseFigureFactory.h:33