]> SALOME platform Git repositories - modules/visu.git/commitdiff
Salome HOME
To introduce Gauss Points IDL interface
authorapo <apo@opencascade.com>
Thu, 25 Aug 2005 12:55:37 +0000 (12:55 +0000)
committerapo <apo@opencascade.com>
Thu, 25 Aug 2005 12:55:37 +0000 (12:55 +0000)
idl/VISU_Gen.idl
src/ENGINE/VISU_Engine_i.cc
src/ENGINE/VISU_Engine_i.hh
src/VISU_I/Makefile.in
src/VISU_I/VISU_GaussPoints_i.cc [new file with mode: 0644]
src/VISU_I/VISU_GaussPoints_i.hh [new file with mode: 0644]
src/VISU_I/VISU_Gen_i.cc
src/VISU_I/VISU_Gen_i.hh

index a4b58de1c7504ef897ca5a96a811bfbd2cafefa6..46b782033f5cc1daf8f408b1cb0c4dcfd2364cac 100644 (file)
@@ -59,6 +59,7 @@ module VISU {
     TSCALARMAP, /*!< Scalarmap 3D presentation object */
     TISOSURFACE, /*!< Iso surface 3D presentation object */
     TDEFORMEDSHAPE, /*!< Deformed shape 3D presentation object */
+    TGAUSSPOINTS, /*!< Gauss Points 3D presentation object */
     TPLOT3D, /*!< Plot3D 3D presentation object */
     TCUTPLANES, /*!< Cut planes 3D presentation object */
     TCUTLINES, /*!< Cut lines 3D presentation object */
@@ -506,6 +507,14 @@ module VISU {
   };
 
   //-------------------------------------------------------
+  /*! \brief Gauss Points presentation interface
+   *
+   * Presentation parameters of the Gauss Points presentation.
+   */
+  //-------------------------------------------------------
+  interface GaussPoints : ScalarMap {
+  };
+
   /*! \brief Deformed shape presentation interface
    *
    * Presentation parameters of the deformed shape presentation.
@@ -1330,6 +1339,18 @@ module VISU {
                               in Entity theEntity, in string theFieldName,
                               in double theIteration);
 
+    /*!
+     * Creates a Gauss Points presentation.
+     * \param theResult    Data generated in other sources. (MED object or file)
+     * \param theMeshName  One of the meshes presented in MED file
+     * \param theEntity    Type of entity where the field is defined
+     * \param theFieldName Group of data attributed to the %MESH. The data can be scalar or vector.
+     * \param theIteration Number of iteration on the field
+     */
+    GaussPoints GaussPointsOnField(in Result theResult, in string theMeshName,
+                                  in Entity theEntity, in string theFieldName,
+                                  in double theIteration);
+
     /*!
      * Creates a deformed shape presentation.
      * \param theResult    Data generated in other sources. (MED object or file)
index 63ccfd1faaa9cfcef1dcd13faf263a8672c10875..77413b197499196af361282f86a8e30f19ed158d 100644 (file)
@@ -212,6 +212,16 @@ namespace VISU{
   }
 
 
+  GaussPoints_ptr VISU_Gen_i::GaussPointsOnField(Result_ptr theResult, 
+                                                const char* theMeshName, 
+                                                VISU::Entity theEntity, 
+                                                const char* theFieldName, 
+                                                CORBA::Double theIteration)
+  {
+    return myVisuGen->GaussPointsOnField(theResult,theMeshName,theEntity,theFieldName,theIteration);
+  }
+
+
   DeformedShape_ptr VISU_Gen_i::DeformedShapeOnField(Result_ptr theResult, 
                                                     const char* theMeshName, 
                                                     VISU::Entity theEntity, 
index 841c01986c484440d46c13d99826d8758c946dd7..fbcc3b48566d514c4d1fcc1a530d787c9081e39e 100644 (file)
@@ -69,6 +69,8 @@ namespace VISU{
 
     virtual ScalarMap_ptr ScalarMapOnField(Result_ptr theResult, const char* theMeshName, VISU::Entity theEntity, 
                                           const char* theFieldName, CORBA::Double theIteration);
+    virtual GaussPoints_ptr GaussPointsOnField(Result_ptr theResult, const char* theMeshName, VISU::Entity theEntity, 
+                                              const char* theFieldName, CORBA::Double theIteration);
     virtual DeformedShape_ptr DeformedShapeOnField(Result_ptr theResult, const char* theMeshName, VISU::Entity theEntity, 
                                                   const char* theFieldName, CORBA::Double theIteration);
     virtual Vectors_ptr VectorsOnField(Result_ptr theResult, const char* theMeshName, VISU::Entity theEntity, 
index bb527ff98cc9d264080c1e93b683e6ce44db6bad..d8631a4786f71aa8ed71d52213ff6f3eba540128 100644 (file)
@@ -23,7 +23,7 @@ LIB_SRC = VISUConfig.cc VISU_Gen_i.cc \
        VISU_Prs3d_i.cc VISU_Mesh_i.cc VISU_ScalarMap_i.cc \
        VISU_IsoSurfaces_i.cc VISU_DeformedShape_i.cc \
        VISU_Plot3D_i.cc VISU_CutPlanes_i.cc VISU_CutLines_i.cc \
-       VISU_Vectors_i.cc VISU_StreamLines_i.cc \
+       VISU_Vectors_i.cc VISU_StreamLines_i.cc VISU_GaussPoints_i.cc \
        VISU_ViewManager_i.cc VISU_View_i.cc \
        VISU_TimeAnimation.cxx VISU_CorbaMedConvertor.cxx \
        VISU_DumpPython.cc
@@ -47,7 +47,7 @@ EXPORT_HEADERS = VISUConfig.hh VISU_Gen_i.hh \
        VISU_Prs3d_i.hh VISU_Mesh_i.hh VISU_ScalarMap_i.hh \
        VISU_IsoSurfaces_i.hh VISU_DeformedShape_i.hh \
        VISU_Plot3D_i.hh VISU_CutPlanes_i.hh VISU_CutLines_i.hh \
-       VISU_Vectors_i.hh VISU_StreamLines_i.hh \
+       VISU_Vectors_i.hh VISU_StreamLines_i.hh VISU_GaussPoints_i.hh \
        VISU_ViewManager_i.hh VISU_View_i.hh \
        VISU_TimeAnimation.h
 
diff --git a/src/VISU_I/VISU_GaussPoints_i.cc b/src/VISU_I/VISU_GaussPoints_i.cc
new file mode 100644 (file)
index 0000000..4f04ec4
--- /dev/null
@@ -0,0 +1,146 @@
+//  VISU OBJECT : interactive object for VISU entities implementation
+//
+//  Copyright (C) 2003  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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+//
+//
+//  File   :
+//  Author :
+//  Module :
+
+#include "VISU_GaussPoints_i.hh"
+#include "VISU_Result_i.hh"
+
+using namespace VISU;
+using namespace std;
+
+#ifdef _DEBUG_
+static int MYDEBUG = 0;
+#else
+static int MYDEBUG = 0;
+#endif
+
+int
+VISU::GaussPoints_i
+::IsPossible(Result_i* theResult, const char* theMeshName, VISU::Entity theEntity, 
+            const char* theFieldName, int theIteration, int isMemoryCheck)
+{
+  try{
+    return VISU::ScalarMap_i::IsPossible(theResult,theMeshName,theEntity,theFieldName,theIteration,isMemoryCheck);
+  }catch(std::exception& exc){
+    INFOS("Follow exception was occured :\n"<<exc.what());
+  }catch(...){
+    INFOS("Unknown exception was occured!");
+  }
+  return 0;
+}
+
+int VISU::GaussPoints_i::myNbPresent = 0;
+QString VISU::GaussPoints_i::GenerateName()
+{
+  return VISU::GenerateName("Gauss Points",myNbPresent++);
+}
+
+const string VISU::GaussPoints_i::myComment = "GAUSSPOINTS";
+const char* 
+VISU::GaussPoints_i::GetComment() const 
+{ 
+  return myComment.c_str();
+}
+
+
+VISU::GaussPoints_i::
+GaussPoints_i(Result_i* theResult, 
+               bool theAddToStudy) : 
+  PrsObject_i(theResult->GetStudyDocument()), 
+  Prs3d_i(theResult,theAddToStudy),
+  ScalarMap_i(theResult,theAddToStudy),
+  myGaussPointsPL(NULL)
+{
+  if(MYDEBUG) MESSAGE("GaussPoints_i::GaussPoints_i");
+}
+
+
+VISU::GaussPoints_i::
+GaussPoints_i(Result_i* theResult, 
+             SALOMEDS::SObject_ptr theSObject) : 
+  PrsObject_i(theResult->GetStudyDocument()), 
+  Prs3d_i(theResult,theSObject),
+  ScalarMap_i(theResult,theSObject),
+  myGaussPointsPL(NULL)
+{
+  if(MYDEBUG) MESSAGE("GaussPoints_i::GaussPoints_i");
+}
+
+
+VISU::Storable* 
+VISU::GaussPoints_i
+::Create(const char* theMeshName, VISU::Entity theEntity, 
+        const char* theFieldName, int theIteration)
+{
+  return ScalarMap_i::Create(theMeshName,theEntity,theFieldName,theIteration);
+}
+
+
+VISU::Storable* 
+VISU::GaussPoints_i
+::Restore(const Storable::TRestoringMap& theMap)
+{
+  DoHook();
+  return ScalarMap_i::Restore(theMap);
+}
+
+
+void
+VISU::GaussPoints_i
+::ToStream(std::ostringstream& theStr)
+{
+  ScalarMap_i::ToStream(theStr);
+}
+
+
+VISU::GaussPoints_i
+::~GaussPoints_i()
+{
+  if(MYDEBUG) MESSAGE("GaussPoints_i::~GaussPoints_i()");
+}
+
+
+void
+VISU::GaussPoints_i
+::DoHook()
+{
+  ScalarMap_i::DoHook();
+}
+
+VISU_Actor* 
+VISU::GaussPoints_i
+::CreateActor(const Handle(SALOME_InteractiveObject)& theIO) 
+{
+  VISU_Actor* anActor = VISU::ScalarMap_i::CreateActor(theIO);
+  return anActor;
+}
+
+
+void 
+VISU::GaussPoints_i
+::UpdateActor(VISU_Actor* theActor) 
+{
+  VISU::ScalarMap_i::UpdateActor(theActor);
+}
diff --git a/src/VISU_I/VISU_GaussPoints_i.hh b/src/VISU_I/VISU_GaussPoints_i.hh
new file mode 100644 (file)
index 0000000..44a45e6
--- /dev/null
@@ -0,0 +1,81 @@
+//  VISU OBJECT : interactive object for VISU entities implementation
+//
+//  Copyright (C) 2003  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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//  File   : VISU_PrsObject_i.hxx
+//  Author : Alexey PETROV
+//  Module : VISU
+
+#ifndef VISU_GaussPoints_i_HeaderFile
+#define VISU_GaussPoints_i_HeaderFile
+
+#include "VISU_ScalarMap_i.hh"
+
+class VISU_GaussPointsPL;
+
+namespace VISU
+{
+  class GaussPoints_i : public virtual POA_VISU::GaussPoints,
+                       public virtual ScalarMap_i
+  {
+    static int myNbPresent;
+    GaussPoints_i();
+    GaussPoints_i(const GaussPoints_i&);
+
+  public:
+    explicit
+    GaussPoints_i(Result_i* theResult,
+                 bool theAddToStudy);
+    explicit
+    GaussPoints_i(Result_i* theResult,
+                 SALOMEDS::SObject_ptr theSObject);
+    virtual ~GaussPoints_i();
+
+    virtual VISU::VISUType GetType() { return VISU::TGAUSSPOINTS;};
+
+    typedef VISU::GaussPoints TInterface;
+
+  protected:
+    virtual void DoHook();
+
+    VISU_GaussPointsPL *myGaussPointsPL;
+
+  public:
+    static int IsPossible(Result_i* theResult, const char* theMeshName, VISU::Entity theEntity,
+                         const char* theFieldName, int theIteration, int isMemoryCheck = true);
+    virtual Storable* Create(const char* theMeshName, VISU::Entity theEntity,
+                            const char* theFieldName, int theIteration);
+
+    static const std::string myComment;
+    virtual const char* GetComment() const;
+    virtual QString GenerateName();
+
+    virtual void ToStream(std::ostringstream& theStr);
+
+    virtual Storable* Restore(const Storable::TRestoringMap& theMap);
+
+    virtual VISU_Actor* CreateActor(const Handle(SALOME_InteractiveObject)& theIO = NULL);
+
+    virtual void UpdateActor(VISU_Actor* theActor) ;
+  };
+}
+
+#endif
index d1b47cf3e84d14dc8a6711170f10b3b6d0acf92d..1c005cad69fdc2efb29838bb639e7160e9bed445 100644 (file)
@@ -38,6 +38,7 @@
 #include "VISU_CutLines_i.hh"
 #include "VISU_Vectors_i.hh"
 #include "VISU_StreamLines_i.hh"
+#include "VISU_GaussPoints_i.hh"
 #include "VISU_Plot3D_i.hh"
 #include "VISU_Table_i.hh"
 #include "VISU_TimeAnimation.h"
@@ -607,6 +608,15 @@ namespace VISU{
     return Prs3dOnField<VISU::ScalarMap_i>(theResult,theMeshName,theEntity,theFieldName,theIteration,true)._retn();
   }
 
+  GaussPoints_ptr VISU_Gen_i::GaussPointsOnField(Result_ptr theResult,
+                                                const char* theMeshName,
+                                                VISU::Entity theEntity,
+                                                const char* theFieldName,
+                                                CORBA::Double theIteration)
+  {
+    return Prs3dOnField<VISU::GaussPoints_i>(theResult,theMeshName,theEntity,theFieldName,theIteration,true)._retn();
+  }
+
   DeformedShape_ptr VISU_Gen_i::DeformedShapeOnField(Result_ptr theResult,
                                                     const char* theMeshName,
                                                     VISU::Entity theEntity,
index abaac0a6e46e0d1dc3a7f46fd8e3d022e4211a6e..f8157bfd156f4d3166bd8fc5a44645c728d8fb10 100644 (file)
@@ -90,6 +90,9 @@ namespace VISU{
     virtual ScalarMap_ptr ScalarMapOnField(Result_ptr theResult,
                                           const char* theMeshName, VISU::Entity theEntity,
                                           const char* theFieldName, CORBA::Double theIteration);
+    virtual GaussPoints_ptr GaussPointsOnField(Result_ptr theResult,
+                                              const char* theMeshName, VISU::Entity theEntity,
+                                              const char* theFieldName, CORBA::Double theIteration);
     virtual DeformedShape_ptr DeformedShapeOnField(Result_ptr theResult,
                                                   const char* theMeshName, VISU::Entity theEntity,
                                                   const char* theFieldName, CORBA::Double theIteration);