Question about helix


I use the helix-stuff from Roman ( To get the helix match start- and endpoint, I have to rotate it after creation. Then it gets integrated in a bunch of edges.

Later I use these edges as base for motion, where i have to "disassemble" the shapes. Well, I want to calculate the next point, which is in some distance of the current point on that edge.

I process the shapes with this code:

Handle(AIS_Shape)  curSeg =;
TopoDS_Edge        e      = TopoDS::Edge(curSeg->Shape());
double p0, p1;
Handle(Geom_Curve) c      = BRep_Tool::Curve(e, p0, p1);

if (c->DynamicType() == STANDARD_TYPE(Geom_Circle)) {
   Handle(Geom_Circle) circle = Handle(Geom_Circle)::DownCast(c);
   double radius = circle->Radius();

   // what ever

helix class has a method call "GetType", but that's not known from Geom_Curve. ... and beside that, how can I query the radius of the helix, which is part of the helix-data structure?

or is there a simpler way to calculate a point at given distance from current point from any curve?