]> SALOME platform Git repositories - modules/visu.git/commitdiff
Salome HOME
Windows porting.
authorouv <ouv@opencascade.com>
Mon, 17 Apr 2006 11:26:40 +0000 (11:26 +0000)
committerouv <ouv@opencascade.com>
Mon, 17 Apr 2006 11:26:40 +0000 (11:26 +0000)
82 files changed:
src/CONVERTOR/VISUConvertor.cxx
src/CONVERTOR/VISUConvertor.hxx [new file with mode: 0755]
src/CONVERTOR/VISU_Convertor.cxx
src/CONVERTOR/VISU_Convertor.hxx
src/CONVERTOR/VISU_ConvertorUtils.hxx
src/CONVERTOR/VISU_Convertor_impl.cxx
src/CONVERTOR/VISU_Convertor_impl.hxx
src/CONVERTOR/VISU_IDMapper.hxx
src/CONVERTOR/VISU_MedConvertor.cxx
src/ENGINE/VISU_Engine_i.cc
src/GUITOOLS/VisuGUITools.h [new file with mode: 0755]
src/GUITOOLS/VisuGUI_TableDlg.h
src/OBJECT/VISU_Actor.h
src/OBJECT/VISU_GaussPtsSettings.h
src/PIPELINE/VISUPipeLine.cxx
src/PIPELINE/VISUPipeline.hxx [new file with mode: 0755]
src/PIPELINE/VISU_CutLinesPL.hxx
src/PIPELINE/VISU_CutPlanesPL.hxx
src/PIPELINE/VISU_DeformedShapePL.hxx
src/PIPELINE/VISU_GaussPointsPL.cxx
src/PIPELINE/VISU_GaussPointsPL.hxx
src/PIPELINE/VISU_ImplicitFunctionWidget.hxx
src/PIPELINE/VISU_IsoSurfacesPL.hxx
src/PIPELINE/VISU_LookupTable.hxx
src/PIPELINE/VISU_MeshPL.hxx
src/PIPELINE/VISU_OpenGLPointSpriteMapper.cxx
src/PIPELINE/VISU_OpenGLPointSpriteMapper.hxx
src/PIPELINE/VISU_PipeLine.hxx
src/PIPELINE/VISU_PipeLineUtils.hxx
src/PIPELINE/VISU_PlanesWidget.hxx
src/PIPELINE/VISU_Plot3DPL.hxx
src/PIPELINE/VISU_ScalarBarActor.cxx
src/PIPELINE/VISU_ScalarBarActor.hxx
src/PIPELINE/VISU_ScalarBarCtrl.hxx
src/PIPELINE/VISU_ScalarMapOnDeformedShapePL.hxx
src/PIPELINE/VISU_ScalarMapPL.hxx
src/PIPELINE/VISU_SphereWidget.hxx
src/PIPELINE/VISU_StreamLinesPL.cxx
src/PIPELINE/VISU_StreamLinesPL.hxx
src/PIPELINE/VISU_VectorsPL.hxx
src/PIPELINE/VISU_WidgetCtrl.hxx
src/VISUGUI/VisuGUI.cxx
src/VISUGUI/VisuGUI.h
src/VISUGUI/VisuGUI_CursorDlg.cxx
src/VISUGUI/VisuGUI_CutPlanesDlg.h
src/VISUGUI/VisuGUI_Factory.cxx
src/VISUGUI/VisuGUI_GaussPointsDlg.h
src/VISUGUI/VisuGUI_StreamLinesDlg.h
src/VISUGUI/VisuGUI_SweepPrefDlg.cxx
src/VISUGUI/VisuGUI_Tools.cxx
src/VISU_I/VISUConfig.hh
src/VISU_I/VISU_ColoredPrs3d_i.hh
src/VISU_I/VISU_CutLines_i.cc
src/VISU_I/VISU_CutLines_i.hh
src/VISU_I/VISU_CutPlanes_i.hh
src/VISU_I/VISU_DeformedShape_i.hh
src/VISU_I/VISU_GaussPoints_i.hh
src/VISU_I/VISU_Gen_i.cc
src/VISU_I/VISU_Gen_i.hh
src/VISU_I/VISU_I.hxx [new file with mode: 0755]
src/VISU_I/VISU_IsoSurfaces_i.hh
src/VISU_I/VISU_Mesh_i.hh
src/VISU_I/VISU_Plot3D_i.hh
src/VISU_I/VISU_Prs3d_i.hh
src/VISU_I/VISU_PrsObject_i.hh
src/VISU_I/VISU_Result_i.hh
src/VISU_I/VISU_ScalarMapOnDeformedShape_i.hh
src/VISU_I/VISU_ScalarMap_i.hh
src/VISU_I/VISU_StreamLines_i.hh
src/VISU_I/VISU_Table_i.hh
src/VISU_I/VISU_TimeAnimation.h
src/VISU_I/VISU_Vectors_i.hh
src/VISU_I/VISU_ViewManager_i.hh
src/VISU_I/VISU_View_i.cc
src/VISU_I/VISU_View_i.hh
src/VVTK/VVTK.h
src/VVTK/VVTK_MainWindow.cxx
src/VVTK/VVTK_PrimitiveBox.cxx
src/VVTK/VVTK_PrimitiveBox.h
src/VVTK/VVTK_Recorder.cxx
src/VVTK/VVTK_SegmentationCursorDlg.h
src/VVTK/VVTK_SizeBox.h

index 273b62a8554cff3e323e2aa28dda5a1e9e13591d..6b7c5c252ada780d3d716e2bbfdf5d7cfc0b4737 100644 (file)
@@ -56,6 +56,7 @@ void parseFile(const char* theFileName)
   try{
 #endif
     MSG(MYDEBUG,"'"<<theFileName<<"'...");
+    //theFileName = "Apointe.med";
     auto_ptr<VISU_Convertor> aCon(CreateConvertor(theFileName));
     //aCon->GetSize();
     //return;
diff --git a/src/CONVERTOR/VISUConvertor.hxx b/src/CONVERTOR/VISUConvertor.hxx
new file mode 100755 (executable)
index 0000000..f58b9fa
--- /dev/null
@@ -0,0 +1,47 @@
+//  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   : VISUConvertor.hxx
+//  Author : Oleg UVAROV
+//  Module : VISU
+
+#ifndef _VISUConvertor_HXX_
+#define _VISUConvertor_HXX_
+
+#ifdef WNT
+ #if defined VISU_CONVERTOR_EXPORTS
+  #if defined WIN32
+   #define VISU_CONVERTOR_EXPORT __declspec( dllexport )
+  #else
+   #define VISU_CONVERTOR_EXPORT
+  #endif
+ #else
+  #if defined WIN32
+   #define VISU_CONVERTOR_EXPORT __declspec( dllimport )
+  #else
+   #define VISU_CONVERTOR_EXPORT
+  #endif
+ #endif
+#else
+ #define VISU_CONVERTOR_EXPORT
+#endif
+
+#endif
\ No newline at end of file
index f417ad07a5c079b770a87d1c2c9196039d062163..830be5030eeb7dca54330e3c61edce27ef82d71e 100644 (file)
@@ -84,7 +84,7 @@ VISU_Convertor
   int iEnd = strlen(aName);
   static int VtkHighLevelLength = 12; //25
   if(iEnd > VtkHighLevelLength) iEnd = VtkHighLevelLength;
-  char aNewName[iEnd+1];
+  char* aNewName = new char[iEnd+1];
   aNewName[iEnd] = '\0';
   strncpy(aNewName,aName,iEnd);
   replace(aNewName,aNewName+iEnd,' ','_');
@@ -92,5 +92,6 @@ VISU_Convertor
     aName = aNewName;
   else
     aName.sprintf("%s_%d",aNewName,theTimeId);
+  delete[] aNewName;
   return aName.latin1();
 }
index 4a5ac9938b7fbae890518416cf237ed3be38c058..d38f7d220ace8b5893ec05de9ccd675c34510eaa 100644 (file)
@@ -32,6 +32,7 @@
   \brief The file contains definitions for basic classes of the VISU CONVERTER package
 */
 
+#include "VISUConvertor.hxx"
 #include "VISU_IDMapper.hxx"
 #include "VISU_ConvertorDef.hxx"
 
@@ -248,7 +249,7 @@ namespace VISU
   Also, it can perform some additional work to calculate expected amount of memory to build defined VTK representation
   
 */
-class VISU_Convertor
+class VISU_CONVERTOR_EXPORT VISU_Convertor
 {
 protected:
   std::string myName;
@@ -404,8 +405,9 @@ public:
 
 extern "C"
 {
+VISU_CONVERTOR_EXPORT
   //! Instatiate proper VISU_Convertor subclass
-  VISU_Convertor* 
+  VISU_Convertor*
   CreateConvertor(const std::string& theFileName);
 };
 
index 154589fc7d89ee0002ba2dfcf32858da1501de80..715e9e604f5fcd5e86ae09486efd496e0cbd5c0e 100644 (file)
@@ -31,6 +31,8 @@
 
 #include <vtkCellType.h>
 
+#include "VISUConvertor.hxx"
+
 #include "MED_Utilities.hxx"
 
 class vtkUnstructuredGrid;
@@ -46,7 +48,7 @@ namespace VISU{
   void 
   WriteToFile(vtkUnstructuredGrid* theDataSet, const std::string& theFileName);
 
-  class TTimerLog
+  class VISU_CONVERTOR_EXPORT TTimerLog
   {
     int myIsDebug;
     double myCPUTime;
index ba2a8ad5a02b542fc21907c9bb9f915c677b9111..f4948349aba22fcc9e4cb07c7f519d64e8e8cb54 100644 (file)
@@ -57,7 +57,7 @@ static float ERR_SIZE_CALC = 1.00;
 static int MYVTKDEBUG = 0;
 
 #ifdef _DEBUG_
-static int MYDEBUG = 0;
+static int MYDEBUG = 1;
 static int MYDEBUGWITHFILES = 0;
 //#define _DEXCEPT_
 #else
@@ -1643,6 +1643,12 @@ namespace
        }
       }
     }
+    float aScalarRange[2];
+    theSource->Update();
+    theSource->GetScalarRange( aScalarRange );
+    //cout << theSource->GetNumberOfPoints() << endl;
+    theSource->Print( cout );
+    
     aFloatArray->Delete();
     aDataArray->Delete();
   }
@@ -2225,6 +2231,8 @@ VISU_Convertor_impl
 
       aGaussPtsIDFilter->myIsVTKDone = true;
 
+      anOutput->Print( cout );
+
       if(MYDEBUGWITHFILES){
        string aMeshName = QString(theMeshName.c_str()).simplifyWhiteSpace().latin1();
        string aFieldName = QString(theFieldName.c_str()).simplifyWhiteSpace().latin1();
index c4efc7d25c80c2471f5f83b6b4651e4869cdcbad..54602dee585deba9f80a869d6be53254cc405a37 100644 (file)
@@ -39,6 +39,7 @@ class vtkUnstructuredGrid;
 class VTKViewer_AppendFilter;
 class VISU_MergeFilter;
 
+#include "VISUConvertor.hxx"
 #include "VISU_Convertor.hxx"
 #include "MED_SliceArray.hxx"
 
@@ -57,11 +58,11 @@ namespace VISU
                  ePOLYGONE=400, ePOLYEDRE=500, eNONE=-1};
 
   //! Get number of nodes for defined geometrical type
-  vtkIdType
+  VISU_CONVERTOR_EXPORT vtkIdType
   VISUGeom2NbNodes(EGeometry theGeom);
 
   //! Maps VISU geometrical type to VTK one
-  vtkIdType
+  VISU_CONVERTOR_EXPORT vtkIdType
   VISUGeom2VTK(EGeometry theGeom);
 
   //---------------------------------------------------------------
@@ -80,7 +81,7 @@ namespace VISU
 
   //---------------------------------------------------------------
   //! Define an utility base class which is repsonsible for preventing repetion
-  struct TIsVTKDone: virtual TBaseStructure
+  struct VISU_CONVERTOR_EXPORT TIsVTKDone: virtual TBaseStructure
   {
     TIsVTKDone();
     bool myIsDone; //!< Say, is the corresponding MED entity already loaded into intermediate data structure 
@@ -90,7 +91,7 @@ namespace VISU
   
   //---------------------------------------------------------------
   //! Define an utility base class which allow to keep calculated number of cells and their size
-  struct TSizeCounter: virtual TIsVTKDone
+  struct VISU_CONVERTOR_EXPORT TSizeCounter: virtual TIsVTKDone
   {
     TSizeCounter();
     vtkIdType myNbCells; //!< Number of cells contained into corresponding sublclass
@@ -100,7 +101,7 @@ namespace VISU
 
   //---------------------------------------------------------------
   //! Define a container for VTK representation
-  class TSource: public virtual TSizeCounter
+  class VISU_CONVERTOR_EXPORT TSource: public virtual TSizeCounter
   {
   protected:
     mutable TVTKSource mySource;
@@ -123,7 +124,7 @@ namespace VISU
   /*!
     This container allow to combine other VTK representation into single one.
   */
-  class TAppendFilter: public virtual TIsVTKDone,
+  class VISU_CONVERTOR_EXPORT TAppendFilter: public virtual TIsVTKDone,
                       public virtual TIDMapper
   {
   protected:
@@ -147,7 +148,7 @@ namespace VISU
   /*!
     This container allow to assign data to mesh and represent them into single VTK representation
   */
-  class TMergeFilter: public virtual TIsVTKDone,
+  class VISU_CONVERTOR_EXPORT TMergeFilter: public virtual TIsVTKDone,
                      public virtual TIDMapper
   {
   protected:
@@ -172,7 +173,7 @@ namespace VISU
   typedef TCSlice<TCoordArray> TCCoordSlice;
 
   //! This class is responsible for representation of mesh nodes
-  class TPointCoords: public virtual TBaseStructure
+  class VISU_CONVERTOR_EXPORT TPointCoords: public virtual TBaseStructure
   {
   protected:
     vtkIdType myDim; //!< Dimension of the nodal coordinates
@@ -226,7 +227,7 @@ namespace VISU
     In additition to its base functionlity it support mapping of VTK to object numeration and
     keeps names for each of nodes.
   */
-  class TNamedPointCoords: public virtual TPointCoords
+  class VISU_CONVERTOR_EXPORT TNamedPointCoords: public virtual TPointCoords
   {
   protected:
     typedef TVector<std::string> TPointsDim;
@@ -270,7 +271,7 @@ namespace VISU
 
   //---------------------------------------------------------------
   //! Specialize TMesh to provide VTK mapping for nodes
-  struct TMeshImpl: virtual TMesh, 
+  struct VISU_CONVERTOR_EXPORT TMeshImpl: virtual TMesh, 
                    virtual TIsVTKDone
   {
     PNamedPointCoords myNamedPointCoords; //!< Keeps intermediate representation of the nodes
@@ -288,7 +289,7 @@ namespace VISU
   typedef enum {eRemoveAll, eAddAll, eAddPart, eNone} ESubMeshStatus; 
 
   //! Specialize TSubProfile to provide VTK mapping
-  struct TSubProfileImpl: virtual TSubProfile, 
+  struct VISU_CONVERTOR_EXPORT TSubProfileImpl: virtual TSubProfile, 
                          virtual TSource
   {
     TSubProfileImpl();
@@ -320,7 +321,7 @@ namespace VISU
   typedef std::map<EGeometry,PSubProfileImpl> TGeom2SubProfile;
 
   //! Specialize TProfile to provide VTK mapping for MED TIMESTAMP mesh
-  struct TProfileImpl: virtual TProfile, 
+  struct VISU_CONVERTOR_EXPORT TProfileImpl: virtual TProfile, 
                       virtual TAppendFilter
   {
     TProfileImpl();
@@ -384,7 +385,7 @@ namespace VISU
 
   //---------------------------------------------------------------
   //! Specialize TIDMapper to provide VTK mapping for MED TIMESTAMP mesh
-  struct TIDMapperFilter: virtual TMergeFilter
+  struct VISU_CONVERTOR_EXPORT TIDMapperFilter: virtual TMergeFilter
   {
     TAppendFilter myIDMapper; //!< Responsible for numbering
     TSource mySource; //!< Keeps assigned data
@@ -432,7 +433,7 @@ namespace VISU
   typedef SharedPtr<TGaussImpl> PGaussImpl;
 
   //! Specialize TGauss to provide more detail information of the MED GAUSS entity for VTK mapping
-  struct TGaussImpl: virtual TGauss
+  struct VISU_CONVERTOR_EXPORT TGaussImpl: virtual TGauss
   {
     EGeometry myGeom; //!< Define, to which geometrical type the MED GAUSS entity belongs
     std::string myName; //!< Keeps name of the MED GAUSS entity
@@ -448,7 +449,7 @@ namespace VISU
 
   //---------------------------------------------------------------
   //! Specialize TGaussSubMesh to provide VTK mapping for the entity
-  struct TGaussSubMeshImpl: virtual TGaussSubMesh, 
+  struct VISU_CONVERTOR_EXPORT TGaussSubMeshImpl: virtual TGaussSubMesh, 
                            virtual TSource
   {
     TGaussSubMeshImpl();
@@ -477,7 +478,7 @@ namespace VISU
   typedef std::map<EGeometry,PGaussSubMeshImpl> TGeom2GaussSubMesh;
 
   //! Specialize TGaussMesh to provide VTK mapping for the entity
-  struct TGaussMeshImpl: virtual TGaussMesh, 
+  struct VISU_CONVERTOR_EXPORT TGaussMeshImpl: virtual TGaussMesh, 
                         virtual TAppendFilter
   {
     TGaussMeshImpl();
@@ -507,7 +508,7 @@ namespace VISU
 
   //---------------------------------------------------------------
   //! Specialize TGaussPtsIDMapper to provide VTK mapping for MED TIMESTAMP mesh
-  struct TGaussPtsIDFilter: virtual TIDMapperFilter,
+  struct VISU_CONVERTOR_EXPORT TGaussPtsIDFilter: virtual TIDMapperFilter,
                            virtual TGaussPtsIDMapper
   { 
     PGaussPtsIDMapper myGaussPtsIDMapper;
@@ -530,7 +531,7 @@ namespace VISU
   typedef TVector<TConnect> TCell2Connect;
 
   //! The class is responsible for mapping of cells of defined geometrical type  
-  struct TSubMeshImpl: virtual TSource
+  struct VISU_CONVERTOR_EXPORT TSubMeshImpl: virtual TSource
   {
     
     //! To implement the TIDMapper::GetElemObjID
@@ -554,7 +555,7 @@ namespace VISU
   typedef TVector<PSubMeshImpl> TSubMeshArr;
 
   //! Specialize TMeshOnEntity to provide VTK mapping for the entity
-  struct TMeshOnEntityImpl: virtual TMeshOnEntity, 
+  struct VISU_CONVERTOR_EXPORT TMeshOnEntityImpl: virtual TMeshOnEntity, 
                            virtual TAppendFilter, 
                            virtual TSizeCounter
   {
@@ -601,7 +602,7 @@ namespace VISU
   typedef std::map<EGeometry,TSubMeshID> TGeom2SubMeshID;
 
   //! Specialize TFamily to provide VTK mapping for the entity
-  struct TFamilyImpl: virtual TFamily, 
+  struct VISU_CONVERTOR_EXPORT TFamilyImpl: virtual TFamily, 
                      virtual TSource
   {
     //! Reimplement the TIDMapper::GetNodeObjID
@@ -642,7 +643,7 @@ namespace VISU
   typedef TVector<PFamilyImpl> TFamilyArr;
 
   //! Specialize TGroup to provide VTK mapping for the entity
-  struct TGroupImpl: virtual TGroup, 
+  struct VISU_CONVERTOR_EXPORT TGroupImpl: virtual TGroup, 
                     virtual TAppendFilter
   {
     //! Calculate pair of values - number of cells and its size
@@ -680,7 +681,7 @@ namespace VISU
   typedef TVector<TMinMax> TMinMaxArr;
 
   //! Specialize TField to provide VTK mapping for the entity
-  struct TFieldImpl: virtual TField
+  struct VISU_CONVERTOR_EXPORT TFieldImpl: virtual TField
   {
     vtkIdType myDataSize; //!< Keeps size of the assigned data
 
@@ -709,7 +710,7 @@ namespace VISU
   typedef TVector<TValueSlice> TValueSliceArr;
 
   //! Define a container to get access to data assigned to mesh
-  struct TMeshValue
+  struct VISU_CONVERTOR_EXPORT TMeshValue
   {
     TValue myValue; //!< Keeps all values as one dimensional sequence
 
@@ -747,7 +748,7 @@ namespace VISU
   typedef std::map<EGeometry,vtkIdType> TGeom2NbGauss;
 
   //! Specialize TValForTime to provide VTK mapping for the entity
-  struct TValForTimeImpl: virtual TValForTime
+  struct VISU_CONVERTOR_EXPORT TValForTimeImpl: virtual TValForTime
   {
     PGaussPtsIDFilter myGaussPtsIDFilter; //!< Keep VTK representation for mesh and data on Gauss Points
     PIDMapperFilter myIDMapperFilter; //!< Keep VTK representation for ordinary mesh and data
@@ -778,7 +779,7 @@ namespace VISU
   It implements VISU_Convertor public interface and declare new pure virtual functions
   to fill its intermediate data structure from a MED source
 */
-class VISU_Convertor_impl: public VISU_Convertor
+class VISU_CONVERTOR_EXPORT VISU_Convertor_impl: public VISU_Convertor
 {
 public:
   VISU_Convertor_impl();
index 57cf9ee79ae815204bb7e1f0ae186a827e472803..7863917d1ce1221638659429173dc674629e9f43 100644 (file)
@@ -32,6 +32,8 @@
   \brief The file contains declarations for basic interfaces that defines mapping of mesh elements
 */
 
+#include "VISUConvertor.hxx"
+
 #include "MED_SharedPtr.hxx"
 
 #include <vtkSystemIncludes.h>
@@ -46,7 +48,7 @@ namespace VISU
 
   //---------------------------------------------------------------
   //! Defines a basic class for intemediate data structures
-  struct TBaseStructure
+  struct VISU_CONVERTOR_EXPORT TBaseStructure
   {
     //! Just to provide possibility of dynamic navigation through the class hierarchy
     virtual ~TBaseStructure()
@@ -64,7 +66,7 @@ namespace VISU
     Where object ID means ID which attached to corresponding MED entity.
     For example, each MED node can have its own ID as well as any other mesh cell
   */
-  struct TIDMapper: virtual TBaseStructure
+  struct VISU_CONVERTOR_EXPORT TIDMapper: virtual TBaseStructure
   {
     //! Get node object ID for corresponding VTK ID
     virtual 
index 2eaddcfe6d7449aa0b81033270e69e4bc8fdec3b..185088130241310b2daf1805100c9989fc4ab00e 100644 (file)
@@ -47,10 +47,10 @@ using MED::TFloat;
 using MED::EBooleen;
 
 #ifdef _DEBUG_
-static int MYDEBUG = 0;
-static int MYVALUEDEBUG = 0;
-static int MY_FAMILY_DEBUG = 0;
-static int MY_GROUP_DEBUG = 0;
+static int MYDEBUG = 1;
+static int MYVALUEDEBUG = 1;
+static int MY_FAMILY_DEBUG = 1;
+static int MY_GROUP_DEBUG = 1;
 //#define _DEXCEPT_
 #else
 static int MYDEBUG = 0;
@@ -62,7 +62,7 @@ static int MY_GROUP_DEBUG = 0;
 #define _LOAD_FAMILIES_
 #define _EDF_NODE_IDS_
 
-namespace
+namespace VISU
 {
   //---------------------------------------------------------------
   vtkIdType
@@ -135,7 +135,7 @@ namespace
   MEDEntityToVTK(MED::EEntiteMaillage theMEDEntity)
   {
     switch(theMEDEntity){
-    case MED::eNOEUD: return NODE_ENTITY;
+    case MED::eNOEUD: return VISU::NODE_ENTITY;
     case MED::eARETE: return EDGE_ENTITY;
     case MED::eFACE: return FACE_ENTITY;
     case MED::eMAILLE: return CELL_ENTITY;
@@ -149,7 +149,7 @@ namespace
   VTKEntityToMED(TEntity theVTKEntity)
   {
     switch(theVTKEntity){
-    case NODE_ENTITY: return MED::eNOEUD;
+    case VISU::NODE_ENTITY: return MED::eNOEUD;
     case EDGE_ENTITY: return MED::eARETE;
     case FACE_ENTITY: return MED::eFACE;
     case CELL_ENTITY: return MED::eMAILLE;
@@ -428,7 +428,7 @@ namespace
     TTimerLog aTimerLog(MYDEBUG,"InitGaussMesh");
     INITMSG(MYDEBUG,"InitGaussMesh"<<endl);
 
-    if(theMeshOnEntity.myEntity == NODE_ENTITY)
+    if(theMeshOnEntity.myEntity == VISU::NODE_ENTITY)
       return;
 
     TGaussMeshMap& aGaussMeshMap = theMeshOnEntity.myGaussMeshMap;
@@ -1234,8 +1234,8 @@ VISU_MedConvertor
                    float& aMax = aMinMax.second;
                    for(TInt iGauss = 0; iGauss < aNbGauss; iGauss++){
                      const float& aVal = aMValueSlice[iGauss];
-                     aMin = min(aMin,aVal);
-                     aMax = max(aMax,aVal);
+                         aMin = std::min(aMin,aVal);
+                     aMax = std::max(aMax,aVal);
                    }
                  }
                }
@@ -1254,8 +1254,8 @@ VISU_MedConvertor
                      aValue += aVal*aVal;
                    }
                    aValue = sqrt(aValue);
-                   aMin = min(aMin,aValue);
-                   aMax = max(aMax,aValue);
+                   aMin = std::min(aMin,aValue);
+                   aMax = std::max(aMax,aValue);
                  }
                }
              }
@@ -1378,7 +1378,7 @@ VISU_MedConvertor
   const TEntity& anEntity = theMeshOnEntity->myEntity;
 
   int isPointsUpdated = 0, isCellsOnEntityUpdated = 0;
-  if(anEntity == NODE_ENTITY){
+  if(anEntity == VISU::NODE_ENTITY){
     isPointsUpdated += LoadPoints(aMed,theMesh);
   }else{
     isPointsUpdated += LoadPoints(aMed,theMesh);
@@ -1403,7 +1403,7 @@ VISU_MedConvertor
   const TEntity& anEntity = theMeshOnEntity->myEntity;
 
   int isPointsUpdated = 0, isCellsOnEntityUpdated = 0;
-  if(anEntity == NODE_ENTITY){
+  if(anEntity == VISU::NODE_ENTITY){
     isPointsUpdated += LoadPointsOnFamily(aMed,theMesh,theFamily);
   }else{
     isPointsUpdated += LoadPoints(aMed,theMesh);
@@ -1430,7 +1430,7 @@ VISU_MedConvertor
     PMEDFamily aFamily = *aFamilyIter;
     const TEntity& anEntity = aFamily->myEntity;
     const PMEDMeshOnEntity aMeshOnEntity = theMesh->myMeshOnEntityMap[anEntity];
-    if(anEntity == NODE_ENTITY){
+    if(anEntity == VISU::NODE_ENTITY){
       isPointsUpdated += LoadPointsOnFamily(aMed,theMesh,aFamily);
     }else{
       isPointsUpdated += LoadPoints(aMed,theMesh);
@@ -1458,7 +1458,7 @@ VISU_MedConvertor
   const TEntity& anEntity = theMeshOnEntity->myEntity;
   int isPointsUpdated = 0, isCellsOnEntityUpdated = 0;
   isPointsUpdated += LoadPoints(aMed,theMesh);
-  if(anEntity != NODE_ENTITY)
+  if(anEntity != VISU::NODE_ENTITY)
     isCellsOnEntityUpdated += LoadCellsOnEntity(aMed,theMesh,theMeshOnEntity);
   int isFieldUpdated = LoadValForTimeOnMesh(aMed,theMesh,theMeshOnEntity,theField,theValForTime);
   
@@ -1481,7 +1481,7 @@ VISU_MedConvertor
 
   const TEntity& anEntity = theMeshOnEntity->myEntity;
   int isPointsUpdated = 0, isCellsOnEntityUpdated = 0;
-  if(anEntity != NODE_ENTITY)
+  if(anEntity != VISU::NODE_ENTITY)
     isCellsOnEntityUpdated += LoadCellsOnEntity(aMed,theMesh,theMeshOnEntity);
   int isFieldUpdated = LoadValForTimeOnGaussPts(aMed,theMesh,theMeshOnEntity,theField,theValForTime);
   
@@ -1500,7 +1500,7 @@ VISU_MedConvertor
     //Check on existing family
     PMEDMeshOnEntity aMeshOnEntity = theMesh->myMeshOnEntityMap[VISU::NODE_ENTITY];
     aMeshOnEntity->myMeshName = theMesh->myName;
-    aMeshOnEntity->myEntity = NODE_ENTITY;
+    aMeshOnEntity->myEntity = VISU::NODE_ENTITY;
 
     INITMSG(MYDEBUG,"LoadPoints - theMesh->myIsDone = "<<theMesh->myIsDone<<"'\n");
 
@@ -1524,7 +1524,10 @@ VISU_MedConvertor
       TCoordSlice aVCoordSlice = aCoords.GetCoordSlice(iElem);
       MED::TCCoordSlice aMCoordSlice = aNodeInfo->GetCoordSlice(iElem);
       for(int iDim = 0; iDim < aDim; iDim++)
-       aVCoordSlice[iDim] = aMCoordSlice[iDim];
+      {
+        cout << iElem << " " << aMCoordSlice[iDim] << endl;
+             aVCoordSlice[iDim] = aMCoordSlice[iDim];
+      }
     }
     
     TGeom2SubMesh& aGeom2SubMesh = aMeshOnEntity->myGeom2SubMesh;
index 45dc68bcc768c0fe181b93ffa050a39ba6c49ed8..8ac28f76866f45ec14fea34e45486edc35b5802f 100644 (file)
@@ -26,6 +26,8 @@
 #include "SALOME_NamingService.hxx"
 #include "Utils_ExceptHandlers.hxx"
 
+#include <qmutex.h>
+
 using namespace std;
 
 #ifdef _DEBUG_
@@ -34,9 +36,20 @@ static int MYDEBUG = 1;
 static int MYDEBUG = 0;
 #endif
 
+#ifdef WNT
+#ifdef VISU_ENGINE_EXPORTS
+#define VISU_ENGINE_EXPORT __declspec(dllexport)
+#else
+#define VISU_ENGINE_EXPORT __declspec(dllimport)
+#endif
+#else
+#define VISU_ENGINE_EXPORT
+#endif
+
 UNEXPECT_CATCH(SalomeException, SALOME::SALOME_Exception);
 
 extern "C" {
+VISU_ENGINE_EXPORT
   PortableServer::ObjectId * 
   VISUEngine_factory(CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, PortableServer::ObjectId * contId,
                     const char *instanceName, const char *interfaceName) 
@@ -62,7 +75,8 @@ namespace VISU{
     CORBA::Object_ptr anObject = aNamingService.Resolve("/Kernel/Session");
     SALOME::Session_var aSession = SALOME::Session::_narrow(anObject);
     //aSession->GetInterface(); 
-    Engines::Component_var aComponent = aSession->GetComponent("libVISUEngineImpl.so");
+    //Engines::Component_var aComponent = aSession->GetComponent("libVISUEngineImpl.so");
+       Engines::Component_var aComponent = aSession->GetComponent("VISUEngineImpl.dll");
     myVisuGen = VISU::VISU_Gen::_narrow(aComponent);
   } 
 
diff --git a/src/GUITOOLS/VisuGUITools.h b/src/GUITOOLS/VisuGUITools.h
new file mode 100755 (executable)
index 0000000..d8fbf8a
--- /dev/null
@@ -0,0 +1,47 @@
+//  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   : VisuGUITools.h
+//  Author : Oleg UVAROV
+//  Module : VISU
+
+#ifndef _VisuGUITools_H_
+#define _VisuGUITools_H_
+
+#ifdef WNT
+ #if defined VISU_GUITOOLS_EXPORTS
+  #if defined WIN32
+   #define VISU_GUITOOLS_EXPORT __declspec( dllexport )
+  #else
+   #define VISU_GUITOOLS_EXPORT
+  #endif
+ #else
+  #if defined WIN32
+   #define VISU_GUITOOLS_EXPORT __declspec( dllimport )
+  #else
+   #define VISU_GUITOOLS_EXPORT
+  #endif
+ #endif
+#else
+ #define VISU_GUITOOLS_EXPORT
+#endif
+
+#endif
\ No newline at end of file
index 82481f9e1c832a75065eb93deae6904ff49b7615..859d919af1e824171eb46c980b28e668a1ff409d 100644 (file)
@@ -20,7 +20,9 @@ class VisuGUI_TableWidget;
 
 #include <SALOMEDSClient_SObject.hxx>
 
-class VisuGUI_TableDlg : public QDialog
+#include "VisuGUITools.h"
+
+class VISU_GUITOOLS_EXPORT VisuGUI_TableDlg : public QDialog
 { 
   Q_OBJECT
 
index ffeab72e279cbafa2fc4afd5f775057e9eb0abad..381c03885b7a2ee236d1188435320656821624af 100644 (file)
@@ -46,7 +46,7 @@ class vtkInteractorStyle;
 class VTKViewer_ShrinkFilter;
 class VISU_PipeLine;
 
-#ifdef _WIN_32
+#ifdef _WIN32
 #define VTKOCC_EXPORT __declspec (dllexport)
 #else
 #define VTKOCC_EXPORT VTK_EXPORT
index 1778521db9a910bd3953ae19ffe243df5a4271cb..c1c89b2d8052c9ea7639c38f6119acb6359092ed 100644 (file)
@@ -34,6 +34,7 @@
 
 class vtkImageData;
 
+#include "VISU_Actor.h"
 
 //============================================================================
 namespace VISU
@@ -46,7 +47,7 @@ namespace VISU
 
 
 //! Base class of Gauss Points settings.
-class VISU_GaussPtsSettings : public vtkObject
+class VTKOCC_EXPORT VISU_GaussPtsSettings : public vtkObject
 {
  public:
   vtkTypeMacro( VISU_GaussPtsSettings, vtkObject );
@@ -101,7 +102,7 @@ class VISU_GaussPtsSettings : public vtkObject
  * Clamp, Texture, Alpha threshold, Const size and Color.
  * Used by Gauss Points Actor.
  */
-class VISU_InsideCursorSettings : public VISU_GaussPtsSettings
+class VTKOCC_EXPORT VISU_InsideCursorSettings : public VISU_GaussPtsSettings
 {
  public:
   vtkTypeMacro( VISU_InsideCursorSettings, vtkObject );
@@ -132,7 +133,7 @@ class VISU_InsideCursorSettings : public VISU_GaussPtsSettings
  * Clamp, Texture, Alpha threshold, Const size and Color.
  * Used by Gauss Points Actor.
  */
-class VISU_OutsideCursorSettings : public VISU_GaussPtsSettings
+class VTKOCC_EXPORT VISU_OutsideCursorSettings : public VISU_GaussPtsSettings
 {
  public:
   vtkTypeMacro( VISU_OutsideCursorSettings, vtkObject );
@@ -168,7 +169,7 @@ class VISU_OutsideCursorSettings : public VISU_GaussPtsSettings
  * Camera movement steps number and Display parent mesh.
  * Used by Gauss Points Actor.
  */
-class VISU_PickingSettings : public vtkObject
+class VTKOCC_EXPORT VISU_PickingSettings : public vtkObject
 {
  public:
   enum { BelowPoint = 0, TopLeftCorner };
index d1ac8fe3f9f25b176508c889eda26470f9f6c7e3..22852f285957db9def63dd38904b26eaadd0cfb9 100644 (file)
@@ -56,9 +56,11 @@ using namespace std;
 
 static int isOnlyMesh = false;
 
-int main(int argc, char** argv){
-  try{
-    if(argc > 1){
+int main(int argc, char** argv)
+{
+  try {
+    if(argc > 1)
+    {
       vtkRenderWindow *renWin = vtkRenderWindow::New();
       vtkRenderer *ren = vtkRenderer::New();
       renWin->AddRenderer(ren);
@@ -76,97 +78,104 @@ int main(int argc, char** argv){
       const VISU::PMesh aMesh = aMeshMapIter->second;
       const VISU::TMeshOnEntityMap& aMeshOnEntityMap = aMesh->myMeshOnEntityMap;
       VISU::TMeshOnEntityMap::const_iterator aMeshOnEntityMapIter;
-      if(isOnlyMesh){
-       const VISU::TEntity& anEntity = VISU::CELL_ENTITY;
-       aMeshOnEntityMapIter = aMeshOnEntityMap.find(anEntity);
+      if(isOnlyMesh)
+      {
+             const VISU::TEntity& anEntity = VISU::CELL_ENTITY;
+             aMeshOnEntityMapIter = aMeshOnEntityMap.find(anEntity);
 
-       VISU::PIDMapper anIDMapper = 
-         aConvertor->GetMeshOnEntity(aMeshName,anEntity);
-       VISU::TVTKOutput* aDataSet = anIDMapper->GetVTKOutput();
+             VISU::PIDMapper anIDMapper = 
+               aConvertor->GetMeshOnEntity(aMeshName,anEntity);
+             VISU::TVTKOutput* aDataSet = anIDMapper->GetVTKOutput();
 
-       VISU_MeshPL* aPresent = VISU_MeshPL::New();
-       aPresent->SetInput(aDataSet);
-       aPresent->Build();
+             VISU_MeshPL* aPresent = VISU_MeshPL::New();
+             aPresent->SetInput(aDataSet);
+             aPresent->Build();
 
-       vtkActor* aActor = vtkActor::New();
-       aActor->SetMapper(aPresent->GetMapper());
-       aActor->GetProperty()->SetRepresentation(VTK_WIREFRAME);
-       //ren->ResetCameraClippingRange();
+             vtkActor* aActor = vtkActor::New();
+             aActor->SetMapper(aPresent->GetMapper());
+             aActor->GetProperty()->SetRepresentation(VTK_WIREFRAME);
+             //ren->ResetCameraClippingRange();
 
-       ren->AddActor(aActor);
+             ren->AddActor(aActor);
 
-       renWin->Render();
-       iren->Start();
-       return 0;
+             renWin->Render();
+             iren->Start();
+             return 0;
       }
       //Import fields
       aMeshOnEntityMapIter = aMeshOnEntityMap.begin();
-      for(; aMeshOnEntityMapIter != aMeshOnEntityMap.end(); aMeshOnEntityMapIter++) {
-       const VISU::TEntity& anEntity = aMeshOnEntityMapIter->first;
-       const VISU::PMeshOnEntity aMeshOnEntity = aMeshOnEntityMapIter->second;
-       const VISU::TFieldMap& aFieldMap = aMeshOnEntity->myFieldMap;
-       VISU::TFieldMap::const_iterator aFieldMapIter = aFieldMap.begin();
-       for(; aFieldMapIter != aFieldMap.end(); aFieldMapIter++){
-         const VISU::PField aField = aFieldMapIter->second;
-         /*
-         if(aField->myNbComp == 1) 
-           continue;
-         */
-         const string& aFieldName = aFieldMapIter->first;
-         const VISU::TValField& aValField = aField->myValField;
-         VISU::TValField::const_iterator aValFieldIter = aValField.begin();
-         if(aValFieldIter == aValField.end()) return 0;
-         int aTimeStamp = aValFieldIter->first;
-
-         TPresent* aPresent = TPresent::New();
-         VISU::PIDMapper anIDMapper;
-         if(anEntity != VISU::NODE_ENTITY){
-           VISU::PGaussPtsIDMapper aGaussPtsIDMapper = aConvertor->GetTimeStampOnGaussPts(aMeshName,anEntity,aFieldName,aTimeStamp);
-           aPresent->SetGaussPtsIDMapper(aGaussPtsIDMapper);
-         }else{
-           continue;
-           VISU::PIDMapper anIDMapper = aConvertor->GetTimeStampOnMesh(aMeshName,anEntity,aFieldName,aTimeStamp);
-           aPresent->SetIDMapper(anIDMapper);
-         }
-
-         aPresent->Build();
-         aPresent->Init();
-
-         char aMainTexture[80];
-         strcpy( aMainTexture, getenv( "VISU_ROOT_DIR" ) );
-         strcat( aMainTexture, "/share/salome/resources/sprite_texture.vti" );
-         //cout << aMainTexture << endl;
-
-         char anAlphaTexture[80];
-         strcpy( anAlphaTexture, getenv( "VISU_ROOT_DIR" ) );
-         strcat( anAlphaTexture, "/share/salome/resources/sprite_alpha.vti" );
-         //cout << anAlphaTexture << endl;
-
-         vtkSmartPointer<vtkImageData> aTextureValue = VISU_GaussPointsPL::MakeTexture( aMainTexture, anAlphaTexture );
-         aPresent->SetImageData( aTextureValue.GetPointer() );
-
-         aPresent->Update();
-
-         vtkActor* anActor = vtkActor::New();
-         anActor->SetMapper(aPresent->GetMapper());
-
-         VISU_ScalarBarActor * aScalarBar = VISU_ScalarBarActor::New();
-         aScalarBar->SetLookupTable(aPresent->GetBarTable());
-
-         ren->AddActor(anActor);
-         ren->AddActor2D(aScalarBar);
-
-         renWin->Render();
-         ren->ResetCamera();
-
-         iren->Start();
-         return 0;
-       }
+      for(; aMeshOnEntityMapIter != aMeshOnEntityMap.end(); aMeshOnEntityMapIter++)
+      {
+           const VISU::TEntity& anEntity = aMeshOnEntityMapIter->first;
+           const VISU::PMeshOnEntity aMeshOnEntity = aMeshOnEntityMapIter->second;
+           const VISU::TFieldMap& aFieldMap = aMeshOnEntity->myFieldMap;
+           VISU::TFieldMap::const_iterator aFieldMapIter = aFieldMap.begin();
+
+        for(; aFieldMapIter != aFieldMap.end(); aFieldMapIter++)
+        {
+               const VISU::PField aField = aFieldMapIter->second;
+               //if(aField->myNbComp == 1) 
+               //  continue;
+               const string& aFieldName = aFieldMapIter->first;
+               const VISU::TValField& aValField = aField->myValField;
+               VISU::TValField::const_iterator aValFieldIter = aValField.begin();
+               if(aValFieldIter == aValField.end()) return 0;
+               int aTimeStamp = aValFieldIter->first;
+
+               TPresent* aPresent = TPresent::New();
+               VISU::PIDMapper anIDMapper;
+               if(anEntity != VISU::NODE_ENTITY)
+          {
+                 VISU::PGaussPtsIDMapper aGaussPtsIDMapper = aConvertor->GetTimeStampOnGaussPts(aMeshName,anEntity,aFieldName,aTimeStamp);
+                 aPresent->SetGaussPtsIDMapper(aGaussPtsIDMapper);
+               }
+          else
+          {
+                 continue;
+                 VISU::PIDMapper anIDMapper = aConvertor->GetTimeStampOnMesh(aMeshName,anEntity,aFieldName,aTimeStamp);
+                 aPresent->SetIDMapper(anIDMapper);
+               }
+
+               aPresent->Build();
+               aPresent->Init();
+
+          char aMainTexture[80];
+               strcpy( aMainTexture, getenv( "VISU_ROOT_DIR" ) );
+               strcat( aMainTexture, "/share/salome/resources/sprite_texture.vti" );
+               //cout << aMainTexture << endl;
+
+               char anAlphaTexture[80];
+               strcpy( anAlphaTexture, getenv( "VISU_ROOT_DIR" ) );
+               strcat( anAlphaTexture, "/share/salome/resources/sprite_alpha.vti" );
+               //cout << anAlphaTexture << endl;
+
+               vtkSmartPointer<vtkImageData> aTextureValue = VISU_GaussPointsPL::MakeTexture( aMainTexture, anAlphaTexture );
+               aPresent->SetImageData( aTextureValue.GetPointer() );
+
+          aPresent->Update();
+
+               vtkActor* anActor = vtkActor::New();
+               anActor->SetMapper(aPresent->GetMapper());
+
+               VISU_ScalarBarActor * aScalarBar = VISU_ScalarBarActor::New();
+               aScalarBar->SetLookupTable(aPresent->GetBarTable());
+
+               ren->AddActor(anActor);
+               ren->AddActor2D(aScalarBar);
+
+               renWin->Render();
+               ren->ResetCamera();
+
+               iren->Start();
+               return 0;
+             }
       }
     }
-  }catch(std::exception& exc){
+  }
+  catch(std::exception& exc){
     MESSAGE("Follow exception was occured :\n"<<exc.what());
-  }catch(...){
+  }
+  catch(...){
     MESSAGE("Unknown exception was occured in VISU_Convertor_impl");
   }
   return 1;
diff --git a/src/PIPELINE/VISUPipeline.hxx b/src/PIPELINE/VISUPipeline.hxx
new file mode 100755 (executable)
index 0000000..897c68a
--- /dev/null
@@ -0,0 +1,47 @@
+//  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   : VISUPipeline.hxx
+//  Author : Oleg UVAROV
+//  Module : VISU
+
+#ifndef _VISUPipeline_HXX_
+#define _VISUPipeline_HXX_
+
+#ifdef WNT
+ #if defined VISU_PIPELINE_EXPORTS
+  #if defined WIN32
+   #define VISU_PIPELINE_EXPORT __declspec( dllexport )
+  #else
+   #define VISU_PIPELINE_EXPORT
+  #endif
+ #else
+  #if defined WIN32
+   #define VISU_PIPELINE_EXPORT __declspec( dllimport )
+  #else
+   #define VISU_PIPELINE_EXPORT
+  #endif
+ #endif
+#else
+ #define VISU_PIPELINE_EXPORT
+#endif
+
+#endif
\ No newline at end of file
index cc316781bbbddb25a4591fb0b54ffee054522670..36dde2fe0fdd35961775e7f0855f7a5562f1e345 100644 (file)
 #ifndef VISU_CutLinesPL_HeaderFile
 #define VISU_CutLinesPL_HeaderFile
 
+#include "VISUPipeline.hxx"
 #include "VISU_CutPlanesPL.hxx"
 
 class vtkAppendPolyData;
 
-class VISU_CutLinesPL : public VISU_CutPlanesPL{
+class VISU_PIPELINE_EXPORT VISU_CutLinesPL : public VISU_CutPlanesPL{
 protected:
   VISU_CutLinesPL();
   VISU_CutLinesPL(const VISU_CutLinesPL&);
index b561f512b5bf7d30dc6791c6e9d1ddb7cafb3382..547b32be1c6c5e6dc4a8acb1f9a5ca1badfd4b05 100644 (file)
 #ifndef VISU_CutPlanesPL_HeaderFile
 #define VISU_CutPlanesPL_HeaderFile
 
+#include "VISUPipeline.hxx"
 #include "VISU_ScalarMapPL.hxx"
 
 #include <vector>
 
 class vtkAppendPolyData;
 
-class VISU_CutPlanesPL : public VISU_ScalarMapPL{
+class VISU_PIPELINE_EXPORT VISU_CutPlanesPL : public VISU_ScalarMapPL{
 protected:
   VISU_CutPlanesPL();
   VISU_CutPlanesPL(const VISU_CutPlanesPL&);
index 9c2f95a703e043f81b1352e7c0166c12c1d623ce..81c06f037aa653c63853cae19af4760d3d8521c0 100644 (file)
 #ifndef VISU_DeformedShapePL_HeaderFile
 #define VISU_DeformedShapePL_HeaderFile
 
+#include "VISUPipeline.hxx"
 #include "VISU_ScalarMapPL.hxx"
 
 class vtkCellDataToPointData;
 class SALOME_Transform;
 class vtkWarpVector;
 
-class VISU_DeformedShapePL : public VISU_ScalarMapPL{
+class VISU_PIPELINE_EXPORT VISU_DeformedShapePL : public VISU_ScalarMapPL{
 protected:
   VISU_DeformedShapePL();
   VISU_DeformedShapePL(const VISU_DeformedShapePL&);
index 8d1d0dff678a95319de15b0e816b5d19e30b9478..a667a8e1c4697bc2deb261a9ed17f52547ea24d4 100644 (file)
@@ -196,6 +196,10 @@ VISU_GaussPointsPL
   Superclass::Init();
 
   vtkDataSet* aDataSet = GetParentMesh();
+  aDataSet->Update();
+
+  aDataSet->Print( cout );
+
   float aScaleFactor = VISU_DeformedShapePL::GetScaleFactor( aDataSet );
 
   float* aScalarRange = GetScalarRange();
index b342ab56f04f7a3832929bd34094fe8130b31552..b0dfa879bcb84d5f75fdaa573650a57e404cfdbf 100644 (file)
@@ -28,6 +28,7 @@
 #ifndef VISU_GaussPointsPL_HeaderFile
 #define VISU_GaussPointsPL_HeaderFile
 
+#include "VISUPipeline.hxx"
 #include "VISU_ScalarMapPL.hxx"
 #include "VISU_Convertor.hxx"
 
@@ -52,7 +53,7 @@ class SALOME_Transform;
  * This class uses the special mapper (VISU_OpenGLPointSpriteMapper)
  * for rendering the Gauss Points as Point Sprites.
  */
-class VISU_GaussPointsPL : public VISU_ScalarMapPL
+class VISU_PIPELINE_EXPORT VISU_GaussPointsPL : public VISU_ScalarMapPL
 {
 protected:
   VISU_GaussPointsPL();
index 8f46e43ba636d11cb643dcbc57928b40f92d938d..d61549f9c74ffb4dd97249d56fed3415c50781f9 100644 (file)
@@ -34,6 +34,9 @@
 // purpose :
 //==================================================================
 #include <vtkFollower.h>
+
+#include "VISUPipeline.hxx"
+
 class VISU_UnScaledActor: public vtkFollower
 {
   
@@ -60,7 +63,7 @@ protected:
 
 class vtkImplicitFunction;
 
-class VISU_ImplicitFunctionWidget : public vtk3DWidget
+class VISU_PIPELINE_EXPORT VISU_ImplicitFunctionWidget : public vtk3DWidget
 {
 public:
   vtkTypeRevisionMacro(VISU_ImplicitFunctionWidget,vtk3DWidget);
index 68732e377d1abe0688041a5e0aadd98301a7a84e..b16d93c086b623752fa6dd43852d69b60e53241b 100644 (file)
 #ifndef VISU_IsoSurfacesPL_HeaderFile
 #define VISU_IsoSurfacesPL_HeaderFile
 
+#include "VISUPipeline.hxx"
 #include "VISU_ScalarMapPL.hxx"
 
 class vtkContourFilter;
 class vtkCellDataToPointData;
 
-class VISU_IsoSurfacesPL : public VISU_ScalarMapPL{
+class VISU_PIPELINE_EXPORT VISU_IsoSurfacesPL : public VISU_ScalarMapPL{
 protected:
   VISU_IsoSurfacesPL();
   VISU_IsoSurfacesPL(const VISU_IsoSurfacesPL&);
index 20f7c23e5b2b0673f2c7e974e4d51a8d71dca03a..ccaf84f7f73d1b8c4e8c1b353bbf8e46081a1775 100644 (file)
@@ -23,7 +23,7 @@ class VISU_LookupTable: public vtkLookupTable {
   float GetMapScale() { return myScale; }
   void SetMapScale(float theScale = 1.0);
 
-  float GetBicolor() { return myBicolor; }
+  bool GetBicolor() { return myBicolor; }
   void SetBicolor( bool theBicolor );
 
    static int ComputeLogRange(float inRange[2], float outRange[2]);
index 27be219c5086f8ad469539138ee7bf889485e50c..5a1aaf0d95317f13d855cfb3456110676b4919bb 100644 (file)
 #ifndef VISU_MeshPL_HeaderFile
 #define VISU_MeshPL_HeaderFile
 
+#include "VISUPipeline.hxx"
 #include "VISU_PipeLine.hxx"
 
-class VISU_MeshPL : public VISU_PipeLine{
+class VISU_PIPELINE_EXPORT VISU_MeshPL : public VISU_PipeLine{
 protected:
   VISU_MeshPL();
   VISU_MeshPL(const VISU_MeshPL&);
index d8eb9e8ae9824755d88e8f2a0c8960d4be8a8b56..b956554fd2a13afb40798cce71627c42c4e42583 100755 (executable)
@@ -45,7 +45,9 @@
 #include <vtkTimerLog.h>
 #include <vtkTriangle.h>
 
+#ifndef WIN32
 #include <dlfcn.h>
+#endif
 
 #include <stdio.h>
 #include <cmath>
@@ -65,6 +67,8 @@ vtkStandardNewMacro(VISU_OpenGLPointSpriteMapper);
 #define VTK_PDPSM_NORMAL_TYPE_DOUBLE 0x0020
 #define VTK_PDPSM_OPAQUE_COLORS      0x0040
 
+//#ifndef WIN32
+
 #ifndef APIENTRY
 #define APIENTRY
 #endif
@@ -136,6 +140,27 @@ static PFNGLDELETEBUFFERSARBPROC            vglDeleteBuffersARB           = NULL
 
 int InitializeARB()
 {
+#ifdef WIN32
+  HMODULE OpenGLLibrary = ::LoadLibrary( "nvoglnt.dll" );
+
+  FARPROC vglShaderSourceARB1 = GetProcAddress( OpenGLLibrary, "DrvGetProcAddress" );
+  vglShaderSourceARB = (PFNGLSHADERSOURCEARBPROC)::GetProcAddress( OpenGLLibrary, "glShaderSourceARB" );
+  vglCreateShaderObjectARB = (PFNGLCREATESHADEROBJECTARBPROC)::GetProcAddress( OpenGLLibrary, "glCreateShaderObjectARB" );
+  vglCompileShaderARB = (PFNGLCOMPILESHADERARBPROC)::GetProcAddress( OpenGLLibrary, "glCompileShaderARB" );
+  vglCreateProgramObjectARB = (PFNGLCREATEPROGRAMOBJECTARBPROC)::GetProcAddress( OpenGLLibrary, "glCreateProgramObjectARB" );
+  vglAttachObjectARB = (PFNGLATTACHOBJECTARBPROC)::GetProcAddress( OpenGLLibrary, "glAttachObjectARB" );
+  vglLinkProgramARB = (PFNGLLINKPROGRAMARBPROC)::GetProcAddress( OpenGLLibrary, "glLinkProgramARB" );
+  vglUseProgramObjectARB = (PFNGLUSEPROGRAMOBJECTARBPROC)::GetProcAddress( OpenGLLibrary, "glUseProgramObjectARB" );
+  vglGetObjectParameterivARB = (PFNGLGETOBJECTPARAMETERIVARBPROC)::GetProcAddress( OpenGLLibrary, "glGetObjectParameterivARB" );
+  vglGetInfoLogARB = (PFNGLGETINFOLOGARBPROC)::GetProcAddress( OpenGLLibrary, "glGetInfoLogARB" );
+  vglGetAttribLocationARB = (PFNGLGETATTRIBLOCATIONARBPROC)::GetProcAddress( OpenGLLibrary, "glGetAttribLocationARB" );
+  vglVertexAttrib1fARB = (PFNGLVERTEXATTRIB1FARBPROC)::GetProcAddress( OpenGLLibrary, "glVertexAttrib1fARB" );
+
+  vglGenBuffersARB = (PFNGLGENBUFFERSARBPROC)::GetProcAddress( OpenGLLibrary, "glGenBuffersARB" );
+  vglBindBufferARB = (PFNGLBINDBUFFERARBPROC)::GetProcAddress( OpenGLLibrary, "glBindBufferARB" );
+  vglBufferDataARB = (PFNGLBUFFERDATAARBPROC)::GetProcAddress( OpenGLLibrary, "glBufferDataARB" );
+  vglDeleteBuffersARB = (PFNGLDELETEBUFFERSARBPROC)::GetProcAddress( OpenGLLibrary, "glDeleteBuffersARB" );
+#else
   void* OpenGLLibrary = dlopen( "libGL.so", RTLD_LAZY );
 
   vglShaderSourceARB = (PFNGLSHADERSOURCEARBPROC)dlsym( OpenGLLibrary, "glShaderSourceARB" );
@@ -154,11 +179,16 @@ int InitializeARB()
   vglBindBufferARB = (PFNGLBINDBUFFERARBPROC)dlsym( OpenGLLibrary, "glBindBufferARB" );
   vglBufferDataARB = (PFNGLBUFFERDATAARBPROC)dlsym( OpenGLLibrary, "glBufferDataARB" );
   vglDeleteBuffersARB = (PFNGLDELETEBUFFERSARBPROC)dlsym( OpenGLLibrary, "glDeleteBuffersARB" );
+#endif
+
 
   return 1;
 };
 
 static int IsARBInitialized = InitializeARB();
+
+//#endif // #ifndef WIN32
+
 static float Tolerance = 1.0 / VTK_LARGE_FLOAT;
 
 //-----------------------------------------------------------------------------
@@ -416,7 +446,7 @@ float ViewToDisplay( vtkRenderer* theRenderer )
   theRenderer->ViewToDisplay();
   theRenderer->GetDisplayPoint( p2 );
 
-  float coefficient = sqrt( pow( p2[0] - p1[0], 2 ) + pow( p2[1] - p1[1], 2 ) ) / sqrt( 2 );
+  float coefficient = sqrt( (double)( pow( p2[0] - p1[0], 2 ) + pow( p2[1] - p1[1], 2 ) ) ) / sqrt( (double)2 );
   //cout << p1[0] << " " << p1[1] << " " << p1[2] << endl;
   //cout << p2[0] << " " << p2[1] << " " << p2[2] << endl;
   //cout << "ZOOM  : " << coefficient << endl;
index 1ddb55fff3421cd6d6a54d0999f5ae2519b49cd9..10e04be9de0f4bc04dc40d13c061ca78b08bd7fe 100755 (executable)
 # pragma warning ( disable : 4275 )
 #endif
 
+#ifdef WIN32
+#include <windows.h>
+#endif
+
 #include <GL/gl.h>
 
 #include <vtkSmartPointer.h>
@@ -60,6 +64,8 @@ class vtkXMLImageDataReader;
 typedef GLuint GLhandleARB;
 #endif
 
+#include "VISUPipeline.hxx"
+
 //----------------------------------------------------------------------------
 //! OpenGL Point Sprites PolyData Mapper.
 /*!
@@ -70,7 +76,7 @@ typedef GLuint GLhandleARB;
  * usage of the pipeline is larger than this limit, the mapper will divide 
  * the data into pieces and render each in a for loop.
  */
-class VISU_OpenGLPointSpriteMapper : public MAPPER_SUPERCLASS
+class VISU_PIPELINE_EXPORT VISU_OpenGLPointSpriteMapper : public MAPPER_SUPERCLASS
 {
 public:
   //! The Point Sprites rendering mode.
index 5e2a1ed8bf8bb85694140c757ef8ffdb2845a112..7485975fb6d8385be4433bb48d5fe807c18dc8c2 100644 (file)
@@ -31,6 +31,7 @@
 #include <vtkObject.h>
 #include <vtkSmartPointer.h>
 
+#include "VISUPipeline.hxx"
 #include "VISU_IDMapper.hxx"
 
 class vtkCell;
@@ -81,7 +82,7 @@ class SALOME_ExtractGeometry;
 
 typedef VISU::TVTKOutput TInput;
 
-class VISU_PipeLine : public vtkObject{
+class VISU_PIPELINE_EXPORT VISU_PipeLine : public vtkObject{
 public:
   vtkTypeMacro(VISU_PipeLine,vtkObject);
   virtual
@@ -209,7 +210,6 @@ public:
 
 protected:
   VISU_PipeLine();
-  VISU_PipeLine(const VISU_PipeLine&);
 
   virtual 
   TInput* 
index 7b2523506501a1ffc50665c16906e6843b7ba61f..06d054de625a610c37b4b6b27e5101dda49e3794 100644 (file)
@@ -27,6 +27,7 @@
 #ifndef VISU_PipeLineUtils_HeaderFile
 #define VISU_PipeLineUtils_HeaderFile
 
+#include "VISUPipeline.hxx"
 #include "VISU_FieldTransform.hxx"
 #include "VISU_LookupTable.hxx"
 #include "VISU_Extractor.hxx"
@@ -56,8 +57,8 @@
 #endif
 
 namespace VISU{
-  void Mul(const float A[3], float b, float C[3]); // C = A * b
-  void Sub(const float A[3], const float B[3], float C[3]); // C = A - B
+  VISU_PIPELINE_EXPORT void Mul(const float A[3], float b, float C[3]); // C = A * b
+  VISU_PIPELINE_EXPORT void Sub(const float A[3], const float B[3], float C[3]); // C = A - B
 
   template<class TItem> 
   void
index fdf45367f80800451ff67fc7b315ae388239d5db..8561b9c7317b64be00f15044897a22a7986ef689 100644 (file)
@@ -29,6 +29,7 @@
 #ifndef __VISU_PlanesWidget_h
 #define __VISU_PlanesWidget_h
 
+#include "VISUPipeline.hxx"
 #include "VISU_ImplicitFunctionWidget.hxx"
 class vtkActor;
 class vtkPolyDataMapper;
@@ -49,7 +50,7 @@ class vtkImplicitFunction;
 class VISU_UnScaledActor;
 class vtkDataSet;
 
-class  VISU_PlanesWidget : public VISU_ImplicitFunctionWidget
+class VISU_PIPELINE_EXPORT VISU_PlanesWidget : public VISU_ImplicitFunctionWidget
 {
 public:
   // Description:
index 9df47b2d6734717b569599385e77bf6c8c214a83..0f620c384f235f870ca9912d205106db716cf6cb 100644 (file)
@@ -27,6 +27,7 @@
 #ifndef VISU_Plot3DPL_HeaderFile
 #define VISU_Plot3DPL_HeaderFile
 
+#include "VISUPipeline.hxx"
 #include "VISU_ScalarMapPL.hxx"
 #include "VISU_CutPlanesPL.hxx"
 
@@ -35,7 +36,7 @@ class vtkContourFilter;
 class vtkGeometryFilter;
 class vtkCellDataToPointData;
 
-class VISU_Plot3DPL : public VISU_ScalarMapPL{
+class VISU_PIPELINE_EXPORT VISU_Plot3DPL : public VISU_ScalarMapPL{
 protected:
   VISU_Plot3DPL();
   VISU_Plot3DPL(const VISU_Plot3DPL&);
index afa44bd76023fbaa2d36451fc0ac6b71c49e9fbb..9c503acec01af1e58da0b18ef52a80ff7e98b0b0 100644 (file)
@@ -531,7 +531,7 @@ void VISU_ScalarBarActor::AllocateAndSizeLabels(int *labelSize, int *size,
     if(isLogTable && 0 < i && i < this->NumberOfLabels - 1){ // SALOME specific
       float lval = log10(range[0]) + (float)i/(this->NumberOfLabels-1) *
         (log10(range[1])-log10(range[0]));
-      val = pow(10,lval);
+      val = pow((double)10,(double)lval);
     }else{
       val = range[0] + (float)i/(this->NumberOfLabels-1) * (range[1]-range[0]);
     }
index be2f62ce0d1b5fde487c46bbb00e86cfc8532cfd..dfaaf137518400c8dd41071257c74c3923e5670e 100644 (file)
@@ -27,6 +27,7 @@
 #ifndef VISU_ScalarBarActor_HeaderFile
 #define VISU_ScalarBarActor_HeaderFile
 
+#include "VISUPipeline.hxx"
 #include "VISU_LookupTable.hxx"
 
 #include <vtkActor2D.h>
@@ -45,7 +46,7 @@ class vtkTextProperty;
 #define VTK_ORIENT_VERTICAL 1
 #endif
 
-class VISU_ScalarBarActor : public vtkActor2D
+class VISU_PIPELINE_EXPORT VISU_ScalarBarActor : public vtkActor2D
 {
 public:
   vtkTypeRevisionMacro(VISU_ScalarBarActor,vtkActor2D);
index c1a2f9586d1974e8770da2076f862b3d6f9adbab..2d8387bfc881083dd772e2c6c049507041e6ee2d 100644 (file)
 #ifndef VISU_ScalarBarCtrl_HeaderFile
 #define VISU_ScalarBarCtrl_HeaderFile
 
+#include "VISUPipeline.hxx"
+
 #include <vtkObject.h>
 
 class vtkRenderer;
 class vtkLookupTable;
 class vtkScalarBarActor;
 
-class VISU_ScalarBarCtrl :  public vtkObject
+class VISU_PIPELINE_EXPORT VISU_ScalarBarCtrl :  public vtkObject
 {
 public:
   vtkTypeMacro(VISU_ScalarBarCtrl, vtkObject);
index 6d1ccf9ae9418f8e81533c13f24a00a38db69310..69ecbe0ca06c8931bc99b4420783a0fcc5568b0a 100644 (file)
@@ -27,6 +27,7 @@
 #ifndef VISU_ScalarMapOnDeformedShapePL_HeaderFile
 #define VISU_ScalarMapOnDeformedShapePL_HeaderFile
 
+#include "VISUPipeline.hxx"
 #include "VISU_ScalarMapPL.hxx"
 
 class vtkMergeFilter;
@@ -35,7 +36,7 @@ class vtkUnstructuredGrid;
 class vtkCellDataToPointData;
 class vtkPointDataToCellData;
 
-class VISU_ScalarMapOnDeformedShapePL : public VISU_ScalarMapPL
+class VISU_PIPELINE_EXPORT VISU_ScalarMapOnDeformedShapePL : public VISU_ScalarMapPL
 {
 protected:
   VISU_ScalarMapOnDeformedShapePL();
index 1d810fb93cfcca60630bee33aa835bc6b3e510df..0672dbd510f9b7aec31ed9f0c8f89ba4ae2b1c45 100644 (file)
@@ -28,6 +28,7 @@
 #ifndef VISU_ScalrMapPL_HeaderFile
 #define VISU_ScalrMapPL_HeaderFile
 
+#include "VISUPipeline.hxx"
 #include "VISU_PipeLine.hxx"
 #include "VISU_ScalarBarActor.hxx"
 
@@ -39,11 +40,10 @@ class VISU_FieldTransform;
 
 
 //============================================================================
-class VISU_ScalarMapPL : public VISU_PipeLine
+class VISU_PIPELINE_EXPORT VISU_ScalarMapPL : public VISU_PipeLine
 {
 protected:
   VISU_ScalarMapPL();
-  VISU_ScalarMapPL(const VISU_ScalarMapPL&);
 
   virtual
   ~VISU_ScalarMapPL();
index 040a41807f57f3c9b3be7ac27888a530059cfd76..6efadaffc325da40bb99840abafd1ea36d41426c 100755 (executable)
@@ -1,6 +1,7 @@
 #ifndef __VISU_SphereWidget_h
 #define __VISU_SphereWidget_h
 
+#include "VISUPipeline.hxx"
 #include "VISU_ImplicitFunctionWidget.hxx"
 
 class VISU_UnScaledActor;
@@ -17,7 +18,7 @@ class vtkSphere;
 class vtkImplicitSum;
 class vtkImplicitFunction;
 //
-class VISU_SphereWidget : public VISU_ImplicitFunctionWidget
+class VISU_PIPELINE_EXPORT VISU_SphereWidget : public VISU_ImplicitFunctionWidget
 {
 public:
   // Description:
index 509074a9ebf5d9d679605248ef6f2fe9bc0a730c..89e3f71b3a07041075f11111bf6bac93eb42316c 100644 (file)
@@ -30,7 +30,7 @@
 #include "VISU_UsedPointsFilter.hxx"
 #include "VTKViewer_GeometryFilter.h"
 
-#include <algo.h>
+#include <algorithm>
 
 #include <vtkCell.h>
 #include <vtkPointSet.h>
index b360f97444bfc3de9ab9de57caa2f3ba1e8962b1..05976293d22aaedc3192d5c0cfc145a9c8ca50c5 100644 (file)
@@ -27,6 +27,7 @@
 #ifndef VISU_StreamLinesPL_HeaderFile
 #define VISU_StreamLinesPL_HeaderFile
 
+#include "VISUPipeline.hxx"
 #include "VISU_DeformedShapePL.hxx"
 #include <vtkStreamLine.h>
 
@@ -37,7 +38,7 @@ class vtkCellCenters;
 class VTKViewer_GeometryFilter;
 class VISU_UsedPointsFilter;
 
-class VISU_StreamLinesPL : public VISU_DeformedShapePL{
+class VISU_PIPELINE_EXPORT VISU_StreamLinesPL : public VISU_DeformedShapePL{
 protected:
   VISU_StreamLinesPL();
   VISU_StreamLinesPL(const VISU_StreamLinesPL&);
index 312d56fc989a28362980c66a4054484da6ad7f5b..7f849663d2d0abfd4489997aea1d3e381658b4ad 100644 (file)
@@ -27,6 +27,7 @@
 #ifndef VISU_VectorsPL_HeaderFile
 #define VISU_VectorsPL_HeaderFile
 
+#include "VISUPipeline.hxx"
 #include "VISU_DeformedShapePL.hxx"
 
 class VTKViewer_TransformFilter;
@@ -39,7 +40,7 @@ class vtkLineSource;
 
 class vtkGlyph3D;
 
-class VISU_VectorsPL : public VISU_DeformedShapePL{
+class VISU_PIPELINE_EXPORT VISU_VectorsPL : public VISU_DeformedShapePL{
 protected:
   VISU_VectorsPL();
   VISU_VectorsPL(const VISU_VectorsPL&);
index 8737b5dc0206f59b2eae79f960b97f2749475087..174252765c4b06fde8a933c33e3c2fdb0b66f747 100644 (file)
@@ -29,6 +29,7 @@
 #ifndef __VISU_WidgetCtrl_hxx
 #define __VISU_WidgetCtrl_hxx
 
+#include "VISUPipeline.hxx"
 
 #include <vtkImplicitFunction.h>
 
@@ -42,7 +43,7 @@ class VISU_PlanesWidget;
 class VISU_SphereWidget;
 class VISU_ImplicitFunctionWidget;
 
-class VISU_WidgetCtrl : public vtkImplicitFunction
+class VISU_PIPELINE_EXPORT VISU_WidgetCtrl : public vtkImplicitFunction
 {
 public:
   static VISU_WidgetCtrl *New();
index 3128e69f768cb59652dfe3761370166d33ebc732..3aa0b6a61d086ea88520990de5edb958fa53050b 100644 (file)
@@ -150,6 +150,10 @@ static int MYDEBUG = 1;
 static int MYDEBUG = 0;
 #endif
 
+#ifdef WIN32
+#define usleep(A) _sleep(A/1000)
+#endif
+
 //////////////////////////////////////////////////
 // Class: VisuGUI
 //////////////////////////////////////////////////
@@ -1120,7 +1124,7 @@ OnDeleteObjects()
   int i = 0, nbSelected = aList.Extent();
   if (nbSelected < 1) return;
 
-  const char* entries [nbSelected];
+  const char** entries = new const char*[nbSelected];
   Handle(SALOME_InteractiveObject) anIO;
   for (SALOME_ListIteratorOfListIO it (aList); it.More(); it.Next()) {
     anIO = it.Value();
@@ -1142,6 +1146,8 @@ OnDeleteObjects()
     }
   }
 
+  delete [] entries;
+
   // Finish transaction
   aStudyBuilder->CommitCommand();
 }
@@ -3055,12 +3061,6 @@ VisuGUI
   return getApp()->getViewManager(theType,theIsCreate);
 }
 
-TViewToPrs3d 
-VisuGUI
-::getScalarBarsMap()
-{
-  return myScalarBarsMap;
-}
 LightApp_Displayer* VisuGUI::displayer()
 {
   if( !myDisplayer )
index 22224d7210d7608406d357093d50ab3c6a70dc9f..3e74e246ef56fa81e7cdfd5c606444f6165211b9 100644 (file)
@@ -72,8 +72,8 @@ public:
   getViewManager(const QString& theType, 
                 const bool theIsCreate);
 
-  VISU::TViewToPrs3d getScalarBarsMap();
   VISU::TViewToPrs3d myScalarBarsMap;
+  VISU::TViewToPrs3d getScalarBarsMap() { return myScalarBarsMap; }
   
 public slots:
   virtual bool deactivateModule( SUIT_Study* );
index e1adefcf3240d5e335e56433c56c4da5b229188f..871007414cc7e691d77c657a2460c609442aed5d 100644 (file)
@@ -26,6 +26,7 @@
 //  Module : VISU
 //  $Header$
 
+#include <string>
 using namespace std;
 #include "VisuGUI_CursorDlg.h"
 #include <qlayout.h>
index e5ccea9ff9236f6552a37ce07eb502ec0b976382..e79e18cd9f1067eb9d02216dd01e24ea0ac70052 100644 (file)
@@ -90,7 +90,7 @@ private:
     SALOME_Actor* myPreviewActor;
 
 private slots:
-    void editScalarBar();
+    //void editScalarBar();
     void orientationChanged( int );
     void DrawTable();
     void setDefault( int all = -1);
@@ -114,7 +114,7 @@ public:
 protected slots:
     void accept();
     void reject();
-    void onWindowActivated (SUIT_ViewWindow*);
+    //void onWindowActivated (SUIT_ViewWindow*);
 
 private:
     VisuGUI_CutPlanesPane* myCutPane;
index fea679cb0426c48627624e671a37b8d43fcfd517..55cb6d5b372302dfa8aba272891461befa1ab9ad 100644 (file)
 
 #include "CAM_Module.h"
 
+#ifdef WNT
+#ifdef VISU_VISUGUI_EXPORTS
+#define VISU_VISUGUI_EXPORT __declspec(dllexport)
+#else
+#define VISU_VISUGUI_EXPORT __declspec(dllimport)
+#endif
+#else
+#define VISU_VISUGUI_EXPORT
+#endif
+
 extern "C" {
+VISU_VISUGUI_EXPORT
   CAM_Module*
   createModule()
   {
index c845d013c0ac9d6a66deb6c915fe3484f0935db2..89bf6fec7869566c0a5e3c7da77476ab7e2c46c8 100644 (file)
@@ -114,7 +114,7 @@ class VisuGUI_GaussScalarBarPane : public QVBox
 
  private slots:
   void changeDefaults( int );
-  void changeRange( int );
+  //void changeRange( int );
   void XYChanged( double );
   void onTextPref();
   void onSetDisplayGlobal();
index c5f45e205a729106fb4a33133786fe13a86552ff..a4485ff83627ff22be504346aa3d6af4c093e30e 100644 (file)
@@ -42,7 +42,7 @@ protected slots:
   void reject();
 
 private slots:
-  void onSelectionActive(bool theActive);
+  //void onSelectionActive(bool theActive);
   void StepLengthChanged(double theValue);
   void IntegrationStepChanged(double theValue);
   void PropagationTimeChanged(double theValue);
index 48ec2dcf5be122b03cdf4549703c69d900d1e3d8..e28a59d01fd059b151915a1d0a33e8135478ecf5 100644 (file)
@@ -26,6 +26,7 @@
 //  Module : VISU
 //  $Header$
 
+#include <string>
 using namespace std;
 #include "VisuGUI_SweepPrefDlg.h"
 #include <qlayout.h>
index 978a4c24f0c010ad7cf0e2e503b9de443cd9308c..9e9f523d015eed52a82e71be641da3c38449e7ce 100644 (file)
@@ -193,8 +193,8 @@ namespace VISU
       Engines::Component_var aComponent = aLCC.FindOrLoad_Component("FactoryServer","VISU");
       VISU_Gen_var aVISU = VISU_Gen::_narrow(aComponent);
       if(!CORBA::is_nil(aVISU)){
-       aGen = VISU_Gen_i::GetVisuGenImpl();
-       aGen->SetCurrentStudy(GetDSStudy(GetCStudy(GetAppStudy(theModule))));
+           if( aGen = VISU_Gen_i::GetVisuGenImpl() )
+             aGen->SetCurrentStudy(GetDSStudy(GetCStudy(GetAppStudy(theModule))));
       }
     }
     if(!aGen)
index 6ec9a2d015ba90dce00fdd20403169043f77a357..9651c9c680fb02ccb38227289c3c42d708184b33 100644 (file)
@@ -27,6 +27,8 @@
 #ifndef __VISU_CONFIG_H__
 #define __VISU_CONFIG_H__
 
+#include "VISU_I.hxx"
+
 // IDL headers
 #include "SALOMEconfig.h"
 #include CORBA_SERVER_HEADER(VISU_Gen)
@@ -64,14 +66,14 @@ class SUIT_ResourceMgr;
 namespace VISU
 {
 
-  SUIT_Session *GetSession();
-  SUIT_ResourceMgr *GetResourceMgr();
+  VISU_I_EXPORT SUIT_Session *GetSession();
+  VISU_I_EXPORT SUIT_ResourceMgr *GetResourceMgr();
 
   //===========================================================================
 
   class VISU_Gen_i;
 
-  class Base_i : public virtual POA_VISU::Base,
+  class VISU_I_EXPORT Base_i : public virtual POA_VISU::Base,
                  public virtual PortableServer::RefCountServantBase
   {
   public:
@@ -101,7 +103,7 @@ namespace VISU
 
 
   //===========================================================================
-  class Mutex{
+  class VISU_I_EXPORT Mutex{
     QMutex* myMutex;
     int isQAppLocked;
   public:
@@ -111,7 +113,7 @@ namespace VISU
 
 
   //===========================================================================
-  class Storable : public virtual Base_i {
+  class VISU_I_EXPORT Storable : public virtual Base_i {
   protected:
     virtual void ToStream(std::ostringstream& theStr) = 0;
   public:
@@ -132,7 +134,7 @@ namespace VISU
   };
 
   //===========================================================================
-  class RemovableObject_i : public virtual POA_VISU::RemovableObject,
+  class VISU_I_EXPORT RemovableObject_i : public virtual POA_VISU::RemovableObject,
                             public virtual Storable
   {
   public:
@@ -140,40 +142,40 @@ namespace VISU
   };
 
   //===========================================================================
-  const CORBA::Boolean IsMultifile();
-  QString GenerateName(const std::string& theFmt, int theId);
+  VISU_I_EXPORT const CORBA::Boolean IsMultifile();
+  VISU_I_EXPORT QString GenerateName(const std::string& theFmt, int theId);
 
-  PortableServer::ServantBase_var GetServant(CORBA::Object_ptr theObject);
-  CORBA::Object_var ClientSObjectToObject(_PTR(SObject) theSObject);
-  CORBA::Object_var SObjectToObject(SALOMEDS::SObject_ptr);
+  VISU_I_EXPORT PortableServer::ServantBase_var GetServant(CORBA::Object_ptr theObject);
+  VISU_I_EXPORT CORBA::Object_var ClientSObjectToObject(_PTR(SObject) theSObject);
+  VISU_I_EXPORT CORBA::Object_var SObjectToObject(SALOMEDS::SObject_ptr);
 
-  _PTR(SComponent) ClientFindOrCreateVisuComponent(_PTR(Study) theStudyDocument);
-  SALOMEDS::SComponent_var FindOrCreateVisuComponent(SALOMEDS::Study_ptr theStudyDocument);
+  VISU_I_EXPORT _PTR(SComponent) ClientFindOrCreateVisuComponent(_PTR(Study) theStudyDocument);
+  VISU_I_EXPORT SALOMEDS::SComponent_var FindOrCreateVisuComponent(SALOMEDS::Study_ptr theStudyDocument);
 
-  std::string CreateAttributes(SALOMEDS::Study_ptr theStudyDocument,
+  VISU_I_EXPORT std::string CreateAttributes(SALOMEDS::Study_ptr theStudyDocument,
                               const char* theFatherEntry, const char* theRefFatherEntry,
                               const char* theIOR, const char* theName,
                               const char* thePersistentRef, const char* theComment,
                               CORBA::Boolean theCreateNew = true);
 
-  std::string CreateAttributes(_PTR(Study) theStudyDocument,
+  VISU_I_EXPORT std::string CreateAttributes(_PTR(Study) theStudyDocument,
                               const char* theFatherEntry, const char* theRefFatherEntry,
                               const char* theIOR, const char* theName,
                               const char* thePersistentRef, const char* theComment,
                               CORBA::Boolean theCreateNew = true);
 
-  std::string FindEntryWithComment(SALOMEDS::Study_ptr theStudyDocument, const char* theStartEntry,
+  VISU_I_EXPORT std::string FindEntryWithComment(SALOMEDS::Study_ptr theStudyDocument, const char* theStartEntry,
                                   const char* theComment, int IsAllLevels = true);
 
-  SALOMEDS::SObject_var GetSObject(_PTR(SObject));
-  _PTR(SObject) GetClientSObject(SALOMEDS::SObject_var, _PTR(Study));
+  VISU_I_EXPORT SALOMEDS::SObject_var GetSObject(_PTR(SObject));
+  VISU_I_EXPORT _PTR(SObject) GetClientSObject(SALOMEDS::SObject_var, _PTR(Study));
 
-  SALOMEDS::Study_var GetDSStudy(_PTR(Study));
+  VISU_I_EXPORT SALOMEDS::Study_var GetDSStudy(_PTR(Study));
 
-  void RemoveFromStudy(SALOMEDS::SObject_ptr theSObject,
+  VISU_I_EXPORT void RemoveFromStudy(SALOMEDS::SObject_ptr theSObject,
                       bool theIsAttrOnly = true,
                       bool theDestroySubObjects = false);
-  void RemoveFromStudy(_PTR(SObject) theSObject,
+  VISU_I_EXPORT void RemoveFromStudy(_PTR(SObject) theSObject,
                       bool theIsAttrOnly = true,
                       bool theDestroySubObjects = false);
 }
index e03d772eae5123da9cbe52c9c451904bbbe6b47f..4762f3d17b875190d3e3ff45b3eeb51758a2b46d 100644 (file)
@@ -34,11 +34,11 @@ class VISU_ScalarMapPL;
 namespace VISU
 {
   //============================================================================
-  class ColoredPrs3d_i : public virtual POA_VISU::ColoredPrs3d,
+  class VISU_I_EXPORT ColoredPrs3d_i : public virtual POA_VISU::ColoredPrs3d,
                         public virtual Prs3d_i
   {
-    ColoredPrs3d_i();
     ColoredPrs3d_i(const ColoredPrs3d_i&);
+
   public:
     //----------------------------------------------------------------------------
     typedef Prs3d_i TSuperClass;
index 879b0531b617b305203ecde56bf9350340b47257..d88ecb5d693b27c9a984f67e81353178b18f4b77 100644 (file)
@@ -407,7 +407,7 @@ void VISU::CutLines_i::BuildTableOfReal(SALOMEDS::SObject_ptr theSObject){
            a_last_indx = tmp;
          }
          std::list<float>::const_iterator aIter = XKeys.begin();
-         for (int k=0;k<XKeys.size() and aIter != XKeys.end();k++,aIter++){
+         for (int k=0;k<XKeys.size() && aIter != XKeys.end();k++,aIter++){
            // Warning: value '1.0' come from workaround:
            // see also aDist = vtkMath::Dot(aVect,aDirLn) / aBoundPrjLn[2];
            // aDist >= 0 and aDist<=1.0
index 7acb62a7474f32d541662fc4d9650d51e1c7093a..18c4bc191420d37762e33e2957f3826cd3e78f6d 100644 (file)
 class VISU_CutLinesPL;
 
 namespace VISU{
-  class CutLines_i : public virtual POA_VISU::CutLines,
+  class VISU_I_EXPORT CutLines_i : public virtual POA_VISU::CutLines,
                      public virtual ScalarMap_i
   {
     static int myNbPresent;
-    CutLines_i();
     CutLines_i(const CutLines_i&);
 
   public:
index 1ade49068c009fff88ab996c2ba11bb0ae2559a5..46d5e0cd9b30595e61b58a2a145354ff73d429ed 100644 (file)
 class VISU_CutPlanesPL;
 
 namespace VISU{
-  class CutPlanes_i : public virtual POA_VISU::CutPlanes,
+  class VISU_I_EXPORT CutPlanes_i : public virtual POA_VISU::CutPlanes,
                      public virtual ScalarMap_i
   {
     static int myNbPresent;
-    CutPlanes_i();
     CutPlanes_i(const CutPlanes_i&);
 
   public:
index 814438d66ce8e3af4ef1c10c948f70ba75b6c174..3767af61f6c5802dcde83d3ea3baef96a9b12bff 100644 (file)
 class VISU_DeformedShapePL;
 
 namespace VISU{
-  class DeformedShape_i : public virtual POA_VISU::DeformedShape,
+  class VISU_I_EXPORT DeformedShape_i : public virtual POA_VISU::DeformedShape,
                          public virtual ScalarMap_i
   {
     static int myNbPresent;
-    DeformedShape_i();
     DeformedShape_i(const DeformedShape_i&);
 
   public:
index 5a0fe102627c77a2bdf57cb2dfa1edcd3a8ffb0d..aa9893bbcc85dbb439f93d8446d8c79096f547a6 100644 (file)
@@ -39,13 +39,12 @@ class VISU_GaussPointsPL;
 namespace VISU
 {
   //! Class of the Gauss Points presentation.
-  class GaussPoints_i : public virtual POA_VISU::GaussPoints,
+  class VISU_I_EXPORT GaussPoints_i : public virtual POA_VISU::GaussPoints,
                        public virtual VISU::TGaussPtsActorFactory,
                        public virtual MinMaxCunsomer,
                        public virtual ColoredPrs3d_i
   {
     static int myNbPresent;
-    GaussPoints_i();
     GaussPoints_i(const GaussPoints_i&);
 
   public:
index ff03f9f2b308cc3d799fbdef92e285ac6e3f781b..be502de48afc60c2a7b96fd14b5a5761bd12d577 100644 (file)
@@ -99,7 +99,7 @@ static int MYDEBUG = 0;
 
 UNEXPECT_CATCH(SalomeException, SALOME::SALOME_Exception);
 
-extern "C" VISU::VISU_Gen_ptr GetImpl(CORBA::ORB_ptr theORB,
+extern "C" VISU_I_EXPORT VISU::VISU_Gen_ptr GetImpl(CORBA::ORB_ptr theORB,
                                      PortableServer::POA_ptr thePOA,
                                      SALOME_NamingService* theNamingService,
                                      QMutex* theMutex)
index 1f4f921268ae509bbeb556e10bd70889a75a516a..d8008b2f4c533f3ccf327f9e3b0dd056cf4b8f49 100644 (file)
@@ -21,7 +21,7 @@ namespace VISU
   class ColoredPrs3d_i;
 
   bool
-  CreatColoredPrs3d(ColoredPrs3d_i* theColoredPrs3d,
+  VISU_I_EXPORT CreatColoredPrs3d(ColoredPrs3d_i* theColoredPrs3d,
                    const char* theMeshName, 
                    VISU::Entity theEntity,
                    const char* theFieldName, 
@@ -32,7 +32,6 @@ namespace VISU
                     public virtual Base_i
   {
     SALOMEDS::Study_var myStudyDocument;
-    VISU_Gen_i();
     VISU_Gen_i(const VISU::VISU_Gen_i &);
   public:
     VISU_Gen_i(CORBA::ORB_ptr theORB,
diff --git a/src/VISU_I/VISU_I.hxx b/src/VISU_I/VISU_I.hxx
new file mode 100755 (executable)
index 0000000..4b86a47
--- /dev/null
@@ -0,0 +1,47 @@
+//  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_I.hxx
+//  Author : Oleg UVAROV
+//  Module : VISU
+
+#ifndef _VISU_I_HXX_
+#define _VISU_I_HXX_
+
+#ifdef WNT
+ #if defined VISU_I_EXPORTS
+  #if defined WIN32
+   #define VISU_I_EXPORT __declspec( dllexport )
+  #else
+   #define VISU_I_EXPORT
+  #endif
+ #else
+  #if defined WIN32
+   #define VISU_I_EXPORT __declspec( dllimport )
+  #else
+   #define VISU_I_EXPORT
+  #endif
+ #endif
+#else
+ #define VISU_I_EXPORT
+#endif
+
+#endif
\ No newline at end of file
index b10ef5204d10d50e9774b1abe41aaaad0a5ba19f..b36074aee0e578ce3a5ef75a6d686cf9a554e7d8 100644 (file)
 class VISU_IsoSurfacesPL;
 
 namespace VISU{
-  class IsoSurfaces_i : public virtual POA_VISU::IsoSurfaces,
+  class VISU_I_EXPORT IsoSurfaces_i : public virtual POA_VISU::IsoSurfaces,
                        public virtual ScalarMap_i
   {
     static int myNbPresent;
-    IsoSurfaces_i();
     IsoSurfaces_i(const IsoSurfaces_i&);
 
   public:
index 4bb0809e5610bbbc117224bc05ab41375da6b6c6..7649f1abfa997861e31bf4e9aaca807c39d20108 100644 (file)
@@ -33,11 +33,10 @@ class VISU_MeshPL;
 
 namespace VISU
 {
-  class Mesh_i : public virtual POA_VISU::Mesh,
+  class VISU_I_EXPORT Mesh_i : public virtual POA_VISU::Mesh,
                 public virtual Prs3d_i
   {
     static int myNbPresent;
-    Mesh_i();
     Mesh_i(const Mesh_i&);
 
   public:
index d612af1ef6148927d716cbb831d73eff638c01d5..58006072d4fd698d02593eab47f01c7488149882 100644 (file)
 class VISU_Plot3DPL;
 
 namespace VISU {
-  class Plot3D_i : public virtual POA_VISU::Plot3D,
+  class VISU_I_EXPORT Plot3D_i : public virtual POA_VISU::Plot3D,
                    public virtual ScalarMap_i
   {
     static int myNbPresent;
-    Plot3D_i();
     Plot3D_i(const Plot3D_i&);
 
   public:
index efdd55565bbb61f4428683202ad045c6bb29e1cc..4d410fb268a3706e12d5523c16168f0f1929a163 100644 (file)
@@ -60,18 +60,17 @@ namespace VISU
     - implement basic actor management (CreateActor, UpdateActor, UpdateActors, RemoveActor and RemoveActors);
     - implement common 3D functionality like "clipping planes" and offset.
   */
-  class Prs3d_i :
+  class VISU_I_EXPORT Prs3d_i :
     public virtual POA_VISU::Prs3d,
     public virtual SALOME::GenericObj_i,
     public virtual TActorFactory,
     public virtual PrsObject_i
 
   {
-    Prs3d_i();
     Prs3d_i(const Prs3d_i&);
 
   public:
-    //----------------------------------------------------------------------------
+       //----------------------------------------------------------------------------
     //! A constructor to create a fresh instance of the class
     explicit
     Prs3d_i(Result_i* theResult,
index b9aca61e049d0359674df92bb7bf4106f77bad95..d62ada673004ef857a885e50ecd2f2918b21f148 100644 (file)
@@ -30,7 +30,7 @@
 #include "VISUConfig.hh"
 
 namespace VISU{
-  class PrsObject_i : public virtual POA_VISU::PrsObject,
+  class VISU_I_EXPORT PrsObject_i : public virtual POA_VISU::PrsObject,
                       public virtual RemovableObject_i
   {
     PrsObject_i(const PrsObject_i&);
index ee903de6aafb7f295de17dd07032c7f7d1e65bf2..c1d4bde4478bb82668fd32241eeace399d511b98 100644 (file)
@@ -41,7 +41,7 @@ class VISU_Convertor;
 namespace VISU
 {
   //----------------------------------------------------------------------------
-  class MinMaxCunsomer: public virtual boost::bsignals::trackable
+  class VISU_I_EXPORT MinMaxCunsomer: public virtual boost::bsignals::trackable
   {
   protected:
     bool myMinMaxIsInitilized;
@@ -59,11 +59,10 @@ namespace VISU
 
 
   //----------------------------------------------------------------------------
-  class Result_i : public virtual POA_VISU::Result,
+  class VISU_I_EXPORT Result_i : public virtual POA_VISU::Result,
                    public virtual RemovableObject_i,
                   public virtual SALOME::GenericObj_i
   {
-    Result_i();
     Result_i(const Result_i &);
 
   public:
index b7433720fc83292ecdd45f07bebc6c3a9e7b6270..68b7d6e73420c115e3e4031218875a4b379820ed 100644 (file)
@@ -34,11 +34,10 @@ class VISU_ScalarMapOnDeformedShapePL;
 namespace VISU{
   
   //! Class of Scalar Map on Deformed Shape presentation.
-  class ScalarMapOnDeformedShape_i : public virtual POA_VISU::ScalarMapOnDeformedShape,
+  class VISU_I_EXPORT ScalarMapOnDeformedShape_i : public virtual POA_VISU::ScalarMapOnDeformedShape,
                                     public virtual ScalarMap_i
   {
     static int myNbPresent;
-    ScalarMapOnDeformedShape_i();
     ScalarMapOnDeformedShape_i(const ScalarMapOnDeformedShape_i&);
     
   public:
index 8506e46317bcd2a08f0f7dd7a795def55c4b8d44..0d275401489a67c15888a160ac96371d8f42d0b4 100644 (file)
 namespace VISU
 {
   //============================================================================
-  class ScalarMap_i : public virtual POA_VISU::ScalarMap,
+  class VISU_I_EXPORT ScalarMap_i : public virtual POA_VISU::ScalarMap,
                      public virtual ColoredPrs3d_i
   {
     static int myNbPresent;
-    ScalarMap_i();
     ScalarMap_i(const ScalarMap_i&);
 
   public:
-    //----------------------------------------------------------------------------
+       //----------------------------------------------------------------------------
     typedef ColoredPrs3d_i TSuperClass;
 
     explicit
index 31c9fe7d89714eb8f341a41b66c79f07d2da36b5..4ae3150f08a2ba6962e5f2cfbe3936c28d077d68 100644 (file)
@@ -33,11 +33,10 @@ class VISU_StreamLinesPL;
 class vtkAppendFilter;
 
 namespace VISU{
-  class StreamLines_i : public virtual POA_VISU::StreamLines,
+  class VISU_I_EXPORT StreamLines_i : public virtual POA_VISU::StreamLines,
                        public virtual DeformedShape_i
   {
     static int myNbPresent;
-    StreamLines_i();
     StreamLines_i(const StreamLines_i&);
 
   public:
index 608f5dfe0f13b59673eb2ed7183f3f2c3d1988b5..3fd6dc6547e414e35c7fcc50f45759fd98f635a3 100644 (file)
@@ -35,11 +35,10 @@ class SPlot2d_Curve;
 
 namespace VISU{
   //==============================================================================
-  class Table_i : public virtual POA_VISU::Table,
+  class VISU_I_EXPORT Table_i : public virtual POA_VISU::Table,
                   public virtual PrsObject_i
   {
     static int myNbPresent;
-    Table_i();
     Table_i( const Table_i& );
   public:
     Table_i( SALOMEDS::Study_ptr theStudy, const char* theObject );
@@ -84,7 +83,7 @@ namespace VISU{
   SALOMEDS::SObject_var ImportTables(const char* theFileName, SALOMEDS::Study_ptr theStudy);
   bool ExportTableToFile(SALOMEDS::SObject_ptr theTable, const char* theFileName);
   //==============================================================================
-  class Curve_i : public virtual POA_VISU::Curve,
+  class VISU_I_EXPORT Curve_i : public virtual POA_VISU::Curve,
                   public virtual PrsObject_i
   {
     static int myNbPresent;
@@ -158,7 +157,7 @@ namespace VISU{
   };
 
   //==============================================================================
-  class Container_i : public virtual POA_VISU::Container,
+  class VISU_I_EXPORT Container_i : public virtual POA_VISU::Container,
                       public virtual PrsObject_i
   {
     static int myNbPresent;
index 315415c80c20d44cadd54595cb05df77fb10f2c0..4e9360f6dc47e6ef59f36e9dee6b1caefd1c981f 100644 (file)
@@ -38,7 +38,7 @@ struct FieldData
 };
 
 
-class VISU_TimeAnimation: public QObject, public QThread
+class VISU_I_EXPORT VISU_TimeAnimation: public QObject, public QThread
 {
   Q_OBJECT;
  public:
@@ -156,7 +156,7 @@ class VISU_TimeAnimation: public QObject, public QThread
 };
 
 
-class VISU_TimeAnimation_i: public virtual POA_VISU::Animation,
+class VISU_I_EXPORT VISU_TimeAnimation_i: public virtual POA_VISU::Animation,
                             public virtual VISU::Base_i
 {
   VISU_TimeAnimation* myAnim;
index 88143087e71eaf5c8fda7a62ea628ca58017a8e2..39eb8e32fd218b462c3b26d69514391dd5f7b24b 100644 (file)
 class VISU_VectorsPL;
 
 namespace VISU{
-  class Vectors_i : public virtual POA_VISU::Vectors,
+  class VISU_I_EXPORT Vectors_i : public virtual POA_VISU::Vectors,
                    public virtual DeformedShape_i
   {
     static int myNbPresent;
-    Vectors_i();
     Vectors_i(const Vectors_i&);
 
   public:
index 5fa7284a8925342d614716eee0cae3f00974ed4d..276271e065b5bb415c9b0a428adce72903f85498 100644 (file)
@@ -46,7 +46,7 @@ namespace VISU {
   class Prs3d_i;
   class Curve_i;
 
-  class ViewManager_i : public virtual POA_VISU::ViewManager,
+  class VISU_I_EXPORT ViewManager_i : public virtual POA_VISU::ViewManager,
                         public virtual Base_i
   {
   public:
@@ -74,7 +74,7 @@ namespace VISU {
   VISU_Actor* UpdateViewer (SUIT_ViewWindow* theStudyFrame, int theDisplaing, Prs3d_i* thePrs = NULL);
   void UpdatePlot2d (Plot2d_ViewFrame *theView, int theDisplaying, Curve_i* theCurve);
 
-  VISU_Actor* GetActor (VISU::Prs3d_i* thePrs, SVTK_ViewWindow* theViewWindow);
+  VISU_I_EXPORT VISU_Actor* GetActor (VISU::Prs3d_i* thePrs, SVTK_ViewWindow* theViewWindow);
 
   void DeleteActors (VISU::Prs3d_i* thePrs);
   void DeleteActors (VISU::Curve_i* thePrs);
index 43224cd7a5f76e20ff75030ad128125699f7b9d0..d404fa0f7af26d96fc1880f3f7a620f195d432b7 100644 (file)
@@ -1994,7 +1994,7 @@ namespace VISU {
     if(MYDEBUG) MESSAGE("View3D_i::SetPointOfView");
     SUIT_ViewWindow* aVW = GetViewWindow();
     if (aVW)
-      ProcessVoidEvent(new TSet3DViewParamEvent(&SetPointOfView,aVW,thePosition));
+      ProcessVoidEvent(new TSet3DViewParamEvent(&View3D_i::SetPointOfView,aVW,thePosition));
   }
 
   void View3D_i::GetPointOfView (SUIT_ViewWindow* theViewWindow,
@@ -2024,7 +2024,7 @@ namespace VISU {
     if(MYDEBUG) MESSAGE("View3D_i::SetViewUp");
     SUIT_ViewWindow* aVW = GetViewWindow();
     if (aVW)
-      ProcessVoidEvent(new TSet3DViewParamEvent(&SetViewUp,aVW,theViewUp));
+      ProcessVoidEvent(new TSet3DViewParamEvent(&View3D_i::SetViewUp,aVW,theViewUp));
   }
 
   void View3D_i::GetViewUp (SUIT_ViewWindow* theViewWindow,
@@ -2054,7 +2054,7 @@ namespace VISU {
     if(MYDEBUG) MESSAGE("View3D_i::SetFocalPoint");
     SUIT_ViewWindow* aVW = GetViewWindow();
     if (aVW)
-      ProcessVoidEvent(new TSet3DViewParamEvent(&SetFocalPoint,aVW,theCoord));
+      ProcessVoidEvent(new TSet3DViewParamEvent(&View3D_i::SetFocalPoint,aVW,theCoord));
   }
 
 
@@ -2106,7 +2106,7 @@ namespace VISU {
     if(MYDEBUG) MESSAGE("View3D_i::SetParallelScale");
     SUIT_ViewWindow* aVW = GetViewWindow();
     if (aVW)
-      ProcessVoidEvent(new TSetViewParamEvent(&SetParallelScale,aVW,theScale));
+      ProcessVoidEvent(new TSetViewParamEvent(&View3D_i::SetParallelScale,aVW,theScale));
   }
 
   CORBA::Double View3D_i::GetParallelScale (SUIT_ViewWindow* theViewWindow)
index 76b44da55bc089c5f24c561ea4994f2a1e2bdbe4..17f199187041d25919ea3e2c106e9aed40108c74 100644 (file)
@@ -45,7 +45,7 @@ namespace VISU
   class Prs3d_i;
   class Curve_i;
 
-  class View_i : public virtual POA_VISU::View,
+  class VISU_I_EXPORT View_i : public virtual POA_VISU::View,
                  public virtual Storable
   {
   public:
@@ -124,7 +124,7 @@ namespace VISU
 
 
   //===========================================================================
-  class XYPlot_i : public virtual POA_VISU::XYPlot,
+  class VISU_I_EXPORT XYPlot_i : public virtual POA_VISU::XYPlot,
                    public virtual View_i
   {
   public:
@@ -172,10 +172,10 @@ namespace VISU
     virtual void Update();
 
     virtual void FitAll();
-    virtual void FitXRange(const CORBA::Double xMin,const CORBA::Double xMax);
-    virtual void FitYRange(const CORBA::Double yMin,const CORBA::Double yMax);
-    virtual void FitRange(const CORBA::Double xMin,const CORBA::Double xMax,
-                         const CORBA::Double yMin,const CORBA::Double yMax);
+    virtual void FitXRange(CORBA::Double xMin, CORBA::Double xMax);
+    virtual void FitYRange(CORBA::Double yMin, CORBA::Double yMax);
+    virtual void FitRange(CORBA::Double xMin, CORBA::Double xMax,
+                                     CORBA::Double yMin, CORBA::Double yMax);
     virtual void GetFitRanges(double& xMin, double& xMax, double& yMin, double& yMax);
 
     virtual void Close();
@@ -187,7 +187,7 @@ namespace VISU
 
 
   //===========================================================================
-  class TableView_i : public virtual POA_VISU::TableView,
+  class VISU_I_EXPORT TableView_i : public virtual POA_VISU::TableView,
                       public virtual View_i
   {
   public:
@@ -210,7 +210,7 @@ namespace VISU
 
 
   //===========================================================================
-  class View3D_i : public virtual POA_VISU::View3D,
+  class VISU_I_EXPORT View3D_i : public virtual POA_VISU::View3D,
                    public virtual View_i
   {
   public:
index d6dd06483eddec259c0414b27cf7993c64891bfb..e8b032f12d13ee0d4ce0cf50cb64c6867f19507e 100755 (executable)
@@ -1,5 +1,5 @@
 #ifdef WNT
-#ifdef SVTK_EXPORTS
+#ifdef VISU_VVTK_EXPORTS
 #define VVTK_EXPORT __declspec(dllexport)
 #else
 #define VVTK_EXPORT __declspec(dllimport)
index de0ebfd064e7131f2300a2daebd154a876fd5e31..5b5e46bfc9ee1942046886b78ab8a9b58a830cee 100644 (file)
@@ -34,6 +34,7 @@
 #include "VISU_GaussPtsAct.h"
 #include "VISU_Event.h" 
 
+#include "SVTK_ViewWindow.h"
 #include "SVTK_RenderWindowInteractor.h"
 #include "VVTK_Renderer.h"
 #include "VVTK_PickingDlg.h"
@@ -237,9 +238,6 @@ void VVTK_MainWindow::OnStopRecording()
 }
 
 //----------------------------------------------------------------------------
-int 
-convertAction( const int accelAction );
-
 void 
 VVTK_MainWindow
 ::action( const int accelAction  )
index 84ef52b9cce6b1464b0a96ce7bf1c6ca2289f581..f874be7b3ccfe50a2aa677800c08e790045fa057 100644 (file)
@@ -43,7 +43,7 @@
 #include <qpushbutton.h>
 #include <qfiledialog.h>
 
-#include <iostream.h>
+#include <iostream>
 
 using namespace std;
 
index a6b8a0aff9eb71a25caaf12f4e72a5957fe5f23d..5ee04398c5028944d2eb99f18aab80cb25488625 100644 (file)
@@ -28,6 +28,8 @@
 #ifndef VVTK_PRIMITIVEBOX_H
 #define VVTK_PRIMITIVEBOX_H
 
+#include "VVTK.h"
+
 #include <qgroupbox.h>
 
 class QLabel;
@@ -38,7 +40,7 @@ class QRadioButton;
 class QtxDblSpinBox;
 class QtxIntSpinBox;
 
-class VVTK_PrimitiveBox : public QGroupBox
+class VVTK_EXPORT VVTK_PrimitiveBox : public QGroupBox
 {
   Q_OBJECT
 
index e9c734e9c37baa683752a997c259b11821d44230..849f810a9ae976f6c9ced77804e7b8e1bdc86ef9 100755 (executable)
-//  SALOME VTKViewer : build VTK viewer into Salome desktop\r
-//\r
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,\r
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS \r
-// \r
-//  This library is free software; you can redistribute it and/or \r
-//  modify it under the terms of the GNU Lesser General Public \r
-//  License as published by the Free Software Foundation; either \r
-//  version 2.1 of the License. \r
-// \r
-//  This library is distributed in the hope that it will be useful, \r
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of \r
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU \r
-//  Lesser General Public License for more details. \r
-// \r
-//  You should have received a copy of the GNU Lesser General Public \r
-//  License along with this library; if not, write to the Free Software \r
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA \r
-// \r
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org \r
-//\r
-//\r
-//\r
-//  File   :\r
-//  Author :\r
-//  Module :\r
-//  $Header$\r
-\r
-#include "VVTK_Recorder.h"\r
-\r
-#include "VVTK_ImageWriter.h"\r
-#include "VVTK_ImageWriterMgr.h"\r
-\r
-#include <vtkObjectFactory.h>\r
-#include <vtkObject.h>\r
-#include <vtkCallbackCommand.h>\r
-#include <vtkRenderWindow.h>\r
-#include <vtkTimerLog.h>\r
-#include <vtkWindowToImageFilter.h>\r
-#include <vtkJPEGWriter.h>\r
-#include <vtkImageData.h>\r
-\r
-#include <sstream>\r
-#include <iomanip>\r
-#include <iostream>\r
-\r
-#include <unistd.h>\r
-#include <qapplication.h>\r
-#include <qfileinfo.h>\r
-\r
-#include "utilities.h"\r
-\r
-#ifdef _DEBUG_\r
-static int MYDEBUG = 0;\r
-#else\r
-static int MYDEBUG = 0;\r
-#endif\r
-\r
-\r
-namespace\r
-{\r
-  //----------------------------------------------------------------------------\r
-  inline\r
-  void\r
-  GetNameJPEG(const std::string& thePreffix,  \r
-             const int theIndex,\r
-             std::string& theName)\r
-  {\r
-    using namespace std;\r
-    ostringstream aStream;\r
-    aStream<<thePreffix<<"_"<<setw(6)<<setfill('0')<<theIndex<<".jpeg";\r
-    theName = aStream.str();\r
-  }\r
-}\r
-\r
-//----------------------------------------------------------------------------\r
-vtkCxxRevisionMacro(VVTK_Recorder,"$Revision$");\r
-vtkStandardNewMacro(VVTK_Recorder);\r
-\r
-\r
-//----------------------------------------------------------------------------\r
-VVTK_Recorder\r
-::VVTK_Recorder():\r
-  myRenderWindow(NULL),\r
-  myState(VVTK_Recorder_Stop),\r
-  myNbFPS(5.5),\r
-  myQuality(100),\r
-  myProgressiveMode(true),\r
-  myUseSkippedFrames(true),\r
-  myErrorStatus(0),\r
-  myCommand(vtkCallbackCommand::New()),\r
-  myPriority(0.0),\r
-  myTimeStart(0.0),\r
-  myFrameIndex(0),\r
-  myPaused(0),\r
-  myFilter(vtkWindowToImageFilter::New()),\r
-  myWriterMgr(new VVTK_ImageWriterMgr),\r
-  myNbWrittenFrames(0),\r
-  myNameAVIMaker("jpeg2yuv")\r
-{\r
-  myCommand->SetClientData(this); \r
-  myCommand->SetCallback(VVTK_Recorder::ProcessEvents);\r
-}\r
-\r
-\r
-//----------------------------------------------------------------------------\r
-VVTK_Recorder\r
-::~VVTK_Recorder()\r
-{\r
-  myCommand->Delete();\r
-  myFilter->Delete();\r
-  delete myWriterMgr;\r
-}\r
-\r
-\r
-//----------------------------------------------------------------------------\r
-void\r
-VVTK_Recorder\r
-::CheckExistAVIMaker()\r
-{\r
-  myErrorStatus = 0;\r
-  using namespace std;\r
-  ostringstream aStream;\r
-  aStream<<"which "<<myNameAVIMaker<<" >& /dev/null";\r
-  std::string anAVIMakeCheck = aStream.str();\r
-  int iErr = system(anAVIMakeCheck.c_str());\r
-  if(iErr != 0)\r
-    myErrorStatus = 127;\r
-}\r
-\r
-\r
-//----------------------------------------------------------------------------\r
-void\r
-VVTK_Recorder\r
-::SetName(const char* theName)\r
-{\r
-  myName = theName;\r
-}\r
-\r
-const char* \r
-VVTK_Recorder::Name() const\r
-{\r
-  return myName.c_str();\r
-}\r
-\r
-\r
-//----------------------------------------------------------------------------\r
-void\r
-VVTK_Recorder\r
-::SetNbFPS(const double theNbFPS)\r
-{\r
-  myNbFPS = theNbFPS;\r
-}\r
-\r
-double\r
-VVTK_Recorder\r
-::NbFPS() const\r
-{\r
-  return myNbFPS;\r
-}\r
-\r
-\r
-//----------------------------------------------------------------------------\r
-void\r
-VVTK_Recorder\r
-::SetQuality(int theQuality)\r
-{\r
-  myQuality = theQuality;\r
-}\r
-\r
-int\r
-VVTK_Recorder\r
-::GetQuality() const\r
-{\r
-  return myQuality;\r
-}\r
-\r
-\r
-//----------------------------------------------------------------------------\r
-void \r
-VVTK_Recorder\r
-::SetRenderWindow(vtkRenderWindow* theRenderWindow)\r
-{\r
-  myRenderWindow = theRenderWindow;\r
-}\r
-\r
-vtkRenderWindow* \r
-VVTK_Recorder\r
-::RenderWindow()\r
-{\r
-  return myRenderWindow;\r
-}\r
-\r
-\r
-//----------------------------------------------------------------------------\r
-void\r
-VVTK_Recorder\r
-::SetProgressiveMode(bool theProgressiveMode)\r
-{\r
-  myProgressiveMode = theProgressiveMode;\r
-}\r
-\r
-bool\r
-VVTK_Recorder\r
-::GetProgressiveMode() const\r
-{\r
-  return myProgressiveMode;\r
-}\r
-\r
-\r
-//----------------------------------------------------------------------------\r
-void\r
-VVTK_Recorder\r
-::SetUseSkippedFrames(bool theUseSkippedFrames)\r
-{\r
-  myUseSkippedFrames = theUseSkippedFrames;\r
-}\r
-\r
-bool\r
-VVTK_Recorder\r
-::UseSkippedFrames() const\r
-{\r
-  return myUseSkippedFrames;\r
-}\r
-\r
-\r
-//----------------------------------------------------------------------------\r
-int\r
-VVTK_Recorder\r
-::ErrorStatus() const\r
-{\r
-  return myErrorStatus;\r
-}\r
-\r
-int\r
-VVTK_Recorder\r
-::State() const\r
-{\r
-  return myState;\r
-}\r
-\r
-\r
-//----------------------------------------------------------------------------\r
-void\r
-VVTK_Recorder\r
-::ProcessEvents(vtkObject* vtkNotUsed(theObject), \r
-               unsigned long theEvent,\r
-               void* theClientData, \r
-               void* vtkNotUsed(theCallData))\r
-{\r
-  if(vtkObject* anObj = reinterpret_cast<vtkObject*>(theClientData)){ \r
-    if(VVTK_Recorder* aSelf = dynamic_cast<VVTK_Recorder*>(anObj)){\r
-      if(theEvent==vtkCommand::EndEvent){\r
-       if(aSelf->State() == VVTK_Recorder::VVTK_Recorder_Record){\r
-         aSelf->DoRecord();\r
-       }\r
-      }\r
-    }\r
-  }\r
-}\r
-\r
-\r
-//----------------------------------------------------------------------------\r
-void\r
-VVTK_Recorder\r
-::Record()\r
-{\r
-  if(myState == VVTK_Recorder_Stop){\r
-    if(myRenderWindow){\r
-      myState = VVTK_Recorder_Record;\r
-      myFilter->SetInput(myRenderWindow);\r
-      myFrameIndex = -1;\r
-      myNbWrittenFrames = 0;\r
-      myRenderWindow->RemoveObserver(myCommand);\r
-      myRenderWindow->AddObserver(vtkCommand::EndEvent,\r
-                                  myCommand,\r
-                                  myPriority);\r
-      myRenderWindow->Render();\r
-    }\r
-  }\r
-}\r
-\r
-\r
-//----------------------------------------------------------------------------\r
-void\r
-VVTK_Recorder\r
-::Stop()\r
-{\r
-  QApplication::setOverrideCursor( Qt::waitCursor );\r
-\r
-  if(myState == VVTK_Recorder_Record){ \r
-    if(!myPaused)\r
-      DoRecord();\r
-\r
-    myWriterMgr->Stop();\r
-\r
-    if(myUseSkippedFrames)\r
-      AddSkippedFrames();\r
-\r
-    myFrameIndexes.clear();\r
-\r
-    MakeFileAVI();\r
-  }\r
-  myState = VVTK_Recorder_Stop;\r
-  myPaused = 0;\r
-\r
-  QApplication::restoreOverrideCursor();\r
-}\r
-\r
-\r
-//----------------------------------------------------------------------------\r
-void\r
-VVTK_Recorder\r
-::Pause()\r
-{\r
-  myPaused = myPaused ? 0 : 1;\r
-  if(myPaused && !myFrameIndexes.empty()){\r
-    size_t aLastId = myFrameIndexes.size() - 1;\r
-    myFrameIndexes[aLastId] *= -1;\r
-  }\r
-}\r
-\r
-\r
-//----------------------------------------------------------------------------\r
-void\r
-VVTK_Recorder\r
-::DoRecord()\r
-{\r
-  if(myPaused)\r
-    return;\r
-\r
-  if(myFrameIndex < 0){\r
-    myFrameIndex = 0;\r
-    myTimeStart = vtkTimerLog::GetCurrentTime();\r
-  }else{\r
-    double aTimeNow = vtkTimerLog::GetCurrentTime();\r
-    double aDelta = aTimeNow - myTimeStart;\r
-    if(aDelta < 0.0)\r
-      return;\r
-\r
-    int aFrameIndex = int(aDelta*myNbFPS);\r
-    if(aFrameIndex == myFrameIndex)\r
-      return;\r
-\r
-    myFrameIndex = aFrameIndex;\r
-  }\r
-\r
-  myFrameIndexes.push_back(myFrameIndex);\r
-  if(MYDEBUG) cout<<"VVTK_Recorder::DoRecord - myFrameIndex = "<<myFrameIndex<<endl;\r
-\r
-  myRenderWindow->RemoveObserver(myCommand);\r
-  myFilter->Modified();\r
-\r
-  std::string aName;\r
-  GetNameJPEG(myName,myFrameIndex,aName);\r
-\r
-  PreWrite();\r
-\r
-  vtkImageData *anImageData = vtkImageData::New(); \r
-  anImageData->DeepCopy(myFilter->GetOutput());\r
-\r
-  myWriterMgr->StartImageWriter(anImageData,aName,myProgressiveMode,myQuality);\r
-  myNbWrittenFrames++;\r
-\r
-  myRenderWindow->AddObserver(vtkCommand::EndEvent,\r
-                              myCommand,\r
-                              myPriority);\r
-}\r
-\r
-\r
-//----------------------------------------------------------------------------\r
-void\r
-VVTK_Recorder\r
-::PreWrite()\r
-{\r
-  vtkImageData *anImageData = myFilter->GetOutput();\r
-  //\r
-  if(!anImageData){\r
-    myErrorStatus = 20;\r
-    return;\r
-  }\r
-  anImageData->UpdateInformation();\r
-  int *anExtent = anImageData->GetWholeExtent();\r
-  anImageData->SetUpdateExtent(anExtent[0], anExtent[1],\r
-                              anExtent[2], anExtent[3],\r
-                              0,0);\r
-  anImageData->UpdateData();\r
-}\r
-\r
-\r
-//----------------------------------------------------------------------------\r
-void\r
-VVTK_Recorder\r
-::AddSkippedFrames()\r
-{\r
-  myErrorStatus = 0;\r
-\r
-  if(myFrameIndexes.size() < 2)\r
-    return;\r
-\r
-  size_t anId = 0, anEnd = myFrameIndexes.size() - 1;\r
-  for(; anId < anEnd; anId++){\r
-    int aStartIndex = myFrameIndexes[anId];\r
-    if(aStartIndex < 0)\r
-      continue;\r
-\r
-    int aFinishIndex = abs(myFrameIndexes[anId + 1]);\r
-    if(aStartIndex + 1 == aFinishIndex)\r
-      continue;\r
-\r
-    std::string anInitialName;\r
-    std::ostringstream aStream;\r
-    GetNameJPEG(myName,aStartIndex,anInitialName);\r
-    for(int anIndex = aStartIndex + 1; anIndex < aFinishIndex; anIndex++){\r
-      myNbWrittenFrames++;\r
-      std::string anCurrentName;\r
-      GetNameJPEG(myName,anIndex,anCurrentName);\r
-      aStream<<"ln -s "<< anInitialName<<" "<<anCurrentName<<";";\r
-      if(anIndex + 1 < aFinishIndex)\r
-       aStream<<" \\";\r
-      aStream<<endl;\r
-    }\r
-    std::string aString(aStream.str());\r
-    system(aString.c_str());\r
-    if(MYDEBUG) cout<<"VVTK_Recorder::AddSkippedFrames - "<<aString<<endl;\r
-  }\r
-}\r
-\r
-\r
-//----------------------------------------------------------------------------\r
-void\r
-VVTK_Recorder\r
-::MakeFileAVI()\r
-{\r
-  myErrorStatus = 0;\r
-  std::ostringstream aStream;\r
-  aStream<<myNameAVIMaker<<\r
-    " -I p"<<\r
-    " -v 0"<<\r
-    //" -f "<<int(myNbFPS)<<" "<<\r
-    " -f "<<myNbFPS<<" "<<\r
-    " -n "<<myNbWrittenFrames<<" "<<\r
-    " -j "<<myName<<"_\%06d.jpeg "<<\r
-    "| yuv2lav"<<\r
-    " -o "<<myName;\r
-   \r
-  std::string aString(aStream.str());\r
-  myErrorStatus = system(aString.c_str());\r
-\r
-  if(MYDEBUG) cout<<"VVTK_Recorder::MakeFileAVI - "<<aString<<endl;\r
-\r
-  QFileInfo aFileInfo(myName);\r
-  QString aDirPath = aFileInfo.dirPath(TRUE);\r
-  QString aBaseName = aFileInfo.fileName();\r
-  QString aCommand = \r
-    QString("(cd ") + aDirPath + \r
-    "; ls " +\r
-    " | egrep '" + aBaseName + "_[0-9]*.jpeg'" +\r
-    " | xargs rm " +\r
-    ")";\r
-\r
-  if(MYDEBUG) cout<<"VVTK_Recorder::MakeFileAVI - "<<aCommand.latin1()<<endl;\r
-  system(aCommand.latin1());\r
-}\r
+//  SALOME VTKViewer : build VTK viewer into Salome desktop
+//
+//  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 :
+//  $Header$
+
+#include "VVTK_Recorder.h"
+
+#include "VVTK_ImageWriter.h"
+#include "VVTK_ImageWriterMgr.h"
+
+#include <vtkObjectFactory.h>
+#include <vtkObject.h>
+#include <vtkCallbackCommand.h>
+#include <vtkRenderWindow.h>
+#include <vtkTimerLog.h>
+#include <vtkWindowToImageFilter.h>
+#include <vtkJPEGWriter.h>
+#include <vtkImageData.h>
+
+#include <sstream>
+#include <iomanip>
+#include <iostream>
+
+#ifndef WIN32
+#include <unistd.h>
+#endif
+
+#include <qapplication.h>
+#include <qfileinfo.h>
+
+#include "utilities.h"
+
+#ifdef _DEBUG_
+static int MYDEBUG = 0;
+#else
+static int MYDEBUG = 0;
+#endif
+
+
+namespace
+{
+  //----------------------------------------------------------------------------
+  inline
+  void
+  GetNameJPEG(const std::string& thePreffix,  
+             const int theIndex,
+             std::string& theName)
+  {
+    using namespace std;
+    ostringstream aStream;
+    aStream<<thePreffix<<"_"<<setw(6)<<setfill('0')<<theIndex<<".jpeg";
+    theName = aStream.str();
+  }
+}
+
+//----------------------------------------------------------------------------
+vtkCxxRevisionMacro(VVTK_Recorder,"$Revision$");
+vtkStandardNewMacro(VVTK_Recorder);
+
+
+//----------------------------------------------------------------------------
+VVTK_Recorder
+::VVTK_Recorder():
+  myRenderWindow(NULL),
+  myState(VVTK_Recorder_Stop),
+  myNbFPS(5.5),
+  myQuality(100),
+  myProgressiveMode(true),
+  myUseSkippedFrames(true),
+  myErrorStatus(0),
+  myCommand(vtkCallbackCommand::New()),
+  myPriority(0.0),
+  myTimeStart(0.0),
+  myFrameIndex(0),
+  myPaused(0),
+  myFilter(vtkWindowToImageFilter::New()),
+  myWriterMgr(new VVTK_ImageWriterMgr),
+  myNbWrittenFrames(0),
+  myNameAVIMaker("jpeg2yuv")
+{
+  myCommand->SetClientData(this); 
+  myCommand->SetCallback(VVTK_Recorder::ProcessEvents);
+}
+
+
+//----------------------------------------------------------------------------
+VVTK_Recorder
+::~VVTK_Recorder()
+{
+  myCommand->Delete();
+  myFilter->Delete();
+  delete myWriterMgr;
+}
+
+
+//----------------------------------------------------------------------------
+void
+VVTK_Recorder
+::CheckExistAVIMaker()
+{
+  myErrorStatus = 0;
+  using namespace std;
+  ostringstream aStream;
+  aStream<<"which "<<myNameAVIMaker<<" >& /dev/null";
+  std::string anAVIMakeCheck = aStream.str();
+  int iErr = system(anAVIMakeCheck.c_str());
+  if(iErr != 0)
+    myErrorStatus = 127;
+}
+
+
+//----------------------------------------------------------------------------
+void
+VVTK_Recorder
+::SetName(const char* theName)
+{
+  myName = theName;
+}
+
+const char* 
+VVTK_Recorder::Name() const
+{
+  return myName.c_str();
+}
+
+
+//----------------------------------------------------------------------------
+void
+VVTK_Recorder
+::SetNbFPS(const double theNbFPS)
+{
+  myNbFPS = theNbFPS;
+}
+
+double
+VVTK_Recorder
+::NbFPS() const
+{
+  return myNbFPS;
+}
+
+
+//----------------------------------------------------------------------------
+void
+VVTK_Recorder
+::SetQuality(int theQuality)
+{
+  myQuality = theQuality;
+}
+
+int
+VVTK_Recorder
+::GetQuality() const
+{
+  return myQuality;
+}
+
+
+//----------------------------------------------------------------------------
+void 
+VVTK_Recorder
+::SetRenderWindow(vtkRenderWindow* theRenderWindow)
+{
+  myRenderWindow = theRenderWindow;
+}
+
+vtkRenderWindow* 
+VVTK_Recorder
+::RenderWindow()
+{
+  return myRenderWindow;
+}
+
+
+//----------------------------------------------------------------------------
+void
+VVTK_Recorder
+::SetProgressiveMode(bool theProgressiveMode)
+{
+  myProgressiveMode = theProgressiveMode;
+}
+
+bool
+VVTK_Recorder
+::GetProgressiveMode() const
+{
+  return myProgressiveMode;
+}
+
+
+//----------------------------------------------------------------------------
+void
+VVTK_Recorder
+::SetUseSkippedFrames(bool theUseSkippedFrames)
+{
+  myUseSkippedFrames = theUseSkippedFrames;
+}
+
+bool
+VVTK_Recorder
+::UseSkippedFrames() const
+{
+  return myUseSkippedFrames;
+}
+
+
+//----------------------------------------------------------------------------
+int
+VVTK_Recorder
+::ErrorStatus() const
+{
+  return myErrorStatus;
+}
+
+int
+VVTK_Recorder
+::State() const
+{
+  return myState;
+}
+
+
+//----------------------------------------------------------------------------
+void
+VVTK_Recorder
+::ProcessEvents(vtkObject* vtkNotUsed(theObject), 
+               unsigned long theEvent,
+               void* theClientData, 
+               void* vtkNotUsed(theCallData))
+{
+  if(vtkObject* anObj = reinterpret_cast<vtkObject*>(theClientData)){ 
+    if(VVTK_Recorder* aSelf = dynamic_cast<VVTK_Recorder*>(anObj)){
+      if(theEvent==vtkCommand::EndEvent){
+       if(aSelf->State() == VVTK_Recorder::VVTK_Recorder_Record){
+         aSelf->DoRecord();
+       }
+      }
+    }
+  }
+}
+
+
+//----------------------------------------------------------------------------
+void
+VVTK_Recorder
+::Record()
+{
+  if(myState == VVTK_Recorder_Stop){
+    if(myRenderWindow){
+      myState = VVTK_Recorder_Record;
+      myFilter->SetInput(myRenderWindow);
+      myFrameIndex = -1;
+      myNbWrittenFrames = 0;
+      myRenderWindow->RemoveObserver(myCommand);
+      myRenderWindow->AddObserver(vtkCommand::EndEvent,
+                                  myCommand,
+                                  myPriority);
+      myRenderWindow->Render();
+    }
+  }
+}
+
+
+//----------------------------------------------------------------------------
+void
+VVTK_Recorder
+::Stop()
+{
+  QApplication::setOverrideCursor( Qt::waitCursor );
+
+  if(myState == VVTK_Recorder_Record){ 
+    if(!myPaused)
+      DoRecord();
+
+    myWriterMgr->Stop();
+
+    if(myUseSkippedFrames)
+      AddSkippedFrames();
+
+    myFrameIndexes.clear();
+
+    MakeFileAVI();
+  }
+  myState = VVTK_Recorder_Stop;
+  myPaused = 0;
+
+  QApplication::restoreOverrideCursor();
+}
+
+
+//----------------------------------------------------------------------------
+void
+VVTK_Recorder
+::Pause()
+{
+  myPaused = myPaused ? 0 : 1;
+  if(myPaused && !myFrameIndexes.empty()){
+    size_t aLastId = myFrameIndexes.size() - 1;
+    myFrameIndexes[aLastId] *= -1;
+  }
+}
+
+
+//----------------------------------------------------------------------------
+void
+VVTK_Recorder
+::DoRecord()
+{
+  if(myPaused)
+    return;
+
+  if(myFrameIndex < 0){
+    myFrameIndex = 0;
+    myTimeStart = vtkTimerLog::GetCurrentTime();
+  }else{
+    double aTimeNow = vtkTimerLog::GetCurrentTime();
+    double aDelta = aTimeNow - myTimeStart;
+    if(aDelta < 0.0)
+      return;
+
+    int aFrameIndex = int(aDelta*myNbFPS);
+    if(aFrameIndex == myFrameIndex)
+      return;
+
+    myFrameIndex = aFrameIndex;
+  }
+
+  myFrameIndexes.push_back(myFrameIndex);
+  if(MYDEBUG) cout<<"VVTK_Recorder::DoRecord - myFrameIndex = "<<myFrameIndex<<endl;
+
+  myRenderWindow->RemoveObserver(myCommand);
+  myFilter->Modified();
+
+  std::string aName;
+  GetNameJPEG(myName,myFrameIndex,aName);
+
+  PreWrite();
+
+  vtkImageData *anImageData = vtkImageData::New(); 
+  anImageData->DeepCopy(myFilter->GetOutput());
+
+  myWriterMgr->StartImageWriter(anImageData,aName,myProgressiveMode,myQuality);
+  myNbWrittenFrames++;
+
+  myRenderWindow->AddObserver(vtkCommand::EndEvent,
+                              myCommand,
+                              myPriority);
+}
+
+
+//----------------------------------------------------------------------------
+void
+VVTK_Recorder
+::PreWrite()
+{
+  vtkImageData *anImageData = myFilter->GetOutput();
+  //
+  if(!anImageData){
+    myErrorStatus = 20;
+    return;
+  }
+  anImageData->UpdateInformation();
+  int *anExtent = anImageData->GetWholeExtent();
+  anImageData->SetUpdateExtent(anExtent[0], anExtent[1],
+                              anExtent[2], anExtent[3],
+                              0,0);
+  anImageData->UpdateData();
+}
+
+
+//----------------------------------------------------------------------------
+void
+VVTK_Recorder
+::AddSkippedFrames()
+{
+  myErrorStatus = 0;
+
+  if(myFrameIndexes.size() < 2)
+    return;
+
+  size_t anId = 0, anEnd = myFrameIndexes.size() - 1;
+  for(; anId < anEnd; anId++){
+    int aStartIndex = myFrameIndexes[anId];
+    if(aStartIndex < 0)
+      continue;
+
+    int aFinishIndex = abs(myFrameIndexes[anId + 1]);
+    if(aStartIndex + 1 == aFinishIndex)
+      continue;
+
+    std::string anInitialName;
+    std::ostringstream aStream;
+    GetNameJPEG(myName,aStartIndex,anInitialName);
+    for(int anIndex = aStartIndex + 1; anIndex < aFinishIndex; anIndex++){
+      myNbWrittenFrames++;
+      std::string anCurrentName;
+      GetNameJPEG(myName,anIndex,anCurrentName);
+      aStream<<"ln -s "<< anInitialName<<" "<<anCurrentName<<";";
+      if(anIndex + 1 < aFinishIndex)
+       aStream<<" \\";
+      aStream<<endl;
+    }
+    std::string aString(aStream.str());
+    system(aString.c_str());
+    if(MYDEBUG) cout<<"VVTK_Recorder::AddSkippedFrames - "<<aString<<endl;
+  }
+}
+
+
+//----------------------------------------------------------------------------
+void
+VVTK_Recorder
+::MakeFileAVI()
+{
+  myErrorStatus = 0;
+  std::ostringstream aStream;
+  aStream<<myNameAVIMaker<<
+    " -I p"<<
+    " -v 0"<<
+    //" -f "<<int(myNbFPS)<<" "<<
+    " -f "<<myNbFPS<<" "<<
+    " -n "<<myNbWrittenFrames<<" "<<
+    " -j "<<myName<<"_\%06d.jpeg "<<
+    "| yuv2lav"<<
+    " -o "<<myName;
+   
+  std::string aString(aStream.str());
+  myErrorStatus = system(aString.c_str());
+
+  if(MYDEBUG) cout<<"VVTK_Recorder::MakeFileAVI - "<<aString<<endl;
+
+  QFileInfo aFileInfo(myName);
+  QString aDirPath = aFileInfo.dirPath(TRUE);
+  QString aBaseName = aFileInfo.fileName();
+  QString aCommand = 
+    QString("(cd ") + aDirPath + 
+    "; ls " +
+    " | egrep '" + aBaseName + "_[0-9]*.jpeg'" +
+    " | xargs rm " +
+    ")";
+
+  if(MYDEBUG) cout<<"VVTK_Recorder::MakeFileAVI - "<<aCommand.latin1()<<endl;
+  system(aCommand.latin1());
+}
index edac2165018ef44762f43f1d4f0945fc604f3355..6e521427499c3a86809f1f52230bc5e2eba39738 100644 (file)
@@ -11,6 +11,8 @@
 #ifndef VVTK_SEGMENTATIONCURSORDLG_H
 #define VVTK_SEGMENTATIONCURSORDLG_H
 
+#include "VVTK.h"
+
 #include <qdialog.h>
 
 #include <vtkObject.h>
@@ -46,7 +48,7 @@ namespace VISU
 {
   typedef vtkSmartPointer<vtkImageData> TTextureValue;
 
-  TTextureValue
+  VVTK_EXPORT TTextureValue
   GetTexture(const QString& theMainTexture, 
             const QString& theAlphaTexture);
 }
index a47f342c9c77947574c4ae5ea7058754eaffb24f..85eafa75d69779bde9dc033c609e947fd6f4d9b6 100644 (file)
@@ -28,6 +28,8 @@
 #ifndef VVTK_SIZEBOX_H
 #define VVTK_SIZEBOX_H
 
+#include "VVTK.h"
+
 #include <qvbox.h>
 
 class QLabel;
@@ -39,7 +41,7 @@ class QGroupBox;
 class QtxDblSpinBox;
 class QtxIntSpinBox;
 
-class VVTK_SizeBox : public QVBox
+class VVTK_EXPORT VVTK_SizeBox : public QVBox
 {
   Q_OBJECT