]> SALOME platform Git repositories - modules/geom.git/commitdiff
Salome HOME
New methods: SetParam(), GetParam(), GetArgsCount() for notebook functionality
authorasl <asl@opencascade.com>
Fri, 20 Nov 2009 08:00:02 +0000 (08:00 +0000)
committerasl <asl@opencascade.com>
Fri, 20 Nov 2009 08:00:02 +0000 (08:00 +0000)
src/GEOM/GEOM_Function.cxx
src/GEOM/GEOM_Function.hxx

index d9d1c321e45ab97b46f4f35912c8855fec5e3989..142a3a4caffe590d961a37f8de0c1db6516e3bb4 100644 (file)
@@ -33,6 +33,7 @@
 #include <TDF_Data.hxx>
 #include <TDF_ChildIterator.hxx>
 #include <TDF_Reference.hxx>
+#include <TDataStd_AsciiString.hxx>
 #include <TDataStd_Integer.hxx>
 #include <TDataStd_IntegerArray.hxx>
 #include <TDataStd_Real.hxx>
@@ -299,6 +300,52 @@ void GEOM_Function::SetDescription(const TCollection_AsciiString& theDescription
     TDataStd_Comment::Set(aChild, TCollection_ExtendedString(theDescription));
 }
 
+//=============================================================================
+/*!
+ *  GetArgsCount
+ */
+//=============================================================================
+int GEOM_Function::GetArgsCount()
+{
+  return _label.FindChild( ARGUMENT_LABEL ).NbChildren();
+}
+
+//=============================================================================
+/*!
+ *  SetParam
+ */
+//=============================================================================
+void GEOM_Function::SetParam( int thePosition, const TCollection_AsciiString& theParamName )
+{
+  _isDone = false;
+  if( thePosition <= 0 )
+    return;
+
+  TDF_Label anArgLabel = ARGUMENT( thePosition );
+  TDataStd_AsciiString::Set( anArgLabel, theParamName );
+  _isDone = true;
+}
+
+//=============================================================================
+/*!
+ *  GetParam
+ */
+//=============================================================================
+TCollection_AsciiString GEOM_Function::GetParam(int thePosition)
+{
+  _isDone = false;
+  if( thePosition <= 0 )
+    return 0.0;
+
+  Handle( TDataStd_AsciiString ) aParam;
+  TDF_Label anArgLabel = ARGUMENT( thePosition );
+  if( !anArgLabel.FindAttribute( TDataStd_AsciiString::GetID(), aParam ) )
+    return "";
+
+  _isDone = true;
+  return aParam->Get();
+}
+
 //=============================================================================
 /*!
  *  SetReal
index 3e1ea697034be4f2dcdc59821cd73c108895120a..7519c8aa8d93d95cc9cda629872fb68462c62ce5 100644 (file)
@@ -189,6 +189,15 @@ public:
 
   //Access to arguments
 
+  //Return number of function arguments
+  Standard_EXPORT int GetArgsCount();
+
+  //Sets a parameter name as argument at position thePosition
+  Standard_EXPORT void SetParam( int thePosition, const TCollection_AsciiString& theParamName );
+
+  //Returns a parameter name as argument at position thePosition
+  Standard_EXPORT TCollection_AsciiString GetParam( int thePosition );
+
   //Sets a real argument at position thePosition
   Standard_EXPORT void SetReal(int thePosition, double theValue);