--- /dev/null
+// GEOM GEOMGUI : GUI for Geometry component
+//
+// 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 : GEOMBase.cxx
+// Author : Damien COQUERET
+// Module : GEOM
+// $Header:
+
+using namespace std;
+#include "GEOMBase.h"
+
+//// SALOME Includes
+# include "Utils_ORB_INIT.hxx"
+# include "Utils_SINGLETON.hxx"
+
+#include "QAD_RightFrame.h"
+#include "QAD_MessageBox.h"
+
+#include "GEOM_AssemblyBuilder.h"
+#include "VTKViewer_ViewFrame.h"
+#include "OCCViewer_ViewPort3d.h"
+#include "OCCViewer_Viewer3d.h"
+
+#include "SALOME_ListIteratorOfListIO.hxx"
+#include "SALOMEGUI_ImportOperation.h"
+#include "SALOMEGUI_NameDlg.h"
+
+// // Open CASCADE Includes
+#include <BRep_Tool.hxx>
+#include <BRepAdaptor_Curve.hxx>
+#include <BRepAdaptor_Surface.hxx>
+#include <BRepPrimAPI_MakeCone.hxx>
+
+#include <Geom_Circle.hxx>
+#include <AIS_ListIteratorOfListOfInteractive.hxx>
+
+#include <TopAbs.hxx>
+#include <TopExp.hxx>
+#include <TopExp_Explorer.hxx>
+#include <TopoDS_Iterator.hxx>
+#include <TopoDS_Compound.hxx>
+#include <TopTools_MapOfShape.hxx>
+#include <TopTools_ListIteratorOfListOfShape.hxx>
+
+#include <Precision.hxx>
+#include <ProjLib.hxx>
+#include <ElSLib.hxx>
+
+// // QT Includes
+#include <qmessagebox.h>
+
+#include "GEOMBase_aParameterDlg.h"
+
+//=======================================================================
+// function : GEOMBase()
+// purpose : Constructor
+//=======================================================================
+GEOMBase::GEOMBase() :
+ QObject()
+{
+ myGeomGUI = GEOMContext::GetGeomGUI();
+ myGeom = myGeomGUI->myComponentGeom;
+}
+
+
+//=======================================================================
+// function : ~GEOMBase()
+// purpose : Destructor
+//=======================================================================
+GEOMBase::~GEOMBase()
+{
+}
+
+
+//=====================================================================================
+// function : GetIndex()
+// purpose : Get the index of a sub shape in a main shape : index start at 1
+//=====================================================================================
+int GEOMBase::GetIndex(const TopoDS_Shape& subshape, const TopoDS_Shape& shape, int /*ShapeType*/)
+{
+ if(shape.IsNull() || subshape.IsNull())
+ return -1;
+
+ int index = 1;
+ if(subshape.ShapeType() == TopAbs_COMPOUND) {
+ TopoDS_Iterator it;
+ TopTools_ListOfShape CL;
+ CL.Append(shape);
+ TopTools_ListIteratorOfListOfShape itC;
+ for(itC.Initialize(CL); itC.More(); itC.Next()) {
+ for(it.Initialize(itC.Value()); it.More(); it.Next()) {
+ if(it.Value().ShapeType() == TopAbs_COMPOUND) {
+ if(it.Value().IsSame(subshape))
+ return index;
+ else
+ index++;
+ CL.Append(it.Value());
+ }
+ }
+ }
+ }
+ else {
+ TopExp_Explorer Exp(shape, subshape.ShapeType());
+ TopTools_MapOfShape M;
+ while(Exp.More()) {
+ if(M.Add(Exp.Current())) {
+ if(Exp.Current().IsSame(subshape))
+ return index;
+ index++;
+ }
+ Exp.Next();
+ }
+ }
+ return -1;
+}
+
+
+//=================================================================================
+// function : VertexToPoint()
+// purpose : If S can be converted in a gp_Pnt returns true and the result is P
+//=================================================================================
+bool GEOMBase::VertexToPoint(const TopoDS_Shape& S, gp_Pnt& P)
+{
+ if(S.IsNull() || S.ShapeType() != TopAbs_VERTEX)
+ return false;
+ P = BRep_Tool::Pnt(TopoDS::Vertex(S));
+ return true;
+}
+
+
+//=================================================================================
+// function : GetBipointDxDyDz()
+// purpose :
+//=================================================================================
+void GEOMBase::GetBipointDxDyDz(gp_Pnt P1, gp_Pnt P2, double& dx, double& dy, double& dz)
+{
+ dx = P2.X() - P1.X();
+ dy = P2.Y() - P1.Y();
+ dz = P2.Z() - P1.Z();
+ return;
+}
+
+
+//=================================================================================
+// function : LinearEdgeExtremities()
+// purpose : If S can be converted in a linear edge and if initial an final points
+// : distance is sufficient, returns true else returns false.
+// : Resulting points are respectively P1 and P2
+//=================================================================================
+bool GEOMBase::LinearEdgeExtremities(const TopoDS_Shape& S, gp_Pnt& P1, gp_Pnt& P2)
+{
+ if(S.IsNull() || S.ShapeType() != TopAbs_EDGE)
+ return false;
+ BRepAdaptor_Curve curv(TopoDS::Edge(S));
+ if(curv.GetType() != GeomAbs_Line)
+ return false;
+
+ curv.D0(curv.FirstParameter(), P1);
+ curv.D0(curv.LastParameter(), P2);
+
+ if(P1.Distance(P2) <= Precision::Confusion())
+ return false;
+
+ return true;
+}
+
+
+//=======================================================================
+// function : GetTopoFromSelection()
+// purpose : Define tds from a single selection and retuen true
+//=======================================================================
+bool GEOMBase::GetTopoFromSelection(SALOME_Selection *Sel, TopoDS_Shape& tds)
+{
+ if(Sel->IObjectCount() != 1)
+ return false;
+
+ Handle(SALOME_InteractiveObject) IO = Sel->firstIObject();
+ /* case SObject */
+ if(IO->hasEntry()) {
+ SALOMEDS::Study_var aStudy = myGeomGUI->GetActiveStudy()->getStudyDocument();
+ SALOMEDS::SObject_var obj = aStudy->FindObjectID(IO->getEntry());
+ SALOMEDS::GenericAttribute_var anAttr;
+ SALOMEDS::AttributeIOR_var anIOR;
+ if(!obj->_is_nil()) {
+ if(obj->FindAttribute(anAttr, "AttributeIOR")) {
+ anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
+ tds = this->GetShapeFromIOR(anIOR->Value());
+ if(tds.IsNull())
+ return false;
+ else
+ return true;
+ }
+ }
+ }
+
+ if(IO->IsInstance(STANDARD_TYPE(GEOM_InteractiveObject))) {
+ Standard_CString ior = "";
+ Handle(GEOM_InteractiveObject) GIObject = Handle(GEOM_InteractiveObject)::DownCast(IO);
+ ior = GIObject->getIOR();
+ tds = this->GetShapeFromIOR(ior);
+ if(tds.IsNull())
+ return false;
+ else
+ return true;
+ }
+
+ return false;
+}
+
+
+//=======================================================================
+// function : GetNameOfSelectedIObjects()
+// purpose : Define the name geom++ or other name of mono or multi sel.
+//=======================================================================
+int GEOMBase::GetNameOfSelectedIObjects(SALOME_Selection* Sel, QString& aName)
+{
+ int nbSel = Sel->IObjectCount();
+ if(nbSel == 1) {
+ Handle(SALOME_InteractiveObject) IObject = Sel->firstIObject();
+ aName = IObject->getName();
+ }
+ else {
+ aName = tr("%1_objects").arg(nbSel);
+ }
+ return nbSel;
+}
+
+
+//=======================================================================
+// function : ConvertIOinGEOMAISShape()
+// purpose :
+//=======================================================================
+Handle(GEOM_AISShape) GEOMBase::ConvertIOinGEOMAISShape(const Handle(SALOME_InteractiveObject)& IO, Standard_Boolean& testResult, bool onlyInActiveView)
+{
+ Handle(GEOM_AISShape) res;
+ int nbSf = myGeomGUI->GetActiveStudy()->getStudyFramesCount();
+ for(int i = 0; i < nbSf; i++) {
+ QAD_StudyFrame* sf = myGeomGUI->GetActiveStudy()->getStudyFrame(i);
+ if(sf->getTypeView() == VIEW_OCC) {
+ OCCViewer_Viewer3d* v3d = ((OCCViewer_ViewFrame*)sf->getRightFrame()->getViewFrame())->getViewer();
+ Handle (AIS_InteractiveContext) ic = v3d->getAISContext();
+
+ AIS_ListOfInteractive List;
+ ic->DisplayedObjects(List);
+ AIS_ListOfInteractive List1;
+ ic->ObjectsInCollector(List1);
+ List.Append(List1);
+
+ AIS_ListIteratorOfListOfInteractive ite(List);
+ while(ite.More()) {
+ if(ite.Value()->IsInstance(STANDARD_TYPE(GEOM_AISShape))) {
+ Handle(GEOM_AISShape) aSh = Handle(GEOM_AISShape)::DownCast(ite.Value());
+ if(aSh->hasIO()) {
+ Handle(GEOM_InteractiveObject) GIO = Handle(GEOM_InteractiveObject)::DownCast(aSh->getIO());
+ if(GIO->isSame(IO)) {
+ if(onlyInActiveView) {
+ if(sf == myGeomGUI->GetActiveStudy()->getActiveStudyFrame()) {
+ testResult = true;
+ return aSh;
+ }
+ }
+ else {
+ testResult = true;
+ return aSh;
+ }
+ }
+ }
+ }
+ ite.Next();
+ }
+ }
+ }
+ testResult = false;
+ return res;
+}
+
+
+//=======================================================================
+// function : ConvertIORinGEOMAISShape()
+// purpose :
+//=======================================================================
+Handle(GEOM_AISShape) GEOMBase::ConvertIORinGEOMAISShape(const char * IOR, Standard_Boolean& testResult, bool onlyInActiveView)
+{
+ Handle(GEOM_AISShape) resultShape;
+ testResult = false;
+ int nbSf = myGeomGUI->GetActiveStudy()->getStudyFramesCount();
+ for(int i = 0; i < nbSf; i++) {
+ QAD_StudyFrame* sf = myGeomGUI->GetActiveStudy()->getStudyFrame(i);
+ if(sf->getTypeView() == VIEW_OCC) {
+ OCCViewer_Viewer3d* v3d = ((OCCViewer_ViewFrame*)sf->getRightFrame()->getViewFrame())->getViewer();
+ Handle (AIS_InteractiveContext) ic = v3d->getAISContext();
+
+ AIS_ListOfInteractive List;
+ ic->DisplayedObjects(List);
+ AIS_ListOfInteractive List1;
+ ic->ObjectsInCollector(List1);
+ List.Append(List1);
+
+ AIS_ListIteratorOfListOfInteractive ite(List);
+ while(ite.More()) {
+ if(ite.Value()->IsInstance(STANDARD_TYPE(GEOM_AISShape))) {
+ Handle(GEOM_AISShape) aSh = Handle(GEOM_AISShape)::DownCast(ite.Value());
+ if(aSh->hasIO()) {
+ Handle(GEOM_InteractiveObject) GIO = Handle(GEOM_InteractiveObject)::DownCast(aSh->getIO());
+ Standard_CString theIOR = GIO->getIOR();
+ if(strcmp(IOR, theIOR) == 0) {
+ if(onlyInActiveView) {
+ if(sf == myGeomGUI->GetActiveStudy()->getActiveStudyFrame()) {
+ testResult = true;
+ resultShape = aSh;
+ return resultShape;
+ }
+ }
+ else {
+ testResult = true;
+ resultShape = aSh;
+ return resultShape;
+ }
+ }
+ }
+ }
+ ite.Next();
+ }
+ }
+ }
+ return resultShape;
+}
+
+
+//=======================================================================
+// function : ConvertIORinGEOMActor()
+// purpose :
+//=======================================================================
+GEOM_Actor* GEOMBase::ConvertIORinGEOMActor(const char* IOR, Standard_Boolean& testResult, bool onlyInActiveView)
+{
+ int nbSf = myGeomGUI->GetActiveStudy()->getStudyFramesCount();
+ for(int i = 0; i < nbSf; i++) {
+ QAD_StudyFrame* sf = myGeomGUI->GetActiveStudy()->getStudyFrame(i);
+ if(sf->getTypeView() == VIEW_VTK) {
+ vtkRenderer* Renderer = ((VTKViewer_ViewFrame*)sf->getRightFrame()->getViewFrame())->getRenderer();
+ vtkActorCollection* theActors = Renderer->GetActors();
+ theActors->InitTraversal();
+ vtkActor *ac = theActors->GetNextActor();
+ while(!(ac==NULL)) {
+ if( ac->IsA("GEOM_Actor")) {
+ GEOM_Actor* anActor = GEOM_Actor::SafeDownCast(ac);
+ if(anActor->hasIO()) {
+ Handle(GEOM_InteractiveObject) GIO = Handle(GEOM_InteractiveObject)::DownCast(anActor->getIO());
+ Standard_CString theIOR = GIO->getIOR();
+ if(strcmp(IOR, theIOR) == 0) {
+ if(onlyInActiveView) {
+ if(sf == myGeomGUI->GetActiveStudy()->getActiveStudyFrame()) {
+ testResult = true;
+ return anActor;
+ }
+ }
+ else {
+ testResult = true;
+ return anActor;
+ }
+ }
+ }
+ }
+ ac = theActors->GetNextActor();
+ }
+ }
+ }
+ testResult = false;
+ return GEOM_Actor::New();
+}
+
+
+//=======================================================================
+// function : ConvertIOinGEOMShape()
+// purpose :
+//=======================================================================
+GEOM::GEOM_Shape_ptr GEOMBase::ConvertIOinGEOMShape(const Handle(SALOME_InteractiveObject)& IO, Standard_Boolean& testResult)
+{
+ GEOM::GEOM_Shape_ptr aShape;
+ testResult = false;
+
+ /* case SObject */
+ if(IO->hasEntry()) {
+ SALOMEDS::Study_var aStudy = myGeomGUI->GetActiveStudy()->getStudyDocument();
+ SALOMEDS::SObject_var obj = aStudy->FindObjectID(IO->getEntry());
+ SALOMEDS::GenericAttribute_var anAttr;
+ SALOMEDS::AttributeIOR_var anIOR;
+ if(!obj->_is_nil()) {
+ if(obj->FindAttribute(anAttr, "AttributeIOR")) {
+ anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
+ aShape = myGeom->GetIORFromString(anIOR->Value());
+ testResult = true;
+ return aShape;
+ }
+ }
+ }
+ /* case Graphical Object */
+ if(IO->IsInstance(STANDARD_TYPE(GEOM_InteractiveObject))) {
+ Handle(GEOM_InteractiveObject) GIObject = Handle(GEOM_InteractiveObject)::DownCast(IO);
+ Standard_CString ior = GIObject->getIOR();
+ testResult = true;
+ aShape = myGeom->GetIORFromString(ior);
+ return aShape;
+ }
+ return aShape;
+}
+
+
+//=======================================================================
+// function : ConvertListOfIOInListOfIOR()
+// purpose :
+//=======================================================================
+void GEOMBase::ConvertListOfIOInListOfIOR(const SALOME_ListIO& aList, GEOM::GEOM_Gen::ListOfIOR& listIOR)
+{
+ int nbSel = aList.Extent();
+ listIOR.length(nbSel);
+ int j=0;
+ SALOME_ListIteratorOfListIO It(aList);
+ for(int i=0; It.More(); It.Next(), i++) {
+ Handle(SALOME_InteractiveObject) IObject = It.Value();
+ if(IObject->hasEntry()) {
+ SALOMEDS::Study_var aStudy = myGeomGUI->GetActiveStudy()->getStudyDocument();
+ SALOMEDS::SObject_var obj = aStudy->FindObjectID(IObject->getEntry());
+ SALOMEDS::GenericAttribute_var anAttr;
+ SALOMEDS::AttributeIOR_var anIOR;
+ if(!obj->_is_nil() && obj->FindAttribute(anAttr, "AttributeIOR")) {
+ anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
+ ORB_INIT &init = *SINGLETON_<ORB_INIT>::Instance();
+ CORBA::ORB_var& _orb = init.orb();
+ CORBA::String_var theValue = anIOR->Value();
+ CORBA::Object_var theObj = _orb->string_to_object(theValue);
+ if(theObj->_is_a("IDL:GEOM/GEOM_Shape:1.0")) {
+ listIOR[j] = strdup(theValue);
+ j++;
+ }
+ }
+ }
+ else if(IObject->IsInstance(STANDARD_TYPE(GEOM_InteractiveObject))) {
+ Handle(GEOM_InteractiveObject) GIObject = Handle(GEOM_InteractiveObject)::DownCast(IObject);
+ Standard_CString ior = GIObject->getIOR();
+ listIOR[j] = strdup(ior);
+ j++;
+ }
+ }
+ listIOR.length(j);
+}
+
+
+//=================================================================================
+// function : GetShapeTypeString()
+// purpose : for a single shape
+//=================================================================================
+bool GEOMBase::GetShapeTypeString(const TopoDS_Shape& aShape, Standard_CString& aTypeString)
+{
+ if(aShape.IsNull()) {
+ aTypeString = "aNullShape";
+ return false;
+ }
+ switch(aShape.ShapeType())
+ {
+ case TopAbs_COMPOUND:
+ {
+ aTypeString = strdup(tr("GEOM_COMPOUND"));
+ return true;
+ }
+ case TopAbs_COMPSOLID:
+ {
+ aTypeString = strdup(tr("GEOM_COMPOUNDSOLID")) ;
+ return true ;
+ }
+ case TopAbs_SOLID:
+ {
+ aTypeString = strdup(tr("GEOM_SOLID")) ;
+ return true ;
+ }
+ case TopAbs_SHELL:
+ {
+ aTypeString = strdup(tr("GEOM_SHELL")) ;
+ return true ;
+ }
+ case TopAbs_FACE:
+ {
+ BRepAdaptor_Surface surf(TopoDS::Face(aShape));
+ if(surf.GetType() == GeomAbs_Plane) {
+ aTypeString = strdup(tr("GEOM_PLANE"));
+ return true;
+ }
+ else if(surf.GetType() == GeomAbs_Cylinder) {
+ aTypeString = strdup(tr("GEOM_SURFCYLINDER"));
+ return true;
+ }
+ else if(surf.GetType() == GeomAbs_Sphere) {
+ aTypeString = strdup(tr("GEOM_SURFSPHERE"));
+ return true ;
+ }
+ else if(surf.GetType() == GeomAbs_Torus) {
+ aTypeString = strdup(tr("GEOM_SURFTORUS"));
+ return true ;
+ }
+ else if(surf.GetType() == GeomAbs_Cone) {
+ aTypeString = strdup(tr("GEOM_SURFCONE"));
+ return true ;
+ }
+ else {
+ aTypeString = strdup(tr("GEOM_FACE"));
+ return true;
+ }
+ }
+ case TopAbs_WIRE:
+ {
+ aTypeString = strdup(tr("GEOM_WIRE"));
+ return true;
+ }
+ case TopAbs_EDGE:
+ {
+ BRepAdaptor_Curve curv(TopoDS::Edge(aShape));
+ if(curv.GetType() == GeomAbs_Line) {
+ if((Abs(curv.FirstParameter()) >= 1E6) || (Abs(curv.LastParameter()) >= 1E6))
+ aTypeString = strdup(tr("GEOM_LINE"));
+ else
+ aTypeString = strdup(tr("GEOM_EDGE"));
+ return true;
+ }
+ else if(curv.GetType() == GeomAbs_Circle) {
+ if(curv.IsClosed())
+ aTypeString = strdup(tr("GEOM_CIRCLE"));
+ else
+ aTypeString = strdup(tr("GEOM_ARC"));
+ return true;
+ }
+ else {
+ aTypeString = strdup(tr("GEOM_EDGE"));
+ return true;
+ }
+ }
+ case TopAbs_VERTEX:
+ {
+ aTypeString = strdup(tr("GEOM_VERTEX"));
+ return true;
+ }
+ case TopAbs_SHAPE:
+ {
+ aTypeString = strdup(tr("GEOM_SHAPE"));
+ return true;
+ }
+ }
+ return false;
+}
+
+
+//=================================================================================
+// function : CreateArrowForLinearEdge()
+// purpose : Create a cone topology to be used to display an arrow in the middle
+// : of an edge showing its orientation. (For simulation and Viewer OCC only)
+//=================================================================================
+bool GEOMBase::CreateArrowForLinearEdge(const TopoDS_Shape& tds, TopoDS_Shape& ArrowCone)
+{
+ if(myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getTypeView() != VIEW_OCC || tds.ShapeType() != TopAbs_EDGE)
+ return false;
+
+ OCCViewer_ViewPort* vp = ((OCCViewer_ViewFrame*)myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getRightFrame()->getViewFrame())->getViewPort();
+ Handle( V3d_View) view3d = ((OCCViewer_ViewPort3d*)vp)->getView();
+ Standard_Real Width, Height;
+ view3d->Size(Width, Height);
+ const Standard_Real aHeight = (Width + Height) / 50.0;
+
+ try {
+ Standard_Real first, last;
+ Handle(Geom_Curve) curv = BRep_Tool::Curve(TopoDS::Edge(tds), first, last);
+ if(!curv->IsCN(1))
+ return false;
+
+ const Standard_Real param = (first+last) / 2.0;
+ gp_Pnt middleParamPoint;
+ gp_Vec V1;
+ curv->D1( param, middleParamPoint, V1);
+ if(V1.Magnitude() < Precision::Confusion())
+ return false;
+
+ /* Topology orientation not geom orientation */
+ if(tds.Orientation() == TopAbs_REVERSED)
+ V1 *= -1.0;
+
+ gp_Ax2 anAxis( middleParamPoint, gp_Dir(V1));
+ const Standard_Real radius1 = aHeight / 5.0;
+ if(radius1 > 10.0 * Precision::Confusion() && aHeight > 10.0 * Precision::Confusion()) {
+ ArrowCone = BRepPrimAPI_MakeCone( anAxis, radius1, 0.0, aHeight ).Shape();
+ return true;
+ }
+ }
+ catch(Standard_Failure) {
+ // OCC failures are hard to catch in GUI.
+ // This because of the position for #include <Standard_ErrorHandler.hxx> that is very critic to find
+ // in SALOME environment : compilation error !
+ }
+ return false;
+}
+
+
+//=======================================================================
+// function : SelectionByNameInDialogs()
+// purpose : Called when user has entered a name of object in a LineEdit.
+// : The selection is changed. Dialog box will receive the
+// : corresponding signal to manage this event.
+//=======================================================================
+bool GEOMBase::SelectionByNameInDialogs(QWidget* aWidget, const QString& objectUserName, SALOME_Selection* Sel)
+{
+ /* Find SObject with name in component GEOM */
+ SALOMEDS::Study_var ST = myGeomGUI->GetActiveStudy()->getStudyDocument();
+ SALOMEDS::Study::ListOfSObject_var listSO = new SALOMEDS::Study::ListOfSObject;
+ listSO = ST->FindObjectByName(objectUserName, "GEOM");
+
+ if(listSO->length() < 1) {
+ const QString caption = tr("GEOM_WRN_WARNING");
+ const QString text = tr("GEOM_NAME_INCORRECT");
+ const QString button0 = tr("GEOM_BUT_OK");
+ QMessageBox::warning(aWidget, caption, text, button0);
+ return false;
+ }
+ /* More than one object with same name */
+ if(listSO->length() > 1) {
+ const QString caption = tr("GEOM_WRN_WARNING");
+ const QString text = tr("GEOM_IDENTICAL_NAMES_SELECT_BY_MOUSE");
+ const QString button0 = tr("GEOM_BUT_OK") ;
+ QMessageBox::warning(aWidget, caption, text, button0) ;
+ return false;
+ }
+
+ SALOMEDS::SObject_var theObj = listSO[0];
+ /* Create a SALOME_InteractiveObject with a SALOME::SObject */
+ Standard_CString anEntry = theObj->GetID();
+ Handle(SALOME_InteractiveObject) SI = new SALOME_InteractiveObject(anEntry, "GEOM", strdup(objectUserName));
+
+ /* Add as a selected object */
+ /* Clear any previous selection : */
+ /* Warning the LineEdit is purged because of signal currentSelectionChanged ! */
+ Sel->ClearIObjects();
+ Sel->AddIObject(SI);
+ return true;
+}
+
+
+//=====================================================================================
+// function : GetIndexSubShapeSelected()
+// purpose : Define a ListOfID of sub shapes selected in ShapeTopo with SubShapeType
+// : Method used by Dialogs
+//=====================================================================================
+bool GEOMBase::GetIndexSubShapeSelected(const TopoDS_Shape& ShapeTopo, const int SubShapeType, GEOM::GEOM_Shape::ListOfSubShapeID& ListOfID, Standard_Integer& aLocalContextId, bool& myUseLocalContext)
+{
+ //* Test the type of viewer */
+ if(myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getTypeView() > VIEW_OCC)
+ return false;
+
+ OCCViewer_Viewer3d* v3d = ((OCCViewer_ViewFrame*)myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getRightFrame()->getViewFrame())->getViewer();
+ Handle (AIS_InteractiveContext) ic = v3d->getAISContext();
+
+ ic->InitSelected();
+ int nbSelected = ic->NbSelected();
+ ListOfID.length(nbSelected);
+
+ //***************** DEFINE INDEX OF EACH SELECTION *********************//
+ int i = 0;
+ ic->InitSelected(); /* to restart */
+ while(ic->MoreSelected()) {
+ /* Find index of sub shape into main shape */
+ TopExp_Explorer Exp (ShapeTopo, TopAbs_ShapeEnum(SubShapeType));
+ int index = 1;
+ bool found = false;
+ while( Exp.More()) {
+ if((Exp.Current()).IsSame(ic->SelectedShape())) {
+ found = true;
+ break;
+ }
+ index++;
+ Exp.Next();
+ }
+ if(!found) {
+ /* Manage local context from DialogBox */
+ ic->CloseLocalContext(aLocalContextId);
+ myUseLocalContext = false;
+ return false;
+ }
+ ListOfID[i] = index;
+ i++;
+ ic->NextSelected();
+ }
+ //***************** END *********************//
+
+ /* Manage local context from DialogBox */
+ ic->CloseLocalContext(aLocalContextId);
+ myUseLocalContext = false;
+
+ return true;
+}
+
+
+//=======================================================================
+// function : DefineDlgPosition()
+// purpose : Define x and y the default position for a dialog box
+//=======================================================================
+bool GEOMBase::DefineDlgPosition(QWidget* aDlg, int& x, int& y)
+{
+ /* Here the position is on the bottom right corner - 10 */
+ QAD_Desktop* PP = QAD_Application::getDesktop();
+ x = abs(PP->x() + PP->size().width() - aDlg->size().width() - 10);
+ y = abs(PP->y() + PP->size().height() - aDlg->size().height() - 10);
+ return true;
+}
+
+
+//=======================================================================
+// function : ConvertClickToPoint()
+// purpose : Returns the point clicked in 3D view
+//=======================================================================
+gp_Pnt GEOMBase::ConvertClickToPoint(Standard_Real x, Standard_Real y, Handle(V3d_View) aView)
+{
+ V3d_Coordinate XEye, YEye, ZEye, XAt, YAt, ZAt;
+ aView->Eye(XEye, YEye, ZEye);
+
+ aView->At(XAt, YAt, ZAt);
+ gp_Pnt EyePoint(XEye, YEye, ZEye);
+ gp_Pnt AtPoint(XAt, YAt, ZAt);
+
+ gp_Vec EyeVector(EyePoint, AtPoint);
+ gp_Dir EyeDir(EyeVector);
+
+ gp_Pln PlaneOfTheView = gp_Pln(AtPoint,EyeDir);
+ Standard_Real X, Y, Z;
+ aView->Convert(x, y, X, Y, Z);
+ gp_Pnt ConvertedPoint(X, Y, Z);
+
+ gp_Pnt2d ConvertedPointOnPlane = ProjLib::Project(PlaneOfTheView, ConvertedPoint);
+ gp_Pnt ResultPoint = ElSLib::Value(ConvertedPointOnPlane.X(), ConvertedPointOnPlane.Y(), PlaneOfTheView);
+ return ResultPoint;
+}
+
+
+//================================================================================
+// function : SetDisplayedObjectList()
+// purpose :
+//================================================================================
+void GEOMBase::SetDisplayedObjectList()
+{
+ if(myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getTypeView() > VIEW_OCC)
+ return;
+
+ OCCViewer_Viewer3d* v3d = ((OCCViewer_ViewFrame*)myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getRightFrame()->getViewFrame())->getViewer();
+ myGeomGUI->GetListDisplayedObject().Clear();
+
+ Handle (AIS_InteractiveContext) aContext = v3d->getAISContext();
+ aContext->DisplayedObjects(myGeomGUI->GetListDisplayedObject());
+}
+
+
+//=====================================================================================
+// function : DisplaySimulationShape()
+// purpose : Displays 'this->mySimulationShape' a pure graphical shape from a TopoDS_Shape
+//=====================================================================================
+void GEOMBase::DisplaySimulationShape(const TopoDS_Shape& S)
+{
+ if(S.IsNull())
+ return;
+
+ //NRI DEBUG : 14/02/2002
+ if(myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getTypeView() > VIEW_OCC)
+ return;
+
+ OCCViewer_Viewer3d* v3d = ((OCCViewer_ViewFrame*)myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getRightFrame()->getViewFrame())->getViewer();
+ Handle(AIS_InteractiveContext) ic = v3d->getAISContext();
+
+ try {
+ /* erase any previous */
+ ic->Erase(myGeomGUI->GetSimulationShape(), Standard_True, Standard_False);
+ ic->ClearPrs(myGeomGUI->GetSimulationShape());
+ myGeomGUI->GetSimulationShape() = new AIS_Shape(TopoDS_Shape());
+ myGeomGUI->GetSimulationShape()->Set(S);
+ myGeomGUI->GetSimulationShape()->SetColor(Quantity_NOC_VIOLET);
+ ic->Deactivate(myGeomGUI->GetSimulationShape());
+ ic->Display(myGeomGUI->GetSimulationShape(), Standard_False);
+ ic->UpdateCurrentViewer();
+ }
+ catch(Standard_Failure) {
+ MESSAGE("Exception catched in GEOMBase::DisplaySimulationShape ");
+ }
+ myGeomGUI->GetSimulationShape()->UnsetColor();
+ return;
+}
+
+
+//==================================================================================
+// function : EraseSimulationShape()
+// purpose : Clears the display of 'mySimulationShape' a pure graphical shape
+//==================================================================================
+void GEOMBase::EraseSimulationShape()
+{
+ int count = myGeomGUI->GetActiveStudy()->getStudyFramesCount();
+ for(int i = 0; i < count; i++) {
+ if(myGeomGUI->GetActiveStudy()->getStudyFrame(i)->getTypeView() == VIEW_OCC) {
+ OCCViewer_Viewer3d* v3d = ((OCCViewer_ViewFrame*)myGeomGUI->GetActiveStudy()->getStudyFrame(i)->getRightFrame()->getViewFrame())->getViewer();
+ Handle(AIS_InteractiveContext) ic = v3d->getAISContext();
+ ic->Erase(myGeomGUI->GetSimulationShape(), Standard_True, Standard_False);
+ ic->ClearPrs(myGeomGUI->GetSimulationShape());
+ ic->UpdateCurrentViewer();
+ }
+ }
+}
+
+
+//=====================================================================================
+// function : Display()
+// purpose : Displays a CORBA shape
+//=====================================================================================
+bool GEOMBase::Display(GEOM::GEOM_Shape_ptr aShape, Standard_CString name)
+{
+ // MESSAGE ( "GEOMBase::Display init ")
+ Handle(GEOM_InteractiveObject) IO;
+ SALOME_Selection* Sel = SALOME_Selection::Selection(myGeomGUI->GetActiveStudy()->getSelection());
+ Sel->ClearIObjects();
+
+ if(aShape->_is_nil()) {
+ QAD_MessageBox::warn1 (QAD_Application::getDesktop(), tr("GEOM_WRN_WARNING"), tr("GEOM_PRP_ABORT"), tr("GEOM_BUT_OK"));
+ return false;
+ }
+
+ TopoDS_Shape shape = myGeomGUI->GetShapeReader().GetShape(myGeom, aShape);
+ if(shape.IsNull())
+ return false;
+
+ SALOMEDS::Study_var aStudy = myGeomGUI->GetActiveStudy()->getStudyDocument();
+ SALOMEDS::StudyBuilder_var aStudyBuilder = aStudy->NewBuilder();
+ SALOMEDS::GenericAttribute_var anAttr;
+ SALOMEDS::AttributeName_var aName;
+ SALOMEDS::AttributePixMap_var aPixmap;
+
+ SALOMEDS::SComponent_var father = aStudy->FindComponent("GEOM");
+ int aLocked = false;
+ if(father->_is_nil()) {
+ QAD_Operation* op = new SALOMEGUI_ImportOperation(myGeomGUI->GetActiveStudy());
+ op->start();
+ aLocked = aStudy->GetProperties()->IsLocked();
+ if(aLocked)
+ aStudy->GetProperties()->SetLocked(false);
+ father = aStudyBuilder->NewComponent("GEOM");
+ anAttr = aStudyBuilder->FindOrCreateAttribute(father, "AttributeName");
+ aName = SALOMEDS::AttributeName::_narrow(anAttr);
+ aName->SetValue(QAD_Application::getDesktop()->getComponentUserName("GEOM"));
+ anAttr = aStudyBuilder->FindOrCreateAttribute(father, "AttributePixMap");
+ aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
+ aPixmap->SetPixMap("ICON_OBJBROWSER_Geometry");
+ myGeomGUI->GetActiveStudy()->updateObjBrowser();
+ if(aLocked)
+ aStudy->GetProperties()->SetLocked(true);
+ op->finish();
+ }
+
+ aStudyBuilder->DefineComponentInstance(father, myGeom);
+ father->ComponentIOR(myGeomGUI->GetFatherior());
+
+ TCollection_AsciiString nameG("");
+ Standard_CString Type;
+ if(TCollection_AsciiString(name).IsEqual(Standard_CString(""))) {
+ if(TCollection_AsciiString(aShape->NameType()).IsEqual(Standard_CString(""))) {
+ Standard_CString type;
+ GetShapeTypeString(shape,type);
+ aShape->NameType(type);
+ nameG += TCollection_AsciiString(type) + TCollection_AsciiString("_") + TCollection_AsciiString(myGeomGUI->GetNbGeom()++) + TCollection_AsciiString("\0");
+ }
+ else
+ nameG += TCollection_AsciiString(aShape->NameType()) + TCollection_AsciiString("_") + TCollection_AsciiString(myGeomGUI->GetNbGeom()++) + TCollection_AsciiString("\0");
+ }
+ else
+ nameG = TCollection_AsciiString(name);
+
+ // VTK
+ if(myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getTypeView() == VIEW_VTK) {
+ VTKViewer_RenderWindowInteractor* myRenderInter = ((VTKViewer_ViewFrame*)myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getRightFrame()->getViewFrame())->getRWInteractor();
+
+ vtkRenderer *theRenderer = ((VTKViewer_ViewFrame*)myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getRightFrame()->getViewFrame())->getRenderer();
+ int themode = myRenderInter->GetDisplayMode();
+
+ vtkActorCollection* theActors = GEOM_AssemblyBuilder::BuildActors(shape, 0, themode, Standard_True);
+ theActors->InitTraversal();
+ vtkActor* anActor = (vtkActor*)theActors->GetNextActor();
+
+ IO = new GEOM_InteractiveObject(aShape->Name(), myGeomGUI->GetFatherior(), "GEOM");
+ while(!(anActor==NULL)) {
+ GEOM_Actor* GActor = GEOM_Actor::SafeDownCast(anActor);
+ GActor->setIO(IO);
+ GActor->setName(nameG.ToCString());
+
+ theRenderer->AddActor(GActor);
+ anActor = (vtkActor*)theActors->GetNextActor();
+ }
+ }
+ // OCC
+ else if(myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getTypeView() == VIEW_OCC) {
+ OCCViewer_Viewer3d* v3d = ((OCCViewer_ViewFrame*)myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getRightFrame()->getViewFrame())->getViewer();
+ Handle(AIS_InteractiveContext) ic = v3d->getAISContext();
+ Handle(GEOM_AISShape) theResult = new GEOM_AISShape(shape, nameG.ToCString());
+ theResult->SetShadingColor(myGeomGUI->GetShadingColor());
+ IO = new GEOM_InteractiveObject(aShape->Name(), myGeomGUI->GetFatherior(), "GEOM");
+ theResult->setIO(IO);
+ theResult->setName(nameG.ToCString());
+
+ /* Precaution : close any local context to permit the display */
+ if(ic->HasOpenedContext())
+ ic->CloseAllContexts();
+
+ ic->Display(theResult);
+ }
+
+ Sel->AddIObject(IO, false);
+ myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getRightFrame()->getViewFrame()->Repaint();
+ if(myGeomGUI->GetSettings_AddInStudy())
+ AddInStudy(false, IO);
+
+ return true;
+}
+
+
+//=====================================================================================
+// function : AddInStudy()
+// purpose : anIOShape or a selected shape
+//=====================================================================================
+bool GEOMBase::AddInStudy(bool selection, const Handle(SALOME_InteractiveObject)& anIO)
+{
+ SALOME_Selection* Sel = SALOME_Selection::Selection(myGeomGUI->GetActiveStudy()->getSelection());
+ if (!(!myGeomGUI->GetSettings_AddInStudy() || selection)) {
+ Sel->ClearIObjects();
+ }
+
+ SALOMEDS::Study_var aStudy = myGeomGUI->GetActiveStudy()->getStudyDocument();
+ SALOMEDS::StudyBuilder_var aStudyBuilder = aStudy->NewBuilder();
+ SALOMEDS::GenericAttribute_var anAttr;
+ SALOMEDS::AttributeName_var aName;
+ SALOMEDS::AttributePixMap_var aPixmap;
+ SALOMEDS::AttributeIOR_var anIOR;
+ SALOMEDS::AttributeSelectable_var aSelAttr;
+
+ SALOMEDS::SComponent_var father = aStudy->FindComponent("GEOM");
+ int aLocked = false;
+ if(father->_is_nil()) {
+ QAD_Operation* op = new SALOMEGUI_ImportOperation(myGeomGUI->GetActiveStudy());
+ op->start();
+ aLocked = aStudy->GetProperties()->IsLocked();
+ if(aLocked)
+ aStudy->GetProperties()->SetLocked(false);
+ father = aStudyBuilder->NewComponent("GEOM");
+ anAttr = aStudyBuilder->FindOrCreateAttribute(father, "AttributeName");
+ aName = SALOMEDS::AttributeName::_narrow(anAttr);
+ aName->SetValue( QAD_Application::getDesktop()->getComponentUserName("GEOM"));
+ anAttr = aStudyBuilder->FindOrCreateAttribute(father, "AttributePixMap");
+ aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
+ aPixmap->SetPixMap("ICON_OBJBROWSER_Geometry");
+ if (aLocked)
+ aStudy->GetProperties()->SetLocked(true);
+ op->finish();
+ }
+
+ aStudyBuilder->DefineComponentInstance(father, myGeom);
+ father->ComponentIOR(myGeomGUI->GetFatherior());
+
+ SALOMEDS::SObject_var fatherSF = aStudy->FindObjectID(myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->entry());
+
+ Handle(GEOM_AISShape) GAISShape;
+ GEOM_Actor* GActor;
+ Handle(GEOM_InteractiveObject) GIO;
+ bool found = false;
+
+ // VTK
+ if (myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getTypeView() == VIEW_VTK) {
+ vtkRenderer *Renderer = ((VTKViewer_ViewFrame*)myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getRightFrame()->getViewFrame())->getRenderer();
+
+ vtkActorCollection* theActors = Renderer->GetActors();
+ theActors->InitTraversal();
+ vtkActor *ac = theActors->GetNextActor();
+ while(!(ac==NULL)) {
+ if(ac->IsA("GEOM_Actor")) {
+ GEOM_Actor* anActor = GEOM_Actor::SafeDownCast(ac);
+ if(anActor->hasIO()) {
+ Handle(SALOME_InteractiveObject) IO = anActor->getIO();
+ if(IO->IsKind(STANDARD_TYPE(GEOM_InteractiveObject))) {
+ GIO = Handle(GEOM_InteractiveObject)::DownCast(IO);
+ if(anIO->isSame(GIO)) {
+ found = true;
+ GActor = anActor;
+ break;
+ }
+ }
+ }
+ }
+ ac = theActors->GetNextActor();
+ }
+
+ if(!found)
+ return false;
+ }
+ // OCC
+ else if(myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getTypeView() == VIEW_OCC) {
+ OCCViewer_Viewer3d* v3d = ((OCCViewer_ViewFrame*)myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getRightFrame()->getViewFrame())->getViewer();
+ Handle (AIS_InteractiveContext) ic = v3d->getAISContext();
+
+ AIS_ListOfInteractive List;
+ ic->DisplayedObjects(List);
+ AIS_ListIteratorOfListOfInteractive ite(List);
+ while(ite.More()) {
+ if(ite.Value()->IsInstance(STANDARD_TYPE(GEOM_AISShape))) {
+ Handle(GEOM_AISShape) aSh = Handle(GEOM_AISShape)::DownCast(ite.Value());
+ if(aSh->hasIO()) {
+ Handle(SALOME_InteractiveObject) IO = aSh->getIO();
+ if ( IO->IsKind(STANDARD_TYPE(GEOM_InteractiveObject))) {
+ GIO = Handle(GEOM_InteractiveObject)::DownCast(IO);
+ if(anIO->isSame(GIO)) {
+ found = true;
+ GAISShape = aSh;
+ break;
+ }
+ }
+ }
+ }
+ ite.Next();
+ }
+
+ if(!found)
+ return false;
+ }
+
+ if(!myGeomGUI->GetSettings_AddInStudy() || selection) {
+ QString Name = SALOMEGUI_NameDlg::getName(QAD_Application::getDesktop(), anIO->getName());
+ if(!Name.isEmpty()) {
+ // VTK
+ if(myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getTypeView() == VIEW_VTK)
+ GActor->setName(strdup(Name.latin1()));
+ // OCC
+ else if(myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getTypeView() == VIEW_OCC)
+ GAISShape->setName(strdup(Name.latin1()));
+ }
+ else
+ return false;
+ }
+
+ // open transaction
+ QAD_Operation* op = new SALOMEGUI_ImportOperation(myGeomGUI->GetActiveStudy());
+ op->start();
+
+ SALOMEDS::SObject_var newObj = aStudyBuilder->NewObject(father);
+
+ GEOM::GEOM_Shape_var aShape = myGeom->GetIORFromString(GIO->getIOR());
+
+ /* For the shape inserted into the study we set its field 'studyshapeid' */
+ /* so the shape will contain its corresponding entry in the study Ocaf doc. */
+ aShape->StudyShapeId(newObj->GetID());
+
+ GIO->setEntry(newObj->GetID());
+
+ anAttr = aStudyBuilder->FindOrCreateAttribute(newObj, "AttributeIOR");
+ anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
+ anIOR->SetValue(aShape->Name());
+
+ anAttr = aStudyBuilder->FindOrCreateAttribute(newObj, "AttributeName");
+ aName = SALOMEDS::AttributeName::_narrow(anAttr);
+
+ anAttr = aStudyBuilder->FindOrCreateAttribute(newObj, "AttributePixMap");
+ aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
+ if(aShape->ShapeType() == GEOM::COMPOUND)
+ aPixmap->SetPixMap("ICON_OBJBROWSER_COMPOUND");
+ else if(aShape->ShapeType() == GEOM::COMPSOLID)
+ aPixmap->SetPixMap("ICON_OBJBROWSER_COMPSOLID");
+ else if(aShape->ShapeType() == GEOM::SOLID)
+ aPixmap->SetPixMap("ICON_OBJBROWSER_SOLID");
+ else if(aShape->ShapeType() == GEOM::SHELL)
+ aPixmap->SetPixMap("ICON_OBJBROWSER_SHELL");
+ else if(aShape->ShapeType() == GEOM::FACE)
+ aPixmap->SetPixMap("ICON_OBJBROWSER_FACE");
+ else if(aShape->ShapeType() == GEOM::WIRE)
+ aPixmap->SetPixMap("ICON_OBJBROWSER_WIRE");
+ else if(aShape->ShapeType() == GEOM::EDGE)
+ aPixmap->SetPixMap("ICON_OBJBROWSER_EDGE");
+ else if(aShape->ShapeType() == GEOM::VERTEX)
+ aPixmap->SetPixMap("ICON_OBJBROWSER_VERTEX");
+
+ // VTK
+ if(myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getTypeView() == VIEW_VTK) {
+ GActor->setIO(GIO);
+ aName->SetValue(GActor->getName());
+ }
+ // OCC
+ else if(myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getTypeView() == VIEW_OCC) {
+ GAISShape->setIO(GIO);
+ aName->SetValue(GAISShape->getName());
+ }
+
+ SALOMEDS::SObject_var newObj1 = aStudyBuilder->NewObject(fatherSF);
+ aStudyBuilder->Addreference(newObj1,newObj);
+
+ GEOM::GEOM_Gen::ListOfIOR_var listIOR = new GEOM::GEOM_Gen::ListOfIOR;
+ listIOR = myGeom->GetReferencedObjects(aShape);
+
+ if(listIOR->length()>0) {
+ SALOMEDS::SObject_var Arguments = aStudyBuilder->NewObject(newObj);
+ anAttr = aStudyBuilder->FindOrCreateAttribute(Arguments, "AttributeName");
+ aName = SALOMEDS::AttributeName::_narrow(anAttr);
+ aName->SetValue(tr("GEOM_ARGUMENTS"));
+ anAttr = aStudyBuilder->FindOrCreateAttribute(Arguments, "AttributeSelectable");
+ aSelAttr = SALOMEDS::AttributeSelectable::_narrow(anAttr);
+ aSelAttr->SetSelectable(false);
+
+ bool ObjectReferenced = false;
+ for (unsigned int ind = 0; ind < listIOR->length();ind++) {
+ SALOMEDS::SObject_var theObj = aStudy->FindObjectIOR(listIOR[ind]);
+
+ if(!theObj->_is_nil()) {
+ SALOMEDS::SObject_var RefObject = aStudyBuilder->NewObject(Arguments);
+ aStudyBuilder->Addreference(RefObject, theObj);
+ ObjectReferenced = true;
+ }
+ }
+
+ if(!ObjectReferenced)
+ aStudyBuilder->RemoveObject(Arguments);
+ }
+ op->finish();
+
+ if(!myGeomGUI->GetSettings_AddInStudy() || selection)
+ myGeomGUI->GetActiveStudy()->updateObjBrowser();
+ else {
+ myGeomGUI->GetActiveStudy()->updateObjBrowser(false);
+ Sel->AddIObject(GIO);
+ }
+ return true;
+}
+
+
+//=====================================================================================
+// function : GetShapeFromIOR()
+// purpose : exist also as static method !
+//=====================================================================================
+TopoDS_Shape GEOMBase::GetShapeFromIOR(QString IOR)
+{
+ TopoDS_Shape result;
+ if(IOR.stripWhiteSpace().isEmpty())
+ return result;
+ ORB_INIT &init = *SINGLETON_<ORB_INIT>::Instance();
+ CORBA::ORB_var& _orb = init.orb() ;
+ CORBA::Object_var obj = _orb->string_to_object((char*)(IOR.latin1()));
+ if(CORBA::is_nil(obj))
+ return result;
+ GEOM::GEOM_Shape_var aShape = myGeom->GetIORFromString(IOR);
+ if(!aShape->_is_nil())
+ result = myGeomGUI->GetShapeReader().GetShape(myGeom, aShape);
+ return result;
+}
+
+
+//=======================================================================
+// function : Parameter()
+// purpose : return a parameter (float) from a dialog box
+//
+// avalue1 : is a float or integer used as a default value displayed
+// aTitle1 : is the title for aValue1
+// aTitle : is the main title
+// bottom : maximum value to be entered
+// top : minimum value to be entered
+// decimals : number of decimals
+//=======================================================================
+double GEOMBase::Parameter(Standard_Boolean& res, const char* aValue1, const char* aTitle1, const char* aTitle, const double bottom, const double top, const int decimals)
+{
+ GEOMBase_aParameterDlg * Dialog = new GEOMBase_aParameterDlg(aValue1, aTitle1, QAD_Application::getDesktop(), aTitle, TRUE, 0, bottom, top, decimals);
+ int r = Dialog->exec();
+ float X = 0.0;
+ if(r == QDialog::Accepted) {
+ res = Standard_True;
+ X = Dialog->getValue();
+ }
+ else
+ res = Standard_False;
+ delete Dialog;
+ return X;
+}
+
+
+//=====================================================================================
+// function : SObjectExist()
+// purpose :
+//=====================================================================================
+bool GEOMBase::SObjectExist(SALOMEDS::SObject_ptr theFatherObject, const char* IOR)
+{
+ SALOMEDS::Study_var aStudy = myGeomGUI->GetActiveStudy()->getStudyDocument();
+ SALOMEDS::ChildIterator_var it = aStudy->NewChildIterator(theFatherObject);
+ SALOMEDS::SObject_var RefSO;
+ SALOMEDS::GenericAttribute_var anAttr;
+ SALOMEDS::AttributeIOR_var anIOR;
+ for(; it->More();it->Next()) {
+ SALOMEDS::SObject_var SO= it->Value();
+ if(SO->FindAttribute(anAttr, "AttributeIOR")) {
+ anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
+ if(strcmp( anIOR->Value(), IOR ) == 0)
+ return true;
+ }
+ if(SO->ReferencedObject(RefSO)) {
+ if(RefSO->FindAttribute(anAttr, "AttributeIOR")) {
+ anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
+ if(strcmp(anIOR->Value(), IOR) == 0)
+ return true;
+ }
+ }
+ }
+ return false;
+}
--- /dev/null
+// GEOM GEOMGUI : GUI for Geometry component
+//
+// 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 : GEOMBase.h
+// Author : Damien COQUERET
+// Module : GEOM
+// $Header:
+
+#ifndef GEOMBASE_H
+#define GEOMBASE_H
+
+#include "GEOMContext.h"
+
+#include "SALOME_Selection.h"
+#include <V3d_View.hxx>
+
+//=================================================================================
+// class : GEOMBase
+// purpose :
+//=================================================================================
+class GEOMBase : public QObject
+{
+ Q_OBJECT /* for QT compatibility */
+
+public :
+ GEOMBase();
+ ~GEOMBase();
+
+ bool AddInStudy(bool selection = false, const Handle(SALOME_InteractiveObject)& anIO = 0);
+
+ bool VertexToPoint(const TopoDS_Shape& S, gp_Pnt& P);
+ bool LinearEdgeExtremities(const TopoDS_Shape& S, gp_Pnt& P1, gp_Pnt& P2);
+ gp_Pnt ConvertClickToPoint(Standard_Real x, Standard_Real y, Handle(V3d_View) aView);
+ void GetBipointDxDyDz(gp_Pnt P1, gp_Pnt P2, double& dx, double& dy, double& dz);
+ /* User dialog 1 parameter returned */
+ double Parameter(Standard_Boolean& res,
+ const char* aValue1 = 0, const char* aTitle1 = 0,
+ const char* aTitle = 0, const double bottom = -1E6,
+ const double top = +1E6, const int decimals = 6);
+
+ bool DefineDlgPosition(QWidget* aDlg, int& x, int& y);
+ bool SObjectExist(SALOMEDS::SObject_ptr theFatherObject, const char* IOR);
+
+ /* Selection and objects management */
+ TopoDS_Shape GetShapeFromIOR(QString IOR);
+ bool GetTopoFromSelection(SALOME_Selection *Sel, TopoDS_Shape& tds);
+ int GetNameOfSelectedIObjects(SALOME_Selection* Sel, QString& aName);
+ bool GetShapeTypeString(const TopoDS_Shape& aShape, Standard_CString& aTypeString);
+
+ GEOM::GEOM_Shape_ptr ConvertIOinGEOMShape(const Handle(SALOME_InteractiveObject)& IO,
+ Standard_Boolean& testResult);
+ Handle(GEOM_AISShape) ConvertIOinGEOMAISShape(const Handle(SALOME_InteractiveObject)& IO,
+ Standard_Boolean& testResult,
+ bool onlyInActiveView = false);
+ Handle(GEOM_AISShape) ConvertIORinGEOMAISShape(const char * IOR,
+ Standard_Boolean& testResult,
+ bool onlyInActiveView = false);
+ GEOM_Actor* ConvertIORinGEOMActor(const char * IOR, Standard_Boolean& testResult,
+ bool onlyInActiveView = false);
+ void ConvertListOfIOInListOfIOR(const SALOME_ListIO& aList,
+ GEOM::GEOM_Gen::ListOfIOR& listIOR);
+
+ /* Method used by dialog boxes called when used has entered a name of object in a LineEdit */
+ bool SelectionByNameInDialogs(QWidget* aWidget, const QString& userObjectName, SALOME_Selection *Sel);
+
+ int GetIndex(const TopoDS_Shape& subshape, const TopoDS_Shape& shape, int ShapeType);
+ /* Define a list of indices of sub shapes selected in a local context */
+ bool GetIndexSubShapeSelected(const TopoDS_Shape& ShapeTopo, const int SubShapeType,
+ GEOM::GEOM_Shape::ListOfSubShapeID& ListOfID,
+ Standard_Integer& aLocalContextId, bool& myUseLocalContext);
+
+ void SetDisplayedObjectList();
+ bool Display(GEOM::GEOM_Shape_ptr aShape, Standard_CString name = "");
+
+ /* Simulation management */
+ bool CreateArrowForLinearEdge(const TopoDS_Shape& tds, TopoDS_Shape& ArrowCone);
+ void DisplaySimulationShape(const TopoDS_Shape& S);
+ void EraseSimulationShape();
+
+ GEOMContext* myGeomGUI;
+ GEOM::GEOM_Gen_var myGeom; /* Current Geom Component */
+
+};
+
+#endif
+
--- /dev/null
+// GEOM GEOMGUI : GUI for Geometry component
+//
+// 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 : GEOMBase_Skeleton.cxx
+// Author : Damien COQUERET
+// Module : GEOM
+// $Header:
+
+using namespace std;
+#include "GEOMBase_Skeleton.h"
+
+//=================================================================================
+// class : GEOMBase_Skeleton()
+// purpose : Constructs a GEOMBase_Skeleton which is a child of 'parent', with the
+// name 'name' and widget flags set to 'f'.
+// The dialog will by default be modeless, unless you set 'modal' to
+// TRUE to construct a modal dialog.
+//=================================================================================
+GEOMBase_Skeleton::GEOMBase_Skeleton(QWidget* parent, const char* name, SALOME_Selection* Sel, bool modal, WFlags fl)
+ :DlgRef_Skeleton_QTD(parent, name, modal, fl)
+{
+ if (!name)
+ setName("GEOMBase_Skeleton");
+
+ buttonCancel->setText(tr("GEOM_BUT_CLOSE"));
+ buttonOk->setText(tr("GEOM_BUT_OK"));
+ buttonApply->setText(tr("GEOM_BUT_APPLY"));
+
+ GroupMedium->close(TRUE);
+ resize(0, 0);
+
+ Init(Sel);
+}
+
+
+//=================================================================================
+// function : ~GEOMBase_Skeleton()
+// purpose : Destroys the object and frees any allocated resources
+//=================================================================================
+GEOMBase_Skeleton::~GEOMBase_Skeleton()
+{
+ // no need to delete child widgets, Qt does it all for us
+ this->destroy(TRUE, TRUE);
+}
+
+
+//=================================================================================
+// function : Init()
+// purpose :
+//=================================================================================
+void GEOMBase_Skeleton::Init(SALOME_Selection* Sel)
+{
+ /* init variables */
+ mySelection = Sel;
+ mySimulationTopoDs.Nullify();
+
+ myGeomBase = new GEOMBase();
+ myGeomGUI = GEOMContext::GetGeomGUI();
+ myGeomGUI->SetActiveDialogBox((QDialog*)this);
+// Engines::Component_var comp = QAD_Application::getDesktop()->getEngine("FactoryServer", "GEOM");
+// myGeom = GEOM::GEOM_Gen::_narrow(comp);
+ myGeom = myGeomGUI->myComponentGeom;
+
+ /* signals and slots connections */
+ connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
+ connect(myGeomGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
+ connect(myGeomGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(ClickOnCancel()));
+
+ /* Move widget on the botton right corner of main widget */
+// int x, y;
+// myGeomGUI->DefineDlgPosition( this, x, y );
+
+ /* displays Dialog */
+ RadioButton1->setChecked(TRUE);
+
+ return;
+}
+
+
+//=================================================================================
+// function : ClickOnCancel()
+// purpose :
+//=================================================================================
+void GEOMBase_Skeleton::ClickOnCancel()
+{
+ myGeomBase->EraseSimulationShape();
+ mySimulationTopoDs.Nullify();
+
+ mySelection->ClearFilters();
+ disconnect(mySelection, 0, this, 0);
+
+ myGeomGUI->ResetState();
+ reject();
+
+ return;
+}
+
+
+//=================================================================================
+// function : LineEditReturnPressed()
+// purpose :
+//=================================================================================
+void GEOMBase_Skeleton::LineEditReturnPressed()
+{
+ /* User name of object input management */
+ /* If successfull the selection is changed and signal emitted... */
+ /* so SelectionIntoArgument() is automatically called. */
+ const QString objectUserName = myEditCurrentArgument->text();
+ QWidget* thisWidget = (QWidget*)this;
+ if(myGeomBase->SelectionByNameInDialogs(thisWidget, objectUserName, mySelection))
+ myEditCurrentArgument->setText(objectUserName);
+
+ return;
+}
+
+
+//=================================================================================
+// function : DeactivateActiveDialog()
+// purpose :
+//=================================================================================
+void GEOMBase_Skeleton::DeactivateActiveDialog()
+{
+ this->setEnabled(false);
+ mySelection->ClearFilters();
+ disconnect(mySelection, 0, this, 0);
+ myGeomBase->EraseSimulationShape();
+ myGeomGUI->SetActiveDialogBox(0);
+ return;
+}
+
+
+//=================================================================================
+// function : ActivateThisDialog()
+// purpose :
+//=================================================================================
+void GEOMBase_Skeleton::ActivateThisDialog()
+{
+ /* Emit a signal to deactivate the active dialog */
+ myGeomGUI->EmitSignalDeactivateDialog();
+ this->setEnabled(true);
+ myGeomGUI->SetActiveDialogBox((QDialog*)this);
+ return;
+}
+
+
+//=================================================================================
+// function : closeEvent()
+// purpose :
+//=================================================================================
+void GEOMBase_Skeleton::closeEvent(QCloseEvent* e)
+{
+ /* same than click on cancel button */
+ this->ClickOnCancel();
+ return;
+}
--- /dev/null
+// GEOM GEOMGUI : GUI for Geometry component
+//
+// 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 : GEOMBase_Skeleton.h
+// Author : Damine COQUERET
+// Module : GEOM
+// $Header:
+
+#ifndef GEOMBASE_SKELETON_H
+#define GEOMBASE_SKELETON_H
+
+#include "DlgRef_Skeleton_QTD.h"
+
+#include "GEOMBase.h"
+
+#include <qwidget.h>
+#include <qgroupbox.h>
+#include <qlineedit.h>
+#include <qlayout.h>
+#include <qradiobutton.h>
+#include <qbuttongroup.h>
+
+class GEOMBase_Skeleton : public DlgRef_Skeleton_QTD
+{
+ Q_OBJECT
+
+public:
+ GEOMBase_Skeleton(QWidget* parent = 0, const char* name = 0, SALOME_Selection* Sel = 0, bool modal = FALSE, WFlags fl = 0);
+ ~GEOMBase_Skeleton();
+
+private :
+ void Init(SALOME_Selection* Sel);
+
+protected:
+ void closeEvent(QCloseEvent* e);
+
+ TopoDS_Shape mySimulationTopoDs; /* Shape used for simulation display */
+ QLineEdit* myEditCurrentArgument; /* Current LineEdit */
+ SALOME_Selection* mySelection; /* User shape selection */
+ GEOM::GEOM_Gen_var myGeom; /* Current GeomI object */
+ GEOMBase* myGeomBase;
+ GEOMContext* myGeomGUI; /* Current GeomGUI object */
+
+protected slots:
+ void ClickOnCancel();
+ void LineEditReturnPressed();
+ void DeactivateActiveDialog();
+ void ActivateThisDialog();
+
+};
+
+#endif // GEOMBASE_SKELETON_H
--- /dev/null
+// GEOM GEOMGUI : GUI for Geometry component
+//
+// 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 : GEOMBase_Sketcher.cxx
+// Author : Damien COQUERET
+// Module : GEOM
+// $Header:
+
+using namespace std;
+#include "GEOMBase_Sketcher.h"
+
+#include "QAD_RightFrame.h"
+#include "OCCViewer_Viewer3d.h"
+#include "SALOMEGUI_QtCatchCorbaException.hxx"
+
+#include <BRepTools_WireExplorer.hxx>
+#include <TopoDS_Wire.hxx>
+#include <BRep_Tool.hxx>
+#include <TopExp.hxx>
+#include <Geom_Circle.hxx>
+#include <Precision.hxx>
+
+//=======================================================================
+// function : GEOMBase_Sketcher()
+// purpose : Constructor
+//=======================================================================
+GEOMBase_Sketcher::GEOMBase_Sketcher() :
+ QObject()
+{
+ myGeomBase = new GEOMBase();
+ myGeomGUI = GEOMContext::GetGeomGUI();
+// Engines::Component_var comp = myGeomGUI->GetDesktop()->getEngine("FactoryServer", "GEOM");
+// myGeom = GEOM::GEOM_Gen::_narrow(comp);
+ myGeom = myGeomGUI->myComponentGeom;
+ mySketcher = myGeomGUI->GetSketcher();
+}
+
+
+//=======================================================================
+// function : ~GEOMBase_Sketcher()
+// purpose : Destructor
+//=======================================================================
+GEOMBase_Sketcher::~GEOMBase_Sketcher()
+{
+}
+
+
+//=======================================================================
+// function : OnGUIEvent()
+// purpose :
+//=======================================================================
+bool GEOMBase_Sketcher::OnGUIEvent(int theCommandID, QAD_Desktop* parent)
+{
+ if(myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getTypeView() > VIEW_OCC)
+ return false;
+
+ myGeomGUI->EmitSignalDeactivateDialog();
+ SALOME_Selection* Sel = SALOME_Selection::Selection(myGeomGUI->GetActiveStudy()->getSelection());
+
+ QMenuBar* Mb = myGeomGUI->GetDesktop()->getMainMenuBar();
+ QMenuData* pp;
+
+ switch (theCommandID)
+ {
+ case 404: // SKETCHER
+ {
+ ((OCCViewer_ViewFrame*)myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getRightFrame()->getViewFrame())->onViewTop(); // DCQ : 28/02/2002
+
+ OCCViewer_Viewer3d* v3d = ((OCCViewer_ViewFrame*)myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getRightFrame()->getViewFrame())->getViewer();
+
+ mySketcher = Sketch(v3d->getViewer3d());
+ myGeomGUI->SetState(CURRENT_SKETCH);
+
+ QMenuItem* item = Mb->findItem(4061, &pp);
+ mySketcher.SetParameterVisibility(LENGTH_PARAMETER, pp->isItemChecked(4061));
+ item = Mb->findItem(4062, &pp);
+ mySketcher.SetParameterVisibility(ANGLE_PARAMETER, pp->isItemChecked(4062));
+ item = Mb->findItem(4063, &pp);
+ mySketcher.SetParameterVisibility(RADIUS_PARAMETER, pp->isItemChecked(4063));
+ item = Mb->findItem(4064, &pp);
+ mySketcher.SetParameterVisibility(XVALUE_PARAMETER, pp->isItemChecked(4064));
+ item = Mb->findItem(4065, &pp);
+ mySketcher.SetParameterVisibility(YVALUE_PARAMETER, pp->isItemChecked(4065));
+
+ mySketcher.SetTransitionStatus(NOCONSTRAINT);
+ item = Mb->findItem(4052, &pp);
+ pp->setItemChecked(4052, false);
+ item = Mb->findItem(4053, &pp);
+ pp->setItemChecked(4053, false);
+ break;
+ }
+ case 4041: // SKETCH Segment
+ {
+ mySketcher.ChangeMode(SEGMENT);
+ break;
+ }
+ case 4042: // SKETCH Arc
+ {
+ mySketcher.ChangeMode(ARC_CHORD);
+ break;
+ }
+ case 4043: // SKETCH Set Angle
+ {
+ OnSketchSetAngle();
+ break;
+ }
+ case 4044: // SKETCH Set X
+ {
+ OnSketchSetx();
+ break;
+ }
+ case 4045: // SKETCH Set Y
+ {
+ OnSketchSety();
+ break;
+ }
+ case 4046: // SKETCH Delete
+ {
+ OnSketchDelete();
+ break;
+ }
+ case 4047: // SKETCH End
+ {
+ OnSketchEnd();
+ break;
+ }
+ case 4048: // SKETCH Close
+ {
+ OnSketchClose();
+ break;
+ }
+ case 4051: // sketcher Set Plane
+ {
+ //TO DO
+ break;
+ }
+ case 4052: // sketcher TANGENT
+ {
+ QMenuItem* item = Mb->findItem(theCommandID, &pp);
+ pp->setItemChecked(theCommandID, !pp->isItemChecked(theCommandID));
+ if(pp->isItemChecked(theCommandID) == true)
+ mySketcher.SetTransitionStatus(TANGENT);
+ else
+ mySketcher.SetTransitionStatus(NOCONSTRAINT);
+
+ pp->setItemChecked(4053, false);
+ break;
+ }
+ case 4053: // sketcher PERPENDICULAR
+ {
+ QMenuItem* item = Mb->findItem(theCommandID, &pp);
+ pp->setItemChecked(theCommandID,!pp->isItemChecked(theCommandID));
+ if(pp->isItemChecked(theCommandID) == true)
+ mySketcher.SetTransitionStatus(PERPENDICULAR);
+ else
+ mySketcher.SetTransitionStatus(NOCONSTRAINT);
+
+ pp->setItemChecked(4052, false);
+ break;
+ }
+ case 4061: // SKETCH OptionsOnofflengthdimension
+ {
+ QMenuItem* item = Mb->findItem(theCommandID, &pp);
+ pp->setItemChecked(theCommandID, !pp->isItemChecked(theCommandID));
+ mySketcher.SetParameterVisibility(LENGTH_PARAMETER, pp->isItemChecked(theCommandID));
+ break;
+ }
+ case 4062: // SKETCH OptionsOnoffangledimension
+ {
+ QMenuItem* item = Mb->findItem(theCommandID, &pp);
+ pp->setItemChecked(theCommandID, !pp->isItemChecked(theCommandID));
+ mySketcher.SetParameterVisibility(ANGLE_PARAMETER, pp->isItemChecked(theCommandID));
+ break;
+ }
+ case 4063: // SKETCH OptionsOnoffradiusdimension
+ {
+ QMenuItem* item = Mb->findItem(theCommandID, &pp);
+ pp->setItemChecked(theCommandID, !pp->isItemChecked(theCommandID));
+ mySketcher.SetParameterVisibility(RADIUS_PARAMETER, pp->isItemChecked(theCommandID));
+ break;
+ }
+ case 4064: // SKETCH OptionsOnoffxdimension
+ {
+ QMenuItem* item = Mb->findItem(theCommandID, &pp);
+ pp->setItemChecked(theCommandID, !pp->isItemChecked(theCommandID));
+ mySketcher.SetParameterVisibility(XVALUE_PARAMETER, pp->isItemChecked(theCommandID));
+ break;
+ }
+ case 4065: // SKETCH OptionsOnoffydimension
+ {
+ QMenuItem* item = Mb->findItem(theCommandID, &pp);
+ pp->setItemChecked(theCommandID, !pp->isItemChecked(theCommandID));
+ mySketcher.SetParameterVisibility(YVALUE_PARAMETER, pp->isItemChecked(theCommandID));
+ break;
+ }
+ default:
+ {
+ parent->putInfo(tr("GEOM_PRP_COMMAND").arg(theCommandID));
+ break;
+ }
+ }
+ return true;
+}
+
+
+//=======================================================================
+// function : OnSketchSetAngle()
+// purpose :
+//=======================================================================
+void GEOMBase_Sketcher::OnSketchSetAngle()
+{
+ Standard_Real anAngle = mySketcher.GetSegmentAngle()/PI180;
+ Sketch::fitInResol(anAngle);
+ Standard_Boolean res = false;
+ QString Value = QString("%1").arg(anAngle);
+ anAngle = myGeomBase->Parameter(res, Value, tr("GEOM_MEN_ANGLE"), tr("GEOM_MEN_ENTER_ANGLE"),
+ -180.0, +180.0, 6) * PI180;
+
+ if(res) {
+ mySketcher.SetSegmentAngle(anAngle);
+ QMenuBar* Mb = myGeomGUI->GetDesktop()->getMainMenuBar();
+ QMenuData* pp;
+ QMenuItem* item = Mb->findItem(4052, &pp);
+ pp->setItemChecked(4052, false);
+ item = Mb->findItem(4053, &pp);
+ pp->setItemChecked(4053, false);
+ }
+ return;
+}
+
+
+//=======================================================================
+// function : OnSketchSetx()
+// purpose :
+//=======================================================================
+void GEOMBase_Sketcher::OnSketchSetx()
+{
+ Standard_Boolean res = false;
+ double X = myGeomBase->Parameter(res, "0.", tr("GEOM_MEN_X"), tr("GEOM_MEN_SKETCHER_X"),
+ 2.0 * Precision::Confusion(), 1E6, 6);
+ if(res)
+ mySketcher.SetXDimension(X);
+ QMenuBar* Mb = myGeomGUI->GetDesktop()->getMainMenuBar();
+ QMenuData* pp;
+ QMenuItem* item = Mb->findItem(4052, &pp);
+ pp->setItemChecked(4052, false);
+ item = Mb->findItem(4053, &pp);
+ pp->setItemChecked(4053, false);
+ return;
+}
+
+
+//=======================================================================
+// function : OnSketchSety()
+// purpose :
+//=======================================================================
+void GEOMBase_Sketcher::OnSketchSety()
+{
+ Standard_Boolean res = false;
+ double Y = myGeomBase->Parameter(res, "0.", tr("GEOM_MEN_Y"), tr("GEOM_MEN_SKETCHER_Y"), 2.0 * Precision::Confusion(), 1E6, 6);
+ if(res)
+ mySketcher.SetYDimension(Y);
+ QMenuBar* Mb = myGeomGUI->GetDesktop()->getMainMenuBar();
+ QMenuData* pp;
+ QMenuItem* item = Mb->findItem(4052, &pp);
+ pp->setItemChecked(4052, false);
+ item = Mb->findItem(4053, &pp);
+ pp->setItemChecked(4053, false);
+ return;
+}
+
+
+//=======================================================================
+// function : OnSketchDelete()
+// purpose :
+//=======================================================================
+void GEOMBase_Sketcher::OnSketchDelete()
+{
+ if(mySketcher.GetmyEdgesNumber() == 1) {
+ QMenuBar* Mb = myGeomGUI->GetDesktop()->getMainMenuBar();
+ QMenuData* pp;
+ QMenuItem* item = Mb->findItem(406, &pp);
+ pp->setItemEnabled(406, false); // SKETCH CONTRAINTS
+ mySketcher.SetTransitionStatus(NOCONSTRAINT);
+ }
+
+ if(mySketcher.Delete())
+ myGeomGUI->ResetState();
+ return;
+}
+
+
+//=======================================================================
+// function : OnSketchClose()
+// purpose :
+//=======================================================================
+void GEOMBase_Sketcher::OnSketchClose()
+{
+ OCCViewer_Viewer3d* v3d = ((OCCViewer_ViewFrame*)myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getRightFrame()->getViewFrame())->getViewer();
+ Handle(AIS_InteractiveContext) myContext = v3d->getAISContext();
+
+ TopoDS_Wire W = mySketcher.Close();
+ if(!W.IsNull()) {
+ GEOM::GEOM_Gen::ListOfIOR_var listShapes = new GEOM::GEOM_Gen::ListOfIOR;
+ listShapes->length(0);
+ unsigned int i = 0;
+
+ BRepTools_WireExplorer Ex(W);
+ while(Ex.More()) {
+ TopoDS_Edge E = Ex.Current();
+ gp_Pnt pt1, pt2;
+
+ pt1 = BRep_Tool::Pnt(TopExp::FirstVertex(E));
+ pt2 = BRep_Tool::Pnt(TopExp::LastVertex(E));
+
+ gp_Pnt CenterPoint;
+ Handle(Geom_Curve) Curve;
+ Handle(Geom_Circle) Circle;
+ gp_Circ Circ;
+ Standard_Real First,Last;
+
+ Curve = BRep_Tool::Curve(E,First,Last);
+ if(Curve->IsKind(STANDARD_TYPE(Geom_Circle))) {
+ Circle = Handle(Geom_Circle)::DownCast(Curve); // pointer on geom_circ
+ Circ = Circle->Circ(); // gp_Circ
+
+ Curve->D0((First + Last) / 2., CenterPoint);
+
+ GEOM::PointStruct pI = myGeom->MakePointStruct(pt1.X(), pt1.Y(), pt1.Z());
+ GEOM::PointStruct pC = myGeom->MakePointStruct(CenterPoint.X(), CenterPoint.Y(), CenterPoint.Z());
+ GEOM::PointStruct pE = myGeom->MakePointStruct(pt2.X(), pt2.Y(), pt2.Z());
+
+ GEOM::GEOM_Shape_var arc;
+
+ try {
+ arc = myGeom->MakeArc(pI, pC, pE);
+ }
+ catch (const SALOME::SALOME_Exception& S_ex) {
+ QtCatchCorbaException(S_ex);
+ }
+
+ listShapes->length(i+1);
+ listShapes[i] = strdup(arc->Name());
+ i++;
+ }
+ else {
+ GEOM::PointStruct pI = myGeom->MakePointStruct(pt1.X(), pt1.Y(), pt1.Z());
+ GEOM::PointStruct pE = myGeom->MakePointStruct(pt2.X(), pt2.Y(), pt2.Z());
+ GEOM::GEOM_Shape_var segment;
+
+ try {
+ segment = myGeom->MakeEdge(pI,pE);
+ }
+ catch (const SALOME::SALOME_Exception& S_ex) {
+ QtCatchCorbaException(S_ex);
+ }
+
+ listShapes->length(i+1);
+ listShapes[i] = strdup(segment->Name());
+ i++;
+ }
+ Ex.Next();
+ }
+ GEOM::GEOM_Shape_var Wire = myGeom->MakeWire(listShapes);
+ TopoDS_Shape S = myGeomGUI->GetShapeReader().GetShape(myGeom, Wire);
+ Standard_CString type;
+ myGeomBase->GetShapeTypeString(S,type);
+ Wire->NameType(type);
+
+ if(myGeomBase->Display(Wire))
+ QAD_Application::getDesktop()->putInfo(tr("GEOM_PRP_DONE"));
+ }
+ myGeomGUI->ResetState();
+ QMenuBar* Mb = myGeomGUI->GetDesktop()->getMainMenuBar();
+ QMenuData* pp;
+ QMenuItem* item = Mb->findItem(406, &pp);
+ pp->setItemEnabled(406, false); // SKETCH CONTRAINTS
+ mySketcher.SetTransitionStatus(NOCONSTRAINT);
+ return;
+}
+
+
+//=======================================================================
+// function : OnSketchEnd()
+// purpose :
+//=======================================================================
+void GEOMBase_Sketcher::OnSketchEnd()
+{
+ OCCViewer_Viewer3d* v3d = ((OCCViewer_ViewFrame*)myGeomGUI->GetActiveStudy()->getActiveStudyFrame()->getRightFrame()->getViewFrame())->getViewer();
+ Handle (AIS_InteractiveContext) myContext = v3d->getAISContext();
+
+ TopoDS_Wire W = mySketcher.End();
+ if(!W.IsNull()) {
+ GEOM::GEOM_Gen::ListOfIOR_var listShapes = new GEOM::GEOM_Gen::ListOfIOR;
+ listShapes->length(0);
+ unsigned int i = 0;
+
+ BRepTools_WireExplorer Ex(W);
+ while(Ex.More()) {
+ TopoDS_Edge E = TopoDS::Edge(Ex.Current());
+
+ gp_Pnt pt1, pt2;
+ pt1 = BRep_Tool::Pnt(TopExp::FirstVertex(E));
+ pt2 = BRep_Tool::Pnt(TopExp::LastVertex(E));
+
+ gp_Pnt CenterPoint;
+ Handle(Geom_Curve) Curve;
+ Handle(Geom_Circle) Circle;
+ gp_Circ Circ;
+ Standard_Real First,Last;
+
+ Curve = BRep_Tool::Curve(E,First,Last);
+ if(Curve->IsKind(STANDARD_TYPE(Geom_Circle))) {
+ Circle = Handle(Geom_Circle)::DownCast(Curve); // pointer on geom_circ
+ Circ = Circle->Circ(); // gp_Circ
+
+ Curve->D0((First + Last) / 2., CenterPoint);
+
+ GEOM::PointStruct pI = myGeom->MakePointStruct(pt1.X(), pt1.Y(), pt1.Z());
+ GEOM::PointStruct pC = myGeom->MakePointStruct(CenterPoint.X(), CenterPoint.Y(), CenterPoint.Z());
+ GEOM::PointStruct pE = myGeom->MakePointStruct(pt2.X(), pt2.Y(), pt2.Z());
+
+ GEOM::GEOM_Shape_var arc;
+
+ try {
+ arc = myGeom->MakeArc(pI, pC, pE);
+ }
+ catch (const SALOME::SALOME_Exception& S_ex) {
+ QtCatchCorbaException(S_ex);
+ }
+
+ listShapes->length(i+1);
+ listShapes[i] = strdup(arc->Name());
+ i++;
+ } else {
+ GEOM::PointStruct pI = myGeom->MakePointStruct(pt1.X(), pt1.Y(), pt1.Z());
+ GEOM::PointStruct pE = myGeom->MakePointStruct(pt2.X(), pt2.Y(), pt2.Z());
+ GEOM::GEOM_Shape_var segment;
+
+ try {
+ segment = myGeom->MakeEdge(pI,pE);
+ }
+ catch (const SALOME::SALOME_Exception& S_ex) {
+ QtCatchCorbaException(S_ex);
+ }
+
+ listShapes->length(i+1);
+ listShapes[i] = strdup(segment->Name());
+ i++;
+ }
+ Ex.Next();
+ }
+
+ GEOM::GEOM_Shape_var Wire = myGeom->MakeWire(listShapes);
+ TopoDS_Shape S = myGeomGUI->GetShapeReader().GetShape(myGeom, Wire);
+ Standard_CString type;
+ myGeomBase->GetShapeTypeString(S,type);
+ Wire->NameType(type);
+
+ if(myGeomBase->Display(Wire))
+ QAD_Application::getDesktop()->putInfo(tr("GEOM_PRP_DONE"));
+ }
+ myGeomGUI->ResetState();
+ QMenuBar* Mb = myGeomGUI->GetDesktop()->getMainMenuBar();
+ QMenuData* pp;
+ QMenuItem* item = Mb->findItem(406, &pp);
+ pp->setItemEnabled(406, false); // SKETCH CONTRAINTS
+ mySketcher.SetTransitionStatus(NOCONSTRAINT);
+ return;
+}
--- /dev/null
+// GEOM GEOMGUI : GUI for Geometry component
+//
+// 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 : GEOMBase_Sketcher.h
+// Author : Damien COQUERET
+// Module : GEOM
+// $Header:
+
+#ifndef GEOMBASE_SKETCHER_H
+#define GEOMBASE_SKETCHER_H
+
+#include "GEOMBase.h"
+
+//=================================================================================
+// class : GEOMBase_Sketcher
+// purpose :
+//=================================================================================
+class GEOMBase_Sketcher : public QObject
+{
+ Q_OBJECT /* for QT compatibility */
+
+public :
+ GEOMBase_Sketcher();
+ ~GEOMBase_Sketcher();
+
+ bool OnGUIEvent(int theCommandID, QAD_Desktop* parent);
+
+ /* Sketcher management */
+ void OnSketchSetAngle();
+ void OnSketchSetx();
+ void OnSketchSety();
+
+ void OnSketchDelete();
+ void OnSketchClose();
+ void OnSketchEnd();
+
+private:
+ GEOMBase* myGeomBase;
+ GEOMContext* myGeomGUI;
+ GEOM::GEOM_Gen_var myGeom; /* Current Geom Component */
+ Sketch mySketcher;
+
+};
+
+#endif
--- /dev/null
+// GEOM GEOMGUI : GUI for Geometry component
+//
+// 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 : GEOMBase_aParameterDlg.cxx
+// Author : Lucien PIGNOLONI
+// Module : GEOM
+// $Header$
+
+using namespace std;
+#include "GEOMBase_aParameterDlg.h"
+#include "QAD_SpinBoxDbl.h"
+#include "QAD_Tools.h"
+
+#include <stdio.h>
+
+#include <qgroupbox.h>
+#include <qlabel.h>
+#include <qpushbutton.h>
+#include <qlayout.h>
+#include <qvariant.h>
+#include <qvalidator.h>
+
+//======================================================================================
+// function : GEOMBase_aParameterDlg()
+// purpose : Constructs a GEOMBase_aParametertDlg which is a child of 'parent', with the
+// name 'name' and widget flags set to 'f'
+//
+// avalue1 : is a float or integer used as default value in edit line
+// aTitle1 : is the prompt for aValue1
+// aTitle : is the title for the user in dialog box
+//
+// bottom : the minimal value to be entered
+// top : the maximum value to be entered
+// decimals : number of decimals to be entered
+//
+// The dialog will by default be modeless, unless you set 'modal' to
+// TRUE to construct a modal dialog.
+//
+//======================================================================================
+GEOMBase_aParameterDlg::GEOMBase_aParameterDlg(const char *aValue1, const char *aTitle1, QWidget* parent, const char* name, bool modal, WFlags fl, const double bottom, const double top, const int decimals)
+ :QDialog( parent, name, modal, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu)
+{
+ if(!name)
+ setName( "MyParameterDialog" );
+ resize(288, 81);
+ setCaption(name); /* appears on the title bar */
+ setSizeGripEnabled(TRUE);
+
+ QGridLayout* topLayout = new QGridLayout(this);
+ topLayout->setSpacing(6);
+ topLayout->setMargin(11);
+
+ QGroupBox* mainGrp = new QGroupBox(this, "mainGrp");
+ mainGrp->setColumnLayout(0, Qt::Vertical);
+ mainGrp->layout()->setSpacing(0);
+ mainGrp->layout()->setMargin(0);
+ QGridLayout* mainGrpLayout = new QGridLayout(mainGrp->layout());
+ mainGrpLayout->setAlignment(Qt::AlignTop);
+ mainGrpLayout ->setSpacing(6);
+ mainGrpLayout->setMargin(11);
+ topLayout->addWidget(mainGrp, 0, 0);
+
+ /* aTitle1 : text prompt on left of edit line */
+ QLabel* TextLabel1 = new QLabel(mainGrp, "TextLabel1");
+ TextLabel1->setText(tr(aTitle1));
+ mainGrpLayout->addWidget(TextLabel1, 0, 0);
+
+ mySpinBox = new QAD_SpinBoxDbl(mainGrp, "mySpinBox");
+ mySpinBox->setPrecision(12);
+ mySpinBox->setRange(bottom, top);
+ ((QDoubleValidator*)(mySpinBox->validator()))->setRange(bottom, top, decimals);
+ mySpinBox->setValue(QString(aValue1).toDouble());
+ mainGrpLayout->addWidget(mySpinBox, 0, 1);
+
+ QGroupBox* btnGrp = new QGroupBox(this, "btnGrp");
+ btnGrp->setColumnLayout(0, Qt::Vertical);
+ btnGrp->layout()->setSpacing(0);
+ btnGrp->layout()->setMargin(0);
+ QGridLayout* btnGrpLayout = new QGridLayout(btnGrp->layout());
+ btnGrpLayout->setAlignment(Qt::AlignTop);
+ btnGrpLayout->setSpacing(6);
+ btnGrpLayout->setMargin(11);
+ topLayout->addWidget(btnGrp, 1, 0);
+
+ /* Ok button */
+ myButtonOk = new QPushButton(btnGrp, "buttonOk");
+ myButtonOk->setText(tr("GEOM_BUT_OK"));
+ myButtonOk->setAutoDefault(TRUE);
+ myButtonOk->setDefault(TRUE);
+ btnGrpLayout->addWidget(myButtonOk, 0, 0);
+
+ btnGrpLayout->addItem(new QSpacerItem(5, 5, QSizePolicy::Expanding, QSizePolicy::Minimum), 0, 1);
+
+ /* Cancel button */
+ myButtonCancel = new QPushButton(btnGrp, "buttonCancel");
+ myButtonCancel->setText(tr("GEOM_BUT_CANCEL"));
+ myButtonCancel->setAutoDefault(TRUE);
+ btnGrpLayout->addWidget(myButtonCancel, 0, 2);
+
+ /* signals and slots connections */
+ connect(myButtonOk, SIGNAL(clicked()), this, SLOT(accept()));
+ connect(myButtonCancel, SIGNAL(clicked()), this, SLOT(reject()));
+
+ /* Move widget on the botton right corner of main widget */
+ QAD_Tools::centerWidget(this, parent);
+}
+
+
+//======================================================================================
+// function : ~GEOMBase_aParameterDlg() destructor
+// purpose : Destroys the object and frees any allocated resources
+//======================================================================================
+GEOMBase_aParameterDlg::~GEOMBase_aParameterDlg()
+{
+ // no need to delete child widgets, Qt does it all for us
+}
+
+
+//======================================================================================
+// function : GEOMBase_aParameterDlg::setValue
+// purpose : sets value
+//======================================================================================
+void GEOMBase_aParameterDlg::setValue(double val)
+{
+ mySpinBox->setValue(val);
+}
+
+
+//======================================================================================
+// function : GEOMBase_aParameterDlg::getValue
+// purpose : gets value
+//======================================================================================
+double GEOMBase_aParameterDlg::getValue()
+{
+ return mySpinBox->value();
+}
--- /dev/null
+// GEOM GEOMGUI : GUI for Geometry component
+//
+// 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 : GEOMBase_aParameterDlg.h
+// Author : Lucien PIGNOLONI
+// Module : GEOM
+// $Header$
+
+#ifndef GEOMBase_aParameterDLG_H
+#define GEOMBase_aParameterDLG_H
+
+#include <qdialog.h>
+
+class QPushButton;
+class QAD_SpinBoxDbl;
+
+//=================================================================================
+// class : GEOMBase_aParameterDlg
+// purpose :
+//=================================================================================
+class GEOMBase_aParameterDlg : public QDialog
+{
+ Q_OBJECT
+
+public:
+ GEOMBase_aParameterDlg(const char* aValue1 = "25", const char* aTitle1 = "Value :", QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0, const double bottom = -1E6, const double top = +1E6, const int decimals = 6);
+ ~GEOMBase_aParameterDlg();
+
+ void setValue(double val);
+ double getValue();
+
+private:
+ QPushButton* myButtonOk;
+ QPushButton* myButtonCancel;
+ QAD_SpinBoxDbl* mySpinBox;
+
+};
+
+#endif // GEOMBase_aParameterDlg.h
+++ /dev/null
-//
-// 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 : GEOMContext.cxx
-// Author : Damien COQUERET
-// Module : GEOM
-// $Header:
-
-using namespace std;
-#include "GEOMContext.h"
-
-#include "QAD_Tools.h"
-
-/* The object itself created in the static method 'GetOrCreateGEOMBase()' */
-static GEOMContext* GeomGUI = 0;
-
-//=======================================================================
-// function : GEOMContext()
-// purpose : Constructor
-//=======================================================================
-GEOMContext::GEOMContext() :
- QObject()
-{
- mySettings_AddInStudy = false;
- mySettings_Copy = false;
- myFatherior = "";
-}
-
-
-//=======================================================================
-// function : ~GEOMContext()
-// purpose : Destructor
-//=======================================================================
-GEOMContext::~GEOMContext()
-{
-}
-
-
-//=======================================================================
-// function : GetGEOMContext() static
-// purpose : Returns current 'GeomGUI' a static pointer
-//=======================================================================
-GEOMContext* GEOMContext::GetGeomGUI()
-{
- return GeomGUI;
-}
-
-
-//=======================================================================
-// function : GetOrCreateGEOMBase()
-// purpose : Gets or create an object 'GEOMBase' with initialisations
-// : Returns 'GeomGUI' as a pointer
-//=======================================================================
-GEOMContext* GEOMContext::GetOrCreateGeomGUI(QAD_Desktop* desktop)
-{
- if(GeomGUI == 0) {
- GeomGUI = new GEOMContext();
- GeomGUI->myDesktop = desktop;
- GeomGUI->myActiveStudy = desktop->getActiveStudy();
- Engines::Component_var comp = desktop->getEngine("FactoryServer", "GEOM");
- GeomGUI->myComponentGeom = GEOM::GEOM_Gen::_narrow(comp);
-
- GeomGUI->myState = -1;
- GeomGUI->myActiveDialogBox = 0;
- GeomGUI->myGUILibrary = OSD_SharedLibrary();
- GeomGUI->mySimulationShape = new AIS_Shape(TopoDS_Shape());
- GeomGUI->myShadingColor = Quantity_Color(Quantity_NOC_GOLDENROD);
-
- /* GetCurrentStudy */
- int studyId = GeomGUI->myActiveStudy->getStudyId();
- GeomGUI->myComponentGeom->GetCurrentStudy(studyId);
- GeomGUI->myNbGeom = GeomGUI->myComponentGeom->NbLabels();
- }
- else {
- /* study may have changed */
- GeomGUI->myActiveStudy = desktop->getActiveStudy();
- }
-
- return GeomGUI;
-}
-
-
-//=======================================================================
-// function : LoadLibrary()
-// purpose :
-//=======================================================================
-bool GEOMContext::LoadLibrary(QString GUILibrary)
-{
- QCString libs;
- QFileInfo fileInfo;
- QString GUILib, fileString, dir;
-
- if(libs = getenv("LD_LIBRARY_PATH")) {
- QStringList dirList = QStringList::split(":", libs, false); // skip empty entries
- for(int i = dirList.count()-1; i >= 0; i--) {
- dir = dirList[i];
- fileString = QAD_Tools::addSlash(dir) + GUILibrary;
- fileInfo.setFile(fileString);
- if(fileInfo.exists()) {
- GUILib = fileInfo.fileName();
- break;
- }
- }
- }
-
- myGUILibrary.SetName(TCollection_AsciiString((char*)GUILib.latin1()).ToCString());
- bool res = myGUILibrary.DlOpen(OSD_RTLD_LAZY);
- if(!res)
- cout<<"Can't open library : "<<myGUILibrary.DlError()<<endl;
- return res;
-}
-
-
-//=======================================================================
-// function : SetState()
-// purpose : Sets myState = aState a private field indicating which methode is active
-//=======================================================================
-void GEOMContext::SetState(int aState)
-{
- myState = aState;
- return;
-}
-
-
-//=======================================================================
-// function : ResetState()
-// purpose : Sets myState = -1 a private field indicating which methode is active
-//=======================================================================
-void GEOMContext::ResetState()
-{
- myState = -1;
- return;
-}
-
-
-//=======================================================================
-// function : SetActiveDialogBox()
-// purpose :
-//=======================================================================
-void GEOMContext::SetActiveDialogBox(QDialog* aDlg)
-{
- myActiveDialogBox = (QDialog*)aDlg;
- return;
-}
-
-
-//=======================================================================
-// function : EmitSignalDeactivateDialog()
-// purpose : Emit a signal to deactivate the active dialog Box
-//=======================================================================
-void GEOMContext::EmitSignalDeactivateDialog()
-{
- emit SignalDeactivateActiveDialog();
- return;
-}
-
-
-//=======================================================================
-// function : EmitSignalCloseAllDialogs()
-// purpose : Emit a signal to deactivate all non modal dialogs box
-//=======================================================================
-void GEOMContext::EmitSignalCloseAllDialogs()
-{
- emit SignalCloseAllDialogs();
- return;
-}
-
-
-//=======================================================================
-// function : EmitSignalDefaultStepValueChanged()
-// purpose :
-//=======================================================================
-void GEOMContext::EmitSignalDefaultStepValueChanged(double newVal)
-{
- emit SignalDefaultStepValueChanged(newVal);
- return;
-}
+++ /dev/null
-// GEOMCONTEXT
-//
-// 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 : GEOMContext.h
-// Author : Damien COQUERET
-// Module : GEOM
-// $Header:
-
-#ifndef GEOMCONTEXT_H
-#define GEOMCONTEXT_H
-
-// SALOME Includes
-#include "QAD_Desktop.h"
-
-#include "GEOM_Client.hxx"
-#include "GEOM_AISShape.hxx"
-#include "GEOM_InteractiveObject.hxx"
-#include "GEOM_Actor.h"
-#include "GEOM_Sketcher.h"
-
-// Open CASCADE Includes
-#include <Quantity_Color.hxx>
-#include <AIS_ListOfInteractive.hxx>
-#include <OSD_SharedLibrary.hxx>
-
-// QT Includes
-#include <qapplication.h>
-
-// IDL Headers
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(GEOM_Gen)
-#include CORBA_SERVER_HEADER(SALOMEDS)
-#include CORBA_SERVER_HEADER(SALOMEDS_Attributes)
-
-enum {POINT_METHOD, CURRENT_SKETCH};
-
-//=================================================================================
-// class : GEOMContext
-// purpose :
-//=================================================================================
-class GEOMContext : public QObject
-{
- Q_OBJECT /* for QT compatibility */
-
-public :
- GEOMContext();
- ~GEOMContext();
-
-private :
- QAD_Desktop* myDesktop;
- QAD_Study* myActiveStudy;
- QDialog* myActiveDialogBox; /* Unique active dialog box */
-
- int myNbGeom; /* Unique name for a geom entity */
- int myState; /* Identify a method */
-
- GEOM_Client myShapeReader;
- Standard_CString myFatherior;
- AIS_ListOfInteractive myListDisplayedObject;
- Quantity_Color myShadingColor;
- Handle(AIS_Shape) mySimulationShape; /* AIS shape used only during topo/geom simulations */
- Sketch mySketcher;
-
- bool mySettings_AddInStudy;
- bool mySettings_Copy;
-
-public :
- static GEOMContext* GetOrCreateGeomGUI(QAD_Desktop* desktop);
- static GEOMContext* GetGeomGUI();
-
- OSD_SharedLibrary myGUILibrary;
- GEOM::GEOM_Gen_var myComponentGeom;
- //GEOM::GEOM_Gen_var* GetComponentGeom(){return myComponentGeom;};
-
- QAD_Desktop* GetDesktop(){return myDesktop;};
- QAD_Study* GetActiveStudy(){return myActiveStudy;};
- QDialog* GetActiveDialogBox(){return myActiveDialogBox ;}; /* Returns the active DialogBox */
-
- int& GetNbGeom(){return myNbGeom;};
- int& GetState(){return myState;};
-
- GEOM_Client& GetShapeReader(){return myShapeReader;};
- Standard_CString& GetFatherior(){return myFatherior;};
- AIS_ListOfInteractive& GetListDisplayedObject(){return myListDisplayedObject;};
- Quantity_Color& GetShadingColor(){return myShadingColor;};
- Handle(AIS_Shape) GetSimulationShape(){return mySimulationShape;};
- Sketch& GetSketcher(){return mySketcher;};
-
- bool& GetSettings_AddInStudy(){return mySettings_AddInStudy;};
- bool& GetSettings_Copy(){return mySettings_Copy;};
-
- bool LoadLibrary(QString GUILibrary);
-
- void SetState(int aState);
- void ResetState(); /* Sets myState = -1 a private field to indicate wich method is active */
- void SetActiveDialogBox(QDialog* aDlg); /* Sets 'myActiveDialogBox' a pointer to the active Dialog Box */
-
- /* Non modal dialog boxes magement */
- void EmitSignalDeactivateDialog();
- void EmitSignalCloseAllDialogs();
- void EmitSignalDefaultStepValueChanged(double newVal);
-
-signals :
- void SignalDeactivateActiveDialog();
- void SignalCloseAllDialogs();
- void SignalDefaultStepValueChanged(double newVal);
-
-};
-
-#endif
-
+++ /dev/null
-# This is a Qt message file in .po format. Each msgid starts with
-# a scope. This scope should *NOT* be translated - eg. translating
-# from French to English, "Foo::Bar" would be translated to "Pub",
-# not "Foo::Pub".
-msgid ""
-msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2001-06-14 09:11:49 PM CEST\n"
-"PO-Revision-Date: 2003-09-22 16:39+0200\n"
-"Last-Translator: FULLNAME <EMAIL@ADDRESS>\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-
-#Select
-msgid "ICON_SELECT"
-msgstr "select1.png"
-
-#: QAD_ObjectBrowser.cxx:140
-msgid "ICON_OBJBROWSER_Geometry"
-msgstr "geometry.png"
-
-#: QAD_ObjectBrowser.cxx:140
-msgid "ICON_OBJBROWSER_COMPOUND"
-msgstr "tree_compound.png"
-
-#: QAD_ObjectBrowser.cxx:140
-msgid "ICON_OBJBROWSER_COMPSOLID"
-msgstr "tree_compsolid.png"
-
-#: QAD_ObjectBrowser.cxx:140
-msgid "ICON_OBJBROWSER_EDGE"
-msgstr "tree_edge.png"
-
-#: QAD_ObjectBrowser.cxx:140
-msgid "ICON_OBJBROWSER_FACE"
-msgstr "tree_face.png"
-
-#: QAD_ObjectBrowser.cxx:140
-msgid "ICON_OBJBROWSER_SHAPE"
-msgstr "tree_shape.png"
-
-#: QAD_ObjectBrowser.cxx:140
-msgid "ICON_OBJBROWSER_SHELL"
-msgstr "tree_shell.png"
-
-#: QAD_ObjectBrowser.cxx:140
-msgid "ICON_OBJBROWSER_SOLID"
-msgstr "tree_solid.png"
-
-#: QAD_ObjectBrowser.cxx:140
-msgid "ICON_OBJBROWSER_VERTEX"
-msgstr "tree_vertex.png"
-
-#: QAD_ObjectBrowser.cxx:140
-msgid "ICON_OBJBROWSER_WIRE"
-msgstr "tree_wire.png"
-
-#BoxDlg
-msgid "ICON_DLG_BOX_2P"
-msgstr "box2points.png"
-
-#BoxDlg
-msgid "ICON_DLG_BOX_DXYZ"
-msgstr "boxdxyz.png"
-
-#CylinderDlg
-msgid "ICON_DLG_CYLINDER_PV"
-msgstr "cylinderpointvector.png"
-
-#CylinderDlg
-msgid "ICON_DLG_CYLINDER_DXYZ"
-msgstr "cylinderdxyz.png"
-
-#SphereDlg
-msgid "ICON_DLG_SPHERE_P"
-msgstr "spherepoint.png"
-
-#SphereDlg
-msgid "ICON_DLG_SPHERE_DXYZ"
-msgstr "spheredxyz.png"
-
-#torusDlg
-msgid "ICON_DLG_TORUS_PV"
-msgstr "toruspointvector.png"
-
-#ConeDlg
-msgid "ICON_DLG_CONE_PV"
-msgstr "conepointvector.png"
-
-#torusDlg
-msgid "ICON_DLG_TORUS_DXYZ"
-msgstr "torusdxyz.png"
-
-#ConeDlg
-msgid "ICON_DLG_CONE_DXYZ"
-msgstr "conedxyz.png"
-
-#LineDlg
-msgid "ICON_DLG_LINE_2P"
-msgstr "line2points.png"
-
-#LineDlg
-msgid "ICON_DLG_LINE_EDGE"
-msgstr "lineedge.png"
-
-#LineDlg
-msgid "ICON_DLG_LINE_PV"
-msgstr "linepointvector.png"
-
-#CircleDlg
-msgid "ICON_DLG_CIRCLE_PV"
-msgstr "circlepointvector.png"
-
-#VectorDlg
-msgid "ICON_DLG_VECTOR_2P"
-msgstr "vector2points.png"
-
-#vectorDlg
-msgid "ICON_DLG_VECTOR_DXYZ"
-msgstr "vectordxyz.png"
-
-#PlaneDlg
-msgid "ICON_DLG_PLANE_DXYZ"
-msgstr "planedxyz.png"
-
-#PlaneDlg
-msgid "ICON_DLG_PLANE_FACE"
-msgstr "planeface.png"
-
-#PlaneDlg
-msgid "ICON_DLG_PLANE_PV"
-msgstr "planepointvector.png"
-
-#WorkingPlaneDlg
-msgid "ICON_DLG_WPLANE_FACE"
-msgstr "planeworkingface.png"
-
-#PointDlg
-msgid "ICON_DLG_POINT"
-msgstr "point2.png"
-
-#PoinDlg
-msgid "ICON_DLG_POINT_EDGE"
-msgstr "pointonedge.png"
-
-#ArcDlg
-msgid "ICON_DLG_ARC"
-msgstr "arc.png"
-
-#ArchimedeDlg
-msgid "ICON_DLG_ARCHIMEDE"
-msgstr "archimede.png"
-
-#PartitionDlg
-msgid "ICON_DLG_PARTITION"
-msgstr "partition.png"
-
-#PartitionDlg
-msgid "ICON_DLG_PARTITION_KEEP_FACES"
-msgstr "partitionkeep.png"
-
-#CenterMassDlg
-msgid "ICON_DLG_CENTERMASS"
-msgstr "centergravity.png"
-
-#BoundingBoxDlg
-msgid "ICON_DLG_BOUNDING_BOX"
-msgstr "bounding.png"
-
-#CommonDlg
-msgid "ICON_DLG_COMMON"
-msgstr "common.png"
-
-#CompoundDlg
-msgid "ICON_DLG_BUILD_COMPOUND"
-msgstr "build_compound.png"
-
-#CutDlg
-msgid "ICON_DLG_CUT"
-msgstr "cut.png"
-
-#EdgeDlg
-msgid "ICON_DLG_BUILD_EDGE"
-msgstr "build_edge.png"
-
-#FaceDlg
-msgid "ICON_DLG_BUILD_FACE"
-msgstr "build_face.png"
-
-#ShellDlg
-msgid "ICON_DLG_BUILD_SHELL"
-msgstr "build_shell.png"
-
-#SolidDlg
-msgid "ICON_DLG_BUILD_SOLID"
-msgstr "build_solid.png"
-
-#WireDlg
-msgid "ICON_DLG_BUILD_WIRE"
-msgstr "build_wire.png"
-
-#FillingDlg
-msgid "ICON_DLG_FILLING"
-msgstr "filling.png"
-
-#FuseDlg
-msgid "ICON_DLG_FUSE"
-msgstr "fuse.png"
-
-#InertiaDlg
-msgid "ICON_DLG_INERTIA"
-msgstr "axisinertia.png"
-
-#ToleranceDlg
-msgid "ICON_DLG_TOLERANCE"
-msgstr "tolerance.png"
-
-#BasicPropertiesDlg
-msgid "ICON_DLG_BASICPROPERTIES"
-msgstr "basicproperties.png"
-
-#WhatisDlg
-msgid "ICON_DLG_WHATIS"
-msgstr "whatis.png"
-
-#MinDistDlg
-msgid "ICON_DLG_MINDIST"
-msgstr "mindist.png"
-
-#MirrorDlg
-msgid "ICON_DLG_MIRROR"
-msgstr "mirrorPlane.png"
-
-#TranslationDlg
-msgid "ICON_DLG_TRANSLATION"
-msgstr "translation.png"
-
-#RotationDlg
-msgid "ICON_DLG_ROTATION"
-msgstr "rotate.png"
-
-#ScaleDlg
-msgid "ICON_DLG_SCALE"
-msgstr "scale.png"
-
-#OrientationDlg
-msgid "ICON_DLG_ORIENTATION"
-msgstr "orientation.png"
-
-#SewingDlg
-msgid "ICON_DLG_SEWING"
-msgstr "sewing.png"
-
-#PipeDlg
-msgid "ICON_DLG_PIPE"
-msgstr "pipe.png"
-
-#PrismDlg
-msgid "ICON_DLG_PRISM"
-msgstr "prism.png"
-
-#RevolutionDlg
-msgid "ICON_DLG_REVOL"
-msgstr "revol.png"
-
-#SectionDlg
-msgid "ICON_DLG_SECTION"
-msgstr "section.png"
-
-#SubShapeDlg
-msgid "ICON_DLG_SUBSHAPE"
-msgstr "subshape.png"
-
-#FilletDlg
-msgid "ICON_DLG_FILLET"
-msgstr "fillet.png"
-
-#ChamferDlg
-msgid "ICON_DLG_CHAMFER"
-msgstr "chamfer.png"
-
-#FilletDlg
-msgid "ICON_DLG_FILLET_ALL"
-msgstr "filletall.png"
-
-#ChamferDlg
-msgid "ICON_DLG_CHAMFER_ALL"
-msgstr "chamferall.png"
-
-#FilletDlg
-msgid "ICON_DLG_FILLET_EDGE"
-msgstr "filletedge.png"
-
-#ChamferDlg
-msgid "ICON_DLG_CHAMFER_EDGE"
-msgstr "chamferedge.png"
-
-#FilletDlg
-msgid "ICON_DLG_FILLET_FACE"
-msgstr "filletface.png"
-
-#ChamferDlg
-msgid "ICON_DLG_CHAMFER_FACE"
-msgstr "chamferface.png"
-
-#ChamferDlg
-msgid "ICON_DLG_CHECKSHAPE"
-msgstr "check.png"
-
-#SupressFaceDlg
-msgid "ICON_DLG_SUPRESS_FACE"
-msgstr "supressface.png"
-
-#SupressHoleDlg
-msgid "ICON_DLG_SUPRESS_HOLE"
-msgstr "supresshole.png"
-
-#SupressHoleDlg
-msgid "ICON_DLG_SUPRESS_HOLE_FACE_SHELL"
-msgstr "supressHolesOnFaceShell.png"
-
-#MultiTranslationDlg
-msgid "ICON_DLG_MULTITRANSLATION_SIMPLE"
-msgstr "multitranslationsimple.png"
-
-#MultiTranslationDlg
-msgid "ICON_DLG_MULTITRANSLATION"
-msgstr "multitranslation.png"
-
-#MultiTranslationDlg
-msgid "ICON_DLG_MULTITRANSLATION_DOUBLE"
-msgstr "multitranslationdouble.png"
-
-#MultiRotationDlg
-msgid "ICON_DLG_MULTIROTATION_SIMPLE"
-msgstr "multirotationsimple.png"
-
-#MultiRotationDlg
-msgid "ICON_DLG_MULTIROTATION"
-msgstr "multirotation.png"
-
-#MultiRotationDlg
-msgid "ICON_DLG_MULTIROTATION_DOUBLE"
-msgstr "multirotationdouble.png"
-
-#EllipseDlg
-msgid "ICON_DLG_ELLIPSE_PV"
-msgstr "ellipsepointvector.png"
-
-
+++ /dev/null
-# This is a Qt message file in .po format. Each msgid starts with
-# a scope. This scope should *NOT* be translated - eg. translating
-# from French to English, "Foo::Bar" would be translated to "Pub",
-# not "Foo::Pub".
-msgid ""
-msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2002-03-19 09:35:48 AM CET\n"
-"PO-Revision-Date: 2003-09-22 16:38+0200\n"
-"Last-Translator: FULLNAME <EMAIL@ADDRESS>\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-
-#
-#==============================================================================
-#
-
-#Button Apply
-msgid "GEOM_BUT_APPLY"
-msgstr "&Apply"
-
-#Button Close
-msgid "GEOM_BUT_CLOSE"
-msgstr "&Close"
-
-#Button Cancel
-msgid "GEOM_BUT_CANCEL"
-msgstr "&Cancel"
-
-#Button Ok
-msgid "GEOM_BUT_OK"
-msgstr "&Ok"
-
-#Button Yes
-msgid "GEOM_BUT_YES"
-msgstr "&Yes"
-
-#Button No
-msgid "GEOM_BUT_NO"
-msgstr "&No"
-
-#Button Help
-msgid "GEOM_BUT_HELP"
-msgstr "&Help"
-
-#Button Explode
-msgid "GEOM_BUT_EXPLODE"
-msgstr "&Explode"
-
-
-#
-#==============================================================================
-#
-
-#: GeometryGUI.cxx:563
-msgid "GEOM_INF_LOADED"
-msgstr "File %1 loaded."
-
-#
-#==============================================================================
-#
-
-#: GeometryGUI.cxx:3069
-msgid "GEOM_PRP_COMMAND"
-msgstr "No command associated with this id = %1."
-
-#: GeometryGUI.cxx:4977
-msgid "GEOM_PRP_ABORT"
-msgstr "Operation aborted"
-
-#: GeometryGUI.cxx:5058
-msgid "GEOM_PRP_DONE"
-msgstr "Operation done"
-
-#: GeometryGUI.cxx:3717
-msgid "GEOM_PRP_LOADING"
-msgstr "Loading %1 ..."
-
-#: GeometryGUI.cxx:1412
-msgid "GEOM_PRP_NULLSHAPE"
-msgstr "Error, null or inappropriate shape !"
-
-#: GeometryGUI.cxx:5072
-msgid "GEOM_PRP_READY"
-msgstr "Ready"
-
-#: GeometryGUI.cxx:1690
-msgid "GEOM_PRP_SELECT_SUBSHAPES"
-msgstr "Select Sub Shapes"
-
-msgid "GEOM_CONFIRM"
-msgstr "Confirm operation"
-
-msgid "GEOM_CONFIRM_INFO"
-msgstr "Shape contains %1 sub shapes !"
-
-
-msgid "GEOM_PRP_NOT_FOR_VTK_VIEWER"
-msgstr "Not allowed in VTK viewer"
-
-#: GeometryGUI.cxx:1690
-msgid "GEOM_PRP_SHAPE_IN_STUDY"
-msgstr "Main shape must be in the study before"
-
-#: GeometryGUI.cxx:1690
-msgid "GEOM_PRP_SELECT_EDGE"
-msgstr "Select edges and click on Apply"
-
-#: GeometryGUI.cxx:1690
-msgid "GEOM_PRP_SELECT_FACE"
-msgstr "Select faces to suppress and click on Ok/Apply"
-
-#: GeometryGUI.cxx:1690
-msgid "GEOM_PRP_SELECT_FIRST"
-msgstr "Select main shape first"
-
-#: GeometryGUI.cxx:1690
-msgid "GEOM_PRP_MIN_DIST"
-msgstr "Min Distance not computed"
-
-#
-#==============================================================================
-#
-
-#: GeometryGUI.cxx:3698
-msgid "GEOM_MEN_ALL_FILES"
-msgstr "All Files ( * )"
-
-#: GeometryGUI.cxx:4389
-msgid "GEOM_MEN_ANGLE"
-msgstr "Angle :"
-
-#: GeometryGUI.cxx:3941
-msgid "GEOM_MEN_COMPONENT"
-msgstr "Geometry"
-
-#: GeometryGUI.cxx:4389
-msgid "GEOM_MEN_ENTER_ANGLE"
-msgstr "Enter An Angle In Degrees"
-
-#: GeometryGUI.cxx:3758
-msgid "GEOM_MEN_EXPORT"
-msgstr "Export"
-
-#: GeometryGUI.cxx:3648
-msgid "GEOM_MEN_IMPORT"
-msgstr "Import"
-
-#: GeometryGUI.cxx:3761
-msgid "GEOM_MEN_IMPORT_BREP"
-msgstr "BREP Files ( *.brep )"
-
-#: GeometryGUI.cxx:3762
-msgid "GEOM_MEN_IMPORT_IGES"
-msgstr "IGES Files ( *.iges *.igs )"
-
-#: GeometryGUI.cxx:3763
-msgid "GEOM_MEN_IMPORT_STEP"
-msgstr "STEP Files ( *.step *.stp )"
-
-#: GeometryGUI.cxx:2931
-msgid "GEOM_MEN_ISOS"
-msgstr "Select Number Of Isos"
-
-#: GeometryGUI.cxx:4278
-msgid "GEOM_MEN_POPUP_NAME"
-msgstr "%1 Objects"
-
-#: GeometryGUI.cxx:4414
-msgid "GEOM_MEN_SKETCHER_X"
-msgstr "Enter a length to set X"
-
-#: GeometryGUI.cxx:4438
-msgid "GEOM_MEN_SKETCHER_Y"
-msgstr "Enter a length to set Y"
-
-#: GeometryGUI.cxx:2898
-msgid "GEOM_MEN_TRANSPARENCY"
-msgstr "Transparency"
-
-#: GeometryGUI.cxx:4413
-msgid "GEOM_MEN_X"
-msgstr "X :"
-
-#: GeometryGUI.cxx:4437
-msgid "GEOM_MEN_Y"
-msgstr "Y :"
-
-#: GeometryGUI_NbIsosDlg.cxx:36
-msgid "GEOM_MEN_ISOU"
-msgstr "Isos u :"
-
-#: GeometryGUI_NbIsosDlg.cxx:53
-msgid "GEOM_MEN_ISOV"
-msgstr "Isos v :"
-
-#: GeometryGUI_TransparencyDlg.cxx:31
-msgid "GEOM_MEN_TRANSPARENCY_LABEL"
-msgstr "Transparency :"
-
-msgid "GEOM_MEN_STEP_LABEL"
-msgstr "Step :"
-
-
-msgid "GEOM_IDENTICAL_NAMES_SELECT_BY_MOUSE"
-msgstr "Identical names : select by mouse !"
-
-msgid "GEOM_NAME_INCORRECT"
-msgstr "Object name not found"
-
-#
-#==============================================================================
-#
-
-#: GeometryGUI.cxx:892
-msgid "GEOM_WRN_RADIUS_NULL"
-msgstr "Radius is null"
-
-#: GeometryGUI.cxx:3854
-msgid "GEOM_WRN_WARNING"
-msgstr "Warning"
-
-#: GeometryGUI.cxx:3854
-msgid "GEOM_REALLY_DELETE"
-msgstr "Do you really want to delete object(s) ?"
-
-#
-#==============================================================================
-#
-
-#Object
-msgid "GEOM_OBJECT"
-msgstr "Object"
-
-#Main object
-msgid "GEOM_MAIN_OBJECT"
-msgstr "Main Object"
-
-#Tool object
-msgid "GEOM_TOOL_OBJECT"
-msgstr "Tool Object"
-
-#Base Object
-msgid "GEOM_BASE_OBJECT"
-msgstr "Base Object"
-
-#Path Object
-msgid "GEOM_PATH_OBJECT"
-msgstr "Path Object"
-
-#Objects
-msgid "GEOM_OBJECTS"
-msgstr "Objects"
-
-#Object i
-msgid "GEOM_OBJECT_I"
-msgstr "Object %1"
-
-#Object and result
-msgid "GEOM_OBJECT_RESULT"
-msgstr "Object And Result"
-
-#Point
-msgid "GEOM_POINT"
-msgstr "Point"
-
-#Base point
-msgid "GEOM_BASE_POINT"
-msgstr "Base Point"
-
-#Center Point
-msgid "GEOM_CENTER_POINT"
-msgstr "Center Point"
-
-#Diagonal Points
-msgid "GEOM_DIAGONAL_POINTS"
-msgstr "Diagonal Points"
-
-#Central Point
-msgid "GEOM_CENTRAL_POINT"
-msgstr "Central Point"
-
-#Points
-msgid "GEOM_POINTS"
-msgstr "Points"
-
-#Point i
-msgid "GEOM_POINT_I"
-msgstr "Point %1"
-
-#Arguments
-msgid "GEOM_ARGUMENTS"
-msgstr "Arguments"
-
-#Center
-msgid "GEOM_CENTER"
-msgstr "Center"
-
-#Radius
-msgid "GEOM_RADIUS"
-msgstr "Radius :"
-
-#Radius i
-msgid "GEOM_RADIUS_I"
-msgstr "Radius %1 :"
-
-#Height
-msgid "GEOM_HEIGHT"
-msgstr "Height :"
-
-#Length
-msgid "GEOM_LENGTH"
-msgstr "Length is :"
-
-#Weight
-msgid "GEOM_WEIGHT"
-msgstr "Weight :"
-
-#Coordinates
-msgid "GEOM_COORDINATES"
-msgstr "Coordinates"
-
-#Coor.
-msgid "GEOM_COOR"
-msgstr "Coord. :"
-
-#Reverse
-msgid "GEOM_REVERSE"
-msgstr "Reverse"
-
-#Reverse U
-msgid "GEOM_REVERSE_U"
-msgstr "Reverse U"
-
-#Reverse V
-msgid "GEOM_REVERSE_V"
-msgstr "Reverse V"
-
-#Angle
-msgid "GEOM_ANGLE"
-msgstr "Angle :"
-
-#Axis
-msgid "GEOM_AXIS"
-msgstr "Axis"
-
-#Matrix
-msgid "GEOM_MATRIX"
-msgstr "Matrix :"
-
-#Vector Length
-msgid "GEOM_VECTOR_LENGTH"
-msgstr "Vector Length :"
-
-#Reverse Vector
-msgid "GEOM_REVERSE_VECTOR"
-msgstr "Reverse Vector"
-
-#Plane Mirror
-msgid "GEOM_PLANE_MIRROR"
-msgstr "Plane Mirror"
-
-#Face Selection
-msgid "GEOM_FACE_SELECTION"
-msgstr "Face Selection"
-
-#Base
-msgid "GEOM_BASE"
-msgstr "Base"
-
-#Water Density
-msgid "GEOM_WATER_DENSITY"
-msgstr "Water Density :"
-
-#Meshing Deflection
-msgid "GEOM_MESHING_DEFLECTION"
-msgstr "Meshing Deflect. :"
-
-#Dimensions
-msgid "GEOM_DIMENSIONS"
-msgstr "Dimensions"
-
-#Precision
-msgid "GEOM_PRECISION"
-msgstr "Precision :"
-
-#Selection
-msgid "GEOM_SELECTION"
-msgstr "Selection"
-
-#Nb. Times
-msgid "GEOM_NB_TIMES"
-msgstr "Nb. Times :"
-
-#Nb. Times U
-msgid "GEOM_NB_TIMES_U"
-msgstr "Nb. Times U :"
-
-#Nb. Times V
-msgid "GEOM_NB_TIMES_V"
-msgstr "Nb. Times V :"
-
-#Step
-msgid "GEOM_STEP"
-msgstr "Step :"
-
-#Step V
-msgid "GEOM_STEP_V"
-msgstr "Step V :"
-
-#Step U
-msgid "GEOM_STEP_U"
-msgstr "Step U :"
-
-#
-#==============================================================================
-#
-
-#Partition
-msgid "GEOM_PARTITION"
-msgstr "Partition"
-
-#Tolerance
-msgid "GEOM_TOLERANCE"
-msgstr "Tolerance"
-
-#Orientation
-msgid "GEOM_ORIENTATION"
-msgstr "Orientation"
-
-#Pipe
-msgid "GEOM_PIPE"
-msgstr "Pipe"
-
-#Revolution
-msgid "GEOM_REVOLUTION"
-msgstr "Revolution"
-
-#Rotation
-msgid "GEOM_ROTATION"
-msgstr "Rotation"
-
-#Archimede
-msgid "GEOM_ARCHIMEDE"
-msgstr "Archimede"
-
-#Common
-msgid "GEOM_COMMON"
-msgstr "Common"
-
-#Cut
-msgid "GEOM_CUT"
-msgstr "Cut"
-
-#Distance
-msgid "GEOM_DISTANCE"
-msgstr "Distance"
-
-#Filling
-msgid "GEOM_FILLING"
-msgstr "Filling"
-
-#Fuse
-msgid "GEOM_FUSE"
-msgstr "Fuse"
-
-#Scale
-msgid "GEOM_SCALE"
-msgstr "Scale"
-
-#Section
-msgid "GEOM_SECTION"
-msgstr "Section"
-
-#Sewing
-msgid "GEOM_SEWING"
-msgstr "Sewing"
-
-#Translation
-msgid "GEOM_TRANSLATION"
-msgstr "Translation"
-
-#Working Plane
-msgid "GEOM_WPLANE"
-msgstr "Working Plane"
-
-#Mirror
-msgid "GEOM_MIRROR"
-msgstr "Mirror"
-
-#Prism
-msgid "GEOM_PRISM"
-msgstr "Prism"
-
-#Sub Shapes
-msgid "GEOM_SUB_SHAPE"
-msgstr "Sub Shapes"
-
-#Supress Face
-msgid "GEOM_SUPRESSFACE"
-msgstr "Supress Face"
-
-#Fillet
-msgid "GEOM_FILLET"
-msgstr "Fillet"
-
-#Chamfer
-msgid "GEOM_CHAMFER"
-msgstr "Chamfer"
-
-#Check Shape
-msgid "GEOM_CHECK_SHAPE"
-msgstr "Check Shape"
-
-#Whatis
-msgid "GEOM_WHATIS"
-msgstr "Whatis"
-
-#Bounding Box
-msgid "GEOM_BNDBOX"
-msgstr "Bounding Box"
-
-#Center Of Mass
-msgid "GEOM_CMASS"
-msgstr "Center Of Mass"
-
-#Basic Properties
-msgid "GEOM_PROPERTIES"
-msgstr "Basic Properties"
-
-#Multi-Translation
-msgid "GEOM_MULTITRANSLATION"
-msgstr "Multi-Translation"
-
-#Multi-Rotation
-msgid "GEOM_MULTIROTATION"
-msgstr "Multi-Rotation"
-
-#
-#==============================================================================
-#
-
-#Arc
-msgid "GEOM_ARC"
-msgstr "Arc"
-
-#Box
-msgid "GEOM_BOX"
-msgstr "Box"
-
-#Circle
-msgid "GEOM_CIRCLE"
-msgstr "Circle"
-
-#Ellipse
-msgid "GEOM_ELLIPSE"
-msgstr "Ellipse"
-
-msgid "GEOM_ELLIPSE_TITLE"
-msgstr "Ellipse Construction"
-
-#Radius major
-msgid "GEOM_RADIUS_MAJOR"
-msgstr "Major radius :"
-
-#Radius minor
-msgid "GEOM_RADIUS_MINOR"
-msgstr "Minor radius :"
-
-#Compound
-msgid "GEOM_COMPOUND"
-msgstr "Compound"
-
-#CompSolid
-msgid "GEOM_COMPOUNDSOLID"
-msgstr "CompSolid"
-
-#Cone
-msgid "GEOM_CONE"
-msgstr "Cone"
-
-#Cylinder
-msgid "GEOM_CYLINDER"
-msgstr "Cylinder"
-
-#Edge
-msgid "GEOM_EDGE"
-msgstr "Edge"
-
-#Face
-msgid "GEOM_FACE"
-msgstr "Face"
-
-#Faces
-msgid "GEOM_FACES"
-msgstr "Faces"
-
-#Line
-msgid "GEOM_LINE"
-msgstr "Line"
-
-#Plane
-msgid "GEOM_PLANE"
-msgstr "Plane"
-
-#Shape
-msgid "GEOM_SHAPE"
-msgstr "Shape"
-
-#Shell
-msgid "GEOM_SHELL"
-msgstr "Shell"
-
-#Solid
-msgid "GEOM_SOLID"
-msgstr "Solid"
-
-#Sphere
-msgid "GEOM_SPHERE"
-msgstr "Sphere"
-
-#Conical Face
-msgid "GEOM_SURFCONE"
-msgstr "Conical Face"
-
-#Cylindrical Face
-msgid "GEOM_SURFCYLINDER"
-msgstr "Cylindrical Face"
-
-#Spherical Face
-msgid "GEOM_SURFSPHERE"
-msgstr "Spherical Face"
-
-#Toroidal Face
-msgid "GEOM_SURFTORUS"
-msgstr "Toroidal Face"
-
-#Torus
-msgid "GEOM_TORUS"
-msgstr "Torus"
-
-#Vector
-msgid "GEOM_VECTOR"
-msgstr "Vector"
-
-#Vector U
-msgid "GEOM_VECTOR_U"
-msgstr "Vector U"
-
-#Vector V
-msgid "GEOM_VECTOR_V"
-msgstr "Vector V"
-
-#Vertex
-msgid "GEOM_VERTEX"
-msgstr "Vertex"
-
-#Wire
-msgid "GEOM_WIRE"
-msgstr "Wire"
-
-#Parameter
-msgid "GEOM_PARAMETER"
-msgstr "Parameter :"
-
-#
-#==============================================================================
-#
-
-#Min
-msgid "GEOM_MIN"
-msgstr "Min :"
-
-#Max
-msgid "GEOM_MAX"
-msgstr "Max :"
-
-#X
-msgid "GEOM_X"
-msgstr "X :"
-
-#Y
-msgid "GEOM_Y"
-msgstr "Y :"
-
-#Z
-msgid "GEOM_Z"
-msgstr "Z :"
-
-#DX
-msgid "GEOM_DX"
-msgstr "Dx :"
-
-#DY
-msgid "GEOM_DY"
-msgstr "Dy :"
-
-#DZ
-msgid "GEOM_DZ"
-msgstr "Dz :"
-
-#D1
-msgid "GEOM_D1"
-msgstr "D1 :"
-
-#D2
-msgid "GEOM_D2"
-msgstr "D2 :"
-
-#
-#==============================================================================
-#
-
-#: GeometryGUI.cxx
-msgid "GEOM_STEP_TITLE"
-msgstr "Step value for GUI constructions"
-
-#: GeometryGUI_ArcDlg.cxx:45
-msgid "GEOM_ARC_TITLE"
-msgstr "Arc Construction"
-
-#: GeometryGUI_ArchimedeDlg.cxx:55
-msgid "GEOM_ARCHIMEDE_TITLE"
-msgstr "Archimede Construction"
-
-#: GeometryGUI_BndBoxDlg.cxx:59
-msgid "GEOM_BNDBOX_TITLE"
-msgstr "Bounding Box Informations"
-
-#: GeometryGUI_BndBoxDlg.cxx:82
-msgid "GEOM_BNDBOX_OBJDIM"
-msgstr "Object And Its Dimensions"
-
-#: GeometryGUI_BoxDlg.cxx:50
-msgid "GEOM_BOX_TITLE"
-msgstr "Box Construction"
-
-#: GeometryGUI_BoxDlg.cxx:50
-msgid "GEOM_BOX_OBJ"
-msgstr "Dimensions At Origin"
-
-#: GeometryGUI_ChamferDlg.cxx:58
-msgid "GEOM_CHAMFER_TITLE"
-msgstr "Chamfer Construction"
-
-#: GeometryGUI_ChamferDlg.cxx:58
-msgid "GEOM_CHAMFER_ALL"
-msgstr "Chamfer On Whole Shape"
-
-#: GeometryGUI_ChamferDlg.cxx:58
-msgid "GEOM_CHAMFER_EDGES"
-msgstr "Chamfer On Edges From Shape"
-
-#: GeometryGUI_ChamferDlg.cxx:58
-msgid "GEOM_CHAMFER_FACES"
-msgstr "Chamfer On Faces From Shape"
-
-#: GeometryGUI_CircleDlg.cxx:48
-msgid "GEOM_CIRCLE_TITLE"
-msgstr "Circle Construction"
-
-#: GeometryGUI_CenterMassDlg.cxx:77
-msgid "GEOM_CMASS_TITLE"
-msgstr "Center Of Mass Construction"
-
-msgid "GEOM_PLANE_SIZE"
-msgstr "Size of plane :"
-
-#: GeometryGUI_CommonDlg.cxx:47
-msgid "GEOM_COMMON_TITLE"
-msgstr "BOOLEAN : Common Of Two Objects"
-
-#: GeometryGUI_CompoundDlg.cxx:44
-msgid "GEOM_COMPOUND_TITLE"
-msgstr "Create A Compound"
-
-#: GeometryGUI_ConeDlg.cxx:49
-msgid "GEOM_CONE_TITLE"
-msgstr "Cone Construction"
-
-#: GeometryGUI_CutDlg.cxx:48
-msgid "GEOM_CUT_TITLE"
-msgstr "BOOLEAN : Cut Of Two Objects"
-#
-#: GeometryGUI_CylinderDlg.cxx:47
-msgid "GEOM_CYLINDER_TITLE"
-msgstr "Cylinder Construction"
-
-#: GeometryGUI_CheckShape.cxx:60
-msgid "GEOM_CHECK_TITLE"
-msgstr "Check Shape Informations"
-
-#: GeometryGUI_CheckShape.cxx:83
-msgid "GEOM_CHECK_INFOS"
-msgstr "Object And Its Topological Informations"
-
-#: GeometryGUI_DistanceDlg.cxx:57
-msgid "GEOM_MINDIST_TITLE"
-msgstr "Minimun Distance Between Two Objects"
-
-#: GeometryGUI_DistanceDlg.cxx:57
-msgid "GEOM_MINDIST_OBJ"
-msgstr "Objects And Results"
-
-#: GeometryGUI_EdgeDlg.cxx:47
-msgid "GEOM_EDGE_TITLE"
-msgstr "Create An Edge"
-
-#: GeometryGUI_FilletDlg.cxx:58
-msgid "GEOM_FILLET_TITLE"
-msgstr "Fillet Construction"
-
-#: GeometryGUI_FilletDlg.cxx:58
-msgid "GEOM_FILLET_ALL"
-msgstr "Fillet On Whole Shape"
-
-#: GeometryGUI_FilletDlg.cxx:58
-msgid "GEOM_FILLET_EDGES"
-msgstr "Fillet On Edges From Shape"
-
-#: GeometryGUI_FilletDlg.cxx:58
-msgid "GEOM_FILLET_FACES"
-msgstr "Fillet On Faces From Shape"
-
-#: GeometryGUI_FaceDlg.cxx:49
-msgid "GEOM_FACE_TITLE"
-msgstr "Create A Face"
-
-#: GeometryGUI_FaceDlg.cxx:78
-msgid "GEOM_FACE_FFW"
-msgstr "Face from a wire"
-
-#: GeometryGUI_FaceDlg.cxx:103
-msgid "GEOM_FACE_OPT"
-msgstr "Try to create a planar face"
-
-#: GeometryGUI_FillingDlg.cxx:53
-msgid "GEOM_FILLING_TITLE"
-msgstr "Filling Surface With Curves"
-
-#: GeometryGUI_FillingDlg.cxx:112
-msgid "GEOM_FILLING_ARG"
-msgstr "Arguments And Parameters"
-
-#: GeometryGUI_FillingDlg.cxx:128
-msgid "GEOM_FILLING_MIN_DEG"
-msgstr "Min deg"
-
-#: GeometryGUI_FillingDlg.cxx:142
-msgid "GEOM_FILLING_MAX_DEG"
-msgstr "Max deg"
-
-#: GeometryGUI_FillingDlg.cxx:150
-msgid "GEOM_FILLING_TOL_2D"
-msgstr "Tol. 2D :"
-
-#: GeometryGUI_FillingDlg.cxx:170
-msgid "GEOM_FILLING_COMPOUND"
-msgstr "Curves Comp."
-
-#: GeometryGUI_FillingDlg.cxx:184
-msgid "GEOM_FILLING_TOL_3D"
-msgstr "Tol. 3D :"
-
-#: GeometryGUI_FillingDlg.cxx:192
-msgid "GEOM_FILLING_NB_ITER"
-msgstr "Nb. Iter :"
-
-#: GeometryGUI_FuseDlg.cxx:48
-msgid "GEOM_FUSE_TITLE"
-msgstr "BOOLEAN : Fuse Two Objects"
-
-#: GeometryGUI_InertiaDlg.cxx:42
-msgid "GEOM_INERTIA_TITLE"
-msgstr "Calculs Of Inertia"
-
-#: GeometryGUI_InertiaDlg.cxx:50
-msgid "GEOM_INERTIA_CONSTR"
-msgstr "Matrix And Moments Of Inertia"
-
-#: GeometryGUI_InertiaDlg.cxx:100
-msgid "GEOM_INERTIA_I"
-msgstr "%1:1 :"
-
-#: GeometryGUI_InertiaDlg.cxx:182
-msgid "GEOM_INERTIA_IXYZ"
-msgstr "IX & IY & IZ :"
-
-#: GeometryGUI_LineDlg.cxx:50
-msgid "GEOM_LINE_TITLE"
-msgstr "Line Construction"
-
-#: GeometryGUI_MaxToleranceDlg.cxx:53
-msgid "GEOM_TOLERANCE_TITLE"
-msgstr "Maximum Tolerance"
-
-#: GeometryGUI_MaxToleranceDlg.cxx:84
-msgid "GEOM_TOLERANCE_CONSTR"
-msgstr "Object And Its Tolerances"
-
-#: GeometryGUI_MaxToleranceDlg.cxx:121
-msgid "GEOM_TOLERANCE_FACE"
-msgstr "Face :"
-
-#: GeometryGUI_MaxToleranceDlg.cxx:138
-msgid "GEOM_TOLERANCE_EDGE"
-msgstr "Edge :"
-
-#: GeometryGUI_MaxToleranceDlg.cxx:155
-msgid "GEOM_TOLERANCE_VERTEX"
-msgstr "Vertex :"
-
-#: GeometryGUI_MirrorDlg.cxx:52
-msgid "GEOM_MIRROR_TITLE"
-msgstr "Mirror An Object"
-
-#: GeometryGUI_OrientationDlg.cxx:46
-msgid "GEOM_ORIENTATION_TITLE"
-msgstr "Change Orientation"
-
-#: GeometryGUI_OrientationDlg.cxx:134
-msgid "GEOM_ORIENTATION_OPT"
-msgstr "Reverse orientation with normal vectors simulation"
-
-#: GeometryGUI_PartitionDlg.cxx:45
-msgid "GEOM_PARTITION_TITLE"
-msgstr "Partition Of Object With Tool"
-
-#: GeometryGUI_PartitionDlg.cxx:45
-msgid "GEOM_KEEP_OBJECT"
-msgstr "Keep Object"
-
-#: GeometryGUI_PartitionDlg.cxx:45
-msgid "GEOM_PARTITION_ORIENTATION"
-msgstr "Change Orientation"
-
-#: GeometryGUI_PipeDlg.cxx:47
-msgid "GEOM_PIPE_TITLE"
-msgstr "Pipe Construction"
-
-#: GeometryGUI_PointDlg.cxx:52
-msgid "GEOM_POINT_TITLE"
-msgstr "Point Construction"
-
-#: GeometryGUI_PlaneDlg.cxx:60
-msgid "GEOM_PLANE_TITLE"
-msgstr "Plane Construction"
-
-#: GeometryGUI_PlaneDlg.cxx:172
-msgid "GEOM_PLANE_PVC"
-msgstr "Point + Coordinate Vector"
-
-#: GeometryGUI_PlaneDlg.cxx:133
-msgid "GEOM_PLANE_PV"
-msgstr "Point + Vector"
-
-#: GeometryGUI_PrismDlg.cxx:54
-msgid "GEOM_PRISM_TITLE"
-msgstr "Prism Construction"
-
-#: GeometryGUI_PrismDlg.cxx:83
-msgid "GEOM_PRISM_BSV"
-msgstr "Base Shape + Vector"
-
-#: GeometryGUI_PropertiesDlg.cxx:56
-msgid "GEOM_PROPERTIES_TITLE"
-msgstr "Basic Properties Informations"
-
-#: GeometryGUI_PropertiesDlg.cxx:78
-msgid "GEOM_PROPERTIES_CONSTR"
-msgstr "Object And Its Properties"
-
-#: GeometryGUI_PropertiesDlg.cxx:114
-msgid "GEOM_PROPERTIES_SURFACE"
-msgstr "Surface is :"
-
-#: GeometryGUI_PropertiesDlg.cxx:120
-msgid "GEOM_PROPERTIES_VOLUME"
-msgstr "Volume is :"
-
-#: GeometryGUI_RevolDlg.cxx:49
-msgid "GEOM_REVOLUTION_TITLE"
-msgstr "Construction By Revolution"
-
-#: GeometryGUI_RotationDlg.cxx:51
-msgid "GEOM_ROTATION_TITLE"
-msgstr "Rotation Of An Object"
-
-#: GeometryGUI_ScaleDlg.cxx:52
-msgid "GEOM_SCALE_TITLE"
-msgstr "Scale An Object"
-
-#: GeometryGUI_ScaleDlg.cxx:117
-msgid "GEOM_SCALE_FACTOR"
-msgstr "Scale Factor :"
-
-#: GeometryGUI_SectionDlg.cxx:50
-msgid "GEOM_SECTION_TITLE"
-msgstr "BOOLEAN : Section Of Two Objects"
-
-#: GeometryGUI_SewingDlg.cxx:48
-msgid "GEOM_SEWING_TITLE"
-msgstr "Sewing Topologies"
-
-#: GeometryGUI_ShellDlg.cxx:53
-msgid "GEOM_SHELL_TITLE"
-msgstr "Shell Construction"
-
-#: GeometryGUI_SolidDlg.cxx:74
-msgid "GEOM_SOLID_TITLE"
-msgstr "Solid Construction"
-
-#: GeometryGUI_SphereDlg.cxx:50
-msgid "GEOM_SPHERE_TITLE"
-msgstr "Sphere Construction"
-
-#: GeometryGUI_SphereDlg.cxx:113
-msgid "GEOM_SPHERE_CR"
-msgstr "Center + Radius"
-
-#: GeometryGUI_SphereDlg.cxx:146
-msgid "GEOM_SPHERE_RO"
-msgstr "Radius At Origin"
-
-#: GeometryGUI_SubShapeDlg.cxx:55
-msgid "GEOM_SUBSHAPE_TITLE"
-msgstr "Sub Shapes Selection"
-
-#: GeometryGUI_SubShapeDlg.cxx:131
-msgid "GEOM_SUBSHAPE_TYPE"
-msgstr "Sub Shapes Type :"
-
-#: GeometryGUI_SubShapeDlg.cxx:137
-msgid "GEOM_SUBSHAPE_SELECT"
-msgstr "Select Sub Shapes"
-
-#: GeometryGUI_TorusDlg.cxx:51
-msgid "GEOM_TORUS_TITLE"
-msgstr "Torus Construction"
-
-#: GeometryGUI_SuppressFacesDlg.cxx:103
-msgid "GEOM_SUPRESSFACE_TITLE"
-msgstr "Suppress Faces In An Object"
-
-#: GeometryGUI_SuppressFacesDlg.cxx:164
-msgid "GEOM_SUPRESSFACE_SELECT"
-msgstr "Select Faces To Suppress"
-
-#: GeometryGUI_TranslationDlg.cxx:78
-msgid "GEOM_TRANSLATION_COOR"
-msgstr "Translation With Coordinates"
-
-msgid "GEOM_TRANSPARENCY_TITLE"
-msgstr "Transparency"
-
-msgid "GEOM_TRANSPARENCY_OPAQUE"
-msgstr "Opaque"
-
-msgid "GEOM_TRANSPARENCY_TRANSPARENT"
-msgstr "Transparent"
-
-msgid "GEOM_SUPPRESSHOLE_TITLE"
-msgstr "Suppress holes"
-
-msgid "GEOM_SUPPRESSHOLE_SELECTFACE"
-msgstr "Select the face with hole"
-
-msgid "GEOM_SUPPRESSHOLE_SELECTWIRE"
-msgstr "Select wire on face"
-
-msgid "GEOM_SUPPRESSHOLE_SELECTFACE_END"
-msgstr "Select end face (if hole traversing)"
-
-msgid "GEOM_SUPPRESSHOLE_SELECTWIRE_END"
-msgstr "Select end wire (if hole traversing)"
-
-msgid "GEOM_SUPPRESSHOLE_FACE_SHELL"
-msgstr "Face or shell"
-
-msgid "GEOM_SUPPRESSHOLE_SELECT_HOLES_ON_FACE"
-msgstr "Select hole(s) on the face"
-
-#: GeometryGUI_TranslationDlg.cxx:56
-msgid "GEOM_TRANSLATION_TITLE"
-msgstr "Translation Of An Object"
-
-#: GeometryGUI_VectorDlg.cxx:54
-msgid "GEOM_VECTOR_TITLE"
-msgstr "Vector Construction"
-
-#: GeometryGUI_WhatisDlg.cxx:63
-msgid "GEOM_WHATIS_TITLE"
-msgstr "Whatis Informations"
-
-#: GeometryGUI_WhatisDlg.cxx:86
-msgid "GEOM_WHATIS_OBJECT"
-msgstr "Object And Its Topological Informations"
-
-#: GeometryGUI_WireDlg.cxx:46
-msgid "GEOM_WIRE_TITLE"
-msgstr "Create A Wire"
-
-#: GeometryGUI_WireDlg.cxx:103
-msgid "GEOM_WIRE_CONNECT"
-msgstr "Wire creation from wires/edges connected"
-
-#: GeometryGUI_WorkingPlaneDlg.cxx:50
-msgid "GEOM_WPLANE_TITLE"
-msgstr "Working Plane Selection"
-
-#: GeometryGUI_WorkingPlaneDlg.cxx:107
-msgid "GEOM_WPLANE_FACE"
-msgstr "Plane Or Planar Face"
-
-#: GeometryGUI_multiTranslationDlg.cxx:107
-msgid "GEOM_MULTITRANSLATION_TITLE"
-msgstr "Multi-Translation"
-
-#: GeometryGUI_multiTranslationDlg.cxx:107
-msgid "GEOM_MULTITRANSLATION_SIMPLE"
-msgstr "Multi Translation Simple"
-
-#: GeometryGUI_multiTranslationDlg.cxx:107
-msgid "GEOM_MULTITRANSLATION_DOUBLE"
-msgstr "Multi Translation Double"
-
-#: GeometryGUI_multiRotationDlg.cxx:107
-msgid "GEOM_MULTIROTATION_TITLE"
-msgstr "Multi-Rotation"
-
-#: GeometryGUI_multiRotationDlg.cxx:107
-msgid "GEOM_MULTIROTATION_SIMPLE"
-msgstr "Multi Rotation Simple"
-
-#: GeometryGUI_multiRotationDlg.cxx:107
-msgid "GEOM_MULTIROTATION_DOUBLE"
-msgstr "Multi Rotation Double"
-
-msgid "GEOM_PARAM_POINT"
-msgstr "Parametric point"
-
-
-#
-#==============================================================================
-#
-
-#: GeometryGUI.cxx:4613
-msgid "GEOM_MEN_WIREFRAME"
-msgstr "Wireframe"
-
-#: GeometryGUI.cxx:4613
-msgid "GEOM_MEN_SHADING"
-msgstr "\nShading"
-
-msgid "GeometryGUI_PartitionDlg::RECONSTRUCTION_LIMIT"
-msgstr "Reconstruction Limit"
-
-msgid "GeometryGUI_PartitionDlg::SUPPRESS_RESULT"
-msgstr "Suppress Result"
-
-msgid "GeometryGUI_PartitionDlg::SUPPRESS_RESULT_INSIDE"
-msgstr "Inside"
-
-msgid "GeometryGUI_PartitionDlg::SUPPRESS_RESULT_OUTSIDE"
-msgstr "Outside"
-
-msgid "GeometryGUI_PartitionDlg::RECONSTRUCTION_LIMIT_SHAPE"
-msgstr "Shape"
-msgid "GeometryGUI_PartitionDlg::RECONSTRUCTION_LIMIT_SOLID"
-msgstr "Solid"
-msgid "GeometryGUI_PartitionDlg::RECONSTRUCTION_LIMIT_SHELL"
-msgstr "Shell"
-msgid "GeometryGUI_PartitionDlg::RECONSTRUCTION_LIMIT_FACE"
-msgstr "Face"
-msgid "GeometryGUI_PartitionDlg::RECONSTRUCTION_LIMIT_WIRE"
-msgstr "Wire"
-msgid "GeometryGUI_PartitionDlg::RECONSTRUCTION_LIMIT_EDGE"
-msgstr "Edge"
-msgid "GeometryGUI_PartitionDlg::RECONSTRUCTION_LIMIT_VERTEX"
-msgstr "Vertex"
+++ /dev/null
-# This is a Qt message file in .po format. Each msgid starts with
-# a scope. This scope should *NOT* be translated - eg. translating
-# from French to English, "Foo::Bar" would be translated to "Pub",
-# not "Foo::Pub".
-msgid ""
-msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2002-03-19 09:35:48 AM CET\n"
-"PO-Revision-Date: YYYY-MM-DD\n"
-"Last-Translator: FULLNAME <EMAIL@ADDRESS>\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-
-#
-#==============================================================================
-#
-
-#Button Apply
-msgid "GEOM_BUT_APPLY"
-msgstr "&Appliquer"
-
-#Button Close
-msgid "GEOM_BUT_CLOSE"
-msgstr "&Fermer"
-
-#Button Cancel
-msgid "GEOM_BUT_CANCEL"
-msgstr "&Annuler"
-
-#Button Ok
-msgid "GEOM_BUT_OK"
-msgstr "&Ok"
-
-#Button Yes
-msgid "GEOM_BUT_YES"
-msgstr "&Oui"
-
-#Button Help
-msgid "GEOM_BUT_HELP"
-msgstr "&Aide"
-
-
-#Button Explode
-msgid "GEOM_BUT_EXPLODE"
-msgstr "&Exploser"
-
-#
-#==============================================================================
-#
-
-#: GeometryGUI.cxx:563
-msgid "GEOM_INF_LOADED"
-msgstr "Le fichier %1 est chargé."
-
-#
-#==============================================================================
-#
-
-#: GeometryGUI.cxx:3069
-msgid "GEOM_PRP_COMMAND"
-msgstr "Pas de commande associée à l'id = %1."
-
-#: GeometryGUI.cxx:4977
-msgid "GEOM_PRP_ABORT"
-msgstr "L'opération a echoué"
-
-#: GeometryGUI.cxx:5058
-msgid "GEOM_PRP_DONE"
-msgstr "Opération effectuée"
-
-#: GeometryGUI.cxx:3717
-msgid "GEOM_PRP_LOADING"
-msgstr "Chargement de %1 ..."
-
-#: GeometryGUI.cxx:1412
-msgid "GEOM_PRP_NULLSHAPE"
-msgstr "Erreur, objet inconsistant ou inapproprié !"
-
-#: GeometryGUI.cxx:5072
-msgid "GEOM_PRP_READY"
-msgstr "Prêt..."
-
-#: GeometryGUI.cxx:1690
-msgid "GEOM_PRP_SELECT_SUBSHAPES"
-msgstr "Selection de sous objets"
-
-msgid "GEOM_CONFIRM"
-msgstr "Confirmer cette operation"
-
-msgid "GEOM_CONFIRM_INFO"
-msgstr "L'objet contient %1 sous objets"
-
-
-msgid "GEOM_PRP_NOT_FOR_VTK_VIEWER"
-msgstr "Non permis dans viewer VTK"
-
-#: GeometryGUI.cxx:1690
-msgid "GEOM_PRP_SHAPE_IN_STUDY"
-msgstr "La shape principale doit etre avant dans l'etude"
-
-#: GeometryGUI.cxx:1690
-msgid "GEOM_PRP_SELECT_EDGE"
-msgstr "Selectionner les edges et clicker sur Apply"
-
-#: GeometryGUI.cxx:1690
-msgid "GEOM_PRP_SELECT_FACE"
-msgstr "Select les faces a supprimer et clicker sur Ok/Apply"
-
-#: GeometryGUI.cxx:1690
-msgid "GEOM_PRP_SELECT_FIRST"
-msgstr "Selectionner la shape principale en premier"
-
-#: GeometryGUI.cxx:1690
-msgid "GEOM_PRP_MIN_DIST"
-msgstr "Min Distance non calculer"
-
-#
-#==============================================================================
-#
-
-#: GeometryGUI.cxx:3698
-msgid "GEOM_MEN_ALL_FILES"
-msgstr "Tous fichiers ( * )"
-
-#: GeometryGUI.cxx:4389
-msgid "GEOM_MEN_ANGLE"
-msgstr "Angle :"
-
-#: GeometryGUI.cxx:3941
-msgid "GEOM_MEN_COMPONENT"
-msgstr "Géometrie"
-
-#: GeometryGUI.cxx:4389
-msgid "GEOM_MEN_ENTER_ANGLE"
-msgstr "Saisir un angle en degrés"
-
-#: GeometryGUI.cxx:3758
-msgid "GEOM_MEN_EXPORT"
-msgstr "Exporter"
-
-#: GeometryGUI.cxx:3648
-msgid "GEOM_MEN_IMPORT"
-msgstr "Importer"
-
-#: GeometryGUI.cxx:3761
-msgid "GEOM_MEN_IMPORT_BREP"
-msgstr "Fichiers BREP ( *.brep )"
-
-#: GeometryGUI.cxx:3762
-msgid "GEOM_MEN_IMPORT_IGES"
-msgstr "Fichiers IGES ( *.iges *.igs )"
-
-#: GeometryGUI.cxx:3763
-msgid "GEOM_MEN_IMPORT_STEP"
-msgstr "Fichiers STEP ( *.step *.stp )"
-
-#: GeometryGUI.cxx:2931
-msgid "GEOM_MEN_ISOS"
-msgstr "Choisir un nombre d'isos"
-
-#: GeometryGUI.cxx:4278
-msgid "GEOM_MEN_POPUP_NAME"
-msgstr "%1 Objets"
-
-#: GeometryGUI.cxx:4414
-msgid "GEOM_MEN_SKETCHER_X"
-msgstr "Saisir une longueur pour fixer X"
-
-#: GeometryGUI.cxx:4438
-msgid "GEOM_MEN_SKETCHER_Y"
-msgstr "Saisir une longueur pour fixer Y"
-
-#: GeometryGUI.cxx:2898
-msgid "GEOM_MEN_TRANSPARENCY"
-msgstr "Transparence"
-
-#: GeometryGUI.cxx:4413
-msgid "GEOM_MEN_X"
-msgstr "X :"
-
-#: GeometryGUI.cxx:4437
-msgid "GEOM_MEN_Y"
-msgstr "Y :"
-
-#: GeometryGUI_NbIsosDlg.cxx:36
-msgid "GEOM_MEN_ISOU"
-msgstr "Isos u :"
-
-#: GeometryGUI_NbIsosDlg.cxx:53
-msgid "GEOM_MEN_ISOV"
-msgstr "Isos v :"
-
-#: GeometryGUI_TransparencyDlg.cxx:31
-msgid "GEOM_MEN_TRANSPARENCY_LABEL"
-msgstr "Transparence :"
-
-msgid "GEOM_MEN_STEP_LABEL"
-msgstr "Increment"
-
-msgid "GEOM_IDENTICAL_NAMES_SELECT_BY_MOUSE"
-msgstr "Noms identiques : selectionner avec la souris !"
-
-msgid "GEOM_NAME_INCORRECT"
-msgstr "Le nom saisi n'existe pas"
-
-
-
-#
-#==============================================================================
-#
-
-#: GeometryGUI.cxx:892
-msgid "GEOM_WRN_RADIUS_NULL"
-msgstr "Le rayon est nul"
-
-#: GeometryGUI.cxx:3854
-msgid "GEOM_WRN_WARNING"
-msgstr "Avertissement"
-
-#
-#==============================================================================
-#
-
-#Object
-msgid "GEOM_OBJECT"
-msgstr "Objet"
-
-#Main object
-msgid "GEOM_MAIN_OBJECT"
-msgstr "Objet Principal"
-
-#Tool object
-msgid "GEOM_TOOL_OBJECT"
-msgstr "Objet Outil"
-
-#Base Object
-msgid "GEOM_BASE_OBJECT"
-msgstr "Objet De Base"
-
-#Path Object
-msgid "GEOM_PATH_OBJECT"
-msgstr "Objet Chemin"
-
-#Objects
-msgid "GEOM_OBJECTS"
-msgstr "Objets"
-
-#Object i
-msgid "GEOM_OBJECT_I"
-msgstr "Objet %1"
-
-#Object and result
-msgid "GEOM_OBJECT_RESULT"
-msgstr "Objet Et Résultat"
-
-#Point
-msgid "GEOM_POINT"
-msgstr "Point"
-
-#Base point
-msgid "GEOM_BASE_POINT"
-msgstr "Point De Base"
-
-#Center Point
-msgid "GEOM_CENTER_POINT"
-msgstr "Point Centre"
-
-#Diagonal Points
-msgid "GEOM__DIAGONAL_POINTS"
-msgstr "Points Diagonaux"
-
-#Central Point
-msgid "GEOM_CENTRAL_POINT"
-msgstr "Point Central"
-
-#Points
-msgid "GEOM_POINTS"
-msgstr "Points"
-
-#Point i
-msgid "GEOM_POINT_I"
-msgstr "Point %1"
-
-#Arguments
-msgid "GEOM_ARGUMENTS"
-msgstr "Arguments"
-
-#Center
-msgid "GEOM_CENTER"
-msgstr "Centre"
-
-#Radius
-msgid "GEOM_RADIUS"
-msgstr "Rayon"
-
-#Radius i
-msgid "GEOM_RADIUS_I"
-msgstr "Rayon %1"
-
-#Height
-msgid "GEOM_HEIGHT"
-msgstr "Hauteur"
-
-#Length
-msgid "GEOM_LENGTH"
-msgstr "Longueur :"
-
-#Weight
-msgid "GEOM_WEIGHT"
-msgstr "poids"
-
-#Coordinates
-msgid "GEOM_COORDINATES"
-msgstr "Coordonnées"
-
-#Coor.
-msgid "GEOM_COOR"
-msgstr "Coord. :"
-
-#Reverse
-msgid "GEOM_REVERSE"
-msgstr "Renverser"
-
-#Reverse U
-msgid "GEOM_REVERSE_U"
-msgstr "Renverser U"
-
-#Reverse V
-msgid "GEOM_REVERSE_V"
-msgstr "Reverser V"
-
-#Angle
-msgid "GEOM_ANGLE"
-msgstr "Angle :"
-
-#Axis
-msgid "GEOM_AXIS"
-msgstr "Axe"
-
-#Matrix
-msgid "GEOM_MATRIX"
-msgstr "Matrice :"
-
-#Vector Length
-msgid "GEOM_VECTOR_LENGTH"
-msgstr "Longueur Du Vecteur :"
-
-#Reverse Vector
-msgid "GEOM_REVERSE_VECTOR"
-msgstr "Renverser Le Vecteur"
-
-#Plane Mirror
-msgid "GEOM_PLANE_MIRROR"
-msgstr "Plan Miroir"
-
-#Face Selection
-msgid "GEOM_FACE_SELECTION"
-msgstr "Selection de Face"
-
-#Base
-msgid "GEOM_BASE"
-msgstr "Base"
-
-#Water Density
-msgid "GEOM_WATER_DENSITY"
-msgstr "Densité de l'eau :"
-
-#Meshing Deflection
-msgid "GEOM_MESHING_DEFLECTION"
-msgstr "Déflection Du Maillage :"
-
-#Dimensions
-msgid "GEOM_DIMENSIONS"
-msgstr "Dimensions"
-
-#Precision
-msgid "GEOM_PRECISION"
-msgstr "Précision :"
-
-#Selection
-msgid "GEOM_SELECTION"
-msgstr "Sélection"
-
-#Nb. Times
-msgid "GEOM_NB_TIMES"
-msgstr "Nb. Fois :"
-
-#Nb. Times U
-msgid "GEOM_NB_TIMES_U"
-msgstr "Nb. Fois U :"
-
-#Nb. Times V
-msgid "GEOM_NB_TIMES_V"
-msgstr "Nb. Fois V :"
-
-#Step
-msgid "GEOM_STEP"
-msgstr "Pas :"
-
-#Step V
-msgid "GEOM_STEP_V"
-msgstr "Pas V :"
-
-#Step U
-msgid "GEOM_STEP_U"
-msgstr "Pas U :"
-
-#
-#==============================================================================
-#
-
-#Partition
-msgid "GEOM_PARTITION"
-msgstr "Partition"
-
-#Tolerance
-msgid "GEOM_TOLERANCE"
-msgstr "Tolérance"
-
-#Orientation
-msgid "GEOM_ORIENTATION"
-msgstr "Orientation"
-
-#Pipe
-msgid "GEOM_PIPE"
-msgstr "Pipe"
-
-#Revolution
-msgid "GEOM_REVOLUTION"
-msgstr "Révolution"
-
-#Rotation
-msgid "GEOM_ROTATION"
-msgstr "Rotation"
-
-#Archimede
-msgid "GEOM_ARCHIMEDE"
-msgstr "Archimède"
-
-#Common
-msgid "GEOM_COMMON"
-msgstr "Joindre"
-
-#Cut
-msgid "GEOM_CUT"
-msgstr "Couper"
-
-#Distance
-msgid "GEOM_DISTANCE"
-msgstr "Distance"
-
-#Filling
-msgid "GEOM_FILLING"
-msgstr "Surface Par Courbes"
-
-#Fuse
-msgid "GEOM_FUSE"
-msgstr "Fusionner"
-
-#Scale
-msgid "GEOM_SCALE"
-msgstr "Echelle"
-
-#Section
-msgid "GEOM_SECTION"
-msgstr "Section"
-
-#Sewing
-msgid "GEOM_SEWING"
-msgstr "Coudre"
-
-#Translation
-msgid "GEOM_TRANSLATION"
-msgstr "Translation"
-
-#Working Plane
-msgid "GEOM_WPLANE"
-msgstr "Plan de Travail"
-
-#Mirror
-msgid "GEOM_MIRROR"
-msgstr "Miroir"
-
-#Prism
-msgid "GEOM_PRISM"
-msgstr "Extrusion"
-
-#Sub Shapes
-msgid "GEOM_SUB_SHAPE"
-msgstr "Sous Shapes"
-
-#Supress Face
-msgid "GEOM_SUPRESSFACE"
-msgstr "Supression de Face"
-
-#Fillet
-msgid "GEOM_FILLET"
-msgstr "Conge"
-
-#Chamfer
-msgid "GEOM_CHAMFER"
-msgstr "Chanfrein"
-
-#Check Shape
-msgid "GEOM_CHECK_SHAPE"
-msgstr "Check Shape"
-
-#Whatis
-msgid "GEOM_WHATIS"
-msgstr "Whatis"
-
-#Bounding Box
-msgid "GEOM_BNDBOX"
-msgstr "Boite Anglobante"
-
-#Center Of Mass
-msgid "GEOM_CMASS"
-msgstr "Centre de Masse"
-
-#Basic Properties
-msgid "GEOM_PROPERTIES"
-msgstr "Basiques Proprietes"
-
-#Multi-Translation
-msgid "GEOM_MULTITRANSLATION"
-msgstr "Multi-Translation"
-
-#Multi-Rotation
-msgid "GEOM_MULTIROTATION"
-msgstr "Multi-Rotation"
-
-#
-#==============================================================================
-#
-
-#Arc
-msgid "GEOM_ARC"
-msgstr "Arc"
-
-#Box
-msgid "GEOM_BOX"
-msgstr "Boite"
-
-#Circle
-msgid "GEOM_CIRCLE"
-msgstr "Cercle"
-
-#Compound
-msgid "GEOM_COMPOUND"
-msgstr "Compound"
-
-#CompSolid
-msgid "GEOM_COMPOUNDSOLID"
-msgstr "CompSolid"
-
-#Cone
-msgid "GEOM_CONE"
-msgstr "Cone"
-
-#Cylinder
-msgid "GEOM_CYLINDER"
-msgstr "Cylindre"
-
-#Edge
-msgid "GEOM_EDGE"
-msgstr "Edge"
-
-#Face
-msgid "GEOM_FACE"
-msgstr "Face"
-
-#Faces
-msgid "GEOM_FACES"
-msgstr "Faces"
-
-#Line
-msgid "GEOM_LINE"
-msgstr "Ligne"
-
-#Plane
-msgid "GEOM_PLANE"
-msgstr "Plan"
-
-#Shape
-msgid "GEOM_SHAPE"
-msgstr "Shape"
-
-#Shell
-msgid "GEOM_SHELL"
-msgstr "Shell"
-
-#Solid
-msgid "GEOM_SOLID"
-msgstr "Solide"
-
-#Sphere
-msgid "GEOM_SPHERE"
-msgstr "Sphère"
-
-#Conical Face
-msgid "GEOM_SURFCONE"
-msgstr "Face Conique"
-
-#Cylindrical Face
-msgid "GEOM_SURFCYLINDER"
-msgstr "Face Cylindrique"
-
-#Spherical Face
-msgid "GEOM_SURFSPHERE"
-msgstr "Face Sphèrique"
-
-#Toroidal Face
-msgid "GEOM_SURFTORUS"
-msgstr "Face Toroique"
-
-#Torus
-msgid "GEOM_TORUS"
-msgstr "Tore"
-
-#Vector
-msgid "GEOM_VECTOR"
-msgstr "Vecteur"
-
-#Vector U
-msgid "GEOM_VECTOR_U"
-msgstr "Vecteur U"
-
-#Vector V
-msgid "GEOM_VECTOR_V"
-msgstr "Vecteur V"
-
-#Vertex
-msgid "GEOM_VERTEX"
-msgstr "Vertex"
-
-#Wire
-msgid "GEOM_WIRE"
-msgstr "Wire"
-
-#Parameter
-msgid "GEOM_PARAMETER"
-msgstr "Paramètre :"
-
-
-#
-#==============================================================================
-#
-
-#Min
-msgid "GEOM_MIN"
-msgstr "Min :"
-
-#Max
-msgid "GEOM_MAX"
-msgstr "Max :"
-
-#X
-msgid "GEOM_X"
-msgstr "X :"
-
-#Y
-msgid "GEOM_Y"
-msgstr "Y :"
-
-#Z
-msgid "GEOM_Z"
-msgstr "Z :"
-
-#DX
-msgid "GEOM_DX"
-msgstr "Dx :"
-
-#DY
-msgid "GEOM_DY"
-msgstr "Dy :"
-
-#DZ
-msgid "GEOM_DZ"
-msgstr "Dz :"
-
-#D1
-msgid "GEOM_D1"
-msgstr "D1 :"
-
-#D2
-msgid "GEOM_D2"
-msgstr "D2 :"
-
-#
-#==============================================================================
-#
-
-#: GeometryGUI.cxx
-msgid "GEOM_STEP_TITLE"
-msgstr "Increment par défaut lors des constructions"
-
-#: GeometryGUI_ArcDlg.cxx:45
-msgid "GEOM_ARC_TITLE"
-msgstr "Construction d'un Arc"
-
-#: GeometryGUI_ArchimedeDlg.cxx:55
-msgid "GEOM_ARCHIMEDE_TITLE"
-msgstr "Construction d'Archimède"
-
-#: GeometryGUI_BndBoxDlg.cxx:59
-msgid "GEOM_BNDBOX_TITLE"
-msgstr "Boite Englobante"
-
-#: GeometryGUI_BndBoxDlg.cxx:82
-msgid "GEOM_BNDBOX_OBJDIM"
-msgstr "Objet and ses dimensions"
-
-#: GeometryGUI_BoxDlg.cxx:50
-msgid "GEOM_BOX_TITLE"
-msgstr "Construction d'une Boite"
-
-#: GeometryGUI_BoxDlg.cxx:50
-msgid "GEOM_BOX_OBJ"
-msgstr "Dimensions A l'Origine"
-
-#: GeometryGUI_ChamferDlg.cxx:58
-msgid "GEOM_CHAMFER_TITLE"
-msgstr "Construction d'un Chanfrein"
-
-#: GeometryGUI_ChamferDlg.cxx:58
-msgid "GEOM_CHAMFER_ALL"
-msgstr "Chanfrein sur toute la Shape"
-
-#: GeometryGUI_ChamferDlg.cxx:58
-msgid "GEOM_CHAMFER_EDGES"
-msgstr "Chanfrein sur Edges de la Shape"
-
-#: GeometryGUI_ChamferDlg.cxx:58
-msgid "GEOM_CHAMFER_FACES"
-msgstr "Chanfrein sur Faces de la Shape"
-
-#: GeometryGUI_CircleDlg.cxx:48
-msgid "GEOM_CIRCLE_TITLE"
-msgstr "Construction d'un Cercle"
-
-#: GeometryGUI_CenterMassDlg.cxx:77
-msgid "GEOM_CMASS_TITLE"
-msgstr "Centre De Gravité"
-
-msgid "GEOM_PLANE_SIZE"
-msgstr "Taille du plan :"
-
-#: GeometryGUI_CommonDlg.cxx:47
-msgid "GEOM_COMMON_TITLE"
-msgstr "BOOLEEN : Jonction De Deux Objets"
-
-#: GeometryGUI_CompoundDlg.cxx:44
-msgid "GEOM_COMPOUND_TITLE"
-msgstr "Création d'un Compound"
-
-#: GeometryGUI_ConeDlg.cxx:49
-msgid "GEOM_CONE_TITLE"
-msgstr "Construction d'un Cone"
-
-#: GeometryGUI_CutDlg.cxx:48
-msgid "GEOM_CUT_TITLE"
-msgstr "BOOLEEN : Couper Deux Objets"
-#
-#: GeometryGUI_CylinderDlg.cxx:47
-msgid "GEOM_CYLINDER_TITLE"
-msgstr "Construction d'un Cylindre"
-
-#: GeometryGUI_CheckShape.cxx:60
-msgid "GEOM_CHECK_TITLE"
-msgstr "Check Shape"
-
-#: GeometryGUI_CheckShape.cxx:83
-msgid "GEOM_CHECK_INFOS"
-msgstr "Objet et ses Informations Topologiques"
-
-#: GeometryGUI_DistanceDlg.cxx:57
-msgid "GEOM_MINDIST_TITLE"
-msgstr "Distance Minimale entre Deux Objets"
-
-#: GeometryGUI_DistanceDlg.cxx:57
-msgid "GEOM_MINDIST_OBJ"
-msgstr "Objets Et Resultats"
-
-#: GeometryGUI_EdgeDlg.cxx:47
-msgid "GEOM_EDGE_TITLE"
-msgstr "Création d'un Edge"
-
-#: GeometryGUI_FilletDlg.cxx:58
-msgid "GEOM_FILLET_TITLE"
-msgstr "Construction d'un Congé"
-
-#: GeometryGUI_FilletDlg.cxx:58
-msgid "GEOM_FILLET_ALL"
-msgstr "Congé sur toute la Shape"
-
-#: GeometryGUI_FilletDlg.cxx:58
-msgid "GEOM_FILLET_EDGES"
-msgstr "Congé sur Edges de la Shape"
-
-#: GeometryGUI_FilletDlg.cxx:58
-msgid "GEOM_FILLET_FACES"
-msgstr "Congé sur Faces de la Shape"
-
-#: GeometryGUI_FaceDlg.cxx:49
-msgid "GEOM_FACE_TITLE"
-msgstr "Création d'une Face"
-
-#: GeometryGUI_FaceDlg.cxx:78
-msgid "GEOM_FACE_FFW"
-msgstr "Face a partir d'un wire"
-
-#: GeometryGUI_FaceDlg.cxx:103
-msgid "GEOM_FACE_OPT"
-msgstr "Création d'une Face plane"
-
-#: GeometryGUI_FillingDlg.cxx:53
-msgid "GEOM_FILLING_TITLE"
-msgstr "Surface Par Courbes"
-
-#: GeometryGUI_FillingDlg.cxx:112
-msgid "GEOM_FILLING_ARG"
-msgstr "Argument Et Parametres"
-
-#: GeometryGUI_FillingDlg.cxx:128
-msgid "GEOM_FILLING_MIN_DEG"
-msgstr "Min. Deg"
-
-#: GeometryGUI_FillingDlg.cxx:142
-msgid "GEOM_FILLING_MAX_DEG"
-msgstr "Max. Deg"
-
-#: GeometryGUI_FillingDlg.cxx:150
-msgid "GEOM_FILLING_TOL_2D"
-msgstr "Tol. 2D"
-
-#: GeometryGUI_FillingDlg.cxx:170
-msgid "GEOM_FILLING_COMPOUND"
-msgstr "Compound de Courbes"
-
-#: GeometryGUI_FillingDlg.cxx:184
-msgid "GEOM_FILLING_TOL_3D"
-msgstr "Tol. 3D"
-
-#: GeometryGUI_FillingDlg.cxx:192
-msgid "GEOM_FILLING_NB_ITER"
-msgstr "Nb. Iter"
-
-#: GeometryGUI_FuseDlg.cxx:48
-msgid "GEOM_FUSE_TITLE"
-msgstr "BOOLEEN : Fusionner deux Objets"
-
-#: GeometryGUI_InertiaDlg.cxx:42
-msgid "GEOM_INERTIA_TITLE"
-msgstr "Calculs d'Inertie"
-
-#: GeometryGUI_InertiaDlg.cxx:50
-msgid "GEOM_INERTIA_CONSTR"
-msgstr "Matrice Et Moments d'Inertie"
-
-#: GeometryGUI_InertiaDlg.cxx:100
-msgid "GEOM_INERTIA_I"
-msgstr "%1:1"
-
-#: GeometryGUI_InertiaDlg.cxx:182
-msgid "GEOM_INERTIA_IXYZ"
-msgstr "IX & IY & IZ"
-
-#: GeometryGUI_LineDlg.cxx:50
-msgid "GEOM_LINE_TITLE"
-msgstr "Construction d'une Ligne"
-
-#: GeometryGUI_MaxToleranceDlg.cxx:53
-msgid "GEOM_TOLERANCE_TITLE"
-msgstr "Tolerance Maximale"
-
-#: GeometryGUI_MaxToleranceDlg.cxx:84
-msgid "GEOM_TOLERANCE_CONSTR"
-msgstr "Object et ses Tolerances"
-
-#: GeometryGUI_MaxToleranceDlg.cxx:121
-msgid "GEOM_TOLERANCE_FACE"
-msgstr "Face :"
-
-#: GeometryGUI_MaxToleranceDlg.cxx:138
-msgid "GEOM_TOLERANCE_EDGE"
-msgstr "Edge :"
-
-#: GeometryGUI_MaxToleranceDlg.cxx:155
-msgid "GEOM_TOLERANCE_VERTEX"
-msgstr "Vertex :"
-
-#: GeometryGUI_MirrorDlg.cxx:52
-msgid "GEOM_MIRROR_TITLE"
-msgstr "Methode Miroir"
-
-#: GeometryGUI_OrientationDlg.cxx:46
-msgid "GEOM_ORIENTATION_TITLE"
-msgstr "Changer l'Orientation"
-
-#: GeometryGUI_OrientationDlg.cxx:134
-msgid "GEOM_ORIENTATION_OPT"
-msgstr "Renverser l'orientation avec une simulation de vecteur normal"
-
-#: GeometryGUI_PartitionDlg.cxx:45
-msgid "GEOM_PARTITION_TITLE"
-msgstr "Partition d'Objects Avec Outils"
-
-#: GeometryGUI_PartitionDlg.cxx:45
-msgid "GEOM_KEEP_OBJECT"
-msgstr "Objet garde"
-
-#: GeometryGUI_PartitionDlg.cxx:45
-msgid "GEOM_PARTITION_ORIENTATION"
-msgstr "Change l'orientation"
-
-#: GeometryGUI_PipeDlg.cxx:47
-msgid "GEOM_PIPE_TITLE"
-msgstr "Construction d'une Pipe"
-
-#: GeometryGUI_PointDlg.cxx:52
-msgid "GEOM_POINT_TITLE"
-msgstr "Construction d'un Point"
-
-#: GeometryGUI_PlaneDlg.cxx:60
-msgid "GEOM_PLANE_TITLE"
-msgstr "Construction d'un Plan"
-
-#: GeometryGUI_PlaneDlg.cxx:172
-msgid "GEOM_PLANE_PVC"
-msgstr "Point + Vecteur Coordonnes"
-
-#: GeometryGUI_PlaneDlg.cxx:133
-msgid "GEOM_PLANE_PV"
-msgstr "Point + Vecteur"
-
-#: GeometryGUI_PrismDlg.cxx:54
-msgid "GEOM_PRISM_TITLE"
-msgstr "Extruder une Shape de base"
-
-#: GeometryGUI_PrismDlg.cxx:83
-msgid "GEOM_PRISM_BSV"
-msgstr "Shape de base + Vecteur"
-
-#: GeometryGUI_PropertiesDlg.cxx:56
-msgid "GEOM_PROPERTIES_TITLE"
-msgstr "Proprietes Basiques"
-
-#: GeometryGUI_PropertiesDlg.cxx:78
-msgid "GEOM_PROPERTIES_CONSTR"
-msgstr "Objet et ses Proprietes"
-
-#: GeometryGUI_PropertiesDlg.cxx:114
-msgid "GEOM_PROPERTIES_SURFACE"
-msgstr "Surface :"
-
-#: GeometryGUI_PropertiesDlg.cxx:120
-msgid "GEOM_PROPERTIES_VOLUME"
-msgstr "Volume :"
-
-#: GeometryGUI_RevolDlg.cxx:49
-msgid "GEOM_REVOLUTION_TITLE"
-msgstr "Construction Par Revolution"
-
-#: GeometryGUI_RotationDlg.cxx:51
-msgid "GEOM_ROTATION_TITLE"
-msgstr "Rotation d'un Objet"
-
-#: GeometryGUI_ScaleDlg.cxx:52
-msgid "GEOM_SCALE_TITLE"
-msgstr "Echelle d'un Objet"
-
-#: GeometryGUI_ScaleDlg.cxx:117
-msgid "GEOM_SCALE_FACTOR"
-msgstr "Facteur d'echelle"
-
-#: GeometryGUI_SectionDlg.cxx:50
-msgid "GEOM_SECTION_TITLE"
-msgstr "BOOLEEN : Section De Deux Objets"
-
-#: GeometryGUI_SewingDlg.cxx:48
-msgid "GEOM_SEWING_TITLE"
-msgstr "Coudre des Topologies"
-
-#: GeometryGUI_ShellDlg.cxx:53
-msgid "GEOM_SHELL_TITLE"
-msgstr "Construction d'une Shell"
-
-#: GeometryGUI_ShellDlg.cxx:74
-msgid "GEOM_SHELL_LIST"
-msgstr "List de Faces Connectees"
-
-#: GeometryGUI_SphereDlg.cxx:50
-msgid "GEOM_SPHERE_TITLE"
-msgstr "Construction d'une Sphere"
-
-#: GeometryGUI_SphereDlg.cxx:113
-msgid "GEOM_SPHERE_CR"
-msgstr "Centre + rayon"
-
-#: GeometryGUI_SphereDlg.cxx:146
-msgid "GEOM_SPHERE_RO"
-msgstr "Rayon a l'origine"
-
-#: GeometryGUI_SubShapeDlg.cxx:55
-msgid "GEOM_SUBSHAPE_TITLE"
-msgstr "Selection de Sous Shapes"
-
-#: GeometryGUI_SubShapeDlg.cxx:131
-msgid "GEOM_SUBSHAPE_TYPE"
-msgstr "Type de Sous Shapes"
-
-#: GeometryGUI_SubShapeDlg.cxx:137
-msgid "GEOM_SUBSHAPE_SELECT"
-msgstr "Selectionner de Sous Shapes"
-
-#: GeometryGUI_TorusDlg.cxx:51
-msgid "GEOM_TORUS_TITLE"
-msgstr "Constructiond'un Tore"
-
-#: GeometryGUI_SuppressFacesDlg.cxx:103
-msgid "GEOM_SUPRESSFACE_TITLE"
-msgstr "Supprimer des Faces dans un Objet"
-
-#: GeometryGUI_SuppressFacesDlg.cxx:164
-msgid "GEOM_SUPRESSFACE_SELECT"
-msgstr "Selectionner les Faces a Supprimer"
-
-#: GeometryGUI_TranslationDlg.cxx:78
-msgid "GEOM_TRANSLATION_COOR"
-msgstr "Translation Avec Coordonnees"
-
-msgid "GEOM_TRANSPARENCY_TITLE"
-msgstr "Transparence"
-
-msgid "GEOM_TRANSPARENCY_OPAQUE"
-msgstr "Opaque"
-
-msgid "GEOM_TRANSPARENCY_TRANSPARENT"
-msgstr "Transparent"
-
-msgid "GEOM_SUPPRESSHOLE_TITLE"
-msgstr "Suppression de trous"
-
-msgid "GEOM_SUPPRESSHOLE_SELECTFACE"
-msgstr "Selection de la face initiale"
-
-msgid "GEOM_SUPPRESSHOLE_SELECTWIRE"
-msgstr "Selection du contour/trou sur la face"
-
-msgid "GEOM_SUPPRESSHOLE_SELECTFACE_END"
-msgstr "Selection de la face terminale (si trou traversant)"
-
-msgid "GEOM_SUPPRESSHOLE_SELECTWIRE_END"
-msgstr "Selection de contour final (si trou traversant)"
-
-msgid "GEOM_SUPPRESSHOLE_FACE_SHELL"
-msgstr "Face ou shell"
-
-msgid "GEOM_SUPPRESSHOLE_SELECT_HOLES_ON_FACE"
-msgstr "Selection de trou(s) sur la face"
-
-#: GeometryGUI_TranslationDlg.cxx:56
-msgid "GEOM_TRANSLATION_TITLE"
-msgstr "Translation d'un Objet"
-
-#: GeometryGUI_VectorDlg.cxx:54
-msgid "GEOM_VECTOR_TITLE"
-msgstr "Construction d'un Vecteur"
-
-#: GeometryGUI_WhatisDlg.cxx:63
-msgid "GEOM_WHATIS_TITLE"
-msgstr "Whatis"
-
-#: GeometryGUI_WhatisDlg.cxx:86
-msgid "GEOM_WHATIS_OBJECT"
-msgstr "Objet et ses Informations Topologiques"
-
-#: GeometryGUI_WireDlg.cxx:46
-msgid "GEOM_WIRE_TITLE"
-msgstr "Creer un Wire"
-
-#: GeometryGUI_WireDlg.cxx:103
-msgid "GEOM_WIRE_CONNECT"
-msgstr "Creation d'un Wire a partir de wires/edges connectes"
-
-#: GeometryGUI_WorkingPlaneDlg.cxx:50
-msgid "GEOM_WPALNE_TITLE"
-msgstr "plan de travail"
-
-#: GeometryGUI_WorkingPlaneDlg.cxx:107
-msgid "GEOM_WPALNE_FACE"
-msgstr "Plan Ou Face plane"
-
-#: GeometryGUI_multiTranslationDlg.cxx:107
-msgid "GEOM_MULTITRANSLATION_TITLE"
-msgstr "Multi-Translation"
-
-#: GeometryGUI_multiTranslationDlg.cxx:107
-msgid "GEOM_MULTITRANSLATION_SIMPLE"
-msgstr "Multi Translation Simple"
-
-#: GeometryGUI_multiTranslationDlg.cxx:107
-msgid "GEOM_MULTITRANSLATION_DOUBLE"
-msgstr "Multi Translation Double"
-
-#: GeometryGUI_multiRotationDlg.cxx:107
-msgid "GEOM_MULTIROTATION_TITLE"
-msgstr "Multi-Rotation"
-
-#: GeometryGUI_multiRotationDlg.cxx:107
-msgid "GEOM_MULTIROTATION_SIMPLE"
-msgstr "Multi Rotation Simple"
-
-#: GeometryGUI_multiRotationDlg.cxx:107
-msgid "GEOM_MULTIROTATION_DOUBLE"
-msgstr "Multi Rotation Double"
-
-msgid "GEOM_PARAM_POINT"
-msgstr "Point paramétrique"
-
-#
-#==============================================================================
-#
-
-#: GeometryGUI.cxx:4613
-msgid "GEOM_MEN_WIREFRAME"
-msgstr "Filaire"
-
-#: GeometryGUI.cxx:4613
-msgid "GEOM_MEN_SHADING"
-msgstr "Ombré"