-// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
//
// Copyright (C) 2003-2007 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.
+// version 2.1 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
#include "SMESHGUI.h"
#include "SMESHGUI_Selection.h"
#include "SMESH_Type.h"
-
+#include "SMESH_MeshAlgos.hxx"
#include <SMDS_MeshNode.hxx>
#include <SMDS_MeshFace.hxx>
#include CORBA_SERVER_HEADER(SMESH_Group)
+//VSR: uncomment below macro to support unicode text properly in SALOME
+// current commented out due to regressions
+//#define PAL22528_UNICODE
+
namespace SMESH
{
SUIT_Desktop*
}
CORBA::Object_var SObjectToObject (_PTR(SObject) theSObject,
- _PTR(Study) theStudy)
+ _PTR(Study) /*theStudy*/)
{
SalomeApp_Application* app = dynamic_cast<SalomeApp_Application*>
(SUIT_Session::session()->activeApplication());
_PTR(GenericAttribute) anAttr;
if (theSObject->FindAttribute(anAttr, "AttributeIOR")) {
_PTR(AttributeIOR) anIOR = anAttr;
- CORBA::String_var aVal = anIOR->Value().c_str();
+ std::string aVal = anIOR->Value();
// string_to_object() DOC: If the input string is not valid ...
// a CORBA::SystemException is thrown.
- if ( aVal && strlen( aVal ) > 0 )
- return app->orb()->string_to_object(aVal);
+ if ( aVal.size() > 0 )
+ return app->orb()->string_to_object( aVal.c_str() );
}
}
return CORBA::Object::_nil();
CORBA::Object_var SObjectToObject (_PTR(SObject) theSObject)
{
- _PTR(Study) aStudy = GetActiveStudyDocument();
+ _PTR(Study) aStudy;// = GetActiveStudyDocument(); -- aStudy is not used
return SObjectToObject(theSObject,aStudy);
}
SalomeApp_Application* app = dynamic_cast<SalomeApp_Application*>
(SUIT_Session::session()->activeApplication());
if ( app ) {
- QString IOR = app->orb()->object_to_string( theObject );
+ CORBA::String_var ior = app->orb()->object_to_string( theObject );
SalomeApp_Study* study = dynamic_cast<SalomeApp_Study*>( app->activeStudy() );
- if ( study && !IOR.isEmpty() )
- res = study->studyDS()->FindObjectIOR( IOR.toLatin1().constData() );
+ if ( study && strlen( ior ) > 0 )
+ res = study->studyDS()->FindObjectIOR( ior.in() );
}
return res;
}
gp_XYZ getNormale( const SMDS_MeshFace* theFace )
{
gp_XYZ n;
- int aNbNode = theFace->NbNodes();
- TColgp_Array1OfXYZ anArrOfXYZ(1,4);
- SMDS_ElemIteratorPtr aNodeItr = theFace->nodesIterator();
- int i = 1;
- for ( ; aNodeItr->more() && i <= 4; i++ ) {
- SMDS_MeshNode* aNode = (SMDS_MeshNode*)aNodeItr->next();
- anArrOfXYZ.SetValue(i, gp_XYZ( aNode->X(), aNode->Y(), aNode->Z() ) );
- }
-
- gp_XYZ q1 = anArrOfXYZ.Value(2) - anArrOfXYZ.Value(1);
- gp_XYZ q2 = anArrOfXYZ.Value(3) - anArrOfXYZ.Value(1);
- n = q1 ^ q2;
- if ( aNbNode > 3 ) {
- gp_XYZ q3 = anArrOfXYZ.Value(4) - anArrOfXYZ.Value(1);
- n += q2 ^ q3;
- }
- double len = n.Modulus();
- if ( len > 0 )
- n /= len;
+ SMESH_MeshAlgos::FaceNormal( theFace, n, /*normalized=*/true );
return n;
}
+ QString fromUtf8( const char* txt )
+ {
+#ifdef PAL22528_UNICODE
+ return QString::fromUtf8( txt );
+#else
+ return QString( txt );
+#endif
+ }
+
+ QString fromUtf8( const std::string& txt )
+ {
+ return fromUtf8( txt.c_str() );
+ }
+
+ const char* toUtf8( const QString& txt )
+ {
+#ifdef PAL22528_UNICODE
+ return txt.toUtf8().constData();
+#else
+ return txt.toLatin1().constData();
+#endif
+ }
+
} // end of namespace SMESH