AcGeCurveCurveInt3d

 

表示两条曲线的交集。在AcGeLinearEnt3dAcGeCircArc3dAcGeEllipArc3d中特定的函数intersectWith()找两条线,直线和弧线,两条弧线或直线与椭圆的交点。然而,没有一般的intersectWith( )函数可以查找两条曲线相交的点。这只能用建构这个类的对象来完成。

 

用两条指定的相交曲线建构这个类的对象。同样可以指定相交的每条曲线的特定间距。接着这些曲线的指针被储存为这个类的数据成员。此类包含返回两条曲线的相交点和重叠的间距的查询方法。以及返回关于每一个交点的信息,如是否交点是切线的或穿过的交点的方法。曲线的自相交点可以通过传递建构器的两个参数中的相同曲线找到。

 

继承自

AcGeEntity3d

 

包含文件

gecint3d.h

 

成员

 

AcGeCurveCurveInt3d建构器和析构器

 

AcGeCurveCurveInt3d::AcGeCurveCurveInt3d函数

AcGeCurveCurveInt3d(

const AcGeCurve3d& curve1,

const AcGeCurve3d& curve2,

const AcGeVector3d& planeNormal = AcGeVector3d::kIdentity,

const AcGeTol& tol = AcGeContext::gTol);

curve1

输入第一条曲线

curve2

输入第二条曲线

planeNormal

输入平面向量

tol

输入公差值

建造一个代表两输入曲线相交的对象。 交点在指定的准确公差范围之内被回归(或者如果没有公差参数,就在缺省公差范围之内)planeNormal参数只被getIntConfigs函数调用。如果getIntConfigs()不能被此对象所调用,那么有必要提供其参数。


AcGeCurveCurveInt3d(

const AcGeCurve3d& curve1,

const AcGeCurve3d& curve2,

const AcGeInterval& range1,

const AcGeInterval& range2,

const AcGeVector3d& planeNormal = AcGeVector3d::kIdentity,

const AcGeTol& tol = AcGeContext::gTol);

curve1

输入第一条曲线

curve2

输入第二条曲线

range1

输入第一个间隔范围

range2

输入第二个间隔范围

planeNormal

输入平面向量

tol

Input tolerance

建造一个代表两输入曲线相交的对象。 交点在指定的准确公差范围之内被回归(或者如果没有公差参数就在缺省公差范围之内)planeNormal参数只被getIntConfigs函数调用。如果getIntConfigs()不能被此对象所调用,那么有必要提供其参数。


AcGeCurveCurveInt3d(

const AcGeCurveCurveInt3d& src);

src

输入要拷贝的 AcGeCurveCurveInt3d对象

构建输入对象的复制本。


AcGeCurveCurveInt3d();

这缺省建构器将典型被用作placeholder,这里曲线将被后来名指定到set( )函数。 建构器设置两条用XY轴代表的无限延长的曲线。

AcGeCurveCurveInt3d相交访问函数

AcGeCurveCurveInt3d::getIntConfigs函数

void

getIntConfigs(

int intNum,

AcGe::AcGeXConfig& config1wrt2,

AcGe::AcGeXConfig& config2wrt1) const;

intNum

输入预期相交点的索引

config1wrt2

输出关于曲线2AcGe::AcGeXConfig

config2wrt1

输出关于曲线1AcGe::AcGeXConfig

回归指定交点的配置。 这些配置是在gegbl.h中被定义了的枚举类型。 第一个参数表明第一条曲线的配置和在指定点的第二条曲线有关。 同样地,第二个参数表明第二条曲线的配置与指定点的第一条曲线有关。

只有两条曲线是共面时,此函数才有意义。在那种情况下,对象应该由有效平面的法向向量建构,此法向向量与两条曲线的平面是垂直的。

这些配置表明在交点的参数值上下间隔内所发生的一切。

例如,如果第一个参数的回归配置是kRightLeft,第一条曲线相对于第二条曲线从右至左穿过第二条曲线。

intNum必须非负,并且必须是少于被numIntPoints( )返回的交点的数目。

AcGeCurveCurveInt3d::getIntParams函数

void

getIntParams(

int intNum,

double& param1,

double& param2) const;

intNum

输入预期相交点的索引

param1

输出预期索引的一个参数值

param2

输出预期索引的二个参数值

在指定的相交点回归曲线的参数值。intNum的必须非负并且必须是少于被numIntPoints( )返回的交点的数目。

AcGeCurveCurveInt3d::getOverlapRanges函数

void

getOverlapRanges(

int overlapNum,

AcGeInterval& range1,

AcGeInterval& range2) const;

overlapNum

输入重复部分的数字以得到间隔

range1

输出重复部分的首先排列间隔

range2

输出重复部分的第二范围间隔

回归指定的重复曲线的重复部分的间隔。overlapNum必须非负并且必须是少于被overlapCount().返回的交点的数目。

 

AcGeCurveCurveInt3d::getPointOnCurve1函数

void

getPointOnCurve1(

int intNum,

AcGePointOnCurve3d& pntOnCrv) const;

intNum

输入预期相交点的索引

pntOnCrv

输出曲线上的相交点

作为第一条曲线的AcGePointOnCurve2d对象回归指定的交点。 AcGePointOnCurve2d类别包含回归2D协调函数和回归点的参数值。intNum必须非负并且必须是少于被numIntPoints( )返回的交点的数目。

AcGeCurveCurveInt3d::getPointOnCurve2函数

void

getPointOnCurve2(

int intNum,

AcGePointOnCurve3d& pntOnCrv) const;

intNum

输入预期相交点的索引

pntOnCrv

输出曲线上的相交点

作为第一条曲线的AcGePointOnCurve2d对象回归指定的交点。 AcGePointOnCurve2d类别包含回归2D协调函数和回归点的参数值。intNum必须非负并且必须是少于被numIntPoints( )返回的交点的数目

AcGeCurveCurveInt3d::intPoint函数

AcGePoint3d

intPoint(

int intNum) const;

intNum

输入预期相交点的索引

回归指定的交点。intNum必须非负并且必须是少于被numIntPoints( )返回的交点的数目。

AcGeCurveCurveInt3d::intPointTol函数

double

intPointTol(

int intNum) const;

intNum

输入预期相交点的索引

回归被用来找到指定交点的公差。intNum必须非负并且必须是少于被numIntPoints( )返回的交点的数目

AcGeCurveCurveInt3d::isTangential函数

Adesk::Boolean

isTangential(

int intNum) const;

intNum

输入预期相交点的索引

回归是否指定的交点是切点。intNum必须非负并且必须是少于被numIntPoints( )返回的交点的数目。.

AcGeCurveCurveInt3d::isTransversal函数

Adesk::Boolean

isTransversal(

int intNum) const;

intNum

输入预期相交点的索引

回归是否指定的交点是横向的交点。intNum必须非负并且必须是少于被numIntPoints( )

AcGeCurveCurveInt3d::numIntPoints函数

int

numIntPoints() const;

回归两曲线间相交点的数目。

AcGeCurveCurveInt3d::overlapCount函数

int

overlapCount() const;

回归两曲线间重复间隔的数目。

AcGeCurveCurveInt3d::overlapDirection函数

Adesk::Boolean

overlapDirection() const;

如果两条曲线在同样的方向上,那么回归1。如果他它们在相反的方向上,那么回归0

如果两曲线间没有重复的部分,回归1

AcGeCurveCurveInt3d操作符

AcGeCurveCurveInt3d::operator =函数

AcGeCurveCurveInt3d &

operator =(

const AcGeCurveCurveInt3d& src);

src

输入要拷贝的AcGeCurveCurveInt3d

做一个输入对象的复制本。

AcGeCurveCurveInt3d顺序函数

AcGeCurveCurveInt3d::changeCurveOrder函数

void

changeCurveOrder();

颠倒两条曲线的顺序

AcGeCurveCurveInt3d::orderWrt1函数

AcGeCurveCurveInt3d &

orderWrt1();

重新排列交点,这样他们将在第一条曲线参数值增加时被返回

AcGeCurveCurveInt3d::orderWrt2函数

AcGeCurveCurveInt3d &

orderWrt2();

重新排列交点,这样他们将在第二条曲线参数值增加时被返回

AcGeCurveCurveInt3d访问函数

AcGeCurveCurveInt3d::curve1函数

const AcGeCurve3d *

curve1() const;

将点回归到第一条曲线上。

AcGeCurveCurveInt3d::curve2函数

const AcGeCurve3d *

curve2() const;

将点回归到第二条曲线上。

AcGeCurveCurveInt3d::getIntRanges函数

void

getIntRanges(

AcGeInterval& range1,

AcGeInterval& range2) const;

range1

输出第一个点的间隔范围

range2

输出第二个点的间隔范围

回归交点和重复部分将被返回的两个间隔。

AcGeCurveCurveInt3d::planeNormal函数

AcGeVector3d

planeNormal() const;

回归getIntConfigs( )用来计算在相交点配置的那个平面向量。

AcGeCurveCurveInt3d::tolerance函数

AcGeTol

tolerance() const;

回归两曲线交叉时的公差。

AcGeCurveCurveInt3d设置函数

AcGeCurveCurveInt3d::set函数

AcGeCurveCurveInt3d &

set(

const AcGeCurve3d& curve1,

const AcGeCurve3d& curve2,

const AcGeVector3d& planeNormal = AcGeVector3d::kIdentity,

const AcGeTol& tol = AcGeContext::gTol);

curve1

输入曲线

curve2

输入曲线

planeNormal

输入两条曲线的法线

tol

输入公差

重置要两相交的两曲线。

getIntConfigs( )成员函数使用的平面向量参数。 如果getIntConfigs( )不被调用就没必要提供这个参数。


AcGeCurveCurveInt3d &

set(

const AcGeCurve3d& curve1,

const AcGeCurve3d& curve2,

const AcGeInterval& range1,

const AcGeInterval& range2,

const AcGeVector3d& planeNormal = AcGeVector3d::kIdentity,

const AcGeTol& tol = AcGeContext::gTol);

curve1

输出第一条曲线

curve2

输出第一条曲线

range1

输出第一个间隔范围

range2

输出第一个间隔范围

planeNormal

输入平面向量

tol

输入公差

重置相交的两条曲线重置的它们间隔。getIntConfigs( )成员函数使用的平面向量参数。 如果getIntConfigs( )不被调用就没必要提供这个参数。