-using namespace std;
+// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+#include <Standard_Stream.hxx>
#include "GEOM_ICurvesOperations_i.hh"
/*!
* MakeCirclePntVecR
*/
-//=============================================================================
+//=============================================================================
GEOM::GEOM_Object_ptr GEOM_ICurvesOperations_i::MakeCirclePntVecR
(GEOM::GEOM_Object_ptr thePnt, GEOM::GEOM_Object_ptr theVec,
CORBA::Double theR)
/*!
* MakeCircleThreePnt
*/
-//=============================================================================
+//=============================================================================
GEOM::GEOM_Object_ptr GEOM_ICurvesOperations_i::MakeCircleThreePnt
(GEOM::GEOM_Object_ptr thePnt1, GEOM::GEOM_Object_ptr thePnt2,
GEOM::GEOM_Object_ptr thePnt3)
/*!
* MakeEllipse
*/
-//=============================================================================
+//=============================================================================
GEOM::GEOM_Object_ptr GEOM_ICurvesOperations_i::MakeEllipse
(GEOM::GEOM_Object_ptr thePnt, GEOM::GEOM_Object_ptr theVec,
CORBA::Double theRMajor, double theRMinor)
/*!
* MakeArc
*/
-//=============================================================================
+//=============================================================================
GEOM::GEOM_Object_ptr GEOM_ICurvesOperations_i::MakeArc
(GEOM::GEOM_Object_ptr thePnt1,
GEOM::GEOM_Object_ptr thePnt2,
/*!
* MakePolyline
*/
-//=============================================================================
+//=============================================================================
GEOM::GEOM_Object_ptr GEOM_ICurvesOperations_i::MakePolyline
(const GEOM::ListOfGO& thePoints)
{
/*!
* MakeSplineBezier
*/
-//=============================================================================
+//=============================================================================
GEOM::GEOM_Object_ptr GEOM_ICurvesOperations_i::MakeSplineBezier
(const GEOM::ListOfGO& thePoints)
{
/*!
* MakeSplineInterpolation
*/
-//=============================================================================
+//=============================================================================
GEOM::GEOM_Object_ptr GEOM_ICurvesOperations_i::MakeSplineInterpolation
(const GEOM::ListOfGO& thePoints)
{
/*!
* MakeSketcher
*/
-//=============================================================================
-GEOM::GEOM_Object_ptr GEOM_ICurvesOperations_i::MakeSketcher (const char* theCommand, const GEOM::ListOfDouble& theWorkingPlane)
+//=============================================================================
+GEOM::GEOM_Object_ptr GEOM_ICurvesOperations_i::MakeSketcher
+ (const char* theCommand, const GEOM::ListOfDouble& theWorkingPlane)
{
- GEOM::GEOM_Object_var aGEOMObject;
-
//Set a not done flag
GetOperations()->SetNotDone();
// Make Sketcher
Handle(GEOM_Object) anObject =
- GetOperations()->MakeSketcher(theCommand, aWorkingPlane);
+ GetOperations()->MakeSketcher((char*)theCommand, aWorkingPlane);
if (!GetOperations()->IsDone() || anObject.IsNull())
- return aGEOMObject._retn();
+ return GEOM::GEOM_Object::_nil();
+
+ return GetObject(anObject);
+}
+
+
+//=============================================================================
+/*!
+ * MakeSketcherOnPlane
+ */
+//=============================================================================
+GEOM::GEOM_Object_ptr GEOM_ICurvesOperations_i::MakeSketcherOnPlane
+ (const char* theCommand, GEOM::GEOM_Object_ptr theWorkingPlane)
+{
+ //Set a not done flag
+ GetOperations()->SetNotDone();
+
+ Handle(GEOM_Object) aWorkingPlane = GetOperations()->GetEngine()->GetObject
+ (theWorkingPlane->GetStudyID(), theWorkingPlane->GetEntry());
+
+ // Make Sketcher
+ Handle(GEOM_Object) anObject =
+ GetOperations()->MakeSketcherOnPlane((char*)theCommand, aWorkingPlane);
+ if (!GetOperations()->IsDone() || anObject.IsNull())
+ return GEOM::GEOM_Object::_nil();
return GetObject(anObject);
}