+ ConvertListListDouble(theCoordsList, aCoords);
+
+ Handle(TColStd_HArray1OfReal) aWorkingPlane;
+ const int n = theWorkingPlane.length();
+ int i;
+
+ if (n > 0) {
+ aWorkingPlane = new TColStd_HArray1OfReal(1, n);
+
+ for (i = 0; i < n; i++) {
+ aWorkingPlane->SetValue(i + 1, theWorkingPlane[i]);
+ }
+ }
+
+ // Make Polyline
+ Handle(::GEOM_Object) anObject = GetOperations()->MakePolyline2D
+ (aCoords, aNames, aTypes, aCloseds, aWorkingPlane);
+
+ if (!GetOperations()->IsDone() || anObject.IsNull()) {
+ return GEOM::GEOM_Object::_nil();
+ }
+
+ return GetObject(anObject);
+}
+
+//=============================================================================
+/*!
+ * MakePolylineOnPlane
+ */
+//=============================================================================
+GEOM::GEOM_Object_ptr GEOM_ICurvesOperations_i::MakePolyline2DOnPlane
+ (const GEOM::ListOfListOfDouble &theCoordsList,
+ const GEOM::string_array &theNamesList,
+ const GEOM::short_array &theTypesList,
+ const GEOM::ListOfBool &theClosedList,
+ GEOM::GEOM_Object_ptr theWorkingPlane)
+{
+ //Set a not done flag
+ GetOperations()->SetNotDone();
+
+ // Convert input data
+ Handle(TColStd_HArray1OfExtendedString) aNames =
+ ConvertStringArray(theNamesList);
+ Handle(TColStd_HArray1OfByte) aTypes =
+ ConvertEnumArray(theTypesList);
+ Handle(TColStd_HArray1OfByte) aCloseds =
+ ConvertBoolArray(theClosedList);
+ std::list <std::list <double> > aCoords;
+ Handle(::GEOM_Object) aWorkingPlane =
+ GetObjectImpl(theWorkingPlane);
+
+ ConvertListListDouble(theCoordsList, aCoords);
+
+ // Make Polyline
+ Handle(::GEOM_Object) anObject = GetOperations()->MakePolyline2DOnPlane
+ (aCoords, aNames, aTypes, aCloseds, aWorkingPlane);
+
+ if (!GetOperations()->IsDone() || anObject.IsNull()) {