Salome HOME
Fix for NPAL17873.
[modules/smesh.git] / src / StdMeshers_I / StdMeshers_LocalLength_i.cxx
1 //  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
2 //
3 //  Copyright (C) 2003  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 //
24 //  File   : StdMeshers_LocalLength_i.cxx
25 //           Moved here from SMESH_LocalLength_i.cxx
26 //  Author : Paul RASCLE, EDF
27 //  Module : SMESH
28 //  $Header$
29
30 using namespace std;
31 #include "StdMeshers_LocalLength_i.hxx"
32 #include "SMESH_Gen_i.hxx"
33 #include "SMESH_Gen.hxx"
34 #include "SMESH_PythonDump.hxx"
35
36 #include "Utils_CorbaException.hxx"
37 #include "utilities.h"
38
39 #include <TCollection_AsciiString.hxx>
40
41 //=============================================================================
42 /*!
43  *  StdMeshers_LocalLength_i::StdMeshers_LocalLength_i
44  *
45  *  Constructor
46  */
47 //=============================================================================
48 StdMeshers_LocalLength_i::StdMeshers_LocalLength_i( PortableServer::POA_ptr thePOA,
49                                                     int                     theStudyId,
50                                                     ::SMESH_Gen*            theGenImpl )
51      : SALOME::GenericObj_i( thePOA ), 
52        SMESH_Hypothesis_i( thePOA )
53 {
54   MESSAGE( "StdMeshers_LocalLength_i::StdMeshers_LocalLength_i" );
55   myBaseImpl = new ::StdMeshers_LocalLength( theGenImpl->GetANewId(),
56                                              theStudyId,
57                                              theGenImpl );
58 }
59
60 //=============================================================================
61 /*!
62  *  StdMeshers_LocalLength_i::~StdMeshers_LocalLength_i
63  *
64  *  Destructor
65  */
66 //=============================================================================
67 StdMeshers_LocalLength_i::~StdMeshers_LocalLength_i()
68 {
69   MESSAGE( "StdMeshers_LocalLength_i::~StdMeshers_LocalLength_i" );
70 }
71
72 //=============================================================================
73 /*!
74  *  StdMeshers_LocalLength_i::SetLength
75  *
76  *  Set length
77  */
78 //=============================================================================
79 void StdMeshers_LocalLength_i::SetLength( CORBA::Double theLength )
80      throw ( SALOME::SALOME_Exception )
81 {
82   MESSAGE( "StdMeshers_LocalLength_i::SetLength" );
83   ASSERT( myBaseImpl );
84   try {
85     this->GetImpl()->SetLength( theLength );
86   }
87   catch ( SALOME_Exception& S_ex ) {
88     THROW_SALOME_CORBA_EXCEPTION( S_ex.what(),
89                                   SALOME::BAD_PARAM );
90   }
91
92   // Update Python script
93   SMESH::TPythonDump() << _this() << ".SetLength( " << theLength << " )";
94 }
95
96 //=============================================================================
97 /*!
98  *  StdMeshers_LocalLength_i::SetPrecision
99  *
100  *  Set length
101  */
102 //=============================================================================
103 void StdMeshers_LocalLength_i::SetPrecision( CORBA::Double thePrecision )
104      throw ( SALOME::SALOME_Exception )
105 {
106   MESSAGE( "StdMeshers_LocalLength_i::SetPrecision" );
107   ASSERT( myBaseImpl );
108   try {
109     this->GetImpl()->SetPrecision( thePrecision );
110   }
111   catch ( SALOME_Exception& S_ex ) {
112     THROW_SALOME_CORBA_EXCEPTION( S_ex.what(),
113                                   SALOME::BAD_PARAM );
114   }
115
116   // Update Python script
117   SMESH::TPythonDump() << _this() << ".SetPrecision( " << thePrecision << " )";
118 }
119
120 //=============================================================================
121 /*!
122  *  StdMeshers_LocalLength_i::GetLength
123  *
124  *  Get length
125  */
126 //=============================================================================
127 CORBA::Double StdMeshers_LocalLength_i::GetLength()
128 {
129   MESSAGE( "StdMeshers_LocalLength_i::GetLength" );
130   ASSERT( myBaseImpl );
131   return this->GetImpl()->GetLength();
132 }
133
134 //=============================================================================
135 /*!
136  *  StdMeshers_LocalLength_i::GetPrecision
137  *
138  *  Get precision
139  */
140 //=============================================================================
141 CORBA::Double StdMeshers_LocalLength_i::GetPrecision()
142 {
143   MESSAGE( "StdMeshers_LocalLength_i::GetPrecision" );
144   ASSERT( myBaseImpl );
145   return this->GetImpl()->GetPrecision();
146 }
147
148 //=============================================================================
149 /*!
150  *  StdMeshers_LocalLength_i::GetImpl
151  *
152  *  Get implementation
153  */
154 //=============================================================================
155 ::StdMeshers_LocalLength* StdMeshers_LocalLength_i::GetImpl()
156 {
157   MESSAGE( "StdMeshers_LocalLength_i::GetImpl" );
158   return ( ::StdMeshers_LocalLength* )myBaseImpl;
159 }
160
161 //================================================================================
162 /*!
163  * \brief Verify whether hypothesis supports given entity type 
164   * \param type - dimension (see SMESH::Dimension enumeration)
165   * \retval CORBA::Boolean - TRUE if dimension is supported, FALSE otherwise
166  * 
167  * Verify whether hypothesis supports given entity type (see SMESH::Dimension enumeration)
168  */
169 //================================================================================  
170 CORBA::Boolean StdMeshers_LocalLength_i::IsDimSupported( SMESH::Dimension type )
171 {
172   return type == SMESH::DIM_1D;
173 }
174