sgCObject* sgKinematic::Pipe(const sgC2DObject& outContour, const sgC2DObject** holes, int holes_count, const sgC2DObject& guideContour, const SG_POINT& point_in_outContour_plane, double angle_around_point_in_outContour_plane, bool& isClose)
Creates a solid or a surface of extrusion by extruding an object along another object.
holes - array of holes. The holes must be flat (checked by the IsPlane function), closed (checked by the IsClosed function) and not self-intersecting (checked by the IsSelfIntersecting function). The holes must lie on the same plane as the outer contour (checked by the IsObjectsOnOnePlane function) and strictly inside it (checked by the IsFirstObjectInsideSeconfObject function). The holes must not be intersecting (checked by the IsObjectsIntersecting function) neither can they be inside each other (checked by the IsFirstObjectInsideSeconfObject function). If the argument is NULL the object is created withour holes.
holes_count - the number of holes in the holes array.
guideContour - object along which the outer contour and holes are extruded.
point_in_outContour_plane - a point in the outer contour plane which is moving along the pipe profile
angle_around_point_in_outContourPlane - angle to turn the outer contour to and the holes around the point moving along the profile
isClose - whether to close to a solid. The argument is ignored if the outer contour isn't closed.
Returns the pointer to a newly created object. If the function fails NULL is returned.
It is highly possible that as a result of the operation a self-intersecting object will be created, and in this case errors may occur when performing Boolean operations with this object. The function for correcting self-intersections of solids is planned in the next library version.