组合曲线(IfcCompositeCurve)是由曲线段组成的连续曲线。
在IFC中,组合曲线(IfcCompositeCurve)主要包括:
(1)Segments:组合曲线的一系列曲线段。
(2)SelfIntersect:曲线是否自相交。
组合曲线的图示如下:
图:组合曲线
在上图中,组合曲线由一条直线和1/4圆弧线组成,直线的起点是(0,0),终点是(0,1),线段长度为1。1/4圆弧的起始180度,终止90度,顺时针方向,圆心为(2,0)半径为2。组合曲线的参数范围是[0,1](直线),[1,91](曲线)。
组合曲线是由曲线段首尾相接而成,它的参数范围是由各个部分的线段参数范围叠加而成。假设
在IFC文件中,组合曲线的表示如下:
#3268144=IFCCOMPOSITECURVE((#3268032,#3268039,#3268046),.F.);
#3268032=IFCCOMPOSITECURVESEGMENT(.CONTINUOUS.,.T.,#3268030);
#3268030=IFCPOLYLINE((#3268018,#3268020,#3268022,#3268024,#3268026,#3268028));
#3268018=IFCCARTESIANPOINT((-16.951258960392,-2.18913712308807));
#3268020=IFCCARTESIANPOINT((-14.634832865314,-10.761216892346));
#3268022=IFCCARTESIANPOINT((-9.43915081874582,-18.2860823060468));
#3268024=IFCCARTESIANPOINT((-1.86982411730065,-24.0314605028875));
#3268026=IFCCARTESIANPOINT((7.3365476831392,-27.4382471932671));
#3268028=IFCCARTESIANPOINT((17.2840580314408,-28.1749151935802));
#3268039=IFCCOMPOSITECURVESEGMENT(.CONTINUOUS.,.T.,#3268037);
#3268037=IFCPOLYLINE((#3268033,#3268035));
#3268033=IFCCARTESIANPOINT((17.2840580314408,-28.1749151935802));
#3268035=IFCCARTESIANPOINT((19.1724827510259,-19.2015864448277));
#3268046=IFCCOMPOSITECURVESEGMENT(.CONTINUOUS.,.T.,#3268044);
#3268044=IFCPOLYLINE((#3268040,#3268042));
#3268040=IFCCARTESIANPOINT((19.1724827510259,-19.2015864448277));
#3268042=IFCCARTESIANPOINT((18.9719846681959,-17.5213596403722));
#3268144是组合曲线(IfcCompositeCurve),它包含了三个曲线段(IfcCompositeCurveSegment) #3268032,#3268039,#3268046。F表示该组合曲线不自相交。
曲线段#3268046(IfcCompositeCurveSegment),过渡状态(即,从该段的最后一点到下一段的第一点的几何连续性)为CONTINUOUS(曲线相接,但切线不满足连续性),T表示方向一致。
#3268044(IfcPolyline)表示线段,两个端点分别为#3268040和#3268042。