OCC Geom

Geom_Geometry

Geom_Geometry是三维参数化对象的抽象基类。它提供、定义了三维对象基本的镜像、旋转、缩放、平移、拷贝等操作。

 

virtual void Geom_Curve::Reverse() = 0

// 函数功能:曲线逆序。"FirstParameter"以及"LastParameter"不会改变,但是曲线的方向会被修改。如果曲线是有边界的,那么初始曲线的 起始点和结束点会被调换。

Geom_Conic::Reverse()             --> // 成员变量 gp_Ax2 pos;

                                                         gp_Dir Vz = pos.Direction();        Vz.Reverse();         pos.SetDirection(V1);        通过改变坐标轴的方向来实现逆序。

Geom_Circle::Reverse()             --> 未实现,沿用 Geom_Conic

Geom_Line::Reverse()               --> // 成员变量 gp_Ax1 pos;

                                                         pos.Reverse();

Geom_BSplineCurve::Reverse() --> 待整理

 

virtual double Geom_Curve::ReversedParameter(const double U) const = 0

函数功能:求U对应的逆序曲线点

Geom_Conic::ReversedParameter(U)           --> 未实现

Geom_Circle::ReversedParameter(U)           --> return 2 * PI - U;

Geom_Line::ReversedParameter(U)              -->  return -U;

 

virtual double Geom_Curve::FirstParameter() const = 0

函数功能:取曲线起点特征值

Geom_Conic::FirstParameter()                         --> 未实现

Geom_Circle::FirstParameter()                         --> return 0;

Geom_Line::FirstParameter()                            --> return -Precision::Infinite();

Geom_BSplineCurve::FirstParameter()             --> 待整理

 

virtual double Geom_Curve::LastParameter() const = 0

函数功能:取曲线结束点特征值

Geom_Conic::LastParameter()                         --> 未实现

Geom_Circle::LastParameter()                         --> return 2 * PI;

Geom_Line::LastParameter()                            --> return Precision::Infinite();

Geom_BSplineCurve::LastParameter()            --> 待整理

 

virtual  bool Geom_Curve::IsClosed() const = 0

// 函数功能:判断曲线是否闭合

Geom_Conic::IsClosed()                         --> 未实现

Geom_Circle::IsClosed()                         --> return true;

Geom_Line::IsClosed()                            --> return false;

Geom_BSplineCurve::IsClosed()             --> 起点和结束点重合

 

virtual bool Geom_Curve::IsPeriodic() const = 0

// 函数功能:判断曲线是否是周期性的

Geom_Conic::IsPeriodic()                         --> 未实现

Geom_Circle::IsPeriodic()                         --> return true;

Geom_Line::IsPeriodic()                            --> return false;

Geom_BSplineCurve::IsPeriodic()             --> return 用户设置的周期属性。

 

virtual double Geom_Curve::Period() const    {Raise_if(!IsPeriodic());  return LastParameter() - FirstParameter();}

// 函数功能:取周期曲线的周期值。

// 注意:调用此函数之前,应该先判断是否是周期曲线。

 

virtual GeomAbs_Shape Geom_Curve::Continuity() const = 0

// 函数功能:获取曲线的连续性

Geom_Conic::Continuity()                         --> 未实现

Geom_Circle::Continuity()                         --> 

Geom_Line::Continuity()                            --> return GeomAbs_CN

 

virtual void Geom_Curve::Do(const double U, gp_Pnt &P) const = 0

// 函数功能:获取曲线在特征值为U时的曲线点坐标P

Geom_Conic::Do()                         --> 未实现

Geom_Circle::Do()                         --> 以U为弧度,计算cos,sin值,然后计算对应坐标系下的值。

Geom_Line::Do()                            --> 直线起点 + U * 直线向量。

 

gp_Pnt Geom_Curve::Value(const double U) const     {gp_Pnt p;    D0(U, p);  return P; }

// 取曲线在特征值U的点坐标。

 

// 还有一些函数待添加。。。

 

posted @ 2022-11-25 10:54  xl-better  阅读(283)  评论(0)    收藏  举报