Тема: Координаты точек сплайна.

Всем привет. Задача заключается в следующем: необходимо получить точки сплайна от начала до конца с определённым шагом. Я делаю так:
if (AcDbSpline::cast(pEnt.object()))
{
    // Обрабатываем Spline
    acutPrintf(_T("\nSpline:"));
    cDbSpline * pSpline = AcDbSpline::cast(pEnt);
    double parmStart=0, parmEnd=0;
        AcGePoint3d pStepSpline;
    if (pSpline->getStartParam(parmStart) == Acad::eOk && pSpline->getEndParam(parmEnd) == Acad::eOk) {
    pSpline->getPointAtDist(parmStart,pStepSpline);
    acutPrintf(_T("\nSpline start point: (%i %g %g %g)"), countSpline, pStepSpline.x, pStepSpline.y, pStepSpline.z);
       
    for(double i=parmStart; i<=parmEnd; i=i+1){
        pSpline->getPointAtDist(i,pStepSpline);
            acutPrintf(_T("\npStepSpline: (%i %g %g %g)"), countSpline, pStepSpline.x, pStepSpline.y, pStepSpline.z);
    }
    pSpline->getPointAtDist(parmEnd,pStepSpline);
        acutPrintf(_T("\nSpline end point getPointAtDist: (%i %g %g %g)"), countSpline, pStepSpline.x, pStepSpline.y, pStepSpline.z);
    pSpline->getEndPoint(pStepSpline);
        acutPrintf(_T("\nSpline end point getEndPoint: (%i %g %g %g)"), countSpline, pStepSpline.x, pStepSpline.y, pStepSpline.z);
        }
    countSpline++;
}
Вывод в консоль, следующий:
........
........
pStepSpline: (0 2414.204416 684.763574 0.000000)
pStepSpline: (0 2414.733322 685.612208 0.000000)
pStepSpline: (0 2415.251101 686.467675 0.000000)
pStepSpline: (0 2415.757252 687.330071 0.000000)
pStepSpline: (0 2416.251245 688.199487 0.000000)
Spline end point getPointAtDist: (0 2416.531134 688.705476 0.000000)
Spline end point getEndPoint: (0 2411.042854 729.424134 0.000000)
Проблема в том, что у меня нет прохода до конца сплайна, до его конечной точки.
И ещё не очень понятно что за double возвращает getStartParam и getEndParam?

Re: Координаты точек сплайна.

> Алексей
1) где задан шаг?
2) что означает шаг - расстояние по линни или по хорде?
3) почему i=i+1 ? шаг предпологается равным единице?
4) до конца сплайна нет прохода т.к. не вычисляется точка в конце сплайна (при i == paramEnd)
5) Нужно в цикле использовать не pSpline->getPointAtDist(...), а pSpline->getPointAtParam(...) так как цикл не по длине, а по параметру...