Salome HOME
7a334552fc7f374dd793556cb7c493bb082f38e3
[modules/visu.git] / src / CONVERTOR / VISU_Convertor.cxx
1 //  Copyright (C) 2007-2010  CEA/DEN, EDF R&D, OPEN CASCADE
2 //
3 //  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 //  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 //
6 //  This library is free software; you can redistribute it and/or
7 //  modify it under the terms of the GNU Lesser General Public
8 //  License as published by the Free Software Foundation; either
9 //  version 2.1 of the License.
10 //
11 //  This library is distributed in the hope that it will be useful,
12 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
13 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 //  Lesser General Public License for more details.
15 //
16 //  You should have received a copy of the GNU Lesser General Public
17 //  License along with this library; if not, write to the Free Software
18 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19 //
20 //  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 //
22
23 //  VISU OBJECT : interactive object for VISU entities implementation
24 //  File:    VISU_Convertor.cxx
25 //  Author:  Alexey PETROV
26 //  Module : VISU
27 //
28 #include "VISU_Convertor.hxx"
29 #include "VISU_ConvertorUtils.hxx"
30
31 #include <QString>
32
33 #include <utility>
34
35
36 //---------------------------------------------------------------
37 VISU_Convertor
38 ::VISU_Convertor():
39   myIsDone(false)
40 {}
41
42
43 //---------------------------------------------------------------
44 const std::string& 
45 VISU_Convertor
46 ::GetName()
47 {
48   return myName;
49 }
50
51
52 //---------------------------------------------------------------
53 int
54 VISU_Convertor
55 ::IsDone() const 
56 {
57   return myIsDone; 
58 }
59
60 //---------------------------------------------------------------
61 const VISU::TMeshMap& 
62 VISU_Convertor
63 ::GetMeshMap() 
64
65   return myMeshMap;
66 }
67
68
69 //---------------------------------------------------------------
70 std::string
71 VISU_Convertor
72 ::GenerateName(const VISU::TTime& aTime)
73 {
74   static QString aName;
75   const std::string aUnits = aTime.second, tmp(aUnits.size(), ' ');
76   if(aUnits == "" || aUnits == tmp)
77     aName.sprintf("%g, -", aTime.first);
78   else
79     aName.sprintf("%g, %s", aTime.first, aTime.second.c_str());
80   aName = aName.simplified();
81   return (const char*)aName.toLatin1();
82 }
83
84
85 //---------------------------------------------------------------
86 std::string
87 VISU_Convertor
88 ::GenerateName(const std::string& theName, 
89                unsigned int theTimeId) 
90 {
91   static QString aName;
92   aName = QString(theName.c_str()).simplified();
93   int iEnd = strlen((const char*)aName.toLatin1());
94   static int VtkHighLevelLength = 12; //25
95   if(iEnd > VtkHighLevelLength) iEnd = VtkHighLevelLength;
96   char* aNewName = new char[iEnd+1];
97   aNewName[iEnd] = '\0';
98   strncpy(aNewName, (const char*)aName.toLatin1(), iEnd);
99   std::replace(aNewName, aNewName + iEnd, ' ', '_');
100   if(true || theTimeId == 0)
101     aName = aNewName;
102   else
103     aName.sprintf("%s_%d",aNewName,theTimeId);
104   delete[] aNewName;
105   return (const char*)aName.toLatin1();
106 }
107
108
109 //---------------------------------------------------------------